@prokodo/ui 1.0.4 → 1.0.6

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 (71) hide show
  1. package/dist/components/RTE/RTE.css +2 -0
  2. package/dist/components/accordion/Accordion.css +4 -0
  3. package/dist/components/animatedText/AnimatedText.server.js +2 -2
  4. package/dist/components/autocomplete/Autocomplete.css +2 -0
  5. package/dist/components/avatar/Avatar.css +3 -0
  6. package/dist/components/button/Button.css +4 -0
  7. package/dist/components/calendly/Calendly.css +2 -0
  8. package/dist/components/card/Card.client.js +0 -2
  9. package/dist/components/card/Card.css +7 -0
  10. package/dist/components/carousel/Carousel.client.js +14 -9
  11. package/dist/components/carousel/Carousel.css +2 -0
  12. package/dist/components/datePicker/DatePicker.client.js +36 -3
  13. package/dist/components/datePicker/DatePicker.css +4 -2
  14. package/dist/components/datePicker/DatePicker.module.css +2 -2
  15. package/dist/components/datePicker/DatePicker.view.js +3 -1
  16. package/dist/components/datePicker/DatePickerDialog.view.js +3 -1
  17. package/dist/components/dialog/Dialog.client.js +8 -0
  18. package/dist/components/dialog/Dialog.css +5 -5
  19. package/dist/components/dialog/Dialog.module.css +3 -5
  20. package/dist/components/dialog/Dialog.module.scss.js +1 -1
  21. package/dist/components/drawer/Drawer.css +3 -0
  22. package/dist/components/dynamic-list/DynamicList.css +5 -0
  23. package/dist/components/form/Form.css +184 -0
  24. package/dist/components/form/FormField.client.js +7 -5
  25. package/dist/components/headline/Headline.css +2 -0
  26. package/dist/components/image/Image.client.js +8 -4
  27. package/dist/components/image/Image.server.js +6 -3
  28. package/dist/components/image-text/ImageText.css +8 -0
  29. package/dist/components/input/Input.css +3 -1
  30. package/dist/components/input/Input.module.css +1 -1
  31. package/dist/components/input/Input.view.js +3 -3
  32. package/dist/components/inputOTP/InputOTP.css +2 -0
  33. package/dist/components/list/List.css +4 -3
  34. package/dist/components/list/List.module.css +0 -3
  35. package/dist/components/map/Map.css +2 -0
  36. package/dist/components/post-item/PostItem.css +165 -0
  37. package/dist/components/post-teaser/PostTeaser.css +8 -0
  38. package/dist/components/post-widget/PostWidget.css +5 -0
  39. package/dist/components/post-widget-carousel/PostWidgetCarousel.css +7 -0
  40. package/dist/components/quote/Quote.css +5 -0
  41. package/dist/components/rating/Rating.css +2 -0
  42. package/dist/components/rich-text/RichText.css +5 -0
  43. package/dist/components/select/Select.client.js +13 -3
  44. package/dist/components/select/Select.css +12 -27
  45. package/dist/components/select/Select.module.css +10 -27
  46. package/dist/components/sidenav/SideNav.css +4 -0
  47. package/dist/components/slider/Slider.css +2 -0
  48. package/dist/components/snackbar/Snackbar.css +38 -0
  49. package/dist/components/snackbar/Snackbar.module.css +36 -0
  50. package/dist/components/snackbar/Snackbar.module.scss.js +6 -0
  51. package/dist/components/stepper/Stepper.css +13 -31
  52. package/dist/components/stepper/Stepper.module.css +11 -31
  53. package/dist/components/switch/Switch.css +2 -0
  54. package/dist/components/table/Table.css +15 -0
  55. package/dist/components/table/Table.js +2 -1
  56. package/dist/components/table/Table.module.css +9 -0
  57. package/dist/components/table/Table.module.scss.js +2 -0
  58. package/dist/components/tabs/Tabs.css +2 -0
  59. package/dist/components/teaser/Teaser.css +8 -0
  60. package/dist/components/tooltip/Tooltip.client.js +6 -2
  61. package/dist/constants/project.js +1 -1
  62. package/dist/theme-tokens.css +723 -0
  63. package/dist/theme.css +75 -71
  64. package/dist/tsconfig.build.tsbuildinfo +1 -1
  65. package/dist/types/components/datePicker/DatePicker.model.d.ts +2 -1
  66. package/dist/types/components/datePicker/DatePicker.view.d.ts +3 -2
  67. package/dist/types/components/datePicker/DatePickerDialog.view.d.ts +1 -1
  68. package/dist/types/components/form/Form.model.d.ts +5 -0
  69. package/dist/types/components/input/Input.view.d.ts +1 -1
  70. package/dist/types/components/select/Select.model.d.ts +2 -0
  71. package/package.json +3 -2
