@udi-organization/udi-package 1.0.50 → 1.0.55

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.
@@ -0,0 +1,180 @@
1
+ // =============================================================================
2
+ // Design Variables - 設計變數集中管理
3
+ // =============================================================================
4
+
5
+ // -----------------------------------------------------------------------------
6
+ // 1. 顏色變數 (Colors) - 使用 CSS 變數支援 Dark Mode
7
+ // -----------------------------------------------------------------------------
8
+
9
+ // 主色調
10
+ $color-primary: var(--color-primary);
11
+ $color-primary-dark: var(--color-primary-dark);
12
+ $color-primary-light: var(--color-primary-light);
13
+
14
+ // 灰階
15
+ $color-gray-50: var(--color-gray-50);
16
+ $color-gray-100: var(--color-gray-100);
17
+ $color-gray-200: var(--color-gray-200);
18
+ $color-gray-300: var(--color-gray-300);
19
+ $color-gray-400: var(--color-gray-400);
20
+ $color-gray-500: var(--color-gray-500);
21
+ $color-gray-600: var(--color-gray-600);
22
+ $color-gray-700: var(--color-gray-700);
23
+ $color-gray-800: var(--color-gray-800);
24
+ $color-gray-900: var(--color-gray-900);
25
+
26
+ // 語義顏色
27
+ $color-success: var(--color-success);
28
+ $color-warning: var(--color-warning);
29
+ $color-error: var(--color-error);
30
+ $color-info: var(--color-info);
31
+
32
+ // 背景與前景
33
+ $color-background: var(--color-background);
34
+ $color-surface: var(--color-surface);
35
+ $color-text-primary: var(--color-text-primary);
36
+ $color-text-secondary: var(--color-text-secondary);
37
+ $color-text-disabled: var(--color-text-disabled);
38
+ $color-border: var(--color-border);
39
+
40
+ // 固定顏色(不隨主題變化)
41
+ $color-white: #ffffff;
42
+ $color-black: #000000;
43
+
44
+ // -----------------------------------------------------------------------------
45
+ // 2. 間距系統 (Spacing) - 基於 8px 網格
46
+ // -----------------------------------------------------------------------------
47
+
48
+ $spacing-xs: 4px;
49
+ $spacing-sm: 8px;
50
+ $spacing-md: 12px;
51
+ $spacing-lg: 16px;
52
+ $spacing-xl: 24px;
53
+ $spacing-2xl: 32px;
54
+ $spacing-3xl: 48px;
55
+ $spacing-4xl: 64px;
56
+
57
+ // 常用間距 Map(可用於 @each 迴圈)
58
+ $spacings: (
59
+ 'xs': $spacing-xs,
60
+ 'sm': $spacing-sm,
61
+ 'md': $spacing-md,
62
+ 'lg': $spacing-lg,
63
+ 'xl': $spacing-xl,
64
+ '2xl': $spacing-2xl,
65
+ '3xl': $spacing-3xl,
66
+ '4xl': $spacing-4xl
67
+ );
68
+
69
+ // -----------------------------------------------------------------------------
70
+ // 3. 字型系統 (Typography)
71
+ // -----------------------------------------------------------------------------
72
+
73
+ $font-family-base: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
74
+ 'Helvetica Neue', Arial, 'Noto Sans TC', sans-serif;
75
+ $font-family-mono: 'SF Mono', Consolas, 'Liberation Mono', Menlo, monospace;
76
+
77
+ $font-size-xs: 12px;
78
+ $font-size-sm: 14px;
79
+ $font-size-base: 16px;
80
+ $font-size-lg: 18px;
81
+ $font-size-xl: 20px;
82
+ $font-size-2xl: 24px;
83
+ $font-size-3xl: 30px;
84
+ $font-size-4xl: 36px;
85
+
86
+ $font-weight-light: 300;
87
+ $font-weight-normal: 400;
88
+ $font-weight-medium: 500;
89
+ $font-weight-semibold: 600;
90
+ $font-weight-bold: 700;
91
+
92
+ $line-height-tight: 1.25;
93
+ $line-height-normal: 1.5;
94
+ $line-height-relaxed: 1.75;
95
+
96
+ // -----------------------------------------------------------------------------
97
+ // 4. 圓角 (Border Radius)
98
+ // -----------------------------------------------------------------------------
99
+
100
+ $radius-none: 0;
101
+ $radius-sm: 4px;
102
+ $radius-md: 8px;
103
+ $radius-lg: 12px;
104
+ $radius-xl: 16px;
105
+ $radius-2xl: 24px;
106
+ $radius-full: 9999px;
107
+ $radius-round: 50%;
108
+
109
+ // -----------------------------------------------------------------------------
110
+ // 5. 陰影 (Shadows)
111
+ // -----------------------------------------------------------------------------
112
+
113
+ $shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
114
+ $shadow-base: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
115
+ $shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
116
+ $shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
117
+ $shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
118
+
119
+ // -----------------------------------------------------------------------------
120
+ // 6. 過渡動畫 (Transitions)
121
+ // -----------------------------------------------------------------------------
122
+
123
+ $transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1);
124
+ $transition-base: 200ms ease;
125
+ $transition-slow: 300ms ease;
126
+
127
+ // -----------------------------------------------------------------------------
128
+ // 7. Z-Index 層級
129
+ // -----------------------------------------------------------------------------
130
+
131
+ $z-base: 0;
132
+ $z-dropdown: 1000;
133
+ $z-sticky: 1020;
134
+ $z-fixed: 1030;
135
+ $z-backdrop: 1040;
136
+ $z-modal: 1050;
137
+ $z-popover: 1060;
138
+ $z-tooltip: 1070;
139
+
140
+ // -----------------------------------------------------------------------------
141
+ // 8. 斷點 (Breakpoints)
142
+ // -----------------------------------------------------------------------------
143
+
144
+ $breakpoint-xs: 0;
145
+ $breakpoint-sm: 750px;
146
+ $breakpoint-md: 1100px;
147
+ $breakpoint-lg: 1460px;
148
+
149
+ // 斷點 Mixin
150
+ @mixin sm-up {
151
+ @media (min-width: $breakpoint-sm) { @content; }
152
+ }
153
+
154
+ @mixin md-up {
155
+ @media (min-width: $breakpoint-md) { @content; }
156
+ }
157
+
158
+ @mixin lg-up {
159
+ @media (min-width: $breakpoint-lg) { @content; }
160
+ }
161
+
162
+ // -----------------------------------------------------------------------------
163
+ // 9. 組件專用變數
164
+ // -----------------------------------------------------------------------------
165
+
166
+ // Input
167
+ $input-padding: 15px 10px;
168
+ $input-border-radius: $radius-sm;
169
+
170
+ // Button
171
+ $button-padding-sm: 2px 8px;
172
+ $button-padding-md: 4px 12px;
173
+ $button-padding-lg: 8px 16px;
174
+ $button-border-radius: $radius-lg;
175
+
176
+ // Card
177
+ $card-padding: $spacing-lg;
178
+ $card-border-radius: $radius-lg;
179
+ $card-shadow: $shadow-md;
180
+
package/package.json CHANGED
@@ -1,7 +1,11 @@
1
1
  {
2
2
  "name": "@udi-organization/udi-package",
3
- "version": "1.0.50",
3
+ "version": "1.0.55",
4
4
  "description": "package for udi",
5
+ "repository": {
6
+ "type": "gitlab",
7
+ "url": "https://gitlab.com/udi3732104/udi-package/-/tree/main?ref_type=heads"
8
+ },
5
9
  "main": "dist/index.cjs.js",
6
10
  "module": "dist/index.esm.js",
7
11
  "type": "module",
@@ -20,6 +24,8 @@
20
24
  "build": "rollup -c",
21
25
  "prepublishOnly": "npm run build",
22
26
  "release": "npm run build && npm version patch && npm publish --access public",
27
+ "release-minor": "npm run build && npm version minor && npm publish --access public",
28
+ "release-major": "npm run build && npm version major && npm publish --access public",
23
29
  "watch": "npx rollup -c -w"
24
30
  },
