sakana-element 2.1.5 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (157) hide show
  1. package/README.md +95 -19
  2. package/dist/es/{Alert-C76ZWSVk.js → Alert-BwTsp4X3.js} +2 -2
  3. package/dist/es/Avatar-CJu6JYV3.js +9 -0
  4. package/dist/es/Badge-BmxZXX8k.js +14 -0
  5. package/dist/es/Breadcrumb-BP8MSklj.js +15 -0
  6. package/dist/es/{Button-fW_ZOLmT.js → Button-BJHtN7gh.js} +5 -5
  7. package/dist/es/Card-DJHkCmsz.js +16 -0
  8. package/dist/es/Checkbox-DX8L3fyp.js +51 -0
  9. package/dist/es/Collapse-Ir3V9CuO.js +53 -0
  10. package/dist/es/ConfigProvider-CsbSqwwi.js +44 -0
  11. package/dist/es/Divider-C7PtODSK.js +9 -0
  12. package/dist/es/Drawer-C2eVmvUp.js +40 -0
  13. package/dist/es/Dropdown-CVg_c2fB.js +104 -0
  14. package/dist/es/FileInput-BE26BmXm.js +33 -0
  15. package/dist/es/Form-7lZt5ehf.js +122 -0
  16. package/dist/es/{Icon-DpJyuj7c.js → Icon-BLDDdSU-.js} +1 -1
  17. package/dist/es/Indicator-B-en-MgG.js +9 -0
  18. package/dist/es/{Input-DBPpvf0Y.js → Input-C5HuVehE.js} +4 -4
  19. package/dist/es/Link-Av9RdcFv.js +11 -0
  20. package/dist/es/Loading-CBNDUWQd.js +92 -0
  21. package/dist/es/Message-DgnyyuXn.js +152 -0
  22. package/dist/es/Notification-LYRXnVAf.js +69 -0
  23. package/dist/es/{Overlay-BRDSWspM.js → Overlay-CpvMhnuU.js} +1 -1
  24. package/dist/es/Pixelate-BPypBgJU.js +67 -0
  25. package/dist/es/Popconfirm-DvxFdLrw.js +23 -0
  26. package/dist/es/Progress-Bc5INMhJ.js +12 -0
  27. package/dist/es/Radio-263_rtRl.js +33 -0
  28. package/dist/es/Select-7ZxUCS8z.js +133 -0
  29. package/dist/es/Switch-DiCsMJT3.js +34 -0
  30. package/dist/es/Table-BvA_xzDe.js +10 -0
  31. package/dist/es/Tooltip-J3ji6weH.js +74 -0
  32. package/dist/es/hooks-BqobYUzS.js +171 -0
  33. package/dist/es/index.js +94 -64
  34. package/dist/{theme → es/theme}/Alert.css +1 -1
  35. package/dist/es/theme/Avatar.css +86 -0
  36. package/dist/{theme → es/theme}/Badge.css +36 -30
  37. package/dist/es/theme/Breadcrumb.css +192 -0
  38. package/dist/{theme → es/theme}/Button.css +216 -216
  39. package/dist/es/theme/Card.css +347 -0
  40. package/dist/es/theme/Checkbox.css +484 -0
  41. package/dist/{theme → es/theme}/Collapse.css +214 -54
  42. package/dist/es/theme/Divider.css +111 -0
  43. package/dist/es/theme/Drawer.css +206 -0
  44. package/dist/es/theme/Dropdown.css +471 -0
  45. package/dist/es/theme/FileInput.css +365 -0
  46. package/dist/es/theme/Form.css +83 -0
  47. package/dist/es/theme/Indicator.css +159 -0
  48. package/dist/{theme → es/theme}/Input.css +1 -0
  49. package/dist/es/theme/Link.css +69 -0
  50. package/dist/es/theme/Loading.css +266 -0
  51. package/dist/es/theme/Message.css +565 -0
  52. package/dist/es/theme/Notification.css +316 -0
  53. package/dist/es/theme/Popconfirm.css +46 -0
  54. package/dist/es/theme/Progress.css +278 -0
  55. package/dist/es/theme/Radio.css +426 -0
  56. package/dist/{theme → es/theme}/Select.css +78 -78
  57. package/dist/es/theme/Table.css +680 -0
  58. package/dist/es/theme/Tooltip.css +235 -0
  59. package/dist/es/utils-BS5vsvlM.js +101 -0
  60. package/dist/index.css +1 -1
  61. package/dist/types/components/Avatar/index.d.ts +30 -0
  62. package/dist/types/components/Avatar/types.d.ts +8 -0
  63. package/dist/types/components/Badge/types.d.ts +1 -0
  64. package/dist/types/components/Breadcrumb/constants.d.ts +3 -0
  65. package/dist/types/components/Breadcrumb/index.d.ts +45 -0
  66. package/dist/types/components/Breadcrumb/types.d.ts +13 -0
  67. package/dist/types/components/Card/types.d.ts +6 -0
  68. package/dist/types/components/Checkbox/constants.d.ts +5 -0
  69. package/dist/types/components/Checkbox/index.d.ts +94 -0
  70. package/dist/types/components/Checkbox/types.d.ts +46 -0
  71. package/dist/types/components/Collapse/constants.d.ts +3 -0
  72. package/dist/types/components/Collapse/index.d.ts +14 -8
  73. package/dist/types/components/Collapse/types.d.ts +12 -0
  74. package/dist/types/components/Divider/index.d.ts +30 -0
  75. package/dist/types/components/Divider/types.d.ts +10 -0
  76. package/dist/types/components/Drawer/constants.d.ts +1 -0
  77. package/dist/types/components/Drawer/index.d.ts +72 -0
  78. package/dist/types/components/Drawer/types.d.ts +20 -0
  79. package/dist/types/components/Dropdown/index.d.ts +11 -1
  80. package/dist/types/components/Dropdown/types.d.ts +3 -0
  81. package/dist/types/components/Dropdown/useDropdownKeyboard.d.ts +8 -0
  82. package/dist/types/components/FileInput/constants.d.ts +3 -0
  83. package/dist/types/components/FileInput/index.d.ts +58 -0
  84. package/dist/types/components/FileInput/types.d.ts +24 -0
  85. package/dist/types/components/Form/types.d.ts +17 -7
  86. package/dist/types/components/Indicator/constants.d.ts +2 -0
  87. package/dist/types/components/Indicator/index.d.ts +28 -0
  88. package/dist/types/components/Indicator/types.d.ts +10 -0
  89. package/dist/types/components/Input/index.d.ts +10 -10
  90. package/dist/types/components/Link/index.d.ts +34 -0
  91. package/dist/types/components/Link/types.d.ts +10 -0
  92. package/dist/types/components/Loading/index.d.ts +25 -0
  93. package/dist/types/components/Loading/types.d.ts +9 -0
  94. package/dist/types/components/Message/methods.d.ts +2 -0
  95. package/dist/types/components/Message/types.d.ts +9 -3
  96. package/dist/types/components/MessageBox/types.d.ts +16 -4
  97. package/dist/types/components/Notification/index.d.ts +1 -1
  98. package/dist/types/components/Notification/methods.d.ts +6 -1
  99. package/dist/types/components/Notification/types.d.ts +10 -4
  100. package/dist/types/components/Pixelate/constants.d.ts +2 -0
  101. package/dist/types/components/Pixelate/index.d.ts +71 -0
  102. package/dist/types/components/Pixelate/types.d.ts +23 -0
  103. package/dist/types/components/Popconfirm/index.d.ts +16 -7
  104. package/dist/types/components/Popconfirm/types.d.ts +2 -1
  105. package/dist/types/components/Progress/constants.d.ts +2 -0
  106. package/dist/types/components/Progress/index.d.ts +50 -0
  107. package/dist/types/components/Progress/types.d.ts +22 -0
  108. package/dist/types/components/Radio/constants.d.ts +5 -0
  109. package/dist/types/components/Radio/index.d.ts +88 -0
  110. package/dist/types/components/Radio/types.d.ts +43 -0
  111. package/dist/types/components/Select/constants.d.ts +2 -1
  112. package/dist/types/components/Select/index.d.ts +35 -26
  113. package/dist/types/components/Switch/index.d.ts +5 -5
  114. package/dist/types/components/Table/index.d.ts +27 -0
  115. package/dist/types/components/Table/types.d.ts +20 -0
  116. package/dist/types/components/Tooltip/index.d.ts +6 -0
  117. package/dist/types/components/Tooltip/types.d.ts +7 -0
  118. package/dist/types/components/index.d.ts +12 -0
  119. package/dist/types/hooks/index.d.ts +3 -1
  120. package/dist/types/hooks/useDraggable.d.ts +7 -0
  121. package/dist/types/hooks/useFocusTrap.d.ts +5 -0
  122. package/dist/types/hooks/vitest.setup.d.ts +4 -0
  123. package/dist/types/utils/index.d.ts +1 -0
  124. package/dist/types/utils/instance-management.d.ts +40 -0
  125. package/dist/umd/index.css +1 -1
  126. package/dist/umd/index.css.gz +0 -0
  127. package/dist/umd/index.umd.cjs +5 -14
  128. package/dist/umd/index.umd.cjs.gz +0 -0
  129. package/package.json +5 -6
  130. package/dist/es/Badge-BG-vYP8Y.js +0 -13
  131. package/dist/es/Card-BCBnlVi_.js +0 -12
  132. package/dist/es/Collapse-B08VhCVq.js +0 -38
  133. package/dist/es/ConfigProvider-DZO1d5Eq.js +0 -44
  134. package/dist/es/Dropdown-49nf6F8P.js +0 -40
  135. package/dist/es/Form-CGiTDSGI.js +0 -108
  136. package/dist/es/Loading-DlygqGOv.js +0 -88
  137. package/dist/es/Message-ganFfLeU.js +0 -123
  138. package/dist/es/Notification-D4RYHV9o.js +0 -58
  139. package/dist/es/Popconfirm-Cop44KwQ.js +0 -22
  140. package/dist/es/Select-Blw_iO2r.js +0 -133
  141. package/dist/es/Switch-CHjcLtHs.js +0 -34
  142. package/dist/es/Tooltip-HWx_i2FA.js +0 -74
  143. package/dist/es/hooks-CYdEHUVd.js +0 -105
  144. package/dist/es/utils-bsCscZfS.js +0 -84
  145. package/dist/theme/Card.css +0 -112
  146. package/dist/theme/Dropdown.css +0 -187
  147. package/dist/theme/Form.css +0 -52
  148. package/dist/theme/Loading.css +0 -78
  149. package/dist/theme/Message.css +0 -353
  150. package/dist/theme/Notification.css +0 -126
  151. package/dist/theme/Popconfirm.css +0 -30
  152. package/dist/theme/Tooltip.css +0 -111
  153. /package/dist/{theme → es/theme}/Icon.css +0 -0
  154. /package/dist/{theme → es/theme}/Overlay.css +0 -0
  155. /package/dist/{theme → es/theme}/Switch.css +0 -0
  156. /package/dist/{theme → es/theme}/fonts/zpix.woff2 +0 -0
  157. /package/dist/{theme → es/theme}/index.css +0 -0
