sakana-element 2.2.0 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +98 -25
- package/dist/es/{Alert-C76ZWSVk.js → Alert-DfLsJvQD.js} +2 -2
- package/dist/es/Avatar-Ci4OKsv7.js +9 -0
- package/dist/es/{Badge-CoFWwBwv.js → Badge-B4wEToK6.js} +2 -2
- package/dist/es/{Breadcrumb-BtrwTVKW.js → Breadcrumb-BFzww8jd.js} +2 -2
- package/dist/es/{Button-S_31-UWJ.js → Button-DbFviVWb.js} +3 -3
- package/dist/es/{Card-DcW6nHYD.js → Card-ClRqKkc_.js} +2 -2
- package/dist/es/ChatBubble-DFEV_lVI.js +9 -0
- package/dist/es/Checkbox-l86YI3Fr.js +51 -0
- package/dist/es/{Collapse-DsS7M-m3.js → Collapse-B67v6RSE.js} +4 -4
- package/dist/es/{ConfigProvider-BgIewHXP.js → ConfigProvider-BCoGbcS5.js} +2 -2
- package/dist/es/Diff-BLiniLom.js +64 -0
- package/dist/es/Divider-DDSOHv8G.js +9 -0
- package/dist/es/Drawer-apeXw6EO.js +40 -0
- package/dist/es/Dropdown-By9qIErf.js +104 -0
- package/dist/es/{FileInput-BQ59woas.js → FileInput-CZ5jTfB_.js} +3 -3
- package/dist/es/Filter-B_1zU4Dq.js +40 -0
- package/dist/es/Form-B_XDnSjK.js +123 -0
- package/dist/es/{Icon-DpJyuj7c.js → Icon-D6qRB3pq.js} +1 -1
- package/dist/es/Indicator-C6Ip4dpP.js +9 -0
- package/dist/es/{Input-CiE4bPJN.js → Input-bThwBbNZ.js} +7 -7
- package/dist/es/Kbd-DXNjs7at.js +13 -0
- package/dist/es/{Link-B9B2APZq.js → Link-08Ee61Fv.js} +1 -1
- package/dist/es/{Loading-BW99pE5N.js → Loading-ByI9mjss.js} +13 -13
- package/dist/es/Message-CGG-lV5I.js +152 -0
- package/dist/es/Notification-B4clKY5h.js +69 -0
- package/dist/es/{Overlay-BRDSWspM.js → Overlay-6iPenJB1.js} +1 -1
- package/dist/es/Pixelate-A8J7jxDW.js +39 -0
- package/dist/es/Popconfirm-gcHGcOTz.js +23 -0
- package/dist/es/Progress-DFUBJQ4X.js +12 -0
- package/dist/es/Radio-CLBa1XIM.js +33 -0
- package/dist/es/Resizable-BWrFr2oj.js +151 -0
- package/dist/es/{Select-Dwqv8isB.js → Select-BtLqds1d.js} +20 -20
- package/dist/es/Skeleton-CGUQv3nQ.js +15 -0
- package/dist/es/{Switch-B1Gnv1tB.js → Switch-CZJ-S77_.js} +3 -3
- package/dist/es/Table-lHbxiyGq.js +10 -0
- package/dist/es/Tooltip-CdPqNYdn.js +74 -0
- package/dist/es/Validator-7ZT_nXDZ.js +40 -0
- package/dist/es/hooks-pU4JmsO3.js +171 -0
- package/dist/es/index.js +107 -70
- package/dist/es/utils-BXICIEsD.js +139 -0
- package/dist/es/{vendor-DXmGx29U.js → vendor-DrBJKLFW.js} +254 -210
- package/dist/index.css +1 -1
- package/dist/theme/Avatar.css +13 -43
- package/dist/theme/Badge.css +151 -151
- package/dist/theme/Breadcrumb.css +46 -4
- package/dist/theme/Button.css +72 -8
- package/dist/theme/Card.css +177 -93
- package/dist/theme/ChatBubble.css +218 -0
- package/dist/theme/Checkbox.css +604 -0
- package/dist/theme/Collapse.css +96 -96
- package/dist/theme/Diff.css +110 -0
- package/dist/theme/Divider.css +150 -0
- package/dist/theme/Drawer.css +206 -0
- package/dist/theme/Dropdown.css +359 -75
- package/dist/theme/FileInput.css +32 -0
- package/dist/theme/Filter.css +598 -0
- package/dist/theme/Indicator.css +159 -0
- package/dist/theme/Input.css +414 -406
- package/dist/theme/Kbd.css +104 -0
- package/dist/theme/Link.css +22 -3
- package/dist/theme/Loading.css +50 -12
- package/dist/theme/Message.css +250 -41
- package/dist/theme/Notification.css +232 -42
- package/dist/theme/Popconfirm.css +23 -7
- package/dist/theme/Progress.css +278 -0
- package/dist/theme/Radio.css +492 -0
- package/dist/theme/Resizable.css +95 -0
- package/dist/theme/Select.css +198 -88
- package/dist/theme/Skeleton.css +192 -0
- package/dist/theme/Switch.css +22 -3
- package/dist/theme/Table.css +680 -0
- package/dist/theme/Tooltip.css +150 -26
- package/dist/theme/Validator.css +25 -0
- package/dist/types/components/Avatar/types.d.ts +0 -2
- 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/Checkbox/constants.d.ts +5 -0
- package/dist/types/components/Checkbox/index.d.ts +94 -0
- package/dist/types/components/Checkbox/types.d.ts +46 -0
- package/dist/types/components/Collapse/index.d.ts +5 -5
- 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/Divider/index.d.ts +30 -0
- package/dist/types/components/Divider/types.d.ts +10 -0
- package/dist/types/components/Drawer/constants.d.ts +1 -0
- package/dist/types/components/Drawer/index.d.ts +72 -0
- package/dist/types/components/Drawer/types.d.ts +20 -0
- package/dist/types/components/Dropdown/index.d.ts +13 -3
- package/dist/types/components/Dropdown/types.d.ts +3 -0
- package/dist/types/components/Dropdown/useDropdownKeyboard.d.ts +8 -0
- package/dist/types/components/FileInput/index.d.ts +5 -5
- 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/Indicator/constants.d.ts +2 -0
- package/dist/types/components/Indicator/index.d.ts +28 -0
- package/dist/types/components/Indicator/types.d.ts +10 -0
- package/dist/types/components/Input/index.d.ts +10 -10
- 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/Message/methods.d.ts +2 -0
- package/dist/types/components/Message/types.d.ts +7 -1
- package/dist/types/components/MessageBox/types.d.ts +14 -2
- package/dist/types/components/Notification/methods.d.ts +3 -0
- package/dist/types/components/Notification/types.d.ts +8 -2
- package/dist/types/components/Pixelate/constants.d.ts +2 -0
- package/dist/types/components/Pixelate/index.d.ts +71 -0
- package/dist/types/components/Pixelate/types.d.ts +23 -0
- package/dist/types/components/Popconfirm/index.d.ts +18 -9
- package/dist/types/components/Popconfirm/types.d.ts +2 -1
- package/dist/types/components/Progress/constants.d.ts +2 -0
- package/dist/types/components/Progress/index.d.ts +50 -0
- package/dist/types/components/Progress/types.d.ts +22 -0
- package/dist/types/components/Radio/constants.d.ts +5 -0
- package/dist/types/components/Radio/index.d.ts +88 -0
- package/dist/types/components/Radio/types.d.ts +43 -0
- 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 +32 -23
- package/dist/types/components/Skeleton/index.d.ts +36 -0
- package/dist/types/components/Skeleton/types.d.ts +12 -0
- package/dist/types/components/Switch/index.d.ts +5 -5
- package/dist/types/components/Table/index.d.ts +27 -0
- package/dist/types/components/Table/types.d.ts +20 -0
- package/dist/types/components/Tooltip/index.d.ts +9 -3
- package/dist/types/components/Tooltip/types.d.ts +7 -0
- 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 +15 -0
- package/dist/types/hooks/index.d.ts +3 -1
- package/dist/types/hooks/useDraggable.d.ts +7 -0
- package/dist/types/hooks/useFocusTrap.d.ts +5 -0
- package/dist/types/utils/index.d.ts +2 -0
- package/dist/types/utils/instance-management.d.ts +40 -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 +4 -4
- package/dist/umd/index.umd.cjs.gz +0 -0
- package/package.json +59 -59
- package/dist/es/Avatar-CxsRW-wl.js +0 -9
- package/dist/es/Dropdown-GcomGMAI.js +0 -40
- package/dist/es/Form-j90EzLXU.js +0 -122
- package/dist/es/Message-DCNnTUje.js +0 -123
- package/dist/es/Notification-CBzY5904.js +0 -58
- package/dist/es/Popconfirm-DF6d2ORS.js +0 -23
- package/dist/es/Tooltip-k6gKnMyt.js +0 -74
- package/dist/es/hooks-BaG7l8K5.js +0 -116
- package/dist/es/utils-bsCscZfS.js +0 -84
package/dist/theme/Dropdown.css
CHANGED
|
@@ -1,18 +1,44 @@
|
|
|
1
1
|
/* Dropdown Variables */
|
|
2
2
|
.px-dropdown .px-dropdown__menu {
|
|
3
|
-
--px-dropdown-menuItem-hover-fill: var(--px-
|
|
4
|
-
--px-dropdown-menuItem-hover-color:
|
|
3
|
+
--px-dropdown-menuItem-hover-fill: var(--px-color-primary);
|
|
4
|
+
--px-dropdown-menuItem-hover-color: #fff;
|
|
5
5
|
--px-dropdown-menuItem-disabled-color: var(--px-text-color-disabled);
|
|
6
|
-
--px-dropdown-menuItem-divided-color: var(--px-border-color-
|
|
6
|
+
--px-dropdown-menuItem-divided-color: var(--px-border-color-lighter);
|
|
7
7
|
--px-dropdown-shadow-color: var(--px-shadow-color-dark);
|
|
8
|
+
--px-dropdown-border-color: var(--px-border-color);
|
|
9
|
+
--px-dropdown-bg-color: var(--px-bg-color);
|
|
10
|
+
|
|
11
|
+
/* Beveled inset for 3D raised-panel depth */
|
|
12
|
+
--px-dropdown-inset-highlight: inset 2px 2px 0 0 rgba(255, 255, 255, 0.6);
|
|
13
|
+
--px-dropdown-inset-shadow: inset -2px -2px 0 0 rgba(0, 0, 0, 0.25);
|
|
8
14
|
}
|
|
9
15
|
/* Base Dropdown Styles - Pixel Game Menu */
|
|
10
16
|
.px-dropdown {
|
|
11
17
|
display: inline-block;
|
|
12
18
|
font-family: var(--px-font-family);
|
|
19
|
+
|
|
20
|
+
outline: none;
|
|
13
21
|
}
|
|
14
22
|
.px-dropdown .px-tooltip {
|
|
15
|
-
|
|
23
|
+
/* 6px vertical clears staircase corners; 4px horizontal matches border inset */
|
|
24
|
+
--px-tooltip-padding: 6px 4px;
|
|
25
|
+
--px-tooltip-border-color: transparent;
|
|
26
|
+
--px-tooltip-shadow-color: transparent;
|
|
27
|
+
--px-shadow-offset-x: 0px;
|
|
28
|
+
--px-shadow-offset-y: 0px;
|
|
29
|
+
}
|
|
30
|
+
.px-dropdown .px-tooltip .px-tooltip__popper {
|
|
31
|
+
filter: none;
|
|
32
|
+
}
|
|
33
|
+
/* Remove staircase border layer from popup */
|
|
34
|
+
.px-dropdown .px-tooltip .px-tooltip__popper::before {
|
|
35
|
+
display: none;
|
|
36
|
+
}
|
|
37
|
+
/* Enhanced pixel-art bevel on fill layer */
|
|
38
|
+
.px-dropdown .px-tooltip .px-tooltip__popper::after {
|
|
39
|
+
box-shadow:
|
|
40
|
+
inset 2px 2px 0 0 rgba(255, 255, 255, 0.6),
|
|
41
|
+
inset -2px -2px 0 0 rgba(0, 0, 0, 0.15);
|
|
16
42
|
}
|
|
17
43
|
/* Disabled state */
|
|
18
44
|
.px-dropdown.is-disabled > * {
|
|
@@ -24,7 +50,24 @@
|
|
|
24
50
|
list-style-type: none;
|
|
25
51
|
margin: 0;
|
|
26
52
|
padding: 4px 0;
|
|
27
|
-
background: var(--px-bg-color);
|
|
53
|
+
background: var(--px-dropdown-bg-color);
|
|
54
|
+
position: relative;
|
|
55
|
+
outline: none;
|
|
56
|
+
}
|
|
57
|
+
/* Pixel-art scrollbar */
|
|
58
|
+
.px-dropdown__menu::-webkit-scrollbar {
|
|
59
|
+
width: 10px;
|
|
60
|
+
}
|
|
61
|
+
.px-dropdown__menu::-webkit-scrollbar-track {
|
|
62
|
+
background: var(--px-fill-color-light);
|
|
63
|
+
border-left: 2px solid var(--px-dropdown-border-color);
|
|
64
|
+
}
|
|
65
|
+
.px-dropdown__menu::-webkit-scrollbar-thumb {
|
|
66
|
+
background: var(--px-fill-color-darker, var(--px-border-color));
|
|
67
|
+
border: 2px solid var(--px-dropdown-border-color);
|
|
68
|
+
}
|
|
69
|
+
.px-dropdown__menu::-webkit-scrollbar-thumb:hover {
|
|
70
|
+
background: var(--px-dropdown-menuItem-hover-fill);
|
|
28
71
|
}
|
|
29
72
|
/* Menu items - Pixel RPG menu style */
|
|
30
73
|
.px-dropdown__menu .px-dropdown__item {
|
|
@@ -32,8 +75,8 @@
|
|
|
32
75
|
align-items: center;
|
|
33
76
|
white-space: nowrap;
|
|
34
77
|
list-style: none;
|
|
35
|
-
line-height:
|
|
36
|
-
padding: 8px 16px;
|
|
78
|
+
line-height: 22px;
|
|
79
|
+
padding: 8px 16px 8px 22px;
|
|
37
80
|
margin: 0;
|
|
38
81
|
font-size: var(--px-font-size-base);
|
|
39
82
|
font-family: var(--px-font-family);
|
|
@@ -42,69 +85,194 @@
|
|
|
42
85
|
outline: none;
|
|
43
86
|
position: relative;
|
|
44
87
|
transition: none;
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
88
|
+
z-index: 1;
|
|
89
|
+
}
|
|
90
|
+
/* Item icon */
|
|
91
|
+
.px-dropdown__menu .px-dropdown__item .px-dropdown__item-icon {
|
|
92
|
+
margin-right: 8px;
|
|
93
|
+
font-size: var(--px-font-size-base);
|
|
94
|
+
width: 16px;
|
|
95
|
+
flex-shrink: 0;
|
|
96
|
+
display: flex;
|
|
97
|
+
align-items: center;
|
|
98
|
+
}
|
|
99
|
+
/* Pixel arrow indicator — right-pointing staircase triangle */
|
|
100
|
+
.px-dropdown__menu .px-dropdown__item::before {
|
|
101
|
+
content: '';
|
|
102
|
+
position: absolute;
|
|
103
|
+
left: 8px;
|
|
104
|
+
top: 50%;
|
|
105
|
+
transform: translateY(-50%);
|
|
106
|
+
width: 6px;
|
|
107
|
+
height: 8px;
|
|
108
|
+
background: var(--px-dropdown-menuItem-hover-color);
|
|
109
|
+
clip-path: polygon(
|
|
110
|
+
0 0, 2px 0,
|
|
111
|
+
2px 2px, 4px 2px,
|
|
112
|
+
4px 4px, 6px 4px,
|
|
113
|
+
6px 4px, 4px 4px,
|
|
114
|
+
4px 6px, 2px 6px,
|
|
115
|
+
2px 8px, 0 8px
|
|
116
|
+
);
|
|
117
|
+
opacity: 0;
|
|
118
|
+
z-index: 2;
|
|
119
|
+
}
|
|
120
|
+
/* Background highlight layer — full width selection bar */
|
|
121
|
+
.px-dropdown__menu .px-dropdown__item::after {
|
|
122
|
+
content: '';
|
|
123
|
+
position: absolute;
|
|
124
|
+
inset: 0;
|
|
125
|
+
background: transparent;
|
|
126
|
+
z-index: -1;
|
|
127
|
+
}
|
|
128
|
+
/* Hover & focus effect - Pixel highlight with beveled 3D bar */
|
|
129
|
+
.px-dropdown__menu .px-dropdown__item:hover,
|
|
130
|
+
.px-dropdown__menu .px-dropdown__item:focus {
|
|
49
131
|
color: var(--px-dropdown-menuItem-hover-color);
|
|
50
132
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
133
|
+
.px-dropdown__menu .px-dropdown__item:hover::before, .px-dropdown__menu .px-dropdown__item:focus::before {
|
|
134
|
+
opacity: 1;
|
|
135
|
+
}
|
|
136
|
+
.px-dropdown__menu .px-dropdown__item:hover::after, .px-dropdown__menu .px-dropdown__item:focus::after {
|
|
137
|
+
background-color: var(--px-dropdown-menuItem-hover-fill);
|
|
138
|
+
box-shadow: var(--px-dropdown-inset-highlight), var(--px-dropdown-inset-shadow);
|
|
139
|
+
}
|
|
140
|
+
/* Active/pressed - reversed bevel for "pressed in" feel */
|
|
141
|
+
.px-dropdown__menu .px-dropdown__item:active:not(.is-disabled)::after {
|
|
142
|
+
box-shadow: var(--px-dropdown-inset-shadow), var(--px-dropdown-inset-highlight);
|
|
58
143
|
}
|
|
59
144
|
/* Disabled state */
|
|
60
145
|
.px-dropdown__menu .px-dropdown__item.is-disabled {
|
|
61
146
|
color: var(--px-dropdown-menuItem-disabled-color);
|
|
62
147
|
cursor: not-allowed;
|
|
63
|
-
|
|
64
|
-
}
|
|
65
|
-
.px-dropdown__menu .px-dropdown__item.is-disabled
|
|
66
|
-
|
|
67
|
-
}
|
|
68
|
-
.px-dropdown__menu .px-dropdown__item.is-disabled:hover
|
|
69
|
-
|
|
148
|
+
opacity: 0.55;
|
|
149
|
+
}
|
|
150
|
+
.px-dropdown__menu .px-dropdown__item.is-disabled::before {
|
|
151
|
+
opacity: 0 !important;
|
|
152
|
+
}
|
|
153
|
+
.px-dropdown__menu .px-dropdown__item.is-disabled:hover,
|
|
154
|
+
.px-dropdown__menu .px-dropdown__item.is-disabled:focus {
|
|
155
|
+
color: var(--px-dropdown-menuItem-disabled-color);
|
|
156
|
+
}
|
|
157
|
+
.px-dropdown__menu .px-dropdown__item.is-disabled:hover::after, .px-dropdown__menu .px-dropdown__item.is-disabled:focus::after {
|
|
158
|
+
background-color: transparent;
|
|
159
|
+
box-shadow: none;
|
|
160
|
+
}
|
|
161
|
+
/* First item — top staircase corners on highlight layer */
|
|
162
|
+
.px-dropdown__menu .px-dropdown__item:first-child::after {
|
|
163
|
+
top: 2px;
|
|
164
|
+
clip-path: polygon(
|
|
165
|
+
0 2px, 2px 2px, 2px 0, 4px 0,
|
|
166
|
+
calc(100% - 4px) 0, calc(100% - 4px) 2px, calc(100% - 2px) 2px, 100% 2px,
|
|
167
|
+
100% 100%,
|
|
168
|
+
0 100%
|
|
169
|
+
);
|
|
170
|
+
}
|
|
171
|
+
/* Last item — bottom staircase corners on highlight layer */
|
|
172
|
+
.px-dropdown__menu .px-dropdown__item:last-child::after {
|
|
173
|
+
bottom: 2px;
|
|
174
|
+
clip-path: polygon(
|
|
175
|
+
0 0,
|
|
176
|
+
100% 0,
|
|
177
|
+
100% calc(100% - 2px), calc(100% - 2px) calc(100% - 2px), calc(100% - 2px) 100%, calc(100% - 4px) 100%,
|
|
178
|
+
4px 100%, 4px 100%, 2px calc(100% - 2px), 0 calc(100% - 2px)
|
|
179
|
+
);
|
|
180
|
+
}
|
|
181
|
+
/* Single item — both top and bottom staircase corners */
|
|
182
|
+
.px-dropdown__menu .px-dropdown__item:first-child:last-child::after {
|
|
183
|
+
top: 2px;
|
|
184
|
+
bottom: 2px;
|
|
185
|
+
clip-path: polygon(
|
|
186
|
+
0 2px, 2px 2px, 2px 0, 4px 0,
|
|
187
|
+
calc(100% - 4px) 0, calc(100% - 4px) 2px, calc(100% - 2px) 2px, 100% 2px,
|
|
188
|
+
100% calc(100% - 2px), calc(100% - 2px) calc(100% - 2px), calc(100% - 2px) 100%, calc(100% - 4px) 100%,
|
|
189
|
+
4px 100%, 4px 100%, 2px calc(100% - 2px), 0 calc(100% - 2px)
|
|
190
|
+
);
|
|
70
191
|
}
|
|
71
192
|
/* Size variants */
|
|
72
193
|
.px-dropdown__menu .px-dropdown__item--large {
|
|
73
|
-
padding: 10px 20px;
|
|
74
|
-
line-height:
|
|
194
|
+
padding: 10px 20px 10px 26px;
|
|
195
|
+
line-height: 26px;
|
|
75
196
|
font-size: var(--px-font-size-large);
|
|
76
197
|
}
|
|
77
|
-
.px-dropdown__menu .px-dropdown__item--large
|
|
78
|
-
left:
|
|
198
|
+
.px-dropdown__menu .px-dropdown__item--large::before {
|
|
199
|
+
left: 10px;
|
|
200
|
+
width: 8px;
|
|
201
|
+
height: 12px;
|
|
202
|
+
clip-path: polygon(
|
|
203
|
+
0 0, 2px 0,
|
|
204
|
+
2px 2px, 4px 2px,
|
|
205
|
+
4px 4px, 6px 4px,
|
|
206
|
+
6px 6px, 8px 6px,
|
|
207
|
+
8px 6px, 6px 6px,
|
|
208
|
+
6px 8px, 4px 8px,
|
|
209
|
+
4px 10px, 2px 10px,
|
|
210
|
+
2px 12px, 0 12px
|
|
211
|
+
);
|
|
79
212
|
}
|
|
80
213
|
.px-dropdown__menu .px-dropdown__item--small {
|
|
81
|
-
padding:
|
|
82
|
-
line-height:
|
|
214
|
+
padding: 5px 12px 5px 18px;
|
|
215
|
+
line-height: 18px;
|
|
83
216
|
font-size: var(--px-font-size-small);
|
|
84
217
|
}
|
|
85
|
-
.px-dropdown__menu .px-dropdown__item--small
|
|
86
|
-
left:
|
|
218
|
+
.px-dropdown__menu .px-dropdown__item--small::before {
|
|
219
|
+
left: 6px;
|
|
220
|
+
width: 4px;
|
|
221
|
+
height: 6px;
|
|
87
222
|
}
|
|
88
|
-
/* Divider - Pixel
|
|
223
|
+
/* Divider - Pixel-dashed gradient line */
|
|
89
224
|
.px-dropdown__menu .divided-placeholder {
|
|
90
|
-
margin: 6px
|
|
91
|
-
|
|
225
|
+
margin: 4px 6px;
|
|
226
|
+
height: 2px;
|
|
227
|
+
background-image: repeating-linear-gradient(
|
|
228
|
+
to right,
|
|
229
|
+
var(--px-dropdown-menuItem-divided-color) 0px,
|
|
230
|
+
var(--px-dropdown-menuItem-divided-color) 6px,
|
|
231
|
+
transparent 6px,
|
|
232
|
+
transparent 12px
|
|
233
|
+
);
|
|
92
234
|
}
|
|
93
235
|
/* Dropdown Variables */
|
|
94
236
|
.px-dropdown .px-dropdown__menu {
|
|
95
|
-
--px-dropdown-menuItem-hover-fill: var(--px-
|
|
96
|
-
--px-dropdown-menuItem-hover-color:
|
|
237
|
+
--px-dropdown-menuItem-hover-fill: var(--px-color-primary);
|
|
238
|
+
--px-dropdown-menuItem-hover-color: #fff;
|
|
97
239
|
--px-dropdown-menuItem-disabled-color: var(--px-text-color-disabled);
|
|
98
|
-
--px-dropdown-menuItem-divided-color: var(--px-border-color-
|
|
240
|
+
--px-dropdown-menuItem-divided-color: var(--px-border-color-lighter);
|
|
99
241
|
--px-dropdown-shadow-color: var(--px-shadow-color-dark);
|
|
242
|
+
--px-dropdown-border-color: var(--px-border-color);
|
|
243
|
+
--px-dropdown-bg-color: var(--px-bg-color);
|
|
244
|
+
|
|
245
|
+
/* Beveled inset for 3D raised-panel depth */
|
|
246
|
+
--px-dropdown-inset-highlight: inset 2px 2px 0 0 rgba(255, 255, 255, 0.6);
|
|
247
|
+
--px-dropdown-inset-shadow: inset -2px -2px 0 0 rgba(0, 0, 0, 0.25);
|
|
100
248
|
}
|
|
101
249
|
/* Base Dropdown Styles - Pixel Game Menu */
|
|
102
250
|
.px-dropdown {
|
|
103
251
|
display: inline-block;
|
|
104
252
|
font-family: var(--px-font-family);
|
|
253
|
+
|
|
254
|
+
outline: none;
|
|
105
255
|
}
|
|
106
256
|
.px-dropdown .px-tooltip {
|
|
107
|
-
|
|
257
|
+
/* 6px vertical clears staircase corners; 4px horizontal matches border inset */
|
|
258
|
+
--px-tooltip-padding: 6px 4px;
|
|
259
|
+
--px-tooltip-border-color: transparent;
|
|
260
|
+
--px-tooltip-shadow-color: transparent;
|
|
261
|
+
--px-shadow-offset-x: 0px;
|
|
262
|
+
--px-shadow-offset-y: 0px;
|
|
263
|
+
}
|
|
264
|
+
.px-dropdown .px-tooltip .px-tooltip__popper {
|
|
265
|
+
filter: none;
|
|
266
|
+
}
|
|
267
|
+
/* Remove staircase border layer from popup */
|
|
268
|
+
.px-dropdown .px-tooltip .px-tooltip__popper::before {
|
|
269
|
+
display: none;
|
|
270
|
+
}
|
|
271
|
+
/* Enhanced pixel-art bevel on fill layer */
|
|
272
|
+
.px-dropdown .px-tooltip .px-tooltip__popper::after {
|
|
273
|
+
box-shadow:
|
|
274
|
+
inset 2px 2px 0 0 rgba(255, 255, 255, 0.6),
|
|
275
|
+
inset -2px -2px 0 0 rgba(0, 0, 0, 0.15);
|
|
108
276
|
}
|
|
109
277
|
/* Disabled state */
|
|
110
278
|
.px-dropdown.is-disabled > * {
|
|
@@ -116,7 +284,24 @@
|
|
|
116
284
|
list-style-type: none;
|
|
117
285
|
margin: 0;
|
|
118
286
|
padding: 4px 0;
|
|
119
|
-
background: var(--px-bg-color);
|
|
287
|
+
background: var(--px-dropdown-bg-color);
|
|
288
|
+
position: relative;
|
|
289
|
+
outline: none;
|
|
290
|
+
}
|
|
291
|
+
/* Pixel-art scrollbar */
|
|
292
|
+
.px-dropdown__menu::-webkit-scrollbar {
|
|
293
|
+
width: 10px;
|
|
294
|
+
}
|
|
295
|
+
.px-dropdown__menu::-webkit-scrollbar-track {
|
|
296
|
+
background: var(--px-fill-color-light);
|
|
297
|
+
border-left: 2px solid var(--px-dropdown-border-color);
|
|
298
|
+
}
|
|
299
|
+
.px-dropdown__menu::-webkit-scrollbar-thumb {
|
|
300
|
+
background: var(--px-fill-color-darker, var(--px-border-color));
|
|
301
|
+
border: 2px solid var(--px-dropdown-border-color);
|
|
302
|
+
}
|
|
303
|
+
.px-dropdown__menu::-webkit-scrollbar-thumb:hover {
|
|
304
|
+
background: var(--px-dropdown-menuItem-hover-fill);
|
|
120
305
|
}
|
|
121
306
|
/* Menu items - Pixel RPG menu style */
|
|
122
307
|
.px-dropdown__menu .px-dropdown__item {
|
|
@@ -124,8 +309,8 @@
|
|
|
124
309
|
align-items: center;
|
|
125
310
|
white-space: nowrap;
|
|
126
311
|
list-style: none;
|
|
127
|
-
line-height:
|
|
128
|
-
padding: 8px 16px;
|
|
312
|
+
line-height: 22px;
|
|
313
|
+
padding: 8px 16px 8px 22px;
|
|
129
314
|
margin: 0;
|
|
130
315
|
font-size: var(--px-font-size-base);
|
|
131
316
|
font-family: var(--px-font-family);
|
|
@@ -134,54 +319,153 @@
|
|
|
134
319
|
outline: none;
|
|
135
320
|
position: relative;
|
|
136
321
|
transition: none;
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
322
|
+
z-index: 1;
|
|
323
|
+
}
|
|
324
|
+
/* Item icon */
|
|
325
|
+
.px-dropdown__menu .px-dropdown__item .px-dropdown__item-icon {
|
|
326
|
+
margin-right: 8px;
|
|
327
|
+
font-size: var(--px-font-size-base);
|
|
328
|
+
width: 16px;
|
|
329
|
+
flex-shrink: 0;
|
|
330
|
+
display: flex;
|
|
331
|
+
align-items: center;
|
|
332
|
+
}
|
|
333
|
+
/* Pixel arrow indicator — right-pointing staircase triangle */
|
|
334
|
+
.px-dropdown__menu .px-dropdown__item::before {
|
|
335
|
+
content: '';
|
|
336
|
+
position: absolute;
|
|
337
|
+
left: 8px;
|
|
338
|
+
top: 50%;
|
|
339
|
+
transform: translateY(-50%);
|
|
340
|
+
width: 6px;
|
|
341
|
+
height: 8px;
|
|
342
|
+
background: var(--px-dropdown-menuItem-hover-color);
|
|
343
|
+
clip-path: polygon(
|
|
344
|
+
0 0, 2px 0,
|
|
345
|
+
2px 2px, 4px 2px,
|
|
346
|
+
4px 4px, 6px 4px,
|
|
347
|
+
6px 4px, 4px 4px,
|
|
348
|
+
4px 6px, 2px 6px,
|
|
349
|
+
2px 8px, 0 8px
|
|
350
|
+
);
|
|
351
|
+
opacity: 0;
|
|
352
|
+
z-index: 2;
|
|
353
|
+
}
|
|
354
|
+
/* Background highlight layer — full width selection bar */
|
|
355
|
+
.px-dropdown__menu .px-dropdown__item::after {
|
|
356
|
+
content: '';
|
|
357
|
+
position: absolute;
|
|
358
|
+
inset: 0;
|
|
359
|
+
background: transparent;
|
|
360
|
+
z-index: -1;
|
|
361
|
+
}
|
|
362
|
+
/* Hover & focus effect - Pixel highlight with beveled 3D bar */
|
|
363
|
+
.px-dropdown__menu .px-dropdown__item:hover,
|
|
364
|
+
.px-dropdown__menu .px-dropdown__item:focus {
|
|
141
365
|
color: var(--px-dropdown-menuItem-hover-color);
|
|
142
366
|
}
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
367
|
+
.px-dropdown__menu .px-dropdown__item:hover::before, .px-dropdown__menu .px-dropdown__item:focus::before {
|
|
368
|
+
opacity: 1;
|
|
369
|
+
}
|
|
370
|
+
.px-dropdown__menu .px-dropdown__item:hover::after, .px-dropdown__menu .px-dropdown__item:focus::after {
|
|
371
|
+
background-color: var(--px-dropdown-menuItem-hover-fill);
|
|
372
|
+
box-shadow: var(--px-dropdown-inset-highlight), var(--px-dropdown-inset-shadow);
|
|
373
|
+
}
|
|
374
|
+
/* Active/pressed - reversed bevel for "pressed in" feel */
|
|
375
|
+
.px-dropdown__menu .px-dropdown__item:active:not(.is-disabled)::after {
|
|
376
|
+
box-shadow: var(--px-dropdown-inset-shadow), var(--px-dropdown-inset-highlight);
|
|
150
377
|
}
|
|
151
378
|
/* Disabled state */
|
|
152
379
|
.px-dropdown__menu .px-dropdown__item.is-disabled {
|
|
153
380
|
color: var(--px-dropdown-menuItem-disabled-color);
|
|
154
381
|
cursor: not-allowed;
|
|
155
|
-
|
|
156
|
-
}
|
|
157
|
-
.px-dropdown__menu .px-dropdown__item.is-disabled
|
|
158
|
-
|
|
159
|
-
}
|
|
160
|
-
.px-dropdown__menu .px-dropdown__item.is-disabled:hover
|
|
161
|
-
|
|
382
|
+
opacity: 0.55;
|
|
383
|
+
}
|
|
384
|
+
.px-dropdown__menu .px-dropdown__item.is-disabled::before {
|
|
385
|
+
opacity: 0 !important;
|
|
386
|
+
}
|
|
387
|
+
.px-dropdown__menu .px-dropdown__item.is-disabled:hover,
|
|
388
|
+
.px-dropdown__menu .px-dropdown__item.is-disabled:focus {
|
|
389
|
+
color: var(--px-dropdown-menuItem-disabled-color);
|
|
390
|
+
}
|
|
391
|
+
.px-dropdown__menu .px-dropdown__item.is-disabled:hover::after, .px-dropdown__menu .px-dropdown__item.is-disabled:focus::after {
|
|
392
|
+
background-color: transparent;
|
|
393
|
+
box-shadow: none;
|
|
394
|
+
}
|
|
395
|
+
/* First item — top staircase corners on highlight layer */
|
|
396
|
+
.px-dropdown__menu .px-dropdown__item:first-child::after {
|
|
397
|
+
top: 2px;
|
|
398
|
+
clip-path: polygon(
|
|
399
|
+
0 2px, 2px 2px, 2px 0, 4px 0,
|
|
400
|
+
calc(100% - 4px) 0, calc(100% - 4px) 2px, calc(100% - 2px) 2px, 100% 2px,
|
|
401
|
+
100% 100%,
|
|
402
|
+
0 100%
|
|
403
|
+
);
|
|
404
|
+
}
|
|
405
|
+
/* Last item — bottom staircase corners on highlight layer */
|
|
406
|
+
.px-dropdown__menu .px-dropdown__item:last-child::after {
|
|
407
|
+
bottom: 2px;
|
|
408
|
+
clip-path: polygon(
|
|
409
|
+
0 0,
|
|
410
|
+
100% 0,
|
|
411
|
+
100% calc(100% - 2px), calc(100% - 2px) calc(100% - 2px), calc(100% - 2px) 100%, calc(100% - 4px) 100%,
|
|
412
|
+
4px 100%, 4px 100%, 2px calc(100% - 2px), 0 calc(100% - 2px)
|
|
413
|
+
);
|
|
414
|
+
}
|
|
415
|
+
/* Single item — both top and bottom staircase corners */
|
|
416
|
+
.px-dropdown__menu .px-dropdown__item:first-child:last-child::after {
|
|
417
|
+
top: 2px;
|
|
418
|
+
bottom: 2px;
|
|
419
|
+
clip-path: polygon(
|
|
420
|
+
0 2px, 2px 2px, 2px 0, 4px 0,
|
|
421
|
+
calc(100% - 4px) 0, calc(100% - 4px) 2px, calc(100% - 2px) 2px, 100% 2px,
|
|
422
|
+
100% calc(100% - 2px), calc(100% - 2px) calc(100% - 2px), calc(100% - 2px) 100%, calc(100% - 4px) 100%,
|
|
423
|
+
4px 100%, 4px 100%, 2px calc(100% - 2px), 0 calc(100% - 2px)
|
|
424
|
+
);
|
|
162
425
|
}
|
|
163
426
|
/* Size variants */
|
|
164
427
|
.px-dropdown__menu .px-dropdown__item--large {
|
|
165
|
-
padding: 10px 20px;
|
|
166
|
-
line-height:
|
|
428
|
+
padding: 10px 20px 10px 26px;
|
|
429
|
+
line-height: 26px;
|
|
167
430
|
font-size: var(--px-font-size-large);
|
|
168
431
|
}
|
|
169
|
-
.px-dropdown__menu .px-dropdown__item--large
|
|
170
|
-
left:
|
|
432
|
+
.px-dropdown__menu .px-dropdown__item--large::before {
|
|
433
|
+
left: 10px;
|
|
434
|
+
width: 8px;
|
|
435
|
+
height: 12px;
|
|
436
|
+
clip-path: polygon(
|
|
437
|
+
0 0, 2px 0,
|
|
438
|
+
2px 2px, 4px 2px,
|
|
439
|
+
4px 4px, 6px 4px,
|
|
440
|
+
6px 6px, 8px 6px,
|
|
441
|
+
8px 6px, 6px 6px,
|
|
442
|
+
6px 8px, 4px 8px,
|
|
443
|
+
4px 10px, 2px 10px,
|
|
444
|
+
2px 12px, 0 12px
|
|
445
|
+
);
|
|
171
446
|
}
|
|
172
447
|
.px-dropdown__menu .px-dropdown__item--small {
|
|
173
|
-
padding:
|
|
174
|
-
line-height:
|
|
448
|
+
padding: 5px 12px 5px 18px;
|
|
449
|
+
line-height: 18px;
|
|
175
450
|
font-size: var(--px-font-size-small);
|
|
176
451
|
}
|
|
177
|
-
.px-dropdown__menu .px-dropdown__item--small
|
|
178
|
-
left:
|
|
452
|
+
.px-dropdown__menu .px-dropdown__item--small::before {
|
|
453
|
+
left: 6px;
|
|
454
|
+
width: 4px;
|
|
455
|
+
height: 6px;
|
|
179
456
|
}
|
|
180
|
-
/* Divider - Pixel
|
|
457
|
+
/* Divider - Pixel-dashed gradient line */
|
|
181
458
|
.px-dropdown__menu .divided-placeholder {
|
|
182
|
-
margin: 6px
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
459
|
+
margin: 4px 6px;
|
|
460
|
+
height: 2px;
|
|
461
|
+
background-image: repeating-linear-gradient(
|
|
462
|
+
to right,
|
|
463
|
+
var(--px-dropdown-menuItem-divided-color) 0px,
|
|
464
|
+
var(--px-dropdown-menuItem-divided-color) 6px,
|
|
465
|
+
transparent 6px,
|
|
466
|
+
transparent 12px
|
|
467
|
+
);
|
|
468
|
+
}
|
|
469
|
+
.px-dropdown .px-button-group > :last-child {
|
|
186
470
|
padding: 5px 7px;
|
|
187
|
-
}
|
|
471
|
+
}
|
package/dist/theme/FileInput.css
CHANGED
|
@@ -12,6 +12,18 @@
|
|
|
12
12
|
--px-file-input-trigger-hover-bg-color: var(--px-fill-color-darker);
|
|
13
13
|
--px-file-input-icon-color: var(--px-text-color-secondary);
|
|
14
14
|
--px-file-input-clear-hover-color: var(--px-text-color-primary);
|
|
15
|
+
|
|
16
|
+
/* Raised bevel for trigger button (same as PxButton) */
|
|
17
|
+
--px-file-input-trigger-inset-highlight: inset 2px 2px 0 0 rgba(255, 255, 255, 0.2);
|
|
18
|
+
--px-file-input-trigger-inset-shadow: inset -2px -2px 0 0 rgba(0, 0, 0, 0.1);
|
|
19
|
+
|
|
20
|
+
/* Sunken bevel for filename area (same as PxInput) */
|
|
21
|
+
--px-file-input-inset-shadow: inset 2px 2px 0 0 rgba(0, 0, 0, 0.08);
|
|
22
|
+
--px-file-input-inset-highlight: inset -2px -2px 0 0 rgba(255, 255, 255, 0.15);
|
|
23
|
+
|
|
24
|
+
/* Hover-state bevel (slightly stronger) */
|
|
25
|
+
--px-file-input-trigger-hover-highlight: inset 2px 2px 0 0 rgba(255, 255, 255, 0.3);
|
|
26
|
+
--px-file-input-trigger-hover-shadow: inset -2px -2px 0 0 rgba(0, 0, 0, 0.12);
|
|
15
27
|
}
|
|
16
28
|
/* Base FileInput Styles */
|
|
17
29
|
.px-file-input {
|
|
@@ -123,6 +135,12 @@
|
|
|
123
135
|
0 calc(100% - 4px)
|
|
124
136
|
);
|
|
125
137
|
z-index: -1;
|
|
138
|
+
/* Sunken bevel on the filename area */
|
|
139
|
+
box-shadow: var(--px-file-input-inset-shadow), var(--px-file-input-inset-highlight);
|
|
140
|
+
}
|
|
141
|
+
.px-file-input__wrapper:hover {
|
|
142
|
+
transform: translate(-1px, -1px);
|
|
143
|
+
filter: drop-shadow(4px 4px 0px var(--px-file-input-shadow-color));
|
|
126
144
|
}
|
|
127
145
|
.px-file-input__wrapper:hover::before {
|
|
128
146
|
background: var(--px-file-input-hover-border-color);
|
|
@@ -154,6 +172,9 @@
|
|
|
154
172
|
border-right: 2px solid var(--px-file-input-border-color);
|
|
155
173
|
user-select: none;
|
|
156
174
|
|
|
175
|
+
/* Raised bevel at rest */
|
|
176
|
+
box-shadow: var(--px-file-input-trigger-inset-highlight), var(--px-file-input-trigger-inset-shadow);
|
|
177
|
+
|
|
157
178
|
/* Notch top-left and bottom-left corners to match the pixel staircase border */
|
|
158
179
|
clip-path: polygon(
|
|
159
180
|
0 2px,
|
|
@@ -168,6 +189,10 @@
|
|
|
168
189
|
}
|
|
169
190
|
.px-file-input__trigger:hover {
|
|
170
191
|
background: var(--px-file-input-trigger-hover-bg-color);
|
|
192
|
+
box-shadow: var(--px-file-input-trigger-hover-highlight), var(--px-file-input-trigger-hover-shadow);
|
|
193
|
+
}
|
|
194
|
+
.px-file-input__trigger:active {
|
|
195
|
+
box-shadow: var(--px-file-input-trigger-inset-shadow), var(--px-file-input-trigger-inset-highlight);
|
|
171
196
|
}
|
|
172
197
|
/* File name display */
|
|
173
198
|
.px-file-input__name {
|
|
@@ -363,3 +388,10 @@
|
|
|
363
388
|
.px-file-input--danger.is-ghost .px-file-input__wrapper:hover {
|
|
364
389
|
filter: drop-shadow(var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-file-input-hover-shadow-color));
|
|
365
390
|
}
|
|
391
|
+
/* Dark mode bevel adjustment */
|
|
392
|
+
html.dark .px-file-input {
|
|
393
|
+
--px-file-input-trigger-inset-highlight: inset 2px 2px 0 0 rgba(255, 255, 255, 0.08);
|
|
394
|
+
--px-file-input-trigger-inset-shadow: inset -2px -2px 0 0 rgba(0, 0, 0, 0.3);
|
|
395
|
+
--px-file-input-inset-shadow: inset 2px 2px 0 0 rgba(0, 0, 0, 0.2);
|
|
396
|
+
--px-file-input-inset-highlight: inset -2px -2px 0 0 rgba(255, 255, 255, 0.05);
|
|
397
|
+
}
|