sakana-element 2.1.5 → 2.3.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.
Files changed (157) hide show
  1. package/README.md +95 -19
  2. package/dist/es/{Alert-C76ZWSVk.js → Alert-BwTsp4X3.js} +2 -2
  3. package/dist/es/Avatar-CJu6JYV3.js +9 -0
  4. package/dist/es/Badge-BmxZXX8k.js +14 -0
  5. package/dist/es/Breadcrumb-BP8MSklj.js +15 -0
  6. package/dist/es/{Button-fW_ZOLmT.js → Button-BJHtN7gh.js} +5 -5
  7. package/dist/es/Card-DJHkCmsz.js +16 -0
  8. package/dist/es/Checkbox-DX8L3fyp.js +51 -0
  9. package/dist/es/Collapse-Ir3V9CuO.js +53 -0
  10. package/dist/es/ConfigProvider-CsbSqwwi.js +44 -0
  11. package/dist/es/Divider-C7PtODSK.js +9 -0
  12. package/dist/es/Drawer-C2eVmvUp.js +40 -0
  13. package/dist/es/Dropdown-CVg_c2fB.js +104 -0
  14. package/dist/es/FileInput-BE26BmXm.js +33 -0
  15. package/dist/es/Form-7lZt5ehf.js +122 -0
  16. package/dist/es/{Icon-DpJyuj7c.js → Icon-BLDDdSU-.js} +1 -1
  17. package/dist/es/Indicator-B-en-MgG.js +9 -0
  18. package/dist/es/{Input-DBPpvf0Y.js → Input-C5HuVehE.js} +4 -4
  19. package/dist/es/Link-Av9RdcFv.js +11 -0
  20. package/dist/es/Loading-CBNDUWQd.js +92 -0
  21. package/dist/es/Message-DgnyyuXn.js +152 -0
  22. package/dist/es/Notification-LYRXnVAf.js +69 -0
  23. package/dist/es/{Overlay-BRDSWspM.js → Overlay-CpvMhnuU.js} +1 -1
  24. package/dist/es/Pixelate-BPypBgJU.js +67 -0
  25. package/dist/es/Popconfirm-DvxFdLrw.js +23 -0
  26. package/dist/es/Progress-Bc5INMhJ.js +12 -0
  27. package/dist/es/Radio-263_rtRl.js +33 -0
  28. package/dist/es/Select-7ZxUCS8z.js +133 -0
  29. package/dist/es/Switch-DiCsMJT3.js +34 -0
  30. package/dist/es/Table-BvA_xzDe.js +10 -0
  31. package/dist/es/Tooltip-J3ji6weH.js +74 -0
  32. package/dist/es/hooks-BqobYUzS.js +171 -0
  33. package/dist/es/index.js +94 -64
  34. package/dist/{theme → es/theme}/Alert.css +1 -1
  35. package/dist/es/theme/Avatar.css +86 -0
  36. package/dist/{theme → es/theme}/Badge.css +36 -30
  37. package/dist/es/theme/Breadcrumb.css +192 -0
  38. package/dist/{theme → es/theme}/Button.css +216 -216
  39. package/dist/es/theme/Card.css +347 -0
  40. package/dist/es/theme/Checkbox.css +484 -0
  41. package/dist/{theme → es/theme}/Collapse.css +214 -54
  42. package/dist/es/theme/Divider.css +111 -0
  43. package/dist/es/theme/Drawer.css +206 -0
  44. package/dist/es/theme/Dropdown.css +471 -0
  45. package/dist/es/theme/FileInput.css +365 -0
  46. package/dist/es/theme/Form.css +83 -0
  47. package/dist/es/theme/Indicator.css +159 -0
  48. package/dist/{theme → es/theme}/Input.css +1 -0
  49. package/dist/es/theme/Link.css +69 -0
  50. package/dist/es/theme/Loading.css +266 -0
  51. package/dist/es/theme/Message.css +565 -0
  52. package/dist/es/theme/Notification.css +316 -0
  53. package/dist/es/theme/Popconfirm.css +46 -0
  54. package/dist/es/theme/Progress.css +278 -0
  55. package/dist/es/theme/Radio.css +426 -0
  56. package/dist/{theme → es/theme}/Select.css +78 -78
  57. package/dist/es/theme/Table.css +680 -0
  58. package/dist/es/theme/Tooltip.css +235 -0
  59. package/dist/es/utils-BS5vsvlM.js +101 -0
  60. package/dist/index.css +1 -1
  61. package/dist/types/components/Avatar/index.d.ts +30 -0
  62. package/dist/types/components/Avatar/types.d.ts +8 -0
  63. package/dist/types/components/Badge/types.d.ts +1 -0
  64. package/dist/types/components/Breadcrumb/constants.d.ts +3 -0
  65. package/dist/types/components/Breadcrumb/index.d.ts +45 -0
  66. package/dist/types/components/Breadcrumb/types.d.ts +13 -0
  67. package/dist/types/components/Card/types.d.ts +6 -0
  68. package/dist/types/components/Checkbox/constants.d.ts +5 -0
  69. package/dist/types/components/Checkbox/index.d.ts +94 -0
  70. package/dist/types/components/Checkbox/types.d.ts +46 -0
  71. package/dist/types/components/Collapse/constants.d.ts +3 -0
  72. package/dist/types/components/Collapse/index.d.ts +14 -8
  73. package/dist/types/components/Collapse/types.d.ts +12 -0
  74. package/dist/types/components/Divider/index.d.ts +30 -0
  75. package/dist/types/components/Divider/types.d.ts +10 -0
  76. package/dist/types/components/Drawer/constants.d.ts +1 -0
  77. package/dist/types/components/Drawer/index.d.ts +72 -0
  78. package/dist/types/components/Drawer/types.d.ts +20 -0
  79. package/dist/types/components/Dropdown/index.d.ts +11 -1
  80. package/dist/types/components/Dropdown/types.d.ts +3 -0
  81. package/dist/types/components/Dropdown/useDropdownKeyboard.d.ts +8 -0
  82. package/dist/types/components/FileInput/constants.d.ts +3 -0
  83. package/dist/types/components/FileInput/index.d.ts +58 -0
  84. package/dist/types/components/FileInput/types.d.ts +24 -0
  85. package/dist/types/components/Form/types.d.ts +17 -7
  86. package/dist/types/components/Indicator/constants.d.ts +2 -0
  87. package/dist/types/components/Indicator/index.d.ts +28 -0
  88. package/dist/types/components/Indicator/types.d.ts +10 -0
  89. package/dist/types/components/Input/index.d.ts +10 -10
  90. package/dist/types/components/Link/index.d.ts +34 -0
  91. package/dist/types/components/Link/types.d.ts +10 -0
  92. package/dist/types/components/Loading/index.d.ts +25 -0
  93. package/dist/types/components/Loading/types.d.ts +9 -0
  94. package/dist/types/components/Message/methods.d.ts +2 -0
  95. package/dist/types/components/Message/types.d.ts +9 -3
  96. package/dist/types/components/MessageBox/types.d.ts +16 -4
  97. package/dist/types/components/Notification/index.d.ts +1 -1
  98. package/dist/types/components/Notification/methods.d.ts +6 -1
  99. package/dist/types/components/Notification/types.d.ts +10 -4
  100. package/dist/types/components/Pixelate/constants.d.ts +2 -0
  101. package/dist/types/components/Pixelate/index.d.ts +71 -0
  102. package/dist/types/components/Pixelate/types.d.ts +23 -0
  103. package/dist/types/components/Popconfirm/index.d.ts +16 -7
  104. package/dist/types/components/Popconfirm/types.d.ts +2 -1
  105. package/dist/types/components/Progress/constants.d.ts +2 -0
  106. package/dist/types/components/Progress/index.d.ts +50 -0
  107. package/dist/types/components/Progress/types.d.ts +22 -0
  108. package/dist/types/components/Radio/constants.d.ts +5 -0
  109. package/dist/types/components/Radio/index.d.ts +88 -0
  110. package/dist/types/components/Radio/types.d.ts +43 -0
  111. package/dist/types/components/Select/constants.d.ts +2 -1
  112. package/dist/types/components/Select/index.d.ts +35 -26
  113. package/dist/types/components/Switch/index.d.ts +5 -5
  114. package/dist/types/components/Table/index.d.ts +27 -0
  115. package/dist/types/components/Table/types.d.ts +20 -0
  116. package/dist/types/components/Tooltip/index.d.ts +6 -0
  117. package/dist/types/components/Tooltip/types.d.ts +7 -0
  118. package/dist/types/components/index.d.ts +12 -0
  119. package/dist/types/hooks/index.d.ts +3 -1
  120. package/dist/types/hooks/useDraggable.d.ts +7 -0
  121. package/dist/types/hooks/useFocusTrap.d.ts +5 -0
  122. package/dist/types/hooks/vitest.setup.d.ts +4 -0
  123. package/dist/types/utils/index.d.ts +1 -0
  124. package/dist/types/utils/instance-management.d.ts +40 -0
  125. package/dist/umd/index.css +1 -1
  126. package/dist/umd/index.css.gz +0 -0
  127. package/dist/umd/index.umd.cjs +5 -14
  128. package/dist/umd/index.umd.cjs.gz +0 -0
  129. package/package.json +5 -6
  130. package/dist/es/Badge-BG-vYP8Y.js +0 -13
  131. package/dist/es/Card-BCBnlVi_.js +0 -12
  132. package/dist/es/Collapse-B08VhCVq.js +0 -38
  133. package/dist/es/ConfigProvider-DZO1d5Eq.js +0 -44
  134. package/dist/es/Dropdown-49nf6F8P.js +0 -40
  135. package/dist/es/Form-CGiTDSGI.js +0 -108
  136. package/dist/es/Loading-DlygqGOv.js +0 -88
  137. package/dist/es/Message-ganFfLeU.js +0 -123
  138. package/dist/es/Notification-D4RYHV9o.js +0 -58
  139. package/dist/es/Popconfirm-Cop44KwQ.js +0 -22
  140. package/dist/es/Select-Blw_iO2r.js +0 -133
  141. package/dist/es/Switch-CHjcLtHs.js +0 -34
  142. package/dist/es/Tooltip-HWx_i2FA.js +0 -74
  143. package/dist/es/hooks-CYdEHUVd.js +0 -105
  144. package/dist/es/utils-bsCscZfS.js +0 -84
  145. package/dist/theme/Card.css +0 -112
  146. package/dist/theme/Dropdown.css +0 -187
  147. package/dist/theme/Form.css +0 -52
  148. package/dist/theme/Loading.css +0 -78
  149. package/dist/theme/Message.css +0 -353
  150. package/dist/theme/Notification.css +0 -126
  151. package/dist/theme/Popconfirm.css +0 -30
  152. package/dist/theme/Tooltip.css +0 -111
  153. /package/dist/{theme → es/theme}/Icon.css +0 -0
  154. /package/dist/{theme → es/theme}/Overlay.css +0 -0
  155. /package/dist/{theme → es/theme}/Switch.css +0 -0
  156. /package/dist/{theme → es/theme}/fonts/zpix.woff2 +0 -0
  157. /package/dist/{theme → es/theme}/index.css +0 -0
