@onereach/ui-components 22.2.0-beta.5487.0 → 22.2.0-beta.5490.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 (68) hide show
  1. package/dist/esm/{OrAutocomplete-eskOHnRl.mjs → OrAutocomplete-DYPGCIFN.mjs} +4 -4
  2. package/dist/esm/{OrAutocomplete-eskOHnRl.mjs.map → OrAutocomplete-DYPGCIFN.mjs.map} +1 -1
  3. package/dist/esm/{OrCardCollection-CVNj8vKN.mjs → OrCardCollection-DdQtg5qK.mjs} +2 -2
  4. package/dist/esm/{OrCardCollection-CVNj8vKN.mjs.map → OrCardCollection-DdQtg5qK.mjs.map} +1 -1
  5. package/dist/esm/{OrCode-WlDGnBsW.mjs → OrCode-b6M0h65u.mjs} +2 -2
  6. package/dist/esm/{OrCode-WlDGnBsW.mjs.map → OrCode-b6M0h65u.mjs.map} +1 -1
  7. package/dist/esm/{OrConfirm-o50DtKQg.mjs → OrConfirm-B4EZ5P4x.mjs} +2 -2
  8. package/dist/esm/{OrConfirm-o50DtKQg.mjs.map → OrConfirm-B4EZ5P4x.mjs.map} +1 -1
  9. package/dist/esm/{OrDataGrid-DLVkDA8L.mjs → OrDataGrid-j7jPNo6g.mjs} +9 -9
  10. package/dist/esm/{OrDataGrid-DLVkDA8L.mjs.map → OrDataGrid-j7jPNo6g.mjs.map} +1 -1
  11. package/dist/esm/{OrDateFormat-DKgu_p6Y.mjs → OrDateFormat-CFKwMsaV.mjs} +2 -2
  12. package/dist/esm/{OrDateFormat-DKgu_p6Y.mjs.map → OrDateFormat-CFKwMsaV.mjs.map} +1 -1
  13. package/dist/esm/{OrDatePicker-C2QFP1NK.mjs → OrDatePicker-Cb9PHvqC.mjs} +3 -3
  14. package/dist/esm/{OrDatePicker-C2QFP1NK.mjs.map → OrDatePicker-Cb9PHvqC.mjs.map} +1 -1
  15. package/dist/esm/{OrDateRangePicker-B8atNK11.mjs → OrDateRangePicker-CkQB03iR.mjs} +3 -3
  16. package/dist/esm/{OrDateRangePicker-B8atNK11.mjs.map → OrDateRangePicker-CkQB03iR.mjs.map} +1 -1
  17. package/dist/esm/{OrDateTimeFormat-ByEReaKo.mjs → OrDateTimeFormat-BaCsjiP0.mjs} +2 -2
  18. package/dist/esm/{OrDateTimeFormat-ByEReaKo.mjs.map → OrDateTimeFormat-BaCsjiP0.mjs.map} +1 -1
  19. package/dist/esm/{OrDateTimePicker-FuoCwgfZ.mjs → OrDateTimePicker-CTNY69wz.mjs} +2 -2
  20. package/dist/esm/{OrDateTimePicker-FuoCwgfZ.mjs.map → OrDateTimePicker-CTNY69wz.mjs.map} +1 -1
  21. package/dist/esm/{OrDateTimePicker.vue_vue_type_script_lang-DJ6A7YKZ.mjs → OrDateTimePicker.vue_vue_type_script_lang-5PNRLv_O.mjs} +2 -2
  22. package/dist/esm/{OrDateTimePicker.vue_vue_type_script_lang-DJ6A7YKZ.mjs.map → OrDateTimePicker.vue_vue_type_script_lang-5PNRLv_O.mjs.map} +1 -1
  23. package/dist/esm/{OrInput-DBcNZlkx.mjs → OrInput-BVQvNlR1.mjs} +2 -2
  24. package/dist/esm/{OrInput-DBcNZlkx.mjs.map → OrInput-BVQvNlR1.mjs.map} +1 -1
  25. package/dist/esm/OrInputBox-IAplgDFr.mjs +49 -0
  26. package/dist/esm/OrInputBox-IAplgDFr.mjs.map +1 -0
  27. package/dist/esm/OrInputBox.vue_vue_type_script_lang-q2L7rmth.mjs.map +1 -1
  28. package/dist/esm/{OrRichTextEditor-DHc5Lsyu.mjs → OrRichTextEditor-i3ldStOl.mjs} +3 -3
  29. package/dist/esm/{OrRichTextEditor-DHc5Lsyu.mjs.map → OrRichTextEditor-i3ldStOl.mjs.map} +1 -1
  30. package/dist/esm/{OrSearch-1OFONLHk.mjs → OrSearch-CNYz63KB.mjs} +2 -2
  31. package/dist/esm/{OrSearch-1OFONLHk.mjs.map → OrSearch-CNYz63KB.mjs.map} +1 -1
  32. package/dist/esm/{OrSelect-Cnklh9us.mjs → OrSelect-BrMMUB_c.mjs} +3 -3
  33. package/dist/esm/{OrSelect-Cnklh9us.mjs.map → OrSelect-BrMMUB_c.mjs.map} +1 -1
  34. package/dist/esm/{OrTagInput-D4-z3jby.mjs → OrTagInput-B-kp3lhO.mjs} +2 -2
  35. package/dist/esm/{OrTagInput-D4-z3jby.mjs.map → OrTagInput-B-kp3lhO.mjs.map} +1 -1
  36. package/dist/esm/{OrTextarea-VEuq5855.mjs → OrTextarea-BGsivvQC.mjs} +2 -2
  37. package/dist/esm/{OrTextarea-VEuq5855.mjs.map → OrTextarea-BGsivvQC.mjs.map} +1 -1
  38. package/dist/esm/{OrTimeFormat-DScNr0vb.mjs → OrTimeFormat-C2rQuSQW.mjs} +2 -2
  39. package/dist/esm/{OrTimeFormat-DScNr0vb.mjs.map → OrTimeFormat-C2rQuSQW.mjs.map} +1 -1
  40. package/dist/esm/{OrTimePicker-Deh-pYk1.mjs → OrTimePicker-B7NEGOYV.mjs} +3 -3
  41. package/dist/esm/{OrTimePicker-Deh-pYk1.mjs.map → OrTimePicker-B7NEGOYV.mjs.map} +1 -1
  42. package/dist/esm/{OrTimeRangePicker-DhsGrtcw.mjs → OrTimeRangePicker-CyxRdCvB.mjs} +3 -3
  43. package/dist/esm/{OrTimeRangePicker-DhsGrtcw.mjs.map → OrTimeRangePicker-CyxRdCvB.mjs.map} +1 -1
  44. package/dist/esm/components/index.mjs +21 -21
  45. package/dist/esm/components/or-autocomplete-v3/index.mjs +1 -1
  46. package/dist/esm/components/or-card-collection-v3/index.mjs +1 -1
  47. package/dist/esm/components/or-code-v3/index.mjs +1 -1
  48. package/dist/esm/components/or-confirm-v3/index.mjs +1 -1
  49. package/dist/esm/components/or-data-grid-v3/index.mjs +1 -1
  50. package/dist/esm/components/or-date-format-v3/index.mjs +1 -1
  51. package/dist/esm/components/or-date-picker-v3/index.mjs +1 -1
  52. package/dist/esm/components/or-date-range-picker-v3/index.mjs +1 -1
  53. package/dist/esm/components/or-date-time-format-v3/index.mjs +1 -1
  54. package/dist/esm/components/or-date-time-picker-v3/index.mjs +2 -2
  55. package/dist/esm/components/or-input-box-v3/index.mjs +1 -1
  56. package/dist/esm/components/or-input-v3/index.mjs +1 -1
  57. package/dist/esm/components/or-rich-text-editor-v3/index.mjs +1 -1
  58. package/dist/esm/components/or-search-v3/index.mjs +1 -1
  59. package/dist/esm/components/or-select-v3/index.mjs +1 -1
  60. package/dist/esm/components/or-tag-input-v3/index.mjs +1 -1
  61. package/dist/esm/components/or-textarea-v3/index.mjs +1 -1
  62. package/dist/esm/components/or-time-format-v3/index.mjs +1 -1
  63. package/dist/esm/components/or-time-picker-v3/index.mjs +1 -1
  64. package/dist/esm/components/or-time-range-picker-v3/index.mjs +1 -1
  65. package/dist/esm/index.mjs +21 -21
  66. package/package.json +2 -2
  67. package/dist/esm/OrInputBox-6ciokFdU.mjs +0 -44
  68. package/dist/esm/OrInputBox-6ciokFdU.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"OrDateTimePicker.vue_vue_type_script_lang-DJ6A7YKZ.mjs","sources":["../../../components/or-date-time-picker-v3/src/utils/formatDate.ts","../../../components/or-date-time-picker-v3/src/utils/formatMobileDate.ts","../../../components/or-date-time-picker-v3/src/utils/formatMobileTime.ts","../../../components/or-date-time-picker-v3/src/utils/formatTime.ts","../../../components/or-date-time-picker-v3/src/utils/getCurrentDate.ts","../../../components/or-date-time-picker-v3/src/utils/scrollToElementWithinContainer.ts","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-date-control/styles.ts","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-date-control/OrDateTimePickerDateControl.vue","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-date-select/styles.ts","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-date-select/OrDateTimePickerDateSelect.vue","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-mobile-control/styles.ts","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-mobile-control/OrDateTimePickerMobileControl.vue","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-month-select/styles.ts","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-month-select/OrDateTimePickerMonthSelect.vue","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-popover-footer/styles.ts","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-popover-footer/OrDateTimePickerPopoverFooter.vue","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-popover-header/styles.ts","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-popover-header/OrDateTimePickerPopoverHeader.vue","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-time-control/styles.ts","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-time-control/OrDateTimePickerTimeControl.vue","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-time-select/styles.ts","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-time-select/OrDateTimePickerTimeSelect.vue","../../../components/or-date-time-picker-v3/src/styles.ts","../../../components/or-date-time-picker-v3/src/OrDateTimePicker.vue"],"sourcesContent":["import { DateFormat, FormatFunction, Locale } from '@onereach/ui-components-common/types';\n\nexport const formatDate = (value: Date, format: `${DateFormat}` | FormatFunction<Date>, locale: Locale): string => {\n if (typeof format === 'function') {\n return format(value, locale);\n }\n\n return value.toLocaleString(locale, {\n dateStyle: format,\n timeZone: 'UTC',\n });\n};\n","import { DateFormat, FormatFunction, Locale } from '@onereach/ui-components-common/types';\n\nexport const formatMobileDate = (value: Date, format: `${DateFormat}` | FormatFunction<Date>, locale: Locale): string => {\n return value.toLocaleString(locale, {\n dateStyle: 'medium',\n timeZone: 'UTC',\n });\n};\n","import { FormatFunction, Locale, TimeFormat } from '@onereach/ui-components-common/types';\n\nexport const formatMobileTime = (value: Date, format: `${TimeFormat}` | FormatFunction<Date>, locale: Locale): string => {\n return value.toLocaleString(locale, {\n timeStyle: 'short',\n hourCycle: typeof format !== 'function' && format !== TimeFormat.Auto ? format : undefined,\n timeZone: 'UTC',\n });\n};\n","import { FormatFunction, Locale, TimeFormat } from '@onereach/ui-components-common/types';\n\nexport const formatTime = (value: Date, format: `${TimeFormat}` | FormatFunction<Date>, locale: Locale): string => {\n if (typeof format === 'function') {\n return format(value, locale);\n }\n\n return value.toLocaleString(locale, {\n timeStyle: 'short',\n hourCycle: format !== TimeFormat.Auto ? format : undefined,\n timeZone: 'UTC',\n });\n};\n","export const getCurrentDate = (): Date => {\n const currentDate = new Date();\n\n return new Date(Date.UTC(\n currentDate.getUTCFullYear(),\n currentDate.getUTCMonth(),\n currentDate.getUTCDate()\n ));\n};\n","export const scrollToElementWithinContainer = (element: HTMLElement, container: HTMLElement): void => {\n const elementRect = element.getBoundingClientRect();\n const containerRect = container.getBoundingClientRect();\n\n // Determine if the element is fully visible within the container by comparing their positions.\n const isFullyVisible = elementRect.top >= containerRect.top && elementRect.bottom <= containerRect.bottom;\n\n if (!isFullyVisible) {\n // Calculate the new scrollTop value to center the element within the container.\n // This involves adjusting for the height of the element and container, ensuring the element is centered.\n container.scrollTop = element.offsetTop - container.offsetTop - (container.clientHeight / 2) + (element.clientHeight / 2);\n }\n};\n","export const DateTimePickerDateControl: string[] = [\n // Layout\n 'layout-inline-row',\n\n // Interactivity\n 'interactivity-click',\n\n // Theme (focus)\n 'focus-visible:theme-border-inherit focus-visible:border-b-2',\n 'dark:focus-visible:theme-border-inherit-dark',\n\n // Theme (selected)\n 'selected:theme-border-inherit selected:border-b-2',\n 'dark:selected:theme-border-inherit-dark',\n];\n\nexport const DateTimePickerDateControlPlaceholder: string[] = [\n // Theme\n 'theme-foreground-outline',\n 'dark:theme-foreground-outline-dark',\n];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n :contenteditable=\"!disabled\"\n :selected=\"selected\"\n :required=\"required\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n @keydown.prevent\n >\n <template v-if=\"model\">\n {{ formatDate(model, format, locale) }}\n </template>\n\n <template v-else>\n <span\n :class=\"placeholderStyles\"\n :disabled=\"disabled\"\n >\n {{ placeholder }}\n </span>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { PropType, computed, defineComponent, ref, toRef } from 'vue';\nimport { useDateMask, useProxyModelValue } from '@onereach/ui-components-common/hooks';\nimport type { DateFormat, FormatFunction } from '@onereach/ui-components-common/types';\nimport { DateTimePickerModelValue } from '../../types';\nimport { formatDate } from '../../utils';\nimport * as Styles from './styles';\n\nexport default defineComponent({\n name: 'OrDateTimePickerDateControl',\n\n model: {\n prop: 'modelValue',\n event: 'update:modelValue',\n },\n\n props: {\n modelValue: {\n type: undefined as unknown as PropType<DateTimePickerModelValue>,\n default: undefined,\n },\n\n format: {\n type: [String, Function] as PropType<`${DateFormat}` | FormatFunction<DateTimePickerModelValue>>,\n required: true,\n },\n\n locale: {\n type: String,\n required: true,\n },\n\n selected: {\n type: Boolean,\n default: false,\n },\n\n required: {\n type: Boolean,\n default: false,\n },\n\n readonly: {\n type: Boolean,\n default: false,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n\n expose: [\n 'root',\n ],\n\n setup(props, context) {\n // Refs & Styles\n const root = ref<HTMLElement>();\n\n const rootStyles = computed(() => [\n 'or-date-time-picker-date-control-v3',\n ...Styles.DateTimePickerDateControl,\n ]);\n\n const placeholderStyles = computed(() => [\n ...Styles.DateTimePickerDateControlPlaceholder,\n ]);\n\n // State\n const model = useProxyModelValue(toRef(props, 'modelValue'), context.emit);\n const placeholder = useDateMask(toRef(props, 'format'), toRef(props, 'locale'));\n\n return {\n root,\n rootStyles,\n\n placeholderStyles,\n\n model,\n placeholder,\n\n formatDate,\n };\n },\n});\n</script>\n","export const DateTimePickerDateSelect: string[] = [\n // Layout\n 'layout-column',\n\n // Spacing\n 'px-md',\n 'py-md',\n\n 'gap-sm',\n];\n\nexport const DateTimePickerDateSelectButtonGroup: string[] = [\n // Layout\n 'grid content-start',\n 'grid-cols-7',\n\n // Box\n 'h-[262px]',\n\n // Spacing\n '-mx-[2px]',\n '-my-[2px]',\n];\n\nexport const DateTimePickerDateSelectButtonGroupWeekdayItem: string[] = [\n // Layout\n 'layout-row justify-center',\n\n // Interactivity\n 'interactivity-default',\n\n // Spacing\n 'mx-[2px]',\n 'my-[2px]',\n\n 'px-sm',\n 'py-sm',\n\n // Typography\n 'typography-caption-regular',\n\n // Theme\n 'theme-foreground-outline',\n 'dark:theme-foreground-outline-dark',\n];\n\nexport const DateTimePickerDateSelectButtonGroupDateItem: string[] = [\n // Box\n '!min-w-fit',\n\n // Spacing\n 'mx-[2px]',\n 'my-[2px]',\n\n '!px-sm',\n '!py-sm',\n\n // Typography\n 'typography-caption-regular',\n];\n\nexport const DateTimePickerDateSelectButtonGroupCurrentDateItem: string[] = [\n // Theme\n 'theme-foreground-primary',\n 'dark:theme-foreground-primary-dark',\n\n 'theme-outline-primary outline-1',\n 'dark:theme-outline-primary-dark',\n];\n\nexport const DateTimePickerDateSelectButtonGroupInRangeDateItem: string[] = [\n // Spacing\n '!mx-0',\n '!px-[10px]',\n\n // Shape\n '!rounded-0',\n\n // Theme\n 'theme-background-primary-translucent-2',\n 'dark:theme-background-primary-translucent-2-dark',\n];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <div :class=\"buttonGroupStyles\">\n <div\n v-for=\"weekday in 7\"\n :key=\"weekday\"\n :class=\"buttonGroupWeekdayItemStyles\"\n >\n {{ formatWeekday(dayOptions[weekday - 1]) }}\n </div>\n\n <OrButton\n v-for=\"value in dayOptions\"\n :key=\"Number(value)\"\n :class=\"{\n [buttonGroupDateItemStyles.join(' ')]: true,\n [buttonGroupCurrentDateItemStyles.join(' ')]: Number(value) !== Number(model) && Number(value) !== Number(rangeStart) && Number(value) !== Number(rangeEnd) && Number(value) === Number(currentDate),\n [buttonGroupInRangeDateItemStyles.join(' ')]: (rangeStart && Number(value) > Number(rangeStart)) && (rangeEnd && Number(value) < Number(rangeEnd)),\n }\"\n :variant=\"Number(value) === Number(model) || (rangeStart && Number(value) === Number(rangeStart)) || (rangeEnd && Number(value) === Number(rangeEnd)) ? 'contained' : 'text'\"\n :color=\"Number(value) === Number(model) || (rangeStart && Number(value) === Number(rangeStart)) || (rangeEnd && Number(value) === Number(rangeEnd)) ? 'primary' : 'inherit'\"\n :disabled=\"dateFilter && !dateFilter(value)\"\n @click.stop=\"model = value\"\n >\n {{ formatDay(value) }}\n </OrButton>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { PropType, computed, defineComponent, ref, toRef } from 'vue';\nimport { useProxyModelValue } from '@onereach/ui-components-common/hooks';\nimport { DateFormat, FilterFunction, FormatFunction } from '@onereach/ui-components-common/types';\nimport { OrButtonV3 as OrButton } from '@onereach/ui-components.or-button-v3';\nimport { DateTimePickerModelValue } from '../../types';\nimport * as Styles from './styles';\n\nexport default defineComponent({\n name: 'OrDateTimePickerDateSelect',\n\n components: {\n OrButton,\n },\n\n model: {\n prop: 'modelValue',\n event: 'update:modelValue',\n },\n\n props: {\n modelValue: {\n type: undefined as unknown as PropType<DateTimePickerModelValue>,\n default: undefined,\n },\n\n initialValue: {\n type: Date,\n required: true,\n },\n\n format: {\n type: [String, Function] as PropType<`${DateFormat}` | FormatFunction<DateTimePickerModelValue>>,\n required: true,\n },\n\n locale: {\n type: String,\n required: true,\n },\n\n dateFilter: {\n type: Function as PropType<FilterFunction<Date>>,\n default: undefined,\n },\n\n rangeStart: {\n type: Date,\n default: undefined,\n },\n\n rangeEnd: {\n type: Date,\n default: undefined,\n },\n },\n\n emits: [\n 'update:modelValue',\n ],\n\n expose: [\n 'root',\n ],\n\n setup(props, context) {\n // Refs & Styles\n const root = ref<HTMLElement>();\n\n const rootStyles = computed(() => [\n 'or-date-time-picker-date-select-v3',\n ...Styles.DateTimePickerDateSelect,\n ]);\n\n const buttonGroupStyles = computed(() => [\n ...Styles.DateTimePickerDateSelectButtonGroup,\n ]);\n\n const buttonGroupWeekdayItemStyles = computed(() => [\n ...Styles.DateTimePickerDateSelectButtonGroupWeekdayItem,\n ]);\n\n const buttonGroupDateItemStyles = computed(() => [\n ...Styles.DateTimePickerDateSelectButtonGroupDateItem,\n ]);\n\n const buttonGroupCurrentDateItemStyles = computed(() => [\n ...Styles.DateTimePickerDateSelectButtonGroupCurrentDateItem,\n ]);\n\n const buttonGroupInRangeDateItemStyles = computed(() => [\n ...Styles.DateTimePickerDateSelectButtonGroupInRangeDateItem,\n ]);\n\n // State\n const model = useProxyModelValue(toRef(props, 'modelValue'), context.emit);\n\n const dayOptions = computed(() => {\n const monthStartDate = new Date(Date.UTC(\n props.initialValue.getUTCFullYear(),\n props.initialValue.getUTCMonth(),\n 1,\n props.initialValue.getUTCHours(),\n props.initialValue.getUTCMinutes(),\n ));\n\n const monthEndDate = new Date(Date.UTC(\n props.initialValue.getUTCFullYear(),\n props.initialValue.getUTCMonth() + 1,\n 0,\n props.initialValue.getUTCHours(),\n props.initialValue.getUTCMinutes(),\n ));\n\n const calendarStartDate = new Date(Date.UTC(\n monthStartDate.getUTCFullYear(),\n monthStartDate.getUTCMonth(),\n 1 - monthStartDate.getUTCDay(),\n monthStartDate.getUTCHours(),\n monthStartDate.getUTCMinutes(),\n ));\n\n const calendarEndDate = new Date(Date.UTC(\n monthEndDate.getUTCFullYear(),\n monthEndDate.getUTCMonth() + 1,\n 7 - monthEndDate.getUTCDay(),\n monthEndDate.getUTCHours(),\n monthEndDate.getUTCMinutes(),\n ));\n\n return (() => {\n let options = [] as Date[], value = calendarStartDate;\n\n while (Number(value) !== Number(calendarEndDate)) {\n options = [...options, value];\n\n value = new Date(Date.UTC(\n value.getUTCFullYear(),\n value.getUTCMonth(),\n value.getUTCDate() + 1,\n value.getUTCHours(),\n value.getUTCMinutes(),\n ));\n }\n\n return options;\n })();\n });\n\n const currentDate = computed(() => {\n const value = new Date();\n\n value.setUTCHours(props.initialValue.getUTCHours());\n value.setUTCMinutes(props.initialValue.getUTCMinutes());\n value.setUTCSeconds(props.initialValue.getUTCSeconds());\n value.setUTCMilliseconds(props.initialValue.getUTCMilliseconds());\n\n return value;\n });\n\n // Methods\n function formatWeekday(value: Date): string {\n return value.toLocaleString(props.locale, {\n weekday: 'short',\n timeZone: 'UTC',\n });\n }\n\n function formatDay(value: Date): string {\n return value.toLocaleString(props.locale, {\n day: 'numeric',\n timeZone: 'UTC',\n });\n }\n\n return {\n root,\n rootStyles,\n\n buttonGroupStyles,\n buttonGroupWeekdayItemStyles,\n buttonGroupDateItemStyles,\n buttonGroupCurrentDateItemStyles,\n buttonGroupInRangeDateItemStyles,\n\n model,\n\n dayOptions,\n\n currentDate,\n\n formatWeekday,\n formatDay,\n };\n },\n});\n</script>\n","export const DateTimePickerMobileControl: string[] = [\n // Layout\n 'layout-column',\n\n // Interactivity\n 'interactivity-auto',\n\n // Spacing\n 'gap-xs',\n\n // Theme\n 'theme-foreground-outline',\n 'dark:theme-foreground-outline-dark',\n\n // Theme (selected)\n 'selected:theme-foreground-default',\n 'dark:selected:theme-foreground-default-dark',\n];\n\nexport const DateTimePickerMobileControlContent: string[] = [\n // Typography\n 'typography-headline-1',\n];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n :selected=\"selected\"\n >\n <OrLabel>{{ label }}</OrLabel>\n\n <div :class=\"contentStyles\">\n <slot />\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, ref } from 'vue';\nimport { OrLabelV3 as OrLabel } from '@onereach/ui-components.or-label-v3';\nimport * as Styles from './styles';\n\nexport default defineComponent({\n name: 'OrDateTimePickerMobileControl',\n\n components: {\n OrLabel,\n },\n\n props: {\n label: {\n type: String,\n required: true,\n },\n\n selected: {\n type: Boolean,\n default: false,\n },\n },\n\n expose: [\n 'root',\n ],\n\n setup() {\n // Refs & Styles\n const root = ref<HTMLElement>();\n\n const rootStyles = computed(() => [\n 'or-date-time-picker-mobile-control-v3',\n ...Styles.DateTimePickerMobileControl,\n ]);\n\n const contentStyles = computed(() => [\n ...Styles.DateTimePickerMobileControlContent,\n ]);\n\n return {\n root,\n rootStyles,\n\n contentStyles,\n };\n },\n});\n</script>\n","export const DateTimePickerMonthSelect: string[] = [\n // Layout\n 'layout-row justify-between',\n\n // Spacing\n 'px-md',\n 'py-md',\n\n 'gap-md',\n];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <OrIconButton\n :icon=\"'chevron_left'\"\n @click.stop=\"goToPreviousMonth()\"\n />\n\n <div :class=\"['layout-row-reverse', 'gap-md']\">\n <OrButton\n :ref=\"'yearButton'\"\n :variant=\"'link'\"\n :color=\"'inherit'\"\n @click.stop=\"monthMenu && monthMenu.close(); yearMenu && yearMenu.toggle()\"\n >\n {{ formatYear(model) }} <OrIcon :icon=\"yearMenuState === 'open' ? 'arrow_drop_up' : 'arrow_drop_down'\" />\n </OrButton>\n\n <OrButton\n :ref=\"'monthButton'\"\n :variant=\"'link'\"\n :color=\"'inherit'\"\n @click.stop=\"yearMenu && yearMenu.close(); monthMenu && monthMenu.toggle()\"\n >\n {{ formatMonth(model) }} <OrIcon :icon=\"monthMenuState === 'open' ? 'arrow_drop_up' : 'arrow_drop_down'\" />\n </OrButton>\n\n <OrMenu\n :ref=\"'yearMenu'\"\n :trigger=\"yearButtonRoot\"\n >\n <OrMenuItem\n v-for=\"value in yearOptions\"\n :key=\"Number(value)\"\n :selected=\"Number(value) === Number(model)\"\n :disabled=\"yearFilter && !yearFilter(value)\"\n @click.stop=\"model = value; yearMenu && yearMenu.close()\"\n >\n {{ formatYear(value) }}\n </OrMenuItem>\n </OrMenu>\n\n <OrMenu\n :ref=\"'monthMenu'\"\n :trigger=\"monthButtonRoot\"\n >\n <OrMenuItem\n v-for=\"value in monthOptions\"\n :key=\"Number(value)\"\n :selected=\"Number(value) === Number(model)\"\n :disabled=\"monthFilter && !monthFilter(value)\"\n @click.stop=\"model = value; monthMenu && monthMenu.close()\"\n >\n {{ formatMonth(value) }}\n </OrMenuItem>\n </OrMenu>\n </div>\n\n <OrIconButton\n :icon=\"'chevron_right'\"\n @click.stop=\"goToNextMonth()\"\n />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { PropType, computed, defineComponent, ref, toRef } from 'vue';\nimport { useProxyModelValue } from '@onereach/ui-components-common/hooks';\nimport { FilterFunction } from '@onereach/ui-components-common/types';\nimport { OrButtonV3 as OrButton } from '@onereach/ui-components.or-button-v3';\nimport { OrIconButtonV3 as OrIconButton } from '@onereach/ui-components.or-icon-button-v3';\nimport { OrIconV3 as OrIcon } from '@onereach/ui-components.or-icon-v3';\nimport { OrMenuItemV3 as OrMenuItem } from '@onereach/ui-components.or-menu-item-v3';\nimport { OrMenuV3 as OrMenu } from '@onereach/ui-components.or-menu-v3';\nimport { DateTimePickerModelValue } from '../../types';\nimport { DateTimePickerMonthSelect } from './styles';\n\nexport default defineComponent({\n name: 'OrDateTimePickerMonthSelect',\n\n components: {\n OrButton,\n OrIcon,\n OrIconButton,\n OrMenu,\n OrMenuItem,\n },\n\n model: {\n prop: 'modelValue',\n event: 'update:modelValue',\n },\n\n props: {\n modelValue: {\n type: undefined as unknown as PropType<NonNullable<DateTimePickerModelValue>>,\n required: true,\n },\n\n locale: {\n type: String,\n required: true,\n },\n\n yearFilter: {\n type: Function as PropType<FilterFunction<Date>>,\n default: undefined,\n },\n\n monthFilter: {\n type: Function as PropType<FilterFunction<Date>>,\n default: undefined,\n },\n },\n\n emits: [\n 'update:modelValue',\n ],\n\n expose: [\n 'root',\n ],\n\n setup(props, context) {\n // Refs & Styles\n const root = ref<HTMLElement>();\n\n const rootStyles = computed(() => [\n 'or-date-time-picker-month-select-v3',\n ...DateTimePickerMonthSelect,\n ]);\n\n const yearButton = ref<InstanceType<typeof OrButton>>();\n const yearButtonRoot = computed(() => yearButton.value?.root);\n\n const monthButton = ref<InstanceType<typeof OrButton>>();\n const monthButtonRoot = computed(() => monthButton.value?.root);\n\n const yearMenu = ref<InstanceType<typeof OrMenu>>();\n const yearMenuState = computed(() => yearMenu.value?.state);\n\n const monthMenu = ref<InstanceType<typeof OrMenu>>();\n const monthMenuState = computed(() => monthMenu.value?.state);\n\n // State\n const model = useProxyModelValue(toRef(props, 'modelValue'), context.emit);\n\n const yearOptions = computed(() => {\n return Array.from({ length: 11 }).map((_value, index, { length }) => {\n const value = model.value.getUTCFullYear() - Math.floor(length / 2) + index;\n\n return new Date(Date.UTC(\n value,\n model.value.getUTCMonth(),\n model.value.getUTCDate(),\n model.value.getUTCHours(),\n model.value.getUTCMinutes(),\n ));\n });\n });\n\n const monthOptions = computed(() => {\n return Array.from({ length: 12 }, (_value, index) => {\n const value = index;\n\n return new Date(Date.UTC(\n model.value.getUTCFullYear(),\n value,\n model.value.getUTCDate(),\n model.value.getUTCHours(),\n model.value.getUTCMinutes(),\n ));\n });\n });\n\n // Methods\n function goToNextMonth(): void {\n model.value = new Date(Date.UTC(\n model.value.getUTCFullYear(),\n model.value.getUTCMonth() + 1,\n model.value.getUTCDate(),\n model.value.getUTCHours(),\n model.value.getUTCMinutes(),\n ));\n }\n\n function goToPreviousMonth(): void {\n model.value = new Date(Date.UTC(\n model.value.getUTCFullYear(),\n model.value.getUTCMonth() - 1,\n model.value.getUTCDate(),\n model.value.getUTCHours(),\n model.value.getUTCMinutes(),\n ));\n }\n\n function formatYear(value: Date): string {\n return value.toLocaleString(props.locale, {\n year: 'numeric',\n timeZone: 'UTC',\n });\n }\n\n function formatMonth(value: Date): string {\n return value.toLocaleString(props.locale, {\n month: 'long',\n timeZone: 'UTC',\n });\n }\n\n return {\n root,\n rootStyles,\n\n yearButton,\n yearButtonRoot,\n\n monthButton,\n monthButtonRoot,\n\n yearMenu,\n yearMenuState,\n\n monthMenu,\n monthMenuState,\n\n model,\n\n yearOptions,\n monthOptions,\n\n goToNextMonth,\n goToPreviousMonth,\n\n formatYear,\n formatMonth,\n };\n },\n});\n</script>\n","export const DateTimePickerPopoverFooter: string[] = [\n // Layout\n 'layout-row-reverse',\n\n // Layout (children)\n 'children:grow',\n\n // Spacing\n 'px-md md:px-sm',\n 'py-md md:py-sm',\n\n 'gap-md md:gap-sm',\n\n // Theme\n 'theme-border-outline-variant border-t-1',\n 'dark:theme-border-outline-variant-dark',\n];\n","<template>\n <footer\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <OrButton\n :variant=\"'outlined'\"\n :disabled=\"disabled\"\n @click.stop=\"$emit('apply')\"\n >\n Done\n </OrButton>\n\n <OrButton\n :variant=\"'text'\"\n @click.stop=\"$emit('reset')\"\n >\n Cancel\n </OrButton>\n </footer>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, ref } from 'vue';\nimport { OrButtonV3 as OrButton } from '@onereach/ui-components.or-button-v3';\nimport * as Styles from './styles';\n\nexport default defineComponent({\n name: 'OrDateTimePickerPopoverFooter',\n\n components: {\n OrButton,\n },\n\n props: {\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n 'apply',\n 'reset',\n ],\n\n expose: [\n 'root',\n ],\n\n setup() {\n // Refs & Styles\n const root = ref<HTMLElement>();\n\n const rootStyles = computed(() => [\n 'or-date-time-picker-popover-footer-v3',\n ...Styles.DateTimePickerPopoverFooter,\n ]);\n\n return {\n root,\n rootStyles,\n };\n },\n});\n</script>\n","export const DateTimePickerPopoverHeader: string[] = [\n // Layout\n 'layout-row md:hidden',\n\n // Spacing\n 'px-md',\n 'py-md',\n\n 'gap-xl',\n];\n","<template>\n <header\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <slot />\n </header>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, ref } from 'vue';\nimport * as Styles from './styles';\n\nexport default defineComponent({\n name: 'OrDateTimePickerPopoverHeader',\n\n expose: [\n 'root',\n ],\n\n setup() {\n // Refs & Styles\n const root = ref<HTMLElement>();\n\n const rootStyles = computed(() => [\n 'or-date-time-picker-popover-header-v3',\n ...Styles.DateTimePickerPopoverHeader,\n ]);\n\n return {\n root,\n rootStyles,\n };\n },\n});\n</script>\n","export const DateTimePickerTimeControl: string[] = [\n // Layout\n 'layout-inline-row',\n\n // Interactivity\n 'interactivity-click',\n\n // Theme (focus)\n 'focus-visible:theme-border-inherit focus-visible:border-b-2',\n 'dark:focus-visible:theme-border-inherit-dark',\n\n // Theme (selected)\n 'selected:theme-border-inherit selected:border-b-2',\n 'dark:selected:theme-border-inherit-dark',\n];\n\nexport const DateTimePickerTimeControlPlaceholder: string[] = [\n // Theme\n 'theme-foreground-outline',\n 'dark:theme-foreground-outline-dark',\n];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n :contenteditable=\"!disabled\"\n :selected=\"selected\"\n :required=\"required\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n @keydown.prevent\n >\n <template v-if=\"model\">\n {{ formatTime(model, format, locale) }}\n </template>\n\n <template v-else>\n <span\n :class=\"placeholderStyles\"\n :disabled=\"disabled\"\n >\n {{ placeholder }}\n </span>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { PropType, computed, defineComponent, ref, toRef } from 'vue';\nimport { useProxyModelValue, useTimeMask } from '@onereach/ui-components-common/hooks';\nimport { FormatFunction, TimeFormat } from '@onereach/ui-components-common/types';\nimport { DateTimePickerModelValue } from '../../types';\nimport { formatTime } from '../../utils';\nimport * as Styles from './styles';\n\nexport default defineComponent({\n name: 'OrDateTimePickerTimeControl',\n\n model: {\n prop: 'modelValue',\n event: 'update:modelValue',\n },\n\n props: {\n modelValue: {\n type: undefined as unknown as PropType<DateTimePickerModelValue>,\n default: undefined,\n },\n\n format: {\n type: [String, Function] as PropType<`${TimeFormat}` | FormatFunction<DateTimePickerModelValue>>,\n required: true,\n },\n\n locale: {\n type: String,\n required: true,\n },\n\n selected: {\n type: Boolean,\n default: false,\n },\n\n required: {\n type: Boolean,\n default: false,\n },\n\n readonly: {\n type: Boolean,\n default: false,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n\n expose: [\n 'root',\n ],\n\n setup(props, context) {\n // Refs & Styles\n const root = ref<HTMLElement>();\n\n const rootStyles = computed(() => [\n 'or-date-time-picker-time-control-v3',\n ...Styles.DateTimePickerTimeControl,\n ]);\n\n const placeholderStyles = computed(() => [\n ...Styles.DateTimePickerTimeControlPlaceholder,\n ]);\n\n // State\n const model = useProxyModelValue(toRef(props, 'modelValue'), context.emit);\n const placeholder = useTimeMask(toRef(props, 'format'), toRef(props, 'locale'));\n\n return {\n root,\n rootStyles,\n\n placeholderStyles,\n\n model,\n placeholder,\n\n formatTime,\n };\n },\n});\n</script>\n","export const DateTimePickerTimeSelect: string[] = [\n // Layout\n 'layout-row justify-center',\n\n // Spacing\n 'px-md',\n 'py-md',\n\n 'gap-sm',\n\n // Typography\n 'typography-body-2-regular',\n\n // Theme\n 'theme-foreground-default',\n 'dark:theme-foreground-default-dark',\n];\n\nexport const DateTimePickerTimeSelectButtonGroup: string[] = [\n // Layout\n 'layout-column',\n\n // Box\n 'h-[294px] md:h-[238px]',\n\n // Overflow\n 'overflow-x-hidden',\n 'overflow-y-auto',\n];\n\nexport const DateTimePickerTimeSelectButtonGroupItem: string[] = [\n // Box\n '!min-w-fit',\n\n // Typography\n 'typography-caption-regular',\n];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <div\n :ref=\"'hoursContainer'\"\n :class=\"buttonGroupStyles\"\n >\n <OrButton\n v-for=\"value in hoursOptions\"\n :ref=\"'hoursButtons'\"\n :key=\"Number(value)\"\n :class=\"buttonGroupItemStyles\"\n :variant=\"Number(value) === Number(model) ? 'contained' : 'text'\"\n :color=\"Number(value) === Number(model) ? 'primary' : 'inherit'\"\n :disabled=\"hoursFilter && !hoursFilter(value)\"\n @click.stop=\"model = value\"\n >\n {{ formatHours(value) }}\n </OrButton>\n </div>\n\n :\n\n <div\n :ref=\"'minutesContainer'\"\n :class=\"buttonGroupStyles\"\n >\n <OrButton\n v-for=\"value in minutesOptions\"\n :ref=\"'minutesButtons'\"\n :key=\"Number(value)\"\n :class=\"buttonGroupItemStyles\"\n :variant=\"Number(value) === Number(model) ? 'contained' : 'text'\"\n :color=\"Number(value) === Number(model) ? 'primary' : 'inherit'\"\n :disabled=\"minutesFilter && !minutesFilter(value)\"\n @click.stop=\"model = value\"\n >\n {{ formatMinutes(value) }}\n </OrButton>\n </div>\n\n <template v-if=\"proxyTimeFormat === 'h12'\">\n <div :class=\"buttonGroupStyles\">\n <OrButton\n :class=\"buttonGroupItemStyles\"\n :variant=\"dayPeriod === 'am' ? 'contained' : 'text'\"\n :color=\"dayPeriod === 'am' ? 'primary' : 'inherit'\"\n @click.stop=\"dayPeriod = 'am'\"\n >\n AM\n </OrButton>\n\n <OrButton\n :class=\"buttonGroupItemStyles\"\n :variant=\"dayPeriod === 'pm' ? 'contained' : 'text'\"\n :color=\"dayPeriod === 'pm' ? 'primary' : 'inherit'\"\n @click.stop=\"dayPeriod = 'pm'\"\n >\n PM\n </OrButton>\n </div>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, nextTick, PropType, ref, toRef, watch } from 'vue';\nimport { useProxyModelValue } from '@onereach/ui-components-common/hooks';\nimport { FilterFunction, FormatFunction, TimeFormat } from '@onereach/ui-components-common/types';\nimport { OrButtonV3 as OrButton } from '@onereach/ui-components.or-button-v3';\nimport { DateTimePickerModelValue } from '../../types';\nimport * as Styles from './styles';\nimport { scrollToElementWithinContainer } from '../../utils';\n\nexport default defineComponent({\n name: 'OrDateTimePickerTimeSelect',\n\n components: {\n OrButton,\n },\n\n model: {\n prop: 'modelValue',\n event: 'update:modelValue',\n },\n\n props: {\n modelValue: {\n type: undefined as unknown as PropType<DateTimePickerModelValue>,\n default: undefined,\n },\n\n initialValue: {\n type: Date,\n required: true,\n },\n\n format: {\n type: [String, Function] as PropType<`${TimeFormat}` | FormatFunction<DateTimePickerModelValue>>,\n required: true,\n },\n\n locale: {\n type: String,\n required: true,\n },\n\n hoursFilter: {\n type: Function as PropType<FilterFunction<Date>>,\n default: undefined,\n },\n\n minutesFilter: {\n type: Function as PropType<FilterFunction<Date>>,\n default: undefined,\n },\n\n hourStep: {\n type: Number,\n default: 1,\n },\n\n minuteStep: {\n type: Number,\n default: 1,\n },\n\n isActive: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n 'update:modelValue',\n ],\n\n expose: [\n 'root',\n ],\n\n setup(props, context) {\n // Refs & Styles\n const root = ref<HTMLElement>();\n const hoursContainer = ref<HTMLElement>();\n const minutesContainer = ref<HTMLElement>();\n const hoursButtons = ref<InstanceType<typeof OrButton>[]>([]);\n const minutesButtons = ref<InstanceType<typeof OrButton>[]>([]);\n\n const rootStyles = computed(() => [\n 'or-date-time-picker-time-select-v3',\n ...Styles.DateTimePickerTimeSelect,\n ]);\n\n const buttonGroupStyles = computed(() => [\n ...Styles.DateTimePickerTimeSelectButtonGroup,\n ]);\n\n const buttonGroupItemStyles = computed(() => [\n ...Styles.DateTimePickerTimeSelectButtonGroupItem,\n ]);\n\n // State\n const model = useProxyModelValue(toRef(props, 'modelValue'), context.emit);\n const dayPeriod = ref<'am' | 'pm'>((model.value ?? props.initialValue).getUTCHours() < 12 ? 'am' : 'pm');\n\n // Effects\n watch(dayPeriod, (value) => {\n switch (value) {\n case 'am':\n model.value = new Date(Date.UTC(\n (model.value ?? props.initialValue).getUTCFullYear(),\n (model.value ?? props.initialValue).getUTCMonth(),\n (model.value ?? props.initialValue).getUTCDate(),\n (model.value ?? props.initialValue).getUTCHours() - 12,\n (model.value ?? props.initialValue).getUTCMinutes(),\n ));\n\n break;\n\n case 'pm':\n model.value = new Date(Date.UTC(\n (model.value ?? props.initialValue).getUTCFullYear(),\n (model.value ?? props.initialValue).getUTCMonth(),\n (model.value ?? props.initialValue).getUTCDate(),\n (model.value ?? props.initialValue).getUTCHours() + 12,\n (model.value ?? props.initialValue).getUTCMinutes(),\n ));\n\n break;\n }\n });\n\n watch(() => props.isActive, (isActive) => {\n // Wait for the next DOM update cycle to ensure all refs are correctly updated.\n nextTick(() => {\n if (!isActive || !model.value) {\n return;\n }\n\n const activeHourButton = getActiveButton(hoursButtons.value, hoursOptions.value);\n const activeMinuteButton = getActiveButton(minutesButtons.value, minutesOptions.value);\n\n if (activeHourButton && hoursContainer.value) {\n // scroll to the active hour button within the hours container.\n scrollToElementWithinContainer(activeHourButton, hoursContainer.value);\n }\n\n if (activeMinuteButton && minutesContainer.value) {\n // scroll to the active minute button within the minutes container.\n scrollToElementWithinContainer(activeMinuteButton, minutesContainer.value);\n }\n });\n }, { immediate: true });\n\n // Computed\n const proxyTimeFormat = computed(() => {\n if (typeof props.format === 'function' || props.format === TimeFormat.Auto) {\n const timeSample = new Date(1970, 0);\n\n if (timeSample.toLocaleTimeString(props.locale).includes('12')) {\n return TimeFormat.H12;\n }\n\n return TimeFormat.H23;\n }\n\n return props.format;\n });\n\n const hoursOptions = computed(() => {\n const hourStep = props.hourStep > 0 ? props.hourStep : 1;\n\n return Array.from({ length: Math.ceil(24 / hourStep) }, (_value, index) => {\n const value = index * hourStep;\n\n return new Date(Date.UTC(\n (model.value ?? props.initialValue).getUTCFullYear(),\n (model.value ?? props.initialValue).getUTCMonth(),\n (model.value ?? props.initialValue).getUTCDate(),\n value,\n (model.value ?? props.initialValue).getUTCMinutes(),\n ));\n }).filter((value) => {\n if (proxyTimeFormat.value === TimeFormat.H23) {\n return true;\n }\n\n switch (dayPeriod.value) {\n case 'am':\n return value.getUTCHours() < 12;\n\n case 'pm':\n return value.getUTCHours() >= 12;\n }\n });\n });\n\n const minutesOptions = computed(() => {\n const minuteStep = props.minuteStep > 0 ? props.minuteStep : 1;\n\n return Array.from({ length: Math.ceil(60 / minuteStep) }, (_value, index) => {\n const value = index * minuteStep;\n\n return new Date(Date.UTC(\n (model.value ?? props.initialValue).getUTCFullYear(),\n (model.value ?? props.initialValue).getUTCMonth(),\n (model.value ?? props.initialValue).getUTCDate(),\n (model.value ?? props.initialValue).getUTCHours(),\n value,\n ));\n });\n });\n\n // Methods\n function formatHours(value: Date): string {\n return value.toLocaleString(props.locale, {\n hour: 'numeric',\n hourCycle: typeof props.format !== 'function' && props.format !== TimeFormat.Auto ? props.format : undefined,\n timeZone: 'UTC',\n }).replace(/\\D/g, '');\n }\n\n function formatMinutes(value: Date): string {\n return String(value.getUTCMinutes()).padStart(2, '0');\n }\n\n function sortElementsByPosition(elements: InstanceType<typeof OrButton>[]): InstanceType<typeof OrButton>[] {\n return [...elements].sort((a, b) => {\n return a.root!.compareDocumentPosition(b.root!) & 2 ? 1 : -1;\n });\n }\n\n function getActiveButton(buttons: InstanceType<typeof OrButton>[], options: Date[]): HTMLButtonElement | undefined {\n return sortElementsByPosition(buttons)\n .find((button, index) => Number(model.value) === Number(options[index]))?.root;\n }\n\n return {\n root,\n rootStyles,\n\n hoursContainer,\n minutesContainer,\n\n hoursButtons,\n minutesButtons,\n\n buttonGroupStyles,\n buttonGroupItemStyles,\n\n model,\n dayPeriod,\n\n proxyTimeFormat,\n\n hoursOptions,\n minutesOptions,\n\n formatHours,\n formatMinutes,\n };\n },\n});\n</script>\n","export const DateTimePicker: string[] = [\n // Layout\n 'layout-column',\n\n // Spacing\n 'gap-xs',\n];\n\nexport const DateTimePickerDatePopover: string[] = [\n // Box\n 'w-[290px]',\n];\n\nexport const DateTimePickerTimePopover: string[] = [];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <template v-if=\"$slots.label || $slots.addon || label\">\n <OrLabel\n :variant=\"'input'\"\n :required=\"required\"\n :disabled=\"disabled\"\n >\n <slot name=\"label\">\n {{ label }}\n </slot>\n\n <template v-slot:addon>\n <slot name=\"addon\" />\n </template>\n </OrLabel>\n </template>\n\n <OrInputBox\n :ref=\"'inputBox'\"\n v-dropdown-open=\"toggleDatePopover\"\n v-dropdown-close=\"closeDatePopover\"\n :variant=\"variant\"\n :size=\"size\"\n :invalid=\"!!error\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n >\n <OrDateTimePickerDateControl\n v-model=\"draft\"\n v-dropdown-open=\"toggleDatePopover\"\n v-dropdown-close=\"closeDatePopover\"\n :format=\"resolvedDateFormat\"\n :locale=\"resolvedLocale\"\n :selected=\"datePopover && datePopover.state === 'open'\"\n :required=\"required\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n />\n\n <OrDateTimePickerTimeControl\n v-model=\"draft\"\n v-dropdown-open=\"toggleTimePopover\"\n v-dropdown-close=\"closeTimePopover\"\n :format=\"resolvedTimeFormat\"\n :locale=\"resolvedLocale\"\n :selected=\"timePopover && timePopover.state === 'open'\"\n :required=\"required\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n />\n\n <OrPopover\n :ref=\"'datePopover'\"\n :variant=\"'auto'\"\n :bottom-sheet-props=\"{ variant: 'basic' }\"\n :trigger=\"anchor || inputBoxRoot\"\n :placement=\"'bottom-start'\"\n :fallback-placement=\"'start'\"\n @close=\"reset()\"\n >\n <div :class=\"datePopoverStyles\">\n <OrDateTimePickerPopoverHeader>\n <OrDateTimePickerMobileControl :label=\"'Date'\">\n {{ draft ? formatMobileDate(draft, resolvedDateFormat, resolvedLocale) : '--' }}\n </OrDateTimePickerMobileControl>\n\n <OrDateTimePickerMobileControl :label=\"'Time'\">\n {{ draft ? formatMobileTime(draft, resolvedTimeFormat, resolvedLocale) : '--' }}\n </OrDateTimePickerMobileControl>\n </OrDateTimePickerPopoverHeader>\n\n <OrDateTimePickerMonthSelect\n v-model=\"initialValue\"\n :locale=\"resolvedLocale\"\n :year-filter=\"yearFilter\"\n :month-filter=\"monthFilter\"\n />\n\n <OrDateTimePickerDateSelect\n v-model=\"draft\"\n :initial-value=\"initialValue\"\n :format=\"resolvedDateFormat\"\n :locale=\"resolvedLocale\"\n :date-filter=\"dateFilter\"\n />\n\n <OrDateTimePickerPopoverFooter\n :disabled=\"invalid\"\n @apply=\"apply(); datePopover && datePopover.close()\"\n @reset=\"reset(); datePopover && datePopover.close()\"\n />\n </div>\n </OrPopover>\n\n <OrPopover\n :ref=\"'timePopover'\"\n :class=\"timePopoverStyles\"\n :custom-styles=\"timePopoverStyles\"\n :variant=\"'auto'\"\n :bottom-sheet-props=\"{ variant: 'basic' }\"\n :trigger=\"anchor || inputBoxRoot\"\n :placement=\"'bottom-start'\"\n :fallback-placement=\"'start'\"\n @close=\"reset()\"\n >\n <OrDateTimePickerPopoverHeader>\n <OrDateTimePickerMobileControl :label=\"'Date'\">\n {{ draft ? formatMobileDate(draft, resolvedDateFormat, resolvedLocale) : '--' }}\n </OrDateTimePickerMobileControl>\n\n <OrDateTimePickerMobileControl :label=\"'Time'\">\n {{ draft ? formatMobileTime(draft, resolvedTimeFormat, resolvedLocale) : '--' }}\n </OrDateTimePickerMobileControl>\n </OrDateTimePickerPopoverHeader>\n\n <OrDateTimePickerTimeSelect\n v-model=\"draft\"\n :initial-value=\"initialValue\"\n :format=\"resolvedTimeFormat\"\n :locale=\"resolvedLocale\"\n :hours-filter=\"hoursFilter\"\n :minutes-filter=\"minutesFilter\"\n :is-active=\"timePopover && timePopover.state === 'open'\"\n :hour-step=\"hourStep\"\n :minute-step=\"minuteStep\"\n />\n\n <OrDateTimePickerPopoverFooter\n :disabled=\"invalid\"\n @apply=\"apply(); timePopover && timePopover.close()\"\n @reset=\"reset(); timePopover && timePopover.close()\"\n />\n </OrPopover>\n\n <div :class=\"['grow']\" />\n\n <template v-slot:addon>\n <template v-if=\"modelValue\">\n <OrIconButton\n :icon=\"'close'\"\n :color=\"'inherit'\"\n :disabled=\"readonly || disabled\"\n @click.stop=\"$emit('update:modelValue', undefined)\"\n />\n </template>\n\n <template v-else>\n <OrIcon\n :icon=\"'calendar_month'\"\n :variant=\"'outlined'\"\n />\n </template>\n </template>\n </OrInputBox>\n\n <template v-if=\"$slots.hint || hint\">\n <OrHint\n v-show=\"!error\"\n :disabled=\"disabled\"\n >\n <slot name=\"hint\">\n {{ hint }}\n </slot>\n </OrHint>\n </template>\n\n <OrError\n v-show=\"typeof error === 'string' && error.length > 0\"\n :disabled=\"disabled\"\n >\n {{ error }}\n </OrError>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { PropType, computed, defineComponent, ref, toRef, watch } from 'vue';\nimport { DropdownClose, DropdownOpen } from '@onereach/ui-components-common/directives';\nimport { useDateFormat, useLocale, useProxyModelValue, useTimeFormat, useResponsive } from '@onereach/ui-components-common/hooks';\nimport { DateFormat, FilterFunction, FormatFunction, TimeFormat } from '@onereach/ui-components-common/types';\nimport { OrErrorV3 as OrError } from '@onereach/ui-components.or-error-v3';\nimport { OrHintV3 as OrHint } from '@onereach/ui-components.or-hint-v3';\nimport { OrIconButtonV3 as OrIconButton } from '@onereach/ui-components.or-icon-button-v3';\nimport { OrIconV3 as OrIcon } from '@onereach/ui-components.or-icon-v3';\nimport { InputBoxSize, InputBoxVariant, OrInputBoxV3 as OrInputBox } from '@onereach/ui-components.or-input-box-v3';\nimport { OrLabelV3 as OrLabel } from '@onereach/ui-components.or-label-v3';\nimport { OrPopoverV3 as OrPopover } from '@onereach/ui-components.or-popover-v3';\nimport { OrDateTimePickerDateControl, OrDateTimePickerDateSelect, OrDateTimePickerMobileControl, OrDateTimePickerMonthSelect, OrDateTimePickerPopoverFooter, OrDateTimePickerPopoverHeader, OrDateTimePickerTimeControl, OrDateTimePickerTimeSelect } from './partials';\nimport * as Styles from './styles';\nimport { DateTimePickerModelValue } from './types';\nimport { formatMobileDate, formatMobileTime, getCurrentDate } from './utils';\nimport { ReferenceElement } from '@floating-ui/dom';\n\nexport default defineComponent({\n name: 'OrDateTimePicker',\n\n components: {\n OrDateTimePickerDateControl,\n OrDateTimePickerDateSelect,\n OrDateTimePickerMobileControl,\n OrDateTimePickerMonthSelect,\n OrDateTimePickerPopoverFooter,\n OrDateTimePickerPopoverHeader,\n OrDateTimePickerTimeControl,\n OrDateTimePickerTimeSelect,\n OrError,\n OrHint,\n OrIcon,\n OrIconButton,\n OrInputBox,\n OrLabel,\n OrPopover,\n },\n\n directives: {\n DropdownClose,\n DropdownOpen,\n },\n\n model: {\n prop: 'modelValue',\n event: 'update:modelValue',\n },\n\n props: {\n modelValue: {\n type: undefined as unknown as PropType<DateTimePickerModelValue>,\n default: undefined,\n },\n\n dateFormat: {\n type: [String, Function] as PropType<`${DateFormat}` | FormatFunction<DateTimePickerModelValue>>,\n default: undefined,\n },\n\n timeFormat: {\n type: [String, Function] as PropType<`${TimeFormat}` | FormatFunction<DateTimePickerModelValue>>,\n default: undefined,\n },\n\n locale: {\n type: String,\n default: undefined,\n },\n\n yearFilter: {\n type: Function as PropType<FilterFunction<Date>>,\n default: undefined,\n },\n\n monthFilter: {\n type: Function as PropType<FilterFunction<Date>>,\n default: undefined,\n },\n\n dateFilter: {\n type: Function as PropType<FilterFunction<Date>>,\n default: undefined,\n },\n\n hoursFilter: {\n type: Function as PropType<FilterFunction<Date>>,\n default: undefined,\n },\n\n minutesFilter: {\n type: Function as PropType<FilterFunction<Date>>,\n default: undefined,\n },\n\n hourStep: {\n type: Number,\n default: 1,\n },\n\n minuteStep: {\n type: Number,\n default: 1,\n },\n\n variant: {\n type: String as PropType<`${InputBoxVariant}`>,\n default: undefined,\n },\n\n size: {\n type: String as PropType<`${InputBoxSize}`>,\n default: undefined,\n },\n\n anchor: {\n type: Object as PropType<ReferenceElement>,\n default: undefined,\n },\n\n label: {\n type: String,\n default: undefined,\n },\n\n hint: {\n type: String,\n default: undefined,\n },\n\n error: {\n type: [String, Boolean],\n default: undefined,\n },\n\n required: {\n type: Boolean,\n default: false,\n },\n\n readonly: {\n type: Boolean,\n default: false,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n 'update:modelValue',\n\n 'input',\n 'keydown',\n 'keyup',\n 'focus',\n 'blur',\n ],\n\n expose: [\n 'root',\n\n 'focus',\n 'blur',\n ],\n\n setup(props, context) {\n // Refs & Styles\n const root = ref<HTMLElement>();\n\n const rootStyles = computed(() => [\n 'or-date-time-picker-v3',\n ...Styles.DateTimePicker,\n ...props.variant === InputBoxVariant.Embedded ? ['grow'] : [],\n ]);\n\n const inputBox = ref<InstanceType<typeof OrInputBox>>();\n const inputBoxRoot = computed(() => inputBox.value?.root);\n\n const datePopover = ref<InstanceType<typeof OrPopover>>();\n const datePopoverState = computed(() => datePopover.value?.state);\n\n const datePopoverStyles = computed(() => [\n 'or-date-time-picker-date-popover-v3',\n ...(isMobile.value ? [] : Styles.DateTimePickerDatePopover),\n ]);\n\n const timePopover = ref<InstanceType<typeof OrPopover>>();\n const timePopoverState = computed(() => timePopover.value?.state);\n\n const timePopoverStyles = computed(() => [\n 'or-date-time-picker-time-popover-v3',\n ...Styles.DateTimePickerTimePopover,\n ]);\n\n // Options\n const resolvedDateFormat = useDateFormat(toRef(props, 'dateFormat'));\n const resolvedTimeFormat = useTimeFormat(toRef(props, 'timeFormat'));\n const resolvedLocale = useLocale(toRef(props, 'locale'));\n\n // State\n const initialValue = ref(props.modelValue ?? getCurrentDate());\n\n watch(() => props.modelValue, (value) => {\n initialValue.value = value ?? getCurrentDate();\n });\n\n const model = useProxyModelValue(toRef(props, 'modelValue'), context.emit);\n const draft = ref(model.value);\n\n watch(model, (value) => {\n draft.value = value;\n });\n\n const invalid = computed(() => {\n if (draft.value) {\n if (props.yearFilter && !props.yearFilter(draft.value)) {\n return true;\n }\n\n if (props.monthFilter && !props.monthFilter(draft.value)) {\n return true;\n }\n\n if (props.dateFilter && !props.dateFilter(draft.value)) {\n return true;\n }\n\n if (props.hoursFilter && !props.hoursFilter(draft.value)) {\n return true;\n }\n\n if (props.minutesFilter && !props.minutesFilter(draft.value)) {\n return true;\n }\n\n return false;\n }\n\n return true;\n });\n\n // Methods\n function apply(): void {\n model.value = draft.value;\n }\n\n function reset(): void {\n draft.value = model.value;\n }\n\n function toggleDatePopover(): void {\n if (!props.readonly && !props.disabled) {\n const popoverInstance = datePopover.value;\n\n if (popoverInstance) {\n if (datePopoverState.value === 'open') {\n (popoverInstance.close as () => void)();\n } else {\n (popoverInstance.open as () => void)();\n }\n }\n\n closeTimePopover();\n }\n }\n\n function toggleTimePopover(): void {\n if (!props.readonly && !props.disabled) {\n const popoverInstance = timePopover.value;\n\n if (popoverInstance) {\n if (timePopoverState.value === 'open') {\n (popoverInstance.close as () => void)();\n } else {\n (popoverInstance.open as () => void)();\n }\n }\n\n closeDatePopover();\n }\n }\n\n function closeDatePopover(): void {\n const popoverInstance = datePopover.value;\n\n if (popoverInstance) {\n (popoverInstance.close as () => void)();\n }\n }\n\n function closeTimePopover(): void {\n const popoverInstance = timePopover.value;\n\n if (popoverInstance) {\n (popoverInstance.close as () => void)();\n }\n }\n\n // Helpers\n const { isMobile } = useResponsive();\n\n return {\n root,\n rootStyles,\n\n inputBox,\n inputBoxRoot,\n\n datePopover,\n datePopoverState,\n datePopoverStyles,\n\n timePopover,\n timePopoverState,\n timePopoverStyles,\n\n resolvedDateFormat,\n resolvedTimeFormat,\n resolvedLocale,\n\n initialValue,\n\n model,\n draft,\n\n invalid,\n\n apply,\n reset,\n\n toggleDatePopover,\n toggleTimePopover,\n\n closeDatePopover,\n closeTimePopover,\n\n formatMobileDate,\n formatMobileTime,\n };\n },\n});\n</script>\n"],"names":["formatDate","value","format","locale","formatMobileDate","formatMobileTime","TimeFormat","formatTime","getCurrentDate","currentDate","scrollToElementWithinContainer","element","container","elementRect","containerRect","DateTimePickerDateControl","DateTimePickerDateControlPlaceholder","_sfc_main$8","defineComponent","props","context","root","ref","rootStyles","computed","Styles.DateTimePickerDateControl","placeholderStyles","Styles.DateTimePickerDateControlPlaceholder","model","useProxyModelValue","toRef","placeholder","useDateMask","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","_openBlock","_createElementBlock","_normalizeClass","_withModifiers","_toDisplayString","DateTimePickerDateSelect","DateTimePickerDateSelectButtonGroup","DateTimePickerDateSelectButtonGroupWeekdayItem","DateTimePickerDateSelectButtonGroupDateItem","DateTimePickerDateSelectButtonGroupCurrentDateItem","DateTimePickerDateSelectButtonGroupInRangeDateItem","_sfc_main$7","OrButton","Styles.DateTimePickerDateSelect","buttonGroupStyles","Styles.DateTimePickerDateSelectButtonGroup","buttonGroupWeekdayItemStyles","Styles.DateTimePickerDateSelectButtonGroupWeekdayItem","buttonGroupDateItemStyles","Styles.DateTimePickerDateSelectButtonGroupDateItem","buttonGroupCurrentDateItemStyles","Styles.DateTimePickerDateSelectButtonGroupCurrentDateItem","buttonGroupInRangeDateItemStyles","Styles.DateTimePickerDateSelectButtonGroupInRangeDateItem","dayOptions","monthStartDate","monthEndDate","calendarStartDate","calendarEndDate","options","formatWeekday","formatDay","_resolveComponent","_Fragment","_renderList","weekday","_createElementVNode","_createBlock","_component_OrButton","$event","DateTimePickerMobileControl","DateTimePickerMobileControlContent","_sfc_main$6","OrLabel","Styles.DateTimePickerMobileControl","contentStyles","Styles.DateTimePickerMobileControlContent","_createVNode","_component_OrLabel","_withCtx","DateTimePickerMonthSelect","_sfc_main$5","OrIcon","OrIconButton","OrMenu","OrMenuItem","yearButton","yearButtonRoot","_a","monthButton","monthButtonRoot","yearMenu","yearMenuState","monthMenu","monthMenuState","yearOptions","_value","index","length","monthOptions","goToNextMonth","goToPreviousMonth","formatYear","formatMonth","_component_OrIconButton","_hoisted_1","_createTextVNode","_component_OrIcon","_component_OrMenu","_component_OrMenuItem","DateTimePickerPopoverFooter","_sfc_main$4","Styles.DateTimePickerPopoverFooter","DateTimePickerPopoverHeader","_sfc_main$3","Styles.DateTimePickerPopoverHeader","DateTimePickerTimeControl","DateTimePickerTimeControlPlaceholder","_sfc_main$2","Styles.DateTimePickerTimeControl","Styles.DateTimePickerTimeControlPlaceholder","useTimeMask","DateTimePickerTimeSelect","DateTimePickerTimeSelectButtonGroup","DateTimePickerTimeSelectButtonGroupItem","_sfc_main$1","hoursContainer","minutesContainer","hoursButtons","minutesButtons","Styles.DateTimePickerTimeSelect","Styles.DateTimePickerTimeSelectButtonGroup","buttonGroupItemStyles","Styles.DateTimePickerTimeSelectButtonGroupItem","dayPeriod","watch","isActive","nextTick","activeHourButton","getActiveButton","hoursOptions","activeMinuteButton","minutesOptions","proxyTimeFormat","hourStep","minuteStep","formatHours","formatMinutes","sortElementsByPosition","elements","a","b","buttons","button","DateTimePicker","DateTimePickerDatePopover","DateTimePickerTimePopover","_sfc_main","OrDateTimePickerDateControl","OrDateTimePickerDateSelect","OrDateTimePickerMobileControl","OrDateTimePickerMonthSelect","OrDateTimePickerPopoverFooter","OrDateTimePickerPopoverHeader","OrDateTimePickerTimeControl","OrDateTimePickerTimeSelect","OrError","OrHint","OrInputBox","OrPopover","DropdownClose","DropdownOpen","Styles.DateTimePicker","InputBoxVariant","inputBox","inputBoxRoot","datePopover","datePopoverState","datePopoverStyles","isMobile","Styles.DateTimePickerDatePopover","timePopover","timePopoverState","timePopoverStyles","Styles.DateTimePickerTimePopover","resolvedDateFormat","useDateFormat","resolvedTimeFormat","useTimeFormat","resolvedLocale","useLocale","initialValue","draft","invalid","apply","reset","toggleDatePopover","popoverInstance","closeTimePopover","toggleTimePopover","closeDatePopover","useResponsive"],"mappings":"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"}
