@onereach/ui-components 3.0.4-beta.2500.0 → 3.0.4-beta.2504.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 (118) 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-checkbox-v3/OrCheckbox.stories3.ts +1 -1
  84. package/src/components/or-combined-input-v3/OrCombinedInput.stories3.ts +1 -1
  85. package/src/components/{or-error-v3/OrError.docs.mdx → or-date-picker-v3/OrDatePicker.docs.mdx} +1 -1
  86. package/src/components/or-date-picker-v3/OrDatePicker.stories3.ts +160 -0
  87. package/src/components/or-date-picker-v3/OrDatePicker.vue +308 -0
  88. package/src/components/or-date-picker-v3/index.ts +2 -0
  89. package/src/components/or-date-picker-v3/props.ts +1 -0
  90. package/src/components/or-date-picker-v3/styles.ts +12 -0
  91. package/src/components/or-date-time-picker-v3/OrDateTimePicker.stories3.ts +1 -1
  92. package/src/components/or-date-time-picker-v3/OrDateTimePicker.vue +0 -34
  93. package/src/components/or-inline-input-v3/OrInlineInput.stories3.ts +1 -1
  94. package/src/components/or-inline-textarea-v3/OrInlineTextarea.stories3.ts +1 -1
  95. package/src/components/or-input-v3/OrInput.stories3.ts +2 -2
  96. package/src/components/or-radio-v3/OrRadio.stories3.ts +1 -1
  97. package/src/components/or-segmented-control-v3/OrSegmentedControl.stories3.ts +1 -1
  98. package/src/components/or-select-v3/OrSelect.stories3.ts +1 -1
  99. package/src/components/or-switch-v3/OrSwitch.stories3.ts +1 -1
  100. package/src/components/or-textarea-v3/OrTextarea.stories3.ts +1 -1
  101. package/src/components/{or-hint-v3/OrHint.docs.mdx → or-time-picker-v3/OrTimePicker.docs.mdx} +1 -1
  102. package/src/components/or-time-picker-v3/OrTimePicker.stories3.ts +160 -0
  103. package/src/components/or-time-picker-v3/OrTimePicker.vue +302 -0
  104. package/src/components/or-time-picker-v3/index.ts +2 -0
  105. package/src/components/or-time-picker-v3/props.ts +1 -0
  106. package/src/components/or-time-picker-v3/styles.ts +12 -0
  107. package/dist/bundled/v2/OrDateTimePicker-5a379f88.js +0 -1245
  108. package/dist/bundled/v3/OrDateTimePicker.vue_vue_type_script_lang-77c42110.js +0 -855
  109. package/dist/esm/v2/OrDateTimePicker-9b277e74.js +0 -1238
  110. package/dist/esm/v3/OrDateTimePicker-46b452b3.js +0 -1021
  111. package/src/components/or-error-v3/OrError.stories3.ts +0 -77
  112. package/src/components/or-hint-v3/OrHint.stories3.ts +0 -77
  113. package/src/components/or-inline-input-box-v3/OrInlineInputBox.docs.mdx +0 -3
  114. package/src/components/or-inline-input-box-v3/OrInlineInputBox.stories3.ts +0 -67
  115. package/src/components/or-input-box-v3/OrInputBox.docs.mdx +0 -3
  116. package/src/components/or-input-box-v3/OrInputBox.stories3.ts +0 -80
  117. package/src/components/or-label-v3/OrLabel.docs.mdx +0 -11
  118. package/src/components/or-label-v3/OrLabel.stories3.ts +0 -91
