sakana-element 2.2.0 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) hide show
  1. package/README.md +98 -25
  2. package/dist/es/{Alert-C76ZWSVk.js → Alert-DfLsJvQD.js} +2 -2
  3. package/dist/es/Avatar-Ci4OKsv7.js +9 -0
  4. package/dist/es/{Badge-CoFWwBwv.js → Badge-B4wEToK6.js} +2 -2
  5. package/dist/es/{Breadcrumb-BtrwTVKW.js → Breadcrumb-BFzww8jd.js} +2 -2
  6. package/dist/es/{Button-S_31-UWJ.js → Button-DbFviVWb.js} +3 -3
  7. package/dist/es/{Card-DcW6nHYD.js → Card-ClRqKkc_.js} +2 -2
  8. package/dist/es/ChatBubble-DFEV_lVI.js +9 -0
  9. package/dist/es/Checkbox-l86YI3Fr.js +51 -0
  10. package/dist/es/{Collapse-DsS7M-m3.js → Collapse-B67v6RSE.js} +4 -4
  11. package/dist/es/{ConfigProvider-BgIewHXP.js → ConfigProvider-BCoGbcS5.js} +2 -2
  12. package/dist/es/Diff-BLiniLom.js +64 -0
  13. package/dist/es/Divider-DDSOHv8G.js +9 -0
  14. package/dist/es/Drawer-apeXw6EO.js +40 -0
  15. package/dist/es/Dropdown-By9qIErf.js +104 -0
  16. package/dist/es/{FileInput-BQ59woas.js → FileInput-CZ5jTfB_.js} +3 -3
  17. package/dist/es/Filter-B_1zU4Dq.js +40 -0
  18. package/dist/es/Form-B_XDnSjK.js +123 -0
  19. package/dist/es/{Icon-DpJyuj7c.js → Icon-D6qRB3pq.js} +1 -1
  20. package/dist/es/Indicator-C6Ip4dpP.js +9 -0
  21. package/dist/es/{Input-CiE4bPJN.js → Input-bThwBbNZ.js} +7 -7
  22. package/dist/es/Kbd-DXNjs7at.js +13 -0
  23. package/dist/es/{Link-B9B2APZq.js → Link-08Ee61Fv.js} +1 -1
  24. package/dist/es/{Loading-BW99pE5N.js → Loading-ByI9mjss.js} +13 -13
  25. package/dist/es/Message-CGG-lV5I.js +152 -0
  26. package/dist/es/Notification-B4clKY5h.js +69 -0
  27. package/dist/es/{Overlay-BRDSWspM.js → Overlay-6iPenJB1.js} +1 -1
  28. package/dist/es/Pixelate-A8J7jxDW.js +39 -0
  29. package/dist/es/Popconfirm-gcHGcOTz.js +23 -0
  30. package/dist/es/Progress-DFUBJQ4X.js +12 -0
  31. package/dist/es/Radio-CLBa1XIM.js +33 -0
  32. package/dist/es/Resizable-BWrFr2oj.js +151 -0
  33. package/dist/es/{Select-Dwqv8isB.js → Select-BtLqds1d.js} +20 -20
  34. package/dist/es/Skeleton-CGUQv3nQ.js +15 -0
  35. package/dist/es/{Switch-B1Gnv1tB.js → Switch-CZJ-S77_.js} +3 -3
  36. package/dist/es/Table-lHbxiyGq.js +10 -0
  37. package/dist/es/Tooltip-CdPqNYdn.js +74 -0
  38. package/dist/es/Validator-7ZT_nXDZ.js +40 -0
  39. package/dist/es/hooks-pU4JmsO3.js +171 -0
  40. package/dist/es/index.js +107 -70
  41. package/dist/es/utils-BXICIEsD.js +139 -0
  42. package/dist/es/{vendor-DXmGx29U.js → vendor-DrBJKLFW.js} +254 -210
  43. package/dist/index.css +1 -1
  44. package/dist/theme/Avatar.css +13 -43
  45. package/dist/theme/Badge.css +151 -151
  46. package/dist/theme/Breadcrumb.css +46 -4
  47. package/dist/theme/Button.css +72 -8
  48. package/dist/theme/Card.css +177 -93
  49. package/dist/theme/ChatBubble.css +218 -0
  50. package/dist/theme/Checkbox.css +604 -0
  51. package/dist/theme/Collapse.css +96 -96
  52. package/dist/theme/Diff.css +110 -0
  53. package/dist/theme/Divider.css +150 -0
  54. package/dist/theme/Drawer.css +206 -0
  55. package/dist/theme/Dropdown.css +359 -75
  56. package/dist/theme/FileInput.css +32 -0
  57. package/dist/theme/Filter.css +598 -0
  58. package/dist/theme/Indicator.css +159 -0
  59. package/dist/theme/Input.css +414 -406
  60. package/dist/theme/Kbd.css +104 -0
  61. package/dist/theme/Link.css +22 -3
  62. package/dist/theme/Loading.css +50 -12
  63. package/dist/theme/Message.css +250 -41
  64. package/dist/theme/Notification.css +232 -42
  65. package/dist/theme/Popconfirm.css +23 -7
  66. package/dist/theme/Progress.css +278 -0
  67. package/dist/theme/Radio.css +492 -0
  68. package/dist/theme/Resizable.css +95 -0
  69. package/dist/theme/Select.css +198 -88
  70. package/dist/theme/Skeleton.css +192 -0
  71. package/dist/theme/Switch.css +22 -3
  72. package/dist/theme/Table.css +680 -0
  73. package/dist/theme/Tooltip.css +150 -26
  74. package/dist/theme/Validator.css +25 -0
  75. package/dist/types/components/Avatar/types.d.ts +0 -2
  76. package/dist/types/components/ChatBubble/constants.d.ts +2 -0
  77. package/dist/types/components/ChatBubble/index.d.ts +27 -0
  78. package/dist/types/components/ChatBubble/types.d.ts +10 -0
  79. package/dist/types/components/Checkbox/constants.d.ts +5 -0
  80. package/dist/types/components/Checkbox/index.d.ts +94 -0
  81. package/dist/types/components/Checkbox/types.d.ts +46 -0
  82. package/dist/types/components/Collapse/index.d.ts +5 -5
  83. package/dist/types/components/Diff/constants.d.ts +4 -0
  84. package/dist/types/components/Diff/index.d.ts +67 -0
  85. package/dist/types/components/Diff/types.d.ts +29 -0
  86. package/dist/types/components/Divider/index.d.ts +30 -0
  87. package/dist/types/components/Divider/types.d.ts +10 -0
  88. package/dist/types/components/Drawer/constants.d.ts +1 -0
  89. package/dist/types/components/Drawer/index.d.ts +72 -0
  90. package/dist/types/components/Drawer/types.d.ts +20 -0
  91. package/dist/types/components/Dropdown/index.d.ts +13 -3
  92. package/dist/types/components/Dropdown/types.d.ts +3 -0
  93. package/dist/types/components/Dropdown/useDropdownKeyboard.d.ts +8 -0
  94. package/dist/types/components/FileInput/index.d.ts +5 -5
  95. package/dist/types/components/Filter/constants.d.ts +5 -0
  96. package/dist/types/components/Filter/index.d.ts +59 -0
  97. package/dist/types/components/Filter/types.d.ts +38 -0
  98. package/dist/types/components/Indicator/constants.d.ts +2 -0
  99. package/dist/types/components/Indicator/index.d.ts +28 -0
  100. package/dist/types/components/Indicator/types.d.ts +10 -0
  101. package/dist/types/components/Input/index.d.ts +10 -10
  102. package/dist/types/components/Kbd/constants.d.ts +3 -0
  103. package/dist/types/components/Kbd/index.d.ts +24 -0
  104. package/dist/types/components/Kbd/types.d.ts +10 -0
  105. package/dist/types/components/Message/methods.d.ts +2 -0
  106. package/dist/types/components/Message/types.d.ts +7 -1
  107. package/dist/types/components/MessageBox/types.d.ts +14 -2
  108. package/dist/types/components/Notification/methods.d.ts +3 -0
  109. package/dist/types/components/Notification/types.d.ts +8 -2
  110. package/dist/types/components/Pixelate/constants.d.ts +2 -0
  111. package/dist/types/components/Pixelate/index.d.ts +71 -0
  112. package/dist/types/components/Pixelate/types.d.ts +23 -0
  113. package/dist/types/components/Popconfirm/index.d.ts +18 -9
  114. package/dist/types/components/Popconfirm/types.d.ts +2 -1
  115. package/dist/types/components/Progress/constants.d.ts +2 -0
  116. package/dist/types/components/Progress/index.d.ts +50 -0
  117. package/dist/types/components/Progress/types.d.ts +22 -0
  118. package/dist/types/components/Radio/constants.d.ts +5 -0
  119. package/dist/types/components/Radio/index.d.ts +88 -0
  120. package/dist/types/components/Radio/types.d.ts +43 -0
  121. package/dist/types/components/Resizable/constants.d.ts +3 -0
  122. package/dist/types/components/Resizable/index.d.ts +135 -0
  123. package/dist/types/components/Resizable/types.d.ts +52 -0
  124. package/dist/types/components/Select/index.d.ts +32 -23
  125. package/dist/types/components/Skeleton/index.d.ts +36 -0
  126. package/dist/types/components/Skeleton/types.d.ts +12 -0
  127. package/dist/types/components/Switch/index.d.ts +5 -5
  128. package/dist/types/components/Table/index.d.ts +27 -0
  129. package/dist/types/components/Table/types.d.ts +20 -0
  130. package/dist/types/components/Tooltip/index.d.ts +9 -3
  131. package/dist/types/components/Tooltip/types.d.ts +7 -0
  132. package/dist/types/components/Validator/index.d.ts +52 -0
  133. package/dist/types/components/Validator/types.d.ts +13 -0
  134. package/dist/types/components/index.d.ts +15 -0
  135. package/dist/types/hooks/index.d.ts +3 -1
  136. package/dist/types/hooks/useDraggable.d.ts +7 -0
  137. package/dist/types/hooks/useFocusTrap.d.ts +5 -0
  138. package/dist/types/utils/index.d.ts +2 -0
  139. package/dist/types/utils/instance-management.d.ts +40 -0
  140. package/dist/types/utils/pixelate.d.ts +10 -0
  141. package/dist/types/utils/style.d.ts +1 -0
  142. package/dist/umd/index.css +1 -1
  143. package/dist/umd/index.css.gz +0 -0
  144. package/dist/umd/index.umd.cjs +4 -4
  145. package/dist/umd/index.umd.cjs.gz +0 -0
  146. package/package.json +59 -59
  147. package/dist/es/Avatar-CxsRW-wl.js +0 -9
  148. package/dist/es/Dropdown-GcomGMAI.js +0 -40
  149. package/dist/es/Form-j90EzLXU.js +0 -122
  150. package/dist/es/Message-DCNnTUje.js +0 -123
  151. package/dist/es/Notification-CBzY5904.js +0 -58
  152. package/dist/es/Popconfirm-DF6d2ORS.js +0 -23
  153. package/dist/es/Tooltip-k6gKnMyt.js +0 -74
  154. package/dist/es/hooks-BaG7l8K5.js +0 -116
  155. package/dist/es/utils-bsCscZfS.js +0 -84
