@prokodo/ui 0.1.15 → 1.0.1

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 (283) hide show
  1. package/LICENSE +187 -26
  2. package/NOTICE +24 -0
  3. package/README.md +32 -302
  4. package/dist/components/RTE/RTE.css +180 -68
  5. package/dist/components/RTE/RTE.module.css +180 -68
  6. package/dist/components/RTE/RTE.module.scss.js +10 -0
  7. package/dist/components/RTE/RTE.view.js +5 -1
  8. package/dist/components/accordion/Accordion.css +120 -67
  9. package/dist/components/accordion/Accordion.module.css +120 -67
  10. package/dist/components/accordion/Accordion.module.scss.js +12 -5
  11. package/dist/components/accordion/Accordion.view.js +3 -3
  12. package/dist/components/autocomplete/Autocomplete.css +111 -95
  13. package/dist/components/autocomplete/Autocomplete.module.css +111 -95
  14. package/dist/components/autocomplete/Autocomplete.module.scss.js +11 -4
  15. package/dist/components/autocomplete/Autocomplete.view.js +3 -1
  16. package/dist/components/avatar/Avatar.css +11 -8
  17. package/dist/components/avatar/Avatar.module.css +11 -8
  18. package/dist/components/avatar/Avatar.module.scss.js +1 -0
  19. package/dist/components/avatar/Avatar.view.js +5 -5
  20. package/dist/components/button/Button.client.js +12 -16
  21. package/dist/components/button/Button.css +85 -137
  22. package/dist/components/button/Button.module.css +85 -137
  23. package/dist/components/button/Button.module.scss.js +15 -19
  24. package/dist/components/button/Button.view.js +6 -2
  25. package/dist/components/calendly/Calendly.css +132 -0
  26. package/dist/components/calendly/Calendly.module.css +132 -0
  27. package/dist/components/calendly/Calendly.module.scss.js +6 -0
  28. package/dist/components/calendly/Calendly.view.js +12 -6
  29. package/dist/components/card/Card.client.js +6 -1
  30. package/dist/components/card/Card.css +67 -32
  31. package/dist/components/card/Card.module.css +67 -32
  32. package/dist/components/card/Card.module.scss.js +8 -2
  33. package/dist/components/card/Card.view.js +3 -3
  34. package/dist/components/carousel/Carousel.client.js +2 -4
  35. package/dist/components/carousel/Carousel.css +8 -4
  36. package/dist/components/carousel/Carousel.module.css +8 -4
  37. package/dist/components/checkbox/Checkbox.css +100 -79
  38. package/dist/components/checkbox/Checkbox.module.css +100 -79
  39. package/dist/components/checkbox/Checkbox.module.scss.js +11 -4
  40. package/dist/components/checkbox/Checkbox.view.js +3 -1
  41. package/dist/components/checkbox-group/CheckboxGroup.css +39 -6
  42. package/dist/components/checkbox-group/CheckboxGroup.module.css +39 -6
  43. package/dist/components/checkbox-group/CheckboxGroup.module.scss.js +8 -0
  44. package/dist/components/checkbox-group/CheckboxGroup.view.js +3 -1
  45. package/dist/components/chip/Chip.css +185 -61
  46. package/dist/components/chip/Chip.module.css +185 -61
  47. package/dist/components/chip/Chip.module.scss.js +13 -17
  48. package/dist/components/chip/Chip.view.js +3 -4
  49. package/dist/components/datePicker/DatePicker.client.js +211 -66
  50. package/dist/components/datePicker/DatePicker.css +940 -0
  51. package/dist/components/datePicker/DatePicker.module.css +940 -0
  52. package/dist/components/datePicker/DatePicker.module.scss.js +62 -0
  53. package/dist/components/datePicker/DatePicker.server.js +31 -1
  54. package/dist/components/datePicker/DatePicker.utils.js +103 -0
  55. package/dist/components/datePicker/DatePicker.view.js +113 -41
  56. package/dist/components/datePicker/DatePickerDialog.view.js +291 -0
  57. package/dist/components/dialog/Dialog.css +107 -132
  58. package/dist/components/dialog/Dialog.module.css +107 -132
  59. package/dist/components/dialog/Dialog.module.scss.js +13 -8
  60. package/dist/components/drawer/Drawer.css +8 -8
  61. package/dist/components/drawer/Drawer.module.css +8 -8
  62. package/dist/components/dynamic-list/DynamicList.css +20 -12
  63. package/dist/components/dynamic-list/DynamicList.module.css +20 -12
  64. package/dist/components/dynamic-list/DynamicList.module.scss.js +1 -0
  65. package/dist/components/dynamic-list/DynamicList.view.js +78 -46
  66. package/dist/components/form/Form.view.js +3 -3
  67. package/dist/components/form/FormField.client.js +51 -2
  68. package/dist/components/form/FormField.server.js +10 -4
  69. package/dist/components/form/FormResponse.js +2 -2
  70. package/dist/components/grid/Grid.css +1 -1
  71. package/dist/components/grid/Grid.module.css +1 -1
  72. package/dist/components/headline/Headline.css +16 -16
  73. package/dist/components/headline/Headline.js +5 -6
  74. package/dist/components/headline/Headline.module.css +16 -16
  75. package/dist/components/headline/Headline.module.scss.js +1 -1
  76. package/dist/components/headline/Headline.variants.js +4 -1
  77. package/dist/components/icon/Icon.css +14 -14
  78. package/dist/components/icon/Icon.module.css +14 -14
  79. package/dist/components/image/Image.css +4 -3
  80. package/dist/components/image/Image.module.css +4 -3
  81. package/dist/components/image-text/ImageText.css +43 -14
  82. package/dist/components/image-text/ImageText.js +61 -53
  83. package/dist/components/image-text/ImageText.module.css +43 -14
  84. package/dist/components/image-text/ImageText.module.scss.js +11 -2
  85. package/dist/components/input/Input.css +197 -115
  86. package/dist/components/input/Input.module.css +197 -115
  87. package/dist/components/input/Input.module.scss.js +19 -3
  88. package/dist/components/input/Input.view.js +87 -57
  89. package/dist/components/inputOTP/InputOTP.client.js +165 -0
  90. package/dist/components/inputOTP/InputOTP.css +155 -7
  91. package/dist/components/inputOTP/InputOTP.js +10 -195
  92. package/dist/components/inputOTP/InputOTP.lazy.js +12 -0
  93. package/dist/components/inputOTP/InputOTP.module.css +155 -7
  94. package/dist/components/inputOTP/InputOTP.module.scss.js +14 -0
  95. package/dist/components/inputOTP/InputOTP.server.js +32 -0
  96. package/dist/components/inputOTP/InputOTP.view.js +117 -0
  97. package/dist/components/label/Label.css +33 -14
  98. package/dist/components/label/Label.js +37 -35
  99. package/dist/components/label/Label.module.css +33 -14
  100. package/dist/components/label/Label.module.scss.js +9 -2
  101. package/dist/components/link/Link.css +13 -13
  102. package/dist/components/link/Link.module.css +13 -13
  103. package/dist/components/link/Link.view.js +14 -12
  104. package/dist/components/list/List.css +71 -32
  105. package/dist/components/list/List.js +25 -8
  106. package/dist/components/list/List.module.css +71 -32
  107. package/dist/components/list/List.module.scss.js +1 -1
  108. package/dist/components/loading/Loading.view.js +22 -2
  109. package/dist/components/lottie/Lottie.css +16 -0
  110. package/dist/components/lottie/Lottie.module.css +16 -0
  111. package/dist/components/lottie/Lottie.module.scss.js +6 -2
  112. package/dist/components/map/Map.css +130 -0
  113. package/dist/components/map/Map.js +5 -2
  114. package/dist/components/map/Map.module.css +130 -0
  115. package/dist/components/map/Map.module.scss.js +6 -0
  116. package/dist/components/pagination/Pagination.css +127 -11
  117. package/dist/components/pagination/Pagination.module.css +127 -11
  118. package/dist/components/pagination/Pagination.module.scss.js +12 -4
  119. package/dist/components/pagination/Pagination.view.js +13 -1
  120. package/dist/components/post-item/PostItem.css +16 -16
  121. package/dist/components/post-item/PostItem.module.css +16 -16
  122. package/dist/components/post-item/PostItem.view.js +14 -5
  123. package/dist/components/post-teaser/PostTeaser.css +13 -13
  124. package/dist/components/post-teaser/PostTeaser.module.css +13 -13
  125. package/dist/components/post-teaser/PostTeaser.view.js +10 -3
  126. package/dist/components/post-widget/PostWidget.css +6 -8
  127. package/dist/components/post-widget/PostWidget.module.css +6 -8
  128. package/dist/components/post-widget/PostWidget.view.js +12 -5
  129. package/dist/components/post-widget-carousel/PostWidgetCarousel.css +7 -7
  130. package/dist/components/post-widget-carousel/PostWidgetCarousel.module.css +7 -7
  131. package/dist/components/post-widget-carousel/PostWidgetCarousel.view.js +30 -13
  132. package/dist/components/progressBar/ProgressBar.css +4 -4
  133. package/dist/components/progressBar/ProgressBar.module.css +4 -4
  134. package/dist/components/progressBar/ProgressBar.view.js +2 -2
  135. package/dist/components/quote/Quote.css +21 -6
  136. package/dist/components/quote/Quote.js +5 -5
  137. package/dist/components/quote/Quote.module.css +21 -6
  138. package/dist/components/quote/Quote.module.scss.js +5 -0
  139. package/dist/components/rating/Rating.css +34 -21
  140. package/dist/components/rating/Rating.module.css +34 -21
  141. package/dist/components/rating/Rating.module.scss.js +8 -0
  142. package/dist/components/rating/Rating.view.js +4 -2
  143. package/dist/components/rich-text/RichText.client.js +3 -3
  144. package/dist/components/rich-text/RichText.css +47 -31
  145. package/dist/components/rich-text/RichText.module.css +47 -31
  146. package/dist/components/rich-text/RichText.server.js +1 -1
  147. package/dist/components/select/Select.client.js +154 -1
  148. package/dist/components/select/Select.css +542 -221
  149. package/dist/components/select/Select.module.css +542 -221
  150. package/dist/components/select/Select.module.scss.js +57 -14
  151. package/dist/components/select/Select.view.js +40 -14
  152. package/dist/components/sidenav/SideNav.client.js +24 -1
  153. package/dist/components/sidenav/SideNav.css +89 -21
  154. package/dist/components/sidenav/SideNav.module.css +89 -21
  155. package/dist/components/sidenav/SideNav.module.scss.js +6 -1
  156. package/dist/components/sidenav/SideNav.view.js +69 -14
  157. package/dist/components/skeleton/Skeleton.css +7 -7
  158. package/dist/components/skeleton/Skeleton.module.css +7 -7
  159. package/dist/components/slider/Slider.css +177 -112
  160. package/dist/components/slider/Slider.module.css +177 -112
  161. package/dist/components/slider/Slider.module.scss.js +11 -2
  162. package/dist/components/slider/Slider.view.js +113 -101
  163. package/dist/components/snackbar/Snackbar.css +125 -64
  164. package/dist/components/snackbar/Snackbar.module.css +125 -64
  165. package/dist/components/snackbar/Snackbar.module.scss.js +11 -13
  166. package/dist/components/snackbar/Snackbar.view.js +2 -2
  167. package/dist/components/stepper/Stepper.client.js +21 -6
  168. package/dist/components/stepper/Stepper.css +46 -11
  169. package/dist/components/stepper/Stepper.module.css +46 -11
  170. package/dist/components/stepper/Stepper.module.scss.js +7 -0
  171. package/dist/components/stepper/Stepper.server.js +2 -0
  172. package/dist/components/stepper/Stepper.view.js +6 -1
  173. package/dist/components/switch/Switch.css +108 -84
  174. package/dist/components/switch/Switch.module.css +108 -84
  175. package/dist/components/switch/Switch.module.scss.js +14 -12
  176. package/dist/components/switch/Switch.view.js +9 -8
  177. package/dist/components/table/Table.css +19 -14
  178. package/dist/components/table/Table.module.css +19 -14
  179. package/dist/components/tabs/Tabs.css +53 -27
  180. package/dist/components/tabs/Tabs.module.css +53 -27
  181. package/dist/components/tabs/Tabs.module.scss.js +7 -2
  182. package/dist/components/tabs/Tabs.view.js +4 -2
  183. package/dist/components/teaser/Teaser.css +5 -5
  184. package/dist/components/teaser/Teaser.js +4 -4
  185. package/dist/components/teaser/Teaser.module.css +5 -5
  186. package/dist/components/tooltip/Tooltip.client.js +14 -4
  187. package/dist/components/tooltip/Tooltip.css +46 -9
  188. package/dist/components/tooltip/Tooltip.module.css +46 -9
  189. package/dist/components/tooltip/Tooltip.module.scss.js +5 -1
  190. package/dist/components/tooltip/Tooltip.view.js +6 -1
  191. package/dist/constants/project.js +1 -1
  192. package/dist/theme.css +3269 -1588
  193. package/dist/tsconfig.build.tsbuildinfo +1 -1
  194. package/dist/types/components/RTE/RTE.d.ts +5 -0
  195. package/dist/types/components/RTE/RTE.lazy.d.ts +5 -0
  196. package/dist/types/components/RTE/RTE.view.d.ts +1 -1
  197. package/dist/types/components/accordion/Accordion.d.ts +1 -1
  198. package/dist/types/components/accordion/Accordion.lazy.d.ts +1 -1
  199. package/dist/types/components/accordion/Accordion.model.d.ts +1 -1
  200. package/dist/types/components/accordion/Accordion.view.d.ts +1 -1
  201. package/dist/types/components/autocomplete/Autocomplete.model.d.ts +2 -0
  202. package/dist/types/components/autocomplete/Autocomplete.view.d.ts +1 -1
  203. package/dist/types/components/avatar/Avatar.d.ts +1 -1
  204. package/dist/types/components/avatar/Avatar.lazy.d.ts +1 -1
  205. package/dist/types/components/avatar/Avatar.model.d.ts +1 -1
  206. package/dist/types/components/avatar/Avatar.view.d.ts +1 -1
  207. package/dist/types/components/calendly/Calendly.view.d.ts +1 -1
  208. package/dist/types/components/card/Card.model.d.ts +1 -1
  209. package/dist/types/components/card/Card.view.d.ts +1 -1
  210. package/dist/types/components/checkbox/Checkbox.d.ts +1 -0
  211. package/dist/types/components/checkbox/Checkbox.lazy.d.ts +1 -0
  212. package/dist/types/components/checkbox/Checkbox.model.d.ts +2 -0
  213. package/dist/types/components/checkbox/Checkbox.view.d.ts +1 -1
  214. package/dist/types/components/checkbox-group/CheckboxGroup.model.d.ts +2 -0
  215. package/dist/types/components/checkbox-group/CheckboxGroup.view.d.ts +1 -1
  216. package/dist/types/components/datePicker/DatePicker.model.d.ts +70 -1
  217. package/dist/types/components/datePicker/DatePicker.utils.d.ts +10 -0
  218. package/dist/types/components/datePicker/DatePicker.view.d.ts +7 -4
  219. package/dist/types/components/datePicker/DatePickerDialog.view.d.ts +4 -0
  220. package/dist/types/components/dynamic-list/DynamicList.model.d.ts +2 -0
  221. package/dist/types/components/dynamic-list/DynamicList.view.d.ts +1 -1
  222. package/dist/types/components/form/Form.d.ts +1 -1
  223. package/dist/types/components/form/Form.lazy.d.ts +1 -1
  224. package/dist/types/components/form/Form.model.d.ts +19 -4
  225. package/dist/types/components/form/FormField.client.d.ts +2 -2
  226. package/dist/types/components/form/FormField.d.ts +1 -1
  227. package/dist/types/components/form/FormField.lazy.d.ts +1 -1
  228. package/dist/types/components/form/FormField.server.d.ts +2 -2
  229. package/dist/types/components/headline/Headline.model.d.ts +1 -1
  230. package/dist/types/components/input/Input.model.d.ts +8 -1
  231. package/dist/types/components/input/Input.view.d.ts +1 -1
  232. package/dist/types/components/inputOTP/InputOTP.client.d.ts +4 -0
  233. package/dist/types/components/inputOTP/InputOTP.d.ts +10 -3
  234. package/dist/types/components/inputOTP/InputOTP.lazy.d.ts +11 -0
  235. package/dist/types/components/inputOTP/InputOTP.model.d.ts +10 -0
  236. package/dist/types/components/inputOTP/InputOTP.server.d.ts +3 -0
  237. package/dist/types/components/inputOTP/InputOTP.view.d.ts +3 -0
  238. package/dist/types/components/inputOTP/index.d.ts +1 -1
  239. package/dist/types/components/label/Label.model.d.ts +2 -0
  240. package/dist/types/components/link/Link.model.d.ts +1 -1
  241. package/dist/types/components/link/Link.view.d.ts +1 -1
  242. package/dist/types/components/list/List.d.ts +1 -1
  243. package/dist/types/components/list/List.model.d.ts +14 -5
  244. package/dist/types/components/list/index.d.ts +1 -1
  245. package/dist/types/components/loading/Loading.model.d.ts +2 -0
  246. package/dist/types/components/loading/index.d.ts +1 -1
  247. package/dist/types/components/pagination/Pagination.model.d.ts +2 -0
  248. package/dist/types/components/pagination/Pagination.view.d.ts +1 -1
  249. package/dist/types/components/post-item/PostItem.model.d.ts +2 -1
  250. package/dist/types/components/post-teaser/PostTeaser.model.d.ts +2 -1
  251. package/dist/types/components/post-widget/PostWidget.view.d.ts +1 -1
  252. package/dist/types/components/progressBar/ProgressBar.d.ts +1 -1
  253. package/dist/types/components/progressBar/ProgressBar.lazy.d.ts +1 -1
  254. package/dist/types/components/progressBar/ProgressBar.model.d.ts +3 -2
  255. package/dist/types/components/progressBar/ProgressBar.view.d.ts +1 -1
  256. package/dist/types/components/progressBar/index.d.ts +1 -1
  257. package/dist/types/components/quote/Quote.model.d.ts +1 -1
  258. package/dist/types/components/rating/Rating.model.d.ts +2 -0
  259. package/dist/types/components/rich-text/RichText.client.d.ts +1 -1
  260. package/dist/types/components/rich-text/RichText.d.ts +1 -1
  261. package/dist/types/components/rich-text/RichText.lazy.d.ts +1 -1
  262. package/dist/types/components/rich-text/RichText.model.d.ts +1 -1
  263. package/dist/types/components/select/Select.model.d.ts +2 -0
  264. package/dist/types/components/select/Select.view.d.ts +1 -1
  265. package/dist/types/components/sidenav/SideNav.client.d.ts +1 -1
  266. package/dist/types/components/sidenav/SideNav.model.d.ts +16 -2
  267. package/dist/types/components/sidenav/SideNav.view.d.ts +1 -1
  268. package/dist/types/components/slider/Slider.model.d.ts +2 -0
  269. package/dist/types/components/snackbar/Snackbar.model.d.ts +3 -2
  270. package/dist/types/components/snackbar/Snackbar.view.d.ts +3 -2
  271. package/dist/types/components/snackbar/index.d.ts +1 -1
  272. package/dist/types/components/stepper/Stepper.d.ts +1 -0
  273. package/dist/types/components/stepper/Stepper.lazy.d.ts +1 -0
  274. package/dist/types/components/stepper/Stepper.model.d.ts +3 -0
  275. package/dist/types/components/stepper/Stepper.server.d.ts +1 -1
  276. package/dist/types/components/switch/Switch.d.ts +2 -2
  277. package/dist/types/components/switch/Switch.lazy.d.ts +2 -2
  278. package/dist/types/components/switch/Switch.model.d.ts +3 -4
  279. package/dist/types/components/tabs/Tabs.model.d.ts +2 -0
  280. package/dist/types/components/tabs/Tabs.view.d.ts +1 -1
  281. package/dist/types/components/teaser/Teaser.model.d.ts +1 -1
  282. package/dist/types/components/tooltip/Tooltip.model.d.ts +2 -0
  283. package/package.json +37 -22
