sakana-element 2.3.0 → 2.4.1
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/README.md +5 -5
- package/dist/es/{Alert-BwTsp4X3.js → Alert-DRIDwear.js} +2 -2
- package/dist/es/{Avatar-CJu6JYV3.js → Avatar-Dkvvhw_D.js} +1 -1
- package/dist/es/{Badge-BmxZXX8k.js → Badge-CLNacHVq.js} +2 -2
- package/dist/es/{Breadcrumb-BP8MSklj.js → Breadcrumb-CfJA9NZz.js} +2 -2
- package/dist/es/{Button-BJHtN7gh.js → Button-Dj1DIvXh.js} +3 -3
- package/dist/es/{Card-DJHkCmsz.js → Card-meh7F1e2.js} +1 -1
- package/dist/es/ChatBubble-Ccr3wzoK.js +9 -0
- package/dist/es/{Checkbox-DX8L3fyp.js → Checkbox-vOcwl1OX.js} +3 -3
- package/dist/es/{Collapse-Ir3V9CuO.js → Collapse-BG58s0uJ.js} +4 -4
- package/dist/es/{ConfigProvider-CsbSqwwi.js → ConfigProvider-Cr8Hpzf2.js} +2 -2
- package/dist/es/Diff-KQ44cDcY.js +64 -0
- package/dist/es/{Divider-C7PtODSK.js → Divider-CYYeUqYc.js} +1 -1
- package/dist/es/{Drawer-C2eVmvUp.js → Drawer-CDXFDfrf.js} +2 -2
- package/dist/es/{Dropdown-CVg_c2fB.js → Dropdown-CPZtzHPx.js} +9 -9
- package/dist/es/{FileInput-BE26BmXm.js → FileInput-Ram4-wy2.js} +3 -3
- package/dist/es/Filter-CLLkrn-W.js +40 -0
- package/dist/es/{Form-7lZt5ehf.js → Form-po3aIrSN.js} +62 -61
- package/dist/es/{Icon-BLDDdSU-.js → Icon-XJfGGAMY.js} +1 -1
- package/dist/es/{Indicator-B-en-MgG.js → Indicator-vsSp5r5K.js} +1 -1
- package/dist/es/{Input-C5HuVehE.js → Input-KrNqNZMe.js} +5 -5
- package/dist/es/Kbd-CtCGx7_s.js +13 -0
- package/dist/es/{Link-Av9RdcFv.js → Link-Bbwdgs74.js} +1 -1
- package/dist/es/{Loading-CBNDUWQd.js → Loading-DiyIiKxO.js} +3 -3
- package/dist/es/{Message-DgnyyuXn.js → Message-BoNCtMo7.js} +14 -14
- package/dist/es/{Notification-LYRXnVAf.js → Notification-CFY-yvRf.js} +13 -13
- package/dist/es/{Overlay-CpvMhnuU.js → Overlay-DoFA2lgP.js} +1 -1
- package/dist/es/Pixelate-dqwHc6nX.js +39 -0
- package/dist/es/{Popconfirm-DvxFdLrw.js → Popconfirm-DPOujyiA.js} +12 -12
- package/dist/es/{Progress-Bc5INMhJ.js → Progress-B0oYE8Z3.js} +1 -1
- package/dist/es/{Radio-263_rtRl.js → Radio-C-Ot7pLA.js} +3 -3
- package/dist/es/Resizable-G5KVHayx.js +151 -0
- package/dist/es/{Select-7ZxUCS8z.js → Select-DqxPeAKK.js} +14 -14
- package/dist/es/Skeleton-4SeKRKn9.js +15 -0
- package/dist/es/{Switch-DiCsMJT3.js → Switch-C_tBxZtT.js} +3 -3
- package/dist/es/{Table-BvA_xzDe.js → Table-Cr6HFL4_.js} +1 -1
- package/dist/es/{Tooltip-J3ji6weH.js → Tooltip-rak4BryQ.js} +3 -3
- package/dist/es/Validator-DKVfknvI.js +40 -0
- package/dist/es/{hooks-BqobYUzS.js → hooks-pTjI-j9o.js} +51 -53
- package/dist/es/index.js +119 -90
- package/dist/es/utils-DzOow9K9.js +155 -0
- package/dist/es/{vendor-DXmGx29U.js → vendor-DrBJKLFW.js} +254 -210
- package/dist/index.css +1 -1
- package/dist/{es/theme → theme}/Badge.css +151 -151
- package/dist/{es/theme → theme}/Button.css +92 -8
- package/dist/theme/ChatBubble.css +218 -0
- package/dist/{es/theme → theme}/Checkbox.css +138 -18
- package/dist/{es/theme → theme}/Collapse.css +96 -96
- package/dist/theme/Diff.css +110 -0
- package/dist/{es/theme → theme}/Divider.css +42 -3
- package/dist/{es/theme → theme}/Dropdown.css +2 -2
- package/dist/{es/theme → theme}/FileInput.css +32 -0
- package/dist/theme/Filter.css +598 -0
- package/dist/{es/theme → theme}/Input.css +414 -407
- package/dist/theme/Kbd.css +104 -0
- package/dist/{es/theme → theme}/Message.css +1 -1
- package/dist/{es/theme → theme}/Notification.css +44 -44
- package/dist/{es/theme → theme}/Radio.css +114 -48
- package/dist/theme/Resizable.css +95 -0
- package/dist/{es/theme → theme}/Select.css +198 -88
- package/dist/theme/Skeleton.css +192 -0
- package/dist/{es/theme → theme}/Switch.css +22 -3
- package/dist/theme/Validator.css +25 -0
- package/dist/types/components/ChatBubble/constants.d.ts +2 -0
- package/dist/types/components/ChatBubble/index.d.ts +27 -0
- package/dist/types/components/ChatBubble/types.d.ts +10 -0
- package/dist/types/components/Diff/constants.d.ts +4 -0
- package/dist/types/components/Diff/index.d.ts +67 -0
- package/dist/types/components/Diff/types.d.ts +29 -0
- package/dist/types/components/Dropdown/index.d.ts +3 -3
- package/dist/types/components/Filter/constants.d.ts +5 -0
- package/dist/types/components/Filter/index.d.ts +59 -0
- package/dist/types/components/Filter/types.d.ts +38 -0
- package/dist/types/components/Icon/index.d.ts +1 -0
- package/dist/types/components/Kbd/constants.d.ts +3 -0
- package/dist/types/components/Kbd/index.d.ts +24 -0
- package/dist/types/components/Kbd/types.d.ts +10 -0
- package/dist/types/components/Pixelate/index.d.ts +3 -3
- package/dist/types/components/Popconfirm/index.d.ts +3 -3
- package/dist/types/components/Resizable/constants.d.ts +3 -0
- package/dist/types/components/Resizable/index.d.ts +135 -0
- package/dist/types/components/Resizable/types.d.ts +52 -0
- package/dist/types/components/Select/index.d.ts +3 -3
- package/dist/types/components/Skeleton/index.d.ts +36 -0
- package/dist/types/components/Skeleton/types.d.ts +12 -0
- package/dist/types/components/Tooltip/index.d.ts +3 -3
- package/dist/types/components/Validator/index.d.ts +52 -0
- package/dist/types/components/Validator/types.d.ts +13 -0
- package/dist/types/components/index.d.ts +8 -1
- package/dist/types/core/index.d.ts +1 -1
- package/dist/types/hooks/index.d.ts +2 -0
- package/dist/types/hooks/useFocusController.d.ts +1 -1
- package/dist/types/utils/index.d.ts +1 -0
- package/dist/types/utils/pixelate.d.ts +10 -0
- package/dist/types/utils/style.d.ts +1 -0
- package/dist/umd/index.css +1 -1
- package/dist/umd/index.css.gz +0 -0
- package/dist/umd/index.umd.cjs +3 -3
- package/dist/umd/index.umd.cjs.gz +0 -0
- package/package.json +4 -4
- package/dist/es/Pixelate-BPypBgJU.js +0 -67
- package/dist/es/utils-BS5vsvlM.js +0 -101
- /package/dist/{es/theme → theme}/Alert.css +0 -0
- /package/dist/{es/theme → theme}/Avatar.css +0 -0
- /package/dist/{es/theme → theme}/Breadcrumb.css +0 -0
- /package/dist/{es/theme → theme}/Card.css +0 -0
- /package/dist/{es/theme → theme}/Drawer.css +0 -0
- /package/dist/{es/theme → theme}/Form.css +0 -0
- /package/dist/{es/theme → theme}/Icon.css +0 -0
- /package/dist/{es/theme → theme}/Indicator.css +0 -0
- /package/dist/{es/theme → theme}/Link.css +0 -0
- /package/dist/{es/theme → theme}/Loading.css +0 -0
- /package/dist/{es/theme → theme}/Overlay.css +0 -0
- /package/dist/{es/theme → theme}/Popconfirm.css +0 -0
- /package/dist/{es/theme → theme}/Progress.css +0 -0
- /package/dist/{es/theme → theme}/Table.css +0 -0
- /package/dist/{es/theme → theme}/Tooltip.css +0 -0
- /package/dist/{es/theme → theme}/fonts/zpix.woff2 +0 -0
- /package/dist/{es/theme → theme}/index.css +0 -0
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
/* ─── Skeleton Variables ─── */
|
|
2
|
+
.px-skeleton {
|
|
3
|
+
--px-skeleton-bg-color: var(--px-fill-color-darker, #e0e0e0);
|
|
4
|
+
--px-skeleton-shimmer-color: var(--px-fill-color-light, #f5f5f5);
|
|
5
|
+
--px-skeleton-border-color: var(--px-border-color, #c0c0c0);
|
|
6
|
+
--px-skeleton-shadow-color: var(--px-shadow-color, rgba(0, 0, 0, 0.15));
|
|
7
|
+
|
|
8
|
+
/* Inset bevels (sunken look — opposite of Button's raised look) */
|
|
9
|
+
--px-skeleton-inset-highlight: inset 2px 2px 0 0 rgba(255, 255, 255, 0.3);
|
|
10
|
+
--px-skeleton-inset-shadow: inset -2px -2px 0 0 rgba(0, 0, 0, 0.12);
|
|
11
|
+
|
|
12
|
+
/* Dither overlay color */
|
|
13
|
+
--px-skeleton-dither-color: rgba(255, 255, 255, 0.15);
|
|
14
|
+
}
|
|
15
|
+
/* ─── Base bone / row — positioned container ─── */
|
|
16
|
+
.px-skeleton__bone,
|
|
17
|
+
.px-skeleton__row {
|
|
18
|
+
display: block;
|
|
19
|
+
position: relative;
|
|
20
|
+
background: transparent;
|
|
21
|
+
|
|
22
|
+
/* Pixel drop-shadow traces the pseudo-element shapes */
|
|
23
|
+
filter: drop-shadow(2px 2px 0 var(--px-skeleton-shadow-color));
|
|
24
|
+
}
|
|
25
|
+
/* Border layer */
|
|
26
|
+
.px-skeleton__bone::before, .px-skeleton__row::before {
|
|
27
|
+
content: '';
|
|
28
|
+
position: absolute;
|
|
29
|
+
inset: 0;
|
|
30
|
+
background: var(--px-skeleton-border-color);
|
|
31
|
+
z-index: -1;
|
|
32
|
+
}
|
|
33
|
+
/* Fill layer — inset by border width */
|
|
34
|
+
.px-skeleton__bone::after, .px-skeleton__row::after {
|
|
35
|
+
content: '';
|
|
36
|
+
position: absolute;
|
|
37
|
+
inset: 2px;
|
|
38
|
+
background: var(--px-skeleton-bg-color);
|
|
39
|
+
box-shadow:
|
|
40
|
+
var(--px-skeleton-inset-highlight),
|
|
41
|
+
var(--px-skeleton-inset-shadow);
|
|
42
|
+
z-index: -1;
|
|
43
|
+
}
|
|
44
|
+
.px-skeleton__bone {
|
|
45
|
+
width: 100%;
|
|
46
|
+
height: 16px;
|
|
47
|
+
}
|
|
48
|
+
/* ─── Clip-paths per variant ─── */
|
|
49
|
+
/* Rectangular / Text — 2px chamfered pixel corners */
|
|
50
|
+
.px-skeleton--rectangular .px-skeleton__bone::before,
|
|
51
|
+
.px-skeleton--rectangular .px-skeleton__bone::after,
|
|
52
|
+
.px-skeleton--rectangular .px-skeleton__row::before,
|
|
53
|
+
.px-skeleton--rectangular .px-skeleton__row::after,
|
|
54
|
+
.px-skeleton--text .px-skeleton__bone::before,
|
|
55
|
+
.px-skeleton--text .px-skeleton__bone::after,
|
|
56
|
+
.px-skeleton--text .px-skeleton__row::before,
|
|
57
|
+
.px-skeleton--text .px-skeleton__row::after {
|
|
58
|
+
clip-path: polygon(
|
|
59
|
+
0 2px, 2px 2px, 2px 0,
|
|
60
|
+
calc(100% - 2px) 0, calc(100% - 2px) 2px, 100% 2px,
|
|
61
|
+
100% calc(100% - 2px), calc(100% - 2px) calc(100% - 2px), calc(100% - 2px) 100%,
|
|
62
|
+
2px 100%, 2px calc(100% - 2px), 0 calc(100% - 2px)
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
/* Rounded — 4px staircase corners */
|
|
66
|
+
.px-skeleton--rounded .px-skeleton__bone::before,
|
|
67
|
+
.px-skeleton--rounded .px-skeleton__bone::after {
|
|
68
|
+
clip-path: polygon(
|
|
69
|
+
0 4px, 2px 4px, 2px 2px, 4px 2px, 4px 0,
|
|
70
|
+
calc(100% - 4px) 0, calc(100% - 4px) 2px, calc(100% - 2px) 2px, calc(100% - 2px) 4px, 100% 4px,
|
|
71
|
+
100% calc(100% - 4px), calc(100% - 2px) calc(100% - 4px), calc(100% - 2px) calc(100% - 2px), calc(100% - 4px) calc(100% - 2px), calc(100% - 4px) 100%,
|
|
72
|
+
4px 100%, 4px calc(100% - 2px), 2px calc(100% - 2px), 2px calc(100% - 4px), 0 calc(100% - 4px)
|
|
73
|
+
);
|
|
74
|
+
}
|
|
75
|
+
/* Circular — 4-step staircase pixel circle (matching Avatar/Button) */
|
|
76
|
+
.px-skeleton--circular .px-skeleton__bone::before,
|
|
77
|
+
.px-skeleton--circular .px-skeleton__bone::after {
|
|
78
|
+
clip-path: polygon(
|
|
79
|
+
0 10px, 2px 10px, 2px 6px, 4px 6px, 4px 4px, 6px 4px, 6px 2px, 10px 2px, 10px 0,
|
|
80
|
+
calc(100% - 10px) 0, calc(100% - 10px) 2px, calc(100% - 6px) 2px, calc(100% - 6px) 4px, calc(100% - 4px) 4px, calc(100% - 4px) 6px, calc(100% - 2px) 6px, calc(100% - 2px) 10px, 100% 10px,
|
|
81
|
+
100% calc(100% - 10px), calc(100% - 2px) calc(100% - 10px), calc(100% - 2px) calc(100% - 6px), calc(100% - 4px) calc(100% - 6px), calc(100% - 4px) calc(100% - 4px), calc(100% - 6px) calc(100% - 4px), calc(100% - 6px) calc(100% - 2px), calc(100% - 10px) calc(100% - 2px), calc(100% - 10px) 100%,
|
|
82
|
+
10px 100%, 10px calc(100% - 2px), 6px calc(100% - 2px), 6px calc(100% - 4px), 4px calc(100% - 4px), 4px calc(100% - 6px), 2px calc(100% - 6px), 2px calc(100% - 10px), 0 calc(100% - 10px)
|
|
83
|
+
);
|
|
84
|
+
}
|
|
85
|
+
/* ─── Animation: Shimmer — Scanline sweep ─── */
|
|
86
|
+
@keyframes px-skeleton-shimmer {
|
|
87
|
+
0% { background-position: -30% 0, 0 0;
|
|
88
|
+
}
|
|
89
|
+
100% { background-position: 130% 0, 0 0;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
.px-skeleton.is-animated.is-animation-shimmer .px-skeleton__bone::after,
|
|
93
|
+
.px-skeleton.is-animated.is-animation-shimmer .px-skeleton__row::after {
|
|
94
|
+
background:
|
|
95
|
+
/* Narrow hard-edged highlight band — scanline-like */
|
|
96
|
+
linear-gradient(
|
|
97
|
+
90deg,
|
|
98
|
+
transparent 0%,
|
|
99
|
+
transparent 40%,
|
|
100
|
+
var(--px-skeleton-shimmer-color) 45%,
|
|
101
|
+
var(--px-skeleton-shimmer-color) 55%,
|
|
102
|
+
transparent 60%,
|
|
103
|
+
transparent 100%
|
|
104
|
+
),
|
|
105
|
+
var(--px-skeleton-bg-color);
|
|
106
|
+
background-size: 200% 100%, 100% 100%;
|
|
107
|
+
animation: px-skeleton-shimmer 1.5s steps(12, jump-none) infinite;
|
|
108
|
+
}
|
|
109
|
+
/* ─── Animation: Pulse — Two-frame blink ─── */
|
|
110
|
+
@keyframes px-skeleton-pulse {
|
|
111
|
+
0%, 100% { opacity: 1;
|
|
112
|
+
}
|
|
113
|
+
50% { opacity: 0.5;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
.px-skeleton.is-animated.is-animation-pulse .px-skeleton__bone::after,
|
|
117
|
+
.px-skeleton.is-animated.is-animation-pulse .px-skeleton__row::after {
|
|
118
|
+
animation: px-skeleton-pulse 1.2s steps(2, jump-none) infinite;
|
|
119
|
+
}
|
|
120
|
+
/* ─── Animation: Dither — Checkerboard dissolve ─── */
|
|
121
|
+
@keyframes px-skeleton-dither {
|
|
122
|
+
0% { background-position: 0 0, 0 0;
|
|
123
|
+
}
|
|
124
|
+
25% { background-position: 2px 0, 0 0;
|
|
125
|
+
}
|
|
126
|
+
50% { background-position: 2px 2px, 0 0;
|
|
127
|
+
}
|
|
128
|
+
75% { background-position: 0 2px, 0 0;
|
|
129
|
+
}
|
|
130
|
+
100% { background-position: 0 0, 0 0;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
.px-skeleton.is-animated.is-animation-dither .px-skeleton__bone::after,
|
|
134
|
+
.px-skeleton.is-animated.is-animation-dither .px-skeleton__row::after {
|
|
135
|
+
background:
|
|
136
|
+
/* 2×2 pixel checkerboard dither pattern */
|
|
137
|
+
repeating-conic-gradient(
|
|
138
|
+
var(--px-skeleton-dither-color) 0% 25%,
|
|
139
|
+
transparent 0% 50%
|
|
140
|
+
) 0 0 / 4px 4px,
|
|
141
|
+
var(--px-skeleton-bg-color);
|
|
142
|
+
animation: px-skeleton-dither 1.6s steps(4, jump-none) infinite;
|
|
143
|
+
}
|
|
144
|
+
/* ─── Text variant — thin horizontal bars ─── */
|
|
145
|
+
.px-skeleton--text .px-skeleton__bone {
|
|
146
|
+
height: 12px;
|
|
147
|
+
}
|
|
148
|
+
.px-skeleton--text .px-skeleton__row {
|
|
149
|
+
height: 12px;
|
|
150
|
+
margin-bottom: 8px;
|
|
151
|
+
}
|
|
152
|
+
.px-skeleton--text .px-skeleton__row:last-child {
|
|
153
|
+
margin-bottom: 0;
|
|
154
|
+
}
|
|
155
|
+
/* ─── Circular variant ─── */
|
|
156
|
+
.px-skeleton--circular .px-skeleton__bone {
|
|
157
|
+
width: 40px;
|
|
158
|
+
height: 40px;
|
|
159
|
+
}
|
|
160
|
+
/* ─── Size: Large ─── */
|
|
161
|
+
.px-skeleton--large .px-skeleton__bone {
|
|
162
|
+
height: 24px;
|
|
163
|
+
}
|
|
164
|
+
.px-skeleton--large .px-skeleton__row {
|
|
165
|
+
height: 18px;
|
|
166
|
+
}
|
|
167
|
+
.px-skeleton--large.px-skeleton--circular .px-skeleton__bone {
|
|
168
|
+
width: 56px;
|
|
169
|
+
height: 56px;
|
|
170
|
+
}
|
|
171
|
+
/* ─── Size: Small ─── */
|
|
172
|
+
.px-skeleton--small .px-skeleton__bone {
|
|
173
|
+
height: 12px;
|
|
174
|
+
}
|
|
175
|
+
.px-skeleton--small .px-skeleton__row {
|
|
176
|
+
height: 10px;
|
|
177
|
+
margin-bottom: 6px;
|
|
178
|
+
}
|
|
179
|
+
.px-skeleton--small.px-skeleton--circular .px-skeleton__bone {
|
|
180
|
+
width: 28px;
|
|
181
|
+
height: 28px;
|
|
182
|
+
}
|
|
183
|
+
/* ─── Dark mode ─── */
|
|
184
|
+
.px-dark .px-skeleton {
|
|
185
|
+
--px-skeleton-bg-color: var(--px-fill-color-darker, #3a3a3a);
|
|
186
|
+
--px-skeleton-shimmer-color: var(--px-fill-color, #4a4a4a);
|
|
187
|
+
--px-skeleton-border-color: var(--px-border-color, #555);
|
|
188
|
+
--px-skeleton-shadow-color: rgba(0, 0, 0, 0.3);
|
|
189
|
+
--px-skeleton-inset-highlight: inset 2px 2px 0 0 rgba(255, 255, 255, 0.08);
|
|
190
|
+
--px-skeleton-inset-shadow: inset -2px -2px 0 0 rgba(0, 0, 0, 0.2);
|
|
191
|
+
--px-skeleton-dither-color: rgba(255, 255, 255, 0.08);
|
|
192
|
+
}
|
|
@@ -6,6 +6,14 @@
|
|
|
6
6
|
--px-switch-off-border-color: var(--px-border-color);
|
|
7
7
|
--px-switch-shadow-color: var(--px-shadow-color);
|
|
8
8
|
--px-switch-handle-color: var(--px-color-white);
|
|
9
|
+
|
|
10
|
+
/* Track groove (sunken bevel) */
|
|
11
|
+
--px-switch-inset-shadow: inset 2px 2px 0 0 rgba(0, 0, 0, 0.12);
|
|
12
|
+
--px-switch-inset-highlight: inset -2px -2px 0 0 rgba(255, 255, 255, 0.1);
|
|
13
|
+
|
|
14
|
+
/* Handle (raised bevel) */
|
|
15
|
+
--px-switch-handle-highlight: inset 2px 2px 0 0 rgba(255, 255, 255, 0.3);
|
|
16
|
+
--px-switch-handle-shadow: inset -2px -2px 0 0 rgba(0, 0, 0, 0.12);
|
|
9
17
|
}
|
|
10
18
|
/* Base Switch Styles - Pixel Toggle */
|
|
11
19
|
.px-switch {
|
|
@@ -40,6 +48,8 @@
|
|
|
40
48
|
}
|
|
41
49
|
.px-switch.is-checked .px-switch__core::after {
|
|
42
50
|
background: var(--px-switch-on-color);
|
|
51
|
+
box-shadow: inset 2px 2px 0 0 rgba(0, 0, 0, 0.06),
|
|
52
|
+
inset -2px -2px 0 0 rgba(255, 255, 255, 0.15);
|
|
43
53
|
}
|
|
44
54
|
.px-switch.is-checked .px-switch__core {
|
|
45
55
|
|
|
@@ -141,7 +151,7 @@
|
|
|
141
151
|
);
|
|
142
152
|
z-index: 0;
|
|
143
153
|
}
|
|
144
|
-
/* Fill layer — pixel shape */
|
|
154
|
+
/* Fill layer — pixel shape with sunken groove bevel */
|
|
145
155
|
.px-switch__core::after {
|
|
146
156
|
content: "";
|
|
147
157
|
position: absolute;
|
|
@@ -169,6 +179,7 @@
|
|
|
169
179
|
2px calc(100% - 4px),
|
|
170
180
|
0 calc(100% - 4px)
|
|
171
181
|
);
|
|
182
|
+
box-shadow: var(--px-switch-inset-shadow), var(--px-switch-inset-highlight);
|
|
172
183
|
z-index: 0;
|
|
173
184
|
}
|
|
174
185
|
/* The toggle handle - pixel square */
|
|
@@ -178,7 +189,7 @@
|
|
|
178
189
|
width: 18px;
|
|
179
190
|
height: 18px;
|
|
180
191
|
background: transparent;
|
|
181
|
-
transition:
|
|
192
|
+
transition: left 0.15s steps(3);
|
|
182
193
|
z-index: 2;
|
|
183
194
|
display: flex;
|
|
184
195
|
align-items: center;
|
|
@@ -205,7 +216,7 @@
|
|
|
205
216
|
0 calc(100% - 2px)
|
|
206
217
|
);
|
|
207
218
|
}
|
|
208
|
-
/* Handle fill layer */
|
|
219
|
+
/* Handle fill layer — raised bevel like a game D-pad button */
|
|
209
220
|
.px-switch__core .px-switch__core-action::after {
|
|
210
221
|
content: "";
|
|
211
222
|
position: absolute;
|
|
@@ -225,6 +236,7 @@
|
|
|
225
236
|
2px calc(100% - 2px),
|
|
226
237
|
0 calc(100% - 2px)
|
|
227
238
|
);
|
|
239
|
+
box-shadow: var(--px-switch-handle-highlight), var(--px-switch-handle-shadow);
|
|
228
240
|
}
|
|
229
241
|
/* Icon inside thumb */
|
|
230
242
|
.px-switch__core .px-switch__core-action .px-switch__icon {
|
|
@@ -302,3 +314,10 @@
|
|
|
302
314
|
var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-color-danger-dark)
|
|
303
315
|
);
|
|
304
316
|
}
|
|
317
|
+
/* Dark mode bevel adjustments */
|
|
318
|
+
html.dark .px-switch {
|
|
319
|
+
--px-switch-inset-shadow: inset 2px 2px 0 0 rgba(0, 0, 0, 0.25);
|
|
320
|
+
--px-switch-inset-highlight: inset -2px -2px 0 0 rgba(255, 255, 255, 0.05);
|
|
321
|
+
--px-switch-handle-highlight: inset 2px 2px 0 0 rgba(255, 255, 255, 0.15);
|
|
322
|
+
--px-switch-handle-shadow: inset -2px -2px 0 0 rgba(0, 0, 0, 0.2);
|
|
323
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
.px-validator[data-v-9c099378] {
|
|
2
|
+
display: inline-flex;
|
|
3
|
+
flex-direction: column;
|
|
4
|
+
font-family: var(--px-font-family);
|
|
5
|
+
}
|
|
6
|
+
.px-validator__content[data-v-9c099378] {
|
|
7
|
+
display: contents;
|
|
8
|
+
}
|
|
9
|
+
.px-validator__hint[data-v-9c099378] {
|
|
10
|
+
min-height: 1.4em;
|
|
11
|
+
padding-top: 4px;
|
|
12
|
+
font-size: var(--px-font-size-small);
|
|
13
|
+
color: var(--px-color-danger);
|
|
14
|
+
line-height: 1.4;
|
|
15
|
+
transition: opacity 0.15s ease;
|
|
16
|
+
}
|
|
17
|
+
.px-validator__hint.is-hidden[data-v-9c099378] {
|
|
18
|
+
opacity: 0;
|
|
19
|
+
pointer-events: none;
|
|
20
|
+
}
|
|
21
|
+
.px-validator__hint-text[data-v-9c099378] {
|
|
22
|
+
display: inline-flex;
|
|
23
|
+
align-items: center;
|
|
24
|
+
gap: 4px;
|
|
25
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export declare const PxChatBubble: {
|
|
2
|
+
new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('packages/core').ChatBubbleProps> & Readonly<{}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, import('vue').PublicProps, {
|
|
3
|
+
placement: import('packages/core').ChatBubblePlacement;
|
|
4
|
+
}, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, HTMLDivElement, import('vue').ComponentProvideOptions, {
|
|
5
|
+
P: {};
|
|
6
|
+
B: {};
|
|
7
|
+
D: {};
|
|
8
|
+
C: {};
|
|
9
|
+
M: {};
|
|
10
|
+
Defaults: {};
|
|
11
|
+
}, Readonly<import('packages/core').ChatBubbleProps> & Readonly<{}>, {}, {}, {}, {}, {
|
|
12
|
+
placement: import('packages/core').ChatBubblePlacement;
|
|
13
|
+
}>;
|
|
14
|
+
__isFragment?: never;
|
|
15
|
+
__isTeleport?: never;
|
|
16
|
+
__isSuspense?: never;
|
|
17
|
+
} & import('vue').ComponentOptionsBase<Readonly<import('packages/core').ChatBubbleProps> & Readonly<{}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, {
|
|
18
|
+
placement: import('packages/core').ChatBubblePlacement;
|
|
19
|
+
}, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & (new () => {
|
|
20
|
+
$slots: {
|
|
21
|
+
avatar?(_: {}): any;
|
|
22
|
+
header?(_: {}): any;
|
|
23
|
+
default?(_: {}): any;
|
|
24
|
+
footer?(_: {}): any;
|
|
25
|
+
};
|
|
26
|
+
}) & import('vue').Plugin;
|
|
27
|
+
export * from './types';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export type ChatBubbleType = 'primary' | 'success' | 'info' | 'warning' | 'danger';
|
|
2
|
+
export type ChatBubblePlacement = 'start' | 'end';
|
|
3
|
+
export interface ChatBubbleProps {
|
|
4
|
+
placement?: ChatBubblePlacement;
|
|
5
|
+
type?: ChatBubbleType;
|
|
6
|
+
color?: string;
|
|
7
|
+
name?: string;
|
|
8
|
+
time?: string;
|
|
9
|
+
status?: string;
|
|
10
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
export declare const PxDiff: {
|
|
2
|
+
new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('packages/core').DiffProps> & Readonly<{
|
|
3
|
+
onError?: ((event: Event) => any) | undefined;
|
|
4
|
+
onChange?: ((position: number) => any) | undefined;
|
|
5
|
+
onRendered?: (() => any) | undefined;
|
|
6
|
+
}>, {
|
|
7
|
+
setPosition: (pos: number) => void;
|
|
8
|
+
getPosition: () => number;
|
|
9
|
+
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
|
|
10
|
+
error: (event: Event) => any;
|
|
11
|
+
change: (position: number) => any;
|
|
12
|
+
rendered: () => any;
|
|
13
|
+
}, import('vue').PublicProps, {
|
|
14
|
+
pixelSize: number;
|
|
15
|
+
grayscale: boolean;
|
|
16
|
+
background: string;
|
|
17
|
+
initialPosition: number;
|
|
18
|
+
}, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {
|
|
19
|
+
containerRef: HTMLDivElement;
|
|
20
|
+
canvasRef: HTMLCanvasElement;
|
|
21
|
+
originRef: HTMLImageElement;
|
|
22
|
+
}, HTMLDivElement, import('vue').ComponentProvideOptions, {
|
|
23
|
+
P: {};
|
|
24
|
+
B: {};
|
|
25
|
+
D: {};
|
|
26
|
+
C: {};
|
|
27
|
+
M: {};
|
|
28
|
+
Defaults: {};
|
|
29
|
+
}, Readonly<import('packages/core').DiffProps> & Readonly<{
|
|
30
|
+
onError?: ((event: Event) => any) | undefined;
|
|
31
|
+
onChange?: ((position: number) => any) | undefined;
|
|
32
|
+
onRendered?: (() => any) | undefined;
|
|
33
|
+
}>, {
|
|
34
|
+
setPosition: (pos: number) => void;
|
|
35
|
+
getPosition: () => number;
|
|
36
|
+
}, {}, {}, {}, {
|
|
37
|
+
pixelSize: number;
|
|
38
|
+
grayscale: boolean;
|
|
39
|
+
background: string;
|
|
40
|
+
initialPosition: number;
|
|
41
|
+
}>;
|
|
42
|
+
__isFragment?: never;
|
|
43
|
+
__isTeleport?: never;
|
|
44
|
+
__isSuspense?: never;
|
|
45
|
+
} & import('vue').ComponentOptionsBase<Readonly<import('packages/core').DiffProps> & Readonly<{
|
|
46
|
+
onError?: ((event: Event) => any) | undefined;
|
|
47
|
+
onChange?: ((position: number) => any) | undefined;
|
|
48
|
+
onRendered?: (() => any) | undefined;
|
|
49
|
+
}>, {
|
|
50
|
+
setPosition: (pos: number) => void;
|
|
51
|
+
getPosition: () => number;
|
|
52
|
+
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
|
|
53
|
+
error: (event: Event) => any;
|
|
54
|
+
change: (position: number) => any;
|
|
55
|
+
rendered: () => any;
|
|
56
|
+
}, string, {
|
|
57
|
+
pixelSize: number;
|
|
58
|
+
grayscale: boolean;
|
|
59
|
+
background: string;
|
|
60
|
+
initialPosition: number;
|
|
61
|
+
}, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & (new () => {
|
|
62
|
+
$slots: {
|
|
63
|
+
before?(_: {}): any;
|
|
64
|
+
after?(_: {}): any;
|
|
65
|
+
};
|
|
66
|
+
}) & import('vue').Plugin;
|
|
67
|
+
export * from './types';
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export interface DiffProps {
|
|
2
|
+
/** Single image source — "after" side auto-pixelates this image */
|
|
3
|
+
src?: string;
|
|
4
|
+
/** Pixel block size for pixelation (default: 8) */
|
|
5
|
+
pixelSize?: number;
|
|
6
|
+
/** Apply grayscale transform to the pixelated side */
|
|
7
|
+
grayscale?: boolean;
|
|
8
|
+
/** Constrain colors to a custom palette (hex strings or RGB tuples) */
|
|
9
|
+
palette?: string[] | number[][];
|
|
10
|
+
/** Background color for transparent areas (default: '#FFFFFF') */
|
|
11
|
+
background?: string;
|
|
12
|
+
/** Initial slider position 0-100 (default: 50) */
|
|
13
|
+
initialPosition?: number;
|
|
14
|
+
/** Container width */
|
|
15
|
+
width?: number | string;
|
|
16
|
+
/** Container height */
|
|
17
|
+
height?: number | string;
|
|
18
|
+
/** Handle accent color (preset name or hex) */
|
|
19
|
+
color?: string;
|
|
20
|
+
}
|
|
21
|
+
export interface DiffEmits {
|
|
22
|
+
(e: 'change', position: number): void;
|
|
23
|
+
(e: 'rendered'): void;
|
|
24
|
+
(e: 'error', event: Event): void;
|
|
25
|
+
}
|
|
26
|
+
export interface DiffInstance {
|
|
27
|
+
setPosition(position: number): void;
|
|
28
|
+
getPosition(): number;
|
|
29
|
+
}
|
|
@@ -69,8 +69,8 @@ export declare const PxDropdown: {
|
|
|
69
69
|
}, string, {
|
|
70
70
|
effect: import('packages/core').TooltipEffect;
|
|
71
71
|
transition: string;
|
|
72
|
-
trigger: "hover" | "click" | "contextmenu";
|
|
73
72
|
placement: import('@popperjs/core').Placement;
|
|
73
|
+
trigger: "hover" | "click" | "contextmenu";
|
|
74
74
|
showTimeout: number;
|
|
75
75
|
hideTimeout: number;
|
|
76
76
|
enterable: boolean;
|
|
@@ -97,15 +97,15 @@ export declare const PxDropdown: {
|
|
|
97
97
|
} & Readonly<{
|
|
98
98
|
effect: import('packages/core').TooltipEffect;
|
|
99
99
|
transition: string;
|
|
100
|
-
trigger: "hover" | "click" | "contextmenu";
|
|
101
100
|
placement: import('@popperjs/core').Placement;
|
|
101
|
+
trigger: "hover" | "click" | "contextmenu";
|
|
102
102
|
showTimeout: number;
|
|
103
103
|
hideTimeout: number;
|
|
104
104
|
enterable: boolean;
|
|
105
105
|
}> & Omit<Readonly<import('packages/core').TooltipProps> & Readonly<{
|
|
106
106
|
"onVisible-change"?: ((value: boolean) => any) | undefined;
|
|
107
107
|
"onClick-outside"?: (() => any) | undefined;
|
|
108
|
-
}>, "toggle" | "show" | "hide" | ("effect" | "transition" | "
|
|
108
|
+
}>, "toggle" | "show" | "hide" | ("effect" | "transition" | "placement" | "trigger" | "showTimeout" | "hideTimeout" | "enterable")> & import('vue').ShallowUnwrapRef<{
|
|
109
109
|
show(): void;
|
|
110
110
|
hide(): void;
|
|
111
111
|
toggle(): void;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ColorTemplate } from '@sakana-element/utils';
|
|
2
|
+
import { InjectionKey } from 'vue';
|
|
3
|
+
import { FilterContext } from './types';
|
|
4
|
+
export declare const FILTER_CTX_KEY: InjectionKey<FilterContext>;
|
|
5
|
+
export declare const FILTER_COLOR_TEMPLATES: Record<string, ColorTemplate>;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
export declare const PxFilter: {
|
|
2
|
+
new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('packages/core').FilterProps> & Readonly<{
|
|
3
|
+
onChange?: ((value: import('packages/core').FilterValueType | import('packages/core').FilterValueType[] | undefined) => any) | undefined;
|
|
4
|
+
"onUpdate:modelValue"?: ((value: import('packages/core').FilterValueType | import('packages/core').FilterValueType[] | undefined) => any) | undefined;
|
|
5
|
+
}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
|
|
6
|
+
change: (value: import('packages/core').FilterValueType | import('packages/core').FilterValueType[] | undefined) => any;
|
|
7
|
+
"update:modelValue": (value: import('packages/core').FilterValueType | import('packages/core').FilterValueType[] | undefined) => any;
|
|
8
|
+
}, import('vue').PublicProps, {
|
|
9
|
+
disabled: boolean;
|
|
10
|
+
multiple: boolean;
|
|
11
|
+
}, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, HTMLDivElement, import('vue').ComponentProvideOptions, {
|
|
12
|
+
P: {};
|
|
13
|
+
B: {};
|
|
14
|
+
D: {};
|
|
15
|
+
C: {};
|
|
16
|
+
M: {};
|
|
17
|
+
Defaults: {};
|
|
18
|
+
}, Readonly<import('packages/core').FilterProps> & Readonly<{
|
|
19
|
+
onChange?: ((value: import('packages/core').FilterValueType | import('packages/core').FilterValueType[] | undefined) => any) | undefined;
|
|
20
|
+
"onUpdate:modelValue"?: ((value: import('packages/core').FilterValueType | import('packages/core').FilterValueType[] | undefined) => any) | undefined;
|
|
21
|
+
}>, {}, {}, {}, {}, {
|
|
22
|
+
disabled: boolean;
|
|
23
|
+
multiple: boolean;
|
|
24
|
+
}>;
|
|
25
|
+
__isFragment?: never;
|
|
26
|
+
__isTeleport?: never;
|
|
27
|
+
__isSuspense?: never;
|
|
28
|
+
} & import('vue').ComponentOptionsBase<Readonly<import('packages/core').FilterProps> & Readonly<{
|
|
29
|
+
onChange?: ((value: import('packages/core').FilterValueType | import('packages/core').FilterValueType[] | undefined) => any) | undefined;
|
|
30
|
+
"onUpdate:modelValue"?: ((value: import('packages/core').FilterValueType | import('packages/core').FilterValueType[] | undefined) => any) | undefined;
|
|
31
|
+
}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
|
|
32
|
+
change: (value: import('packages/core').FilterValueType | import('packages/core').FilterValueType[] | undefined) => any;
|
|
33
|
+
"update:modelValue": (value: import('packages/core').FilterValueType | import('packages/core').FilterValueType[] | undefined) => any;
|
|
34
|
+
}, string, {
|
|
35
|
+
disabled: boolean;
|
|
36
|
+
multiple: boolean;
|
|
37
|
+
}, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & (new () => {
|
|
38
|
+
$slots: {
|
|
39
|
+
default?(_: {}): any;
|
|
40
|
+
};
|
|
41
|
+
}) & import('vue').Plugin;
|
|
42
|
+
export declare const PxFilterItem: {
|
|
43
|
+
new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('packages/core').FilterItemProps> & Readonly<{}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, import('vue').PublicProps, {}, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, any, import('vue').ComponentProvideOptions, {
|
|
44
|
+
P: {};
|
|
45
|
+
B: {};
|
|
46
|
+
D: {};
|
|
47
|
+
C: {};
|
|
48
|
+
M: {};
|
|
49
|
+
Defaults: {};
|
|
50
|
+
}, Readonly<import('packages/core').FilterItemProps> & Readonly<{}>, {}, {}, {}, {}, {}>;
|
|
51
|
+
__isFragment?: never;
|
|
52
|
+
__isTeleport?: never;
|
|
53
|
+
__isSuspense?: never;
|
|
54
|
+
} & import('vue').ComponentOptionsBase<Readonly<import('packages/core').FilterItemProps> & Readonly<{}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, {}, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & (new () => {
|
|
55
|
+
$slots: {
|
|
56
|
+
default?(_: {}): any;
|
|
57
|
+
};
|
|
58
|
+
}) & import('vue').Plugin;
|
|
59
|
+
export * from './types';
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { ComputedRef } from 'vue';
|
|
2
|
+
export type FilterValueType = string | number;
|
|
3
|
+
export type FilterType = 'primary' | 'success' | 'warning' | 'danger' | 'info';
|
|
4
|
+
export interface FilterOptionProps {
|
|
5
|
+
value: FilterValueType;
|
|
6
|
+
label: string;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface FilterProps {
|
|
10
|
+
modelValue?: FilterValueType | FilterValueType[];
|
|
11
|
+
options?: FilterOptionProps[];
|
|
12
|
+
name?: string;
|
|
13
|
+
disabled?: boolean;
|
|
14
|
+
size?: 'small' | 'large';
|
|
15
|
+
type?: FilterType;
|
|
16
|
+
color?: string;
|
|
17
|
+
multiple?: boolean;
|
|
18
|
+
}
|
|
19
|
+
export interface FilterEmits {
|
|
20
|
+
(e: 'update:modelValue', value: FilterValueType | FilterValueType[] | undefined): void;
|
|
21
|
+
(e: 'change', value: FilterValueType | FilterValueType[] | undefined): void;
|
|
22
|
+
}
|
|
23
|
+
export interface FilterItemProps {
|
|
24
|
+
value: FilterValueType;
|
|
25
|
+
label?: string;
|
|
26
|
+
disabled?: boolean;
|
|
27
|
+
}
|
|
28
|
+
export interface FilterContext {
|
|
29
|
+
modelValue: ComputedRef<FilterValueType | FilterValueType[] | undefined>;
|
|
30
|
+
disabled: ComputedRef<boolean>;
|
|
31
|
+
size: ComputedRef<'small' | 'large' | undefined>;
|
|
32
|
+
type: ComputedRef<FilterType | undefined>;
|
|
33
|
+
color: ComputedRef<string | undefined>;
|
|
34
|
+
name: ComputedRef<string | undefined>;
|
|
35
|
+
multiple: ComputedRef<boolean>;
|
|
36
|
+
hasSelection: ComputedRef<boolean>;
|
|
37
|
+
changeEvent(value: FilterValueType | undefined): void;
|
|
38
|
+
}
|
|
@@ -24,3 +24,4 @@ export * from './types';
|
|
|
24
24
|
*/
|
|
25
25
|
export declare function registerDefaultPixelIcons(): void;
|
|
26
26
|
export { defaultPixelIcons } from './icons';
|
|
27
|
+
export { registerPixelIcon, registerPixelIcons, hasPixelIcon, getRegisteredIconNames, getPixelIcon, resolveIconName, getIconNameMap, } from '@sakana-element/utils';
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export declare const PxKbd: {
|
|
2
|
+
new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('packages/core').KbdProps> & Readonly<{}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, import('vue').PublicProps, {
|
|
3
|
+
size: import('packages/core').KbdSize;
|
|
4
|
+
}, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, HTMLSpanElement, import('vue').ComponentProvideOptions, {
|
|
5
|
+
P: {};
|
|
6
|
+
B: {};
|
|
7
|
+
D: {};
|
|
8
|
+
C: {};
|
|
9
|
+
M: {};
|
|
10
|
+
Defaults: {};
|
|
11
|
+
}, Readonly<import('packages/core').KbdProps> & Readonly<{}>, {}, {}, {}, {}, {
|
|
12
|
+
size: import('packages/core').KbdSize;
|
|
13
|
+
}>;
|
|
14
|
+
__isFragment?: never;
|
|
15
|
+
__isTeleport?: never;
|
|
16
|
+
__isSuspense?: never;
|
|
17
|
+
} & import('vue').ComponentOptionsBase<Readonly<import('packages/core').KbdProps> & Readonly<{}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, {
|
|
18
|
+
size: import('packages/core').KbdSize;
|
|
19
|
+
}, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & (new () => {
|
|
20
|
+
$slots: {
|
|
21
|
+
default?(_: {}): any;
|
|
22
|
+
};
|
|
23
|
+
}) & import('vue').Plugin;
|
|
24
|
+
export * from './types';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export type KbdSize = 'small' | 'default' | 'large';
|
|
2
|
+
export type KbdKey = 'command' | 'shift' | 'ctrl' | 'alt' | 'option' | 'enter' | 'delete' | 'escape' | 'tab' | 'capslock' | 'up' | 'down' | 'left' | 'right' | 'space' | 'win' | 'fn' | 'home' | 'end' | 'pageup' | 'pagedown';
|
|
3
|
+
export interface KbdKeyInfo {
|
|
4
|
+
label: string;
|
|
5
|
+
icon?: string;
|
|
6
|
+
}
|
|
7
|
+
export interface KbdProps {
|
|
8
|
+
size?: KbdSize;
|
|
9
|
+
keys?: KbdKey[];
|
|
10
|
+
}
|
|
@@ -15,9 +15,9 @@ export declare const PxPixelate: {
|
|
|
15
15
|
error: (event: Event) => any;
|
|
16
16
|
rendered: () => any;
|
|
17
17
|
}, import('vue').PublicProps, {
|
|
18
|
-
background: string;
|
|
19
18
|
pixelSize: number;
|
|
20
19
|
grayscale: boolean;
|
|
20
|
+
background: string;
|
|
21
21
|
}, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {
|
|
22
22
|
canvasRef: HTMLCanvasElement;
|
|
23
23
|
originRef: HTMLImageElement;
|
|
@@ -41,9 +41,9 @@ export declare const PxPixelate: {
|
|
|
41
41
|
};
|
|
42
42
|
getImageData: () => ImageData | null;
|
|
43
43
|
}, {}, {}, {}, {
|
|
44
|
-
background: string;
|
|
45
44
|
pixelSize: number;
|
|
46
45
|
grayscale: boolean;
|
|
46
|
+
background: string;
|
|
47
47
|
}>;
|
|
48
48
|
__isFragment?: never;
|
|
49
49
|
__isTeleport?: never;
|
|
@@ -64,8 +64,8 @@ export declare const PxPixelate: {
|
|
|
64
64
|
error: (event: Event) => any;
|
|
65
65
|
rendered: () => any;
|
|
66
66
|
}, string, {
|
|
67
|
-
background: string;
|
|
68
67
|
pixelSize: number;
|
|
69
68
|
grayscale: boolean;
|
|
69
|
+
background: string;
|
|
70
70
|
}, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & import('vue').Plugin;
|
|
71
71
|
export * from './types';
|