diff --git a/frappe-ui b/frappe-ui index 136f2715..02fc126f 160000 --- a/frappe-ui +++ b/frappe-ui @@ -1 +1 @@ -Subproject commit 136f2715c2bd22b7390a2a02f1849a147d16b191 +Subproject commit 02fc126fd5c49f0ecf6cce117585f89c4ea585c3 diff --git a/frontend/components.d.ts b/frontend/components.d.ts new file mode 100644 index 00000000..98e64668 --- /dev/null +++ b/frontend/components.d.ts @@ -0,0 +1,286 @@ +/* eslint-disable */ +// @ts-nocheck +// Generated by unplugin-vue-components +// Read more: https://github.com/vuejs/core/pull/3399 +// biome-ignore lint: disable +export {} + +/* prettier-ignore */ +declare module 'vue' { + export interface GlobalComponents { + AboutModal: typeof import('./src/components/Modals/AboutModal.vue')['default'] + Activities: typeof import('./src/components/Activities/Activities.vue')['default'] + ActivityHeader: typeof import('./src/components/Activities/ActivityHeader.vue')['default'] + ActivityIcon: typeof import('./src/components/Icons/ActivityIcon.vue')['default'] + AddChartModal: typeof import('./src/components/Dashboard/AddChartModal.vue')['default'] + AddExistingUserModal: typeof import('./src/components/Modals/AddExistingUserModal.vue')['default'] + AddressIcon: typeof import('./src/components/Icons/AddressIcon.vue')['default'] + AddressModal: typeof import('./src/components/Modals/AddressModal.vue')['default'] + AllModals: typeof import('./src/components/Activities/AllModals.vue')['default'] + AppHeader: typeof import('./src/components/Layouts/AppHeader.vue')['default'] + Apps: typeof import('./src/components/Apps.vue')['default'] + AppsIcon: typeof import('./src/components/Icons/AppsIcon.vue')['default'] + AppSidebar: typeof import('./src/components/Layouts/AppSidebar.vue')['default'] + ArrowUpRightIcon: typeof import('./src/components/Icons/ArrowUpRightIcon.vue')['default'] + AscendingIcon: typeof import('./src/components/Icons/AscendingIcon.vue')['default'] + AssigneeRules: typeof import('./src/components/Settings/AssignmentRules/AssigneeRules.vue')['default'] + AssigneeSearch: typeof import('./src/components/Settings/AssignmentRules/AssigneeSearch.vue')['default'] + AssignmentModal: typeof import('./src/components/Modals/AssignmentModal.vue')['default'] + AssignmentRuleListItem: typeof import('./src/components/Settings/AssignmentRules/AssignmentRuleListItem.vue')['default'] + AssignmentRulePage: typeof import('./src/components/Settings/AssignmentRules/AssignmentRulePage.vue')['default'] + AssignmentRules: typeof import('./src/components/Settings/AssignmentRules/AssignmentRules.vue')['default'] + AssignmentRulesList: typeof import('./src/components/Settings/AssignmentRules/AssignmentRulesList.vue')['default'] + AssignmentRulesSection: typeof import('./src/components/Settings/AssignmentRules/AssignmentRulesSection.vue')['default'] + AssignmentRuleView: typeof import('./src/components/Settings/AssignmentRules/AssignmentRuleView.vue')['default'] + AssignmentSchedule: typeof import('./src/components/Settings/AssignmentRules/AssignmentSchedule.vue')['default'] + AssignmentScheduleItem: typeof import('./src/components/Settings/AssignmentRules/AssignmentScheduleItem.vue')['default'] + AssignTo: typeof import('./src/components/AssignTo.vue')['default'] + AssignToBody: typeof import('./src/components/AssignToBody.vue')['default'] + AttachmentArea: typeof import('./src/components/Activities/AttachmentArea.vue')['default'] + AttachmentIcon: typeof import('./src/components/Icons/AttachmentIcon.vue')['default'] + AttachmentItem: typeof import('./src/components/AttachmentItem.vue')['default'] + Attendee: typeof import('./src/components/Calendar/Attendee.vue')['default'] + AudioPlayer: typeof import('./src/components/Activities/AudioPlayer.vue')['default'] + Autocomplete: typeof import('./src/components/frappe-ui/Autocomplete.vue')['default'] + AvatarIcon: typeof import('./src/components/Icons/AvatarIcon.vue')['default'] + BrandLogo: typeof import('./src/components/BrandLogo.vue')['default'] + BrandSettings: typeof import('./src/components/Settings/General/BrandSettings.vue')['default'] + BulkDeleteLinkedDocModal: typeof import('./src/components/BulkDeleteLinkedDocModal.vue')['default'] + CalendarEventPanel: typeof import('./src/components/Calendar/CalendarEventPanel.vue')['default'] + CalendarIcon: typeof import('./src/components/Icons/CalendarIcon.vue')['default'] + CallArea: typeof import('./src/components/Activities/CallArea.vue')['default'] + CallLogDetailModal: typeof import('./src/components/Modals/CallLogDetailModal.vue')['default'] + CallLogModal: typeof import('./src/components/Modals/CallLogModal.vue')['default'] + CallLogsListView: typeof import('./src/components/ListViews/CallLogsListView.vue')['default'] + CallUI: typeof import('./src/components/Telephony/CallUI.vue')['default'] + CameraIcon: typeof import('./src/components/Icons/CameraIcon.vue')['default'] + CertificateIcon: typeof import('./src/components/Icons/CertificateIcon.vue')['default'] + CFCondition: typeof import('./src/components/ConditionsFilter/CFCondition.vue')['default'] + CFConditions: typeof import('./src/components/ConditionsFilter/CFConditions.vue')['default'] + ChangePasswordModal: typeof import('./src/components/Modals/ChangePasswordModal.vue')['default'] + CheckCircleIcon: typeof import('./src/components/Icons/CheckCircleIcon.vue')['default'] + CheckIcon: typeof import('./src/components/Icons/CheckIcon.vue')['default'] + CollapseSidebar: typeof import('./src/components/Icons/CollapseSidebar.vue')['default'] + Column: typeof import('./src/components/FieldLayout/Column.vue')['default'] + ColumnSettings: typeof import('./src/components/ColumnSettings.vue')['default'] + ColumnsIcon: typeof import('./src/components/Icons/ColumnsIcon.vue')['default'] + CommentArea: typeof import('./src/components/Activities/CommentArea.vue')['default'] + CommentBox: typeof import('./src/components/CommentBox.vue')['default'] + CommentIcon: typeof import('./src/components/Icons/CommentIcon.vue')['default'] + CommunicationArea: typeof import('./src/components/CommunicationArea.vue')['default'] + ContactIcon: typeof import('./src/components/Icons/ContactIcon.vue')['default'] + ContactModal: typeof import('./src/components/Modals/ContactModal.vue')['default'] + ContactsIcon: typeof import('./src/components/Icons/ContactsIcon.vue')['default'] + ContactsListView: typeof import('./src/components/ListViews/ContactsListView.vue')['default'] + ConvertIcon: typeof import('./src/components/Icons/ConvertIcon.vue')['default'] + ConvertToDealModal: typeof import('./src/components/Modals/ConvertToDealModal.vue')['default'] + CountUpTimer: typeof import('./src/components/CountUpTimer.vue')['default'] + CreateDocumentModal: typeof import('./src/components/Modals/CreateDocumentModal.vue')['default'] + CRMLogo: typeof import('./src/components/Icons/CRMLogo.vue')['default'] + CurrencySettings: typeof import('./src/components/Settings/General/CurrencySettings.vue')['default'] + CustomActions: typeof import('./src/components/CustomActions.vue')['default'] + DashboardGrid: typeof import('./src/components/Dashboard/DashboardGrid.vue')['default'] + DashboardIcon: typeof import('./src/components/Icons/DashboardIcon.vue')['default'] + DashboardItem: typeof import('./src/components/Dashboard/DashboardItem.vue')['default'] + DataFields: typeof import('./src/components/Activities/DataFields.vue')['default'] + DataFieldsModal: typeof import('./src/components/Modals/DataFieldsModal.vue')['default'] + DealModal: typeof import('./src/components/Modals/DealModal.vue')['default'] + DealsIcon: typeof import('./src/components/Icons/DealsIcon.vue')['default'] + DealsListView: typeof import('./src/components/ListViews/DealsListView.vue')['default'] + DeclinedCallIcon: typeof import('./src/components/Icons/DeclinedCallIcon.vue')['default'] + DeleteLinkedDocModal: typeof import('./src/components/DeleteLinkedDocModal.vue')['default'] + DescriptionIcon: typeof import('./src/components/Icons/DescriptionIcon.vue')['default'] + DesendingIcon: typeof import('./src/components/Icons/DesendingIcon.vue')['default'] + DesktopLayout: typeof import('./src/components/Layouts/DesktopLayout.vue')['default'] + DetailsIcon: typeof import('./src/components/Icons/DetailsIcon.vue')['default'] + DialpadIcon: typeof import('./src/components/Icons/DialpadIcon.vue')['default'] + DocumentIcon: typeof import('./src/components/Icons/DocumentIcon.vue')['default'] + DotIcon: typeof import('./src/components/Icons/DotIcon.vue')['default'] + DoubleCheckIcon: typeof import('./src/components/Icons/DoubleCheckIcon.vue')['default'] + DragIcon: typeof import('./src/components/Icons/DragIcon.vue')['default'] + DragVerticalIcon: typeof import('./src/components/Icons/DragVerticalIcon.vue')['default'] + DropdownItem: typeof import('./src/components/DropdownItem.vue')['default'] + DuplicateIcon: typeof import('./src/components/Icons/DuplicateIcon.vue')['default'] + DurationIcon: typeof import('./src/components/Icons/DurationIcon.vue')['default'] + EditEmailTemplate: typeof import('./src/components/Settings/EmailTemplate/EditEmailTemplate.vue')['default'] + EditIcon: typeof import('./src/components/Icons/EditIcon.vue')['default'] + EditValueModal: typeof import('./src/components/Modals/EditValueModal.vue')['default'] + Email2Icon: typeof import('./src/components/Icons/Email2Icon.vue')['default'] + EmailAccountCard: typeof import('./src/components/Settings/EmailAccountCard.vue')['default'] + EmailAccountList: typeof import('./src/components/Settings/EmailAccountList.vue')['default'] + EmailAdd: typeof import('./src/components/Settings/EmailAdd.vue')['default'] + EmailArea: typeof import('./src/components/Activities/EmailArea.vue')['default'] + EmailAtIcon: typeof import('./src/components/Icons/EmailAtIcon.vue')['default'] + EmailConfig: typeof import('./src/components/Settings/EmailConfig.vue')['default'] + EmailContent: typeof import('./src/components/Activities/EmailContent.vue')['default'] + EmailEdit: typeof import('./src/components/Settings/EmailEdit.vue')['default'] + EmailEditor: typeof import('./src/components/EmailEditor.vue')['default'] + EmailIcon: typeof import('./src/components/Icons/EmailIcon.vue')['default'] + EmailMultiSelect: typeof import('./src/components/Controls/EmailMultiSelect.vue')['default'] + EmailProviderIcon: typeof import('./src/components/Settings/EmailProviderIcon.vue')['default'] + EmailTemplateIcon: typeof import('./src/components/Icons/EmailTemplateIcon.vue')['default'] + EmailTemplatePage: typeof import('./src/components/Settings/EmailTemplate/EmailTemplatePage.vue')['default'] + EmailTemplates: typeof import('./src/components/Settings/EmailTemplate/EmailTemplates.vue')['default'] + EmailTemplateSelectorModal: typeof import('./src/components/Modals/EmailTemplateSelectorModal.vue')['default'] + ERPNextIcon: typeof import('./src/components/Icons/ERPNextIcon.vue')['default'] + ERPNextSettings: typeof import('./src/components/Settings/ERPNextSettings.vue')['default'] + ErrorPage: typeof import('./src/components/ErrorPage.vue')['default'] + EventArea: typeof import('./src/components/Activities/EventArea.vue')['default'] + EventIcon: typeof import('./src/components/Icons/EventIcon.vue')['default'] + EventModal: typeof import('./src/components/Modals/EventModal.vue')['default'] + ExotelCallUI: typeof import('./src/components/Telephony/ExotelCallUI.vue')['default'] + ExportIcon: typeof import('./src/components/Icons/ExportIcon.vue')['default'] + ExternalLinkIcon: typeof import('./src/components/Icons/ExternalLinkIcon.vue')['default'] + FadedScrollableDiv: typeof import('./src/components/FadedScrollableDiv.vue')['default'] + Field: typeof import('./src/components/FieldLayout/Field.vue')['default'] + FieldLayout: typeof import('./src/components/FieldLayout/FieldLayout.vue')['default'] + FieldLayoutEditor: typeof import('./src/components/FieldLayoutEditor.vue')['default'] + FileAudioIcon: typeof import('./src/components/Icons/FileAudioIcon.vue')['default'] + FileIcon: typeof import('./src/components/Icons/FileIcon.vue')['default'] + FileImageIcon: typeof import('./src/components/Icons/FileImageIcon.vue')['default'] + FileSpreadsheetIcon: typeof import('./src/components/Icons/FileSpreadsheetIcon.vue')['default'] + FilesUploader: typeof import('./src/components/FilesUploader/FilesUploader.vue')['default'] + FilesUploaderArea: typeof import('./src/components/FilesUploader/FilesUploaderArea.vue')['default'] + FileTextIcon: typeof import('./src/components/Icons/FileTextIcon.vue')['default'] + FileTypeIcon: typeof import('./src/components/Icons/FileTypeIcon.vue')['default'] + FileVideoIcon: typeof import('./src/components/Icons/FileVideoIcon.vue')['default'] + Filter: typeof import('./src/components/Filter.vue')['default'] + FilterIcon: typeof import('./src/components/Icons/FilterIcon.vue')['default'] + FormattedInput: typeof import('./src/components/Controls/FormattedInput.vue')['default'] + FrappeCloudIcon: typeof import('./src/components/Icons/FrappeCloudIcon.vue')['default'] + GenderIcon: typeof import('./src/components/Icons/GenderIcon.vue')['default'] + GeneralSettings: typeof import('./src/components/Settings/General/GeneralSettings.vue')['default'] + GeneralSettingsPage: typeof import('./src/components/Settings/General/GeneralSettingsPage.vue')['default'] + GlobalModals: typeof import('./src/components/Modals/GlobalModals.vue')['default'] + GoogleIcon: typeof import('./src/components/Icons/GoogleIcon.vue')['default'] + Grid: typeof import('./src/components/Controls/Grid.vue')['default'] + GridFieldsEditorModal: typeof import('./src/components/Controls/GridFieldsEditorModal.vue')['default'] + GridRowFieldsModal: typeof import('./src/components/Controls/GridRowFieldsModal.vue')['default'] + GridRowModal: typeof import('./src/components/Controls/GridRowModal.vue')['default'] + GroupBy: typeof import('./src/components/GroupBy.vue')['default'] + GroupByIcon: typeof import('./src/components/Icons/GroupByIcon.vue')['default'] + HeartIcon: typeof import('./src/components/Icons/HeartIcon.vue')['default'] + HelpdeskIcon: typeof import('./src/components/Icons/HelpdeskIcon.vue')['default'] + HelpdeskSettings: typeof import('./src/components/Settings/HelpdeskSettings.vue')['default'] + HelpIcon: typeof import('./src/components/Icons/HelpIcon.vue')['default'] + HomeActions: typeof import('./src/components/Settings/General/HomeActions.vue')['default'] + Icon: typeof import('./src/components/Icon.vue')['default'] + IconPicker: typeof import('./src/components/IconPicker.vue')['default'] + ImageUploader: typeof import('./src/components/Controls/ImageUploader.vue')['default'] + InboundCallIcon: typeof import('./src/components/Icons/InboundCallIcon.vue')['default'] + InboxIcon: typeof import('./src/components/Icons/InboxIcon.vue')['default'] + IndicatorIcon: typeof import('./src/components/Icons/IndicatorIcon.vue')['default'] + InviteIcon: typeof import('./src/components/Icons/InviteIcon.vue')['default'] + InviteUserPage: typeof import('./src/components/Settings/InviteUserPage.vue')['default'] + KanbanIcon: typeof import('./src/components/Icons/KanbanIcon.vue')['default'] + KanbanSettings: typeof import('./src/components/Kanban/KanbanSettings.vue')['default'] + KanbanView: typeof import('./src/components/Kanban/KanbanView.vue')['default'] + KeyboardShortcut: typeof import('./src/components/KeyboardShortcut.vue')['default'] + LayoutHeader: typeof import('./src/components/LayoutHeader.vue')['default'] + LeadModal: typeof import('./src/components/Modals/LeadModal.vue')['default'] + LeadsIcon: typeof import('./src/components/Icons/LeadsIcon.vue')['default'] + LeadsListView: typeof import('./src/components/ListViews/LeadsListView.vue')['default'] + LightningIcon: typeof import('./src/components/Icons/LightningIcon.vue')['default'] + Link: typeof import('./src/components/Controls/Link.vue')['default'] + LinkedDocsListView: typeof import('./src/components/ListViews/LinkedDocsListView.vue')['default'] + LinkIcon: typeof import('./src/components/Icons/LinkIcon.vue')['default'] + ListBulkActions: typeof import('./src/components/ListBulkActions.vue')['default'] + ListIcon: typeof import('./src/components/Icons/ListIcon.vue')['default'] + ListRows: typeof import('./src/components/ListViews/ListRows.vue')['default'] + LoadingIndicator: typeof import('./src/components/Icons/LoadingIndicator.vue')['default'] + LostReasonModal: typeof import('./src/components/Modals/LostReasonModal.vue')['default'] + LucideCalendar: typeof import('~icons/lucide/calendar')['default'] + LucideChevronLeft: typeof import('~icons/lucide/chevron-left')['default'] + LucideCopy: typeof import('~icons/lucide/copy')['default'] + LucideTrash2: typeof import('~icons/lucide/trash2')['default'] + LucideX: typeof import('~icons/lucide/x')['default'] + MarkAsDoneIcon: typeof import('./src/components/Icons/MarkAsDoneIcon.vue')['default'] + MaximizeIcon: typeof import('./src/components/Icons/MaximizeIcon.vue')['default'] + MenuIcon: typeof import('./src/components/Icons/MenuIcon.vue')['default'] + MinimizeIcon: typeof import('./src/components/Icons/MinimizeIcon.vue')['default'] + MissedCallIcon: typeof import('./src/components/Icons/MissedCallIcon.vue')['default'] + MobileAppHeader: typeof import('./src/components/Mobile/MobileAppHeader.vue')['default'] + MobileLayout: typeof import('./src/components/Layouts/MobileLayout.vue')['default'] + MobileSidebar: typeof import('./src/components/Mobile/MobileSidebar.vue')['default'] + MoneyIcon: typeof import('./src/components/Icons/MoneyIcon.vue')['default'] + MultiActionButton: typeof import('./src/components/MultiActionButton.vue')['default'] + MultipleAvatar: typeof import('./src/components/MultipleAvatar.vue')['default'] + MuteIcon: typeof import('./src/components/Icons/MuteIcon.vue')['default'] + NewEmailTemplate: typeof import('./src/components/Settings/EmailTemplate/NewEmailTemplate.vue')['default'] + NoteArea: typeof import('./src/components/Activities/NoteArea.vue')['default'] + NoteIcon: typeof import('./src/components/Icons/NoteIcon.vue')['default'] + NoteModal: typeof import('./src/components/Modals/NoteModal.vue')['default'] + Notifications: typeof import('./src/components/Notifications.vue')['default'] + NotificationsIcon: typeof import('./src/components/Icons/NotificationsIcon.vue')['default'] + OrganizationModal: typeof import('./src/components/Modals/OrganizationModal.vue')['default'] + OrganizationsIcon: typeof import('./src/components/Icons/OrganizationsIcon.vue')['default'] + OrganizationsListView: typeof import('./src/components/ListViews/OrganizationsListView.vue')['default'] + OutboundCallIcon: typeof import('./src/components/Icons/OutboundCallIcon.vue')['default'] + Password: typeof import('./src/components/Controls/Password.vue')['default'] + PauseIcon: typeof import('./src/components/Icons/PauseIcon.vue')['default'] + PeopleIcon: typeof import('./src/components/Icons/PeopleIcon.vue')['default'] + PhoneIcon: typeof import('./src/components/Icons/PhoneIcon.vue')['default'] + PinIcon: typeof import('./src/components/Icons/PinIcon.vue')['default'] + PlaybackSpeedIcon: typeof import('./src/components/Icons/PlaybackSpeedIcon.vue')['default'] + PlaybackSpeedOption: typeof import('./src/components/Activities/PlaybackSpeedOption.vue')['default'] + PlayIcon: typeof import('./src/components/Icons/PlayIcon.vue')['default'] + ProfileSettings: typeof import('./src/components/Settings/ProfileSettings.vue')['default'] + QuickEntryModal: typeof import('./src/components/Modals/QuickEntryModal.vue')['default'] + QuickFilterField: typeof import('./src/components/QuickFilterField.vue')['default'] + QuickFilterIcon: typeof import('./src/components/Icons/QuickFilterIcon.vue')['default'] + ReactIcon: typeof import('./src/components/Icons/ReactIcon.vue')['default'] + RefreshIcon: typeof import('./src/components/Icons/RefreshIcon.vue')['default'] + ReloadIcon: typeof import('./src/components/Icons/ReloadIcon.vue')['default'] + ReplyAllIcon: typeof import('./src/components/Icons/ReplyAllIcon.vue')['default'] + ReplyIcon: typeof import('./src/components/Icons/ReplyIcon.vue')['default'] + Resizer: typeof import('./src/components/Resizer.vue')['default'] + RightSideLayoutIcon: typeof import('./src/components/Icons/RightSideLayoutIcon.vue')['default'] + RouterLink: typeof import('vue-router')['RouterLink'] + RouterView: typeof import('vue-router')['RouterView'] + Section: typeof import('./src/components/FieldLayout/Section.vue')['default'] + SelectIcon: typeof import('./src/components/Icons/SelectIcon.vue')['default'] + Settings: typeof import('./src/components/Settings/Settings.vue')['default'] + SettingsIcon: typeof import('./src/components/Icons/SettingsIcon.vue')['default'] + SettingsIcon2: typeof import('./src/components/Icons/SettingsIcon2.vue')['default'] + SettingsPage: typeof import('./src/components/Settings/SettingsPage.vue')['default'] + ShortcutTooltip: typeof import('./src/components/ShortcutTooltip.vue')['default'] + SidebarLink: typeof import('./src/components/SidebarLink.vue')['default'] + SidePanelLayout: typeof import('./src/components/SidePanelLayout.vue')['default'] + SidePanelLayoutEditor: typeof import('./src/components/SidePanelLayoutEditor.vue')['default'] + SidePanelModal: typeof import('./src/components/Modals/SidePanelModal.vue')['default'] + SLASection: typeof import('./src/components/SLASection.vue')['default'] + SmileIcon: typeof import('./src/components/Icons/SmileIcon.vue')['default'] + SortBy: typeof import('./src/components/SortBy.vue')['default'] + SortIcon: typeof import('./src/components/Icons/SortIcon.vue')['default'] + SquareAsterisk: typeof import('./src/components/Icons/SquareAsterisk.vue')['default'] + StepsIcon: typeof import('./src/components/Icons/StepsIcon.vue')['default'] + SuccessIcon: typeof import('./src/components/Icons/SuccessIcon.vue')['default'] + TableMultiselectInput: typeof import('./src/components/Controls/TableMultiselectInput.vue')['default'] + TaskArea: typeof import('./src/components/Activities/TaskArea.vue')['default'] + TaskIcon: typeof import('./src/components/Icons/TaskIcon.vue')['default'] + TaskModal: typeof import('./src/components/Modals/TaskModal.vue')['default'] + TaskPanel: typeof import('./src/components/Telephony/TaskPanel.vue')['default'] + TaskPriorityIcon: typeof import('./src/components/Icons/TaskPriorityIcon.vue')['default'] + TasksListView: typeof import('./src/components/ListViews/TasksListView.vue')['default'] + TaskStatusIcon: typeof import('./src/components/Icons/TaskStatusIcon.vue')['default'] + TelegramIcon: typeof import('./src/components/Icons/TelegramIcon.vue')['default'] + TelephonySettings: typeof import('./src/components/Settings/TelephonySettings.vue')['default'] + TerritoryIcon: typeof import('./src/components/Icons/TerritoryIcon.vue')['default'] + TwilioCallUI: typeof import('./src/components/Telephony/TwilioCallUI.vue')['default'] + UnpinIcon: typeof import('./src/components/Icons/UnpinIcon.vue')['default'] + UserAvatar: typeof import('./src/components/UserAvatar.vue')['default'] + UserDropdown: typeof import('./src/components/UserDropdown.vue')['default'] + Users: typeof import('./src/components/Settings/Users.vue')['default'] + ViewBreadcrumbs: typeof import('./src/components/ViewBreadcrumbs.vue')['default'] + ViewControls: typeof import('./src/components/ViewControls.vue')['default'] + ViewModal: typeof import('./src/components/Modals/ViewModal.vue')['default'] + VolumnHighIcon: typeof import('./src/components/Icons/VolumnHighIcon.vue')['default'] + VolumnLowIcon: typeof import('./src/components/Icons/VolumnLowIcon.vue')['default'] + WebsiteIcon: typeof import('./src/components/Icons/WebsiteIcon.vue')['default'] + WhatsAppArea: typeof import('./src/components/Activities/WhatsAppArea.vue')['default'] + WhatsAppBox: typeof import('./src/components/Activities/WhatsAppBox.vue')['default'] + WhatsAppIcon: typeof import('./src/components/Icons/WhatsAppIcon.vue')['default'] + WhatsAppSettings: typeof import('./src/components/Settings/WhatsAppSettings.vue')['default'] + WhatsappTemplateSelectorModal: typeof import('./src/components/Modals/WhatsappTemplateSelectorModal.vue')['default'] + } +} diff --git a/frontend/package.json b/frontend/package.json index b6e12e74..5f3756a0 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -13,7 +13,7 @@ "@tiptap/extension-paragraph": "^2.12.0", "@twilio/voice-sdk": "^2.10.2", "@vueuse/integrations": "^10.3.0", - "frappe-ui": "^0.1.189", + "frappe-ui": "^0.1.197", "gemoji": "^8.1.0", "lodash": "^4.17.21", "mime": "^4.0.1", diff --git a/frontend/src/App.vue b/frontend/src/App.vue index bea5e3d2..d02769fb 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -1,6 +1,6 @@ diff --git a/frontend/src/components/Calendar/Attendee.vue b/frontend/src/components/Calendar/Attendee.vue new file mode 100644 index 00000000..4b550f75 --- /dev/null +++ b/frontend/src/components/Calendar/Attendee.vue @@ -0,0 +1,322 @@ + + + diff --git a/frontend/src/components/Calendar/CalendarEventPanel.vue b/frontend/src/components/Calendar/CalendarEventPanel.vue new file mode 100644 index 00000000..078db6f8 --- /dev/null +++ b/frontend/src/components/Calendar/CalendarEventPanel.vue @@ -0,0 +1,706 @@ + + + diff --git a/frontend/src/components/Calendar/utils.js b/frontend/src/components/Calendar/utils.js new file mode 100644 index 00000000..370ed95d --- /dev/null +++ b/frontend/src/components/Calendar/utils.js @@ -0,0 +1,16 @@ +export function allTimeSlots() { + const out = [] + for (let h = 0; h < 24; h++) { + for (const m of [0, 15, 30, 45]) { + const hh = String(h).padStart(2, '0') + const mm = String(m).padStart(2, '0') + const ampm = h >= 12 ? 'pm' : 'am' + const hour12 = h % 12 === 0 ? 12 : h % 12 + out.push({ + value: `${hh}:${mm}`, + label: `${hour12}:${mm} ${ampm}`, + }) + } + } + return out +} diff --git a/frontend/src/components/Controls/EmailMultiSelect.vue b/frontend/src/components/Controls/EmailMultiSelect.vue new file mode 100644 index 00000000..21003aeb --- /dev/null +++ b/frontend/src/components/Controls/EmailMultiSelect.vue @@ -0,0 +1,314 @@ + + + diff --git a/frontend/src/components/Controls/Grid.vue b/frontend/src/components/Controls/Grid.vue index 78a4f403..92325ef7 100644 --- a/frontend/src/components/Controls/Grid.vue +++ b/frontend/src/components/Controls/Grid.vue @@ -178,21 +178,27 @@ @change="(e) => fieldChange(e.target.checked, field, row)" /> + @@ -349,6 +355,7 @@ import { createDocument } from '@/composables/document' import { FormControl, Checkbox, + TimePicker, DateTimePicker, DatePicker, Tooltip, diff --git a/frontend/src/components/Controls/MultiSelectEmailInput.vue b/frontend/src/components/Controls/MultiSelectEmailInput.vue deleted file mode 100644 index 133bfea4..00000000 --- a/frontend/src/components/Controls/MultiSelectEmailInput.vue +++ /dev/null @@ -1,304 +0,0 @@ - - - diff --git a/frontend/src/components/Controls/MultiSelectUserInput.vue b/frontend/src/components/Controls/MultiSelectUserInput.vue deleted file mode 100644 index 3a554c2e..00000000 --- a/frontend/src/components/Controls/MultiSelectUserInput.vue +++ /dev/null @@ -1,278 +0,0 @@ - - - diff --git a/frontend/src/components/EmailEditor.vue b/frontend/src/components/EmailEditor.vue index e59e7837..605bcda9 100644 --- a/frontend/src/components/EmailEditor.vue +++ b/frontend/src/components/EmailEditor.vue @@ -20,11 +20,12 @@
{{ __('TO') }}: -
{{ __('CC') }}: - {{ __('BCC') }}: - + + + + diff --git a/frontend/src/components/Icons/EventIcon.vue b/frontend/src/components/Icons/EventIcon.vue new file mode 100644 index 00000000..189997fd --- /dev/null +++ b/frontend/src/components/Icons/EventIcon.vue @@ -0,0 +1,16 @@ + diff --git a/frontend/src/components/Icons/PeopleIcon.vue b/frontend/src/components/Icons/PeopleIcon.vue new file mode 100644 index 00000000..300e28ab --- /dev/null +++ b/frontend/src/components/Icons/PeopleIcon.vue @@ -0,0 +1,14 @@ + diff --git a/frontend/src/components/Layouts/AppSidebar.vue b/frontend/src/components/Layouts/AppSidebar.vue index bd901520..d9db53af 100644 --- a/frontend/src/components/Layouts/AppSidebar.vue +++ b/frontend/src/components/Layouts/AppSidebar.vue @@ -157,6 +157,7 @@ import ContactsIcon from '@/components/Icons/ContactsIcon.vue' import OrganizationsIcon from '@/components/Icons/OrganizationsIcon.vue' import NoteIcon from '@/components/Icons/NoteIcon.vue' import TaskIcon from '@/components/Icons/TaskIcon.vue' +import CalendarIcon from '@/components/Icons/CalendarIcon.vue' import PhoneIcon from '@/components/Icons/PhoneIcon.vue' import CollapseSidebar from '@/components/Icons/CollapseSidebar.vue' import NotificationsIcon from '@/components/Icons/NotificationsIcon.vue' @@ -233,6 +234,11 @@ const links = [ icon: TaskIcon, to: 'Tasks', }, + { + label: 'Calendar', + icon: CalendarIcon, + to: 'Calendar', + }, { label: 'Call Logs', icon: PhoneIcon, diff --git a/frontend/src/components/Modals/AddExistingUserModal.vue b/frontend/src/components/Modals/AddExistingUserModal.vue index d11c2f61..248856f9 100644 --- a/frontend/src/components/Modals/AddExistingUserModal.vue +++ b/frontend/src/components/Modals/AddExistingUserModal.vue @@ -6,8 +6,8 @@ >