@onereach/ui-components 3.0.4-beta.2487.0 → 3.0.4-beta.2500.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 (40) hide show
  1. package/dist/bundled/v2/{OrDateTimePicker-11b6d4dd.js → OrDateTimePicker-5a379f88.js} +85 -19
  2. package/dist/bundled/v2/components/index.js +1 -1
  3. package/dist/bundled/v2/components/or-date-time-picker-v3/OrDateTimePicker.vue.d.ts +20 -1
  4. package/dist/bundled/v2/components/or-date-time-picker-v3/index.js +1 -1
  5. package/dist/bundled/v2/components/or-date-time-picker-v3/partials/or-date-time-picker-day-select/OrDateTimePickerDaySelect.vue.d.ts +12 -0
  6. package/dist/bundled/v2/components/or-date-time-picker-v3/partials/or-date-time-picker-month-select/OrDateTimePickerMonthSelect.vue.d.ts +12 -0
  7. package/dist/bundled/v2/components/or-date-time-picker-v3/partials/or-date-time-picker-time-select/OrDateTimePickerTimeSelect.vue.d.ts +12 -0
  8. package/dist/bundled/v2/index.js +2 -2
  9. package/dist/bundled/v3/{OrDateTimePicker.vue_vue_type_script_lang-b9bc77aa.js → OrDateTimePicker.vue_vue_type_script_lang-77c42110.js} +65 -8
  10. package/dist/bundled/v3/components/index.js +1 -1
  11. package/dist/bundled/v3/components/or-date-time-picker-v3/OrDateTimePicker.vue.d.ts +20 -1
  12. package/dist/bundled/v3/components/or-date-time-picker-v3/index.js +1 -1
  13. package/dist/bundled/v3/components/or-date-time-picker-v3/partials/or-date-time-picker-day-select/OrDateTimePickerDaySelect.vue.d.ts +12 -0
  14. package/dist/bundled/v3/components/or-date-time-picker-v3/partials/or-date-time-picker-month-select/OrDateTimePickerMonthSelect.vue.d.ts +12 -0
  15. package/dist/bundled/v3/components/or-date-time-picker-v3/partials/or-date-time-picker-time-select/OrDateTimePickerTimeSelect.vue.d.ts +12 -0
  16. package/dist/bundled/v3/index.js +26 -19
  17. package/dist/esm/v2/{OrDateTimePicker-7411ea1f.js → OrDateTimePicker-9b277e74.js} +88 -22
  18. package/dist/esm/v2/components/index.js +1 -1
  19. package/dist/esm/v2/components/or-date-time-picker-v3/OrDateTimePicker.vue.d.ts +20 -1
  20. package/dist/esm/v2/components/or-date-time-picker-v3/index.js +4 -4
  21. package/dist/esm/v2/components/or-date-time-picker-v3/partials/or-date-time-picker-day-select/OrDateTimePickerDaySelect.vue.d.ts +12 -0
  22. package/dist/esm/v2/components/or-date-time-picker-v3/partials/or-date-time-picker-month-select/OrDateTimePickerMonthSelect.vue.d.ts +12 -0
  23. package/dist/esm/v2/components/or-date-time-picker-v3/partials/or-date-time-picker-time-select/OrDateTimePickerTimeSelect.vue.d.ts +12 -0
  24. package/dist/esm/v2/index.js +1 -1
  25. package/dist/esm/v3/{OrDateTimePicker-966d5b1d.js → OrDateTimePicker-46b452b3.js} +91 -27
  26. package/dist/esm/v3/components/index.js +1 -1
  27. package/dist/esm/v3/components/or-date-time-picker-v3/OrDateTimePicker.vue.d.ts +20 -1
  28. package/dist/esm/v3/components/or-date-time-picker-v3/index.js +3 -3
  29. package/dist/esm/v3/components/or-date-time-picker-v3/partials/or-date-time-picker-day-select/OrDateTimePickerDaySelect.vue.d.ts +12 -0
  30. package/dist/esm/v3/components/or-date-time-picker-v3/partials/or-date-time-picker-month-select/OrDateTimePickerMonthSelect.vue.d.ts +12 -0
  31. package/dist/esm/v3/components/or-date-time-picker-v3/partials/or-date-time-picker-time-select/OrDateTimePickerTimeSelect.vue.d.ts +12 -0
  32. package/dist/esm/v3/index.js +1 -1
  33. package/package.json +2 -2
  34. package/src/components/or-date-time-picker-v3/OrDateTimePicker.stories3.ts +4 -0
  35. package/src/components/or-date-time-picker-v3/OrDateTimePicker.vue +88 -34
  36. package/src/components/or-date-time-picker-v3/partials/or-date-time-picker-day-select/OrDateTimePickerDaySelect.vue +7 -1
  37. package/src/components/or-date-time-picker-v3/partials/or-date-time-picker-day-select/styles.ts +3 -0
  38. package/src/components/or-date-time-picker-v3/partials/or-date-time-picker-month-select/OrDateTimePickerMonthSelect.vue +8 -1
  39. package/src/components/or-date-time-picker-v3/partials/or-date-time-picker-time-select/OrDateTimePickerTimeSelect.vue +8 -1
  40. package/src/components/or-date-time-picker-v3/styles.ts +5 -2
