@uniai-fe/uds-primitives 0.11.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/README.md +38 -453
  2. package/dist/styles.css +370 -327
  3. package/package.json +3 -3
  4. package/src/components/input/markup/time/Template.tsx +423 -0
  5. package/src/components/input/markup/time/Trigger.tsx +289 -0
  6. package/src/components/input/markup/time/index.tsx +2 -2
  7. package/src/components/input/styles/time.scss +160 -317
  8. package/src/components/input/styles/variables.scss +9 -47
  9. package/src/components/input/types/time.ts +61 -120
  10. package/src/components/time-picker/img/minus.svg +3 -0
  11. package/src/components/time-picker/img/plus.svg +3 -0
  12. package/src/components/time-picker/index.scss +1 -0
  13. package/src/components/time-picker/index.tsx +11 -0
  14. package/src/components/time-picker/markup/Footer.tsx +71 -0
  15. package/src/components/time-picker/markup/HourSection.tsx +99 -0
  16. package/src/components/time-picker/markup/MinuteSection.tsx +86 -0
  17. package/src/components/time-picker/markup/Summary.tsx +24 -0
  18. package/src/components/time-picker/markup/Template.tsx +86 -0
  19. package/src/components/time-picker/markup/index.tsx +10 -0
  20. package/src/components/time-picker/styles/index.scss +2 -0
  21. package/src/components/time-picker/styles/template.scss +174 -0
  22. package/src/components/time-picker/styles/variables.scss +64 -0
  23. package/src/components/time-picker/types/index.ts +1 -0
  24. package/src/components/time-picker/types/time-picker.ts +94 -0
  25. package/src/components/time-picker/utils/index.ts +1 -0
  26. package/src/components/time-picker/utils/time.ts +110 -0
  27. package/src/index.scss +1 -0
  28. package/src/index.tsx +1 -0
  29. package/src/components/input/markup/time/Picker.tsx +0 -378
package/dist/styles.css CHANGED
@@ -588,8 +588,6 @@
588
588
  --input-status-success-color: var(--color-primary-default);
589
589
  /* TimePicker tokens */
590
590
  --input-time-width: 100%;
591
- --input-time-flex: 0 1 auto;
592
- --input-time-layout-gap: var(--input-layout-gap);
593
591
  --input-time-height-small: var(--input-default-height-small);
594
592
  --input-time-height-medium: var(--input-default-height-medium);
595
593
  --input-time-height-large: var(--input-default-height-large);
@@ -598,29 +596,19 @@
598
596
  --input-time-padding-block: var(--input-default-padding-block);
599
597
  --input-time-secondary-padding-block: var(--input-secondary-padding-block);
600
598
  --input-time-table-padding-inline: var(--spacing-padding-4);
601
- --input-time-radius: var(--input-default-radius-base);
599
+ --input-time-radius: var(--theme-radius-medium-3);
602
600
  --input-time-tertiary-radius: var(--input-tertiary-radius-base);
603
601
  --input-time-table-radius: var(--input-table-radius-base);
604
- --input-time-field-gap: var(--spacing-gap-2);
605
- --input-time-field-width: 2.4ch;
606
- --input-time-period-field-width: 3.8ch;
602
+ --input-time-field-gap: 0;
603
+ --input-time-field-width: 2.7ch;
604
+ --input-time-field-middle-width: 2.2ch;
605
+ --input-time-period-field-width: 4.2ch;
607
606
  --input-time-field-height: 100%;
608
- --input-time-field-y-offset: 2px;
609
- --input-time-section-gap: var(--spacing-gap-1);
610
- --input-time-section-button-size: 28px;
611
- --input-time-section-button-radius: var(--theme-radius-medium-1);
612
- --input-time-left-section-width: 44px;
613
- --input-time-section-width: 56px;
614
- --input-time-section-width-with-clear: 92px;
615
- --input-time-section-edge-gap: var(--input-time-padding-inline);
616
- --input-time-left-section-padding-offset: 44px;
617
- --input-time-right-section-padding-offset: 64px;
618
- --input-time-right-section-padding-offset-with-clear: 100px;
619
- --input-time-table-section-padding-offset: 48px;
620
- --input-time-table-clear-padding-offset: 56px;
621
- --input-time-table-field-width: 2.4ch;
622
- --input-time-table-period-field-width: 3.8ch;
623
607
  --input-time-icon-size: 24px;
608
+ --input-time-stepper-width: 28px;
609
+ --input-time-stepper-button-height: 28px;
610
+ --input-time-stepper-radius: var(--theme-radius-medium-3);
611
+ --input-time-stepper-icon-size: 16px;
624
612
  --input-time-text-color: var(--input-text-color);
625
613
  --input-time-text-disabled-color: var(--input-text-disabled-color);
626
614
  --input-time-placeholder-color: var(--input-placeholder-color);
@@ -660,32 +648,6 @@
660
648
  --input-time-secondary-surface-color: var(--input-secondary-surface-color);
661
649
  --input-time-surface-disabled-color: var(--input-surface-disabled-color);
662
650
  --input-time-table-surface-color: var(--input-table-surface-color);