1
+ {"version":3,"file":"OrDateTimePicker.vue_vue_type_script_lang-5PNRLv_O.mjs","sources":["../../../components/or-date-time-picker-v3/src/utils/formatDate.ts","../../../components/or-date-time-picker-v3/src/utils/formatMobileDate.ts","../../../components/or-date-time-picker-v3/src/utils/formatMobileTime.ts","../../../components/or-date-time-picker-v3/src/utils/formatTime.ts","../../../components/or-date-time-picker-v3/src/utils/getCurrentDate.ts","../../../components/or-date-time-picker-v3/src/utils/scrollToElementWithinContainer.ts","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-date-control/styles.ts","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-date-control/OrDateTimePickerDateControl.vue","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-date-select/styles.ts","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-date-select/OrDateTimePickerDateSelect.vue","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-mobile-control/styles.ts","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-mobile-control/OrDateTimePickerMobileControl.vue","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-month-select/styles.ts","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-month-select/OrDateTimePickerMonthSelect.vue","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-popover-footer/styles.ts","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-popover-footer/OrDateTimePickerPopoverFooter.vue","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-popover-header/styles.ts","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-popover-header/OrDateTimePickerPopoverHeader.vue","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-time-control/styles.ts","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-time-control/OrDateTimePickerTimeControl.vue","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-time-select/styles.ts","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-time-select/OrDateTimePickerTimeSelect.vue","../../../components/or-date-time-picker-v3/src/styles.ts","../../../components/or-date-time-picker-v3/src/OrDateTimePicker.vue"],"sourcesContent":["import { DateFormat, FormatFunction, Locale } from '@onereach/ui-components-common/types';\n\nexport const formatDate = (value: Date, format: `${DateFormat}` | FormatFunction<Date>, locale: Locale): string => {\n if (typeof format === 'function') {\n return format(value, locale);\n }\n\n return value.toLocaleString(locale, {\n dateStyle: format,\n timeZone: 'UTC',\n });\n};\n","import { DateFormat, FormatFunction, Locale } from '@onereach/ui-components-common/types';\n\nexport const formatMobileDate = (value: Date, format: `${DateFormat}` | FormatFunction<Date>, locale: Locale): string => {\n return value.toLocaleString(locale, {\n dateStyle: 'medium',\n timeZone: 'UTC',\n });\n};\n","import { FormatFunction, Locale, TimeFormat } from '@onereach/ui-components-common/types';\n\nexport const formatMobileTime = (value: Date, format: `${TimeFormat}` | FormatFunction<Date>, locale: Locale): string => {\n return value.toLocaleString(locale, {\n timeStyle: 'short',\n hourCycle: typeof format !== 'function' && format !== TimeFormat.Auto ? format : undefined,\n timeZone: 'UTC',\n });\n};\n","import { FormatFunction, Locale, TimeFormat } from '@onereach/ui-components-common/types';\n\nexport const formatTime = (value: Date, format: `${TimeFormat}` | FormatFunction<Date>, locale: Locale): string => {\n if (typeof format === 'function') {\n return format(value, locale);\n }\n\n return value.toLocaleString(locale, {\n timeStyle: 'short',\n hourCycle: format !== TimeFormat.Auto ? format : undefined,\n timeZone: 'UTC',\n });\n};\n","export const getCurrentDate = (): Date => {\n const currentDate = new Date();\n\n return new Date(Date.UTC(\n currentDate.getUTCFullYear(),\n currentDate.getUTCMonth(),\n currentDate.getUTCDate()\n ));\n};\n","export const scrollToElementWithinContainer = (element: HTMLElement, container: HTMLElement): void => {\n const elementRect = element.getBoundingClientRect();\n const containerRect = container.getBoundingClientRect();\n\n // Determine if the element is fully visible within the container by comparing their positions.\n const isFullyVisible = elementRect.top >= containerRect.top && elementRect.bottom <= containerRect.bottom;\n\n if (!isFullyVisible) {\n // Calculate the new scrollTop value to center the element within the container.\n // This involves adjusting for the height of the element and container, ensuring the element is centered.\n container.scrollTop = element.offsetTop - container.offsetTop - (container.clientHeight / 2) + (element.clientHeight / 2);\n }\n};\n","export const DateTimePickerDateControl: string[] = [\n // Layout\n 'layout-inline-row',\n\n // Interactivity\n 'interactivity-click',\n\n // Theme (focus)\n 'focus-visible:theme-border-inherit focus-visible:border-b-2',\n 'dark:focus-visible:theme-border-inherit-dark',\n\n // Theme (selected)\n 'selected:theme-border-inherit selected:border-b-2',\n 'dark:selected:theme-border-inherit-dark',\n];\n\nexport const DateTimePickerDateControlPlaceholder: string[] = [\n // Theme\n 'theme-foreground-outline',\n 'dark:theme-foreground-outline-dark',\n];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n :contenteditable=\"!disabled\"\n :selected=\"selected\"\n :required=\"required\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n @keydown.prevent\n >\n <template v-if=\"model\">\n {{ formatDate(model, format, locale) }}\n </template>\n\n <template v-else>\n <span\n :class=\"placeholderStyles\"\n :disabled=\"disabled\"\n >\n {{ placeholder }}\n </span>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { PropType, computed, defineComponent, ref, toRef } from 'vue';\nimport { useDateMask, useProxyModelValue } from '@onereach/ui-components-common/hooks';\nimport type { DateFormat, FormatFunction } from '@onereach/ui-components-common/types';\nimport { DateTimePickerModelValue } from '../../types';\nimport { formatDate } from '../../utils';\nimport * as Styles from './styles';\n\nexport default defineComponent({\n name: 'OrDateTimePickerDateControl',\n\n model: {\n prop: 'modelValue',\n event: 'update:modelValue',\n },\n\n props: {\n modelValue: {\n type: undefined as unknown as PropType<DateTimePickerModelValue>,\n default: undefined,\n },\n\n format: {\n type: [String, Function] as PropType<`${DateFormat}` | FormatFunction<DateTimePickerModelValue>>,\n required: true,\n },\n\n locale: {\n type: String,\n required: true,\n },\n\n selected: {\n type: Boolean,\n default: false,\n },\n\n required: {\n type: Boolean,\n default: false,\n },\n\n readonly: {\n type: Boolean,\n default: false,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n\n expose: [\n 'root',\n ],\n\n setup(props, context) {\n // Refs & Styles\n const root = ref<HTMLElement>();\n\n const rootStyles = computed(() => [\n 'or-date-time-picker-date-control-v3',\n ...Styles.DateTimePickerDateControl,\n ]);\n\n const placeholderStyles = computed(() => [\n ...Styles.DateTimePickerDateControlPlaceholder,\n ]);\n\n // State\n const model = useProxyModelValue(toRef(props, 'modelValue'), context.emit);\n const placeholder = useDateMask(toRef(props, 'format'), toRef(props, 'locale'));\n\n return {\n root,\n rootStyles,\n\n placeholderStyles,\n\n model,\n placeholder,\n\n formatDate,\n };\n },\n});\n</script>\n","export const DateTimePickerDateSelect: string[] = [\n // Layout\n 'layout-column',\n\n // Spacing\n 'px-md',\n 'py-md',\n\n 'gap-sm',\n];\n\nexport const DateTimePickerDateSelectButtonGroup: string[] = [\n // Layout\n 'grid content-start',\n 'grid-cols-7',\n\n // Box\n 'h-[262px]',\n\n // Spacing\n '-mx-[2px]',\n '-my-[2px]',\n];\n\nexport const DateTimePickerDateSelectButtonGroupWeekdayItem: string[] = [\n // Layout\n 'layout-row justify-center',\n\n // Interactivity\n 'interactivity-default',\n\n // Spacing\n 'mx-[2px]',\n 'my-[2px]',\n\n 'px-sm',\n 'py-sm',\n\n // Typography\n 'typography-caption-regular',\n\n // Theme\n 'theme-foreground-outline',\n 'dark:theme-foreground-outline-dark',\n];\n\nexport const DateTimePickerDateSelectButtonGroupDateItem: string[] = [\n // Box\n '!min-w-fit',\n\n // Spacing\n 'mx-[2px]',\n 'my-[2px]',\n\n '!px-sm',\n '!py-sm',\n\n // Typography\n 'typography-caption-regular',\n];\n\nexport const DateTimePickerDateSelectButtonGroupCurrentDateItem: string[] = [\n // Theme\n 'theme-foreground-primary',\n 'dark:theme-foreground-primary-dark',\n\n 'theme-outline-primary outline-1',\n 'dark:theme-outline-primary-dark',\n];\n\nexport const DateTimePickerDateSelectButtonGroupInRangeDateItem: string[] = [\n // Spacing\n '!mx-0',\n '!px-[10px]',\n\n // Shape\n '!rounded-0',\n\n // Theme\n 'theme-background-primary-translucent-2',\n 'dark:theme-background-primary-translucent-2-dark',\n];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <div :class=\"buttonGroupStyles\">\n <div\n v-for=\"weekday in 7\"\n :key=\"weekday\"\n :class=\"buttonGroupWeekdayItemStyles\"\n >\n {{ formatWeekday(dayOptions[weekday - 1]) }}\n </div>\n\n <OrButton\n v-for=\"value in dayOptions\"\n :key=\"Number(value)\"\n :class=\"{\n [buttonGroupDateItemStyles.join(' ')]: true,\n [buttonGroupCurrentDateItemStyles.join(' ')]: Number(value) !== Number(model) && Number(value) !== Number(rangeStart) && Number(value) !== Number(rangeEnd) && Number(value) === Number(currentDate),\n [buttonGroupInRangeDateItemStyles.join(' ')]: (rangeStart && Number(value) > Number(rangeStart)) && (rangeEnd && Number(value) < Number(rangeEnd)),\n }\"\n :variant=\"Number(value) === Number(model) || (rangeStart && Number(value) === Number(rangeStart)) || (rangeEnd && Number(value) === Number(rangeEnd)) ? 'contained' : 'text'\"\n :color=\"Number(value) === Number(model) || (rangeStart && Number(value) === Number(rangeStart)) || (rangeEnd && Number(value) === Number(rangeEnd)) ? 'primary' : 'inherit'\"\n :disabled=\"dateFilter && !dateFilter(value)\"\n @click.stop=\"model = value\"\n >\n {{ formatDay(value) }}\n </OrButton>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { PropType, computed, defineComponent, ref, toRef } from 'vue';\nimport { useProxyModelValue } from '@onereach/ui-components-common/hooks';\nimport { DateFormat, FilterFunction, FormatFunction } from '@onereach/ui-components-common/types';\nimport { OrButtonV3 as OrButton } from '@onereach/ui-components.or-button-v3';\nimport { DateTimePickerModelValue } from '../../types';\nimport * as Styles from './styles';\n\nexport default defineComponent({\n name: 'OrDateTimePickerDateSelect',\n\n components: {\n OrButton,\n },\n\n model: {\n prop: 'modelValue',\n event: 'update:modelValue',\n },\n\n props: {\n modelValue: {\n type: undefined as unknown as PropType<DateTimePickerModelValue>,\n default: undefined,\n },\n\n initialValue: {\n type: Date,\n required: true,\n },\n\n format: {\n type: [String, Function] as PropType<`${DateFormat}` | FormatFunction<DateTimePickerModelValue>>,\n required: true,\n },\n\n locale: {\n type: String,\n required: true,\n },\n\n dateFilter: {\n type: Function as PropType<FilterFunction<Date>>,\n default: undefined,\n },\n\n rangeStart: {\n type: Date,\n default: undefined,\n },\n\n rangeEnd: {\n type: Date,\n default: undefined,\n },\n },\n\n emits: [\n 'update:modelValue',\n ],\n\n expose: [\n 'root',\n ],\n\n setup(props, context) {\n // Refs & Styles\n const root = ref<HTMLElement>();\n\n const rootStyles = computed(() => [\n 'or-date-time-picker-date-select-v3',\n ...Styles.DateTimePickerDateSelect,\n ]);\n\n const buttonGroupStyles = computed(() => [\n ...Styles.DateTimePickerDateSelectButtonGroup,\n ]);\n\n const buttonGroupWeekdayItemStyles = computed(() => [\n ...Styles.DateTimePickerDateSelectButtonGroupWeekdayItem,\n ]);\n\n const buttonGroupDateItemStyles = computed(() => [\n ...Styles.DateTimePickerDateSelectButtonGroupDateItem,\n ]);\n\n const buttonGroupCurrentDateItemStyles = computed(() => [\n ...Styles.DateTimePickerDateSelectButtonGroupCurrentDateItem,\n ]);\n\n const buttonGroupInRangeDateItemStyles = computed(() => [\n ...Styles.DateTimePickerDateSelectButtonGroupInRangeDateItem,\n ]);\n\n // State\n const model = useProxyModelValue(toRef(props, 'modelValue'), context.emit);\n\n const dayOptions = computed(() => {\n const monthStartDate = new Date(Date.UTC(\n props.initialValue.getUTCFullYear(),\n props.initialValue.getUTCMonth(),\n 1,\n props.initialValue.getUTCHours(),\n props.initialValue.getUTCMinutes(),\n ));\n\n const monthEndDate = new Date(Date.UTC(\n props.initialValue.getUTCFullYear(),\n props.initialValue.getUTCMonth() + 1,\n 0,\n props.initialValue.getUTCHours(),\n props.initialValue.getUTCMinutes(),\n ));\n\n const calendarStartDate = new Date(Date.UTC(\n monthStartDate.getUTCFullYear(),\n monthStartDate.getUTCMonth(),\n 1 - monthStartDate.getUTCDay(),\n monthStartDate.getUTCHours(),\n monthStartDate.getUTCMinutes(),\n ));\n\n const calendarEndDate = new Date(Date.UTC(\n monthEndDate.getUTCFullYear(),\n monthEndDate.getUTCMonth() + 1,\n 7 - monthEndDate.getUTCDay(),\n monthEndDate.getUTCHours(),\n monthEndDate.getUTCMinutes(),\n ));\n\n return (() => {\n let options = [] as Date[], value = calendarStartDate;\n\n while (Number(value) !== Number(calendarEndDate)) {\n options = [...options, value];\n\n value = new Date(Date.UTC(\n value.getUTCFullYear(),\n value.getUTCMonth(),\n value.getUTCDate() + 1,\n value.getUTCHours(),\n value.getUTCMinutes(),\n ));\n }\n\n return options;\n })();\n });\n\n const currentDate = computed(() => {\n const value = new Date();\n\n value.setUTCHours(props.initialValue.getUTCHours());\n value.setUTCMinutes(props.initialValue.getUTCMinutes());\n value.setUTCSeconds(props.initialValue.getUTCSeconds());\n value.setUTCMilliseconds(props.initialValue.getUTCMilliseconds());\n\n return value;\n });\n\n // Methods\n function formatWeekday(value: Date): string {\n return value.toLocaleString(props.locale, {\n weekday: 'short',\n timeZone: 'UTC',\n });\n }\n\n function formatDay(value: Date): string {\n return value.toLocaleString(props.locale, {\n day: 'numeric',\n timeZone: 'UTC',\n });\n }\n\n return {\n root,\n rootStyles,\n\n buttonGroupStyles,\n buttonGroupWeekdayItemStyles,\n buttonGroupDateItemStyles,\n buttonGroupCurrentDateItemStyles,\n buttonGroupInRangeDateItemStyles,\n\n model,\n\n dayOptions,\n\n currentDate,\n\n formatWeekday,\n formatDay,\n };\n },\n});\n</script>\n","export const DateTimePickerMobileControl: string[] = [\n // Layout\n 'layout-column',\n\n // Interactivity\n 'interactivity-auto',\n\n // Spacing\n 'gap-xs',\n\n // Theme\n 'theme-foreground-outline',\n 'dark:theme-foreground-outline-dark',\n\n // Theme (selected)\n 'selected:theme-foreground-default',\n 'dark:selected:theme-foreground-default-dark',\n];\n\nexport const DateTimePickerMobileControlContent: string[] = [\n // Typography\n 'typography-headline-1',\n];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n :selected=\"selected\"\n >\n <OrLabel>{{ label }}</OrLabel>\n\n <div :class=\"contentStyles\">\n <slot />\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, ref } from 'vue';\nimport { OrLabelV3 as OrLabel } from '@onereach/ui-components.or-label-v3';\nimport * as Styles from './styles';\n\nexport default defineComponent({\n name: 'OrDateTimePickerMobileControl',\n\n components: {\n OrLabel,\n },\n\n props: {\n label: {\n type: String,\n required: true,\n },\n\n selected: {\n type: Boolean,\n default: false,\n },\n },\n\n expose: [\n 'root',\n ],\n\n setup() {\n // Refs & Styles\n const root = ref<HTMLElement>();\n\n const rootStyles = computed(() => [\n 'or-date-time-picker-mobile-control-v3',\n ...Styles.DateTimePickerMobileControl,\n ]);\n\n const contentStyles = computed(() => [\n ...Styles.DateTimePickerMobileControlContent,\n ]);\n\n return {\n root,\n rootStyles,\n\n contentStyles,\n };\n },\n});\n</script>\n","export const DateTimePickerMonthSelect: string[] = [\n // Layout\n 'layout-row justify-between',\n\n // Spacing\n 'px-md',\n 'py-md',\n\n 'gap-md',\n];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <OrIconButton\n :icon=\"'chevron_left'\"\n @click.stop=\"goToPreviousMonth()\"\n />\n\n <div :class=\"['layout-row-reverse', 'gap-md']\">\n <OrButton\n :ref=\"'yearButton'\"\n :variant=\"'link'\"\n :color=\"'inherit'\"\n @click.stop=\"monthMenu && monthMenu.close(); yearMenu && yearMenu.toggle()\"\n >\n {{ formatYear(model) }} <OrIcon :icon=\"yearMenuState === 'open' ? 'arrow_drop_up' : 'arrow_drop_down'\" />\n </OrButton>\n\n <OrButton\n :ref=\"'monthButton'\"\n :variant=\"'link'\"\n :color=\"'inherit'\"\n @click.stop=\"yearMenu && yearMenu.close(); monthMenu && monthMenu.toggle()\"\n >\n {{ formatMonth(model) }} <OrIcon :icon=\"monthMenuState === 'open' ? 'arrow_drop_up' : 'arrow_drop_down'\" />\n </OrButton>\n\n <OrMenu\n :ref=\"'yearMenu'\"\n :trigger=\"yearButtonRoot\"\n >\n <OrMenuItem\n v-for=\"value in yearOptions\"\n :key=\"Number(value)\"\n :selected=\"Number(value) === Number(model)\"\n :disabled=\"yearFilter && !yearFilter(value)\"\n @click.stop=\"model = value; yearMenu && yearMenu.close()\"\n >\n {{ formatYear(value) }}\n </OrMenuItem>\n </OrMenu>\n\n <OrMenu\n :ref=\"'monthMenu'\"\n :trigger=\"monthButtonRoot\"\n >\n <OrMenuItem\n v-for=\"value in monthOptions\"\n :key=\"Number(value)\"\n :selected=\"Number(value) === Number(model)\"\n :disabled=\"monthFilter && !monthFilter(value)\"\n @click.stop=\"model = value; monthMenu && monthMenu.close()\"\n >\n {{ formatMonth(value) }}\n </OrMenuItem>\n </OrMenu>\n </div>\n\n <OrIconButton\n :icon=\"'chevron_right'\"\n @click.stop=\"goToNextMonth()\"\n />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { PropType, computed, defineComponent, ref, toRef } from 'vue';\nimport { useProxyModelValue } from '@onereach/ui-components-common/hooks';\nimport { FilterFunction } from '@onereach/ui-components-common/types';\nimport { OrButtonV3 as OrButton } from '@onereach/ui-components.or-button-v3';\nimport { OrIconButtonV3 as OrIconButton } from '@onereach/ui-components.or-icon-button-v3';\nimport { OrIconV3 as OrIcon } from '@onereach/ui-components.or-icon-v3';\nimport { OrMenuItemV3 as OrMenuItem } from '@onereach/ui-components.or-menu-item-v3';\nimport { OrMenuV3 as OrMenu } from '@onereach/ui-components.or-menu-v3';\nimport { DateTimePickerModelValue } from '../../types';\nimport { DateTimePickerMonthSelect } from './styles';\n\nexport default defineComponent({\n name: 'OrDateTimePickerMonthSelect',\n\n components: {\n OrButton,\n OrIcon,\n OrIconButton,\n OrMenu,\n OrMenuItem,\n },\n\n model: {\n prop: 'modelValue',\n event: 'update:modelValue',\n },\n\n props: {\n modelValue: {\n type: undefined as unknown as PropType<NonNullable<DateTimePickerModelValue>>,\n required: true,\n },\n\n locale: {\n type: String,\n required: true,\n },\n\n yearFilter: {\n type: Function as PropType<FilterFunction<Date>>,\n default: undefined,\n },\n\n monthFilter: {\n type: Function as PropType<FilterFunction<Date>>,\n default: undefined,\n },\n },\n\n emits: [\n 'update:modelValue',\n ],\n\n expose: [\n 'root',\n ],\n\n setup(props, context) {\n // Refs & Styles\n const root = ref<HTMLElement>();\n\n const rootStyles = computed(() => [\n 'or-date-time-picker-month-select-v3',\n ...DateTimePickerMonthSelect,\n ]);\n\n const yearButton = ref<InstanceType<typeof OrButton>>();\n const yearButtonRoot = computed(() => yearButton.value?.root);\n\n const monthButton = ref<InstanceType<typeof OrButton>>();\n const monthButtonRoot = computed(() => monthButton.value?.root);\n\n const yearMenu = ref<InstanceType<typeof OrMenu>>();\n const yearMenuState = computed(() => yearMenu.value?.state);\n\n const monthMenu = ref<InstanceType<typeof OrMenu>>();\n const monthMenuState = computed(() => monthMenu.value?.state);\n\n // State\n const model = useProxyModelValue(toRef(props, 'modelValue'), context.emit);\n\n const yearOptions = computed(() => {\n return Array.from({ length: 11 }).map((_value, index, { length }) => {\n const value = model.value.getUTCFullYear() - Math.floor(length / 2) + index;\n\n return new Date(Date.UTC(\n value,\n model.value.getUTCMonth(),\n model.value.getUTCDate(),\n model.value.getUTCHours(),\n model.value.getUTCMinutes(),\n ));\n });\n });\n\n const monthOptions = computed(() => {\n return Array.from({ length: 12 }, (_value, index) => {\n const value = index;\n\n return new Date(Date.UTC(\n model.value.getUTCFullYear(),\n value,\n model.value.getUTCDate(),\n model.value.getUTCHours(),\n model.value.getUTCMinutes(),\n ));\n });\n });\n\n // Methods\n function goToNextMonth(): void {\n model.value = new Date(Date.UTC(\n model.value.getUTCFullYear(),\n model.value.getUTCMonth() + 1,\n model.value.getUTCDate(),\n model.value.getUTCHours(),\n model.value.getUTCMinutes(),\n ));\n }\n\n function goToPreviousMonth(): void {\n model.value = new Date(Date.UTC(\n model.value.getUTCFullYear(),\n model.value.getUTCMonth() - 1,\n model.value.getUTCDate(),\n model.value.getUTCHours(),\n model.value.getUTCMinutes(),\n ));\n }\n\n function formatYear(value: Date): string {\n return value.toLocaleString(props.locale, {\n year: 'numeric',\n timeZone: 'UTC',\n });\n }\n\n function formatMonth(value: Date): string {\n return value.toLocaleString(props.locale, {\n month: 'long',\n timeZone: 'UTC',\n });\n }\n\n return {\n root,\n rootStyles,\n\n yearButton,\n yearButtonRoot,\n\n monthButton,\n monthButtonRoot,\n\n yearMenu,\n yearMenuState,\n\n monthMenu,\n monthMenuState,\n\n model,\n\n yearOptions,\n monthOptions,\n\n goToNextMonth,\n goToPreviousMonth,\n\n formatYear,\n formatMonth,\n };\n },\n});\n</script>\n","export const DateTimePickerPopoverFooter: string[] = [\n // Layout\n 'layout-row-reverse',\n\n // Layout (children)\n 'children:grow',\n\n // Spacing\n 'px-md md:px-sm',\n 'py-md md:py-sm',\n\n 'gap-md md:gap-sm',\n\n // Theme\n 'theme-border-outline-variant border-t-1',\n 'dark:theme-border-outline-variant-dark',\n];\n","<template>\n <footer\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <OrButton\n :variant=\"'outlined'\"\n :disabled=\"disabled\"\n @click.stop=\"$emit('apply')\"\n >\n Done\n </OrButton>\n\n <OrButton\n :variant=\"'text'\"\n @click.stop=\"$emit('reset')\"\n >\n Cancel\n </OrButton>\n </footer>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, ref } from 'vue';\nimport { OrButtonV3 as OrButton } from '@onereach/ui-components.or-button-v3';\nimport * as Styles from './styles';\n\nexport default defineComponent({\n name: 'OrDateTimePickerPopoverFooter',\n\n components: {\n OrButton,\n },\n\n props: {\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n 'apply',\n 'reset',\n ],\n\n expose: [\n 'root',\n ],\n\n setup() {\n // Refs & Styles\n const root = ref<HTMLElement>();\n\n const rootStyles = computed(() => [\n 'or-date-time-picker-popover-footer-v3',\n ...Styles.DateTimePickerPopoverFooter,\n ]);\n\n return {\n root,\n rootStyles,\n };\n },\n});\n</script>\n","export const DateTimePickerPopoverHeader: string[] = [\n // Layout\n 'layout-row md:hidden',\n\n // Spacing\n 'px-md',\n 'py-md',\n\n 'gap-xl',\n];\n","<template>\n <header\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <slot />\n </header>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, ref } from 'vue';\nimport * as Styles from './styles';\n\nexport default defineComponent({\n name: 'OrDateTimePickerPopoverHeader',\n\n expose: [\n 'root',\n ],\n\n setup() {\n // Refs & Styles\n const root = ref<HTMLElement>();\n\n const rootStyles = computed(() => [\n 'or-date-time-picker-popover-header-v3',\n ...Styles.DateTimePickerPopoverHeader,\n ]);\n\n return {\n root,\n rootStyles,\n };\n },\n});\n</script>\n","export const DateTimePickerTimeControl: string[] = [\n // Layout\n 'layout-inline-row',\n\n // Interactivity\n 'interactivity-click',\n\n // Theme (focus)\n 'focus-visible:theme-border-inherit focus-visible:border-b-2',\n 'dark:focus-visible:theme-border-inherit-dark',\n\n // Theme (selected)\n 'selected:theme-border-inherit selected:border-b-2',\n 'dark:selected:theme-border-inherit-dark',\n];\n\nexport const DateTimePickerTimeControlPlaceholder: string[] = [\n // Theme\n 'theme-foreground-outline',\n 'dark:theme-foreground-outline-dark',\n];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n :contenteditable=\"!disabled\"\n :selected=\"selected\"\n :required=\"required\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n @keydown.prevent\n >\n <template v-if=\"model\">\n {{ formatTime(model, format, locale) }}\n </template>\n\n <template v-else>\n <span\n :class=\"placeholderStyles\"\n :disabled=\"disabled\"\n >\n {{ placeholder }}\n </span>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { PropType, computed, defineComponent, ref, toRef } from 'vue';\nimport { useProxyModelValue, useTimeMask } from '@onereach/ui-components-common/hooks';\nimport { FormatFunction, TimeFormat } from '@onereach/ui-components-common/types';\nimport { DateTimePickerModelValue } from '../../types';\nimport { formatTime } from '../../utils';\nimport * as Styles from './styles';\n\nexport default defineComponent({\n name: 'OrDateTimePickerTimeControl',\n\n model: {\n prop: 'modelValue',\n event: 'update:modelValue',\n },\n\n props: {\n modelValue: {\n type: undefined as unknown as PropType<DateTimePickerModelValue>,\n default: undefined,\n },\n\n format: {\n type: [String, Function] as PropType<`${TimeFormat}` | FormatFunction<DateTimePickerModelValue>>,\n required: true,\n },\n\n locale: {\n type: String,\n required: true,\n },\n\n selected: {\n type: Boolean,\n default: false,\n },\n\n required: {\n type: Boolean,\n default: false,\n },\n\n readonly: {\n type: Boolean,\n default: false,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n\n expose: [\n 'root',\n ],\n\n setup(props, context) {\n // Refs & Styles\n const root = ref<HTMLElement>();\n\n const rootStyles = computed(() => [\n 'or-date-time-picker-time-control-v3',\n ...Styles.DateTimePickerTimeControl,\n ]);\n\n const placeholderStyles = computed(() => [\n ...Styles.DateTimePickerTimeControlPlaceholder,\n ]);\n\n // State\n const model = useProxyModelValue(toRef(props, 'modelValue'), context.emit);\n const placeholder = useTimeMask(toRef(props, 'format'), toRef(props, 'locale'));\n\n return {\n root,\n rootStyles,\n\n placeholderStyles,\n\n model,\n placeholder,\n\n formatTime,\n };\n },\n});\n</script>\n","export const DateTimePickerTimeSelect: string[] = [\n // Layout\n 'layout-row justify-center',\n\n // Spacing\n 'px-md',\n 'py-md',\n\n 'gap-sm',\n\n // Typography\n 'typography-body-2-regular',\n\n // Theme\n 'theme-foreground-default',\n 'dark:theme-foreground-default-dark',\n];\n\nexport const DateTimePickerTimeSelectButtonGroup: string[] = [\n // Layout\n 'layout-column',\n\n // Box\n 'h-[294px] md:h-[238px]',\n\n // Overflow\n 'overflow-x-hidden',\n 'overflow-y-auto',\n];\n\nexport const DateTimePickerTimeSelectButtonGroupItem: string[] = [\n // Box\n '!min-w-fit',\n\n // Typography\n 'typography-caption-regular',\n];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <div\n :ref=\"'hoursContainer'\"\n :class=\"buttonGroupStyles\"\n >\n <OrButton\n v-for=\"value in hoursOptions\"\n :ref=\"'hoursButtons'\"\n :key=\"Number(value)\"\n :class=\"buttonGroupItemStyles\"\n :variant=\"Number(value) === Number(model) ? 'contained' : 'text'\"\n :color=\"Number(value) === Number(model) ? 'primary' : 'inherit'\"\n :disabled=\"hoursFilter && !hoursFilter(value)\"\n @click.stop=\"model = value\"\n >\n {{ formatHours(value) }}\n </OrButton>\n </div>\n\n :\n\n <div\n :ref=\"'minutesContainer'\"\n :class=\"buttonGroupStyles\"\n >\n <OrButton\n v-for=\"value in minutesOptions\"\n :ref=\"'minutesButtons'\"\n :key=\"Number(value)\"\n :class=\"buttonGroupItemStyles\"\n :variant=\"Number(value) === Number(model) ? 'contained' : 'text'\"\n :color=\"Number(value) === Number(model) ? 'primary' : 'inherit'\"\n :disabled=\"minutesFilter && !minutesFilter(value)\"\n @click.stop=\"model = value\"\n >\n {{ formatMinutes(value) }}\n </OrButton>\n </div>\n\n <template v-if=\"proxyTimeFormat === 'h12'\">\n <div :class=\"buttonGroupStyles\">\n <OrButton\n :class=\"buttonGroupItemStyles\"\n :variant=\"dayPeriod === 'am' ? 'contained' : 'text'\"\n :color=\"dayPeriod === 'am' ? 'primary' : 'inherit'\"\n @click.stop=\"dayPeriod = 'am'\"\n >\n AM\n </OrButton>\n\n <OrButton\n :class=\"buttonGroupItemStyles\"\n :variant=\"dayPeriod === 'pm' ? 'contained' : 'text'\"\n :color=\"dayPeriod === 'pm' ? 'primary' : 'inherit'\"\n @click.stop=\"dayPeriod = 'pm'\"\n >\n PM\n </OrButton>\n </div>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, nextTick, PropType, ref, toRef, watch } from 'vue';\nimport { useProxyModelValue } from '@onereach/ui-components-common/hooks';\nimport { FilterFunction, FormatFunction, TimeFormat } from '@onereach/ui-components-common/types';\nimport { OrButtonV3 as OrButton } from '@onereach/ui-components.or-button-v3';\nimport { DateTimePickerModelValue } from '../../types';\nimport * as Styles from './styles';\nimport { scrollToElementWithinContainer } from '../../utils';\n\nexport default defineComponent({\n name: 'OrDateTimePickerTimeSelect',\n\n components: {\n OrButton,\n },\n\n model: {\n prop: 'modelValue',\n event: 'update:modelValue',\n },\n\n props: {\n modelValue: {\n type: undefined as unknown as PropType<DateTimePickerModelValue>,\n default: undefined,\n },\n\n initialValue: {\n type: Date,\n required: true,\n },\n\n format: {\n type: [String, Function] as PropType<`${TimeFormat}` | FormatFunction<DateTimePickerModelValue>>,\n required: true,\n },\n\n locale: {\n type: String,\n required: true,\n },\n\n hoursFilter: {\n type: Function as PropType<FilterFunction<Date>>,\n default: undefined,\n },\n\n minutesFilter: {\n type: Function as PropType<FilterFunction<Date>>,\n default: undefined,\n },\n\n hourStep: {\n type: Number,\n default: 1,\n },\n\n minuteStep: {\n type: Number,\n default: 1,\n },\n\n isActive: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n 'update:modelValue',\n ],\n\n expose: [\n 'root',\n ],\n\n setup(props, context) {\n // Refs & Styles\n const root = ref<HTMLElement>();\n const hoursContainer = ref<HTMLElement>();\n const minutesContainer = ref<HTMLElement>();\n const hoursButtons = ref<InstanceType<typeof OrButton>[]>([]);\n const minutesButtons = ref<InstanceType<typeof OrButton>[]>([]);\n\n const rootStyles = computed(() => [\n 'or-date-time-picker-time-select-v3',\n ...Styles.DateTimePickerTimeSelect,\n ]);\n\n const buttonGroupStyles = computed(() => [\n ...Styles.DateTimePickerTimeSelectButtonGroup,\n ]);\n\n const buttonGroupItemStyles = computed(() => [\n ...Styles.DateTimePickerTimeSelectButtonGroupItem,\n ]);\n\n // State\n const model = useProxyModelValue(toRef(props, 'modelValue'), context.emit);\n const dayPeriod = ref<'am' | 'pm'>((model.value ?? props.initialValue).getUTCHours() < 12 ? 'am' : 'pm');\n\n // Effects\n watch(dayPeriod, (value) => {\n switch (value) {\n case 'am':\n model.value = new Date(Date.UTC(\n (model.value ?? props.initialValue).getUTCFullYear(),\n (model.value ?? props.initialValue).getUTCMonth(),\n (model.value ?? props.initialValue).getUTCDate(),\n (model.value ?? props.initialValue).getUTCHours() - 12,\n (model.value ?? props.initialValue).getUTCMinutes(),\n ));\n\n break;\n\n case 'pm':\n model.value = new Date(Date.UTC(\n (model.value ?? props.initialValue).getUTCFullYear(),\n (model.value ?? props.initialValue).getUTCMonth(),\n (model.value ?? props.initialValue).getUTCDate(),\n (model.value ?? props.initialValue).getUTCHours() + 12,\n (model.value ?? props.initialValue).getUTCMinutes(),\n ));\n\n break;\n }\n });\n\n watch(() => props.isActive, (isActive) => {\n // Wait for the next DOM update cycle to ensure all refs are correctly updated.\n nextTick(() => {\n if (!isActive || !model.value) {\n return;\n }\n\n const activeHourButton = getActiveButton(hoursButtons.value, hoursOptions.value);\n const activeMinuteButton = getActiveButton(minutesButtons.value, minutesOptions.value);\n\n if (activeHourButton && hoursContainer.value) {\n // scroll to the active hour button within the hours container.\n scrollToElementWithinContainer(activeHourButton, hoursContainer.value);\n }\n\n if (activeMinuteButton && minutesContainer.value) {\n // scroll to the active minute button within the minutes container.\n scrollToElementWithinContainer(activeMinuteButton, minutesContainer.value);\n }\n });\n }, { immediate: true });\n\n // Computed\n const proxyTimeFormat = computed(() => {\n if (typeof props.format === 'function' || props.format === TimeFormat.Auto) {\n const timeSample = new Date(1970, 0);\n\n if (timeSample.toLocaleTimeString(props.locale).includes('12')) {\n return TimeFormat.H12;\n }\n\n return TimeFormat.H23;\n }\n\n return props.format;\n });\n\n const hoursOptions = computed(() => {\n const hourStep = props.hourStep > 0 ? props.hourStep : 1;\n\n return Array.from({ length: Math.ceil(24 / hourStep) }, (_value, index) => {\n const value = index * hourStep;\n\n return new Date(Date.UTC(\n (model.value ?? props.initialValue).getUTCFullYear(),\n (model.value ?? props.initialValue).getUTCMonth(),\n (model.value ?? props.initialValue).getUTCDate(),\n value,\n (model.value ?? props.initialValue).getUTCMinutes(),\n ));\n }).filter((value) => {\n if (proxyTimeFormat.value === TimeFormat.H23) {\n return true;\n }\n\n switch (dayPeriod.value) {\n case 'am':\n return value.getUTCHours() < 12;\n\n case 'pm':\n return value.getUTCHours() >= 12;\n }\n });\n });\n\n const minutesOptions = computed(() => {\n const minuteStep = props.minuteStep > 0 ? props.minuteStep : 1;\n\n return Array.from({ length: Math.ceil(60 / minuteStep) }, (_value, index) => {\n const value = index * minuteStep;\n\n return new Date(Date.UTC(\n (model.value ?? props.initialValue).getUTCFullYear(),\n (model.value ?? props.initialValue).getUTCMonth(),\n (model.value ?? props.initialValue).getUTCDate(),\n (model.value ?? props.initialValue).getUTCHours(),\n value,\n ));\n });\n });\n\n // Methods\n function formatHours(value: Date): string {\n return value.toLocaleString(props.locale, {\n hour: 'numeric',\n hourCycle: typeof props.format !== 'function' && props.format !== TimeFormat.Auto ? props.format : undefined,\n timeZone: 'UTC',\n }).replace(/\\D/g, '');\n }\n\n function formatMinutes(value: Date): string {\n return String(value.getUTCMinutes()).padStart(2, '0');\n }\n\n function sortElementsByPosition(elements: InstanceType<typeof OrButton>[]): InstanceType<typeof OrButton>[] {\n return [...elements].sort((a, b) => {\n return a.root!.compareDocumentPosition(b.root!) & 2 ? 1 : -1;\n });\n }\n\n function getActiveButton(buttons: InstanceType<typeof OrButton>[], options: Date[]): HTMLButtonElement | undefined {\n return sortElementsByPosition(buttons)\n .find((button, index) => Number(model.value) === Number(options[index]))?.root;\n }\n\n return {\n root,\n rootStyles,\n\n hoursContainer,\n minutesContainer,\n\n hoursButtons,\n minutesButtons,\n\n buttonGroupStyles,\n buttonGroupItemStyles,\n\n model,\n dayPeriod,\n\n proxyTimeFormat,\n\n hoursOptions,\n minutesOptions,\n\n formatHours,\n formatMinutes,\n };\n },\n});\n</script>\n","export const DateTimePicker: string[] = [\n // Layout\n 'layout-column',\n\n // Spacing\n 'gap-xs',\n];\n\nexport const DateTimePickerDatePopover: string[] = [\n // Box\n 'w-[290px]',\n];\n\nexport const DateTimePickerTimePopover: string[] = [];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <template v-if=\"$slots.label || $slots.addon || label\">\n <OrLabel\n :variant=\"'input'\"\n :required=\"required\"\n :disabled=\"disabled\"\n >\n <slot name=\"label\">\n {{ label }}\n </slot>\n\n <template v-slot:addon>\n <slot name=\"addon\" />\n </template>\n </OrLabel>\n </template>\n\n <OrInputBox\n :ref=\"'inputBox'\"\n v-dropdown-open=\"toggleDatePopover\"\n v-dropdown-close=\"closeDatePopover\"\n :variant=\"variant\"\n :size=\"size\"\n :invalid=\"!!error\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n >\n <OrDateTimePickerDateControl\n v-model=\"draft\"\n v-dropdown-open=\"toggleDatePopover\"\n v-dropdown-close=\"closeDatePopover\"\n :format=\"resolvedDateFormat\"\n :locale=\"resolvedLocale\"\n :selected=\"datePopover && datePopover.state === 'open'\"\n :required=\"required\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n />\n\n <OrDateTimePickerTimeControl\n v-model=\"draft\"\n v-dropdown-open=\"toggleTimePopover\"\n v-dropdown-close=\"closeTimePopover\"\n :format=\"resolvedTimeFormat\"\n :locale=\"resolvedLocale\"\n :selected=\"timePopover && timePopover.state === 'open'\"\n :required=\"required\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n />\n\n <OrPopover\n :ref=\"'datePopover'\"\n :variant=\"'auto'\"\n :bottom-sheet-props=\"{ variant: 'basic' }\"\n :trigger=\"anchor || inputBoxRoot\"\n :placement=\"'bottom-start'\"\n :fallback-placement=\"'start'\"\n @close=\"reset()\"\n >\n <div :class=\"datePopoverStyles\">\n <OrDateTimePickerPopoverHeader>\n <OrDateTimePickerMobileControl :label=\"'Date'\">\n {{ draft ? formatMobileDate(draft, resolvedDateFormat, resolvedLocale) : '--' }}\n </OrDateTimePickerMobileControl>\n\n <OrDateTimePickerMobileControl :label=\"'Time'\">\n {{ draft ? formatMobileTime(draft, resolvedTimeFormat, resolvedLocale) : '--' }}\n </OrDateTimePickerMobileControl>\n </OrDateTimePickerPopoverHeader>\n\n <OrDateTimePickerMonthSelect\n v-model=\"initialValue\"\n :locale=\"resolvedLocale\"\n :year-filter=\"yearFilter\"\n :month-filter=\"monthFilter\"\n />\n\n <OrDateTimePickerDateSelect\n v-model=\"draft\"\n :initial-value=\"initialValue\"\n :format=\"resolvedDateFormat\"\n :locale=\"resolvedLocale\"\n :date-filter=\"dateFilter\"\n />\n\n <OrDateTimePickerPopoverFooter\n :disabled=\"invalid\"\n @apply=\"apply(); datePopover && datePopover.close()\"\n @reset=\"reset(); datePopover && datePopover.close()\"\n />\n </div>\n </OrPopover>\n\n <OrPopover\n :ref=\"'timePopover'\"\n :class=\"timePopoverStyles\"\n :custom-styles=\"timePopoverStyles\"\n :variant=\"'auto'\"\n :bottom-sheet-props=\"{ variant: 'basic' }\"\n :trigger=\"anchor || inputBoxRoot\"\n :placement=\"'bottom-start'\"\n :fallback-placement=\"'start'\"\n @close=\"reset()\"\n >\n <OrDateTimePickerPopoverHeader>\n <OrDateTimePickerMobileControl :label=\"'Date'\">\n {{ draft ? formatMobileDate(draft, resolvedDateFormat, resolvedLocale) : '--' }}\n </OrDateTimePickerMobileControl>\n\n <OrDateTimePickerMobileControl :label=\"'Time'\">\n {{ draft ? formatMobileTime(draft, resolvedTimeFormat, resolvedLocale) : '--' }}\n </OrDateTimePickerMobileControl>\n </OrDateTimePickerPopoverHeader>\n\n <OrDateTimePickerTimeSelect\n v-model=\"draft\"\n :initial-value=\"initialValue\"\n :format=\"resolvedTimeFormat\"\n :locale=\"resolvedLocale\"\n :hours-filter=\"hoursFilter\"\n :minutes-filter=\"minutesFilter\"\n :is-active=\"timePopover && timePopover.state === 'open'\"\n :hour-step=\"hourStep\"\n :minute-step=\"minuteStep\"\n />\n\n <OrDateTimePickerPopoverFooter\n :disabled=\"invalid\"\n @apply=\"apply(); timePopover && timePopover.close()\"\n @reset=\"reset(); timePopover && timePopover.close()\"\n />\n </OrPopover>\n\n <div :class=\"['grow']\" />\n\n <template v-slot:addon>\n <template v-if=\"modelValue\">\n <OrIconButton\n :icon=\"'close'\"\n :color=\"'inherit'\"\n :disabled=\"readonly || disabled\"\n @click.stop=\"$emit('update:modelValue', undefined)\"\n />\n </template>\n\n <template v-else>\n <OrIcon\n :icon=\"'calendar_month'\"\n :variant=\"'outlined'\"\n />\n </template>\n </template>\n </OrInputBox>\n\n <template v-if=\"$slots.hint || hint\">\n <OrHint\n v-show=\"!error\"\n :disabled=\"disabled\"\n >\n <slot name=\"hint\">\n {{ hint }}\n </slot>\n </OrHint>\n </template>\n\n <OrError\n v-show=\"typeof error === 'string' && error.length > 0\"\n :disabled=\"disabled\"\n >\n {{ error }}\n </OrError>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { PropType, computed, defineComponent, ref, toRef, watch } from 'vue';\nimport { DropdownClose, DropdownOpen } from '@onereach/ui-components-common/directives';\nimport { useDateFormat, useLocale, useProxyModelValue, useTimeFormat, useResponsive } from '@onereach/ui-components-common/hooks';\nimport { DateFormat, FilterFunction, FormatFunction, TimeFormat } from '@onereach/ui-components-common/types';\nimport { OrErrorV3 as OrError } from '@onereach/ui-components.or-error-v3';\nimport { OrHintV3 as OrHint } from '@onereach/ui-components.or-hint-v3';\nimport { OrIconButtonV3 as OrIconButton } from '@onereach/ui-components.or-icon-button-v3';\nimport { OrIconV3 as OrIcon } from '@onereach/ui-components.or-icon-v3';\nimport { InputBoxSize, InputBoxVariant, OrInputBoxV3 as OrInputBox } from '@onereach/ui-components.or-input-box-v3';\nimport { OrLabelV3 as OrLabel } from '@onereach/ui-components.or-label-v3';\nimport { OrPopoverV3 as OrPopover } from '@onereach/ui-components.or-popover-v3';\nimport { OrDateTimePickerDateControl, OrDateTimePickerDateSelect, OrDateTimePickerMobileControl, OrDateTimePickerMonthSelect, OrDateTimePickerPopoverFooter, OrDateTimePickerPopoverHeader, OrDateTimePickerTimeControl, OrDateTimePickerTimeSelect } from './partials';\nimport * as Styles from './styles';\nimport { DateTimePickerModelValue } from './types';\nimport { formatMobileDate, formatMobileTime, getCurrentDate } from './utils';\nimport { ReferenceElement } from '@floating-ui/dom';\n\nexport default defineComponent({\n name: 'OrDateTimePicker',\n\n components: {\n OrDateTimePickerDateControl,\n OrDateTimePickerDateSelect,\n OrDateTimePickerMobileControl,\n OrDateTimePickerMonthSelect,\n OrDateTimePickerPopoverFooter,\n OrDateTimePickerPopoverHeader,\n OrDateTimePickerTimeControl,\n OrDateTimePickerTimeSelect,\n OrError,\n OrHint,\n OrIcon,\n OrIconButton,\n OrInputBox,\n OrLabel,\n OrPopover,\n },\n\n directives: {\n DropdownClose,\n DropdownOpen,\n },\n\n model: {\n prop: 'modelValue',\n event: 'update:modelValue',\n },\n\n props: {\n modelValue: {\n type: undefined as unknown as PropType<DateTimePickerModelValue>,\n default: undefined,\n },\n\n dateFormat: {\n type: [String, Function] as PropType<`${DateFormat}` | FormatFunction<DateTimePickerModelValue>>,\n default: undefined,\n },\n\n timeFormat: {\n type: [String, Function] as PropType<`${TimeFormat}` | FormatFunction<DateTimePickerModelValue>>,\n default: undefined,\n },\n\n locale: {\n type: String,\n default: undefined,\n },\n\n yearFilter: {\n type: Function as PropType<FilterFunction<Date>>,\n default: undefined,\n },\n\n monthFilter: {\n type: Function as PropType<FilterFunction<Date>>,\n default: undefined,\n },\n\n dateFilter: {\n type: Function as PropType<FilterFunction<Date>>,\n default: undefined,\n },\n\n hoursFilter: {\n type: Function as PropType<FilterFunction<Date>>,\n default: undefined,\n },\n\n minutesFilter: {\n type: Function as PropType<FilterFunction<Date>>,\n default: undefined,\n },\n\n hourStep: {\n type: Number,\n default: 1,\n },\n\n minuteStep: {\n type: Number,\n default: 1,\n },\n\n variant: {\n type: String as PropType<`${InputBoxVariant}`>,\n default: undefined,\n },\n\n size: {\n type: String as PropType<`${InputBoxSize}`>,\n default: undefined,\n },\n\n anchor: {\n type: Object as PropType<ReferenceElement>,\n default: undefined,\n },\n\n label: {\n type: String,\n default: undefined,\n },\n\n hint: {\n type: String,\n default: undefined,\n },\n\n error: {\n type: [String, Boolean],\n default: undefined,\n },\n\n required: {\n type: Boolean,\n default: false,\n },\n\n readonly: {\n type: Boolean,\n default: false,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n 'update:modelValue',\n\n 'input',\n 'keydown',\n 'keyup',\n 'focus',\n 'blur',\n ],\n\n expose: [\n 'root',\n\n 'focus',\n 'blur',\n ],\n\n setup(props, context) {\n // Refs & Styles\n const root = ref<HTMLElement>();\n\n const rootStyles = computed(() => [\n 'or-date-time-picker-v3',\n ...Styles.DateTimePicker,\n ...props.variant === InputBoxVariant.Embedded ? ['grow'] : [],\n ]);\n\n const inputBox = ref<InstanceType<typeof OrInputBox>>();\n const inputBoxRoot = computed(() => inputBox.value?.root);\n\n const datePopover = ref<InstanceType<typeof OrPopover>>();\n const datePopoverState = computed(() => datePopover.value?.state);\n\n const datePopoverStyles = computed(() => [\n 'or-date-time-picker-date-popover-v3',\n ...(isMobile.value ? [] : Styles.DateTimePickerDatePopover),\n ]);\n\n const timePopover = ref<InstanceType<typeof OrPopover>>();\n const timePopoverState = computed(() => timePopover.value?.state);\n\n const timePopoverStyles = computed(() => [\n 'or-date-time-picker-time-popover-v3',\n ...Styles.DateTimePickerTimePopover,\n ]);\n\n // Options\n const resolvedDateFormat = useDateFormat(toRef(props, 'dateFormat'));\n const resolvedTimeFormat = useTimeFormat(toRef(props, 'timeFormat'));\n const resolvedLocale = useLocale(toRef(props, 'locale'));\n\n // State\n const initialValue = ref(props.modelValue ?? getCurrentDate());\n\n watch(() => props.modelValue, (value) => {\n initialValue.value = value ?? getCurrentDate();\n });\n\n const model = useProxyModelValue(toRef(props, 'modelValue'), context.emit);\n const draft = ref(model.value);\n\n watch(model, (value) => {\n draft.value = value;\n });\n\n const invalid = computed(() => {\n if (draft.value) {\n if (props.yearFilter && !props.yearFilter(draft.value)) {\n return true;\n }\n\n if (props.monthFilter && !props.monthFilter(draft.value)) {\n return true;\n }\n\n if (props.dateFilter && !props.dateFilter(draft.value)) {\n return true;\n }\n\n if (props.hoursFilter && !props.hoursFilter(draft.value)) {\n return true;\n }\n\n if (props.minutesFilter && !props.minutesFilter(draft.value)) {\n return true;\n }\n\n return false;\n }\n\n return true;\n });\n\n // Methods\n function apply(): void {\n model.value = draft.value;\n }\n\n function reset(): void {\n draft.value = model.value;\n }\n\n function toggleDatePopover(): void {\n if (!props.readonly && !props.disabled) {\n const popoverInstance = datePopover.value;\n\n if (popoverInstance) {\n if (datePopoverState.value === 'open') {\n (popoverInstance.close as () => void)();\n } else {\n (popoverInstance.open as () => void)();\n }\n }\n\n closeTimePopover();\n }\n }\n\n function toggleTimePopover(): void {\n if (!props.readonly && !props.disabled) {\n const popoverInstance = timePopover.value;\n\n if (popoverInstance) {\n if (timePopoverState.value === 'open') {\n (popoverInstance.close as () => void)();\n } else {\n (popoverInstance.open as () => void)();\n }\n }\n\n closeDatePopover();\n }\n }\n\n function closeDatePopover(): void {\n const popoverInstance = datePopover.value;\n\n if (popoverInstance) {\n (popoverInstance.close as () => void)();\n }\n }\n\n function closeTimePopover(): void {\n const popoverInstance = timePopover.value;\n\n if (popoverInstance) {\n (popoverInstance.close as () => void)();\n }\n }\n\n // Helpers\n const { isMobile } = useResponsive();\n\n return {\n root,\n rootStyles,\n\n inputBox,\n inputBoxRoot,\n\n datePopover,\n datePopoverState,\n datePopoverStyles,\n\n timePopover,\n timePopoverState,\n timePopoverStyles,\n\n resolvedDateFormat,\n resolvedTimeFormat,\n resolvedLocale,\n\n initialValue,\n\n model,\n draft,\n\n invalid,\n\n apply,\n reset,\n\n toggleDatePopover,\n toggleTimePopover,\n\n closeDatePopover,\n closeTimePopover,\n\n formatMobileDate,\n formatMobileTime,\n };\n },\n});\n</script>\n"],"names":["formatDate","value","format","locale","formatMobileDate","formatMobileTime","TimeFormat","formatTime","getCurrentDate","currentDate","scrollToElementWithinContainer","element","container","elementRect","containerRect","DateTimePickerDateControl","DateTimePickerDateControlPlaceholder","_sfc_main$8","defineComponent","props","context","root","ref","rootStyles","computed","Styles.DateTimePickerDateControl","placeholderStyles","Styles.DateTimePickerDateControlPlaceholder","model","useProxyModelValue","toRef","placeholder","useDateMask","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","_openBlock","_createElementBlock","_normalizeClass","_withModifiers","_toDisplayString","DateTimePickerDateSelect","DateTimePickerDateSelectButtonGroup","DateTimePickerDateSelectButtonGroupWeekdayItem","DateTimePickerDateSelectButtonGroupDateItem","DateTimePickerDateSelectButtonGroupCurrentDateItem","DateTimePickerDateSelectButtonGroupInRangeDateItem","_sfc_main$7","OrButton","Styles.DateTimePickerDateSelect","buttonGroupStyles","Styles.DateTimePickerDateSelectButtonGroup","buttonGroupWeekdayItemStyles","Styles.DateTimePickerDateSelectButtonGroupWeekdayItem","buttonGroupDateItemStyles","Styles.DateTimePickerDateSelectButtonGroupDateItem","buttonGroupCurrentDateItemStyles","Styles.DateTimePickerDateSelectButtonGroupCurrentDateItem","buttonGroupInRangeDateItemStyles","Styles.DateTimePickerDateSelectButtonGroupInRangeDateItem","dayOptions","monthStartDate","monthEndDate","calendarStartDate","calendarEndDate","options","formatWeekday","formatDay","_resolveComponent","_Fragment","_renderList","weekday","_createElementVNode","_createBlock","_component_OrButton","$event","DateTimePickerMobileControl","DateTimePickerMobileControlContent","_sfc_main$6","OrLabel","Styles.DateTimePickerMobileControl","contentStyles","Styles.DateTimePickerMobileControlContent","_createVNode","_component_OrLabel","_withCtx","DateTimePickerMonthSelect","_sfc_main$5","OrIcon","OrIconButton","OrMenu","OrMenuItem","yearButton","yearButtonRoot","_a","monthButton","monthButtonRoot","yearMenu","yearMenuState","monthMenu","monthMenuState","yearOptions","_value","index","length","monthOptions","goToNextMonth","goToPreviousMonth","formatYear","formatMonth","_component_OrIconButton","_hoisted_1","_createTextVNode","_component_OrIcon","_component_OrMenu","_component_OrMenuItem","DateTimePickerPopoverFooter","_sfc_main$4","Styles.DateTimePickerPopoverFooter","DateTimePickerPopoverHeader","_sfc_main$3","Styles.DateTimePickerPopoverHeader","DateTimePickerTimeControl","DateTimePickerTimeControlPlaceholder","_sfc_main$2","Styles.DateTimePickerTimeControl","Styles.DateTimePickerTimeControlPlaceholder","useTimeMask","DateTimePickerTimeSelect","DateTimePickerTimeSelectButtonGroup","DateTimePickerTimeSelectButtonGroupItem","_sfc_main$1","hoursContainer","minutesContainer","hoursButtons","minutesButtons","Styles.DateTimePickerTimeSelect","Styles.DateTimePickerTimeSelectButtonGroup","buttonGroupItemStyles","Styles.DateTimePickerTimeSelectButtonGroupItem","dayPeriod","watch","isActive","nextTick","activeHourButton","getActiveButton","hoursOptions","activeMinuteButton","minutesOptions","proxyTimeFormat","hourStep","minuteStep","formatHours","formatMinutes","sortElementsByPosition","elements","a","b","buttons","button","DateTimePicker","DateTimePickerDatePopover","DateTimePickerTimePopover","_sfc_main","OrDateTimePickerDateControl","OrDateTimePickerDateSelect","OrDateTimePickerMobileControl","OrDateTimePickerMonthSelect","OrDateTimePickerPopoverFooter","OrDateTimePickerPopoverHeader","OrDateTimePickerTimeControl","OrDateTimePickerTimeSelect","OrError","OrHint","OrInputBox","OrPopover","DropdownClose","DropdownOpen","Styles.DateTimePicker","InputBoxVariant","inputBox","inputBoxRoot","datePopover","datePopoverState","datePopoverStyles","isMobile","Styles.DateTimePickerDatePopover","timePopover","timePopoverState","timePopoverStyles","Styles.DateTimePickerTimePopover","resolvedDateFormat","useDateFormat","resolvedTimeFormat","useTimeFormat","resolvedLocale","useLocale","initialValue","draft","invalid","apply","reset","toggleDatePopover","popoverInstance","closeTimePopover","toggleTimePopover","closeDatePopover","useResponsive"],"mappings":"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"}
@@ -5,7 +5,7 @@ import { O as W } from "./OrError-B5ihH6-3.mjs";
5
5
  import { O as X } from "./OrHint-NvbZyURY.mjs";
