vueye-table 2.0.0-alpha.3 → 2.0.0-alpha.5

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 (33) hide show
  1. package/LICENSE +14 -13
  2. package/README.md +56 -30
  3. package/dist/components/core/VueyeTable/VueyeTable.vue.d.ts +10 -10
  4. package/dist/components/core/VueyeTable/api.d.ts +14 -0
  5. package/dist/components/core/VueyeTable/{VueyeBody → components/VueyeBody}/VueyeBody.vue.d.ts +16 -16
  6. package/dist/components/core/VueyeTable/components/VueyeBody/api.d.ts +7 -0
  7. package/dist/components/core/VueyeTable/components/VueyeBody/index.d.ts +2 -0
  8. package/dist/components/core/VueyeTable/components/VueyeDropdown/api.d.ts +20 -0
  9. package/dist/components/core/VueyeTable/components/VueyeDropdown/index.d.ts +4 -0
  10. package/dist/components/core/VueyeTable/{VueyeHead → components/VueyeHead}/VueyeHead.vue.d.ts +2 -2
  11. package/dist/components/core/VueyeTable/{VueyePagination → components/VueyePagination}/VueyePagination.vue.d.ts +18 -17
  12. package/dist/components/core/VueyeTable/components/VueyePagination/api.d.ts +12 -0
  13. package/dist/components/core/VueyeTable/components/VueyePagination/index.d.ts +2 -0
  14. package/dist/components/core/VueyeTable/components/index.d.ts +4 -0
  15. package/dist/components/core/VueyeTable/composables/index.d.ts +3 -0
  16. package/dist/components/core/VueyeTable/composables/usePagination.d.ts +11 -0
  17. package/dist/components/core/VueyeTable/types/Column.d.ts +1 -1
  18. package/dist/components/core/VueyeTable/types/Utils.d.ts +6 -0
  19. package/dist/components/core/VueyeTable/utils/header.d.ts +1 -0
  20. package/dist/components/core/VueyeTable/utils/humanize.d.ts +1 -0
  21. package/dist/components/core/VueyeTable/utils/index.d.ts +1 -0
  22. package/dist/style.css +1 -1
  23. package/dist/vueye-table.js +328 -376
  24. package/dist/vueye-table.umd.cjs +1 -1
  25. package/package.json +14 -2
  26. package/dist/components/core/VueyeTable/VSelect.d.ts +0 -15
  27. package/dist/components/core/VueyeTable/VueyeBody/index.d.ts +0 -2
  28. package/dist/components/core/VueyeTable/VueyePagination/index.d.ts +0 -6
  29. package/dist/components/core/VueyeTable/composables/props/PaginationProps.d.ts +0 -5
  30. package/dist/components/core/VueyeTable/util-components/VueyeDropdown.vue.d.ts +0 -53
  31. package/dist/data/product.d.ts +0 -14
  32. package/dist/data/user.d.ts +0 -22
  33. /package/dist/components/core/VueyeTable/{VueyeHead → components/VueyeHead}/index.d.ts +0 -0
package/LICENSE CHANGED
@@ -1,20 +1,21 @@
1
- The MIT License (MIT)
1
+ MIT License
2
2
 
3
- Copyright (c) 2017 Antério Vieira
3
+ Copyright (c) 2023 radix-vue
4
4
 
5
- Permission is hereby granted, free of charge, to any person obtaining a copy of
6
- this software and associated documentation files (the "Software"), to deal in
7
- the Software without restriction, including without limitation the rights to
8
- use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9
- the Software, and to permit persons to whom the Software is furnished to do so,
10
- subject to the following conditions:
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
11
 
12
12
  The above copyright notice and this permission notice shall be included in all
13
13
  copies or substantial portions of the Software.
14
14
 
15
15
  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17
- FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18
- COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19
- IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20
- CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,30 +1,56 @@
1
- # Vueye-table
2
-
3
- :warning: **This project is still in development.**
4
-
5
- ## Tools and conventions
6
-
7
- - [x] Eslint
8
- - [x] Prettier
9
- - [x] Conventional Commit
10
- - [x] Pre-commit
11
- - [x] Lint-staged
12
- - [x] Semantic-release
13
- - [x] TypeScript
14
-
15
- ## TODO
16
-
17
- 1. Data Rendering ✅
18
- 2. Sorting
19
- 3. Filtering
20
- 4. Pagination ✅
21
- 5. Selection
22
- 6. Editing
23
- 7. Resizing and Reordering
24
- 8. Row Expansion
25
- 9. Grouping by columns ✅
26
- 10. Exporting
27
- 11. Responsive Design
28
- 12. Customization
29
- 13. Accessibility
30
- 14. ...
1
+ # VueyeTableProps TypeScript Definition
2
+
3
+ This Markdown file provides documentation for the TypeScript `VueyeTableProps` type and its associated default values.
4
+
5
+ ## VueyeTableProps Type
6
+
7
+ `VueyeTableProps` is a TypeScript type that represents the properties for a Vueye table component.
8
+
9
+ ### Properties
10
+
11
+ - `itemValue?: string` (Optional)
12
+
13
+ - The key used to identify items in the data array.
14
+ - Default: `'id'`
15
+
16
+ - `columnHeaders: TColumn[]`
17
+
18
+ - An array of column headers.
19
+
20
+ - `data: TData[]`
21
+
22
+ - An array of data.
23
+
24
+ - `perPage?: number` (Optional)
25
+
26
+ - The number of items to display per page.
27
+ - Default: `10`
28
+
29
+ - `currentPage?: number` (Optional)
30
+
31
+ - The current page number.
32
+ - Default: `1`
33
+
34
+ - `perPageOptions?: number[]` (Optional)
35
+
36
+ - An array of options for the number of items to display per page.
37
+ - Default: `[5, 10, 20, 30]`
38
+
39
+ - `loading?: boolean` (Optional)
40
+
41
+ - Indicates whether the table is in a loading state.
42
+ - Default: `false`
43
+
44
+ - `selectable?: boolean` (Optional)
45
+
46
+ - Indicates whether items in the table are selectable.
47
+ - Default: `false`
48
+
49
+ - `caption?: string` (Optional)
50
+
51
+ - A caption for the table.
52
+ - Default: `''`
53
+
54
+ - `summary?: string` (Optional)
55
+ - A summary for the table.
56
+ - Default: `''`
@@ -1,15 +1,15 @@
1
- import { ColumnHeader } from './types';
1
+ import type { ColumnHeader } from './types';
2
2
  declare const _default: <TData extends Record<string, unknown>, TColumn extends ColumnHeader>(__VLS_props: {
3
- loading?: boolean | undefined;
4
3
  caption?: string | undefined;
5
4
  data: TData[];
6
5
  summary?: string | undefined;
6
+ columnHeaders?: TColumn[] | undefined;
7
+ itemValue?: string | undefined;
7
8
  perPage?: number | undefined;
8
9
  currentPage?: number | undefined;
9
10
  perPageOptions?: number[] | undefined;
11
+ loading?: boolean | undefined;
10
12
  selectable?: boolean | undefined;
11
- itemValue?: string | undefined;
12
- columnHeaders: TColumn[];
13
13
  } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, __VLS_ctx?: {
14
14
  attrs: any;
15
15
  slots: Readonly<import("./types").SlotHeaderCell<TData> & import("./types").SlotHeaderCellContent<TData> & {
@@ -19,16 +19,16 @@ declare const _default: <TData extends Record<string, unknown>, TColumn extends
19
19
  emit: any;
20
20
  } | undefined, __VLS_expose?: ((exposed: {}) => void) | undefined, __VLS_setup?: Promise<{
21
21
  props: {
22
- loading?: boolean | undefined;
23
22
  caption?: string | undefined;
24
23
  data: TData[];
25
24
  summary?: string | undefined;
25
+ columnHeaders?: TColumn[] | undefined;
26
+ itemValue?: string | undefined;
26
27
  perPage?: number | undefined;
27
28
  currentPage?: number | undefined;
28
29
  perPageOptions?: number[] | undefined;
30
+ loading?: boolean | undefined;
29
31
  selectable?: boolean | undefined;
30
- itemValue?: string | undefined;
31
- columnHeaders: TColumn[];
32
32
  } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps;
33
33
  expose(exposed: {}): void;
34
34
  attrs: any;
@@ -42,16 +42,16 @@ declare const _default: <TData extends Record<string, unknown>, TColumn extends
42
42
  }> & {
43
43
  __ctx?: {
44
44
  props: {
45
- loading?: boolean | undefined;
46
45
  caption?: string | undefined;
47
46
  data: TData[];
48
47
  summary?: string | undefined;
48
+ columnHeaders?: TColumn[] | undefined;
49
+ itemValue?: string | undefined;
49
50
  perPage?: number | undefined;
50
51
  currentPage?: number | undefined;
51
52
  perPageOptions?: number[] | undefined;
53
+ loading?: boolean | undefined;
52
54
  selectable?: boolean | undefined;
53
- itemValue?: string | undefined;
54
- columnHeaders: TColumn[];
55
55
  } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps;
56
56
  expose(exposed: {}): void;
57
57
  attrs: any;
@@ -0,0 +1,14 @@
1
+ import { InferDefaults } from './types';
2
+ export type VueyeTableProps<TColumn = any, TData = any> = {
3
+ data: TData[];
4
+ columnHeaders?: TColumn[];
5
+ itemValue?: string;
6
+ perPage?: number;
7
+ currentPage?: number;
8
+ perPageOptions?: number[];
9
+ loading?: boolean;
10
+ selectable?: boolean;
11
+ caption?: string;
12
+ summary?: string;
13
+ };
14
+ export declare const VueyeTablePropsDefaults: InferDefaults<VueyeTableProps>;
@@ -1,40 +1,40 @@
1
- import { Row } from '../types';
1
+ import { BodyProps } from './api';
2
2
  declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
3
+ itemValue: {
4
+ type: globalThis.PropType<string>;
5
+ required: true;
6
+ default: (string | ((props: BodyProps) => string)) | undefined;
7
+ };
3
8
  loading: {
4
9
  type: globalThis.PropType<boolean>;
5
10
  required: true;
6
- default: boolean;
11
+ default: (boolean | ((props: BodyProps) => boolean)) | undefined;
7
12
  };
8
13
  bodyRows: {
9
- type: globalThis.PropType<Row[]>;
14
+ type: globalThis.PropType<import("../..").Row[]>;
10
15
  required: true;
11
- default: () => never[];
16
+ default: ((props: BodyProps) => import("../..").Row[]) | undefined;
12
17
  };
18
+ }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<globalThis.ExtractPropTypes<{
13
19
  itemValue: {
14
20
  type: globalThis.PropType<string>;
15
21
  required: true;
16
- default: string;
22
+ default: (string | ((props: BodyProps) => string)) | undefined;
17
23
  };
18
- }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<globalThis.ExtractPropTypes<{
19
24
  loading: {
20
25
  type: globalThis.PropType<boolean>;
21
26
  required: true;
22
- default: boolean;
27
+ default: (boolean | ((props: BodyProps) => boolean)) | undefined;
23
28
  };
24
29
  bodyRows: {
25
- type: globalThis.PropType<Row[]>;
30
+ type: globalThis.PropType<import("../..").Row[]>;
26
31
  required: true;
27
- default: () => never[];
28
- };
29
- itemValue: {
30
- type: globalThis.PropType<string>;
31
- required: true;
32
- default: string;
32
+ default: ((props: BodyProps) => import("../..").Row[]) | undefined;
33
33
  };
34
34
  }>>, {
35
- loading: boolean;
36
- bodyRows: Row[];
37
35
  itemValue: string;
36
+ loading: boolean;
37
+ bodyRows: import("../..").Row[];
38
38
  }, {}>, {
39
39
  default?(_: {
40
40
  cell: any;
@@ -0,0 +1,7 @@
1
+ import { InferDefaults, Row } from '../../types';
2
+ export type BodyProps = {
3
+ loading: boolean;
4
+ bodyRows: Row[];
5
+ itemValue: string;
6
+ };
7
+ export declare const bodyPropDefaults: InferDefaults<BodyProps>;
@@ -0,0 +1,2 @@
1
+ import VueyeBody from './VueyeBody.vue';
2
+ export { VueyeBody };
@@ -0,0 +1,20 @@
1
+ export type OptionValue = string | number | boolean | object | symbol;
2
+ interface Option {
3
+ content: OptionValue;
4
+ label: string;
5
+ }
6
+ export type DropdownProps = {
7
+ options: Option[];
8
+ modelValue: string | number;
9
+ label: string;
10
+ defaultValue?: Option;
11
+ };
12
+ export declare const dropdownPropsDefaults: {
13
+ options: () => never[];
14
+ modelValue: string;
15
+ label: string;
16
+ };
17
+ export type DropdownEmits = {
18
+ (event: 'update:modelValue', value: OptionValue): void;
19
+ };
20
+ export {};
@@ -0,0 +1,4 @@
1
+ import type { OptionValue } from './api';
2
+ import VueyeDropdown from './VueyeDropdown.vue';
3
+ export { VueyeDropdown };
4
+ export type { OptionValue };
@@ -1,4 +1,4 @@
1
- import type { ColumnHeader } from '../types';
1
+ import type { ColumnHeader } from '../../types';
2
2
  declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
3
3
  columnHeaders: {
4
4
  type: globalThis.PropType<ColumnHeader[][]>;
@@ -13,7 +13,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
13
13
  };
14
14
  }>>, {
15
15
  columnHeaders: ColumnHeader[][];
16
- }, {}>, Readonly<import("../types").SlotHeaderCell<Record<string, string>> & import("../types").SlotHeaderCellContent<Record<string, string>>>>;
16
+ }, {}>, Readonly<import("../../types").SlotHeaderCell<Record<string, string>> & import("../../types").SlotHeaderCellContent<Record<string, string>>>>;
17
17
  export default _default;
18
18
  type __VLS_WithTemplateSlots<T, S> = T & {
19
19
  new (): {
@@ -1,23 +1,24 @@
1
+ import { PaginationProps } from './api';
1
2
  declare const _default: import("vue").DefineComponent<{
2
3
  perPage: {
3
4
  type: globalThis.PropType<number>;
4
5
  required: true;
5
- default: number;
6
+ default: (number | ((props: PaginationProps) => number)) | undefined;
6
7
  };
7
8
  currentPage: {
8
9
  type: globalThis.PropType<number>;
9
10
  required: true;
10
- default: number;
11
- };
12
- total: {
13
- type: globalThis.PropType<number>;
14
- required: true;
15
- default: number;
11
+ default: (number | ((props: PaginationProps) => number)) | undefined;
16
12
  };
17
13
  perPageOptions: {
18
14
  type: globalThis.PropType<number[]>;
19
15
  required: true;
20
- default: () => number[];
16
+ default: ((props: PaginationProps) => number[]) | undefined;
17
+ };
18
+ total: {
19
+ type: globalThis.PropType<number>;
20
+ required: true;
21
+ default: (number | ((props: PaginationProps) => number)) | undefined;
21
22
  };
22
23
  }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
23
24
  "update:currentPage": (value: number) => void;
@@ -26,22 +27,22 @@ declare const _default: import("vue").DefineComponent<{
26
27
  perPage: {
27
28
  type: globalThis.PropType<number>;
28
29
  required: true;
29
- default: number;
30
+ default: (number | ((props: PaginationProps) => number)) | undefined;
30
31
  };
31
32
  currentPage: {
32
33
  type: globalThis.PropType<number>;
33
34
  required: true;
34
- default: number;
35
- };
36
- total: {
37
- type: globalThis.PropType<number>;
38
- required: true;
39
- default: number;
35
+ default: (number | ((props: PaginationProps) => number)) | undefined;
40
36
  };
41
37
  perPageOptions: {
42
38
  type: globalThis.PropType<number[]>;
43
39
  required: true;
44
- default: () => number[];
40
+ default: ((props: PaginationProps) => number[]) | undefined;
41
+ };
42
+ total: {
43
+ type: globalThis.PropType<number>;
44
+ required: true;
45
+ default: (number | ((props: PaginationProps) => number)) | undefined;
45
46
  };
46
47
  }>> & {
47
48
  "onUpdate:currentPage"?: ((value: number) => any) | undefined;
@@ -49,7 +50,7 @@ declare const _default: import("vue").DefineComponent<{
49
50
  }, {
50
51
  perPage: number;
51
52
  currentPage: number;
52
- total: number;
53
53
  perPageOptions: number[];
54
+ total: number;
54
55
  }, {}>;
55
56
  export default _default;
@@ -0,0 +1,12 @@
1
+ import { InferDefaults } from '../../types';
2
+ export interface PaginationProps {
3
+ perPage: number;
4
+ currentPage: number;
5
+ total: number;
6
+ perPageOptions: number[];
7
+ }
8
+ export interface PaginationEmits {
9
+ (event: 'update:currentPage', value: number): void;
10
+ (event: 'update:perPage', value: number): void;
11
+ }
12
+ export declare const paginationPropsDefaults: InferDefaults<PaginationProps>;
@@ -0,0 +1,2 @@
1
+ import VueyePagination from './VueyePagination.vue';
2
+ export { VueyePagination };
@@ -0,0 +1,4 @@
1
+ export * from './VueyeDropdown';
2
+ export * from './VueyeBody';
3
+ export * from './VueyeHead';
4
+ export * from './VueyePagination';
@@ -1 +1,4 @@
1
1
  export * from './useHeaderKeys';
2
+ export * from './usePagination';
3
+ export * from './useBodyRows';
4
+ export * from './useHeaders';
@@ -0,0 +1,11 @@
1
+ export declare function usePagination(props?: {
2
+ perPage?: number;
3
+ currentPage?: number;
4
+ }): {
5
+ pagination: globalThis.Ref<{
6
+ perPage: number;
7
+ currentPage: number;
8
+ }>;
9
+ updateCurrentPage: (page: number) => void;
10
+ updatePerPage: (perPage: number) => void;
11
+ };
@@ -35,7 +35,7 @@ export type ColumnHeaderBase<TData extends Record<string, unknown>> = FiltrableC
35
35
  resizable?: boolean;
36
36
  showOverflowTooltip?: boolean;
37
37
  };
38
- export type ColumnHeader = ColumnHeaderBase<{}> & {
38
+ export type ColumnHeader = ColumnHeaderBase<Record<string, never>> & {
39
39
  rowSpan?: number;
40
40
  colSpan?: number;
41
41
  width?: string;
@@ -11,3 +11,9 @@ export type DeepKeyValues<T extends readonly object[]> = {
11
11
  children: infer C;
12
12
  } ? C extends readonly object[] ? U | DeepKeyValues<C> : never : U : never : never;
13
13
  }[number];
14
+ type NativeType = null | number | string | boolean | symbol;
15
+ type InferDefault<P, T> = ((props: P) => T & {}) | (T extends NativeType ? T : never);
16
+ export type InferDefaults<T> = {
17
+ [K in keyof T]?: InferDefault<T, T[K]>;
18
+ };
19
+ export {};
@@ -4,3 +4,4 @@ export declare function leafCount(headers: ColumnHeader[]): number;
4
4
  export declare function flatHeadersToRows(headers: ColumnHeader[], depth: number, rows?: ColumnHeader[][], currentRow?: number, level?: number): ColumnHeader[][];
5
5
  export declare function getHeaderKeys<T extends ColumnHeader>(headers: T[], keysPath?: string, keys?: string[]): string[];
6
6
  export declare function defineColumnHeaders(headers: any[]): ColumnHeader[];
7
+ export declare function generateColumns<T>(dataItem: T): ColumnHeader[];
@@ -0,0 +1 @@
1
+ export declare function humanize(key: string): string;
@@ -1,2 +1,3 @@
1
1
  export * from './header';
2
2
  export * from './body';
3
+ export * from './humanize';
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- .pagination__wrapper[data-v-d06f6d12]{display:flex;align-items:center;-moz-column-gap:.75rem;column-gap:.75rem}.pagination__details[data-v-d06f6d12]{font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}[data-v-d06f6d12]:is(.dark .pagination__details){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.pagination__btn-list[data-v-d06f6d12]{display:flex}.pagination__btn[data-v-d06f6d12]{display:flex;height:2rem;width:2rem;align-items:center;justify-content:center;border-width:1px;--tw-border-opacity: 1;border-color:rgb(186 227 253 / var(--tw-border-opacity));background-color:transparent;padding:.5rem}.pagination__btn[data-v-d06f6d12]:disabled{cursor:not-allowed;opacity:.5}[data-v-d06f6d12]:is(.dark .pagination__btn){--tw-border-opacity: 1;border-color:rgb(6 83 134 / var(--tw-border-opacity))}.pagination__btn--current[data-v-d06f6d12]{--tw-bg-opacity: 1;background-color:rgb(186 227 253 / var(--tw-bg-opacity))}[data-v-d06f6d12]:is(.dark .pagination__btn--current){--tw-bg-opacity: 1;background-color:rgb(6 83 134 / var(--tw-bg-opacity))}table{min-width:800px;border-collapse:collapse;border-radius:.25rem!important;border-width:1px;--tw-border-opacity: 1;border-color:rgb(55 179 249 / var(--tw-border-opacity));font-size:.875rem;line-height:1.25rem;letter-spacing:.025em}th{border-width:1px;--tw-border-opacity: 1;border-color:rgb(55 179 249 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(224 241 254 / var(--tw-bg-opacity));padding:.5rem 1rem}:is(.dark th){--tw-border-opacity: 1;border-color:rgb(6 83 134 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(8 44 73 / var(--tw-bg-opacity))}td{border-width:1px;--tw-border-opacity: 1;border-color:rgb(55 179 249 / var(--tw-border-opacity));padding:.5rem 1rem}:is(.dark td){--tw-border-opacity: 1;border-color:rgb(6 83 134 / var(--tw-border-opacity))}table{text-align:center}tr:nth-child(2n) td{--tw-bg-opacity: 1;background-color:rgb(224 241 254 / var(--tw-bg-opacity))}:is(.dark tr:nth-child(2n) td){--tw-bg-opacity: 1;background-color:rgb(8 44 73 / var(--tw-bg-opacity))}tr:nth-child(odd) td{--tw-bg-opacity: 1;background-color:rgb(240 248 255 / var(--tw-bg-opacity))}:is(.dark tr:nth-child(odd) td){--tw-bg-opacity: 1;background-color:rgb(11 69 111 / var(--tw-bg-opacity))}caption{padding:.5rem}.table__wrapper{display:flex;width:-moz-max-content;width:max-content;flex-direction:column}.table__pagination-wrapper{display:flex;justify-content:flex-end;padding-top:1rem;padding-bottom:1rem}
1
+ .dropdown__wrapper{position:relative}.dropdown__trigger{display:flex;align-items:center}.dropdown__trigger>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.dropdown__trigger{border-radius:.375rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(124 205 253 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity));padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity));--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dropdown__trigger:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-opacity: 1;--tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity));--tw-ring-offset-width: 2px }:is([dir=rtl] .dropdown__trigger)>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 1 }:is(.dark .dropdown__trigger){--tw-border-opacity: 1;border-color:rgb(11 69 111 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(11 69 111 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(248 250 252 / var(--tw-text-opacity))}.dropdown__menu{position:absolute;bottom:100%;right:0;z-index:45;margin-top:.5rem;width:14rem;transform-origin:top right;border-radius:.375rem;--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity));--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-color: rgb(0 0 0 / var(--tw-ring-opacity));--tw-ring-opacity: .05 }.dropdown__menu:focus{outline:2px solid transparent;outline-offset:2px}:is(.dark .dropdown__menu){--tw-bg-opacity: 1;background-color:rgb(8 44 73 / var(--tw-bg-opacity))}.dropdown__menu__item{display:block;width:100%;padding:.5rem 1rem;text-align:left;font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity))}.dropdown__menu__item:hover{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity))}.dropdown__menu__item:focus{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity));outline:2px solid transparent;outline-offset:2px}:is(.dark .dropdown__menu__item){--tw-text-opacity: 1;color:rgb(248 250 252 / var(--tw-text-opacity))}:is(.dark .dropdown__menu__item:hover){--tw-bg-opacity: 1;background-color:rgb(11 69 111 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity))}.dropdown__menu__item--selected{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity))}:is(.dark .dropdown__menu__item--selected){--tw-bg-opacity: 1;background-color:rgb(11 69 111 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity))}.dropdown__overlay{position:fixed;right:0;bottom:0;top:0;left:0;z-index:40;cursor:default;background-color:transparent}.pagination__wrapper{display:flex;align-items:center;-moz-column-gap:.75rem;column-gap:.75rem}.pagination__details{font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}:is(.dark .pagination__details){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.pagination__btn-list{display:flex}.pagination__btn{display:flex;height:2rem;width:2rem;align-items:center;justify-content:center;border-width:1px;--tw-border-opacity: 1;border-color:rgb(186 227 253 / var(--tw-border-opacity));background-color:transparent;padding:.5rem}.pagination__btn:focus{--tw-border-opacity: 1;border-color:rgb(12 147 223 / var(--tw-border-opacity));outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.pagination__btn:disabled{cursor:not-allowed;opacity:.5}:is(.dark .pagination__btn){--tw-border-opacity: 1;border-color:rgb(6 83 134 / var(--tw-border-opacity))}.pagination__btn--current{--tw-bg-opacity: 1;background-color:rgb(186 227 253 / var(--tw-bg-opacity))}:is(.dark .pagination__btn--current){--tw-bg-opacity: 1;background-color:rgb(6 83 134 / var(--tw-bg-opacity))}table{min-width:800px;border-collapse:collapse;border-radius:.25rem!important;border-width:1px;--tw-border-opacity: 1;border-color:rgb(55 179 249 / var(--tw-border-opacity));font-size:.875rem;line-height:1.25rem;letter-spacing:.025em}th{border-width:1px;--tw-border-opacity: 1;border-color:rgb(55 179 249 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(224 241 254 / var(--tw-bg-opacity));padding:.5rem 1rem}:is(.dark th){--tw-border-opacity: 1;border-color:rgb(6 83 134 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(8 44 73 / var(--tw-bg-opacity))}td{border-width:1px;--tw-border-opacity: 1;border-color:rgb(55 179 249 / var(--tw-border-opacity));padding:.5rem 1rem}:is(.dark td){--tw-border-opacity: 1;border-color:rgb(6 83 134 / var(--tw-border-opacity))}table{text-align:center}tr:nth-child(2n) td{--tw-bg-opacity: 1;background-color:rgb(224 241 254 / var(--tw-bg-opacity))}:is(.dark tr:nth-child(2n) td){--tw-bg-opacity: 1;background-color:rgb(8 44 73 / var(--tw-bg-opacity))}tr:nth-child(odd) td{--tw-bg-opacity: 1;background-color:rgb(240 248 255 / var(--tw-bg-opacity))}:is(.dark tr:nth-child(odd) td){--tw-bg-opacity: 1;background-color:rgb(11 69 111 / var(--tw-bg-opacity))}caption{padding:.5rem}.table__wrapper{display:flex;width:-moz-max-content;width:max-content;flex-direction:column}.table__pagination{margin-top:1rem;align-self:flex-end}