@onereach/ui-components 3.0.4-beta.2500.0 → 3.0.4-beta.2502.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 (99) hide show
  1. package/dist/bundled/v2/OrDatePicker-19e467e2.js +330 -0
  2. package/dist/bundled/v2/OrDateTimePicker-1011dc69.js +440 -0
  3. package/dist/bundled/v2/OrDateTimePickerMonthSelect-9e64d257.js +408 -0
  4. package/dist/bundled/v2/OrDateTimePickerPopoverHeader-c8672c0d.js +239 -0
  5. package/dist/bundled/v2/OrDateTimePickerTimeSelect-158d717b.js +179 -0
  6. package/dist/bundled/v2/OrTimePicker-1b3a758a.js +318 -0
  7. package/dist/bundled/v2/components/index.d.ts +2 -0
  8. package/dist/bundled/v2/components/index.js +7 -2
  9. package/dist/bundled/v2/components/or-date-picker-v3/OrDatePicker.vue.d.ts +183 -0
  10. package/dist/bundled/v2/components/or-date-picker-v3/index.d.ts +2 -0
  11. package/dist/bundled/v2/components/or-date-picker-v3/index.js +31 -0
  12. package/dist/bundled/v2/components/or-date-picker-v3/props.d.ts +1 -0
  13. package/dist/bundled/v2/components/or-date-picker-v3/styles.d.ts +2 -0
  14. package/dist/bundled/v2/components/or-date-time-picker-v3/index.js +7 -5
  15. package/dist/bundled/v2/components/or-time-picker-v3/OrTimePicker.vue.d.ts +183 -0
  16. package/dist/bundled/v2/components/or-time-picker-v3/index.d.ts +2 -0
  17. package/dist/bundled/v2/components/or-time-picker-v3/index.js +29 -0
  18. package/dist/bundled/v2/components/or-time-picker-v3/props.d.ts +1 -0
  19. package/dist/bundled/v2/components/or-time-picker-v3/styles.d.ts +2 -0
  20. package/dist/bundled/v2/index.js +7 -2
  21. package/dist/bundled/v3/OrDatePicker.vue_vue_type_script_lang-8eafbe6b.js +177 -0
  22. package/dist/bundled/v3/OrDateTimePicker.vue_vue_type_script_lang-b2a9ef8d.js +226 -0
  23. package/dist/bundled/v3/OrDateTimePickerMonthSelect-8989be5a.js +341 -0
  24. package/dist/bundled/v3/OrDateTimePickerPopoverHeader-caffcc00.js +162 -0
  25. package/dist/bundled/v3/OrDateTimePickerTimeSelect-e3a89bed.js +148 -0
  26. package/dist/bundled/v3/OrTimePicker.vue_vue_type_script_lang-f46eb37f.js +176 -0
  27. package/dist/bundled/v3/components/index.d.ts +2 -0
  28. package/dist/bundled/v3/components/index.js +8 -3
  29. package/dist/bundled/v3/components/or-date-picker-v3/OrDatePicker.vue.d.ts +183 -0
  30. package/dist/bundled/v3/components/or-date-picker-v3/index.d.ts +2 -0
  31. package/dist/bundled/v3/components/or-date-picker-v3/index.js +37 -0
  32. package/dist/bundled/v3/components/or-date-picker-v3/props.d.ts +1 -0
  33. package/dist/bundled/v3/components/or-date-picker-v3/styles.d.ts +2 -0
  34. package/dist/bundled/v3/components/or-date-time-picker-v3/index.js +7 -4
  35. package/dist/bundled/v3/components/or-time-picker-v3/OrTimePicker.vue.d.ts +183 -0
  36. package/dist/bundled/v3/components/or-time-picker-v3/index.d.ts +2 -0
  37. package/dist/bundled/v3/components/or-time-picker-v3/index.js +33 -0
  38. package/dist/bundled/v3/components/or-time-picker-v3/props.d.ts +1 -0
  39. package/dist/bundled/v3/components/or-time-picker-v3/styles.d.ts +2 -0
  40. package/dist/bundled/v3/index.js +629 -402
  41. package/dist/esm/v2/OrDatePicker-454f5267.js +329 -0
  42. package/dist/esm/v2/OrDateTimePicker-3f533d0c.js +439 -0
  43. package/dist/esm/v2/OrDateTimePickerMonthSelect-380d9c90.js +406 -0
  44. package/dist/esm/v2/OrDateTimePickerPopoverHeader-e11d3222.js +235 -0
  45. package/dist/esm/v2/OrDateTimePickerTimeSelect-83dd1e81.js +177 -0
  46. package/dist/esm/v2/OrTimePicker-f23c8577.js +317 -0
  47. package/dist/esm/v2/components/index.d.ts +2 -0
  48. package/dist/esm/v2/components/index.js +8 -3
  49. package/dist/esm/v2/components/or-date-picker-v3/OrDatePicker.vue.d.ts +183 -0
  50. package/dist/esm/v2/components/or-date-picker-v3/index.d.ts +2 -0
  51. package/dist/esm/v2/components/or-date-picker-v3/index.js +29 -0
  52. package/dist/esm/v2/components/or-date-picker-v3/props.d.ts +1 -0
  53. package/dist/esm/v2/components/or-date-picker-v3/styles.d.ts +2 -0
  54. package/dist/esm/v2/components/or-date-time-picker-v3/index.js +4 -2
  55. package/dist/esm/v2/components/or-time-picker-v3/OrTimePicker.vue.d.ts +183 -0
  56. package/dist/esm/v2/components/or-time-picker-v3/index.d.ts +2 -0
  57. package/dist/esm/v2/components/or-time-picker-v3/index.js +27 -0
  58. package/dist/esm/v2/components/or-time-picker-v3/props.d.ts +1 -0
  59. package/dist/esm/v2/components/or-time-picker-v3/styles.d.ts +2 -0
  60. package/dist/esm/v2/index.js +8 -3
  61. package/dist/esm/v3/OrDatePicker-390f7f11.js +288 -0
  62. package/dist/esm/v3/OrDateTimePicker-54db4170.js +390 -0
  63. package/dist/esm/v3/OrDateTimePickerMonthSelect-709b673d.js +338 -0
  64. package/dist/esm/v3/OrDateTimePickerPopoverHeader-c771a251.js +161 -0
  65. package/dist/esm/v3/OrDateTimePickerTimeSelect-2c8a7f9c.js +148 -0
  66. package/dist/esm/v3/OrTimePicker-362ca566.js +282 -0
  67. package/dist/esm/v3/components/index.d.ts +2 -0
  68. package/dist/esm/v3/components/index.js +7 -2
  69. package/dist/esm/v3/components/or-date-picker-v3/OrDatePicker.vue.d.ts +183 -0
  70. package/dist/esm/v3/components/or-date-picker-v3/index.d.ts +2 -0
  71. package/dist/esm/v3/components/or-date-picker-v3/index.js +27 -0
  72. package/dist/esm/v3/components/or-date-picker-v3/props.d.ts +1 -0
  73. package/dist/esm/v3/components/or-date-picker-v3/styles.d.ts +2 -0
  74. package/dist/esm/v3/components/or-date-time-picker-v3/index.js +4 -2
  75. package/dist/esm/v3/components/or-time-picker-v3/OrTimePicker.vue.d.ts +183 -0
  76. package/dist/esm/v3/components/or-time-picker-v3/index.d.ts +2 -0
  77. package/dist/esm/v3/components/or-time-picker-v3/index.js +25 -0
  78. package/dist/esm/v3/components/or-time-picker-v3/props.d.ts +1 -0
  79. package/dist/esm/v3/components/or-time-picker-v3/styles.d.ts +2 -0
  80. package/dist/esm/v3/index.js +7 -2
  81. package/package.json +2 -2
  82. package/src/components/index.ts +2 -0
  83. package/src/components/or-date-picker-v3/OrDatePicker.docs.mdx +7 -0
  84. package/src/components/or-date-picker-v3/OrDatePicker.stories3.ts +160 -0
  85. package/src/components/or-date-picker-v3/OrDatePicker.vue +308 -0
  86. package/src/components/or-date-picker-v3/index.ts +2 -0
  87. package/src/components/or-date-picker-v3/props.ts +1 -0
  88. package/src/components/or-date-picker-v3/styles.ts +12 -0
  89. package/src/components/or-date-time-picker-v3/OrDateTimePicker.vue +0 -34
  90. package/src/components/or-time-picker-v3/OrTimePicker.docs.mdx +7 -0
  91. package/src/components/or-time-picker-v3/OrTimePicker.stories3.ts +160 -0
  92. package/src/components/or-time-picker-v3/OrTimePicker.vue +302 -0
  93. package/src/components/or-time-picker-v3/index.ts +2 -0
  94. package/src/components/or-time-picker-v3/props.ts +1 -0
  95. package/src/components/or-time-picker-v3/styles.ts +12 -0
  96. package/dist/bundled/v2/OrDateTimePicker-5a379f88.js +0 -1245
  97. package/dist/bundled/v3/OrDateTimePicker.vue_vue_type_script_lang-77c42110.js +0 -855
  98. package/dist/esm/v2/OrDateTimePicker-9b277e74.js +0 -1238
  99. package/dist/esm/v3/OrDateTimePicker-46b452b3.js +0 -1021
