sakana-element 2.2.0 → 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 (130) hide show
  1. package/README.md +95 -22
  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-CoFWwBwv.js → Badge-BmxZXX8k.js} +2 -2
  5. package/dist/es/{Breadcrumb-BtrwTVKW.js → Breadcrumb-BP8MSklj.js} +2 -2
  6. package/dist/es/{Button-S_31-UWJ.js → Button-BJHtN7gh.js} +2 -2
  7. package/dist/es/{Card-DcW6nHYD.js → Card-DJHkCmsz.js} +2 -2
  8. package/dist/es/Checkbox-DX8L3fyp.js +51 -0
  9. package/dist/es/{Collapse-DsS7M-m3.js → Collapse-Ir3V9CuO.js} +2 -2
  10. package/dist/es/{ConfigProvider-BgIewHXP.js → ConfigProvider-CsbSqwwi.js} +1 -1
  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-BQ59woas.js → FileInput-BE26BmXm.js} +3 -3
  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-CiE4bPJN.js → Input-C5HuVehE.js} +6 -6
  19. package/dist/es/{Link-B9B2APZq.js → Link-Av9RdcFv.js} +1 -1
  20. package/dist/es/{Loading-BW99pE5N.js → Loading-CBNDUWQd.js} +12 -12
  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-Dwqv8isB.js → Select-7ZxUCS8z.js} +13 -13
  29. package/dist/es/{Switch-B1Gnv1tB.js → Switch-DiCsMJT3.js} +3 -3
  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 +90 -70
  34. package/dist/{theme → es/theme}/Avatar.css +13 -43
  35. package/dist/{theme → es/theme}/Breadcrumb.css +46 -4
  36. package/dist/es/theme/Card.css +347 -0
  37. package/dist/es/theme/Checkbox.css +484 -0
  38. package/dist/es/theme/Divider.css +111 -0
  39. package/dist/es/theme/Drawer.css +206 -0
  40. package/dist/es/theme/Dropdown.css +471 -0
  41. package/dist/es/theme/Indicator.css +159 -0
  42. package/dist/{theme → es/theme}/Input.css +1 -0
  43. package/dist/{theme → es/theme}/Link.css +22 -3
  44. package/dist/{theme → es/theme}/Loading.css +50 -12
  45. package/dist/{theme → es/theme}/Message.css +249 -40
  46. package/dist/es/theme/Notification.css +316 -0
  47. package/dist/es/theme/Popconfirm.css +46 -0
  48. package/dist/es/theme/Progress.css +278 -0
  49. package/dist/es/theme/Radio.css +426 -0
  50. package/dist/es/theme/Table.css +680 -0
  51. package/dist/es/theme/Tooltip.css +235 -0
  52. package/dist/es/utils-BS5vsvlM.js +101 -0
  53. package/dist/index.css +1 -1
  54. package/dist/types/components/Avatar/types.d.ts +0 -2
  55. package/dist/types/components/Checkbox/constants.d.ts +5 -0
  56. package/dist/types/components/Checkbox/index.d.ts +94 -0
  57. package/dist/types/components/Checkbox/types.d.ts +46 -0
  58. package/dist/types/components/Collapse/index.d.ts +5 -5
  59. package/dist/types/components/Divider/index.d.ts +30 -0
  60. package/dist/types/components/Divider/types.d.ts +10 -0
  61. package/dist/types/components/Drawer/constants.d.ts +1 -0
  62. package/dist/types/components/Drawer/index.d.ts +72 -0
  63. package/dist/types/components/Drawer/types.d.ts +20 -0
  64. package/dist/types/components/Dropdown/index.d.ts +11 -1
  65. package/dist/types/components/Dropdown/types.d.ts +3 -0
  66. package/dist/types/components/Dropdown/useDropdownKeyboard.d.ts +8 -0
  67. package/dist/types/components/FileInput/index.d.ts +5 -5
  68. package/dist/types/components/Indicator/constants.d.ts +2 -0
  69. package/dist/types/components/Indicator/index.d.ts +28 -0
  70. package/dist/types/components/Indicator/types.d.ts +10 -0
  71. package/dist/types/components/Input/index.d.ts +10 -10
  72. package/dist/types/components/Message/methods.d.ts +2 -0
  73. package/dist/types/components/Message/types.d.ts +7 -1
  74. package/dist/types/components/MessageBox/types.d.ts +14 -2
  75. package/dist/types/components/Notification/methods.d.ts +3 -0
  76. package/dist/types/components/Notification/types.d.ts +8 -2
  77. package/dist/types/components/Pixelate/constants.d.ts +2 -0
  78. package/dist/types/components/Pixelate/index.d.ts +71 -0
  79. package/dist/types/components/Pixelate/types.d.ts +23 -0
  80. package/dist/types/components/Popconfirm/index.d.ts +16 -7
  81. package/dist/types/components/Popconfirm/types.d.ts +2 -1
  82. package/dist/types/components/Progress/constants.d.ts +2 -0
  83. package/dist/types/components/Progress/index.d.ts +50 -0
  84. package/dist/types/components/Progress/types.d.ts +22 -0
  85. package/dist/types/components/Radio/constants.d.ts +5 -0
  86. package/dist/types/components/Radio/index.d.ts +88 -0
  87. package/dist/types/components/Radio/types.d.ts +43 -0
  88. package/dist/types/components/Select/index.d.ts +30 -21
  89. package/dist/types/components/Switch/index.d.ts +5 -5
  90. package/dist/types/components/Table/index.d.ts +27 -0
  91. package/dist/types/components/Table/types.d.ts +20 -0
  92. package/dist/types/components/Tooltip/index.d.ts +6 -0
  93. package/dist/types/components/Tooltip/types.d.ts +7 -0
  94. package/dist/types/components/index.d.ts +8 -0
  95. package/dist/types/hooks/index.d.ts +3 -1
  96. package/dist/types/hooks/useDraggable.d.ts +7 -0
  97. package/dist/types/hooks/useFocusTrap.d.ts +5 -0
  98. package/dist/types/utils/index.d.ts +1 -0
  99. package/dist/types/utils/instance-management.d.ts +40 -0
  100. package/dist/umd/index.css +1 -1
  101. package/dist/umd/index.css.gz +0 -0
  102. package/dist/umd/index.umd.cjs +4 -4
  103. package/dist/umd/index.umd.cjs.gz +0 -0
  104. package/package.json +59 -59
  105. package/dist/es/Avatar-CxsRW-wl.js +0 -9
  106. package/dist/es/Dropdown-GcomGMAI.js +0 -40
  107. package/dist/es/Form-j90EzLXU.js +0 -122
  108. package/dist/es/Message-DCNnTUje.js +0 -123
  109. package/dist/es/Notification-CBzY5904.js +0 -58
  110. package/dist/es/Popconfirm-DF6d2ORS.js +0 -23
  111. package/dist/es/Tooltip-k6gKnMyt.js +0 -74
  112. package/dist/es/hooks-BaG7l8K5.js +0 -116
  113. package/dist/es/utils-bsCscZfS.js +0 -84
  114. package/dist/theme/Card.css +0 -263
  115. package/dist/theme/Dropdown.css +0 -187
  116. package/dist/theme/Notification.css +0 -126
  117. package/dist/theme/Popconfirm.css +0 -30
  118. package/dist/theme/Tooltip.css +0 -111
  119. /package/dist/{theme → es/theme}/Alert.css +0 -0
  120. /package/dist/{theme → es/theme}/Badge.css +0 -0
  121. /package/dist/{theme → es/theme}/Button.css +0 -0
  122. /package/dist/{theme → es/theme}/Collapse.css +0 -0
  123. /package/dist/{theme → es/theme}/FileInput.css +0 -0
  124. /package/dist/{theme → es/theme}/Form.css +0 -0
  125. /package/dist/{theme → es/theme}/Icon.css +0 -0
  126. /package/dist/{theme → es/theme}/Overlay.css +0 -0
  127. /package/dist/{theme → es/theme}/Select.css +0 -0
  128. /package/dist/{theme → es/theme}/Switch.css +0 -0
  129. /package/dist/{theme → es/theme}/fonts/zpix.woff2 +0 -0
  130. /package/dist/{theme → es/theme}/index.css +0 -0
