@zengrid/core 1.2.1 → 1.3.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.
- package/dist/index.cjs.js +2571 -1388
- package/dist/index.esm.js +2569 -1389
- package/dist/package.json +2 -2
- package/dist/src/data/data-manager.d.ts.map +1 -1
- package/dist/src/datetime-core/formatting/date-formatter.d.ts +2 -0
- package/dist/src/datetime-core/formatting/date-formatter.d.ts.map +1 -1
- package/dist/src/datetime-core/theming/datetime.css +463 -407
- package/dist/src/editing/checkbox/checkbox-dom.d.ts.map +1 -1
- package/dist/src/editing/datetime/date-editor/date-editor.d.ts.map +1 -1
- package/dist/src/editing/datetime/date-range-editor/date-range-calendar.d.ts.map +1 -1
- package/dist/src/editing/editor-manager/editor-manager.d.ts +23 -1
- package/dist/src/editing/editor-manager/editor-manager.d.ts.map +1 -1
- package/dist/src/editing/number/number-editor.d.ts.map +1 -1
- package/dist/src/editing/select/select-editor.d.ts.map +1 -1
- package/dist/src/features/column-drag/drag-mouse-handler.d.ts +1 -0
- package/dist/src/features/column-drag/drag-mouse-handler.d.ts.map +1 -1
- package/dist/src/features/copy-paste/clipboard-manager.d.ts +24 -2
- package/dist/src/features/copy-paste/clipboard-manager.d.ts.map +1 -1
- package/dist/src/features/filtering/filter-ast-compiler.d.ts +1 -1
- package/dist/src/features/filtering/filter-ast-compiler.d.ts.map +1 -1
- package/dist/src/features/filtering/filter-ast.d.ts +6 -8
- package/dist/src/features/filtering/filter-ast.d.ts.map +1 -1
- package/dist/src/features/filtering/filter-execution-error.d.ts +2 -0
- package/dist/src/features/filtering/filter-execution-error.d.ts.map +1 -0
- package/dist/src/features/filtering/filter-expression.d.ts.map +1 -1
- package/dist/src/features/filtering/filter-manager/filter-core.d.ts +12 -4
- package/dist/src/features/filtering/filter-manager/filter-core.d.ts.map +1 -1
- package/dist/src/features/filtering/filter-manager/filter-query.d.ts +6 -1
- package/dist/src/features/filtering/filter-manager/filter-query.d.ts.map +1 -1
- package/dist/src/features/filtering/filter-manager/index.d.ts +1 -0
- package/dist/src/features/filtering/filter-manager/index.d.ts.map +1 -1
- package/dist/src/features/filtering/filter-signature.d.ts +6 -0
- package/dist/src/features/filtering/filter-signature.d.ts.map +1 -0
- package/dist/src/features/loading/loading-indicator.d.ts.map +1 -1
- package/dist/src/features/loading/loading.styles.css +346 -342
- package/dist/src/features/query/query-signature.d.ts +3 -0
- package/dist/src/features/query/query-signature.d.ts.map +1 -0
- package/dist/src/features/selection/selection-manager.d.ts +14 -0
- package/dist/src/features/selection/selection-manager.d.ts.map +1 -1
- package/dist/src/grid/api/filter-api.d.ts.map +1 -1
- package/dist/src/grid/api/sort-api.d.ts.map +1 -1
- package/dist/src/grid/grid-context.d.ts +2 -0
- package/dist/src/grid/grid-context.d.ts.map +1 -1
- package/dist/src/grid/grid-core.d.ts.map +1 -1
- package/dist/src/grid/grid-setup.d.ts.map +1 -1
- package/dist/src/grid/options-manager.d.ts +14 -0
- package/dist/src/grid/options-manager.d.ts.map +1 -0
- package/dist/src/grid/plugin-host.d.ts +3 -2
- package/dist/src/grid/plugin-host.d.ts.map +1 -1
- package/dist/src/grid/query-mode.d.ts +4 -0
- package/dist/src/grid/query-mode.d.ts.map +1 -0
- package/dist/src/index.d.ts +8 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/plugins/clipboard/clipboard-plugin.d.ts +21 -0
- package/dist/src/plugins/clipboard/clipboard-plugin.d.ts.map +1 -0
- package/dist/src/plugins/clipboard/index.d.ts +3 -0
- package/dist/src/plugins/clipboard/index.d.ts.map +1 -0
- package/dist/src/plugins/column/column-plugin.d.ts.map +1 -1
- package/dist/src/plugins/data-plugin.d.ts.map +1 -1
- package/dist/src/plugins/dom/dom-plugin.d.ts.map +1 -1
- package/dist/src/plugins/editing/editing-plugin.d.ts.map +1 -1
- package/dist/src/plugins/filter-plugin.d.ts.map +1 -1
- package/dist/src/plugins/filter-ui/field-state-utils.d.ts +6 -0
- package/dist/src/plugins/filter-ui/field-state-utils.d.ts.map +1 -0
- package/dist/src/plugins/filter-ui/filter-chip-bar.d.ts +16 -0
- package/dist/src/plugins/filter-ui/filter-chip-bar.d.ts.map +1 -0
- package/dist/src/plugins/filter-ui/filter-chip-descriptors.d.ts +4 -0
- package/dist/src/plugins/filter-ui/filter-chip-descriptors.d.ts.map +1 -0
- package/dist/src/plugins/filter-ui/filter-popup-dom.d.ts +32 -0
- package/dist/src/plugins/filter-ui/filter-popup-dom.d.ts.map +1 -0
- package/dist/src/plugins/filter-ui/filter-popup.d.ts +3 -0
- package/dist/src/plugins/filter-ui/filter-popup.d.ts.map +1 -0
- package/dist/src/plugins/filter-ui/filter-ui-operators.d.ts +9 -0
- package/dist/src/plugins/filter-ui/filter-ui-operators.d.ts.map +1 -0
- package/dist/src/plugins/filter-ui/filter-ui-plugin.d.ts +1 -1
- package/dist/src/plugins/filter-ui/filter-ui-plugin.d.ts.map +1 -1
- package/dist/src/plugins/filter-ui/filter-ui-types.d.ts +56 -0
- package/dist/src/plugins/filter-ui/filter-ui-types.d.ts.map +1 -0
- package/dist/src/plugins/filter-ui/grid-filter-ui.d.ts +20 -0
- package/dist/src/plugins/filter-ui/grid-filter-ui.d.ts.map +1 -0
- package/dist/src/plugins/filter-ui/index.d.ts +1 -0
- package/dist/src/plugins/filter-ui/index.d.ts.map +1 -1
- package/dist/src/plugins/header/header-dom-operations.d.ts +6 -0
- package/dist/src/plugins/header/header-dom-operations.d.ts.map +1 -1
- package/dist/src/plugins/header/header-plugin.d.ts.map +1 -1
- package/dist/src/plugins/header/header-registry-setup.d.ts.map +1 -1
- package/dist/src/plugins/header/header-rendering.d.ts.map +1 -1
- package/dist/src/plugins/header/header-types.d.ts +8 -1
- package/dist/src/plugins/header/header-types.d.ts.map +1 -1
- package/dist/src/plugins/index.d.ts +4 -0
- package/dist/src/plugins/index.d.ts.map +1 -1
- package/dist/src/plugins/keyboard/index.d.ts +3 -0
- package/dist/src/plugins/keyboard/index.d.ts.map +1 -0
- package/dist/src/plugins/keyboard/keyboard-nav-utils.d.ts +13 -0
- package/dist/src/plugins/keyboard/keyboard-nav-utils.d.ts.map +1 -0
- package/dist/src/plugins/keyboard/keyboard-plugin.d.ts +17 -0
- package/dist/src/plugins/keyboard/keyboard-plugin.d.ts.map +1 -0
- package/dist/src/plugins/lifecycle/lifecycle-plugin.d.ts +1 -0
- package/dist/src/plugins/lifecycle/lifecycle-plugin.d.ts.map +1 -1
- package/dist/src/plugins/pagination/pagination-plugin.d.ts.map +1 -1
- package/dist/src/plugins/rendering/rendering-plugin.d.ts.map +1 -1
- package/dist/src/plugins/selection/selection-plugin.d.ts.map +1 -1
- package/dist/src/plugins/sort-plugin.d.ts.map +1 -1
- package/dist/src/reactive/index.d.ts +1 -1
- package/dist/src/reactive/index.d.ts.map +1 -1
- package/dist/src/reactive/store.d.ts +1 -0
- package/dist/src/reactive/store.d.ts.map +1 -1
- package/dist/src/reactive/types.d.ts +17 -1
- package/dist/src/reactive/types.d.ts.map +1 -1
- package/dist/src/rendering/cache/renderer-cache.interface.d.ts +6 -0
- package/dist/src/rendering/cache/renderer-cache.interface.d.ts.map +1 -1
- package/dist/src/rendering/cell-positioner/cell-positioner.d.ts +21 -0
- package/dist/src/rendering/cell-positioner/cell-positioner.d.ts.map +1 -1
- package/dist/src/rendering/headers/header-renderer.interface.d.ts +6 -0
- package/dist/src/rendering/headers/header-renderer.interface.d.ts.map +1 -1
- package/dist/src/rendering/headers/renderers/sortable-header-renderer.d.ts +4 -0
- package/dist/src/rendering/headers/renderers/sortable-header-renderer.d.ts.map +1 -1
- package/dist/src/rendering/renderers/dropdown/dropdown-dom.d.ts.map +1 -1
- package/dist/src/rendering/renderers/dropdown/dropdown-renderer.d.ts +2 -0
- package/dist/src/rendering/renderers/dropdown/dropdown-renderer.d.ts.map +1 -1
- package/dist/src/rendering/renderers/dropdown/dropdown-state.d.ts.map +1 -1
- package/dist/src/rendering/renderers/renderer.interface.d.ts +7 -0
- package/dist/src/rendering/renderers/renderer.interface.d.ts.map +1 -1
- package/dist/src/styles/a11y.css +20 -0
- package/dist/src/styles/calendar.css +291 -0
- package/dist/src/styles/cell-overflow.css +129 -0
- package/dist/src/styles/cell-renderers.css +90 -0
- package/dist/src/styles/date-picker.css +125 -0
- package/dist/src/styles/dropdown.css +156 -0
- package/dist/src/styles/filter.css +166 -0
- package/dist/src/styles/grid.css +91 -287
- package/dist/src/styles/header.css +60 -0
- package/dist/src/styles/overlays.css +44 -0
- package/dist/src/styles/tokens.css +86 -0
- package/dist/src/styles.css +24 -1112
- package/dist/src/types/data.d.ts +1 -0
- package/dist/src/types/data.d.ts.map +1 -1
- package/dist/src/types/filter.d.ts +12 -13
- package/dist/src/types/filter.d.ts.map +1 -1
- package/dist/src/types/grid.d.ts +37 -6
- package/dist/src/types/grid.d.ts.map +1 -1
- package/dist/src/types/query.d.ts +3 -43
- package/dist/src/types/query.d.ts.map +1 -1
- package/dist/src/utils/stable-hash.d.ts +2 -0
- package/dist/src/utils/stable-hash.d.ts.map +1 -0
- package/package.json +3 -3
- package/dist/src/grid/filter-ui.d.ts +0 -70
- package/dist/src/grid/filter-ui.d.ts.map +0 -1
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Calendar theming — vanilla-calendar overrides for the single date picker and
|
|
3
|
+
* the custom date-range picker, including weekend/holiday cross-browser fixes.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
/* ============================================
|
|
7
|
+
Date Picker Calendar Overrides
|
|
8
|
+
============================================ */
|
|
9
|
+
|
|
10
|
+
/* Calendar wrapper styling */
|
|
11
|
+
.vanilla-calendar-wrapper,
|
|
12
|
+
.date-range-calendar-wrapper {
|
|
13
|
+
font-family: var(--zg-font-family, inherit);
|
|
14
|
+
background: var(--zg-calendar-bg);
|
|
15
|
+
color: var(--zg-calendar-text);
|
|
16
|
+
border: 1px solid var(--zg-calendar-border);
|
|
17
|
+
border-radius: var(--zg-calendar-radius);
|
|
18
|
+
box-shadow: var(--zg-calendar-shadow);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/* Calendar header */
|
|
22
|
+
.vanilla-calendar__header {
|
|
23
|
+
background: var(--zg-calendar-header-bg);
|
|
24
|
+
border-bottom: 1px solid var(--zg-calendar-border);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/* Selected day */
|
|
28
|
+
.vanilla-calendar__day_selected {
|
|
29
|
+
background: var(--zg-calendar-selected-bg) !important;
|
|
30
|
+
color: var(--zg-calendar-selected-text) !important;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/* Hover state */
|
|
34
|
+
.vanilla-calendar__day:hover:not(.vanilla-calendar__day_disabled) {
|
|
35
|
+
background: var(--zg-calendar-hover-bg);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/* Today indicator */
|
|
39
|
+
.vanilla-calendar__day_today {
|
|
40
|
+
border: 2px solid var(--zg-calendar-today-border);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/* Disabled days */
|
|
44
|
+
.vanilla-calendar__day_disabled {
|
|
45
|
+
color: var(--zg-calendar-disabled-text);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/* Dark theme adjustments */
|
|
49
|
+
.zg-theme-dark .vanilla-calendar-wrapper,
|
|
50
|
+
.zg-theme-dark .date-range-calendar-wrapper {
|
|
51
|
+
--zg-calendar-disabled-text: #666666;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/* ============================================
|
|
55
|
+
Custom Date Range Picker Styles
|
|
56
|
+
============================================ */
|
|
57
|
+
|
|
58
|
+
.zg-date-range-picker {
|
|
59
|
+
--drp-primary: #4f7df3;
|
|
60
|
+
--drp-primary-hover: #3b6ce7;
|
|
61
|
+
--drp-text: #374151;
|
|
62
|
+
--drp-text-light: #9ca3af;
|
|
63
|
+
--drp-border: #e5e7eb;
|
|
64
|
+
--drp-bg: #ffffff;
|
|
65
|
+
--drp-bg-selected: #4f7df3;
|
|
66
|
+
--drp-bg-hover: #f3f4f6;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/* Calendar container within date range picker */
|
|
70
|
+
.zg-date-range-picker .zg-custom-calendar {
|
|
71
|
+
min-width: 280px;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/* Override vanilla-calendar v3 styles (vc- prefix) */
|
|
75
|
+
.zg-date-range-picker .vc-wrapper,
|
|
76
|
+
.zg-date-range-picker .vc {
|
|
77
|
+
background: transparent !important;
|
|
78
|
+
border: none !important;
|
|
79
|
+
box-shadow: none !important;
|
|
80
|
+
padding: 0 !important;
|
|
81
|
+
font-family: inherit !important;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.zg-date-range-picker .vc-header {
|
|
85
|
+
background: transparent !important;
|
|
86
|
+
border: none !important;
|
|
87
|
+
padding: 0 0 12px 0 !important;
|
|
88
|
+
margin-bottom: 8px !important;
|
|
89
|
+
display: flex !important;
|
|
90
|
+
align-items: center !important;
|
|
91
|
+
justify-content: center !important;
|
|
92
|
+
gap: 8px !important;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/* Month/Year buttons - dropdown style */
|
|
96
|
+
.zg-date-range-picker .vc-header__content {
|
|
97
|
+
display: flex !important;
|
|
98
|
+
gap: 8px !important;
|
|
99
|
+
align-items: center !important;
|
|
100
|
+
justify-content: center !important;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
.zg-date-range-picker .vc-month,
|
|
104
|
+
.zg-date-range-picker .vc-year {
|
|
105
|
+
font-size: 14px !important;
|
|
106
|
+
font-weight: 400 !important;
|
|
107
|
+
color: var(--drp-text) !important;
|
|
108
|
+
background: transparent !important;
|
|
109
|
+
border: 1px solid var(--drp-border) !important;
|
|
110
|
+
border-radius: 6px !important;
|
|
111
|
+
padding: 6px 28px 6px 12px !important;
|
|
112
|
+
cursor: pointer !important;
|
|
113
|
+
position: relative !important;
|
|
114
|
+
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E") !important;
|
|
115
|
+
background-repeat: no-repeat !important;
|
|
116
|
+
background-position: right 8px center !important;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
.zg-date-range-picker .vc-month:hover,
|
|
120
|
+
.zg-date-range-picker .vc-year:hover {
|
|
121
|
+
border-color: var(--drp-text-light) !important;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/* Arrow buttons - smaller and subtle */
|
|
125
|
+
.zg-date-range-picker .vc-arrow {
|
|
126
|
+
width: 28px !important;
|
|
127
|
+
height: 28px !important;
|
|
128
|
+
background: transparent !important;
|
|
129
|
+
border: 1px solid var(--drp-border) !important;
|
|
130
|
+
border-radius: 6px !important;
|
|
131
|
+
color: var(--drp-text-light) !important;
|
|
132
|
+
cursor: pointer !important;
|
|
133
|
+
display: flex !important;
|
|
134
|
+
align-items: center !important;
|
|
135
|
+
justify-content: center !important;
|
|
136
|
+
transition: all 0.15s !important;
|
|
137
|
+
visibility: visible !important; /* Override vanilla-calendar's hidden state */
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
.zg-date-range-picker .vc-arrow:hover {
|
|
141
|
+
border-color: var(--drp-text) !important;
|
|
142
|
+
color: var(--drp-text) !important;
|
|
143
|
+
background: var(--drp-bg-hover) !important;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
/* Week day headers */
|
|
147
|
+
.zg-date-range-picker .vc-week {
|
|
148
|
+
display: grid !important;
|
|
149
|
+
grid-template-columns: repeat(7, 1fr) !important;
|
|
150
|
+
gap: 0 !important;
|
|
151
|
+
margin-bottom: 4px !important;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
.zg-date-range-picker .vc-week__day {
|
|
155
|
+
font-size: 12px !important;
|
|
156
|
+
font-weight: 500 !important;
|
|
157
|
+
color: var(--drp-text-light) !important;
|
|
158
|
+
text-align: center !important;
|
|
159
|
+
padding: 8px 0 !important;
|
|
160
|
+
text-transform: uppercase !important;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/* Days grid */
|
|
164
|
+
.zg-date-range-picker .vc-dates {
|
|
165
|
+
display: grid !important;
|
|
166
|
+
grid-template-columns: repeat(7, 1fr) !important;
|
|
167
|
+
gap: 2px !important;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
/* Individual day button */
|
|
171
|
+
.zg-date-range-picker .vc-date__btn {
|
|
172
|
+
width: 36px !important;
|
|
173
|
+
height: 36px !important;
|
|
174
|
+
display: flex !important;
|
|
175
|
+
align-items: center !important;
|
|
176
|
+
justify-content: center !important;
|
|
177
|
+
border-radius: 6px !important;
|
|
178
|
+
font-size: 14px !important;
|
|
179
|
+
font-weight: 400 !important;
|
|
180
|
+
color: var(--drp-text) !important;
|
|
181
|
+
background: transparent !important;
|
|
182
|
+
border: none !important;
|
|
183
|
+
cursor: pointer !important;
|
|
184
|
+
transition: background 0.15s, color 0.15s !important;
|
|
185
|
+
margin: 0 auto !important;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
.zg-date-range-picker .vc-date__btn:hover:not([disabled]):not(.vc-date__btn_selected) {
|
|
189
|
+
background: var(--drp-bg-hover) !important;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
/* Selected day */
|
|
193
|
+
.zg-date-range-picker .vc-date__btn_selected,
|
|
194
|
+
.zg-date-range-picker .vc-date__btn[data-vc-date-selected] {
|
|
195
|
+
background: var(--drp-bg-selected) !important;
|
|
196
|
+
color: #ffffff !important;
|
|
197
|
+
font-weight: 500 !important;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
/* Today indicator */
|
|
201
|
+
.zg-date-range-picker .vc-date__btn_today:not(.vc-date__btn_selected) {
|
|
202
|
+
border: 1px solid var(--drp-primary) !important;
|
|
203
|
+
color: var(--drp-primary) !important;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
/* Disabled days */
|
|
207
|
+
.zg-date-range-picker .vc-date__btn[disabled],
|
|
208
|
+
.zg-date-range-picker .vc-date__btn_disabled {
|
|
209
|
+
color: #d1d5db !important;
|
|
210
|
+
cursor: not-allowed !important;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
/* Days from other months */
|
|
214
|
+
.zg-date-range-picker .vc-date__btn_prev,
|
|
215
|
+
.zg-date-range-picker .vc-date__btn_next {
|
|
216
|
+
color: #d1d5db !important;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
/* ============================================
|
|
220
|
+
Weekend/Holiday Override Styles
|
|
221
|
+
Fix cross-browser consistency (Windows/Linux Chrome)
|
|
222
|
+
============================================ */
|
|
223
|
+
|
|
224
|
+
/* Weekend day headers (Sat, Sun) - override vanilla-calendar default red styling */
|
|
225
|
+
.zg-date-range-picker .vc-week__day_weekend,
|
|
226
|
+
.zg-date-range-picker .vc-week__day:nth-child(6),
|
|
227
|
+
.zg-date-range-picker .vc-week__day:nth-child(7) {
|
|
228
|
+
color: var(--drp-text-light) !important; /* Same as regular weekdays */
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
/* Weekend date buttons - override vanilla-calendar default red styling */
|
|
232
|
+
.zg-date-range-picker .vc-date__btn_weekend {
|
|
233
|
+
color: var(--drp-text) !important; /* Same as regular days */
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
/* Weekend dates that are selected */
|
|
237
|
+
.zg-date-range-picker .vc-date__btn_weekend.vc-date__btn_selected,
|
|
238
|
+
.zg-date-range-picker .vc-date__btn_weekend[data-vc-date-selected] {
|
|
239
|
+
color: #ffffff !important;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
/* Weekend dates that are today but not selected */
|
|
243
|
+
.zg-date-range-picker .vc-date__btn_weekend.vc-date__btn_today:not(.vc-date__btn_selected) {
|
|
244
|
+
color: var(--drp-primary) !important;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
/* Weekend dates that are from other months */
|
|
248
|
+
.zg-date-range-picker .vc-date__btn_weekend.vc-date__btn_prev,
|
|
249
|
+
.zg-date-range-picker .vc-date__btn_weekend.vc-date__btn_next {
|
|
250
|
+
color: #d1d5db !important;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
/* Holiday styling override (if any holidays are marked) */
|
|
254
|
+
.zg-date-range-picker .vc-date__btn_holiday {
|
|
255
|
+
color: var(--drp-text) !important;
|
|
256
|
+
background: transparent !important;
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
/* Holiday that is selected */
|
|
260
|
+
.zg-date-range-picker .vc-date__btn_holiday.vc-date__btn_selected {
|
|
261
|
+
color: #ffffff !important;
|
|
262
|
+
background: var(--drp-bg-selected) !important;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
/* ============================================
|
|
266
|
+
Vanilla Calendar Wrapper Overrides
|
|
267
|
+
(for single date picker - VanillaDateEditor)
|
|
268
|
+
============================================ */
|
|
269
|
+
|
|
270
|
+
/* Weekend day headers for single date picker */
|
|
271
|
+
.vanilla-calendar-wrapper .vc-week__day_weekend,
|
|
272
|
+
.vanilla-calendar-wrapper .vc-week__day:nth-child(6),
|
|
273
|
+
.vanilla-calendar-wrapper .vc-week__day:nth-child(7) {
|
|
274
|
+
color: #9ca3af !important; /* Neutral gray */
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
/* Weekend date buttons for single date picker */
|
|
278
|
+
.vanilla-calendar-wrapper .vc-date__btn_weekend {
|
|
279
|
+
color: var(--zg-calendar-text, #374151) !important;
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
/* Selected weekend date for single date picker */
|
|
283
|
+
.vanilla-calendar-wrapper .vc-date__btn_weekend.vc-date__btn_selected {
|
|
284
|
+
color: #ffffff !important;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
/* Weekend dates from other months */
|
|
288
|
+
.vanilla-calendar-wrapper .vc-date__btn_weekend.vc-date__btn_prev,
|
|
289
|
+
.vanilla-calendar-wrapper .vc-date__btn_weekend.vc-date__btn_next {
|
|
290
|
+
color: #d1d5db !important;
|
|
291
|
+
}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cell overflow modes (clip / ellipsis / wrap / scroll / expand) and chip cell
|
|
3
|
+
* overflow behaviour, including scrollbar styling.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
/* Clip mode (default) - already applied in .zg-cell base styles */
|
|
7
|
+
.zg-cell-overflow-clip {
|
|
8
|
+
overflow: hidden;
|
|
9
|
+
white-space: nowrap;
|
|
10
|
+
text-overflow: clip;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/* Ellipsis mode - already applied in .zg-cell base styles */
|
|
14
|
+
.zg-cell-overflow-ellipsis {
|
|
15
|
+
overflow: hidden;
|
|
16
|
+
white-space: nowrap;
|
|
17
|
+
text-overflow: ellipsis;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/* Wrap mode (requires autoHeight for proper row expansion) */
|
|
21
|
+
.zg-cell-overflow-wrap {
|
|
22
|
+
white-space: normal !important;
|
|
23
|
+
word-wrap: break-word;
|
|
24
|
+
overflow-wrap: break-word;
|
|
25
|
+
overflow: visible !important;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/* Scroll mode (scrolls within fixed cell height) */
|
|
29
|
+
.zg-cell-overflow-scroll {
|
|
30
|
+
overflow-y: auto;
|
|
31
|
+
overflow-x: hidden;
|
|
32
|
+
white-space: normal;
|
|
33
|
+
word-wrap: break-word;
|
|
34
|
+
scroll-behavior: smooth;
|
|
35
|
+
scrollbar-width: thin;
|
|
36
|
+
contain: layout style; /* Remove paint containment so scrollbar can render */
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.zg-cell-overflow-scroll::-webkit-scrollbar {
|
|
40
|
+
width: 6px;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.zg-cell-overflow-scroll::-webkit-scrollbar-track {
|
|
44
|
+
background: rgba(0, 0, 0, 0.05);
|
|
45
|
+
border-radius: 3px;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.zg-cell-overflow-scroll::-webkit-scrollbar-thumb {
|
|
49
|
+
background: rgba(0, 0, 0, 0.2);
|
|
50
|
+
border-radius: 3px;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.zg-cell-overflow-scroll::-webkit-scrollbar-thumb:hover {
|
|
54
|
+
background: rgba(0, 0, 0, 0.3);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/* Expand mode (alias for wrap, requires autoHeight) */
|
|
58
|
+
.zg-cell-overflow-expand {
|
|
59
|
+
white-space: normal !important;
|
|
60
|
+
word-wrap: break-word;
|
|
61
|
+
overflow-wrap: break-word;
|
|
62
|
+
overflow: visible !important;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/* Chip cell overrides - allow proper overflow handling */
|
|
66
|
+
.zg-cell-chip {
|
|
67
|
+
white-space: nowrap;
|
|
68
|
+
overflow: hidden; /* Clip chips to cell bounds by default */
|
|
69
|
+
contain: layout style; /* Relax paint containment for chip rendering */
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/* When chip cell has scroll mode, enable horizontal scrolling */
|
|
73
|
+
.zg-cell-overflow-scroll.zg-cell-chip {
|
|
74
|
+
overflow-x: auto; /* Allow horizontal scrolling */
|
|
75
|
+
overflow-y: hidden; /* Prevent vertical overflow */
|
|
76
|
+
display: flex; /* Enable flexbox for proper containment */
|
|
77
|
+
align-items: center; /* Vertically center chips */
|
|
78
|
+
white-space: nowrap; /* Keep chips in single line */
|
|
79
|
+
scrollbar-width: thin; /* Thin scrollbar for Firefox */
|
|
80
|
+
contain: layout style; /* Remove paint containment so scrollbar can render */
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.zg-cell-overflow-scroll.zg-cell-chip::-webkit-scrollbar {
|
|
84
|
+
height: 6px; /* Horizontal scrollbar height */
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.zg-cell-overflow-scroll.zg-cell-chip::-webkit-scrollbar-track {
|
|
88
|
+
background: rgba(0, 0, 0, 0.05);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.zg-cell-overflow-scroll.zg-cell-chip::-webkit-scrollbar-thumb {
|
|
92
|
+
background: rgba(0, 0, 0, 0.2);
|
|
93
|
+
border-radius: 3px;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.zg-cell-overflow-scroll.zg-cell-chip::-webkit-scrollbar-thumb:hover {
|
|
97
|
+
background: rgba(0, 0, 0, 0.3);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/* Chip renderer */
|
|
101
|
+
.zg-chip-container {
|
|
102
|
+
display: flex;
|
|
103
|
+
align-items: center;
|
|
104
|
+
gap: 4px;
|
|
105
|
+
max-width: 100%; /* Constrain to cell width */
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/* Chip container overflow modes */
|
|
109
|
+
.zg-chip-container--wrap {
|
|
110
|
+
flex-wrap: wrap;
|
|
111
|
+
min-height: 100%; /* Allow row to expand */
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.zg-chip-container--scroll {
|
|
115
|
+
flex-wrap: nowrap;
|
|
116
|
+
overflow-x: auto;
|
|
117
|
+
overflow-y: hidden;
|
|
118
|
+
max-height: 100%;
|
|
119
|
+
scrollbar-width: none; /* Firefox */
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
.zg-chip-container--scroll::-webkit-scrollbar {
|
|
123
|
+
display: none; /* Chrome/Safari */
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.zg-chip-container--collapse {
|
|
127
|
+
flex-wrap: nowrap;
|
|
128
|
+
overflow: hidden;
|
|
129
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cell renderers — number, image, advanced (icon + text), badge, button and checkbox.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
/* Number renderer */
|
|
6
|
+
.zg-cell-number {
|
|
7
|
+
/* Right-align under the flex .zg-cell; text-align alone is a no-op on a flex container */
|
|
8
|
+
justify-content: flex-end;
|
|
9
|
+
text-align: right;
|
|
10
|
+
font-variant-numeric: tabular-nums;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.zg-cell-negative {
|
|
14
|
+
color: var(--zg-text-negative, #d32f2f);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/* Image renderer */
|
|
18
|
+
.zg-cell-image {
|
|
19
|
+
display: flex;
|
|
20
|
+
align-items: center;
|
|
21
|
+
justify-content: center;
|
|
22
|
+
padding: 2px;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.zg-cell-image__img {
|
|
26
|
+
max-width: 100%;
|
|
27
|
+
max-height: 100%;
|
|
28
|
+
object-fit: contain;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/* Advanced cell renderer */
|
|
32
|
+
.zg-cell-advanced {
|
|
33
|
+
overflow: hidden;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.zg-cell-advanced__icon {
|
|
37
|
+
flex-shrink: 0;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.zg-cell-advanced__text {
|
|
41
|
+
flex: 1;
|
|
42
|
+
overflow: hidden;
|
|
43
|
+
text-overflow: ellipsis;
|
|
44
|
+
white-space: nowrap;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.zg-badge {
|
|
48
|
+
display: inline-flex;
|
|
49
|
+
align-items: center;
|
|
50
|
+
justify-content: center;
|
|
51
|
+
padding: 2px 6px;
|
|
52
|
+
border-radius: 4px;
|
|
53
|
+
font-size: 0.75em;
|
|
54
|
+
font-weight: 500;
|
|
55
|
+
background: var(--zg-badge-bg, #e0e0e0);
|
|
56
|
+
color: var(--zg-badge-color, #333);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/* Button Renderer Styles */
|
|
60
|
+
.zg-cell.zg-cell-button {
|
|
61
|
+
display: flex;
|
|
62
|
+
align-items: center;
|
|
63
|
+
justify-content: center;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.zg-button {
|
|
67
|
+
line-height: 1;
|
|
68
|
+
text-align: center;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/* Checkbox Renderer Styles */
|
|
72
|
+
.zg-cell.zg-cell-checkbox-container {
|
|
73
|
+
display: flex;
|
|
74
|
+
align-items: center;
|
|
75
|
+
justify-content: center;
|
|
76
|
+
padding: 0 !important; /* Override default cell padding */
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.zg-checkbox-wrapper {
|
|
80
|
+
display: flex;
|
|
81
|
+
align-items: center;
|
|
82
|
+
justify-content: center;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.zg-cell-checkbox {
|
|
86
|
+
cursor: pointer;
|
|
87
|
+
width: 16px;
|
|
88
|
+
height: 16px;
|
|
89
|
+
margin: 0;
|
|
90
|
+
}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Date picker renderer — trigger button, text/icon, popup and cell state classes.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
/* Container */
|
|
6
|
+
.zg-date-picker-wrapper {
|
|
7
|
+
display: flex;
|
|
8
|
+
width: 100%;
|
|
9
|
+
height: 100%;
|
|
10
|
+
align-items: center;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/* Trigger button */
|
|
14
|
+
.zg-date-picker-trigger {
|
|
15
|
+
display: flex;
|
|
16
|
+
align-items: center;
|
|
17
|
+
justify-content: space-between;
|
|
18
|
+
width: 100%;
|
|
19
|
+
padding: 6px 8px;
|
|
20
|
+
border: 1px solid var(--zg-border-color, #d0d0d0);
|
|
21
|
+
border-radius: 4px;
|
|
22
|
+
background: var(--zg-bg-primary, #ffffff);
|
|
23
|
+
color: var(--zg-text-color, #333333);
|
|
24
|
+
font-family: inherit;
|
|
25
|
+
font-size: inherit;
|
|
26
|
+
cursor: pointer;
|
|
27
|
+
text-align: left;
|
|
28
|
+
transition: border-color 0.15s ease, box-shadow 0.15s ease;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.zg-date-picker-trigger:hover:not(:disabled) {
|
|
32
|
+
border-color: var(--zg-focus-ring, #1976d2);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.zg-date-picker-trigger:focus {
|
|
36
|
+
outline: none;
|
|
37
|
+
border-color: var(--zg-focus-ring, #1976d2);
|
|
38
|
+
box-shadow: 0 0 0 2px rgba(25, 118, 210, 0.2);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/* Editing state - use CSS variable, not hardcoded green */
|
|
42
|
+
.zg-cell-editing .zg-date-picker-trigger {
|
|
43
|
+
outline: 2px solid var(--zg-border-editing, #4caf50);
|
|
44
|
+
outline-offset: -1px;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/* Open state */
|
|
48
|
+
.zg-date-picker-open .zg-date-picker-trigger {
|
|
49
|
+
border-color: var(--zg-focus-ring, #1976d2);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/* Disabled state */
|
|
53
|
+
.zg-date-picker-trigger:disabled,
|
|
54
|
+
.zg-date-picker-disabled {
|
|
55
|
+
background: var(--zg-hover-bg, #f5f5f5);
|
|
56
|
+
color: var(--zg-text-color, #999999);
|
|
57
|
+
opacity: 0.6;
|
|
58
|
+
cursor: not-allowed;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/* Text display */
|
|
62
|
+
.zg-date-picker-text {
|
|
63
|
+
flex: 1;
|
|
64
|
+
overflow: hidden;
|
|
65
|
+
text-overflow: ellipsis;
|
|
66
|
+
white-space: nowrap;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/* Empty placeholder */
|
|
70
|
+
.zg-date-picker-empty .zg-date-picker-text {
|
|
71
|
+
color: var(--zg-text-color, #999999);
|
|
72
|
+
opacity: 0.6;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/* Calendar icon */
|
|
76
|
+
.zg-date-picker-icon {
|
|
77
|
+
flex-shrink: 0;
|
|
78
|
+
margin-left: 8px;
|
|
79
|
+
color: var(--zg-text-color, #666666);
|
|
80
|
+
opacity: 0.7;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.zg-date-picker-icon svg {
|
|
84
|
+
display: block;
|
|
85
|
+
width: 16px;
|
|
86
|
+
height: 16px;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/* Popup container */
|
|
90
|
+
.zg-date-picker-popup {
|
|
91
|
+
position: fixed;
|
|
92
|
+
z-index: 10003;
|
|
93
|
+
background: var(--zg-calendar-bg, #ffffff);
|
|
94
|
+
border: 1px solid var(--zg-calendar-border, #e0e0e0);
|
|
95
|
+
border-radius: var(--zg-calendar-radius, 8px);
|
|
96
|
+
box-shadow: var(--zg-shadow-lg, 0 4px 20px rgba(0, 0, 0, 0.15));
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/* Calendar wrapper */
|
|
100
|
+
.zg-date-picker-calendar-wrapper {
|
|
101
|
+
padding: 4px;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/* Dark theme adjustments */
|
|
105
|
+
[data-theme="dark"] .zg-date-picker-trigger,
|
|
106
|
+
.zg-theme-dark .zg-date-picker-trigger {
|
|
107
|
+
background: var(--zg-bg-primary, #1e1e1e);
|
|
108
|
+
border-color: var(--zg-border-color, #444444);
|
|
109
|
+
color: var(--zg-text-color, #e0e0e0);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
[data-theme="dark"] .zg-date-picker-popup,
|
|
113
|
+
.zg-theme-dark .zg-date-picker-popup {
|
|
114
|
+
background: var(--zg-calendar-bg, #2d2d2d);
|
|
115
|
+
border-color: var(--zg-calendar-border, #444444);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/* Cell state classes */
|
|
119
|
+
.zg-cell-date-picker {
|
|
120
|
+
/* Cell containing date picker */
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
.zg-date-picker-has-value .zg-date-picker-text {
|
|
124
|
+
font-weight: 400;
|
|
125
|
+
}
|