6
6
  import { O as Y } from "./OrIconButton-BlHCLpeW.mjs";
7
7
  import { O as Z } from "./OrIcon-k8cyvh-D.mjs";
8
- import { O as M } from "./OrInputBox-6ciokFdU.mjs";
8
+ import { O as M } from "./OrInputBox-IAplgDFr.mjs";
9
9
  import { a as x } from "./OrInputBox.vue_vue_type_script_lang-q2L7rmth.mjs";
10
10
  import { O as _ } from "./OrLabel-DssheqEn.mjs";
11
11
  import { O as ee } from "./OrLoader-2SaTMxmZ.mjs";
@@ -319,4 +319,4 @@ export {
319
319
  Oe as O,
320
320
  D as a
321
321
  };
322
- //# sourceMappingURL=OrInput-DBcNZlkx.mjs.map
322
+ //# sourceMappingURL=OrInput-BVQvNlR1.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"OrInput-DBcNZlkx.mjs","sources":["../../../components/or-input-v3/src/styles.ts","../../../components/or-input-v3/src/types.ts","../../../components/or-input-v3/src/OrInput.vue"],"sourcesContent":["export const Input: string[] = [\n // Layout\n 'layout-column',\n\n // Spacing\n 'gap-xs',\n];\n\nexport const InputControl: string[] = [\n // Box\n 'flex-auto',\n\n // Typography\n 'typography-inherit',\n\n // Theme (placeholder)\n 'placeholder:theme-foreground-outline',\n 'dark:placeholder:theme-foreground-outline-dark',\n\n // Autofill hack,\n // disable (delay color change)\n 'autofill:transition-colors autofill:duration-[5000s]',\n // override background color using box-shadow\n 'autofill:shadow-[10px_0_1000px_theme(backgroundColor.primary-opacity-0-08)_inset]',\n 'dark:autofill:shadow-[0_0_0px_1000px_theme(backgroundColor.primary-opacity-0-08-dark)_inset]',\n];\n","import { ModelValue } from '@onereach/ui-components-common/types';\n\nexport type InputModelValue = ModelValue<string | number>;\n\nexport enum InputType {\n Text = 'text',\n Number = 'number',\n Password = 'password',\n Search = 'search',\n}\n\nexport enum InputMode {\n None = 'none',\n Text = 'text',\n Tel = 'tel',\n Url = 'url',\n Email = 'email',\n Numeric = 'numeric',\n Decimal = 'decimal',\n Search = 'search',\n}\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <template v-if=\"$slots.label || $slots.addon || label\">\n <OrLabel\n :control-id=\"attributes.id\"\n :variant=\"'input'\"\n :required=\"required\"\n :disabled=\"disabled\"\n >\n <slot name=\"label\">\n {{ label }}\n </slot>\n\n <template v-slot:addon>\n <slot name=\"addon\" />\n </template>\n </OrLabel>\n </template>\n\n <div class=\"layout-row gap-md md:gap-md\">\n <slot name=\"prepend\" />\n <OrInputBox\n :variant=\"variant\"\n :size=\"size\"\n :invalid=\"!!error\"\n :readonly=\"readonly || loading\"\n :disabled=\"disabled\"\n >\n <template\n v-if=\"$slots.prependInner\"\n v-slot:prepend\n >\n <slot name=\"prependInner\" />\n </template>\n <input\n :ref=\"'control'\"\n v-bind=\"attributes\"\n v-model.trim=\"model\"\n :class=\"controlStyles\"\n :name=\"name\"\n :type=\"type === 'password' && disclosed ? 'text' : type\"\n :inputmode=\"inputmode\"\n :autocomplete=\"autocomplete\"\n :placeholder=\"placeholder\"\n :required=\"required\"\n :readonly=\"readonly || loading\"\n :disabled=\"disabled\"\n @input=\"$emit('input', $event)\"\n @keydown=\"$emit('keydown', $event)\"\n @keyup=\"$emit('keyup', $event)\"\n @focus=\"$emit('focus', $event)\"\n @blur=\"$emit('blur', $event)\"\n >\n\n <template\n v-if=\"loading || type === 'password' || type === 'search' || $slots.appendInner\"\n v-slot:addon\n >\n <slot name=\"appendInner\">\n <template v-if=\"loading\">\n <OrLoader\n :variant=\"'circular'\"\n :color=\"error ? 'danger' : 'primary'\"\n :size=\"isMobile ? 'm' : 's'\"\n />\n </template>\n\n <template v-else>\n <template v-if=\"type === 'password'\">\n <OrIconButton\n :icon=\"{ icon: disclosed ? 'visibility' : 'visibility_off', variant: 'filled' }\"\n :size=\"'l'\"\n :color=\"'inherit'\"\n :disabled=\"disabled\"\n @click.stop=\"disclosed = !disclosed\"\n />\n </template>\n\n <template v-if=\"type === 'search'\">\n <template v-if=\"modelValue && !readonly\">\n <OrIconButton\n :icon=\"'close'\"\n :color=\"'inherit'\"\n :size=\"'l'\"\n :disabled=\"disabled\"\n @click.stop=\"clear()\"\n />\n </template>\n\n <template v-else>\n <OrIcon\n :icon=\"'search'\"\n :size=\"'l'\"\n :variant=\"'outlined'\"\n />\n </template>\n </template>\n </template>\n </slot>\n </template>\n </OrInputBox>\n <slot name=\"append\" />\n </div>\n <template v-if=\"$slots.hint || hint || maxLength\">\n <OrHint\n v-show=\"!error\"\n :disabled=\"disabled\"\n >\n <slot name=\"hint\">\n {{ hint }}\n </slot>\n\n <template\n v-if=\"maxLength\"\n v-slot:addon\n >\n {{ length }} / {{ maxLength }}\n </template>\n </OrHint>\n </template>\n\n <OrError\n v-show=\"typeof error === 'string' && error.length > 0\"\n :disabled=\"disabled\"\n >\n {{ error }}\n\n <template\n v-if=\"maxLength\"\n v-slot:addon\n >\n {{ length }} / {{ maxLength }}\n </template>\n </OrError>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { PropType, computed, defineComponent, reactive, ref, toRef } from 'vue';\nimport { useControlAttributes, useIdAttribute, useProxyModelValue, useResponsive, useValidationAttributes } from '@onereach/ui-components-common/hooks';\nimport { OrErrorV3 as OrError } from '@onereach/ui-components.or-error-v3';\nimport { OrHintV3 as OrHint } from '@onereach/ui-components.or-hint-v3';\nimport { OrIconButtonV3 as OrIconButton } from '@onereach/ui-components.or-icon-button-v3';\nimport { OrIconV3 as OrIcon } from '@onereach/ui-components.or-icon-v3';\nimport { InputBoxSize, InputBoxVariant, OrInputBoxV3 as OrInputBox } from '@onereach/ui-components.or-input-box-v3';\nimport { OrLabelV3 as OrLabel } from '@onereach/ui-components.or-label-v3';\nimport { OrLoaderV3 as OrLoader } from '@onereach/ui-components.or-loader-v3';\nimport * as Styles from './styles';\nimport { InputMode, InputModelValue, InputType } from './types';\n\nexport default defineComponent({\n name: 'OrInput',\n\n components: {\n OrError,\n OrHint,\n OrIcon,\n OrIconButton,\n OrInputBox,\n OrLabel,\n OrLoader,\n },\n\n model: {\n prop: 'modelValue',\n event: 'update:modelValue',\n },\n\n props: {\n modelValue: {\n type: undefined as unknown as PropType<InputModelValue>,\n default: undefined,\n },\n\n name: {\n type: String,\n default: undefined,\n },\n\n type: {\n type: String as PropType<`${InputType}`>,\n default: () => InputType.Text,\n },\n\n autocomplete: {\n type: String,\n default: 'off',\n },\n\n inputmode: {\n type: String as PropType<`${InputMode}`>,\n default: InputMode.Text,\n },\n\n variant: {\n type: String as PropType<`${InputBoxVariant}`>,\n default: undefined,\n },\n\n size: {\n type: String as PropType<`${InputBoxSize}`>,\n default: undefined,\n },\n\n label: {\n type: String,\n default: undefined,\n },\n\n placeholder: {\n type: String,\n default: undefined,\n },\n\n hint: {\n type: String,\n default: undefined,\n },\n\n error: {\n type: [String, Boolean],\n default: undefined,\n },\n\n loading: {\n type: Boolean,\n default: false,\n },\n\n required: {\n type: Boolean,\n default: false,\n },\n\n readonly: {\n type: Boolean,\n default: false,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n 'update:modelValue',\n\n 'input',\n 'keydown',\n 'keyup',\n 'focus',\n 'blur',\n ],\n\n expose: [\n 'root',\n\n 'clear',\n 'focus',\n 'blur',\n ],\n\n setup(props, context) {\n const attributes = reactive({\n id: useIdAttribute(),\n ...useControlAttributes(),\n ...useValidationAttributes(),\n });\n\n // Refs & Styles\n const root = ref<HTMLElement>();\n\n const rootStyles = computed(() => [\n 'or-input-v3',\n ...Styles.Input,\n ...props.variant === InputBoxVariant.Embedded ? ['grow'] : [],\n ]);\n\n const control = ref<HTMLInputElement>();\n\n const controlStyles = computed(() => [\n ...Styles.InputControl,\n ]);\n\n // State\n const model = useProxyModelValue(toRef(props, 'modelValue'), context.emit);\n const disclosed = ref(false);\n\n const length = computed(() => {\n return model.value?.toString().length ?? 0;\n });\n\n const maxLength = computed(() => {\n return attributes.maxlength;\n });\n\n // Methods\n function clear(): void {\n model.value = undefined;\n }\n\n function focus(): void {\n control.value?.focus();\n }\n\n function blur(): void {\n control.value?.blur();\n }\n\n // Helpers\n const { isMobile } = useResponsive();\n\n return {\n attributes,\n\n root,\n rootStyles,\n\n control,\n controlStyles,\n\n model,\n disclosed,\n\n length,\n maxLength,\n\n clear,\n focus,\n blur,\n\n isMobile,\n };\n },\n});\n</script>\n\n<style scoped>\ninput {\n min-width: 0;\n background: none;\n outline: none;\n}\n\ninput[type=\"search\"]::-webkit-search-cancel-button {\n display: none;\n}\n</style>\n"],"names":["Input","InputControl","InputType","InputMode","_sfc_main","defineComponent","OrError","OrHint","OrIcon","OrIconButton","OrInputBox","OrLabel","OrLoader","props","context","attributes","reactive","useIdAttribute","useControlAttributes","useValidationAttributes","root","ref","rootStyles","computed","Styles.Input","InputBoxVariant","control","controlStyles","Styles.InputControl","model","useProxyModelValue","toRef","disclosed","length","_a","maxLength","clear","focus","blur","isMobile","useResponsive","_resolveComponent","_openBlock","_createElementBlock","_normalizeClass","_ctx","_createBlock","_component_OrLabel","_renderSlot","_createCommentVNode","_createElementVNode","_hoisted_1","_createVNode","_component_OrInputBox","_mergeProps","_cache","$event","_withCtx","_component_OrLoader","_Fragment","_component_OrIconButton","_withModifiers","_component_OrIcon","_component_OrHint","_createSlots","_withDirectives","_component_OrError"],"mappings":"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"}
1
+ {"version":3,"file":"OrInput-BVQvNlR1.mjs","sources":["../../../components/or-input-v3/src/styles.ts","../../../components/or-input-v3/src/types.ts","../../../components/or-input-v3/src/OrInput.vue"],"sourcesContent":["export const Input: string[] = [\n // Layout\n 'layout-column',\n\n // Spacing\n 'gap-xs',\n];\n\nexport const InputControl: string[] = [\n // Box\n 'flex-auto',\n\n // Typography\n 'typography-inherit',\n\n // Theme (placeholder)\n 'placeholder:theme-foreground-outline',\n 'dark:placeholder:theme-foreground-outline-dark',\n\n // Autofill hack,\n // disable (delay color change)\n 'autofill:transition-colors autofill:duration-[5000s]',\n // override background color using box-shadow\n 'autofill:shadow-[10px_0_1000px_theme(backgroundColor.primary-opacity-0-08)_inset]',\n 'dark:autofill:shadow-[0_0_0px_1000px_theme(backgroundColor.primary-opacity-0-08-dark)_inset]',\n];\n","import { ModelValue } from '@onereach/ui-components-common/types';\n\nexport type InputModelValue = ModelValue<string | number>;\n\nexport enum InputType {\n Text = 'text',\n Number = 'number',\n Password = 'password',\n Search = 'search',\n}\n\nexport enum InputMode {\n None = 'none',\n Text = 'text',\n Tel = 'tel',\n Url = 'url',\n Email = 'email',\n Numeric = 'numeric',\n Decimal = 'decimal',\n Search = 'search',\n}\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <template v-if=\"$slots.label || $slots.addon || label\">\n <OrLabel\n :control-id=\"attributes.id\"\n :variant=\"'input'\"\n :required=\"required\"\n :disabled=\"disabled\"\n >\n <slot name=\"label\">\n {{ label }}\n </slot>\n\n <template v-slot:addon>\n <slot name=\"addon\" />\n </template>\n </OrLabel>\n </template>\n\n <div class=\"layout-row gap-md md:gap-md\">\n <slot name=\"prepend\" />\n <OrInputBox\n :variant=\"variant\"\n :size=\"size\"\n :invalid=\"!!error\"\n :readonly=\"readonly || loading\"\n :disabled=\"disabled\"\n >\n <template\n v-if=\"$slots.prependInner\"\n v-slot:prepend\n >\n <slot name=\"prependInner\" />\n </template>\n <input\n :ref=\"'control'\"\n v-bind=\"attributes\"\n v-model.trim=\"model\"\n :class=\"controlStyles\"\n :name=\"name\"\n :type=\"type === 'password' && disclosed ? 'text' : type\"\n :inputmode=\"inputmode\"\n :autocomplete=\"autocomplete\"\n :placeholder=\"placeholder\"\n :required=\"required\"\n :readonly=\"readonly || loading\"\n :disabled=\"disabled\"\n @input=\"$emit('input', $event)\"\n @keydown=\"$emit('keydown', $event)\"\n @keyup=\"$emit('keyup', $event)\"\n @focus=\"$emit('focus', $event)\"\n @blur=\"$emit('blur', $event)\"\n >\n\n <template\n v-if=\"loading || type === 'password' || type === 'search' || $slots.appendInner\"\n v-slot:addon\n >\n <slot name=\"appendInner\">\n <template v-if=\"loading\">\n <OrLoader\n :variant=\"'circular'\"\n :color=\"error ? 'danger' : 'primary'\"\n :size=\"isMobile ? 'm' : 's'\"\n />\n </template>\n\n <template v-else>\n <template v-if=\"type === 'password'\">\n <OrIconButton\n :icon=\"{ icon: disclosed ? 'visibility' : 'visibility_off', variant: 'filled' }\"\n :size=\"'l'\"\n :color=\"'inherit'\"\n :disabled=\"disabled\"\n @click.stop=\"disclosed = !disclosed\"\n />\n </template>\n\n <template v-if=\"type === 'search'\">\n <template v-if=\"modelValue && !readonly\">\n <OrIconButton\n :icon=\"'close'\"\n :color=\"'inherit'\"\n :size=\"'l'\"\n :disabled=\"disabled\"\n @click.stop=\"clear()\"\n />\n </template>\n\n <template v-else>\n <OrIcon\n :icon=\"'search'\"\n :size=\"'l'\"\n :variant=\"'outlined'\"\n />\n </template>\n </template>\n </template>\n </slot>\n </template>\n </OrInputBox>\n <slot name=\"append\" />\n </div>\n <template v-if=\"$slots.hint || hint || maxLength\">\n <OrHint\n v-show=\"!error\"\n :disabled=\"disabled\"\n >\n <slot name=\"hint\">\n {{ hint }}\n </slot>\n\n <template\n v-if=\"maxLength\"\n v-slot:addon\n >\n {{ length }} / {{ maxLength }}\n </template>\n </OrHint>\n </template>\n\n <OrError\n v-show=\"typeof error === 'string' && error.length > 0\"\n :disabled=\"disabled\"\n >\n {{ error }}\n\n <template\n v-if=\"maxLength\"\n v-slot:addon\n >\n {{ length }} / {{ maxLength }}\n </template>\n </OrError>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { PropType, computed, defineComponent, reactive, ref, toRef } from 'vue';\nimport { useControlAttributes, useIdAttribute, useProxyModelValue, useResponsive, useValidationAttributes } from '@onereach/ui-components-common/hooks';\nimport { OrErrorV3 as OrError } from '@onereach/ui-components.or-error-v3';\nimport { OrHintV3 as OrHint } from '@onereach/ui-components.or-hint-v3';\nimport { OrIconButtonV3 as OrIconButton } from '@onereach/ui-components.or-icon-button-v3';\nimport { OrIconV3 as OrIcon } from '@onereach/ui-components.or-icon-v3';\nimport { InputBoxSize, InputBoxVariant, OrInputBoxV3 as OrInputBox } from '@onereach/ui-components.or-input-box-v3';\nimport { OrLabelV3 as OrLabel } from '@onereach/ui-components.or-label-v3';\nimport { OrLoaderV3 as OrLoader } from '@onereach/ui-components.or-loader-v3';\nimport * as Styles from './styles';\nimport { InputMode, InputModelValue, InputType } from './types';\n\nexport default defineComponent({\n name: 'OrInput',\n\n components: {\n OrError,\n OrHint,\n OrIcon,\n OrIconButton,\n OrInputBox,\n OrLabel,\n OrLoader,\n },\n\n model: {\n prop: 'modelValue',\n event: 'update:modelValue',\n },\n\n props: {\n modelValue: {\n type: undefined as unknown as PropType<InputModelValue>,\n default: undefined,\n },\n\n name: {\n type: String,\n default: undefined,\n },\n\n type: {\n type: String as PropType<`${InputType}`>,\n default: () => InputType.Text,\n },\n\n autocomplete: {\n type: String,\n default: 'off',\n },\n\n inputmode: {\n type: String as PropType<`${InputMode}`>,\n default: InputMode.Text,\n },\n\n variant: {\n type: String as PropType<`${InputBoxVariant}`>,\n default: undefined,\n },\n\n size: {\n type: String as PropType<`${InputBoxSize}`>,\n default: undefined,\n },\n\n label: {\n type: String,\n default: undefined,\n },\n\n placeholder: {\n type: String,\n default: undefined,\n },\n\n hint: {\n type: String,\n default: undefined,\n },\n\n error: {\n type: [String, Boolean],\n default: undefined,\n },\n\n loading: {\n type: Boolean,\n default: false,\n },\n\n required: {\n type: Boolean,\n default: false,\n },\n\n readonly: {\n type: Boolean,\n default: false,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n 'update:modelValue',\n\n 'input',\n 'keydown',\n 'keyup',\n 'focus',\n 'blur',\n ],\n\n expose: [\n 'root',\n\n 'clear',\n 'focus',\n 'blur',\n ],\n\n setup(props, context) {\n const attributes = reactive({\n id: useIdAttribute(),\n ...useControlAttributes(),\n ...useValidationAttributes(),\n });\n\n // Refs & Styles\n const root = ref<HTMLElement>();\n\n const rootStyles = computed(() => [\n 'or-input-v3',\n ...Styles.Input,\n ...props.variant === InputBoxVariant.Embedded ? ['grow'] : [],\n ]);\n\n const control = ref<HTMLInputElement>();\n\n const controlStyles = computed(() => [\n ...Styles.InputControl,\n ]);\n\n // State\n const model = useProxyModelValue(toRef(props, 'modelValue'), context.emit);\n const disclosed = ref(false);\n\n const length = computed(() => {\n return model.value?.toString().length ?? 0;\n });\n\n const maxLength = computed(() => {\n return attributes.maxlength;\n });\n\n // Methods\n function clear(): void {\n model.value = undefined;\n }\n\n function focus(): void {\n control.value?.focus();\n }\n\n function blur(): void {\n control.value?.blur();\n }\n\n // Helpers\n const { isMobile } = useResponsive();\n\n return {\n attributes,\n\n root,\n rootStyles,\n\n control,\n controlStyles,\n\n model,\n disclosed,\n\n length,\n maxLength,\n\n clear,\n focus,\n blur,\n\n isMobile,\n };\n },\n});\n</script>\n\n<style scoped>\ninput {\n min-width: 0;\n background: none;\n outline: none;\n}\n\ninput[type=\"search\"]::-webkit-search-cancel-button {\n display: none;\n}\n</style>\n"],"names":["Input","InputControl","InputType","InputMode","_sfc_main","defineComponent","OrError","OrHint","OrIcon","OrIconButton","OrInputBox","OrLabel","OrLoader","props","context","attributes","reactive","useIdAttribute","useControlAttributes","useValidationAttributes","root","ref","rootStyles","computed","Styles.Input","InputBoxVariant","control","controlStyles","Styles.InputControl","model","useProxyModelValue","toRef","disclosed","length","_a","maxLength","clear","focus","blur","isMobile","useResponsive","_resolveComponent","_openBlock","_createElementBlock","_normalizeClass","_ctx","_createBlock","_component_OrLabel","_renderSlot","_createCommentVNode","_createElementVNode","_hoisted_1","_createVNode","_component_OrInputBox","_mergeProps","_cache","$event","_withCtx","_component_OrLoader","_Fragment","_component_OrIconButton","_withModifiers","_component_OrIcon","_component_OrHint","_createSlots","_withDirectives","_component_OrError"],"mappings":"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"}