@@ -0,0 +1,365 @@
1
+ /* FileInput Variables */
2
+ .px-file-input {
3
+ --px-file-input-text-color: var(--px-text-color-primary);
4
+ --px-file-input-border-color: var(--px-border-color);
5
+ --px-file-input-hover-border-color: var(--px-hover-border-color);
6
+ --px-file-input-bg-color: var(--px-fill-color-blank);
7
+ --px-file-input-placeholder-color: var(--px-text-color-placeholder);
8
+ --px-file-input-shadow-color: var(--px-shadow-color);
9
+ --px-file-input-hover-shadow-color: var(--px-shadow-color);
10
+ --px-file-input-trigger-bg-color: var(--px-fill-color-dark);
11
+ --px-file-input-trigger-text-color: var(--px-text-color-primary);
12
+ --px-file-input-trigger-hover-bg-color: var(--px-fill-color-darker);
13
+ --px-file-input-icon-color: var(--px-text-color-secondary);
14
+ --px-file-input-clear-hover-color: var(--px-text-color-primary);
15
+ }
16
+ /* Base FileInput Styles */
17
+ .px-file-input {
18
+ --px-file-input-height: 36px;
19
+ position: relative;
20
+ font-size: var(--px-font-size-base);
21
+ font-family: var(--px-font-family);
22
+ display: inline-flex;
23
+ width: 100%;
24
+ line-height: var(--px-file-input-height);
25
+ box-sizing: border-box;
26
+ vertical-align: middle;
27
+ }
28
+ /* Disabled state */
29
+ .px-file-input.is-disabled {
30
+ cursor: not-allowed;
31
+ }
32
+ .px-file-input.is-disabled .px-file-input__wrapper {
33
+ opacity: 0.6;
34
+ cursor: not-allowed;
35
+ }
36
+ .px-file-input.is-disabled .px-file-input__wrapper::before {
37
+ background: var(--px-disabled-border-color);
38
+ }
39
+ .px-file-input.is-disabled .px-file-input__wrapper::after {
40
+ background: var(--px-disabled-bg-color);
41
+ }
42
+ .px-file-input.is-disabled .px-file-input__trigger {
43
+ cursor: not-allowed;
44
+ }
45
+ .px-file-input.is-disabled .px-file-input__name {
46
+ color: var(--px-disabled-text-color);
47
+ cursor: not-allowed;
48
+ }
49
+ /* FileInput Wrapper - Main pixel-style container */
50
+ .px-file-input__wrapper {
51
+ display: inline-flex;
52
+ flex-grow: 1;
53
+ align-items: center;
54
+ background: transparent;
55
+ border: none;
56
+ position: relative;
57
+ transition: none;
58
+ height: var(--px-file-input-height);
59
+ padding: 2px;
60
+ box-sizing: border-box;
61
+
62
+ /* Pixel shadow via drop-shadow */
63
+ filter: drop-shadow(
64
+ var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-file-input-shadow-color)
65
+ );
66
+ }
67
+ /* Border layer — filled with border color, clipped to pixel shape */
68
+ .px-file-input__wrapper::before {
69
+ content: "";
70
+ position: absolute;
71
+ inset: 0;
72
+ background: var(--px-file-input-border-color);
73
+ clip-path: polygon(
74
+ 0 4px,
75
+ 2px 4px,
76
+ 2px 2px,
77
+ 4px 2px,
78
+ 4px 0,
79
+ calc(100% - 4px) 0,
80
+ calc(100% - 4px) 2px,
81
+ calc(100% - 2px) 2px,
82
+ calc(100% - 2px) 4px,
83
+ 100% 4px,
84
+ 100% calc(100% - 4px),
85
+ calc(100% - 2px) calc(100% - 4px),
86
+ calc(100% - 2px) calc(100% - 2px),
87
+ calc(100% - 4px) calc(100% - 2px),
88
+ calc(100% - 4px) 100%,
89
+ 4px 100%,
90
+ 4px calc(100% - 2px),
91
+ 2px calc(100% - 2px),
92
+ 2px calc(100% - 4px),
93
+ 0 calc(100% - 4px)
94
+ );
95
+ z-index: -1;
96
+ }
97
+ /* Fill layer — inset by border width, filled with bg color */
98
+ .px-file-input__wrapper::after {
99
+ content: "";
100
+ position: absolute;
101
+ inset: 2px;
102
+ background: var(--px-file-input-bg-color);
103
+ clip-path: polygon(
104
+ 0 4px,
105
+ 2px 4px,
106
+ 2px 2px,
107
+ 4px 2px,
108
+ 4px 0,
109
+ calc(100% - 4px) 0,
110
+ calc(100% - 4px) 2px,
111
+ calc(100% - 2px) 2px,
112
+ calc(100% - 2px) 4px,
113
+ 100% 4px,
114
+ 100% calc(100% - 4px),
115
+ calc(100% - 2px) calc(100% - 4px),
116
+ calc(100% - 2px) calc(100% - 2px),
117
+ calc(100% - 4px) calc(100% - 2px),
118
+ calc(100% - 4px) 100%,
119
+ 4px 100%,
120
+ 4px calc(100% - 2px),
121
+ 2px calc(100% - 2px),
122
+ 2px calc(100% - 4px),
123
+ 0 calc(100% - 4px)
124
+ );
125
+ z-index: -1;
126
+ }
127
+ .px-file-input__wrapper:hover::before {
128
+ background: var(--px-file-input-hover-border-color);
129
+ }
130
+ /* Hidden native file input */
131
+ .px-file-input__native {
132
+ position: absolute;
133
+ width: 0;
134
+ height: 0;
135
+ overflow: hidden;
136
+ opacity: 0;
137
+ pointer-events: none;
138
+ }
139
+ /* Trigger button */
140
+ .px-file-input__trigger {
141
+ display: inline-flex;
142
+ align-items: center;
143
+ justify-content: center;
144
+ align-self: stretch;
145
+ padding: 0 12px;
146
+ background: var(--px-file-input-trigger-bg-color);
147
+ color: var(--px-file-input-trigger-text-color);
148
+ font-family: var(--px-font-family);
149
+ font-size: inherit;
150
+ cursor: pointer;
151
+ white-space: nowrap;
152
+ position: relative;
153
+ z-index: 1;
154
+ border-right: 2px solid var(--px-file-input-border-color);
155
+ user-select: none;
156
+
157
+ /* Notch top-left and bottom-left corners to match the pixel staircase border */
158
+ clip-path: polygon(
159
+ 0 2px,
160
+ 2px 2px,
161
+ 2px 0,
162
+ 100% 0,
163
+ 100% 100%,
164
+ 2px 100%,
165
+ 2px calc(100% - 2px),
166
+ 0 calc(100% - 2px)
167
+ );
168
+ }
169
+ .px-file-input__trigger:hover {
170
+ background: var(--px-file-input-trigger-hover-bg-color);
171
+ }
172
+ /* File name display */
173
+ .px-file-input__name {
174
+ flex: 1;
175
+ align-self: stretch;
176
+ display: flex;
177
+ align-items: center;
178
+ padding: 0 12px;
179
+ color: var(--px-file-input-text-color);
180
+ font-family: var(--px-font-family);
181
+ font-size: inherit;
182
+ overflow: hidden;
183
+ text-overflow: ellipsis;
184
+ white-space: nowrap;
185
+ position: relative;
186
+ z-index: 1;
187
+ }
188
+ .px-file-input__name:only-of-type {
189
+ color: var(--px-file-input-placeholder-color);
190
+ }
191
+ /* Clear icon */
192
+ .px-file-input__clear {
193
+ display: flex;
194
+ align-items: center;
195
+ justify-content: center;
196
+ align-self: stretch;
197
+ padding-right: 8px;
198
+ color: var(--px-file-input-icon-color);
199
+ cursor: pointer;
200
+ position: relative;
201
+ z-index: 1;
202
+ }
203
+ .px-file-input__clear:hover {
204
+ color: var(--px-file-input-clear-hover-color);
205
+ }
206
+ /* Size variants */
207
+ .px-file-input--large {
208
+ --px-file-input-height: 44px;
209
+ font-size: var(--px-font-size-large);
210
+ }
211
+ .px-file-input--large .px-file-input__trigger {
212
+ padding: 0 16px;
213
+ }
214
+ .px-file-input--small {
215
+ --px-file-input-height: 28px;
216
+ font-size: var(--px-font-size-small);
217
+ }
218
+ .px-file-input--small .px-file-input__wrapper {
219
+ filter: drop-shadow(2px 2px 0px var(--px-file-input-shadow-color));
220
+ }
221
+ .px-file-input--small .px-file-input__trigger {
222
+ padding: 0 8px;
223
+ }
224
+ .px-file-input--small .px-file-input__name {
225
+ padding: 0 8px;
226
+ }
227
+ /* Color variants */
228
+ .px-file-input--primary {
229
+ --px-file-input-border-color: var(--px-color-primary);
230
+ --px-file-input-hover-border-color: var(--px-color-primary-dark);
231
+ --px-file-input-shadow-color: var(--px-color-primary-dark);
232
+ }
233
+ .px-file-input--primary .px-file-input__wrapper {
234
+ filter: drop-shadow(var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-color-primary-dark));
235
+ }
236
+ .px-file-input--primary .px-file-input__trigger {
237
+ border-right-color: var(--px-color-primary);
238
+ }
239
+ .px-file-input--success {
240
+ --px-file-input-border-color: var(--px-color-success);
241
+ --px-file-input-hover-border-color: var(--px-color-success-dark);
242
+ --px-file-input-shadow-color: var(--px-color-success-dark);
243
+ }
244
+ .px-file-input--success .px-file-input__wrapper {
245
+ filter: drop-shadow(var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-color-success-dark));
246
+ }
247
+ .px-file-input--success .px-file-input__trigger {
248
+ border-right-color: var(--px-color-success);
249
+ }
250
+ .px-file-input--warning {
251
+ --px-file-input-border-color: var(--px-color-warning);
252
+ --px-file-input-hover-border-color: var(--px-color-warning-dark);
253
+ --px-file-input-shadow-color: var(--px-color-warning-dark);
254
+ }
255
+ .px-file-input--warning .px-file-input__wrapper {
256
+ filter: drop-shadow(var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-color-warning-dark));
257
+ }
258
+ .px-file-input--warning .px-file-input__trigger {
259
+ border-right-color: var(--px-color-warning);
260
+ }
261
+ .px-file-input--info {
262
+ --px-file-input-border-color: var(--px-color-info);
263
+ --px-file-input-hover-border-color: var(--px-color-info-dark);
264
+ --px-file-input-shadow-color: var(--px-color-info-dark);
265
+ }
266
+ .px-file-input--info .px-file-input__wrapper {
267
+ filter: drop-shadow(var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-color-info-dark));
268
+ }
269
+ .px-file-input--info .px-file-input__trigger {
270
+ border-right-color: var(--px-color-info);
271
+ }
272
+ .px-file-input--danger {
273
+ --px-file-input-border-color: var(--px-color-danger);
274
+ --px-file-input-hover-border-color: var(--px-color-danger-dark);
275
+ --px-file-input-shadow-color: var(--px-color-danger-dark);
276
+ }
277
+ .px-file-input--danger .px-file-input__wrapper {
278
+ filter: drop-shadow(var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-color-danger-dark));
279
+ }
280
+ .px-file-input--danger .px-file-input__trigger {
281
+ border-right-color: var(--px-color-danger);
282
+ }
283
+ /* Ghost variant — no border/shadow at rest */
284
+ .px-file-input.is-ghost .px-file-input__wrapper {
285
+ filter: none;
286
+ }
287
+ .px-file-input.is-ghost .px-file-input__wrapper::before { background: transparent;
288
+ }
289
+ .px-file-input.is-ghost .px-file-input__wrapper:hover::before { background: var(--px-file-input-hover-border-color);
290
+ }
291
+ .px-file-input.is-ghost .px-file-input__wrapper:hover {
292
+ filter: drop-shadow(var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-file-input-hover-shadow-color));
293
+ }
294
+ .px-file-input.is-ghost .px-file-input__trigger {
295
+ border-right-color: transparent;
296
+ }
297
+ .px-file-input.is-ghost:hover .px-file-input__trigger {
298
+ border-right-color: var(--px-file-input-hover-border-color);
299
+ }
300
+ /* Ghost + Color variants */
301
+ .px-file-input--primary.is-ghost {
302
+ --px-file-input-hover-shadow-color: var(--px-color-primary-dark);
303
+ }
304
+ .px-file-input--primary.is-ghost .px-file-input__wrapper {
305
+ filter: none;
306
+ }
307
+ .px-file-input--primary.is-ghost .px-file-input__wrapper::before { background: transparent;
308
+ }
309
+ .px-file-input--primary.is-ghost .px-file-input__wrapper:hover::before { background: var(--px-color-primary);
310
+ }
311
+ .px-file-input--primary.is-ghost .px-file-input__wrapper:hover {
312
+ filter: drop-shadow(var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-file-input-hover-shadow-color));
313
+ }
314
+ .px-file-input--success.is-ghost {
315
+ --px-file-input-hover-shadow-color: var(--px-color-success-dark);
316
+ }
317
+ .px-file-input--success.is-ghost .px-file-input__wrapper {
318
+ filter: none;
319
+ }
320
+ .px-file-input--success.is-ghost .px-file-input__wrapper::before { background: transparent;
321
+ }
322
+ .px-file-input--success.is-ghost .px-file-input__wrapper:hover::before { background: var(--px-color-success);
323
+ }
324
+ .px-file-input--success.is-ghost .px-file-input__wrapper:hover {
325
+ filter: drop-shadow(var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-file-input-hover-shadow-color));
326
+ }
327
+ .px-file-input--warning.is-ghost {
328
+ --px-file-input-hover-shadow-color: var(--px-color-warning-dark);
329
+ }
330
+ .px-file-input--warning.is-ghost .px-file-input__wrapper {
331
+ filter: none;
332
+ }
333
+ .px-file-input--warning.is-ghost .px-file-input__wrapper::before { background: transparent;
334
+ }
335
+ .px-file-input--warning.is-ghost .px-file-input__wrapper:hover::before { background: var(--px-color-warning);
336
+ }
337
+ .px-file-input--warning.is-ghost .px-file-input__wrapper:hover {
338
+ filter: drop-shadow(var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-file-input-hover-shadow-color));
339
+ }
340
+ .px-file-input--info.is-ghost {
341
+ --px-file-input-hover-shadow-color: var(--px-color-info-dark);
342
+ }
343
+ .px-file-input--info.is-ghost .px-file-input__wrapper {
344
+ filter: none;
345
+ }
346
+ .px-file-input--info.is-ghost .px-file-input__wrapper::before { background: transparent;
347
+ }
348
+ .px-file-input--info.is-ghost .px-file-input__wrapper:hover::before { background: var(--px-color-info);
349
+ }
350
+ .px-file-input--info.is-ghost .px-file-input__wrapper:hover {
351
+ filter: drop-shadow(var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-file-input-hover-shadow-color));
352
+ }
353
+ .px-file-input--danger.is-ghost {
354
+ --px-file-input-hover-shadow-color: var(--px-color-danger-dark);
355
+ }
356
+ .px-file-input--danger.is-ghost .px-file-input__wrapper {
357
+ filter: none;
358
+ }
359
+ .px-file-input--danger.is-ghost .px-file-input__wrapper::before { background: transparent;
360
+ }
361
+ .px-file-input--danger.is-ghost .px-file-input__wrapper:hover::before { background: var(--px-color-danger);
362
+ }
363
+ .px-file-input--danger.is-ghost .px-file-input__wrapper:hover {
364
+ filter: drop-shadow(var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-file-input-hover-shadow-color));
365
+ }
@@ -0,0 +1,83 @@
1
+ /* Form Component Styles */
2
+ .px-form[data-v-0e2bbb22] {
3
+ /* Form container styles */
4
+ }
5
+
6
+ /* Inline layout */
7
+ .px-form.is-inline[data-v-0e2bbb22] {
8
+ display: flex;
9
+ flex-wrap: wrap;
10
+ gap: 0 16px;
11
+ }
12
+ .px-form.is-inline .px-form-item[data-v-0e2bbb22] {
13
+ margin-bottom: 12px;
14
+ }
15
+ .px-form-item[data-v-0e2bbb22] {
16
+ display: flex;
17
+ flex-wrap: wrap;
18
+ align-items: flex-start;
19
+ margin-bottom: 18px;
20
+ }
21
+ .px-form-item__label[data-v-0e2bbb22] {
22
+ display: inline-block;
23
+ vertical-align: middle;
24
+ font-size: var(--px-font-size-base);
25
+ color: var(--px-text-color-regular);
26
+ line-height: 32px;
27
+ padding: 0 12px 0 0;
28
+ box-sizing: border-box;
29
+ width: var(--px-form-label-width, 150px);
30
+ flex-shrink: 0;
31
+ text-align: right;
32
+ }
33
+ .px-form-item__content[data-v-0e2bbb22] {
34
+ line-height: 32px;
35
+ position: relative;
36
+ font-size: var(--px-font-size-base);
37
+ flex: 1;
38
+ min-width: 0;
39
+ }
40
+ .px-form-item__error-msg[data-v-0e2bbb22] {
41
+ color: var(--px-color-danger);
42
+ font-size: var(--px-font-size-small);
43
+ line-height: 1;
44
+ padding-top: 4px;
45
+ position: absolute;
46
+ top: 100%;
47
+ left: 0;
48
+ }
49
+ .px-form-item.is-error .px-input__wrapper[data-v-0e2bbb22] {
50
+ border-color: var(--px-color-danger);
51
+ }
52
+ .px-form-item.is-success .px-input__wrapper[data-v-0e2bbb22] {
53
+ border-color: var(--px-color-success);
54
+ }
55
+ .px-form-item.is-required .px-form-item__label[data-v-0e2bbb22]::before {
56
+ content: "*";
57
+ color: var(--px-color-danger);
58
+ margin-right: 4px;
59
+ }
60
+
61
+ /* Input wrapper for status icon alignment */
62
+ .px-form-item__input-wrap[data-v-0e2bbb22] {
63
+ position: relative;
64
+ display: inline-flex;
65
+ align-items: center;
66
+ width: 100%;
67
+ }
68
+
69
+ /* Status icon */
70
+ .px-form-item__status-icon[data-v-0e2bbb22] {
71
+ position: absolute;
72
+ right: 8px;
73
+ z-index: 1;
74
+ }
75
+ .px-form-item__status-icon.is-success[data-v-0e2bbb22] {
76
+ color: var(--px-color-success);
77
+ }
78
+ .px-form-item__status-icon.is-error[data-v-0e2bbb22] {
79
+ color: var(--px-color-danger);
80
+ }
81
+ .px-form-item[data-v-0e2bbb22] {
82
+ --px-form-label-width: var(--ac9c6e38) !important;
83
+ }
@@ -0,0 +1,159 @@
1
+ /* Indicator Variables */
2
+ .px-indicator[data-v-84fa8f8b] {
3
+ --px-indicator-bg-color: var(--px-color-primary);
4
+ --px-indicator-border-color: var(--px-color-primary-dark);
5
+ --px-indicator-shadow-color: var(--px-color-primary-dark);
6
+ --px-indicator-dot-size: 10px;
7
+ --px-indicator-offset-x: 0px;
8
+ --px-indicator-offset-y: 0px;
9
+ }
10
+ /* Base Container */
11
+ .px-indicator[data-v-84fa8f8b] {
12
+ position: relative;
13
+ display: inline-block;
14
+ width: fit-content;
15
+ }
16
+ .px-indicator.is-inline[data-v-84fa8f8b] {
17
+ display: inline-flex;
18
+ }
19
+ /* Indicator Item — absolutely positioned overlay */
20
+ .px-indicator__item[data-v-84fa8f8b] {
21
+ position: absolute;
22
+ z-index: 1;
23
+ display: inline-flex;
24
+ align-items: center;
25
+ justify-content: center;
26
+ white-space: nowrap;
27
+ pointer-events: auto;
28
+ transition: none;
29
+ }
30
+ /* ─── Shared 9-position grid for item & ping ─── */
31
+ .px-indicator__item--top-start[data-v-84fa8f8b],
32
+ .px-indicator__item--top-center[data-v-84fa8f8b],
33
+ .px-indicator__item--top-end[data-v-84fa8f8b],
34
+ .px-indicator__ping--top-start[data-v-84fa8f8b],
35
+ .px-indicator__ping--top-center[data-v-84fa8f8b],
36
+ .px-indicator__ping--top-end[data-v-84fa8f8b] {
37
+ top: 0;
38
+ --px-indicator-ty: -50%;
39
+ }
40
+ .px-indicator__item--middle-start[data-v-84fa8f8b],
41
+ .px-indicator__item--middle-center[data-v-84fa8f8b],
42
+ .px-indicator__item--middle-end[data-v-84fa8f8b],
43
+ .px-indicator__ping--middle-start[data-v-84fa8f8b],
44
+ .px-indicator__ping--middle-center[data-v-84fa8f8b],
45
+ .px-indicator__ping--middle-end[data-v-84fa8f8b] {
46
+ top: 50%;
47
+ --px-indicator-ty: -50%;
48
+ }
49
+ .px-indicator__item--bottom-start[data-v-84fa8f8b],
50
+ .px-indicator__item--bottom-center[data-v-84fa8f8b],
51
+ .px-indicator__item--bottom-end[data-v-84fa8f8b],
52
+ .px-indicator__ping--bottom-start[data-v-84fa8f8b],
53
+ .px-indicator__ping--bottom-center[data-v-84fa8f8b],
54
+ .px-indicator__ping--bottom-end[data-v-84fa8f8b] {
55
+ bottom: 0;
56
+ --px-indicator-ty: 50%;
57
+ }
58
+ .px-indicator__item--top-start[data-v-84fa8f8b],
59
+ .px-indicator__item--middle-start[data-v-84fa8f8b],
60
+ .px-indicator__item--bottom-start[data-v-84fa8f8b],
61
+ .px-indicator__ping--top-start[data-v-84fa8f8b],
62
+ .px-indicator__ping--middle-start[data-v-84fa8f8b],
63
+ .px-indicator__ping--bottom-start[data-v-84fa8f8b] {
64
+ left: 0;
65
+ --px-indicator-tx: -50%;
66
+ }
67
+ .px-indicator__item--top-center[data-v-84fa8f8b],
68
+ .px-indicator__item--middle-center[data-v-84fa8f8b],
69
+ .px-indicator__item--bottom-center[data-v-84fa8f8b],
70
+ .px-indicator__ping--top-center[data-v-84fa8f8b],
71
+ .px-indicator__ping--middle-center[data-v-84fa8f8b],
72
+ .px-indicator__ping--bottom-center[data-v-84fa8f8b] {
73
+ left: 50%;
74
+ --px-indicator-tx: -50%;
75
+ }
76
+ .px-indicator__item--top-end[data-v-84fa8f8b],
77
+ .px-indicator__item--middle-end[data-v-84fa8f8b],
78
+ .px-indicator__item--bottom-end[data-v-84fa8f8b],
79
+ .px-indicator__ping--top-end[data-v-84fa8f8b],
80
+ .px-indicator__ping--middle-end[data-v-84fa8f8b],
81
+ .px-indicator__ping--bottom-end[data-v-84fa8f8b] {
82
+ right: 0;
83
+ --px-indicator-tx: 50%;
84
+ }
85
+ /* Apply transform with offset */
86
+ .px-indicator__item[data-v-84fa8f8b],
87
+ .px-indicator__ping[data-v-84fa8f8b] {
88
+ transform: translate(
89
+ calc(var(--px-indicator-tx, 0%) + var(--px-indicator-offset-x)),
90
+ calc(var(--px-indicator-ty, 0%) + var(--px-indicator-offset-y))
91
+ );
92
+ }
93
+ /* ─── Shared pixel staircase clip-path ─── */
94
+ .px-indicator__item.is-dot[data-v-84fa8f8b],
95
+ .px-indicator__ping[data-v-84fa8f8b] {
96
+ width: var(--px-indicator-dot-size);
97
+ height: var(--px-indicator-dot-size);
98
+ background: var(--px-indicator-bg-color);
99
+ clip-path: polygon(
100
+ 0 2px, 2px 2px, 2px 0,
101
+ calc(100% - 2px) 0, calc(100% - 2px) 2px, 100% 2px,
102
+ 100% calc(100% - 2px), calc(100% - 2px) calc(100% - 2px), calc(100% - 2px) 100%,
103
+ 2px 100%, 2px calc(100% - 2px), 0 calc(100% - 2px)
104
+ );
105
+ }
106
+ /* ─── Dot mode ─── */
107
+ .px-indicator__item.is-dot[data-v-84fa8f8b] {
108
+ border: none;
109
+ filter: drop-shadow(1px 1px 0px var(--px-indicator-shadow-color));
110
+ }
111
+ /* ─── Processing ping animation ─── */
112
+ .px-indicator__ping[data-v-84fa8f8b] {
113
+ position: absolute;
114
+ z-index: 0;
115
+ opacity: 0.75;
116
+ pointer-events: none;
117
+ animation: px-indicator-ping-84fa8f8b 1.5s steps(4, end) infinite;
118
+ }
119
+ @keyframes px-indicator-ping-84fa8f8b {
120
+ 0% {
121
+ scale: 1;
122
+ opacity: 0.75;
123
+ }
124
+ 75%, 100% {
125
+ scale: 2;
126
+ opacity: 0;
127
+ }
128
+ }
129
+ /* ─── Type color variants ─── */
130
+ .px-indicator__item--primary[data-v-84fa8f8b],
131
+ .px-indicator__ping--primary[data-v-84fa8f8b] {
132
+ --px-indicator-bg-color: var(--px-color-primary);
133
+ --px-indicator-border-color: var(--px-color-primary-dark);
134
+ --px-indicator-shadow-color: var(--px-color-primary-dark);
135
+ }
136
+ .px-indicator__item--success[data-v-84fa8f8b],
137
+ .px-indicator__ping--success[data-v-84fa8f8b] {
138
+ --px-indicator-bg-color: var(--px-color-success);
139
+ --px-indicator-border-color: var(--px-color-success-dark);
140
+ --px-indicator-shadow-color: var(--px-color-success-dark);
141
+ }
142
+ .px-indicator__item--info[data-v-84fa8f8b],
143
+ .px-indicator__ping--info[data-v-84fa8f8b] {
144
+ --px-indicator-bg-color: var(--px-color-info);
145
+ --px-indicator-border-color: var(--px-color-info-dark);
146
+ --px-indicator-shadow-color: var(--px-color-info-dark);
147
+ }
148
+ .px-indicator__item--warning[data-v-84fa8f8b],
149
+ .px-indicator__ping--warning[data-v-84fa8f8b] {
150
+ --px-indicator-bg-color: var(--px-color-warning);
151
+ --px-indicator-border-color: var(--px-color-warning-dark);
152
+ --px-indicator-shadow-color: var(--px-color-warning-dark);
153
+ }
154
+ .px-indicator__item--danger[data-v-84fa8f8b],
155
+ .px-indicator__ping--danger[data-v-84fa8f8b] {
156
+ --px-indicator-bg-color: var(--px-color-danger);
157
+ --px-indicator-border-color: var(--px-color-danger-dark);
158
+ --px-indicator-shadow-color: var(--px-color-danger-dark);
159
+ }
@@ -464,6 +464,7 @@
464
464
  .px-input__prefix,
