sakana-element 2.3.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 (115) hide show
  1. package/README.md +5 -5
  2. package/dist/es/{Alert-BwTsp4X3.js → Alert-DfLsJvQD.js} +2 -2
  3. package/dist/es/{Avatar-CJu6JYV3.js → Avatar-Ci4OKsv7.js} +1 -1
  4. package/dist/es/{Badge-BmxZXX8k.js → Badge-B4wEToK6.js} +2 -2
  5. package/dist/es/{Breadcrumb-BP8MSklj.js → Breadcrumb-BFzww8jd.js} +2 -2
  6. package/dist/es/{Button-BJHtN7gh.js → Button-DbFviVWb.js} +3 -3
  7. package/dist/es/{Card-DJHkCmsz.js → Card-ClRqKkc_.js} +1 -1
  8. package/dist/es/ChatBubble-DFEV_lVI.js +9 -0
  9. package/dist/es/{Checkbox-DX8L3fyp.js → Checkbox-l86YI3Fr.js} +3 -3
  10. package/dist/es/{Collapse-Ir3V9CuO.js → Collapse-B67v6RSE.js} +4 -4
  11. package/dist/es/{ConfigProvider-CsbSqwwi.js → ConfigProvider-BCoGbcS5.js} +2 -2
  12. package/dist/es/Diff-BLiniLom.js +64 -0
  13. package/dist/es/{Divider-C7PtODSK.js → Divider-DDSOHv8G.js} +1 -1
  14. package/dist/es/{Drawer-C2eVmvUp.js → Drawer-apeXw6EO.js} +2 -2
  15. package/dist/es/{Dropdown-CVg_c2fB.js → Dropdown-By9qIErf.js} +9 -9
  16. package/dist/es/{FileInput-BE26BmXm.js → FileInput-CZ5jTfB_.js} +3 -3
  17. package/dist/es/Filter-B_1zU4Dq.js +40 -0
  18. package/dist/es/{Form-7lZt5ehf.js → Form-B_XDnSjK.js} +62 -61
  19. package/dist/es/{Icon-BLDDdSU-.js → Icon-D6qRB3pq.js} +1 -1
  20. package/dist/es/{Indicator-B-en-MgG.js → Indicator-C6Ip4dpP.js} +1 -1
  21. package/dist/es/{Input-C5HuVehE.js → Input-bThwBbNZ.js} +5 -5
  22. package/dist/es/Kbd-DXNjs7at.js +13 -0
  23. package/dist/es/{Link-Av9RdcFv.js → Link-08Ee61Fv.js} +1 -1
  24. package/dist/es/{Loading-CBNDUWQd.js → Loading-ByI9mjss.js} +3 -3
  25. package/dist/es/{Message-DgnyyuXn.js → Message-CGG-lV5I.js} +14 -14
  26. package/dist/es/{Notification-LYRXnVAf.js → Notification-B4clKY5h.js} +13 -13
  27. package/dist/es/{Overlay-CpvMhnuU.js → Overlay-6iPenJB1.js} +1 -1
  28. package/dist/es/Pixelate-A8J7jxDW.js +39 -0
  29. package/dist/es/{Popconfirm-DvxFdLrw.js → Popconfirm-gcHGcOTz.js} +12 -12
  30. package/dist/es/{Progress-Bc5INMhJ.js → Progress-DFUBJQ4X.js} +1 -1
  31. package/dist/es/{Radio-263_rtRl.js → Radio-CLBa1XIM.js} +3 -3
  32. package/dist/es/Resizable-BWrFr2oj.js +151 -0
  33. package/dist/es/{Select-7ZxUCS8z.js → Select-BtLqds1d.js} +14 -14
  34. package/dist/es/Skeleton-CGUQv3nQ.js +15 -0
  35. package/dist/es/{Switch-DiCsMJT3.js → Switch-CZJ-S77_.js} +3 -3
  36. package/dist/es/{Table-BvA_xzDe.js → Table-lHbxiyGq.js} +1 -1
  37. package/dist/es/{Tooltip-J3ji6weH.js → Tooltip-CdPqNYdn.js} +3 -3
  38. package/dist/es/Validator-7ZT_nXDZ.js +40 -0
  39. package/dist/es/{hooks-BqobYUzS.js → hooks-pU4JmsO3.js} +1 -1
  40. package/dist/es/index.js +98 -81
  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/{es/theme → theme}/Badge.css +151 -151
  45. package/dist/{es/theme → theme}/Button.css +72 -8
  46. package/dist/theme/ChatBubble.css +218 -0
  47. package/dist/{es/theme → theme}/Checkbox.css +138 -18
  48. package/dist/{es/theme → theme}/Collapse.css +96 -96
  49. package/dist/theme/Diff.css +110 -0
  50. package/dist/{es/theme → theme}/Divider.css +42 -3
  51. package/dist/{es/theme → theme}/Dropdown.css +2 -2
  52. package/dist/{es/theme → theme}/FileInput.css +32 -0
  53. package/dist/theme/Filter.css +598 -0
  54. package/dist/{es/theme → theme}/Input.css +414 -407
  55. package/dist/theme/Kbd.css +104 -0
  56. package/dist/{es/theme → theme}/Message.css +1 -1
  57. package/dist/{es/theme → theme}/Notification.css +44 -44
  58. package/dist/{es/theme → theme}/Radio.css +114 -48
  59. package/dist/theme/Resizable.css +95 -0
  60. package/dist/{es/theme → theme}/Select.css +198 -88
  61. package/dist/theme/Skeleton.css +192 -0
  62. package/dist/{es/theme → theme}/Switch.css +22 -3
  63. package/dist/theme/Validator.css +25 -0
  64. package/dist/types/components/ChatBubble/constants.d.ts +2 -0
  65. package/dist/types/components/ChatBubble/index.d.ts +27 -0
  66. package/dist/types/components/ChatBubble/types.d.ts +10 -0
  67. package/dist/types/components/Diff/constants.d.ts +4 -0
  68. package/dist/types/components/Diff/index.d.ts +67 -0
  69. package/dist/types/components/Diff/types.d.ts +29 -0
  70. package/dist/types/components/Dropdown/index.d.ts +3 -3
  71. package/dist/types/components/Filter/constants.d.ts +5 -0
  72. package/dist/types/components/Filter/index.d.ts +59 -0
  73. package/dist/types/components/Filter/types.d.ts +38 -0
  74. package/dist/types/components/Kbd/constants.d.ts +3 -0
  75. package/dist/types/components/Kbd/index.d.ts +24 -0
  76. package/dist/types/components/Kbd/types.d.ts +10 -0
  77. package/dist/types/components/Pixelate/index.d.ts +3 -3
  78. package/dist/types/components/Popconfirm/index.d.ts +3 -3
  79. package/dist/types/components/Resizable/constants.d.ts +3 -0
  80. package/dist/types/components/Resizable/index.d.ts +135 -0
  81. package/dist/types/components/Resizable/types.d.ts +52 -0
  82. package/dist/types/components/Select/index.d.ts +3 -3
  83. package/dist/types/components/Skeleton/index.d.ts +36 -0
  84. package/dist/types/components/Skeleton/types.d.ts +12 -0
  85. package/dist/types/components/Tooltip/index.d.ts +3 -3
  86. package/dist/types/components/Validator/index.d.ts +52 -0
  87. package/dist/types/components/Validator/types.d.ts +13 -0
  88. package/dist/types/components/index.d.ts +8 -1
  89. package/dist/types/utils/index.d.ts +1 -0
  90. package/dist/types/utils/pixelate.d.ts +10 -0
  91. package/dist/types/utils/style.d.ts +1 -0
  92. package/dist/umd/index.css +1 -1
  93. package/dist/umd/index.css.gz +0 -0
  94. package/dist/umd/index.umd.cjs +3 -3
  95. package/dist/umd/index.umd.cjs.gz +0 -0
  96. package/package.json +4 -4
  97. package/dist/es/Pixelate-BPypBgJU.js +0 -67
  98. package/dist/es/utils-BS5vsvlM.js +0 -101
  99. /package/dist/{es/theme → theme}/Alert.css +0 -0
  100. /package/dist/{es/theme → theme}/Avatar.css +0 -0
  101. /package/dist/{es/theme → theme}/Breadcrumb.css +0 -0
  102. /package/dist/{es/theme → theme}/Card.css +0 -0
  103. /package/dist/{es/theme → theme}/Drawer.css +0 -0
  104. /package/dist/{es/theme → theme}/Form.css +0 -0
  105. /package/dist/{es/theme → theme}/Icon.css +0 -0
  106. /package/dist/{es/theme → theme}/Indicator.css +0 -0
  107. /package/dist/{es/theme → theme}/Link.css +0 -0
  108. /package/dist/{es/theme → theme}/Loading.css +0 -0
  109. /package/dist/{es/theme → theme}/Overlay.css +0 -0
  110. /package/dist/{es/theme → theme}/Popconfirm.css +0 -0
  111. /package/dist/{es/theme → theme}/Progress.css +0 -0
  112. /package/dist/{es/theme → theme}/Table.css +0 -0
  113. /package/dist/{es/theme → theme}/Tooltip.css +0 -0
  114. /package/dist/{es/theme → theme}/fonts/zpix.woff2 +0 -0
  115. /package/dist/{es/theme → theme}/index.css +0 -0
