@rotki/ui-library 2.25.0 → 2.26.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 (76) hide show
  1. package/README.md +2 -0
  2. package/dist/components/date-time-picker/RuiDateTimePicker.js.map +1 -1
  3. package/dist/components/date-time-picker/RuiDateTimePicker.vue_vue_type_script_setup_true_lang.js +25 -7
  4. package/dist/components/date-time-picker/RuiDateTimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  5. package/dist/components/date-time-picker/date-time-picker-styles.d.ts +6 -0
  6. package/dist/components/date-time-picker/segment-utils.d.ts +16 -1
  7. package/dist/components/date-time-picker/segment-utils.js +71 -14
  8. package/dist/components/date-time-picker/segment-utils.js.map +1 -1
  9. package/dist/components/date-time-picker/use-keyboard-handler.d.ts +2 -0
  10. package/dist/components/date-time-picker/use-keyboard-handler.js +10 -3
  11. package/dist/components/date-time-picker/use-keyboard-handler.js.map +1 -1
  12. package/dist/components/forms/auto-complete/RuiAutoComplete.js.map +1 -1
  13. package/dist/components/forms/auto-complete/RuiAutoComplete.vue_vue_type_script_setup_true_lang.js +1 -0
  14. package/dist/components/forms/auto-complete/RuiAutoComplete.vue_vue_type_script_setup_true_lang.js.map +1 -1
  15. package/dist/components/forms/auto-complete/auto-complete-styles.d.ts +6 -0
  16. package/dist/components/forms/category-picker/category-picker-styles.d.ts +6 -0
  17. package/dist/components/forms/select/RuiMenuSelect.js.map +1 -1
  18. package/dist/components/forms/select/RuiMenuSelect.vue_vue_type_script_setup_true_lang.js +1 -0
  19. package/dist/components/forms/select/RuiMenuSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
  20. package/dist/components/forms/select/menu-select-styles.d.ts +6 -0
  21. package/dist/components/forms/text-input-styles.d.ts +3 -0
  22. package/dist/components/forms/text-input-styles.js +3 -1
  23. package/dist/components/forms/text-input-styles.js.map +1 -1
  24. package/dist/components/index.js +1 -1
  25. package/dist/components/tables/RuiDataTable.js.map +1 -1
  26. package/dist/components/tables/RuiDataTable.vue.d.ts +12 -1
  27. package/dist/components/tables/RuiDataTable.vue_vue_type_script_setup_true_lang.js +71 -14
  28. package/dist/components/tables/RuiDataTable.vue_vue_type_script_setup_true_lang.js.map +1 -1
  29. package/dist/components/tables/RuiTable.vue_vue_type_script_setup_true_lang.js +1 -1
  30. package/dist/components/tables/RuiTableHead.js.map +1 -1
  31. package/dist/components/tables/RuiTableHead.vue_vue_type_script_setup_true_lang.js +38 -13
  32. package/dist/components/tables/RuiTableHead.vue_vue_type_script_setup_true_lang.js.map +1 -1
  33. package/dist/components/tables/RuiTablePagination.js.map +1 -1
  34. package/dist/components/tables/RuiTablePagination.vue.d.ts +3 -3
  35. package/dist/components/tables/RuiTablePagination.vue_vue_type_script_setup_true_lang.js +65 -14
  36. package/dist/components/tables/RuiTablePagination.vue_vue_type_script_setup_true_lang.js.map +1 -1
  37. package/dist/components/tables/data-table/RuiDataTableBody.js.map +1 -1
  38. package/dist/components/tables/data-table/RuiDataTableBody.vue.d.ts +7 -1
  39. package/dist/components/tables/data-table/RuiDataTableBody.vue_vue_type_script_setup_true_lang.js +45 -9
  40. package/dist/components/tables/data-table/RuiDataTableBody.vue_vue_type_script_setup_true_lang.js.map +1 -1
  41. package/dist/components/tables/data-table/RuiDataTableCell.js.map +1 -1
  42. package/dist/components/tables/data-table/RuiDataTableCell.vue_vue_type_script_setup_true_lang.js +13 -2
  43. package/dist/components/tables/data-table/RuiDataTableCell.vue_vue_type_script_setup_true_lang.js.map +1 -1
  44. package/dist/components/tables/data-table/RuiDataTableErrorRow.js +7 -0
  45. package/dist/components/tables/data-table/RuiDataTableErrorRow.js.map +1 -0
  46. package/dist/components/tables/data-table/RuiDataTableErrorRow.vue.d.ts +21 -0
  47. package/dist/components/tables/data-table/RuiDataTableErrorRow.vue_vue_type_script_setup_true_lang.js +40 -0
  48. package/dist/components/tables/data-table/RuiDataTableErrorRow.vue_vue_type_script_setup_true_lang.js.map +1 -0
  49. package/dist/components/tables/data-table/RuiDataTableExpandedRow.js.map +1 -1
  50. package/dist/components/tables/data-table/RuiDataTableExpandedRow.vue_vue_type_script_setup_true_lang.js +12 -1
  51. package/dist/components/tables/data-table/RuiDataTableExpandedRow.vue_vue_type_script_setup_true_lang.js.map +1 -1
  52. package/dist/components/tables/data-table/RuiDataTableGroupRow.js.map +1 -1
  53. package/dist/components/tables/data-table/RuiDataTableGroupRow.vue_vue_type_script_setup_true_lang.js +52 -20
  54. package/dist/components/tables/data-table/RuiDataTableGroupRow.vue_vue_type_script_setup_true_lang.js.map +1 -1
  55. package/dist/components/tables/data-table/RuiDataTableRow.js.map +1 -1
  56. package/dist/components/tables/data-table/RuiDataTableRow.vue_vue_type_script_setup_true_lang.js +29 -14
  57. package/dist/components/tables/data-table/RuiDataTableRow.vue_vue_type_script_setup_true_lang.js.map +1 -1
  58. package/dist/components/tables/data-table/context.d.ts +10 -0
  59. package/dist/components/tables/data-table/context.js +2 -0
  60. package/dist/components/tables/data-table/context.js.map +1 -1
  61. package/dist/components/tables/data-table-styles.d.ts +15 -9
  62. package/dist/components/tables/data-table-styles.js +28 -5
  63. package/dist/components/tables/data-table-styles.js.map +1 -1
  64. package/dist/components/tables/table-props.d.ts +1 -2
  65. package/dist/components/tables/table-props.js +2 -10
  66. package/dist/components/tables/table-props.js.map +1 -1
  67. package/dist/components/tables/use-pagination-navigation.js +1 -1
  68. package/dist/components/tables/use-pagination-navigation.js.map +1 -1
  69. package/dist/i18n/keys.d.ts +1 -0
  70. package/dist/i18n/keys.js +1 -0
  71. package/dist/i18n/keys.js.map +1 -1
  72. package/dist/index.js +1 -1
  73. package/dist/library-icons.json +1 -1
  74. package/dist/style.css +120 -38
  75. package/dist/web-types.json +139 -3
  76. package/package.json +1 -1
@@ -16,9 +16,8 @@ export declare const dataTableStyles: import("tailwind-variants").TVReturnType<{
16
16
  };
17
17
  };
18
18
  dense: {
19
- true: {
20
- td: string;
21
- };
19
+ true: {};
20
+ false: {};
22
21
  };
