@alfadocs/ui-kit 0.19.0 → 0.20.0

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 (62) hide show
  1. package/dist/_chunks/_commonjsHelpers-DaMA6jEr.js +9 -0
  2. package/dist/_chunks/{ai-prompt-input-B-w5Rx3V.js → ai-prompt-input-B5MdixzR.js} +2 -2
  3. package/dist/_chunks/{leo-sidebar-DIsiTju3.js → alia-sidebar-Bof6TlFx.js} +211 -211
  4. package/dist/_chunks/{chat-message-g3lxpXM_.js → chat-message-ChOnwqf_.js} +5 -5
  5. package/dist/_chunks/editable-currency-cell-renderer-CqMs0Y8L.js +1590 -0
  6. package/dist/_chunks/{email-input-DKN5JERd.js → email-input-DvJ_kPKL.js} +2 -2
  7. package/dist/_chunks/exceljs.min-DUJ-5CGx.js +23045 -0
  8. package/dist/_chunks/file-spreadsheet-zUkY8rJ2.js +25 -0
  9. package/dist/_chunks/{file-upload-nMh-1jDD.js → file-upload-DxAQprcU.js} +103 -122
  10. package/dist/_chunks/html2canvas.esm-dgT_1dIT.js +4872 -0
  11. package/dist/_chunks/{index-CFoBa86t.js → index-BcMWc8W2.js} +2 -2
  12. package/dist/_chunks/index.es-B8zMZ1wV.js +6694 -0
  13. package/dist/_chunks/jspdf.es.min-DaapWjR1.js +10007 -0
  14. package/dist/_chunks/jspdf.plugin.autotable-CSiDNyPn.js +1088 -0
  15. package/dist/_chunks/{map-view-DVP-Kp9l.js → map-view-CcwycFQX.js} +2 -2
  16. package/dist/_chunks/{purify.es-DpIUMBYC.js → purify.es-Cm3utOpm.js} +2 -2
  17. package/dist/_chunks/{rich-text-editor-C7TCIlQO.js → rich-text-editor-J-wAz9eN.js} +22 -22
  18. package/dist/_chunks/{suggestion-chip-C4Jz0LrM.js → suggestion-chip-C4kxWUIs.js} +2 -2
  19. package/dist/agent-catalog.json +1 -1
  20. package/dist/components/ai-prompt-input/index.js +1 -1
  21. package/dist/components/app-frame/app-frame.d.ts +1 -1
  22. package/dist/components/chat-container/chat-container.d.ts +1 -1
  23. package/dist/components/chat-message/chat-message.d.ts +1 -1
  24. package/dist/components/chat-message/index.js +1 -1
  25. package/dist/components/data-table/cell-renderers/editable-currency-cell-renderer.d.ts +23 -0
  26. package/dist/components/data-table/cell-renderers/editable-text-cell-renderer.d.ts +11 -0
  27. package/dist/components/data-table/cell-renderers/image-cell-renderer.d.ts +19 -0
  28. package/dist/components/data-table/cell-renderers/toggle-cell-renderer.d.ts +15 -3
  29. package/dist/components/data-table/data-table.d.ts +30 -3
  30. package/dist/components/data-table/filters/date-range-filter.d.ts +22 -0
  31. package/dist/components/data-table/index.d.ts +9 -2
  32. package/dist/components/data-table/index.js +18 -13
  33. package/dist/components/data-table/toolbar.d.ts +80 -1
  34. package/dist/components/email-input/index.js +1 -1
  35. package/dist/components/file-upload/index.js +1 -1
  36. package/dist/components/index.d.ts +1 -1
  37. package/dist/components/map-view/index.js +1 -1
  38. package/dist/components/rich-text-editor/index.js +1 -1
  39. package/dist/components/suggestion-chip/index.js +1 -1
  40. package/dist/i18n/config.js +47 -9
  41. package/dist/i18n/resources.d.ts +47 -9
  42. package/dist/index.js +395 -390
  43. package/dist/locales/de.json +3 -3
  44. package/dist/locales/en.json +22 -3
  45. package/dist/locales/it.json +22 -3
  46. package/dist/patterns/alia-assistant/alia-chat-surface.d.ts +3 -0
  47. package/dist/patterns/alia-assistant/alia-embedded.d.ts +13 -0
  48. package/dist/patterns/{leo-assistant/leo-popout.d.ts → alia-assistant/alia-popout.d.ts} +4 -4
  49. package/dist/patterns/{leo-assistant/leo-sidebar.d.ts → alia-assistant/alia-sidebar.d.ts} +10 -10
  50. package/dist/patterns/{leo-assistant/leo-types.d.ts → alia-assistant/alia-types.d.ts} +23 -23
  51. package/dist/patterns/alia-assistant/index.d.ts +20 -0
  52. package/dist/patterns/alia-assistant/index.js +8 -0
  53. package/dist/patterns/patient-shell/patient-shell.d.ts +1 -1
  54. package/dist/safe-html/index.js +6 -6
  55. package/dist/tokens.css +1 -1
  56. package/package.json +7 -4
  57. package/dist/_chunks/_commonjsHelpers-C6fGbg64.js +0 -7
  58. package/dist/_chunks/balance-cell-renderer-DJB6WDPe.js +0 -1015
  59. package/dist/patterns/leo-assistant/index.d.ts +0 -20
  60. package/dist/patterns/leo-assistant/index.js +0 -8
  61. package/dist/patterns/leo-assistant/leo-chat-surface.d.ts +0 -3
  62. package/dist/patterns/leo-assistant/leo-embedded.d.ts +0 -13