@@ -1,187 +0,0 @@
1
- /* Dropdown Variables */
2
- .px-dropdown .px-dropdown__menu {
3
- --px-dropdown-menuItem-hover-fill: var(--px-hover-bg-color);
4
- --px-dropdown-menuItem-hover-color: var(--px-hover-text-color);
5
- --px-dropdown-menuItem-disabled-color: var(--px-text-color-disabled);
6
- --px-dropdown-menuItem-divided-color: var(--px-border-color-dark);
7
- --px-dropdown-shadow-color: var(--px-shadow-color-dark);
8
- }
9
- /* Base Dropdown Styles - Pixel Game Menu */
10
- .px-dropdown {
11
- display: inline-block;
12
- font-family: var(--px-font-family);
13
- }
14
- .px-dropdown .px-tooltip {
15
- --px-popover-padding: 4px 0;
16
- }
17
- /* Disabled state */
18
- .px-dropdown.is-disabled > * {
19
- color: var(--px-text-color-placeholder) !important;
20
- cursor: not-allowed !important;
21
- }
22
- /* Dropdown Menu - Pixel style list */
23
- .px-dropdown__menu {
24
- list-style-type: none;
25
- margin: 0;
26
- padding: 4px 0;
27
- background: var(--px-bg-color);
28
- }
29
- /* Menu items - Pixel RPG menu style */
30
- .px-dropdown__menu .px-dropdown__item {
31
- display: flex;
32
- align-items: center;
33
- white-space: nowrap;
34
- list-style: none;
35
- line-height: 1.5;
36
- padding: 8px 16px;
37
- margin: 0;
38
- font-size: var(--px-font-size-base);
39
- font-family: var(--px-font-family);
40
- color: var(--px-text-color-primary);
41
- cursor: pointer;
42
- outline: none;
43
- position: relative;
44
- transition: none;
45
- }
46
- /* Hover effect - Pixel highlight */
47
- .px-dropdown__menu .px-dropdown__item:hover {
48
- background-color: var(--px-dropdown-menuItem-hover-fill);
49
- color: var(--px-dropdown-menuItem-hover-color);
50
- }
51
- /* Pixel cursor indicator */
52
- .px-dropdown__menu .px-dropdown__item:hover::before {
53
- content: ">";
54
- position: absolute;
55
- left: 6px;
56
- color: var(--px-dropdown-menuItem-hover-color);
57
- font-weight: bold;
58
- }
59
- /* Disabled state */
60
- .px-dropdown__menu .px-dropdown__item.is-disabled {
61
- color: var(--px-dropdown-menuItem-disabled-color);
62
- cursor: not-allowed;
63
- background-image: none;
64
- }
65
- .px-dropdown__menu .px-dropdown__item.is-disabled:hover {
66
- background-color: transparent;
67
- }
68
- .px-dropdown__menu .px-dropdown__item.is-disabled:hover::before {
69
- content: none;
70
- }
71
- /* Size variants */
72
- .px-dropdown__menu .px-dropdown__item--large {
73
- padding: 10px 20px;
74
- line-height: 1.5;
75
- font-size: var(--px-font-size-large);
76
- }
77
- .px-dropdown__menu .px-dropdown__item--large:hover::before {
78
- left: 8px;
79
- }
80
- .px-dropdown__menu .px-dropdown__item--small {
81
- padding: 4px 12px;
82
- line-height: 1.4;
83
- font-size: var(--px-font-size-small);
84
- }
85
- .px-dropdown__menu .px-dropdown__item--small:hover::before {
86
- left: 4px;
87
- }
88
- /* Divider - Pixel style dashed line */
89
- .px-dropdown__menu .divided-placeholder {
90
- margin: 6px 8px;
91
- border-top: 2px dashed var(--px-dropdown-menuItem-divided-color);
92
- }
93
- /* Dropdown Variables */
94
- .px-dropdown .px-dropdown__menu {
95
- --px-dropdown-menuItem-hover-fill: var(--px-hover-bg-color);
96
- --px-dropdown-menuItem-hover-color: var(--px-hover-text-color);
97
- --px-dropdown-menuItem-disabled-color: var(--px-text-color-disabled);
98
- --px-dropdown-menuItem-divided-color: var(--px-border-color-dark);
99
- --px-dropdown-shadow-color: var(--px-shadow-color-dark);
100
- }
101
- /* Base Dropdown Styles - Pixel Game Menu */
102
- .px-dropdown {
103
- display: inline-block;
104
- font-family: var(--px-font-family);
105
- }
106
- .px-dropdown .px-tooltip {
107
- --px-popover-padding: 4px 0;
108
- }
109
- /* Disabled state */
110
- .px-dropdown.is-disabled > * {
111
- color: var(--px-text-color-placeholder) !important;
112
- cursor: not-allowed !important;
113
- }
114
- /* Dropdown Menu - Pixel style list */
115
- .px-dropdown__menu {
116
- list-style-type: none;
117
- margin: 0;
118
- padding: 4px 0;
119
- background: var(--px-bg-color);
120
- }
121
- /* Menu items - Pixel RPG menu style */
122
- .px-dropdown__menu .px-dropdown__item {
123
- display: flex;
124
- align-items: center;
125
- white-space: nowrap;
126
- list-style: none;
127
- line-height: 1.5;
128
- padding: 8px 16px;
129
- margin: 0;
130
- font-size: var(--px-font-size-base);
131
- font-family: var(--px-font-family);
132
- color: var(--px-text-color-primary);
133
- cursor: pointer;
134
- outline: none;
135
- position: relative;
136
- transition: none;
137
- }
138
- /* Hover effect - Pixel highlight */
139
- .px-dropdown__menu .px-dropdown__item:hover {
140
- background-color: var(--px-dropdown-menuItem-hover-fill);
141
- color: var(--px-dropdown-menuItem-hover-color);
142
- }
143
- /* Pixel cursor indicator */
144
- .px-dropdown__menu .px-dropdown__item:hover::before {
145
- content: ">";
146
- position: absolute;
147
- left: 6px;
148
- color: var(--px-dropdown-menuItem-hover-color);
149
- font-weight: bold;
150
- }
151
- /* Disabled state */
152
- .px-dropdown__menu .px-dropdown__item.is-disabled {
153
- color: var(--px-dropdown-menuItem-disabled-color);
154
- cursor: not-allowed;
155
- background-image: none;
156
- }
157
- .px-dropdown__menu .px-dropdown__item.is-disabled:hover {
158
- background-color: transparent;
159
- }
160
- .px-dropdown__menu .px-dropdown__item.is-disabled:hover::before {
161
- content: none;
162
- }
163
- /* Size variants */
164
- .px-dropdown__menu .px-dropdown__item--large {
165
- padding: 10px 20px;
166
- line-height: 1.5;
167
- font-size: var(--px-font-size-large);
168
- }
169
- .px-dropdown__menu .px-dropdown__item--large:hover::before {
170
- left: 8px;
171
- }
172
- .px-dropdown__menu .px-dropdown__item--small {
173
- padding: 4px 12px;
174
- line-height: 1.4;
175
- font-size: var(--px-font-size-small);
176
- }
177
- .px-dropdown__menu .px-dropdown__item--small:hover::before {
178
- left: 4px;
179
- }
180
- /* Divider - Pixel style dashed line */
181
- .px-dropdown__menu .divided-placeholder {
182
- margin: 6px 8px;
183
- border-top: 2px dashed var(--px-dropdown-menuItem-divided-color);
184
- }
185
- .px-dropdown .px-button-group > :last-child {
186
- padding: 5px 7px;
187
- }
@@ -1,52 +0,0 @@
1
- /* Form Component Styles */
2
- .px-form[data-v-b1c8aebb] {
3
- /* Form container styles */
4
- }
5
- .px-form-item[data-v-b1c8aebb] {
6
- display: flex;
7
- flex-wrap: wrap;
8
- align-items: flex-start;
9
- margin-bottom: 18px;
10
- }
11
- .px-form-item__label[data-v-b1c8aebb] {
12
- display: inline-block;
13
- vertical-align: middle;
14
- font-size: var(--px-font-size-base);
15
- color: var(--px-text-color-regular);
16
- line-height: 32px;
17
- padding: 0 12px 0 0;
18
- box-sizing: border-box;
19
- width: var(--px-form-lebel-width, 150px);
20
- flex-shrink: 0;
21
- text-align: right;
22
- }
23
- .px-form-item__content[data-v-b1c8aebb] {
24
- line-height: 32px;
25
- position: relative;
26
- font-size: var(--px-font-size-base);
27
- flex: 1;
28
- min-width: 0;
29
- }
30
- .px-form-item__error[data-v-b1c8aebb] {
31
- color: var(--px-color-danger);
32
- font-size: var(--px-font-size-small);
33
- line-height: 1;
34
- padding-top: 4px;
35
- position: absolute;
36
- top: 100%;
37
- left: 0;
38
- }
39
- .px-form-item.is-error .px-input__wrapper[data-v-b1c8aebb] {
40
- border-color: var(--px-color-danger);
41
- }
42
- .px-form-item.is-success .px-input__wrapper[data-v-b1c8aebb] {
43
- border-color: var(--px-color-success);
44
- }
45
- .px-form-item.is-required .px-form-item__label[data-v-b1c8aebb]::before {
46
- content: "*";
47
- color: var(--px-color-danger);
48
- margin-right: 4px;
49
- }
50
- .px-form-item[data-v-b1c8aebb] {
51
- --px-form-lebel-width: var(--f6756cfe) !important;
52
- }
@@ -1,78 +0,0 @@
1
- /* Loading Variables */
2
- .px-loading {
3
- --px-loading-icon-color: var(--px-color-primary);
4
- --px-loading-mask-margin: 0;
5
- --px-loading-mask-size: 100%;
6
- --px-loading-icon-size: 32px;
7
- --px-loading-font-size: var(--px-font-size-base);
8
- --px-loading-z-index: 20000;
9
- --px-loading-bg-color: rgba(255, 255, 255, 0.8);
10
- }
11
- /* Base Loading Styles - Pixel Game Loading */
12
- .px-loading {
13
- opacity: 1;
14
- transition: none;
15
- font-family: var(--px-font-family);
16
- }
17
- .px-loading.px-loading__mask {
18
- position: absolute;
19
- margin: var(--px-loading-mask-margin);
20
- top: var(--px-loading-mask-margin);
21
- right: var(--px-loading-mask-margin);
22
- bottom: var(--px-loading-mask-margin);
23
- left: var(--px-loading-mask-margin);
24
- height: var(--px-loading-mask-size);
25
- width: var(--px-loading-mask-size);
26
- z-index: var(--px-loading-z-index);
27
- background: var(--px-loading-bg-color);
28
- display: flex;
29
- justify-content: center;
30
- align-items: center;
31
- }
32
- .px-loading.px-loading__mask.is-fullscreen {
33
- position: fixed;
34
- }
35
- .px-loading .px-loading__spinner {
36
- color: var(--px-loading-icon-color);
37
- text-align: center;
38
- display: flex;
39
- flex-direction: column;
40
- align-items: center;
41
- gap: 8px;
42
- }
43
- .px-loading .px-loading__spinner .px-loading-text {
44
- margin: 0;
45
- font-size: var(--px-loading-font-size);
46
- font-family: var(--px-font-family);
47
- color: var(--px-text-color-primary);
48
- letter-spacing: 1px;
49
- }
50
- .px-loading .px-loading__spinner i {
51
- font-size: var(--px-loading-icon-size);
52
- /* Pixel-style animation - stepping */
53
- animation: px-loading-spin 1s steps(8) infinite;
54
- }
55
- /* Pixel-style spinning animation */
56
- @keyframes px-loading-spin {
57
- 0% {
58
- transform: rotate(0deg);
59
- }
60
- 100% {
61
- transform: rotate(360deg);
62
- }
63
- }
64
- /* Parent element states */
65
- .px-loading-parent--relative {
66
- position: relative !important;
67
- }
68
- .px-loading-parent--hiden {
69
- overflow: hidden !important;
70
- }
71
- /* Dark mode loading */
72
- .px-dark .px-loading {
73
- --px-loading-bg-color: rgba(30, 30, 46, 0.85);
74
- }
75
- .px-loading {
76
- --px-loading-bg-color: var(--c7e915b4) !important; /* !important 表示强制覆盖内联样式 v-bind(background) 表示绑定background属性 */
77
- --px-loading-z-index: var(--24995070) !important; /* !important 表示强制覆盖内联样式 v-bind(zIndex) 表示绑定zIndex属性 */
78
- }
@@ -1,353 +0,0 @@
1
- /* Message Variables */
2
- .px-message {
3
- --px-message-bg-color: var(--px-fill-color-blank);
4
- --px-message-border-color: var(--px-border-color-dark);
5
- --px-message-text-color: var(--px-text-color-primary);
6
- --px-message-shadow-color: var(--px-shadow-color);
7
- --px-message-padding: 12px 16px;
8
- --px-message-close-size: 16px;
9
- --px-message-close-icon-color: var(--px-text-color-secondary);
10
- --px-message-close-hover-color: var(--px-text-color-primary);
11
- --px-message-icon-size: 16px;
12
- --px-message-icon-margin: 10px;
13
- }
14
- /* Base Message Styles - Pixel Game Notification */
15
- .px-message {
16
- width: fit-content;
17
- max-width: calc(100% - 32px);
18
- box-sizing: border-box;
19
- position: fixed;
20
- left: 50%;
21
- top: 20px;
22
- transform: translateX(-50%);
23
- padding: var(--px-message-padding);
24
- display: flex;
25
- align-items: center;
26
- font-family: var(--px-font-family);
27
-
28
- /* Remove traditional styling */
29
- background: transparent;
30
- border: none;
31
-
32
- /* Pixel shadow via drop-shadow (respects clip-path shape) */
33
- filter: drop-shadow(var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-message-shadow-color));
34
-
35
- /* No smooth transitions for pixel feel */
36
- transition: none;
37
- }
38
- /* Border layer — filled with border color, clipped to pixel shape */
39
- .px-message::before {
40
- content: '';
41
- position: absolute;
42
- inset: 0;
43
- background: var(--px-message-border-color);
44
- clip-path: polygon(
45
- 0 4px, 2px 4px, 2px 2px, 4px 2px, 4px 0,
46
- calc(100% - 4px) 0, calc(100% - 4px) 2px, calc(100% - 2px) 2px, calc(100% - 2px) 4px, 100% 4px,
47
- 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%,
48
- 4px 100%, 4px calc(100% - 2px), 2px calc(100% - 2px), 2px calc(100% - 4px), 0 calc(100% - 4px)
49
- );
50
- z-index: -1;
51
- }
52
- /* Fill layer — inset by border width, filled with bg color */
53
- .px-message::after {
54
- content: '';
55
- position: absolute;
56
- inset: 2px;
57
- background: var(--px-message-bg-color);
58
- clip-path: polygon(
59
- 0 4px, 2px 4px, 2px 2px, 4px 2px, 4px 0,
60
- calc(100% - 4px) 0, calc(100% - 4px) 2px, calc(100% - 2px) 2px, calc(100% - 2px) 4px, 100% 4px,
61
- 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%,
62
- 4px 100%, 4px calc(100% - 2px), 2px calc(100% - 2px), 2px calc(100% - 4px), 0 calc(100% - 4px)
63
- );
64
- z-index: -1;
65
- }
66
- /* Icon styling */
67
- .px-message .px-message__icon {
68
- color: var(--px-message-text-color);
69
- font-size: var(--px-message-icon-size);
70
- width: var(--px-message-icon-size);
71
- margin-right: var(--px-message-icon-margin);
72
- flex-shrink: 0;
73
- }
74
- /* Content area */
75
- .px-message .px-message__content {
76
- color: var(--px-message-text-color);
77
- overflow-wrap: break-word;
78
- font-size: var(--px-font-size-base);
79
- line-height: 1.5;
80
- }
81
- /* With close button */
82
- .px-message.is-close .px-message__content {
83
- padding-right: 12px;
84
- }
85
- /* Center alignment */
86
- .px-message.text-center {
87
- justify-content: center;
88
- }
89
- /* Close button - pixel style */
90
- .px-message .px-message__close {
91
- display: flex;
92
- align-items: center;
93
- }
94
- .px-message .px-message__close .px-icon {
95
- cursor: pointer;
96
- color: var(--px-message-close-icon-color);
97
- font-size: var(--px-message-close-size);
98
- transition: none;
99
- }
100
- .px-message .px-message__close .px-icon:hover {
101
- color: var(--px-message-close-hover-color);
102
- transform: translate(-1px, -1px);
103
- }
104
- .px-message .px-message__close .px-icon:active {
105
- transform: translate(1px, 1px);
106
- }
107
- /* Type variants with pixel styling */
108
- .px-message--info {
109
- --px-message-bg-color: var(--px-color-info-light-9);
110
- --px-message-border-color: var(--px-color-info);
111
- --px-message-text-color: var(--px-color-info-dark);
112
- --px-message-shadow-color: var(--px-color-info-dark);
113
- }
114
- .px-message--info .px-message__close .px-icon {
115
- color: var(--px-color-info);
116
- }
117
- .px-message--info .px-message__close .px-icon:hover {
118
- color: var(--px-color-info-dark);
119
- }
120
- .px-message--success {
121
- --px-message-bg-color: var(--px-color-success-light-9);
122
- --px-message-border-color: var(--px-color-success);
123
- --px-message-text-color: var(--px-color-success-dark);
124
- --px-message-shadow-color: var(--px-color-success-dark);
125
- }
126
- .px-message--success .px-message__close .px-icon {
127
- color: var(--px-color-success);
128
- }
129
- .px-message--success .px-message__close .px-icon:hover {
130
- color: var(--px-color-success-dark);
131
- }
132
- .px-message--warning {
133
- --px-message-bg-color: var(--px-color-warning-light-9);
134
- --px-message-border-color: var(--px-color-warning);
135
- --px-message-text-color: var(--px-color-warning-dark);
136
- --px-message-shadow-color: var(--px-color-warning-dark);
137
- }
138
- .px-message--warning .px-message__close .px-icon {
139
- color: var(--px-color-warning);
140
- }
141
- .px-message--warning .px-message__close .px-icon:hover {
142
- color: var(--px-color-warning-dark);
143
- }
144
- .px-message--danger {
145
- --px-message-bg-color: var(--px-color-danger-light-9);
146
- --px-message-border-color: var(--px-color-danger);
147
- --px-message-text-color: var(--px-color-danger-dark);
148
- --px-message-shadow-color: var(--px-color-danger-dark);
149
- }
150
- .px-message--danger .px-message__close .px-icon {
151
- color: var(--px-color-danger);
152
- }
153
- .px-message--danger .px-message__close .px-icon:hover {
154
- color: var(--px-color-danger-dark);
155
- }
156
- /* Error variant (alias for danger) */
157
- .px-message--error {
158
- --px-message-bg-color: var(--px-color-danger-light-9);
159
- --px-message-border-color: var(--px-color-danger);
160
- --px-message-text-color: var(--px-color-danger-dark);
161
- --px-message-shadow-color: var(--px-color-danger-dark);
162
- }
163
- .px-message--error .px-message__close .px-icon {
164
- color: var(--px-color-danger);
165
- }
166
- .px-message--error .px-message__close .px-icon:hover {
167
- color: var(--px-color-danger-dark);
168
- }
169
- /* Animation - Pixel style instant appear/disappear */
170
- .px-message.fade-up-enter-from,
171
- .px-message.fade-up-leave-to {
172
- opacity: 0;
173
- transform: translate(-50%, -100%);
174
- }
175
- .px-message.fade-up-enter-active,
176
- .px-message.fade-up-leave-active {
177
- transition: opacity 0.1s, transform 0.1s;
178
- }
179
- /* MessageBox Variables */
180
- .px-message-box {
181
- --px-message-box-title-color: var(--px-text-color-primary);
182
- --px-message-box-width: 420px;
183
- --px-message-box-font-size: var(--px-font-size-large);
184
- --px-message-box-content-font-size: var(--px-font-size-base);
185
- --px-message-box-content-color: var(--px-text-color-regular);
186
- --px-message-box-padding-primary: 16px;
187
- --px-message-box-font-line-height: 1.5;
188
- --px-message-box-close-size: var(--px-font-size-base);
189
- --px-message-box-border-color: var(--px-border-color);
190
- --px-message-box-shadow-color: var(--px-shadow-color);
191
- }
192
- /* Overlay */
193
- .px-overlay-message-box {
194
- text-align: center;
195
- position: fixed;
196
- top: 0;
197
- right: 0;
198
- bottom: 0;
199
- left: 0;
200
- padding: 16px;
201
- overflow: auto;
202
- background-color: rgba(0, 0, 0, 0.5);
203
- }
204
- .px-overlay-message-box::after {
205
- content: '';
206
- display: inline-block;
207
- height: 100%;
208
- width: 0;
209
- vertical-align: middle;
210
- }
211
- /* Base MessageBox Styles - Pixel Dialog */
212
- .px-message-box {
213
- display: inline-block;
214
- position: relative;
215
- max-width: var(--px-message-box-width);
216
- width: 100%;
217
- padding: var(--px-message-box-padding-primary);
218
- vertical-align: middle;
219
- background-color: var(--px-bg-color);
220
- font-size: var(--px-message-box-font-size);
221
- font-family: var(--px-font-family);
222
- text-align: left;
223
- overflow: hidden;
224
- backface-visibility: hidden;
225
- box-sizing: border-box;
226
- overflow-wrap: break-word;
227
-
228
- /* Pixel-style border */
229
- border: var(--px-border-width) solid var(--px-message-box-border-color);
230
- border-radius: 0;
231
-
232
- /* Pixel shadow */
233
- box-shadow:
234
- var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0 0 var(--px-message-box-shadow-color),
235
- var(--px-box-shadow-inset-light);
236
- }
237
- .px-message-box:focus {
238
- outline: none !important;
239
- }
240
- .px-message-box.is-center .px-message-box__title {
241
- display: flex;
242
- align-items: center;
243
- justify-content: center;
244
- gap: 6px;
245
- }
246
- .px-message-box.is-center .px-message-box__footer,
247
- .px-message-box.is-center .px-message-box__content {
248
- justify-content: center;
249
- }
250
- .px-message-box :deep(.px-icon).px-icon-info {
251
- color: var(--px-color-info) !important;
252
- }
253
- .px-message-box :deep(.px-icon).px-icon-success {
254
- color: var(--px-color-success) !important;
255
- }
256
- .px-message-box :deep(.px-icon).px-icon-warning {
257
- color: var(--px-color-warning) !important;
258
- }
259
- .px-message-box :deep(.px-icon).px-icon-danger {
260
- color: var(--px-color-danger) !important;
261
- }
262
- .px-message-box :deep(.px-icon).px-icon-error {
263
- color: var(--px-color-danger) !important;
264
- }
265
- .px-message-box .px-message-box__header {
266
- padding-bottom: var(--px-message-box-padding-primary);
267
- border-bottom: var(--px-border-width-thin) dashed var(--px-message-box-border-color);
268
- }
269
- .px-message-box .px-message-box__header .px-message-box__title {
270
- color: var(--px-message-box-title-color);
271
- font-size: var(--px-message-box-font-size);
272
- font-family: var(--px-font-family);
273
- font-weight: 500;
274
- line-height: var(--px-message-box-font-line-height);
275
- }
276
- .px-message-box .px-message-box__header .px-message-box__header-btn {
277
- position: absolute;
278
- top: 8px;
279
- right: 8px;
280
- padding: 4px;
281
- width: 28px;
282
- height: 28px;
283
- border: var(--px-border-width-thin) solid var(--px-border-color);
284
- outline: none;
285
- background: var(--px-fill-color-blank);
286
- font-size: var(--px-message-box-close-size);
287
- cursor: pointer;
288
- box-shadow: 2px 2px 0 0 var(--px-shadow-color);
289
- transition: none;
290
- }
291
- .px-message-box .px-message-box__header .px-message-box__header-btn i {
292
- color: var(--px-text-color-secondary);
293
- font-size: inherit;
294
- }
295
- .px-message-box .px-message-box__header .px-message-box__header-btn:hover {
296
- background: var(--px-fill-color-light);
297
- transform: translate(-1px, -1px);
298
- box-shadow: 3px 3px 0 0 var(--px-shadow-color);
299
- }
300
- .px-message-box .px-message-box__header .px-message-box__header-btn:hover i {
301
- color: var(--px-color-danger);
302
- }
303
- .px-message-box .px-message-box__header .px-message-box__header-btn:active {
304
- transform: translate(1px, 1px);
305
- box-shadow: 1px 1px 0 0 var(--px-shadow-color);
306
- }
307
- .px-message-box .px-message-box__header.show-close {
308
- padding-right: calc(var(--px-message-box-padding-primary) + 32px);
309
- }
310
- .px-message-box .px-message-box__content {
311
- display: flex;
312
- align-items: center;
313
- gap: 12px;
314
- font-size: var(--px-message-box-content-font-size);
315
- font-family: var(--px-font-family);
316
- color: var(--px-message-box-content-color);
317
- padding-top: var(--px-message-box-padding-primary);
318
- }
319
- .px-message-box .px-message-box__content .px-message-box__message {
320
- margin: 0;
321
- }
322
- .px-message-box .px-message-box__content .px-message-box__message p {
323
- margin: 0;
324
- line-height: var(--px-message-box-font-line-height);
325
- }
326
- .px-message-box .px-message-box__input {
327
- padding-top: 12px;
328
- }
329
- .px-message-box .px-message-box__footer {
330
- display: flex;
331
- flex-wrap: wrap;
332
- justify-content: flex-end;
333
- align-items: center;
334
- padding-top: var(--px-message-box-padding-primary);
335
- gap: 8px;
336
- }
337
- /* Animation */
338
- .fade-in-linear-enter-active .px-overlay-message-box {
339
- animation: msgbox-fade-in 0.1s;
340
- }
341
- .fade-in-linear-leave-active .px-overlay-message-box {
342
- animation: msgbox-fade-in 0.1s reverse;
343
- }
344
- @keyframes msgbox-fade-in {
345
- 0% {
346
- transform: translate3d(0, -10px, 0);
347
- opacity: 0;
348
- }
349
- 100% {
350
- transform: translate3d(0, 0, 0);
351
- opacity: 1;
352
- }
353
- }