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,5 +1,5 @@
1
1
  /* Select Variables */
2
- .px-select[data-v-d9852f9a] {
2
+ .px-select[data-v-1ab275ee] {
3
3
  --px-select-item-hover-bg-color: var(--px-fill-color-light);
4
4
  --px-select-item-font-size: var(--px-font-size-base);
5
5
  --px-select-item-font-color: var(--px-text-color-primary);
@@ -14,30 +14,30 @@
14
14
  --px-select-item-highlighted-border-color: var(--px-color-primary);
15
15
  }
16
16
  /* Base Select Styles - Pixel Dropdown */
17
- .px-select[data-v-d9852f9a] {
17
+ .px-select[data-v-1ab275ee] {
18
18
  display: inline-block;
19
19
  vertical-align: middle;
20
20
  line-height: 32px;
21
21
  font-family: var(--px-font-family);
22
22
  }
23
23
  /* Tooltip popper styling - pixel style inherited from Tooltip */
24
- .px-select[data-v-d9852f9a] .px-tooltip__popper {
24
+ .px-select[data-v-1ab275ee] .px-tooltip__popper {
25
25
  padding: 0;
26
26
  }
27
27
  /* Override tooltip background to match select dropdown */
28
- .px-select[data-v-d9852f9a] .px-tooltip__popper::after {
28
+ .px-select[data-v-1ab275ee] .px-tooltip__popper::after {
29
29
  background: var(--px-select-dropdown-bg-color);
30
30
  }
31
31
  /* Input with dropdown arrow */
32
- .px-select[data-v-d9852f9a] .px-input .header-angle {
32
+ .px-select[data-v-1ab275ee] .px-input .header-angle {
33
33
  transition: none;
34
34
  }
35
- .px-select[data-v-d9852f9a] .px-input .header-angle.is-active {
35
+ .px-select[data-v-1ab275ee] .px-input .header-angle.is-active {
36
36
  transform: rotate(180deg);
37
37
  }
38
38
  /* No data / Loading states */
39
- .px-select .px-select__nodata[data-v-d9852f9a],
40
- .px-select .px-select__loading[data-v-d9852f9a] {
39
+ .px-select .px-select__nodata[data-v-1ab275ee],
40
+ .px-select .px-select__loading[data-v-1ab275ee] {
41
41
  padding: 12px 16px;
42
42
  margin: 0;
43
43
  text-align: center;
@@ -46,14 +46,14 @@
46
46
  font-family: var(--px-font-family);
47
47
  }
48
48
  /* Menu container */
49
- .px-select .px-select__menu[data-v-d9852f9a] {
49
+ .px-select .px-select__menu[data-v-1ab275ee] {
50
50
  list-style: none;
51
51
  margin: 0;
52
52
  padding: 4px 0;
53
53
  box-sizing: border-box;
54
54
  }
55
55
  /* Menu items - Pixel list style */
56
- .px-select .px-select__menu-item[data-v-d9852f9a] {
56
+ .px-select .px-select__menu-item[data-v-1ab275ee] {
57
57
  margin: 0;
58
58
  font-size: var(--px-select-item-font-size);
59
59
  font-family: var(--px-font-family);
@@ -69,8 +69,8 @@
69
69
  cursor: pointer;
70
70
  transition: none;
71
71
  }
72
- /* Pixel selector indicator - small square */
73
- .px-select .px-select__menu-item[data-v-d9852f9a]::before {
72
+ /* Pixel selector indicator - arrow shape on interaction */
73
+ .px-select .px-select__menu-item[data-v-1ab275ee]::before {
74
74
  content: '';
75
75
  position: absolute;
76
76
  left: 10px;
@@ -80,10 +80,12 @@
80
80
  height: 6px;
81
81
  background: transparent;
82
82
  border: 2px solid transparent;
83
+ /* Pixel arrow — right-pointing triangle, visible when colored */
84
+ clip-path: polygon(0 0, 100% 50%, 0 100%);
83
85
  z-index: 2;
84
86
  }
85
87
  /* Background layer for hover/selected states */
86
- .px-select .px-select__menu-item[data-v-d9852f9a]::after {
88
+ .px-select .px-select__menu-item[data-v-1ab275ee]::after {
87
89
  content: '';
88
90
  position: absolute;
89
91
  inset: 0;
@@ -93,45 +95,55 @@
93
95
  z-index: -1;
94
96
  }
95
97
  /* Hover effect */
96
- .px-select .px-select__menu-item[data-v-d9852f9a]:hover::after {
97
- background-color: var(--px-select-item-hover-bg-color);
98
- }
99
- .px-select .px-select__menu-item[data-v-d9852f9a]:hover::before {
100
- border-color: var(--px-hover-border-color);
98
+ .px-select .px-select__menu-item[data-v-1ab275ee]:hover::after {
99
+ background-color: var(--px-select-item-hover-bg-color);
100
+ /* CRT scanline overlay - subtle retro stripe effect */
101
+ background-image: repeating-linear-gradient(
102
+ 0deg,
103
+ transparent 0px,
104
+ transparent 2px,
105
+ rgba(0, 0, 0, 0.03) 2px,
106
+ rgba(0, 0, 0, 0.03) 4px
107
+ );
108
+ }
109
+ .px-select .px-select__menu-item[data-v-1ab275ee]:hover::before {
110
+ border-color: var(--px-hover-border-color);
111
+ background: var(--px-hover-border-color);
101
112
  }
102
113
  /* Selected state with pixel indicator */
103
- .px-select .px-select__menu-item.is-selected[data-v-d9852f9a] {
114
+ .px-select .px-select__menu-item.is-selected[data-v-1ab275ee] {
104
115
  color: var(--px-select-item-selected-font-color);
105
116
  font-weight: 500;
106
117
  }
107
- .px-select .px-select__menu-item.is-selected[data-v-d9852f9a]::after {
118
+ .px-select .px-select__menu-item.is-selected[data-v-1ab275ee]::after {
108
119
  background-color: var(--px-select-item-selected-bg-color);
109
120
  }
110
- .px-select .px-select__menu-item.is-selected[data-v-d9852f9a]::before {
121
+ .px-select .px-select__menu-item.is-selected[data-v-1ab275ee]::before {
111
122
  background: var(--px-select-item-indicator-color);
112
123
  border-color: var(--px-select-item-indicator-color);
113
124
  }
114
125
  /* Highlighted (keyboard navigation) */
115
- .px-select .px-select__menu-item.is-highlighted[data-v-d9852f9a]::after {
126
+ .px-select .px-select__menu-item.is-highlighted[data-v-1ab275ee]::after {
116
127
  background-color: var(--px-select-item-hover-bg-color);
117
128
  }
118
- .px-select .px-select__menu-item.is-highlighted[data-v-d9852f9a]::before {
119
- border-color: var(--px-select-item-highlighted-border-color);
129
+ .px-select .px-select__menu-item.is-highlighted[data-v-1ab275ee]::before {
130
+ border-color: var(--px-select-item-highlighted-border-color);
131
+ background: var(--px-select-item-highlighted-border-color);
120
132
  }
121
133
  /* Disabled state */
122
- .px-select .px-select__menu-item.is-disabled[data-v-d9852f9a] {
134
+ .px-select .px-select__menu-item.is-disabled[data-v-1ab275ee] {
123
135
  color: var(--px-select-item-disabled-font-color);
124
136
  cursor: not-allowed;
125
137
  }
126
- .px-select .px-select__menu-item.is-disabled[data-v-d9852f9a]:hover::after {
138
+ .px-select .px-select__menu-item.is-disabled[data-v-1ab275ee]:hover::after {
127
139
  background-color: transparent;
128
140
  }
129
- .px-select .px-select__menu-item.is-disabled[data-v-d9852f9a]:hover::before {
141
+ .px-select .px-select__menu-item.is-disabled[data-v-1ab275ee]:hover::before {
130
142
  border-color: transparent;
131
143
  background: transparent;
132
144
  }
133
145
  /* First item needs pixel corners on top */
134
- .px-select .px-select__menu-item[data-v-d9852f9a]:first-child::after {
146
+ .px-select .px-select__menu-item[data-v-1ab275ee]:first-child::after {
135
147
  top: 2px;
136
148
  clip-path: polygon(
137
149
  0 2px, 2px 2px, 2px 0, 4px 0,
@@ -141,7 +153,7 @@
141
153
  );
142
154
  }
143
155
  /* Last item needs pixel corners on bottom */
144
- .px-select .px-select__menu-item[data-v-d9852f9a]:last-child::after {
156
+ .px-select .px-select__menu-item[data-v-1ab275ee]:last-child::after {
145
157
  bottom: 2px;
146
158
  clip-path: polygon(
147
159
  0 0,
@@ -151,7 +163,7 @@
151
163
  );
152
164
  }
153
165
  /* If only one item, needs both top and bottom pixel corners */
154
- .px-select .px-select__menu-item[data-v-d9852f9a]:first-child:last-child::after {
166
+ .px-select .px-select__menu-item[data-v-1ab275ee]:first-child:last-child::after {
155
167
  top: 2px;
156
168
  bottom: 2px;
157
169
  clip-path: polygon(
@@ -162,81 +174,124 @@
162
174
  );
163
175
  }
164
176
  /* Input pointer cursor */
165
- .px-select[data-v-d9852f9a] .px-input__inner {
177
+ .px-select[data-v-1ab275ee] .px-input__inner {
166
178
  cursor: pointer;
167
179
  }
168
180
  /* Disabled state */
169
- .px-select.is-disabled[data-v-d9852f9a] {
181
+ .px-select.is-disabled[data-v-1ab275ee] {
170
182
  opacity: 0.6;
171
183
  cursor: not-allowed;
172
184
  }
173
185
  /* Ghost style - transparent at rest, Input handles border/shadow via prop */
174
- .px-select.is-ghost[data-v-d9852f9a] .px-tooltip__popper::after {
186
+ .px-select.is-ghost[data-v-1ab275ee] .px-tooltip__popper::after {
175
187
  background: var(--px-select-dropdown-bg-color);
176
188
  }
177
189
  /* Size: Large */
178
- .px-select.px-select--large[data-v-d9852f9a] {
190
+ .px-select.px-select--large[data-v-1ab275ee] {
179
191
  line-height: 44px;
180
192
  }
181
- .px-select.px-select--large .px-select__menu-item[data-v-d9852f9a] {
193
+ .px-select.px-select--large .px-select__menu-item[data-v-1ab275ee] {
182
194
  height: 44px;
183
195
  line-height: 44px;
184
196
  font-size: var(--px-font-size-large);
185
197
  padding: 0 20px 0 28px;
186
198
  }
187
- .px-select.px-select--large .px-select__menu-item[data-v-d9852f9a]::before {
199
+ .px-select.px-select--large .px-select__menu-item[data-v-1ab275ee]::before {
188
200
  left: 12px;
189
201
  width: 8px;
190
202
  height: 8px;
191
203
  }
192
204
  /* Size: Small */
193
- .px-select.px-select--small[data-v-d9852f9a] {
205
+ .px-select.px-select--small[data-v-1ab275ee] {
194
206
  line-height: 28px;
195
207
  }
196
- .px-select.px-select--small .px-select__menu-item[data-v-d9852f9a] {
208
+ .px-select.px-select--small .px-select__menu-item[data-v-1ab275ee] {
197
209
  height: 28px;
198
210
  line-height: 28px;
199
211
  font-size: var(--px-font-size-small);
200
212
  padding: 0 12px 0 20px;
201
213
  }
202
- .px-select.px-select--small .px-select__menu-item[data-v-d9852f9a]::before {
214
+ .px-select.px-select--small .px-select__menu-item[data-v-1ab275ee]::before {
203
215
  left: 8px;
204
216
  width: 4px;
205
217
  height: 4px;
206
218
  }
207
219
  /* Color variants */
208
- .px-select.px-select--primary[data-v-d9852f9a] {
220
+ .px-select.px-select--primary[data-v-1ab275ee] {
209
221
  --px-select-item-selected-font-color: var(--px-color-primary);
210
222
  --px-select-item-selected-bg-color: var(--px-color-primary-light-9);
211
223
  --px-select-item-indicator-color: var(--px-color-primary);
212
224
  --px-select-item-highlighted-border-color: var(--px-color-primary);
213
225
  }
214
- .px-select.px-select--success[data-v-d9852f9a] {
226
+ .px-select.px-select--success[data-v-1ab275ee] {
215
227
  --px-select-item-selected-font-color: var(--px-color-success);
216
228
  --px-select-item-selected-bg-color: var(--px-color-success-light-9);
217
229
  --px-select-item-indicator-color: var(--px-color-success);
218
230
  --px-select-item-highlighted-border-color: var(--px-color-success);
219
231
  }
220
- .px-select.px-select--warning[data-v-d9852f9a] {
232
+ .px-select.px-select--warning[data-v-1ab275ee] {
221
233
  --px-select-item-selected-font-color: var(--px-color-warning);
222
234
  --px-select-item-selected-bg-color: var(--px-color-warning-light-9);
223
235
  --px-select-item-indicator-color: var(--px-color-warning);
224
236
  --px-select-item-highlighted-border-color: var(--px-color-warning);
225
237
  }
226
- .px-select.px-select--info[data-v-d9852f9a] {
238
+ .px-select.px-select--info[data-v-1ab275ee] {
227
239
  --px-select-item-selected-font-color: var(--px-color-info);
228
240
  --px-select-item-selected-bg-color: var(--px-color-info-light-9);
229
241
  --px-select-item-indicator-color: var(--px-color-info);
230
242
  --px-select-item-highlighted-border-color: var(--px-color-info);
231
243
  }
232
- .px-select.px-select--danger[data-v-d9852f9a] {
244
+ .px-select.px-select--danger[data-v-1ab275ee] {
233
245
  --px-select-item-selected-font-color: var(--px-color-danger);
234
246
  --px-select-item-selected-bg-color: var(--px-color-danger-light-9);
235
247
  --px-select-item-indicator-color: var(--px-color-danger);
236
248
  --px-select-item-highlighted-border-color: var(--px-color-danger);
249
+ }
250
+ /* Pixel scrollbar - RPG-style scrollbar for long option lists */
251
+ .px-select .px-select__menu[data-v-1ab275ee] {
252
+ scrollbar-width: thin;
253
+ scrollbar-color: var(--px-border-color) var(--px-fill-color-light);
254
+ }
255
+ .px-select .px-select__menu[data-v-1ab275ee]::-webkit-scrollbar {
256
+ width: 8px;
257
+ }
258
+ .px-select .px-select__menu[data-v-1ab275ee]::-webkit-scrollbar-track {
259
+ background: var(--px-fill-color-light);
260
+ border-left: 2px solid var(--px-border-color);
261
+ }
262
+ .px-select .px-select__menu[data-v-1ab275ee]::-webkit-scrollbar-thumb {
263
+ background: var(--px-border-color);
264
+ border: 2px solid var(--px-fill-color-light);
237
265
  }
266
+ .px-select .px-select__menu[data-v-1ab275ee]::-webkit-scrollbar-thumb:hover {
267
+ background: var(--px-text-color-secondary);
268
+ }
269
+ /* Dark mode overrides for Select enhancements */
270
+ .px-dark .px-select .px-select__menu-item[data-v-1ab275ee]:hover::after {
271
+ background-image: repeating-linear-gradient(
272
+ 0deg,
273
+ transparent 0px,
274
+ transparent 2px,
275
+ rgba(255, 255, 255, 0.03) 2px,
276
+ rgba(255, 255, 255, 0.03) 4px
277
+ );
278
+ }
279
+ .px-dark .px-select .px-select__menu[data-v-1ab275ee] {
280
+ scrollbar-color: var(--px-border-color) var(--px-fill-color-darker);
281
+ }
282
+ .px-dark .px-select .px-select__menu[data-v-1ab275ee]::-webkit-scrollbar-track {
283
+ background: var(--px-fill-color-darker);
284
+ border-left-color: var(--px-border-color);
285
+ }
286
+ .px-dark .px-select .px-select__menu[data-v-1ab275ee]::-webkit-scrollbar-thumb {
287
+ background: var(--px-border-color);
288
+ border-color: var(--px-fill-color-darker);
289
+ }
290
+ .px-dark .px-select .px-select__menu[data-v-1ab275ee]::-webkit-scrollbar-thumb:hover {
291
+ background: var(--px-text-color-secondary);
292
+ }
238
293
  /* Select Variables */
239
- .px-select[data-v-4d450d40] {
294
+ .px-select[data-v-e33550e6] {
240
295
  --px-select-item-hover-bg-color: var(--px-fill-color-light);
241
296
  --px-select-item-font-size: var(--px-font-size-base);
242
297
  --px-select-item-font-color: var(--px-text-color-primary);
@@ -251,30 +306,30 @@
251
306
  --px-select-item-highlighted-border-color: var(--px-color-primary);
252
307
  }
253
308
  /* Base Select Styles - Pixel Dropdown */
254
- .px-select[data-v-4d450d40] {
309
+ .px-select[data-v-e33550e6] {
255
310
  display: inline-block;
256
311
  vertical-align: middle;
257
312
  line-height: 32px;
258
313
  font-family: var(--px-font-family);
259
314
  }
260
315
  /* Tooltip popper styling - pixel style inherited from Tooltip */
261
- .px-select[data-v-4d450d40] .px-tooltip__popper {
316
+ .px-select[data-v-e33550e6] .px-tooltip__popper {
262
317
  padding: 0;
263
318
  }
264
319
  /* Override tooltip background to match select dropdown */
265
- .px-select[data-v-4d450d40] .px-tooltip__popper::after {
320
+ .px-select[data-v-e33550e6] .px-tooltip__popper::after {
266
321
  background: var(--px-select-dropdown-bg-color);
267
322
  }
268
323
  /* Input with dropdown arrow */
269
- .px-select[data-v-4d450d40] .px-input .header-angle {
324
+ .px-select[data-v-e33550e6] .px-input .header-angle {
270
325
  transition: none;
271
326
  }
272
- .px-select[data-v-4d450d40] .px-input .header-angle.is-active {
327
+ .px-select[data-v-e33550e6] .px-input .header-angle.is-active {
273
328
  transform: rotate(180deg);
274
329
  }
275
330
  /* No data / Loading states */
276
- .px-select .px-select__nodata[data-v-4d450d40],
277
- .px-select .px-select__loading[data-v-4d450d40] {
331
+ .px-select .px-select__nodata[data-v-e33550e6],
332
+ .px-select .px-select__loading[data-v-e33550e6] {
278
333
  padding: 12px 16px;
279
334
  margin: 0;
280
335
  text-align: center;
@@ -283,14 +338,14 @@
283
338
  font-family: var(--px-font-family);
284
339
  }
285
340
  /* Menu container */
286
- .px-select .px-select__menu[data-v-4d450d40] {
341
+ .px-select .px-select__menu[data-v-e33550e6] {
287
342
  list-style: none;
288
343
  margin: 0;
289
344
  padding: 4px 0;
290
345
  box-sizing: border-box;
291
346
  }
292
347
  /* Menu items - Pixel list style */
293
- .px-select .px-select__menu-item[data-v-4d450d40] {
348
+ .px-select .px-select__menu-item[data-v-e33550e6] {
294
349
  margin: 0;
295
350
  font-size: var(--px-select-item-font-size);
296
351
  font-family: var(--px-font-family);
@@ -306,8 +361,8 @@
306
361
  cursor: pointer;
307
362
  transition: none;
308
363
  }
309
- /* Pixel selector indicator - small square */
310
- .px-select .px-select__menu-item[data-v-4d450d40]::before {
364
+ /* Pixel selector indicator - arrow shape on interaction */
365
+ .px-select .px-select__menu-item[data-v-e33550e6]::before {
311
366
  content: '';
312
367
  position: absolute;
313
368
  left: 10px;
@@ -317,10 +372,12 @@
317
372
  height: 6px;
318
373
  background: transparent;
319
374
  border: 2px solid transparent;
375
+ /* Pixel arrow — right-pointing triangle, visible when colored */
376
+ clip-path: polygon(0 0, 100% 50%, 0 100%);
320
377
  z-index: 2;
321
378
  }
322
379
  /* Background layer for hover/selected states */
323
- .px-select .px-select__menu-item[data-v-4d450d40]::after {
380
+ .px-select .px-select__menu-item[data-v-e33550e6]::after {
324
381
  content: '';
325
382
  position: absolute;
326
383
  inset: 0;
@@ -330,45 +387,55 @@
330
387
  z-index: -1;
331
388
  }
332
389
  /* Hover effect */
333
- .px-select .px-select__menu-item[data-v-4d450d40]:hover::after {
334
- background-color: var(--px-select-item-hover-bg-color);
335
- }
336
- .px-select .px-select__menu-item[data-v-4d450d40]:hover::before {
337
- border-color: var(--px-hover-border-color);
390
+ .px-select .px-select__menu-item[data-v-e33550e6]:hover::after {
391
+ background-color: var(--px-select-item-hover-bg-color);
392
+ /* CRT scanline overlay - subtle retro stripe effect */
393
+ background-image: repeating-linear-gradient(
394
+ 0deg,
395
+ transparent 0px,
396
+ transparent 2px,
397
+ rgba(0, 0, 0, 0.03) 2px,
398
+ rgba(0, 0, 0, 0.03) 4px
399
+ );
400
+ }
401
+ .px-select .px-select__menu-item[data-v-e33550e6]:hover::before {
402
+ border-color: var(--px-hover-border-color);
403
+ background: var(--px-hover-border-color);
338
404
  }
339
405
  /* Selected state with pixel indicator */
340
- .px-select .px-select__menu-item.is-selected[data-v-4d450d40] {
406
+ .px-select .px-select__menu-item.is-selected[data-v-e33550e6] {
341
407
  color: var(--px-select-item-selected-font-color);
342
408
  font-weight: 500;
343
409
  }
344
- .px-select .px-select__menu-item.is-selected[data-v-4d450d40]::after {
410
+ .px-select .px-select__menu-item.is-selected[data-v-e33550e6]::after {
345
411
  background-color: var(--px-select-item-selected-bg-color);
346
412
  }
347
- .px-select .px-select__menu-item.is-selected[data-v-4d450d40]::before {
413
+ .px-select .px-select__menu-item.is-selected[data-v-e33550e6]::before {
348
414
  background: var(--px-select-item-indicator-color);
349
415
  border-color: var(--px-select-item-indicator-color);
350
416
  }
351
417
  /* Highlighted (keyboard navigation) */
352
- .px-select .px-select__menu-item.is-highlighted[data-v-4d450d40]::after {
418
+ .px-select .px-select__menu-item.is-highlighted[data-v-e33550e6]::after {
353
419
  background-color: var(--px-select-item-hover-bg-color);
354
420
  }
355
- .px-select .px-select__menu-item.is-highlighted[data-v-4d450d40]::before {
356
- border-color: var(--px-select-item-highlighted-border-color);
421
+ .px-select .px-select__menu-item.is-highlighted[data-v-e33550e6]::before {
422
+ border-color: var(--px-select-item-highlighted-border-color);
423
+ background: var(--px-select-item-highlighted-border-color);
357
424
  }
358
425
  /* Disabled state */
359
- .px-select .px-select__menu-item.is-disabled[data-v-4d450d40] {
426
+ .px-select .px-select__menu-item.is-disabled[data-v-e33550e6] {
360
427
  color: var(--px-select-item-disabled-font-color);
361
428
  cursor: not-allowed;
362
429
  }
363
- .px-select .px-select__menu-item.is-disabled[data-v-4d450d40]:hover::after {
430
+ .px-select .px-select__menu-item.is-disabled[data-v-e33550e6]:hover::after {
364
431
  background-color: transparent;
365
432
  }
366
- .px-select .px-select__menu-item.is-disabled[data-v-4d450d40]:hover::before {
433
+ .px-select .px-select__menu-item.is-disabled[data-v-e33550e6]:hover::before {
367
434
  border-color: transparent;
368
435
  background: transparent;
369
436
  }
370
437
  /* First item needs pixel corners on top */
371
- .px-select .px-select__menu-item[data-v-4d450d40]:first-child::after {
438
+ .px-select .px-select__menu-item[data-v-e33550e6]:first-child::after {
372
439
  top: 2px;
373
440
  clip-path: polygon(
374
441
  0 2px, 2px 2px, 2px 0, 4px 0,
@@ -378,7 +445,7 @@
378
445
  );
379
446
  }
380
447
  /* Last item needs pixel corners on bottom */
381
- .px-select .px-select__menu-item[data-v-4d450d40]:last-child::after {
448
+ .px-select .px-select__menu-item[data-v-e33550e6]:last-child::after {
382
449
  bottom: 2px;
383
450
  clip-path: polygon(
384
451
  0 0,
@@ -388,7 +455,7 @@
388
455
  );
389
456
  }
390
457
  /* If only one item, needs both top and bottom pixel corners */
391
- .px-select .px-select__menu-item[data-v-4d450d40]:first-child:last-child::after {
458
+ .px-select .px-select__menu-item[data-v-e33550e6]:first-child:last-child::after {
392
459
  top: 2px;
393
460
  bottom: 2px;
394
461
  clip-path: polygon(
@@ -399,76 +466,119 @@
399
466
  );
400
467
  }
401
468
  /* Input pointer cursor */
402
- .px-select[data-v-4d450d40] .px-input__inner {
469
+ .px-select[data-v-e33550e6] .px-input__inner {
403
470
  cursor: pointer;
404
471
  }
405
472
  /* Disabled state */
406
- .px-select.is-disabled[data-v-4d450d40] {
473
+ .px-select.is-disabled[data-v-e33550e6] {
407
474
  opacity: 0.6;
408
475
  cursor: not-allowed;
409
476
  }
410
477
  /* Ghost style - transparent at rest, Input handles border/shadow via prop */
411
- .px-select.is-ghost[data-v-4d450d40] .px-tooltip__popper::after {
478
+ .px-select.is-ghost[data-v-e33550e6] .px-tooltip__popper::after {
412
479
  background: var(--px-select-dropdown-bg-color);
413
480
  }
414
481
  /* Size: Large */
415
- .px-select.px-select--large[data-v-4d450d40] {
482
+ .px-select.px-select--large[data-v-e33550e6] {
416
483
  line-height: 44px;
417
484
  }
418
- .px-select.px-select--large .px-select__menu-item[data-v-4d450d40] {
485
+ .px-select.px-select--large .px-select__menu-item[data-v-e33550e6] {
419
486
  height: 44px;
420
487
  line-height: 44px;
421
488
  font-size: var(--px-font-size-large);
422
489
  padding: 0 20px 0 28px;
423
490
  }
424
- .px-select.px-select--large .px-select__menu-item[data-v-4d450d40]::before {
491
+ .px-select.px-select--large .px-select__menu-item[data-v-e33550e6]::before {
425
492
  left: 12px;
426
493
  width: 8px;
427
494
  height: 8px;
428
495
  }
429
496
  /* Size: Small */
430
- .px-select.px-select--small[data-v-4d450d40] {
497
+ .px-select.px-select--small[data-v-e33550e6] {
431
498
  line-height: 28px;
432
499
  }
433
- .px-select.px-select--small .px-select__menu-item[data-v-4d450d40] {
500
+ .px-select.px-select--small .px-select__menu-item[data-v-e33550e6] {
434
501
  height: 28px;
435
502
  line-height: 28px;
436
503
  font-size: var(--px-font-size-small);
437
504
  padding: 0 12px 0 20px;
438
505
  }
439
- .px-select.px-select--small .px-select__menu-item[data-v-4d450d40]::before {
506
+ .px-select.px-select--small .px-select__menu-item[data-v-e33550e6]::before {
440
507
  left: 8px;
441
508
  width: 4px;
442
509
  height: 4px;
443
510
  }
444
511
  /* Color variants */
445
- .px-select.px-select--primary[data-v-4d450d40] {
512
+ .px-select.px-select--primary[data-v-e33550e6] {
446
513
  --px-select-item-selected-font-color: var(--px-color-primary);
447
514
  --px-select-item-selected-bg-color: var(--px-color-primary-light-9);
448
515
  --px-select-item-indicator-color: var(--px-color-primary);
449
516
  --px-select-item-highlighted-border-color: var(--px-color-primary);
450
517
  }
451
- .px-select.px-select--success[data-v-4d450d40] {
518
+ .px-select.px-select--success[data-v-e33550e6] {
452
519
  --px-select-item-selected-font-color: var(--px-color-success);
453
520
  --px-select-item-selected-bg-color: var(--px-color-success-light-9);
454
521
  --px-select-item-indicator-color: var(--px-color-success);
455
522
  --px-select-item-highlighted-border-color: var(--px-color-success);
456
523
  }
457
- .px-select.px-select--warning[data-v-4d450d40] {
524
+ .px-select.px-select--warning[data-v-e33550e6] {
458
525
  --px-select-item-selected-font-color: var(--px-color-warning);
459
526
  --px-select-item-selected-bg-color: var(--px-color-warning-light-9);
460
527
  --px-select-item-indicator-color: var(--px-color-warning);
461
528
  --px-select-item-highlighted-border-color: var(--px-color-warning);
462
529
  }
463
- .px-select.px-select--info[data-v-4d450d40] {
530
+ .px-select.px-select--info[data-v-e33550e6] {
464
531
  --px-select-item-selected-font-color: var(--px-color-info);
465
532
  --px-select-item-selected-bg-color: var(--px-color-info-light-9);
466
533
  --px-select-item-indicator-color: var(--px-color-info);
467
534
  --px-select-item-highlighted-border-color: var(--px-color-info);
468
535
  }
469
- .px-select.px-select--danger[data-v-4d450d40] {
536
+ .px-select.px-select--danger[data-v-e33550e6] {
470
537
  --px-select-item-selected-font-color: var(--px-color-danger);
471
538
  --px-select-item-selected-bg-color: var(--px-color-danger-light-9);
472
539
  --px-select-item-indicator-color: var(--px-color-danger);
473
540
  --px-select-item-highlighted-border-color: var(--px-color-danger);
541
+ }
542
+ /* Pixel scrollbar - RPG-style scrollbar for long option lists */
543
+ .px-select .px-select__menu[data-v-e33550e6] {
544
+ scrollbar-width: thin;
545
+ scrollbar-color: var(--px-border-color) var(--px-fill-color-light);
546
+ }
547
+ .px-select .px-select__menu[data-v-e33550e6]::-webkit-scrollbar {
548
+ width: 8px;
549
+ }
550
+ .px-select .px-select__menu[data-v-e33550e6]::-webkit-scrollbar-track {
551
+ background: var(--px-fill-color-light);
552
+ border-left: 2px solid var(--px-border-color);
553
+ }
554
+ .px-select .px-select__menu[data-v-e33550e6]::-webkit-scrollbar-thumb {
555
+ background: var(--px-border-color);
556
+ border: 2px solid var(--px-fill-color-light);
557
+ }
558
+ .px-select .px-select__menu[data-v-e33550e6]::-webkit-scrollbar-thumb:hover {
559
+ background: var(--px-text-color-secondary);
560
+ }
561
+ /* Dark mode overrides for Select enhancements */
562
+ .px-dark .px-select .px-select__menu-item[data-v-e33550e6]:hover::after {
563
+ background-image: repeating-linear-gradient(
564
+ 0deg,
565
+ transparent 0px,
566
+ transparent 2px,
567
+ rgba(255, 255, 255, 0.03) 2px,
568
+ rgba(255, 255, 255, 0.03) 4px
569
+ );
570
+ }
571
+ .px-dark .px-select .px-select__menu[data-v-e33550e6] {
572
+ scrollbar-color: var(--px-border-color) var(--px-fill-color-darker);
573
+ }
574
+ .px-dark .px-select .px-select__menu[data-v-e33550e6]::-webkit-scrollbar-track {
575
+ background: var(--px-fill-color-darker);
576
+ border-left-color: var(--px-border-color);
577
+ }
578
+ .px-dark .px-select .px-select__menu[data-v-e33550e6]::-webkit-scrollbar-thumb {
579
+ background: var(--px-border-color);
580
+ border-color: var(--px-fill-color-darker);
581
+ }
582
+ .px-dark .px-select .px-select__menu[data-v-e33550e6]::-webkit-scrollbar-thumb:hover {
583
+ background: var(--px-text-color-secondary);
474
584
  }