@@ -0,0 +1,316 @@
1
+ /* Notification Variables */
2
+ .px-notification[data-v-4191d2e2] {
3
+ --px-notification-width: 330px;
4
+ --px-notification-padding: 14px 20px;
5
+ --px-notification-border-color: var(--px-border-color);
6
+ --px-notification-bg-color: var(--px-bg-color-overlay);
7
+ --px-notification-icon-size: 24px;
8
+ --px-notification-close-font-size: var(--px-font-size-base);
9
+ --px-notification-content-font-size: var(--px-font-size-base);
10
+ --px-notification-content-color: var(--px-text-color-regular);
11
+ --px-notification-title-font-size: var(--px-font-size-large);
12
+ --px-notification-title-color: var(--px-text-color-primary);
13
+ --px-notification-close-color: var(--px-text-color-secondary);
14
+ --px-notification-close-hover-color: var(--px-text-color-primary);
15
+ --px-notification-shadow-color: var(--px-shadow-color);
16
+ --px-notification-divider-color: var(--px-border-color-light);
17
+
18
+ /* Beveled inset for 3D raised-panel depth */
19
+ --px-notification-inset-highlight: inset 2px 2px 0 0 rgba(255, 255, 255, 0.35);
20
+ --px-notification-inset-shadow: inset -2px -2px 0 0 rgba(0, 0, 0, 0.08);
21
+ }
22
+ /* Base Notification Styles - Pixel Game Aesthetic */
23
+ .px-notification[data-v-4191d2e2] {
24
+ display: flex;
25
+ width: var(--px-notification-width);
26
+ padding: var(--px-notification-padding);
27
+ box-sizing: border-box;
28
+ position: fixed;
29
+ overflow-wrap: anywhere;
30
+ overflow: hidden;
31
+ z-index: 9999;
32
+ font-family: var(--px-font-family);
33
+
34
+ /* Remove traditional styling — pseudo-elements handle visuals */
35
+ background: transparent;
36
+ border: none;
37
+
38
+ /* Pixel shadow via drop-shadow (respects clip-path shape) */
39
+ filter: drop-shadow(var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-notification-shadow-color));
40
+
41
+ /* No smooth transitions for pixel feel */
42
+ transition: none;
43
+ }
44
+ /* Border layer — 3-step staircase clip (8px corners) */
45
+ .px-notification[data-v-4191d2e2]::before {
46
+ content: '';
47
+ position: absolute;
48
+ inset: 0;
49
+ background: var(--px-notification-border-color);
50
+ clip-path: polygon(
51
+ 0 8px, 2px 8px, 2px 4px, 4px 4px, 4px 2px, 8px 2px, 8px 0,
52
+ calc(100% - 8px) 0, calc(100% - 8px) 2px, calc(100% - 4px) 2px, calc(100% - 4px) 4px, calc(100% - 2px) 4px, calc(100% - 2px) 8px, 100% 8px,
53
+ 100% calc(100% - 8px), calc(100% - 2px) calc(100% - 8px), calc(100% - 2px) calc(100% - 4px), calc(100% - 4px) calc(100% - 4px), calc(100% - 4px) calc(100% - 2px), calc(100% - 8px) calc(100% - 2px), calc(100% - 8px) 100%,
54
+ 8px 100%, 8px calc(100% - 2px), 4px calc(100% - 2px), 4px calc(100% - 4px), 2px calc(100% - 4px), 2px calc(100% - 8px), 0 calc(100% - 8px)
55
+ );
56
+ z-index: 0;
57
+ }
58
+ /* Fill layer — 4px inset, 2-step staircase chamfer, beveled */
59
+ .px-notification[data-v-4191d2e2]::after {
60
+ content: '';
61
+ position: absolute;
62
+ inset: 4px;
63
+ background: var(--px-notification-bg-color);
64
+ clip-path: polygon(
65
+ 0 4px, 2px 4px, 2px 2px, 4px 2px, 4px 0,
66
+ calc(100% - 4px) 0, calc(100% - 4px) 2px, calc(100% - 2px) 2px, calc(100% - 2px) 4px, 100% 4px,
67
+ 100% calc(100% - 4px), calc(100% - 2px) calc(100% - 4px), calc(100% - 2px) calc(100% - 2px), calc(100% - 4px) calc(100% - 2px), calc(100% - 4px) 100%,
68
+ 4px 100%, 4px calc(100% - 2px), 2px calc(100% - 2px), 2px calc(100% - 4px), 0 calc(100% - 4px)
69
+ );
70
+ box-shadow: var(--px-notification-inset-highlight), var(--px-notification-inset-shadow);
71
+ z-index: 0;
72
+ }
73
+ .px-notification.right[data-v-4191d2e2] {
74
+ right: 16px;
75
+ }
76
+ .px-notification.left[data-v-4191d2e2] {
77
+ left: 16px;
78
+ }
79
+ .px-notification .px-notification__text[data-v-4191d2e2] {
80
+ position: relative;
81
+ z-index: 1;
82
+ margin: 0 10px;
83
+ flex: 1;
84
+ }
85
+ .px-notification .px-notification__icon[data-v-4191d2e2] {
86
+ position: relative;
87
+ z-index: 1;
88
+ height: var(--px-notification-icon-size);
89
+ width: var(--px-notification-icon-size);
90
+ font-size: var(--px-notification-icon-size);
91
+ color: var(--px-notification-icon-color);
92
+ flex-shrink: 0;
93
+ }
94
+ .px-notification .px-notification__title[data-v-4191d2e2] {
95
+ position: relative;
96
+ z-index: 1;
97
+ font-weight: 500;
98
+ font-size: var(--px-notification-title-font-size);
99
+ font-family: var(--px-font-family);
100
+ line-height: var(--px-notification-icon-size);
101
+ color: var(--px-notification-title-color);
102
+ margin: 0;
103
+ padding-bottom: 8px;
104
+ }
105
+ /* Pixel-dashed divider at bottom */
106
+ .px-notification .px-notification__title[data-v-4191d2e2]::after {
107
+ content: "";
108
+ position: absolute;
109
+ bottom: 0;
110
+ left: 0;
111
+ right: 0;
112
+ height: 2px;
113
+ background-image: repeating-linear-gradient(
114
+ to right,
115
+ var(--px-notification-divider-color) 0px,
116
+ var(--px-notification-divider-color) 6px,
117
+ transparent 6px,
118
+ transparent 12px
119
+ );
120
+ }
121
+ .px-notification .px-notification__content[data-v-4191d2e2] {
122
+ position: relative;
123
+ z-index: 1;
124
+ font-size: var(--px-notification-content-font-size);
125
+ font-family: var(--px-font-family);
126
+ line-height: 1.5;
127
+ margin: 8px 0 0;
128
+ color: var(--px-notification-content-color);
129
+ text-align: left;
130
+ }
131
+ .px-notification .px-notification__close[data-v-4191d2e2] {
132
+ position: absolute;
133
+ top: 14px;
134
+ right: 14px;
135
+ cursor: pointer;
136
+ color: var(--px-notification-close-color);
137
+ font-size: var(--px-notification-close-font-size);
138
+ z-index: 1;
139
+ transition: none;
140
+ }
141
+ .px-notification .px-notification__close .px-icon[data-v-4191d2e2] {
142
+ cursor: pointer;
143
+ transition: none;
144
+ }
145
+ .px-notification .px-notification__close .px-icon[data-v-4191d2e2]:hover {
146
+ color: var(--px-notification-close-hover-color);
147
+ transform: translate(-1px, -1px);
148
+ }
149
+ .px-notification .px-notification__close .px-icon[data-v-4191d2e2]:active {
150
+ transform: translate(1px, 1px);
151
+ }
152
+ /* Map error type to danger color palette so @each loops handle both */
153
+ .px-notification--error[data-v-4191d2e2] {
154
+ --px-color-error: var(--px-color-danger);
155
+ --px-color-error-dark: var(--px-color-danger-dark);
156
+ --px-color-error-light-5: var(--px-color-danger-light-5);
157
+ --px-color-error-light-9: var(--px-color-danger-light-9);
158
+ }
159
+ /* Type variants with colored borders and shadows */
160
+ .px-notification--info[data-v-4191d2e2] {
161
+ --px-notification-icon-color: var(--px-color-info);
162
+ --px-notification-border-color: var(--px-color-info);
163
+ --px-notification-shadow-color: var(--px-color-info-dark);
164
+ --px-notification-divider-color: var(--px-color-info-light-5, var(--px-color-info));
165
+ }
166
+ .px-notification--success[data-v-4191d2e2] {
167
+ --px-notification-icon-color: var(--px-color-success);
168
+ --px-notification-border-color: var(--px-color-success);
169
+ --px-notification-shadow-color: var(--px-color-success-dark);
170
+ --px-notification-divider-color: var(--px-color-success-light-5, var(--px-color-success));
171
+ }
172
+ .px-notification--warning[data-v-4191d2e2] {
173
+ --px-notification-icon-color: var(--px-color-warning);
174
+ --px-notification-border-color: var(--px-color-warning);
175
+ --px-notification-shadow-color: var(--px-color-warning-dark);
176
+ --px-notification-divider-color: var(--px-color-warning-light-5, var(--px-color-warning));
177
+ }
178
+ .px-notification--danger[data-v-4191d2e2] {
179
+ --px-notification-icon-color: var(--px-color-danger);
180
+ --px-notification-border-color: var(--px-color-danger);
181
+ --px-notification-shadow-color: var(--px-color-danger-dark);
182
+ --px-notification-divider-color: var(--px-color-danger-light-5, var(--px-color-danger));
183
+ }
184
+ .px-notification--error[data-v-4191d2e2] {
185
+ --px-notification-icon-color: var(--px-color-error);
186
+ --px-notification-border-color: var(--px-color-error);
187
+ --px-notification-shadow-color: var(--px-color-error-dark);
188
+ --px-notification-divider-color: var(--px-color-error-light-5, var(--px-color-error));
189
+ }
190
+ /* ─── Plain variant ─── */
191
+ .px-notification.is-plain[data-v-4191d2e2] {
192
+ --px-notification-shadow-color: var(--px-border-color-light);
193
+ --px-notification-bg-color: var(--px-fill-color-blank);
194
+ }
195
+ .px-notification--info.is-plain[data-v-4191d2e2] {
196
+ --px-notification-bg-color: var(--px-color-info-light-9);
197
+ --px-notification-border-color: var(--px-color-info-light-5, var(--px-color-info));
198
+ --px-notification-icon-color: var(--px-color-info);
199
+ --px-notification-title-color: var(--px-color-info-dark);
200
+ --px-notification-content-color: var(--px-color-info);
201
+ --px-notification-shadow-color: var(--px-color-info-light-5, var(--px-color-info));
202
+ --px-notification-divider-color: var(--px-color-info-light-5, var(--px-color-info));
203
+ }
204
+ .px-notification--success.is-plain[data-v-4191d2e2] {
205
+ --px-notification-bg-color: var(--px-color-success-light-9);
206
+ --px-notification-border-color: var(--px-color-success-light-5, var(--px-color-success));
207
+ --px-notification-icon-color: var(--px-color-success);
208
+ --px-notification-title-color: var(--px-color-success-dark);
209
+ --px-notification-content-color: var(--px-color-success);
210
+ --px-notification-shadow-color: var(--px-color-success-light-5, var(--px-color-success));
211
+ --px-notification-divider-color: var(--px-color-success-light-5, var(--px-color-success));
212
+ }
213
+ .px-notification--warning.is-plain[data-v-4191d2e2] {
214
+ --px-notification-bg-color: var(--px-color-warning-light-9);
215
+ --px-notification-border-color: var(--px-color-warning-light-5, var(--px-color-warning));
216
+ --px-notification-icon-color: var(--px-color-warning);
217
+ --px-notification-title-color: var(--px-color-warning-dark);
218
+ --px-notification-content-color: var(--px-color-warning);
219
+ --px-notification-shadow-color: var(--px-color-warning-light-5, var(--px-color-warning));
220
+ --px-notification-divider-color: var(--px-color-warning-light-5, var(--px-color-warning));
221
+ }
222
+ .px-notification--danger.is-plain[data-v-4191d2e2] {
223
+ --px-notification-bg-color: var(--px-color-danger-light-9);
224
+ --px-notification-border-color: var(--px-color-danger-light-5, var(--px-color-danger));
225
+ --px-notification-icon-color: var(--px-color-danger);
226
+ --px-notification-title-color: var(--px-color-danger-dark);
227
+ --px-notification-content-color: var(--px-color-danger);
228
+ --px-notification-shadow-color: var(--px-color-danger-light-5, var(--px-color-danger));
229
+ --px-notification-divider-color: var(--px-color-danger-light-5, var(--px-color-danger));
230
+ }
231
+ .px-notification--error.is-plain[data-v-4191d2e2] {
232
+ --px-notification-bg-color: var(--px-color-error-light-9);
233
+ --px-notification-border-color: var(--px-color-error-light-5, var(--px-color-error));
234
+ --px-notification-icon-color: var(--px-color-error);
235
+ --px-notification-title-color: var(--px-color-error-dark);
236
+ --px-notification-content-color: var(--px-color-error);
237
+ --px-notification-shadow-color: var(--px-color-error-light-5, var(--px-color-error));
238
+ --px-notification-divider-color: var(--px-color-error-light-5, var(--px-color-error));
239
+ }
240
+ /* ─── Ghost variant ─── */
241
+ .px-notification.is-ghost[data-v-4191d2e2] {
242
+ --px-notification-bg-color: var(--px-fill-color-blank);
243
+ --px-notification-shadow-color: transparent;
244
+ filter: none;
245
+ }
246
+ .px-notification.is-ghost[data-v-4191d2e2]::before, .px-notification.is-ghost[data-v-4191d2e2]::after { display: none;
247
+ }
248
+ .px-notification--info.is-ghost[data-v-4191d2e2] {
249
+ --px-notification-icon-color: var(--px-color-info);
250
+ --px-notification-title-color: var(--px-color-info-dark);
251
+ --px-notification-content-color: var(--px-color-info);
252
+ }
253
+ .px-notification--success.is-ghost[data-v-4191d2e2] {
254
+ --px-notification-icon-color: var(--px-color-success);
255
+ --px-notification-title-color: var(--px-color-success-dark);
256
+ --px-notification-content-color: var(--px-color-success);
257
+ }
258
+ .px-notification--warning.is-ghost[data-v-4191d2e2] {
259
+ --px-notification-icon-color: var(--px-color-warning);
260
+ --px-notification-title-color: var(--px-color-warning-dark);
261
+ --px-notification-content-color: var(--px-color-warning);
262
+ }
263
+ .px-notification--danger.is-ghost[data-v-4191d2e2] {
264
+ --px-notification-icon-color: var(--px-color-danger);
265
+ --px-notification-title-color: var(--px-color-danger-dark);
266
+ --px-notification-content-color: var(--px-color-danger);
267
+ }
268
+ .px-notification--error.is-ghost[data-v-4191d2e2] {
269
+ --px-notification-icon-color: var(--px-color-error);
270
+ --px-notification-title-color: var(--px-color-error-dark);
271
+ --px-notification-content-color: var(--px-color-error);
272
+ }
273
+ /* ─── Timer bar ─── */
274
+ .px-notification__timer[data-v-4191d2e2] {
275
+ position: absolute;
276
+ bottom: 4px;
277
+ left: 8px;
278
+ right: 8px;
279
+ height: 2px;
280
+ z-index: 1;
281
+ background: var(--px-notification-icon-color, var(--px-text-color-secondary));
282
+ opacity: 0.5;
283
+ animation: px-notification-timer-4191d2e2 linear forwards;
284
+ transform-origin: left;
285
+ }
286
+ /* Pause timer bar animation when notification is hovered (matches JS timer pause) */
287
+ .px-notification:hover .px-notification__timer[data-v-4191d2e2] {
288
+ animation-play-state: paused;
289
+ }
290
+ @keyframes px-notification-timer-4191d2e2 {
291
+ 0% { transform: scaleX(1);
292
+ }
293
+ 100% { transform: scaleX(0);
294
+ }
295
+ }
296
+ /* Dark mode — invert bevel highlights */
297
+ .px-dark .px-notification[data-v-4191d2e2] {
298
+ --px-notification-inset-highlight: inset 2px 2px 0 0 rgba(255, 255, 255, 0.10);
299
+ --px-notification-inset-shadow: inset -2px -2px 0 0 rgba(0, 0, 0, 0.25);
300
+ }
301
+ /* Animation */
302
+ .px-notification-fade-enter-from.right[data-v-4191d2e2] {
303
+ right: 0;
304
+ transform: translateX(100%);
305
+ }
306
+ .px-notification-fade-enter-from.left[data-v-4191d2e2] {
307
+ left: 0;
308
+ transform: translateX(-100%);
309
+ }
310
+ .px-notification-fade-leave-to[data-v-4191d2e2] {
311
+ opacity: 0;
312
+ }
313
+ .px-notification-fade-enter-active[data-v-4191d2e2],
314
+ .px-notification-fade-leave-active[data-v-4191d2e2] {
315
+ transition: opacity 0.15s steps(3), transform 0.15s steps(3);
316
+ }
@@ -0,0 +1,46 @@
1
+ /* Popconfirm Variables */
2
+ .px-popconfirm[data-v-68772965] {
3
+ --px-popconfirm-icon-size: 16px;
4
+ --px-popconfirm-font-size: var(--px-font-size-base);
5
+ }
6
+ /* Base Popconfirm Styles - Pixel Dialog */
7
+ .px-popconfirm[data-v-68772965] {
8
+ font-family: var(--px-font-family);
9
+ }
10
+ .px-popconfirm .px-popconfirm__main[data-v-68772965] {
11
+ display: flex;
12
+ align-items: flex-start;
13
+ gap: 8px;
14
+ font-size: var(--px-popconfirm-font-size);
15
+ color: inherit;
16
+ line-height: 1.5;
17
+ }
18
+ .px-popconfirm .px-popconfirm__main i[data-v-68772965] {
19
+ font-size: var(--px-popconfirm-icon-size);
20
+ flex-shrink: 0;
21
+ margin-top: 2px;
22
+ }
23
+ .px-popconfirm .px-popconfirm__action[data-v-68772965] {
24
+ display: flex;
25
+ justify-content: flex-end;
26
+ gap: 8px;
27
+ margin-top: 12px;
28
+ padding-top: 12px;
29
+ position: relative;
30
+ }
31
+ /* Pixel-dashed divider */
32
+ .px-popconfirm .px-popconfirm__action[data-v-68772965]::before {
33
+ content: "";
34
+ position: absolute;
35
+ top: 0;
36
+ left: 0;
37
+ right: 0;
38
+ height: 2px;
39
+ background-image: repeating-linear-gradient(
40
+ to right,
41
+ var(--px-border-color-lighter) 0px,
42
+ var(--px-border-color-lighter) 6px,
43
+ transparent 6px,
44
+ transparent 12px
45
+ );
46
+ }
@@ -0,0 +1,278 @@
1
+ /* Progress Variables */
2
+ .px-progress {
3
+ --px-progress-height: 14px;
4
+ --px-progress-fill-color: var(--px-color-primary);
5
+ --px-progress-fill-border-color: var(--px-color-primary-dark);
6
+ --px-progress-track-bg-color: var(--px-fill-color-blank);
7
+ --px-progress-track-border-color: var(--px-border-color-dark);
8
+ --px-progress-text-color: var(--px-text-color-primary);
9
+ --px-progress-shadow-color: var(--px-color-primary-dark);
10
+ --px-progress-text-size: var(--px-font-size-small);
11
+ --px-progress-text-gap: 10px;
12
+
13
+ /* Pixel-art chunked fill */
14
+ --px-progress-chunk-width: 8px;
15
+ --px-progress-chunk-gap: 2px;
16
+
17
+ /* Beveled 3D depth on fill bar */
18
+ --px-progress-fill-highlight: inset 1px 1px 0 0 rgba(255, 255, 255, 0.35);
19
+ --px-progress-fill-shadow: inset -1px -1px 0 0 rgba(0, 0, 0, 0.15);
20
+ }
21
+ /* Base Progress Styles */
22
+ .px-progress {
23
+ display: flex;
24
+ align-items: center;
25
+ width: 100%;
26
+ line-height: 1;
27
+ font-family: var(--px-font-family);
28
+ }
29
+ /* Track — the outer container */
30
+ .px-progress__track {
31
+ flex: 1;
32
+ height: var(--px-progress-height);
33
+ position: relative;
34
+ background: transparent;
35
+ border: none;
36
+ overflow: hidden;
37
+ padding: 2px;
38
+ box-sizing: border-box;
39
+
40
+ /* Clip all children (including fill bar) to the pixel-art border shape */
41
+ clip-path: polygon(
42
+ 0 2px, 2px 2px, 2px 0,
43
+ calc(100% - 2px) 0, calc(100% - 2px) 2px, 100% 2px,
44
+ 100% calc(100% - 2px), calc(100% - 2px) calc(100% - 2px), calc(100% - 2px) 100%,
45
+ 2px 100%, 2px calc(100% - 2px), 0 calc(100% - 2px)
46
+ );
47
+
48
+ /* Pixel shadow via drop-shadow */
49
+ filter: drop-shadow(var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-progress-shadow-color));
50
+ }
51
+ /* Border layer — filled with border color, clipped to pixel shape */
52
+ .px-progress__track::before {
53
+ content: '';
54
+ position: absolute;
55
+ inset: 0;
56
+ background: var(--px-progress-track-border-color);
57
+ clip-path: polygon(
58
+ 0 2px, 2px 2px, 2px 0,
59
+ calc(100% - 2px) 0, calc(100% - 2px) 2px, 100% 2px,
60
+ 100% calc(100% - 2px), calc(100% - 2px) calc(100% - 2px), calc(100% - 2px) 100%,
61
+ 2px 100%, 2px calc(100% - 2px), 0 calc(100% - 2px)
62
+ );
63
+ z-index: 0;
64
+ }
65
+ /* Fill layer — recessed pixel container with subtle grid texture */
66
+ .px-progress__track::after {
67
+ content: '';
68
+ position: absolute;
69
+ inset: 2px;
70
+ background:
71
+ /* Simulated inset shadow — top edge darker */
72
+ linear-gradient(to bottom, rgba(0, 0, 0, 0.10) 0, transparent 2px),
73
+ /* Simulated inset shadow — left edge darker */
74
+ linear-gradient(to right, rgba(0, 0, 0, 0.10) 0, transparent 2px),
75
+ /* Simulated inset shadow — bottom edge lighter */
76
+ linear-gradient(to top, rgba(255, 255, 255, 0.06) 0, transparent 2px),
77
+ /* Simulated inset shadow — right edge lighter */
78
+ linear-gradient(to left, rgba(255, 255, 255, 0.06) 0, transparent 2px),
79
+ /* Subtle vertical pixel-dot pattern */
80
+ repeating-linear-gradient(
81
+ to right,
82
+ rgba(0, 0, 0, 0.04) 0,
83
+ rgba(0, 0, 0, 0.04) 2px,
84
+ transparent 2px,
85
+ transparent 4px
86
+ ),
87
+ /* Base track color */
88
+ var(--px-progress-track-bg-color);
89
+ clip-path: polygon(
90
+ 0 2px, 2px 2px, 2px 0,
91
+ calc(100% - 2px) 0, calc(100% - 2px) 2px, 100% 2px,
92
+ 100% calc(100% - 2px), calc(100% - 2px) calc(100% - 2px), calc(100% - 2px) 100%,
93
+ 2px 100%, 2px calc(100% - 2px), 0 calc(100% - 2px)
94
+ );
95
+ z-index: 0;
96
+ }
97
+ /* Fill bar — chunked pixel-block inner bar */
98
+ .px-progress__fill {
99
+ height: 100%;
100
+ position: relative;
101
+ z-index: 1;
102
+ transition: none;
103
+ display: flex;
104
+ align-items: center;
105
+ justify-content: flex-end;
106
+ box-sizing: border-box;
107
+
108
+ /* Segmented chunked fill using repeating gradient */
109
+ background: repeating-linear-gradient(
110
+ to right,
111
+ var(--px-progress-fill-color) 0,
112
+ var(--px-progress-fill-color) var(--px-progress-chunk-width),
113
+ transparent var(--px-progress-chunk-width),
114
+ transparent calc(var(--px-progress-chunk-width) + var(--px-progress-chunk-gap))
115
+ );
116
+
117
+ /* Beveled 3D depth — raised-panel highlight/shadow */
118
+ box-shadow:
119
+ var(--px-progress-fill-highlight),
120
+ var(--px-progress-fill-shadow);
121
+ }
122
+ /* Inner text */
123
+ .px-progress__inner-text {
124
+ padding: 0 4px;
125
+ font-size: 10px;
126
+ font-family: var(--px-font-family);
127
+ color: var(--px-color-white);
128
+ white-space: nowrap;
129
+ line-height: var(--px-progress-height);
130
+ text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.5);
131
+ }
132
+ /* External text */
133
+ .px-progress__text {
134
+ flex-shrink: 0;
135
+ margin-left: var(--px-progress-text-gap);
136
+ font-size: var(--px-progress-text-size);
137
+ font-family: var(--px-font-family);
138
+ color: var(--px-progress-text-color);
139
+ white-space: nowrap;
140
+ min-width: 36px;
141
+ }
142
+ /* ─── Type variants ─── */
143
+ .px-progress--primary {
144
+ --px-progress-fill-color: var(--px-color-primary);
145
+ --px-progress-fill-border-color: var(--px-color-primary-dark);
146
+ --px-progress-shadow-color: var(--px-color-primary-dark);
147
+ --px-progress-text-color: var(--px-color-primary-dark);
148
+ }
149
+ .px-progress--success {
150
+ --px-progress-fill-color: var(--px-color-success);
151
+ --px-progress-fill-border-color: var(--px-color-success-dark);
152
+ --px-progress-shadow-color: var(--px-color-success-dark);
153
+ --px-progress-text-color: var(--px-color-success-dark);
154
+ }
155
+ .px-progress--info {
156
+ --px-progress-fill-color: var(--px-color-info);
157
+ --px-progress-fill-border-color: var(--px-color-info-dark);
158
+ --px-progress-shadow-color: var(--px-color-info-dark);
159
+ --px-progress-text-color: var(--px-color-info-dark);
160
+ }
161
+ .px-progress--warning {
162
+ --px-progress-fill-color: var(--px-color-warning);
163
+ --px-progress-fill-border-color: var(--px-color-warning-dark);
164
+ --px-progress-shadow-color: var(--px-color-warning-dark);
165
+ --px-progress-text-color: var(--px-color-warning-dark);
166
+ }
167
+ .px-progress--danger {
168
+ --px-progress-fill-color: var(--px-color-danger);
169
+ --px-progress-fill-border-color: var(--px-color-danger-dark);
170
+ --px-progress-shadow-color: var(--px-color-danger-dark);
171
+ --px-progress-text-color: var(--px-color-danger-dark);
172
+ }
173
+ /* ─── Status overrides (override type) ─── */
174
+ .px-progress--success.px-progress--success {
175
+ --px-progress-fill-color: var(--px-color-success);
176
+ --px-progress-fill-border-color: var(--px-color-success-dark);
177
+ --px-progress-shadow-color: var(--px-color-success-dark);
178
+ --px-progress-text-color: var(--px-color-success-dark);
179
+ }
180
+ .px-progress--warning.px-progress--warning {
181
+ --px-progress-fill-color: var(--px-color-warning);
182
+ --px-progress-fill-border-color: var(--px-color-warning-dark);
183
+ --px-progress-shadow-color: var(--px-color-warning-dark);
184
+ --px-progress-text-color: var(--px-color-warning-dark);
185
+ }
186
+ .px-progress--danger.px-progress--danger {
187
+ --px-progress-fill-color: var(--px-color-danger);
188
+ --px-progress-fill-border-color: var(--px-color-danger-dark);
189
+ --px-progress-shadow-color: var(--px-color-danger-dark);
190
+ --px-progress-text-color: var(--px-color-danger-dark);
191
+ }
192
+ /* ─── Size variants ─── */
193
+ .px-progress--large {
194
+ --px-progress-height: 20px;
195
+ --px-progress-text-size: var(--px-font-size-base);
196
+ --px-progress-chunk-width: 10px;
197
+ }
198
+ .px-progress--small {
199
+ --px-progress-height: 8px;
200
+ --px-progress-text-size: var(--px-font-size-extra-small);
201
+ --px-progress-chunk-width: 6px;
202
+ }
203
+ /* ─── Striped variant ─── */
204
+ .px-progress--striped .px-progress__fill {
205
+ background:
206
+ /* Diagonal stripe overlay (top layer) */
207
+ repeating-linear-gradient(
208
+ -45deg,
209
+ transparent,
210
+ transparent 4px,
211
+ rgba(255, 255, 255, 0.25) 4px,
212
+ rgba(255, 255, 255, 0.25) 8px
213
+ ),
214
+ /* Chunked fill underneath (bottom layer) */
215
+ repeating-linear-gradient(
216
+ to right,
217
+ var(--px-progress-fill-color) 0,
218
+ var(--px-progress-fill-color) var(--px-progress-chunk-width),
219
+ transparent var(--px-progress-chunk-width),
220
+ transparent calc(var(--px-progress-chunk-width) + var(--px-progress-chunk-gap))
221
+ );
222
+ background-size: 16px 16px, auto;
223
+ }
224
+ /* Striped flow animation */
225
+ .px-progress.is-striped-flow .px-progress__fill {
226
+ animation: px-progress-striped-flow 0.6s steps(4) infinite;
227
+ }
228
+ @keyframes px-progress-striped-flow {
229
+ 0% { background-position: 0 0, 0 0;
230
+ }
231
+ 100% { background-position: 16px 0, 0 0;
232
+ }
233
+ }
234
+ /* ─── Checkered variant ─── */
235
+ .px-progress--checkered .px-progress__fill {
236
+ background:
237
+ /* Checkerboard overlay (4 gradient layers) */
238
+ linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%),
239
+ linear-gradient(-45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%),
240
+ linear-gradient(45deg, transparent 75%, rgba(255, 255, 255, 0.2) 75%),
241
+ linear-gradient(-45deg, transparent 75%, rgba(255, 255, 255, 0.2) 75%),
242
+ /* Chunked fill (bottom layer) */
243
+ repeating-linear-gradient(
244
+ to right,
245
+ var(--px-progress-fill-color) 0,
246
+ var(--px-progress-fill-color) var(--px-progress-chunk-width),
247
+ transparent var(--px-progress-chunk-width),
248
+ transparent calc(var(--px-progress-chunk-width) + var(--px-progress-chunk-gap))
249
+ );
250
+ background-size: 4px 4px, 4px 4px, 4px 4px, 4px 4px, auto;
251
+ background-position: 0 0, 0 2px, 2px -2px, -2px 0px, 0 0;
252
+ }
253
+ /* ─── Indeterminate animation ─── */
254
+ .px-progress.is-indeterminate .px-progress__fill {
255
+ width: 30% !important;
256
+ animation:
257
+ px-progress-indeterminate 1.2s steps(8) infinite,
258
+ px-progress-chunk-pulse 0.6s steps(2) infinite;
259
+ }
260
+ @keyframes px-progress-indeterminate {
261
+ 0% { margin-left: 0;
262
+ }
263
+ 50% { margin-left: 70%;
264
+ }
265
+ 100% { margin-left: 0;
266
+ }
267
+ }
268
+ @keyframes px-progress-chunk-pulse {
269
+ 0%, 100% { opacity: 1;
270
+ }
271
+ 50% { opacity: 0.7;
272
+ }
273
+ }
274
+ /* ─── Text inside ─── */
275
+ .px-progress.is-text-inside {
276
+ --px-progress-height: 20px;
277
+ --px-progress-chunk-width: 10px;
278
+ }