@@ -4,7 +4,7 @@ import P, { useMemo as N, useContext as B, useEffect as E, useLayoutEffect as X,
4
4
  import { c as ne } from "./index-D2ZczOXr.js";
5
5
  import { useTranslation as Be } from "react-i18next";
6
6
  import { createPortal as de } from "react-dom";
7
- import { g as nn } from "./_commonjsHelpers-C6fGbg64.js";
7
+ import { g as nn } from "./_commonjsHelpers-DaMA6jEr.js";
8
8
  import { B as tn } from "./button-DD_0Xdmr.js";
9
9
  import { u as on } from "./registry-C9nwlNyL.js";
10
10
  import { M as rn } from "./map-pin-B8STOPMJ.js";
@@ -1939,4 +1939,4 @@ Zt.displayName = "MapView";
1939
1939
  export {
1940
1940
  Zt as M
1941
1941
  };
1942
- //# sourceMappingURL=map-view-DVP-Kp9l.js.map
1942
+ //# sourceMappingURL=map-view-CcwycFQX.js.map
@@ -556,6 +556,6 @@ function St() {
556
556
  }
557
557
  var mn = St();
558
558
  export {
559
- mn as p
559
+ mn as default
560
560
  };
561
- //# sourceMappingURL=purify.es-DpIUMBYC.js.map
561
+ //# sourceMappingURL=purify.es-Cm3utOpm.js.map
@@ -9,11 +9,11 @@ import ue from "@tiptap/extension-table-row";
9
9
  import me from "@tiptap/extension-table-cell";
10
10
  import fe from "@tiptap/extension-table-header";
11
11
  import { Markdown as he } from "tiptap-markdown";
12
- import { p as pe } from "./purify.es-DpIUMBYC.js";
12
+ import be from "./purify.es-Cm3utOpm.js";
13
13
  import { c as S } from "./index-D2ZczOXr.js";
14
14
  import { useTranslation as U } from "react-i18next";
15
15
  import * as z from "@radix-ui/react-dialog";
16
- import { u as be } from "./registry-C9nwlNyL.js";
16
+ import { u as pe } from "./registry-C9nwlNyL.js";
17
17
  import { s as ge } from "./safe-image-src-DstKgCo7.js";
18
18
  import { X as ve } from "./x-CCcI3eJp.js";
19
19
  import { C as ke } from "./chevron-down-BX_NP2Yh.js";
@@ -229,7 +229,7 @@ const Fe = [
229
229
  ]
230
230
  };
231
231
  function I(a) {
232
- return pe.sanitize(a, Ze);
232
+ return be.sanitize(a, Ze);
233
233
  }
234
234
  const Ue = S(
235
235
  "tiptap-theme-alfadocs ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]"
@@ -564,9 +564,9 @@ const We = se(
564
564
  },
565
565
  onUpdate({ editor: s }) {
566
566
  L.current && (C.current && clearTimeout(C.current), C.current = setTimeout(() => {
567
- var d, p, b;
568
- const t = s.getHTML(), f = ((p = (d = s.storage.markdown) == null ? void 0 : d.getMarkdown) == null ? void 0 : p.call(d)) ?? "";
569
- (b = L.current) == null || b.call(L, { html: t, markdown: f });
567
+ var d, b, p;
568
+ const t = s.getHTML(), f = ((b = (d = s.storage.markdown) == null ? void 0 : d.getMarkdown) == null ? void 0 : b.call(d)) ?? "";
569
+ (p = L.current) == null || p.call(L, { html: t, markdown: f });
570
570
  }, 100));
571
571
  }
572
572
  });
@@ -602,7 +602,7 @@ const We = se(
602
602
  }),
603
603
  [e]
604
604
  );