@@ -1,5 +1,5 @@
1
1
  /* Collapse Variables */
2
- .px-collapse[data-v-dc792000] {
2
+ .px-collapse[data-v-7f3e3aa8] {
3
3
  --px-collapse-border-color: var(--px-border-color);
4
4
  --px-collapse-header-height: 48px;
5
5
  --px-collapse-header-bg-color: var(--px-fill-color-blank);
@@ -25,7 +25,7 @@
25
25
  );
26
26
  }
27
27
  /* Border layer — pixel shape */
28
- .px-collapse[data-v-dc792000]::before {
28
+ .px-collapse[data-v-7f3e3aa8]::before {
29
29
  content: "";
30
30
  position: absolute;
31
31
  inset: 0;
@@ -55,7 +55,7 @@
55
55
  z-index: 0;
56
56
  }
57
57
  /* Fill layer — pixel shape */
58
- .px-collapse[data-v-dc792000]::after {
58
+ .px-collapse[data-v-7f3e3aa8]::after {
59
59
  content: "";
60
60
  position: absolute;
61
61
  inset: 2px;
@@ -85,19 +85,19 @@
85
85
  z-index: 0;
86
86
  }
87
87
  /* Collapse Item */
88
- .px-collapse-item[data-v-dc792000] {
88
+ .px-collapse-item[data-v-7f3e3aa8] {
89
89
  position: relative;
90
90
  z-index: 1;
91
91
  }
92
- .px-collapse-item[data-v-dc792000]:not(:last-child) {
92
+ .px-collapse-item[data-v-7f3e3aa8]:not(:last-child) {
93
93
  border-bottom: 2px solid var(--px-collapse-border-color);
94
94
  }
95
95
  /* Disabled state */
96
- .px-collapse-item.is-disabled[data-v-dc792000] {
96
+ .px-collapse-item.is-disabled[data-v-7f3e3aa8] {
97
97
  opacity: 0.6;
98
98
  }
99
99
  /* Collapse Header */
100
- .px-collapse-item__header[data-v-dc792000] {
100
+ .px-collapse-item__header[data-v-7f3e3aa8] {
101
101
  display: flex;
102
102
  align-items: center;
103
103
  justify-content: space-between;
@@ -115,7 +115,7 @@
115
115
  position: relative;
116
116
  }
117
117
  /* Pixel selector indicator - small square */
118
- .px-collapse-item__header[data-v-dc792000]::before {
118
+ .px-collapse-item__header[data-v-7f3e3aa8]::before {
119
119
  content: "";
120
120
  position: absolute;
121
121
  left: 10px;
@@ -128,7 +128,7 @@
128
128
  z-index: 2;
129
129
  }
130
130
  /* Background layer with pixel corners for first item */
131
- .px-collapse-item__header[data-v-dc792000]::after {
131
+ .px-collapse-item__header[data-v-7f3e3aa8]::after {
132
132
  content: "";
133
133
  position: absolute;
134
134
  inset: 0;
@@ -136,53 +136,53 @@
136
136
  z-index: -1;
137
137
  }
138
138
  /* Hover effect */
139
- .px-collapse-item__header[data-v-dc792000]:hover:not(.is-disabled)::after {
139
+ .px-collapse-item__header[data-v-7f3e3aa8]:hover:not(.is-disabled)::after {
140
140
  background-color: var(--px-fill-color-light);
141
141
  }
142
- .px-collapse-item__header[data-v-dc792000]:hover:not(.is-disabled)::before {
142
+ .px-collapse-item__header[data-v-7f3e3aa8]:hover:not(.is-disabled)::before {
143
143
  border-color: var(--px-hover-border-color);
144
144
  }
145
145
  /* Disabled state */
146
- .px-collapse-item__header.is-disabled[data-v-dc792000] {
146
+ .px-collapse-item__header.is-disabled[data-v-7f3e3aa8] {
147
147
  color: var(--px-collapse-disabled-text-color);
148
148
  cursor: not-allowed;
149
149
  background-image: none;
150
150
  }
151
151
  /* Active state */
152
- .px-collapse-item__header.is-active[data-v-dc792000]::after {
152
+ .px-collapse-item__header.is-active[data-v-7f3e3aa8]::after {
153
153
  background-color: var(--px-collapse-active-bg-color);
154
154
  }
155
155
  /* Pixel indicator - filled square */
156
- .px-collapse-item__header.is-active[data-v-dc792000]::before {
156
+ .px-collapse-item__header.is-active[data-v-7f3e3aa8]::before {
157
157
  background: var(--px-color-primary);
158
158
  border-color: var(--px-color-primary);
159
159
  }
160
160
  /* Arrow rotates down */
161
- .px-collapse-item__header.is-active .header-angle[data-v-dc792000] {
161
+ .px-collapse-item__header.is-active .header-angle[data-v-7f3e3aa8] {
162
162
  transform: rotate(90deg);
163
163
  }
164
164
  /* Title section */
165
- .px-collapse-item__header .px-collapse-item__title[data-v-dc792000] {
165
+ .px-collapse-item__header .px-collapse-item__title[data-v-7f3e3aa8] {
166
166
  flex: 1;
167
167
  overflow: hidden;
168
168
  text-overflow: ellipsis;
169
169
  white-space: nowrap;
170
170
  }
171
171
  /* Arrow icon */
172
- .px-collapse-item__header .header-angle[data-v-dc792000] {
172
+ .px-collapse-item__header .header-angle[data-v-7f3e3aa8] {
173
173
  transition: none;
174
174
  color: var(--px-text-color-secondary);
175
175
  }
176
176
  /* Hidden arrow — remove extra right padding */
177
- .px-collapse-item__header.is-hidden-arrow[data-v-dc792000] {
177
+ .px-collapse-item__header.is-hidden-arrow[data-v-7f3e3aa8] {
178
178
  padding-right: 24px;
179
179
  }
180
180
  /* Toggle icon (plus/minus) — no rotation on active */
181
- .px-collapse-item__header.is-active .header-angle.is-toggle-icon[data-v-dc792000] {
181
+ .px-collapse-item__header.is-active .header-angle.is-toggle-icon[data-v-7f3e3aa8] {
182
182
  transform: none;
183
183
  }
184
184
  /* First item header needs pixel corners on top */
185
- .px-collapse-item:first-child .px-collapse-item__header[data-v-dc792000]::after {
185
+ .px-collapse-item:first-child .px-collapse-item__header[data-v-7f3e3aa8]::after {
186
186
  top: 2px;
187
187
  left: 2px;
188
188
  right: 2px;
@@ -201,12 +201,12 @@
201
201
  );
202
202
  }
203
203
  /* Middle items need left/right inset */
204
- .px-collapse-item:not(:first-child):not(:last-child) .px-collapse-item__header[data-v-dc792000]::after {
204
+ .px-collapse-item:not(:first-child):not(:last-child) .px-collapse-item__header[data-v-7f3e3aa8]::after {
205
205
  left: 2px;
206
206
  right: 2px;
207
207
  }
208
208
  /* Last item needs pixel corners on bottom */
209
- .px-collapse-item:last-child .px-collapse-item__header[data-v-dc792000]::after {
209
+ .px-collapse-item:last-child .px-collapse-item__header[data-v-7f3e3aa8]::after {
210
210
  bottom: 2px;
211
211
  left: 2px;
212
212
  right: 2px;
@@ -224,7 +224,7 @@
224
224
  );
225
225
  }
226
226
  /* Last item content also needs pixel corners on bottom */
227
- .px-collapse-item:last-child .px-collapse-item__content[data-v-dc792000]::after {
227
+ .px-collapse-item:last-child .px-collapse-item__content[data-v-7f3e3aa8]::after {
228
228
  content: "";
229
229
  position: absolute;
230
230
  top: 0;
@@ -247,7 +247,7 @@
247
247
  z-index: -1;
248
248
  }
249
249
  /* If only one item, needs both top and bottom pixel corners */
250
- .px-collapse-item:first-child:last-child .px-collapse-item__header[data-v-dc792000]::after {
250
+ .px-collapse-item:first-child:last-child .px-collapse-item__header[data-v-7f3e3aa8]::after {
251
251
  top: 2px;
252
252
  bottom: 2px;
253
253
  left: 2px;
@@ -272,11 +272,11 @@
272
272
  );
273
273
  }
274
274
  /* Collapse Content Wrapper */
275
- .px-collapse-item__wapper[data-v-dc792000] {
275
+ .px-collapse-item__wapper[data-v-7f3e3aa8] {
276
276
  overflow: hidden;
277
277
  }
278
278
  /* Collapse Content */
279
- .px-collapse-item__content[data-v-dc792000] {
279
+ .px-collapse-item__content[data-v-7f3e3aa8] {
280
280
  will-change: height;
281
281
  background-color: var(--px-collapse-content-bg-color);
282
282
  overflow: hidden;
@@ -288,7 +288,7 @@
288
288
  position: relative;
289
289
  }
290
290
  /* Pixel-style dashed border at top using repeating squares */
291
- .px-collapse-item__content[data-v-dc792000]::before {
291
+ .px-collapse-item__content[data-v-7f3e3aa8]::before {
292
292
  content: "";
293
293
  position: absolute;
294
294
  top: 0;
@@ -304,84 +304,84 @@
304
304
  );
305
305
  }
306
306
  /* Ghost variant — no pixel border/shadow, borderless style */
307
- .px-collapse.is-ghost[data-v-dc792000] {
307
+ .px-collapse.is-ghost[data-v-7f3e3aa8] {
308
308
  filter: none;
309
309
  }
310
- .px-collapse.is-ghost[data-v-dc792000]::before,
311
- .px-collapse.is-ghost[data-v-dc792000]::after {
310
+ .px-collapse.is-ghost[data-v-7f3e3aa8]::before,
311
+ .px-collapse.is-ghost[data-v-7f3e3aa8]::after {
312
312
  display: none;
313
313
  }
314
- .px-collapse.is-ghost .px-collapse-item[data-v-dc792000] {
314
+ .px-collapse.is-ghost .px-collapse-item[data-v-7f3e3aa8] {
315
315
  border-bottom: none;
316
316
  }
317
- .px-collapse.is-ghost .px-collapse-item__header[data-v-dc792000]::before {
317
+ .px-collapse.is-ghost .px-collapse-item__header[data-v-7f3e3aa8]::before {
318
318
  display: none;
319
319
  }
320
- .px-collapse.is-ghost .px-collapse-item__header[data-v-dc792000]::after {
320
+ .px-collapse.is-ghost .px-collapse-item__header[data-v-7f3e3aa8]::after {
321
321
  background: transparent;
322
322
  }
323
- .px-collapse.is-ghost .px-collapse-item__content[data-v-dc792000]::before {
323
+ .px-collapse.is-ghost .px-collapse-item__content[data-v-7f3e3aa8]::before {
324
324
  display: none;
325
325
  }
326
326
  /* Preset color variants */
327
- .px-collapse--primary[data-v-dc792000] {
327
+ .px-collapse--primary[data-v-7f3e3aa8] {
328
328
  --px-collapse-border-color: var(--px-color-primary-dark);
329
329
  --px-collapse-shadow-color: var(--px-color-primary-dark);
330
330
  --px-collapse-active-bg-color: var(--px-color-primary-light-9);
331
331
  }
332
- .px-collapse--primary .px-collapse-item__header.is-active[data-v-dc792000]::before {
332
+ .px-collapse--primary .px-collapse-item__header.is-active[data-v-7f3e3aa8]::before {
333
333
  background: var(--px-color-primary);
334
334
  border-color: var(--px-color-primary);
335
335
  }
336
- .px-collapse--success[data-v-dc792000] {
336
+ .px-collapse--success[data-v-7f3e3aa8] {
337
337
  --px-collapse-border-color: var(--px-color-success-dark);
338
338
  --px-collapse-shadow-color: var(--px-color-success-dark);
339
339
  --px-collapse-active-bg-color: var(--px-color-success-light-9);
340
340
  }
341
- .px-collapse--success .px-collapse-item__header.is-active[data-v-dc792000]::before {
341
+ .px-collapse--success .px-collapse-item__header.is-active[data-v-7f3e3aa8]::before {
342
342
  background: var(--px-color-success);
343
343
  border-color: var(--px-color-success);
344
344
  }
345
- .px-collapse--warning[data-v-dc792000] {
345
+ .px-collapse--warning[data-v-7f3e3aa8] {
346
346
  --px-collapse-border-color: var(--px-color-warning-dark);
347
347
  --px-collapse-shadow-color: var(--px-color-warning-dark);
348
348
  --px-collapse-active-bg-color: var(--px-color-warning-light-9);
349
349
  }
350
- .px-collapse--warning .px-collapse-item__header.is-active[data-v-dc792000]::before {
350
+ .px-collapse--warning .px-collapse-item__header.is-active[data-v-7f3e3aa8]::before {
351
351
  background: var(--px-color-warning);
352
352
  border-color: var(--px-color-warning);
353
353
  }
354
- .px-collapse--info[data-v-dc792000] {
354
+ .px-collapse--info[data-v-7f3e3aa8] {
355
355
  --px-collapse-border-color: var(--px-color-info-dark);
356
356
  --px-collapse-shadow-color: var(--px-color-info-dark);
357
357
  --px-collapse-active-bg-color: var(--px-color-info-light-9);
358
358
  }
359
- .px-collapse--info .px-collapse-item__header.is-active[data-v-dc792000]::before {
359
+ .px-collapse--info .px-collapse-item__header.is-active[data-v-7f3e3aa8]::before {
360
360
  background: var(--px-color-info);
361
361
  border-color: var(--px-color-info);
362
362
  }
363
- .px-collapse--danger[data-v-dc792000] {
363
+ .px-collapse--danger[data-v-7f3e3aa8] {
364
364
  --px-collapse-border-color: var(--px-color-danger-dark);
365
365
  --px-collapse-shadow-color: var(--px-color-danger-dark);
366
366
  --px-collapse-active-bg-color: var(--px-color-danger-light-9);
367
367
  }
368
- .px-collapse--danger .px-collapse-item__header.is-active[data-v-dc792000]::before {
368
+ .px-collapse--danger .px-collapse-item__header.is-active[data-v-7f3e3aa8]::before {
369
369
  background: var(--px-color-danger);
370
370
  border-color: var(--px-color-danger);
371
371
  }
372
372
  /* Icon at start position */
373
- .px-collapse-item__header.is-icon-start .header-angle[data-v-dc792000] {
373
+ .px-collapse-item__header.is-icon-start .header-angle[data-v-7f3e3aa8] {
374
374
  order: -1;
375
375
  margin-right: 8px;
376
376
  margin-left: 0;
377
377
  }
378
378
  /* Animation - instant for pixel feel */
379
- .slide-enter-active[data-v-dc792000],
380
- .slide-leave-active[data-v-dc792000] {
379
+ .slide-enter-active[data-v-7f3e3aa8],
380
+ .slide-leave-active[data-v-7f3e3aa8] {
381
381
  transition: none;
382
- }
382
+ }
383
383
  /* Collapse Variables */
384
- .px-collapse[data-v-47d8126b] {
384
+ .px-collapse[data-v-f3406cbb] {
385
385
  --px-collapse-border-color: var(--px-border-color);
386
386
  --px-collapse-header-height: 48px;
387
387
  --px-collapse-header-bg-color: var(--px-fill-color-blank);
@@ -407,7 +407,7 @@
407
407
  );
408
408
  }
409
409
  /* Border layer — pixel shape */
410
- .px-collapse[data-v-47d8126b]::before {
410
+ .px-collapse[data-v-f3406cbb]::before {
411
411
  content: "";
412
412
  position: absolute;
413
413
  inset: 0;
@@ -437,7 +437,7 @@
437
437
  z-index: 0;
438
438
  }
439
439
  /* Fill layer — pixel shape */
440
- .px-collapse[data-v-47d8126b]::after {
440
+ .px-collapse[data-v-f3406cbb]::after {
441
441
  content: "";
442
442
  position: absolute;
443
443
  inset: 2px;
@@ -467,19 +467,19 @@
467
467
  z-index: 0;
468
468
  }
469
469
  /* Collapse Item */
470
- .px-collapse-item[data-v-47d8126b] {
470
+ .px-collapse-item[data-v-f3406cbb] {
471
471
  position: relative;
472
472
  z-index: 1;
473
473
  }
474
- .px-collapse-item[data-v-47d8126b]:not(:last-child) {
474
+ .px-collapse-item[data-v-f3406cbb]:not(:last-child) {
475
475
  border-bottom: 2px solid var(--px-collapse-border-color);
476
476
  }
477
477
  /* Disabled state */
478
- .px-collapse-item.is-disabled[data-v-47d8126b] {
478
+ .px-collapse-item.is-disabled[data-v-f3406cbb] {
479
479
  opacity: 0.6;
480
480
  }
481
481
  /* Collapse Header */
482
- .px-collapse-item__header[data-v-47d8126b] {
482
+ .px-collapse-item__header[data-v-f3406cbb] {
483
483
  display: flex;
484
484
  align-items: center;
485
485
  justify-content: space-between;
@@ -497,7 +497,7 @@
497
497
  position: relative;
498
498
  }
499
499
  /* Pixel selector indicator - small square */
500
- .px-collapse-item__header[data-v-47d8126b]::before {
500
+ .px-collapse-item__header[data-v-f3406cbb]::before {
501
501
  content: "";
502
502
  position: absolute;
503
503
  left: 10px;
@@ -510,7 +510,7 @@
510
510
  z-index: 2;
511
511
  }
512
512
  /* Background layer with pixel corners for first item */
513
- .px-collapse-item__header[data-v-47d8126b]::after {
513
+ .px-collapse-item__header[data-v-f3406cbb]::after {
514
514
  content: "";
515
515
  position: absolute;
516
516
  inset: 0;
@@ -518,53 +518,53 @@
518
518
  z-index: -1;
519
519
  }
520
520
  /* Hover effect */
521
- .px-collapse-item__header[data-v-47d8126b]:hover:not(.is-disabled)::after {
521
+ .px-collapse-item__header[data-v-f3406cbb]:hover:not(.is-disabled)::after {
522
522
  background-color: var(--px-fill-color-light);
523
523
  }
524
- .px-collapse-item__header[data-v-47d8126b]:hover:not(.is-disabled)::before {
524
+ .px-collapse-item__header[data-v-f3406cbb]:hover:not(.is-disabled)::before {
525
525
  border-color: var(--px-hover-border-color);
526
526
  }
527
527
  /* Disabled state */
528
- .px-collapse-item__header.is-disabled[data-v-47d8126b] {
528
+ .px-collapse-item__header.is-disabled[data-v-f3406cbb] {
529
529
  color: var(--px-collapse-disabled-text-color);
530
530
  cursor: not-allowed;
531
531
  background-image: none;
532
532
  }
533
533
  /* Active state */
534
- .px-collapse-item__header.is-active[data-v-47d8126b]::after {
534
+ .px-collapse-item__header.is-active[data-v-f3406cbb]::after {
535
535
  background-color: var(--px-collapse-active-bg-color);
536
536
  }
537
537
  /* Pixel indicator - filled square */
538
- .px-collapse-item__header.is-active[data-v-47d8126b]::before {
538
+ .px-collapse-item__header.is-active[data-v-f3406cbb]::before {
539
539
  background: var(--px-color-primary);
540
540
  border-color: var(--px-color-primary);
541
541
  }
542
542
  /* Arrow rotates down */
543
- .px-collapse-item__header.is-active .header-angle[data-v-47d8126b] {
543
+ .px-collapse-item__header.is-active .header-angle[data-v-f3406cbb] {
544
544
  transform: rotate(90deg);
545
545
  }
546
546
  /* Title section */
547
- .px-collapse-item__header .px-collapse-item__title[data-v-47d8126b] {
547
+ .px-collapse-item__header .px-collapse-item__title[data-v-f3406cbb] {
548
548
  flex: 1;
549
549
  overflow: hidden;
550
550
  text-overflow: ellipsis;
551
551
  white-space: nowrap;
552
552
  }
553
553
  /* Arrow icon */
554
- .px-collapse-item__header .header-angle[data-v-47d8126b] {
554
+ .px-collapse-item__header .header-angle[data-v-f3406cbb] {
555
555
  transition: none;
556
556
  color: var(--px-text-color-secondary);
557
557
  }
558
558
  /* Hidden arrow — remove extra right padding */
559
- .px-collapse-item__header.is-hidden-arrow[data-v-47d8126b] {
559
+ .px-collapse-item__header.is-hidden-arrow[data-v-f3406cbb] {
560
560
  padding-right: 24px;
561
561
  }
562
562
  /* Toggle icon (plus/minus) — no rotation on active */
563
- .px-collapse-item__header.is-active .header-angle.is-toggle-icon[data-v-47d8126b] {
563
+ .px-collapse-item__header.is-active .header-angle.is-toggle-icon[data-v-f3406cbb] {
564
564
  transform: none;
565
565
  }
566
566
  /* First item header needs pixel corners on top */
567
- .px-collapse-item:first-child .px-collapse-item__header[data-v-47d8126b]::after {
567
+ .px-collapse-item:first-child .px-collapse-item__header[data-v-f3406cbb]::after {
568
568
  top: 2px;
569
569
  left: 2px;
570
570
  right: 2px;
@@ -583,12 +583,12 @@
583
583
  );
584
584
  }
585
585
  /* Middle items need left/right inset */
586
- .px-collapse-item:not(:first-child):not(:last-child) .px-collapse-item__header[data-v-47d8126b]::after {
586
+ .px-collapse-item:not(:first-child):not(:last-child) .px-collapse-item__header[data-v-f3406cbb]::after {
587
587
  left: 2px;
588
588
  right: 2px;
589
589
  }
590
590
  /* Last item needs pixel corners on bottom */
591
- .px-collapse-item:last-child .px-collapse-item__header[data-v-47d8126b]::after {
591
+ .px-collapse-item:last-child .px-collapse-item__header[data-v-f3406cbb]::after {
592
592
  bottom: 2px;
593
593
  left: 2px;
594
594
  right: 2px;
@@ -606,7 +606,7 @@
606
606
  );
607
607
  }
608
608
  /* Last item content also needs pixel corners on bottom */
609
- .px-collapse-item:last-child .px-collapse-item__content[data-v-47d8126b]::after {
609
+ .px-collapse-item:last-child .px-collapse-item__content[data-v-f3406cbb]::after {
610
610
  content: "";
611
611
  position: absolute;
612
612
  top: 0;
@@ -629,7 +629,7 @@
629
629
  z-index: -1;
630
630
  }
631
631
  /* If only one item, needs both top and bottom pixel corners */
632
- .px-collapse-item:first-child:last-child .px-collapse-item__header[data-v-47d8126b]::after {
632
+ .px-collapse-item:first-child:last-child .px-collapse-item__header[data-v-f3406cbb]::after {
633
633
  top: 2px;
634
634
  bottom: 2px;
635
635
  left: 2px;
@@ -654,11 +654,11 @@
654
654
  );
655
655
  }
656
656
  /* Collapse Content Wrapper */
657
- .px-collapse-item__wapper[data-v-47d8126b] {
657
+ .px-collapse-item__wapper[data-v-f3406cbb] {
658
658
  overflow: hidden;
659
659
  }
660
660
  /* Collapse Content */
661
- .px-collapse-item__content[data-v-47d8126b] {
661
+ .px-collapse-item__content[data-v-f3406cbb] {
662
662
  will-change: height;
663
663
  background-color: var(--px-collapse-content-bg-color);
664
664
  overflow: hidden;
@@ -670,7 +670,7 @@
670
670
  position: relative;
671
671
  }
672
672
  /* Pixel-style dashed border at top using repeating squares */
673
- .px-collapse-item__content[data-v-47d8126b]::before {
673
+ .px-collapse-item__content[data-v-f3406cbb]::before {
674
674
  content: "";
675
675
  position: absolute;
676
676
  top: 0;
@@ -686,79 +686,79 @@
686
686
  );
687
687
  }
688
688
  /* Ghost variant — no pixel border/shadow, borderless style */
689
- .px-collapse.is-ghost[data-v-47d8126b] {
689
+ .px-collapse.is-ghost[data-v-f3406cbb] {
690
690
  filter: none;
691
691
  }
692
- .px-collapse.is-ghost[data-v-47d8126b]::before,
693
- .px-collapse.is-ghost[data-v-47d8126b]::after {
692
+ .px-collapse.is-ghost[data-v-f3406cbb]::before,
693
+ .px-collapse.is-ghost[data-v-f3406cbb]::after {
694
694
  display: none;
695
695
  }
696
- .px-collapse.is-ghost .px-collapse-item[data-v-47d8126b] {
696
+ .px-collapse.is-ghost .px-collapse-item[data-v-f3406cbb] {
697
697
  border-bottom: none;
698
698
  }
699
- .px-collapse.is-ghost .px-collapse-item__header[data-v-47d8126b]::before {
699
+ .px-collapse.is-ghost .px-collapse-item__header[data-v-f3406cbb]::before {
700
700
  display: none;
701
701
  }
702
- .px-collapse.is-ghost .px-collapse-item__header[data-v-47d8126b]::after {
702
+ .px-collapse.is-ghost .px-collapse-item__header[data-v-f3406cbb]::after {
703
703
  background: transparent;
704
704
  }
705
- .px-collapse.is-ghost .px-collapse-item__content[data-v-47d8126b]::before {
705
+ .px-collapse.is-ghost .px-collapse-item__content[data-v-f3406cbb]::before {
706
706
  display: none;
707
707
  }
708
708
  /* Preset color variants */
709
- .px-collapse--primary[data-v-47d8126b] {
709
+ .px-collapse--primary[data-v-f3406cbb] {
710
710
  --px-collapse-border-color: var(--px-color-primary-dark);
711
711
  --px-collapse-shadow-color: var(--px-color-primary-dark);
712
712
  --px-collapse-active-bg-color: var(--px-color-primary-light-9);
713
713
  }
714
- .px-collapse--primary .px-collapse-item__header.is-active[data-v-47d8126b]::before {
714
+ .px-collapse--primary .px-collapse-item__header.is-active[data-v-f3406cbb]::before {
715
715
  background: var(--px-color-primary);
716
716
  border-color: var(--px-color-primary);
717
717
  }
718
- .px-collapse--success[data-v-47d8126b] {
718
+ .px-collapse--success[data-v-f3406cbb] {
719
719
  --px-collapse-border-color: var(--px-color-success-dark);
720
720
  --px-collapse-shadow-color: var(--px-color-success-dark);
721
721
  --px-collapse-active-bg-color: var(--px-color-success-light-9);
722
722
  }
723
- .px-collapse--success .px-collapse-item__header.is-active[data-v-47d8126b]::before {
723
+ .px-collapse--success .px-collapse-item__header.is-active[data-v-f3406cbb]::before {
724
724
  background: var(--px-color-success);
725
725
  border-color: var(--px-color-success);
726
726
  }
727
- .px-collapse--warning[data-v-47d8126b] {
727
+ .px-collapse--warning[data-v-f3406cbb] {
728
728
  --px-collapse-border-color: var(--px-color-warning-dark);
729
729
  --px-collapse-shadow-color: var(--px-color-warning-dark);
730
730
  --px-collapse-active-bg-color: var(--px-color-warning-light-9);
731
731
  }
732
- .px-collapse--warning .px-collapse-item__header.is-active[data-v-47d8126b]::before {
732
+ .px-collapse--warning .px-collapse-item__header.is-active[data-v-f3406cbb]::before {
733
733
  background: var(--px-color-warning);
734
734
  border-color: var(--px-color-warning);
735
735
  }
736
- .px-collapse--info[data-v-47d8126b] {
736
+ .px-collapse--info[data-v-f3406cbb] {
737
737
  --px-collapse-border-color: var(--px-color-info-dark);
738
738
  --px-collapse-shadow-color: var(--px-color-info-dark);
739
739
  --px-collapse-active-bg-color: var(--px-color-info-light-9);
740
740
  }
741
- .px-collapse--info .px-collapse-item__header.is-active[data-v-47d8126b]::before {
741
+ .px-collapse--info .px-collapse-item__header.is-active[data-v-f3406cbb]::before {
742
742
  background: var(--px-color-info);
743
743
  border-color: var(--px-color-info);
744
744
  }
745
- .px-collapse--danger[data-v-47d8126b] {
745
+ .px-collapse--danger[data-v-f3406cbb] {
746
746
  --px-collapse-border-color: var(--px-color-danger-dark);
747
747
  --px-collapse-shadow-color: var(--px-color-danger-dark);
748
748
  --px-collapse-active-bg-color: var(--px-color-danger-light-9);
749
749
  }
750
- .px-collapse--danger .px-collapse-item__header.is-active[data-v-47d8126b]::before {
750
+ .px-collapse--danger .px-collapse-item__header.is-active[data-v-f3406cbb]::before {
751
751
  background: var(--px-color-danger);
752
752
  border-color: var(--px-color-danger);
753
753
  }
754
754
  /* Icon at start position */
755
- .px-collapse-item__header.is-icon-start .header-angle[data-v-47d8126b] {
755
+ .px-collapse-item__header.is-icon-start .header-angle[data-v-f3406cbb] {
756
756
  order: -1;
757
757
  margin-right: 8px;
758
758
  margin-left: 0;
759
759
  }
760
760
  /* Animation - instant for pixel feel */
761
- .slide-enter-active[data-v-47d8126b],
762
- .slide-leave-active[data-v-47d8126b] {
761
+ .slide-enter-active[data-v-f3406cbb],
762
+ .slide-leave-active[data-v-f3406cbb] {
763
763
  transition: none;
764
- }
764
+ }
@@ -0,0 +1,110 @@
1
+ /* Diff Variables */
2
+ .px-diff {
3
+ --px-diff-handle-color: var(--px-text-color-primary);
4
+ --px-diff-handle-bg: var(--px-fill-color-blank);
5
+ }
6
+ /* Base Diff Container */
7
+ .px-diff {
8
+ position: relative;
9
+ overflow: hidden;
10
+ display: inline-block;
11
+ width: 100%;
12
+ user-select: none;
13
+ -webkit-user-select: none;
14
+ touch-action: none;
15
+ font-size: 0;
16
+ line-height: 0;
17
+ box-sizing: border-box;
18
+ }
19
+ /* After panel flows normally — establishes container height */
20
+ .px-diff__after {
21
+ position: relative;
22
+ width: 100%;
23
+ height: 100%;
24
+ z-index: 1;
25
+ }
26
+ /* Before panel overlays — clipped to show left side */
27
+ .px-diff__before {
28
+ position: absolute;
29
+ top: 0;
30
+ left: 0;
31
+ width: 100%;
32
+ height: 100%;
33
+ z-index: 2;
34
+ }
35
+ /* Images fill the container */
36
+ .px-diff__img {
37
+ display: block;
38
+ width: 100%;
39
+ height: 100%;
40
+ object-fit: cover;
41
+ }
42
+ .px-diff__canvas {
43
+ display: block;
44
+ width: 100%;
45
+ height: 100%;
46
+ object-fit: cover;
47
+ image-rendering: pixelated;
48
+ }
49
+ /* Handle — centers the grip vertically */
50
+ .px-diff__handle {
51
+ position: absolute;
52
+ top: 0;
53
+ bottom: 0;
54
+ z-index: 3;
55
+ display: flex;
56
+ align-items: center;
57
+ justify-content: center;
58
+ transform: translateX(-50%);
59
+ outline: none;
60
+ pointer-events: none;
61
+ }
62
+ /* Vertical divider line */
63
+ .px-diff__handle::before {
64
+ content: "";
65
+ position: absolute;
66
+ top: 0;
67
+ bottom: 0;
68
+ left: 50%;
69
+ width: 2px;
70
+ transform: translateX(-50%);
71
+ background: var(--px-diff-handle-bg);
72
+ box-shadow: 0 0 4px rgba(0, 0, 0, 0.12);
73
+ pointer-events: none;
74
+ }
75
+ /* Grip button — circular pill shape (daisyUI-style) */
76
+ .px-diff__handle-grip {
77
+ width: 20px;
78
+ height: 32px;
79
+ border-radius: 10px;
80
+ background: var(--px-diff-handle-bg);
81
+ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.18);
82
+ cursor: ew-resize;
83
+ pointer-events: auto;
84
+ flex-shrink: 0;
85
+ }
86
+ /* Focus ring */
87
+ .px-diff__handle:focus-visible .px-diff__handle-grip {
88
+ box-shadow: 0 0 0 2px var(--px-diff-handle-color), 0 1px 4px rgba(0, 0, 0, 0.18);
89
+ }
90
+ /* Color variants */
91
+ .px-diff--primary {
92
+ --px-diff-handle-color: var(--px-color-primary);
93
+ }
94
+ .px-diff--success {
95
+ --px-diff-handle-color: var(--px-color-success);
96
+ }
97
+ .px-diff--warning {
98
+ --px-diff-handle-color: var(--px-color-warning);
99
+ }
100
+ .px-diff--info {
101
+ --px-diff-handle-color: var(--px-color-info);
102
+ }
103
+ .px-diff--danger {
104
+ --px-diff-handle-color: var(--px-color-danger);
105
+ }
106
+ /* Dark mode */
107
+ html.dark .px-diff,
108
+ .px-dark .px-diff {
109
+ --px-diff-handle-bg: var(--px-fill-color-light);
110
+ }