@@ -27,29 +27,59 @@
27
27
  :readonly="readonly"
28
28
  :disabled="disabled"
29
29
  >
30
- <input
30
+ <!-- <input
31
31
  ref="dateControl"
32
32
  v-dropdown-open="toggleDatePopover"
33
33
  v-dropdown-close="closeDatePopover"
34
34
  v-bind="controlAttributes"
35
35
  :class="controlStyles"
36
- :type="'date'"
36
+ :type="'text'"
37
+ :value="formatDate(proxyModelValue)"
38
+ :required="required"
39
+ :readonly="readonly"
40
+ :disabled="disabled"
41
+ > -->
42
+
43
+ <!-- <input
44
+ ref="timeControl"
45
+ v-dropdown-open="toggleTimePopover"
46
+ v-dropdown-close="closeTimePopover"
47
+ v-bind="controlAttributes"
48
+ :class="controlStyles"
49
+ :type="'text'"
50
+ :value="formatTime(proxyModelValue)"
51
+ :required="required"
52
+ :readonly="readonly"
53
+ :disabled="disabled"
54
+ > -->
55
+
56
+ <div
57
+ ref="dateControl"
58
+ v-dropdown-open="toggleDatePopover"
59
+ v-dropdown-close="closeDatePopover"
60
+ v-bind="controlAttributes"
61
+ :class="controlStyles"
62
+ :contenteditable="true"
37
63
  :required="required"
38
64
  :readonly="readonly"
39
65
  :disabled="disabled"
40
66
  >
67
+ {{ formatDate(proxyModelValue) }}
68
+ </div>
41
69
 
42
- <input
70
+ <div
43
71
  ref="timeControl"
44
72
  v-dropdown-open="toggleTimePopover"
45
73
  v-dropdown-close="closeTimePopover"
46
74
  v-bind="controlAttributes"
47
75
  :class="controlStyles"
48
- :type="'time'"
76
+ :contenteditable="true"
49
77
  :required="required"
50
78
  :readonly="readonly"
51
79
  :disabled="disabled"
52
80
  >
81
+ {{ formatTime(proxyModelValue) }}
82
+ </div>
53
83
 
54
84
  <OrPopover
55
85
  ref="datePopover"
@@ -59,16 +89,22 @@
59
89
  >
60
90
  <OrDateTimePickerPopoverHeader>
61
91
  <OrDateTimePickerMobileControl label="Date">
62
- Sep 12
92
+ {{ formatDateAlt(draftModelValue) }}
63
93
  </OrDateTimePickerMobileControl>
64
94
 