663
- --input-time-dropdown-padding: var(--spacing-padding-2);
664
- --input-time-dropdown-radius: var(--theme-radius-large-1);
665
- --input-time-dropdown-border-width: 1px;
666
- --input-time-dropdown-border-color: var(--color-border-standard-cool-gray);
667
- --input-time-dropdown-surface-color: var(--color-common-100);
668
- --input-time-dropdown-shadow: 0px 4px 22px rgba(19, 22, 32, 0.12);
669
- --input-time-dropdown-content-height: 200px;
670
- --input-time-dropdown-group-gap: var(--spacing-gap-3);
671
- --input-time-option-gap: var(--spacing-gap-1);
672
- --input-time-scrollarea-width: 64px;
673
- --input-time-scrollarea-gutter: 8px;
674
- --input-time-option-min-width: 56px;
675
- --input-time-option-height: 32px;
676
- --input-time-option-radius: var(--theme-radius-medium-1);
677
- --input-time-option-color: var(--color-label-standard);
678
- --input-time-option-hover-color: var(--color-label-strong);
679
- --input-time-option-active-color: var(--color-common-100);
680
- --input-time-option-hover-surface-color: var(--color-neutral-95);
681
- --input-time-option-active-surface-color: var(--color-primary-default);
682
- --input-time-option-font-size: var(--font-body-xsmall-size);
683
- --input-time-option-line-height: var(--font-body-xsmall-line-height);
684
- --input-time-option-font-weight: var(--font-body-xsmall-weight);
685
- --input-time-presets-label-color: var(--color-label-alternative);
686
- --input-time-presets-label-size: var(--font-label-small-size);
687
- --input-time-presets-label-line-height: var(--font-label-small-line-height);
688
- --input-time-presets-label-weight: var(--font-label-small-weight);
689
651
  --theme-navigation-height: 86px;
690
652
  --theme-navigation-padding-inline: 32px;
691
653
  --theme-navigation-padding-block-start: 8px;
@@ -995,6 +957,68 @@
995
957
  --table-td-text-size: 15px;
996
958
  --table-td-text-weight: var(--font-body-xsmall-weight);
997
959
  --table-td-text-line-height: var(--font-body-xsmall-line-height);
960
+ --time-picker-template-max-height: 800px;
961
+ --time-picker-template-viewport-gap: var(--spacing-gap-8);
962
+ --time-picker-template-padding: var(--spacing-padding-6);
963
+ --time-picker-template-gap: var(--spacing-gap-6);
964
+ --time-picker-template-section-gap: var(--spacing-gap-5);
965
+ --time-picker-template-text-color: var(--color-label-standard);
966
+ --time-picker-template-heading-size: var(--font-heading-small-size);
967
+ --time-picker-template-heading-line-height: var(
968
+ --font-heading-small-line-height
969
+ );
970
+ --time-picker-template-heading-weight: var(--font-heading-small-weight);
971
+ --time-picker-summary-height: 82px;
972
+ --time-picker-summary-padding-block: var(--spacing-padding-5);
973
+ --time-picker-summary-gap: var(--spacing-gap-3);
974
+ --time-picker-summary-radius: var(--theme-radius-large-2);
975
+ --time-picker-summary-surface-color: var(--color-surface-standard);
976
+ --time-picker-summary-border-color: var(--color-cool-gray-20);
977
+ --time-picker-summary-label-size: var(--font-body-xsmall-size);
978
+ --time-picker-summary-label-line-height: var(--font-body-xsmall-line-height);
979
+ --time-picker-summary-label-weight: var(--font-body-xsmall-weight);
980
+ --time-picker-summary-label-letter-spacing: var(
981
+ --font-body-xsmall-letter-spacing
982
+ );
983
+ --time-picker-summary-value-size: var(--font-heading-small-size);
984
+ --time-picker-summary-value-line-height: var(--font-body-large-line-height);
985
+ --time-picker-summary-value-weight: var(--font-heading-small-weight);
986
+ --time-picker-summary-value-letter-spacing: 0.2px;
987
+ --time-picker-option-gap: var(--spacing-gap-5);
988
+ --time-picker-option-height: var(--theme-size-medium-1);
989
+ --time-picker-option-border-width: 1px;
990
+ --time-picker-option-border-color: var(--color-border-standard-cool-gray);
991
+ --time-picker-option-radius: var(--theme-radius-medium-3);
992
+ --time-picker-option-surface-color: var(--color-common-100);
993
+ --time-picker-option-color: var(--color-label-standard);
994
+ --time-picker-option-selected-color: var(--color-primary-default);
995
+ --time-picker-option-selected-surface-color: var(--color-neutral-99);
996
+ --time-picker-option-font-size: var(--font-body-xsmall-size);
997
+ --time-picker-option-line-height: var(--font-body-xsmall-line-height);
998
+ --time-picker-period-height: var(--theme-size-medium-1);
999
+ --time-picker-period-padding: var(--spacing-padding-1);
1000
+ --time-picker-period-radius: var(--theme-radius-large-1);
1001
+ --time-picker-period-item-radius: var(--theme-radius-medium-4);
1002
+ --time-picker-period-surface-color: var(--color-cool-gray-85);
1003
+ --time-picker-period-item-surface-color: var(--color-common-100);
1004
+ --time-picker-period-item-color: var(--color-label-standard);
1005
+ --time-picker-period-item-shadow:
1006
+ 0 2px 8px rgba(0, 0, 0, 0.06), 0 0 4px rgba(0, 0, 0, 0.12);
1007
+ --time-picker-period-item-font-size: var(--font-body-xsmall-size);
1008
+ --time-picker-period-item-font-weight: var(--font-body-medium-weight);
1009
+ --time-picker-period-item-line-height: var(--font-body-xsmall-line-height);
1010
+ --time-picker-minute-stepper-height: var(--theme-size-medium-1);
1011
+ --time-picker-minute-stepper-gap: var(--spacing-gap-13);
1012
+ --time-picker-minute-stepper-radius: var(--theme-radius-large-1);
1013
+ --time-picker-minute-stepper-surface-color: var(--color-cool-gray-85);
1014
+ --time-picker-minute-control-size: var(--theme-size-small-2);
1015
+ --time-picker-minute-value-size: var(--font-body-xsmall-size);
1016
+ --time-picker-minute-value-line-height: var(--font-body-xsmall-line-height);
1017
+ --time-picker-minute-value-weight: var(--font-body-medium-weight);
1018
+ --time-picker-template-footer-gap: var(--spacing-gap-6);
1019
+ --time-picker-clear-color: var(--color-error);
1020
+ --time-picker-clear-size: var(--font-body-xsmall-size);
1021
+ --time-picker-clear-line-height: var(--font-body-xsmall-line-height);
998
1022
  --toast-stack-margin: var(--spacing-padding-7);
