@mrck-labs/vanaheim-shared 0.3.0 → 0.4.1

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.
package/dist/index.mjs CHANGED
@@ -688,6 +688,94 @@ var queryKeys = {
688
688
  all: ["linear"],
689
689
  issues: (filters) => [...queryKeys.linear.all, "issues", filters],
690
690
  projects: () => [...queryKeys.linear.all, "projects"]
691
+ },
692
+ // -------------------------------------------------------------------------
693
+ // Nutrition Module
694
+ // -------------------------------------------------------------------------
695
+ ingredients: {
696
+ all: ["ingredients"],
697
+ lists: () => [...queryKeys.ingredients.all, "list"],
698
+ list: (filters) => [...queryKeys.ingredients.lists(), filters],
699
+ detail: (id) => [...queryKeys.ingredients.all, "detail", id]
700
+ },
701
+ recipes: {
702
+ all: ["recipes"],
703
+ lists: () => [...queryKeys.recipes.all, "list"],
704
+ list: (filters) => [...queryKeys.recipes.lists(), filters],
705
+ detail: (id) => [...queryKeys.recipes.all, "detail", id]
706
+ },
707
+ foodLogs: {
708
+ all: ["foodLogs"],
709
+ lists: () => [...queryKeys.foodLogs.all, "list"],
710
+ list: (filters) => [...queryKeys.foodLogs.lists(), filters],
711
+ forDate: (date) => [...queryKeys.foodLogs.all, "date", date]
712
+ },
713
+ nutritionGoals: {
714
+ all: ["nutritionGoals"],
715
+ active: () => [...queryKeys.nutritionGoals.all, "active"]
716
+ },
717
+ nutritionStats: {
718
+ all: ["nutritionStats"],
719
+ forDate: (date) => [...queryKeys.nutritionStats.all, date]
720
+ },
721
+ // -------------------------------------------------------------------------
722
+ // Planning Module - Daily Plans
723
+ // -------------------------------------------------------------------------
724
+ dailyPlans: {
725
+ all: ["dailyPlans"],
726
+ forDate: (date) => [...queryKeys.dailyPlans.all, date],
727
+ forRange: (startDate, endDate) => [...queryKeys.dailyPlans.all, "range", startDate, endDate]
728
+ },
729
+ // -------------------------------------------------------------------------
730
+ // Planning Module - Meal Plans
731
+ // -------------------------------------------------------------------------
732
+ mealPlans: {
733
+ all: ["mealPlans"],
734
+ lists: () => [...queryKeys.mealPlans.all, "list"],
735
+ forDate: (date) => [...queryKeys.mealPlans.all, "date", date],
736
+ forRange: (startDate, endDate) => [...queryKeys.mealPlans.all, "range", startDate, endDate],
737
+ detail: (id) => [...queryKeys.mealPlans.all, "detail", id]
738
+ },
739
+ // -------------------------------------------------------------------------
740
+ // Planning Module - Prep Sessions
741
+ // -------------------------------------------------------------------------
742
+ prepSessions: {
743
+ all: ["prepSessions"],
744
+ lists: () => [...queryKeys.prepSessions.all, "list"],
745
+ forDate: (date) => [...queryKeys.prepSessions.all, "date", date],
746
+ forRange: (startDate, endDate) => [...queryKeys.prepSessions.all, "range", startDate, endDate],
747
+ detail: (id) => [...queryKeys.prepSessions.all, "detail", id]
748
+ },
749
+ // -------------------------------------------------------------------------
750
+ // Planning Module - Grocery List
751
+ // -------------------------------------------------------------------------
752
+ groceryList: {
753
+ all: ["groceryList"],
754
+ forWeek: (weekStart, weekEnd) => [...queryKeys.groceryList.all, weekStart, weekEnd]
755
+ },
756
+ // -------------------------------------------------------------------------
757
+ // Planning Module - Weekly Plans
758
+ // -------------------------------------------------------------------------
759
+ weeklyPlans: {
760
+ all: ["weeklyPlans"],
761
+ forWeek: (weekStart) => [...queryKeys.weeklyPlans.all, weekStart],
762
+ forRange: (startWeek, endWeek) => [...queryKeys.weeklyPlans.all, "range", startWeek, endWeek]
763
+ },
764
+ // -------------------------------------------------------------------------
765
+ // Planning Module - Notes
766
+ // -------------------------------------------------------------------------
767
+ noteFolders: {
768
+ all: ["noteFolders"],
769
+ list: () => [...queryKeys.noteFolders.all, "list"],
770
+ detail: (id) => [...queryKeys.noteFolders.all, "detail", id]
771
+ },
772
+ notes: {
773
+ all: ["notes"],
774
+ lists: () => [...queryKeys.notes.all, "list"],
775
+ list: (filters) => [...queryKeys.notes.lists(), filters],
776
+ detail: (id) => [...queryKeys.notes.all, "detail", id],
777
+ pinned: () => [...queryKeys.notes.all, "pinned"],
778
+ recent: () => [...queryKeys.notes.all, "recent"]
691
779
  }
692
780
  };
693
781
 
@@ -728,7 +816,10 @@ function getTodayMidnight() {
728
816
  return normalizeToMidnight(/* @__PURE__ */ new Date());
729
817
  }
730
818
  function formatDateString(date) {
731
- return `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, "0")}-${String(date.getDate()).padStart(2, "0")}`;
819
+ return `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(
820
+ 2,
821
+ "0"
822
+ )}-${String(date.getDate()).padStart(2, "0")}`;
732
823
  }
