@yuno-payments/dashboard-design-system 2.2.0 → 2.2.1-beta.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 (54) hide show
  1. package/dist/components/atoms/checkbox/checkbox.js +16 -16
  2. package/dist/components/atoms/filter/filter-date-range.d.ts +31 -1
  3. package/dist/components/atoms/filter/filter-date-range.js +140 -144
  4. package/dist/components/atoms/filter/filter-multi-input.d.ts +11 -0
  5. package/dist/components/atoms/filter/filter-multi-input.js +42 -36
  6. package/dist/components/atoms/filter/filter-translations.d.ts +75 -0
  7. package/dist/components/atoms/filter/filter-translations.js +450 -0
  8. package/dist/components/atoms/filter/filter.d.ts +30 -0
  9. package/dist/components/atoms/filter/filter.js +191 -171
  10. package/dist/components/atoms/filter/index.d.ts +2 -2
  11. package/dist/components/atoms/filter-dropdown/filter-dropdown.d.ts +17 -2
  12. package/dist/components/atoms/filter-dropdown/filter-dropdown.js +160 -151
  13. package/dist/components/atoms/icon/directional-icons.d.ts +12 -0
  14. package/dist/components/atoms/icon/directional-icons.js +38 -0
  15. package/dist/components/atoms/icon/icon.d.ts +6 -0
  16. package/dist/components/atoms/icon/icon.js +27 -21
  17. package/dist/components/atoms/icon/index.d.ts +1 -0
  18. package/dist/components/atoms/index.d.ts +1 -1
  19. package/dist/components/atoms/radio-group/radio-group-option.js +2 -2
  20. package/dist/components/atoms/select/select.js +2 -2
  21. package/dist/components/molecules/dialog-header/dialog-header.d.ts +1 -1
  22. package/dist/components/molecules/pagination/index.d.ts +1 -0
  23. package/dist/components/molecules/pagination/page-numbers.d.ts +3 -1
  24. package/dist/components/molecules/pagination/page-numbers.js +10 -9
  25. package/dist/components/molecules/pagination/pagination-translations.d.ts +33 -0
  26. package/dist/components/molecules/pagination/pagination-translations.js +82 -0
  27. package/dist/components/molecules/pagination/pagination.d.ts +9 -0
  28. package/dist/components/molecules/pagination/pagination.js +46 -38
  29. package/dist/components/organisms/data-table/components/column-header/data-table-column-header-menu.d.ts +3 -1
  30. package/dist/components/organisms/data-table/components/column-header/data-table-column-header-menu.js +28 -27
  31. package/dist/components/organisms/data-table/components/column-header/data-table-column-header.js +44 -41
  32. package/dist/components/organisms/data-table/components/data-table-header.js +11 -12
  33. package/dist/components/organisms/data-table/components/dialogs/data-table-manage-columns-dialog.d.ts +3 -1
  34. package/dist/components/organisms/data-table/components/dialogs/data-table-manage-columns-dialog.js +45 -44
  35. package/dist/components/organisms/data-table/data-table.d.ts +27 -2
  36. package/dist/components/organisms/data-table/data-table.js +146 -134
  37. package/dist/components/organisms/data-table/data-table.types.d.ts +68 -0
  38. package/dist/components/organisms/data-table/data-table.types.js +252 -0
  39. package/dist/components/organisms/data-table/index.d.ts +2 -1
  40. package/dist/components/organisms/data-table/utils/data-table-utils.js +11 -8
  41. package/dist/dashboard-design-system.css +1 -1
  42. package/dist/index.css +1 -1
  43. package/dist/index.d.ts +2 -1
  44. package/dist/index.esm.min.js +9394 -8512
  45. package/dist/index.js +208 -202
  46. package/dist/index.umd.min.js +25 -25
  47. package/dist/lib/utils.d.ts +13 -0
  48. package/dist/lib/utils.js +34 -10
  49. package/dist/vendor/shadcn/pagination.d.ts +19 -3
  50. package/dist/vendor/shadcn/pagination.js +41 -37
  51. package/dist/vendor/shadcn/select.js +33 -33
  52. package/dist/vendor/shadcn/switch.js +1 -1
  53. package/package.json +4 -2
  54. package/registry/components-registry.json +38 -12
@@ -1,37 +1,38 @@
1
1
  import { j as e } from "../../../../../_virtual/jsx-runtime.js";
