@prokodo/ui 0.0.51 → 0.0.53

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 (160) hide show
  1. package/README.md +81 -81
  2. package/dist/components/accordion/Accordion.client.js +3 -1
  3. package/dist/components/accordion/Accordion.view.js +100 -81
  4. package/dist/components/animated/Animated.server.js +3 -1
  5. package/dist/components/animatedText/AnimatedText.client.js +1 -7
  6. package/dist/components/animatedText/AnimatedText.view.js +4 -1
  7. package/dist/components/avatar/Avatar.view.js +2 -2
  8. package/dist/components/base-link/BaseLink.view.js +1 -1
  9. package/dist/components/button/Button.server.js +1 -8
  10. package/dist/components/calendly/Calendly.client.js +63 -54
  11. package/dist/components/calendly/Calendly.server.js +3 -1
  12. package/dist/components/card/Card.client.js +2 -1
  13. package/dist/components/card/Card.effects.client.js +5 -1
  14. package/dist/components/card/Card.view.js +19 -2
  15. package/dist/components/carousel/Carousel.client.js +36 -12
  16. package/dist/components/chip/Chip.view.js +10 -6
  17. package/dist/components/datePicker/DatePicker.client.js +53 -37
  18. package/dist/components/datePicker/DatePicker.view.js +3 -1
  19. package/dist/components/dialog/Dialog.client.js +22 -14
  20. package/dist/components/dialog/Dialog.view.js +10 -2
  21. package/dist/components/drawer/Drawer.base.module.scss.js +0 -24
  22. package/dist/components/drawer/Drawer.client.js +87 -47
  23. package/dist/components/drawer/Drawer.effects.client.js +78 -7
  24. package/dist/components/drawer/Drawer.server.js +1 -0
  25. package/dist/components/drawer/Drawer.view.js +13 -2
  26. package/dist/components/dynamic-list/DynamicList.client.js +8 -7
  27. package/dist/components/dynamic-list/DynamicList.server.js +10 -4
  28. package/dist/components/dynamic-list/DynamicList.view.js +1 -1
  29. package/dist/components/form/Form.client.js +16 -13
  30. package/dist/components/form/Form.view.js +8 -4
  31. package/dist/components/form/FormField.client.js +5 -5
  32. package/dist/components/form/FormField.server.js +3 -23
  33. package/dist/components/form/FormResponse.js +5 -1
  34. package/dist/components/grid/Grid.js +7 -2
  35. package/dist/components/grid/GridRow.js +12 -2
  36. package/dist/components/headline/Headline.js +3 -1
  37. package/dist/components/icon/Icon.js +8 -4
  38. package/dist/components/image-text/ImageText.js +5 -1
  39. package/dist/components/input/Input.client.js +52 -28
  40. package/dist/components/input/Input.view.js +92 -68
  41. package/dist/components/inputOTP/InputOTP.js +107 -90
  42. package/dist/components/label/Label.js +1 -8
  43. package/dist/components/link/Link.view.js +3 -1
  44. package/dist/components/list/List.js +94 -42
  45. package/dist/components/loading/Loading.client.js +15 -2
  46. package/dist/components/loading/Loading.server.js +8 -1
  47. package/dist/components/loading/Loading.view.js +30 -7
  48. package/dist/components/post-item/PostItem.client.js +18 -0
  49. package/dist/components/post-item/PostItem.js +7 -136
  50. package/dist/components/post-item/PostItem.lazy.js +14 -0
  51. package/dist/components/post-item/PostItem.module.scss.js +3 -1
  52. package/dist/components/post-item/PostItem.server.js +15 -0
  53. package/dist/components/post-item/PostItem.view.js +238 -0
  54. package/dist/components/post-item/PostItemAuthor.js +28 -22
  55. package/dist/components/post-teaser/PostTeaser.client.js +31 -0
  56. package/dist/components/post-teaser/PostTeaser.js +9 -169
  57. package/dist/components/post-teaser/PostTeaser.lazy.js +13 -0
  58. package/dist/components/post-teaser/PostTeaser.module.scss.js +3 -0
  59. package/dist/components/post-teaser/PostTeaser.server.js +23 -0
  60. package/dist/components/post-teaser/PostTeaser.view.js +252 -0
  61. package/dist/components/post-widget/PostWidget.client.js +9 -0
  62. package/dist/components/post-widget/PostWidget.js +11 -156
  63. package/dist/components/post-widget/PostWidget.lazy.js +13 -0
  64. package/dist/components/post-widget/PostWidget.module.scss.js +1 -0
  65. package/dist/components/post-widget/PostWidget.server.js +11 -0
  66. package/dist/components/post-widget/PostWidget.view.js +263 -0
  67. package/dist/components/post-widget-carousel/PostWidgetCarousel.client.js +9 -0
  68. package/dist/components/post-widget-carousel/PostWidgetCarousel.js +9 -160
  69. package/dist/components/post-widget-carousel/PostWidgetCarousel.lazy.js +13 -0
  70. package/dist/components/post-widget-carousel/PostWidgetCarousel.module.scss.js +3 -0
  71. package/dist/components/post-widget-carousel/PostWidgetCarousel.server.js +11 -0
  72. package/dist/components/post-widget-carousel/PostWidgetCarousel.view.js +244 -0
  73. package/dist/components/rich-text/RichText.client.js +7 -2
  74. package/dist/components/select/Select.view.js +132 -116
  75. package/dist/components/sidenav/SideNav.client.js +19 -18
  76. package/dist/components/sidenav/SideNav.server.js +8 -1
  77. package/dist/components/sidenav/SideNav.view.js +21 -3
  78. package/dist/components/skeleton/Skeleton.effects.client.js +3 -1
  79. package/dist/components/slider/Slider.client.js +56 -38
  80. package/dist/components/slider/Slider.view.js +1 -7
  81. package/dist/components/snackbar/SnackbarProvider.client.js +21 -22
  82. package/dist/components/stepper/Stepper.client.js +1 -8
  83. package/dist/components/switch/Switch.client.js +1 -6
  84. package/dist/components/switch/Switch.server.js +1 -3
  85. package/dist/components/table/Table.js +3 -1
  86. package/dist/components/table/TableCell.js +13 -1
  87. package/dist/components/teaser/Teaser.js +1 -5
  88. package/dist/constants/project.js +1 -1
  89. package/dist/helpers/createIsland.js +3 -1
  90. package/dist/helpers/createLazyWrapper.js +3 -1
  91. package/dist/helpers/date.js +21 -0
  92. package/dist/tsconfig.build.tsbuildinfo +1 -1
  93. package/dist/types/components/accordion/Accordion.model.d.ts +1 -1
  94. package/dist/types/components/animated/Animated.client.d.ts +2 -2
  95. package/dist/types/components/animated/Animated.model.d.ts +1 -1
  96. package/dist/types/components/button/Button.client.d.ts +1 -1
  97. package/dist/types/components/button/Button.d.ts +1 -1
  98. package/dist/types/components/button/Button.lazy.d.ts +1 -1
  99. package/dist/types/components/button/Button.server.d.ts +1 -1
  100. package/dist/types/components/button/Button.view.d.ts +1 -1
  101. package/dist/types/components/card/Card.effects.client.d.ts +1 -1
  102. package/dist/types/components/card/index.d.ts +1 -1
  103. package/dist/types/components/carousel/Carousel.d.ts +3 -0
  104. package/dist/types/components/carousel/Carousel.lazy.d.ts +3 -0
  105. package/dist/types/components/carousel/Carousel.model.d.ts +4 -0
  106. package/dist/types/components/dialog/Dialog.client.d.ts +1 -1
  107. package/dist/types/components/dialog/Dialog.model.d.ts +4 -4
  108. package/dist/types/components/dialog/Dialog.view.d.ts +2 -2
  109. package/dist/types/components/drawer/Drawer.client.d.ts +1 -1
  110. package/dist/types/components/drawer/Drawer.d.ts +1 -1
  111. package/dist/types/components/drawer/Drawer.effects.client.d.ts +6 -2
  112. package/dist/types/components/drawer/Drawer.lazy.d.ts +1 -1
  113. package/dist/types/components/drawer/Drawer.model.d.ts +6 -6
  114. package/dist/types/components/drawer/Drawer.server.d.ts +1 -1
  115. package/dist/types/components/drawer/Drawer.view.d.ts +2 -2
  116. package/dist/types/components/drawer/index.d.ts +1 -1
  117. package/dist/types/components/icon/IconList.d.ts +1 -1
  118. package/dist/types/components/icon/index.d.ts +1 -1
  119. package/dist/types/components/image/Image.model.d.ts +2 -2
  120. package/dist/types/components/link/Link.d.ts +1 -1
  121. package/dist/types/components/link/Link.model.d.ts +1 -1
  122. package/dist/types/components/link/Link.server.d.ts +1 -1
  123. package/dist/types/components/loading/index.d.ts +1 -1
  124. package/dist/types/components/post-item/PostItem.client.d.ts +4 -0
  125. package/dist/types/components/post-item/PostItem.d.ts +3 -2
  126. package/dist/types/components/post-item/PostItem.lazy.d.ts +5 -0
  127. package/dist/types/components/post-item/PostItem.model.d.ts +46 -6
  128. package/dist/types/components/post-item/PostItem.server.d.ts +3 -0
  129. package/dist/types/components/post-item/PostItem.view.d.ts +3 -0
  130. package/dist/types/components/post-item/PostItemAuthor.model.d.ts +5 -8
  131. package/dist/types/components/post-item/index.d.ts +2 -2
  132. package/dist/types/components/post-teaser/PostTeaser.client.d.ts +4 -0
  133. package/dist/types/components/post-teaser/PostTeaser.d.ts +3 -2
  134. package/dist/types/components/post-teaser/PostTeaser.lazy.d.ts +5 -0
  135. package/dist/types/components/post-teaser/PostTeaser.model.d.ts +49 -3
  136. package/dist/types/components/post-teaser/PostTeaser.server.d.ts +3 -0
  137. package/dist/types/components/post-teaser/PostTeaser.view.d.ts +3 -0
  138. package/dist/types/components/post-teaser/index.d.ts +1 -1
  139. package/dist/types/components/post-widget/PostWidget.client.d.ts +4 -0
  140. package/dist/types/components/post-widget/PostWidget.d.ts +13 -3
  141. package/dist/types/components/post-widget/PostWidget.lazy.d.ts +14 -0
  142. package/dist/types/components/post-widget/PostWidget.model.d.ts +53 -3
  143. package/dist/types/components/post-widget/PostWidget.server.d.ts +3 -0
  144. package/dist/types/components/post-widget/PostWidget.view.d.ts +3 -0
  145. package/dist/types/components/post-widget/index.d.ts +1 -1
  146. package/dist/types/components/post-widget-carousel/PostWidgetCarousel.client.d.ts +3 -0
  147. package/dist/types/components/post-widget-carousel/PostWidgetCarousel.d.ts +11 -3
  148. package/dist/types/components/post-widget-carousel/PostWidgetCarousel.lazy.d.ts +12 -0
  149. package/dist/types/components/post-widget-carousel/PostWidgetCarousel.model.d.ts +39 -0
  150. package/dist/types/components/post-widget-carousel/PostWidgetCarousel.server.d.ts +3 -0
  151. package/dist/types/components/post-widget-carousel/PostWidgetCarousel.view.d.ts +3 -0
  152. package/dist/types/components/post-widget-carousel/index.d.ts +1 -1
  153. package/dist/types/components/sidenav/index.d.ts +1 -1
  154. package/dist/types/components/skeleton/Skeleton.effects.client.d.ts +2 -2
  155. package/dist/types/helpers/createIsland.d.ts +1 -1
  156. package/dist/types/helpers/createLazyWrapper.d.ts +1 -1
  157. package/dist/types/helpers/date.d.ts +5 -0
  158. package/dist/ui.css +132 -280
  159. package/package.json +3 -2
  160. package/dist/components/drawer/Drawer.effects.module.scss.js +0 -29
