sakana-element 2.4.2 → 2.5.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.
Files changed (138) hide show
  1. package/README.md +26 -2
  2. package/dist/es/Alert-Cq5F0XNt.js +57 -0
  3. package/dist/es/Avatar-CbgoH75Q.js +5 -0
  4. package/dist/es/Badge-BVu3hO8V.js +7 -0
  5. package/dist/es/Breadcrumb-Bh5y4LbC.js +6 -0
  6. package/dist/es/Button-B1wRI6I7.js +28 -0
  7. package/dist/es/Card-VMxMFix8.js +8 -0
  8. package/dist/es/Carousel-QnDHp3Ka.js +11 -0
  9. package/dist/es/ChatBubble-DYao4l85.js +5 -0
  10. package/dist/es/Checkbox-BbLzAqK2.js +228 -0
  11. package/dist/es/Collapse-BkKmhGQf.js +11 -0
  12. package/dist/es/Collapsible-B56M9eUW.js +12 -0
  13. package/dist/es/Command-CORaZKsJ.js +45 -0
  14. package/dist/es/ConfigProvider-CGLQ9b8M.js +35 -0
  15. package/dist/es/Diff-gDYKT1cl.js +17 -0
  16. package/dist/es/Divider-bI4lEaol.js +5 -0
  17. package/dist/es/Drawer-AnXxT-V6.js +6 -0
  18. package/dist/es/Dropdown-80RoE7gX.js +115 -0
  19. package/dist/es/FileInput-B6CyElTd.js +113 -0
  20. package/dist/es/Filter-CtIs_iO4.js +13 -0
  21. package/dist/es/Icon-hbRhI1iH.js +3 -0
  22. package/dist/es/Indicator-Bs6f41iJ.js +5 -0
  23. package/dist/es/Input-DJsDXAG1.js +8 -0
  24. package/dist/es/Kbd-DZf70Cdz.js +5 -0
  25. package/dist/es/Link-CLXoAvDl.js +5 -0
  26. package/dist/es/Loading-BHzOi8J-.js +27 -0
  27. package/dist/es/Message-DOxtRo8V.js +51 -0
  28. package/dist/es/Notification-F5UfnGWs.js +22 -0
  29. package/dist/es/Pixelate-DFpR42b2.js +12 -0
  30. package/dist/es/Popconfirm-C1LNG9db.js +8 -0
  31. package/dist/es/Progress-CDHJJUVL.js +6 -0
  32. package/dist/es/Radio-HMaWtyx9.js +11 -0
  33. package/dist/es/Resizable-DSYUZwLE.js +59 -0
  34. package/dist/es/Select-DaBVMoMB.js +31 -0
  35. package/dist/es/Skeleton-4hCbgDOF.js +7 -0
  36. package/dist/es/Switch-BCTrn4hn.js +11 -0
  37. package/dist/es/Table-B5twhEZC.js +5 -0
  38. package/dist/es/Tooltip-CDjXpGHn.js +4 -0
  39. package/dist/es/Validator-DoWa9KfA.js +16 -0
  40. package/dist/es/index.js +41 -140
  41. package/dist/index.css +2 -1
  42. package/dist/theme/Alert.css +1 -295
  43. package/dist/theme/Avatar.css +1 -86
  44. package/dist/theme/Badge.css +1 -214
  45. package/dist/theme/Breadcrumb.css +1 -192
  46. package/dist/theme/Button.css +1 -1570
  47. package/dist/theme/Card.css +1 -347
  48. package/dist/theme/Carousel.css +1 -0
  49. package/dist/theme/ChatBubble.css +1 -218
  50. package/dist/theme/Checkbox.css +1 -604
  51. package/dist/theme/Collapse.css +1 -764
  52. package/dist/theme/Collapsible.css +1 -0
  53. package/dist/theme/Command.css +1 -0
  54. package/dist/theme/Diff.css +1 -110
  55. package/dist/theme/Divider.css +1 -150
  56. package/dist/theme/Drawer.css +1 -206
  57. package/dist/theme/Dropdown.css +1 -471
  58. package/dist/theme/FileInput.css +1 -397
  59. package/dist/theme/Filter.css +1 -598
  60. package/dist/theme/Indicator.css +1 -159
  61. package/dist/theme/Input.css +1 -647
  62. package/dist/theme/Kbd.css +1 -104
  63. package/dist/theme/Link.css +1 -69
  64. package/dist/theme/Loading.css +1 -266
  65. package/dist/theme/Message.css +1 -565
  66. package/dist/theme/Notification.css +1 -316
  67. package/dist/theme/Popconfirm.css +1 -46
  68. package/dist/theme/Progress.css +1 -278
  69. package/dist/theme/Radio.css +1 -492
  70. package/dist/theme/Resizable.css +1 -95
  71. package/dist/theme/Select.css +1 -584
  72. package/dist/theme/Skeleton.css +1 -192
  73. package/dist/theme/Switch.css +1 -323
  74. package/dist/theme/Table.css +1 -680
  75. package/dist/theme/Validator.css +1 -25
  76. package/dist/theme/index.css +1 -341
  77. package/dist/types/components/Badge/types.d.ts +2 -0
  78. package/dist/types/components/Carousel/constants.d.ts +6 -0
  79. package/dist/types/components/Carousel/index.d.ts +77 -0
  80. package/dist/types/components/Carousel/types.d.ts +27 -0
  81. package/dist/types/components/Collapsible/constants.d.ts +6 -0
  82. package/dist/types/components/Collapsible/index.d.ts +85 -0
  83. package/dist/types/components/Collapsible/types.d.ts +22 -0
  84. package/dist/types/components/Command/constants.d.ts +4 -0
  85. package/dist/types/components/Command/index.d.ts +216 -0
  86. package/dist/types/components/Command/types.d.ts +59 -0
  87. package/dist/types/components/Validator/index.d.ts +1 -0
  88. package/dist/types/components/index.d.ts +3 -0
  89. package/dist/types/hooks/index.d.ts +1 -1
  90. package/dist/umd/index.css +2 -1
  91. package/dist/umd/index.css.gz +0 -0
  92. package/dist/umd/index.umd.cjs +1255 -5
  93. package/dist/umd/index.umd.cjs.gz +0 -0
  94. package/package.json +15 -3
  95. package/dist/es/Alert-DdAShH-x.js +0 -19
  96. package/dist/es/Avatar-BGTH7x40.js +0 -9
  97. package/dist/es/Badge-CYZ55qNe.js +0 -14
  98. package/dist/es/Breadcrumb-BTWTtzrN.js +0 -15
  99. package/dist/es/Button-GsSCWg5x.js +0 -24
  100. package/dist/es/Card-BhgzwQqo.js +0 -16
  101. package/dist/es/ChatBubble-4F481Agj.js +0 -9
  102. package/dist/es/Checkbox-C7vZGSTh.js +0 -51
  103. package/dist/es/Collapse-CbcSQig5.js +0 -53
  104. package/dist/es/ConfigProvider-K1UzjlRm.js +0 -45
  105. package/dist/es/Diff-B747pgwb.js +0 -64
  106. package/dist/es/Divider-BSu_1-AU.js +0 -9
  107. package/dist/es/Drawer-I2lCgyba.js +0 -40
  108. package/dist/es/Dropdown-B0J_c8Wv.js +0 -104
  109. package/dist/es/FileInput-CFg1wpsH.js +0 -33
  110. package/dist/es/Filter-nA8j-62U.js +0 -40
  111. package/dist/es/Form-C1b8Igns.js +0 -123
  112. package/dist/es/Icon-BulvH9Wm.js +0 -27
  113. package/dist/es/Indicator-BbW4iUkh.js +0 -9
  114. package/dist/es/Input-BUHFulIW.js +0 -42
  115. package/dist/es/Kbd-CeP2wkdE.js +0 -13
  116. package/dist/es/Link-Dks2bXo8.js +0 -11
  117. package/dist/es/Loading-DoBtVGWo.js +0 -92
  118. package/dist/es/Message-Ba_P4Wvy.js +0 -152
  119. package/dist/es/Notification-DzG8dLuk.js +0 -69
  120. package/dist/es/Overlay-DeyTycv0.js +0 -12
  121. package/dist/es/Pixelate-B21HKbSE.js +0 -39
  122. package/dist/es/Popconfirm-BqN3JxJ_.js +0 -23
  123. package/dist/es/Progress--6EJjbbM.js +0 -12
  124. package/dist/es/Radio-CrdrvrFH.js +0 -33
  125. package/dist/es/Resizable-By3ijQf0.js +0 -151
  126. package/dist/es/Select-Cq1Ucs_U.js +0 -133
  127. package/dist/es/Skeleton-ChCVgMSk.js +0 -15
  128. package/dist/es/Switch-DURmSH-T.js +0 -34
  129. package/dist/es/Table-BE2f9u65.js +0 -10
  130. package/dist/es/Tooltip-DR4Mc5Fh.js +0 -74
  131. package/dist/es/Validator-BYn72MYn.js +0 -40
  132. package/dist/es/hooks-dJGu-5DG.js +0 -170
  133. package/dist/es/utils-CnCdZsHG.js +0 -155
  134. package/dist/es/vendor-eombfMkP.js +0 -1351
  135. package/dist/theme/Form.css +0 -83
  136. package/dist/theme/Icon.css +0 -168
  137. package/dist/theme/Overlay.css +0 -12
  138. package/dist/theme/Tooltip.css +0 -235