2
- import { Icon as b } from "../../../../atoms/icon/icon.js";
3
- import { cn as m } from "../../../../../lib/utils.js";
4
- import { useColumnHeader as D } from "../../hooks/use-column-header.js";
5
- import { DataTableColumnHeaderMenu as O } from "./data-table-column-header-menu.js";
2
+ import { Icon as h } from "../../../../atoms/icon/icon.js";
3
+ import { cn as u } from "../../../../../lib/utils.js";
4
+ import { useColumnHeader as O } from "../../hooks/use-column-header.js";
5
+ import { DataTableColumnHeaderMenu as b } from "./data-table-column-header-menu.js";
6
6
  import { DataTableManageColumnsDialog as v } from "../dialogs/data-table-manage-columns-dialog.js";
7
- import { DataTableColumnHeaderContent as H } from "./data-table-column-header-content.js";
7
+ import { DataTableColumnHeaderContent as A } from "./data-table-column-header-content.js";
8
+ import { DEFAULT_DATA_TABLE_TRANSLATIONS as H } from "../../data-table.types.js";
8
9
  import { DropdownMenu as I } from "../../../../atoms/dropdown-menu/dropdown-menu.js";
9
- function z({
10
+ function w({
10
11
  column: o,
11
- table: l,
12
- title: s,
13
- className: a,
12
+ table: s,
13
+ title: a,
14
+ className: r,
14
15
  info: n
15
16
  }) {
16
17
  const {
17
- isHovered: u,
18
- setIsHovered: r,
19
- isMenuOpen: t,
20
- setIsMenuOpen: p,
21
- isManageColumnsOpen: d,
18
+ isHovered: p,
19
+ setIsHovered: t,
20
+ isMenuOpen: i,
21
+ setIsMenuOpen: d,
22
+ isManageColumnsOpen: c,
22
23
  setIsManageColumnsOpen: C,
23
- isPinned: c,
24
- canPin: x,
25
- canSort: i,
24
+ isPinned: x,
25
+ canPin: f,
26
+ canSort: m,
26
27
  isSorted: g,
27
- toggleableColumns: f,
28
- visibleColumnsCount: j,
29
- isLastVisibleColumn: M,
30
- handleManageColumnsClick: h
31
- } = D(o, l);
32
- return !i && !x ? /* @__PURE__ */ e.jsxs("div", { className: m("flex items-center gap-2", a), children: [
28
+ toggleableColumns: j,
29
+ visibleColumnsCount: M,
30
+ isLastVisibleColumn: D,
31
+ handleManageColumnsClick: T
32
+ } = O(o, s), l = s.options.meta?.translations ?? H;
33
+ return !m && !f ? /* @__PURE__ */ e.jsxs("div", { className: u("flex items-center gap-2", r), children: [
33
34
  n && /* @__PURE__ */ e.jsx(
34
- b,
35
+ h,
35
36
  {
36
37
  name: "Info",
37
38
  size: "sm",
@@ -39,43 +40,45 @@ function z({
39
40
  tooltip: n
40
41
  }
41
42
  ),
42
- /* @__PURE__ */ e.jsx("span", { children: s })
43
+ /* @__PURE__ */ e.jsx("span", { children: a })
43
44
  ] }) : /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
44
- /* @__PURE__ */ e.jsx("div", { className: m("flex items-center gap-2", a), children: /* @__PURE__ */ e.jsxs(I, { open: t, onOpenChange: p, children: [
45
+ /* @__PURE__ */ e.jsx("div", { className: u("flex items-center gap-2", r), children: /* @__PURE__ */ e.jsxs(I, { open: i, onOpenChange: d, children: [
45
46
  /* @__PURE__ */ e.jsx(
46
- H,
47
+ A,
47
48
  {
48
- title: s,
49
+ title: a,
49
50
  info: n,
50
- isPinned: c,
51
- canSort: i,
51
+ isPinned: x,
52
+ canSort: m,
52
53
  sortDirection: g,
53
- isHovered: u,
54
- isMenuOpen: t,
55
- onMouseEnter: () => r(!0),
56
- onMouseLeave: () => r(!1)
54
+ isHovered: p,
55
+ isMenuOpen: i,
56
+ onMouseEnter: () => t(!0),
57
+ onMouseLeave: () => t(!1)
57
58
  }
58
59
  ),
59
60
  /* @__PURE__ */ e.jsx(
60
- O,
61
+ b,
61
62
  {
62
63
  column: o,
63
- isLastVisibleColumn: M,
64
- onManageColumnsClick: h
64
+ isLastVisibleColumn: D,
65
+ onManageColumnsClick: T,
66
+ translations: l
65
67
  }
66
68
  )
67
69
  ] }) }),
68
70
  /* @__PURE__ */ e.jsx(
69
71
  v,
70
72
  {
71
- isOpen: d,
73
+ isOpen: c,
72
74
  onOpenChange: C,
73
- toggleableColumns: f,
74
- visibleColumnsCount: j
75
+ toggleableColumns: j,
76
+ visibleColumnsCount: M,
77
+ translations: l
75
78
  }
76
79
  )
77
80
  ] });
78
81
  }
79
82
  export {
80
- z as DataTableColumnHeader
83
+ w as DataTableColumnHeader
81
84
  };
@@ -1,37 +1,36 @@
1
1
  import { j as a } from "../../../../_virtual/jsx-runtime.js";
2
- import "react";
3
2
  import { TableHeader as r, TableRow as m } from "../../../../vendor/shadcn/table.js";
4
3
  import { DataTableHeaderCell as o } from "./cells/data-table-header-cell.js";
5
4
  import { DataTableDraggableHeaderCell as d } from "./cells/data-table-draggable-header-cell.js";
6
- function b({
7
- table: l,
8
- enableColumnResizing: i,
9
- enableColumnDragDrop: t = !1
5
+ function j({
6
+ table: i,
7
+ enableColumnResizing: l,
8
+ enableColumnDragDrop: n = !1
10
9
  }) {
11
- return t ? /* @__PURE__ */ a.jsx(r, { children: l.getHeaderGroups().map((s) => /* @__PURE__ */ a.jsx(m, { className: "bg-muted", children: s.headers.map((e, n) => e.column.id === "select" || e.column.id === "actions" || e.column.id === "_spacer" ? /* @__PURE__ */ a.jsx(
10
+ return n ? /* @__PURE__ */ a.jsx(r, { children: i.getHeaderGroups().map((s) => /* @__PURE__ */ a.jsx(m, { className: "bg-muted", children: s.headers.map((e, t) => e.column.id === "select" || e.column.id === "actions" || e.column.id === "_spacer" ? /* @__PURE__ */ a.jsx(
12
11
  o,
13
12
  {
14
13
  header: e,
15
- enableColumnResizing: i ?? !1
14
+ enableColumnResizing: l ?? !1
16
15
  },
17
16
  e.id
18
17
  ) : /* @__PURE__ */ a.jsx(
19
18
  d,
20
19
  {
21
20
  header: e,
22
- index: n,
23
- enableColumnResizing: i ?? !1
21
+ index: t,
22
+ enableColumnResizing: l ?? !1
24
23
  },
25
24
  e.id
26
- )) }, s.id)) }) : /* @__PURE__ */ a.jsx(r, { children: l.getHeaderGroups().map((s) => /* @__PURE__ */ a.jsx(m, { className: "bg-muted", children: s.headers.map((e) => /* @__PURE__ */ a.jsx(
25
+ )) }, s.id)) }) : /* @__PURE__ */ a.jsx(r, { children: i.getHeaderGroups().map((s) => /* @__PURE__ */ a.jsx(m, { className: "bg-muted", children: s.headers.map((e) => /* @__PURE__ */ a.jsx(
27
26
  o,
28
27
  {
29
28
  header: e,
30
- enableColumnResizing: i ?? !1
29
+ enableColumnResizing: l ?? !1
31
30
  },
32
31
  e.id
33
32
  )) }, s.id)) });
34
33
  }
35
34
  export {
36
- b as DataTableHeader
35
+ j as DataTableHeader
37
36
  };
@@ -1,9 +1,11 @@
1
1
  import { Column } from '@tanstack/react-table';
2
+ import { DataTableTranslations } from '../../data-table.types';
2
3
  interface DataTableManageColumnsDialogProps<TData> {
3
4
  isOpen: boolean;
4
5
  onOpenChange: (open: boolean) => void;
5
6
  toggleableColumns: Column<TData, unknown>[];
6
7
  visibleColumnsCount: number;
8
+ translations: Required<DataTableTranslations>;
7
9
  }
8
- export declare function DataTableManageColumnsDialog<TData>({ isOpen, onOpenChange, toggleableColumns, visibleColumnsCount, }: DataTableManageColumnsDialogProps<TData>): import("react/jsx-runtime").JSX.Element;
10
+ export declare function DataTableManageColumnsDialog<TData>({ isOpen, onOpenChange, toggleableColumns, visibleColumnsCount, translations, }: DataTableManageColumnsDialogProps<TData>): import("react/jsx-runtime").JSX.Element;
9
11
  export {};
@@ -1,68 +1,69 @@
1
- import { j as s } from "../../../../../_virtual/jsx-runtime.js";
2
- import { useState as x } from "react";
3
- import { getColumnDisplayName as c } from "../../utils/data-table-utils.js";
4
- import { Dialog as y } from "../../../dialog/dialog.js";
5
- import { SearchField as N } from "../../../../atoms/search-field/search-field.js";
6
- import { Switch as V } from "../../../../atoms/switch/switch.js";
1
+ import { j as l } from "../../../../../_virtual/jsx-runtime.js";
2
+ import { useState as y } from "react";
3
+ import { getColumnDisplayName as d } from "../../utils/data-table-utils.js";
4
+ import { Dialog as C } from "../../../dialog/dialog.js";
5
+ import { SearchField as V } from "../../../../atoms/search-field/search-field.js";
6
+ import { Switch as j } from "../../../../atoms/switch/switch.js";
7
7
  function D({
8
- isOpen: d,
9
- onOpenChange: m,
10
- toggleableColumns: l,
11
- visibleColumnsCount: t
8
+ isOpen: m,
9
+ onOpenChange: h,
10
+ toggleableColumns: t,
11
+ visibleColumnsCount: a,
12
+ translations: i
12
13
  }) {
13
- const [a, n] = x(""), h = () => {
14
- n(""), m(!1);
15
- }, o = l.filter((e) => c(e).toLowerCase().includes(a.toLowerCase())), u = () => {
16
- l.forEach((e) => e.toggleVisibility(!0));
17
- }, p = () => {
18
- const e = l.filter(
19
- (i) => i.getIsVisible()
14
+ const [o, r] = y(""), u = () => {
15
+ r(""), h(!1);
16
+ }, n = t.filter((e) => d(e).toLowerCase().includes(o.toLowerCase())), p = () => {
17
+ t.forEach((e) => e.toggleVisibility(!0));
18
+ }, f = () => {
19
+ const e = t.filter(
20
+ (s) => s.getIsVisible()
20
21
  );
21
- e.length <= 1 || e.slice(1).forEach((i) => i.toggleVisibility(!1));
22
- }, f = l.every(
22
+ e.length <= 1 || e.slice(1).forEach((s) => s.toggleVisibility(!1));
23
+ }, b = t.every(
23
24
  (e) => e.getIsVisible()
24
- ), b = t <= 1;
25
- return /* @__PURE__ */ s.jsx(
26
- y,
25
+ ), g = a <= 1;
26
+ return /* @__PURE__ */ l.jsx(
27
+ C,
27
28
  {
28
- open: d,
29
- closeIcon: h,
30
- title: "Manage columns",
29
+ open: m,
30
+ closeIcon: u,
31
+ title: i.manageColumns,
31
32
  widthContainer: 400,
32
33
  buttons: [
33
34
  {
34
- children: "Hide all",
35
+ children: i.hideAll,
35
36
  variant: "link",
36
- onClick: p,
37
- disabled: b
37
+ onClick: f,
38
+ disabled: g
38
39
  },
39
40
  {
40
- children: "Show all",
41
+ children: i.showAll,
41
42
  variant: "link",
42
- onClick: u,
43
- disabled: f
43
+ onClick: p,
44
+ disabled: b
44
45
  }
45
46
  ],
46
- children: /* @__PURE__ */ s.jsxs("div", { className: "space-y-4", children: [
47
- /* @__PURE__ */ s.jsx(
48
- N,
47
+ children: /* @__PURE__ */ l.jsxs("div", { className: "space-y-4", children: [
48
+ /* @__PURE__ */ l.jsx(
49
+ V,
49
50
  {
50
- placeholder: "Search columns...",
51
- value: a,
52
- onSearch: n,
51
+ placeholder: i.searchColumns,
52
+ value: o,
53
+ onSearch: r,
53
54
  className: "mb-6"
54
55
  }
55
56
  ),
56
- /* @__PURE__ */ s.jsx("div", { className: "space-y-4 max-h-[300px] overflow-y-auto", children: o.length === 0 ? /* @__PURE__ */ s.jsx("p", { className: "text-sm text-muted-foreground text-center py-4", children: "No columns found" }) : o.map((e) => {
57
- const i = c(e), r = t === 1 && e.getIsVisible();
58
- return /* @__PURE__ */ s.jsx(
59
- V,
57
+ /* @__PURE__ */ l.jsx("div", { className: "space-y-4 max-h-[300px] overflow-y-auto", children: n.length === 0 ? /* @__PURE__ */ l.jsx("p", { className: "text-sm text-muted-foreground text-center py-4", children: i.noColumnsFound }) : n.map((e) => {
58
+ const s = d(e), c = a === 1 && e.getIsVisible();
59
+ return /* @__PURE__ */ l.jsx(
60
+ j,
60
61
  {
61
62
  id: `column-${e.id}`,
62
63
  checked: e.getIsVisible(),
63
- disabled: r,
64
- label: `${i}${r ? " (Last column)" : ""}`,
65
- onChange: (g) => e.toggleVisibility(g.target.checked)
64
+ disabled: c,
65
+ label: `${s}${c ? ` ${i.lastColumn}` : ""}`,
66
+ onChange: (x) => e.toggleVisibility(x.target.checked)
66
67
  },
67
68
  e.id
68
69
  );
@@ -1,5 +1,5 @@
1
1
  import { ColumnResizeMode } from '@tanstack/react-table';
2
- import { DataTableActionsConfig, DataTableColumnDef } from './data-table.types';
2
+ import { DataTableActionsConfig, DataTableColumnDef, DataTableTranslations, DataTableLanguage } from './data-table.types';
3
3
  import { EmptyProps } from '../../molecules';
4
4
  /**
5
5
  * Props for the DataTable component
@@ -117,6 +117,31 @@ export interface DataTableProps<TData, TValue> {
117
117
  * @default false
118
118
  */
119
119
  enableColumnDragDrop?: boolean;
120
+ /**
121
+ * Language code for translations.
122
+ * When provided, uses built-in translations for the specified language.
123
+ * @default "en"
124
+ */
125
+ lang?: DataTableLanguage;
126
+ /**
127
+ * Translation strings for the column menu and dialogs.
128
+ * All fields are optional with English defaults.
129
+ * Overrides lang-based translations if both are provided.
130
+ *
131
+ * @example
132
+ * ```tsx
133
+ * <DataTable
134
+ * lang="es"
135
+ * translations={{
136
+ * ascending: t('table.ascending'),
137
+ * descending: t('table.descending'),
138
+ * clearSorting: t('table.clearSorting'),
139
+ * // ...
140
+ * }}
141
+ * />
142
+ * ```
143
+ */
144
+ translations?: DataTableTranslations;
120
145
  }
121
146
  /**
122
147
  * Advanced data table component built on TanStack Table.
@@ -134,4 +159,4 @@ export interface DataTableProps<TData, TValue> {
134
159
  * />
135
160
  * ```
136
161
  */
137
- export declare function DataTable<TData, TValue>({ columns, data, isLoading, empty, checkboxSelection, rowSelection: externalRowSelection, onRowSelectionChange, enableSorting, manualSorting, sorting: externalSorting, onSortingChange: externalOnSortingChange, enableColumnFilters, enableColumnResizing, columnResizeMode, enableColumnPinning, onRowClick, actions, height, rowHeight, className, persistKey, initialSettings, onUpdate, enableColumnDragDrop, }: DataTableProps<TData, TValue>): import("react/jsx-runtime").JSX.Element;
162
+ export declare function DataTable<TData, TValue>({ columns, data, isLoading, empty, checkboxSelection, rowSelection: externalRowSelection, onRowSelectionChange, enableSorting, manualSorting, sorting: externalSorting, onSortingChange: externalOnSortingChange, enableColumnFilters, enableColumnResizing, columnResizeMode, enableColumnPinning, onRowClick, actions, height, rowHeight, className, persistKey, initialSettings, onUpdate, enableColumnDragDrop, lang, translations, }: DataTableProps<TData, TValue>): import("react/jsx-runtime").JSX.Element;