@prokodo/ui 0.0.45 → 0.0.46

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.
@@ -89,6 +89,7 @@ export type FormViewProps = FormProps & {
89
89
  formState: Omit<FormField, "onChange">[];
90
90
  formMessages?: FormMessages;
91
91
  honeypot: InputHTMLAttributes<HTMLInputElement>;
92
+ isHoneypotEmpty?: boolean;
92
93
  fieldProps?: FormFieldProps;
93
94
  onFormSubmit: (e: FormEvent<HTMLFormElement>) => void;
94
95
  isFormValid: boolean;
package/dist/ui.css CHANGED
@@ -147,12 +147,12 @@
147
147
  * This mixin specifies basic text-styles for components that render a richtext
148
148
  * content.
149
149
  */
150
- @keyframes backgroundFill {
151
- 0% {
152
- background-position: 0 0;
150
+ @keyframes accordionBorderShift {
151
+ from {
152
+ background-position: 0 0, 0% 0;
153
153
  }
154
- 33%, 100% {
155
- background-position: -100% 0;
154
+ to {
155
+ background-position: 0 0, 200% 0;
156
156
  }
157
157
  }
158
158
  .prokodo-Accordion {
@@ -179,24 +179,59 @@
179
179
  background-size: 200% 100%;
180
180
  background-image: linear-gradient(to left, var(--color-primary-500) 25%, var(--color-secondary-500) 50%, var(--color-white) 50%);
181
181
  transition: background-color 0.3s ease;
182
+ /* Reserve border space (no layout jump) */
183
+ border: 2px solid transparent;
184
+ border-radius: 12px;
185
+ /* Two-background trick: inner fill + border gradient */
186
+ background: linear-gradient(var(--header-bg, var(--color-white)), var(--header-bg, var(--color-white))) padding-box, linear-gradient(90deg, var(--color-primary-500), var(--color-secondary-500), var(--color-primary-500)) border-box;
187
+ /* Hide the border layer initially */
188
+ background-size: 100% 100%, 0% 100%;
189
+ background-position: 0 0, 0 0;
190
+ background-repeat: no-repeat;
191
+ transition: color 0.3s ease, background-size 0.35s ease;
182
192
  }
183
193
  .prokodo-Accordion__header:hover, .prokodo-Accordion__header:focus-visible {
184
- color: var(--color-grey-50) !important;
185
- animation: backgroundFill 2s ease;
194
+ /* Reveal + animate ONLY the border layer */
195
+ background-size: 100% 100%, 200% 100%;
196
+ animation: accordionBorderShift 2s linear;
186
197
  }
187
198
  .prokodo-Accordion__header--is-expanded {
188
- color: var(--color-grey-50) !important;
199
+ position: relative;
200
+ z-index: 2;
201
+ /* Keep border visible, stop the animation */
202
+ background-size: 100% 100%, 100% 100%;
203
+ background-position: 0 0, 100% 0;
204
+ border-radius: 12px 12px 0 0;
189
205
  animation: none !important;
190
- background-image: var(--gradient-background-primary-secondary);
206
+ box-shadow: var(--elevation-1);
191
207
  }
192
208
  .prokodo-Accordion__title {
193
209
  width: calc(100% - 20px);
194
- font-size: 16px;
195
- font-weight: 500;
196
210
  margin: 0;
211
+ font-weight: 500 !important;
212
+ font-size: 1.125rem !important;
213
+ font-family: var(--font-secondary), -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
214
+ font-style: normal !important;
215
+ line-height: 1.55 !important;
216
+ letter-spacing: 0.03em !important;
217
+ text-transform: none !important;
218
+ text-align: left !important;
219
+ text-decoration: none !important;
220
+ }
221
+ @media screen and (min-width: 480px) {
222
+ .prokodo-Accordion__title {
223
+ font-size: 1.125rem !important;
224
+ line-height: 1.5 !important;
225
+ }
226
+ }
227
+ @media screen and (min-width: 960px) {
228
+ .prokodo-Accordion__title {
229
+ font-size: 1.125rem !important;
230
+ line-height: 1.5 !important;
231
+ }
197
232
  }
198
- .prokodo-Accordion__title--is-expanded {
199
- color: var(--color-grey-50) !important;
233
+ .prokodo-Accordion__title {
234
+ font-weight: 500;
200
235
  }
201
236
  .prokodo-Accordion__icon {
202
237
  padding-left: 1rem;
@@ -207,7 +242,6 @@
207
242
  }
208
243
  .prokodo-Accordion__content {
209
244
  padding: 16px;
210
- border-top: 1px solid var(--color-grey-200);
211
245
  background-color: var(--color-white);
212
246
  transition: max-height 0.3s ease, opacity 0.3s ease;
213
247
  font-weight: 400;
@@ -4151,7 +4185,6 @@ html[data-theme=dark] .prokodo-Label__text {
4151
4185
  pointer-events: none;
4152
4186
  transition: opacity 0.3s ease, transform 0.3s ease;
4153
4187
  left: -99999px;
4154
- /* Full width modifier */
4155
4188
  }
4156
4189
  .prokodo-Dialog {
4157
4190
  position: fixed;
@@ -4190,11 +4223,13 @@ html[data-theme=dark] .prokodo-Label__text {
4190
4223
 
4191
4224
  $index: $index + 1;
4192
4225
  } */
4193
- /* Scroll behavior styles */
4194
4226
  }
4195
4227
  .prokodo-Dialog__container:focus-visible {
4196
4228
  outline: 0;
4197
4229
  }
4230
+ .prokodo-Dialog__container {
4231
+ /* Scroll behavior styles */
4232
+ }
4198
4233
  .prokodo-Dialog__container--scroll-paper {
4199
4234
  height: 100%;
4200
4235
  max-height: calc(100vh - 3rem);
@@ -4317,6 +4352,9 @@ html[data-theme=dark] .prokodo-Label__text {
4317
4352
  transition: none;
4318
4353
  }
4319
4354
  }
4355
+ .prokodo-Dialog {
4356
+ /* Full width modifier */
4357
+ }
4320
4358
  .prokodo-Dialog--fullScreen {
4321
4359
  max-width: none;
4322
4360
  width: 100%;
@@ -4823,7 +4861,9 @@ html[data-theme=dark] .prokodo-Label__text {
4823
4861
  .prokodo-DynamicList {
4824
4862
  border: none;
4825
4863
  padding: 0;
4826
- /* ───────────────── helper / error text */
4864
+ }
4865
+ .prokodo-DynamicList__label {
4866
+ margin-bottom: 0.75rem;
4827
4867
  }
4828
4868
  .prokodo-DynamicList__list {
4829
4869
  display: flex;
@@ -4832,6 +4872,7 @@ html[data-theme=dark] .prokodo-Label__text {
4832
4872
  gap: 1rem;
4833
4873
  list-style-type: none;
4834
4874
  padding: 0;
4875
+ margin-top: 0;
4835
4876
  }
4836
4877
  .prokodo-DynamicList__list__item {
4837
4878
  display: flex;
@@ -4851,6 +4892,9 @@ html[data-theme=dark] .prokodo-Label__text {
4851
4892
  .prokodo-DynamicList__delete__button--is-multi {
4852
4893
  margin-top: 0.5rem;
4853
4894
  }
4895
+ .prokodo-DynamicList {
4896
+ /* ───────────────── helper / error text */
4897
+ }
4854
4898
  .prokodo-DynamicList__helperText {
4855
4899
  padding-left: 1.5rem;
4856
4900
  padding-top: 0.75rem;
@@ -5059,12 +5103,6 @@ html[data-theme=dark] .prokodo-DynamicList__helperText {
5059
5103
  }
5060
5104
  .prokodo-Select {
5061
5105
  position: relative;
5062
- /* ───────────────── field (container for button + listbox) */
5063
- /* ───────────────── toggle button */
5064
- /* ───────────────── listbox (popup) */
5065
- /* ───────────────── option item */
5066
- /* ───────────────── checkbox for multi-select */
5067
- /* ───────────────── helper / error text */
5068
5106
  }
5069
5107
  .prokodo-Select--fullWidth {
5070
5108
  width: 100%;
@@ -5083,6 +5121,9 @@ html[data-theme=dark] .prokodo-DynamicList__helperText {
5083
5121
  pointer-events: none;
5084
5122
  background-color: var(--color-white);
5085
5123
  }
5124
+ .prokodo-Select {
5125
+ /* ───────────────── field (container for button + listbox) */
5126
+ }
5086
5127
  .prokodo-Select__field {
5087
5128
  position: relative;
5088
5129
  box-shadow: var(--elevation-1);
@@ -5092,6 +5133,9 @@ html[data-theme=dark] .prokodo-DynamicList__helperText {
5092
5133
  .prokodo-Select__field--expanded {
5093
5134
  box-shadow: none;
5094
5135
  }
5136
+ .prokodo-Select {
5137
+ /* ───────────────── toggle button */
5138
+ }
5095
5139
  .prokodo-Select__button {
5096
5140
  box-sizing: border-box;
5097
5141
  width: calc(100% - 0.25rem + 4px);
@@ -5108,10 +5152,6 @@ html[data-theme=dark] .prokodo-DynamicList__helperText {
5108
5152
  -webkit-mask-composite: source-over;
5109
5153
  mask-composite: add;
5110
5154
  /* hover / focus */
5111
- /* open state — JS toggles .Select__button--expanded **and**
5112
- .Select__field--expanded plus aria-expanded="true" */
5113
- /* caret / icon (if you still have one) */
5114
- /* inner text */
5115
5155
  }
5116
5156
  .prokodo-Select__button:hover {
5117
5157
  background: var(--gradient-border-4);
@@ -5128,6 +5168,10 @@ html[data-theme=dark] .prokodo-DynamicList__helperText {
5128
5168
  .prokodo-Select__button:disabled:hover {
5129
5169
  background: var(--gradient-border-8);
5130
5170
  }
5171
+ .prokodo-Select__button {
5172
+ /* open state — JS toggles .Select__button--expanded **and**
5173
+ .Select__field--expanded plus aria-expanded="true" */
5174
+ }
5131
5175
  .prokodo-Select__button--expanded {
5132
5176
  border-top-left-radius: 1.6875rem;
5133
5177
  border-top-right-radius: 1.6875rem;
@@ -5141,6 +5185,9 @@ html[data-theme=dark] .prokodo-DynamicList__helperText {
5141
5185
  border-bottom-left-radius: 0;
5142
5186
  border-bottom-right-radius: 0;
5143
5187
  }
5188
+ .prokodo-Select__button {
5189
+ /* caret / icon (if you still have one) */
5190
+ }
5144
5191
  .prokodo-Select__button > svg {
5145
5192
  position: absolute;
5146
5193
  top: 0;
@@ -5148,6 +5195,9 @@ html[data-theme=dark] .prokodo-DynamicList__helperText {
5148
5195
  font-size: 1rem;
5149
5196
  height: 100%;
5150
5197
  }
5198
+ .prokodo-Select__button {
5199
+ /* inner text */
5200
+ }
5151
5201
  .prokodo-Select__button__inner {
5152
5202
  display: flex;
5153
5203
  align-items: center;
@@ -5192,6 +5242,9 @@ html[data-theme=dark] .prokodo-Select__button__inner {
5192
5242
  .prokodo-Select__button__inner--is-placeholder--disabled {
5193
5243
  color: var(--color-grey-300);
5194
5244
  }
5245
+ .prokodo-Select {
5246
+ /* ───────────────── listbox (popup) */
5247
+ }
5195
5248
  .prokodo-Select__listbox {
5196
5249
  position: absolute;
5197
5250
  box-sizing: border-box;
@@ -5216,6 +5269,9 @@ html[data-theme=dark] .prokodo-Select__button__inner {
5216
5269
  .prokodo-Select__listbox--is-closed {
5217
5270
  animation: fade-out 200ms ease-in forwards;
5218
5271
  }
5272
+ .prokodo-Select {
5273
+ /* ───────────────── option item */
5274
+ }
5219
5275
  .prokodo-Select__item {
5220
5276
  list-style: none;
5221
5277
  display: flex;
@@ -5236,9 +5292,6 @@ html[data-theme=dark] .prokodo-Select__button__inner {
5236
5292
  text-transform: none;
5237
5293
  text-align: left;
5238
5294
  text-decoration: none;
5239
- /* hover / focus */
5240
- /* selected */
5241
- /* disabled (if you add aria-disabled) */
5242
5295
  }
5243
5296
  @media screen and (min-width: 480px) {
5244
5297
  .prokodo-Select__item {
@@ -5256,6 +5309,9 @@ html[data-theme=dark] .prokodo-Select__button__inner {
5256
5309
  border-bottom-left-radius: 1.5625rem;
5257
5310
  border-bottom-right-radius: 1.5625rem;
5258
5311
  }
5312
+ .prokodo-Select__item {
5313
+ /* hover / focus */
5314
+ }
5259
5315
  .prokodo-Select__item:hover {
5260
5316
  background-color: var(--color-grey-50);
5261
5317
  }
@@ -5263,13 +5319,22 @@ html[data-theme=dark] .prokodo-Select__button__inner {
5263
5319
  outline: 0;
5264
5320
  background: var(--color-primary-100);
5265
5321
  }
5322
+ .prokodo-Select__item {
5323
+ /* selected */
5324
+ }
5266
5325
  .prokodo-Select__item--selected {
5267
5326
  background-color: var(--color-primary-50);
5268
5327
  }
5328
+ .prokodo-Select__item {
5329
+ /* disabled (if you add aria-disabled) */
5330
+ }
5269
5331
  .prokodo-Select__item[aria-disabled=true] {
5270
5332
  color: var(--color-grey-400);
5271
5333
  cursor: not-allowed;
5272
5334
  }
5335
+ .prokodo-Select {
5336
+ /* ───────────────── checkbox for multi-select */
5337
+ }
5273
5338
  .prokodo-Select__checkbox {
5274
5339
  width: 18px;
5275
5340
  height: 18px;
@@ -5305,6 +5370,9 @@ html[data-theme=dark] .prokodo-Select__button__inner {
5305
5370
  -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;
5306
5371
  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;
5307
5372
  }
5373
+ .prokodo-Select {
5374
+ /* ───────────────── helper / error text */
5375
+ }
5308
5376
  .prokodo-Select__helperText {
5309
5377
  padding-left: 1.5rem;
5310
5378
  padding-top: 0.75rem;
@@ -6413,7 +6481,6 @@ html[data-theme=dark] .prokodo-Select__helperText {
6413
6481
  */
6414
6482
  .prokodo-GridRow {
6415
6483
  /* Grid alignment classes */
6416
- /* Define grid-column spans for different screen sizes */
6417
6484
  }
6418
6485
  .prokodo-GridRow--align-left {
6419
6486
  justify-items: start;
@@ -6424,6 +6491,9 @@ html[data-theme=dark] .prokodo-Select__helperText {
6424
6491
  .prokodo-GridRow--align-right {
6425
6492
  justify-items: end;
6426
6493
  }
6494
+ .prokodo-GridRow {
6495
+ /* Define grid-column spans for different screen sizes */
6496
+ }
6427
6497
  .prokodo-GridRow--xs-1 {
6428
6498
  grid-column: span 1;
6429
6499
  }
@@ -6960,16 +7030,31 @@ html[data-theme=dark] .prokodo-Select__helperText {
6960
7030
  width: 100%;
6961
7031
  margin: 0.25rem 0;
6962
7032
  color: var(--color-grey-500);
6963
- font-weight: 400;
6964
- font-size: 1rem;
6965
- font-family: var(--font-primary), -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
7033
+ font-weight: 500;
7034
+ font-size: 1.125rem;
7035
+ font-family: var(--font-secondary), -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
6966
7036
  font-style: normal;
6967
- line-height: 1.4;
7037
+ line-height: 1.55;
6968
7038
  letter-spacing: 0.03em;
6969
7039
  text-transform: none;
6970
7040
  text-align: left;
6971
7041
  text-decoration: none;
6972
7042
  }
7043
+ @media screen and (min-width: 480px) {
7044
+ .prokodo-List__item {
7045
+ font-size: 1.125rem;
7046
+ line-height: 1.5;
7047
+ }
7048
+ }
7049
+ @media screen and (min-width: 960px) {
7050
+ .prokodo-List__item {
7051
+ font-size: 1.125rem;
7052
+ line-height: 1.5;
7053
+ }
7054
+ }
7055
+ .prokodo-List__item {
7056
+ font-weight: 500;
7057
+ }
6973
7058
  .prokodo-List__item--has-icon {
6974
7059
  flex-wrap: nowrap;
6975
7060
  }
@@ -7038,16 +7123,31 @@ html[data-theme=dark] .prokodo-List__item__icon {
7038
7123
  .prokodo-List__item__title--card {
7039
7124
  display: block;
7040
7125
  padding: 0.75rem 0 0.25rem 0.5rem;
7041
- font-weight: 400;
7042
- font-size: 1rem;
7043
- font-family: var(--font-primary), -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
7126
+ font-weight: 500;
7127
+ font-size: 1.125rem;
7128
+ font-family: var(--font-secondary), -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
7044
7129
  font-style: normal;
7045
- line-height: 1.4;
7130
+ line-height: 1.55;
7046
7131
  letter-spacing: 0.03em;
7047
7132
  text-transform: none;
7048
7133
  text-align: left;
7049
7134
  text-decoration: none;
7050
7135
  }
7136
+ @media screen and (min-width: 480px) {
7137
+ .prokodo-List__item__title--card {
7138
+ font-size: 1.125rem;
7139
+ line-height: 1.5;
7140
+ }
7141
+ }
7142
+ @media screen and (min-width: 960px) {
7143
+ .prokodo-List__item__title--card {
7144
+ font-size: 1.125rem;
7145
+ line-height: 1.5;
7146
+ }
7147
+ }
7148
+ .prokodo-List__item__title--card {
7149
+ font-weight: 500;
7150
+ }
7051
7151
  .prokodo-List__item__content {
7052
7152
  width: calc(100% - 2rem);
7053
7153
  }
@@ -7094,16 +7194,31 @@ html[data-theme=dark] .prokodo-List__item__icon {
7094
7194
  color: var(--color-grey-500);
7095
7195
  }
7096
7196
  .prokodo-List__item--is-clickable a {
7097
- font-weight: 400;
7098
- font-size: 1rem;
7099
- font-family: var(--font-primary), -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
7197
+ font-weight: 500;
7198
+ font-size: 1.125rem;
7199
+ font-family: var(--font-secondary), -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
7100
7200
  font-style: normal;
7101
- line-height: 1.4;
7201
+ line-height: 1.55;
7102
7202
  letter-spacing: 0.03em;
7103
7203
  text-transform: none;
7104
7204
  text-align: left;
7105
7205
  text-decoration: none;
7106
7206
  }
7207
+ @media screen and (min-width: 480px) {
7208
+ .prokodo-List__item--is-clickable a {
7209
+ font-size: 1.125rem;
7210
+ line-height: 1.5;
7211
+ }
7212
+ }
7213
+ @media screen and (min-width: 960px) {
7214
+ .prokodo-List__item--is-clickable a {
7215
+ font-size: 1.125rem;
7216
+ line-height: 1.5;
7217
+ }
7218
+ }
7219
+ .prokodo-List__item--is-clickable a {
7220
+ font-weight: 500;
7221
+ }
7107
7222
  .prokodo-List__item--is-clickable:hover span[role=presentation] {
7108
7223
  color: var(--color-primary-500);
7109
7224
  }
@@ -9618,8 +9733,6 @@ html[data-theme=dark] .prokodo-List__item__icon {
9618
9733
  background: var(--bg);
9619
9734
  box-shadow: var(--shadow);
9620
9735
  /* ───── collapsed → slide to the right leaving only the toggle visible */
9621
- /* toggle button (always visible!) ------------------------------------- */
9622
- /* list / items -------------------------------------------------------- */
9623
9736
  }
9624
9737
  .prokodo-SideNav--collapsed {
9625
9738
  width: 56px;
@@ -9655,6 +9768,9 @@ html[data-theme=dark] .prokodo-List__item__icon {
9655
9768
  height: 0;
9656
9769
  text-indent: -99999px;
9657
9770
  }
9771
+ .prokodo-SideNav {
9772
+ /* toggle button (always visible!) ------------------------------------- */
9773
+ }
9658
9774
  .prokodo-SideNav__toggle {
9659
9775
  position: relative;
9660
9776
  display: flex;
@@ -9678,6 +9794,9 @@ html[data-theme=dark] .prokodo-List__item__icon {
9678
9794
  .prokodo-SideNav__toggle:hover {
9679
9795
  background: var(--color-grey-50);
9680
9796
  }
9797
+ .prokodo-SideNav {
9798
+ /* list / items -------------------------------------------------------- */
9799
+ }
9681
9800
  .prokodo-SideNav__list {
9682
9801
  margin: 0;
9683
9802
  padding: 0;
@@ -9736,7 +9855,6 @@ html[data-theme=dark] .prokodo-List__item__icon {
9736
9855
  text-transform: none;
9737
9856
  text-align: left;
9738
9857
  text-decoration: none;
9739
- animation: label-in 150ms ease forwards;
9740
9858
  }
9741
9859
  @media screen and (min-width: 480px) {
9742
9860
  .prokodo-SideNav__label {
@@ -9750,6 +9868,9 @@ html[data-theme=dark] .prokodo-List__item__icon {
9750
9868
  line-height: 1.45;
9751
9869
  }
9752
9870
  }
9871
+ .prokodo-SideNav__label {
9872
+ animation: label-in 150ms ease forwards;
9873
+ }
9753
9874
  .prokodo-SideNav__label--collapsed .prokodo-SideNav__label {
9754
9875
  animation: label-out 150ms ease forwards;
9755
9876
  }/* stylelint-disable */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prokodo/ui",
3
- "version": "0.0.45",
3
+ "version": "0.0.46",
4
4
  "type": "module",
5
5
  "description": "Modern, customizable UI components built with React and TypeScript — developed by prokodo for high-performance web interfaces.",
6
6
  "sideEffects": false,