999
1023
  --toast-stack-gap: var(--spacing-gap-3);
1000
1024
  --toast-stack-z-index: 10000;
@@ -5124,195 +5148,45 @@ figure.chip {
5124
5148
 
5125
5149
  .input-time {
5126
5150
  display: flex;
5127
- flex-direction: column;
5128
- gap: var(--input-time-layout-gap);
5129
5151
  width: var(--input-time-width);
5130
- flex: var(--input-time-flex);
5131
5152
  min-width: 0;
5153
+ color: var(--input-time-text-color);
5132
5154
  }
5133
5155
  .input-time:where([data-width="auto"]) {
5134
- --input-time-width: auto;
5135
- --input-time-flex: 0 1 auto;
5156
+ width: auto;
5136
5157
  }
5137
5158
  .input-time:where([data-width="fill"]) {
5138
- --input-time-width: auto;
5139
- --input-time-flex: 1 1 0%;
5140
- }
5141
- .input-time:where([data-width="full"]),
5142
- .input-time:where([data-block="true"]) {
5143
- --input-time-width: 100%;
5144
- --input-time-flex: 0 0 100%;
5145
- }
5146
- .input-time:where([data-width="fit"]) {
5147
- --input-time-width: fit-content;
5148
- --input-time-flex: 0 0 auto;
5149
- }
5150
- .input-time:where([data-width="custom"]) {
5151
- --input-time-flex: 0 0 auto;
5159
+ flex: 1 1 0%;
5160
+ width: auto;
5152
5161
  }
5153
- .input-time:where([data-priority="table"]) {
5154
- display: block;
5155
- --input-time-width: 100%;
5156
- height: 100%;
5162
+ .input-time:where([data-width="full"]) {
5163
+ width: 100%;
5157
5164
  }
5158
-
5159
- .input-time-picker,
5160
- .input-time-wrapper {
5165
+ .input-time:where([data-block="true"]) {
5161
5166
  width: 100%;
5162
5167
  }
5163
-
5164
- .input-time-wrapper {
5165
- position: relative;
5168
+ .input-time:where([data-width="fit"]) {
5169
+ width: fit-content;
5166
5170
  }
5167
5171
 
5168
- .input-time-input {
5169
- box-sizing: border-box;
5170
- width: 100%;
5172
+ .input-time-trigger-input {
5173
+ display: flex;
5174
+ align-items: center;
5175
+ flex: 1 1 auto;
5176
+ min-width: 0;
5171
5177
  min-height: var(--input-time-height-medium);
5178
+ padding: var(--input-time-padding-block) var(--input-time-padding-inline);
5172
5179
  border: var(--input-time-border-width) solid var(--input-time-border-color);
5173
5180
  border-radius: var(--input-time-radius);
5174
5181
  background-color: var(--input-time-surface-color);
5175
- color: var(--input-time-text-color);
5176
- padding: var(--input-time-padding-block) var(--input-time-padding-inline);
5177
- box-shadow: none;
5178
- transition:
5179
- border-color 0.15s ease,
5180
- background-color 0.15s ease;
5181
- }
5182
-
5183
- .input-time:where([data-icon-position="left"]) .input-time-input {
5184
- padding-inline-start: var(--input-time-left-section-padding-offset);
5185
- }
5186
- .input-time:where([data-icon-position="left"]):where([data-has-clear="true"])
5187
- .input-time-input {
5188
- padding-inline-end: var(--input-time-right-section-padding-offset);
5189
- }
5190
-
5191
- .input-time:where([data-icon-position="right"]) .input-time-input {
5192
- padding-inline-end: var(--input-time-right-section-padding-offset);
5193
- }
5194
- .input-time:where([data-icon-position="right"]):where([data-clearable="true"])
5195
- .input-time-input {
5196
- padding-inline-end: var(--input-time-right-section-padding-offset-with-clear);
5197
- }
5198
-
5199
- .input-time:where([data-size="small"]) .input-time-input {
5200
- min-height: var(--input-time-height-small);
5201
- --input-time-font-size: var(--input-time-text-small-size);
5202
- --input-time-line-height: var(--input-time-text-small-line-height);
5203
- --input-time-font-weight: var(--input-time-text-small-weight);
5204
- --input-time-letter-spacing: var(--input-time-text-small-letter-spacing);
5205
- }
5206
-
5207
- .input-time:where([data-size="large"]) .input-time-input {
5208
- min-height: var(--input-time-height-large);
5209
- --input-time-font-size: var(--input-time-text-large-size);
5210
- --input-time-line-height: var(--input-time-text-large-line-height);
5211
- --input-time-font-weight: var(--input-time-text-large-weight);
5212
- --input-time-letter-spacing: var(--input-time-text-large-letter-spacing);
5213
- }
5214
-
5215
- .input-time:where([data-priority="secondary"]) .input-time-input {
5216
- border: none;
5217
- border-bottom: var(--input-time-border-width) solid
5218
- var(--input-time-border-color);
5219
- border-radius: 0;
5220
- background-color: var(--input-time-secondary-surface-color);
5221
- padding-inline: 0;
5222
- padding-block: var(--input-time-secondary-padding-block);
5223
- }
5224
-
5225
- .input-time:where([data-priority="tertiary"]) .input-time-input {
5226
- min-height: var(--input-time-tertiary-height);
5227
- border-radius: var(--input-time-tertiary-radius);
5228
- }
5229
-
5230
- .input-time:where([data-priority="table"]) {
5231
- height: 100%;
5232
- }
5233
- .input-time:where([data-priority="table"]) .input-time-picker,
5234
- .input-time:where([data-priority="table"]) .input-time-wrapper,
5235
- .input-time:where([data-priority="table"]) .input-time-input {
5236
- height: 100%;
5237
- }
5238
- .input-time:where([data-priority="table"]) .input-time-input {
5239
- min-height: var(--input-time-height-small);
5240
- border-color: var(--input-time-table-border-color);
5241
- border-radius: var(--input-time-table-radius);
5242
- background-color: var(--input-time-table-surface-color);
5243
- padding-inline: var(--input-time-table-padding-inline);
5244
- --input-time-font-size: var(--input-time-table-text-size);
5245
- --input-time-line-height: var(--input-time-table-text-line-height);
5246
- --input-time-font-weight: var(--input-time-table-text-weight);
5247
- }
5248
- .input-time:where([data-priority="table"]):where([data-icon-position="left"])
5249
- .input-time-input {
5250
- padding-inline-start: var(--input-time-table-section-padding-offset);
5251
- }
5252
- .input-time:where([data-priority="table"]):where([data-icon-position="right"])
5253
- .input-time-input {
5254
- padding-inline-end: var(--input-time-right-section-padding-offset);
5255
- }
5256
- .input-time:where([data-priority="table"]):where([data-has-clear="true"])
5257
- .input-time-input {
5258
- padding-inline-end: var(--input-time-table-clear-padding-offset);
5259
- }
5260
- .input-time:where([data-priority="table"]) .input-time-fields-group {
5261
- --input-time-field-y-offset: 0px;
5262
- }
5263
- .input-time:where([data-priority="table"]) .input-time-field {
5264
- --input-time-field-width: var(--input-time-table-field-width);
5265
- }
5266
- .input-time:where([data-priority="table"]) .input-time-field:where(select) {
5267
- --input-time-period-field-width: var(--input-time-table-period-field-width);
5268
- }
5269
-
5270
- .input-time:where([data-state="active"]) .input-time-input {
5271
- border-color: var(--input-time-border-active-color);
5272
- border-width: var(--input-time-border-width-emphasis);
5273
- }
5274
-
5275
- .input-time:where([data-state="success"]) .input-time-input {
5276
- border-color: var(--input-time-border-success-color);
5277
- border-width: var(--input-time-border-width-emphasis);
5278
- }
5279
-
5280
- .input-time:where([data-state="error"]) .input-time-input {
5281
- border-color: var(--input-time-border-error-color);
5282
- border-width: var(--input-time-border-width-emphasis);
5283
- }
5284
-
5285
- .input-time:where([data-state="disabled"]) .input-time-input,
5286
- .input-time:where([data-readonly="true"]) .input-time-input {
5287
- border-color: var(--input-time-border-disabled-color);
5288
- background-color: var(--input-time-surface-disabled-color);
5289
- }
5290
-
5291
- .input-time:where([data-priority="secondary"][data-state="active"])
5292
- .input-time-input,
5293
- .input-time:where([data-priority="secondary"][data-state="success"])
5294
- .input-time-input,
5295
- .input-time:where([data-priority="secondary"][data-state="error"])
5296
- .input-time-input {
5297
- border-bottom-width: var(--input-time-border-width-emphasis);
5298
- }
5299
-
5300
- .input-time-fields-root {
5301
- display: flex;
5302
- align-items: center;
5303
- height: 100%;
5304
- width: 100%;
5305
- color: var(--input-time-text-color);
5306
5182
  }
5307
5183
 
5308
5184
  .input-time-fields-group {
5309
5185
  display: flex;
5310
5186
  align-items: center;
5311
- gap: var(--input-time-field-gap);
5312
- height: 100%;
5187
+ flex: 1 1 auto;
5313
5188
  min-width: 0;
5314
- color: var(--input-time-text-color);
5315
- transform: translateY(var(--input-time-field-y-offset));
5189
+ gap: var(--input-time-field-gap);
5316
5190
  }
5317
5191
  .input-time-fields-group > span {
5318
5192
  color: var(--input-time-separator-color);
@@ -5327,6 +5201,7 @@ figure.chip {
5327
5201
  height: var(--input-time-field-height);
5328
5202
  padding: 0;
5329
5203
  border: 0;
5204
+ outline: none;
5330
5205
  background-color: transparent;
5331
5206
  color: var(--input-time-text-color);
5332
5207
  caret-color: var(--input-time-text-color);
@@ -5335,163 +5210,168 @@ figure.chip {
5335
5210
  font-weight: var(--input-time-font-weight);
5336
5211
  letter-spacing: var(--input-time-letter-spacing);
5337
5212
  text-align: center;
5338
- outline: none;
5339
- box-shadow: none;
5213
+ }
5214
+ .input-time-field:first-child {
5215
+ text-align: right;
5216
+ }
5217
+ .input-time-field:last-of-type {
5218
+ text-align: left;
5219
+ }
5220
+ .input-time-field:not(:first-child):not(:last-of-type) {
5221
+ width: var(--input-time-field-middle-width);
5222
+ min-width: var(--input-time-field-middle-width);
5340
5223
  }
5341
5224
  .input-time-field::placeholder {
5342
5225
  color: var(--input-time-placeholder-color);
5343
5226
  }
5344
- .input-time-field:disabled {
5345
- color: var(--input-time-text-disabled-color);
5346
- cursor: default;
5347
- }
5348
5227
 
5349
- .input-time-field:where(select) {
5228
+ .input-time-period-field {
5350
5229
  width: var(--input-time-period-field-width);
5351
- min-width: var(--input-time-period-field-width);
5230
+ height: var(--input-time-field-height);
5231
+ padding: 0;
5232
+ border: 0;
5233
+ outline: none;
5352
5234
  appearance: none;
5353
- text-align-last: center;
5235
+ background-color: transparent;
5236
+ color: var(--input-time-text-color);
5237
+ font-size: var(--input-time-font-size);
5238
+ text-align: center;
5354
5239
  }
5355
5240
 
5356
- .input-time-section {
5357
- box-sizing: border-box;
5358
- position: absolute;
5359
- z-index: 1;
5360
- top: 0;
5361
- bottom: 0;
5241
+ .input-time-icon-button {
5362
5242
  display: flex;
5363
5243
  align-items: center;
5364
5244
  justify-content: center;
5365
- width: var(--input-time-section-width);
5366
- }
5367
- .input-time-section:where([data-position="left"]) {
5368
- left: 0;
5369
- width: var(--input-time-left-section-width);
5370
- }
5371
- .input-time-section:where([data-position="right"]) {
5372
- right: 0;
5373
- justify-content: flex-end;
5374
- padding-inline-end: var(--input-time-section-edge-gap);
5245
+ flex: 0 0 var(--input-time-icon-size);
5246
+ width: var(--input-time-icon-size);
5247
+ height: var(--input-time-icon-size);
5248
+ margin: 0;
5249
+ padding: 0;
5250
+ border: 0;
5251
+ background-color: transparent;
5252
+ color: var(--input-time-icon-color);
5253
+ cursor: pointer;
5375
5254
  }
5376
-
5377
- .input-time:where([data-icon-position="right"][data-clearable="true"])
5378
- .input-time-section:where([data-position="right"]) {
5379
- width: var(--input-time-section-width-with-clear);
5255
+ .input-time-icon-button svg {
5256
+ display: block;
5257
+ width: 100%;
5258
+ height: 100%;
5380
5259
  }
5381
5260
 
5382
- .input-time-section-group {
5261
+ .input-time-stepper {
5383
5262
  display: flex;
5384
- align-items: center;
5385
- gap: var(--input-time-section-gap);
5263
+ flex: 0 0 var(--input-time-stepper-width);
5264
+ flex-direction: column;
5265
+ align-self: stretch;
5386
5266
  }
5387
5267
 
5388
- .input-time-section-button {
5268
+ .input-time-stepper-button {
5389
5269
  display: flex;
5390
5270
  align-items: center;
5391
5271
  justify-content: center;
5392
- width: var(--input-time-section-button-size);
5393
- height: var(--input-time-section-button-size);
5272
+ flex: 0 0 var(--input-time-stepper-button-height);
5273
+ min-height: 0;
5394
5274
  margin: 0;
5395
5275
  padding: 0;
5396
- border: 0;
5397
- border-radius: var(--input-time-section-button-radius);
5398
- background-color: transparent;
5399
- color: var(--input-time-icon-color);
5276
+ border: var(--input-time-border-width) solid var(--input-time-border-color);
5277
+ border-left: 0;
5278
+ background-color: var(--input-time-surface-color);
5279
+ color: var(--input-time-text-color);
5400
5280
  cursor: pointer;
5401
5281
  }
5402
- .input-time-section-button:where([aria-disabled="true"]) {
5403
- color: var(--input-time-icon-disabled-color);
5404
- cursor: default;
5282
+ .input-time-stepper-button:first-child {
5283
+ border-radius: 0 var(--input-time-stepper-radius) 0 0;
5405
5284
  }
5406
-
5407
- .input-time-icon-graphic,
5408
- .input-time-section-button svg {
5409
- display: flex;
5410
- width: var(--input-time-icon-size);
5411
- height: var(--input-time-icon-size);
5285
+ .input-time-stepper-button:last-child {
5286
+ border-top: 0;
5287
+ border-radius: 0 0 var(--input-time-stepper-radius) 0;
5288
+ }
5289
+ .input-time-stepper-button svg {
5290
+ display: block;
5291
+ width: var(--input-time-stepper-icon-size);
5292
+ height: var(--input-time-stepper-icon-size);
5412
5293
  }
5413
5294
 
5414
- .input-time-dropdown {
5415
- position: absolute;
5416
- z-index: 20;
5417
- box-sizing: border-box;
5418
- max-height: calc(
5419
- var(--input-time-dropdown-content-height) +
5420
- var(--input-time-dropdown-padding) + var(--input-time-dropdown-padding)
5421
- );
5422
- padding: var(--input-time-dropdown-padding);
5423
- border: var(--input-time-dropdown-border-width) solid
5424
- var(--input-time-dropdown-border-color);
5425
- border-radius: var(--input-time-dropdown-radius);
5426
- background-color: var(--input-time-dropdown-surface-color);
5427
- box-shadow: var(--input-time-dropdown-shadow);
5428
- overflow: hidden;
5295
+ .input-time:where([data-active-unit]) .input-time-trigger-input {
5296
+ border-radius: var(--input-time-radius) 0 0 var(--input-time-radius);
5429
5297
  }
5430
5298
 
5431
- .input-time-scrollarea {
5432
- position: relative;
5433
- min-width: var(--input-time-scrollarea-width);
5434
- height: var(--input-time-dropdown-content-height);
5435
- max-height: var(--input-time-dropdown-content-height);
5436
- overflow: hidden;
5299
+ .input-time:where([data-size="small"]) .input-time-trigger-input {
5300
+ min-height: var(--input-time-height-small);
5301
+ }
5302
+ .input-time:where([data-size="small"]) .input-time-field {
5303
+ font-size: var(--input-time-text-small-size);
5304
+ line-height: var(--input-time-text-small-line-height);
5305
+ font-weight: var(--input-time-text-small-weight);
5437
5306
  }
5438
5307
 
5439
- .input-time-scrollarea .mantine-ScrollArea-viewport {
5440
- box-sizing: border-box;
5441
- height: 100%;
5442
- max-height: var(--input-time-dropdown-content-height);
5443
- padding-inline-end: var(--input-time-scrollarea-gutter);
5444
- scrollbar-gutter: stable;
5445
- overflow: auto;
5308
+ .input-time:where([data-size="large"]) .input-time-trigger-input {
5309
+ min-height: var(--input-time-height-large);
5310
+ }
5311
+ .input-time:where([data-size="large"]) .input-time-field {
5312
+ font-size: var(--input-time-text-large-size);
5313
+ line-height: var(--input-time-text-large-line-height);
5314
+ font-weight: var(--input-time-text-large-weight);
5446
5315
  }
5447
5316
 
5448
- .input-time-controls-list-group {
5449
- display: flex;
5450
- gap: var(--input-time-dropdown-group-gap);
5451
- max-height: var(--input-time-dropdown-content-height);
5452
- overflow: hidden;
5317
+ .input-time:where([data-priority="secondary"]) .input-time-trigger-input {
5318
+ border: 0;
5319
+ border-bottom: var(--input-time-border-width) solid
5320
+ var(--input-time-border-color);
5321
+ border-radius: 0;
5322
+ background-color: var(--input-time-secondary-surface-color);
5323
+ padding-inline: 0;
5453
5324
  }
5454
5325
 
5455
- .input-time-controls-list {
5456
- display: flex;
5457
- flex-direction: column;
5458
- gap: var(--input-time-option-gap);
5459
- width: var(--input-time-option-min-width);
5326
+ .input-time:where([data-priority="tertiary"]) .input-time-trigger-input {
5327
+ min-height: var(--input-time-tertiary-height);
5328
+ border-radius: var(--input-time-tertiary-radius);
5460
5329
  }
5461
5330
 
5462
- .input-time-option,
5463
- .input-time-preset-option {
5464
- width: var(--input-time-option-min-width);
5465
- min-width: var(--input-time-option-min-width);
5466
- height: var(--input-time-option-height);
5467
- border-radius: var(--input-time-option-radius);
5468
- color: var(--input-time-option-color);
5469
- font-size: var(--input-time-option-font-size);
5470
- line-height: var(--input-time-option-line-height);
5471
- font-weight: var(--input-time-option-font-weight);
5331
+ .input-time:where([data-priority="table"]) {
5332
+ width: 100%;
5333
+ height: 100%;
5472
5334
  }
5473
- .input-time-option:where([data-active]),
5474
- .input-time-preset-option:where([data-active]) {
5475
- background-color: var(--input-time-option-active-surface-color);
5476
- color: var(--input-time-option-active-color);
5335
+ .input-time:where([data-priority="table"]) .input-time-trigger-input {
5336
+ min-height: var(--input-time-height-small);
5337
+ height: 100%;
5338
+ padding-inline: var(--input-time-table-padding-inline);
5339
+ border-color: var(--input-time-table-border-color);
5340
+ border-radius: var(--input-time-table-radius);
5341
+ background-color: var(--input-time-table-surface-color);
5477
5342
  }
5478
- .input-time-option:hover:where(:not([data-active])),
5479
- .input-time-preset-option:hover:where(:not([data-active])) {
5480
- background-color: var(--input-time-option-hover-surface-color);
5481
- color: var(--input-time-option-hover-color);
5343
+ .input-time:where([data-priority="table"]) .input-time-field {
5344
+ font-size: var(--input-time-table-text-size);
5345
+ line-height: var(--input-time-table-text-line-height);
5346
+ font-weight: var(--input-time-table-text-weight);
5482
5347
  }
5483
5348
 
5484
- .input-time-presets-group {
5485
- display: flex;
5486
- flex-direction: column;
5487
- gap: var(--input-time-option-gap);
5349
+ .input-time:where([data-state="success"]) .input-time-trigger-input {
5350
+ border-color: var(--input-time-border-success-color);
5351
+ border-width: var(--input-time-border-width-emphasis);
5352
+ }
5353
+
5354
+ .input-time:where([data-state="error"]) .input-time-trigger-input {
5355
+ border-color: var(--input-time-border-error-color);
5356
+ border-width: var(--input-time-border-width-emphasis);
5357
+ }
5358
+
5359
+ .input-time:where([data-state="disabled"]) .input-time-trigger-input {
5360
+ border-color: var(--input-time-border-disabled-color);
5361
+ background-color: var(--input-time-surface-disabled-color);
5362
+ }
5363
+ .input-time:where([data-state="disabled"]) .input-time-field {
5364
+ color: var(--input-time-text-disabled-color);
5365
+ cursor: default;
5366
+ }
5367
+ .input-time:where([data-state="disabled"]) .input-time-icon-button {
5368
+ color: var(--input-time-icon-disabled-color);
5369
+ cursor: default;
5488
5370
  }
5489
5371
 
5490
- .input-time-presets-group-label {
5491
- color: var(--input-time-presets-label-color);
5492
- font-size: var(--input-time-presets-label-size);
5493
- line-height: var(--input-time-presets-label-line-height);
5494
- font-weight: var(--input-time-presets-label-weight);
5372
+ .input-time:where([data-readonly="true"]) .input-time-trigger-input {
5373
+ border-color: var(--input-time-border-disabled-color);
5374
+ background-color: var(--input-time-surface-disabled-color);
5495
5375
  }
5496
5376
 
5497
5377
  .input-address-container {
@@ -7598,6 +7478,169 @@ figure.chip {
7598
7478
  line-height: var(--table-td-text-line-height);
7599
7479
  }
7600
7480
 
7481
+ .time-picker-template {
7482
+ display: flex;
7483
+ flex-direction: column;
7484
+ max-height: min(
7485
+ var(--time-picker-template-max-height),
7486
+ 100vh - var(--time-picker-template-viewport-gap)
7487
+ );
7488
+ overflow-y: auto;
7489
+ gap: var(--time-picker-template-gap);
7490
+ padding: var(--time-picker-template-padding);
7491
+ color: var(--time-picker-template-text-color);
7492
+ }
7493
+
7494
+ .time-picker-summary {
7495
+ display: flex;
7496
+ align-items: center;
7497
+ justify-content: center;
7498
+ flex-direction: column;
7499
+ gap: var(--time-picker-summary-gap);
7500
+ height: var(--time-picker-summary-height);
7501
+ padding-block: var(--time-picker-summary-padding-block);
7502
+ border: var(--time-picker-option-border-width) solid
7503
+ var(--time-picker-summary-border-color);
7504
+ border-radius: var(--time-picker-summary-radius);
7505
+ background-color: var(--time-picker-summary-surface-color);
7506
+ color: var(--time-picker-summary-border-color);
7507
+ text-align: center;
7508
+ }
7509
+ .time-picker-summary span {
7510
+ font-size: var(--time-picker-summary-label-size);
7511
+ line-height: var(--time-picker-summary-label-line-height);
7512
+ font-weight: var(--time-picker-summary-label-weight);
7513
+ letter-spacing: var(--time-picker-summary-label-letter-spacing);
7514
+ }
7515
+ .time-picker-summary strong {
7516
+ font-size: var(--time-picker-summary-value-size);
7517
+ line-height: var(--time-picker-summary-value-line-height);
7518
+ font-weight: var(--time-picker-summary-value-weight);
7519
+ letter-spacing: var(--time-picker-summary-value-letter-spacing);
7520
+ }
7521
+
7522
+ .time-picker-template-section {
7523
+ display: flex;
7524
+ flex-direction: column;
7525
+ gap: var(--time-picker-template-section-gap);
7526
+ }
7527
+ .time-picker-template-section h3 {
7528
+ margin: 0;
7529
+ font-size: var(--time-picker-template-heading-size);
7530
+ line-height: var(--time-picker-template-heading-line-height);
7531
+ font-weight: var(--time-picker-template-heading-weight);
7532
+ }
7533
+
7534
+ .time-picker-period-control.segmented-control {
7535
+ --segmented-height: var(--time-picker-period-height);
7536
+ --segmented-padding: var(--time-picker-period-padding);
7537
+ --segmented-radius: var(--time-picker-period-radius);
7538
+ --segmented-bg: var(--time-picker-period-surface-color);
7539
+ --segmented-indicator-bg: var(--time-picker-period-item-surface-color);
7540
+ --segmented-indicator-shadow: var(--time-picker-period-item-shadow);
7541
+ --segmented-label-color: var(--time-picker-period-item-color);
7542
+ --segmented-label-active-color: var(--time-picker-period-item-color);
7543
+ --segmented-gap: 0px;
7544
+ --segmented-item-font-size: var(--time-picker-period-item-font-size);
7545
+ --segmented-item-font-weight: var(--time-picker-period-item-font-weight);
7546
+ --segmented-item-line-height: var(--time-picker-period-item-line-height);
7547
+ width: 100%;
7548
+ height: var(--time-picker-period-height);
7549
+ border-radius: var(--time-picker-period-radius);
7550
+ }
7551
+ .time-picker-period-control.segmented-control .segmented-control-indicator,
7552
+ .time-picker-period-control.segmented-control .segmented-control-button {
7553
+ border-radius: var(--time-picker-period-item-radius);
7554
+ }
7555
+ .time-picker-period-control.segmented-control .segmented-control-list {
7556
+ width: 100%;
7557
+ height: 100%;
7558
+ }
7559
+ .time-picker-period-control.segmented-control .segmented-control-item {
7560
+ display: flex;
7561
+ flex: 1;
7562
+ }
7563
+ .time-picker-period-control.segmented-control .segmented-control-button {
7564
+ height: 100%;
7565
+ }
7566
+ .time-picker-period-control.segmented-control .segmented-control-label {
7567
+ letter-spacing: 0;
7568
+ }
7569
+
7570
+ .time-picker-option-grid {
7571
+ display: grid;
7572
+ grid-template-columns: repeat(4, 1fr);
7573
+ gap: var(--time-picker-option-gap);
7574
+ }
7575
+
7576
+ .time-picker-option {
7577
+ min-width: 0;
7578
+ height: var(--time-picker-option-height);
7579
+ padding: 0;
7580
+ border: var(--time-picker-option-border-width) solid
7581
+ var(--time-picker-option-border-color);
7582
+ border-radius: var(--time-picker-option-radius);
7583
+ background-color: var(--time-picker-option-surface-color);
7584
+ color: var(--time-picker-option-color);
7585
+ font-size: var(--time-picker-option-font-size);
7586
+ line-height: var(--time-picker-option-line-height);
7587
+ cursor: pointer;
7588
+ }
7589
+ .time-picker-option:where([aria-pressed="true"]) {
7590
+ border-color: var(--time-picker-option-selected-color);
7591
+ background-color: var(--time-picker-option-selected-surface-color);
7592
+ color: var(--time-picker-option-selected-color);
7593
+ }
7594
+
7595
+ .time-picker-minute-stepper {
7596
+ display: flex;
7597
+ align-items: center;
7598
+ justify-content: center;
7599
+ gap: var(--time-picker-minute-stepper-gap);
7600
+ height: var(--time-picker-minute-stepper-height);
7601
+ border-radius: var(--time-picker-minute-stepper-radius);
7602
+ background-color: var(--time-picker-minute-stepper-surface-color);
7603
+ text-align: center;
7604
+ }
7605
+ .time-picker-minute-stepper strong {
7606
+ font-size: var(--time-picker-minute-value-size);
7607
+ line-height: var(--time-picker-minute-value-line-height);
7608
+ font-weight: var(--time-picker-minute-value-weight);
7609
+ }
7610
+ .time-picker-minute-stepper button {
7611
+ display: flex;
7612
+ align-items: center;
7613
+ justify-content: center;
7614
+ width: var(--time-picker-minute-control-size);
7615
+ height: var(--time-picker-minute-control-size);
7616
+ padding: 0;
7617
+ border: 0;
7618
+ background-color: transparent;
7619
+ cursor: pointer;
7620
+ }
7621
+ .time-picker-minute-stepper button svg {
7622
+ width: 100%;
7623
+ height: 100%;
7624
+ }
7625
+
7626
+ .time-picker-template-footer {
7627
+ display: flex;
7628
+ align-items: center;
7629
+ justify-content: space-between;
7630
+ gap: var(--time-picker-template-footer-gap);
7631
+ }
7632
+
7633
+ .time-picker-clear-action {
7634
+ margin: 0;
7635
+ padding: 0;
7636
+ border: 0;
7637
+ background-color: transparent;
7638
+ color: var(--time-picker-clear-color);
7639
+ font-size: var(--time-picker-clear-size);
7640
+ line-height: var(--time-picker-clear-line-height);
7641
+ cursor: pointer;
7642
+ }
7643
+
7601
7644
  .toast-stack {
7602
7645
  --toast-stack-translate-x: 0;
7603
7646
  --toast-stack-translate-y: 0;