465
465
  .px-input__suffix {
466
466
  display: inline-flex;
467
+ align-items: center;
467
468
  white-space: nowrap;
468
469
  flex-shrink: 0;
469
470
  flex-wrap: nowrap;
@@ -0,0 +1,69 @@
1
+ /* Link Variables */
2
+ .px-link[data-v-d754ba7d] {
3
+ --px-link-text-color: var(--px-text-color-regular);
4
+ --px-link-hover-color: var(--px-text-color-primary);
5
+ }
6
+ /* Base Link Styles */
7
+ .px-link[data-v-d754ba7d] {
8
+ display: inline-flex;
9
+ align-items: center;
10
+ gap: 4px;
11
+ font-family: var(--px-font-family);
12
+ font-size: var(--px-font-size-base);
13
+ color: var(--px-link-text-color);
14
+ cursor: pointer;
15
+ text-decoration: none;
16
+ transition: none;
17
+ }
18
+ .px-link.is-underline[data-v-d754ba7d] {
19
+ text-decoration: none;
20
+ background-image: repeating-linear-gradient(
21
+ to right,
22
+ var(--px-link-text-color) 0px,
23
+ var(--px-link-text-color) 4px,
24
+ transparent 4px,
25
+ transparent 8px
26
+ );
27
+ background-repeat: no-repeat;
28
+ background-position: bottom 0 left 0;
29
+ background-size: 100% 2px;
30
+ padding-bottom: 2px;
31
+ }
32
+ .px-link[data-v-d754ba7d]:hover {
33
+ color: var(--px-link-hover-color);
34
+ transform: translate(-1px, -1px);
35
+ }
36
+ .px-link[data-v-d754ba7d]:focus-visible {
37
+ outline: 2px dashed var(--px-color-primary);
38
+ outline-offset: 2px;
39
+ }
40
+ .px-link[data-v-d754ba7d]:active {
41
+ transform: translate(1px, 1px);
42
+ }
43
+ .px-link.is-disabled[data-v-d754ba7d] {
44
+ opacity: 0.5;
45
+ cursor: not-allowed;
46
+ pointer-events: none;
47
+ outline: none;
48
+ }
49
+ /* Type variants */
50
+ .px-link--primary[data-v-d754ba7d] {
51
+ --px-link-text-color: var(--px-color-primary);
52
+ --px-link-hover-color: var(--px-color-primary-dark);
53
+ }
54
+ .px-link--success[data-v-d754ba7d] {
55
+ --px-link-text-color: var(--px-color-success);
56
+ --px-link-hover-color: var(--px-color-success-dark);
57
+ }
58
+ .px-link--info[data-v-d754ba7d] {
59
+ --px-link-text-color: var(--px-color-info);
60
+ --px-link-hover-color: var(--px-color-info-dark);
61
+ }
62
+ .px-link--warning[data-v-d754ba7d] {
63
+ --px-link-text-color: var(--px-color-warning);
64
+ --px-link-hover-color: var(--px-color-warning-dark);
65
+ }
66
+ .px-link--danger[data-v-d754ba7d] {
67
+ --px-link-text-color: var(--px-color-danger);
68
+ --px-link-hover-color: var(--px-color-danger-dark);
69
+ }