@@ -1,492 +1 @@
1
- /* Radio Variables */
2
- .px-radio {
3
- --px-radio-size: 18px;
4
- --px-radio-checked-color: var(--px-color-primary);
5
- --px-radio-checked-border-color: var(--px-color-primary-dark);
6
- --px-radio-border-color: var(--px-border-color);
7
- --px-radio-bg-color: var(--px-fill-color-blank);
8
- --px-radio-shadow-color: var(--px-shadow-color);
9
-
10
- /* 3D bevel — sunken look (unchecked) */
11
- --px-radio-inset-highlight: inset -2px -2px 0 0 rgba(255, 255, 255, 0.2);
12
- --px-radio-inset-shadow: inset 2px 2px 0 0 rgba(0, 0, 0, 0.1);
13
- }
14
- /* Base Radio Styles */
15
- .px-radio {
16
- display: inline-flex;
17
- align-items: center;
18
- font-size: var(--px-font-size-base);
19
- font-family: var(--px-font-family);
20
- line-height: 1;
21
- cursor: pointer;
22
- user-select: none;
23
- white-space: nowrap;
24
- }
25
- /* Disabled state */
26
- .px-radio.is-disabled {
27
- opacity: 0.5;
28
- cursor: not-allowed;
29
- }
30
- .px-radio.is-disabled .px-radio__inner {
31
- cursor: not-allowed;
32
- }
33
- /* Checked state — raised bevel */
34
- .px-radio.is-checked {
35
- --px-radio-inset-highlight: inset 2px 2px 0 0 rgba(255, 255, 255, 0.2);
36
- --px-radio-inset-shadow: inset -2px -2px 0 0 rgba(0, 0, 0, 0.1);
37
- }
38
- .px-radio.is-checked .px-radio__inner::before {
39
- background: var(--px-radio-checked-border-color);
40
- }
41
- .px-radio.is-checked .px-radio__inner::after {
42
- background: var(--px-radio-checked-color);
43
- }
44
- .px-radio.is-checked .px-radio__inner .px-radio__dot {
45
- opacity: 1;
46
- }
47
- .px-radio.is-checked .px-radio__input {
48
- filter: drop-shadow(
49
- var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-radio-checked-border-color)
50
- );
51
- }
52
- /* Hover feedback */
53
- .px-radio:hover:not(.is-disabled) {
54
- --px-radio-inset-highlight: inset 2px 2px 0 0 rgba(255, 255, 255, 0.35);
55
- }
56
- /* Active/pressed feedback */
57
- .px-radio:active:not(.is-disabled) {
58
- --px-radio-inset-highlight: inset -2px -2px 0 0 rgba(255, 255, 255, 0.2);
59
- --px-radio-inset-shadow: inset 2px 2px 0 0 rgba(0, 0, 0, 0.15);
60
- }
61
- /* Size variants */
62
- .px-radio--large {
63
- --px-radio-size: 22px;
64
- font-size: var(--px-font-size-base);
65
- }
66
- .px-radio--large .px-radio__dot {
67
- width: 8px;
68
- height: 8px;
69
- }
70
- .px-radio--small {
71
- --px-radio-size: 14px;
72
- font-size: var(--px-font-size-small);
73
- }
74
- .px-radio--small .px-radio__input {
75
- filter: drop-shadow(2px 2px 0px var(--px-radio-shadow-color));
76
- }
77
- .px-radio--small .px-radio__dot {
78
- width: 4px;
79
- height: 4px;
80
- }
81
- .px-radio--small.is-checked .px-radio__input {
82
- filter: drop-shadow(2px 2px 0px var(--px-radio-checked-border-color));
83
- }
84
- /* Hidden native input */
85
- .px-radio__original {
86
- position: absolute;
87
- width: 0;
88
- height: 0;
89
- opacity: 0;
90
- margin: 0;
91
- outline: none;
92
- }
93
- .px-radio__original:focus-visible ~ .px-radio__inner {
94
- outline: 2px dashed var(--px-radio-checked-color);
95
- outline-offset: 2px;
96
- }
97
- /* Input wrapper */
98
- .px-radio__input {
99
- position: relative;
100
- display: inline-flex;
101
- align-items: center;
102
- justify-content: center;
103
- flex-shrink: 0;
104
-
105
- /* Pixel shadow via drop-shadow */
106
- filter: drop-shadow(
107
- var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-radio-shadow-color)
108
- );
109
- }
110
- /* The pixel-art radio — diamond shape with 2px stepped edges */
111
- .px-radio__inner {
112
- position: relative;
113
- display: inline-flex;
114
- align-items: center;
115
- justify-content: center;
116
- width: var(--px-radio-size);
117
- height: var(--px-radio-size);
118
- box-sizing: border-box;
119
- background: transparent;
120
-
121
- /* Pixel diamond clip-path: 2px staircase steps */
122
- --px-radio-pixel-shape: polygon(
123
- /* Top point */
124
- calc(50% - 2px) 0,
125
- calc(50% + 2px) 0,
126
- /* Top-right stepped edge */
127
- calc(100% - 4px) calc(50% - 4px),
128
- calc(100% - 2px) calc(50% - 2px),
129
- 100% calc(50% - 2px),
130
- 100% calc(50% + 2px),
131
- calc(100% - 2px) calc(50% + 2px),
132
- calc(100% - 4px) calc(50% + 4px),
133
- /* Bottom point */
134
- calc(50% + 2px) 100%,
135
- calc(50% - 2px) 100%,
136
- /* Bottom-left stepped edge */
137
- 4px calc(50% + 4px),
138
- 2px calc(50% + 2px),
139
- 0 calc(50% + 2px),
140
- 0 calc(50% - 2px),
141
- 2px calc(50% - 2px),
142
- 4px calc(50% - 4px)
143
- );
144
- }
145
- /* Border layer – pixel diamond */
146
- .px-radio__inner::before {
147
- content: "";
148
- position: absolute;
149
- inset: 0;
150
- background: var(--px-radio-border-color);
151
- clip-path: var(--px-radio-pixel-shape);
152
- z-index: 0;
153
- }
154
- /* Fill layer – pixel diamond with 3D bevel */
155
- .px-radio__inner::after {
156
- content: "";
157
- position: absolute;
158
- inset: 2px;
159
- background: var(--px-radio-bg-color);
160
- clip-path: var(--px-radio-pixel-shape);
161
- box-shadow:
162
- var(--px-radio-inset-highlight),
163
- var(--px-radio-inset-shadow);
164
- z-index: 0;
165
- }
166
- /* Pixel dot indicator — small diamond */
167
- .px-radio__dot {
168
- position: relative;
169
- z-index: 1;
170
- width: 6px;
171
- height: 6px;
172
- opacity: 0;
173
- background: var(--px-fill-color-blank);
174
- /* Simple 4-point diamond at small size */
175
- clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
176
- }
177
- /* Label */
178
- .px-radio__label {
179
- padding-left: 8px;
180
- font-family: var(--px-font-family);
181
- font-size: inherit;
182
- line-height: 1.2;
183
- color: var(--px-text-color-primary);
184
- }
185
- /* Type variants */
186
- .px-radio--primary {
187
- --px-radio-checked-color: var(--px-color-primary);
188
- --px-radio-checked-border-color: var(--px-color-primary-dark);
189
- }
190
- .px-radio--primary.is-checked .px-radio__input {
191
- filter: drop-shadow(
192
- var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-color-primary-dark)
193
- );
194
- }
195
- .px-radio--success {
196
- --px-radio-checked-color: var(--px-color-success);
197
- --px-radio-checked-border-color: var(--px-color-success-dark);
198
- }
199
- .px-radio--success.is-checked .px-radio__input {
200
- filter: drop-shadow(
201
- var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-color-success-dark)
202
- );
203
- }
204
- .px-radio--info {
205
- --px-radio-checked-color: var(--px-color-info);
206
- --px-radio-checked-border-color: var(--px-color-info-dark);
207
- }
208
- .px-radio--info.is-checked .px-radio__input {
209
- filter: drop-shadow(
210
- var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-color-info-dark)
211
- );
212
- }
213
- .px-radio--warning {
214
- --px-radio-checked-color: var(--px-color-warning);
215
- --px-radio-checked-border-color: var(--px-color-warning-dark);
216
- }
217
- .px-radio--warning.is-checked .px-radio__input {
218
- filter: drop-shadow(
219
- var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-color-warning-dark)
220
- );
221
- }
222
- .px-radio--danger {
223
- --px-radio-checked-color: var(--px-color-danger);
224
- --px-radio-checked-border-color: var(--px-color-danger-dark);
225
- }
226
- .px-radio--danger.is-checked .px-radio__input {
227
- filter: drop-shadow(
228
- var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-color-danger-dark)
229
- );
230
- }
231
- /* Dark mode bevel adjustment */
232
- html.dark .px-radio {
233
- --px-radio-inset-highlight: inset -2px -2px 0 0 rgba(255, 255, 255, 0.08);
234
- --px-radio-inset-shadow: inset 2px 2px 0 0 rgba(0, 0, 0, 0.2);
235
- }
236
- html.dark .px-radio.is-checked {
237
- --px-radio-inset-highlight: inset 2px 2px 0 0 rgba(255, 255, 255, 0.08);
238
- --px-radio-inset-shadow: inset -2px -2px 0 0 rgba(0, 0, 0, 0.2);
239
- }
240
- /* Radio Group */
241
- .px-radio-group {
242
- display: inline-flex;
243
- flex-wrap: wrap;
244
- gap: 16px;
245
- align-items: center;
246
- }
247
- /* Radio Variables */
248
- .px-radio {
249
- --px-radio-size: 18px;
250
- --px-radio-checked-color: var(--px-color-primary);
251
- --px-radio-checked-border-color: var(--px-color-primary-dark);
252
- --px-radio-border-color: var(--px-border-color);
253
- --px-radio-bg-color: var(--px-fill-color-blank);
254
- --px-radio-shadow-color: var(--px-shadow-color);
255
-
256
- /* 3D bevel — sunken look (unchecked) */
257
- --px-radio-inset-highlight: inset -2px -2px 0 0 rgba(255, 255, 255, 0.2);
258
- --px-radio-inset-shadow: inset 2px 2px 0 0 rgba(0, 0, 0, 0.1);
259
- }
260
- /* Base Radio Styles */
261
- .px-radio {
262
- display: inline-flex;
263
- align-items: center;
264
- font-size: var(--px-font-size-base);
265
- font-family: var(--px-font-family);
266
- line-height: 1;
267
- cursor: pointer;
268
- user-select: none;
269
- white-space: nowrap;
270
- }
271
- /* Disabled state */
272
- .px-radio.is-disabled {
273
- opacity: 0.5;
274
- cursor: not-allowed;
275
- }
276
- .px-radio.is-disabled .px-radio__inner {
277
- cursor: not-allowed;
278
- }
279
- /* Checked state — raised bevel */
280
- .px-radio.is-checked {
281
- --px-radio-inset-highlight: inset 2px 2px 0 0 rgba(255, 255, 255, 0.2);
282
- --px-radio-inset-shadow: inset -2px -2px 0 0 rgba(0, 0, 0, 0.1);
283
- }
284
- .px-radio.is-checked .px-radio__inner::before {
285
- background: var(--px-radio-checked-border-color);
286
- }
287
- .px-radio.is-checked .px-radio__inner::after {
288
- background: var(--px-radio-checked-color);
289
- }
290
- .px-radio.is-checked .px-radio__inner .px-radio__dot {
291
- opacity: 1;
292
- }
293
- .px-radio.is-checked .px-radio__input {
294
- filter: drop-shadow(
295
- var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-radio-checked-border-color)
296
- );
297
- }
298
- /* Hover feedback */
299
- .px-radio:hover:not(.is-disabled) {
300
- --px-radio-inset-highlight: inset 2px 2px 0 0 rgba(255, 255, 255, 0.35);
301
- }
302
- /* Active/pressed feedback */
303
- .px-radio:active:not(.is-disabled) {
304
- --px-radio-inset-highlight: inset -2px -2px 0 0 rgba(255, 255, 255, 0.2);
305
- --px-radio-inset-shadow: inset 2px 2px 0 0 rgba(0, 0, 0, 0.15);
306
- }
307
- /* Size variants */
308
- .px-radio--large {
309
- --px-radio-size: 22px;
310
- font-size: var(--px-font-size-base);
311
- }
312
- .px-radio--large .px-radio__dot {
313
- width: 8px;
314
- height: 8px;
315
- }
316
- .px-radio--small {
317
- --px-radio-size: 14px;
318
- font-size: var(--px-font-size-small);
319
- }
320
- .px-radio--small .px-radio__input {
321
- filter: drop-shadow(2px 2px 0px var(--px-radio-shadow-color));
322
- }
323
- .px-radio--small .px-radio__dot {
324
- width: 4px;
325
- height: 4px;
326
- }
327
- .px-radio--small.is-checked .px-radio__input {
328
- filter: drop-shadow(2px 2px 0px var(--px-radio-checked-border-color));
329
- }
330
- /* Hidden native input */
331
- .px-radio__original {
332
- position: absolute;
333
- width: 0;
334
- height: 0;
335
- opacity: 0;
336
- margin: 0;
337
- outline: none;
338
- }
339
- .px-radio__original:focus-visible ~ .px-radio__inner {
340
- outline: 2px dashed var(--px-radio-checked-color);
341
- outline-offset: 2px;
342
- }
343
- /* Input wrapper */
344
- .px-radio__input {
345
- position: relative;
346
- display: inline-flex;
347
- align-items: center;
348
- justify-content: center;
349
- flex-shrink: 0;
350
-
351
- /* Pixel shadow via drop-shadow */
352
- filter: drop-shadow(
353
- var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-radio-shadow-color)
354
- );
355
- }
356
- /* The pixel-art radio — diamond shape with 2px stepped edges */
357
- .px-radio__inner {
358
- position: relative;
359
- display: inline-flex;
360
- align-items: center;
361
- justify-content: center;
362
- width: var(--px-radio-size);
363
- height: var(--px-radio-size);
364
- box-sizing: border-box;
365
- background: transparent;
366
-
367
- /* Pixel diamond clip-path: 2px staircase steps */
368
- --px-radio-pixel-shape: polygon(
369
- /* Top point */
370
- calc(50% - 2px) 0,
371
- calc(50% + 2px) 0,
372
- /* Top-right stepped edge */
373
- calc(100% - 4px) calc(50% - 4px),
374
- calc(100% - 2px) calc(50% - 2px),
375
- 100% calc(50% - 2px),
376
- 100% calc(50% + 2px),
377
- calc(100% - 2px) calc(50% + 2px),
378
- calc(100% - 4px) calc(50% + 4px),
379
- /* Bottom point */
380
- calc(50% + 2px) 100%,
381
- calc(50% - 2px) 100%,
382
- /* Bottom-left stepped edge */
383
- 4px calc(50% + 4px),
384
- 2px calc(50% + 2px),
385
- 0 calc(50% + 2px),
386
- 0 calc(50% - 2px),
387
- 2px calc(50% - 2px),
388
- 4px calc(50% - 4px)
389
- );
390
- }
391
- /* Border layer – pixel diamond */
392
- .px-radio__inner::before {
393
- content: "";
394
- position: absolute;
395
- inset: 0;
396
- background: var(--px-radio-border-color);
397
- clip-path: var(--px-radio-pixel-shape);
398
- z-index: 0;
399
- }
400
- /* Fill layer – pixel diamond with 3D bevel */
401
- .px-radio__inner::after {
402
- content: "";
403
- position: absolute;
404
- inset: 2px;
405
- background: var(--px-radio-bg-color);
406
- clip-path: var(--px-radio-pixel-shape);
407
- box-shadow:
408
- var(--px-radio-inset-highlight),
409
- var(--px-radio-inset-shadow);
410
- z-index: 0;
411
- }
412
- /* Pixel dot indicator — small diamond */
413
- .px-radio__dot {
414
- position: relative;
415
- z-index: 1;
416
- width: 6px;
417
- height: 6px;
418
- opacity: 0;
419
- background: var(--px-fill-color-blank);
420
- /* Simple 4-point diamond at small size */
421
- clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
422
- }
423
- /* Label */
424
- .px-radio__label {
425
- padding-left: 8px;
426
- font-family: var(--px-font-family);
427
- font-size: inherit;
428
- line-height: 1.2;
429
- color: var(--px-text-color-primary);
430
- }
431
- /* Type variants */
432
- .px-radio--primary {
433
- --px-radio-checked-color: var(--px-color-primary);
434
- --px-radio-checked-border-color: var(--px-color-primary-dark);
435
- }
436
- .px-radio--primary.is-checked .px-radio__input {
437
- filter: drop-shadow(
438
- var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-color-primary-dark)
439
- );
440
- }
441
- .px-radio--success {
442
- --px-radio-checked-color: var(--px-color-success);
443
- --px-radio-checked-border-color: var(--px-color-success-dark);
444
- }
445
- .px-radio--success.is-checked .px-radio__input {
446
- filter: drop-shadow(
447
- var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-color-success-dark)
448
- );
449
- }
450
- .px-radio--info {
451
- --px-radio-checked-color: var(--px-color-info);
452
- --px-radio-checked-border-color: var(--px-color-info-dark);
453
- }
454
- .px-radio--info.is-checked .px-radio__input {
455
- filter: drop-shadow(
456
- var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-color-info-dark)
457
- );
458
- }
459
- .px-radio--warning {
460
- --px-radio-checked-color: var(--px-color-warning);
461
- --px-radio-checked-border-color: var(--px-color-warning-dark);
462
- }
463
- .px-radio--warning.is-checked .px-radio__input {
464
- filter: drop-shadow(
465
- var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-color-warning-dark)
466
- );
467
- }
468
- .px-radio--danger {
469
- --px-radio-checked-color: var(--px-color-danger);
470
- --px-radio-checked-border-color: var(--px-color-danger-dark);
471
- }
472
- .px-radio--danger.is-checked .px-radio__input {
473
- filter: drop-shadow(
474
- var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-color-danger-dark)
475
- );
476
- }
477
- /* Dark mode bevel adjustment */
478
- html.dark .px-radio {
479
- --px-radio-inset-highlight: inset -2px -2px 0 0 rgba(255, 255, 255, 0.08);
480
- --px-radio-inset-shadow: inset 2px 2px 0 0 rgba(0, 0, 0, 0.2);
481
- }
482
- html.dark .px-radio.is-checked {
483
- --px-radio-inset-highlight: inset 2px 2px 0 0 rgba(255, 255, 255, 0.08);
484
- --px-radio-inset-shadow: inset -2px -2px 0 0 rgba(0, 0, 0, 0.2);
485
- }
486
- /* Radio Group */
487
- .px-radio-group {
488
- display: inline-flex;
489
- flex-wrap: wrap;
490
- gap: 16px;
491
- align-items: center;
492
- }
1
+ .px-radio{--px-radio-size:18px;--px-radio-checked-color:var(--px-color-primary);--px-radio-checked-border-color:var(--px-color-primary-dark);--px-radio-border-color:var(--px-border-color);--px-radio-bg-color:var(--px-fill-color-blank);--px-radio-shadow-color:var(--px-shadow-color);--px-radio-inset-highlight:inset -2px -2px 0 0 #fff3;--px-radio-inset-shadow:inset 2px 2px 0 0 #0000001a;font-size:var(--px-font-size-base);font-family:var(--px-font-family);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;align-items:center;line-height:1;display:inline-flex}.px-radio{--px-radio-size:18px;--px-radio-checked-color:var(--px-color-primary);--px-radio-checked-border-color:var(--px-color-primary-dark);--px-radio-border-color:var(--px-border-color);--px-radio-bg-color:var(--px-fill-color-blank);--px-radio-shadow-color:var(--px-shadow-color);--px-radio-inset-highlight:inset -2px -2px 0 0 #fff3;--px-radio-inset-shadow:inset 2px 2px 0 0 #0000001a;font-size:var(--px-font-size-base);font-family:var(--px-font-family);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;align-items:center;line-height:1;display:inline-flex}.px-radio.is-disabled{opacity:.5;cursor:not-allowed}.px-radio.is-disabled .px-radio__inner{cursor:not-allowed}.px-radio.is-checked{--px-radio-inset-highlight:inset 2px 2px 0 0 #fff3;--px-radio-inset-shadow:inset -2px -2px 0 0 #0000001a}.px-radio.is-checked .px-radio__inner:before{background:var(--px-radio-checked-border-color)}.px-radio.is-checked .px-radio__inner:after{background:var(--px-radio-checked-color)}.px-radio.is-checked .px-radio__inner .px-radio__dot{opacity:1}.px-radio.is-checked .px-radio__input{filter:drop-shadow(var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-radio-checked-border-color))}.px-radio:hover:not(.is-disabled){--px-radio-inset-highlight:inset 2px 2px 0 0 #ffffff59}.px-radio:active:not(.is-disabled){--px-radio-inset-highlight:inset -2px -2px 0 0 #fff3;--px-radio-inset-shadow:inset 2px 2px 0 0 #00000026}.px-radio--large{--px-radio-size:22px;font-size:var(--px-font-size-base)}.px-radio--large .px-radio__dot{width:8px;height:8px}.px-radio--small{--px-radio-size:14px;font-size:var(--px-font-size-small)}.px-radio--small .px-radio__input{filter:drop-shadow(2px 2px 0px var(--px-radio-shadow-color))}.px-radio--small .px-radio__dot{width:4px;height:4px}.px-radio--small.is-checked .px-radio__input{filter:drop-shadow(2px 2px 0px var(--px-radio-checked-border-color))}.px-radio__original{opacity:0;outline:none;width:0;height:0;margin:0;position:absolute}.px-radio__original:focus-visible~.px-radio__inner{outline:2px dashed var(--px-radio-checked-color);outline-offset:2px}.px-radio__input{filter:drop-shadow(var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-radio-shadow-color));flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;position:relative}.px-radio__inner{width:var(--px-radio-size);height:var(--px-radio-size);box-sizing:border-box;--px-radio-pixel-shape:polygon( calc(50% - 2px) 0, calc(50% + 2px) 0, calc(100% - 4px) calc(50% - 4px), calc(100% - 2px) calc(50% - 2px), 100% calc(50% - 2px), 100% calc(50% + 2px), calc(100% - 2px) calc(50% + 2px), calc(100% - 4px) calc(50% + 4px), calc(50% + 2px) 100%, calc(50% - 2px) 100%, 4px calc(50% + 4px), 2px calc(50% + 2px), 0 calc(50% + 2px), 0 calc(50% - 2px), 2px calc(50% - 2px), 4px calc(50% - 4px));background:0 0;justify-content:center;align-items:center;display:inline-flex;position:relative}.px-radio__inner:before{content:"";background:var(--px-radio-border-color);clip-path:var(--px-radio-pixel-shape);z-index:0;position:absolute;inset:0}.px-radio__inner:after{content:"";background:var(--px-radio-bg-color);clip-path:var(--px-radio-pixel-shape);box-shadow:var(--px-radio-inset-highlight), var(--px-radio-inset-shadow);z-index:0;position:absolute;inset:2px}.px-radio__dot{z-index:1;opacity:0;background:var(--px-fill-color-blank);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);width:6px;height:6px;position:relative}.px-radio__label{font-family:var(--px-font-family);font-size:inherit;color:var(--px-text-color-primary);padding-left:8px;line-height:1.2}.px-radio--primary{--px-radio-checked-color:var(--px-color-primary);--px-radio-checked-border-color:var(--px-color-primary-dark)}.px-radio--primary.is-checked .px-radio__input{filter:drop-shadow(var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-color-primary-dark))}.px-radio--success{--px-radio-checked-color:var(--px-color-success);--px-radio-checked-border-color:var(--px-color-success-dark)}.px-radio--success.is-checked .px-radio__input{filter:drop-shadow(var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-color-success-dark))}.px-radio--info{--px-radio-checked-color:var(--px-color-info);--px-radio-checked-border-color:var(--px-color-info-dark)}.px-radio--info.is-checked .px-radio__input{filter:drop-shadow(var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-color-info-dark))}.px-radio--warning{--px-radio-checked-color:var(--px-color-warning);--px-radio-checked-border-color:var(--px-color-warning-dark)}.px-radio--warning.is-checked .px-radio__input{filter:drop-shadow(var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-color-warning-dark))}.px-radio--danger{--px-radio-checked-color:var(--px-color-danger);--px-radio-checked-border-color:var(--px-color-danger-dark)}.px-radio--danger.is-checked .px-radio__input{filter:drop-shadow(var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-color-danger-dark))}html.dark .px-radio{--px-radio-inset-highlight:inset -2px -2px 0 0 #ffffff14;--px-radio-inset-shadow:inset 2px 2px 0 0 #0003}html.dark .px-radio.is-checked{--px-radio-inset-highlight:inset 2px 2px 0 0 #ffffff14;--px-radio-inset-shadow:inset -2px -2px 0 0 #0003}.px-radio-group{flex-wrap:wrap;align-items:center;gap:16px;display:inline-flex}
@@ -1,95 +1 @@
1
- /* Resizable Group */
2
- .px-resizable-group {
3
- display: flex;
4
- width: 100%;
5
- height: 100%;
6
- overflow: hidden;
7
- box-sizing: border-box;
8
- }
9
- .px-resizable-group.is-horizontal {
10
- flex-direction: row;
11
- }
12
- .px-resizable-group.is-vertical {
13
- flex-direction: column;
14
- }
15
- /* Resizable Panel */
16
- .px-resizable-panel {
17
- overflow: auto;
18
- position: relative;
19
- box-sizing: border-box;
20
- }
21
- .px-resizable-panel.is-collapsed {
22
- overflow: hidden;
23
- }
24
- /* Resizable Handle */
25
- .px-resizable-handle {
26
- flex: 0 0 8px;
27
- position: relative;
28
- display: flex;
29
- align-items: center;
30
- justify-content: center;
31
- user-select: none;
32
- z-index: 1;
33
- cursor: col-resize;
34
- transition: none;
35
- background: var(--px-border-color);
36
- box-sizing: border-box;
37
-
38
- /* Pixel border effect via clip-path */
39
- clip-path: polygon(
40
- 0 2px,
41
- 2px 2px,
42
- 2px 0,
43
- calc(100% - 2px) 0,
44
- calc(100% - 2px) 2px,
45
- 100% 2px,
46
- 100% calc(100% - 2px),
47
- calc(100% - 2px) calc(100% - 2px),
48
- calc(100% - 2px) 100%,
49
- 2px 100%,
50
- 2px calc(100% - 2px),
51
- 0 calc(100% - 2px)
52
- );
53
- }
54
- .px-resizable-handle:hover {
55
- background: var(--px-hover-border-color);
56
- }
57
- .px-resizable-handle:focus-visible {
58
- outline: 2px solid var(--px-color-primary);
59
- outline-offset: -2px;
60
- }
61
- /* Expanded hit area via ::before pseudo-element (not clipped by clip-path) */
62
- .px-resizable-handle.has-hit-area::before {
63
- content: '';
64
- position: absolute;
65
- inset: calc(-1 * var(--px-handle-hit-area, 0px));
66
- z-index: -1;
67
- }
68
- /* Vertical handle */
69
- .px-resizable-handle.is-vertical {
70
- flex: 0 0 8px;
71
- cursor: row-resize;
72
- clip-path: polygon(
73
- 2px 0,
74
- calc(100% - 2px) 0,
75
- calc(100% - 2px) 2px,
76
- 100% 2px,
77
- 100% calc(100% - 2px),
78
- calc(100% - 2px) calc(100% - 2px),
79
- calc(100% - 2px) 100%,
80
- 2px 100%,
81
- 2px calc(100% - 2px),
82
- 0 calc(100% - 2px),
83
- 0 2px,
84
- 2px 2px
85
- );
86
- }
87
- /* Dragging state */
88
- .px-resizable-handle.is-dragging {
89
- background: var(--px-color-primary);
90
- }
91
- /* Disabled state */
92
- .px-resizable-handle.is-disabled {
93
- cursor: not-allowed;
94
- opacity: 0.5;
95
- }
1
+ .px-resizable-group{box-sizing:border-box;width:100%;height:100%;display:flex;overflow:hidden}.px-resizable-group.is-horizontal{flex-direction:row}.px-resizable-group.is-vertical{flex-direction:column}.px-resizable-panel{box-sizing:border-box;position:relative;overflow:auto}.px-resizable-panel.is-collapsed{overflow:hidden}.px-resizable-handle{-webkit-user-select:none;user-select:none;z-index:1;cursor:col-resize;background:var(--px-border-color);box-sizing:border-box;clip-path:polygon(0 2px,2px 2px,2px 0,calc(100% - 2px) 0,calc(100% - 2px) 2px,100% 2px,100% calc(100% - 2px),calc(100% - 2px) calc(100% - 2px),calc(100% - 2px) 100%,2px 100%,2px calc(100% - 2px),0 calc(100% - 2px));flex:0 0 8px;justify-content:center;align-items:center;transition:none;display:flex;position:relative}.px-resizable-handle:hover{background:var(--px-hover-border-color)}.px-resizable-handle:focus-visible{outline:2px solid var(--px-color-primary);outline-offset:-2px}.px-resizable-handle.has-hit-area:before{content:"";inset:calc(-1 * var(--px-handle-hit-area,0px));z-index:-1;position:absolute}.px-resizable-handle.is-vertical{cursor:row-resize;clip-path:polygon(2px 0,calc(100% - 2px) 0,calc(100% - 2px) 2px,100% 2px,100% calc(100% - 2px),calc(100% - 2px) calc(100% - 2px),calc(100% - 2px) 100%,2px 100%,2px calc(100% - 2px),0 calc(100% - 2px),0 2px,2px 2px);flex:0 0 8px}.px-resizable-handle.is-dragging{background:var(--px-color-primary)}.px-resizable-handle.is-disabled{cursor:not-allowed;opacity:.5}