@@ -1,8 +1,9 @@
1
1
  /* Notification Variables */
2
- .px-notification[data-v-ff3aeca4] {
2
+ .px-notification[data-v-5c4c1be5] {
3
3
  --px-notification-width: 330px;
4
4
  --px-notification-padding: 14px 20px;
5
5
  --px-notification-border-color: var(--px-border-color);
6
+ --px-notification-bg-color: var(--px-bg-color-overlay);
6
7
  --px-notification-icon-size: 24px;
7
8
  --px-notification-close-font-size: var(--px-font-size-base);
8
9
  --px-notification-content-font-size: var(--px-font-size-base);
@@ -11,59 +12,115 @@
11
12
  --px-notification-title-color: var(--px-text-color-primary);
12
13
  --px-notification-close-color: var(--px-text-color-secondary);
13
14
  --px-notification-close-hover-color: var(--px-text-color-primary);
14
- --px-notification-shadow-color: var(--px-shadow-color);
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);
15
21
  }
16
- /* Base Notification Styles - Pixel Game Style */
17
- .px-notification[data-v-ff3aeca4] {
22
+ /* Base Notification Styles - Pixel Game Aesthetic */
23
+ .px-notification[data-v-5c4c1be5] {
18
24
  display: flex;
19
25
  width: var(--px-notification-width);
20
26
  padding: var(--px-notification-padding);
21
27
  box-sizing: border-box;
22
28
  position: fixed;
23
- background-color: var(--px-bg-color-overlay);
24
29
  overflow-wrap: anywhere;
25
30
  overflow: hidden;
26
31
  z-index: 9999;
27
32
  font-family: var(--px-font-family);
28
33
 
29
- /* Pixel-style border */
30
- border: var(--px-border-width) solid var(--px-notification-border-color);
31
- border-radius: 0;
34
+ /* Remove traditional styling — pseudo-elements handle visuals */
35
+ background: transparent;
36
+ border: none;
32
37
 
33
- /* Pixel shadow */
34
- box-shadow:
35
- var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0 0 var(--px-notification-shadow-color),
36
- var(--px-box-shadow-inset-light);
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));
37
40
 