65
95
  <OrDateTimePickerMobileControl label="Time">
66
- 9:07
96
+ {{ formatTimeAlt(draftModelValue) }}
67
97
  </OrDateTimePickerMobileControl>
68
98
  </OrDateTimePickerPopoverHeader>
69
99
 
70
- <OrDateTimePickerMonthSelect v-model="draftModelValue" />
71
- <OrDateTimePickerDaySelect v-model="draftModelValue" />
100
+ <OrDateTimePickerMonthSelect
101
+ v-model="draftModelValue"
102
+ :filter="filter"
103
+ />
104
+ <OrDateTimePickerDaySelect
105
+ v-model="draftModelValue"
106
+ :filter="filter"
107
+ />
72
108
 
73
109
  <OrDateTimePickerPopoverFooter
74
110
  @resolve="proxyModelValue = draftModelValue; datePopover.close()"
@@ -84,15 +120,18 @@
84
120
  >
85
121
  <OrDateTimePickerPopoverHeader>
86
122
  <OrDateTimePickerMobileControl label="Date">
87
- Sep 12
123
+ {{ formatDateAlt(draftModelValue) }}
88
124
  </OrDateTimePickerMobileControl>
89
125
 
90
126
  <OrDateTimePickerMobileControl label="Time">
91
- 9:07
127
+ {{ formatTimeAlt(draftModelValue) }}
92
128
  </OrDateTimePickerMobileControl>
93
129
  </OrDateTimePickerPopoverHeader>
94
130
 
95
- <OrDateTimePickerTimeSelect v-model="draftModelValue" />
131
+ <OrDateTimePickerTimeSelect
132
+ v-model="draftModelValue"
133
+ :filter="filter"
134
+ />
96
135
 
97
136
  <OrDateTimePickerPopoverFooter
98
137
  @resolve="proxyModelValue = draftModelValue; timePopover.close()"
@@ -132,7 +171,6 @@
132
171
 
133
172
  <script lang="ts">
134
173
  import { computed, defineComponent, PropType, reactive, ref, watch } from 'vue-demi';
135
- import { DateTimePickerSize } from '.';
136
174
  import { DropdownClose, DropdownOpen } from '../../directives';
137
175
  import { useControlAttributes, useIdAttribute, useValidationAttributes } from '../../hooks';
138
176
  import { OrErrorV3 as OrError } from '../or-error-v3';
@@ -147,6 +185,7 @@ import OrDateTimePickerMonthSelect from './partials/or-date-time-picker-month-se
147
185
  import OrDateTimePickerPopoverFooter from './partials/or-date-time-picker-popover-footer/OrDateTimePickerPopoverFooter.vue';
148
186
  import OrDateTimePickerPopoverHeader from './partials/or-date-time-picker-popover-header/OrDateTimePickerPopoverHeader.vue';
149
187
  import OrDateTimePickerTimeSelect from './partials/or-date-time-picker-time-select/OrDateTimePickerTimeSelect.vue';
188
+ import { DateTimePickerSize } from './props';
150
189
  import { DateTimePicker, DateTimePickerControl } from './styles';
151
190
 
