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,640 +1,647 @@
1
1
  /* Input Variables */
2
- .px-input {
3
- --px-input-text-color: var(--px-text-color-primary);
4
- --px-input-border-color: var(--px-border-color);
5
- --px-input-hover-border-color: var(--px-hover-border-color);
6
- --px-input-focus-border-color: var(--px-hover-border-color);
7
- --px-input-bg-color: var(--px-fill-color-blank);
8
- --px-input-icon-color: var(--px-text-color-secondary);
9
- --px-input-placeholder-color: var(--px-text-color-placeholder);
10
- --px-input-clear-hover-color: var(--px-text-color-primary);
11
- --px-input-shadow-color: var(--px-shadow-color);
12
- --px-input-focus-shadow-color: var(--px-shadow-color-dark);
13
- }
2
+ .px-input {
3
+ --px-input-text-color: var(--px-text-color-primary);
4
+ --px-input-border-color: var(--px-border-color);
5
+ --px-input-hover-border-color: var(--px-hover-border-color);
6
+ --px-input-focus-border-color: var(--px-hover-border-color);
7
+ --px-input-bg-color: var(--px-fill-color-blank);
8
+ --px-input-icon-color: var(--px-text-color-secondary);
9
+ --px-input-placeholder-color: var(--px-text-color-placeholder);
10
+ --px-input-clear-hover-color: var(--px-text-color-primary);
11
+ --px-input-shadow-color: var(--px-shadow-color);
12
+ --px-input-focus-shadow-color: var(--px-shadow-color-dark);
13
+
14
+ /* Inset 3D bevel — sunken field look (reversed from PxButton's raised bevel) */
15
+ --px-input-inset-shadow: inset 2px 2px 0 0 rgba(0, 0, 0, 0.08);
16
+ --px-input-inset-highlight: inset -2px -2px 0 0 rgba(255, 255, 255, 0.15);
17
+ }
14
18
  /* Base Input Styles */
15
- .px-input {
16
- --px-input-height: 36px;
17
- position: relative;
18
- font-size: var(--px-font-size-base);
19
- font-family: var(--px-font-family);
20
- display: inline-flex;
21
- width: 100%;
22
- line-height: var(--px-input-height);
23
- box-sizing: border-box;
19
+ .px-input {
20
+ --px-input-height: 36px;
21
+ position: relative;
22
+ font-size: var(--px-font-size-base);
23
+ font-family: var(--px-font-family);
24
+ display: inline-flex;
25
+ width: 100%;
26
+ line-height: var(--px-input-height);
27
+ box-sizing: border-box;
24
28
  vertical-align: middle;
25
- }
29
+ }
26
30
  /* Disable native password toggle */