@@ -125,8 +125,23 @@
125
125
  * This mixin specifies basic text-styles for components that render a richtext
126
126
  * content.
127
127
  */
128
- /* fade-in / out for the popup ------------------------------------------------ */
129
- @keyframes fade-in {
128
+ @keyframes selectBorderShift {
129
+ from {
130
+ background-position: 0 0, 0 0, 0 0;
131
+ }
132
+ to {
133
+ background-position: 0 0, 200% 0, 0 0;
134
+ }
135
+ }
136
+ @keyframes selectNotchAnimate {
137
+ 0%, 100% {
138
+ border-color: var(--pk-select-gradient-from);
139
+ }
140
+ 50% {
141
+ border-color: var(--pk-select-gradient-to);
142
+ }
143
+ }
144
+ @keyframes selectFadeIn {
130
145
  from {
131
146
  opacity: 0;
132
147
  }
@@ -134,126 +149,165 @@
134
149
  opacity: 1;
135
150
  }
136
151
  }
137
- @keyframes fade-out {
152
+ @keyframes selectSlideUp {
138
153
  from {
139
- opacity: 1;
154
+ transform: translateY(100%);
155
+ opacity: 0.8;
140
156
  }
141
157
  to {
142
- opacity: 0;
158
+ transform: translateY(0);
159
+ opacity: 1;
143
160
  }
144
161
  }
145
162
  .prokodo-Select {
146
163
  position: relative;
147
- /* ───────────────── field (container for button + listbox) */
148
- /* ───────────────── toggle button */
149
- /* ───────────────── listbox (popup) */
150
- /* ───────────────── option item */
151
- /* ───────────────── checkbox for multi-select */
152
- /* ───────────────── helper / error text */
164
+ display: flex;
165
+ flex-direction: column;
166
+ }
167
+ .prokodo-Select--primary {
168
+ --pk-select-shadow-color-focus: color-mix(in srgb, var(--pk-color-brand) 30%, transparent);
169
+ --pk-select-gradient-from: var(--pk-color-brand);
170
+ --pk-select-gradient-to: var(--pk-color-accent);
171
+ --pk-select-label-fg: var(--pk-color-brand);
172
+ --pk-select-item-hover-bg: color-mix(in srgb, var(--pk-color-brand) 10%, var(--pk-select-bg));
173
+ --pk-select-item-active-bg: color-mix(in srgb, var(--pk-color-brand) 18%, var(--pk-select-bg));
174
+ }
175
+ .prokodo-Select--secondary {
176
+ --pk-select-shadow-color-focus: color-mix(in srgb, var(--pk-color-accent) 30%, transparent);
177
+ --pk-select-gradient-from: var(--pk-color-accent);
178
+ --pk-select-gradient-to: var(--pk-color-brand);
179
+ --pk-select-label-fg: var(--pk-color-accent);
180
+ --pk-select-item-hover-bg: color-mix(in srgb, var(--pk-color-accent) 10%, var(--pk-select-bg));
181
+ --pk-select-item-active-bg: color-mix(in srgb, var(--pk-color-accent) 18%, var(--pk-select-bg));
182
+ }
183
+ .prokodo-Select--success {
184
+ --pk-select-shadow-color-focus: color-mix(in srgb, var(--pk-color-success) 30%, transparent);
185
+ --pk-select-gradient-from: var(--pk-color-success);
186
+ --pk-select-gradient-to: #10CCB8;
187
+ --pk-select-label-fg: var(--pk-color-success);
188
+ --pk-select-item-hover-bg: color-mix(in srgb, var(--pk-color-success) 10%, var(--pk-select-bg));
189
+ --pk-select-item-active-bg: color-mix(in srgb, var(--pk-color-success) 18%, var(--pk-select-bg));
190
+ }
191
+ .prokodo-Select--warning {
192
+ --pk-select-shadow-color-focus: color-mix(in srgb, var(--pk-color-warning) 30%, transparent);
193
+ --pk-select-gradient-from: var(--pk-color-warning);
194
+ --pk-select-gradient-to: #f7cc6a;
195
+ --pk-select-label-fg: var(--pk-color-warning);
196
+ --pk-select-item-hover-bg: color-mix(in srgb, var(--pk-color-warning) 10%, var(--pk-select-bg));
197
+ --pk-select-item-active-bg: color-mix(in srgb, var(--pk-color-warning) 18%, var(--pk-select-bg));
198
+ }
199
+ .prokodo-Select--error {
200
+ --pk-select-shadow-color-focus: color-mix(in srgb, var(--pk-color-error) 30%, transparent);
201
+ --pk-select-gradient-from: var(--pk-color-error);
202
+ --pk-select-gradient-to: #ff6b6b;
203
+ --pk-select-label-fg: var(--pk-color-error);
204
+ --pk-select-item-hover-bg: color-mix(in srgb, var(--pk-color-error) 10%, var(--pk-select-bg));
205
+ --pk-select-item-active-bg: color-mix(in srgb, var(--pk-color-error) 18%, var(--pk-select-bg));
206
+ }
207
+ .prokodo-Select--info, .prokodo-Select--inherit, .prokodo-Select--white {
208
+ --pk-select-shadow-color-focus: rgba(0, 0, 0, 0.1);
209
+ --pk-select-gradient-from: var(--pk-color-muted);
210
+ --pk-select-gradient-to: var(--pk-color-border);
211
+ --pk-select-label-fg: var(--pk-color-muted);
212
+ --pk-select-item-hover-bg: color-mix(in srgb, var(--pk-color-muted) 10%, var(--pk-select-bg));
213
+ --pk-select-item-active-bg: color-mix(in srgb, var(--pk-color-muted) 18%, var(--pk-select-bg));
214
+ }
215
+ html[data-theme="dark"] .prokodo-Select--info, [data-theme="dark"] .prokodo-Select--info, .pk-theme-dark .prokodo-Select--info, html[data-theme="dark"] .prokodo-Select--inherit, [data-theme="dark"] .prokodo-Select--inherit, .pk-theme-dark .prokodo-Select--inherit, html[data-theme="dark"] .prokodo-Select--white, [data-theme="dark"] .prokodo-Select--white, .pk-theme-dark .prokodo-Select--white {
216
+ --pk-select-gradient-from: var(--pk-palette-grey-100);
217
+ --pk-select-gradient-to: var(--pk-palette-grey-200);
218
+ --pk-select-label-fg: var(--pk-palette-grey-200);
219
+ }
220
+ html[data-theme="dark"] .prokodo-Select, [data-theme="dark"] .prokodo-Select, .pk-theme-dark .prokodo-Select {
221
+ --pk-select-item-hover-bg: color-mix(in srgb, var(--pk-select-gradient-from) 15%, var(--pk-select-bg));
222
+ --pk-select-item-active-bg: color-mix(in srgb, var(--pk-select-gradient-from) 25%, var(--pk-select-bg));
223
+ --pk-select-fg-placeholder: var(--pk-palette-grey-400);
153
224
  }
154
225
  .prokodo-Select--fullWidth {
155
226
  width: 100%;
156
227
  }
157
228
  .prokodo-Select__label {
158
- position: relative;
229
+ --pk-label-gradient-from: var(--pk-select-gradient-from);
230
+ --pk-label-gradient-to: var(--pk-select-gradient-to);
231
+ position: absolute;
232
+ left: var(--pk-select-padding-x);
233
+ top: 50%;
234
+ transform: translateY(-50%) scale(1);
159
235
  transform-origin: top left;
160
- padding-bottom: 0.5rem;
236
+ transition: transform var(--pk-timing-normal) ease, color var(--pk-timing-normal) ease;
161
237
  font-size: 1rem;
162
- color: var(--color-primary-500);
163
- z-index: 1;
238
+ color: var(--pk-color-muted);
239
+ z-index: 2;
164
240
  pointer-events: none;
165
241
  }
166
- @media screen and (min-width: 960px) {
167
- .prokodo-Select__label {
168
- position: absolute;
169
- left: 1.5rem;
170
- top: 1.75rem;
171
- padding: 0 0.25rem;
172
- /* start centered vertically, at full size */
173
- transform: translateY(-150%) scale(0.75);
174
- background-color: var(--color-white);
175
- display: -webkit-box;
176
- -webkit-line-clamp: 1;
177
- -webkit-box-orient: vertical;
178
- overflow: hidden;
179
- }
180
- html[data-theme=dark] .prokodo-Select__label {
181
- background-color: rgb(16, 19, 27);
182
- }
242
+ .prokodo-Select__label--is-focused {
243
+ top: 0;
244
+ transform: translateY(-50%) scale(0.75);
245
+ color: var(--pk-select-label-fg);
183
246
  }
184
247
  .prokodo-Select__field {
185
248
  position: relative;
186
- box-shadow: var(--elevation-1);
187
- border-radius: 1.5rem;
188
- /* ‘expanded’ state is now driven by a class your JS toggles */
249
+ display: grid;
189
250
  }
190
- .prokodo-Select__field--expanded {
191
- box-shadow: none;
192
- z-index: 100;
251
+ .prokodo-Select__field:hover .prokodo-Select__notch {
252
+ animation: selectNotchAnimate 2s linear infinite;
253
+ border-color: var(--pk-select-gradient-from);
193
254
  }
194
- .prokodo-Select__button {
255
+ .prokodo-Select__field:has(.prokodo-Select__button--expanded) .prokodo-Select__notch {
256
+ animation: none;
257
+ border-color: var(--pk-select-label-fg);
258
+ }
259
+ .prokodo-Select__sizer {
260
+ grid-row: 1;
261
+ grid-column: 1;
262
+ visibility: hidden;
263
+ pointer-events: none;
264
+ height: 0;
265
+ overflow: hidden;
195
266
  box-sizing: border-box;
196
- width: calc(100% - 0.25rem + 4px);
197
- padding: 0;
267
+ border: 2px solid transparent;
268
+ padding: 0 var(--pk-select-padding-x);
269
+ line-height: 1.5rem;
270
+ font-weight: 400;
271
+ font-size: 1.125rem;
272
+ font-family: var(--font-secondary), -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
273
+ font-style: normal;
274
+ line-height: 1.55;
275
+ letter-spacing: 0.03em;
276
+ text-transform: none;
198
277
  text-align: left;
199
- cursor: pointer;
200
- border: none;
201
- color: var(--color-grey-900);
202
- border-radius: 1.5rem;
203
- position: relative;
204
- background: var(--gradient-border-7);
205
- -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
206
- mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
207
- -webkit-mask-composite: source-over;
208
- mask-composite: add;
209
- /* hover / focus */
210
- /* open state — JS toggles .Select__button--expanded **and**
211
- .Select__field--expanded plus aria-expanded="true" */
212
- /* caret / icon (if you still have one) */
213
- /* inner text */
214
- }
215
- .prokodo-Select__button:hover {
216
- background: var(--gradient-border-4);
217
- }
218
- .prokodo-Select__button:focus {
219
- outline: 0;
220
- background: var(--gradient-border-4);
278
+ text-decoration: none;
221
279
  }
222
- .prokodo-Select__button:disabled {
223
- color: var(--color-grey-700);
224
- cursor: default;
225
- background: var(--gradient-border-8);
280
+ @media screen and (min-width: 480px) {
281
+ .prokodo-Select__sizer {
282
+ font-size: 1rem;
283
+ }
226
284
  }
227
- .prokodo-Select__button:disabled:hover {
228
- background: var(--gradient-border-8);
285
+ @media screen and (min-width: 960px) {
286
+ .prokodo-Select__sizer {
287
+ font-size: 1rem;
288
+ }
229
289
  }
230
- .prokodo-Select__button--expanded {
231
- border-top-left-radius: 1.6875rem;
232
- border-top-right-radius: 1.6875rem;
233
- border-bottom-left-radius: 0;
234
- border-bottom-right-radius: 0;
235
- background: var(--gradient-border-4);
236
- }
237
- .prokodo-Select__button--expanded > .Select__button__inner {
238
- border-top-left-radius: 1.5625rem;
239
- border-top-right-radius: 1.5625rem;
240
- border-bottom-left-radius: 0;
241
- border-bottom-right-radius: 0;
242
- }
243
- .prokodo-Select__button > svg {
244
- position: absolute;
245
- top: 0;
246
- right: 10px;
247
- font-size: 1rem;
248
- height: 100%;
290
+ .prokodo-Select__sizer span {
291
+ display: block;
292
+ white-space: nowrap;
249
293
  }
250
- .prokodo-Select__button__inner {
251
- display: flex;
252
- align-items: center;
253
- padding: 0.875rem 1rem;
254
- margin: 2px;
255
- background-color: var(--color-white);
256
- border-radius: 1.5rem;
294
+ .prokodo-Select__button {
295
+ grid-row: 1;
296
+ grid-column: 1;
297
+ box-sizing: border-box;
298
+ min-width: 0;
299
+ overflow: hidden;
300
+ line-height: 1.5rem;
301
+ padding: var(--pk-select-padding-y) var(--pk-select-padding-x);
302
+ border: none;
303
+ border-radius: var(--pk-select-radius);
304
+ background: var(--pk-select-bg);
305
+ box-shadow: 0 2px 8px var(--pk-select-shadow-color-focus), 0 1px 3px color-mix(in srgb, var(--pk-select-shadow-color-focus) 50%, transparent);
306
+ transition: box-shadow var(--pk-timing-normal) ease;
307
+ color: var(--pk-select-fg);
308
+ cursor: pointer;
309
+ text-align: left;
310
+ outline: none;
257
311
  font-weight: 400;
258
312
  font-size: 1.125rem;
259
313
  font-family: var(--font-secondary), -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
@@ -265,67 +319,91 @@
265
319
  text-decoration: none;
266
320
  }
267
321
  @media screen and (min-width: 480px) {
268
- .prokodo-Select__button__inner {
322
+ .prokodo-Select__button {
269
323
  font-size: 1rem;
270
324
  }
271
325
  }
272
326
  @media screen and (min-width: 960px) {
273
- .prokodo-Select__button__inner {
327
+ .prokodo-Select__button {
274
328
  font-size: 1rem;
275
329
  }
276
330
  }
277
- html[data-theme=dark] .prokodo-Select__button__inner {
278
- background-color: rgb(16, 19, 27);
331
+ .prokodo-Select__button:hover {
332
+ box-shadow: 0 4px 12px var(--pk-select-shadow-color-focus), 0 0 5px var(--pk-select-shadow-color-focus);
333
+ }
334
+ .prokodo-Select__button--expanded {
335
+ border-radius: var(--pk-select-radius) var(--pk-select-radius) 0 0;
336
+ box-shadow: 0 8px 16px var(--pk-select-shadow-color-focus), 0 2px 6px color-mix(in srgb, var(--pk-select-shadow-color-focus) 80%, transparent);
337
+ }
338
+ .prokodo-Select__button:disabled {
339
+ cursor: not-allowed;
340
+ color: var(--pk-select-fg-muted);
341
+ background: var(--pk-select-bg);
342
+ }
343
+ .prokodo-Select__notch {
344
+ position: absolute;
345
+ inset: 0;
346
+ margin: 0;
347
+ padding: 0 calc(var(--pk-select-padding-x) - 0.25em);
348
+ border: 2px solid var(--pk-color-border);
349
+ border-radius: var(--pk-select-radius);
350
+ pointer-events: none;
351
+ z-index: 1;
352
+ background: transparent;
353
+ transition: border-color var(--pk-timing-normal) ease;
354
+ }
355
+ .prokodo-Select__notch legend {
356
+ display: block;
357
+ height: 0;
358
+ font-size: 0.75rem;
359
+ visibility: hidden;
360
+ overflow: hidden;
361
+ white-space: nowrap;
362
+ padding: 0;
363
+ max-width: 0.01px;
364
+ transition: max-width var(--pk-timing-normal) ease;
365
+ }
366
+ .prokodo-Select__notch legend span {
367
+ padding: 0 0.5em;
368
+ display: inline-block;
369
+ }
370
+ .prokodo-Select__notch--is-focused {
371
+ border-color: var(--pk-select-label-fg);
372
+ }
373
+ .prokodo-Select__notch--is-focused legend {
374
+ max-width: 100%;
375
+ }
376
+ .prokodo-Select__notch--expanded {
377
+ border-radius: var(--pk-select-radius) var(--pk-select-radius) 0 0;
279
378
  }
280
379
  .prokodo-Select__button__inner {
281
- font-size: 1rem;
380
+ flex: 1 1;
381
+ overflow: hidden;
382
+ text-overflow: ellipsis;
383
+ white-space: nowrap;
282
384
  }
283
- .prokodo-Select__button__inner--expanded {
284
- border-top-left-radius: 1.5625rem;
285
- border-top-right-radius: 1.5625rem;
286
- border-bottom-left-radius: 0;
287
- border-bottom-right-radius: 0;
385
+ .prokodo-Select__button__inner--is-hidden {
386
+ visibility: hidden;
288
387
  }
289
388
  .prokodo-Select__button__inner--is-placeholder {
290
- color: var(--color-grey-500);
389
+ color: var(--pk-select-fg-placeholder);
291
390
  }
292
391
  .prokodo-Select__button__inner--is-placeholder--disabled {
293
- color: var(--color-grey-500);
392
+ color: var(--pk-select-fg-placeholder);
393
+ opacity: 0.5;
294
394
  }
295
395
  .prokodo-Select__listbox {
296
396
  box-sizing: border-box;
297
- padding: 2px;
298
- margin: -2px 0 0 0;
299
- overflow: auto;
300
- outline: 0;
301
- max-height: 225px;
302
- width: 100%;
303
- color: var(--color-grey-900);
304
- border-bottom-left-radius: 1.5625rem;
305
- border-bottom-right-radius: 1.5625rem;
306
- background: var(--gradient-border-4);
307
- box-shadow: var(--elevation-3);
308
- scrollbar-width: none;
309
- z-index: 2147483647;
310
- /* animation – your JS toggles .is-open / .is-closed */
311
- }
312
- .prokodo-Select__listbox--is-open {
313
- animation: fade-in 200ms ease-out forwards;
314
- }
315
- .prokodo-Select__listbox--is-closed {
316
- animation: fade-out 200ms ease-in forwards;
317
- }
318
- .prokodo-Select__item {
397
+ background: linear-gradient(var(--pk-select-bg), var(--pk-select-bg)) padding-box, linear-gradient(90deg, var(--pk-select-gradient-from), var(--pk-select-gradient-to), var(--pk-select-gradient-from)) border-box;
398
+ border: 2px solid transparent;
399
+ border-top: none;
400
+ border-radius: 0 0 var(--pk-select-radius) var(--pk-select-radius);
401
+ box-shadow: var(--pk-select-listbox-shadow);
402
+ overflow-y: auto;
403
+ max-height: 260px;
319
404
  list-style: none;
320
- display: flex;
321
- align-items: center;
322
- padding: 0.75rem 1rem;
323
- cursor: pointer;
324
- background: var(--color-white);
325
- position: relative;
326
- backface-visibility: hidden;
327
- margin-top: -2px;
328
- perspective: 1000px;
405
+ margin: -2px 0 0 0;
406
+ padding: 0;
329
407
  font-weight: 400;
330
408
  font-size: 1.125rem;
331
409
  font-family: var(--font-secondary), -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
@@ -335,111 +413,121 @@ html[data-theme=dark] .prokodo-Select__button__inner {
335
413
  text-transform: none;
336
414
  text-align: left;
337
415
  text-decoration: none;
338
- /* hover / focus */
339
- /* selected */
340
- /* keyboard "active" option (aria-activedescendant) */
341
- /* if both selected + active, keep it clearly active */
342
- /* disabled (if you add aria-disabled) */
343
416
  }
344
417
  @media screen and (min-width: 480px) {
345
- .prokodo-Select__item {
418
+ .prokodo-Select__listbox {
346
419
  font-size: 1rem;
347
420
  }
348
421
  }
349
422
  @media screen and (min-width: 960px) {
350
- .prokodo-Select__item {
423
+ .prokodo-Select__listbox {
351
424
  font-size: 1rem;
352
425
  }
353
426
  }
354
- html[data-theme=dark] .prokodo-Select__item {
355
- background: rgb(16, 19, 27);
427
+ .prokodo-Select__listbox--primary {
428
+ --pk-select-gradient-from: var(--pk-color-brand);
429
+ --pk-select-gradient-to: var(--pk-color-accent);
430
+ --pk-select-item-hover-bg: color-mix(in srgb, var(--pk-color-brand) 10%, var(--pk-select-bg));
431
+ --pk-select-item-active-bg: color-mix(in srgb, var(--pk-color-brand) 18%, var(--pk-select-bg));
432
+ }
433
+ .prokodo-Select__listbox--secondary {
434
+ --pk-select-gradient-from: var(--pk-color-accent);
435
+ --pk-select-gradient-to: var(--pk-color-brand);
436
+ --pk-select-item-hover-bg: color-mix(in srgb, var(--pk-color-accent) 10%, var(--pk-select-bg));
437
+ --pk-select-item-active-bg: color-mix(in srgb, var(--pk-color-accent) 18%, var(--pk-select-bg));
438
+ }
439
+ .prokodo-Select__listbox--success {
440
+ --pk-select-gradient-from: var(--pk-color-success);
441
+ --pk-select-gradient-to: #10CCB8;
442
+ --pk-select-item-hover-bg: color-mix(in srgb, var(--pk-color-success) 10%, var(--pk-select-bg));
443
+ --pk-select-item-active-bg: color-mix(in srgb, var(--pk-color-success) 18%, var(--pk-select-bg));
444
+ }
445
+ .prokodo-Select__listbox--warning {
446
+ --pk-select-gradient-from: var(--pk-color-warning);
447
+ --pk-select-gradient-to: #f7cc6a;
448
+ --pk-select-item-hover-bg: color-mix(in srgb, var(--pk-color-warning) 10%, var(--pk-select-bg));
449
+ --pk-select-item-active-bg: color-mix(in srgb, var(--pk-color-warning) 18%, var(--pk-select-bg));
450
+ }
451
+ .prokodo-Select__listbox--error {
452
+ --pk-select-gradient-from: var(--pk-color-error);
453
+ --pk-select-gradient-to: #ff6b6b;
454
+ --pk-select-item-hover-bg: color-mix(in srgb, var(--pk-color-error) 10%, var(--pk-select-bg));
455
+ --pk-select-item-active-bg: color-mix(in srgb, var(--pk-color-error) 18%, var(--pk-select-bg));
456
+ }
457
+ .prokodo-Select__listbox--info, .prokodo-Select__listbox--inherit, .prokodo-Select__listbox--white {
458
+ --pk-select-gradient-from: var(--pk-color-muted);
459
+ --pk-select-gradient-to: var(--pk-color-border);
460
+ --pk-select-item-hover-bg: color-mix(in srgb, var(--pk-color-muted) 10%, var(--pk-select-bg));
461
+ --pk-select-item-active-bg: color-mix(in srgb, var(--pk-color-muted) 18%, var(--pk-select-bg));
462
+ }
463
+ html[data-theme="dark"] .prokodo-Select__listbox, [data-theme="dark"] .prokodo-Select__listbox, .pk-theme-dark .prokodo-Select__listbox {
464
+ --pk-select-item-hover-bg: color-mix(in srgb, var(--pk-select-gradient-from) 15%, var(--pk-select-bg));
465
+ --pk-select-item-active-bg: color-mix(in srgb, var(--pk-select-gradient-from) 25%, var(--pk-select-bg));
466
+ --pk-select-fg: var(--pk-color-fg);
467
+ --pk-select-bg: var(--pk-color-surface);
356
468
  }
357
- .prokodo-Select__item {
358
- font-size: 1rem;
469
+ .prokodo-Select__listbox--is-closed {
470
+ display: none;
359
471
  }
360
- .prokodo-Select__item:last-child {
361
- border-bottom-left-radius: 1.5625rem;
362
- border-bottom-right-radius: 1.5625rem;
472
+ .prokodo-Select__item {
473
+ display: flex;
474
+ align-items: center;
475
+ gap: var(--pk-space-sm);
476
+ padding: var(--pk-select-item-padding-y) var(--pk-select-item-padding-x);
477
+ cursor: pointer;
478
+ color: var(--pk-select-fg);
479
+ list-style: none;
480
+ transition: background-color var(--pk-timing-fast) ease;
363
481
  }
364
482
  .prokodo-Select__item:hover {
365
- background: var(--color-primary-50);
366
- }
367
- html[data-theme=dark] .prokodo-Select__item:hover {
368
- background: var(--color-primary-50);
369
- }
370
- .prokodo-Select__item:focus-visible {
371
- outline: 0;
372
- background: var(--color-primary-50);
373
- }
374
- html[data-theme=dark] .prokodo-Select__item:focus-visible {
375
- background: var(--color-primary-50);
376
- }
377
- .prokodo-Select__item--selected {
378
- background: var(--color-primary-100);
379
- }
380
- html[data-theme=dark] .prokodo-Select__item--selected {
381
- background: var(--color-primary-100);
483
+ background-color: var(--pk-select-item-hover-bg);
382
484
  }
383
485
  .prokodo-Select__item--active {
384
- background: var(--color-primary-100);
385
- }
386
- html[data-theme=dark] .prokodo-Select__item--active {
387
- background: var(--color-primary-100);
388
- }
389
- .prokodo-Select__item--selected--active {
390
- background: var(--color-primary-100);
391
- }
392
- html[data-theme=dark] .prokodo-Select__item--selected--active {
393
- background: var(--color-primary-100);
486
+ background-color: var(--pk-select-item-hover-bg);
394
487
  }
395
- .prokodo-Select__item[aria-disabled=true] {
396
- color: var(--color-grey-400);
397
- cursor: not-allowed;
488
+ .prokodo-Select__item--selected {
489
+ background-color: var(--pk-select-item-active-bg);
398
490
  }
399
491
  .prokodo-Select__checkbox {
400
- position: relative;
401
- min-width: 18px;
402
- min-height: 18px;
403
- margin-right: 0.75rem;
404
- transform: scale(1.2);
405
- cursor: pointer;
406
- border: none;
407
- border-radius: 5px;
408
- -webkit-appearance: none;
492
+ flex-shrink: 0;
493
+ pointer-events: none;
409
494
  -moz-appearance: none;
410
495
  appearance: none;
411
- -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
412
- mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
413
- -webkit-mask-composite: source-over;
414
- mask-composite: add;
415
- background: var(--gradient-border-7);
496
+ -webkit-appearance: none;
497
+ width: 1.125rem;
498
+ height: 1.125rem;
499
+ border-radius: 4px;
500
+ background: var(--pk-color-surface, #fff);
501
+ box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--pk-select-gradient-from) 30%, transparent), inset 0 2px 6px color-mix(in srgb, var(--pk-select-gradient-from) 20%, transparent);
502
+ transition: background var(--pk-timing-fast) ease, box-shadow var(--pk-timing-fast) ease;
503
+ position: relative;
416
504
  }
417
- .prokodo-Select__checkbox:before { /* white inner square */
505
+ .prokodo-Select__checkbox::after {
418
506
  content: "";
507
+ display: block;
419
508
  position: absolute;
420
- inset: 2px;
421
- background: var(--color-white);
422
- }
423
- html[data-theme=dark] .prokodo-Select__checkbox:before {
424
- background-color: rgb(16, 19, 27);
425
- }
426
- .prokodo-Select__checkbox--checked { /* gradient + tick mark */
427
- background: var(--gradient-border-4);
509
+ top: 50%;
510
+ left: 50%;
511
+ width: 5px;
512
+ height: 9px;
513
+ border: 2px solid transparent;
514
+ border-top-width: 0;
515
+ border-left-width: 0;
516
+ transform: translate(-50%, -60%) rotate(45deg);
517
+ opacity: 0;
518
+ transition: opacity var(--pk-timing-fast) ease, border-color var(--pk-timing-fast) ease;
519
+ }
520
+ .prokodo-Select__checkbox--checked {
521
+ background: linear-gradient(135deg, var(--pk-select-gradient-from), var(--pk-select-gradient-to));
522
+ box-shadow: 0 2px 10px color-mix(in srgb, var(--pk-select-gradient-from) 40%, transparent);
428
523
  }
429
524
  .prokodo-Select__checkbox--checked::after {
430
- content: "";
431
- position: absolute;
432
- inset: 0;
433
- background: var(--gradient-background-primary-grey-secondary);
434
- -webkit-mask: url('data:image/svg+xml;utf8, <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" stroke-width="1.5" fill="none" stroke-linecap="round" stroke-linejoin="round"><path d="M5 14.5C5 14.5 6.5 14.5 8.5 18C8.5 18 14.0588 8.83333 19 7" stroke="black"/></svg>') no-repeat center/contain;
435
- mask: url('data:image/svg+xml;utf8, <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" stroke-width="1.5" fill="none" stroke-linecap="round" stroke-linejoin="round"><path d="M5 14.5C5 14.5 6.5 14.5 8.5 18C8.5 18 14.0588 8.83333 19 7" stroke="black"/></svg>') no-repeat center/contain;
525
+ border-color: #ffffff;
526
+ opacity: 1;
436
527
  }
437
528
  .prokodo-Select__helperText {
438
- padding-left: 1.5rem;
439
- padding-top: 0.75rem;
440
- display: flex;
441
- color: var(--color-grey-300);
442
- width: 80%;
529
+ padding-top: var(--pk-space-xs);
530
+ color: var(--pk-select-helper-fg);
443
531
  font-weight: 400;
444
532
  font-size: 1rem;
445
533
  font-family: var(--font-secondary), -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
@@ -462,12 +550,245 @@ html[data-theme=dark] .prokodo-Select__checkbox:before {
462
550
  line-height: 1.4;
463
551
  }
464
552
  }
465
- html[data-theme=dark] .prokodo-Select__helperText {
466
- color: var(--color-grey-700);
553
+ .prokodo-Select__helperText__content--is-error {
554
+ color: var(--pk-color-error);
555
+ }
556
+ .prokodo-Select__sheet__backdrop {
557
+ position: fixed;
558
+ inset: 0;
559
+ z-index: 199;
560
+ background: rgba(0, 0, 0, 0.5);
561
+ backdrop-filter: blur(4px);
562
+ -webkit-backdrop-filter: blur(4px);
563
+ animation: selectFadeIn 200ms ease both;
564
+ }
565
+ .prokodo-Select__sheet {
566
+ position: fixed;
567
+ bottom: 0;
568
+ left: 0;
569
+ right: 0;
570
+ z-index: 200;
571
+ box-sizing: border-box;
572
+ display: flex;
573
+ flex-direction: column;
574
+ max-height: 80dvh;
575
+ background: var(--pk-select-bg);
576
+ border-radius: 1.25rem 1.25rem 0 0;
577
+ border: 1px solid color-mix(in srgb, var(--pk-select-gradient-from) 30%, transparent);
578
+ border-bottom: none;
579
+ box-shadow: 0 -4px 40px rgba(0, 0, 0, 0.18), 0 -2px 0 color-mix(in srgb, var(--pk-select-gradient-from) 50%, transparent);
580
+ padding: 0 1.25rem 2rem;
581
+ overflow: hidden;
582
+ animation: selectSlideUp 260ms cubic-bezier(0.32, 0.72, 0, 1) both;
583
+ }
584
+ .prokodo-Select__sheet--primary {
585
+ --pk-select-gradient-from: var(--pk-color-brand);
586
+ --pk-select-gradient-to: var(--pk-color-accent);
587
+ --pk-select-item-hover-bg: color-mix(in srgb, var(--pk-color-brand) 10%, var(--pk-select-bg));
588
+ --pk-select-item-active-bg: color-mix(in srgb, var(--pk-color-brand) 18%, var(--pk-select-bg));
589
+ }
590
+ .prokodo-Select__sheet--secondary {
591
+ --pk-select-gradient-from: var(--pk-color-accent);
592
+ --pk-select-gradient-to: var(--pk-color-brand);
593
+ --pk-select-item-hover-bg: color-mix(in srgb, var(--pk-color-accent) 10%, var(--pk-select-bg));
594
+ --pk-select-item-active-bg: color-mix(in srgb, var(--pk-color-accent) 18%, var(--pk-select-bg));
595
+ }
596
+ .prokodo-Select__sheet--success {
597
+ --pk-select-gradient-from: var(--pk-color-success);
598
+ --pk-select-gradient-to: #10CCB8;
599
+ --pk-select-item-hover-bg: color-mix(in srgb, var(--pk-color-success) 10%, var(--pk-select-bg));
600
+ --pk-select-item-active-bg: color-mix(in srgb, var(--pk-color-success) 18%, var(--pk-select-bg));
601
+ }
602
+ .prokodo-Select__sheet--warning {
603
+ --pk-select-gradient-from: var(--pk-color-warning);
604
+ --pk-select-gradient-to: #f7cc6a;
605
+ --pk-select-item-hover-bg: color-mix(in srgb, var(--pk-color-warning) 10%, var(--pk-select-bg));
606
+ --pk-select-item-active-bg: color-mix(in srgb, var(--pk-color-warning) 18%, var(--pk-select-bg));
607
+ }
608
+ .prokodo-Select__sheet--error {
609
+ --pk-select-gradient-from: var(--pk-color-error);
610
+ --pk-select-gradient-to: #ff6b6b;
611
+ --pk-select-item-hover-bg: color-mix(in srgb, var(--pk-color-error) 10%, var(--pk-select-bg));
612
+ --pk-select-item-active-bg: color-mix(in srgb, var(--pk-color-error) 18%, var(--pk-select-bg));
613
+ }
614
+ .prokodo-Select__sheet--info, .prokodo-Select__sheet--inherit, .prokodo-Select__sheet--white {
615
+ --pk-select-gradient-from: var(--pk-color-muted);
616
+ --pk-select-gradient-to: var(--pk-color-border);
617
+ --pk-select-item-hover-bg: color-mix(in srgb, var(--pk-color-muted) 10%, var(--pk-select-bg));
618
+ --pk-select-item-active-bg: color-mix(in srgb, var(--pk-color-muted) 18%, var(--pk-select-bg));
619
+ }
620
+ html[data-theme="dark"] .prokodo-Select__sheet, [data-theme="dark"] .prokodo-Select__sheet, .pk-theme-dark .prokodo-Select__sheet {
621
+ --pk-select-item-hover-bg: color-mix(in srgb, var(--pk-select-gradient-from) 15%, var(--pk-select-bg));
622
+ --pk-select-item-active-bg: color-mix(in srgb, var(--pk-select-gradient-from) 25%, var(--pk-select-bg));
623
+ --pk-select-fg: var(--pk-color-fg);
624
+ --pk-select-bg: var(--pk-color-surface);
625
+ }
626
+ .prokodo-Select__sheet::before {
627
+ content: "";
628
+ display: block;
629
+ width: 2.5rem;
630
+ height: 0.25rem;
631
+ background: var(--pk-color-brand);
632
+ border-radius: 999px;
633
+ margin: 0.75rem auto 1rem;
634
+ flex-shrink: 0;
635
+ }
636
+ .prokodo-Select__sheet--secondary::before {
637
+ background: var(--pk-color-accent);
638
+ }
639
+ .prokodo-Select__sheet--success::before {
640
+ background: var(--pk-color-success);
641
+ }
642
+ .prokodo-Select__sheet--warning::before {
643
+ background: var(--pk-color-warning);
644
+ }
645
+ .prokodo-Select__sheet--error::before {
646
+ background: var(--pk-color-error);
647
+ }
648
+ .prokodo-Select__sheet--info::before, .prokodo-Select__sheet--inherit::before, .prokodo-Select__sheet--white::before {
649
+ background: var(--pk-color-muted);
650
+ }
651
+ .prokodo-Select__sheet__header {
652
+ display: flex;
653
+ align-items: center;
654
+ justify-content: space-between;
655
+ padding-block: 0.25rem 0.75rem;
656
+ flex-shrink: 0;
657
+ }
658
+ .prokodo-Select__sheet__title {
659
+ font-weight: 700;
660
+ color: var(--pk-select-fg);
661
+ font-weight: 500;
662
+ font-size: 1.125rem;
663
+ font-family: var(--font-secondary), -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
664
+ font-style: normal;
665
+ line-height: 1.55;
666
+ letter-spacing: 0.03em;
667
+ text-transform: none;
668
+ text-align: left;
669
+ text-decoration: none;
670
+ }
671
+ @media screen and (min-width: 480px) {
672
+ .prokodo-Select__sheet__title {
673
+ font-size: 1.125rem;
674
+ line-height: 1.5;
675
+ }
676
+ }
677
+ @media screen and (min-width: 960px) {
678
+ .prokodo-Select__sheet__title {
679
+ font-size: 1.125rem;
680
+ line-height: 1.5;
681
+ }
682
+ }
683
+ .prokodo-Select__sheet__close {
684
+ display: flex;
685
+ align-items: center;
686
+ justify-content: center;
687
+ width: 2.5rem;
688
+ height: 2.5rem;
689
+ border-radius: 100%;
690
+ background: transparent;
691
+ border: none;
692
+ cursor: pointer;
693
+ color: var(--pk-select-fg);
694
+ flex-shrink: 0;
695
+ transition: background var(--pk-timing-fast) ease, color var(--pk-timing-fast) ease;
696
+ }
697
+ .prokodo-Select__sheet__close:hover {
698
+ background: color-mix(in srgb, var(--pk-select-gradient-from) 12%, transparent);
699
+ color: var(--pk-select-gradient-from);
700
+ }
701
+ .prokodo-Select__sheet__list {
702
+ flex: 1 1;
703
+ overflow-y: auto;
704
+ overscroll-behavior: contain;
705
+ -webkit-overflow-scrolling: touch;
706
+ list-style: none;
707
+ margin: 0;
708
+ padding: var(--pk-space-xs, 0.25rem) 0;
709
+ }
710
+ .prokodo-Select__sheet__item {
711
+ display: flex;
712
+ align-items: center;
713
+ gap: var(--pk-space-sm);
714
+ padding: 0.875rem 0.75rem;
715
+ border-radius: var(--pk-select-radius, 8px);
716
+ cursor: pointer;
717
+ color: var(--pk-select-fg);
718
+ min-height: 2.75rem;
719
+ transition: background-color var(--pk-timing-fast) ease;
720
+ font-weight: 400;
721
+ font-size: 1.125rem;
722
+ font-family: var(--font-secondary), -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
723
+ font-style: normal;
724
+ line-height: 1.55;
725
+ letter-spacing: 0.03em;
726
+ text-transform: none;
727
+ text-align: left;
728
+ text-decoration: none;
729
+ }
730
+ @media screen and (min-width: 480px) {
731
+ .prokodo-Select__sheet__item {
732
+ font-size: 1rem;
733
+ }
734
+ }
735
+ @media screen and (min-width: 960px) {
736
+ .prokodo-Select__sheet__item {
737
+ font-size: 1rem;
738
+ }
739
+ }
740
+ .prokodo-Select__sheet__item:hover {
741
+ background-color: var(--pk-select-item-hover-bg);
742
+ }
743
+ .prokodo-Select__sheet__item--active {
744
+ background-color: var(--pk-select-item-hover-bg);
467
745
  }
468
- .prokodo-Select__helperText__content {
746
+ .prokodo-Select__sheet__item--selected {
747
+ background-color: color-mix(in srgb, var(--pk-select-gradient-from) 10%, transparent);
748
+ font-weight: 600;
749
+ color: var(--pk-select-gradient-from);
750
+ }
751
+ .prokodo-Select__sheet__item--selected::after {
752
+ content: "✓";
753
+ margin-left: auto;
754
+ font-weight: 700;
755
+ }
756
+ .prokodo-Select__sheet__footer {
757
+ padding-top: var(--pk-space-sm, 0.5rem);
758
+ flex-shrink: 0;
759
+ }
760
+ .prokodo-Select__sheet__done {
469
761
  width: 100%;
762
+ padding: 0.75rem;
763
+ border-radius: var(--pk-select-radius, 8px);
764
+ border: none;
765
+ cursor: pointer;
766
+ font-weight: 700;
767
+ background: linear-gradient(90deg, var(--pk-select-gradient-from), var(--pk-select-gradient-to));
768
+ color: #fff;
769
+ transition: opacity var(--pk-timing-fast) ease;
770
+ font-weight: 700;
771
+ font-size: 1.75rem;
772
+ font-family: var(--font-secondary), -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
773
+ font-style: normal;
774
+ line-height: 1.6;
775
+ letter-spacing: 0.03em;
776
+ text-transform: none;
777
+ text-align: left;
778
+ text-decoration: none;
470
779
  }
471
- .prokodo-Select__helperText__content--is-error {
472
- color: var(--color-error);
780
+ @media screen and (min-width: 480px) {
781
+ .prokodo-Select__sheet__done {
782
+ font-size: 1.5rem;
783
+ line-height: 1.55;
784
+ }
785
+ }
786
+ @media screen and (min-width: 960px) {
787
+ .prokodo-Select__sheet__done {
788
+ font-size: 1.5rem;
789
+ line-height: 1.55;
790
+ }
791
+ }
792
+ .prokodo-Select__sheet__done:hover {
793
+ opacity: 0.9;
473
794
  }