733
824
  function getTodayString() {
734
825
  return formatDateString(/* @__PURE__ */ new Date());
@@ -769,7 +860,11 @@ function getTomorrowString() {
769
860
  }
770
861
  function getStartOfDayISO(dateStr) {
771
862
  const date = parseLocalDate(dateStr);
772
- return new Date(date.getFullYear(), date.getMonth(), date.getDate()).toISOString();
863
+ return new Date(
864
+ date.getFullYear(),
865
+ date.getMonth(),
866
+ date.getDate()
867
+ ).toISOString();
773
868
  }
774
869
  function getEndOfDayISO(dateStr) {
775
870
  const date = parseLocalDate(dateStr);
@@ -812,6 +907,22 @@ function getWeekStartString(baseDate = /* @__PURE__ */ new Date()) {
812
907
  function getWeekEndString(baseDate = /* @__PURE__ */ new Date()) {
813
908
  return formatDateString(getWeekEnd(getWeekStart(baseDate)));
814
909
  }
910
+ function getWeekDates(weekStart) {
911
+ const dates = [];
912
+ for (let i = 0; i < 7; i++) {
913
+ dates.push(addDays(weekStart, i));
914
+ }
915
+ return dates;
916
+ }
917
+ function getWeekDatesAsObjects(weekStart) {
918
+ const dates = [];
919
+ for (let i = 0; i < 7; i++) {
920
+ const day = new Date(weekStart);
921
+ day.setDate(day.getDate() + i);
922
+ dates.push(day);
923
+ }
924
+ return dates;
925
+ }
815
926
  function formatWeekRange(weekStart) {
816
927
  const weekEnd = getWeekEnd(weekStart);
817
928
  const startMonth = weekStart.toLocaleDateString("en-US", { month: "short" });
@@ -848,9 +959,24 @@ function formatTimeHHMM(date) {
848
959
  const d = typeof date === "string" ? new Date(date) : date;
849
960
  return d.toLocaleTimeString([], { hour: "2-digit", minute: "2-digit" });
850
961
  }
962
+ function formatTimeShort(date) {
963
+ const d = typeof date === "string" ? new Date(date) : date;
964
+ return d.toLocaleTimeString("en-US", { hour: "numeric", minute: "2-digit" });
965
+ }
966
+ function formatDateDisplay(date) {
967
+ return date.toLocaleDateString("en-US", {
968
+ weekday: "long",
969
+ month: "short",
970
+ day: "numeric"
971
+ });
972
+ }
851
973
  function formatTimeWithSeconds(date) {
852
974
  const d = typeof date === "string" ? new Date(date) : date;
853
- return d.toLocaleTimeString([], { hour: "2-digit", minute: "2-digit", second: "2-digit" });
975
+ return d.toLocaleTimeString([], {
976
+ hour: "2-digit",
977
+ minute: "2-digit",
978
+ second: "2-digit"
979
+ });
854
980
  }
855
981
  function formatDateHeader(dateStr) {
856
982
  const today = getTodayString();
@@ -877,7 +1003,10 @@ function formatDueDateString(dateStr) {
877
1003
  const tomorrowStr = getTomorrowString();
878
1004
  if (dateStr < today) {
879
1005
  const date2 = parseLocalDate(dateStr);
880
- return `Overdue \u2022 ${date2.toLocaleDateString("en-US", { month: "short", day: "numeric" })}`;
1006
+ return `Overdue \u2022 ${date2.toLocaleDateString("en-US", {
1007
+ month: "short",
1008
+ day: "numeric"
1009
+ })}`;
881
1010
  }
882
1011
  if (dateStr === today) {
883
1012
  return "Today";
@@ -942,7 +1071,11 @@ function formatDateLocalized(date, format = "medium") {
942
1071
  case "short":
943
1072
  return d.toLocaleDateString("en-US", { month: "short", day: "numeric" });
944
1073
  case "medium":
945
- return d.toLocaleDateString("en-US", { month: "short", day: "numeric", year: "numeric" });
1074
+ return d.toLocaleDateString("en-US", {
1075
+ month: "short",
1076
+ day: "numeric",
1077
+ year: "numeric"
1078
+ });
946
1079
  case "long":
947
1080
  return d.toLocaleDateString("en-US", {
948
1081
  weekday: "long",
@@ -960,7 +1093,11 @@ function formatTimeLocalized(date, format = "short") {
960
1093
  const d = typeof date === "string" ? new Date(date) : date;
961
1094
  switch (format) {
962
1095
  case "short":
963
- return d.toLocaleTimeString("en-US", { hour: "2-digit", minute: "2-digit", hour12: true });
1096
+ return d.toLocaleTimeString("en-US", {
1097
+ hour: "2-digit",
1098
+ minute: "2-digit",
1099
+ hour12: true
1100
+ });
964
1101
  case "withSeconds":
965
1102
  return d.toLocaleTimeString("en-US", {
966
1103
  hour: "2-digit",
@@ -1007,6 +1144,7 @@ export {
1007
1144
  elapsedSecondsAtom,
1008
1145
  formatCurrency,
1009
1146
  formatDate,
1147
+ formatDateDisplay,
1010
1148
  formatDateHeader,
1011
1149
  formatDateLocalized,
1012
1150
  formatDateLong,
@@ -1023,6 +1161,7 @@ export {
1023
1161
  formatTime,
1024
1162
  formatTimeHHMM,
1025
1163
  formatTimeLocalized,
1164
+ formatTimeShort,
1026
1165
  formatTimeWithSeconds,
1027
1166
  formatTotalTime,
1028
1167
  formatWeekRange,
@@ -1040,6 +1179,8 @@ export {
1040
1179
  getTodayMidnight,
1041
1180
  getTodayString,
1042
1181
  getTomorrowString,
1182
+ getWeekDates,
1183
+ getWeekDatesAsObjects,
1043
1184
  getWeekEnd,
1044
1185
  getWeekEndString,
1045
1186
  getWeekStart,