feat(app): Home, the Library and the studyset sheets laid out as before

Home: plain cards on the surface, 16 dp apart, the goal first and the
Pomodoro timer after it in a new dashboard. The streak chip sits centred
in the app bar, and its sheet shows the days inside a big flame and the
week as marks over the weekdays' initials, with a word on today in a box.
The week names its day as "Thursday, Oct 8" and its days carry no
tooltip. The heatmap scrolls its weekdays with the weeks, outlines the
days to come, and names a day's activities with its date. The goal card
has a ring of 5 dp, a check once met and a pencil, and its sheet saves
across its width with Remove goal below. Arranging puts an eye on each
widget's corner and lifts the one picked up, with a tap the hand feels;
with every widget hidden, Customise brings arranging back. The stepper
moves to core, where the goal's sheet takes it too.

Library: the counts line includes files (PDFs); Refresh in the app bar
and pulling the list down sync now; a list that can't be read offers
Retry, which reads it again; the star keeps its square corners.

Studyset sheet: "Title *", the secondary title explained behind a
question mark, Inherit as a box beside the colour, and the description
in up to three lines with a chevron. Move sheet: round marks, the
studyset itself marked as current, the top level only while it is
inside another, archived studysets last under their heading, the
destination named in the footer, and a new studyset to move into, made
only once the move is.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-10-08 11:12:23 +02:00
commit aa69be47d1
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -271,7 +271,7 @@ abstract class AppLocalizations {
/// No description provided for @studysetSheetSecondaryHelper.
///
/// In en, this message translates to:
/// **'Shown as a small label above the title.'**
/// **'Shown as a small label above the title on cards and the studyset\'s header. Paths use it to label tiers (Challenge, Milestone, Lesson).'**
String get studysetSheetSecondaryHelper;
/// No description provided for @studysetSheetColor.
@ -322,6 +322,24 @@ abstract class AppLocalizations {
/// **'{count, plural, =1{1 note} other{{count} notes}}'**
String studysetCountNotes(int count);
/// No description provided for @studysetCountFiles.
///
/// In en, this message translates to:
/// **'{count, plural, =1{1 file} other{{count} files}}'**
String studysetCountFiles(int count);
/// No description provided for @libraryRefresh.
///
/// In en, this message translates to:
/// **'Refresh'**
String get libraryRefresh;
/// No description provided for @libraryRetry.
///
/// In en, this message translates to:
/// **'Retry'**
String get libraryRetry;
/// No description provided for @studysetNoContent.
///
/// In en, this message translates to:
@ -1459,9 +1477,39 @@ abstract class AppLocalizations {
/// No description provided for @studysetMoveCurrent.
///
/// In en, this message translates to:
/// **'Where it is now'**
/// **'(current)'**
String get studysetMoveCurrent;
/// No description provided for @studysetMoveTopLevelRow.
///
/// In en, this message translates to:
/// **'Top level (no parent)'**
String get studysetMoveTopLevelRow;
/// No description provided for @studysetMoveArchived.
///
/// In en, this message translates to:
/// **'Archived'**
String get studysetMoveArchived;
/// No description provided for @studysetMoveNew.
///
/// In en, this message translates to:
/// **'New studyset'**
String get studysetMoveNew;
/// No description provided for @studysetMoveSelectDestination.
///
/// In en, this message translates to:
/// **'Select a destination'**
String get studysetMoveSelectDestination;
/// No description provided for @studysetMoveDestination.
///
/// In en, this message translates to:
/// **'Destination: {name}'**
String studysetMoveDestination(String name);
/// No description provided for @studysetMoveConfirm.
///
/// In en, this message translates to:
@ -1471,20 +1519,20 @@ abstract class AppLocalizations {
/// No description provided for @studysetMoveShowInside.
///
/// In en, this message translates to:
/// **'Show what is inside'**
/// **'Show sub-studysets'**
String get studysetMoveShowInside;
/// No description provided for @studysetMoveHideInside.
///
/// In en, this message translates to:
/// **'Hide what is inside'**
/// **'Hide sub-studysets'**
String get studysetMoveHideInside;
/// No description provided for @studysetMoved.
///
/// In en, this message translates to:
/// **'Moved to {destination}.'**
String studysetMoved(String destination);
/// **'Moved \"{title}\" to {destination}.'**
String studysetMoved(String title, String destination);
/// No description provided for @studysetReadMore.
///
@ -1519,15 +1567,27 @@ abstract class AppLocalizations {
/// No description provided for @studysetSheetDescriptionAdd.
///
/// In en, this message translates to:
/// **'Add a description'**
/// **'Tap to add a description'**
String get studysetSheetDescriptionAdd;
/// No description provided for @studysetSheetDescriptionAdded.
///
/// In en, this message translates to:
/// **'Description added — tap to edit'**
String get studysetSheetDescriptionAdded;
/// No description provided for @studysetSheetInheritColor.
///
/// In en, this message translates to:
/// **'Same colour as the studyset it is in'**
/// **'Inherit'**
String get studysetSheetInheritColor;
/// No description provided for @fieldRequired.
///
/// In en, this message translates to:
/// **'required'**
String get fieldRequired;
/// No description provided for @exploreTitle.
///
/// In en, this message translates to:
@ -3610,16 +3670,22 @@ abstract class AppLocalizations {
/// **'All widgets are hidden'**
String get homeAllHidden;
/// No description provided for @homeAllHiddenHint.
/// No description provided for @homeAllHiddenBody.
///
/// In en, this message translates to:
/// **'Long-press here to bring some back.'**
String get homeAllHiddenHint;
/// **'Bring some back to fill your dashboard.'**
String get homeAllHiddenBody;
/// No description provided for @homeCustomise.
///
/// In en, this message translates to:
/// **'Customise'**
String get homeCustomise;
/// No description provided for @homeWidgetGoal.
///
/// In en, this message translates to:
/// **'Study goal'**
/// **'Daily goal'**
String get homeWidgetGoal;
/// No description provided for @homeWidgetWeek.
@ -3808,12 +3874,6 @@ abstract class AppLocalizations {
/// **'Rest day'**
String get weekRestDay;
/// No description provided for @weekDueCount.
///
/// In en, this message translates to:
/// **'{count, plural, =1{1 card due} other{{count} cards due}}'**
String weekDueCount(int count);
/// No description provided for @heatmapLess.
///
/// In en, this message translates to:
@ -3835,7 +3895,7 @@ abstract class AppLocalizations {
/// No description provided for @heatmapDay.
///
/// In en, this message translates to:
/// **'{count, plural, =0{Nothing} =1{1 activity} other{{count} activities}} · {date}'**
/// **'{count, plural, =1{1 activity} other{{count} activities}} · {date}'**
String heatmapDay(int count, String date);
/// No description provided for @commonCancel.
@ -5287,7 +5347,7 @@ abstract class AppLocalizations {
/// No description provided for @homeWidgetDeadlines.
///
/// In en, this message translates to:
/// **'Reading deadlines'**
/// **'PDF reading deadlines'**
String get homeWidgetDeadlines;
/// No description provided for @deadlinesTitle.