@@ -0,0 +1,308 @@
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
+ {{ formatDate(proxyModelValue) }}
42
+ </div>
43
+
44
+ <OrPopover
45
+ ref="popover"
46
+ :variant="'auto'"
47
+ :trigger="control"
48
+ :placement="'bottom'"
49
+ >
50
+ <OrDateTimePickerPopoverHeader>
51
+ <OrDateTimePickerMobileControl label="Date">
52
+ {{ formatDateAlt(draftModelValue) }}
53
+ </OrDateTimePickerMobileControl>
54
+ </OrDateTimePickerPopoverHeader>
55
+
56
+ <OrDateTimePickerMonthSelect
57
+ v-model="draftModelValue"
58
+ :filter="filter"
59
+ />
60
+ <OrDateTimePickerDaySelect
61
+ v-model="draftModelValue"
62
+ :filter="filter"
63
+ />
64
+
65
+ <OrDateTimePickerPopoverFooter
66
+ @resolve="proxyModelValue = draftModelValue; popover.close()"
67
+ @reject="draftModelValue = proxyModelValue; popover.close()"
68
+ />
69
+ </OrPopover>
70
+
71
+ <div :class="['grow']" />
72
+
73
+ <div :class="['layout-inline-row']">
74
+ <template v-if="modelValue">
75
+ <OrIconButton
76
+ :icon="'close'"
77
+ :color="'inherit'"
78
+ :disabled="readonly || disabled"
79
+ @click.stop="$emit('update:modelValue', undefined)"
80
+ />
81
+ </template>
82
+ </div>
83
+ </OrInputBox>
84
+
85
+ <template v-if="!error">
86
+ <template v-if="hint">
87
+ <OrHint :disabled="disabled">
88
+ {{ hint }}
89
+ </OrHint>
90
+ </template>
91
+ </template>
92
+
93
+ <template v-if="typeof error === 'string'">
94
+ <OrError :disabled="disabled">
95
+ {{ error }}
96
+ </OrError>
97
+ </template>
98
+ </div>
99
+ </template>
100
+
101
+ <script lang="ts">
102
+ import { computed, defineComponent, PropType, reactive, ref, watch } from 'vue-demi';
103
+ import { DropdownClose, DropdownOpen } from '../../directives';
104
+ import { useControlAttributes, useIdAttribute, useValidationAttributes } from '../../hooks';
105
+ import OrDateTimePickerDaySelect from '../or-date-time-picker-v3/partials/or-date-time-picker-day-select/OrDateTimePickerDaySelect.vue';
106
+ import OrDateTimePickerMobileControl from '../or-date-time-picker-v3/partials/or-date-time-picker-mobile-control/OrDateTimePickerMobileControl.vue';
107
+ import OrDateTimePickerMonthSelect from '../or-date-time-picker-v3/partials/or-date-time-picker-month-select/OrDateTimePickerMonthSelect.vue';
108
+ import OrDateTimePickerPopoverFooter from '../or-date-time-picker-v3/partials/or-date-time-picker-popover-footer/OrDateTimePickerPopoverFooter.vue';
109
+ import OrDateTimePickerPopoverHeader from '../or-date-time-picker-v3/partials/or-date-time-picker-popover-header/OrDateTimePickerPopoverHeader.vue';
110
+ import { OrErrorV3 as OrError } from '../or-error-v3';
111
+ import { OrHintV3 as OrHint } from '../or-hint-v3';
112
+ import { OrIconButtonV3 as OrIconButton } from '../or-icon-button-v3';
113
+ import { OrInputBoxV3 as OrInputBox } from '../or-input-box-v3';
114
+ import { OrLabelV3 as OrLabel } from '../or-label-v3';
115
+ import { OrPopoverV3 as OrPopover } from '../or-popover-v3';
116
+ import { DatePickerSize } from './props';
117
+ import { DatePicker, DatePickerControl } from './styles';
118
+
119
+ export default defineComponent({
120
+ name: 'OrDatePicker',
121
+
122
+ components: {
123
+ OrDateTimePickerDaySelect,
124
+ OrDateTimePickerMobileControl,
125
+ OrDateTimePickerMonthSelect,
126
+ OrDateTimePickerPopoverFooter,
127
+ OrDateTimePickerPopoverHeader,
128
+ OrError,
129
+ OrHint,
130
+ OrIconButton,
131
+ OrInputBox,
132
+ OrLabel,
133
+ OrPopover,
134
+ },
135
+
136
+ directives: {
137
+ DropdownClose,
138
+ DropdownOpen,
139
+ },
140
+
141
+ model: {
142
+ prop: 'modelValue',
143
+ event: 'update:modelValue',
144
+ },
145
+
146
+ props: {
147
+ modelValue: {
148
+ type: Date,
149
+ default: undefined,
150
+ },
151
+
152
+ filter: {
153
+ type: Function as PropType<(value: Date) => boolean>,
154
+ default: undefined,
155
+ },
156
+
157
+ size: {
158
+ type: String as PropType<DatePickerSize>,
159
+ default: DatePickerSize.M,
160
+ },
161
+
162
+ label: {
163
+ type: String,
164
+ default: undefined,
165
+ },
166
+
167
+ hint: {
168
+ type: String,
169
+ default: undefined,
170
+ },
171
+
172
+ error: {
173
+ type: [String, Boolean],
174
+ default: undefined,
175
+ },
176
+
177
+ required: {
178
+ type: Boolean,
179
+ default: false,
180
+ },
181
+
182
+ readonly: {
183
+ type: Boolean,
184
+ default: false,
185
+ },
186
+
187
+ disabled: {
188
+ type: Boolean,
189
+ default: false,
190
+ },
191
+
192
+ disableDefaultStyles: {
193
+ type: Boolean,
194
+ default: false,
195
+ },
196
+ },
197
+
198
+ emits: [
199
+ 'update:modelValue',
200
+
201
+ 'keydown',
202
+ 'keyup',
203
+ 'focus',
204
+ 'blur',
205
+ ],
206
+
207
+ expose: [
208
+ 'root',
209
+
210
+ 'focus',
211
+ 'blur',
212
+ ],
213
+
214
+ setup(props, context) {
215
+ // Refs
216
+ const root = ref<HTMLElement>();
217
+
218
+ const control = ref<HTMLInputElement>();
219
+
220
+ const popover = ref<InstanceType<typeof OrPopover>>();
221
+ const popoverState = computed(() => popover.value?.state);
222
+
223
+ // Styles
224
+ const rootStyles = computed(() => [
225
+ 'or-date-picker',
226
+ ...DatePicker,
227
+ ]);
228
+
229
+ const controlStyles = computed(() => [
230
+ ...DatePickerControl,
231
+ ]);
232
+
233
+ // State
234
+ const controlAttributes = reactive({
235
+ id: useIdAttribute(),
236
+ ...useControlAttributes(),
237
+ ...useValidationAttributes(),
238
+ });
239
+
240
+ const proxyModelValue = computed({
241
+ get: () => props.modelValue,
242
+
243
+ set: (value) => {
244
+ context.emit('update:modelValue', value);
245
+ },
246
+ });
247
+
248
+ const draftModelValue = ref<Date>();
249
+
250
+ watch(proxyModelValue, (value) => {
251
+ draftModelValue.value = value;
252
+ }, { immediate: true });
253
+
254
+ // Methods
255
+ function togglePopover(): void {
256
+ if (!props.readonly && !props.disabled) {
257
+ const popoverInstance = popover.value;
258
+
259
+ if (popoverInstance) {
260
+ if (popoverState.value === 'open') {
261
+ (popoverInstance.close as () => void)();
262
+ } else {
263
+ (popoverInstance.open as () => void)();
264
+ }
265
+ }
266
+ }
267
+ }
268
+
269
+ function closePopover(): void {
270
+ const popoverInstance = popover.value;
271
+
272
+ if (popoverInstance) {
273
+ (popoverInstance.close as () => void)();
274
+ }
275
+ }
276
+
277
+ function formatDate(value?: Date): string {
278
+ return value?.toLocaleString('default', {
279
+ dateStyle: 'short',
280
+ timeZone: 'UTC',
281
+ }) ?? '--';
282
+ }
283
+
284
+ function formatDateAlt(value?: Date): string {
285
+ return value?.toLocaleString('default', {
286
+ dateStyle: 'medium',
287
+ timeZone: 'UTC',
288
+ }) ?? '--';
289
+ }
290
+
291
+ return {
292
+ root,
293
+ control,
294
+ popover,
295
+ popoverState,
296
+ rootStyles,
297
+ controlStyles,
298
+ controlAttributes,
299
+ proxyModelValue,
300
+ draftModelValue,
301
+ togglePopover,
302
+ closePopover,
303
+ formatDate,
304
+ formatDateAlt,
305
+ };
306
+ },
307
+ });
308
+ </script>
@@ -0,0 +1,2 @@
1
+ export { default as OrDatePickerV3 } from './OrDatePicker.vue';
2
+ export * from './props';
@@ -0,0 +1 @@
1
+ export { InputBoxSize as DatePickerSize } from '../or-input-box-v3';
@@ -0,0 +1,12 @@
1
+ export const DatePicker: string[] = [
2
+ // Layout
3
+ 'layout-column',
4
+
5
+ // Spacing
6
+ 'gap-xs',
7
+ ];
8
+
9
+ export const DatePickerControl: string[] = [
10
+ // Layout
11
+ 'layout-inline-row justify-center',
12
+ ];
@@ -8,7 +8,7 @@ import OrDateTimePicker from './OrDateTimePicker.vue';
8
8
  import { DateTimePickerSize } from './props';
