From 723eec5ef95e804a8bc99fecba8de8d0119d8e4a Mon Sep 17 00:00:00 2001 From: Eichenholz Date: Tue, 4 Aug 2026 15:06:30 +0200 Subject: [PATCH] ENH - clock app --- frontend/src/assets/main.css | 15 ++++- frontend/src/components/AlarmEditor.vue | 35 ++++++++---- frontend/src/components/AlarmSoundMenu.vue | 61 ++++++++++++++++++++ frontend/src/stores/phone.ts | 2 +- frontend/src/utils/clock.test.ts | 5 ++ frontend/src/utils/clock.ts | 10 ++-- frontend/src/views/apps/ClockApp.vue | 65 ++++++++++++++++------ sky_phone/config/locales/en.lua | 2 +- sky_phone/source/html/index.html | 4 +- 9 files changed, 160 insertions(+), 39 deletions(-) create mode 100644 frontend/src/components/AlarmSoundMenu.vue diff --git a/frontend/src/assets/main.css b/frontend/src/assets/main.css index 68fd2ea..7ef877a 100644 --- a/frontend/src/assets/main.css +++ b/frontend/src/assets/main.css @@ -921,9 +921,22 @@ button { .clock-digits { margin: 70px 0 54px; font-variant-numeric: tabular-nums; - font-size: 58px; + font-size: min(52px, 14cqw); font-weight: 200; } +.clock-sound-menu { + margin-top: 8px; +} +.clock-sound-selection { + display: inline-flex; + align-items: center; + gap: 5px; + color: #8e8e93; +} +.clock-sound-selection svg { + width: 17px; + height: 17px; +} .clock-actions { display: flex; justify-content: space-between; diff --git a/frontend/src/components/AlarmEditor.vue b/frontend/src/components/AlarmEditor.vue index 2467f90..3c95e3a 100644 --- a/frontend/src/components/AlarmEditor.vue +++ b/frontend/src/components/AlarmEditor.vue @@ -9,13 +9,13 @@ import { kListItem, kNavbar, } from 'konsta/vue' -import { Check, X } from 'lucide-vue-next' -import { reactive } from 'vue' +import { ChevronRight, Check, X } from 'lucide-vue-next' +import { reactive, ref } from 'vue' +import AlarmSoundMenu from '@/components/AlarmSoundMenu.vue' import { usePhoneStore } from '@/stores/phone' import TimeWheelPicker from '@/components/TimeWheelPicker.vue' import { - ALARM_SOUND_IDS, type Alarm, type AlarmDraft, WEEKDAY_IDS, @@ -28,6 +28,7 @@ const emit = defineEmits<{ save: [draft: AlarmDraft] }>() const phone = usePhoneStore() +const soundMenuOpen = ref(false) const weekdayKeys = [ 'sunday', 'monday', @@ -72,7 +73,15 @@ function toggleWeekday(weekday: number): void {