react-restyle-components 0.4.9 → 0.4.10
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/lib/src/core-components/src/components/AutoComplete/auto-complete-filter-single-select-multiple-fields-display/auto-complete-filter-single-select-multiple-fields-display.component.d.ts.map +1 -1
- package/lib/src/core-components/src/components/AutoComplete/auto-complete-filter-single-select-multiple-fields-display/auto-complete-filter-single-select-multiple-fields-display.component.js +250 -32
- package/lib/src/core-components/src/components/Badge/Badge.d.ts +3 -3
- package/lib/src/core-components/src/tc.global.css +2 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-complete-filter-single-select-multiple-fields-display.component.d.ts","sourceRoot":"","sources":["../../../../../../../src/core-components/src/components/AutoComplete/auto-complete-filter-single-select-multiple-fields-display/auto-complete-filter-single-select-multiple-fields-display.component.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auto-complete-filter-single-select-multiple-fields-display.component.d.ts","sourceRoot":"","sources":["../../../../../../../src/core-components/src/components/AutoComplete/auto-complete-filter-single-select-multiple-fields-display/auto-complete-filter-single-select-multiple-fields-display.component.tsx"],"names":[],"mappings":"AAsIA,UAAU,qDAAqD;IAC7D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,GAAG,CAAC;IACV,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IAC/B,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC;IAC9B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC;CAC7B;AAED,eAAO,MAAM,gDAAgD,+HAa1D,qDAAqD,4CAsWvD,CAAC"}
|
|
@@ -1,21 +1,136 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
/* eslint-disable */
|
|
3
|
-
import { useState, useEffect, useRef } from 'react';
|
|
3
|
+
import { useState, useEffect, useRef, useCallback } from 'react';
|
|
4
4
|
import { Icon } from '../../Icon/Icon';
|
|
5
5
|
import s from '../../../tc.module.css';
|
|
6
6
|
import { cn } from '../../../utils';
|
|
7
7
|
import { debounce } from '@techabl/core-utils';
|
|
8
|
+
// Inline styles for animations (CSS-in-JS approach for portability)
|
|
9
|
+
const animationStyles = {
|
|
10
|
+
dropdown: {
|
|
11
|
+
base: {
|
|
12
|
+
transformOrigin: 'top center',
|
|
13
|
+
transition: 'opacity 200ms ease-out, transform 200ms ease-out',
|
|
14
|
+
},
|
|
15
|
+
entering: {
|
|
16
|
+
opacity: 1,
|
|
17
|
+
transform: 'scaleY(1) translateY(0)',
|
|
18
|
+
},
|
|
19
|
+
exiting: {
|
|
20
|
+
opacity: 0,
|
|
21
|
+
transform: 'scaleY(0.95) translateY(-8px)',
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
listItem: {
|
|
25
|
+
base: {
|
|
26
|
+
transition: 'opacity 180ms ease-out, transform 180ms ease-out, background-color 150ms ease',
|
|
27
|
+
cursor: 'pointer',
|
|
28
|
+
},
|
|
29
|
+
visible: {
|
|
30
|
+
opacity: 1,
|
|
31
|
+
transform: 'translateX(0)',
|
|
32
|
+
},
|
|
33
|
+
hidden: {
|
|
34
|
+
opacity: 0,
|
|
35
|
+
transform: 'translateX(-12px)',
|
|
36
|
+
},
|
|
37
|
+
hover: {
|
|
38
|
+
backgroundColor: 'rgba(59, 130, 246, 0.1)',
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
skeleton: {
|
|
42
|
+
base: {
|
|
43
|
+
background: 'linear-gradient(90deg, #e5e7eb 25%, #f3f4f6 50%, #e5e7eb 75%)',
|
|
44
|
+
backgroundSize: '200% 100%',
|
|
45
|
+
animation: 'shimmer 1.5s infinite',
|
|
46
|
+
borderRadius: '4px',
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
spinner: {
|
|
50
|
+
animation: 'spin 0.8s linear infinite',
|
|
51
|
+
border: '2px solid #e5e7eb',
|
|
52
|
+
borderTopColor: '#3b82f6',
|
|
53
|
+
borderRadius: '50%',
|
|
54
|
+
width: '16px',
|
|
55
|
+
height: '16px',
|
|
56
|
+
},
|
|
57
|
+
fadeContent: {
|
|
58
|
+
base: {
|
|
59
|
+
transition: 'opacity 200ms ease-out',
|
|
60
|
+
},
|
|
61
|
+
loading: {
|
|
62
|
+
opacity: 0.5,
|
|
63
|
+
},
|
|
64
|
+
ready: {
|
|
65
|
+
opacity: 1,
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
// Inject keyframes for shimmer animation
|
|
70
|
+
const injectKeyframes = () => {
|
|
71
|
+
const styleId = 'autocomplete-animations';
|
|
72
|
+
if (typeof document !== 'undefined' && !document.getElementById(styleId)) {
|
|
73
|
+
const style = document.createElement('style');
|
|
74
|
+
style.id = styleId;
|
|
75
|
+
style.textContent = `
|
|
76
|
+
@keyframes shimmer {
|
|
77
|
+
0% { background-position: 200% 0; }
|
|
78
|
+
100% { background-position: -200% 0; }
|
|
79
|
+
}
|
|
80
|
+
@keyframes spin {
|
|
81
|
+
from { transform: rotate(0deg); }
|
|
82
|
+
to { transform: rotate(360deg); }
|
|
83
|
+
}
|
|
84
|
+
@keyframes fadeInUp {
|
|
85
|
+
from { opacity: 0; transform: translateY(8px); }
|
|
86
|
+
to { opacity: 1; transform: translateY(0); }
|
|
87
|
+
}
|
|
88
|
+
@keyframes pulse {
|
|
89
|
+
0%, 100% { opacity: 1; }
|
|
90
|
+
50% { opacity: 0.5; }
|
|
91
|
+
}
|
|
92
|
+
`;
|
|
93
|
+
document.head.appendChild(style);
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
// Skeleton loader component
|
|
97
|
+
const SkeletonItem = ({ delay = 0 }) => (_jsxs("div", { style: {
|
|
98
|
+
display: 'flex',
|
|
99
|
+
alignItems: 'center',
|
|
100
|
+
padding: '8px 8px',
|
|
101
|
+
gap: '12px',
|
|
102
|
+
animation: `fadeInUp 300ms ease-out ${delay}ms both`,
|
|
103
|
+
}, children: [_jsx("div", { style: {
|
|
104
|
+
...animationStyles.skeleton.base,
|
|
105
|
+
width: '60px',
|
|
106
|
+
height: '14px',
|
|
107
|
+
} }), _jsx("div", { style: {
|
|
108
|
+
...animationStyles.skeleton.base,
|
|
109
|
+
flex: 1,
|
|
110
|
+
height: '14px',
|
|
111
|
+
maxWidth: '180px',
|
|
112
|
+
} })] }));
|
|
113
|
+
// Loading spinner component
|
|
114
|
+
const LoadingSpinner = () => (_jsx("div", { style: animationStyles.spinner, role: "status", "aria-label": "Loading" }));
|
|
8
115
|
export const AutoCompleteFilterSingleSelectMultiFieldsDisplay = ({ disable = false, loader = false, displayValue = '', placeholder = 'Search...', data, hasError = false, className, posstion = 'absolute', keyboard = 'text', onFilter, onSelect, onBlur, }) => {
|
|
9
116
|
const [value, setValue] = useState(displayValue);
|
|
10
117
|
const [options, setOptions] = useState(data.list);
|
|
11
118
|
const [isListOpen, setIsListOpen] = useState(false);
|
|
12
119
|
const [filterValue, setFilterValue] = useState();
|
|
120
|
+
const [isAnimating, setIsAnimating] = useState(false);
|
|
121
|
+
const [visibleItems, setVisibleItems] = useState(new Set());
|
|
122
|
+
const [hoveredIndex, setHoveredIndex] = useState(null);
|
|
123
|
+
const [isFiltering, setIsFiltering] = useState(false);
|
|
124
|
+
const [showDropdown, setShowDropdown] = useState(false);
|
|
125
|
+
// Inject animation keyframes on mount
|
|
126
|
+
useEffect(() => {
|
|
127
|
+
injectKeyframes();
|
|
128
|
+
}, []);
|
|
13
129
|
const useOutsideAlerter = (ref) => {
|
|
14
130
|
useEffect(() => {
|
|
15
131
|
function handleClickOutside(event) {
|
|
16
132
|
if (ref.current && !ref.current.contains(event.target) && isListOpen) {
|
|
17
|
-
|
|
18
|
-
//setValue('');
|
|
133
|
+
handleCloseDropdown();
|
|
19
134
|
}
|
|
20
135
|
}
|
|
21
136
|
document.addEventListener('mousedown', handleClickOutside);
|
|
@@ -27,8 +142,55 @@ export const AutoCompleteFilterSingleSelectMultiFieldsDisplay = ({ disable = fal
|
|
|
27
142
|
const inputRef = useRef(null);
|
|
28
143
|
const wrapperRef = useRef(null);
|
|
29
144
|
useOutsideAlerter(wrapperRef);
|
|
145
|
+
// Smooth dropdown open/close with animation
|
|
146
|
+
const handleOpenDropdown = useCallback(() => {
|
|
147
|
+
setIsListOpen(true);
|
|
148
|
+
// Small delay to trigger CSS transition
|
|
149
|
+
requestAnimationFrame(() => {
|
|
150
|
+
setShowDropdown(true);
|
|
151
|
+
});
|
|
152
|
+
}, []);
|
|
153
|
+
const handleCloseDropdown = useCallback(() => {
|
|
154
|
+
setShowDropdown(false);
|
|
155
|
+
// Wait for animation to complete before hiding
|
|
156
|
+
setTimeout(() => {
|
|
157
|
+
setIsListOpen(false);
|
|
158
|
+
}, 200);
|
|
159
|
+
}, []);
|
|
160
|
+
// Staggered animation for list items
|
|
161
|
+
useEffect(() => {
|
|
162
|
+
if (isListOpen && options.length > 0 && !loader) {
|
|
163
|
+
setVisibleItems(new Set());
|
|
164
|
+
// Stagger the appearance of items
|
|
165
|
+
options.forEach((_, index) => {
|
|
166
|
+
setTimeout(() => {
|
|
167
|
+
setVisibleItems((prev) => new Set([...prev, index]));
|
|
168
|
+
}, Math.min(index * 30, 300)); // Cap at 300ms total
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
}, [isListOpen, options, loader]);
|
|
172
|
+
// Smooth transition when data changes
|
|
30
173
|
useEffect(() => {
|
|
31
|
-
|
|
174
|
+
if (isFiltering) {
|
|
175
|
+
// Brief fade out during filter
|
|
176
|
+
setIsAnimating(true);
|
|
177
|
+
const timer = setTimeout(() => {
|
|
178
|
+
setOptions(data.list);
|
|
179
|
+
setIsAnimating(false);
|
|
180
|
+
setIsFiltering(false);
|
|
181
|
+
// Re-trigger staggered animation
|
|
182
|
+
setVisibleItems(new Set());
|
|
183
|
+
data.list.forEach((_, index) => {
|
|
184
|
+
setTimeout(() => {
|
|
185
|
+
setVisibleItems((prev) => new Set([...prev, index]));
|
|
186
|
+
}, Math.min(index * 25, 200));
|
|
187
|
+
});
|
|
188
|
+
}, 150);
|
|
189
|
+
return () => clearTimeout(timer);
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
setOptions(data.list);
|
|
193
|
+
}
|
|
32
194
|
}, [data]);
|
|
33
195
|
useEffect(() => {
|
|
34
196
|
setValue(displayValue);
|
|
@@ -37,8 +199,22 @@ export const AutoCompleteFilterSingleSelectMultiFieldsDisplay = ({ disable = fal
|
|
|
37
199
|
const search = e.target.value;
|
|
38
200
|
setValue(search);
|
|
39
201
|
setFilterValue(search);
|
|
202
|
+
setIsFiltering(true);
|
|
40
203
|
const filteredOptions = data.list.filter((item) => data.displayKey.some((key) => item[key]?.toString().toLowerCase().includes(search.toLowerCase())));
|
|
41
|
-
|
|
204
|
+
// Animate transition
|
|
205
|
+
setIsAnimating(true);
|
|
206
|
+
setTimeout(() => {
|
|
207
|
+
setOptions(filteredOptions);
|
|
208
|
+
setIsAnimating(false);
|
|
209
|
+
setIsFiltering(false);
|
|
210
|
+
// Re-animate visible items
|
|
211
|
+
setVisibleItems(new Set());
|
|
212
|
+
filteredOptions.forEach((_, index) => {
|
|
213
|
+
setTimeout(() => {
|
|
214
|
+
setVisibleItems((prev) => new Set([...prev, index]));
|
|
215
|
+
}, Math.min(index * 25, 200));
|
|
216
|
+
});
|
|
217
|
+
}, 100);
|
|
42
218
|
debounce(() => {
|
|
43
219
|
onFilter && onFilter(search);
|
|
44
220
|
});
|
|
@@ -58,7 +234,7 @@ export const AutoCompleteFilterSingleSelectMultiFieldsDisplay = ({ disable = fal
|
|
|
58
234
|
const selectedItem = options.find((item) => item.labId === Number(value));
|
|
59
235
|
if (selectedItem) {
|
|
60
236
|
setValue(data.displayKey.map((key) => `${selectedItem[key]}`).join(' - '));
|
|
61
|
-
|
|
237
|
+
handleCloseDropdown();
|
|
62
238
|
onSelect && onSelect(selectedItem);
|
|
63
239
|
}
|
|
64
240
|
}
|
|
@@ -67,38 +243,80 @@ export const AutoCompleteFilterSingleSelectMultiFieldsDisplay = ({ disable = fal
|
|
|
67
243
|
const calculateMaxHeight = () => {
|
|
68
244
|
if (inputRef.current) {
|
|
69
245
|
const inputRect = inputRef.current.getBoundingClientRect();
|
|
70
|
-
const availableHeight = window.innerHeight - inputRect.bottom - 20;
|
|
246
|
+
const availableHeight = window.innerHeight - inputRect.bottom - 20;
|
|
71
247
|
return availableHeight;
|
|
72
248
|
}
|
|
73
249
|
return 'calc(100vh - 140px)';
|
|
74
250
|
};
|
|
75
|
-
|
|
251
|
+
const handleSelectItem = useCallback((item) => {
|
|
252
|
+
setValue(data.displayKey
|
|
253
|
+
.map((key) => item[key])
|
|
254
|
+
.filter((value) => value !== null && value !== undefined)
|
|
255
|
+
.join(' - '));
|
|
256
|
+
handleCloseDropdown();
|
|
257
|
+
onSelect && onSelect(item);
|
|
258
|
+
}, [data.displayKey, onSelect, handleCloseDropdown]);
|
|
259
|
+
// Show loading state
|
|
260
|
+
const isLoading = loader || isFiltering;
|
|
261
|
+
return (_jsx(_Fragment, { children: _jsxs("div", { ref: wrapperRef, className: cn(s['w-full'], s['relative']), children: [_jsxs("div", { className: cn(s['flex'], s['p-2'], s['leading-4'], s['focus:outline-none'], s['focus:ring'], s['w-full'], s['shadow-sm'], s['sm:text-base'], s['border'], s['rounded-md'], s['transition-all'], s['duration-200'], {
|
|
76
262
|
[s['border-red']]: hasError,
|
|
77
263
|
[s['border-gray-300']]: !hasError,
|
|
78
264
|
[s['dark:text-black']]: true,
|
|
79
|
-
}),
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
265
|
+
}), style: {
|
|
266
|
+
transition: 'border-color 200ms ease, box-shadow 200ms ease',
|
|
267
|
+
}, children: [_jsx("input", { ref: inputRef, placeholder: placeholder, type: keyboard, value: value, className: cn(s['w-full'], s['focus:outline-none'], s['bg-none'], s['dark:text-black'], className), onKeyUp: onKeyUp, onChange: onChange, onClick: handleOpenDropdown, disabled: disable, onMouseDown: () => setValue(''), onBlur: (e) => onBlur && onBlur(e), onKeyDown: onKeyDown }), _jsxs("div", { style: {
|
|
268
|
+
display: 'flex',
|
|
269
|
+
alignItems: 'center',
|
|
270
|
+
gap: '8px',
|
|
271
|
+
}, children: [isLoading && _jsx(LoadingSpinner, {}), _jsx("div", { style: {
|
|
272
|
+
transition: 'transform 200ms ease',
|
|
273
|
+
transform: isListOpen ? 'rotate(180deg)' : 'rotate(0deg)',
|
|
274
|
+
}, children: _jsx(Icon, { nameIcon: "FaChevronDown", propsIcon: {
|
|
275
|
+
size: 16,
|
|
276
|
+
} }) })] })] }), isListOpen && (_jsx("div", { className: cn(s['absolute'], s['w-full'], s['bg-white'], s['rounded-md'], s['shadow-lg'], s['overflow-hidden']), style: {
|
|
277
|
+
...animationStyles.dropdown.base,
|
|
278
|
+
...(showDropdown
|
|
279
|
+
? animationStyles.dropdown.entering
|
|
280
|
+
: animationStyles.dropdown.exiting),
|
|
84
281
|
zIndex: 500,
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
282
|
+
marginTop: '4px',
|
|
283
|
+
border: '1px solid #e5e7eb',
|
|
284
|
+
}, children: _jsx("div", { className: cn(s['overflow-y-auto'], s['p-1']), style: {
|
|
285
|
+
maxHeight: `${calculateMaxHeight()}px`,
|
|
286
|
+
...animationStyles.fadeContent.base,
|
|
287
|
+
...(isAnimating
|
|
288
|
+
? animationStyles.fadeContent.loading
|
|
289
|
+
: animationStyles.fadeContent.ready),
|
|
290
|
+
}, children: loader ? (
|
|
291
|
+
// Skeleton loading state
|
|
292
|
+
_jsx("div", { style: { padding: '4px 0' }, children: [0, 1, 2, 3, 4].map((i) => (_jsx(SkeletonItem, { delay: i * 50 }, i))) })) : options.length > 0 ? (_jsx("ul", { style: { listStyle: 'none', margin: 0, padding: 0 }, children: options.map((item, index) => (_jsx("li", { className: cn(s['flex'], s['items-center']), onClick: () => handleSelectItem(item), onMouseEnter: () => setHoveredIndex(index), onMouseLeave: () => setHoveredIndex(null), style: {
|
|
293
|
+
...animationStyles.listItem.base,
|
|
294
|
+
...(visibleItems.has(index)
|
|
295
|
+
? animationStyles.listItem.visible
|
|
296
|
+
: animationStyles.listItem.hidden),
|
|
297
|
+
...(hoveredIndex === index
|
|
298
|
+
? animationStyles.listItem.hover
|
|
299
|
+
: {}),
|
|
300
|
+
padding: '10px 12px',
|
|
301
|
+
borderRadius: '6px',
|
|
302
|
+
margin: '2px 0',
|
|
303
|
+
transitionDelay: `${Math.min(index * 20, 150)}ms`,
|
|
304
|
+
}, children: _jsx("label", { className: cn(s['text-gray-700']), style: {
|
|
305
|
+
textOverflow: 'ellipsis',
|
|
306
|
+
minWidth: 0,
|
|
307
|
+
overflow: 'hidden',
|
|
308
|
+
whiteSpace: 'nowrap',
|
|
309
|
+
cursor: 'pointer',
|
|
310
|
+
fontSize: '14px',
|
|
311
|
+
}, title: data.displayKey
|
|
312
|
+
.map((key) => item[key])
|
|
313
|
+
.join(' - '), children: data.displayKey
|
|
314
|
+
.map((key) => item[key])
|
|
315
|
+
.filter((value) => value !== null && value !== undefined)
|
|
316
|
+
.join(' - ') }) }, index))) })) : (_jsx("div", { style: {
|
|
317
|
+
padding: '16px',
|
|
318
|
+
textAlign: 'center',
|
|
319
|
+
color: '#6b7280',
|
|
320
|
+
animation: 'fadeInUp 200ms ease-out',
|
|
321
|
+
}, children: _jsx("span", { children: "No results found" }) })) }) }))] }) }));
|
|
104
322
|
};
|
|
@@ -56,6 +56,8 @@ export declare const Badge: React.NamedExoticComponent<Omit<BadgeProps & React.R
|
|
|
56
56
|
unselectable?: "off" | "on" | undefined;
|
|
57
57
|
inputMode?: "search" | "text" | "none" | "tel" | "url" | "email" | "numeric" | "decimal" | undefined;
|
|
58
58
|
is?: string | undefined;
|
|
59
|
+
exportparts?: string | undefined;
|
|
60
|
+
part?: string | undefined;
|
|
59
61
|
"aria-activedescendant"?: string | undefined;
|
|
60
62
|
"aria-atomic"?: (boolean | "true" | "false") | undefined;
|
|
61
63
|
"aria-autocomplete"?: "inline" | "both" | "none" | "list" | undefined;
|
|
@@ -130,7 +132,7 @@ export declare const Badge: React.NamedExoticComponent<Omit<BadgeProps & React.R
|
|
|
130
132
|
onBlurCapture?: React.FocusEventHandler<HTMLDivElement> | undefined;
|
|
131
133
|
onChange?: React.FormEventHandler<HTMLDivElement> | undefined;
|
|
132
134
|
onChangeCapture?: React.FormEventHandler<HTMLDivElement> | undefined;
|
|
133
|
-
onBeforeInput?: React.
|
|
135
|
+
onBeforeInput?: React.InputEventHandler<HTMLDivElement> | undefined;
|
|
134
136
|
onBeforeInputCapture?: React.FormEventHandler<HTMLDivElement> | undefined;
|
|
135
137
|
onInput?: React.FormEventHandler<HTMLDivElement> | undefined;
|
|
136
138
|
onInputCapture?: React.FormEventHandler<HTMLDivElement> | undefined;
|
|
@@ -180,8 +182,6 @@ export declare const Badge: React.NamedExoticComponent<Omit<BadgeProps & React.R
|
|
|
180
182
|
onProgressCapture?: React.ReactEventHandler<HTMLDivElement> | undefined;
|
|
181
183
|
onRateChange?: React.ReactEventHandler<HTMLDivElement> | undefined;
|
|
182
184
|
onRateChangeCapture?: React.ReactEventHandler<HTMLDivElement> | undefined;
|
|
183
|
-
onResize?: React.ReactEventHandler<HTMLDivElement> | undefined;
|
|
184
|
-
onResizeCapture?: React.ReactEventHandler<HTMLDivElement> | undefined;
|
|
185
185
|
onSeeked?: React.ReactEventHandler<HTMLDivElement> | undefined;
|
|
186
186
|
onSeekedCapture?: React.ReactEventHandler<HTMLDivElement> | undefined;
|
|
187
187
|
onSeeking?: React.ReactEventHandler<HTMLDivElement> | undefined;
|
|
@@ -80,5 +80,7 @@
|
|
|
80
80
|
/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/.-translate-x-1\/2,@keyframes pulse{50%{opacity:.5}}.blur,.ring-1,.shadow,.shadow-lg,body{font-family:Arima Regular;font-size:14px}/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/.-translate-x-1\/2,@keyframes pulse{50%{opacity:.5}}
|
|
81
81
|
/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/.-translate-x-1\/2,@keyframes pulse{50%{opacity:.5}}
|
|
82
82
|
/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/.-translate-x-1\/2,@keyframes pulse{50%{opacity:.5}}
|
|
83
|
+
/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/.-translate-x-1\/2,@keyframes pulse{50%{opacity:.5}}
|
|
84
|
+
/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/.-translate-x-1\/2,@keyframes pulse{50%{opacity:.5}}
|
|
83
85
|
/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/.-translate-x-1\/2,@keyframes pulse{50%{opacity:.5}}.dark\:bg-black:is(.dark *),.dark\:border-gray-600:is(.dark *){--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }
|
|
84
86
|
/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/fieldset,legend{padding:0}.container{width:100%}@media (min-width:0px){.container{max-width:0}}@media (min-width:20rem){.container{max-width:20rem}}@media (min-width:23.4375rem){.container{max-width:23.4375rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:90rem){.container{max-width:90rem}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.form-input,.form-input::-webkit-datetime-edit,.form-input::-webkit-datetime-edit-day-field,.form-input::-webkit-datetime-edit-hour-field,.form-input::-webkit-datetime-edit-meridiem-field,.form-input::-webkit-datetime-edit-millisecond-field,.form-input::-webkit-datetime-edit-minute-field,.form-input::-webkit-datetime-edit-month-field,.form-input::-webkit-datetime-edit-second-field,.form-input::placeholder,.form-input:focus,.form-multiselect,.form-multiselect:focus,.form-select,.form-select:focus,table{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}table:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}table tr:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}select:is(.dark *){--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.-my-2{margin-bottom:-.5rem;margin-top:-.5rem}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-1\/2,@keyframes pulse{50%{opacity:.5}}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.25rem*var(--tw-space-x-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-bottom-width:calc(1px*var(--tw-divide-y-reverse));border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)))}.divide-gray-100>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(243 244 246/var(--tw-divide-opacity,1))}.blur,.ring-1,.shadow,.shadow-lg,.shadow-sm,body{font-family:Arima Regular;font-size:14px}.dark\:border-gray-600:is(.dark *),.dark\:bg-black:is(.dark *){--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.dark\:bg-boxdark:is(.dark *){--tw-bg-opacity:1;background-color:rgb(36 48 63/var(--tw-bg-opacity,1))}.dark\:bg-gray-700:is(.dark *){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.dark\:bg-gray-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.dark\:text-black:is(.dark *){--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.dark\:text-gray-100:is(.dark *){--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.dark\:text-gray-200:is(.dark *){--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.dark\:text-gray-300:is(.dark *){--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.dark\:text-gray-400:is(.dark *){--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.dark\:text-gray-500:is(.dark *){--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.dark\:text-red-400:is(.dark *){--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.dark\:text-white:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.dark\:placeholder-gray-400:is(.dark *)::placeholder{--tw-placeholder-opacity:1;color:rgb(156 163 175/var(--tw-placeholder-opacity,1))}.dark\:ring-offset-gray-800:is(.dark *){--tw-ring-offset-color:#1f2937}.dark\:hover\:bg-blue-900:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 58 138/var(--tw-bg-opacity,1))}.dark\:hover\:bg-gray-600:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.dark\:hover\:bg-gray-700:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.dark\:focus\:ring-blue-600:focus:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(37 99 235/var(--tw-ring-opacity,1))}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}@font-face{font-family:ArimaRegular;src:url(library/assets/fonts/arima/arima-regular.ttf)}.container{width:100%}@media (min-width:0px){.container{max-width:0}}@media (min-width:20rem){.container{max-width:20rem}}@media (min-width:23.4375rem){.container{max-width:23.4375rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:90rem){.container{max-width:90rem}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.form-input,.form-multiselect,.form-select,.form-input:focus,.form-multiselect:focus,.form-select:focus,.form-input::placeholder,.form-input::-webkit-datetime-edit,.form-input::-webkit-datetime-edit-day-field,.form-input::-webkit-datetime-edit-hour-field,.form-input::-webkit-datetime-edit-meridiem-field,.form-input::-webkit-datetime-edit-millisecond-field,.form-input::-webkit-datetime-edit-minute-field,.form-input::-webkit-datetime-edit-month-field,.form-input::-webkit-datetime-edit-second-field,table{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}table:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}table tr:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}select:is(.dark *){--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.-my-2{margin-bottom:-.5rem;margin-top:-.5rem}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-1\/2,@keyframes pulse{50%{opacity:.5}}@keyframes spin{to{transform:rotate(1turn)}}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.25rem*var(--tw-space-x-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-bottom-width:calc(1px*var(--tw-divide-y-reverse));border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)))}.divide-gray-100>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(243 244 246/var(--tw-divide-opacity,1))}.shadow,.shadow-lg,.shadow-sm,.ring-1,.blur,body{font-family:Arima Regular;font-size:14px}.menu ul{list-style:none;margin:0;padding:0}.menu li{border-bottom:1px solid #ddd;padding:10px}.menu li:last-child{border-bottom:none}.focus\:ring-0:focus,.dark\:border-gray-600:is(.dark *){--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity,1))}.dark\:bg-black:is(.dark *){--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.dark\:bg-boxdark:is(.dark *){--tw-bg-opacity:1;background-color:rgb(36 48 63/var(--tw-bg-opacity,1))}.dark\:bg-gray-700:is(.dark *){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.dark\:bg-gray-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.dark\:text-black:is(.dark *){--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.dark\:text-gray-100:is(.dark *){--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.dark\:text-gray-200:is(.dark *){--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.dark\:text-gray-300:is(.dark *){--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.dark\:text-gray-400:is(.dark *){--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.dark\:text-gray-500:is(.dark *){--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.dark\:text-red-400:is(.dark *){--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.dark\:text-white:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.dark\:placeholder-gray-400:is(.dark *)::placeholder{--tw-placeholder-opacity:1;color:rgb(156 163 175/var(--tw-placeholder-opacity,1))}.dark\:ring-offset-gray-800:is(.dark *){--tw-ring-offset-color:#1f2937}.dark\:hover\:bg-blue-900:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 58 138/var(--tw-bg-opacity,1))}.dark\:hover\:bg-gray-600:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.dark\:hover\:bg-gray-700:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.dark\:focus\:ring-blue-600:focus:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(37 99 235/var(--tw-ring-opacity,1))}@media (min-width:0px) and (max-width:767px){}
|