9
9
 
10
10
  export default {
11
- title: 'Components/Forms/Date & Time Picker',
11
+ title: 'Components/Date & Time Picker',
12
12
  component: OrDateTimePicker,
13
13
 
14
14
  argTypes: {
@@ -27,32 +27,6 @@
27
27
  :readonly="readonly"
28
28
  :disabled="disabled"
29
29
  >
30
- <!-- <input
31
- ref="dateControl"
32
- v-dropdown-open="toggleDatePopover"
33
- v-dropdown-close="closeDatePopover"
34
- v-bind="controlAttributes"
35
- :class="controlStyles"
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
30
  <div
57
31
  ref="dateControl"
58
32
  v-dropdown-open="toggleDatePopover"
@@ -426,11 +400,3 @@ export default defineComponent({
426
400
  },
427
401
  });
428
402
  </script>
429
-
430
- <style scoped>
431
- input {
432
- min-width: 0;
433
- background: none;
434
- outline: none;
435
- }
436
- </style>
@@ -6,7 +6,7 @@ import OrInlineInput from './OrInlineInput.vue';
6
6
  import { InlineInputSize, InlineInputType } from './props';
7
7
 
8
8
  export default {
9
- title: 'Components/Forms/Inline Input',
9
+ title: 'Components/Inline Input',
10
10
  component: OrInlineInput,
11
11
 
12
12
  argTypes: {
@@ -5,7 +5,7 @@ import OrInlineTextareaDocs from './OrInlineTextarea.docs.mdx';
5
5
  import OrInlineTextarea from './OrInlineTextarea.vue';
6
6
 
7
7
  export default {
8
- title: 'Components/Forms/Inline Textarea',
8
+ title: 'Components/Inline Textarea',
9
9
  component: OrInlineTextarea,
10
10
 
11
11
  argTypes: {
@@ -1,14 +1,14 @@
1
1
  import { action } from '@storybook/addon-actions';
2
2
  import { Meta, StoryFn } from '@storybook/vue3';
3
+ import * as Faker from 'faker';
3
4
  import { ref, watch } from 'vue-demi';
4
5
  import { OrIconV3 as OrIcon } from '../or-icon-v3';
5
6
  import OrInputDocs from './OrInput.docs.mdx';
6
7
  import OrInput from './OrInput.vue';
7
8
  import { InputSize, InputType } from './props';
8
- import * as Faker from 'faker';
9
9
 
10
10
  export default {
11
- title: 'Components/Forms/Input',
11
+ title: 'Components/Input',
12
12
  component: OrInput,
13
13
 
14
14
  argTypes: {
@@ -7,7 +7,7 @@ import OrRadioDocs from './OrRadio.docs.mdx';
7
7
  import OrRadio from './OrRadio.vue';
8
8
 
9
9
  export default {
10
- title: 'Components/Forms/Radio',
10
+ title: 'Components/Radio',
11
11
  component: OrRadio,
12
12
 
13
13
  argTypes: {
@@ -7,7 +7,7 @@ import { SegmentedControlSize } from './props';
7
7
  import { SegmentedControlOption } from './types';
8
8
 
9
9
  export default {
10
- title: 'Components/Forms/Segmented Control',
10
+ title: 'Components/Segmented Control',
11
11
  component: OrSegmentedControl,
12
12
 
13
13
  argTypes: {
@@ -8,7 +8,7 @@ import { SelectSize } from './props';
8
8
  import { SelectOption, SelectSearchFunction } from './types';
9
9
 
10
10
  export default {
11
- title: 'Components/Forms/Select',
11
+ title: 'Components/Select',
12
12
  component: OrSelect,
13
13
 
14
14
  argTypes: {
@@ -7,7 +7,7 @@ import OrSwitchDocs from './OrSwitch.docs.mdx';
7
7
  import OrSwitch from './OrSwitch.vue';
8
8
 
9
9
  export default {
10
- title: 'Components/Forms/Switch',
10
+ title: 'Components/Switch',
11
11
  component: OrSwitch,
12
12
 
13
13
  argTypes: {
@@ -7,7 +7,7 @@ import OrTextarea from './OrTextarea.vue';
7
7
  import { TextareaSize } from './props';
8
8
 
9
9
  export default {
10
- title: 'Components/Forms/Textarea',
10
+ title: 'Components/Textarea',
11
11
  component: OrTextarea,
12
12
 
13
13
  argTypes: {
@@ -1,7 +1,7 @@
1
1
  import { DocsPage } from '@storybook/addon-docs';
2
2
 
3
3
  ```ts
4
- import { OrHintV3 as OrHint } from '@onereach/ui-components';
4
+ import { OrTimePickerV3 as OrTimePicker } from '@onereach/ui-components';
5
5
  ```
6
6
 
7
7
  <DocsPage />
@@ -0,0 +1,160 @@
1
+ import { action } from '@storybook/addon-actions';
2
+ import { Meta, StoryFn } from '@storybook/vue3';
3
+ import * as Faker from 'faker';
4
+ import { ref, watch } from 'vue-demi';
5
+ import { OrIconV3 as OrIcon } from '../or-icon-v3';
6
+ import OrTimePickerDocs from './OrTimePicker.docs.mdx';
7
+ import OrTimePicker from './OrTimePicker.vue';
8
+ import { TimePickerSize } from './props';
9
+
10
+ export default {
11
+ title: 'Components/Time Picker',
12
+ component: OrTimePicker,
13
+
14
+ argTypes: {
15
+ // Slots
16
+ addon: {
17
+ type: {
18
+ name: 'string',
19
+ required: false,
20
+ },
21
+
22
+ control: { type: 'text' },
23
+ },
24
+
25
+ // Props
26
+ modelValue: {
27
+ control: { type: 'text' },
28
+ },
29
+
30
+ filter: {
31
+ table: { disable: true },
32
+ },
33
+
34
+ size: {
35
+ control: { type: 'select' },
36
+ options: Object.values(TimePickerSize),
37
+ },
38
+
39
+ label: {
40
+ control: { type: 'text' },
41
+ },
42
+
43
+ hint: {
44
+ control: { type: 'text' },
45
+ },
46
+
47
+ error: {
48
+ control: { type: 'text' },
49
+ },
50
+
51
+ required: {
52
+ control: { type: 'boolean' },
53
+ },
54
+
55
+ readonly: {
56
+ control: { type: 'boolean' },
57
+ },
58
+
59
+ disabled: {
60
+ control: { type: 'boolean' },
61
+ },
62
+
63
+ disableDefaultStyles: {
64
+ control: { type: 'boolean' },
65
+ },
66
+
67
+ // Events
68
+ 'update:modelValue': {
69
+ table: { disable: true },
70
+ },
71
+
72
+ input: {
73
+ table: { disable: true },
74
+ },
75
+
76
+ keydown: {
77
+ table: { disable: true },
78
+ },
79
+
80
+ keyup: {
81
+ table: { disable: true },
82
+ },
83
+
84
+ focus: {
85
+ table: { disable: true },
86
+ },
87
+
88
+ blur: {
89
+ table: { disable: true },
90
+ },
91
+ },
92
+
93
+ parameters: {
94
+ layout: 'centered',
95
+
96
+ docs: {
97
+ page: OrTimePickerDocs,
98
+ },
99
+
100
+ design: {
101
+ type: 'figma',
102
+ url: 'https://www.figma.com/file/o7DdkaznUW2PtX4wiSuhhQ/Core?node-id=3161-14394&t=fEpVdGUcSv9iaRfM-0',
103
+ },
104
+ },
105
+ } as Meta<typeof OrTimePicker>;
106
+
107
+ const Template: StoryFn<typeof OrTimePicker> = (args) => ({
108
+ components: {
109
+ OrIcon,
110
+ OrTimePicker,
111
+ },
112
+
113
+ setup() {
114
+ // State
115
+ const model = ref<Date>();
116
+
117
+ // Effects
118
+ watch(model, (value) => {
119
+ console.debug(value);
120
+ });
121
+
122
+ return {
123
+ args,
124
+ model,
125
+ onUpdateModelValue: action('update:modelValue'),
126
+ onKeydown: action('keydown'),
127
+ onKeyup: action('keyup'),
128
+ onFocus: action('focus'),
129
+ onBlur: action('blur'),
130
+ };
131
+ },
132
+
133
+ template: `
134
+ <OrTimePicker
135
+ v-model="model"
136
+ v-bind="args"
137
+ @update:modelValue="onUpdateModelValue"
138
+ @keydown="onKeydown"
139
+ @keyup="onKeyup"
140
+ @focus="onFocus"
141
+ @blur="onBlur"
142
+ >
143
+ <template #addon>
144
+ ${args.addon}
145
+ </template>
146
+ </OrTimePicker>
147
+ `,
148
+ });
149
+
150
+ export const Default = Template.bind({});
151
+
152
+ Default.args = {
153
+ // Slots
154
+ addon: '<OrIcon icon="info" />',
155
+
156
+ // Props
157
+ label: 'Label',
158
+ placeholder: 'Placeholder',
159
+ hint: Faker.lorem.sentence(20),
160
+ };