@@ -44,10 +44,13 @@ function toPlainImgProps(p) {
44
44
  width,
45
45
  height
46
46
  };
47
- if (Boolean(priority)) {
48
- imgProps.loading = "eager";
49
- imgProps.fetchPriority = "high";
47
+ if (!Boolean(priority)) {
48
+ imgProps.loading = "lazy";
50
49
  }
50
+ imgProps.decoding = "async";
51
+ imgProps["data-nimg"] = "1";
52
+ imgProps.style = { color: "transparent", ...imgProps.style };
53
+ imgProps["suppressHydrationWarning"] = true;
51
54
  return imgProps;
52
55
  }
53
56
  __name(toPlainImgProps, "toPlainImgProps");
@@ -63,13 +66,14 @@ const ImageClient = /* @__PURE__ */ __name(({
63
66
  const renderImage = /* @__PURE__ */ __name(() => {
64
67
  if (ctxImage !== void 0) {
65
68
  const CustomImage = ctxImage;
69
+ const ctxProps = { ...rawProps, suppressHydrationWarning: true };
66
70
  return /* @__PURE__ */ jsx(
67
71
  CustomImage,
68
72
  {
69
73
  alt: alt ?? /* istanbul ignore next */
70
74
  "",
71
75
  className: bem("image", void 0, className),
72
- ...rawProps
76
+ ...ctxProps
73
77
  }
74
78
  );
75
79
  }
@@ -39,10 +39,13 @@ function toImgOnlyProps(p) {
39
39
  width,
40
40
  height
41
41
  };
42
- if (Boolean(priority)) {
43
- imgProps.loading = "eager";
44
- imgProps.fetchPriority = "high";
42
+ if (!Boolean(priority)) {
43
+ imgProps.loading = "lazy";
45
44
  }
45
+ imgProps.decoding = "async";
46
+ imgProps["data-nimg"] = "1";
47
+ imgProps.style = { color: "transparent", ...imgProps.style };
48
+ imgProps["suppressHydrationWarning"] = true;
46
49
  return imgProps;
47
50
  }
48
51
  __name(toImgOnlyProps, "toImgOnlyProps");
@@ -1,3 +1,11 @@
1
+ @import "../animated/Animated.css";
2
+ @import "../button/Button.css";
3
+ @import "../grid/Grid.css";
4
+ @import "../headline/Headline.css";
5
+ @import "../image/Image.css";
6
+ @import "../lottie/Lottie.css";
7
+ @import "../rich-text/RichText.css";
8
+
1
9
  /* stylelint-disable */
2
10
  /**
3
11
  * Calculates a rem-based value by a given pixel size.
@@ -1,3 +1,5 @@
1
+ @import "../label/Label.css";
2
+
1
3
  /* stylelint-disable */
2
4
  /**
3
5
  * Calculates a rem-based value by a given pixel size.
@@ -472,7 +474,7 @@ html[data-theme=dark] .prokodo-Input--info, [data-theme=dark] .prokodo-Input--in
472
474
  }
473
475
  .prokodo-Input__counter {
474
476
  padding-top: var(--pk-space-md);
475
- color: var(--pk-palette-grey-600);
477
+ color: var(--pk-input-helper-fg);
476
478
  font-weight: 400;
477
479
  font-size: 1rem;
478
480
  font-family: var(--font-secondary), -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
@@ -472,7 +472,7 @@ html[data-theme=dark] .prokodo-Input--info, [data-theme=dark] .prokodo-Input--in
472
472
  }
473
473
  .prokodo-Input__counter {
474
474
  padding-top: var(--pk-space-md);
475
- color: var(--pk-palette-grey-600);
475
+ color: var(--pk-input-helper-fg);
476
476
  font-weight: 400;
477
477
  font-size: 1rem;
478
478
  font-family: var(--font-secondary), -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
@@ -28,7 +28,7 @@ function InputView({
28
28
  inputClassName,
29
29
  hideCounter,
30
30
  rows,
31
- hideLegend: _hideLegend,
31
+ hideLegend,
32
32
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
33
33
  minRows,
34
34
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
@@ -76,14 +76,14 @@ function InputView({
76
76
  }
77
77
  ),
78
78
  /* @__PURE__ */ jsxs("div", { className: bem("field", void 0, fieldClassName), children: [
79
- typeof label === "string" && /* @__PURE__ */ jsx(
79
+ !hideLegend && /* @__PURE__ */ jsx(
80
80
  "fieldset",
81
81
  {
82
82
  "aria-hidden": "true",
83
83
  className: bem("notch", {
84
84
  "is-focused": Boolean(isFocused) || hasValue
85
85
  }),
86
- children: /* @__PURE__ */ jsx("legend", { className: bem("notchLegend"), children: /* @__PURE__ */ jsx("span", { children: label }) })
86
+ children: typeof label === "string" && /* @__PURE__ */ jsx("legend", { className: bem("notchLegend"), children: /* @__PURE__ */ jsx("span", { children: label }) })
87
87
  }
88
88
  ),
89
89
  /* @__PURE__ */ jsx(
@@ -1,3 +1,5 @@
1
+ @import "../input/Input.css";
2
+
1
3
  /* stylelint-disable */
2
4
  /**
3
5
  * Calculates a rem-based value by a given pixel size.
@@ -1,3 +1,7 @@
1
+ @import "../card/Card.css";
2
+ @import "../icon/Icon.css";
3
+ @import "../link/Link.css";
4
+
1
5
  /* stylelint-disable */
2
6
  /**
3
7
  * Calculates a rem-based value by a given pixel size.
@@ -211,9 +215,6 @@
211
215
  border-radius: 1000rem;
212
216
  background-color: var(--pk-color-surface-raised);
213
217
  }
214
- html[data-theme=dark] .prokodo-List__item__icon {
215
- background-color: var(--pk-palette-grey-400);
216
- }
217
218
  .prokodo-List__item__icon__wrapper {
218
219
  display: flex;
219
220
  align-items: center;
@@ -211,9 +211,6 @@
211
211
  border-radius: 1000rem;
212
212
  background-color: var(--pk-color-surface-raised);
213
213
  }
214
- html[data-theme=dark] .prokodo-List__item__icon {
215
- background-color: var(--pk-palette-grey-400);
216
- }
217
214
  .prokodo-List__item__icon__wrapper {
218
215
  display: flex;
219
216
  align-items: center;
@@ -1,3 +1,5 @@
1
+ @import "../skeleton/Skeleton.css";
2
+
1
3
  /* stylelint-disable */
2
4
  /**
3
5
  * Calculates a rem-based value by a given pixel size.
@@ -1,3 +1,11 @@
1
+ @import "../animated/Animated.css";
2
+ @import "../avatar/Avatar.css";
3
+ @import "../button/Button.css";
4
+ @import "../card/Card.css";
5
+ @import "../headline/Headline.css";
6
+ @import "../image/Image.css";
7
+ @import "../rich-text/RichText.css";
8
+
1
9
  /* stylelint-disable */
2
10
  /**
3
11
  * Calculates a rem-based value by a given pixel size.
@@ -286,4 +294,161 @@
286
294
  .prokodo-PostItem__button {
287
295
  width: auto;
288
296
  }
297
+ }
298
+
299
+ /* stylelint-disable */
300
+ /**
301
+ * Calculates a rem-based value by a given pixel size.
302
+ */
303
+ /* stylelint-disable */
304
+ /**
305
+ * Applies flex-column and gap.
306
+ */
307
+ /*
308
+ As example (light, primary)
309
+ See defined modes in designsystem/config/gradients
310
+ */
311
+ /**
312
+ * Mixin that renders a media query that target screens that are larger than the
313
+ * given size.
314
+ */
315
+ /**
316
+ * Mixin that renders a media query that target screens that are smaller than the
317
+ * given size.
318
+ */
319
+ /**
320
+ * Mixin that renders a media query that target screens in between the given range.
321
+ */
322
+ /**
323
+ * Mixin that renders a media query that target screens that have height larger than the
324
+ * given size.
325
+ */
326
+ /**
327
+ * Mixin that renders a media query that target screens that have height smaller than the
328
+ * given size.
329
+ */
330
+ /* stylelint-disable */
331
+ /* M3/Elevation Light/1 */
332
+ /* M3/Elevation Light/2 */
333
+ /* M3/Elevation/5 */
334
+ /* M3/Elevation/1 Text */
335
+ /* Inner elevations */
336
+ /* stylelint-disable */
337
+ /**
338
+ * Visually hides an element but not removes them for screen readers.
339
+ */
340
+ /**
341
+ * The inverse of the `hidden` helper to reset a previously hidden element to be
342
+ * visible for users.
343
+ */
344
+ /**
345
+ * Creates a selector for :hover effects depending on the current user input
346
+ * device. If the input device is a mouse, this hover effect will appear.
347
+ * Keyboard and touch inputs are ignored.
348
+ *
349
+ * Example usage:
350
+ * .link {
351
+ * color: blue;
352
+ *
353
+ * @include when-hovered() {
354
+ * color: green;
355
+ * }
356
+ * }
357
+ */
358
+ /**
359
+ * Creates a selector for :active effects depending on the current user input
360
+ * device. The state applies when the input device is a mouse or keyboard. Touch
361
+ * devices will not show a pressed state.
362
+ *
363
+ * Example usage:
364
+ * .link {
365
+ * box-shadow: none;
366
+ *
367
+ * @include when-pressed() {
368
+ * box-shadow: inset 0 2px 4px grey;
369
+ * }
370
+ * }
371
+ */
372
+ /**
373
+ * Creates a selector for :focus effects depending on the current user input
374
+ * device. When the user navigates using a keyboard, the focus effect defined in
375
+ * here is applied. For other input devices they don't show up.
376
+ *
377
+ * Example usage:
378
+ * .link {
379
+ * text-decoration: none;
380
+ *
381
+ * @include when-focused() {
382
+ * text-decoration: underline;
383
+ * }
384
+ * }
385
+ */
386
+ /**
387
+ * Creates a selector for :focus-within effects depending on the current user
388
+ * input device. When the user navigates using a keyboard, the focus effect
389
+ * defined in here is applied. For other input devices they don't show up.
390
+ *
391
+ * Example usage:
392
+ * .link {
393
+ * img {
394
+ * opacity: 0.75;
395
+ *
396
+ * @include when-focused-within() {
397
+ * opacity: 1;
398
+ * }
399
+ * }
400
+ * }
401
+ */
402
+ /**
403
+ * Wrapper for media query "prefers-reduced-motion".
404
+ */
405
+ /**
406
+ * This helper hides the outline but still makes it visible for
407
+ * Windows high-contrast users. Use this instead of `outline: 0;`.
408
+ */
409
+ /**
410
+ * This helper hides the outline but still makes it visible for
411
+ * Windows high-contrast users. Use this instead of `outline: 0;`.
412
+ */
413
+ /**
414
+ * Renders an alternative, but application consistent focus-ring.
415
+ */
416
+ /**
417
+ * Specifies the outer layout for all contents across breakpoints. Apply this
418
+ * mixin to the container element, to center the contents on the screen within
419
+ * the layout offsets.
420
+ */
421
+ /**
422
+ * This mixin specifies basic text-styles for components that render a richtext
423
+ * content.
424
+ */
425
+ .prokodo-PostItemAuthor {
426
+ display: flex;
427
+ align-items: center;
428
+ padding-right: 1.5rem;
429
+ }
430
+ .prokodo-PostItemAuthor__name {
431
+ padding-left: 0.75rem;
432
+ color: var(--color-grey-500);
433
+ font-weight: 500;
434
+ font-size: 1.125rem;
435
+ font-family: var(--font-secondary), -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
436
+ font-style: normal;
437
+ line-height: 1.55;
438
+ letter-spacing: 0.03em;
439
+ text-transform: none;
440
+ text-align: left;
441
+ text-decoration: none;
442
+ }
443
+ @media screen and (min-width: 480px) {
444
+ .prokodo-PostItemAuthor__name {
445
+ font-size: 1.125rem;
446
+ line-height: 1.5;
447
+ }
448
+ }
449
+ @media screen and (min-width: 960px) {
450
+ .prokodo-PostItemAuthor__name {
451
+ font-size: 1.125rem;
452
+ line-height: 1.5;
453
+ }
289
454
  }
@@ -1,3 +1,11 @@
1
+ @import "../card/Card.css";
2
+ @import "../chip/Chip.css";
3
+ @import "../headline/Headline.css";
4
+ @import "../icon/Icon.css";
5
+ @import "../image/Image.css";
6
+ @import "../link/Link.css";
7
+ @import "../rich-text/RichText.css";
8
+
1
9
  /* stylelint-disable */
2
10
  /**
3
11
  * Calculates a rem-based value by a given pixel size.
@@ -1,3 +1,8 @@
1
+ @import "../card/Card.css";
2
+ @import "../headline/Headline.css";
3
+ @import "../image/Image.css";
4
+ @import "../link/Link.css";
5
+
1
6
  /* stylelint-disable */
2
7
  /**
3
8
  * Calculates a rem-based value by a given pixel size.
@@ -1,3 +1,10 @@
1
+ @import "../button/Button.css";
2
+ @import "../card/Card.css";
3
+ @import "../carousel/Carousel.css";
4
+ @import "../headline/Headline.css";
5
+ @import "../image/Image.css";
6
+ @import "../link/Link.css";
7
+
1
8
  /* stylelint-disable */
2
9
  /**
3
10
  * Calculates a rem-based value by a given pixel size.
@@ -1,3 +1,8 @@
1
+ @import "../avatar/Avatar.css";
2
+ @import "../card/Card.css";
3
+ @import "../headline/Headline.css";
4
+ @import "../rich-text/RichText.css";
5
+
1
6
  /* stylelint-disable */
2
7
  /**
3
8
  * Calculates a rem-based value by a given pixel size.
@@ -1,3 +1,5 @@
1
+ @import "../label/Label.css";
2
+
1
3
  /* stylelint-disable */
2
4
  /**
3
5
  * Calculates a rem-based value by a given pixel size.
@@ -1,3 +1,8 @@
1
+ @import "../headline/Headline.css";
2
+ @import "../icon/Icon.css";
3
+ @import "../image/Image.css";
4
+ @import "../link/Link.css";
5
+
1
6
  /* stylelint-disable */
2
7
  /**
3
8
  * Calculates a rem-based value by a given pixel size.
@@ -49,6 +49,7 @@ function SelectClient({
49
49
  const [popupReady, setPopupReady] = useState(false);
50
50
  const [isMobile, setIsMobile] = useState(false);
51
51
  const sheetSwipeStart = useRef(null);
52
+ const didInitFocus = useRef(false);
52
53
  const hasPlaceholder = !Boolean(required) && !Boolean(multiple);
53
54
  const optionCount = (hasPlaceholder ? 1 : 0) + items.length;
54
55
  useEffect(() => {
@@ -114,7 +115,12 @@ function SelectClient({
114
115
  []
115
116
  );
116
117
  useEffect(() => {
117
- if (!open || !popupReady) return;
118
+ if (!open) {
119
+ didInitFocus.current = false;
120
+ return;
121
+ }
122
+ if (!popupReady || didInitFocus.current) return;
123
+ didInitFocus.current = true;
118
124
  setActiveIndex(valueToIndex());
119
125
  requestAnimationFrame(() => {
120
126
  var _a;
@@ -150,6 +156,10 @@ function SelectClient({
150
156
  window.removeEventListener("scroll", onScroll, true);
151
157
  };
152
158
  }, [open, updatePopupPosition]);
159
+ useEffect(() => {
160
+ if (!open) return;
161
+ requestAnimationFrame(() => updatePopupPosition());
162
+ }, [val, open, updatePopupPosition]);
153
163
  useEffect(() => {
154
164
  if (!open) return;
155
165
  const handleOutside = /* @__PURE__ */ __name((e) => {
@@ -326,7 +336,7 @@ function SelectClient({
326
336
  /* @__PURE__ */ jsx(
327
337
  "button",
328
338
  {
329
- "aria-label": "Close",
339
+ "aria-label": rest.closeAriaLabel ?? "Close",
330
340
  className: bem("sheet__close"),
331
341
  type: "button",
332
342
  onClick: close,
@@ -419,7 +429,7 @@ function SelectClient({
419
429
  className: bem("sheet__done"),
420
430
  type: "button",
421
431
  onClick: close,
422
- children: "Done"
432
+ children: rest.doneLabel ?? "Done"
423
433
  }
424
434
  ) })
425
435
  ]
@@ -1,3 +1,5 @@
1
+ @import "../label/Label.css";
2
+
1
3
  @charset "UTF-8";
2
4
  /* stylelint-disable */
3
5
  /**
@@ -556,7 +558,7 @@ html[data-theme=dark] .prokodo-Select__listbox, [data-theme=dark] .prokodo-Selec
556
558
  .prokodo-Select__sheet__backdrop {
557
559
  position: fixed;
558
560
  inset: 0;
559
- z-index: 199;
561
+ z-index: var(--pk-z-popover, 1400);
560
562
  background: rgba(0, 0, 0, 0.5);
561
563
  backdrop-filter: blur(4px);
562
564
  -webkit-backdrop-filter: blur(4px);
@@ -567,7 +569,7 @@ html[data-theme=dark] .prokodo-Select__listbox, [data-theme=dark] .prokodo-Selec
567
569
  bottom: 0;
568
570
  left: 0;
569
571
  right: 0;
570
- z-index: 200;
572
+ z-index: calc(var(--pk-z-popover, 1400) + 1);
571
573
  box-sizing: border-box;
572
574
  display: flex;
573
575
  flex-direction: column;
@@ -759,35 +761,18 @@ html[data-theme=dark] .prokodo-Select__sheet, [data-theme=dark] .prokodo-Select_
759
761
  }
760
762
  .prokodo-Select__sheet__done {
761
763
  width: 100%;
762
- padding: 0.75rem;
763
- border-radius: var(--pk-select-radius, 8px);
764
+ height: 3rem;
765
+ padding: var(--pk-space-xs, 0.25rem) var(--pk-space-sm, 0.5rem);
766
+ border-radius: var(--pk-radius-lg, 12px);
764
767
  border: none;
765
768
  cursor: pointer;
766
- font-weight: 700;
767
- background: linear-gradient(90deg, var(--pk-select-gradient-from), var(--pk-select-gradient-to));
769
+ font-size: 0.9375rem;
770
+ font-weight: 600;
771
+ text-align: center;
772
+ background: linear-gradient(135deg, var(--pk-select-gradient-from), var(--pk-select-gradient-to));
768
773
  color: #fff;
774
+ box-shadow: 0 4px 16px color-mix(in srgb, var(--pk-select-gradient-from) 30%, transparent);
769
775
  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;
779
- }
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
776
  }
792
777
  .prokodo-Select__sheet__done:hover {
793
778
  opacity: 0.9;
@@ -556,7 +556,7 @@ html[data-theme=dark] .prokodo-Select__listbox, [data-theme=dark] .prokodo-Selec
556
556
  .prokodo-Select__sheet__backdrop {
557
557
  position: fixed;
558
558
  inset: 0;
559
- z-index: 199;
559
+ z-index: var(--pk-z-popover, 1400);
560
560
  background: rgba(0, 0, 0, 0.5);
561
561
  backdrop-filter: blur(4px);
562
562
  -webkit-backdrop-filter: blur(4px);
@@ -567,7 +567,7 @@ html[data-theme=dark] .prokodo-Select__listbox, [data-theme=dark] .prokodo-Selec
567
567
  bottom: 0;
568
568
  left: 0;
569
569
  right: 0;
570
- z-index: 200;
570
+ z-index: calc(var(--pk-z-popover, 1400) + 1);
571
571
  box-sizing: border-box;
572
572
  display: flex;
573
573
  flex-direction: column;
@@ -759,35 +759,18 @@ html[data-theme=dark] .prokodo-Select__sheet, [data-theme=dark] .prokodo-Select_
759
759
  }
760
760
  .prokodo-Select__sheet__done {
761
761
  width: 100%;
762
- padding: 0.75rem;
763
- border-radius: var(--pk-select-radius, 8px);
762
+ height: 3rem;
763
+ padding: var(--pk-space-xs, 0.25rem) var(--pk-space-sm, 0.5rem);
764
+ border-radius: var(--pk-radius-lg, 12px);
764
765
  border: none;
765
766
  cursor: pointer;
766
- font-weight: 700;
767
- background: linear-gradient(90deg, var(--pk-select-gradient-from), var(--pk-select-gradient-to));
767
+ font-size: 0.9375rem;
768
+ font-weight: 600;
769
+ text-align: center;
770
+ background: linear-gradient(135deg, var(--pk-select-gradient-from), var(--pk-select-gradient-to));
768
771
  color: #fff;
772
+ box-shadow: 0 4px 16px color-mix(in srgb, var(--pk-select-gradient-from) 30%, transparent);
769
773
  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;
779
- }
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
774
  }
792
775
  .prokodo-Select__sheet__done:hover {
793
776
  opacity: 0.9;
@@ -1,3 +1,7 @@
1
+ @import "../headline/Headline.css";
2
+ @import "../icon/Icon.css";
3
+ @import "../link/Link.css";
4
+
1
5
  @charset "UTF-8";
2
6
  /* stylelint-disable */
3
7
  /**
@@ -1,3 +1,5 @@
1
+ @import "../label/Label.css";
2
+
1
3
  /* stylelint-disable */
2
4
  /**
3
5
  * Calculates a rem-based value by a given pixel size.
@@ -1,3 +1,5 @@
1
+ @import "../icon/Icon.css";
2
+
1
3
  /* stylelint-disable */
2
4
  /**
3
5
  * Calculates a rem-based value by a given pixel size.
@@ -124,6 +126,42 @@
124
126
  * This mixin specifies basic text-styles for components that render a richtext
125
127
  * content.
126
128
  */
129
+ .prokodo-SnackbarProvider {
130
+ position: fixed;
131
+ z-index: 1400;
132
+ display: flex;
133
+ flex-direction: column;
134
+ gap: var(--pk-space-sm);
135
+ width: -moz-max-content;
136
+ width: max-content;
137
+ max-width: min(480px, 100vw - var(--pk-space-xl) * 2);
138
+ pointer-events: none;
139
+ }
140
+ .prokodo-SnackbarProvider > * {
141
+ pointer-events: auto;
142
+ }
143
+ .prokodo-SnackbarProvider--is-top {
144
+ top: var(--pk-space-lg);
145
+ bottom: auto;
146
+ }
147
+ .prokodo-SnackbarProvider--is-bottom {
148
+ bottom: var(--pk-space-lg);
149
+ top: auto;
150
+ }
151
+ .prokodo-SnackbarProvider--is-left {
152
+ left: var(--pk-space-lg);
153
+ right: auto;
154
+ }
155
+ .prokodo-SnackbarProvider--is-right {
156
+ right: var(--pk-space-lg);
157
+ left: auto;
158
+ }
159
+ .prokodo-SnackbarProvider--is-center {
160
+ left: 50%;
161
+ right: auto;
162
+ transform: translateX(-50%);
163
+ }
164
+
127
165
  @keyframes Snackbar_slideIn {
128
166
  from {
129
167
  opacity: 0;
@@ -124,6 +124,42 @@
124
124
  * This mixin specifies basic text-styles for components that render a richtext
125
125
  * content.
126
126
  */
127
+ .prokodo-SnackbarProvider {
128
+ position: fixed;
129
+ z-index: 1400;
130
+ display: flex;
131
+ flex-direction: column;
132
+ gap: var(--pk-space-sm);
133
+ width: -moz-max-content;
134
+ width: max-content;
135
+ max-width: min(480px, 100vw - var(--pk-space-xl) * 2);
136
+ pointer-events: none;
137
+ }
138
+ .prokodo-SnackbarProvider > * {
139
+ pointer-events: auto;
140
+ }
141
+ .prokodo-SnackbarProvider--is-top {
142
+ top: var(--pk-space-lg);
143
+ bottom: auto;
144
+ }
145
+ .prokodo-SnackbarProvider--is-bottom {
146
+ bottom: var(--pk-space-lg);
147
+ top: auto;
148
+ }
149
+ .prokodo-SnackbarProvider--is-left {
150
+ left: var(--pk-space-lg);
151
+ right: auto;
152
+ }
153
+ .prokodo-SnackbarProvider--is-right {
154
+ right: var(--pk-space-lg);
155
+ left: auto;
156
+ }
157
+ .prokodo-SnackbarProvider--is-center {
158
+ left: 50%;
159
+ right: auto;
160
+ transform: translateX(-50%);
161
+ }
162
+
127
163
  @keyframes Snackbar_slideIn {
128
164
  from {
129
165
  opacity: 0;