152
191
  export default defineComponent({
@@ -183,6 +222,11 @@ export default defineComponent({
183
222
  default: undefined,
184
223
  },
185
224
 
225
+ filter: {
226
+ type: Function as PropType<(value: Date) => boolean>,
227
+ default: undefined,
228
+ },
229
+
186
230
  size: {
187
231
  type: String as PropType<DateTimePickerSize>,
188
232
  default: DateTimePickerSize.M,
@@ -329,6 +373,34 @@ export default defineComponent({
329
373
  }
330
374
  }
331
375
 
376
+ function formatDate(value?: Date): string {
377
+ return value?.toLocaleString('default', {
378
+ dateStyle: 'short',
379
+ timeZone: 'UTC',
380
+ }) ?? '--';
381
+ }
382
+
383
+ function formatTime(value?: Date): string {
384
+ return value?.toLocaleString('default', {
385
+ timeStyle: 'short',
386
+ timeZone: 'UTC',
387
+ }) ?? '--';
388
+ }
389
+
390
+ function formatDateAlt(value?: Date): string {
391
+ return value?.toLocaleString('default', {
392
+ dateStyle: 'medium',
393
+ timeZone: 'UTC',
394
+ }) ?? '--';
395
+ }
396
+
397
+ function formatTimeAlt(value?: Date): string {
398
+ return value?.toLocaleString('default', {
399
+ timeStyle: 'short',
400
+ timeZone: 'UTC',
401
+ }) ?? '--';
402
+ }
403
+
332
404
  return {
333
405
  root,
334
406
  dateControl,
@@ -346,6 +418,10 @@ export default defineComponent({
346
418
  toggleTimePopover,
347
419
  closeDatePopover,
348
420
  closeTimePopover,
421
+ formatDate,
422
+ formatTime,
423
+ formatDateAlt,
424
+ formatTimeAlt,
349
425
  };
350
426
  },
351
427
  });
@@ -357,26 +433,4 @@ input {
357
433
  background: none;
358
434
  outline: none;
359
435
  }
360
-
361
- input[type="date"]::-webkit-datetime-edit-day-field,
362
- input[type="date"]::-webkit-datetime-edit-month-field,
363
- input[type="date"]::-webkit-datetime-edit-year-field {
364
- display: none;
365
- }
366
-
367
- input[type="time"]::-webkit-datetime-edit-hour-field,
368
- input[type="time"]::-webkit-datetime-edit-minute-field,
369
- input[type="time"]::-webkit-datetime-edit-ampm-field {
370
- display: none;
371
- }
372
-
373
- input[type="date"]::-webkit-datetime-edit-text,
374
- input[type="time"]::-webkit-datetime-edit-text {
375
- display: none;
376
- }
377
-
378
- input[type="date"]::-webkit-calendar-picker-indicator,
379
- input[type="time"]::-webkit-calendar-picker-indicator {
380
- display: none;
381
- }
382
436
  </style>
@@ -10,6 +10,7 @@
10
10
  :class="buttonGroupItemStyles"
11
11
  :variant="Number(value) === Number(proxyModelValue) ? 'contained' : 'text'"
12
12
  :color="Number(value) === Number(proxyModelValue) ? 'primary' : 'inherit'"
13
+ :disabled="filter && !filter(value)"
13
14
  @click.stop="proxyModelValue = value"
14
15
  >
15
16
  {{ formatDay(value) }}
@@ -19,7 +20,7 @@
19
20
  </template>
20
21
 
21
22
  <script lang="ts">
22
- import { computed, defineComponent, ref } from 'vue-demi';
23
+ import { computed, defineComponent, PropType, ref } from 'vue-demi';
23
24
  import { OrButtonV3 as OrButton } from '../../../or-button-v3';
24
25
  import { useDefaultDate } from '../../hooks/useDefaultDate';
25
26
  import { useDefaultHours } from '../../hooks/useDefaultHours';
@@ -45,6 +46,11 @@ export default defineComponent({
45
46
  type: Date,
46
47
  default: undefined,
47
48
  },
49
+
50
+ filter: {
51
+ type: Function as PropType<(value: Date) => boolean>,
52
+ default: undefined,
53
+ },
48
54
  },
49
55
 
50
56
  emits: [
@@ -13,6 +13,9 @@ export const DateTimePickerDaySelectButtonGroup: string[] = [
13
13
  // Layout
14
14
  'grid',
15
15
  'grid-cols-7',
16
+
17
+ // Spacing
18
+ 'gap-xs',
16
19
  ];
17
20
 
18
21
  export const DateTimePickerDaySelectButtonGroupItem: string[] = [
@@ -35,6 +35,7 @@
35
35
  v-for="value in yearOptions"
36
36
  :key="Number(value)"
37
37
  :selected="Number(value) === Number(proxyModelValue)"
38
+ :disabled="filter && !filter(value)"
38
39
  @click.stop="proxyModelValue = value; yearMenu.close()"
39
40
  >
40
41
  {{ formatYear(value) }}
@@ -49,6 +50,7 @@
49
50
  v-for="value in monthOptions"
50
51
  :key="Number(value)"
51
52
  :selected="Number(value) === Number(proxyModelValue)"
53
+ :disabled="filter && !filter(value)"
52
54
  @click.stop="proxyModelValue = value; monthMenu.close()"
53
55
  >
54
56
  {{ formatMonth(value) }}
@@ -64,7 +66,7 @@
64
66
  </template>
65
67
 
66
68
  <script lang="ts">
67
- import { computed, defineComponent, ref } from 'vue-demi';
69
+ import { computed, defineComponent, PropType, ref } from 'vue-demi';
68
70
  import { OrButtonV3 as OrButton } from '../../../or-button-v3';
69
71
  import { OrIconButtonV3 as OrIconButton } from '../../../or-icon-button-v3';
70
72
  import { OrIconV3 as OrIcon } from '../../../or-icon-v3';
@@ -98,6 +100,11 @@ export default defineComponent({
98
100
  type: Date,
99
101
  default: undefined,
100
102
  },
103
+
104
+ filter: {
105
+ type: Function as PropType<(value: Date) => boolean>,
106
+ default: undefined,
107
+ },
101
108
  },
102
109
 
103
110
  emits: [
@@ -10,6 +10,7 @@
10
10
  :class="buttonGroupItemStyles"
11
11
  :variant="Number(value) === Number(proxyModelValue) ? 'contained' : 'text'"
12
12
  :color="Number(value) === Number(proxyModelValue) ? 'primary' : 'inherit'"
13
+ :disabled="filter && !filter(value)"
13
14
  @click.stop="proxyModelValue = value"
14
15
  >
15
16
  {{ formatHours(value) }}
@@ -25,6 +26,7 @@
25
26
  :class="buttonGroupItemStyles"
26
27
  :variant="Number(value) === Number(proxyModelValue) ? 'contained' : 'text'"
27
28
  :color="Number(value) === Number(proxyModelValue) ? 'primary' : 'inherit'"
29
+ :disabled="filter && !filter(value)"
28
30
  @click.stop="proxyModelValue = value"
29
31
  >
30
32
  {{ formatMinutes(value) }}
@@ -34,7 +36,7 @@
34
36
  </template>
35
37
 
36
38
  <script lang="ts">
37
- import { computed, defineComponent, ref } from 'vue-demi';
39
+ import { computed, defineComponent, PropType, ref } from 'vue-demi';
38
40
  import { OrButtonV3 as OrButton } from '../../../or-button-v3';
39
41
  import { useDefaultDate } from '../../hooks/useDefaultDate';
40
42
  import { useDefaultHours } from '../../hooks/useDefaultHours';
@@ -60,6 +62,11 @@ export default defineComponent({
60
62
  type: Date,
61
63
  default: undefined,
62
64
  },
65
+
66
+ filter: {
67
+ type: Function as PropType<(value: Date) => boolean>,
68
+ default: undefined,
69
+ },
63
70
  },
64
71
 
65
72
  emits: [
@@ -7,9 +7,12 @@ export const DateTimePicker: string[] = [
7
7
  ];
8
8
 
9
9
  export const DateTimePickerControl: string[] = [
10
+ // Layout
11
+ 'layout-inline-row justify-center',
12
+
10
13
  // Theme (focus)
11
- 'focus:theme-border-1-current',
12
- 'dark:focus:theme-border-1-current-dark',
14
+ 'focus:theme-border-2-current',
15
+ 'dark:focus:theme-border-2-current-dark',
13
16
 
14
17
  'focus:theme-border-underline',
15
18
  'dark:focus:theme-border-underline',