27
- .px-input input[type="password"] {
31
+ .px-input input[type="password"] {
28
32
  -webkit-appearance: none;
29
33
  }
30
- .px-input input[type="password"]::-ms-reveal {
34
+ .px-input input[type="password"]::-ms-reveal {
31
35
  display: none;
32
36
  }
33
- .px-input input[type="password"]::-ms-clear {
37
+ .px-input input[type="password"]::-ms-clear {
34
38
  display: none;
35
- }
39
+ }
36
40
  /* Disabled state */
37
- .px-input.is-disabled {
41
+ .px-input.is-disabled {
38
42
  cursor: not-allowed;
39
43
  }
40
- .px-input.is-disabled .px-input__wrapper {
41
- opacity: 0.6;
44
+ .px-input.is-disabled .px-input__wrapper {
45
+ opacity: 0.6;
42
46
  cursor: not-allowed;
43
47
  }
44
- .px-input.is-disabled .px-input__wrapper::before {
48
+ .px-input.is-disabled .px-input__wrapper::before {
45
49
  background: var(--px-disabled-border-color);
46
50
  }
47
- .px-input.is-disabled .px-input__wrapper::after {
51
+ .px-input.is-disabled .px-input__wrapper::after {
48
52
  background: var(--px-disabled-bg-color);
49
53
  }
50
- .px-input.is-disabled .px-input__inner {
51
- color: var(--px-disabled-text-color);
52
- -webkit-text-fill-color: var(--px-disabled-text-color);
54
+ .px-input.is-disabled .px-input__inner {
55
+ color: var(--px-disabled-text-color);
56
+ -webkit-text-fill-color: var(--px-disabled-text-color);
53
57
  cursor: not-allowed;
54
58
  }
55
- .px-input.is-disabled .px-textarea__inner {
56
- background-color: var(--px-disabled-bg-color);
57
- border-color: var(--px-disabled-border-color);
58
- color: var(--px-disabled-text-color);
59
+ .px-input.is-disabled .px-textarea__inner {
60
+ background-color: var(--px-disabled-bg-color);
61
+ border-color: var(--px-disabled-border-color);
62
+ color: var(--px-disabled-text-color);
59
63
  cursor: not-allowed;
60
- }
64
+ }
61
65
  /* Prepend/Append border adjustments */
62
- .px-input.is-prepend > .px-input__wrapper::before,
63
- .px-input.is-prepend > .px-input__wrapper::after {
64
- clip-path: polygon(
65
- 0 0,
66
- calc(100% - 4px) 0,
67
- calc(100% - 4px) 2px,
68
- calc(100% - 2px) 2px,
69
- calc(100% - 2px) 4px,
70
- 100% 4px,
71
- 100% calc(100% - 4px),
72
- calc(100% - 2px) calc(100% - 4px),
73
- calc(100% - 2px) calc(100% - 2px),
74
- calc(100% - 4px) calc(100% - 2px),
75
- calc(100% - 4px) 100%,
76
- 0 100%
66
+ .px-input.is-prepend > .px-input__wrapper::before,
67
+ .px-input.is-prepend > .px-input__wrapper::after {
68
+ clip-path: polygon(
69
+ 0 0,
70
+ calc(100% - 4px) 0,
71
+ calc(100% - 4px) 2px,
72
+ calc(100% - 2px) 2px,
73
+ calc(100% - 2px) 4px,
74
+ 100% 4px,
75
+ 100% calc(100% - 4px),
76
+ calc(100% - 2px) calc(100% - 4px),
77
+ calc(100% - 2px) calc(100% - 2px),
78
+ calc(100% - 4px) calc(100% - 2px),
79
+ calc(100% - 4px) 100%,
80
+ 0 100%
77
81
  );
78
82
  }
79
- .px-input.is-append > .px-input__wrapper::before,
80
- .px-input.is-append > .px-input__wrapper::after {
81
- clip-path: polygon(
82
- 0 4px,
83
- 2px 4px,
84
- 2px 2px,
85
- 4px 2px,
86
- 4px 0,
87
- 100% 0,
88
- 100% 100%,
89
- 4px 100%,
90
- 4px calc(100% - 2px),
91
- 2px calc(100% - 2px),
92
- 2px calc(100% - 4px),
93
- 0 calc(100% - 4px)
83
+ .px-input.is-append > .px-input__wrapper::before,
84
+ .px-input.is-append > .px-input__wrapper::after {
85
+ clip-path: polygon(
86
+ 0 4px,
87
+ 2px 4px,
88
+ 2px 2px,
89
+ 4px 2px,
90
+ 4px 0,
91
+ 100% 0,
92
+ 100% 100%,
93
+ 4px 100%,
94
+ 4px calc(100% - 2px),
95
+ 2px calc(100% - 2px),
96
+ 2px calc(100% - 4px),
97
+ 0 calc(100% - 4px)
94
98
  );
95
99
  }
96
- .px-input.is-prepend.is-append > .px-input__wrapper::before,
97
- .px-input.is-prepend.is-append > .px-input__wrapper::after {
100
+ .px-input.is-prepend.is-append > .px-input__wrapper::before,
101
+ .px-input.is-prepend.is-append > .px-input__wrapper::after {
98
102
  clip-path: none;
99
- }
103
+ }
100
104
  /* Focus state */
101
- .px-input.is-focus .px-input__wrapper::before {
105
+ .px-input.is-focus .px-input__wrapper::before {
102
106
  background: var(--px-input-focus-border-color);
103
107
  }
104
- .px-input.is-focus .px-input__wrapper {
108
+ .px-input.is-focus .px-input__wrapper {
105
109
  filter: drop-shadow(4px 4px 0px var(--px-input-focus-shadow-color));
106
- }
110
+ }
107
111
  /* Input Wrapper - Main pixel-style container */
108
- .px-input__wrapper {
109
- display: inline-flex;
110
- flex-grow: 1;
111
- align-items: center;
112
- justify-content: center;
113
- padding: 2px 12px;
114
- background: transparent;
115
- border: none;
116
- position: relative;
117
- transition: none;
118
- height: var(--px-input-height);
119
- box-sizing: border-box;
120
-
121
- /* Pixel shadow via drop-shadow */
122
- filter: drop-shadow(
123
- var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-input-shadow-color)
112
+ .px-input__wrapper {
113
+ display: inline-flex;
114
+ flex-grow: 1;
115
+ align-items: center;
116
+ justify-content: center;
117
+ padding: 2px 12px;
118
+ background: transparent;
119
+ border: none;
120
+ position: relative;
121
+ transition: none;
122
+ height: var(--px-input-height);
123
+ box-sizing: border-box;
124
+
125
+ /* Pixel shadow via drop-shadow */
126
+ filter: drop-shadow(
127
+ var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-input-shadow-color)
124
128
  );
125
- }
129
+ }
126
130
  /* Border layer — filled with border color, clipped to pixel shape */
127
- .px-input__wrapper::before {
128
- content: "";
129
- position: absolute;
130
- inset: 0;
131
- background: var(--px-input-border-color);
132
- clip-path: polygon(
133
- 0 4px,
134
- 2px 4px,
135
- 2px 2px,
136
- 4px 2px,
137
- 4px 0,
138
- calc(100% - 4px) 0,
139
- calc(100% - 4px) 2px,
140
- calc(100% - 2px) 2px,
141
- calc(100% - 2px) 4px,
142
- 100% 4px,
143
- 100% calc(100% - 4px),
144
- calc(100% - 2px) calc(100% - 4px),
145
- calc(100% - 2px) calc(100% - 2px),
146
- calc(100% - 4px) calc(100% - 2px),
147
- calc(100% - 4px) 100%,
148
- 4px 100%,
149
- 4px calc(100% - 2px),
150
- 2px calc(100% - 2px),
151
- 2px calc(100% - 4px),
152
- 0 calc(100% - 4px)
153
- );
131
+ .px-input__wrapper::before {
132
+ content: "";
133
+ position: absolute;
134
+ inset: 0;
135
+ background: var(--px-input-border-color);
136
+ clip-path: polygon(
137
+ 0 4px,
138
+ 2px 4px,
139
+ 2px 2px,
140
+ 4px 2px,
141
+ 4px 0,
142
+ calc(100% - 4px) 0,
143
+ calc(100% - 4px) 2px,
144
+ calc(100% - 2px) 2px,
145
+ calc(100% - 2px) 4px,
146
+ 100% 4px,
147
+ 100% calc(100% - 4px),
148
+ calc(100% - 2px) calc(100% - 4px),
149
+ calc(100% - 2px) calc(100% - 2px),
150
+ calc(100% - 4px) calc(100% - 2px),
151
+ calc(100% - 4px) 100%,
152
+ 4px 100%,
153
+ 4px calc(100% - 2px),
154
+ 2px calc(100% - 2px),
155
+ 2px calc(100% - 4px),
156
+ 0 calc(100% - 4px)
157
+ );
154
158
  z-index: -1;
155
- }
156
- /* Fill layer — inset by border width, filled with bg color */
157
- .px-input__wrapper::after {
158
- content: "";
159
- position: absolute;
160
- inset: 2px;
161
- background: var(--px-input-bg-color);
162
- clip-path: polygon(
163
- 0 4px,
164
- 2px 4px,
165
- 2px 2px,
166
- 4px 2px,
167
- 4px 0,
168
- calc(100% - 4px) 0,
169
- calc(100% - 4px) 2px,
170
- calc(100% - 2px) 2px,
171
- calc(100% - 2px) 4px,
172
- 100% 4px,
173
- 100% calc(100% - 4px),
174
- calc(100% - 2px) calc(100% - 4px),
175
- calc(100% - 2px) calc(100% - 2px),
176
- calc(100% - 4px) calc(100% - 2px),
177
- calc(100% - 4px) 100%,
178
- 4px 100%,
179
- 4px calc(100% - 2px),
180
- 2px calc(100% - 2px),
181
- 2px calc(100% - 4px),
182
- 0 calc(100% - 4px)
183
- );
159
+ }
160
+ /* Fill layer — inset by border width, filled with bg color, with sunken bevel */
161
+ .px-input__wrapper::after {
162
+ content: "";
163
+ position: absolute;
164
+ inset: 2px;
165
+ background: var(--px-input-bg-color);
166
+ box-shadow: var(--px-input-inset-shadow), var(--px-input-inset-highlight);
167
+ clip-path: polygon(
168
+ 0 4px,
169
+ 2px 4px,
170
+ 2px 2px,
171
+ 4px 2px,
172
+ 4px 0,
173
+ calc(100% - 4px) 0,
174
+ calc(100% - 4px) 2px,
175
+ calc(100% - 2px) 2px,
176
+ calc(100% - 2px) 4px,
177
+ 100% 4px,
178
+ 100% calc(100% - 4px),
179
+ calc(100% - 2px) calc(100% - 4px),
180
+ calc(100% - 2px) calc(100% - 2px),
181
+ calc(100% - 4px) calc(100% - 2px),
182
+ calc(100% - 4px) 100%,
183
+ 4px 100%,
184
+ 4px calc(100% - 2px),
185
+ 2px calc(100% - 2px),
186
+ 2px calc(100% - 4px),
187
+ 0 calc(100% - 4px)
188
+ );
184
189
  z-index: -1;
185
190
  }
186
- .px-input__wrapper:hover::before {
191
+ .px-input__wrapper:hover::before {
187
192
  background: var(--px-input-hover-border-color);
188
193
  }
189
- .px-input__wrapper.is-focus::before {
194
+ .px-input__wrapper.is-focus::before {
190
195
  background: var(--px-input-focus-border-color);
191
- }
196
+ }
192
197
  /* Inner input element */
193
- .px-input__wrapper .px-input__inner {
194
- --px-input-inner-height: calc(var(--px-input-height) - 8px);
195
- width: 100%;
196
- flex-grow: 1;
197
- -webkit-appearance: none;
198
- color: var(--px-input-text-color);
199
- font-size: inherit;
200
- font-family: var(--px-font-family);
201
- height: var(--px-input-inner-height);
202
- line-height: var(--px-input-inner-height);
203
- padding: 0;
204
- outline: none;
205
- border: none;
206
- background: none;
207
- box-sizing: border-box;
198
+ .px-input__wrapper .px-input__inner {
199
+ --px-input-inner-height: calc(var(--px-input-height) - 8px);
200
+ width: 100%;
201
+ flex-grow: 1;
202
+ -webkit-appearance: none;
203
+ color: var(--px-input-text-color);
204
+ font-size: inherit;
205
+ font-family: var(--px-font-family);
206
+ height: var(--px-input-inner-height);
207
+ line-height: var(--px-input-inner-height);
208
+ padding: 0;
209
+ outline: none;
210
+ border: none;
211
+ background: none;
212
+ box-sizing: border-box;
208
213
  -webkit-font-smoothing: none;
209
214
  }
210
- .px-input__wrapper .px-input__inner::placeholder {
215
+ .px-input__wrapper .px-input__inner::placeholder {
211
216
  color: var(--px-input-placeholder-color);
212
- }
217
+ }
213
218
  /* Icon styles */
214
- .px-input__wrapper .px-icon {
215
- height: inherit;
216
- line-height: inherit;
217
- display: flex;
218
- justify-content: center;
219
- align-items: center;
220
- margin-left: 8px;
219
+ .px-input__wrapper .px-icon {
220
+ height: inherit;
221
+ line-height: inherit;
222
+ display: flex;
223
+ justify-content: center;
224
+ align-items: center;
225
+ margin-left: 8px;
221
226
  color: var(--px-input-icon-color);
222
- }
227
+ }
223
228
  /* Clear and password icons */
224
- .px-input__wrapper .px-input__clear,
225
- .px-input__wrapper .px-input__password {
226
- color: var(--px-input-icon-color);
227
- font-size: var(--px-font-size-base);
229
+ .px-input__wrapper .px-input__clear,
230
+ .px-input__wrapper .px-input__password {
231
+ color: var(--px-input-icon-color);
232
+ font-size: var(--px-font-size-base);
228
233
  cursor: pointer;
229
234
  }
230
- .px-input__wrapper .px-input__clear:hover, .px-input__wrapper .px-input__password:hover {
235
+ .px-input__wrapper .px-input__clear:hover, .px-input__wrapper .px-input__password:hover {
231
236
  color: var(--px-input-clear-hover-color);
232
- }
237
+ }
233
238
  /* Size variants */
234
- .px-input--large {
235
- --px-input-height: 44px;
239
+ .px-input--large {
240
+ --px-input-height: 44px;
236
241
  font-size: var(--px-font-size-large);
237
242
  }
238
- .px-input--large .px-input__wrapper {
243
+ .px-input--large .px-input__wrapper {
239
244
  padding: 2px 16px;
240
245
  }
241
- .px-input--large .px-input__inner {
246
+ .px-input--large .px-input__inner {
242
247
  --px-input-inner-height: calc(var(--px-input-height) - 10px);
243
248
  }
244
- .px-input--small {
245
- --px-input-height: 28px;
249
+ .px-input--small {
250
+ --px-input-height: 28px;
246
251
  font-size: var(--px-font-size-small);
247
252
  }
248
- .px-input--small .px-input__wrapper {
249
- padding: 1px 8px;
253
+ .px-input--small .px-input__wrapper {
254
+ padding: 1px 8px;
250
255
  filter: drop-shadow(2px 2px 0px var(--px-input-shadow-color));
251
256
  }
252
- .px-input--small .px-input__inner {
257
+ .px-input--small .px-input__inner {
253
258
  --px-input-inner-height: calc(var(--px-input-height) - 6px);
254
- }
259
+ }
255
260
  /* Color variants */
256
- .px-input--primary {
257
- --px-input-border-color: var(--px-color-primary);
258
- --px-input-hover-border-color: var(--px-color-primary-dark);
259
- --px-input-focus-border-color: var(--px-color-primary-dark);
261
+ .px-input--primary {
262
+ --px-input-border-color: var(--px-color-primary);
263
+ --px-input-hover-border-color: var(--px-color-primary-dark);
264
+ --px-input-focus-border-color: var(--px-color-primary-dark);
260
265
  --px-input-focus-shadow-color: var(--px-color-primary-dark);
261
266
  }
262
- .px-input--primary .px-input__wrapper {
267
+ .px-input--primary .px-input__wrapper {
263
268
  filter: drop-shadow(var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-color-primary-dark));
264
269
  }
265
- .px-input--primary.is-focus .px-input__wrapper {
270
+ .px-input--primary.is-focus .px-input__wrapper {
266
271
  filter: drop-shadow(4px 4px 0px var(--px-color-primary-dark));
267
- }
272
+ }
268
273
  /* Textarea color variant */
269
- .px-input--primary .px-textarea__wrapper {
270
- border-color: var(--px-color-primary);
274
+ .px-input--primary .px-textarea__wrapper {
275
+ border-color: var(--px-color-primary);
271
276
  filter: drop-shadow(var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-color-primary-dark));
272
277
  }
273
278
  .px-input--primary .px-textarea__wrapper:hover { border-color: var(--px-color-primary-dark);
274
279
  }
275
- .px-input--primary .px-textarea__wrapper:focus {
276
- border-color: var(--px-color-primary-dark);
280
+ .px-input--primary .px-textarea__wrapper:focus {
281
+ border-color: var(--px-color-primary-dark);
277
282
  filter: drop-shadow(4px 4px 0px var(--px-color-primary-dark));
278
283
  }
279
- .px-input--success {
280
- --px-input-border-color: var(--px-color-success);
281
- --px-input-hover-border-color: var(--px-color-success-dark);
282
- --px-input-focus-border-color: var(--px-color-success-dark);
284
+ .px-input--success {
285
+ --px-input-border-color: var(--px-color-success);
286
+ --px-input-hover-border-color: var(--px-color-success-dark);
287
+ --px-input-focus-border-color: var(--px-color-success-dark);
283
288
  --px-input-focus-shadow-color: var(--px-color-success-dark);
284
289
  }
285
- .px-input--success .px-input__wrapper {
290
+ .px-input--success .px-input__wrapper {
286
291
  filter: drop-shadow(var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-color-success-dark));
287
292
  }
288
- .px-input--success.is-focus .px-input__wrapper {
293
+ .px-input--success.is-focus .px-input__wrapper {
289
294
  filter: drop-shadow(4px 4px 0px var(--px-color-success-dark));
290
- }
295
+ }
291
296
  /* Textarea color variant */
292
- .px-input--success .px-textarea__wrapper {
293
- border-color: var(--px-color-success);
297
+ .px-input--success .px-textarea__wrapper {
298
+ border-color: var(--px-color-success);
294
299
  filter: drop-shadow(var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-color-success-dark));
295
300
  }
296
301
  .px-input--success .px-textarea__wrapper:hover { border-color: var(--px-color-success-dark);
297
302
  }
298
- .px-input--success .px-textarea__wrapper:focus {
299
- border-color: var(--px-color-success-dark);
303
+ .px-input--success .px-textarea__wrapper:focus {
304
+ border-color: var(--px-color-success-dark);
300
305
  filter: drop-shadow(4px 4px 0px var(--px-color-success-dark));
301
306
  }
302
- .px-input--warning {
303
- --px-input-border-color: var(--px-color-warning);
304
- --px-input-hover-border-color: var(--px-color-warning-dark);
305
- --px-input-focus-border-color: var(--px-color-warning-dark);
307
+ .px-input--warning {
308
+ --px-input-border-color: var(--px-color-warning);
309
+ --px-input-hover-border-color: var(--px-color-warning-dark);
310
+ --px-input-focus-border-color: var(--px-color-warning-dark);
306
311
  --px-input-focus-shadow-color: var(--px-color-warning-dark);
307
312
  }
308
- .px-input--warning .px-input__wrapper {
313
+ .px-input--warning .px-input__wrapper {
309
314
  filter: drop-shadow(var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-color-warning-dark));
310
315
  }
311
- .px-input--warning.is-focus .px-input__wrapper {
316
+ .px-input--warning.is-focus .px-input__wrapper {
312
317
  filter: drop-shadow(4px 4px 0px var(--px-color-warning-dark));
313
- }
318
+ }
314
319
  /* Textarea color variant */
315
- .px-input--warning .px-textarea__wrapper {
316
- border-color: var(--px-color-warning);
320
+ .px-input--warning .px-textarea__wrapper {
321
+ border-color: var(--px-color-warning);
317
322
  filter: drop-shadow(var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-color-warning-dark));
318
323
  }
319
324
  .px-input--warning .px-textarea__wrapper:hover { border-color: var(--px-color-warning-dark);
320
325
  }
321
- .px-input--warning .px-textarea__wrapper:focus {
322
- border-color: var(--px-color-warning-dark);
326
+ .px-input--warning .px-textarea__wrapper:focus {
327
+ border-color: var(--px-color-warning-dark);
323
328
  filter: drop-shadow(4px 4px 0px var(--px-color-warning-dark));
324
329
  }
325
- .px-input--info {
326
- --px-input-border-color: var(--px-color-info);
327
- --px-input-hover-border-color: var(--px-color-info-dark);
328
- --px-input-focus-border-color: var(--px-color-info-dark);
330
+ .px-input--info {
331
+ --px-input-border-color: var(--px-color-info);
332
+ --px-input-hover-border-color: var(--px-color-info-dark);
333
+ --px-input-focus-border-color: var(--px-color-info-dark);
329
334
  --px-input-focus-shadow-color: var(--px-color-info-dark);
330
335
  }
331
- .px-input--info .px-input__wrapper {
336
+ .px-input--info .px-input__wrapper {
332
337
  filter: drop-shadow(var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-color-info-dark));
333
338
  }
334
- .px-input--info.is-focus .px-input__wrapper {
339
+ .px-input--info.is-focus .px-input__wrapper {
335
340
  filter: drop-shadow(4px 4px 0px var(--px-color-info-dark));
336
- }
341
+ }
337
342
  /* Textarea color variant */
338
- .px-input--info .px-textarea__wrapper {
339
- border-color: var(--px-color-info);
343
+ .px-input--info .px-textarea__wrapper {
344
+ border-color: var(--px-color-info);
340
345
  filter: drop-shadow(var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-color-info-dark));
341
346
  }
342
347
  .px-input--info .px-textarea__wrapper:hover { border-color: var(--px-color-info-dark);
343
348
  }
344
- .px-input--info .px-textarea__wrapper:focus {
345
- border-color: var(--px-color-info-dark);
349
+ .px-input--info .px-textarea__wrapper:focus {
350
+ border-color: var(--px-color-info-dark);
346
351
  filter: drop-shadow(4px 4px 0px var(--px-color-info-dark));
347
352
  }
348
- .px-input--danger {
349
- --px-input-border-color: var(--px-color-danger);
350
- --px-input-hover-border-color: var(--px-color-danger-dark);
351
- --px-input-focus-border-color: var(--px-color-danger-dark);
353
+ .px-input--danger {
354
+ --px-input-border-color: var(--px-color-danger);
355
+ --px-input-hover-border-color: var(--px-color-danger-dark);
356
+ --px-input-focus-border-color: var(--px-color-danger-dark);
352
357
  --px-input-focus-shadow-color: var(--px-color-danger-dark);
353
358
  }
354
- .px-input--danger .px-input__wrapper {
359
+ .px-input--danger .px-input__wrapper {
355
360
  filter: drop-shadow(var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-color-danger-dark));
356
361
  }
357
- .px-input--danger.is-focus .px-input__wrapper {
362
+ .px-input--danger.is-focus .px-input__wrapper {
358
363
  filter: drop-shadow(4px 4px 0px var(--px-color-danger-dark));
359
- }
364
+ }
360
365
  /* Textarea color variant */
361
- .px-input--danger .px-textarea__wrapper {
362
- border-color: var(--px-color-danger);
366
+ .px-input--danger .px-textarea__wrapper {
367
+ border-color: var(--px-color-danger);
363
368
  filter: drop-shadow(var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-color-danger-dark));
364
369
  }
365
370
  .px-input--danger .px-textarea__wrapper:hover { border-color: var(--px-color-danger-dark);
366
371
  }
367
- .px-input--danger .px-textarea__wrapper:focus {
368
- border-color: var(--px-color-danger-dark);
372
+ .px-input--danger .px-textarea__wrapper:focus {
373
+ border-color: var(--px-color-danger-dark);
369
374
  filter: drop-shadow(4px 4px 0px var(--px-color-danger-dark));
370
- }
375
+ }
371
376
  /* Ghost variant — no border/shadow at rest */
372
- .px-input.is-ghost .px-input__wrapper {
377
+ .px-input.is-ghost .px-input__wrapper {
373
378
  filter: none;
374
379
  }
375
380
  .px-input.is-ghost .px-input__wrapper::before { background: transparent;
376
381
  }
382
+ .px-input.is-ghost .px-input__wrapper::after { box-shadow: none;
383
+ }
377
384
  .px-input.is-ghost .px-input__wrapper:hover::before { background: var(--px-input-hover-border-color);
378
385
  }
379
- .px-input.is-ghost .px-input__wrapper:hover {
386
+ .px-input.is-ghost .px-input__wrapper:hover {
380
387
  filter: drop-shadow(var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-input-shadow-color));
381
388
  }
382
389
  .px-input.is-ghost.is-focus .px-input__wrapper::before { background: var(--px-input-focus-border-color);
383
390
  }
384
- .px-input.is-ghost.is-focus .px-input__wrapper {
391
+ .px-input.is-ghost.is-focus .px-input__wrapper {
385
392
  filter: drop-shadow(4px 4px 0px var(--px-input-focus-shadow-color));
386
- }
393
+ }
387
394
  /* Ghost + Color variants */
388
- .px-input--primary.is-ghost .px-input__wrapper {
395
+ .px-input--primary.is-ghost .px-input__wrapper {
389
396
  filter: none;
390
397
  }
391
398
  .px-input--primary.is-ghost .px-input__wrapper::before { background: transparent;
392
399
  }
393
400
  .px-input--primary.is-ghost .px-input__wrapper:hover::before { background: var(--px-color-primary);
394
401
  }
395
- .px-input--primary.is-ghost .px-input__wrapper:hover {
402
+ .px-input--primary.is-ghost .px-input__wrapper:hover {
396
403
  filter: drop-shadow(var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-color-primary-dark));
397
404
  }
398
405
  .px-input--primary.is-ghost.is-focus .px-input__wrapper::before { background: var(--px-color-primary-dark);
399
406
  }
400
- .px-input--primary.is-ghost.is-focus .px-input__wrapper {
407
+ .px-input--primary.is-ghost.is-focus .px-input__wrapper {
401
408
  filter: drop-shadow(4px 4px 0px var(--px-color-primary-dark));
402
409
  }
403
- .px-input--success.is-ghost .px-input__wrapper {
410
+ .px-input--success.is-ghost .px-input__wrapper {
404
411
  filter: none;
405
412
  }
406
413
  .px-input--success.is-ghost .px-input__wrapper::before { background: transparent;
407
414
  }
408
415
  .px-input--success.is-ghost .px-input__wrapper:hover::before { background: var(--px-color-success);
409
416
  }
410
- .px-input--success.is-ghost .px-input__wrapper:hover {
417
+ .px-input--success.is-ghost .px-input__wrapper:hover {
411
418
  filter: drop-shadow(var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-color-success-dark));
412
419
  }
413
420
  .px-input--success.is-ghost.is-focus .px-input__wrapper::before { background: var(--px-color-success-dark);
414
421
  }
415
- .px-input--success.is-ghost.is-focus .px-input__wrapper {
422
+ .px-input--success.is-ghost.is-focus .px-input__wrapper {
416
423
  filter: drop-shadow(4px 4px 0px var(--px-color-success-dark));
417
424
  }
418
- .px-input--warning.is-ghost .px-input__wrapper {
425
+ .px-input--warning.is-ghost .px-input__wrapper {
419
426
  filter: none;
420
427
  }
421
428
  .px-input--warning.is-ghost .px-input__wrapper::before { background: transparent;
422
429
  }
423
430
  .px-input--warning.is-ghost .px-input__wrapper:hover::before { background: var(--px-color-warning);
424
431
  }
425
- .px-input--warning.is-ghost .px-input__wrapper:hover {
432
+ .px-input--warning.is-ghost .px-input__wrapper:hover {
426
433
  filter: drop-shadow(var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-color-warning-dark));
427
434
  }
428
435
  .px-input--warning.is-ghost.is-focus .px-input__wrapper::before { background: var(--px-color-warning-dark);
429
436
  }
430
- .px-input--warning.is-ghost.is-focus .px-input__wrapper {
437
+ .px-input--warning.is-ghost.is-focus .px-input__wrapper {
431
438
  filter: drop-shadow(4px 4px 0px var(--px-color-warning-dark));
432
439
  }
433
- .px-input--info.is-ghost .px-input__wrapper {
440
+ .px-input--info.is-ghost .px-input__wrapper {
434
441
  filter: none;
435
442
  }
436
443
  .px-input--info.is-ghost .px-input__wrapper::before { background: transparent;
437
444
  }
438
445
  .px-input--info.is-ghost .px-input__wrapper:hover::before { background: var(--px-color-info);
439
446
  }
440
- .px-input--info.is-ghost .px-input__wrapper:hover {
447
+ .px-input--info.is-ghost .px-input__wrapper:hover {
441
448
  filter: drop-shadow(var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-color-info-dark));
442
449
  }
443
450
  .px-input--info.is-ghost.is-focus .px-input__wrapper::before { background: var(--px-color-info-dark);
444
451
  }
445
- .px-input--info.is-ghost.is-focus .px-input__wrapper {
452
+ .px-input--info.is-ghost.is-focus .px-input__wrapper {
446
453
  filter: drop-shadow(4px 4px 0px var(--px-color-info-dark));
447
454
  }
448
- .px-input--danger.is-ghost .px-input__wrapper {
455
+ .px-input--danger.is-ghost .px-input__wrapper {
449
456
  filter: none;
450
457
  }
451
458
  .px-input--danger.is-ghost .px-input__wrapper::before { background: transparent;
452
459
  }
453
460
  .px-input--danger.is-ghost .px-input__wrapper:hover::before { background: var(--px-color-danger);
454
461
  }
455
- .px-input--danger.is-ghost .px-input__wrapper:hover {
462
+ .px-input--danger.is-ghost .px-input__wrapper:hover {
456
463
  filter: drop-shadow(var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-color-danger-dark));
457
464
  }
458
465
  .px-input--danger.is-ghost.is-focus .px-input__wrapper::before { background: var(--px-color-danger-dark);
459
466
  }
460
- .px-input--danger.is-ghost.is-focus .px-input__wrapper {
467
+ .px-input--danger.is-ghost.is-focus .px-input__wrapper {
461
468
  filter: drop-shadow(4px 4px 0px var(--px-color-danger-dark));
462
- }
469
+ }
463
470
  /* Prefix and Suffix */
464
- .px-input__prefix,
465
- .px-input__suffix {
466
- display: inline-flex;
467
- align-items: center;
468
- white-space: nowrap;
469
- flex-shrink: 0;
470
- flex-wrap: nowrap;
471
- height: 100%;
472
- text-align: center;
473
- color: var(--px-input-icon-color);
471
+ .px-input__prefix,
472
+ .px-input__suffix {
473
+ display: inline-flex;
474
+ align-items: center;
475
+ white-space: nowrap;
476
+ flex-shrink: 0;
477
+ flex-wrap: nowrap;
478
+ height: 100%;
479
+ text-align: center;
480
+ color: var(--px-input-icon-color);
474
481
  transition: none;
475
482
  }
476
- .px-input__prefix > :first-child {
483
+ .px-input__prefix > :first-child {
477
484
  margin-left: 0 !important;
478
485
  }
479
- .px-input__prefix > :last-child {
486
+ .px-input__prefix > :last-child {
480
487
  margin-right: 8px !important;
481
488
  }
482
- .px-input__suffix > :first-child {
489
+ .px-input__suffix > :first-child {
483
490
  margin-left: 8px !important;
484
491
  }
485
- .px-input__suffix > :last-child {
492
+ .px-input__suffix > :last-child {
486
493
  margin-right: 0 !important;
487
- }
494
+ }
488
495
  /* Prepend and Append - Pixel style */
489
- .px-input__prepend,
490
- .px-input__append {
491
- background: transparent;
492
- color: var(--px-text-color-secondary);
493
- position: relative;
494
- display: inline-flex;
495
- align-items: center;
496
- justify-content: center;
497
- min-height: 100%;
498
- height: var(--px-input-height);
499
- padding: 0 16px;
500
- white-space: nowrap;
501
- border: none;
502
- font-family: var(--px-font-family);
503
- box-sizing: border-box;
504
-
505
- /* Pixel shadow via drop-shadow */
506
- filter: drop-shadow(
507
- var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-input-shadow-color)
496
+ .px-input__prepend,
497
+ .px-input__append {
498
+ background: transparent;
499
+ color: var(--px-text-color-secondary);
500
+ position: relative;
501
+ display: inline-flex;
502
+ align-items: center;
503
+ justify-content: center;
504
+ min-height: 100%;
505
+ height: var(--px-input-height);
506
+ padding: 0 16px;
507
+ white-space: nowrap;
508
+ border: none;
509
+ font-family: var(--px-font-family);
510
+ box-sizing: border-box;
511
+
512
+ /* Pixel shadow via drop-shadow */
513
+ filter: drop-shadow(
514
+ var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-input-shadow-color)
508
515
  );
509
- }
516
+ }
510
517
  /* Border layer */
511
- .px-input__prepend::before, .px-input__append::before {
512
- content: "";
513
- position: absolute;
514
- inset: 0;
515
- background: var(--px-input-border-color);
518
+ .px-input__prepend::before, .px-input__append::before {
519
+ content: "";
520
+ position: absolute;
521
+ inset: 0;
522
+ background: var(--px-input-border-color);
516
523
  z-index: -1;
517
- }
524
+ }
518
525
  /* Fill layer */
519
- .px-input__prepend::after, .px-input__append::after {
520
- content: "";
521
- position: absolute;
522
- inset: 2px;
523
- background: var(--px-fill-color-dark);
526
+ .px-input__prepend::after, .px-input__append::after {
527
+ content: "";
528
+ position: absolute;
529
+ inset: 2px;
530
+ background: var(--px-fill-color-dark);
524
531
  z-index: -1;
525
- }
532
+ }
526
533
  /* Notched left, straight right */
527
- .px-input__prepend::before,
528
- .px-input__prepend::after {
529
- clip-path: polygon(
530
- 0 4px,
531
- 2px 4px,
532
- 2px 2px,
533
- 4px 2px,
534
- 4px 0,
535
- 100% 0,
536
- 100% 100%,
537
- 4px 100%,
538
- 4px calc(100% - 2px),
539
- 2px calc(100% - 2px),
540
- 2px calc(100% - 4px),
541
- 0 calc(100% - 4px)
534
+ .px-input__prepend::before,
535
+ .px-input__prepend::after {
536
+ clip-path: polygon(
537
+ 0 4px,
538
+ 2px 4px,
539
+ 2px 2px,
540
+ 4px 2px,
541
+ 4px 0,
542
+ 100% 0,
543
+ 100% 100%,
544
+ 4px 100%,
545
+ 4px calc(100% - 2px),
546
+ 2px calc(100% - 2px),
547
+ 2px calc(100% - 4px),
548
+ 0 calc(100% - 4px)
542
549
  );
543
- }
550
+ }
544
551
  /* Straight left, notched right */
545
- .px-input__append::before,
546
- .px-input__append::after {
547
- clip-path: polygon(
548
- 0 0,
549
- calc(100% - 4px) 0,
550
- calc(100% - 4px) 2px,
551
- calc(100% - 2px) 2px,
552
- calc(100% - 2px) 4px,
553
- 100% 4px,
554
- 100% calc(100% - 4px),
555
- calc(100% - 2px) calc(100% - 4px),
556
- calc(100% - 2px) calc(100% - 2px),
557
- calc(100% - 4px) calc(100% - 2px),
558
- calc(100% - 4px) 100%,
559
- 0 100%
552
+ .px-input__append::before,
553
+ .px-input__append::after {
554
+ clip-path: polygon(
555
+ 0 0,
556
+ calc(100% - 4px) 0,
557
+ calc(100% - 4px) 2px,
558
+ calc(100% - 2px) 2px,
559
+ calc(100% - 2px) 4px,
560
+ 100% 4px,
561
+ 100% calc(100% - 4px),
562
+ calc(100% - 2px) calc(100% - 4px),
563
+ calc(100% - 2px) calc(100% - 2px),
564
+ calc(100% - 4px) calc(100% - 2px),
565
+ calc(100% - 4px) 100%,
566
+ 0 100%
560
567
  );
561
- }
568
+ }
562
569
  /* Textarea styles */
563
- .px-input--textarea {
564
- position: relative;
565
- display: inline-block;
566
- width: 100%;
567
- vertical-align: bottom;
570
+ .px-input--textarea {
571
+ position: relative;
572
+ display: inline-block;
573
+ width: 100%;
574
+ vertical-align: bottom;
568
575
  font-size: var(--px-font-size-base);
569
576
  }
570
- .px-textarea__wrapper {
571
- position: relative;
572
- display: block;
573
- resize: vertical;
574
- padding: 8px 12px;
575
- line-height: 1.5;
576
- box-sizing: border-box;
577
- width: 100%;
578
- font-size: inherit;
579
- font-family: var(--px-font-family);
580
- color: var(--px-input-text-color);
581
- background-color: var(--px-input-bg-color);
582
- background: transparent;
583
- border: none;
584
- -webkit-font-smoothing: none;
585
-
586
- /* Pixel shadow via drop-shadow */
587
- filter: drop-shadow(
588
- var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-input-shadow-color)
589
- );
590
-
591
- /* We need a wrapper for the pixel border since textarea can resize */
577
+ .px-textarea__wrapper {
578
+ position: relative;
579
+ display: block;
580
+ resize: vertical;
581
+ padding: 8px 12px;
582
+ line-height: 1.5;
583
+ box-sizing: border-box;
584
+ width: 100%;
585
+ font-size: inherit;
586
+ font-family: var(--px-font-family);
587
+ color: var(--px-input-text-color);
588
+ background-color: var(--px-input-bg-color);
589
+ background: transparent;
590
+ border: none;
591
+ -webkit-font-smoothing: none;
592
+
593
+ /* Pixel shadow via drop-shadow */
594
+ filter: drop-shadow(
595
+ var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-input-shadow-color)
596
+ );
597
+
598
+ /* We need a wrapper for the pixel border since textarea can resize */
592
599
  outline: none;
593
600
  }
594
- .px-textarea__wrapper:hover + .px-textarea__border::before {
601
+ .px-textarea__wrapper:hover + .px-textarea__border::before {
595
602
  background: var(--px-input-hover-border-color);
596
603
  }
597
- .px-textarea__wrapper:focus + .px-textarea__border::before {
604
+ .px-textarea__wrapper:focus + .px-textarea__border::before {
598
605
  background: var(--px-input-focus-border-color);
599
606
  }
600
- .px-textarea__wrapper:focus {
607
+ .px-textarea__wrapper:focus {
601
608
  filter: drop-shadow(4px 4px 0px var(--px-input-focus-shadow-color));
602
609
  }
603
- .px-textarea__wrapper::placeholder {
610
+ .px-textarea__wrapper::placeholder {
604
611
  color: var(--px-input-placeholder-color);
605
- }
612
+ }
606
613
  /* For textarea, we need a special approach since it can resize */
607
- .px-textarea__wrapper {
608
- border: 2px solid var(--px-input-border-color);
609
- background: var(--px-input-bg-color);
610
-
611
- /* Simplified pixel corners using clip-path on the textarea itself */
612
- clip-path: polygon(
613
- 0 4px,
614
- 2px 4px,
615
- 2px 2px,
616
- 4px 2px,
617
- 4px 0,
618
- calc(100% - 4px) 0,
619
- calc(100% - 4px) 2px,
620
- calc(100% - 2px) 2px,
621
- calc(100% - 2px) 4px,
622
- 100% 4px,
623
- 100% calc(100% - 4px),
624
- calc(100% - 2px) calc(100% - 4px),
625
- calc(100% - 2px) calc(100% - 2px),
626
- calc(100% - 4px) calc(100% - 2px),
627
- calc(100% - 4px) 100%,
628
- 4px 100%,
629
- 4px calc(100% - 2px),
630
- 2px calc(100% - 2px),
631
- 2px calc(100% - 4px),
632
- 0 calc(100% - 4px)
614
+ .px-textarea__wrapper {
615
+ border: 2px solid var(--px-input-border-color);
616
+ background: var(--px-input-bg-color);
617
+
618
+ /* Simplified pixel corners using clip-path on the textarea itself */
619
+ clip-path: polygon(
620
+ 0 4px,
621
+ 2px 4px,
622
+ 2px 2px,
623
+ 4px 2px,
624
+ 4px 0,
625
+ calc(100% - 4px) 0,
626
+ calc(100% - 4px) 2px,
627
+ calc(100% - 2px) 2px,
628
+ calc(100% - 2px) 4px,
629
+ 100% 4px,
630
+ 100% calc(100% - 4px),
631
+ calc(100% - 2px) calc(100% - 4px),
632
+ calc(100% - 2px) calc(100% - 2px),
633
+ calc(100% - 4px) calc(100% - 2px),
634
+ calc(100% - 4px) 100%,
635
+ 4px 100%,
636
+ 4px calc(100% - 2px),
637
+ 2px calc(100% - 2px),
638
+ 2px calc(100% - 4px),
639
+ 0 calc(100% - 4px)
633
640
  );
634
641
  }
635
- .px-textarea__wrapper:hover {
642
+ .px-textarea__wrapper:hover {
636
643
  border-color: var(--px-input-hover-border-color);
637
644
  }
638
- .px-textarea__wrapper:focus {
645
+ .px-textarea__wrapper:focus {
639
646
  border-color: var(--px-input-focus-border-color);
640
647
  }