23
22
  striped: {
24
23
  true: {
@@ -35,6 +34,9 @@ export declare const dataTableStyles: import("tailwind-variants").TVReturnType<{
35
34
  expandable: {
36
35
  tr: string;
37
36
  };
37
+ expandedParent: {
38
+ tr: string;
39
+ };
38
40
  group: {
39
41
  tr: string;
40
42
  };
@@ -76,9 +78,8 @@ export declare const dataTableStyles: import("tailwind-variants").TVReturnType<{
76
78
  };
77
79
  };
78
80
  dense: {
79
- true: {
80
- td: string;
81
- };
81
+ true: {};
82
+ false: {};
82
83
  };
83
84
  striped: {
84
85
  true: {
@@ -95,6 +96,9 @@ export declare const dataTableStyles: import("tailwind-variants").TVReturnType<{
95
96
  expandable: {
96
97
  tr: string;
97
98
  };
99
+ expandedParent: {
100
+ tr: string;
101
+ };
98
102
  group: {
99
103
  tr: string;
100
104
  };
@@ -136,9 +140,8 @@ export declare const dataTableStyles: import("tailwind-variants").TVReturnType<{
136
140
  };
137
141
  };
138
142
  dense: {
139
- true: {
140
- td: string;
141
- };
143
+ true: {};
144
+ false: {};
142
145
  };
143
146
  striped: {
144
147
  true: {
@@ -155,6 +158,9 @@ export declare const dataTableStyles: import("tailwind-variants").TVReturnType<{
155
158
  expandable: {
156
159
  tr: string;
157
160
  };
161
+ expandedParent: {
162
+ tr: string;
163
+ };
158
164
  group: {
159
165
  tr: string;
160
166
  };
@@ -7,7 +7,7 @@ var dataTableStyles = tv({
7
7
  table: "min-w-full table-fixed divide-y divide-black/[0.12] dark:divide-white/[0.12] whitespace-nowrap mx-auto my-0 max-w-fit relative border-black/[0.12] dark:border-white/[0.12]",
8
8
  tbody: "divide-y divide-black/[0.12] dark:divide-white/[0.12]",
9
9
  tr: "hover:bg-black/[0.04] dark:hover:bg-white/[0.04]",
10
- td: "p-4 text-rui-text text-body-2 [text-wrap:initial]",
10
+ td: "[:where(&)]:px-4 text-rui-text text-body-2 tabular-nums [text-wrap:initial]",
11
11
  checkbox: "px-2 w-[3.625rem] max-w-[3.625rem] [&_label]:ml-0",
12
12
  tbodyLoader: "text-center"
13
13
  },
@@ -18,13 +18,17 @@ var dataTableStyles = tv({
18
18
  md: { wrapper: "rounded-[.75rem]" },
19
19
  lg: { wrapper: "rounded-[1rem]" }
20
20
  },
21
- dense: { true: { td: "py-[0.38rem]" } },
22
- striped: { true: { tbody: "even:[&>tr]:bg-rui-grey-50 dark:even:[&>tr]:bg-rui-grey-900" } },
21
+ dense: {
22
+ true: {},
23
+ false: {}
24
+ },
25
+ striped: { true: { tbody: "[:where(&>tr:nth-child(even))]:bg-rui-grey-50 dark:[:where(&>tr:nth-child(even))]:bg-rui-grey-900" } },
23
26
  rowVariant: {
24
27
  selected: { tr: "bg-rui-primary/[0.08] dark:bg-rui-dark-primary/[0.08]" },
25
28
  empty: { tr: "hover:bg-transparent" },
26
- expandable: { tr: "bg-[#f9fafb] hover:bg-[#f9fafb] dark:bg-[#121212] dark:hover:bg-[#121212]" },
27
- group: { tr: "bg-black/[0.02] dark:bg-white/[0.02]" }
29
+ expandable: { tr: "bg-rui-grey-50 hover:bg-rui-grey-50 dark:bg-white/[0.03] dark:hover:bg-white/[0.03] !border-t-0" },
30
+ expandedParent: { tr: "bg-rui-grey-50 dark:bg-white/[0.03]" },
31
+ group: { tr: "bg-rui-grey-100 dark:bg-white/[0.05]" }
28
32
  },
29
33
  mobile: { true: {
30
34
  wrapper: "divide-y-0 border-0 rounded-none overflow-visible",
@@ -34,6 +38,25 @@ var dataTableStyles = tv({
34
38
  tr: "block",
35
39
  td: "block px-4 py-2"
36
40
  } }
41
+ },
42
+ /**
43
+ * A fixed row height keeps a row of plain text as tall as one holding an
44
+ * icon button. Padding and floor sit in `:where()` so a consumer's `cellClass`
45
+ * (`py-0` is common) still wins at any stylesheet order, and each density
46
+ * sets its own because the class merger cannot dedupe these.
47
+ */
48
+ compoundVariants: [{
49
+ dense: false,
50
+ mobile: false,
51
+ class: { td: "[:where(&)]:py-3 [:where(&)]:h-[3.25rem]" }
52
+ }, {
53
+ dense: true,
54
+ mobile: false,
55
+ class: { td: "[:where(&)]:py-1 [:where(&)]:h-9" }
56
+ }],
57
+ defaultVariants: {
58
+ dense: false,
59
+ mobile: false
37
60
  }
38
61
  });
39
62
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"data-table-styles.js","names":[],"sources":["../../../src/components/tables/data-table-styles.ts"],"sourcesContent":["import { tv } from '@/utils/tv';\n\nexport const dataTableStyles = tv({\n slots: {\n wrapper: 'relative divide-y divide-black/[0.12] dark:divide-white/[0.12] overflow-hidden',\n scroller: 'overflow-x-auto overflow-y-hidden [clip-path:inset(0_0_0_0)]',\n table: 'min-w-full table-fixed divide-y divide-black/[0.12] dark:divide-white/[0.12] whitespace-nowrap mx-auto my-0 max-w-fit relative border-black/[0.12] dark:border-white/[0.12]',\n tbody: 'divide-y divide-black/[0.12] dark:divide-white/[0.12]',\n tr: 'hover:bg-black/[0.04] dark:hover:bg-white/[0.04]',\n td: 'p-4 text-rui-text text-body-2 [text-wrap:initial]',\n checkbox: 'px-2 w-[3.625rem] max-w-[3.625rem] [&_label]:ml-0',\n tbodyLoader: 'text-center',\n },\n variants: {\n outlined: {\n true: { wrapper: 'border border-black/[0.12] dark:border-white/[0.12]' },\n },\n rounded: {\n sm: { wrapper: 'rounded-[.25rem]' },\n md: { wrapper: 'rounded-[.75rem]' },\n lg: { wrapper: 'rounded-[1rem]' },\n },\n dense: {\n true: { td: 'py-[0.38rem]' },\n },\n striped: {\n true: { tbody: 'even:[&>tr]:bg-rui-grey-50 dark:even:[&>tr]:bg-rui-grey-900' },\n },\n rowVariant: {\n selected: { tr: 'bg-rui-primary/[0.08] dark:bg-rui-dark-primary/[0.08]' },\n empty: { tr: 'hover:bg-transparent' },\n expandable: { tr: 'bg-[#f9fafb] hover:bg-[#f9fafb] dark:bg-[#121212] dark:hover:bg-[#121212]' },\n group: { tr: 'bg-black/[0.02] dark:bg-white/[0.02]' },\n },\n mobile: {\n true: {\n wrapper: 'divide-y-0 border-0 rounded-none overflow-visible',\n scroller: 'overflow-visible [clip-path:none]',\n table: 'block min-w-0 max-w-none w-full whitespace-normal divide-y-0 border-0',\n tbody: 'block divide-y-0',\n tr: 'block',\n td: 'block px-4 py-2',\n },\n },\n },\n});\n"],"mappings":";;AAEA,IAAa,kBAAkB,GAAG;CAChC,OAAO;EACL,SAAS;EACT,UAAU;EACV,OAAO;EACP,OAAO;EACP,IAAI;EACJ,IAAI;EACJ,UAAU;EACV,aAAa;CACf;CACA,UAAU;EACR,UAAU,EACR,MAAM,EAAE,SAAS,sDAAsD,EACzE;EACA,SAAS;GACP,IAAI,EAAE,SAAS,mBAAmB;GAClC,IAAI,EAAE,SAAS,mBAAmB;GAClC,IAAI,EAAE,SAAS,iBAAiB;EAClC;EACA,OAAO,EACL,MAAM,EAAE,IAAI,eAAe,EAC7B;EACA,SAAS,EACP,MAAM,EAAE,OAAO,8DAA8D,EAC/E;EACA,YAAY;GACV,UAAU,EAAE,IAAI,wDAAwD;GACxE,OAAO,EAAE,IAAI,uBAAuB;GACpC,YAAY,EAAE,IAAI,4EAA4E;GAC9F,OAAO,EAAE,IAAI,uCAAuC;EACtD;EACA,QAAQ,EACN,MAAM;GACJ,SAAS;GACT,UAAU;GACV,OAAO;GACP,OAAO;GACP,IAAI;GACJ,IAAI;EACN,EACF;CACF;AACF,CAAC"}
1
+ {"version":3,"file":"data-table-styles.js","names":[],"sources":["../../../src/components/tables/data-table-styles.ts"],"sourcesContent":["import { tv } from '@/utils/tv';\n\nexport const dataTableStyles = tv({\n slots: {\n wrapper: 'relative divide-y divide-black/[0.12] dark:divide-white/[0.12] overflow-hidden',\n scroller: 'overflow-x-auto overflow-y-hidden [clip-path:inset(0_0_0_0)]',\n table: 'min-w-full table-fixed divide-y divide-black/[0.12] dark:divide-white/[0.12] whitespace-nowrap mx-auto my-0 max-w-fit relative border-black/[0.12] dark:border-white/[0.12]',\n tbody: 'divide-y divide-black/[0.12] dark:divide-white/[0.12]',\n tr: 'hover:bg-black/[0.04] dark:hover:bg-white/[0.04]',\n td: '[:where(&)]:px-4 text-rui-text text-body-2 tabular-nums [text-wrap:initial]',\n checkbox: 'px-2 w-[3.625rem] max-w-[3.625rem] [&_label]:ml-0',\n tbodyLoader: 'text-center',\n },\n variants: {\n outlined: {\n true: { wrapper: 'border border-black/[0.12] dark:border-white/[0.12]' },\n },\n rounded: {\n sm: { wrapper: 'rounded-[.25rem]' },\n md: { wrapper: 'rounded-[.75rem]' },\n lg: { wrapper: 'rounded-[1rem]' },\n },\n dense: {\n true: {},\n false: {},\n },\n // `:where()` keeps the stripe below every row state (selected, hover, expanded, group)\n striped: {\n true: { tbody: '[:where(&>tr:nth-child(even))]:bg-rui-grey-50 dark:[:where(&>tr:nth-child(even))]:bg-rui-grey-900' },\n },\n rowVariant: {\n selected: { tr: 'bg-rui-primary/[0.08] dark:bg-rui-dark-primary/[0.08]' },\n empty: { tr: 'hover:bg-transparent' },\n // `!border-t-0` drops the divider so the panel joins the row that opened it\n expandable: { tr: 'bg-rui-grey-50 hover:bg-rui-grey-50 dark:bg-white/[0.03] dark:hover:bg-white/[0.03] !border-t-0' },\n expandedParent: { tr: 'bg-rui-grey-50 dark:bg-white/[0.03]' },\n group: { tr: 'bg-rui-grey-100 dark:bg-white/[0.05]' },\n },\n mobile: {\n true: {\n wrapper: 'divide-y-0 border-0 rounded-none overflow-visible',\n scroller: 'overflow-visible [clip-path:none]',\n table: 'block min-w-0 max-w-none w-full whitespace-normal divide-y-0 border-0',\n tbody: 'block divide-y-0',\n tr: 'block',\n td: 'block px-4 py-2',\n },\n },\n },\n /**\n * A fixed row height keeps a row of plain text as tall as one holding an\n * icon button. Padding and floor sit in `:where()` so a consumer's `cellClass`\n * (`py-0` is common) still wins at any stylesheet order, and each density\n * sets its own because the class merger cannot dedupe these.\n */\n compoundVariants: [\n { dense: false, mobile: false, class: { td: '[:where(&)]:py-3 [:where(&)]:h-[3.25rem]' } },\n { dense: true, mobile: false, class: { td: '[:where(&)]:py-1 [:where(&)]:h-9' } },\n ],\n defaultVariants: {\n dense: false,\n mobile: false,\n },\n});\n"],"mappings":";;AAEA,IAAa,kBAAkB,GAAG;CAChC,OAAO;EACL,SAAS;EACT,UAAU;EACV,OAAO;EACP,OAAO;EACP,IAAI;EACJ,IAAI;EACJ,UAAU;EACV,aAAa;CACf;CACA,UAAU;EACR,UAAU,EACR,MAAM,EAAE,SAAS,sDAAsD,EACzE;EACA,SAAS;GACP,IAAI,EAAE,SAAS,mBAAmB;GAClC,IAAI,EAAE,SAAS,mBAAmB;GAClC,IAAI,EAAE,SAAS,iBAAiB;EAClC;EACA,OAAO;GACL,MAAM,CAAC;GACP,OAAO,CAAC;EACV;EAEA,SAAS,EACP,MAAM,EAAE,OAAO,oGAAoG,EACrH;EACA,YAAY;GACV,UAAU,EAAE,IAAI,wDAAwD;GACxE,OAAO,EAAE,IAAI,uBAAuB;GAEpC,YAAY,EAAE,IAAI,kGAAkG;GACpH,gBAAgB,EAAE,IAAI,sCAAsC;GAC5D,OAAO,EAAE,IAAI,uCAAuC;EACtD;EACA,QAAQ,EACN,MAAM;GACJ,SAAS;GACT,UAAU;GACV,OAAO;GACP,OAAO;GACP,IAAI;GACJ,IAAI;EACN,EACF;CACF;;;;;;;CAOA,kBAAkB,CAChB;EAAE,OAAO;EAAO,QAAQ;EAAO,OAAO,EAAE,IAAI,2CAA2C;CAAE,GACzF;EAAE,OAAO;EAAM,QAAQ;EAAO,OAAO,EAAE,IAAI,mCAAmC;CAAE,CAClF;CACA,iBAAiB;EACf,OAAO;EACP,QAAQ;CACV;AACF,CAAC"}
@@ -16,9 +16,8 @@ export declare const SortDirection: {
16
16
  export type SortDirection = (typeof SortDirection)[keyof typeof SortDirection];
17
17
  /**
18
18
  * Returns alignment Tailwind classes for a table cell.
19
- * When sortable, adds reduced padding for the sort button.
20
19
  */
21
- export declare function getAlignClass(align?: TableAlign, sortable?: boolean): string;
20
+ export declare function getAlignClass(align?: TableAlign): string;
22
21
  /**
23
22
  * Returns extra class for sort button when column is center-aligned.
24
23
  */
@@ -17,19 +17,11 @@ var ALIGN_CLASSES = {
17
17
  [TableAlign.center]: "text-center",
18
18
  [TableAlign.end]: "text-right rtl:text-left"
19
19
  };
20
- var SORTABLE_ALIGN_CLASSES = {
21
- [TableAlign.start]: "pl-3",
22
- [TableAlign.center]: "px-3",
23
- [TableAlign.end]: "pr-3"
24
- };
25
20
  /**
26
21
  * Returns alignment Tailwind classes for a table cell.
27
- * When sortable, adds reduced padding for the sort button.
28
22
  */
29
- function getAlignClass(align = TableAlign.start, sortable) {
30
- const classes = ALIGN_CLASSES[align];
31
- if (sortable) return `${classes} ${SORTABLE_ALIGN_CLASSES[align]}`;
32
- return classes;
23
+ function getAlignClass(align = TableAlign.start) {
24
+ return ALIGN_CLASSES[align];
33
25
  }
34
26
  /**
35
27
  * Returns extra class for sort button when column is center-aligned.
@@ -1 +1 @@
1
- {"version":3,"file":"table-props.js","names":[],"sources":["../../../src/components/tables/table-props.ts"],"sourcesContent":["export const TableAlign = {\n start: 'start',\n center: 'center',\n end: 'end',\n} as const;\n\nexport type TableAlign = (typeof TableAlign)[keyof typeof TableAlign];\n\nexport const GroupExpandButtonPosition = {\n start: 'start',\n end: 'end',\n} as const;\n\nexport type GroupExpandButtonPosition = (typeof GroupExpandButtonPosition)[keyof typeof GroupExpandButtonPosition];\n\nexport const SortDirection = {\n asc: 'asc',\n desc: 'desc',\n} as const;\n\nexport type SortDirection = (typeof SortDirection)[keyof typeof SortDirection];\n\nconst ALIGN_CLASSES: Record<TableAlign, string> = {\n [TableAlign.start]: 'text-left rtl:text-right',\n [TableAlign.center]: 'text-center',\n [TableAlign.end]: 'text-right rtl:text-left',\n};\n\nconst SORTABLE_ALIGN_CLASSES: Record<TableAlign, string> = {\n [TableAlign.start]: 'pl-3',\n [TableAlign.center]: 'px-3',\n [TableAlign.end]: 'pr-3',\n};\n\n/**\n * Returns alignment Tailwind classes for a table cell.\n * When sortable, adds reduced padding for the sort button.\n */\nexport function getAlignClass(align: TableAlign = TableAlign.start, sortable?: boolean): string {\n const classes = ALIGN_CLASSES[align];\n if (sortable)\n return `${classes} ${SORTABLE_ALIGN_CLASSES[align]}`;\n return classes;\n}\n\n/**\n * Returns extra class for sort button when column is center-aligned.\n */\nexport function getSortButtonAlignClass(align: TableAlign = TableAlign.start): string | undefined {\n return align === TableAlign.center ? 'ml-6' : undefined;\n}\n"],"mappings":";AAAA,IAAa,aAAa;CACxB,OAAO;CACP,QAAQ;CACR,KAAK;AACP;AAIA,IAAa,4BAA4B;CACvC,OAAO;CACP,KAAK;AACP;AAIA,IAAa,gBAAgB;CAC3B,KAAK;CACL,MAAM;AACR;AAIA,IAAM,gBAA4C;EAC/C,WAAW,QAAQ;EACnB,WAAW,SAAS;EACpB,WAAW,MAAM;AACpB;AAEA,IAAM,yBAAqD;EACxD,WAAW,QAAQ;EACnB,WAAW,SAAS;EACpB,WAAW,MAAM;AACpB;;;;;AAMA,SAAgB,cAAc,QAAoB,WAAW,OAAO,UAA4B;CAC9F,MAAM,UAAU,cAAc;CAC9B,IAAI,UACF,OAAO,GAAG,QAAQ,GAAG,uBAAuB;CAC9C,OAAO;AACT;;;;AAKA,SAAgB,wBAAwB,QAAoB,WAAW,OAA2B;CAChG,OAAO,UAAU,WAAW,SAAS,SAAS,KAAA;AAChD"}
1
+ {"version":3,"file":"table-props.js","names":[],"sources":["../../../src/components/tables/table-props.ts"],"sourcesContent":["export const TableAlign = {\n start: 'start',\n center: 'center',\n end: 'end',\n} as const;\n\nexport type TableAlign = (typeof TableAlign)[keyof typeof TableAlign];\n\nexport const GroupExpandButtonPosition = {\n start: 'start',\n end: 'end',\n} as const;\n\nexport type GroupExpandButtonPosition = (typeof GroupExpandButtonPosition)[keyof typeof GroupExpandButtonPosition];\n\nexport const SortDirection = {\n asc: 'asc',\n desc: 'desc',\n} as const;\n\nexport type SortDirection = (typeof SortDirection)[keyof typeof SortDirection];\n\nconst ALIGN_CLASSES: Record<TableAlign, string> = {\n [TableAlign.start]: 'text-left rtl:text-right',\n [TableAlign.center]: 'text-center',\n [TableAlign.end]: 'text-right rtl:text-left',\n};\n\n/**\n * Returns alignment Tailwind classes for a table cell.\n */\nexport function getAlignClass(align: TableAlign = TableAlign.start): string {\n return ALIGN_CLASSES[align];\n}\n\n/**\n * Returns extra class for sort button when column is center-aligned.\n */\nexport function getSortButtonAlignClass(align: TableAlign = TableAlign.start): string | undefined {\n return align === TableAlign.center ? 'ml-6' : undefined;\n}\n"],"mappings":";AAAA,IAAa,aAAa;CACxB,OAAO;CACP,QAAQ;CACR,KAAK;AACP;AAIA,IAAa,4BAA4B;CACvC,OAAO;CACP,KAAK;AACP;AAIA,IAAa,gBAAgB;CAC3B,KAAK;CACL,MAAM;AACR;AAIA,IAAM,gBAA4C;EAC/C,WAAW,QAAQ;EACnB,WAAW,SAAS;EACpB,WAAW,MAAM;AACpB;;;;AAKA,SAAgB,cAAc,QAAoB,WAAW,OAAe;CAC1E,OAAO,cAAc;AACvB;;;;AAKA,SAAgB,wBAAwB,QAAoB,WAAW,OAA2B;CAChG,OAAO,UAAU,WAAW,SAAS,SAAS,KAAA;AAChD"}
@@ -21,7 +21,7 @@ function usePaginationNavigation(modelValue, tableDefaults, rangesThreshold = 50
21
21
  const { limit, total } = get(modelValue);
22
22
  const start = (page - 1) * limit + 1;
23
23
  const end = Math.min(page * limit, total);
24
- return `${formatInteger(start)} - ${formatInteger(end)}`;
24
+ return `${formatInteger(start)}–${formatInteger(end)}`;
25
25
  }
26
26
  const useInputJump = computed(() => {
27
27
  const threshold = toValue(rangesThreshold);
@@ -1 +1 @@
1
- {"version":3,"file":"use-pagination-navigation.js","names":[],"sources":["../../../src/components/tables/use-pagination-navigation.ts"],"sourcesContent":["import type { ComputedRef, MaybeRefOrGetter, Ref, WritableComputedRef } from 'vue';\nimport type { TableOptions } from '@/composables/defaults/table';\nimport { formatInteger } from '@/utils/helpers';\n\ninterface LimitEntry { limit: number }\n\ninterface PageRange { page: number; text: string }\n\nexport interface TablePaginationData {\n page: number;\n total: number;\n limit: number;\n limits?: number[];\n}\n\nexport interface UsePaginationNavigationReturn {\n limits: ComputedRef<LimitEntry[]>;\n currentLimit: WritableComputedRef<number>;\n pages: ComputedRef<number>;\n ranges: ComputedRef<PageRange[]>;\n indicatorText: ComputedRef<string>;\n currentRange: WritableComputedRef<number>;\n useInputJump: ComputedRef<boolean>;\n hasPrev: ComputedRef<boolean>;\n hasNext: ComputedRef<boolean>;\n onPrev: () => void;\n onNext: () => void;\n onFirst: () => void;\n onLast: () => void;\n}\n\nexport function usePaginationNavigation(\n modelValue: Ref<TablePaginationData>,\n tableDefaults: TableOptions,\n rangesThreshold: MaybeRefOrGetter<number> = 500,\n): UsePaginationNavigationReturn {\n const limits = computed<LimitEntry[]>(() =>\n (get(modelValue).limits ?? get(tableDefaults.limits)).map(limit => ({ limit })),\n );\n\n const currentLimit = computed<number>({\n get: () => get(modelValue).limit,\n set: limit =>\n set(modelValue, {\n ...get(modelValue),\n limit,\n page: 1,\n }),\n });\n\n const pages = computed<number>(() => {\n const { limit, total } = get(modelValue);\n if (!total)\n return 0;\n\n return Math.ceil(total / limit);\n });\n\n function pageRangeText(page: number): string {\n const { limit, total } = get(modelValue);\n const start = (page - 1) * limit + 1;\n const end = Math.min(page * limit, total);\n return `${formatInteger(start)} - ${formatInteger(end)}`;\n }\n\n const useInputJump = computed<boolean>(() => {\n const threshold = toValue(rangesThreshold);\n return threshold > 0 && get(pages) > threshold;\n });\n\n const ranges = computed<PageRange[]>(() => {\n if (get(useInputJump))\n return [];\n\n return Array.from({ length: get(pages) }, (_, i) => {\n const page = i + 1;\n return { page, text: pageRangeText(page) };\n });\n });\n\n const indicatorText = computed<string>(() => {\n const { total } = get(modelValue);\n if (get(useInputJump))\n return `of ${formatInteger(get(pages))}`;\n\n return total ? `of ${formatInteger(total)}` : `0 of 0`;\n });\n\n const currentRange = computed<number>({\n get: () => get(modelValue).page,\n set: page =>\n set(modelValue, {\n ...get(modelValue),\n page,\n }),\n });\n\n const hasPrev = computed<boolean>(() => get(modelValue).page > 1);\n const hasNext = computed<boolean>(() => get(pages) > get(modelValue).page);\n\n function goToPage(page: number): void {\n set(currentRange, page);\n }\n\n function onPrev(): void {\n if (get(hasPrev))\n goToPage(get(modelValue).page - 1);\n }\n\n function onNext(): void {\n if (get(hasNext))\n goToPage(get(modelValue).page + 1);\n }\n\n function onFirst(): void {\n if (get(hasPrev))\n goToPage(1);\n }\n\n function onLast(): void {\n if (get(hasNext))\n goToPage(get(pages));\n }\n\n return {\n limits,\n currentLimit,\n pages,\n ranges,\n indicatorText,\n currentRange,\n useInputJump,\n hasPrev,\n hasNext,\n onPrev,\n onNext,\n onFirst,\n onLast,\n };\n}\n"],"mappings":";;;;AA+BA,SAAgB,wBACd,YACA,eACA,kBAA4C,KACb;CAC/B,MAAM,SAAS,gBACZ,IAAI,UAAU,CAAC,CAAC,UAAU,IAAI,cAAc,MAAM,EAAA,CAAG,KAAI,WAAU,EAAE,MAAM,EAAE,CAChF;CAEA,MAAM,eAAe,SAAiB;EACpC,WAAW,IAAI,UAAU,CAAC,CAAC;EAC3B,MAAK,UACH,IAAI,YAAY;GACd,GAAG,IAAI,UAAU;GACjB;GACA,MAAM;EACR,CAAC;CACL,CAAC;CAED,MAAM,QAAQ,eAAuB;EACnC,MAAM,EAAE,OAAO,UAAU,IAAI,UAAU;EACvC,IAAI,CAAC,OACH,OAAO;EAET,OAAO,KAAK,KAAK,QAAQ,KAAK;CAChC,CAAC;CAED,SAAS,cAAc,MAAsB;EAC3C,MAAM,EAAE,OAAO,UAAU,IAAI,UAAU;EACvC,MAAM,SAAS,OAAO,KAAK,QAAQ;EACnC,MAAM,MAAM,KAAK,IAAI,OAAO,OAAO,KAAK;EACxC,OAAO,GAAG,cAAc,KAAK,EAAE,KAAK,cAAc,GAAG;CACvD;CAEA,MAAM,eAAe,eAAwB;EAC3C,MAAM,YAAY,QAAQ,eAAe;EACzC,OAAO,YAAY,KAAK,IAAI,KAAK,IAAI;CACvC,CAAC;CAED,MAAM,SAAS,eAA4B;EACzC,IAAI,IAAI,YAAY,GAClB,OAAO,CAAC;EAEV,OAAO,MAAM,KAAK,EAAE,QAAQ,IAAI,KAAK,EAAE,IAAI,GAAG,MAAM;GAClD,MAAM,OAAO,IAAI;GACjB,OAAO;IAAE;IAAM,MAAM,cAAc,IAAI;GAAE;EAC3C,CAAC;CACH,CAAC;CAED,MAAM,gBAAgB,eAAuB;EAC3C,MAAM,EAAE,UAAU,IAAI,UAAU;EAChC,IAAI,IAAI,YAAY,GAClB,OAAO,MAAM,cAAc,IAAI,KAAK,CAAC;EAEvC,OAAO,QAAQ,MAAM,cAAc,KAAK,MAAM;CAChD,CAAC;CAED,MAAM,eAAe,SAAiB;EACpC,WAAW,IAAI,UAAU,CAAC,CAAC;EAC3B,MAAK,SACH,IAAI,YAAY;GACd,GAAG,IAAI,UAAU;GACjB;EACF,CAAC;CACL,CAAC;CAED,MAAM,UAAU,eAAwB,IAAI,UAAU,CAAC,CAAC,OAAO,CAAC;CAChE,MAAM,UAAU,eAAwB,IAAI,KAAK,IAAI,IAAI,UAAU,CAAC,CAAC,IAAI;CAEzE,SAAS,SAAS,MAAoB;EACpC,IAAI,cAAc,IAAI;CACxB;CAEA,SAAS,SAAe;EACtB,IAAI,IAAI,OAAO,GACb,SAAS,IAAI,UAAU,CAAC,CAAC,OAAO,CAAC;CACrC;CAEA,SAAS,SAAe;EACtB,IAAI,IAAI,OAAO,GACb,SAAS,IAAI,UAAU,CAAC,CAAC,OAAO,CAAC;CACrC;CAEA,SAAS,UAAgB;EACvB,IAAI,IAAI,OAAO,GACb,SAAS,CAAC;CACd;CAEA,SAAS,SAAe;EACtB,IAAI,IAAI,OAAO,GACb,SAAS,IAAI,KAAK,CAAC;CACvB;CAEA,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF"}
1
+ {"version":3,"file":"use-pagination-navigation.js","names":[],"sources":["../../../src/components/tables/use-pagination-navigation.ts"],"sourcesContent":["import type { ComputedRef, MaybeRefOrGetter, Ref, WritableComputedRef } from 'vue';\nimport type { TableOptions } from '@/composables/defaults/table';\nimport { formatInteger } from '@/utils/helpers';\n\ninterface LimitEntry { limit: number }\n\ninterface PageRange { page: number; text: string }\n\nexport interface TablePaginationData {\n page: number;\n total: number;\n limit: number;\n limits?: number[];\n}\n\nexport interface UsePaginationNavigationReturn {\n limits: ComputedRef<LimitEntry[]>;\n currentLimit: WritableComputedRef<number>;\n pages: ComputedRef<number>;\n ranges: ComputedRef<PageRange[]>;\n indicatorText: ComputedRef<string>;\n currentRange: WritableComputedRef<number>;\n useInputJump: ComputedRef<boolean>;\n hasPrev: ComputedRef<boolean>;\n hasNext: ComputedRef<boolean>;\n onPrev: () => void;\n onNext: () => void;\n onFirst: () => void;\n onLast: () => void;\n}\n\nexport function usePaginationNavigation(\n modelValue: Ref<TablePaginationData>,\n tableDefaults: TableOptions,\n rangesThreshold: MaybeRefOrGetter<number> = 500,\n): UsePaginationNavigationReturn {\n const limits = computed<LimitEntry[]>(() =>\n (get(modelValue).limits ?? get(tableDefaults.limits)).map(limit => ({ limit })),\n );\n\n const currentLimit = computed<number>({\n get: () => get(modelValue).limit,\n set: limit =>\n set(modelValue, {\n ...get(modelValue),\n limit,\n page: 1,\n }),\n });\n\n const pages = computed<number>(() => {\n const { limit, total } = get(modelValue);\n if (!total)\n return 0;\n\n return Math.ceil(total / limit);\n });\n\n function pageRangeText(page: number): string {\n const { limit, total } = get(modelValue);\n const start = (page - 1) * limit + 1;\n const end = Math.min(page * limit, total);\n return `${formatInteger(start)}–${formatInteger(end)}`;\n }\n\n const useInputJump = computed<boolean>(() => {\n const threshold = toValue(rangesThreshold);\n return threshold > 0 && get(pages) > threshold;\n });\n\n const ranges = computed<PageRange[]>(() => {\n if (get(useInputJump))\n return [];\n\n return Array.from({ length: get(pages) }, (_, i) => {\n const page = i + 1;\n return { page, text: pageRangeText(page) };\n });\n });\n\n const indicatorText = computed<string>(() => {\n const { total } = get(modelValue);\n if (get(useInputJump))\n return `of ${formatInteger(get(pages))}`;\n\n return total ? `of ${formatInteger(total)}` : `0 of 0`;\n });\n\n const currentRange = computed<number>({\n get: () => get(modelValue).page,\n set: page =>\n set(modelValue, {\n ...get(modelValue),\n page,\n }),\n });\n\n const hasPrev = computed<boolean>(() => get(modelValue).page > 1);\n const hasNext = computed<boolean>(() => get(pages) > get(modelValue).page);\n\n function goToPage(page: number): void {\n set(currentRange, page);\n }\n\n function onPrev(): void {\n if (get(hasPrev))\n goToPage(get(modelValue).page - 1);\n }\n\n function onNext(): void {\n if (get(hasNext))\n goToPage(get(modelValue).page + 1);\n }\n\n function onFirst(): void {\n if (get(hasPrev))\n goToPage(1);\n }\n\n function onLast(): void {\n if (get(hasNext))\n goToPage(get(pages));\n }\n\n return {\n limits,\n currentLimit,\n pages,\n ranges,\n indicatorText,\n currentRange,\n useInputJump,\n hasPrev,\n hasNext,\n onPrev,\n onNext,\n onFirst,\n onLast,\n };\n}\n"],"mappings":";;;;AA+BA,SAAgB,wBACd,YACA,eACA,kBAA4C,KACb;CAC/B,MAAM,SAAS,gBACZ,IAAI,UAAU,CAAC,CAAC,UAAU,IAAI,cAAc,MAAM,EAAA,CAAG,KAAI,WAAU,EAAE,MAAM,EAAE,CAChF;CAEA,MAAM,eAAe,SAAiB;EACpC,WAAW,IAAI,UAAU,CAAC,CAAC;EAC3B,MAAK,UACH,IAAI,YAAY;GACd,GAAG,IAAI,UAAU;GACjB;GACA,MAAM;EACR,CAAC;CACL,CAAC;CAED,MAAM,QAAQ,eAAuB;EACnC,MAAM,EAAE,OAAO,UAAU,IAAI,UAAU;EACvC,IAAI,CAAC,OACH,OAAO;EAET,OAAO,KAAK,KAAK,QAAQ,KAAK;CAChC,CAAC;CAED,SAAS,cAAc,MAAsB;EAC3C,MAAM,EAAE,OAAO,UAAU,IAAI,UAAU;EACvC,MAAM,SAAS,OAAO,KAAK,QAAQ;EACnC,MAAM,MAAM,KAAK,IAAI,OAAO,OAAO,KAAK;EACxC,OAAO,GAAG,cAAc,KAAK,EAAE,GAAG,cAAc,GAAG;CACrD;CAEA,MAAM,eAAe,eAAwB;EAC3C,MAAM,YAAY,QAAQ,eAAe;EACzC,OAAO,YAAY,KAAK,IAAI,KAAK,IAAI;CACvC,CAAC;CAED,MAAM,SAAS,eAA4B;EACzC,IAAI,IAAI,YAAY,GAClB,OAAO,CAAC;EAEV,OAAO,MAAM,KAAK,EAAE,QAAQ,IAAI,KAAK,EAAE,IAAI,GAAG,MAAM;GAClD,MAAM,OAAO,IAAI;GACjB,OAAO;IAAE;IAAM,MAAM,cAAc,IAAI;GAAE;EAC3C,CAAC;CACH,CAAC;CAED,MAAM,gBAAgB,eAAuB;EAC3C,MAAM,EAAE,UAAU,IAAI,UAAU;EAChC,IAAI,IAAI,YAAY,GAClB,OAAO,MAAM,cAAc,IAAI,KAAK,CAAC;EAEvC,OAAO,QAAQ,MAAM,cAAc,KAAK,MAAM;CAChD,CAAC;CAED,MAAM,eAAe,SAAiB;EACpC,WAAW,IAAI,UAAU,CAAC,CAAC;EAC3B,MAAK,SACH,IAAI,YAAY;GACd,GAAG,IAAI,UAAU;GACjB;EACF,CAAC;CACL,CAAC;CAED,MAAM,UAAU,eAAwB,IAAI,UAAU,CAAC,CAAC,OAAO,CAAC;CAChE,MAAM,UAAU,eAAwB,IAAI,KAAK,IAAI,IAAI,UAAU,CAAC,CAAC,IAAI;CAEzE,SAAS,SAAS,MAAoB;EACpC,IAAI,cAAc,IAAI;CACxB;CAEA,SAAS,SAAe;EACtB,IAAI,IAAI,OAAO,GACb,SAAS,IAAI,UAAU,CAAC,CAAC,OAAO,CAAC;CACrC;CAEA,SAAS,SAAe;EACtB,IAAI,IAAI,OAAO,GACb,SAAS,IAAI,UAAU,CAAC,CAAC,OAAO,CAAC;CACrC;CAEA,SAAS,UAAgB;EACvB,IAAI,IAAI,OAAO,GACb,SAAS,CAAC;CACd;CAEA,SAAS,SAAe;EACtB,IAAI,IAAI,OAAO,GACb,SAAS,IAAI,KAAK,CAAC;CACvB;CAEA,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF"}
@@ -9,6 +9,7 @@ export declare const RUI_I18N_KEYS: {
9
9
  readonly label: "rui.date_time_picker.label";
10
10
  readonly now: "rui.date_time_picker.now";
11
11
  readonly openCalendar: "rui.date_time_picker.open_calendar";
12
+ readonly pasteUnreadable: "rui.date_time_picker.paste_unreadable";
12
13
  readonly today: "rui.date_time_picker.today";
13
14
  };
14
15
  readonly timezoneSelect: {
package/dist/i18n/keys.js CHANGED
@@ -10,6 +10,7 @@ var RUI_I18N_KEYS = {
10
10
  label: "rui.date_time_picker.label",
11
11
  now: "rui.date_time_picker.now",
12
12
  openCalendar: "rui.date_time_picker.open_calendar",
13
+ pasteUnreadable: "rui.date_time_picker.paste_unreadable",
13
14
  today: "rui.date_time_picker.today"
14
15
  },
15
16
  timezoneSelect: { label: "rui.timezone_select.label" }
@@ -1 +1 @@
1
- {"version":3,"file":"keys.js","names":[],"sources":["../../src/i18n/keys.ts"],"sourcesContent":["export const RUI_I18N_KEYS = {\n dateTimePicker: {\n clear: 'rui.date_time_picker.clear',\n clearValue: 'rui.date_time_picker.clear_value',\n closeCalendar: 'rui.date_time_picker.close_calendar',\n dateAfterMax: 'rui.date_time_picker.date_after_max',\n dateBeforeMin: 'rui.date_time_picker.date_before_min',\n dateInFuture: 'rui.date_time_picker.date_in_future',\n label: 'rui.date_time_picker.label',\n now: 'rui.date_time_picker.now',\n openCalendar: 'rui.date_time_picker.open_calendar',\n today: 'rui.date_time_picker.today',\n },\n timezoneSelect: {\n label: 'rui.timezone_select.label',\n },\n} as const;\n\nfunction flattenKeys(obj: Record<string, any>): string[] {\n return Object.values(obj).flatMap(value =>\n typeof value === 'string' ? [value] : flattenKeys(value),\n );\n}\n\n/**\n * Retrieves all translation keys available in the library.\n *\n * @returns the flattened translation keys\n */\nexport function translationKeys(): string[] {\n return flattenKeys(RUI_I18N_KEYS);\n}\n"],"mappings":";AAAA,IAAa,gBAAgB;CAC3B,gBAAgB;EACd,OAAO;EACP,YAAY;EACZ,eAAe;EACf,cAAc;EACd,eAAe;EACf,cAAc;EACd,OAAO;EACP,KAAK;EACL,cAAc;EACd,OAAO;CACT;CACA,gBAAgB,EACd,OAAO,4BACT;AACF;AAEA,SAAS,YAAY,KAAoC;CACvD,OAAO,OAAO,OAAO,GAAG,CAAC,CAAC,SAAQ,UAChC,OAAO,UAAU,WAAW,CAAC,KAAK,IAAI,YAAY,KAAK,CACzD;AACF;;;;;;AAOA,SAAgB,kBAA4B;CAC1C,OAAO,YAAY,aAAa;AAClC"}
1
+ {"version":3,"file":"keys.js","names":[],"sources":["../../src/i18n/keys.ts"],"sourcesContent":["export const RUI_I18N_KEYS = {\n dateTimePicker: {\n clear: 'rui.date_time_picker.clear',\n clearValue: 'rui.date_time_picker.clear_value',\n closeCalendar: 'rui.date_time_picker.close_calendar',\n dateAfterMax: 'rui.date_time_picker.date_after_max',\n dateBeforeMin: 'rui.date_time_picker.date_before_min',\n dateInFuture: 'rui.date_time_picker.date_in_future',\n label: 'rui.date_time_picker.label',\n now: 'rui.date_time_picker.now',\n openCalendar: 'rui.date_time_picker.open_calendar',\n pasteUnreadable: 'rui.date_time_picker.paste_unreadable',\n today: 'rui.date_time_picker.today',\n },\n timezoneSelect: {\n label: 'rui.timezone_select.label',\n },\n} as const;\n\nfunction flattenKeys(obj: Record<string, any>): string[] {\n return Object.values(obj).flatMap(value =>\n typeof value === 'string' ? [value] : flattenKeys(value),\n );\n}\n\n/**\n * Retrieves all translation keys available in the library.\n *\n * @returns the flattened translation keys\n */\nexport function translationKeys(): string[] {\n return flattenKeys(RUI_I18N_KEYS);\n}\n"],"mappings":";AAAA,IAAa,gBAAgB;CAC3B,gBAAgB;EACd,OAAO;EACP,YAAY;EACZ,eAAe;EACf,cAAc;EACd,eAAe;EACf,cAAc;EACd,OAAO;EACP,KAAK;EACL,cAAc;EACd,iBAAiB;EACjB,OAAO;CACT;CACA,gBAAgB,EACd,OAAO,4BACT;AACF;AAEA,SAAS,YAAY,KAAoC;CACvD,OAAO,OAAO,OAAO,GAAG,CAAC,CAAC,SAAQ,UAChC,OAAO,UAAU,WAAW,CAAC,KAAK,IAAI,YAAY,KAAK,CACzD;AACF;;;;;;AAOA,SAAgB,kBAA4B;CAC1C,OAAO,YAAY,aAAa;AAClC"}
package/dist/index.js CHANGED
@@ -59,11 +59,11 @@ import RuiNotification_default from "./components/overlays/notification/RuiNotif
59
59
  import RuiFooterStepper_default from "./components/steppers/RuiFooterStepper.js";
60
60
  import RuiStepper_default from "./components/steppers/RuiStepper.js";
61
61
  import RuiTableEmptyState_default from "./components/tables/RuiTableEmptyState.js";
62
+ import RuiTableErrorState_default from "./components/tables/RuiTableErrorState.js";
62
63
  import RuiExpandButton_default from "./components/tables/RuiExpandButton.js";
63
64
  import RuiTableLoadingState_default from "./components/tables/RuiTableLoadingState.js";
64
65
  import RuiTablePagination_default from "./components/tables/RuiTablePagination.js";
65
66
  import RuiDataTable_default from "./components/tables/RuiDataTable.js";
66
- import RuiTableErrorState_default from "./components/tables/RuiTableErrorState.js";
67
67
  import RuiTable_default from "./components/tables/RuiTable.js";
68
68
  import RuiTabItem_default from "./components/tabs/tab-item/RuiTabItem.js";
69
69
  import RuiTabItems_default from "./components/tabs/tab-items/RuiTabItems.js";
@@ -29,7 +29,7 @@
29
29
  "lu-info",
30
30
  "lu-radio-button-fill",
31
31
  "lu-search",
32
- "lu-trash-2",
33
32
  "lu-triangle-alert",
33
+ "lu-ungroup",
34
34
  "lu-x"
35
35
  ]
package/dist/style.css CHANGED
@@ -929,6 +929,17 @@ html[data-theme="dark"], html.dark {
929
929
  max-width: 1536px;
930
930
  }
931
931
  }
932
+ .sr-only {
933
+ position: absolute;
934
+ width: 1px;
935
+ height: 1px;
936
+ padding: 0;
937
+ margin: -1px;
938
+ overflow: hidden;
939
+ clip: rect(0, 0, 0, 0);
940
+ white-space: nowrap;
941
+ border-width: 0;
942
+ }
932
943
  .pointer-events-none {
933
944
  pointer-events: none;
934
945
  }
@@ -1053,6 +1064,9 @@ html[data-theme="dark"], html.dark {
1053
1064
  .z-\[10000\] {
1054
1065
  z-index: 10000;
1055
1066
  }
1067
+ .z-\[1\] {
1068
+ z-index: 1;
1069
+ }
1056
1070
  .z-\[2\] {
1057
1071
  z-index: 2;
1058
1072
  }
@@ -1068,6 +1082,10 @@ html[data-theme="dark"], html.dark {
1068
1082
  .m-\[-1px\] {
1069
1083
  margin: -1px;
1070
1084
  }
1085
+ .-mx-1\.5 {
1086
+ margin-left: -0.375rem;
1087
+ margin-right: -0.375rem;
1088
+ }
1071
1089
  .-mx-4 {
1072
1090
  margin-left: -1rem;
1073
1091
  margin-right: -1rem;
@@ -1108,12 +1126,18 @@ html[data-theme="dark"], html.dark {
1108
1126
  .-mb-2 {
1109
1127
  margin-bottom: -0.5rem;
1110
1128
  }
1129
+ .-ml-1\.5 {
1130
+ margin-left: -0.375rem;
1131
+ }
1111
1132
  .-ml-\[0\.5625rem\] {
1112
1133
  margin-left: -0.5625rem;
1113
1134
  }
1114
1135
  .-mr-1 {
1115
1136
  margin-right: -0.25rem;
1116
1137
  }
1138
+ .-mr-1\.5 {
1139
+ margin-right: -0.375rem;
1140
+ }
1117
1141
  .-mt-1 {
1118
1142
  margin-top: -0.25rem;
1119
1143
  }
@@ -1319,6 +1343,9 @@ html[data-theme="dark"], html.dark {
1319
1343
  .max-h-full {
1320
1344
  max-height: 100%;
1321
1345
  }
1346
+ .\!min-h-7 {
1347
+ min-height: 1.75rem !important;
1348
+ }
1322
1349
  .\!min-h-8 {
1323
1350
  min-height: 2rem !important;
1324
1351
  }
@@ -1609,14 +1636,6 @@ html[data-theme="dark"], html.dark {
1609
1636
  --tw-translate-y: 100%;
1610
1637
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
1611
1638
  }
1612
- .\!rotate-0 {
1613
- --tw-rotate: 0deg !important;
1614
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) !important;
1615
- }
1616
- .\!rotate-180 {
1617
- --tw-rotate: 180deg !important;
1618
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) !important;
1619
- }
1620
1639
  .-rotate-180 {
1621
1640
  --tw-rotate: -180deg;
1622
1641
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
@@ -1633,6 +1652,10 @@ html[data-theme="dark"], html.dark {
1633
1652
  --tw-rotate: -135deg;
1634
1653
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
1635
1654
  }
1655
+ .rotate-0 {
1656
+ --tw-rotate: 0deg;
1657
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
1658
+ }
1636
1659
  .rotate-180 {
1637
1660
  --tw-rotate: 180deg;
1638
1661
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
@@ -1819,6 +1842,9 @@ html[data-theme="dark"], html.dark {
1819
1842
  .items-center {
1820
1843
  align-items: center;
1821
1844
  }
1845
+ .items-baseline {
1846
+ align-items: baseline;
1847
+ }
1822
1848
  .justify-start {
1823
1849
  justify-content: flex-start;
1824
1850
  }
@@ -2119,6 +2145,9 @@ html[data-theme="dark"], html.dark {
2119
2145
  .\!border-b {
2120
2146
  border-bottom-width: 1px !important;
2121
2147
  }
2148
+ .\!border-t-0 {
2149
+ border-top-width: 0px !important;
2150
+ }
2122
2151
  .border-b {
2123
2152
  border-bottom-width: 1px;
2124
2153
  }
@@ -2371,10 +2400,6 @@ html[data-theme="dark"], html.dark {
2371
2400
  --tw-bg-opacity: 1;
2372
2401
  background-color: rgb(54 54 54 / var(--tw-bg-opacity, 1));
2373
2402
  }
2374
- .bg-\[\#f9fafb\] {
2375
- --tw-bg-opacity: 1;
2376
- background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));
2377
- }
2378
2403
  .bg-black {
2379
2404
  --tw-bg-opacity: 1;
2380
2405
  background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));
@@ -2385,9 +2410,6 @@ html[data-theme="dark"], html.dark {
2385
2410
  .bg-black\/\[\.12\] {
2386
2411
  background-color: rgb(0 0 0 / .12);
2387
2412
  }
2388
- .bg-black\/\[0\.02\] {
2389
- background-color: rgb(0 0 0 / 0.02);
2390
- }
2391
2413
  .bg-black\/\[0\.03\] {
2392
2414
  background-color: rgb(0 0 0 / 0.03);
2393
2415
  }
@@ -2706,9 +2728,8 @@ html[data-theme="dark"], html.dark {
2706
2728
  padding-top: 0.19rem;
2707
2729
  padding-bottom: 0.19rem;
2708
2730
  }
2709
- .py-\[0\.38rem\] {
2710
- padding-top: 0.38rem;
2711
- padding-bottom: 0.38rem;
2731
+ .\!pl-3 {
2732
+ padding-left: 0.75rem !important;
2712
2733
  }
2713
2734
  .\!pt-0 {
2714
2735
  padding-top: 0px !important;
@@ -3054,6 +3075,9 @@ html[data-theme="dark"], html.dark {
3054
3075
  .opacity-20 {
3055
3076
  opacity: 0.2;
3056
3077
  }
3078
+ .opacity-30 {
3079
+ opacity: 0.3;
3080
+ }
3057
3081
  .opacity-40 {
3058
3082
  opacity: 0.4;
3059
3083
  }
@@ -3985,11 +4009,6 @@ body {
3985
4009
  border-color: rgba(var(--rui-primary-main), var(--tw-border-opacity, 1));
3986
4010
  }
3987
4011
 
3988
- .hover\:bg-\[\#f9fafb\]:hover {
3989
- --tw-bg-opacity: 1;
3990
- background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));
3991
- }
3992
-
3993
4012
  .hover\:bg-black\/\[\.04\]:hover {
3994
4013
  background-color: rgb(0 0 0 / .04);
3995
4014
  }
@@ -4031,6 +4050,11 @@ body {
4031
4050
  background-color: rgba(var(--rui-grey-300), var(--tw-bg-opacity, 1));
4032
4051
  }
4033
4052
 
4053
+ .hover\:bg-rui-grey-50:hover {
4054
+ --tw-bg-opacity: 1;
4055
+ background-color: rgba(var(--rui-grey-50), var(--tw-bg-opacity, 1));
4056
+ }
4057
+
4034
4058
  .hover\:bg-rui-info-darker:hover {
4035
4059
  --tw-bg-opacity: 1;
4036
4060
  background-color: rgba(var(--rui-info-darker), var(--tw-bg-opacity, 1));
@@ -4376,6 +4400,10 @@ body {
4376
4400
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
4377
4401
  }
4378
4402
 
4403
+ .group\/sort:focus-visible .group-focus-visible\/sort\:opacity-60 {
4404
+ opacity: 0.6;
4405
+ }
4406
+
4379
4407
  .peer:-webkit-autofill ~ .peer-autofill\:text-\[0\.75rem\] {
4380
4408
  font-size: 0.75rem;
4381
4409
  }
@@ -4691,14 +4719,18 @@ body {
4691
4719
  background-color: rgb(255 255 255 / .16);
4692
4720
  }
4693
4721
 
4694
- .dark\:bg-white\/\[0\.02\]:is([data-theme="dark"] *) {
4695
- background-color: rgb(255 255 255 / 0.02);
4722
+ .dark\:bg-white\/\[0\.03\]:is([data-theme="dark"] *) {
4723
+ background-color: rgb(255 255 255 / 0.03);
4696
4724
  }
4697
4725
 
4698
4726
  .dark\:bg-white\/\[0\.05\]:is([data-theme="dark"] *) {
4699
4727
  background-color: rgb(255 255 255 / 0.05);
4700
4728
  }
4701
4729
 
4730
+ .dark\:bg-white\/\[0\.08\]:is([data-theme="dark"] *) {
4731
+ background-color: rgb(255 255 255 / 0.08);
4732
+ }
4733
+
4702
4734
  .dark\:bg-white\/\[0\.09\]:is([data-theme="dark"] *) {
4703
4735
  background-color: rgb(255 255 255 / 0.09);
4704
4736
  }
@@ -4870,11 +4902,6 @@ body {
4870
4902
  border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));
4871
4903
  }
4872
4904
 
4873
- .dark\:hover\:bg-\[\#121212\]:hover:is([data-theme="dark"] *) {
4874
- --tw-bg-opacity: 1;
4875
- background-color: rgb(18 18 18 / var(--tw-bg-opacity, 1));
4876
- }
4877
-
4878
4905
  .dark\:hover\:bg-gray-600:hover:is([data-theme="dark"] *) {
4879
4906
  --tw-bg-opacity: 1;
4880
4907
  background-color: rgb(75 85 99 / var(--tw-bg-opacity, 1));
@@ -4921,6 +4948,10 @@ body {
4921
4948
  background-color: rgb(255 255 255 / .04);
4922
4949
  }
4923
4950
 
4951
+ .dark\:hover\:bg-white\/\[0\.03\]:hover:is([data-theme="dark"] *) {
4952
+ background-color: rgb(255 255 255 / 0.03);
4953
+ }
4954
+
4924
4955
  .dark\:hover\:bg-white\/\[0\.04\]:hover:is([data-theme="dark"] *) {
4925
4956
  background-color: rgb(255 255 255 / 0.04);
4926
4957
  }
@@ -5051,32 +5082,73 @@ body {
5051
5082
  opacity: 0;
5052
5083
  }
5053
5084
 
5054
- .even\:\[\&\>tr\]\:bg-rui-grey-50>tr:nth-child(even) {
5055
- --tw-bg-opacity: 1;
5056
- background-color: rgba(var(--rui-grey-50), var(--tw-bg-opacity, 1));
5085
+ .\[\&_input\]\:\!px-1 input {
5086
+ padding-left: 0.25rem !important;
5087
+ padding-right: 0.25rem !important;
5057
5088
  }
5058
5089
 
5059
- .dark\:even\:\[\&\>tr\]\:bg-rui-grey-900>tr:nth-child(even):is([data-theme="dark"] *) {
5060
- --tw-bg-opacity: 1;
5061
- background-color: rgba(var(--rui-grey-900), var(--tw-bg-opacity, 1));
5090
+ .\[\&_input\]\:\!py-1 input {
5091
+ padding-top: 0.25rem !important;
5092
+ padding-bottom: 0.25rem !important;
5062
5093
  }
5063
5094
 
5064
- .\[\&_input\]\:\!pr-0 input {
5065
- padding-right: 0px !important;
5095
+ .\[\&_input\]\:\!py-1\.5 input {
5096
+ padding-top: 0.375rem !important;
5097
+ padding-bottom: 0.375rem !important;
5066
5098
  }
5067
5099
 
5068
5100
  .\[\&_input\]\:text-center input {
5069
5101
  text-align: center;
5070
5102
  }
5071
5103
 
5104
+ .\[\&_input\]\:\!text-xs input {
5105
+ font-size: 0.75rem !important;
5106
+ line-height: 1rem !important;
5107
+ }
5108
+
5072
5109
  .\[\&_input\]\:uppercase input {
5073
5110
  text-transform: uppercase;
5074
5111
  }
5075
5112
 
5113
+ .\[\&_input\]\:\!leading-5 input {
5114
+ line-height: 1.25rem !important;
5115
+ }
5116
+
5076
5117
  .\[\&_label\]\:ml-0 label {
5077
5118
  margin-left: 0px;
5078
5119
  }
5079
5120
 
5121
+ :where(.\[\:where\(\&\)\]\:h-10) {
5122
+ height: 2.5rem;
5123
+ }
5124
+
5125
+ :where(.\[\:where\(\&\)\]\:h-14) {
5126
+ height: 3.5rem;
5127
+ }
5128
+
5129
+ :where(.\[\:where\(\&\)\]\:h-9) {
5130
+ height: 2.25rem;
5131
+ }
5132
+
5133
+ :where(.\[\:where\(\&\)\]\:h-\[3\.25rem\]) {
5134
+ height: 3.25rem;
5135
+ }
5136
+
5137
+ :where(.\[\:where\(\&\)\]\:px-4) {
5138
+ padding-left: 1rem;
5139
+ padding-right: 1rem;
5140
+ }
5141
+
5142
+ :where(.\[\:where\(\&\)\]\:py-1) {
5143
+ padding-top: 0.25rem;
5144
+ padding-bottom: 0.25rem;
5145
+ }
5146
+
5147
+ :where(.\[\:where\(\&\)\]\:py-3) {
5148
+ padding-top: 0.75rem;
5149
+ padding-bottom: 0.75rem;
5150
+ }
5151
+
5080
5152
  :where(.\[\:where\(\&\)_tbody_td\]\:border-b-0) tbody td {
5081
5153
  border-bottom-width: 0px;
5082
5154
  }
@@ -5156,4 +5228,14 @@ body {
5156
5228
  :where(.\[\:where\(\&\)_thead_th\]\:text-rui-text-secondary) thead th {
5157
5229
  color: var(--rui-text-secondary);
5158
5230
  }
5231
+
5232
+ :where(.\[\:where\(\&\>tr\:nth-child\(even\)\)\]\:bg-rui-grey-50>tr:nth-child(even)) {
5233
+ --tw-bg-opacity: 1;
5234
+ background-color: rgba(var(--rui-grey-50), var(--tw-bg-opacity, 1));
5235
+ }
5236
+
5237
+ :where(.dark\:\[\:where\(\&\>tr\:nth-child\(even\)\)\]\:bg-rui-grey-900>tr:nth-child(even)):is([data-theme="dark"] *) {
5238
+ --tw-bg-opacity: 1;
5239
+ background-color: rgba(var(--rui-grey-900), var(--tw-bg-opacity, 1));
5240
+ }
5159
5241
  /*$vite$:1*/