rayyy-vue-table-components 1.2.7 → 1.2.9

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.
@@ -9,6 +9,20 @@ export declare const dismissedRow = "bg-blue-20";
9
9
  export declare const tableFooter = "font-bold";
10
10
  export declare const blueText = "text-blue-10";
11
11
  export declare const redText = "text-redText";
12
+ export declare const sortTableContainer = "w-full mb-4";
13
+ export declare const sortTableFunctionBar = "flex items-center h-12 bg-primary-20 px-1.5 rounded-t justify-end";
14
+ export declare const sortTableSettingsBtn = "cursor-pointer text-primary-dark text-xl flex items-center justify-center hover:text-primary-40";
15
+ export declare const filterBtn = "text-sky-500 hover:text-white hover:bg-sky-500 disabled:bg-white disabled:opacity-50";
16
+ export declare const filterBtnText = "text-black ml-2 font-bold hover:text-white disabled:text-black/20";
17
+ export declare const filterBtnIcon = "text-xl";
18
+ export declare const transferSortWrapper = "border border-gray-200 h-96 overflow-auto";
19
+ export declare const transferActiveBg = "bg-primary/10";
20
+ export declare const transferActiveBorder = "border border-primary-10 rounded";
21
+ export declare const transferItemWrapper = "border-t border-gray-200 px-4 flex items-center justify-between w-full";
22
+ export declare const transferArrowWrapper = "w-28 text-primary-10";
23
+ export declare const baseDialogTitle = "font-bold text-base";
24
+ export declare const cursorGrab = "cursor-grab";
25
+ export declare const cursorGrabbing = "cursor-grabbing";
12
26
  export declare const tableStyles: {
13
27
  readonly cell: "p-0 h-10";
14
28
  readonly header: "bg-primary-15 font-bold text-text text-sm leading-4";
@@ -18,6 +32,22 @@ export declare const tableStyles: {
18
32
  readonly blueText: "text-blue-10";
19
33
  readonly redText: "text-redText";
20
34
  };
35
+ export declare const componentStyles: {
36
+ readonly sortTableContainer: "w-full mb-4";
37
+ readonly sortTableFunctionBar: "flex items-center h-12 bg-primary-20 px-1.5 rounded-t justify-end";
38
+ readonly sortTableSettingsBtn: "cursor-pointer text-primary-dark text-xl flex items-center justify-center hover:text-primary-40";
39
+ readonly filterBtn: "text-sky-500 hover:text-white hover:bg-sky-500 disabled:bg-white disabled:opacity-50";
40
+ readonly filterBtnText: "text-black ml-2 font-bold hover:text-white disabled:text-black/20";
41
+ readonly filterBtnIcon: "text-xl";
42
+ readonly transferSortWrapper: "border border-gray-200 h-96 overflow-auto";
43
+ readonly transferActiveBg: "bg-primary/10";
44
+ readonly transferActiveBorder: "border border-primary-10 rounded";
45
+ readonly transferItemWrapper: "border-t border-gray-200 px-4 flex items-center justify-between w-full";
46
+ readonly transferArrowWrapper: "w-28 text-primary-10";
47
+ readonly baseDialogTitle: "font-bold text-base";
48
+ readonly cursorGrab: "cursor-grab";
49
+ readonly cursorGrabbing: "cursor-grabbing";
50
+ };
21
51
  export declare const dataTableConfig: {
22
52
  readonly cellClass: "p-0 h-10";
23
53
  readonly headerClass: "bg-primary-15 font-bold text-text text-sm leading-4";
@@ -27,10 +57,44 @@ export declare const dataTableConfig: {
27
57
  readonly blueTextClass: "text-blue-10";
28
58
  readonly redTextClass: "text-redText";
29
59
  };
60
+ export declare const allComponentStyles: {
61
+ readonly dataTableConfig: {
62
+ readonly cellClass: "p-0 h-10";
63
+ readonly headerClass: "bg-primary-15 font-bold text-text text-sm leading-4";
64
+ readonly contentClass: "truncate";
65
+ readonly dismissedClass: "bg-blue-20";
66
+ readonly footerClass: "font-bold";
67
+ readonly blueTextClass: "text-blue-10";
68
+ readonly redTextClass: "text-redText";
69
+ };
70
+ readonly sortTableContainer: "w-full mb-4";
71
+ readonly sortTableFunctionBar: "flex items-center h-12 bg-primary-20 px-1.5 rounded-t justify-end";
72
+ readonly sortTableSettingsBtn: "cursor-pointer text-primary-dark text-xl flex items-center justify-center hover:text-primary-40";
73
+ readonly filterBtn: "text-sky-500 hover:text-white hover:bg-sky-500 disabled:bg-white disabled:opacity-50";
74
+ readonly filterBtnText: "text-black ml-2 font-bold hover:text-white disabled:text-black/20";
75
+ readonly filterBtnIcon: "text-xl";
76
+ readonly transferSortWrapper: "border border-gray-200 h-96 overflow-auto";
77
+ readonly transferActiveBg: "bg-primary/10";
78
+ readonly transferActiveBorder: "border border-primary-10 rounded";
79
+ readonly transferItemWrapper: "border-t border-gray-200 px-4 flex items-center justify-between w-full";
80
+ readonly transferArrowWrapper: "w-28 text-primary-10";
81
+ readonly baseDialogTitle: "font-bold text-base";
82
+ readonly cursorGrab: "cursor-grab";
83
+ readonly cursorGrabbing: "cursor-grabbing";
84
+ readonly cell: "p-0 h-10";
85
+ readonly header: "bg-primary-15 font-bold text-text text-sm leading-4";
86
+ readonly content: "truncate";
87
+ readonly dismissed: "bg-blue-20";
88
+ readonly footer: "font-bold";
89
+ readonly blueText: "text-blue-10";
90
+ readonly redText: "text-redText";
91
+ };
30
92
  export declare const createTableCellClass: (options?: {
31
93
  isDismissed?: boolean;
32
94
  isHeader?: boolean;
33
95
  }) => string;
34
96
  export declare const createTextClass: (type?: "blue" | "red" | "normal") => "" | "text-blue-10" | "text-redText";
35
97
  export type TableStylesType = typeof tableStyles;
98
+ export type ComponentStylesType = typeof componentStyles;
36
99
  export type DataTableConfigType = typeof dataTableConfig;
100
+ export type AllComponentStylesType = typeof allComponentStyles;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rayyy-vue-table-components",
3
- "version": "1.2.7",
3
+ "version": "1.2.9",
4
4
  "description": "Vue 3 + Element Plus 表格組件庫",
5
5
  "type": "module",
6
6
  "main": "./dist/index.umd.js",
@@ -13,7 +13,6 @@
13
13
  "require": "./dist/index.umd.js"
14
14
  },
15
15
  "./dist/rayyy-vue-table-components.css": "./dist/rayyy-vue-table-components.css",
16
- "./components.css": "./dist/components.css",
17
16
  "./tailwind-preset": "./tailwind-preset.js",
18
17
  "./types": {
19
18
  "types": "./src/types/index.ts",
@@ -0,0 +1,87 @@
1
+ // 組件級樣式 - 從 tailwind-preset.js plugins 轉移而來
2
+
3
+ // SortTable 組件樣式
4
+ .sort-table-container {
5
+ @apply w-full mb-4;
6
+ }
7
+
8
+ .sort-table-function-bar {
9
+ @apply flex items-center h-12 bg-primary-20 px-1.5 rounded-t justify-end;
10
+ }
11
+
12
+ .sort-table-settings-btn {
13
+ @apply cursor-pointer text-primary-dark text-xl flex items-center justify-center;
14
+
15
+ &:hover {
16
+ @apply text-primary-40;
17
+ }
18
+ }
19
+
20
+ // FilterBtn 組件樣式
21
+ .filter-btn {
22
+ @apply text-sky-500;
23
+
24
+ p {
25
+ @apply text-black ml-2 font-bold;
26
+ }
27
+
28
+ i {
29
+ @apply text-xl;
30
+ }
31
+
32
+ &:hover {
33
+ @apply text-white bg-sky-500;
34
+
35
+ p {
36
+ @apply text-white;
37
+ }
38
+ }
39
+
40
+ &:disabled {
41
+ @apply bg-white opacity-50;
42
+
43
+ &:hover {
44
+ @apply bg-white;
45
+
46
+ p {
47
+ @apply text-black/20;
48
+ }
49
+ }
50
+ }
51
+ }
52
+
53
+ // TransferItem 組件樣式
54
+ .transfer-item-wrapper {
55
+ @apply border-t border-gray-200 px-4 flex items-center justify-between w-full;
56
+ }
57
+
58
+ .transfer-arrow-wrapper {
59
+ @apply w-28 text-primary-10;
60
+ }
61
+
62
+ // TransferDialog 組件樣式
63
+ .transfer-sort-wrapper {
64
+ @apply border border-gray-200 h-96 overflow-auto;
65
+ }
66
+
67
+ .transfer-active-bg {
68
+ background-color: rgba(103, 133, 193, 0.1);
69
+ }
70
+
71
+ .transfer-active-border {
72
+ @apply border border-primary-10 rounded;
73
+ }
74
+
75
+ // BaseDialog 組件樣式
76
+ .base-dialog-title {
77
+ @apply font-bold text-base;
78
+ }
79
+
80
+ // 通用樣式
81
+ .cursor-grab {
82
+ cursor: grab;
83
+ }
84
+
85
+ .cursor-grabbing {
86
+ cursor: grabbing;
87
+ }
@@ -1,6 +1,7 @@
1
1
 
2
2
  @use 'dialog';
3
3
  @use "table";
4
+ @use "components";
4
5
 
5
6
  @tailwind base;
6
7
  @tailwind components;
@@ -24,6 +24,32 @@ export const blueText = 'text-blue-10'
24
24
  // 紅色文字樣式
25
25
  export const redText = 'text-redText'
26
26
 
27
+ // SortTable 組件樣式
28
+ export const sortTableContainer = 'w-full mb-4'
29
+ export const sortTableFunctionBar = 'flex items-center h-12 bg-primary-20 px-1.5 rounded-t justify-end'
30
+ export const sortTableSettingsBtn = 'cursor-pointer text-primary-dark text-xl flex items-center justify-center hover:text-primary-40'
31
+
32
+ // FilterBtn 組件樣式
33
+ export const filterBtn = 'text-sky-500 hover:text-white hover:bg-sky-500 disabled:bg-white disabled:opacity-50'
34
+ export const filterBtnText = 'text-black ml-2 font-bold hover:text-white disabled:text-black/20'
35
+ export const filterBtnIcon = 'text-xl'
36
+
37
+ // TransferDialog 組件樣式
38
+ export const transferSortWrapper = 'border border-gray-200 h-96 overflow-auto'
39
+ export const transferActiveBg = 'bg-primary/10'
40
+ export const transferActiveBorder = 'border border-primary-10 rounded'
41
+
42
+ // TransferItem 組件樣式
43
+ export const transferItemWrapper = 'border-t border-gray-200 px-4 flex items-center justify-between w-full'
44
+ export const transferArrowWrapper = 'w-28 text-primary-10'
45
+
46
+ // BaseDialog 組件樣式
47
+ export const baseDialogTitle = 'font-bold text-base'
48
+
49
+ // 通用樣式
50
+ export const cursorGrab = 'cursor-grab'
51
+ export const cursorGrabbing = 'cursor-grabbing'
52
+
27
53
  // 組合樣式對象
28
54
  export const tableStyles = {
29
55
  cell: tableCell,
@@ -35,6 +61,35 @@ export const tableStyles = {
35
61
  redText,
36
62
  } as const
37
63
 
64
+ // 組件樣式對象
65
+ export const componentStyles = {
66
+ // SortTable
67
+ sortTableContainer,
68
+ sortTableFunctionBar,
69
+ sortTableSettingsBtn,
70
+
71
+ // FilterBtn
72
+ filterBtn,
73
+ filterBtnText,
74
+ filterBtnIcon,
75
+
76
+ // TransferDialog
77
+ transferSortWrapper,
78
+ transferActiveBg,
79
+ transferActiveBorder,
80
+
81
+ // TransferItem
82
+ transferItemWrapper,
83
+ transferArrowWrapper,
84
+
85
+ // BaseDialog
86
+ baseDialogTitle,
87
+
88
+ // 通用
89
+ cursorGrab,
90
+ cursorGrabbing,
91
+ } as const
92
+
38
93
  // 完整的 data-table 樣式配置
39
94
  export const dataTableConfig = {
40
95
  // 表格單元格配置
@@ -51,6 +106,18 @@ export const dataTableConfig = {
51
106
  redTextClass: redText,
52
107
  } as const
53
108
 
109
+ // 完整的組件樣式配置
110
+ export const allComponentStyles = {
111
+ // 表格樣式
112
+ ...tableStyles,
113
+
114
+ // 組件樣式
115
+ ...componentStyles,
116
+
117
+ // 配置對象
118
+ dataTableConfig,
119
+ } as const
120
+
54
121
  // 樣式組合函數
55
122
  export const createTableCellClass = (options?: {
56
123
  isDismissed?: boolean
@@ -80,4 +147,6 @@ export const createTextClass = (type: 'blue' | 'red' | 'normal' = 'normal') => {
80
147
 
81
148
  // 導出類型
82
149
  export type TableStylesType = typeof tableStyles
150
+ export type ComponentStylesType = typeof componentStyles
83
151
  export type DataTableConfigType = typeof dataTableConfig
152
+ export type AllComponentStylesType = typeof allComponentStyles
@@ -2,31 +2,7 @@
2
2
  module.exports = {
3
3
  content: [],
4
4
  safelist: [
5
- // SortTable 組件類別
6
- 'sort-table-container',
7
- 'sort-table-function-bar',
8
- 'sort-table-settings-btn',
9
-
10
- // FilterBtn 組件類別
11
- 'filter-btn',
12
-
13
- // TransferItem 組件類別
14
- 'transfer-item-wrapper',
15
- 'transfer-arrow-wrapper',
16
-
17
- // TransferDialog 組件類別
18
- 'transfer-sort-wrapper',
19
- 'transfer-active-bg',
20
- 'transfer-active-border',
21
-
22
- // BaseDialog 組件類別
23
- 'base-dialog-title',
24
-
25
- // 通用類別
26
- 'cursor-grab',
27
- 'cursor-grabbing',
28
-
29
- // Primary 顏色類別
5
+ // 保留必要的顏色類別供 Tailwind 使用
30
6
  'bg-primary',
31
7
  'bg-primary-10',
32
8
  'bg-primary-15',
@@ -51,6 +27,21 @@ module.exports = {
51
27
  'border-primary-60',
52
28
  'border-primary-80',
53
29
  'border-primary-dark',
30
+ 'text-blue-10',
31
+ 'text-redText',
32
+ 'bg-blue-20',
33
+ 'border-b-orange',
34
+ 'border-b-blue-10',
35
+
36
+ // 組件樣式相關的 Tailwind 類別(用於 SCSS 和 TypeScript 工具)
37
+ 'bg-primary/10',
38
+ 'hover:text-primary-40',
39
+ 'text-sky-500',
40
+ 'hover:bg-sky-500',
41
+ 'disabled:bg-white',
42
+ 'disabled:opacity-50',
43
+ 'disabled:text-black/20',
44
+ 'text-black/20',
54
45
  ],
55
46
  theme: {
56
47
  extend: {
@@ -128,101 +119,6 @@ module.exports = {
128
119
  },
129
120
  },
130
121
  plugins: [
131
- function({ addComponents, theme }) {
132
- // 組件級樣式
133
- addComponents({
134
- // SortTable 組件樣式
135
- '.sort-table-container': {
136
- width: '100%',
137
- marginBottom: '1rem',
138
- },
139
- '.sort-table-function-bar': {
140
- display: 'flex',
141
- alignItems: 'center',
142
- height: '3rem',
143
- backgroundColor: theme('colors.primary.20'),
144
- padding: '0 0.375rem',
145
- borderTopLeftRadius: '0.25rem',
146
- borderTopRightRadius: '0.25rem',
147
- justifyContent: 'flex-end',
148
- },
149
- '.sort-table-settings-btn': {
150
- cursor: 'pointer',
151
- color: theme('colors.primary.dark'),
152
- fontSize: '1.25rem',
153
- display: 'flex',
154
- alignItems: 'center',
155
- justifyContent: 'center',
156
- '&:hover': {
157
- color: theme('colors.primary.40'),
158
- },
159
- },
160
-
161
- // FilterBtn 組件樣式
162
- '.filter-btn': {
163
- color: '#0ea5e9',
164
- '& p': {
165
- color: '#000',
166
- marginLeft: '0.5rem',
167
- fontWeight: 'bold',
168
- },
169
- '& i': {
170
- fontSize: '1.25rem',
171
- },
172
- '&:hover': {
173
- color: '#fff',
174
- backgroundColor: '#0ea5e9',
175
- '& p': {
176
- color: '#fff',
177
- },
178
- },
179
- '&:disabled': {
180
- backgroundColor: '#fff',
181
- opacity: '0.5',
182
- '&:hover': {
183
- backgroundColor: '#fff',
184
- '& p': {
185
- color: 'rgba(0, 0, 0, 0.2)',
186
- },
187
- },
188
- },
189
- },
190
-
191
- // TransferItem 組件樣式
192
- '.transfer-item-wrapper': {
193
- borderTop: '1px solid #e5e7eb',
194
- padding: '0 1rem',
195
- display: 'flex',
196
- alignItems: 'center',
197
- justifyContent: 'space-between',
198
- width: '100%',
199
- },
200
- '.transfer-arrow-wrapper': {
201
- width: '7rem',
202
- color: theme('colors.primary.10'),
203
- },
204
-
205
- // TransferDialog 組件樣式
206
- '.transfer-sort-wrapper': {
207
- border: '1px solid #e5e7eb',
208
- height: '24rem',
209
- overflow: 'auto',
210
- },
211
- '.transfer-active-bg': {
212
- backgroundColor: 'rgba(103, 133, 193, 0.1)',
213
- },
214
- '.transfer-active-border': {
215
- border: '1px solid',
216
- borderRadius: '0.25rem',
217
- borderColor: theme('colors.primary.10'),
218
- },
219
-
220
- // BaseDialog 組件樣式
221
- '.base-dialog-title': {
222
- fontWeight: 'bold',
223
- fontSize: '1rem',
224
- },
225
- })
226
- }
122
+ // 移除了舊的組件級樣式,現在使用 TypeScript 樣式工具和 Sass 模組
227
123
  ],
228
124
  }