38
- /* No smooth transitions */
41
+ /* No smooth transitions for pixel feel */
39
42
  transition: none;
43
+ }
44
+ /* Border layer — 3-step staircase clip (8px corners) */
45
+ .px-notification[data-v-5c4c1be5]::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-5c4c1be5]::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;
40
72
  }
41
- .px-notification.right[data-v-ff3aeca4] {
73
+ .px-notification.right[data-v-5c4c1be5] {
42
74
  right: 16px;
43
75
  }
44
- .px-notification.left[data-v-ff3aeca4] {
76
+ .px-notification.left[data-v-5c4c1be5] {
45
77
  left: 16px;
46
78
  }
47
- .px-notification .px-notification__text[data-v-ff3aeca4] {
79
+ .px-notification .px-notification__text[data-v-5c4c1be5] {
80
+ position: relative;
81
+ z-index: 1;
48
82
  margin: 0 10px;
49
83
  flex: 1;
50
84
  }
51
- .px-notification .px-notification__icon[data-v-ff3aeca4] {
85
+ .px-notification .px-notification__icon[data-v-5c4c1be5] {
86
+ position: relative;
87
+ z-index: 1;
52
88
  height: var(--px-notification-icon-size);
53
89
  width: var(--px-notification-icon-size);
54
90
  font-size: var(--px-notification-icon-size);
55
91
  color: var(--px-notification-icon-color);
56
92
  flex-shrink: 0;
57
93
  }
58
- .px-notification .px-notification__title[data-v-ff3aeca4] {
94
+ .px-notification .px-notification__title[data-v-5c4c1be5] {
95
+ position: relative;
96
+ z-index: 1;
59
97
  font-weight: 500;
60
98
  font-size: var(--px-notification-title-font-size);
61
99
  font-family: var(--px-font-family);
62
100
  line-height: var(--px-notification-icon-size);
63
101
  color: var(--px-notification-title-color);
64
- margin: 0;
102
+ margin: 0;
103
+ padding-bottom: 8px;
104
+ }
105
+ /* Pixel-dashed divider at bottom */
106
+ .px-notification .px-notification__title[data-v-5c4c1be5]::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
+ );
65
120
  }
66
- .px-notification .px-notification__content[data-v-ff3aeca4] {
121
+ .px-notification .px-notification__content[data-v-5c4c1be5] {
122
+ position: relative;
123
+ z-index: 1;
67
124
  font-size: var(--px-notification-content-font-size);
68
125
  font-family: var(--px-font-family);
69
126
  line-height: 1.5;
@@ -71,56 +128,189 @@
71
128
  color: var(--px-notification-content-color);
72
129
  text-align: left;
73
130
  }
74
- .px-notification .px-notification__close[data-v-ff3aeca4] {
131
+ .px-notification .px-notification__close[data-v-5c4c1be5] {
75
132
  position: absolute;
76
133
  top: 14px;
77
134
  right: 14px;
78
135
  cursor: pointer;
79
136
  color: var(--px-notification-close-color);
80
- font-size: var(--px-notification-close-font-size);
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-5c4c1be5] {
142
+ cursor: pointer;
143
+ transition: none;
81
144
  }
82
- .px-notification .px-notification__close[data-v-ff3aeca4]:hover {
83
- color: var(--px-notification-close-hover-color);
145
+ .px-notification .px-notification__close .px-icon[data-v-5c4c1be5]: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-5c4c1be5]: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-5c4c1be5] {
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);
84
158
  }
85
- /* Type variants with colored shadows */
86
- .px-notification--info[data-v-ff3aeca4] {
159
+ /* Type variants with colored borders and shadows */
160
+ .px-notification--info[data-v-5c4c1be5] {
87
161
  --px-notification-icon-color: var(--px-color-info);
88
162
  --px-notification-border-color: var(--px-color-info);
89
- --px-notification-shadow-color: var(--px-color-info-dark);
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));
90
165
  }
91
- .px-notification--success[data-v-ff3aeca4] {
166
+ .px-notification--success[data-v-5c4c1be5] {
92
167
  --px-notification-icon-color: var(--px-color-success);
93
168
  --px-notification-border-color: var(--px-color-success);
94
- --px-notification-shadow-color: var(--px-color-success-dark);
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));
95
171
  }
96
- .px-notification--warning[data-v-ff3aeca4] {
172
+ .px-notification--warning[data-v-5c4c1be5] {
97
173
  --px-notification-icon-color: var(--px-color-warning);
98
174
  --px-notification-border-color: var(--px-color-warning);
99
- --px-notification-shadow-color: var(--px-color-warning-dark);
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));
100
177
  }
