@cwellt_software/cwellt-reactjs-lib 1.2.5 → 1.2.7

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.
package/dist/index.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as React$1 from 'react';
3
- import React__default, { PropsWithChildren, HTMLProps, FC, ReactNode, CSSProperties, ReactElement, DetailedHTMLProps, TextareaHTMLAttributes, InputHTMLAttributes, SelectHTMLAttributes, Component, ComponentType } from 'react';
3
+ import React__default, { HTMLProps, PropsWithChildren, FC, ReactNode, CSSProperties, ReactElement, HTMLAttributes, DetailedHTMLProps, TextareaHTMLAttributes, InputHTMLAttributes, SelectHTMLAttributes, Component, ComponentType } from 'react';
4
4
  import * as CSS from 'csstype';
5
5
  import { FormInstance } from 'antd/lib/form';
6
- import { ItemType } from 'antd/lib/menu/hooks/useItems';
6
+ import { Matcher } from 'react-day-picker';
7
7
 
8
8
  declare class CwSelectList {
9
9
  type: string;
@@ -35,58 +35,6 @@ declare function CwHeadingMain(props: React__default.PropsWithChildren<React__de
35
35
 
36
36
  declare function CwHeadingSecond(props: React__default.PropsWithChildren<React__default.HTMLProps<HTMLHeadingElement>>): react_jsx_runtime.JSX.Element;
37
37
 
38
- interface CwAlignProps extends Omit<PropsWithChildren<HTMLProps<HTMLDivElement>>, "className" | "style"> {
39
- alignContent?: CSS.Property.AlignContent;
40
- alignItems?: CSS.Property.AlignItems;
41
- alignSelf?: CSS.Property.AlignSelf;
42
- bottom?: CSS.Property.Bottom;
43
- display?: CSS.Property.Display;
44
- flexBasis?: CSS.Property.FlexBasis;
45
- flexDirection?: CSS.Property.FlexDirection;
46
- flexGrow?: CSS.Property.FlexGrow;
47
- flexShrink?: CSS.Property.FlexShrink;
48
- flexWrap?: CSS.Property.FlexWrap;
49
- cssHeight?: CSS.Property.Height;
50
- justifyContent?: CSS.Property.JustifyContent;
51
- left?: CSS.Property.Left;
52
- margin?: CSS.Property.Margin;
53
- order?: CSS.Property.Order;
54
- padding?: CSS.Property.Padding;
55
- position?: CSS.Property.Position;
56
- right?: CSS.Property.Right;
57
- top?: CSS.Property.Top;
58
- cssWidth?: CSS.Property.Width;
59
- gap?: CSS.Property.Gap;
60
- }
61
- /**
62
- * General purpose aligner flex container, useful for column or row view.
63
- * @remarks
64
- * ```txt
65
- * flexDirection="row" (default):
66
- *
67
- * <Row A> | - item 1 - item 2 - item 3 |
68
- * <Row B> | - item 1 - item 2 - item 3 |
69
- *
70
- * flexDirection="column":
71
- *
72
- * <Col A> <Col B>
73
- * | - item 1 | - item 1 |
74
- * | - item 2 | - item 2 |
75
- * | - item 3 | - item 3 |
76
- *
77
- * ```
78
- * @example
79
- * <CwAlign flexDirection="column">
80
- * <div>
81
- * <h2>ColumnA</h2>
82
- * </div>
83
- * <div>
84
- * <h2>ColumnB</h2>
85
- * </div>
86
- * </CwAlign>
87
- */
88
- declare function CwAlign(props: CwAlignProps): react_jsx_runtime.JSX.Element;
89
-
90
38
  interface CwLabelProps extends Omit<HTMLProps<PropsWithChildren<HTMLLabelElement>>, "className"> {
91
39
  /** Text to display on the label; Same as props.children
92
40
  * @example text="Name:" */
@@ -100,14 +48,12 @@ interface CwLabelProps extends Omit<HTMLProps<PropsWithChildren<HTMLLabelElement
100
48
  labelWidth?: CSS.Property.Width;
101
49
  /** css height */
102
50
  labelHeight?: CSS.Property.Height;
103
- /** CwAlign properties */
104
- alignProps?: CwAlignProps;
105
51
  }
106
52
  /**
107
53
  * Label for form controls.
108
54
  * @example
109
55
  * ```tsx
110
- * <CwLabelForm justify="right" >Username:</CwLabelForm>
56
+ * <CwLabel justify="right" >Username:</CwLabel>
111
57
  * ```
112
58
  */
113
59
  declare function CwLabel(props: CwLabelProps): react_jsx_runtime.JSX.Element;
@@ -153,20 +99,6 @@ interface CwChipProps {
153
99
  **/
154
100
  declare const CwChip: React__default.FC<CwChipProps>;
155
101
 
156
- interface CwTagProps {
157
- children?: any;
158
- styleTag?: React$1.CSSProperties;
159
- styleTag_description?: React$1.CSSProperties;
160
- closableTag?: boolean;
161
- className?: string;
162
- onClickTag?: (clickEvent: React$1.MouseEvent<HTMLSpanElement, MouseEvent>) => void;
163
- onClickClosableTag?: (clickEvent: React$1.MouseEvent<HTMLSpanElement, MouseEvent>) => void;
164
- idTag?: string;
165
- ref?: any;
166
- styleClosableButton?: React$1.CSSProperties;
167
- }
168
- declare function CwTag(tagProps: React$1.PropsWithChildren<CwTagProps>): react_jsx_runtime.JSX.Element;
169
-
170
102
  declare enum CwMessageType {
171
103
  ERROR = "close-circle",
172
104
  WARN = "warning",
@@ -421,6 +353,7 @@ interface CwGenericTooltipProps {
421
353
  position?: TooltipPosition;
422
354
  overlayStyle?: CSSProperties;
423
355
  showDelay?: number;
356
+ displayInline?: boolean;
424
357
  }
425
358
  declare const CwGenericTooltip: FC<CwGenericTooltipProps>;
426
359
 
@@ -443,6 +376,10 @@ interface CwModalProps {
443
376
  custButtonTitle?: string;
444
377
  custColorButtonTooltip?: string;
445
378
  }
379
+ /**
380
+ * **Note:** For new development, we recommend using {@link CwDialog} instead. CwModal remains supported for existing code.
381
+ * @see {@link CwDialog}
382
+ */
446
383
  declare function CwModal(custModalProps: React__default.PropsWithChildren<CwModalProps>): react_jsx_runtime.JSX.Element;
447
384
 
448
385
  interface ConfirmationPopupProps {
@@ -457,40 +394,6 @@ interface ConfirmationPopupProps {
457
394
  }
458
395
  declare function CwConfirmationPopup(props: ConfirmationPopupProps): react_jsx_runtime.JSX.Element;
459
396
 
460
- interface CwModalConfirmProps {
461
- modalStateConfirm?: boolean;
462
- children?: any;
463
- classNameModalOverlay?: string;
464
- classNameModalConfirm?: string;
465
- widthModalConfirm?: string | number;
466
- headerTextConfirm?: string;
467
- onCloseModalConfirm?: any;
468
- descriptionModalConfirm?: string;
469
- onClickActionModalConfirm?: any;
470
- confirmClassName?: string;
471
- confirmText?: string;
472
- }
473
- declare function CwModalConfirm(custModalProps: React__default.PropsWithChildren<CwModalConfirmProps>): react_jsx_runtime.JSX.Element;
474
-
475
- interface CwModalIframeProps {
476
- url: string;
477
- title: string;
478
- width: number;
479
- height: number;
480
- visible: boolean;
481
- SET_IFRAME_VISIBLE: (visible: boolean) => void;
482
- cblConfig: string;
483
- }
484
- interface State$5 {
485
- disabled: boolean;
486
- }
487
- declare class CwModalIframe extends React$1.Component<CwModalIframeProps, State$5> {
488
- constructor(Props: CwModalIframeProps);
489
- draggableRef: React$1.RefObject<HTMLDivElement>;
490
- handleCancel: () => void;
491
- render(): react_jsx_runtime.JSX.Element;
492
- }
493
-
494
397
  interface CwReportModalFunctionalProps {
495
398
  content: string;
496
399
  name: string;
@@ -518,7 +421,7 @@ interface CwReportModalProps {
518
421
  SET_MODAL_REPORT_VISIBLE: (visible: boolean) => void;
519
422
  isModal?: boolean;
520
423
  }
521
- interface State$4 {
424
+ interface State$3 {
522
425
  disabled: boolean;
523
426
  modalPosition: {
524
427
  top: number;
@@ -528,7 +431,7 @@ interface State$4 {
528
431
  };
529
432
  isModal: boolean;
530
433
  }
531
- declare class CwReportModal extends React$1.Component<CwReportModalProps, State$4> {
434
+ declare class CwReportModal extends React$1.Component<CwReportModalProps, State$3> {
532
435
  formRef: React$1.RefObject<FormInstance<any>>;
533
436
  constructor(props: Readonly<CwReportModalProps>);
534
437
  render(): react_jsx_runtime.JSX.Element;
@@ -591,6 +494,58 @@ declare class CwDialogManager {
591
494
  static GetOpenDialogCount(): number;
592
495
  }
593
496
 
497
+ interface CwAlignProps extends Omit<PropsWithChildren<HTMLProps<HTMLDivElement>>, "className" | "style"> {
498
+ alignContent?: CSS.Property.AlignContent;
499
+ alignItems?: CSS.Property.AlignItems;
500
+ alignSelf?: CSS.Property.AlignSelf;
501
+ bottom?: CSS.Property.Bottom;
502
+ display?: CSS.Property.Display;
503
+ flexBasis?: CSS.Property.FlexBasis;
504
+ flexDirection?: CSS.Property.FlexDirection;
505
+ flexGrow?: CSS.Property.FlexGrow;
506
+ flexShrink?: CSS.Property.FlexShrink;
507
+ flexWrap?: CSS.Property.FlexWrap;
508
+ cssHeight?: CSS.Property.Height;
509
+ justifyContent?: CSS.Property.JustifyContent;
510
+ left?: CSS.Property.Left;
511
+ margin?: CSS.Property.Margin;
512
+ order?: CSS.Property.Order;
513
+ padding?: CSS.Property.Padding;
514
+ position?: CSS.Property.Position;
515
+ right?: CSS.Property.Right;
516
+ top?: CSS.Property.Top;
517
+ cssWidth?: CSS.Property.Width;
518
+ gap?: CSS.Property.Gap;
519
+ }
520
+ /**
521
+ * General purpose aligner flex container, useful for column or row view.
522
+ * @remarks
523
+ * ```txt
524
+ * flexDirection="row" (default):
525
+ *
526
+ * <Row A> | - item 1 - item 2 - item 3 |
527
+ * <Row B> | - item 1 - item 2 - item 3 |
528
+ *
529
+ * flexDirection="column":
530
+ *
531
+ * <Col A> <Col B>
532
+ * | - item 1 | - item 1 |
533
+ * | - item 2 | - item 2 |
534
+ * | - item 3 | - item 3 |
535
+ *
536
+ * ```
537
+ * @example
538
+ * <CwAlign flexDirection="column">
539
+ * <div>
540
+ * <h2>ColumnA</h2>
541
+ * </div>
542
+ * <div>
543
+ * <h2>ColumnB</h2>
544
+ * </div>
545
+ * </CwAlign>
546
+ */
547
+ declare function CwAlign(props: CwAlignProps): react_jsx_runtime.JSX.Element;
548
+
594
549
  type CardChip = Omit<CwChipProps, 'closable' | 'onClose' | 'className' | 'style'>;
595
550
  interface CwCardProps {
596
551
  /*** Unique identifier for the card **/
@@ -692,7 +647,7 @@ interface CwAccordionContainerProps {
692
647
  */
693
648
  declare function CwAccordionContainer(CwelltAccordionContainerProps: React$1.PropsWithChildren<CwAccordionContainerProps>): react_jsx_runtime.JSX.Element;
694
649
 
695
- interface Column<T = any> {
650
+ interface Column$1<T = any> {
696
651
  title: string;
697
652
  dataIndex?: keyof T;
698
653
  key: string;
@@ -705,7 +660,7 @@ interface DataItem {
705
660
  [key: string]: any;
706
661
  }
707
662
  interface CwTableProps<T = any> {
708
- columns: Column<T>[];
663
+ columns: Column$1<T>[];
709
664
  data: T[];
710
665
  pagination?: boolean;
711
666
  pageSizeOptions?: number[];
@@ -713,7 +668,7 @@ interface CwTableProps<T = any> {
713
668
  onExpand?: (record: T) => void;
714
669
  classNameContainer?: string;
715
670
  className?: string;
716
- classNameRow?: string;
671
+ classNameRow?: string | ((record: T) => string);
717
672
  style?: React__default.CSSProperties;
718
673
  id?: string;
719
674
  textNoData?: string;
@@ -721,6 +676,11 @@ interface CwTableProps<T = any> {
721
676
  loading?: boolean;
722
677
  scrollHeight?: number | string;
723
678
  stickyHeader?: boolean;
679
+ rowSelection?: {
680
+ selectedRowKeys?: T[keyof T][];
681
+ onChange?: (selectedKeys: T[keyof T][], selectedRows: T[]) => void;
682
+ type?: "single" | "multiple";
683
+ };
724
684
  }
725
685
  /**
726
686
  * A reusable and customizable table component.
@@ -730,23 +690,23 @@ interface CwTableProps<T = any> {
730
690
  * @example
731
691
  * const columns: Column<User>[] = [
732
692
  * {
733
- * title: 'Name',
734
- * dataIndex: 'name',
735
- * key: 'name',
693
+ * title: "Name",
694
+ * dataIndex: "name",
695
+ * key: "name",
736
696
  * sortable: true, // Column is sortable
737
697
  * width: 100 // You can define the width of the column
738
698
  * },
739
699
  * {
740
- * title: 'Age',
741
- * dataIndex: 'age',
742
- * key: 'age',
700
+ * title: "Age",
701
+ * dataIndex: "age",
702
+ * key: "age",
743
703
  * sortable: true,
744
704
  * render: (item) => <span>{item.age} years</span> // Custom rendering
745
705
  * },
746
706
  * {
747
- * title: 'Address',
748
- * dataIndex: 'address',
749
- * key: 'address',
707
+ * title: "Address",
708
+ * dataIndex: "address",
709
+ * key: "address",
750
710
  * render: (item) => (
751
711
  * <a href={`https://maps.google.com/?q=${encodeURIComponent(item.address)}`} target="_blank" rel="noreferrer">
752
712
  * {item.address}
@@ -756,12 +716,12 @@ interface CwTableProps<T = any> {
756
716
  * ];
757
717
  *
758
718
  * const data:User[] = [
759
- * { key: '1', name: 'Mike', age: 32, address: '10 Downing Street' },
760
- * { key: '2', name: 'John', age: 42, address: '11 Downing Street' },
761
- * { key: '3', name: 'Andres', age: 33, address: '12 Downing Street' },
762
- * { key: '4', name: 'Gabriel', age: 22, address: '13 Downing Street' },
763
- * { key: '5', name: 'Sergio', age: 47, address: '14 Downing Street' },
764
- * { key: '6', name: 'Zacarias', age: 61, address: '15 Downing Street' }
719
+ * { key: "1", name: "Mike", age: 32, address: "10 Downing Street" },
720
+ * { key: "2", name: "John", age: 42, address: "11 Downing Street" },
721
+ * { key: "3", name: "Andres", age: 33, address: "12 Downing Street" },
722
+ * { key: "4", name: "Gabriel", age: 22, address: "13 Downing Street" },
723
+ * { key: "5", name: "Sergio", age: 47, address: "14 Downing Street" },
724
+ * { key: "6", name: "Zacarias", age: 61, address: "15 Downing Street" }
765
725
  * ];
766
726
  *
767
727
  * const generateExpandedContent = (record) => (
@@ -776,8 +736,8 @@ interface CwTableProps<T = any> {
776
736
  * pagination={true}
777
737
  * pageSizeOptions={[3, 5, 10]} // Optional, defaults to [5, 10, 20, 50]
778
738
  * expandedRowRender={generateExpandedContent}
779
- * onExpand={(item) => console.log('Expanded:', item)}
780
- * rowKey="key" // Optional, defaults to 'key'
739
+ * onExpand={(item) => console.log("Expanded:", item)}
740
+ * rowKey="key" // Optional, defaults to "key"
781
741
  * textNoData="No data available" // Optional message when no data
782
742
  * loading={false} // Optional, shows loading indicator
783
743
  * scrollHeight={300} // Optional scroll height, defaults to 300
@@ -786,12 +746,108 @@ interface CwTableProps<T = any> {
786
746
  * className="my-table" // Optional table class
787
747
  * classNameRow="my-table-row" // Optional class for each row
788
748
  * id="custom-table-id" // Optional ID for the container
789
- * style={{ border: '1px solid #ccc' }} // Optional inline styles
749
+ * style={{ border: "1px solid #ccc" }} // Optional inline styles
790
750
  * />
791
751
  *
792
752
  * @returns React component
793
753
  */
794
- declare function CwTable<T = any>({ columns, data, pagination, pageSizeOptions, expandedRowRender, onExpand, className, classNameRow, style, classNameContainer, id, textNoData, rowKey, loading, scrollHeight, stickyHeader, }: Readonly<CwTableProps<T>>): react_jsx_runtime.JSX.Element;
754
+ declare function CwTable<T = any>({ columns, data, pagination, pageSizeOptions, expandedRowRender, onExpand, className, classNameRow, style, classNameContainer, id, textNoData, rowKey, loading, scrollHeight, stickyHeader, rowSelection, }: Readonly<CwTableProps<T>>): react_jsx_runtime.JSX.Element;
755
+
756
+ interface ServerSideTableState<T = any> {
757
+ page: number;
758
+ pageSize: number;
759
+ sortKey?: keyof T | null;
760
+ sortDirection?: "asc" | "desc" | null;
761
+ }
762
+ interface Column<T = any> {
763
+ title: string;
764
+ dataIndex?: keyof T;
765
+ key: string;
766
+ render?: (item: T) => React__default.ReactNode;
767
+ className?: string;
768
+ sortable?: boolean;
769
+ width?: number | string;
770
+ }
771
+ interface CwTableServerSideProps<T = any> {
772
+ columns: Column<T>[];
773
+ data: T[];
774
+ totalItems: number;
775
+ pagination?: boolean;
776
+ pageSizeOptions?: number[];
777
+ expandedRowRender?: (record: T) => React__default.ReactNode;
778
+ onExpand?: (record: T) => void;
779
+ classNameContainer?: string;
780
+ className?: string;
781
+ classNameRow?: string | ((record: T) => string);
782
+ style?: React__default.CSSProperties;
783
+ id?: string;
784
+ textNoData?: string;
785
+ rowKey?: keyof T;
786
+ loading?: boolean;
787
+ scrollHeight?: number | string;
788
+ stickyHeader?: boolean;
789
+ rowSelection?: {
790
+ selectedRowKeys?: T[keyof T][];
791
+ onChange?: (selectedKeys: T[keyof T][], selectedRows: T[]) => void;
792
+ type?: "single" | "multiple";
793
+ };
794
+ onChange?: (state: ServerSideTableState<T>) => void;
795
+ serverState?: ServerSideTableState<T>;
796
+ }
797
+ /**
798
+ * A reusable and customizable table component (server-side pagination and sorting).
799
+ *
800
+ * @param props - Component props to configure columns, data, styles, pagination, expanded rows, and more.
801
+ *
802
+ * @example
803
+ * // --- Componente padre ---
804
+ * const columns: Column<User>[] = [
805
+ * { title: "Name", dataIndex: "name", key: "name", sortable: true },
806
+ * { title: "Age", dataIndex: "age", key: "age", sortable: true },
807
+ * { title: "Address", dataIndex: "address", key: "address" }
808
+ * ];
809
+ *
810
+ * // Estado para datos, total y paginación/ordenación
811
+ * const [tableState, setTableState] = useState<ServerSideTableState<User>>({
812
+ * page: 1,
813
+ * pageSize: 5,
814
+ * sortKey: null,
815
+ * sortDirection: null
816
+ * });
817
+ * const [data, setData] = useState<User[]>([]);
818
+ * const [totalItems, setTotalItems] = useState(0);
819
+ * const [loading, setLoading] = useState(false);
820
+ *
821
+ * // Simulación de fetch al servidor
822
+ * useEffect(() => {
823
+ * setLoading(true);
824
+ * fetch(`/api/users?page=${tableState.page}&pageSize=${tableState.pageSize}` +
825
+ * (tableState.sortKey ? `&sortKey=${tableState.sortKey}&sortDirection=${tableState.sortDirection}` : "")
826
+ * )
827
+ * .then(res => res.json())
828
+ * .then(({ items, total }) => {
829
+ * setData(items);
830
+ * setTotalItems(total);
831
+ * })
832
+ * .finally(() => setLoading(false));
833
+ * }, [tableState]);
834
+ *
835
+ * <CwTableServerSide<User>
836
+ * columns={columns}
837
+ * data={data}
838
+ * totalItems={totalItems}
839
+ * pagination={true}
840
+ * pageSizeOptions={[5, 10, 20]}
841
+ * loading={loading}
842
+ * serverState={tableState}
843
+ * onChange={setTableState}
844
+ * rowKey="id"
845
+ * textNoData="No data available"
846
+ * />
847
+ *
848
+ * @returns React component
849
+ */
850
+ declare function CwTableServerSide<T = any>({ columns, data, totalItems, pagination, pageSizeOptions, expandedRowRender, onExpand, className, classNameRow, style, classNameContainer, id, textNoData, rowKey, loading, scrollHeight, stickyHeader, rowSelection, onChange, serverState, }: Readonly<CwTableServerSideProps<T>>): react_jsx_runtime.JSX.Element;
795
851
 
796
852
  interface Tab {
797
853
  key: string;
@@ -799,6 +855,8 @@ interface Tab {
799
855
  content: React__default.ReactNode;
800
856
  icon?: React__default.ReactNode | string;
801
857
  iconClassName?: string;
858
+ badge?: number | string;
859
+ badgeColor?: string;
802
860
  }
803
861
  interface CwTabsProps {
804
862
  id?: string;
@@ -861,7 +919,7 @@ declare const CwExpandable: FC<CwExpandableProps>;
861
919
  /**
862
920
  * Props for the CwKeyValueList component
863
921
  */
864
- interface CwKeyValueListProps {
922
+ interface CwKeyValueListProps extends HTMLAttributes<HTMLDListElement> {
865
923
  items: Array<{
866
924
  key: string;
867
925
  label: string;
@@ -1110,6 +1168,7 @@ interface CwFileUploadMultipleProps {
1110
1168
  onError?: (error: string) => void;
1111
1169
  className?: string;
1112
1170
  disabled?: boolean;
1171
+ initialFileName?: string;
1113
1172
  }
1114
1173
  declare function CwFileUploadMultiple(fileUploadProps: React__default.PropsWithChildren<CwFileUploadMultipleProps>): react_jsx_runtime.JSX.Element;
1115
1174
 
@@ -1137,12 +1196,14 @@ declare function CwInput(CwInputProps: React__default.PropsWithChildren<CwInputP
1137
1196
  * @param color - Color theme: 'primary' (default), 'danger', or 'neutral'
1138
1197
  * @param icon - Icon identifier for CSS classes (cwi-{icon})
1139
1198
  * @param className - Additional CSS classes
1199
+ * @param title - Built-in tooltip
1200
+ * @param tooltipPosition - Tooltip position: 'top', 'bottom' (default), 'left', 'right'
1140
1201
  * @param children - Custom button content (overrides text and icon rendering)
1141
1202
  *
1142
1203
  * @example
1143
1204
  * <CwButton text="Save" />
1144
1205
  * <CwButton text="Delete" variant="outline" color="danger" />
1145
- * <CwButton variant="icon" icon="edit" />
1206
+ * <CwButton variant="icon" icon="edit" title="Edit item" />
1146
1207
  * <CwButton icon="star" text="Favorite" color="primary" />
1147
1208
  * <CwButton className="custom-class">Custom content</CwButton>
1148
1209
  */
@@ -1151,9 +1212,10 @@ interface CwButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
1151
1212
  variant?: 'solid' | 'outline' | 'icon';
1152
1213
  color?: 'primary' | 'danger' | 'neutral';
1153
1214
  icon?: string;
1215
+ tooltipPosition?: 'top' | 'bottom' | 'left' | 'right';
1154
1216
  ref?: React.LegacyRef<HTMLButtonElement>;
1155
1217
  }
1156
- declare function CwButton({ text, variant, color, className, icon, children, ...buttonProps }: CwButtonProps): react_jsx_runtime.JSX.Element;
1218
+ declare function CwButton({ text, variant, color, className, icon, title, tooltipPosition, children, ...buttonProps }: CwButtonProps): react_jsx_runtime.JSX.Element;
1157
1219
 
1158
1220
  interface CwDigitProps extends Omit<HTMLProps<HTMLInputElement>, "className" | "type"> {
1159
1221
  /** Props to define alignment and size; undefined == column
@@ -1656,38 +1718,6 @@ interface CwOptionProps extends Omit<HTMLProps<PropsWithChildren<HTMLOptionEleme
1656
1718
  */
1657
1719
  declare function CwOption(props: CwOptionProps): react_jsx_runtime.JSX.Element;
1658
1720
 
1659
- interface CwDropdownProps extends HTMLProps<HTMLDivElement> {
1660
- selectList: Array<CwSelectList>;
1661
- labelName: string;
1662
- labelPosition?: string;
1663
- labelClassName?: string;
1664
- handleChange?: (value: any) => void;
1665
- placeholder?: string;
1666
- className?: string;
1667
- style?: React__default.CSSProperties;
1668
- styleSelect?: React__default.CSSProperties;
1669
- styleOption?: React__default.CSSProperties;
1670
- disabled?: boolean;
1671
- error?: boolean;
1672
- defaultSelected?: any;
1673
- }
1674
- declare function CwDropdown(optionsProps: React__default.PropsWithChildren<CwDropdownProps>): react_jsx_runtime.JSX.Element;
1675
-
1676
- interface CwDropdownContainerProps {
1677
- dropDownState?: boolean;
1678
- idDropDownContainer?: string;
1679
- children?: any;
1680
- listItems?: Array<OptionListItems>;
1681
- onKeyDownDropDownContainer?: any;
1682
- onMouseLeaveDropDownContainer?: any;
1683
- className?: string;
1684
- }
1685
- interface OptionListItems {
1686
- idListOption?: string | number | any;
1687
- childrenOptionList?: string | any;
1688
- }
1689
- declare function CwDropdownContainer(dropDownContainerProps: React$1.PropsWithChildren<CwDropdownContainerProps>): react_jsx_runtime.JSX.Element;
1690
-
1691
1721
  interface CwDropdownListItems {
1692
1722
  IdDropDown_filter?: string | number | any;
1693
1723
  dropDownFilter_desc?: string | any;
@@ -1704,27 +1734,6 @@ interface CwDropdownFilterProps {
1704
1734
  }
1705
1735
  declare function CwDropdownFilter(props: React$1.PropsWithChildren<CwDropdownFilterProps>): react_jsx_runtime.JSX.Element;
1706
1736
 
1707
- interface MultiselectProps {
1708
- selectLists: Array<Array<CwSelectList>>;
1709
- handleChange?: (value: any, test: any) => void;
1710
- selectedItems?: Array<CwSelectList>;
1711
- }
1712
- interface State$3 {
1713
- selected: any;
1714
- isVisibleDropDown: any;
1715
- activeClassName: string;
1716
- }
1717
- declare class MultiSelect extends React$1.Component<MultiselectProps, State$3> {
1718
- constructor(Props: MultiselectProps);
1719
- componentDidMount(): void;
1720
- onClickSelect: () => void;
1721
- handleOnDropDownVisibleChange: () => void;
1722
- onKeyUpSelect: (e_KeyUp_select: any) => void;
1723
- onMouseHoverDropDownActive: () => boolean;
1724
- onMouseLeaveMultiSelect: (event_mouseLeave: any) => void;
1725
- render(): react_jsx_runtime.JSX.Element;
1726
- }
1727
-
1728
1737
  interface CwMultiFilterTagProps {
1729
1738
  /** Make sure each ID is unique */
1730
1739
  ID: string;
@@ -1740,8 +1749,8 @@ interface CwMultiFilterTagProps {
1740
1749
  g: number;
1741
1750
  b: number;
1742
1751
  };
1743
- /** color for text and outline of the tag/filter/chip, you can use hexToRGB("#222222") instead */
1744
- OnPrimaryColor: {
1752
+ /** @deprecated No longer used. Color contrast is calculated automatically. Will be removed in future version. */
1753
+ OnPrimaryColor?: {
1745
1754
  r: number;
1746
1755
  g: number;
1747
1756
  b: number;
@@ -1767,46 +1776,6 @@ declare function itemsToMultiFilterTags(items: Array<any>, nameKey: string, valu
1767
1776
  b: number;
1768
1777
  }): Set<ICwMultiFilterTag>;
1769
1778
 
1770
- interface CwHeadFilterProps {
1771
- style?: React$1.CSSProperties;
1772
- className?: string;
1773
- placeholder_desc?: string;
1774
- children?: any;
1775
- onShowDropDown?: any;
1776
- onChangeSearch?: any;
1777
- Id?: string;
1778
- tagValueContent?: any;
1779
- onClearValue?: any;
1780
- onKeypressInput?: any;
1781
- onMouseLeave?: any;
1782
- onBlur?: any;
1783
- }
1784
- declare function CwHeadFilter(cwelltFilterTabMultiSelectProps: React$1.PropsWithChildren<CwHeadFilterProps>): react_jsx_runtime.JSX.Element;
1785
-
1786
- interface CwFilterTabProps {
1787
- id?: string;
1788
- idDropDownContainer?: string;
1789
- style?: React__default.CSSProperties;
1790
- placeholder?: string;
1791
- onclickHandleChange?: any;
1792
- selectListsItems?: Array<Array<CwSelectListProps>>;
1793
- selectedListsItems?: Array<CwSelectListProps>;
1794
- }
1795
- declare function CwMultiselect(CwelltCustomFilterTabProps: React__default.PropsWithChildren<CwFilterTabProps>): JSX.Element;
1796
-
1797
- interface CwOptionListProps {
1798
- children?: any;
1799
- value?: string;
1800
- title?: string;
1801
- onClick?: any;
1802
- idOptionList?: string | number | any;
1803
- onKeyPress?: any;
1804
- onChangeOptionList?: any;
1805
- isSelected?: boolean;
1806
- style?: React$1.CSSProperties;
1807
- }
1808
- declare function CwOptionList(optionListProps: React$1.PropsWithChildren<CwOptionListProps>): react_jsx_runtime.JSX.Element;
1809
-
1810
1779
  interface CwMultiFilterProps {
1811
1780
  /** Classic HTML id, needed to simplify UI testing */
1812
1781
  id: string;
@@ -1831,7 +1800,7 @@ interface CwMultiFilterProps {
1831
1800
  * - `Category`: Group the filter belongs to
1832
1801
  * - `ID`: Unique identifier for the filter
1833
1802
  * - `PrimaryColor`: Background color of the tag
1834
- * - `OnPrimaryColor`: Text color of the tag
1803
+ * - `OnPrimaryColor`: (Optional, deprecated) Text color of the tag - contrast is now calculated automatically
1835
1804
  *
1836
1805
  * ```
1837
1806
  * ╭───────────────────────────────────────────────────────────────╮
@@ -1873,7 +1842,6 @@ interface CwMultiFilterProps {
1873
1842
  * Value: "admin",
1874
1843
  * Category: "Roles",
1875
1844
  * ID: "Roles_admin",
1876
- * OnPrimaryColor: hexToRGB("#2050a8"),
1877
1845
  * PrimaryColor: hexToRGB("#cedcff")
1878
1846
  * },
1879
1847
  * {
@@ -1881,7 +1849,6 @@ interface CwMultiFilterProps {
1881
1849
  * Value: "user",
1882
1850
  * Category: "Roles",
1883
1851
  * ID: "Roles_user",
1884
- * OnPrimaryColor: hexToRGB("#2050a8"),
1885
1852
  * PrimaryColor: hexToRGB("#cedcff")
1886
1853
  * },
1887
1854
  * {
@@ -1889,7 +1856,6 @@ interface CwMultiFilterProps {
1889
1856
  * Value: "IT",
1890
1857
  * Category: "Departments",
1891
1858
  * ID: "Departments_IT",
1892
- * OnPrimaryColor: hexToRGB("#a82037"),
1893
1859
  * PrimaryColor: hexToRGB("#ffceda")
1894
1860
  * },
1895
1861
  * {
@@ -1897,7 +1863,6 @@ interface CwMultiFilterProps {
1897
1863
  * Value: "HR",
1898
1864
  * Category: "Departments",
1899
1865
  * ID: "Departments_HR",
1900
- * OnPrimaryColor: hexToRGB("#a82037"),
1901
1866
  * PrimaryColor: hexToRGB("#ffceda")
1902
1867
  * }
1903
1868
  * ]);
@@ -1979,17 +1944,97 @@ declare function CwTreeView<T>({ data, onSelect, allowParentSelection, selectedI
1979
1944
 
1980
1945
  interface CwSearchInputProps extends HTMLProps<HTMLDivElement> {
1981
1946
  selectList: Array<CwSelectList>;
1982
- labelName?: string;
1983
- labelPosition?: string;
1947
+ labelProps?: CwLabelProps;
1948
+ iconProps?: CwIconProps;
1949
+ alignProps?: CwAlignProps;
1984
1950
  handleChange?: (value: any) => void;
1985
1951
  placeholder?: string;
1986
1952
  className?: string;
1987
1953
  style?: React__default.CSSProperties;
1988
1954
  disabled?: boolean;
1989
1955
  error?: boolean;
1956
+ renderOption?: (option: CwSelectList) => React__default.ReactNode;
1990
1957
  }
1991
1958
  declare function CwSearchInput(optionsProps: React__default.PropsWithChildren<CwSearchInputProps>): react_jsx_runtime.JSX.Element;
1992
1959
 
1960
+ type Placement = 'bottom' | 'top' | 'left' | 'right';
1961
+ interface MenuOption {
1962
+ key: string;
1963
+ label: string | React__default.ReactNode;
1964
+ disabled?: boolean;
1965
+ icon?: React__default.ReactNode;
1966
+ }
1967
+ /**
1968
+ * Advanced context menu anchored to an element with arrow indicator.
1969
+ * Opens on right-click and positions itself relative to the trigger element.
1970
+ * Supports controlled state, complex options with icons, automatic viewport adjustment, and smart placement flipping.
1971
+ * Optimized for Scheduler / Timelines / Datagrids.
1972
+ *
1973
+ * @example
1974
+ * // Basic usage with simple string options
1975
+ * <CwAnchoredMenu
1976
+ * options={['Edit', 'Delete', 'Copy']}
1977
+ * onSelect={(key) => handleAction(key)}
1978
+ * placement="bottom"
1979
+ * >
1980
+ * <div>Right-click me!</div>
1981
+ * </CwAnchoredMenu>
1982
+ *
1983
+ * @example
1984
+ * // Advanced usage with MenuOption objects
1985
+ * <CwAnchoredMenu
1986
+ * options={[
1987
+ * { key: 'edit', label: 'Edit item', icon: <EditIcon /> },
1988
+ * { key: 'delete', label: 'Delete item', disabled: false },
1989
+ * { key: 'info', label: <span style={{color: 'blue'}}>Info</span> }
1990
+ * ]}
1991
+ * onSelect={(key) => handleAction(key)}
1992
+ * placement="bottom"
1993
+ * >
1994
+ * <div>Right-click me!</div>
1995
+ * </CwAnchoredMenu>
1996
+ *
1997
+ * @example
1998
+ * // Controlled mode for complex UIs (schedulers, timelines)
1999
+ * const [isOpen, setIsOpen] = useState(false);
2000
+ *
2001
+ * <CwAnchoredMenu
2002
+ * open={isOpen}
2003
+ * onOpenChange={setIsOpen}
2004
+ * onContextMenu={(e) => {
2005
+ * console.log('Menu opened at', e.clientX, e.clientY);
2006
+ * // Handle custom logic here
2007
+ * }}
2008
+ * options={menuOptions}
2009
+ * onSelect={(key) => handleAction(key)}
2010
+ * placement="bottom"
2011
+ * >
2012
+ * <div className="scheduler-event">Event</div>
2013
+ * </CwAnchoredMenu>
2014
+ *
2015
+ * @remarks
2016
+ * - Automatically flips placement when reaching viewport edges (bottom↔top, left↔right)
2017
+ * - Menu centers on click position for better UX
2018
+ * - Arrow always points to trigger element center
2019
+ * - Uses useLayoutEffect to prevent visual flickering
2020
+ * - Works with complex nested elements (e.g., positioned absolute children)
2021
+ */
2022
+ interface CwAnchoredMenuProps extends React__default.PropsWithChildren {
2023
+ /** Array of menu options (strings or MenuOption objects) */
2024
+ options: (string | MenuOption)[];
2025
+ /** Callback when an option is selected */
2026
+ onSelect: (key: string) => void;
2027
+ /** Preferred placement of the menu (will auto-flip if no space) @default 'bottom' */
2028
+ placement?: Placement;
2029
+ /** Controlled open state */
2030
+ open?: boolean;
2031
+ /** Callback when open state changes (for controlled mode) */
2032
+ onOpenChange?: (open: boolean) => void;
2033
+ /** Callback when context menu is triggered (right-click) */
2034
+ onContextMenu?: (event: React__default.MouseEvent) => void;
2035
+ }
2036
+ declare const CwAnchoredMenu: React__default.FC<CwAnchoredMenuProps>;
2037
+
1993
2038
  interface ContextMenuProps extends React__default.PropsWithChildren {
1994
2039
  options: string[];
1995
2040
  offset?: {
@@ -1998,98 +2043,267 @@ interface ContextMenuProps extends React__default.PropsWithChildren {
1998
2043
  };
1999
2044
  onSelect: (option: string) => void;
2000
2045
  }
2001
- /**
2002
- * A context menu that is rendered when the user clicks on a button.
2003
- * @author NVS
2004
- * @example
2005
- * <ContextMenu
2006
- * options={['Option 1', 'Option 2', 'Option 3']}
2007
- * onSelect={(option) => console.log(`Selected: ${option}`)}
2008
- * >
2009
- * <div>Right-click me!</div>
2010
- * </ContextMenu>
2011
- */
2012
2046
  declare const CwContextMenu: React__default.FC<ContextMenuProps>;
2013
2047
 
2014
- interface CwContextualMenuProps {
2015
- children?: any;
2016
- handleContextMenu?: any;
2017
- onClick?: any;
2018
- dataSourceContextMenu?: Array<CwDataItemsListProps>;
2019
- dataSourceContextMenu_schd?: Array<CwDataItemsListSchdProps>;
2020
- }
2021
- interface CwDataItemsListProps {
2022
- idDataItem?: string | number | any;
2023
- dataItemContent?: string | any;
2024
- style?: React$1.CSSProperties;
2025
- styleDataItem?: React$1.CSSProperties;
2026
- }
2027
- interface CwDataItemsListSchdProps {
2028
- key?: string;
2029
- text?: string;
2030
- icon?: string;
2031
- color?: string;
2032
- }
2033
- declare function CwContextualMenu(CwelltRightClickProps: React$1.PropsWithChildren<CwContextualMenuProps>): react_jsx_runtime.JSX.Element;
2034
-
2035
2048
  /**
2036
- * A floating button.
2037
- * @identifier cw_btnFloatingButton
2038
- * @classes cw_btnFloatingButtonActive
2039
- * @dependencies #CwScheduler #CwSchedulerActive #cwelltContentDuty #cwelltContentDutyActive
2049
+ * Props for legacy icon button wrappers
2050
+ * @deprecated These wrappers exist for backward compatibility.
2051
+ * New code should use <CwButton variant="icon" icon="..." /> directly.
2052
+ * Migration happens organically as files are modified.
2040
2053
  */
2041
- declare function CwFloatingButton(): react_jsx_runtime.JSX.Element;
2042
- interface cwButtonsDescProps {
2043
- cw_btn_desc: string;
2044
- cw_btnOnclick: any;
2054
+ interface cw_btnProps extends Omit<CwButtonProps, 'variant' | 'icon' | 'color'> {
2055
+ /** @deprecated Use onClick instead */
2056
+ cw_btnOnclick?: () => void;
2057
+ /** @deprecated Use disabled instead */
2045
2058
  cw_btn_disabled?: boolean;
2046
2059
  }
2047
- declare function CwButtonDef({ cw_btn_desc, cw_btnOnclick, cw_btn_disabled }: cwButtonsDescProps): react_jsx_runtime.JSX.Element;
2048
- interface cw_btnProps {
2049
- cw_btnOnclick: any;
2050
- cw_btn_disabled?: boolean;
2051
- cw_name?: string;
2052
- }
2053
- declare function CwBtnAdd({ cw_btnOnclick, cw_btn_disabled }: cw_btnProps): react_jsx_runtime.JSX.Element;
2054
- declare function CwBtnSave({ cw_btnOnclick, cw_btn_disabled }: cw_btnProps): react_jsx_runtime.JSX.Element;
2055
- declare function CwBtnEdit({ cw_btnOnclick, cw_btn_disabled }: cw_btnProps): react_jsx_runtime.JSX.Element;
2056
- declare function CwBtnSearch({ cw_btnOnclick, cw_btn_disabled }: cw_btnProps): react_jsx_runtime.JSX.Element;
2057
- declare function CwBtnDownload({ cw_btnOnclick, cw_btn_disabled }: cw_btnProps): react_jsx_runtime.JSX.Element;
2058
- declare function CwBtnView({ cw_btnOnclick, cw_btn_disabled }: cw_btnProps): react_jsx_runtime.JSX.Element;
2059
- declare function CwBtnPrint({ cw_btnOnclick, cw_btn_disabled }: cw_btnProps): react_jsx_runtime.JSX.Element;
2060
- declare function CwBtnCancel({ cw_btnOnclick, cw_btn_disabled }: cw_btnProps): react_jsx_runtime.JSX.Element;
2061
- declare function CwBtnDelete({ cw_btnOnclick, cw_btn_disabled }: cw_btnProps): react_jsx_runtime.JSX.Element;
2062
- declare function CwBtnRefresh({ cw_btnOnclick, cw_btn_disabled }: cw_btnProps): react_jsx_runtime.JSX.Element;
2063
- declare function CwBtnHide({ cw_btnOnclick, cw_btn_disabled }: cw_btnProps): react_jsx_runtime.JSX.Element;
2064
- declare function CwBtnSelect({ cw_btnOnclick, cw_btn_disabled }: cw_btnProps): react_jsx_runtime.JSX.Element;
2065
- declare function CwBtnShare({ cw_btnOnclick, cw_btn_disabled }: cw_btnProps): react_jsx_runtime.JSX.Element;
2066
- declare function CwBtnFiles({ cw_btnOnclick, cw_btn_disabled }: cw_btnProps): react_jsx_runtime.JSX.Element;
2067
- declare function CwBtnAirport({ cw_btnOnclick, cw_btn_disabled }: cw_btnProps): react_jsx_runtime.JSX.Element;
2068
- declare function CwBtnDownLoadAllInfo({ cw_btnOnclick, cw_btn_disabled }: cw_btnProps): react_jsx_runtime.JSX.Element;
2069
- declare function CwBtnPropertyFolder({ cw_btnOnclick, cw_btn_disabled }: cw_btnProps): react_jsx_runtime.JSX.Element;
2070
- declare function CwBtnAddFolder({ cw_btnOnclick, cw_btn_disabled }: cw_btnProps): react_jsx_runtime.JSX.Element;
2071
- declare function CwBtnEditFolder({ cw_btnOnclick, cw_btn_disabled }: cw_btnProps): react_jsx_runtime.JSX.Element;
2072
- declare function CwBtnUploadFiles({ cw_btnOnclick, cw_btn_disabled }: cw_btnProps): react_jsx_runtime.JSX.Element;
2073
- declare function CwBtnGoBackFolder({ cw_btnOnclick, cw_btn_disabled }: cw_btnProps): react_jsx_runtime.JSX.Element;
2074
- declare function CwBtnBookMark({ cw_btnOnclick, cw_btn_disabled }: cw_btnProps): react_jsx_runtime.JSX.Element;
2075
- declare function CwBtnPublish({ cw_btnOnclick, cw_btn_disabled }: cw_btnProps): react_jsx_runtime.JSX.Element;
2076
- declare function CwBtnApprove({ cw_btnOnclick, cw_btn_disabled }: cw_btnProps): react_jsx_runtime.JSX.Element;
2077
- declare function CwBtnBulkDuty({ cw_btnOnclick, cw_btn_disabled }: cw_btnProps): react_jsx_runtime.JSX.Element;
2078
- declare function CwBtnDropDownMenu({ cw_btnOnclick, cw_btn_disabled }: cw_btnProps): react_jsx_runtime.JSX.Element;
2079
- declare function CwBtnAlert({ cw_btnOnclick, cw_btn_disabled, cw_name }: cw_btnProps): react_jsx_runtime.JSX.Element;
2080
- declare function CwBtnNavFirstItemView({ cw_btnOnclick, cw_btn_disabled }: cw_btnProps): react_jsx_runtime.JSX.Element;
2081
- declare function CwBtnNavLastItemView({ cw_btnOnclick, cw_btn_disabled }: cw_btnProps): react_jsx_runtime.JSX.Element;
2082
- declare function CwBtnNavPreviewItem({ cw_btnOnclick, cw_btn_disabled }: cw_btnProps): react_jsx_runtime.JSX.Element;
2083
- declare function CwBtnNavNextDay({ cw_btnOnclick, cw_btn_disabled }: cw_btnProps): react_jsx_runtime.JSX.Element;
2084
- declare function CwBtnStatistic({ cw_btnOnclick, cw_btn_disabled }: cw_btnProps): react_jsx_runtime.JSX.Element;
2085
- declare function CwBtnCrewPlanning({ cw_btnOnclick, cw_btn_disabled }: cw_btnProps): react_jsx_runtime.JSX.Element;
2086
- declare function CwBtnReleasePeriod({ cw_btnOnclick, cw_btn_disabled }: cw_btnProps): react_jsx_runtime.JSX.Element;
2087
- declare function CwBtnGeneratePairing({ cw_btnOnclick, cw_btn_disabled }: cw_btnProps): react_jsx_runtime.JSX.Element;
2088
- declare function CwBtnImportRequests({ cw_btnOnclick, cw_btn_disabled }: cw_btnProps): react_jsx_runtime.JSX.Element;
2089
- declare function CwBtnPairing({ cw_btnOnclick, cw_btn_disabled }: cw_btnProps): react_jsx_runtime.JSX.Element;
2090
- declare function CwBtnVacations({ cw_btnOnclick, cw_btn_disabled }: cw_btnProps): react_jsx_runtime.JSX.Element;
2091
- declare function CwBtnMVT({ cw_btnOnclick, cw_btn_disabled }: cw_btnProps): react_jsx_runtime.JSX.Element;
2092
- declare function CwBtnDelay({ cw_btnOnclick, cw_btn_disabled }: cw_btnProps): react_jsx_runtime.JSX.Element;
2060
+ /**
2061
+ * Save button wrapper
2062
+ * @deprecated Use <CwButton variant="icon" icon="save" onClick={...} /> instead
2063
+ */
2064
+ declare function CwBtnSave({ cw_btnOnclick, cw_btn_disabled, onClick, disabled, ...rest }: cw_btnProps): react_jsx_runtime.JSX.Element;
2065
+ /**
2066
+ * Edit button wrapper
2067
+ * @deprecated Use <CwButton variant="icon" icon="edit" onClick={...} /> instead
2068
+ */
2069
+ declare function CwBtnEdit({ cw_btnOnclick, cw_btn_disabled, onClick, disabled, ...rest }: cw_btnProps): react_jsx_runtime.JSX.Element;
2070
+ /**
2071
+ * Delete button wrapper
2072
+ * @deprecated Use <CwButton variant="icon" icon="delete" color="danger" onClick={...} /> instead
2073
+ */
2074
+ declare function CwBtnDelete({ cw_btnOnclick, cw_btn_disabled, onClick, disabled, ...rest }: cw_btnProps): react_jsx_runtime.JSX.Element;
2075
+
2076
+ type DateMatcher$2 = Matcher;
2077
+ interface CwDatePickerProps {
2078
+ /** Current selected date */
2079
+ value?: Date;
2080
+ /** Callback when date changes */
2081
+ onChange: (date: Date | undefined) => void;
2082
+ /** Minimum selectable date */
2083
+ minDate?: Date;
2084
+ /** Maximum selectable date */
2085
+ maxDate?: Date;
2086
+ /** Array of specific dates to disable */
2087
+ disabledDates?: Date[];
2088
+ /** Function to determine if a date should be disabled */
2089
+ disabledMatcher?: DateMatcher$2;
2090
+ /** Default month to display when calendar opens */
2091
+ defaultMonth?: Date;
2092
+ /** Props for label component */
2093
+ labelProps?: CwLabelProps;
2094
+ /** Props for alignment */
2095
+ alignProps?: CwAlignProps;
2096
+ /** Placeholder text for input */
2097
+ placeholder?: string;
2098
+ /** Display format for the input (default: dd/MM/yyyy) */
2099
+ displayFormat?: string;
2100
+ /** Is the input disabled */
2101
+ disabled?: boolean;
2102
+ /** Is the input required */
2103
+ required?: boolean;
2104
+ /** Additional CSS class for container */
2105
+ className?: string;
2106
+ /** Show clear button */
2107
+ showClear?: boolean;
2108
+ /** Pop Up Position */
2109
+ popupPosition?: "left-bottom" | "left-top" | "right-top" | "right-bottom";
2110
+ /** Number of months to display (default: 1) */
2111
+ numberOfMonths?: number;
2112
+ showTodayButton?: boolean;
2113
+ }
2114
+ declare function CwDatePicker({ value, onChange, minDate, maxDate, disabledDates, disabledMatcher, defaultMonth, labelProps, alignProps, placeholder, displayFormat, disabled, required, className, showClear, popupPosition, numberOfMonths, showTodayButton, }: Readonly<CwDatePickerProps>): react_jsx_runtime.JSX.Element;
2115
+
2116
+ interface DateRangePreset {
2117
+ key: string;
2118
+ label: string;
2119
+ getValue: () => {
2120
+ from: Date;
2121
+ to: Date;
2122
+ };
2123
+ }
2124
+
2125
+ type DateMatcher$1 = Matcher;
2126
+ interface DateRangeValue {
2127
+ from: Date | undefined;
2128
+ to: Date | undefined;
2129
+ }
2130
+ interface CwDateRangePickerProps {
2131
+ /** Current selected date range */
2132
+ value?: DateRangeValue;
2133
+ /** Callback when date range changes */
2134
+ onChange: (range: DateRangeValue | undefined) => void;
2135
+ /** Minimum selectable date */
2136
+ minDate?: Date;
2137
+ /** Maximum selectable date */
2138
+ maxDate?: Date;
2139
+ /** Array of specific dates to disable */
2140
+ disabledDates?: Date[];
2141
+ /** Function to determine if a date should be disabled */
2142
+ disabledMatcher?: DateMatcher$1;
2143
+ /** Maximum number of days allowed in range (optional) */
2144
+ maxRangeDays?: number;
2145
+ /** Default month to display when calendar opens */
2146
+ defaultMonth?: Date;
2147
+ /** Props for label component */
2148
+ labelProps?: CwLabelProps;
2149
+ /** Props for alignment */
2150
+ alignProps?: CwAlignProps;
2151
+ /** Placeholder text for "from" input */
2152
+ placeholderFrom?: string;
2153
+ /** Placeholder text for "to" input */
2154
+ placeholderTo?: string;
2155
+ /** Display format for the inputs (default: dd.MM.yyyy) */
2156
+ displayFormat?: string;
2157
+ /** Is the input disabled */
2158
+ disabled?: boolean;
2159
+ /** Is the input required */
2160
+ required?: boolean;
2161
+ /** Additional CSS class for container */
2162
+ className?: string;
2163
+ /** Show clear buttons */
2164
+ showClear?: boolean;
2165
+ /** Pop Up Position */
2166
+ popupPosition?: "left-bottom" | "left-top" | "right-top" | "right-bottom";
2167
+ /** Number of months to display (default: 2 for ranges) */
2168
+ numberOfMonths?: number;
2169
+ /**
2170
+ * Show preset buttons
2171
+ * @default false
2172
+ */
2173
+ showPresets?: boolean;
2174
+ /**
2175
+ * Keys of presets to display from PRESET_LIBRARY
2176
+ * @example ['thisWeek', 'past7Days', 'past30Days']
2177
+ */
2178
+ presetKeys?: string[];
2179
+ /**
2180
+ * Custom presets to add alongside library presets
2181
+ */
2182
+ customPresets?: DateRangePreset[];
2183
+ }
2184
+ declare function CwDateRangePicker({ value, onChange, minDate, maxDate, disabledDates, disabledMatcher, maxRangeDays, defaultMonth, labelProps, alignProps, placeholderFrom, placeholderTo, displayFormat, disabled, required, className, showClear, popupPosition, numberOfMonths, showPresets, presetKeys, customPresets, }: Readonly<CwDateRangePickerProps>): react_jsx_runtime.JSX.Element;
2185
+
2186
+ interface CwDateTimePickerProps {
2187
+ /** Current selected datetime */
2188
+ value?: Date;
2189
+ /** Callback when datetime changes */
2190
+ onChange: (datetime: Date | undefined) => void;
2191
+ /** Minimum selectable datetime */
2192
+ minDateTime?: Date | string;
2193
+ /** Maximum selectable datetime */
2194
+ maxDateTime?: Date | string;
2195
+ /** Array of specific dates to disable */
2196
+ disabledDates?: Date[];
2197
+ /** Function to determine if a date should be disabled */
2198
+ disabledMatcher?: DateMatcher$2;
2199
+ /** Interval in minutes for time selection (default: 15) */
2200
+ timeInterval?: 5 | 10 | 15 | 30 | 60;
2201
+ /** Minimum selectable time in format "HH:mm" */
2202
+ minTime?: string;
2203
+ /** Maximum selectable time in format "HH:mm" */
2204
+ maxTime?: string;
2205
+ /** Props for label component (applies to the container) */
2206
+ labelProps?: CwLabelProps;
2207
+ /** Props for alignment (applies to the container) */
2208
+ alignProps?: CwAlignProps;
2209
+ /** Placeholder text for date input */
2210
+ datePlaceholder?: string;
2211
+ /** Placeholder text for time input */
2212
+ timePlaceholder?: string;
2213
+ /** Is the input disabled */
2214
+ disabled?: boolean;
2215
+ /** Is the input required */
2216
+ required?: boolean;
2217
+ /** Additional CSS class for container */
2218
+ className?: string;
2219
+ /** Show clear buttons on individual inputs */
2220
+ showClear?: boolean;
2221
+ /** Pop Up Position */
2222
+ popupPosition?: "left-bottom" | "left-top" | "right-top" | "right-bottom";
2223
+ /** Number of months to display in calendar (default: 1) */
2224
+ numberOfMonths?: number;
2225
+ /** Show "Now" button to select current date and time */
2226
+ showNowButton?: boolean;
2227
+ }
2228
+ declare function CwDateTimePicker({ value, onChange, minDateTime, maxDateTime, disabledDates, disabledMatcher, timeInterval, minTime, maxTime, labelProps, alignProps, datePlaceholder, timePlaceholder, disabled, required, className, showClear, popupPosition, numberOfMonths, showNowButton, }: Readonly<CwDateTimePickerProps>): react_jsx_runtime.JSX.Element;
2229
+
2230
+ type DateMatcher = Matcher;
2231
+ interface CwDateTimePickerCompactProps {
2232
+ /** Current selected datetime */
2233
+ value?: Date;
2234
+ /** Callback when datetime changes */
2235
+ onChange: (datetime: Date | undefined) => void;
2236
+ /** Minimum selectable datetime */
2237
+ minDateTime?: Date;
2238
+ /** Maximum selectable datetime */
2239
+ maxDateTime?: Date;
2240
+ /** Array of specific dates to disable */
2241
+ disabledDates?: Date[];
2242
+ /** Function to determine if a date should be disabled */
2243
+ disabledMatcher?: DateMatcher;
2244
+ /** Interval in minutes for time selection (default: 15) */
2245
+ timeInterval?: 5 | 10 | 15 | 30 | 60;
2246
+ /** Minimum selectable time in format "HH:mm" */
2247
+ minTime?: string;
2248
+ /** Maximum selectable time in format "HH:mm" */
2249
+ maxTime?: string;
2250
+ /** Props for label component */
2251
+ labelProps?: CwLabelProps;
2252
+ /** Props for alignment */
2253
+ alignProps?: CwAlignProps;
2254
+ /** Placeholder text for input */
2255
+ placeholder?: string;
2256
+ /** Is the input disabled */
2257
+ disabled?: boolean;
2258
+ /** Is the input required */
2259
+ required?: boolean;
2260
+ /** Additional CSS class for container */
2261
+ className?: string;
2262
+ /** Show clear button */
2263
+ showClear?: boolean;
2264
+ /** Pop Up Position */
2265
+ popupPosition?: "left-bottom" | "left-top" | "right-top" | "right-bottom";
2266
+ /** Number of months to display (default: 1) */
2267
+ numberOfMonths?: number;
2268
+ showTodayButton?: boolean;
2269
+ }
2270
+ declare function CwDateTimePickerCompact({ value, onChange, minDateTime, maxDateTime, disabledDates, disabledMatcher, timeInterval, minTime, maxTime, labelProps, alignProps, placeholder, disabled, required, className, showClear, popupPosition, numberOfMonths, showTodayButton, }: Readonly<CwDateTimePickerCompactProps>): react_jsx_runtime.JSX.Element;
2271
+
2272
+ interface CwTimePickerProps {
2273
+ /** Current selected time in format "HH:mm" (24h format) */
2274
+ value?: string;
2275
+ /** Callback when time changes - returns format "HH:mm" */
2276
+ onChange: (time: string | undefined) => void;
2277
+ /** Interval in minutes for time selection (default: 15) */
2278
+ interval?: 5 | 10 | 15 | 30 | 60;
2279
+ /** Minimum selectable time in format "HH:mm" */
2280
+ minTime?: string;
2281
+ /** Maximum selectable time in format "HH:mm" */
2282
+ maxTime?: string;
2283
+ /** Props for label component */
2284
+ labelProps?: CwLabelProps;
2285
+ /** Props for alignment */
2286
+ alignProps?: CwAlignProps;
2287
+ /** Placeholder text for input */
2288
+ placeholder?: string;
2289
+ /** Is the input disabled */
2290
+ disabled?: boolean;
2291
+ /** Is the input required */
2292
+ required?: boolean;
2293
+ /** Additional CSS class for container */
2294
+ className?: string;
2295
+ /** Show clear button */
2296
+ showClear?: boolean;
2297
+ /** Pop Up Position */
2298
+ popupPosition?: "left-bottom" | "left-top" | "right-bottom" | "right-top";
2299
+ /**
2300
+ * Use native time input instead of custom picker
2301
+ * Recommended for mobile devices and better accessibility
2302
+ * @default false on desktop, true on mobile
2303
+ */
2304
+ useNative?: boolean;
2305
+ }
2306
+ declare function CwTimePicker({ value, onChange, interval, minTime, maxTime, labelProps, alignProps, placeholder, disabled, required, className, showClear, popupPosition, useNative, }: CwTimePickerProps): react_jsx_runtime.JSX.Element;
2093
2307
 
2094
2308
  declare class cblEvent$1 {
2095
2309
  id: string;
@@ -2458,7 +2672,7 @@ interface SchedulerEventDm {
2458
2672
  icons?: ReactElement;
2459
2673
  rectangleColors?: string[];
2460
2674
  tooltip?: ReactNode;
2461
- contextMenuItems?: ItemType[];
2675
+ contextMenuItems?: MenuOption[];
2462
2676
  primaryTimeMarkerColor?: string;
2463
2677
  secondaryTimeMarkerColor?: string;
2464
2678
  eventType?: number;
@@ -2511,7 +2725,7 @@ interface SchedulerProps<T extends RowHeaderDm, P extends SchedulerEventDm> {
2511
2725
  events: P[];
2512
2726
  backgroundEvents: BackgroundEventDm[];
2513
2727
  rows: T[];
2514
- contextMenuItems: ItemType[];
2728
+ contextMenuItems: MenuOption[];
2515
2729
  orderCategories?: OrderCategory<T>[];
2516
2730
  useOrderCategory?: boolean;
2517
2731
  RowTitleComp: React__default.ComponentType<RowHeaderProps<T>>;
@@ -2526,7 +2740,7 @@ interface SchedulerRowProps<T extends RowHeaderDm, P extends SchedulerEventDm> {
2526
2740
  events: P[];
2527
2741
  backgroundEvents: BackgroundEventDm[];
2528
2742
  rowHeader: RowHeaderProps<T>;
2529
- contextMenuItems?: ItemType[];
2743
+ contextMenuItems?: MenuOption[];
2530
2744
  EventComp: ComponentType<SchedulerEventState<P>>;
2531
2745
  RowTitleComp: ComponentType<RowHeaderProps<T>>;
2532
2746
  BackgroundEventComp: ComponentType<SchedulerEventState<BackgroundEventDm>>;
@@ -2555,7 +2769,7 @@ type resourceCompProps2 = {
2555
2769
 
2556
2770
  interface PinRowHeaderProps extends RowHeaderDm {
2557
2771
  isPinned: boolean;
2558
- contextMenuItems: ItemType[];
2772
+ contextMenuItems: MenuOption[];
2559
2773
  isLoading: boolean;
2560
2774
  highlightColor?: string;
2561
2775
  tooltip?: ReactNode;
@@ -2571,7 +2785,7 @@ interface SuperSchedulerProps {
2571
2785
  rows: PinRowHeaderProps[];
2572
2786
  events: SchedulerEventDm[];
2573
2787
  backgroundEvents: BackgroundEventDm[];
2574
- contextMenuItems: ItemType[];
2788
+ contextMenuItems: MenuOption[];
2575
2789
  pinnedOrderCategory?: OrderCategory<PinRowHeaderProps>[];
2576
2790
  unPinnedOrderCategory?: OrderCategory<PinRowHeaderProps>[];
2577
2791
  onEvent: OnEvent;
@@ -2602,6 +2816,8 @@ interface CwFindAirportProps {
2602
2816
  disabled?: boolean;
2603
2817
  displayMode?: DisplayMode;
2604
2818
  width?: string;
2819
+ labelProps?: CwLabelProps;
2820
+ alignProps?: CwAlignProps;
2605
2821
  }
2606
2822
  declare const CwFindAirport: React__default.FC<CwFindAirportProps>;
2607
2823
 
@@ -2623,7 +2839,8 @@ declare class OnDoubleClickEvent implements UiEvent {
2623
2839
  }
2624
2840
  declare class OnDragEvent implements UiEvent {
2625
2841
  readonly id: string;
2626
- constructor(id: string);
2842
+ readonly crewId: string;
2843
+ constructor(id: string, crewId: string);
2627
2844
  }
2628
2845
  declare class OnDropEvent implements UiEvent {
2629
2846
  readonly id: string;
@@ -2681,4 +2898,5 @@ declare class OnClickContextMenu implements UiEvent {
2681
2898
  constructor(id: string, clickedMenu: string);
2682
2899
  }
2683
2900
 
2684
- export { type BackgroundEventDm, type CardChip, CblDragAndDrop$1 as CblDragAndDrop, type ChipColorScheme, type ChipVariant, type Column, type ConfirmationPopupProps, CwAccordionContainer, CwAlign, type CwAlignProps, CwBtnAdd, CwBtnAddFolder, CwBtnAirport, CwBtnAlert, CwBtnApprove, CwBtnBookMark, CwBtnBulkDuty, CwBtnCancel, CwBtnCrewPlanning, CwBtnDelay, CwBtnDelete, CwBtnDownLoadAllInfo, CwBtnDownload, CwBtnDropDownMenu, CwBtnEdit, CwBtnEditFolder, CwBtnFiles, CwBtnGeneratePairing, CwBtnGoBackFolder, CwBtnHide, CwBtnImportRequests, CwBtnMVT, CwBtnNavFirstItemView, CwBtnNavLastItemView, CwBtnNavNextDay, CwBtnNavPreviewItem, CwBtnPairing, CwBtnPrint, CwBtnPropertyFolder, CwBtnPublish, CwBtnRefresh, CwBtnReleasePeriod, CwBtnSave, CwBtnSearch, CwBtnSelect, CwBtnShare, CwBtnStatistic, CwBtnUploadFiles, CwBtnVacations, CwBtnView, CwButton, CwButtonDef, CwCard, CwCardList, type CwCardListProps, type CwCardProps, CwCheckbox, CwChip, type CwChipProps, CwColorPicker, CwConfirmationPopup, CwContextMenu, CwContextualMenu, CwDialog, CwDialogManager, type CwDialogProps, CwDigit, CwDisplayMessage, CwDropdown, CwDropdownContainer, CwDropdownFilter, CwExpandable, type CwExpandableProps, CwFileUpload, CwFileUploadMultiple, type CwFilterTabProps, CwFindAirport, CwFloatingButton, CwGenericTooltip, CwHeadFilter, CwHeadingMain, CwHeadingSecond, CwIcon, CwImageArea, type CwImageAreaMethods, type CwImageAreaProps, CwImageGallery, CwImageZoom, CwInput, CwInputColor, CwInputDate, CwInputDatePicker, type CwInputDatePickerProps, type CwInputDateProps, CwInputDateText, type CwInputDateTextProps, CwInputDatetime, type CwInputDatetimeProps, CwInputImage, type CwInputImageProps, CwInputNumber, type CwInputNumberProps, CwInputPhone, type CwInputPhoneProps, CwInputText, type CwInputTextProps, type CwInputTimeProps, CwKeyValueList, type CwKeyValueListProps, CwLabel, type CwLabelProps, CwLoading, CwLoadingSmall, CwMessage, CwMessageManager, type CwMessageProps, CwMessageType, CwModal, CwModalConfirm, CwModalHover, type CwModalHoverProps, CwModalIframe, CwModalReportFunctional, CwMultiFilter, type CwMultiFilterProps, CwMultiFilterTag, type CwMultiFilterTagProps, CwMultiselect, CwNote, type CwNoteProps, CwOption, CwOptionList, CwReportModal, type CwReportModalFunctionalProps, CwScheduler, CwScheduler2, CwSearchInput, CwSelect, CwSelectList, CwSelectListItems, type CwSelectListProps, CwSortableList, type CwSortableListProps, CwSuperScheduler, CwTable, CwTableGrouped, type CwTableGroupedData, type CwTableGroupedData_Group, type CwTableGroupedData_Row, type CwTableGroupedProps, CwTabs, CwTag, CwTextArea, type CwTextAreaProps, CwTime, CwToggle, CwTooltip, type CwTreeNode, CwTreeView, CwWeekdaySelector, type DataItem, DefaultRowHeader, type ICwMultiFilterTag, type ImageItem, MultiSelect, OnClearPinned, OnClickContextMenu, OnClickEvent, OnClickRowEvent, OnClickRowHeader, OnClickUtc, OnDoubleClickEvent, OnDoubleClickRowEvent, OnDragEvent, OnDropCtrlEvent, OnDropEvent, OnEndClickHeaderEvent, type OnEvent, OnLeftDragStart, OnMultiClickEvent, OnPinRow, OnRangeClickEvent, OnRightClickEvent, OnRightClickRow, OnRightDragStart, OnStartClickHeaderEvent, OnUnpinRow, PinRowHeader, type PinRowHeaderProps, Resource, type RowHeaderDm, type RowHeaderProps, Scheduler, SchedulerEvent, type SchedulerEventDm, type SchedulerEventState, type SchedulerRowProps, type SchedulerState, SuperScheduler, type SuperSchedulerProps, type Tab, UiEvent, type Weekday, Weekdays, type ZoomImageItem, cblEvent, type cblEventCompProps, eventIsVisible, getDefaultDivisions, getEventSizes, itemsToMultiFilterTags, type resourceCompProps2, useCwMessage, useSortableList };
2901
+ export { CblDragAndDrop$1 as CblDragAndDrop, CwAccordionContainer, CwAlign, CwAnchoredMenu, CwBtnDelete, CwBtnEdit, CwBtnSave, CwButton, CwCard, CwCardList, CwCheckbox, CwChip, CwColorPicker, CwConfirmationPopup, CwContextMenu, CwDatePicker, CwDateRangePicker, CwDateTimePicker, CwDateTimePickerCompact, CwDialog, CwDialogManager, CwDigit, CwDisplayMessage, CwDropdownFilter, CwExpandable, CwFileUpload, CwFileUploadMultiple, CwFindAirport, CwGenericTooltip, CwHeadingMain, CwHeadingSecond, CwIcon, CwImageArea, CwImageGallery, CwImageZoom, CwInput, CwInputColor, CwInputDate, CwInputDatePicker, CwInputDateText, CwInputDatetime, CwInputImage, CwInputNumber, CwInputPhone, CwInputText, CwKeyValueList, CwLabel, CwLoading, CwLoadingSmall, CwMessage, CwMessageManager, CwMessageType, CwModal, CwModalHover, CwModalReportFunctional, CwMultiFilter, CwMultiFilterTag, CwNote, CwOption, CwReportModal, CwScheduler, CwScheduler2, CwSearchInput, CwSelect, CwSelectList, CwSelectListItems, CwSortableList, CwSuperScheduler, CwTable, CwTableGrouped, CwTableServerSide, CwTabs, CwTextArea, CwTime, CwTimePicker, CwToggle, CwTooltip, CwTreeView, CwWeekdaySelector, DefaultRowHeader, OnClearPinned, OnClickContextMenu, OnClickEvent, OnClickRowEvent, OnClickRowHeader, OnClickUtc, OnDoubleClickEvent, OnDoubleClickRowEvent, OnDragEvent, OnDropCtrlEvent, OnDropEvent, OnEndClickHeaderEvent, OnLeftDragStart, OnMultiClickEvent, OnPinRow, OnRangeClickEvent, OnRightClickEvent, OnRightClickRow, OnRightDragStart, OnStartClickHeaderEvent, OnUnpinRow, PinRowHeader, Resource, Scheduler, SchedulerEvent, SuperScheduler, UiEvent, Weekdays, cblEvent, eventIsVisible, getDefaultDivisions, getEventSizes, itemsToMultiFilterTags, useCwMessage, useSortableList };
2902
+ export type { BackgroundEventDm, CardChip, ChipColorScheme, ChipVariant, Column$1 as Column, ConfirmationPopupProps, CwAlignProps, CwCardListProps, CwCardProps, CwChipProps, CwDialogProps, CwExpandableProps, CwImageAreaMethods, CwImageAreaProps, CwInputDatePickerProps, CwInputDateProps, CwInputDateTextProps, CwInputDatetimeProps, CwInputImageProps, CwInputNumberProps, CwInputPhoneProps, CwInputTextProps, CwInputTimeProps, CwKeyValueListProps, CwLabelProps, CwMessageProps, CwModalHoverProps, CwMultiFilterProps, CwMultiFilterTagProps, CwNoteProps, CwReportModalFunctionalProps, CwSelectListProps, CwSortableListProps, CwTableGroupedData, CwTableGroupedData_Group, CwTableGroupedData_Row, CwTableGroupedProps, CwTextAreaProps, CwTreeNode, DataItem, DateRangeValue, ICwMultiFilterTag, ImageItem, MenuOption, OnEvent, PinRowHeaderProps, RowHeaderDm, RowHeaderProps, SchedulerEventDm, SchedulerEventState, SchedulerRowProps, SchedulerState, ServerSideTableState, SuperSchedulerProps, Tab, Weekday, ZoomImageItem, cblEventCompProps, resourceCompProps2 };