@cwellt_software/cwellt-reactjs-lib 1.4.0 → 1.4.2

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 (39) hide show
  1. package/dist/index.cjs.js +586 -213
  2. package/dist/index.css +2 -2
  3. package/dist/index.d.ts +205 -5
  4. package/dist/index.es.js +585 -214
  5. package/dist/src/common/hooks/useDropdownPortal.d.ts +86 -0
  6. package/dist/src/common/hooks/useDropdownPortal.d.ts.map +1 -0
  7. package/dist/src/components/control/action/search/CwSearch.d.ts +22 -0
  8. package/dist/src/components/control/action/search/CwSearch.d.ts.map +1 -1
  9. package/dist/src/components/control/choice/multi-filter/CwMultiFilter.d.ts.map +1 -1
  10. package/dist/src/components/control/choice/option/CwOption.d.ts +3 -1
  11. package/dist/src/components/control/choice/option/CwOption.d.ts.map +1 -1
  12. package/dist/src/components/control/choice/select/CwDropdown.d.ts +56 -0
  13. package/dist/src/components/control/choice/select/CwDropdown.d.ts.map +1 -0
  14. package/dist/src/components/control/choice/select/CwSelect.d.ts.map +1 -1
  15. package/dist/src/components/control/choice/tag-selector/CwTagSelector.d.ts +68 -0
  16. package/dist/src/components/control/choice/tag-selector/CwTagSelector.d.ts.map +1 -0
  17. package/dist/src/components/control/input/new-dates/CwDatePickerTemporal.d.ts +48 -0
  18. package/dist/src/components/control/input/new-dates/CwDatePickerTemporal.d.ts.map +1 -0
  19. package/dist/src/components/control/input/new-dates/datePickerHelpers.d.ts +20 -0
  20. package/dist/src/components/control/input/new-dates/datePickerHelpers.d.ts.map +1 -0
  21. package/dist/src/components/control/input/new-dates/usePickerPopup.d.ts +7 -8
  22. package/dist/src/components/control/input/new-dates/usePickerPopup.d.ts.map +1 -1
  23. package/dist/src/components/custom/find-airport/CwFindAirportComp.d.ts +36 -1
  24. package/dist/src/components/custom/find-airport/CwFindAirportComp.d.ts.map +1 -1
  25. package/dist/src/components/custom/find-crewmember/CwFindCrewmemberComp.d.ts +26 -0
  26. package/dist/src/components/custom/find-crewmember/CwFindCrewmemberComp.d.ts.map +1 -1
  27. package/dist/src/components/display/data/table/CwTable.d.ts.map +1 -1
  28. package/dist/src/components/display/data/table-serverside/CwTableServerSide.d.ts +2 -1
  29. package/dist/src/components/display/data/table-serverside/CwTableServerSide.d.ts.map +1 -1
  30. package/dist/src/index.d.ts +2 -0
  31. package/dist/src/index.d.ts.map +1 -1
  32. package/dist/src/playground/PlaygroundApp.d.ts.map +1 -1
  33. package/dist/src/playground/pages/DatePickerTemporalPage.d.ts +3 -0
  34. package/dist/src/playground/pages/DatePickerTemporalPage.d.ts.map +1 -0
  35. package/dist/src/playground/pages/SelectorsPage.d.ts +3 -0
  36. package/dist/src/playground/pages/SelectorsPage.d.ts.map +1 -0
  37. package/dist/test/components/control/input/new-dates/datePickerHelpers.test.d.ts +2 -0
  38. package/dist/test/components/control/input/new-dates/datePickerHelpers.test.d.ts.map +1 -0
  39. package/package.json +1 -1
@@ -0,0 +1,86 @@
1
+ import React from "react";
2
+ export interface DropdownPanelStyle {
3
+ position: "fixed";
4
+ top: number;
5
+ left: number;
6
+ width: number | "auto";
7
+ zIndex: number;
8
+ right: "auto";
9
+ marginLeft: 0;
10
+ }
11
+ /**
12
+ * Custom position calculator. Receives the anchor's bounding rect and the
13
+ * panel's bounding rect (null on the first render before the panel has been
14
+ * measured). Must return `top`, `left`, and optionally `width`.
15
+ *
16
+ * When omitted, the default strategy positions the panel directly below the
17
+ * anchor, matching its width, and flips above when there is not enough space.
18
+ */
19
+ export type DropdownPositionStrategy = (anchorRect: DOMRect, panelRect: DOMRect | null) => {
20
+ top: number;
21
+ left: number;
22
+ width?: number;
23
+ };
24
+ interface UseDropdownPortalOptions {
25
+ /** Ref to the element the panel should anchor to (e.g. the input wrapper). */
26
+ anchorRef: React.RefObject<HTMLElement | null>;
27
+ /** Whether the panel is currently open. */
28
+ isOpen: boolean;
29
+ /** Called when the user clicks outside both the anchor and the panel. */
30
+ onClose: () => void;
31
+ /**
32
+ * Override the default below-anchor positioning strategy.
33
+ * Used by {@link usePickerPopup} for directional calendar placement.
34
+ */
35
+ positionStrategy?: DropdownPositionStrategy;
36
+ }
37
+ interface UseDropdownPortalReturn {
38
+ /** Attach to the root element of the rendered panel. */
39
+ panelRef: React.RefObject<HTMLDivElement>;
40
+ /** Apply as `style` on the panel root element. */
41
+ panelStyle: DropdownPanelStyle;
42
+ /**
43
+ * Wraps the panel JSX in a `createPortal` call.
44
+ * Returns `null` when `isOpen` is `false`.
45
+ */
46
+ renderPanel: (children: React.ReactNode) => React.ReactNode | null;
47
+ }
48
+ /**
49
+ * Generic portal-based dropdown panel hook.
50
+ *
51
+ * Renders the panel as a direct child of `<body>` via `createPortal` so it
52
+ * escapes any `overflow: hidden/auto` ancestor (dialogs, tabs, cards, etc.).
53
+ * Positions the panel with `position: fixed` computed from the anchor element's
54
+ * `getBoundingClientRect()`, and repositions on scroll and resize.
55
+ *
56
+ * The fix pattern is the same as {@link usePickerPopup} used by `CwDatePicker`.
57
+ *
58
+ * > **Future migration note:** Once the project's minimum browser baseline
59
+ * > reaches Firefox 147 / Safari 26 (CSS Anchor Positioning — Baseline 2026),
60
+ * > this hook can be replaced with `popover="manual"` + CSS `anchor()` with
61
+ * > zero JS positioning.
62
+ *
63
+ * @example
64
+ * ```tsx
65
+ * const wrapperRef = useRef<HTMLDivElement>(null);
66
+ * const { panelRef, panelStyle, renderPanel } = useDropdownPortal({
67
+ * anchorRef: wrapperRef,
68
+ * isOpen,
69
+ * onClose: () => setIsOpen(false),
70
+ * });
71
+ *
72
+ * return (
73
+ * <div ref={wrapperRef}>
74
+ * <input ... />
75
+ * {renderPanel(
76
+ * <div ref={panelRef} style={panelStyle} className={styles.dropdown}>
77
+ * {options}
78
+ * </div>
79
+ * )}
80
+ * </div>
81
+ * );
82
+ * ```
83
+ */
84
+ export declare function useDropdownPortal({ anchorRef, isOpen, onClose, positionStrategy, }: UseDropdownPortalOptions): UseDropdownPortalReturn;
85
+ export {};
86
+ //# sourceMappingURL=useDropdownPortal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDropdownPortal.d.ts","sourceRoot":"","sources":["../../../../src/common/hooks/useDropdownPortal.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,MAAM,WAAW,kBAAkB;IAClC,QAAQ,EAAE,OAAO,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,CAAC,CAAC;CACd;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,wBAAwB,GAAG,CACtC,UAAU,EAAE,OAAO,EACnB,SAAS,EAAE,OAAO,GAAG,IAAI,KACrB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnD,UAAU,wBAAwB;IACjC,8EAA8E;IAC9E,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAC/C,2CAA2C;IAC3C,MAAM,EAAE,OAAO,CAAC;IAChB,yEAAyE;IACzE,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,wBAAwB,CAAC;CAC5C;AAED,UAAU,uBAAuB;IAChC,wDAAwD;IACxD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC1C,kDAAkD;IAClD,UAAU,EAAE,kBAAkB,CAAC;IAC/B;;;OAGG;IACH,WAAW,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;CACnE;AAmBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,iBAAiB,CAAC,EACjC,SAAS,EACT,MAAM,EACN,OAAO,EACP,gBAA0C,GAC1C,EAAE,wBAAwB,GAAG,uBAAuB,CAsFpD"}
@@ -3,18 +3,40 @@ import { CwSelectList } from "../../../../common/classes/CwSelectList";
3
3
  import { type CwIconProps } from "../../../../components/display/graphics/icon/CwIcon";