101
- .px-notification--danger[data-v-ff3aeca4] {
178
+ .px-notification--danger[data-v-5c4c1be5] {
102
179
  --px-notification-icon-color: var(--px-color-danger);
103
180
  --px-notification-border-color: var(--px-color-danger);
104
- --px-notification-shadow-color: var(--px-color-danger-dark);
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-5c4c1be5] {
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-5c4c1be5] {
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-5c4c1be5] {
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-5c4c1be5] {
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-5c4c1be5] {
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-5c4c1be5] {
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-5c4c1be5] {
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-5c4c1be5] {
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-5c4c1be5]::before, .px-notification.is-ghost[data-v-5c4c1be5]::after { display: none;
247
+ }
248
+ .px-notification--info.is-ghost[data-v-5c4c1be5] {
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-5c4c1be5] {
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-5c4c1be5] {
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-5c4c1be5] {
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);
105
267
  }
106
- .px-notification--error[data-v-ff3aeca4] {
107
- --px-notification-icon-color: var(--px-color-danger);
108
- --px-notification-border-color: var(--px-color-danger);
109
- --px-notification-shadow-color: var(--px-color-danger-dark);
268
+ .px-notification--error.is-ghost[data-v-5c4c1be5] {
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-5c4c1be5] {
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-5c4c1be5 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-5c4c1be5] {
288
+ animation-play-state: paused;
289
+ }
290
+ @keyframes px-notification-timer-5c4c1be5 {
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-5c4c1be5] {
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);
110
300
  }