@@ -0,0 +1,302 @@
1
+ <template>
2
+ <div
3
+ ref="root"
4
+ :class="rootStyles"
5
+ >
6
+ <template v-if="label">
7
+ <OrLabel
8
+ :control-id="controlAttributes.id"
9
+ :variant="'input'"
10
+ :required="required"
11
+ :disabled="disabled"
12
+ >
13
+ {{ label }}
14
+
15
+ <template v-slot:addon>
16
+ <slot name="addon" />
17
+ </template>
18
+ </OrLabel>
19
+ </template>
20
+
21
+ <OrInputBox
22
+ v-dropdown-open="togglePopover"
23
+ v-dropdown-close="closePopover"
24
+ :variant="disableDefaultStyles ? 'unstyled' : 'styled'"
25
+ :size="size"
26
+ :invalid="!!error"
27
+ :readonly="readonly"
28
+ :disabled="disabled"
29
+ >
30
+ <div
31
+ ref="control"
32
+ v-dropdown-open="togglePopover"
33
+ v-dropdown-close="closePopover"
34
+ v-bind="controlAttributes"
35
+ :class="controlStyles"
36
+ :contenteditable="true"
37
+ :required="required"
38
+ :readonly="readonly"
39
+ :disabled="disabled"
40
+ >
41
+ {{ formatTime(proxyModelValue) }}
42
+ </div>
43
+
44
+ <OrPopover
45
+ ref="popover"
46
+ :variant="'auto'"
47
+ :trigger="control"
48
+ :placement="'bottom'"
49
+ >
50
+ <OrDateTimePickerPopoverHeader>
51
+ <OrDateTimePickerMobileControl label="Time">
52
+ {{ formatTimeAlt(draftModelValue) }}
53
+ </OrDateTimePickerMobileControl>
54
+ </OrDateTimePickerPopoverHeader>
55
+
56
+ <OrDateTimePickerTimeSelect
57
+ v-model="draftModelValue"
58
+ :filter="filter"
59
+ />
60
+
61
+ <OrDateTimePickerPopoverFooter
62
+ @resolve="proxyModelValue = draftModelValue; popover.close()"
63
+ @reject="draftModelValue = proxyModelValue; popover.close()"
64
+ />
65
+ </OrPopover>
66
+
67
+ <div :class="['grow']" />
68
+
69
+ <div :class="['layout-inline-row']">
70
+ <template v-if="modelValue">
71
+ <OrIconButton
72
+ :icon="'close'"
73
+ :color="'inherit'"
74
+ :disabled="readonly || disabled"
75
+ @click.stop="$emit('update:modelValue', undefined)"
76
+ />
77
+ </template>
78
+ </div>
79
+ </OrInputBox>
80
+
81
+ <template v-if="!error">
82
+ <template v-if="hint">
83
+ <OrHint :disabled="disabled">
84
+ {{ hint }}
85
+ </OrHint>
86
+ </template>
87
+ </template>
88
+
89
+ <template v-if="typeof error === 'string'">
90
+ <OrError :disabled="disabled">
91
+ {{ error }}
92
+ </OrError>
93
+ </template>
94
+ </div>
95
+ </template>
96
+
97
+ <script lang="ts">
98
+ import { computed, defineComponent, PropType, reactive, ref, watch } from 'vue-demi';
99
+ import { DropdownClose, DropdownOpen } from '../../directives';
100
+ import { useControlAttributes, useIdAttribute, useValidationAttributes } from '../../hooks';
101
+ import OrDateTimePickerMobileControl from '../or-date-time-picker-v3/partials/or-date-time-picker-mobile-control/OrDateTimePickerMobileControl.vue';
102
+ import OrDateTimePickerPopoverFooter from '../or-date-time-picker-v3/partials/or-date-time-picker-popover-footer/OrDateTimePickerPopoverFooter.vue';
103
+ import OrDateTimePickerPopoverHeader from '../or-date-time-picker-v3/partials/or-date-time-picker-popover-header/OrDateTimePickerPopoverHeader.vue';
104
+ import OrDateTimePickerTimeSelect from '../or-date-time-picker-v3/partials/or-date-time-picker-time-select/OrDateTimePickerTimeSelect.vue';
105
+ import { OrErrorV3 as OrError } from '../or-error-v3';
106
+ import { OrHintV3 as OrHint } from '../or-hint-v3';
107
+ import { OrIconButtonV3 as OrIconButton } from '../or-icon-button-v3';
108
+ import { OrInputBoxV3 as OrInputBox } from '../or-input-box-v3';
109
+ import { OrLabelV3 as OrLabel } from '../or-label-v3';
110
+ import { OrPopoverV3 as OrPopover } from '../or-popover-v3';
111
+ import { TimePickerSize } from './props';
112
+ import { TimePicker, TimePickerControl } from './styles';
113
+
114
+ export default defineComponent({
115
+ name: 'OrDateTimePicker',
116
+
117
+ components: {
118
+ OrDateTimePickerMobileControl,
119
+ OrDateTimePickerPopoverFooter,
120
+ OrDateTimePickerPopoverHeader,
121
+ OrDateTimePickerTimeSelect,
122
+ OrError,
123
+ OrHint,
124
+ OrIconButton,
125
+ OrInputBox,
126
+ OrLabel,
127
+ OrPopover,
128
+ },
129
+
130
+ directives: {
131
+ DropdownClose,
132
+ DropdownOpen,
133
+ },
134
+
135
+ model: {
136
+ prop: 'modelValue',
137
+ event: 'update:modelValue',
138
+ },
139
+
140
+ props: {
141
+ modelValue: {
142
+ type: Date,
143
+ default: undefined,
144
+ },
145
+
146
+ filter: {
147
+ type: Function as PropType<(value: Date) => boolean>,
148
+ default: undefined,
149
+ },
150
+
151
+ size: {
152
+ type: String as PropType<TimePickerSize>,
153
+ default: TimePickerSize.M,
154
+ },
155
+
156
+ label: {
157
+ type: String,
158
+ default: undefined,
159
+ },
160
+
161
+ hint: {
162
+ type: String,
163
+ default: undefined,
164
+ },
165
+
166
+ error: {
167
+ type: [String, Boolean],
168
+ default: undefined,
169
+ },
170
+
171
+ required: {
172
+ type: Boolean,
173
+ default: false,
174
+ },
175
+
176
+ readonly: {
177
+ type: Boolean,
178
+ default: false,
179
+ },
180
+
181
+ disabled: {
182
+ type: Boolean,
183
+ default: false,
184
+ },
185
+
186
+ disableDefaultStyles: {
187
+ type: Boolean,
188
+ default: false,
189
+ },
190
+ },
191
+
192
+ emits: [
193
+ 'update:modelValue',
194
+
195
+ 'keydown',
196
+ 'keyup',
197
+ 'focus',
198
+ 'blur',
199
+ ],
200
+
201
+ expose: [
202
+ 'root',
203
+
204
+ 'focus',
205
+ 'blur',
206
+ ],
207
+
208
+ setup(props, context) {
209
+ // Refs
210
+ const root = ref<HTMLElement>();
211
+
212
+ const control = ref<HTMLInputElement>();
213
+
214
+ const popover = ref<InstanceType<typeof OrPopover>>();
215
+ const popoverState = computed(() => popover.value?.state);
216
+
217
+ // Styles
218
+ const rootStyles = computed(() => [
219
+ 'or-time-picker',
220
+ ...TimePicker,
221
+ ]);
222
+
223
+ const controlStyles = computed(() => [
224
+ ...TimePickerControl,
225
+ ]);
226
+
227
+ // State
228
+ const controlAttributes = reactive({
229
+ id: useIdAttribute(),
230
+ ...useControlAttributes(),
231
+ ...useValidationAttributes(),
232
+ });
233
+
234
+ const proxyModelValue = computed({
235
+ get: () => props.modelValue,
236
+
237
+ set: (value) => {
238
+ context.emit('update:modelValue', value);
239
+ },
240
+ });
241
+
242
+ const draftModelValue = ref<Date>();
243
+
244
+ watch(proxyModelValue, (value) => {
245
+ draftModelValue.value = value;
246
+ }, { immediate: true });
247
+
248
+ // Methods
249
+ function togglePopover(): void {
250
+ if (!props.readonly && !props.disabled) {
251
+ const popoverInstance = popover.value;
252
+
253
+ if (popoverInstance) {
254
+ if (popoverState.value === 'open') {
255
+ (popoverInstance.close as () => void)();
256
+ } else {
257
+ (popoverInstance.open as () => void)();
258
+ }
259
+ }
260
+ }
261
+ }
262
+
263
+ function closePopover(): void {
264
+ const popoverInstance = popover.value;
265
+
266
+ if (popoverInstance) {
267
+ (popoverInstance.close as () => void)();
268
+ }
269
+ }
270
+
271
+ function formatTime(value?: Date): string {
272
+ return value?.toLocaleString('default', {
273
+ timeStyle: 'short',
274
+ timeZone: 'UTC',
275
+ }) ?? '--';
276
+ }
277
+
278
+ function formatTimeAlt(value?: Date): string {
279
+ return value?.toLocaleString('default', {
280
+ timeStyle: 'short',
281
+ timeZone: 'UTC',
282
+ }) ?? '--';
283
+ }
284
+
285
+ return {
286
+ root,
287
+ control,
288
+ popover,
289
+ popoverState,
290
+ rootStyles,
291
+ controlStyles,
292
+ controlAttributes,
293
+ proxyModelValue,
294
+ draftModelValue,
295
+ togglePopover,
296
+ closePopover,
297
+ formatTime,
298
+ formatTimeAlt,
299
+ };
300
+ },
301
+ });
302
+ </script>
@@ -0,0 +1,2 @@
1
+ export { default as OrTimePickerV3 } from './OrTimePicker.vue';
2
+ export * from './props';
@@ -0,0 +1 @@
1
+ export { InputBoxSize as TimePickerSize } from '../or-input-box-v3';
@@ -0,0 +1,12 @@
1
+ export const TimePicker: string[] = [
2
+ // Layout
3
+ 'layout-column',
4
+
5
+ // Spacing
6
+ 'gap-xs',
7
+ ];
8
+
9
+ export const TimePickerControl: string[] = [
10
+ // Layout
11
+ 'layout-inline-row justify-center',
12
+ ];