@fangxinyan/lumina 0.1.3 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{Cascader-TO2QMSLJ.css → Cascader-DTRTTXC2.css} +1 -4
- package/dist/Cascader.cjs +3 -2
- package/dist/Cascader.js +2 -1
- package/dist/ColorPicker-GP7AQYUU.css +233 -0
- package/dist/ColorPicker.cjs +13 -0
- package/dist/ColorPicker.cjs.map +1 -0
- package/dist/ColorPicker.d.cts +42 -0
- package/dist/ColorPicker.d.ts +42 -0
- package/dist/ColorPicker.js +4 -0
- package/dist/ColorPicker.js.map +1 -0
- package/dist/Popover-MGCMOXYP.css +10 -0
- package/dist/Popover.cjs +3 -2
- package/dist/Popover.js +2 -1
- package/dist/{Select-DDJJBQEL.css → Select-EDG37C37.css} +1 -4
- package/dist/Select.cjs +3 -2
- package/dist/Select.js +2 -1
- package/dist/Slider.cjs +2 -2
- package/dist/Slider.js +1 -1
- package/dist/{Tooltip-RT4BOVTD.css → Tooltip-ST24GY4S.css} +1 -6
- package/dist/Tooltip.cjs +3 -2
- package/dist/Tooltip.js +2 -1
- package/dist/{chunk-RMD6KQ4H.cjs → chunk-3UFU63X7.cjs} +29 -7
- package/dist/chunk-3UFU63X7.cjs.map +1 -0
- package/dist/{chunk-6YVW3VYL.js → chunk-7UJI437T.js} +4 -6
- package/dist/chunk-7UJI437T.js.map +1 -0
- package/dist/{chunk-U6ODMPTI.cjs → chunk-HKAQILD2.cjs} +33 -19
- package/dist/chunk-HKAQILD2.cjs.map +1 -0
- package/dist/{chunk-V2ZUOEXM.cjs → chunk-IBZAGURN.cjs} +4 -6
- package/dist/chunk-IBZAGURN.cjs.map +1 -0
- package/dist/{chunk-ZMDVK2U3.cjs → chunk-KGYLUZOU.cjs} +61 -38
- package/dist/chunk-KGYLUZOU.cjs.map +1 -0
- package/dist/chunk-NE4YEBFH.js +66 -0
- package/dist/chunk-NE4YEBFH.js.map +1 -0
- package/dist/{chunk-XRZ5OKZH.js → chunk-OEHCA5IV.js} +38 -24
- package/dist/chunk-OEHCA5IV.js.map +1 -0
- package/dist/{chunk-T5AH4FCV.js → chunk-OYH6A7IQ.js} +61 -38
- package/dist/chunk-OYH6A7IQ.js.map +1 -0
- package/dist/chunk-QTGDYQOT.cjs +357 -0
- package/dist/chunk-QTGDYQOT.cjs.map +1 -0
- package/dist/chunk-RPD2OIIP.js +335 -0
- package/dist/chunk-RPD2OIIP.js.map +1 -0
- package/dist/chunk-RZ2E3XEU.cjs +131 -0
- package/dist/chunk-RZ2E3XEU.cjs.map +1 -0
- package/dist/{chunk-ZXM247EM.cjs → chunk-TWBJCFEJ.cjs} +38 -24
- package/dist/chunk-TWBJCFEJ.cjs.map +1 -0
- package/dist/chunk-V2DIQ3RH.js +109 -0
- package/dist/chunk-V2DIQ3RH.js.map +1 -0
- package/dist/chunk-WNGG25QX.js +56 -0
- package/dist/chunk-WNGG25QX.js.map +1 -0
- package/dist/index.cjs +31 -25
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +10 -8
- package/dist/index.js.map +1 -1
- package/dist/styles.css +217 -20
- package/package.json +1 -1
- package/dist/Popover-WXEVUYBG.css +0 -15
- package/dist/chunk-6YVW3VYL.js.map +0 -1
- package/dist/chunk-OUJBCNWD.js +0 -52
- package/dist/chunk-OUJBCNWD.js.map +0 -1
- package/dist/chunk-RMD6KQ4H.cjs.map +0 -1
- package/dist/chunk-T5AH4FCV.js.map +0 -1
- package/dist/chunk-U6ODMPTI.cjs.map +0 -1
- package/dist/chunk-V2ZUOEXM.cjs.map +0 -1
- package/dist/chunk-XRZ5OKZH.js.map +0 -1
- package/dist/chunk-Y6FVCCUE.js +0 -34
- package/dist/chunk-Y6FVCCUE.js.map +0 -1
- package/dist/chunk-ZMDVK2U3.cjs.map +0 -1
- package/dist/chunk-ZXM247EM.cjs.map +0 -1
|
@@ -25,10 +25,7 @@
|
|
|
25
25
|
.cascader-trigger.placeholder { color: var(--fg-subtle); }
|
|
26
26
|
.cascader.open .cascader-trigger { box-shadow: var(--neu-in-sm); color: var(--accent-ink); }
|
|
27
27
|
.cascader-panel {
|
|
28
|
-
|
|
29
|
-
top: calc(100% + 8px);
|
|
30
|
-
left: 0;
|
|
31
|
-
z-index: 50;
|
|
28
|
+
z-index: 1000;
|
|
32
29
|
display: flex;
|
|
33
30
|
background: var(--bg);
|
|
34
31
|
border-radius: var(--r-md);
|
package/dist/Cascader.cjs
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkTWBJCFEJ_cjs = require('./chunk-TWBJCFEJ.cjs');
|
|
4
|
+
require('./chunk-RZ2E3XEU.cjs');
|
|
4
5
|
require('./chunk-YVO7XO4W.cjs');
|
|
5
6
|
|
|
6
7
|
|
|
7
8
|
|
|
8
9
|
Object.defineProperty(exports, "Cascader", {
|
|
9
10
|
enumerable: true,
|
|
10
|
-
get: function () { return
|
|
11
|
+
get: function () { return chunkTWBJCFEJ_cjs.Cascader; }
|
|
11
12
|
});
|
|
12
13
|
//# sourceMappingURL=Cascader.cjs.map
|
|
13
14
|
//# sourceMappingURL=Cascader.cjs.map
|
package/dist/Cascader.js
CHANGED
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
/* ============================================================================
|
|
2
|
+
* Container & trigger
|
|
3
|
+
* ========================================================================== */
|
|
4
|
+
|
|
5
|
+
.cp {
|
|
6
|
+
position: relative;
|
|
7
|
+
display: inline-block;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.cp-trigger {
|
|
11
|
+
display: inline-flex;
|
|
12
|
+
align-items: center;
|
|
13
|
+
gap: 8px;
|
|
14
|
+
padding: 4px;
|
|
15
|
+
border: none;
|
|
16
|
+
background: var(--bg);
|
|
17
|
+
box-shadow: var(--neu-flat);
|
|
18
|
+
border-radius: 10px;
|
|
19
|
+
cursor: pointer;
|
|
20
|
+
transition: box-shadow var(--dur) var(--ease);
|
|
21
|
+
color: var(--fg);
|
|
22
|
+
font: inherit;
|
|
23
|
+
}
|
|
24
|
+
.cp-trigger:hover:not(:disabled) {
|
|
25
|
+
box-shadow: var(--neu-out);
|
|
26
|
+
}
|
|
27
|
+
.cp-trigger:disabled {
|
|
28
|
+
opacity: 0.5;
|
|
29
|
+
cursor: not-allowed;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.cp-trigger.sm { padding: 3px; }
|
|
33
|
+
.cp-trigger.lg { padding: 6px; }
|
|
34
|
+
|
|
35
|
+
.cp-custom-trigger {
|
|
36
|
+
padding: 0;
|
|
37
|
+
border: none;
|
|
38
|
+
background: transparent;
|
|
39
|
+
cursor: pointer;
|
|
40
|
+
color: inherit;
|
|
41
|
+
font: inherit;
|
|
42
|
+
}
|
|
43
|
+
.cp-custom-trigger:disabled { opacity: 0.5; cursor: not-allowed; }
|
|
44
|
+
|
|
45
|
+
.cp-swatch {
|
|
46
|
+
display: inline-block;
|
|
47
|
+
width: 22px;
|
|
48
|
+
height: 22px;
|
|
49
|
+
border-radius: 6px;
|
|
50
|
+
box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08), var(--neu-in-sm);
|
|
51
|
+
background-clip: padding-box;
|
|
52
|
+
}
|
|
53
|
+
.cp-trigger.sm .cp-swatch { width: 18px; height: 18px; border-radius: 5px; }
|
|
54
|
+
.cp-trigger.lg .cp-swatch { width: 28px; height: 28px; border-radius: 8px; }
|
|
55
|
+
|
|
56
|
+
.cp-swatch.sm {
|
|
57
|
+
width: 26px;
|
|
58
|
+
height: 26px;
|
|
59
|
+
border-radius: 7px;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.cp-text {
|
|
63
|
+
font-family: var(--font-mono);
|
|
64
|
+
font-size: 12px;
|
|
65
|
+
color: var(--fg-muted);
|
|
66
|
+
padding-right: 6px;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/* ============================================================================
|
|
70
|
+
* Panel
|
|
71
|
+
* ========================================================================== */
|
|
72
|
+
|
|
73
|
+
.cp-panel {
|
|
74
|
+
position: fixed;
|
|
75
|
+
z-index: 1000;
|
|
76
|
+
width: 232px;
|
|
77
|
+
padding: 12px;
|
|
78
|
+
background: var(--bg);
|
|
79
|
+
border-radius: var(--r-md);
|
|
80
|
+
box-shadow: var(--neu-out);
|
|
81
|
+
display: flex;
|
|
82
|
+
flex-direction: column;
|
|
83
|
+
gap: 10px;
|
|
84
|
+
animation: cpFadeIn var(--dur) var(--ease);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
@keyframes cpFadeIn {
|
|
88
|
+
from { opacity: 0; transform: translateY(-2px); }
|
|
89
|
+
to { opacity: 1; transform: translateY(0); }
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/* ============================================================================
|
|
93
|
+
* Saturation / value board
|
|
94
|
+
* ========================================================================== */
|
|
95
|
+
|
|
96
|
+
.cp-board {
|
|
97
|
+
position: relative;
|
|
98
|
+
width: 100%;
|
|
99
|
+
height: 140px;
|
|
100
|
+
border-radius: 8px;
|
|
101
|
+
overflow: hidden;
|
|
102
|
+
box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);
|
|
103
|
+
cursor: crosshair;
|
|
104
|
+
touch-action: none;
|
|
105
|
+
user-select: none;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
.cp-board-white,
|
|
109
|
+
.cp-board-black {
|
|
110
|
+
position: absolute;
|
|
111
|
+
inset: 0;
|
|
112
|
+
pointer-events: none;
|
|
113
|
+
}
|
|
114
|
+
.cp-board-white {
|
|
115
|
+
background: linear-gradient(to right, #fff, rgba(255, 255, 255, 0));
|
|
116
|
+
}
|
|
117
|
+
.cp-board-black {
|
|
118
|
+
background: linear-gradient(to top, #000, rgba(0, 0, 0, 0));
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
.cp-board-thumb {
|
|
122
|
+
position: absolute;
|
|
123
|
+
width: 14px;
|
|
124
|
+
height: 14px;
|
|
125
|
+
border-radius: 50%;
|
|
126
|
+
background: transparent;
|
|
127
|
+
border: 2px solid #fff;
|
|
128
|
+
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.35), 0 1px 3px rgba(0, 0, 0, 0.3);
|
|
129
|
+
transform: translate(-50%, -50%);
|
|
130
|
+
pointer-events: none;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/* ============================================================================
|
|
134
|
+
* Hue slider
|
|
135
|
+
* ========================================================================== */
|
|
136
|
+
|
|
137
|
+
.cp-hue {
|
|
138
|
+
position: relative;
|
|
139
|
+
height: 10px;
|
|
140
|
+
border-radius: 999px;
|
|
141
|
+
background: linear-gradient(
|
|
142
|
+
to right,
|
|
143
|
+
hsl(0, 100%, 50%),
|
|
144
|
+
hsl(60, 100%, 50%),
|
|
145
|
+
hsl(120, 100%, 50%),
|
|
146
|
+
hsl(180, 100%, 50%),
|
|
147
|
+
hsl(240, 100%, 50%),
|
|
148
|
+
hsl(300, 100%, 50%),
|
|
149
|
+
hsl(360, 100%, 50%)
|
|
150
|
+
);
|
|
151
|
+
box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);
|
|
152
|
+
cursor: pointer;
|
|
153
|
+
touch-action: none;
|
|
154
|
+
user-select: none;
|
|
155
|
+
}
|
|
156
|
+
.cp-hue-thumb {
|
|
157
|
+
position: absolute;
|
|
158
|
+
top: 50%;
|
|
159
|
+
width: 14px;
|
|
160
|
+
height: 14px;
|
|
161
|
+
border-radius: 50%;
|
|
162
|
+
background: #fff;
|
|
163
|
+
border: 2px solid #fff;
|
|
164
|
+
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.35), 0 1px 3px rgba(0, 0, 0, 0.3);
|
|
165
|
+
transform: translate(-50%, -50%);
|
|
166
|
+
pointer-events: none;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
/* ============================================================================
|
|
170
|
+
* Input & presets
|
|
171
|
+
* ========================================================================== */
|
|
172
|
+
|
|
173
|
+
.cp-row {
|
|
174
|
+
display: flex;
|
|
175
|
+
align-items: center;
|
|
176
|
+
gap: 8px;
|
|
177
|
+
}
|
|
178
|
+
.cp-input {
|
|
179
|
+
flex: 1;
|
|
180
|
+
height: 28px;
|
|
181
|
+
padding: 0 10px;
|
|
182
|
+
border: none;
|
|
183
|
+
outline: none;
|
|
184
|
+
background: var(--bg-sunken);
|
|
185
|
+
box-shadow: var(--neu-in-sm);
|
|
186
|
+
border-radius: 7px;
|
|
187
|
+
font-family: var(--font-mono);
|
|
188
|
+
font-size: 12px;
|
|
189
|
+
color: var(--fg);
|
|
190
|
+
text-transform: lowercase;
|
|
191
|
+
}
|
|
192
|
+
.cp-input:focus {
|
|
193
|
+
box-shadow: var(--neu-in-sm), 0 0 0 2px var(--accent-soft);
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
.cp-presets {
|
|
197
|
+
display: grid;
|
|
198
|
+
grid-template-columns: repeat(10, 1fr);
|
|
199
|
+
gap: 6px;
|
|
200
|
+
}
|
|
201
|
+
.cp-preset {
|
|
202
|
+
width: 100%;
|
|
203
|
+
aspect-ratio: 1 / 1;
|
|
204
|
+
border-radius: 5px;
|
|
205
|
+
border: none;
|
|
206
|
+
padding: 0;
|
|
207
|
+
cursor: pointer;
|
|
208
|
+
box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08);
|
|
209
|
+
transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
|
|
210
|
+
}
|
|
211
|
+
.cp-preset:hover {
|
|
212
|
+
transform: scale(1.1);
|
|
213
|
+
}
|
|
214
|
+
.cp-preset.active {
|
|
215
|
+
box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08), 0 0 0 2px var(--accent);
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
/* Dark mode tweaks */
|
|
219
|
+
[data-theme="dark"] .cp-swatch {
|
|
220
|
+
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.12), var(--neu-in-sm);
|
|
221
|
+
}
|
|
222
|
+
[data-theme="dark"] .cp-preset {
|
|
223
|
+
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.1);
|
|
224
|
+
}
|
|
225
|
+
[data-theme="dark"] .cp-preset.active {
|
|
226
|
+
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.1), 0 0 0 2px var(--accent);
|
|
227
|
+
}
|
|
228
|
+
[data-theme="dark"] .cp-board {
|
|
229
|
+
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.12);
|
|
230
|
+
}
|
|
231
|
+
[data-theme="dark"] .cp-hue {
|
|
232
|
+
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.12);
|
|
233
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkQTGDYQOT_cjs = require('./chunk-QTGDYQOT.cjs');
|
|
4
|
+
require('./chunk-RZ2E3XEU.cjs');
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
Object.defineProperty(exports, "ColorPicker", {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
get: function () { return chunkQTGDYQOT_cjs.ColorPicker; }
|
|
11
|
+
});
|
|
12
|
+
//# sourceMappingURL=ColorPicker.cjs.map
|
|
13
|
+
//# sourceMappingURL=ColorPicker.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"ColorPicker.cjs"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface ColorPickerProps {
|
|
4
|
+
/** Controlled hex color (e.g. "#ff6b6b"). */
|
|
5
|
+
value?: string;
|
|
6
|
+
/** Initial hex when uncontrolled. */
|
|
7
|
+
defaultValue?: string;
|
|
8
|
+
/** Fires on every pixel of drag / input edit. */
|
|
9
|
+
onChange?: (hex: string) => void;
|
|
10
|
+
/** Fires once when a drag / input / preset commit finishes. */
|
|
11
|
+
onChangeComplete?: (hex: string) => void;
|
|
12
|
+
/** Disable the trigger. */
|
|
13
|
+
disabled?: boolean;
|
|
14
|
+
/** Size of the swatch trigger. */
|
|
15
|
+
size?: "sm" | "md" | "lg";
|
|
16
|
+
/** Where the panel appears relative to the trigger. */
|
|
17
|
+
placement?: "top" | "bottom" | "left" | "right";
|
|
18
|
+
/** Hex preset chips below the panel. */
|
|
19
|
+
presets?: string[];
|
|
20
|
+
/** Show the current hex next to the swatch. */
|
|
21
|
+
showText?: boolean;
|
|
22
|
+
/** Custom trigger; defaults to a swatch chip. */
|
|
23
|
+
children?: React.ReactNode;
|
|
24
|
+
/** Controlled open state. */
|
|
25
|
+
open?: boolean;
|
|
26
|
+
/** Initial open state when uncontrolled. */
|
|
27
|
+
defaultOpen?: boolean;
|
|
28
|
+
/** Called when open state changes. */
|
|
29
|
+
onOpenChange?: (open: boolean) => void;
|
|
30
|
+
className?: string;
|
|
31
|
+
style?: React.CSSProperties;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* `ColorPicker` — neumorphic color picker with HSV panel, hue slider,
|
|
35
|
+
* hex input and optional preset palette.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* <ColorPicker defaultValue="#845ef7" onChange={setColor} />
|
|
39
|
+
*/
|
|
40
|
+
declare const ColorPicker: React.ForwardRefExoticComponent<ColorPickerProps & React.RefAttributes<HTMLButtonElement>>;
|
|
41
|
+
|
|
42
|
+
export { ColorPicker, type ColorPickerProps };
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface ColorPickerProps {
|
|
4
|
+
/** Controlled hex color (e.g. "#ff6b6b"). */
|
|
5
|
+
value?: string;
|
|
6
|
+
/** Initial hex when uncontrolled. */
|
|
7
|
+
defaultValue?: string;
|
|
8
|
+
/** Fires on every pixel of drag / input edit. */
|
|
9
|
+
onChange?: (hex: string) => void;
|
|
10
|
+
/** Fires once when a drag / input / preset commit finishes. */
|
|
11
|
+
onChangeComplete?: (hex: string) => void;
|
|
12
|
+
/** Disable the trigger. */
|
|
13
|
+
disabled?: boolean;
|
|
14
|
+
/** Size of the swatch trigger. */
|
|
15
|
+
size?: "sm" | "md" | "lg";
|
|
16
|
+
/** Where the panel appears relative to the trigger. */
|
|
17
|
+
placement?: "top" | "bottom" | "left" | "right";
|
|
18
|
+
/** Hex preset chips below the panel. */
|
|
19
|
+
presets?: string[];
|
|
20
|
+
/** Show the current hex next to the swatch. */
|
|
21
|
+
showText?: boolean;
|
|
22
|
+
/** Custom trigger; defaults to a swatch chip. */
|
|
23
|
+
children?: React.ReactNode;
|
|
24
|
+
/** Controlled open state. */
|
|
25
|
+
open?: boolean;
|
|
26
|
+
/** Initial open state when uncontrolled. */
|
|
27
|
+
defaultOpen?: boolean;
|
|
28
|
+
/** Called when open state changes. */
|
|
29
|
+
onOpenChange?: (open: boolean) => void;
|
|
30
|
+
className?: string;
|
|
31
|
+
style?: React.CSSProperties;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* `ColorPicker` — neumorphic color picker with HSV panel, hue slider,
|
|
35
|
+
* hex input and optional preset palette.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* <ColorPicker defaultValue="#845ef7" onChange={setColor} />
|
|
39
|
+
*/
|
|
40
|
+
declare const ColorPicker: React.ForwardRefExoticComponent<ColorPickerProps & React.RefAttributes<HTMLButtonElement>>;
|
|
41
|
+
|
|
42
|
+
export { ColorPicker, type ColorPickerProps };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"ColorPicker.js"}
|
package/dist/Popover.cjs
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkHKAQILD2_cjs = require('./chunk-HKAQILD2.cjs');
|
|
4
|
+
require('./chunk-RZ2E3XEU.cjs');
|
|
4
5
|
|
|
5
6
|
|
|
6
7
|
|
|
7
8
|
Object.defineProperty(exports, "Popover", {
|
|
8
9
|
enumerable: true,
|
|
9
|
-
get: function () { return
|
|
10
|
+
get: function () { return chunkHKAQILD2_cjs.Popover; }
|
|
10
11
|
});
|
|
11
12
|
//# sourceMappingURL=Popover.cjs.map
|
|
12
13
|
//# sourceMappingURL=Popover.cjs.map
|
package/dist/Popover.js
CHANGED
|
@@ -218,15 +218,12 @@
|
|
|
218
218
|
}
|
|
219
219
|
|
|
220
220
|
.menu {
|
|
221
|
-
position: absolute;
|
|
222
|
-
top: calc(100% + 8px);
|
|
223
|
-
left: 0; right: 0;
|
|
224
221
|
background: var(--bg);
|
|
225
222
|
border-radius: var(--r-md);
|
|
226
223
|
box-shadow: var(--neu-out-lg);
|
|
227
224
|
padding: 6px;
|
|
228
225
|
min-width: 180px;
|
|
229
|
-
z-index:
|
|
226
|
+
z-index: 1000;
|
|
230
227
|
animation: menuIn var(--dur) var(--ease);
|
|
231
228
|
max-height: 260px;
|
|
232
229
|
overflow-y: auto;
|
package/dist/Select.cjs
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkKGYLUZOU_cjs = require('./chunk-KGYLUZOU.cjs');
|
|
4
4
|
require('./chunk-VMHNKD3N.cjs');
|
|
5
|
+
require('./chunk-RZ2E3XEU.cjs');
|
|
5
6
|
require('./chunk-YVO7XO4W.cjs');
|
|
6
7
|
|
|
7
8
|
|
|
8
9
|
|
|
9
10
|
Object.defineProperty(exports, "Select", {
|
|
10
11
|
enumerable: true,
|
|
11
|
-
get: function () { return
|
|
12
|
+
get: function () { return chunkKGYLUZOU_cjs.Select; }
|
|
12
13
|
});
|
|
13
14
|
//# sourceMappingURL=Select.cjs.map
|
|
14
15
|
//# sourceMappingURL=Select.cjs.map
|
package/dist/Select.js
CHANGED
package/dist/Slider.cjs
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkIBZAGURN_cjs = require('./chunk-IBZAGURN.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
Object.defineProperty(exports, "Slider", {
|
|
8
8
|
enumerable: true,
|
|
9
|
-
get: function () { return
|
|
9
|
+
get: function () { return chunkIBZAGURN_cjs.Slider; }
|
|
10
10
|
});
|
|
11
11
|
//# sourceMappingURL=Slider.cjs.map
|
|
12
12
|
//# sourceMappingURL=Slider.cjs.map
|
package/dist/Slider.js
CHANGED
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
display: inline-flex;
|
|
5
5
|
}
|
|
6
6
|
.tip {
|
|
7
|
-
position: absolute;
|
|
8
7
|
background: var(--bg-sunken);
|
|
9
8
|
color: var(--fg);
|
|
10
9
|
padding: 6px 10px;
|
|
@@ -15,9 +14,5 @@
|
|
|
15
14
|
box-shadow: var(--neu-out-sm);
|
|
16
15
|
pointer-events: none;
|
|
17
16
|
animation: fadeIn var(--dur) var(--ease);
|
|
18
|
-
z-index:
|
|
17
|
+
z-index: 1000;
|
|
19
18
|
}
|
|
20
|
-
.tip.top { bottom: calc(100% + 8px); left: 50%; transform: translateX(-50%); }
|
|
21
|
-
.tip.bottom { top: calc(100% + 8px); left: 50%; transform: translateX(-50%); }
|
|
22
|
-
.tip.left { right: calc(100% + 8px); top: 50%; transform: translateY(-50%); }
|
|
23
|
-
.tip.right { left: calc(100% + 8px); top: 50%; transform: translateY(-50%); }
|
package/dist/Tooltip.cjs
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunk3UFU63X7_cjs = require('./chunk-3UFU63X7.cjs');
|
|
4
|
+
require('./chunk-RZ2E3XEU.cjs');
|
|
4
5
|
|
|
5
6
|
|
|
6
7
|
|
|
7
8
|
Object.defineProperty(exports, "Tooltip", {
|
|
8
9
|
enumerable: true,
|
|
9
|
-
get: function () { return
|
|
10
|
+
get: function () { return chunk3UFU63X7_cjs.Tooltip; }
|
|
10
11
|
});
|
|
11
12
|
//# sourceMappingURL=Tooltip.cjs.map
|
|
12
13
|
//# sourceMappingURL=Tooltip.cjs.map
|
package/dist/Tooltip.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var chunkRZ2E3XEU_cjs = require('./chunk-RZ2E3XEU.cjs');
|
|
3
4
|
require('./tokens-HWQ7KWPG.css');
|
|
4
5
|
require('./shared-NJHRNLRH.css');
|
|
5
|
-
require('./Tooltip-
|
|
6
|
+
require('./Tooltip-ST24GY4S.css');
|
|
6
7
|
var React = require('react');
|
|
8
|
+
var reactDom = require('react-dom');
|
|
7
9
|
var jsxRuntime = require('react/jsx-runtime');
|
|
8
10
|
|
|
9
11
|
function _interopNamespace(e) {
|
|
@@ -26,7 +28,6 @@ function _interopNamespace(e) {
|
|
|
26
28
|
|
|
27
29
|
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
28
30
|
|
|
29
|
-
// src/components/Tooltip/Tooltip.tsx
|
|
30
31
|
var Tooltip = ({
|
|
31
32
|
content,
|
|
32
33
|
placement = "top",
|
|
@@ -45,12 +46,33 @@ var Tooltip = ({
|
|
|
45
46
|
window.clearTimeout(t.current);
|
|
46
47
|
setShow(false);
|
|
47
48
|
};
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
const { triggerRef, floatingStyle, placement: resolved } = chunkRZ2E3XEU_cjs.useFloating({
|
|
50
|
+
open: show,
|
|
51
|
+
placement,
|
|
52
|
+
panelWidth: 160,
|
|
53
|
+
panelHeight: 32,
|
|
54
|
+
alignCross: "center"
|
|
55
|
+
});
|
|
56
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
57
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
58
|
+
"span",
|
|
59
|
+
{
|
|
60
|
+
ref: triggerRef,
|
|
61
|
+
className: "tip-anchor",
|
|
62
|
+
onMouseEnter: open,
|
|
63
|
+
onMouseLeave: close,
|
|
64
|
+
onFocus: open,
|
|
65
|
+
onBlur: close,
|
|
66
|
+
children
|
|
67
|
+
}
|
|
68
|
+
),
|
|
69
|
+
show && typeof document !== "undefined" && reactDom.createPortal(
|
|
70
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: `tip ${resolved}`, style: floatingStyle, children: content }),
|
|
71
|
+
document.body
|
|
72
|
+
)
|
|
51
73
|
] });
|
|
52
74
|
};
|
|
53
75
|
|
|
54
76
|
exports.Tooltip = Tooltip;
|
|
55
|
-
//# sourceMappingURL=chunk-
|
|
56
|
-
//# sourceMappingURL=chunk-
|
|
77
|
+
//# sourceMappingURL=chunk-3UFU63X7.cjs.map
|
|
78
|
+
//# sourceMappingURL=chunk-3UFU63X7.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Tooltip/Tooltip.tsx"],"names":["React","useFloating","jsxs","Fragment","jsx","createPortal"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBO,IAAM,UAAkC,CAAC;AAAA,EAC9C,OAAA;AAAA,EACA,SAAA,GAAY,KAAA;AAAA,EACZ,QAAA;AAAA,EACA,KAAA,GAAQ,GAAA;AAAA,EACR;AACF,CAAA,KAAM;AACJ,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAUA,0BAAS,KAAK,CAAA;AAC5C,EAAA,MAAM,IAAUA,gBAAA,CAAA,MAAA,EAA2B;AAE3C,EAAA,MAAM,OAAO,MAAM;AACjB,IAAA,IAAI,QAAA,EAAU;AACd,IAAA,MAAA,CAAO,YAAA,CAAa,EAAE,OAAO,CAAA;AAC7B,IAAA,CAAA,CAAE,UAAU,MAAA,CAAO,UAAA,CAAW,MAAM,OAAA,CAAQ,IAAI,GAAG,KAAK,CAAA;AAAA,EAC1D,CAAA;AACA,EAAA,MAAM,QAAQ,MAAM;AAClB,IAAA,MAAA,CAAO,YAAA,CAAa,EAAE,OAAO,CAAA;AAC7B,IAAA,OAAA,CAAQ,KAAK,CAAA;AAAA,EACf,CAAA;AAEA,EAAA,MAAM,EAAE,UAAA,EAAY,aAAA,EAAe,SAAA,EAAW,QAAA,KAAaC,6BAAA,CAA6B;AAAA,IACtF,IAAA,EAAM,IAAA;AAAA,IACN,SAAA;AAAA,IACA,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,EAAA;AAAA,IACb,UAAA,EAAY;AAAA,GACb,CAAA;AAED,EAAA,uBACEC,eAAA,CAAAC,mBAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAAC,cAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK,UAAA;AAAA,QACL,SAAA,EAAU,YAAA;AAAA,QACV,YAAA,EAAc,IAAA;AAAA,QACd,YAAA,EAAc,KAAA;AAAA,QACd,OAAA,EAAS,IAAA;AAAA,QACT,MAAA,EAAQ,KAAA;AAAA,QAEP;AAAA;AAAA,KACH;AAAA,IACC,IAAA,IAAQ,OAAO,QAAA,KAAa,WAAA,IAC3BC,qBAAA;AAAA,sBACED,cAAA,CAAC,UAAK,SAAA,EAAW,CAAA,IAAA,EAAO,QAAQ,CAAA,CAAA,EAAI,KAAA,EAAO,eACxC,QAAA,EAAA,OAAA,EACH,CAAA;AAAA,MACA,QAAA,CAAS;AAAA;AACX,GAAA,EACJ,CAAA;AAEJ","file":"chunk-3UFU63X7.cjs","sourcesContent":["import \"../../styles/tokens.css\";\nimport \"../../styles/shared.css\";\nimport \"./Tooltip.css\";\nimport * as React from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { useFloating } from \"../../utils/useFloating\";\n\nexport interface TooltipProps {\n content: React.ReactNode;\n placement?: \"top\" | \"bottom\" | \"left\" | \"right\";\n children: React.ReactElement;\n delay?: number;\n disabled?: boolean;\n}\n\n/** `Tooltip` — hover/focus text bubble. */\nexport const Tooltip: React.FC<TooltipProps> = ({\n content,\n placement = \"top\",\n children,\n delay = 250,\n disabled,\n}) => {\n const [show, setShow] = React.useState(false);\n const t = React.useRef<number | undefined>();\n\n const open = () => {\n if (disabled) return;\n window.clearTimeout(t.current);\n t.current = window.setTimeout(() => setShow(true), delay);\n };\n const close = () => {\n window.clearTimeout(t.current);\n setShow(false);\n };\n\n const { triggerRef, floatingStyle, placement: resolved } = useFloating<HTMLSpanElement>({\n open: show,\n placement,\n panelWidth: 160,\n panelHeight: 32,\n alignCross: \"center\",\n });\n\n return (\n <>\n <span\n ref={triggerRef}\n className=\"tip-anchor\"\n onMouseEnter={open}\n onMouseLeave={close}\n onFocus={open}\n onBlur={close}\n >\n {children}\n </span>\n {show && typeof document !== \"undefined\" &&\n createPortal(\n <span className={`tip ${resolved}`} style={floatingStyle}>\n {content}\n </span>,\n document.body\n )}\n </>\n );\n};\n"]}
|
|
@@ -22,10 +22,8 @@ var Slider = ({
|
|
|
22
22
|
const v = isControlled ? value : inner;
|
|
23
23
|
const pct = (v - min) / (max - min) * 100;
|
|
24
24
|
return /* @__PURE__ */ jsxs("div", { className: `slider ${tone} ${disabled ? "disabled" : ""} ${className}`, children: [
|
|
25
|
-
/* @__PURE__ */
|
|
26
|
-
|
|
27
|
-
/* @__PURE__ */ jsx("div", { className: "slider-thumb", style: { left: `${pct}%` } })
|
|
28
|
-
] }),
|
|
25
|
+
/* @__PURE__ */ jsx("div", { className: "slider-track", children: /* @__PURE__ */ jsx("div", { className: "slider-fill", style: { width: `${pct}%` } }) }),
|
|
26
|
+
/* @__PURE__ */ jsx("div", { className: "slider-thumb", style: { left: `${pct}%` } }),
|
|
29
27
|
/* @__PURE__ */ jsx(
|
|
30
28
|
"input",
|
|
31
29
|
{
|
|
@@ -47,5 +45,5 @@ var Slider = ({
|
|
|
47
45
|
};
|
|
48
46
|
|
|
49
47
|
export { Slider };
|
|
50
|
-
//# sourceMappingURL=chunk-
|
|
51
|
-
//# sourceMappingURL=chunk-
|
|
48
|
+
//# sourceMappingURL=chunk-7UJI437T.js.map
|
|
49
|
+
//# sourceMappingURL=chunk-7UJI437T.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Slider/Slider.tsx"],"names":[],"mappings":";;;;;;;AAmBO,IAAM,SAAgC,CAAC;AAAA,EAC5C,KAAA;AAAA,EACA,YAAA,GAAe,CAAA;AAAA,EACf,QAAA;AAAA,EACA,GAAA,GAAM,CAAA;AAAA,EACN,GAAA,GAAM,GAAA;AAAA,EACN,IAAA,GAAO,CAAA;AAAA,EACP,QAAA;AAAA,EACA,SAAA;AAAA,EACA,IAAA,GAAO,QAAA;AAAA,EACP,SAAA,GAAY;AACd,CAAA,KAAM;AACJ,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAU,eAAS,YAAY,CAAA;AACrD,EAAA,MAAM,eAAe,KAAA,KAAU,MAAA;AAC/B,EAAA,MAAM,CAAA,GAAI,eAAe,KAAA,GAAS,KAAA;AAClC,EAAA,MAAM,GAAA,GAAA,CAAQ,CAAA,GAAI,GAAA,KAAQ,GAAA,GAAM,GAAA,CAAA,GAAQ,GAAA;AAExC,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,CAAA,OAAA,EAAU,IAAI,CAAA,CAAA,EAAI,QAAA,GAAW,UAAA,GAAa,EAAE,CAAA,CAAA,EAAI,SAAS,CAAA,CAAA,EACvE,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,cAAA,EACb,QAAA,kBAAA,GAAA,CAAC,SAAI,SAAA,EAAU,aAAA,EAAc,KAAA,EAAO,EAAE,KAAA,EAAO,CAAA,EAAG,GAAG,CAAA,CAAA,CAAA,IAAO,CAAA,EAC5D,CAAA;AAAA,oBACA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,cAAA,EAAe,KAAA,EAAO,EAAE,IAAA,EAAM,CAAA,EAAG,GAAG,CAAA,CAAA,CAAA,EAAI,EAAG,CAAA;AAAA,oBAC1D,GAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,OAAA;AAAA,QACL,GAAA;AAAA,QACA,GAAA;AAAA,QACA,IAAA;AAAA,QACA,KAAA,EAAO,CAAA;AAAA,QACP,QAAA;AAAA,QACA,QAAA,EAAU,CAAC,CAAA,KAAM;AACf,UAAA,MAAM,CAAA,GAAI,MAAA,CAAO,CAAA,CAAE,MAAA,CAAO,KAAK,CAAA;AAC/B,UAAA,IAAI,CAAC,YAAA,EAAc,QAAA,CAAS,CAAC,CAAA;AAC7B,UAAA,QAAA,GAAW,CAAC,CAAA;AAAA,QACd;AAAA;AAAA,KACF;AAAA,IACC,SAAA,oBAAa,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,gBAAgB,QAAA,EAAA,CAAA,EAAE;AAAA,GAAA,EAClD,CAAA;AAEJ","file":"chunk-7UJI437T.js","sourcesContent":["import \"../../styles/tokens.css\";\nimport \"../../styles/shared.css\";\nimport \"./Slider.css\";\nimport * as React from \"react\";\n\nexport interface SliderProps {\n value?: number;\n defaultValue?: number;\n onChange?: (value: number) => void;\n min?: number;\n max?: number;\n step?: number;\n disabled?: boolean;\n showValue?: boolean;\n tone?: \"accent\" | \"success\" | \"warning\" | \"danger\";\n className?: string;\n}\n\n/** `Slider` — neumorphic range input with grooved track. */\nexport const Slider: React.FC<SliderProps> = ({\n value,\n defaultValue = 0,\n onChange,\n min = 0,\n max = 100,\n step = 1,\n disabled,\n showValue,\n tone = \"accent\",\n className = \"\",\n}) => {\n const [inner, setInner] = React.useState(defaultValue);\n const isControlled = value !== undefined;\n const v = isControlled ? value! : inner;\n const pct = ((v - min) / (max - min)) * 100;\n\n return (\n <div className={`slider ${tone} ${disabled ? \"disabled\" : \"\"} ${className}`}>\n <div className=\"slider-track\">\n <div className=\"slider-fill\" style={{ width: `${pct}%` }} />\n </div>\n <div className=\"slider-thumb\" style={{ left: `${pct}%` }} />\n <input\n type=\"range\"\n min={min}\n max={max}\n step={step}\n value={v}\n disabled={disabled}\n onChange={(e) => {\n const n = Number(e.target.value);\n if (!isControlled) setInner(n);\n onChange?.(n);\n }}\n />\n {showValue && <span className=\"slider-value\">{v}</span>}\n </div>\n );\n};\n"]}
|