4
4
  import { CwLabelProps } from "../../../../components/display/text/label/CwLabel";
5
5
  import { CwAlignProps } from "../../../../components/layout/align/CwAlign";
6
+ /** Props for {@link CwSearchInput}. */
6
7
  export interface CwSearchInputProps extends HTMLProps<HTMLDivElement> {
8
+ /** List of items to search through. Each item must be a `CwSelectList` instance. */
7
9
  selectList: Array<CwSelectList>;
10
+ /** Props forwarded to the internal `CwLabel`. */
8
11
  labelProps?: CwLabelProps;
12
+ /** Props forwarded to the optional leading icon. */
9
13
  iconProps?: CwIconProps;
14
+ /** Props forwarded to the `CwAlign` layout wrapper. */
10
15
  alignProps?: CwAlignProps;
16
+ /** Called with the `id` of the selected `CwSelectList` item. */
11
17
  handleChange?: (value: any) => void;
18
+ /** Input placeholder text. Defaults to `"Search…"`. */
12
19
  placeholder?: string;
13
20
  className?: string;
14
21
  style?: React.CSSProperties;
22
+ /** Disables the input when `true`. */
15
23
  disabled?: boolean;
24
+ /** Renders the input in error state when `true`. */
16
25
  error?: boolean;
26
+ /** Custom renderer for each suggestion item. Receives the matching `CwSelectList` entry. */
17
27
  renderOption?: (option: CwSelectList) => React.ReactNode;
18
28
  }
29
+ /**
30
+ * Text input with a live-filtered suggestion dropdown backed by a local `CwSelectList` array.
31
+ * Use `CwFindAirport` or `CwFindCrewmember` for API-backed search inputs.
32
+ *
33
+ * @example
34
+ * <CwSearchInput
35
+ * selectList={myItems}
36
+ * handleChange={(id) => console.log('selected', id)}
37
+ * labelProps={{ text: 'Employee' }}
38
+ * placeholder="Search by name…"
39
+ * />
40
+ */
19
41
  export declare function CwSearchInput(optionsProps: React.PropsWithChildren<CwSearchInputProps>): import("react/jsx-runtime").JSX.Element;
20
42
  //# sourceMappingURL=CwSearch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CwSearch.d.ts","sourceRoot":"","sources":["../../../../../../src/components/control/action/search/CwSearch.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAuB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AAEvE,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,qDAAqD,CAAC;AAC/F,OAAO,EAAW,YAAY,EAAE,MAAM,mDAAmD,CAAC;AAC1F,OAAO,EAAW,YAAY,EAAE,MAAM,6CAA6C,CAAC;AAEpF,MAAM,WAAW,kBAAmB,SAAQ,SAAS,CAAC,cAAc,CAAC;IACpE,UAAU,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IAEhC,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,UAAU,CAAC,EAAE,YAAY,CAAC;IAE1B,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,KAAK,CAAC,SAAS,CAAC;CACzD;AAED,wBAAgB,aAAa,CAAC,YAAY,EAAE,KAAK,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,2CAgKtF"}