111
301
  /* Animation */
112
- .px-notification-fade-enter-from.right[data-v-ff3aeca4] {
302
+ .px-notification-fade-enter-from.right[data-v-5c4c1be5] {
113
303
  right: 0;
114
304
  transform: translateX(100%);
115
305
  }
116
- .px-notification-fade-enter-from.left[data-v-ff3aeca4] {
306
+ .px-notification-fade-enter-from.left[data-v-5c4c1be5] {
117
307
  left: 0;
118
308
  transform: translateX(-100%);
119
309
  }
120
- .px-notification-fade-leave-to[data-v-ff3aeca4] {
310
+ .px-notification-fade-leave-to[data-v-5c4c1be5] {
121
311
  opacity: 0;
122
312
  }
123
- .px-notification-fade-enter-active[data-v-ff3aeca4],
124
- .px-notification-fade-leave-active[data-v-ff3aeca4] {
313
+ .px-notification-fade-enter-active[data-v-5c4c1be5],
314
+ .px-notification-fade-leave-active[data-v-5c4c1be5] {
125
315
  transition: opacity 0.15s steps(3), transform 0.15s steps(3);
126
316
  }
@@ -1,30 +1,46 @@
1
1
  /* Popconfirm Variables */
2
- .px-popconfirm[data-v-fd6e7d1d] {
2
+ .px-popconfirm[data-v-68772965] {
3
3
  --px-popconfirm-icon-size: 16px;
4
4
  --px-popconfirm-font-size: var(--px-font-size-base);
5
5
  }
6
6
  /* Base Popconfirm Styles - Pixel Dialog */
7
- .px-popconfirm[data-v-fd6e7d1d] {
7
+ .px-popconfirm[data-v-68772965] {
8
8
  font-family: var(--px-font-family);
9
9
  }
10
- .px-popconfirm .px-popconfirm__main[data-v-fd6e7d1d] {
10
+ .px-popconfirm .px-popconfirm__main[data-v-68772965] {
11
11
  display: flex;
12
12
  align-items: flex-start;
13
13
  gap: 8px;
14
14
  font-size: var(--px-popconfirm-font-size);
15
- color: var(--px-text-color-primary);
15
+ color: inherit;
16
16
  line-height: 1.5;
17
17
  }
18
- .px-popconfirm .px-popconfirm__main i[data-v-fd6e7d1d] {
18
+ .px-popconfirm .px-popconfirm__main i[data-v-68772965] {
19
19
  font-size: var(--px-popconfirm-icon-size);
20
20
  flex-shrink: 0;
21
21
  margin-top: 2px;
22
22
  }
23
- .px-popconfirm .px-popconfirm__action[data-v-fd6e7d1d] {
23
+ .px-popconfirm .px-popconfirm__action[data-v-68772965] {
24
24
  display: flex;
25
25
  justify-content: flex-end;
26
26
  gap: 8px;
27
27
  margin-top: 12px;
28
28
  padding-top: 12px;
29
- border-top: var(--px-border-width-thin) dashed var(--px-border-color-lighter);
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
+ );
30
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
+ }