Add initial halkyon-shared packages #2
No reviewers
Labels
No labels
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority/Critical
Priority/High
Priority/Low
Priority/Medium
Reviewed/Confirmed
Reviewed/Duplicate
Reviewed/Invalid
Reviewed/Won't Fix
Status/Abandoned
Status/Blocked
Status/Need More Info
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
project-halkyon/halkyon-shared!2
Loading…
Reference in a new issue
No description provided.
Delete branch "refs/pull/2/head"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Initial population of the three shared packages.
halkyon_core (pure Dart)
Clockfrom package:clock for testable time access.Loggerinterface withConsoleLoggerreference implementation.generateUuid()thin wrapper over package:uuid.HalkyonExceptionmarker interface.halkyon_interop (pure Dart)
TaskShape: minimal cross-app task representation.HalkyonEventsealed hierarchy withReviewDueEvent.EventPublisherinterface withDormantPublisherno-op default.halkyon_ui (Flutter)
HalkyonBrand: cobalt #273EB2 (primary seed), copper #C44800 (accent).Both extracted from the project icon's gradient stops.
HalkyonColorScheme.light()/.dark(): Material 3 ColorSchemes seededfrom cobalt with copper pinned as tertiary.
HalkyonExtrasThemeExtension: success/warning/info status colors andFSRS rating colors (Again/Hard/Good/Easy).
HalkyonPickerPaletteThemeExtension: 20 named content colors foruser-facing color picking. Stays fixed across themes and dynamic colors.
HalkyonTheme.light()/.dark(): assembledThemeDatafactories.HalkyonThemeAccessors: ergonomicTheme.of(context).halkyonand.pickerPalettegetters with safe fallbacks.Workspace setup
publish_to: none(private to the org).Notes
ready halkyon_ui without prescribing state management, no Result type
(idiomatic try/catch instead).
*.tailor.dart); these are committedper Dart convention.
Test coverage
Each
lib/src/<file>.darthas a correspondingtest/<file>_test.dart.All tests pass via
flutter test packages/<name>for each package.