1
+ {"version":3,"file":"CwSearch.d.ts","sourceRoot":"","sources":["../../../../../../src/components/control/action/search/CwSearch.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AAIvE,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,qDAAqD,CAAC;AAC/F,OAAO,EAAW,YAAY,EAAE,MAAM,mDAAmD,CAAC;AAC1F,OAAO,EAAW,YAAY,EAAE,MAAM,6CAA6C,CAAC;AAEpF,uCAAuC;AACvC,MAAM,WAAW,kBAAmB,SAAQ,SAAS,CAAC,cAAc,CAAC;IACpE,oFAAoF;IACpF,UAAU,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IAChC,iDAAiD;IACjD,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,oDAAoD;IACpD,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,uDAAuD;IACvD,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,gEAAgE;IAChE,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IACpC,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,sCAAsC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oDAAoD;IACpD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,4FAA4F;IAC5F,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,KAAK,CAAC,SAAS,CAAC;CACzD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,YAAY,EAAE,KAAK,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,2CAuKtF"}
@@ -1 +1 @@
1
- {"version":3,"file":"CwMultiFilter.d.ts","sourceRoot":"","sources":["../../../../../../src/components/control/choice/multi-filter/CwMultiFilter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,EAA+B,MAAM,OAAO,CAAC;AAE/D,OAAO,EAAoB,qBAAqB,EAAE,KAAK,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAGpH,MAAM,WAAW,kBAAkB;IAClC,qDAAqD;IACrD,EAAE,EAAE,MAAM,CAAC;IACX,sGAAsG;IACtG,oBAAoB,EAAE,CAAC,YAAY,EAAE,GAAG,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IACrE,uCAAuC;IACvC,OAAO,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAChC,4CAA4C;IAC5C,YAAY,EAAE,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACzC,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0IG;AACH,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,kBAAkB,CA8PhD,CAAC"}
1
+ {"version":3,"file":"CwMultiFilter.d.ts","sourceRoot":"","sources":["../../../../../../src/components/control/choice/multi-filter/CwMultiFilter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,EAA+B,MAAM,OAAO,CAAC;AAI/D,OAAO,EAAoB,qBAAqB,EAAE,KAAK,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAGpH,MAAM,WAAW,kBAAkB;IAClC,qDAAqD;IACrD,EAAE,EAAE,MAAM,CAAC;IACX,sGAAsG;IACtG,oBAAoB,EAAE,CAAC,YAAY,EAAE,GAAG,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IACrE,uCAAuC;IACvC,OAAO,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAChC,4CAA4C;IAC5C,YAAY,EAAE,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACzC,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0IG;AACH,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,kBAAkB,CA4PhD,CAAC"}
@@ -1,6 +1,8 @@
1
1
  import { HTMLProps, PropsWithChildren } from "react";
2
2
  export interface CwOptionProps extends Omit<HTMLProps<PropsWithChildren<HTMLOptionElement>>, "className"> {
3
3
  text?: string;
4
+ /** Background color for the option (hex or CSS color). Renders as a colored bar on the left of the option text. */
5
+ color?: string;
4
6
  }
5
7
  /**
6
8
  * Option to display in the CwSelect
@@ -9,7 +11,7 @@ export interface CwOptionProps extends Omit<HTMLProps<PropsWithChildren<HTMLOpti
9
11
  * @example
10
12
  * <CwSelect>
11
13
  * <CwOption>A</CwOption>
12
- * <CwOption>B</CwOption>
14
+ * <CwOption color="#4a90d9">Blue option</CwOption>
13
15
  * <CwOption>C</CwOption>
14
16
  * </CwSelect>
15
17
  */
@@ -1 +1 @@
1
- {"version":3,"file":"CwOption.d.ts","sourceRoot":"","sources":["../../../../../../src/components/control/choice/option/CwOption.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAErD,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,EAAE,WAAW,CAAC;IACxG,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,2CAO5C"}
1
+ {"version":3,"file":"CwOption.d.ts","sourceRoot":"","sources":["../../../../../../src/components/control/choice/option/CwOption.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAGrD,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,EAAE,WAAW,CAAC;IACxG,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mHAAmH;IACnH,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,2CAU5C"}
@@ -0,0 +1,56 @@
1
+ import React from "react";
2
+ import type { CwInputFeedback } from "../../../../common/interfaces/CwFormTypes";
3
+ import { CwLabelProps } from "../../../../components/display/text/label/CwLabel";
4
+ import { CwAlignProps } from "../../../../components/layout/align/CwAlign";
5
+ import "./cw-dropdown.css";
6
+ /** A single selectable option in a {@link CwDropdown}. */
7
+ export interface CwDropdownOption {
8
+ /** Unique option identifier passed to `onChange`. */
9
+ value: string | number;
10
+ /** Display text shown in the trigger and option list. */
11
+ label: string;
12
+ /** Optional background color (any valid CSS value). Shown as a small dot next to the label. */
13
+ color?: string;
14
+ /** When `true` the option is rendered but cannot be selected. */
15
+ disabled?: boolean;
16
+ }
17
+ /** Props for {@link CwDropdown}. */
18
+ export interface CwDropdownProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "onChange"> {
19
+ /** Array of options to display */
20
+ options: CwDropdownOption[];
21
+ /** Current selected value */
22
+ value?: string | number;
23
+ /** Callback when value changes */
24
+ onChange?: (value: string | number | undefined) => void;
25
+ /** Props for label component */
26
+ labelProps?: CwLabelProps;
27
+ /** Props for alignment */
28
+ alignProps?: CwAlignProps;
29
+ /** Placeholder text */
30
+ placeholder?: string;
31
+ /** Show search input (optional) */
32
+ allowSearch?: boolean;
33
+ /** Is disabled */
34
+ disabled?: boolean;
35
+ /** Is required */
36
+ required?: boolean;
37
+ /** Feedback messages */
38
+ feedback?: CwInputFeedback | CwInputFeedback[];
39
+ }
40
+ /**
41
+ * Custom dropdown component with colour-coded options, optional search filter, and full
42
+ * keyboard navigation (↑ ↓ Enter Esc Tab).
43
+ *
44
+ * Use `CwDropdown` instead of the native `<select>` when options need colour indicators or
45
+ * when inline search filtering is required.
46
+ *
47
+ * @example
48
+ * <CwDropdown
49
+ * options={[{ value: 'a', label: 'Option A', color: '#1976D2' }]}
50
+ * value={selected}
51
+ * onChange={setSelected}
52
+ * labelProps={{ text: 'My Label' }}
53
+ * />
54
+ */
55
+ export declare function CwDropdown({ options, value, onChange, labelProps, alignProps, placeholder, allowSearch, disabled, required, feedback, className, style, ...otherProps }: CwDropdownProps): import("react/jsx-runtime").JSX.Element;
56
+ //# sourceMappingURL=CwDropdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CwDropdown.d.ts","sourceRoot":"","sources":["../../../../../../src/components/control/choice/select/CwDropdown.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAExE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAGjF,OAAO,EAAW,YAAY,EAAE,MAAM,mDAAmD,CAAC;AAC1F,OAAO,EAAW,YAAY,EAAE,MAAM,6CAA6C,CAAC;AACpF,OAAO,mBAAmB,CAAC;AAE3B,0DAA0D;AAC1D,MAAM,WAAW,gBAAgB;IAChC,qDAAqD;IACrD,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,yDAAyD;IACzD,KAAK,EAAE,MAAM,CAAC;IACd,+FAA+F;IAC/F,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,oCAAoC;AACpC,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC;IAC9F,kCAAkC;IAClC,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IACxD,gCAAgC;IAChC,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,0BAA0B;IAC1B,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mCAAmC;IACnC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kBAAkB;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kBAAkB;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,eAAe,GAAG,eAAe,EAAE,CAAC;CAC/C;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,UAAU,CAAC,EAC1B,OAAO,EACP,KAAK,EACL,QAAQ,EACR,UAAU,EACV,UAAU,EACV,WAAyB,EACzB,WAAmB,EACnB,QAAgB,EAChB,QAAgB,EAChB,QAAQ,EACR,SAAS,EACT,KAAK,EACL,GAAG,UAAU,EACb,EAAE,eAAe,2CAuOjB"}
@@ -1 +1 @@
1
- {"version":3,"file":"CwSelect.d.ts","sourceRoot":"","sources":["../../../../../../src/components/control/choice/select/CwSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAY,aAAa,EAAE,MAAM,uDAAuD,CAAC;AAChG,OAAO,EAAU,WAAW,EAAE,MAAM,qDAAqD,CAAC;AAC1F,OAAO,EAAW,YAAY,EAAE,MAAM,mDAAmD,CAAC;AAC1F,OAAO,EAAW,YAAY,EAAE,MAAM,6CAA6C,CAAC;AAGpF,MAAM,WAAW,aAChB,SAAQ,iBAAiB,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACrF;kDAC8C;IAC9C,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B;6CACyC;IACzC,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B;2DACuD;IACvD,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B;4CACwC;IACxC,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB;iDAC6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;MAGE;IACF,QAAQ,CAAC,EAAE,eAAe,GAAG,eAAe,EAAE,CAAC;CAC/C;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,2CAkC5C"}
1
+ {"version":3,"file":"CwSelect.d.ts","sourceRoot":"","sources":["../../../../../../src/components/control/choice/select/CwSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAY,aAAa,EAAE,MAAM,uDAAuD,CAAC;AAChG,OAAO,EAAU,WAAW,EAAE,MAAM,qDAAqD,CAAC;AAC1F,OAAO,EAAW,YAAY,EAAE,MAAM,mDAAmD,CAAC;AAC1F,OAAO,EAAW,YAAY,EAAE,MAAM,6CAA6C,CAAC;AAGpF,MAAM,WAAW,aAChB,SAAQ,iBAAiB,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACrF;kDAC8C;IAC9C,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B;6CACyC;IACzC,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B;2DACuD;IACvD,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B;4CACwC;IACxC,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB;iDAC6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;MAGE;IACF,QAAQ,CAAC,EAAE,eAAe,GAAG,eAAe,EAAE,CAAC;CAC/C;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,2CAoC5C"}
@@ -0,0 +1,68 @@
1
+ import React from "react";
2
+ import type { CwInputFeedback } from "../../../../common/interfaces/CwFormTypes";
3
+ import type { CwIconProps } from "../../../../components/display/graphics/icon/CwIcon";
4
+ import type { CwLabelProps } from "../../../../components/display/text/label/CwLabel";
5
+ import type { CwAlignProps } from "../../../../components/layout/align/CwAlign";
6
+ export interface CwTagSelectorOption {
7
+ /** Unique value identifying this option */
8
+ value: string;
9
+ /** Display text */
10
+ label: string;
11
+ /** Background color for the chip tag (any valid CSS color) */
12
+ color?: string;
13
+ /** Tooltip text shown on hover */
14
+ tooltip?: string;
15
+ }
16
+ export interface CwTagSelectorProps {
17
+ /** HTML id */
18
+ id?: string;
19
+ /** All available options */
20
+ options: CwTagSelectorOption[];
21
+ /** Currently selected values */
22
+ value: string[];
23
+ /** Called when selection changes */
24
+ onChange: (selectedValues: string[]) => void;
25
+ /** Label */
26
+ labelProps?: CwLabelProps;
27
+ /** Icon */
28
+ iconProps?: CwIconProps;
29
+ /** Layout */
30
+ alignProps?: CwAlignProps;
31
+ /** Placeholder when nothing is selected */
32
+ placeholder?: string;
33
+ /** Disabled state */
34
+ disabled?: boolean;
35
+ /** Show a "Select all" toggle at the top of the dropdown */
36
+ showSelectAll?: boolean;
37
+ /** Feedback messages */
38
+ feedback?: CwInputFeedback | CwInputFeedback[];
39
+ /** Additional CSS class */
40
+ className?: string;
41
+ /** Inline styles */
42
+ style?: React.CSSProperties;
43
+ }
44
+ /**
45
+ * Multi-select input with chip tags and searchable dropdown.
46
+ * Works like a Kendo MultiSelect: selected items appear as removable chips
47
+ * inside the input area, and a filtered dropdown lets the user pick more.
48
+ *
49
+ * @example
50
+ * ```tsx
51
+ * const options = [
52
+ * { value: "1", label: "Alpha" },
53
+ * { value: "2", label: "Bravo" },
54
+ * { value: "3", label: "Charlie" },
55
+ * ];
56
+ * const [selected, setSelected] = useState<string[]>([]);
57
+ *
58
+ * <CwTagSelector
59
+ * labelProps={{ text: "Tags" }}
60
+ * options={options}
61
+ * value={selected}
62
+ * onChange={setSelected}
63
+ * placeholder="Select items…"
64
+ * />
65
+ * ```
66
+ */
67
+ export declare function CwTagSelector({ id, options, value, onChange, labelProps, iconProps, alignProps, placeholder, disabled, showSelectAll, feedback, className, style, }: CwTagSelectorProps): import("react/jsx-runtime").JSX.Element;
68
+ //# sourceMappingURL=CwTagSelector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CwTagSelector.d.ts","sourceRoot":"","sources":["../../../../../../src/components/control/choice/tag-selector/CwTagSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAEjF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qDAAqD,CAAC;AAEvF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mDAAmD,CAAC;AAEtF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6CAA6C,CAAC;AAMhF,MAAM,WAAW,mBAAmB;IACnC,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,8DAA8D;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IAClC,cAAc;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,4BAA4B;IAC5B,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,gCAAgC;IAChC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,oCAAoC;IACpC,QAAQ,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC7C,YAAY;IACZ,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,WAAW;IACX,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,aAAa;IACb,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,2CAA2C;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4DAA4D;IAC5D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,eAAe,GAAG,eAAe,EAAE,CAAC;IAC/C,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,aAAa,CAAC,EAC7B,EAAE,EACF,OAAO,EACP,KAAK,EACL,QAAQ,EACR,UAAU,EACV,SAAS,EACT,UAAU,EACV,WAAuB,EACvB,QAAgB,EAChB,aAAqB,EACrB,QAAQ,EACR,SAAS,EACT,KAAK,GACL,EAAE,kBAAkB,2CAsNpB"}
@@ -0,0 +1,48 @@
1
+ import type { CwInputFeedback } from "../../../../common/interfaces/CwFormTypes";
2
+ import { Matcher } from "react-day-picker";
3
+ import "react-day-picker/dist/style.css";
4
+ import { CwLabelProps } from "../../../display/text/label/CwLabel";
5
+ import { CwAlignProps } from "../../../layout/align/CwAlign";
6
+ export type DateMatcher = Matcher;
7
+ export interface CwDatePickerTemporalProps {
8
+ /** Current selected date */
9
+ value?: Temporal.PlainDate;
10
+ /** Callback when date changes */
11
+ onChange: (date: Temporal.PlainDate | undefined) => void;
12
+ /** Minimum selectable date */
13
+ minDate?: Temporal.PlainDate;
14
+ /** Maximum selectable date */
15
+ maxDate?: Temporal.PlainDate;
16
+ /** Array of specific dates to disable */
17
+ disabledDates?: Temporal.PlainDate[];
18
+ /** Function to determine if a date should be disabled */
19
+ disabledMatcher?: DateMatcher;
20
+ /** Default month to display when calendar opens */
21
+ defaultMonth?: Temporal.PlainYearMonth;
22
+ /** Props for label component */
23
+ labelProps?: CwLabelProps;
24
+ /** Props for alignment */
25
+ alignProps?: CwAlignProps;
26
+ /** Placeholder text for input */
27
+ placeholder?: string;
28
+ /** Display format for the input (default: dd/MM/yyyy) */
29
+ displayFormat?: string;
30
+ /** Is the input disabled */
31
+ disabled?: boolean;
32
+ /** Is the input required */
33
+ required?: boolean;
34
+ /** Additional CSS class for container */
35
+ className?: string;
36
+ /** Show clear button */
37
+ showClear?: boolean;
38
+ /** Pop Up Position */
39
+ popupPosition?: "left-bottom" | "left-top" | "right-top" | "right-bottom";
40
+ /** Number of months to display (default: 1) */
41
+ numberOfMonths?: number;
42
+ showTodayButton?: boolean;
43
+ todayLabel?: string;
44
+ /** Feedback messages shown below the input */
45
+ feedback?: CwInputFeedback | CwInputFeedback[];
46
+ }
47
+ export declare function CwDatePickerTemporal({ value, onChange, minDate, maxDate, disabledDates, disabledMatcher, defaultMonth, labelProps, alignProps, placeholder, displayFormat, disabled, required, className, showClear, popupPosition, numberOfMonths, showTodayButton, todayLabel, feedback, }: Readonly<CwDatePickerTemporalProps>): import("react/jsx-runtime").JSX.Element;
48
+ //# sourceMappingURL=CwDatePickerTemporal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CwDatePickerTemporal.d.ts","sourceRoot":"","sources":["../../../../../../src/components/control/input/new-dates/CwDatePickerTemporal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,2CAA2C,CAAC;AAE/E,OAAO,EAAY,OAAO,EAAC,MAAM,kBAAkB,CAAC;AACpD,OAAO,iCAAiC,CAAC;AAEzC,OAAO,EAAU,YAAY,EAAC,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAU,YAAY,EAAC,MAAM,+BAA+B,CAAC;AAMpE,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC;AAElC,MAAM,WAAW,yBAAyB;IACzC,4BAA4B;IAC5B,KAAK,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC;IAC3B,iCAAiC;IACjC,QAAQ,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,GAAG,SAAS,KAAK,IAAI,CAAC;IAGzD,8BAA8B;IAC9B,OAAO,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC;IAC7B,8BAA8B;IAC9B,OAAO,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC;IAC7B,yCAAyC;IACzC,aAAa,CAAC,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC;IACrC,yDAAyD;IACzD,eAAe,CAAC,EAAE,WAAW,CAAC;IAC9B,mDAAmD;IACnD,YAAY,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC;IAGvC,gCAAgC;IAChC,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,0BAA0B;IAC1B,UAAU,CAAC,EAAE,YAAY,CAAC;IAG1B,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wBAAwB;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,sBAAsB;IACtB,aAAa,CAAC,EAAE,aAAa,GAAG,UAAU,GAAG,WAAW,GAAG,cAAc,CAAC;IAG1E,+CAA+C;IAC/C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,eAAe,GAAG,eAAe,EAAE,CAAC;CAC/C;AAGD,wBAAgB,oBAAoB,CAAC,EACpC,KAAK,EACL,QAAQ,EACR,OAAO,EACP,OAAO,EACP,aAAa,EACb,eAAe,EACf,YAAY,EACZ,UAAU,EACV,UAAU,EACV,WAA6B,EAC7B,aAA4B,EAC5B,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,SAAgB,EAChB,aAA6B,EAC7B,cAAkB,EAClB,eAAuB,EACvB,UAAoB,EACpB,QAAQ,GACR,EAAE,QAAQ,CAAC,yBAAyB,CAAC,2CAqMrC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Resolves a 2-digit year into a 4-digit year using a sliding window
3
+ * based on the current year. The window spans from (currentYear - 80)
4
+ * to (currentYear + 19), so two-digit years are always mapped to the
5
+ * nearest century within that 100-year range.
6
+ *
7
+ * Example (currentYear = 2026):
8
+ * 00–46 → 2000–2046
9
+ * 47–99 → 1947–1999
10
+ */
11
+ export declare function resolveTwoDigitYear(twoDigitYear: number, currentYear?: number): number;
12
+ export declare const parseDate: (dateString: string, formatStr: string) => Temporal.PlainDate | undefined;
13
+ export declare const validate: (parsed: Temporal.PlainDate | undefined, minDate: Temporal.PlainDate | undefined, maxDate: Temporal.PlainDate | undefined) => boolean;
14
+ /** Temporal.PlainDate -> JS Date (for DayPicker interop) */
15
+ export declare function plainDateToJsDate(pd: Temporal.PlainDate): Date;
16
+ /** JS Date -> Temporal.PlainDate */
17
+ export declare function jsDateToPlainDate(d: Date): Temporal.PlainDate;
18
+ /** Format a PlainDate using a simple format string (dd, MM, yyyy tokens) */
19
+ export declare function formatPlainDate(pd: Temporal.PlainDate, fmt: string): string;
20
+ //# sourceMappingURL=datePickerHelpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datePickerHelpers.d.ts","sourceRoot":"","sources":["../../../../../../src/components/control/input/new-dates/datePickerHelpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAUtF;AAED,eAAO,MAAM,SAAS,GAAI,YAAY,MAAM,EAAE,WAAW,MAAM,KAAG,QAAQ,CAAC,SAAS,GAAG,SA8CtF,CAAC;AAEF,eAAO,MAAM,QAAQ,GACpB,QAAQ,QAAQ,CAAC,SAAS,GAAG,SAAS,EACtC,SAAS,QAAQ,CAAC,SAAS,GAAG,SAAS,EACvC,SAAS,QAAQ,CAAC,SAAS,GAAG,SAAS,KACrC,OAKF,CAAC;AAEF,4DAA4D;AAC5D,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,QAAQ,CAAC,SAAS,GAAG,IAAI,CAE9D;AAED,oCAAoC;AACpC,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,IAAI,GAAG,QAAQ,CAAC,SAAS,CAM7D;AAED,4EAA4E;AAC5E,wBAAgB,eAAe,CAAC,EAAE,EAAE,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAM3E"}
@@ -5,20 +5,19 @@ interface PickerPopupOptions {
5
5
  onClose: () => void;
6
6
  position?: PopupPosition;
7
7
  }
8
- interface PopupStyle {
9
- position: "fixed";
10
- top: number;
11
- left: number;
12
- zIndex: number;
13
- }
14
8
  /**
15
9
  * Renders a picker popup in a portal so it escapes overflow containers.
16
10
  * Positions itself relative to the anchor element.
11
+ *
12
+ * Thin wrapper around {@link useDropdownPortal} that adds directional
13
+ * preference logic ("left-bottom", "right-top", etc.) for calendar popups.
14
+ * The public API is unchanged — existing callers (`CwDatePicker`, etc.) need
15
+ * no modifications.
17
16
  */
18
17
  export declare function usePickerPopup({ anchorRef, isOpen, onClose, position }: PickerPopupOptions): {
19
18
  popupRef: import("react").RefObject<HTMLDivElement>;
20
- popupStyle: PopupStyle;
21
- renderPopup: (children: React.ReactNode) => import("react").ReactPortal | null;
19
+ popupStyle: import("../../../../common/hooks/useDropdownPortal").DropdownPanelStyle;
20
+ renderPopup: (children: React.ReactNode) => React.ReactNode | null;
22
21
  };
23
22
  export {};
24
23
  //# sourceMappingURL=usePickerPopup.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"usePickerPopup.d.ts","sourceRoot":"","sources":["../../../../../../src/components/control/input/new-dates/usePickerPopup.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,UAAU,GAAG,cAAc,GAAG,WAAW,CAAC;AAEtF,UAAU,kBAAkB;IAC3B,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAC/C,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,aAAa,CAAC;CACzB;AAED,UAAU,UAAU;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,QAAwB,EAAE,EAAE,kBAAkB;;;4BA+E9F,KAAK,CAAC,SAAS;EAQ3B"}
1
+ {"version":3,"file":"usePickerPopup.d.ts","sourceRoot":"","sources":["../../../../../../src/components/control/input/new-dates/usePickerPopup.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,UAAU,GAAG,cAAc,GAAG,WAAW,CAAC;AAEtF,UAAU,kBAAkB;IAC3B,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAC/C,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,aAAa,CAAC;CACzB;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,QAAwB,EAAE,EAAE,kBAAkB;;;;EAyC1G"}
@@ -2,21 +2,56 @@ import React from "react";
2
2
  import { type CwLabelProps } from "../../display/text/label/CwLabel";
3
3
  import { type CwAlignProps } from "../../layout/align/CwAlign";
4
4
  type DisplayMode = "default" | "icao-only" | "iata-only" | "full-text";
5
+ /** Props for {@link CwFindAirport}. */
5
6
  export interface CwFindAirportProps {
7
+ /** Called with the selected airport's `AptKey` when a result is chosen. */
6
8
  handleChange: (value: number) => void;
9
+ /** API search mode passed to the WinOps backend. Defaults to `"OnlyDatabase"`. */
7
10
  searchType?: string;
11
+ /** Input placeholder text. Defaults to `"Search airport…"`. */
8
12
  placeHolder?: string;
13
+ /** Marks the field as required (visual indicator only). */
9
14
  required?: boolean;
15
+ /** Base URL of the WinOps backend, e.g. `"https://localhost:44300"`. */
10
16
  cblConfig: string;
11
17
  className?: string;
18
+ /** Pre-select an airport by its `AptKey`. Triggers an initial fetch to resolve the display text. */
12
19
  value?: number;
13
20
  disabled?: boolean;
14
- displayMode?: DisplayMode;
21
+ /**
22
+ * Controls what part of the airport name is shown in the input after selection.
23
+ * - `"default"` — short `ICAO(IATA)` code format
24
+ * - `"icao-only"` — only the 4-letter ICAO code
25
+ * - `"iata-only"` — only the 3-letter IATA code
26
+ * - `"full-text"` — full `DisplayAirportText` from the API
27
+ */
28
+ displayMode?: DisplayMode; /** Fixed CSS width for the input wrapper, e.g. `"400px"`. */
15
29
  width?: string;
30
+ /** Text shown in the input on first render before any API data is loaded. */
16
31
  initialDisplayText?: string;
32
+ /** Props forwarded to the internal `CwLabel`. */
17
33
  labelProps?: CwLabelProps;
34
+ /** Props forwarded to the `CwAlign` layout wrapper. */
18
35
  alignProps?: CwAlignProps;
19
36
  }
37
+ /**
38
+ * API-backed airport search input for WinOps.
39
+ *
40
+ * Fetches matching airports from the WinOps backend as the user types (debounced).
41
+ * Renders results in a shared `cw-choice-dropdown` styled panel with keyboard navigation.
42
+ * Supports pre-selecting an airport by `value` (AptKey) and customising the displayed text
43
+ * format via `displayMode`.
44
+ *
45
+ * Requires a running WinOps backend — set `cblConfig` to its base URL.
46
+ *
47
+ * @example
48
+ * <CwFindAirport
49
+ * cblConfig="https://localhost:44300"
50
+ * handleChange={(key) => setAirportKey(key)}
51
+ * labelProps={{ text: 'Departure Airport' }}
52
+ * displayMode="iata-only"
53
+ * />
54
+ */
20
55
  export declare const CwFindAirport: React.FC<CwFindAirportProps>;
21
56
  export {};
22
57
  //# sourceMappingURL=CwFindAirportComp.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CwFindAirportComp.d.ts","sourceRoot":"","sources":["../../../../../src/components/custom/find-airport/CwFindAirportComp.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAGxE,OAAO,EAAW,KAAK,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAW,KAAK,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAgBxE,KAAK,WAAW,GAAG,SAAS,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC;AAEvE,MAAM,WAAW,kBAAkB;IAClC,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,UAAU,CAAC,EAAE,YAAY,CAAC;CAC1B;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA4XtD,CAAC"}
1
+ {"version":3,"file":"CwFindAirportComp.d.ts","sourceRoot":"","sources":["../../../../../src/components/custom/find-airport/CwFindAirportComp.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAKxE,OAAO,EAAW,KAAK,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAW,KAAK,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAgBxE,KAAK,WAAW,GAAG,SAAS,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC;AAEvE,uCAAuC;AACvC,MAAM,WAAW,kBAAkB;IAClC,2EAA2E;IAC3E,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,kFAAkF;IAClF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,wEAAwE;IACxE,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oGAAoG;IACpG,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC,6DAA6D;IACxF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6EAA6E;IAC7E,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iDAAiD;IACjD,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,uDAAuD;IACvD,UAAU,CAAC,EAAE,YAAY,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAoXtD,CAAC"}
@@ -1,18 +1,44 @@
1
1
  import React from "react";
2
2
  import { type CwLabelProps } from "../../display/text/label/CwLabel";
3
3
  import { type CwAlignProps } from "../../layout/align/CwAlign";
4
+ /** Props for {@link CwFindCrewmember}. */
4
5
  export interface CwFindCrewmemberProps {
6
+ /** Called with the selected crewmember's numeric ID when a result is chosen. */
5
7
  handleChange: (value: number) => void;
8
+ /** Input placeholder text. Defaults to `"Search crew…"`. */
6
9
  placeHolder?: string;
10
+ /** Marks the field as required (visual indicator only). */
7
11
  required?: boolean;
12
+ /** Base URL of the WinOps backend, e.g. `"https://localhost:44300"`. */
8
13
  cblConfig: string;
9
14
  className?: string;
15
+ /** Pre-select a crewmember by their numeric ID. Triggers an initial fetch to resolve the display text. */
10
16
  value?: number;
11
17
  disabled?: boolean;
18
+ /** Fixed CSS width for the input wrapper, e.g. `"400px"`. */
12
19
  width?: string;
20
+ /** Text shown in the input on first render before any API data is loaded. */
13
21
  initialDisplayText?: string;
22
+ /** Props forwarded to the internal `CwLabel`. */
14
23
  labelProps?: CwLabelProps;
24
+ /** Props forwarded to the `CwAlign` layout wrapper. */
15
25
  alignProps?: CwAlignProps;
16
26
  }
27
+ /**
28
+ * API-backed crewmember search input for WinOps.
29
+ *
30
+ * Fetches matching crewmembers from the WinOps backend as the user types (debounced).
31
+ * Renders results in a shared `cw-choice-dropdown` styled panel with keyboard navigation.
32
+ * Supports pre-selecting a crewmember by numeric `value` (ID).
33
+ *
34
+ * Requires a running WinOps backend — set `cblConfig` to its base URL.
35
+ *
36
+ * @example
37
+ * <CwFindCrewmember
38
+ * cblConfig="https://localhost:44300"
39
+ * handleChange={(id) => setCrewId(id)}
40
+ * labelProps={{ text: 'Crew Member' }}
41
+ * />
42
+ */
17
43
  export declare const CwFindCrewmember: React.FC<CwFindCrewmemberProps>;
18
44
  //# sourceMappingURL=CwFindCrewmemberComp.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CwFindCrewmemberComp.d.ts","sourceRoot":"","sources":["../../../../../src/components/custom/find-crewmember/CwFindCrewmemberComp.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAGxE,OAAO,EAAW,KAAK,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAW,KAAK,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAexE,MAAM,WAAW,qBAAqB;IACrC,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,UAAU,CAAC,EAAE,YAAY,CAAC;CAC1B;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAiR5D,CAAC"}
1
+ {"version":3,"file":"CwFindCrewmemberComp.d.ts","sourceRoot":"","sources":["../../../../../src/components/custom/find-crewmember/CwFindCrewmemberComp.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAKxE,OAAO,EAAW,KAAK,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAW,KAAK,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAexE,0CAA0C;AAC1C,MAAM,WAAW,qBAAqB;IACrC,gFAAgF;IAChF,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,wEAAwE;IACxE,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0GAA0G;IAC1G,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6EAA6E;IAC7E,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iDAAiD;IACjD,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,uDAAuD;IACvD,UAAU,CAAC,EAAE,YAAY,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CA6Q5D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CwTable.d.ts","sourceRoot":"","sources":["../../../../../../src/components/display/data/table/CwTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoD,MAAM,OAAO,CAAC;AAIzE,MAAM,WAAW,MAAM,CAAC,CAAC,GAAG,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,QAAQ;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CAEnB;AAED,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,GAAG;IACpC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IACrB,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;IACnD,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,CAAC;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC;IAChD,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,wFAAwF;IACxF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE;QACd,eAAe,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QAC/B,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC;QACnE,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;KAC7B,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoEG;AAEH,wBAAgB,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,EAChC,OAAO,EACP,IAAI,EACJ,UAAkB,EAClB,eAAiC,EACjC,iBAAiB,EACjB,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,KAAK,EACL,kBAAkB,EAClB,EAAE,EACF,MAAM,EACN,UAA8C,EAC9C,MAAyB,EACzB,OAAe,EACf,YAAY,EACZ,YAAoB,EACpB,SAAkB,EAClB,YAAY,EACZ,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,2CAuW3B"}
1
+ {"version":3,"file":"CwTable.d.ts","sourceRoot":"","sources":["../../../../../../src/components/display/data/table/CwTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoD,MAAM,OAAO,CAAC;AAIzE,MAAM,WAAW,MAAM,CAAC,CAAC,GAAG,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,QAAQ;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CAEnB;AAED,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,GAAG;IACpC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IACrB,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;IACnD,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,CAAC;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC;IAChD,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,wFAAwF;IACxF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE;QACd,eAAe,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QAC/B,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC;QACnE,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;KAC7B,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoEG;AAEH,wBAAgB,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,EAChC,OAAO,EACP,IAAI,EACJ,UAAkB,EAClB,eAAiC,EACjC,iBAAiB,EACjB,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,KAAK,EACL,kBAAkB,EAClB,EAAE,EACF,MAAM,EACN,UAA8C,EAC9C,MAAyB,EACzB,OAAe,EACf,YAAY,EACZ,YAAoB,EACpB,SAAkB,EAClB,YAAY,EACZ,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,2CA4V3B"}
@@ -23,6 +23,7 @@ export interface CwTableServerSideProps<T = any> {
23
23
  totalItems: number;
24
24
  pagination?: boolean;
25
25
  pageSizeOptions?: number[];
26
+ pageLabel?: string;
26
27
  expandedRowRender?: (record: T) => React.ReactNode;
27
28
  onExpand?: (record: T) => void;
28
29
  classNameContainer?: string;
@@ -98,5 +99,5 @@ export interface CwTableServerSideProps<T = any> {
98
99
  *
99
100
  * @returns React component
100
101
  */
101
- export declare function CwTableServerSide<T = any>({ columns, data, totalItems, pagination, pageSizeOptions, expandedRowRender, onExpand, className, classNameRow, style, classNameContainer, id, testId, textNoData, rowKey, loading, scrollHeight, stickyHeader, rowSelection, onChange, serverState, }: Readonly<CwTableServerSideProps<T>>): import("react/jsx-runtime").JSX.Element;
102
+ export declare function CwTableServerSide<T = any>({ columns, data, totalItems, pagination, pageSizeOptions, pageLabel, expandedRowRender, onExpand, className, classNameRow, style, classNameContainer, id, testId, textNoData, rowKey, loading, scrollHeight, stickyHeader, rowSelection, onChange, serverState, }: Readonly<CwTableServerSideProps<T>>): import("react/jsx-runtime").JSX.Element;
102
103
  //# sourceMappingURL=CwTableServerSide.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CwTableServerSide.d.ts","sourceRoot":"","sources":["../../../../../../src/components/display/data/table-serverside/CwTableServerSide.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoD,MAAM,OAAO,CAAC;AAEzE,MAAM,WAAW,oBAAoB,CAAC,CAAC,GAAG,GAAG;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IACzB,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,IAAI,CAAC;CACtC;AAED,MAAM,WAAW,MAAM,CAAC,CAAC,GAAG,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,QAAQ;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB,CAAC,CAAC,GAAG,GAAG;IAC9C,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IACrB,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;IACnD,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,CAAC;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC;IAChD,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,wFAAwF;IACxF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE;QACd,eAAe,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QAC/B,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC;QACnE,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;KAC7B,CAAC;IACF,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IACpD,WAAW,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC;CACtC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAEH,wBAAgB,iBAAiB,CAAC,CAAC,GAAG,GAAG,EAAE,EAC1C,OAAO,EACP,IAAI,EACJ,UAAU,EACV,UAAkB,EAClB,eAAiC,EACjC,iBAAiB,EACjB,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,KAAK,EACL,kBAAkB,EAClB,EAAE,EACF,MAAM,EACN,UAA8C,EAC9C,MAAyB,EACzB,OAAe,EACf,YAAY,EACZ,YAAoB,EACpB,YAAY,EACZ,QAAQ,EACR,WAAW,GACX,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,2CA+RrC"}
1
+ {"version":3,"file":"CwTableServerSide.d.ts","sourceRoot":"","sources":["../../../../../../src/components/display/data/table-serverside/CwTableServerSide.tsx"],"names":[],"mappings":"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"}
@@ -61,12 +61,14 @@ export { CwCheckbox } from "./components/control/choice/checkbox/CwCheckbox";
61
61
  export { CwCheckboxGroup } from "./components/control/choice/checkbox/CwCheckboxGroup";
62
62
  export { CwToggle } from "./components/control/choice/toggle/CwToggle";
63
63
  export { CwSelect } from "./components/control/choice/select/CwSelect";
64
+ export { CwDropdown, type CwDropdownProps, type CwDropdownOption } from "./components/control/choice/select/CwDropdown";
64
65
  export { CwOption } from "./components/control/choice/option/CwOption";
65
66
  export { CwDropdownFilter } from "./components/control/choice/dropdown/CwDropdownFilter";
66
67
  export { CwPopoverButton, type CwPopoverButtonProps } from "./components/control/choice/dropdown/CwPopoverButton";
67
68
  export { itemsToMultiFilterTags } from "./common/functions/collections";
68
69
  export { CwMultiFilterTag, type CwMultiFilterTagProps, type ICwMultiFilterTag } from "./components/control/choice/multi-filter/components/tag/CwMultiFilterTag";
69
70
  export { CwMultiFilter, type CwMultiFilterProps } from "./components/control/choice/multi-filter/CwMultiFilter";
71
+ export { CwTagSelector, type CwTagSelectorProps, type CwTagSelectorOption } from "./components/control/choice/tag-selector/CwTagSelector";
70
72
  export { CwTreeView, type CwTreeNode } from "./components/control/choice/tree-view/CwTreeView";
71
73
  export { CwSearchInput } from "./components/control/action/search/CwSearch";
72
74
  export { CwAnchoredMenu, type MenuOption } from "./components/control/action/contextmenu/CwAnchoredMenu";