package/dist/ui.css CHANGED
@@ -1412,7 +1412,6 @@ html[data-theme=dark] .prokodo-Button--has-variant-outlined {
1412
1412
  background: none;
1413
1413
  }
1414
1414
  .prokodo-Button--has-icon {
1415
- display: flex;
1416
1415
  align-items: center;
1417
1416
  }
1418
1417
  .prokodo-Button--icon-only {
@@ -1785,7 +1784,6 @@ html[data-theme=dark] .prokodo-Button--icon-only {
1785
1784
  display: flex;
1786
1785
  justify-content: center;
1787
1786
  align-items: center;
1788
- padding: 0.5rem;
1789
1787
  border-radius: 200px;
1790
1788
  overflow: hidden;
1791
1789
  background-color: var(--color-grey-100);
@@ -1812,7 +1810,6 @@ html[data-theme=dark] .prokodo-Button--icon-only {
1812
1810
  background-color: var(--color-white);
1813
1811
  }
1814
1812
  .prokodo-Avatar--has-size-xs {
1815
- padding: 0.25rem;
1816
1813
  width: 30px;
1817
1814
  height: 30px;
1818
1815
  }
@@ -1833,8 +1830,14 @@ html[data-theme=dark] .prokodo-Button--icon-only {
1833
1830
  height: 100px;
1834
1831
  }
1835
1832
  .prokodo-Avatar__image {
1833
+ width: 100%;
1834
+ height: 100%;
1835
+ display: block;
1836
1836
  -o-object-fit: cover;
1837
1837
  object-fit: cover;
1838
+ -o-object-position: center;
1839
+ object-position: center;
1840
+ border-radius: 100%;
1838
1841
  }
1839
1842
  .prokodo-Avatar__link {
1840
1843
  box-shadow: var(--elevation-1);
@@ -2166,13 +2169,11 @@ html[data-theme=dark] .prokodo-Card--white {
2166
2169
  background-repeat: no-repeat;
2167
2170
  background-position: center;
2168
2171
  background-size: cover;
2169
- border-radius: 2rem;
2170
2172
  }
2171
2173
  html[data-theme=dark] .prokodo-Card__background {
2172
2174
  opacity: 0.7;
2173
2175
  }
2174
2176
  .prokodo-Card__link {
2175
- display: flex;
2176
2177
  align-items: center;
2177
2178
  }
2178
2179
  .prokodo-Card__link:hover {
@@ -2196,7 +2197,10 @@ html[data-theme=dark] .prokodo-Card__background {
2196
2197
  /* keep the gradient *class hooks*, but DO NOT include animated keyframes here */
2197
2198
  }
2198
2199
  .prokodo-Card__gradiant {
2199
- position: relative;
2200
+ position: absolute;
2201
+ width: 100%;
2202
+ height: 100%;
2203
+ top: 0;
2200
2204
  border-radius: 2rem;
2201
2205
  }
2202
2206
  .prokodo-Card__gradiant--primary {
@@ -3869,7 +3873,7 @@ html[data-theme=dark] .prokodo-Label__text {
3869
3873
  * content.
3870
3874
  */
3871
3875
  .prokodo-Drawer {
3872
- /* Backdrop */
3876
+ /* Backdrop (unchanged, fades in) */
3873
3877
  }
3874
3878
  .prokodo-Drawer__backdrop {
3875
3879
  position: fixed;
@@ -3890,7 +3894,7 @@ html[data-theme=dark] .prokodo-Label__text {
3890
3894
  }
3891
3895
  }
3892
3896
  .prokodo-Drawer {
3893
- /* Container */
3897
+ /* Container (slide + fade via transitions) */
3894
3898
  }
3895
3899
  .prokodo-Drawer__container {
3896
3900
  position: fixed;
@@ -3900,15 +3904,15 @@ html[data-theme=dark] .prokodo-Label__text {
3900
3904
  pointer-events: none;
3901
3905
  width: 300px;
3902
3906
  height: 100%;
3907
+ overscroll-behavior: contain;
3908
+ /* The important part: animate transform/opacity */
3909
+ opacity: 0;
3910
+ will-change: transform, opacity;
3911
+ transition: transform 0.3s ease, opacity 0.3s ease;
3903
3912
  }
3904
3913
  .prokodo-Drawer__container--open {
3905
3914
  pointer-events: auto;
3906
- }
3907
- @media (prefers-reduced-motion: reduce) {
3908
- .prokodo-Drawer__container--open {
3909
- transform: translateX(0) translateY(0);
3910
- opacity: 1;
3911
- }
3915
+ opacity: 1;
3912
3916
  }
3913
3917
  .prokodo-Drawer__container--fullscreen {
3914
3918
  width: 100vw !important;
@@ -3929,27 +3933,20 @@ html[data-theme=dark] .prokodo-Label__text {
3929
3933
  transform: translateX(-100%);
3930
3934
  }
3931
3935
  .prokodo-Drawer__container--anchor-left--open {
3932
- animation: DrawerSlideInLeft 0.3s ease forwards;
3933
- }
3934
- .prokodo-Drawer__container--anchor-left:not(.prokodo-Drawer__container--anchor-left--open) {
3935
- animation: DrawerSlideOutLeft 0.3s ease forwards;
3936
+ transform: translateX(0);
3936
3937
  }
3937
3938
  .prokodo-Drawer__container {
3938
3939
  /* Anchor: right */
3939
3940
  }
3940
3941
  .prokodo-Drawer__container--anchor-right {
3941
3942
  top: 0;
3942
- left: auto;
3943
3943
  right: 0;
3944
3944
  width: 80vw;
3945
3945
  height: 100vh;
3946
3946
  transform: translateX(100%);
3947
3947
  }
3948
3948
  .prokodo-Drawer__container--anchor-right--open {
3949
- animation: DrawerSlideInRight 0.3s ease forwards;
3950
- }
3951
- .prokodo-Drawer__container--anchor-right:not(.prokodo-Drawer__container--anchor-right--open) {
3952
- animation: DrawerSlideOutRight 0.3s ease forwards;
3949
+ transform: translateX(0);
3953
3950
  }
3954
3951
  .prokodo-Drawer__container {
3955
3952
  /* Anchor: top */
@@ -3962,10 +3959,7 @@ html[data-theme=dark] .prokodo-Label__text {
3962
3959
  transform: translateY(-100%);
3963
3960
  }
3964
3961
  .prokodo-Drawer__container--anchor-top--open {
3965
- animation: DrawerSlideInTop 0.3s ease forwards;
3966
- }
3967
- .prokodo-Drawer__container--anchor-top:not(.prokodo-Drawer__container--anchor-top--open) {
3968
- animation: DrawerSlideOutTop 0.3s ease forwards;
3962
+ transform: translateY(0);
3969
3963
  }
3970
3964
  .prokodo-Drawer__container {
3971
3965
  /* Anchor: bottom */
@@ -3978,15 +3972,13 @@ html[data-theme=dark] .prokodo-Label__text {
3978
3972
  transform: translateY(100%);
3979
3973
  }
3980
3974
  .prokodo-Drawer__container--anchor-bottom--open {
3981
- animation: DrawerSlideInBottom 0.3s ease forwards;
3982
- }
3983
- .prokodo-Drawer__container--anchor-bottom:not(.prokodo-Drawer__container--anchor-bottom--open) {
3984
- animation: DrawerSlideOutBottom 0.3s ease forwards;
3975
+ transform: translateY(0);
3985
3976
  }
3986
3977
  @media (prefers-reduced-motion: reduce) {
3987
3978
  .prokodo-Drawer__container {
3988
- animation: none !important;
3989
3979
  transition: none !important;
3980
+ transform: translateX(0) translateY(0) !important;
3981
+ opacity: 1 !important;
3990
3982
  }
3991
3983
  }
3992
3984
  .prokodo-Drawer {
@@ -4004,8 +3996,9 @@ html[data-theme=dark] .prokodo-Label__text {
4004
3996
  }
4005
3997
  .prokodo-Drawer__content {
4006
3998
  padding: 1rem;
3999
+ max-height: calc(100% - 7rem);
4007
4000
  overflow-y: auto;
4008
- max-height: calc(100% - 3rem);
4001
+ -webkit-overflow-scrolling: touch;
4009
4002
  }
4010
4003
  /* stylelint-disable */
4011
4004
  /**
@@ -6962,7 +6955,8 @@ html[data-theme=dark] .prokodo-List__item__icon {
6962
6955
  .prokodo-InputOTP__input__node {
6963
6956
  width: 100%;
6964
6957
  padding: 0.5rem 1rem;
6965
- }/* stylelint-disable */
6958
+ }
6959
+ /* stylelint-disable */
6966
6960
  /**
6967
6961
  * Calculates a rem-based value by a given pixel size.
6968
6962
  */
@@ -7089,23 +7083,48 @@ html[data-theme=dark] .prokodo-List__item__icon {
7089
7083
  * content.
7090
7084
  */
7091
7085
  .prokodo-PostItem__grid {
7092
- align-items: center;
7093
- justify-content: space-between;
7094
- flex-direction: column-reverse !important;
7086
+ /* Mobile: stacked, image on top via order */
7087
+ display: flex;
7088
+ flex-direction: column-reverse;
7089
+ gap: 1rem;
7090
+ align-items: stretch;
7095
7091
  }
7096
7092
  @media screen and (min-width: 960px) {
7097
7093
  .prokodo-PostItem__grid {
7098
- flex-direction: row-reverse !important;
7094
+ flex-direction: row;
7095
+ align-items: flex-start;
7096
+ gap: 1.5rem;
7099
7097
  }
7100
7098
  }
7101
- .prokodo-PostItem__animation {
7102
- transform: translate(0, 20vh);
7099
+ .prokodo-PostItem__media {
7100
+ order: 1;
7101
+ width: 100%;
7102
+ min-width: 0;
7103
7103
  }
7104
- @media screen and (min-width: 480px) {
7105
- .prokodo-PostItem__animation {
7106
- transform: translate(20vh, 0);
7104
+ @media screen and (min-width: 960px) {
7105
+ .prokodo-PostItem__media {
7106
+ order: 0;
7107
+ flex: 0 1 33.3333%;
7108
+ max-width: 33.333%;
7109
+ min-width: 0; /* prevent overflow pushing layout */
7110
+ }
7111
+ }
7112
+ .prokodo-PostItem__main {
7113
+ order: 0;
7114
+ width: 100%;
7115
+ min-width: 0;
7116
+ }
7117
+ @media screen and (min-width: 960px) {
7118
+ .prokodo-PostItem__main {
7119
+ order: 1;
7120
+ flex: 0 1 66.666%;
7121
+ max-width: 66.666%;
7122
+ min-width: 0;
7107
7123
  }
7108
7124
  }
7125
+ .prokodo-PostItem__animation {
7126
+ transform: none;
7127
+ }
7109
7128
  .prokodo-PostItem__headline {
7110
7129
  display: -webkit-box;
7111
7130
  -webkit-line-clamp: 2;
@@ -7168,6 +7187,8 @@ html[data-theme=dark] .prokodo-List__item__icon {
7168
7187
  .prokodo-PostItem__content {
7169
7188
  display: flex;
7170
7189
  align-items: center;
7190
+ min-width: 0; /* ← prevent long lines from forcing column wider */
7191
+ overflow-wrap: anywhere; /* ← allow breaking long words/URLs */
7171
7192
  font-weight: 400;
7172
7193
  font-size: 1.125rem;
7173
7194
  font-family: var(--font-secondary), -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
@@ -7197,28 +7218,29 @@ html[data-theme=dark] .prokodo-List__item__icon {
7197
7218
  -webkit-box-orient: vertical;
7198
7219
  overflow: hidden;
7199
7220
  }
7221
+ .prokodo-PostItem__content__paragraph > p {
7222
+ margin: 0.5rem 0.25rem;
7223
+ }
7200
7224
  .prokodo-PostItem__image {
7225
+ min-height: 300px;
7201
7226
  min-height: 300px;
7202
7227
  -o-object-fit: cover;
7203
7228
  object-fit: cover;
7204
7229
  }
7230
+ .prokodo-PostItem__image__content__wrapper {
7231
+ padding: 0;
7232
+ }
7205
7233
  .prokodo-PostItem__image__wrapper {
7206
7234
  width: 100%;
7235
+ min-width: 300px;
7207
7236
  min-height: 300px;
7208
7237
  border-radius: 25px;
7209
7238
  overflow: hidden;
7210
- transform: translate(0, 20vh);
7211
- }
7212
- @media screen and (min-width: 480px) {
7213
- .prokodo-PostItem__image__wrapper {
7214
- transform: translate(-20vh, 0);
7215
- }
7216
- }
7217
- .prokodo-PostItem__image__content__wrapper {
7218
- display: block;
7239
+ transform: none; /* prevent overlay */
7219
7240
  }
7220
7241
  .prokodo-PostItem__button {
7221
7242
  width: 100%;
7243
+ margin-top: 1rem;
7222
7244
  }
7223
7245
  .prokodo-PostItem__button__content {
7224
7246
  justify-content: flex-start;
@@ -7526,7 +7548,7 @@ html[data-theme=dark] .prokodo-List__item__icon {
7526
7548
  align-items: center;
7527
7549
  justify-content: space-between;
7528
7550
  margin-top: auto;
7529
- padding: 0 1rem 1rem 1rem;
7551
+ padding: 1rem;
7530
7552
  }
7531
7553
  .prokodo-PostTeaser__meta {
7532
7554
  position: absolute;
@@ -7546,7 +7568,17 @@ html[data-theme=dark] .prokodo-List__item__icon {
7546
7568
  -webkit-box-orient: vertical;
7547
7569
  overflow: hidden;
7548
7570
  }
7571
+ .prokodo-PostTeaser__meta__readcount {
7572
+ margin: 0;
7573
+ }
7574
+ .prokodo-PostTeaser__meta__readcount__wrapper {
7575
+ display: flex;
7576
+ gap: 0.5rem;
7577
+ }
7549
7578
  .prokodo-PostTeaser__image {
7579
+ display: block;
7580
+ width: 100%;
7581
+ height: 100%;
7550
7582
  -o-object-fit: cover;
7551
7583
  object-fit: cover;
7552
7584
  }
@@ -7554,6 +7586,13 @@ html[data-theme=dark] .prokodo-List__item__icon {
7554
7586
  position: relative;
7555
7587
  width: 100%;
7556
7588
  height: 230px;
7589
+ overflow: hidden;
7590
+ }
7591
+ .prokodo-PostTeaser__image__container {
7592
+ position: absolute;
7593
+ inset: 0;
7594
+ width: 100%;
7595
+ height: 100%;
7557
7596
  }
7558
7597
  .prokodo-PostTeaser__image__caption {
7559
7598
  bottom: 0.5rem;
@@ -7623,7 +7662,8 @@ html[data-theme=dark] .prokodo-List__item__icon {
7623
7662
  }
7624
7663
  .prokodo-PostTeaser__link--is-hovered {
7625
7664
  color: var(--color-primary-500) !important;
7626
- }/* stylelint-disable */
7665
+ }
7666
+ /* stylelint-disable */
7627
7667
  /**
7628
7668
  * Calculates a rem-based value by a given pixel size.
7629
7669
  */
@@ -7757,19 +7797,27 @@ html[data-theme=dark] .prokodo-List__item__icon {
7757
7797
  .prokodo-PostWidget__list--has-fullWidth {
7758
7798
  display: flex;
7759
7799
  flex-wrap: wrap;
7800
+ gap: 1rem;
7760
7801
  }
7761
7802
  .prokodo-PostWidget__list__item {
7762
7803
  display: block;
7763
7804
  margin-top: 1rem;
7764
7805
  }
7765
7806
  .prokodo-PostWidget__list__item--has-fullWidth {
7766
- width: 50%;
7807
+ width: 100%;
7808
+ }
7809
+ @media screen and (min-width: 480px) {
7810
+ .prokodo-PostWidget__list__item--has-fullWidth {
7811
+ width: calc(50% - 0.5rem);
7812
+ }
7767
7813
  }
7768
7814
  .prokodo-PostWidget__list__item__content {
7769
7815
  display: flex;
7770
7816
  justify-content: flex-start;
7771
7817
  }
7772
7818
  .prokodo-PostWidget__image {
7819
+ width: 100%;
7820
+ height: 100%;
7773
7821
  -o-object-fit: cover;
7774
7822
  object-fit: cover;
7775
7823
  }
@@ -7783,10 +7831,20 @@ html[data-theme=dark] .prokodo-List__item__icon {
7783
7831
  border-radius: 13px;
7784
7832
  overflow: hidden;
7785
7833
  }
7834
+ .prokodo-PostWidget__image {
7835
+ /* This is the Image component’s container to force fill */
7836
+ }
7837
+ .prokodo-PostWidget__image__container {
7838
+ position: absolute;
7839
+ inset: 0;
7840
+ width: 100%;
7841
+ height: 100%;
7842
+ }
7786
7843
  .prokodo-PostWidget__content {
7787
7844
  display: flex;
7788
7845
  flex-direction: column;
7789
7846
  justify-content: space-between;
7847
+ min-width: 0;
7790
7848
  }
7791
7849
  .prokodo-PostWidget__headline {
7792
7850
  display: -webkit-box;
@@ -7945,25 +8003,37 @@ html[data-theme=dark] .prokodo-List__item__icon {
7945
8003
  * This mixin specifies basic text-styles for components that render a richtext
7946
8004
  * content.
7947
8005
  */
8006
+ .prokodo-PostWidgetCarousel__card {
8007
+ padding-bottom: 0;
8008
+ }
7948
8009
  .prokodo-PostWidgetCarousel__carousel {
7949
8010
  position: relative;
7950
- width: 100%;
7951
- overflow: hidden;
7952
8011
  margin-top: 1.5rem;
7953
8012
  }
8013
+ .prokodo-PostWidgetCarousel__carousel__wrapper {
8014
+ padding-bottom: 1rem;
8015
+ }
7954
8016
  .prokodo-PostWidgetCarousel__carousel__item__image__link {
7955
8017
  position: relative;
7956
8018
  width: 100%;
7957
- height: 200px;
8019
+ height: clamp(180px, 30vw, 420px);
7958
8020
  display: block;
7959
8021
  line-height: 0;
7960
8022
  border-radius: 13px;
7961
8023
  overflow: hidden;
7962
8024
  }
7963
8025
  .prokodo-PostWidgetCarousel__carousel__item__image {
8026
+ width: 100%;
8027
+ height: 100%;
7964
8028
  -o-object-fit: cover;
7965
8029
  object-fit: cover;
7966
8030
  }
8031
+ .prokodo-PostWidgetCarousel__carousel__item__image__container {
8032
+ position: absolute;
8033
+ inset: 0;
8034
+ width: 100%;
8035
+ height: 100%;
8036
+ }
7967
8037
  .prokodo-PostWidgetCarousel__carousel__item__link {
7968
8038
  position: relative;
7969
8039
  display: block;
@@ -7974,14 +8044,14 @@ html[data-theme=dark] .prokodo-List__item__icon {
7974
8044
  .prokodo-PostWidgetCarousel__carousel__buttons {
7975
8045
  position: absolute;
7976
8046
  bottom: 0.75rem;
7977
- right: 1rem;
8047
+ right: 0.5rem;
7978
8048
  display: flex;
7979
8049
  flex-direction: row;
7980
- justify-content: space-between;
7981
- min-width: 100px;
8050
+ max-width: 100px;
8051
+ gap: 0.5rem;
8052
+ z-index: 2;
7982
8053
  }
7983
8054
  .prokodo-PostWidgetCarousel__headline {
7984
- width: 75%;
7985
8055
  margin-top: 0.75rem !important;
7986
8056
  display: -webkit-box;
7987
8057
  -webkit-line-clamp: 2;
@@ -10471,222 +10541,4 @@ html[data-theme=dark] .prokodo-List__item__icon {
10471
10541
  * {
10472
10542
  animation: none !important;
10473
10543
  }
10474
- }/* stylelint-disable */
10475
- /**
10476
- * Calculates a rem-based value by a given pixel size.
10477
- */
10478
- /* stylelint-disable */
10479
- /**
10480
- * Applies flex-column and gap.
10481
- */
10482
- /*
10483
- As example (light, primary)
10484
- See defined modes in designsystem/config/gradients
10485
- */
10486
- /**
10487
- * Mixin that renders a media query that target screens that are larger than the
10488
- * given size.
10489
- */
10490
- /**
10491
- * Mixin that renders a media query that target screens that are smaller than the
10492
- * given size.
10493
- */
10494
- /**
10495
- * Mixin that renders a media query that target screens in between the given range.
10496
- */
10497
- /**
10498
- * Mixin that renders a media query that target screens that have height larger than the
10499
- * given size.
10500
- */
10501
- /**
10502
- * Mixin that renders a media query that target screens that have height smaller than the
10503
- * given size.
10504
- */
10505
- /* stylelint-disable */
10506
- /* M3/Elevation Light/1 */
10507
- /* M3/Elevation Light/2 */
10508
- /* M3/Elevation/5 */
10509
- /* M3/Elevation/1 Text */
10510
- /* Inner elevations */
10511
- /* stylelint-disable */
10512
- /**
10513
- * Visually hides an element but not removes them for screen readers.
10514
- */
10515
- /**
10516
- * The inverse of the `hidden` helper to reset a previously hidden element to be
10517
- * visible for users.
10518
- */
10519
- /**
10520
- * Creates a selector for :hover effects depending on the current user input
10521
- * device. If the input device is a mouse, this hover effect will appear.
10522
- * Keyboard and touch inputs are ignored.
10523
- *
10524
- * Example usage:
10525
- * .link {
10526
- * color: blue;
10527
- *
10528
- * @include when-hovered() {
10529
- * color: green;
10530
- * }
10531
- * }
10532
- */
10533
- /**
10534
- * Creates a selector for :active effects depending on the current user input
10535
- * device. The state applies when the input device is a mouse or keyboard. Touch
10536
- * devices will not show a pressed state.
10537
- *
10538
- * Example usage:
10539
- * .link {
10540
- * box-shadow: none;
10541
- *
10542
- * @include when-pressed() {
10543
- * box-shadow: inset 0 2px 4px grey;
10544
- * }
10545
- * }
10546
- */
10547
- /**
10548
- * Creates a selector for :focus effects depending on the current user input
10549
- * device. When the user navigates using a keyboard, the focus effect defined in
10550
- * here is applied. For other input devices they don't show up.
10551
- *
10552
- * Example usage:
10553
- * .link {
10554
- * text-decoration: none;
10555
- *
10556
- * @include when-focused() {
10557
- * text-decoration: underline;
10558
- * }
10559
- * }
10560
- */
10561
- /**
10562
- * Creates a selector for :focus-within effects depending on the current user
10563
- * input device. When the user navigates using a keyboard, the focus effect
10564
- * defined in here is applied. For other input devices they don't show up.
10565
- *
10566
- * Example usage:
10567
- * .link {
10568
- * img {
10569
- * opacity: 0.75;
10570
- *
10571
- * @include when-focused-within() {
10572
- * opacity: 1;
10573
- * }
10574
- * }
10575
- * }
10576
- */
10577
- /**
10578
- * Wrapper for media query "prefers-reduced-motion".
10579
- */
10580
- /**
10581
- * This helper hides the outline but still makes it visible for
10582
- * Windows high-contrast users. Use this instead of `outline: 0;`.
10583
- */
10584
- /**
10585
- * This helper hides the outline but still makes it visible for
10586
- * Windows high-contrast users. Use this instead of `outline: 0;`.
10587
- */
10588
- /**
10589
- * Renders an alternative, but application consistent focus-ring.
10590
- */
10591
- /**
10592
- * Specifies the outer layout for all contents across breakpoints. Apply this
10593
- * mixin to the container element, to center the contents on the screen within
10594
- * the layout offsets.
10595
- */
10596
- /**
10597
- * This mixin specifies basic text-styles for components that render a richtext
10598
- * content.
10599
- */
10600
- /* Keep all keyframes/effects out of the render-blocking bundle. Make them GLOBAL. */
10601
- {
10602
- /* Left */
10603
- }
10604
- @keyframes DrawerSlideInLeft {
10605
- 0% {
10606
- transform: translateX(-100%);
10607
- opacity: 0;
10608
- }
10609
- 100% {
10610
- transform: translateX(0);
10611
- opacity: 1;
10612
- }
10613
- }
10614
- @keyframes DrawerSlideOutLeft {
10615
- 0% {
10616
- transform: translateX(0);
10617
- opacity: 1;
10618
- }
10619
- 100% {
10620
- transform: translateX(-100%);
10621
- opacity: 0;
10622
- }
10623
- }
10624
- {
10625
- /* Right */
10626
- }
10627
- @keyframes DrawerSlideInRight {
10628
- 0% {
10629
- transform: translateX(100%);
10630
- opacity: 0;
10631
- }
10632
- 100% {
10633
- transform: translateX(0);
10634
- opacity: 1;
10635
- }
10636
- }
10637
- @keyframes DrawerSlideOutRight {
10638
- 0% {
10639
- transform: translateX(0);
10640
- opacity: 1;
10641
- }
10642
- 100% {
10643
- transform: translateX(100%);
10644
- opacity: 0;
10645
- }
10646
- }
10647
- {
10648
- /* Top */
10649
- }
10650
- @keyframes DrawerSlideInTop {
10651
- 0% {
10652
- transform: translateY(-100%);
10653
- opacity: 0;
10654
- }
10655
- 100% {
10656
- transform: translateY(0);
10657
- opacity: 1;
10658
- }
10659
- }
10660
- @keyframes DrawerSlideOutTop {
10661
- 0% {
10662
- transform: translateY(0);
10663
- opacity: 1;
10664
- }
10665
- 100% {
10666
- transform: translateY(-100%);
10667
- opacity: 0;
10668
- }
10669
- }
10670
- {
10671
- /* Bottom */
10672
- }
10673
- @keyframes DrawerSlideInBottom {
10674
- 0% {
10675
- transform: translateY(100%);
10676
- opacity: 0;
10677
- }
10678
- 100% {
10679
- transform: translateY(0);
10680
- opacity: 1;
10681
- }
10682
- }
10683
- @keyframes DrawerSlideOutBottom {
10684
- 0% {
10685
- transform: translateY(0);
10686
- opacity: 1;
10687
- }
10688
- 100% {
10689
- transform: translateY(100%);
10690
- opacity: 0;
10691
- }
10692
10544
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prokodo/ui",
3
- "version": "0.0.51",
3
+ "version": "0.0.53",
4
4
  "type": "module",
5
5
  "description": "UI components for production-grade Next.js + Headless CMS (Strapi, Contentful, Headless WordPress) websites by prokodo – built for Core Web Vitals & SEO.",
6
6
  "sideEffects": false,
@@ -335,9 +335,10 @@
335
335
  "build": "vite build && pnpm build:types && node tools/update-exports.mjs",
336
336
  "build:types": "tsc --project tsconfig.build.json",
337
337
  "typecheck": "tsc --project tsconfig.typecheck.json",
338
- "test": "NODE_ENV=test jest --coverage --verbose && pnpm lint && pnpm typecheck",
338
+ "test": "NODE_ENV=test jest --coverage --verbose && pnpm format && pnpm lint && pnpm typecheck",
339
339
  "test:watch": "NODE_ENV=test jest --watch",
340
340
  "test:ci": "NODE_ENV=test jest --runInBand --ci",
341
+ "fix": "pnpm format:fix && pnpm lint:fix",
341
342
  "lint": "eslint 'src/**/*.{ts,tsx}' --cache --cache-location .eslintcache",
342
343
  "lint:fix": "eslint 'src/**/*.{ts,tsx}' --fix --cache --cache-location .eslintcache",
343
344
  "format": "prettier --check .",
@@ -1,29 +0,0 @@
1
- const DrawerSlideInLeft = "DrawerSlideInLeft";
2
- const DrawerSlideOutLeft = "DrawerSlideOutLeft";
3
- const DrawerSlideInRight = "DrawerSlideInRight";
4
- const DrawerSlideOutRight = "DrawerSlideOutRight";
5
- const DrawerSlideInTop = "DrawerSlideInTop";
6
- const DrawerSlideOutTop = "DrawerSlideOutTop";
7
- const DrawerSlideInBottom = "DrawerSlideInBottom";
8
- const DrawerSlideOutBottom = "DrawerSlideOutBottom";
9
- const Drawer_effects_module = {
10
- DrawerSlideInLeft,
11
- DrawerSlideOutLeft,
12
- DrawerSlideInRight,
13
- DrawerSlideOutRight,
14
- DrawerSlideInTop,
15
- DrawerSlideOutTop,
16
- DrawerSlideInBottom,
17
- DrawerSlideOutBottom
18
- };
19
- export {
20
- DrawerSlideInBottom,
21
- DrawerSlideInLeft,
22
- DrawerSlideInRight,
23
- DrawerSlideInTop,
24
- DrawerSlideOutBottom,
25
- DrawerSlideOutLeft,
26
- DrawerSlideOutRight,
27
- DrawerSlideOutTop,
28
- Drawer_effects_module as default
29
- };