25
31
  "keywords": [
@@ -1 +0,0 @@
1
- .udi-table td,.udi-table th{border-left:none!important;border-right:none!important}.udi-table-container{background:#fff;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.1);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;overflow:hidden;width:100%}.udi-table-container .error-message{background:#f8d7da;border-left:4px solid #dc3545;border-radius:4px;color:#721c24;font-weight:500;margin-bottom:16px;padding:12px 16px}@media (max-width:768px){.udi-table-container .error-message{font-size:14px;margin:8px}}.udi-table-filter{background:#f8f9fa;border-bottom:1px solid #e9ecef}.udi-table-filter .filter-section .basic-filter{align-items:center;display:flex;flex-wrap:wrap;gap:12px;padding:16px}.udi-table-filter .filter-section .basic-filter .filter-column-selector{align-items:center;display:flex;gap:8px;white-space:nowrap}.udi-table-filter .filter-section .basic-filter .filter-column-selector label{color:#495057;font-size:14px;font-weight:500}.udi-table-filter .filter-section .basic-filter .filter-column-selector .filter-column-select{background:#fff;border:1px solid #ced4da;border-radius:4px;cursor:pointer;font-size:14px;min-width:120px;outline:none;padding:8px 12px;transition:border-color .15s ease-in-out}.udi-table-filter .filter-section .basic-filter .filter-column-selector .filter-column-select:focus{border-color:#007bff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.udi-table-filter .filter-section .basic-filter .filter-column-selector .filter-column-select:hover{border-color:#adb5bd}.udi-table-filter .filter-section .basic-filter .filter-input{border:1px solid #ced4da;border-radius:4px;flex:1;font-size:14px;min-width:200px;outline:none;padding:8px 12px;transition:border-color .15s ease-in-out}.udi-table-filter .filter-section .basic-filter .filter-input:focus{border-color:#007bff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.udi-table-filter .filter-section .basic-filter .advanced-filter-toggle{background:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:8px 16px;transition:background-color .15s ease-in-out;white-space:nowrap}.udi-table-filter .filter-section .basic-filter .advanced-filter-toggle:hover{background:#0056b3}.udi-table-filter .filter-section .basic-filter .reset-button{background:#6c757d;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:8px 16px;transition:background-color .15s ease-in-out;white-space:nowrap}.udi-table-filter .filter-section .basic-filter .reset-button:hover{background:#5a6268}.udi-table-filter .filter-section .advanced-filter{background:#f1f3f4;border-top:1px solid #e9ecef;padding:16px}.udi-table-filter .filter-section .advanced-filter .advanced-filter-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.udi-table-filter .filter-section .advanced-filter .advanced-filter-header h4{color:#495057;font-size:16px;font-weight:600;margin:0}.udi-table-filter .filter-section .advanced-filter .advanced-filter-header .clear-advanced-button{background:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;padding:6px 12px;transition:background-color .15s ease-in-out}.udi-table-filter .filter-section .advanced-filter .advanced-filter-header .clear-advanced-button:hover{background:#c82333}.udi-table-filter .filter-section .advanced-filter .advanced-filter-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.udi-table-filter .filter-section .advanced-filter .advanced-filter-grid .advanced-filter-item{display:flex;flex-direction:column;gap:4px}.udi-table-filter .filter-section .advanced-filter .advanced-filter-grid .advanced-filter-item label{color:#495057;font-size:13px;font-weight:500}.udi-table-filter .filter-section .advanced-filter .advanced-filter-grid .advanced-filter-item .advanced-filter-input{background:#fff;border:1px solid #ced4da;border-radius:4px;font-size:14px;outline:none;padding:8px 12px;transition:border-color .15s ease-in-out}.udi-table-filter .filter-section .advanced-filter .advanced-filter-grid .advanced-filter-item .advanced-filter-input:focus{border-color:#007bff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.udi-table-filter .filter-section .advanced-filter .advanced-filter-grid .advanced-filter-item .advanced-filter-input:hover{border-color:#adb5bd}.scroll-position-indicator{background:#e3f2fd;border-bottom:1px solid #bbdefb;color:#1565c0;font-family:Courier New,monospace;font-size:12px;padding:8px 16px;text-align:center}.udi-table-wrapper{-webkit-overflow-scrolling:touch;border:1px solid #e9ecef;height:300px;overflow-x:auto;overflow-y:auto}.udi-table-wrapper::-webkit-scrollbar{height:8px;width:8px}.udi-table-wrapper::-webkit-scrollbar-track{background:#f8f9fa;border-radius:4px}.udi-table-wrapper::-webkit-scrollbar-thumb{background:#cbd5e0;border-radius:4px}.udi-table-wrapper::-webkit-scrollbar-thumb:hover{background:#a0aec0}.udi-table{border-collapse:collapse;font-size:14px;min-width:800px}.udi-table td,.udi-table th{border-bottom:1px solid #e9ecef;max-width:300px;overflow:hidden;padding:12px 16px;text-align:left;text-overflow:ellipsis;white-space:nowrap}.udi-table th{background:#f8f9fa;border-bottom:2px solid #dee2e6;color:#495057;font-weight:600;position:sticky;top:0;z-index:10}.udi-table th.sortable{cursor:pointer;transition:background-color .15s ease-in-out;user-select:none}.udi-table th.sortable:hover{background:#e9ecef}.udi-table th.sortable .sort-icon{opacity:.4}.udi-table th.sorted{background:#e3f2fd;color:#1976d2}.udi-table th.sorted .sort-icon{opacity:1}.udi-table th .th-content{align-items:center;display:flex;justify-content:space-between;min-width:0}.udi-table th .sort-icon{flex-shrink:0;font-size:12px;margin-left:8px;opacity:.7}.udi-table tbody tr{transition:background-color .15s ease-in-out}.udi-table tbody tr:hover{background:#f8f9fa}.udi-table tbody tr:nth-child(2n){background:#fdfdfe}.udi-table tbody tr:nth-child(2n):hover{background:#f8f9fa}.udi-table tbody td:first-child{background:inherit;border-right:1px solid #e9ecef;left:0;z-index:5}.udi-table .no-data{color:#6c757d;font-style:italic;padding:32px;text-align:center}.udi-table .loading-state{padding:40px 20px;text-align:center}.udi-table .loading-state .loading-spinner{align-items:center;display:flex;flex-direction:column;gap:12px}.udi-table .loading-state .loading-spinner .spinner{animation:spin 1s linear infinite;border:3px solid #f3f3f3;border-radius:50%;border-top-color:#007bff;height:32px;width:32px}.udi-table .loading-state .loading-spinner span{color:#868e96;font-size:14px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.udi-table-pagination{align-items:center;background:#f8f9fa;border-top:1px solid #e9ecef;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;padding:16px}.udi-table-pagination .pagination-info{color:#6c757d;display:flex;flex-direction:column;font-size:14px;gap:8px}.udi-table-pagination .pagination-info .page-size-selector{align-items:center;display:flex;gap:8px}.udi-table-pagination .pagination-info .page-size-selector label{color:#495057;font-weight:500}.udi-table-pagination .pagination-info .page-size-selector .page-size-select{background:#fff;border:1px solid #ced4da;border-radius:4px;cursor:pointer;font-size:14px;outline:none;padding:4px 8px;transition:border-color .15s ease-in-out}.udi-table-pagination .pagination-info .page-size-selector .page-size-select:focus{border-color:#007bff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.udi-table-pagination .pagination-info .page-size-selector .page-size-select:hover{border-color:#adb5bd}.udi-table-pagination .pagination-info .page-size-selector span{color:#495057}.udi-table-pagination .pagination-info .pagination-summary{font-size:13px}.udi-table-pagination .pagination-controls{align-items:center;display:flex;gap:4px}.udi-table-pagination .pagination-controls .current-page-mobile{background:#007bff;border:1px solid #007bff;border-radius:4px;color:#fff;font-size:14px;font-weight:500;min-width:60px;padding:8px 12px;text-align:center}.udi-table-pagination .pagination-controls .pagination-button{background:#fff;border:1px solid #ced4da;border-radius:4px;color:#495057;cursor:pointer;font-size:14px;min-width:40px;padding:6px 12px;transition:all .15s ease-in-out}.udi-table-pagination .pagination-controls .pagination-button:hover:not(:disabled){background:#e9ecef;border-color:#adb5bd}.udi-table-pagination .pagination-controls .pagination-button:disabled{background:#f8f9fa;color:#6c757d;cursor:not-allowed;opacity:.6}.udi-table-pagination .pagination-controls .pagination-button.disabled{background:#f1f3f4;border-color:#dadce0;color:#9aa0a6;cursor:not-allowed;opacity:.5}.udi-table-pagination .pagination-controls .pagination-button.disabled:hover{background:#f1f3f4;border-color:#dadce0}.udi-table-pagination .pagination-controls .pagination-button.active{background:#007bff;border-color:#007bff;color:#fff}.udi-table-pagination .pagination-controls .pagination-button.active:hover{background:#0056b3;border-color:#0056b3}@media (min-width:1200px){.udi-table-wrapper{height:400px}.udi-table-filter .filter-section .advanced-filter .advanced-filter-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width:1199px) and (min-width:992px){.udi-table-filter .filter-section .advanced-filter .advanced-filter-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:991px) and (min-width:768px){.udi-table-container{border-radius:6px}.udi-table-wrapper{height:350px}.udi-table{min-width:600px}.udi-table td,.udi-table th{font-size:13px;max-width:200px;padding:10px 12px}.udi-table-filter .filter-section .basic-filter{flex-wrap:wrap;gap:10px}.udi-table-filter .filter-section .basic-filter .filter-input{min-width:180px}.udi-table-filter .filter-section .advanced-filter .advanced-filter-grid{gap:10px;grid-template-columns:repeat(2,1fr)}.udi-table-pagination{padding:12px}.udi-table-pagination .pagination-info .page-size-selector{align-items:flex-start;flex-direction:column;gap:4px}}@media (max-width:767px) and (min-width:481px){.udi-table-container{border-radius:4px;margin:0 4px}.udi-table-wrapper{height:300px}.udi-table{min-width:500px}.udi-table td,.udi-table th{font-size:12px;max-width:150px;padding:8px 10px}.udi-table tbody td:first-child,.udi-table th:first-child{background:inherit;border-right:2px solid #e9ecef;font-weight:600;left:0;position:sticky;z-index:5}.scroll-position-indicator{font-size:11px;padding:6px 12px}.udi-table-filter .filter-section .basic-filter{align-items:stretch;flex-direction:column;gap:8px;padding:12px}.udi-table-filter .filter-section .basic-filter .filter-column-selector{justify-content:flex-start}.udi-table-filter .filter-section .basic-filter .filter-column-selector label{font-size:13px}.udi-table-filter .filter-section .basic-filter .filter-column-selector .filter-column-select{flex:1;font-size:14px;min-width:100px}.udi-table-filter .filter-section .basic-filter .filter-input{font-size:16px;min-width:auto}.udi-table-filter .filter-section .basic-filter .advanced-filter-toggle,.udi-table-filter .filter-section .basic-filter .reset-button{align-self:stretch;font-size:14px}.udi-table-filter .filter-section .advanced-filter{padding:12px}.udi-table-filter .filter-section .advanced-filter .advanced-filter-header{align-items:stretch;flex-direction:column;gap:8px}.udi-table-filter .filter-section .advanced-filter .advanced-filter-header h4{font-size:14px}.udi-table-filter .filter-section .advanced-filter .advanced-filter-header .clear-advanced-button{align-self:flex-end}.udi-table-filter .filter-section .advanced-filter .advanced-filter-grid{gap:8px;grid-template-columns:1fr}.udi-table-filter .filter-section .advanced-filter .advanced-filter-grid .advanced-filter-item label{font-size:12px}.udi-table-filter .filter-section .advanced-filter .advanced-filter-grid .advanced-filter-item .advanced-filter-input{font-size:16px}.udi-table-pagination{align-items:stretch;flex-direction:column;gap:8px;padding:12px}.udi-table-pagination .pagination-info{text-align:center}.udi-table-pagination .pagination-info .page-size-selector{flex-wrap:wrap;justify-content:center}.udi-table-pagination .pagination-controls{justify-content:center}.udi-table-pagination .pagination-controls .pagination-button{font-size:13px;min-width:36px;padding:8px 12px}}@media (max-width:480px){.udi-table-container{border-left:1px solid #e9ecef;border-radius:0;border-right:1px solid #e9ecef;box-shadow:none;margin:0}.udi-table-wrapper{border:none;height:250px}.udi-table{font-size:11px;min-width:400px}.udi-table td,.udi-table th{font-size:11px;max-width:120px;padding:6px 8px}.udi-table tbody td:first-child,.udi-table th:first-child{min-width:60px}.scroll-position-indicator{font-size:10px;padding:4px 8px}.udi-table-filter .filter-section .basic-filter{gap:6px;padding:8px}.udi-table-filter .filter-section .basic-filter .filter-column-selector label{font-size:12px}.udi-table-filter .filter-section .basic-filter .filter-column-selector .filter-column-select{font-size:13px;padding:6px 8px}.udi-table-filter .filter-section .basic-filter .filter-input{font-size:16px;padding:8px 10px}.udi-table-filter .filter-section .basic-filter .advanced-filter-toggle,.udi-table-filter .filter-section .basic-filter .reset-button{font-size:13px;padding:8px 12px}.udi-table-filter .filter-section .advanced-filter{padding:8px}.udi-table-filter .filter-section .advanced-filter .advanced-filter-header h4{font-size:13px}.udi-table-filter .filter-section .advanced-filter .advanced-filter-header .clear-advanced-button{font-size:11px;padding:4px 8px}.udi-table-filter .filter-section .advanced-filter .advanced-filter-grid{gap:6px}.udi-table-filter .filter-section .advanced-filter .advanced-filter-grid .advanced-filter-item label{font-size:11px}.udi-table-filter .filter-section .advanced-filter .advanced-filter-grid .advanced-filter-item .advanced-filter-input{font-size:16px;padding:6px 8px}.udi-table-pagination{gap:6px;padding:8px}.udi-table-pagination .pagination-info{font-size:12px}.udi-table-pagination .pagination-info .page-size-selector{gap:4px}.udi-table-pagination .pagination-info .page-size-selector label{font-size:11px}.udi-table-pagination .pagination-info .page-size-selector .page-size-select{font-size:12px;padding:4px 6px}.udi-table-pagination .pagination-info .pagination-summary{font-size:11px}.udi-table-pagination .pagination-controls{flex-wrap:wrap;gap:2px}.udi-table-pagination .pagination-controls .pagination-button{font-size:11px;min-width:28px;padding:6px 8px}}.udi-table-header{margin:30px 8px}.udi-table-name{display:inline-block;margin-right:auto;vertical-align:middle}.udi-table-name h3{color:#1f2937;font-size:18px;font-weight:600;line-height:1.4;margin:0}.udi-table-free-actions{align-items:center;display:inline-flex!important;flex-wrap:wrap;gap:8px;margin-left:auto;vertical-align:middle}.udi-table-name+.udi-table-free-actions{float:right}.udi-table-free-action-button{align-items:center;background-color:#fff;border:1px solid #d1d5db;border-radius:6px;color:#374151;cursor:pointer;display:inline-flex;font-size:14px;font-weight:500;gap:6px;justify-content:center;min-height:36px;min-width:36px;outline:none;padding:8px 12px;transition:all .2s ease}.udi-table-free-action-button:hover{background-color:#f3f4f6;border-color:#9ca3af;box-shadow:0 2px 4px rgba(0,0,0,.1);color:#1f2937;transform:translateY(-1px)}.udi-table-free-action-button:active{background-color:#e5e7eb;box-shadow:0 1px 2px rgba(0,0,0,.1);transform:translateY(0)}.udi-table-free-action-button:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.udi-table-free-action-button:disabled{background-color:#f9fafb;border-color:#e5e7eb;color:#9ca3af;cursor:not-allowed;opacity:.5}.udi-table-free-action-button:disabled:hover{background-color:#f9fafb;border-color:#e5e7eb;box-shadow:none;transform:none}.udi-table-free-action-button svg{flex-shrink:0;height:18px;width:18px}.udi-table-free-action-button:has(svg:only-child){min-width:36px;padding:8px}.udi-table-free-action-button.primary{background-color:#3b82f6;border-color:#3b82f6;color:#fff}.udi-table-free-action-button.primary:hover{background-color:#2563eb;border-color:#2563eb}.udi-table-free-action-button.success{background-color:#10b981;border-color:#10b981;color:#fff}.udi-table-free-action-button.success:hover{background-color:#059669;border-color:#059669}.udi-table-free-action-button.warning{background-color:#f59e0b;border-color:#f59e0b;color:#fff}.udi-table-free-action-button.warning:hover{background-color:#d97706;border-color:#d97706}.udi-table-free-action-button.danger{background-color:#ef4444;border-color:#ef4444;color:#fff}.udi-table-free-action-button.danger:hover{background-color:#dc2626;border-color:#dc2626}.udi-table-free-action-button.ghost{background-color:transparent;border-color:transparent}.udi-table-free-action-button.ghost:hover{background-color:#f3f4f6;border-color:#e5e7eb}@media (max-width:768px){.udi-table-free-actions-container{gap:6px}.udi-table-free-action-button{font-size:13px;min-height:32px;min-width:32px;padding:6px 10px}.udi-table-free-action-button svg{height:16px;width:16px}}@media (orientation:landscape) and (max-height:500px){.udi-table-wrapper{height:200px}.udi-table-filter .filter-section .basic-filter{flex-direction:row;flex-wrap:wrap}}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.udi-table td,.udi-table th{border-width:.5px}}
@@ -1 +0,0 @@
1
- .udi-table td,.udi-table th{border-left:none!important;border-right:none!important}.udi-table-container{background:#fff;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.1);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;overflow:hidden;width:100%}.udi-table-container .error-message{background:#f8d7da;border-left:4px solid #dc3545;border-radius:4px;color:#721c24;font-weight:500;margin-bottom:16px;padding:12px 16px}@media (max-width:768px){.udi-table-container .error-message{font-size:14px;margin:8px}}.udi-table-filter{background:#f8f9fa;border-bottom:1px solid #e9ecef}.udi-table-filter .filter-section .basic-filter{align-items:center;display:flex;flex-wrap:wrap;gap:12px;padding:16px}.udi-table-filter .filter-section .basic-filter .filter-column-selector{align-items:center;display:flex;gap:8px;white-space:nowrap}.udi-table-filter .filter-section .basic-filter .filter-column-selector label{color:#495057;font-size:14px;font-weight:500}.udi-table-filter .filter-section .basic-filter .filter-column-selector .filter-column-select{background:#fff;border:1px solid #ced4da;border-radius:4px;cursor:pointer;font-size:14px;min-width:120px;outline:none;padding:8px 12px;transition:border-color .15s ease-in-out}.udi-table-filter .filter-section .basic-filter .filter-column-selector .filter-column-select:focus{border-color:#007bff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.udi-table-filter .filter-section .basic-filter .filter-column-selector .filter-column-select:hover{border-color:#adb5bd}.udi-table-filter .filter-section .basic-filter .filter-input{border:1px solid #ced4da;border-radius:4px;flex:1;font-size:14px;min-width:200px;outline:none;padding:8px 12px;transition:border-color .15s ease-in-out}.udi-table-filter .filter-section .basic-filter .filter-input:focus{border-color:#007bff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.udi-table-filter .filter-section .basic-filter .advanced-filter-toggle{background:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:8px 16px;transition:background-color .15s ease-in-out;white-space:nowrap}.udi-table-filter .filter-section .basic-filter .advanced-filter-toggle:hover{background:#0056b3}.udi-table-filter .filter-section .basic-filter .reset-button{background:#6c757d;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:8px 16px;transition:background-color .15s ease-in-out;white-space:nowrap}.udi-table-filter .filter-section .basic-filter .reset-button:hover{background:#5a6268}.udi-table-filter .filter-section .advanced-filter{background:#f1f3f4;border-top:1px solid #e9ecef;padding:16px}.udi-table-filter .filter-section .advanced-filter .advanced-filter-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.udi-table-filter .filter-section .advanced-filter .advanced-filter-header h4{color:#495057;font-size:16px;font-weight:600;margin:0}.udi-table-filter .filter-section .advanced-filter .advanced-filter-header .clear-advanced-button{background:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;padding:6px 12px;transition:background-color .15s ease-in-out}.udi-table-filter .filter-section .advanced-filter .advanced-filter-header .clear-advanced-button:hover{background:#c82333}.udi-table-filter .filter-section .advanced-filter .advanced-filter-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.udi-table-filter .filter-section .advanced-filter .advanced-filter-grid .advanced-filter-item{display:flex;flex-direction:column;gap:4px}.udi-table-filter .filter-section .advanced-filter .advanced-filter-grid .advanced-filter-item label{color:#495057;font-size:13px;font-weight:500}.udi-table-filter .filter-section .advanced-filter .advanced-filter-grid .advanced-filter-item .advanced-filter-input{background:#fff;border:1px solid #ced4da;border-radius:4px;font-size:14px;outline:none;padding:8px 12px;transition:border-color .15s ease-in-out}.udi-table-filter .filter-section .advanced-filter .advanced-filter-grid .advanced-filter-item .advanced-filter-input:focus{border-color:#007bff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.udi-table-filter .filter-section .advanced-filter .advanced-filter-grid .advanced-filter-item .advanced-filter-input:hover{border-color:#adb5bd}.scroll-position-indicator{background:#e3f2fd;border-bottom:1px solid #bbdefb;color:#1565c0;font-family:Courier New,monospace;font-size:12px;padding:8px 16px;text-align:center}.udi-table-wrapper{-webkit-overflow-scrolling:touch;border:1px solid #e9ecef;height:300px;overflow-x:auto;overflow-y:auto}.udi-table-wrapper::-webkit-scrollbar{height:8px;width:8px}.udi-table-wrapper::-webkit-scrollbar-track{background:#f8f9fa;border-radius:4px}.udi-table-wrapper::-webkit-scrollbar-thumb{background:#cbd5e0;border-radius:4px}.udi-table-wrapper::-webkit-scrollbar-thumb:hover{background:#a0aec0}.udi-table{border-collapse:collapse;font-size:14px;min-width:800px}.udi-table td,.udi-table th{border-bottom:1px solid #e9ecef;max-width:300px;overflow:hidden;padding:12px 16px;text-align:left;text-overflow:ellipsis;white-space:nowrap}.udi-table th{background:#f8f9fa;border-bottom:2px solid #dee2e6;color:#495057;font-weight:600;position:sticky;top:0;z-index:10}.udi-table th.sortable{cursor:pointer;transition:background-color .15s ease-in-out;user-select:none}.udi-table th.sortable:hover{background:#e9ecef}.udi-table th.sortable .sort-icon{opacity:.4}.udi-table th.sorted{background:#e3f2fd;color:#1976d2}.udi-table th.sorted .sort-icon{opacity:1}.udi-table th .th-content{align-items:center;display:flex;justify-content:space-between;min-width:0}.udi-table th .sort-icon{flex-shrink:0;font-size:12px;margin-left:8px;opacity:.7}.udi-table tbody tr{transition:background-color .15s ease-in-out}.udi-table tbody tr:hover{background:#f8f9fa}.udi-table tbody tr:nth-child(2n){background:#fdfdfe}.udi-table tbody tr:nth-child(2n):hover{background:#f8f9fa}.udi-table tbody td:first-child{background:inherit;border-right:1px solid #e9ecef;left:0;z-index:5}.udi-table .no-data{color:#6c757d;font-style:italic;padding:32px;text-align:center}.udi-table .loading-state{padding:40px 20px;text-align:center}.udi-table .loading-state .loading-spinner{align-items:center;display:flex;flex-direction:column;gap:12px}.udi-table .loading-state .loading-spinner .spinner{animation:spin 1s linear infinite;border:3px solid #f3f3f3;border-radius:50%;border-top-color:#007bff;height:32px;width:32px}.udi-table .loading-state .loading-spinner span{color:#868e96;font-size:14px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.udi-table-pagination{align-items:center;background:#f8f9fa;border-top:1px solid #e9ecef;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;padding:16px}.udi-table-pagination .pagination-info{color:#6c757d;display:flex;flex-direction:column;font-size:14px;gap:8px}.udi-table-pagination .pagination-info .page-size-selector{align-items:center;display:flex;gap:8px}.udi-table-pagination .pagination-info .page-size-selector label{color:#495057;font-weight:500}.udi-table-pagination .pagination-info .page-size-selector .page-size-select{background:#fff;border:1px solid #ced4da;border-radius:4px;cursor:pointer;font-size:14px;outline:none;padding:4px 8px;transition:border-color .15s ease-in-out}.udi-table-pagination .pagination-info .page-size-selector .page-size-select:focus{border-color:#007bff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.udi-table-pagination .pagination-info .page-size-selector .page-size-select:hover{border-color:#adb5bd}.udi-table-pagination .pagination-info .page-size-selector span{color:#495057}.udi-table-pagination .pagination-info .pagination-summary{font-size:13px}.udi-table-pagination .pagination-controls{align-items:center;display:flex;gap:4px}.udi-table-pagination .pagination-controls .current-page-mobile{background:#007bff;border:1px solid #007bff;border-radius:4px;color:#fff;font-size:14px;font-weight:500;min-width:60px;padding:8px 12px;text-align:center}.udi-table-pagination .pagination-controls .pagination-button{background:#fff;border:1px solid #ced4da;border-radius:4px;color:#495057;cursor:pointer;font-size:14px;min-width:40px;padding:6px 12px;transition:all .15s ease-in-out}.udi-table-pagination .pagination-controls .pagination-button:hover:not(:disabled){background:#e9ecef;border-color:#adb5bd}.udi-table-pagination .pagination-controls .pagination-button:disabled{background:#f8f9fa;color:#6c757d;cursor:not-allowed;opacity:.6}.udi-table-pagination .pagination-controls .pagination-button.disabled{background:#f1f3f4;border-color:#dadce0;color:#9aa0a6;cursor:not-allowed;opacity:.5}.udi-table-pagination .pagination-controls .pagination-button.disabled:hover{background:#f1f3f4;border-color:#dadce0}.udi-table-pagination .pagination-controls .pagination-button.active{background:#007bff;border-color:#007bff;color:#fff}.udi-table-pagination .pagination-controls .pagination-button.active:hover{background:#0056b3;border-color:#0056b3}@media (min-width:1200px){.udi-table-wrapper{height:400px}.udi-table-filter .filter-section .advanced-filter .advanced-filter-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width:1199px) and (min-width:992px){.udi-table-filter .filter-section .advanced-filter .advanced-filter-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:991px) and (min-width:768px){.udi-table-container{border-radius:6px}.udi-table-wrapper{height:350px}.udi-table{min-width:600px}.udi-table td,.udi-table th{font-size:13px;max-width:200px;padding:10px 12px}.udi-table-filter .filter-section .basic-filter{flex-wrap:wrap;gap:10px}.udi-table-filter .filter-section .basic-filter .filter-input{min-width:180px}.udi-table-filter .filter-section .advanced-filter .advanced-filter-grid{gap:10px;grid-template-columns:repeat(2,1fr)}.udi-table-pagination{padding:12px}.udi-table-pagination .pagination-info .page-size-selector{align-items:flex-start;flex-direction:column;gap:4px}}@media (max-width:767px) and (min-width:481px){.udi-table-container{border-radius:4px;margin:0 4px}.udi-table-wrapper{height:300px}.udi-table{min-width:500px}.udi-table td,.udi-table th{font-size:12px;max-width:150px;padding:8px 10px}.udi-table tbody td:first-child,.udi-table th:first-child{background:inherit;border-right:2px solid #e9ecef;font-weight:600;left:0;position:sticky;z-index:5}.scroll-position-indicator{font-size:11px;padding:6px 12px}.udi-table-filter .filter-section .basic-filter{align-items:stretch;flex-direction:column;gap:8px;padding:12px}.udi-table-filter .filter-section .basic-filter .filter-column-selector{justify-content:flex-start}.udi-table-filter .filter-section .basic-filter .filter-column-selector label{font-size:13px}.udi-table-filter .filter-section .basic-filter .filter-column-selector .filter-column-select{flex:1;font-size:14px;min-width:100px}.udi-table-filter .filter-section .basic-filter .filter-input{font-size:16px;min-width:auto}.udi-table-filter .filter-section .basic-filter .advanced-filter-toggle,.udi-table-filter .filter-section .basic-filter .reset-button{align-self:stretch;font-size:14px}.udi-table-filter .filter-section .advanced-filter{padding:12px}.udi-table-filter .filter-section .advanced-filter .advanced-filter-header{align-items:stretch;flex-direction:column;gap:8px}.udi-table-filter .filter-section .advanced-filter .advanced-filter-header h4{font-size:14px}.udi-table-filter .filter-section .advanced-filter .advanced-filter-header .clear-advanced-button{align-self:flex-end}.udi-table-filter .filter-section .advanced-filter .advanced-filter-grid{gap:8px;grid-template-columns:1fr}.udi-table-filter .filter-section .advanced-filter .advanced-filter-grid .advanced-filter-item label{font-size:12px}.udi-table-filter .filter-section .advanced-filter .advanced-filter-grid .advanced-filter-item .advanced-filter-input{font-size:16px}.udi-table-pagination{align-items:stretch;flex-direction:column;gap:8px;padding:12px}.udi-table-pagination .pagination-info{text-align:center}.udi-table-pagination .pagination-info .page-size-selector{flex-wrap:wrap;justify-content:center}.udi-table-pagination .pagination-controls{justify-content:center}.udi-table-pagination .pagination-controls .pagination-button{font-size:13px;min-width:36px;padding:8px 12px}}@media (max-width:480px){.udi-table-container{border-left:1px solid #e9ecef;border-radius:0;border-right:1px solid #e9ecef;box-shadow:none;margin:0}.udi-table-wrapper{border:none;height:250px}.udi-table{font-size:11px;min-width:400px}.udi-table td,.udi-table th{font-size:11px;max-width:120px;padding:6px 8px}.udi-table tbody td:first-child,.udi-table th:first-child{min-width:60px}.scroll-position-indicator{font-size:10px;padding:4px 8px}.udi-table-filter .filter-section .basic-filter{gap:6px;padding:8px}.udi-table-filter .filter-section .basic-filter .filter-column-selector label{font-size:12px}.udi-table-filter .filter-section .basic-filter .filter-column-selector .filter-column-select{font-size:13px;padding:6px 8px}.udi-table-filter .filter-section .basic-filter .filter-input{font-size:16px;padding:8px 10px}.udi-table-filter .filter-section .basic-filter .advanced-filter-toggle,.udi-table-filter .filter-section .basic-filter .reset-button{font-size:13px;padding:8px 12px}.udi-table-filter .filter-section .advanced-filter{padding:8px}.udi-table-filter .filter-section .advanced-filter .advanced-filter-header h4{font-size:13px}.udi-table-filter .filter-section .advanced-filter .advanced-filter-header .clear-advanced-button{font-size:11px;padding:4px 8px}.udi-table-filter .filter-section .advanced-filter .advanced-filter-grid{gap:6px}.udi-table-filter .filter-section .advanced-filter .advanced-filter-grid .advanced-filter-item label{font-size:11px}.udi-table-filter .filter-section .advanced-filter .advanced-filter-grid .advanced-filter-item .advanced-filter-input{font-size:16px;padding:6px 8px}.udi-table-pagination{gap:6px;padding:8px}.udi-table-pagination .pagination-info{font-size:12px}.udi-table-pagination .pagination-info .page-size-selector{gap:4px}.udi-table-pagination .pagination-info .page-size-selector label{font-size:11px}.udi-table-pagination .pagination-info .page-size-selector .page-size-select{font-size:12px;padding:4px 6px}.udi-table-pagination .pagination-info .pagination-summary{font-size:11px}.udi-table-pagination .pagination-controls{flex-wrap:wrap;gap:2px}.udi-table-pagination .pagination-controls .pagination-button{font-size:11px;min-width:28px;padding:6px 8px}}.udi-table-header{margin:30px 8px}.udi-table-name{display:inline-block;margin-right:auto;vertical-align:middle}.udi-table-name h3{color:#1f2937;font-size:18px;font-weight:600;line-height:1.4;margin:0}.udi-table-free-actions{align-items:center;display:inline-flex!important;flex-wrap:wrap;gap:8px;margin-left:auto;vertical-align:middle}.udi-table-name+.udi-table-free-actions{float:right}.udi-table-free-action-button{align-items:center;background-color:#fff;border:1px solid #d1d5db;border-radius:6px;color:#374151;cursor:pointer;display:inline-flex;font-size:14px;font-weight:500;gap:6px;justify-content:center;min-height:36px;min-width:36px;outline:none;padding:8px 12px;transition:all .2s ease}.udi-table-free-action-button:hover{background-color:#f3f4f6;border-color:#9ca3af;box-shadow:0 2px 4px rgba(0,0,0,.1);color:#1f2937;transform:translateY(-1px)}.udi-table-free-action-button:active{background-color:#e5e7eb;box-shadow:0 1px 2px rgba(0,0,0,.1);transform:translateY(0)}.udi-table-free-action-button:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.udi-table-free-action-button:disabled{background-color:#f9fafb;border-color:#e5e7eb;color:#9ca3af;cursor:not-allowed;opacity:.5}.udi-table-free-action-button:disabled:hover{background-color:#f9fafb;border-color:#e5e7eb;box-shadow:none;transform:none}.udi-table-free-action-button svg{flex-shrink:0;height:18px;width:18px}.udi-table-free-action-button:has(svg:only-child){min-width:36px;padding:8px}.udi-table-free-action-button.primary{background-color:#3b82f6;border-color:#3b82f6;color:#fff}.udi-table-free-action-button.primary:hover{background-color:#2563eb;border-color:#2563eb}.udi-table-free-action-button.success{background-color:#10b981;border-color:#10b981;color:#fff}.udi-table-free-action-button.success:hover{background-color:#059669;border-color:#059669}.udi-table-free-action-button.warning{background-color:#f59e0b;border-color:#f59e0b;color:#fff}.udi-table-free-action-button.warning:hover{background-color:#d97706;border-color:#d97706}.udi-table-free-action-button.danger{background-color:#ef4444;border-color:#ef4444;color:#fff}.udi-table-free-action-button.danger:hover{background-color:#dc2626;border-color:#dc2626}.udi-table-free-action-button.ghost{background-color:transparent;border-color:transparent}.udi-table-free-action-button.ghost:hover{background-color:#f3f4f6;border-color:#e5e7eb}@media (max-width:768px){.udi-table-free-actions-container{gap:6px}.udi-table-free-action-button{font-size:13px;min-height:32px;min-width:32px;padding:6px 10px}.udi-table-free-action-button svg{height:16px;width:16px}}@media (orientation:landscape) and (max-height:500px){.udi-table-wrapper{height:200px}.udi-table-filter .filter-section .basic-filter{flex-direction:row;flex-wrap:wrap}}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.udi-table td,.udi-table th{border-width:.5px}}