605
- ie(A, () => E, [E]), be(Pe, E, a);
605
+ ie(A, () => E, [E]), pe(Pe, E, a);
606
606
  const V = B([]), [T, K] = H(0), q = j(() => Xe[R], [R]), J = _(
607
607
  (s) => (t) => {
608
608
  V.current[s] = t;
@@ -647,7 +647,7 @@ const We = se(
647
647
  onFocus: () => K(t),
648
648
  onKeyDown: Z
649
649
  }, d = (n, x) => G({ pressed: n, disabled: x });
650
- function p(n) {
650
+ function b(n) {
651
651
  return /* @__PURE__ */ r(
652
652
  "button",
653
653
  {
@@ -667,7 +667,7 @@ const We = se(
667
667
  }
668
668
  );
669
669
  }
670
- function b(n) {
670
+ function p(n) {
671
671
  return /* @__PURE__ */ r(
672
672
  "button",
673
673
  {
@@ -692,7 +692,7 @@ const We = se(
692
692
  }
693
693
  switch (s) {
694
694
  case "bold":
695
- return p({
695
+ return b({
696
696
  label: o("editor.bold"),
697
697
  pressed: e.isActive("bold"),
698
698
  disabled: i,
@@ -707,7 +707,7 @@ const We = se(
707
707
  )
708
708
  });
709
709
  case "italic":
710
- return p({
710
+ return b({
711
711
  label: o("editor.italic"),
712
712
  pressed: e.isActive("italic"),
713
713
  disabled: i,
@@ -722,7 +722,7 @@ const We = se(
722
722
  )
723
723
  });
724
724
  case "link":
725
- return b({
725
+ return p({
726
726
  label: o("editor.link.insert"),
727
727
  disabled: i,
728
728
  shortcut: "Control+K Meta+K",
@@ -750,7 +750,7 @@ const We = se(
750
750
  }
751
751
  );
752
752
  case "bulletList":
753
- return p({
753
+ return b({
754
754
  label: o("editor.list.bullet"),
755
755
  pressed: e.isActive("bulletList"),
756
756
  disabled: i,
@@ -764,7 +764,7 @@ const We = se(
764
764
  )
765
765
  });
766
766
  case "orderedList":
767
- return p({
767
+ return b({
768
768
  label: o("editor.list.ordered"),
769
769
  pressed: e.isActive("orderedList"),
770
770
  disabled: i,
@@ -778,7 +778,7 @@ const We = se(
778
778
  )
779
779
  });
780
780
  case "quote":
781
- return p({
781
+ return b({
782
782
  label: o("editor.quote"),
783
783
  pressed: e.isActive("blockquote"),
784
784
  disabled: i,
@@ -792,7 +792,7 @@ const We = se(
792
792
  )
793
793
  });
794
794
  case "image":
795
- return b({
795
+ return p({
796
796
  label: o("editor.image.insert"),
797
797
  disabled: i,
798
798
  onActivate: O,
@@ -805,7 +805,7 @@ const We = se(
805
805
  )
806
806
  });
807
807
  case "table":
808
- return b({
808
+ return p({
809
809
  label: o("editor.table.insert"),
810
810
  disabled: i,
811
811
  onActivate: () => e.chain().focus().insertTable({ rows: 3, cols: 3, withHeaderRow: !0 }).run(),
@@ -818,7 +818,7 @@ const We = se(
818
818
  )
819
819
  });
820
820
  case "codeBlock":
821
- return p({
821
+ return b({
822
822
  label: o("editor.codeBlock"),
823
823
  pressed: e.isActive("codeBlock"),
824
824
  disabled: i,
@@ -832,7 +832,7 @@ const We = se(
832
832
  )
833
833
  });
834
834
  case "horizontalRule":
835
- return b({
835
+ return p({
836
836
  label: o("editor.horizontalRule"),
837
837
  disabled: i,
838
838
  onActivate: () => e.chain().focus().setHorizontalRule().run(),
@@ -845,7 +845,7 @@ const We = se(
845
845
  )
846
846
  });
847
847
  case "undo":
848
- return b({
848
+ return p({
849
849
  label: o("editor.undo"),
850
850
  disabled: i || !e.can().undo(),
851
851
  shortcut: "Control+Z Meta+Z",
@@ -859,7 +859,7 @@ const We = se(
859
859
  )
860
860
  });
861
861
  case "redo":
862
- return b({
862
+ return p({
863
863
  label: o("editor.redo"),
864
864
  disabled: i || !e.can().redo(),
865
865
  shortcut: "Control+Shift+Z Meta+Shift+Z",
@@ -928,4 +928,4 @@ export {
928
928
  G as t,
929
929
  Ue as w
930
930
  };
931
- //# sourceMappingURL=rich-text-editor-C7TCIlQO.js.map
931
+ //# sourceMappingURL=rich-text-editor-J-wAz9eN.js.map
@@ -5,7 +5,7 @@ import { useTranslation as J } from "react-i18next";
5
5
  const Q = q(
6
6
  [
7
7
  // `max-w-full` keeps a chip from blowing past its container when the
8
- // label is long and the container is narrow (e.g. a 22rem Leo sidebar
8
+ // label is long and the container is narrow (e.g. a 22rem Alia sidebar
9
9
  // dock). Labels wrap onto multiple lines via `whitespace-normal` +
10
10
  // `break-words` so the full text stays legible — rounded pills grow
11
11
  // taller rather than hiding content behind an ellipsis.
@@ -164,4 +164,4 @@ export {
164
164
  X as S,
165
165
  W as a
166
166
  };
167
- //# sourceMappingURL=suggestion-chip-C4Jz0LrM.js.map
167
+ //# sourceMappingURL=suggestion-chip-C4kxWUIs.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "packageVersion": "0.19.0",
3
+ "packageVersion": "0.20.0",
4
4
  "components": [
5
5
  {
6
6
  "kind": "component",
@@ -1,4 +1,4 @@
1
- import { A as a, a as o } from "../../_chunks/ai-prompt-input-B-w5Rx3V.js";
1
+ import { A as a, a as o } from "../../_chunks/ai-prompt-input-B5MdixzR.js";
2
2
  export {
3
3
  a as AIPromptInput,
4
4
  o as aiPromptInputAgent
@@ -10,7 +10,7 @@ export interface AppFrameProps extends Omit<HTMLAttributes<HTMLDivElement>, 'chi
10
10
  sidebar: ReactNode;
11
11
  /** Main content — rendered inside a `<main>` landmark. */
12
12
  children: ReactNode;
13
- /** Optional inline-end docked panel (typically `<LeoSidebar />`) sharing the same row as the main region on ≥ md viewports. Hidden on narrow viewports — consumers should flip to an overlay/popout mode there. */
13
+ /** Optional inline-end docked panel (typically `<AliaSidebar />`) sharing the same row as the main region on ≥ md viewports. Hidden on narrow viewports — consumers should flip to an overlay/popout mode there. */
14
14
  endSidebar?: ReactNode;
15
15
  /** Optional block-end footer — renders full-width below the sidebar + main row. */
16
16
  footer?: ReactNode;
@@ -28,7 +28,7 @@ export interface ChatContainerProps extends Omit<HTMLAttributes<HTMLDivElement>,
28
28
  * away from the newest message. Defaults to `false` because the
29
29
  * affordance is only useful in long-form chat surfaces (fullscreen
30
30
  * assistants, dedicated messaging views); in compact docks — e.g. the
31
- * Leo side-panel — conversations rarely exceed one screen and the FAB
31
+ * Alia side-panel — conversations rarely exceed one screen and the FAB
32
32
  * just adds visual noise. Turn on for fullscreen chat surfaces.
33
33
  */
34
34
  showScrollToLatest?: boolean;
@@ -7,7 +7,7 @@ export interface ChatMessageAvatar {
7
7
  src?: string;
8
8
  /**
9
9
  * Optional custom avatar node. When provided, it REPLACES the built-in
10
- * `<Avatar>` (initials / image) for this message. Used by the Leo
10
+ * `<Avatar>` (initials / image) for this message. Used by the Alia
11
11
  * pattern to render a Sparkles identity tile instead of an avatar, and
12
12
  * by consumers that want to swap in a user-icon chip, brand glyph, etc.
13
13
  * The caller is responsible for accessible labelling on the custom node
@@ -1,4 +1,4 @@
1
- import { C as s } from "../../_chunks/chat-message-g3lxpXM_.js";
1
+ import { C as s } from "../../_chunks/chat-message-ChOnwqf_.js";
2
2
  export {
3
3
  s as ChatMessage
4
4
  };
@@ -0,0 +1,23 @@
1
+ import type { CustomCellEditorProps } from 'ag-grid-react';
2
+ export interface EditableCurrencyCellEditorParams {
3
+ /** ISO 4217 currency code (e.g. `EUR`, `USD`). Defaults to `EUR`. */
4
+ currency?: string;
5
+ /** Decimal places allowed in the editor. Defaults to 2 (cents precision). */
6
+ decimals?: number;
7
+ /** Minimum allowed value — values below this are clamped on commit. */
8
+ min?: number;
9
+ /** Maximum allowed value — values above this are clamped on commit. */
10
+ max?: number;
11
+ }
12
+ /**
13
+ * Inline numeric editor that visually matches `<TextInput size="sm">`. Use as
14
+ * `cellEditor` on a colDef with `editable: true`. The display formatting is
15
+ * still the renderer's job — once editing stops, the cell hands back to
16
+ * `CurrencyCellRenderer` (or whichever renderer the colDef declares).
17
+ *
18
+ * Stores a Number, not a string, so consumers receive `row.amount = 12.5`
19
+ * not `"12.5"`. Strips locale separators on each change so commas/dots in
20
+ * any language convert to a clean numeric value.
21
+ */
22
+ export declare function EditableCurrencyCellRenderer<TData = unknown>(props: CustomCellEditorProps<TData, number> & EditableCurrencyCellEditorParams): import("react/jsx-runtime").JSX.Element;
23
+ //# sourceMappingURL=editable-currency-cell-renderer.d.ts.map
@@ -0,0 +1,11 @@
1
+ import type { CustomCellEditorProps } from 'ag-grid-react';
2
+ /**
3
+ * Inline text editor that visually matches `<TextInput size="sm">`. Use as
4
+ * `cellEditor` on a colDef with `editable: true`. The cell renderer (default
5
+ * or custom) takes over again once editing stops.
6
+ *
7
+ * AG Grid commits on Enter or Tab or blur; cancels on Escape. The consumer
8
+ * receives the committed value via `onCellValueChanged`.
9
+ */
10
+ export declare function EditableTextCellRenderer<TData = unknown>(props: CustomCellEditorProps<TData, string>): import("react/jsx-runtime").JSX.Element;
11
+ //# sourceMappingURL=editable-text-cell-renderer.d.ts.map
@@ -0,0 +1,19 @@
1
+ import type { CustomCellRendererProps } from 'ag-grid-react';
2
+ export interface ImageCellRendererParams {
3
+ /** Field name on the row whose value holds the image URL. */
4
+ srcField: string;
5
+ /** Optional field name holding alt text. Falls back to '' (decorative). */
6
+ altField?: string;
7
+ /**
8
+ * Optional field name holding a name string. When the src URL is missing or
9
+ * rejected, the cell falls back to `<Avatar name={fallback}>` so the cell
10
+ * still has a visual.
11
+ */
12
+ fallbackField?: string;
13
+ /** Visual size of the image. Matches `<Avatar>` sizes (sm=32, md=40, lg=48). */
14
+ size?: 'sm' | 'md' | 'lg';
15
+ /** Corner radius preset. `circle` matches `<Avatar>`. */
16
+ shape?: 'square' | 'rounded' | 'circle';
17
+ }
18
+ export declare function ImageCellRenderer<TData = unknown>(props: CustomCellRendererProps<TData> & ImageCellRendererParams): import("react/jsx-runtime").JSX.Element | null;
19
+ //# sourceMappingURL=image-cell-renderer.d.ts.map
@@ -1,8 +1,20 @@
1
- import type { ReactNode } from 'react';
1
+ import { type ReactNode } from 'react';
2
2
  import type { CustomCellRendererProps } from 'ag-grid-react';
3
3
  export interface ToggleCellRendererParams<TData = unknown> {
4
- /** Fires with the row and the new target value. */
5
- onToggle: (data: TData, newValue: boolean) => void;
4
+ /**
5
+ * Fires with the row and the new target value. May return a `Promise` —
6
+ * if it rejects, the consumer is expected to revert the underlying value
7
+ * and flash the row with `data-table-row-error` (return that row class
8
+ * from `getRowClass`). Use `onError` below to be notified inside this
9
+ * renderer.
10
+ */
11
+ onToggle: (data: TData, newValue: boolean) => void | Promise<void>;
12
+ /**
13
+ * Optional reject hook. Fires when the `onToggle` promise rejects, with
14
+ * the row and the error. The button auto-disables during the in-flight
15
+ * promise and re-enables on either settle.
16
+ */
17
+ onError?: (data: TData, error: unknown) => void;
6
18
  /** Icon shown when the current value is truthy. */
7
19
  trueIcon?: ReactNode;
8
20
  /** Icon shown when the current value is falsy. */
@@ -3,7 +3,7 @@ import 'ag-grid-community/styles/agGridQuartzFont.css';
3
3
  import '../../tokens/ag-grid-theme.css';
4
4
  import { type ComponentType, type ReactNode } from 'react';
5
5
  import { type VariantProps } from 'class-variance-authority';
6
- import { type ColDef, type FilterChangedEvent, type GridApi, type GridOptions, type IServerSideDatasource, type RowClassParams, type SortChangedEvent } from 'ag-grid-community';
6
+ import { type ColDef, type ColGroupDef, type FilterChangedEvent, type GridApi, type GridOptions, type RowClassParams, type SortChangedEvent } from 'ag-grid-community';
7
7
  declare const dataTableVariants: (props?: ({
8
8
  density?: "default" | "compact" | "expanded" | null | undefined;
9
9
  bordered?: boolean | null | undefined;
@@ -31,12 +31,20 @@ export interface DataTableHandle<TData = unknown> {
31
31
  getRawApi: () => GridApi<TData> | undefined;
32
32
  }
33
33
  export interface DataTableProps<TData = unknown> extends Omit<VariantProps<typeof dataTableVariants>, 'density'> {
34
- columnDefs: ColDef<TData>[];
34
+ /**
35
+ * Column definitions — accepts a mix of leaf `ColDef`s and header
36
+ * `ColGroupDef`s (for two-row grouped headers via `children: [...]`).
37
+ */
38
+ columnDefs: (ColDef<TData> | ColGroupDef<TData>)[];
35
39
  rowData?: TData[];
36
40
  rowSelection?: 'single' | 'multiple';
37
41
  pagination?: boolean;
38
42
  paginationPageSize?: number;
39
- serverSideDatasource?: IServerSideDatasource;
43
+ /**
44
+ * Page-size dropdown options shown in the AG Grid pagination panel.
45
+ * Pass `false` to hide the dropdown entirely. Default: `[10, 25, 50, 100]`.
46
+ */
47
+ paginationPageSizeSelector?: number[] | false;
40
48
  gridId?: string;
41
49
  onSelectionChanged?: (rows: TData[]) => void;
42
50
  onSortChanged?: (event: SortChangedEvent<TData>) => void;
@@ -74,6 +82,25 @@ export declare const DataTable: (<TData = unknown>(props: DataTableProps<TData>
74
82
  displayName: string;
75
83
  };
76
84
  BulkAction: import("react").ForwardRefExoticComponent<import("./toolbar").BulkActionProps & import("react").RefAttributes<HTMLButtonElement>>;
85
+ QuickSearch: {
86
+ ({ placeholder, debounceMs }: import("./toolbar").QuickSearchProps): import("react/jsx-runtime").JSX.Element;
87
+ displayName: string;
88
+ };
89
+ Refresh: import("react").ForwardRefExoticComponent<import("./toolbar").RefreshButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
90
+ FilterChips: {
91
+ (): import("react/jsx-runtime").JSX.Element | null;
92
+ displayName: string;
93
+ };
94
+ FacetFilter: <TValue extends string | number | boolean = string>({ field, options, label, }: import("./toolbar").FacetFilterProps<TValue>) => import("react/jsx-runtime").JSX.Element;
95
+ ExportMenu: {
96
+ ({ children, label }: import("./toolbar").ExportMenuProps): import("react/jsx-runtime").JSX.Element;
97
+ displayName: string;
98
+ } & {
99
+ Item: {
100
+ ({ format, label, onClick, fileName, }: import("./toolbar").ExportMenuItemProps): import("react/jsx-runtime").JSX.Element;
101
+ displayName: string;
102
+ };
103
+ };
77
104
  };
78
105
  };
79
106
  export {};
@@ -0,0 +1,22 @@
1
+ import type { CustomFilterProps } from 'ag-grid-react';
2
+ /**
3
+ * Custom AG Grid filter component for date *ranges*. AG Grid Community's
4
+ * built-in `agDateColumnFilter` only handles single-date comparison —
5
+ * platform needs "between X and Y" for invoice / transaction lists.
6
+ *
7
+ * Wire on a colDef:
8
+ * ```tsx
9
+ * { field: 'date', filter: DateRangeFilter }
10
+ * ```
11
+ *
12
+ * The filter model has shape `{ type: 'inRange', dateFrom, dateTo }` to
13
+ * stay close to AG Grid's own date-filter convention so server-side
14
+ * adapters can interpret it the same way.
15
+ */
16
+ export interface DateRangeFilterModel {
17
+ type: 'inRange';
18
+ dateFrom: string | null;
19
+ dateTo: string | null;
20
+ }
21
+ export declare function DateRangeFilter(props: CustomFilterProps): import("react/jsx-runtime").JSX.Element;
22
+ //# sourceMappingURL=date-range-filter.d.ts.map
@@ -1,13 +1,17 @@
1
1
  export { DataTable } from './data-table';
2
2
  export type { DataTableProps, DataTableHandle, DataTableSortEntry, } from './data-table';
3
3
  export { dataTableAgent } from './data-table.agent';
4
- export { Toolbar, ToolbarProvider } from './toolbar';
5
- export type { ToolbarProviderProps, ToolbarRootProps, ExportCsvProps, ExportPdfProps, PrintProps, ColumnToggleProps, BulkActionProps, } from './toolbar';
4
+ export { Toolbar, ToolbarProvider, defaultExportPdf } from './toolbar';
5
+ export type { ToolbarProviderProps, ToolbarRootProps, ExportCsvProps, ExportPdfProps, PrintProps, ColumnToggleProps, BulkActionProps, QuickSearchProps, RefreshButtonProps, FacetFilterOption, FacetFilterProps, ExportFormat, ExportMenuProps, ExportMenuItemProps, } from './toolbar';
6
6
  export { useTotalRow } from './hooks/use-total-row';
7
+ export { DateRangeFilter } from './filters/date-range-filter';
8
+ export type { DateRangeFilterModel } from './filters/date-range-filter';
7
9
  export { StatusCellRenderer } from './cell-renderers/status-cell-renderer';
8
10
  export type { BadgeVariant, StatusCellRendererParams, } from './cell-renderers/status-cell-renderer';
9
11
  export { UserCellRenderer } from './cell-renderers/user-cell-renderer';
10
12
  export type { UserCellValue } from './cell-renderers/user-cell-renderer';
13
+ export { ImageCellRenderer } from './cell-renderers/image-cell-renderer';
14
+ export type { ImageCellRendererParams } from './cell-renderers/image-cell-renderer';
11
15
  export { TagListCellRenderer } from './cell-renderers/tag-list-cell-renderer';
12
16
  export type { TagListCellRendererParams } from './cell-renderers/tag-list-cell-renderer';
13
17
  export { DateCellRenderer } from './cell-renderers/date-cell-renderer';
@@ -24,4 +28,7 @@ export { ColorDotCellRenderer } from './cell-renderers/color-dot-cell-renderer';
24
28
  export type { ColorDotCellRendererParams } from './cell-renderers/color-dot-cell-renderer';
25
29
  export { BalanceCellRenderer } from './cell-renderers/balance-cell-renderer';
26
30
  export type { BalanceLine, BalanceCellRendererParams, } from './cell-renderers/balance-cell-renderer';
31
+ export { EditableTextCellRenderer } from './cell-renderers/editable-text-cell-renderer';
32
+ export { EditableCurrencyCellRenderer } from './cell-renderers/editable-currency-cell-renderer';
33
+ export type { EditableCurrencyCellEditorParams } from './cell-renderers/editable-currency-cell-renderer';
27
34
  //# sourceMappingURL=index.d.ts.map
@@ -1,19 +1,24 @@
1
- import { A as r, B as l, C as s, a as n, D as o, b as d, L as C, S as t, T as R, c as T, d as b, e as c, U as g, f as i, u } from "../../_chunks/balance-cell-renderer-DJB6WDPe.js";
1
+ import { A as r, B as l, C as s, a as d, D as n, b as t, c as C, E as o, d as R, I as T, L as i, S as b, T as g, e as u, f as c, g as D, U as f, h as E, i as x, u as A } from "../../_chunks/editable-currency-cell-renderer-CqMs0Y8L.js";
2
2
  export {
3
3
  r as ActionsCellRenderer,
4
4
  l as BalanceCellRenderer,
5
5
  s as ColorDotCellRenderer,
6
- n as CurrencyCellRenderer,
7
- o as DataTable,
8
- d as DateCellRenderer,
9
- C as LinkCellRenderer,
10
- t as StatusCellRenderer,
11
- R as TagListCellRenderer,
12
- T as ToggleCellRenderer,
13
- b as Toolbar,
14
- c as ToolbarProvider,
15
- g as UserCellRenderer,
16
- i as dataTableAgent,
17
- u as useTotalRow
6
+ d as CurrencyCellRenderer,
7
+ n as DataTable,
8
+ t as DateCellRenderer,
9
+ C as DateRangeFilter,
10
+ o as EditableCurrencyCellRenderer,
11
+ R as EditableTextCellRenderer,
12
+ T as ImageCellRenderer,
13
+ i as LinkCellRenderer,
14
+ b as StatusCellRenderer,
15
+ g as TagListCellRenderer,
16
+ u as ToggleCellRenderer,
17
+ c as Toolbar,
18
+ D as ToolbarProvider,
19
+ f as UserCellRenderer,
20
+ E as dataTableAgent,
21
+ x as defaultExportPdf,
22
+ A as useTotalRow
18
23
  };
19
24
  //# sourceMappingURL=index.js.map
@@ -19,9 +19,67 @@ export interface ExportCsvProps extends ToolbarIconButtonProps {
19
19
  onExport?: (api: GridApi) => void;
20
20
  }
21
21
  export interface ExportPdfProps extends ToolbarIconButtonProps {
22
- onClick: (api: GridApi | undefined) => void;
22
+ /**
23
+ * Optional override for the default PDF generation. When omitted, clicking
24
+ * the button calls the built-in handler (`defaultExportPdf`) which
25
+ * dynamic-imports `jspdf` + `jspdf-autotable` and produces a paged PDF
26
+ * of the current sort/filter state. Supply your own to plug in a
27
+ * server-side PDF generator or a custom layout.
28
+ */
29
+ onClick?: (api: GridApi | undefined) => void;
30
+ /** Filename for the generated PDF (default `data-table-export.pdf`). */
31
+ fileName?: string;
32
+ }
33
+ interface DefaultExportPdfOptions {
34
+ fileName: string;
23
35
  }
36
+ /**
37
+ * Default Export PDF handler. Exported for tests and for consumers who want
38
+ * to call it from a custom `onClick` (e.g. to add a logo or signature).
39
+ */
40
+ export declare function defaultExportPdf(api: GridApi | undefined, options: DefaultExportPdfOptions): Promise<void>;
24
41
  export type PrintProps = ToolbarIconButtonProps;
42
+ export interface QuickSearchProps {
43
+ /** Placeholder text. Falls back to `t('dataTable.quickSearch.placeholder')`. */
44
+ placeholder?: string;
45
+ /** Debounce ms before pushing to AG Grid. Defaults to 150 ms. */
46
+ debounceMs?: number;
47
+ }
48
+ export interface RefreshButtonProps extends Omit<IconButtonProps, 'icon' | 'aria-label' | 'tooltip' | 'onClick'> {
49
+ /** Called when the user clicks Refresh. */
50
+ onRefresh: () => void;
51
+ /** Accessible label. Falls back to `t('dataTable.refresh')`. */
52
+ label?: string;
53
+ }
54
+ export interface FacetFilterOption<TValue = string> {
55
+ value: TValue | null;
56
+ label: string;
57
+ }
58
+ export interface FacetFilterProps<TValue = string> {
59
+ /** Column field to filter on. */
60
+ field: string;
61
+ /** Options shown as pills. `value: null` clears the filter. */
62
+ options: FacetFilterOption<TValue>[];
63
+ /** Accessible label for the pill group. */
64
+ label?: string;
65
+ }
66
+ export type ExportFormat = 'csv' | 'xlsx' | 'pdf' | 'custom';
67
+ export interface ExportMenuItemProps {
68
+ /** Built-in format or `custom` for consumer-supplied handler. */
69
+ format: ExportFormat;
70
+ /** Label override. Built-in formats default to `t('dataTable.export.{format}')`. */
71
+ label?: string;
72
+ /** Consumer handler — required for `format: 'custom'`. */
73
+ onClick?: (api: GridApi | undefined) => void;
74
+ /** File-name override (only used by built-in formats). */
75
+ fileName?: string;
76
+ }
77
+ export interface ExportMenuProps {
78
+ /** Custom menu items. When omitted, renders the default CSV+Excel+PDF trio. */
79
+ children?: ReactNode;
80
+ /** Accessible label for the trigger. */
81
+ label?: string;
82
+ }
25
83
  export interface ColumnToggleProps {
26
84
  label?: string;
27
85
  }
@@ -34,7 +92,9 @@ export interface BulkActionProps extends Omit<ButtonProps, 'onClick' | 'children
34
92
  export declare const Toolbar: import("react").ForwardRefExoticComponent<ToolbarRootProps & import("react").RefAttributes<HTMLDivElement>> & {
35
93
  FilterBar: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
36
94
  Actions: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
95
+ /** @deprecated Use `Toolbar.ExportMenu` with a `csv` item. */
37
96
  ExportCsv: import("react").ForwardRefExoticComponent<ExportCsvProps & import("react").RefAttributes<HTMLButtonElement>>;
97
+ /** @deprecated Use `Toolbar.ExportMenu` with a `pdf` item. */
38
98
  ExportPdf: import("react").ForwardRefExoticComponent<ExportPdfProps & import("react").RefAttributes<HTMLButtonElement>>;
39
99
  Print: import("react").ForwardRefExoticComponent<Omit<IconButtonProps, "aria-label" | "onClick" | "tooltip" | "icon"> & {
40
100
  /** Accessible label — becomes the tooltip text and `aria-label`. */
@@ -45,6 +105,25 @@ export declare const Toolbar: import("react").ForwardRefExoticComponent<ToolbarR
45
105
  displayName: string;
46
106
  };
47
107
  BulkAction: import("react").ForwardRefExoticComponent<BulkActionProps & import("react").RefAttributes<HTMLButtonElement>>;
108
+ QuickSearch: {
109
+ ({ placeholder, debounceMs }: QuickSearchProps): import("react/jsx-runtime").JSX.Element;
110
+ displayName: string;
111
+ };
112
+ Refresh: import("react").ForwardRefExoticComponent<RefreshButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
113
+ FilterChips: {
114
+ (): import("react/jsx-runtime").JSX.Element | null;
115
+ displayName: string;
116
+ };
117
+ FacetFilter: <TValue extends string | number | boolean = string>({ field, options, label, }: FacetFilterProps<TValue>) => import("react/jsx-runtime").JSX.Element;
118
+ ExportMenu: {
119
+ ({ children, label }: ExportMenuProps): import("react/jsx-runtime").JSX.Element;
120
+ displayName: string;
121
+ } & {
122
+ Item: {
123
+ ({ format, label, onClick, fileName, }: ExportMenuItemProps): import("react/jsx-runtime").JSX.Element;
124
+ displayName: string;
125
+ };
126
+ };
48
127
  };
49
128
  export {};
50
129
  //# sourceMappingURL=toolbar.d.ts.map
@@ -1,4 +1,4 @@
1
- import { E as t, e as m } from "../../_chunks/email-input-DKN5JERd.js";
1
+ import { E as t, e as m } from "../../_chunks/email-input-DvJ_kPKL.js";
2
2
  export {
3
3
  t as EmailInput,
4
4
  m as emailInputAgent
@@ -1,4 +1,4 @@
1
- import { F as l, f as o } from "../../_chunks/file-upload-nMh-1jDD.js";
1
+ import { F as l, f as o } from "../../_chunks/file-upload-DxAQprcU.js";
2
2
  export {
3
3
  l as FileUpload,
4
4
  o as fileUploadAgent
@@ -125,6 +125,6 @@ export * from './tooth-scheme';
125
125
  export * from './transaction-chip';
126
126
  export * from './whatsapp-button';
127
127
  export * from './workflow';
128
- export * from '../patterns/leo-assistant';
128
+ export * from '../patterns/alia-assistant';
129
129
  export * from '../patterns/patient-shell';
130
130
  //# sourceMappingURL=index.d.ts.map
@@ -1,4 +1,4 @@
1
- import { M as o } from "../../_chunks/map-view-DVP-Kp9l.js";
1
+ import { M as o } from "../../_chunks/map-view-CcwycFQX.js";
2
2
  export {
3
3
  o as MapView
4
4
  };
@@ -1,4 +1,4 @@
1
- import { R as t, e as o, r as s, t as i, a as e, w as n } from "../../_chunks/rich-text-editor-C7TCIlQO.js";
1
+ import { R as t, e as o, r as s, t as i, a as e, w as n } from "../../_chunks/rich-text-editor-J-wAz9eN.js";
2
2
  export {
3
3
  t as RichTextEditor,
4
4
  o as editorSurfaceVariants,
@@ -1,4 +1,4 @@
1
- import { S as g, a as e } from "../../_chunks/suggestion-chip-C4Jz0LrM.js";
1
+ import { S as g, a as e } from "../../_chunks/suggestion-chip-C4kxWUIs.js";
2
2
  import { s as p } from "../../_chunks/suggestion-chip.agent-6sNWFj7m.js";
3
3
  export {
4
4
  g as SuggestionChip,