|
18 | 18 | v-if="showTime" |
19 | 19 | class="time-wrapper" |
20 | 20 | > |
21 | | - <div |
22 | | - class="time-input" |
23 | | - > |
24 | | - <label |
25 | | - class="time-input-label" |
26 | | - :for="`time-input-start-${componentId}`" |
27 | | - > |
28 | | - <span v-if="showRange('start')"> |
29 | | - <!-- @vue-ignore: typeguard in showRange --> |
30 | | - {{ formatDateDisplay(calendarVModel.start) }} |
31 | | - </span> |
32 | | - <span v-else-if="(calendarVModel && calendarVModel instanceof Date)"> |
33 | | - {{ formatDateDisplay(calendarVModel) }} |
34 | | - </span> |
35 | | - </label> |
36 | | - <input |
37 | | - :id="`time-input-start-${componentId}`" |
38 | | - v-model="startTimeValue" |
39 | | - class="time-input-start" |
40 | | - :class="{ 'input-error': hasError }" |
41 | | - data-testid="time-input-start" |
42 | | - :step="60" |
43 | | - type="time" |
44 | | - > |
45 | | - <label |
46 | | - class="time-input-label" |
47 | | - :for="`time-input-end-${componentId}`" |
48 | | - > |
49 | | - <span v-if="showRange('end')"> |
50 | | - <!-- @vue-ignore: typeguard in showRange --> |
51 | | - {{ format(calendarVModel.end, 'EEE MMM d yyyy') }} |
52 | | - </span> |
53 | | - </label> |
54 | | - <input |
55 | | - v-if="isRange" |
56 | | - :id="`time-input-end-${componentId}`" |
57 | | - v-model="endTimeValue" |
58 | | - class="time-input-end" |
59 | | - :class="{ 'input-error': hasError }" |
60 | | - data-testid="time-input-end" |
61 | | - :step="60" |
62 | | - type="time" |
63 | | - > |
| 21 | + <div class="time-input"> |
| 22 | + <div class="time-input-item"> |
| 23 | + <label |
| 24 | + class="time-input-label" |
| 25 | + :for="`time-input-start-${componentId}`" |
| 26 | + > |
| 27 | + <span v-if="showRange('start')"> |
| 28 | + <!-- @vue-ignore: typeguard in showRange --> |
| 29 | + {{ formatDateDisplay(calendarVModel.start) }} |
| 30 | + </span> |
| 31 | + <span v-else-if="(calendarVModel && calendarVModel instanceof Date)"> |
| 32 | + {{ formatDateDisplay(calendarVModel) }} |
| 33 | + </span> |
| 34 | + </label> |
| 35 | + <input |
| 36 | + :id="`time-input-start-${componentId}`" |
| 37 | + v-model="startTimeValue" |
| 38 | + class="time-input-start" |
| 39 | + :class="{ 'input-error': hasError }" |
| 40 | + data-testid="time-input-start" |
| 41 | + :step="60" |
| 42 | + type="time" |
| 43 | + > |
| 44 | + </div> |
| 45 | + <div class="time-input-item"> |
| 46 | + <label |
| 47 | + class="time-input-label" |
| 48 | + :for="`time-input-end-${componentId}`" |
| 49 | + > |
| 50 | + <span v-if="showRange('end')"> |
| 51 | + <!-- @vue-ignore: typeguard in showRange --> |
| 52 | + {{ format(calendarVModel.end, 'EEE MMM d yyyy') }} |
| 53 | + </span> |
| 54 | + </label> |
| 55 | + <input |
| 56 | + v-if="isRange" |
| 57 | + :id="`time-input-end-${componentId}`" |
| 58 | + v-model="endTimeValue" |
| 59 | + class="time-input-end" |
| 60 | + :class="{ 'input-error': hasError }" |
| 61 | + data-testid="time-input-end" |
| 62 | + :step="60" |
| 63 | + type="time" |
| 64 | + > |
| 65 | + </div> |
64 | 66 | </div> |
65 | 67 | <Transition |
66 | 68 | mode="out-in" |
@@ -229,10 +231,14 @@ defineExpose({ |
229 | 231 | .time-input { |
230 | 232 | border-radius: var(--kui-border-radius-10, $kui-border-radius-10); |
231 | 233 | display: flex; |
232 | | - flex-direction: column; |
| 234 | + flex-direction: row; |
233 | 235 | gap: var(--kui-space-30, $kui-space-30); |
| 236 | + justify-content: space-between; |
234 | 237 | padding: var(--kui-space-30, $kui-space-30) var(--kui-space-60, $kui-space-60); |
235 | | - width: fit-content; |
| 238 | +
|
| 239 | + .time-input-item { |
| 240 | + width: min-content; |
| 241 | + } |
236 | 242 |
|
237 | 243 | input[type="time"] { |
238 | 244 | @include inputDefaults; |
|
0 commit comments