@m4l/components 9.81.0 → 9.82.0

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.
Files changed (138) hide show
  1. package/@types/types.d.ts +8 -0
  2. package/components/HoursOfWeekPicker/HoursOfWeekPicker.d.ts +4 -0
  3. package/components/HoursOfWeekPicker/HoursOfWeekPicker.d.ts.map +1 -0
  4. package/components/HoursOfWeekPicker/HoursOfWeekPicker.js +144 -0
  5. package/components/HoursOfWeekPicker/HoursOfWeekPicker.styles.d.ts +3 -0
  6. package/components/HoursOfWeekPicker/HoursOfWeekPicker.styles.d.ts.map +1 -0
  7. package/components/HoursOfWeekPicker/HoursOfWeekPicker.styles.js +317 -0
  8. package/components/HoursOfWeekPicker/constants.d.ts +18 -0
  9. package/components/HoursOfWeekPicker/constants.d.ts.map +1 -0
  10. package/components/HoursOfWeekPicker/constants.js +24 -0
  11. package/components/HoursOfWeekPicker/dictionary.d.ts +6 -0
  12. package/components/HoursOfWeekPicker/dictionary.d.ts.map +1 -0
  13. package/components/HoursOfWeekPicker/dictionary.js +6 -0
  14. package/components/HoursOfWeekPicker/helpers/applyRectangle/applyRectangle.d.ts +4 -0
  15. package/components/HoursOfWeekPicker/helpers/applyRectangle/applyRectangle.d.ts.map +1 -0
  16. package/components/HoursOfWeekPicker/helpers/applyRectangle/applyRectangle.js +12 -0
  17. package/components/HoursOfWeekPicker/helpers/copyDay/copyDay.d.ts +4 -0
  18. package/components/HoursOfWeekPicker/helpers/copyDay/copyDay.d.ts.map +1 -0
  19. package/components/HoursOfWeekPicker/helpers/copyDay/copyDay.js +6 -0
  20. package/components/HoursOfWeekPicker/helpers/createHourFormatter/createHourFormatter.d.ts +4 -0
  21. package/components/HoursOfWeekPicker/helpers/createHourFormatter/createHourFormatter.d.ts.map +1 -0
  22. package/components/HoursOfWeekPicker/helpers/createHourFormatter/createHourFormatter.js +14 -0
  23. package/components/HoursOfWeekPicker/helpers/firstAvailableRange/firstAvailableRange.d.ts +4 -0
  24. package/components/HoursOfWeekPicker/helpers/firstAvailableRange/firstAvailableRange.d.ts.map +1 -0
  25. package/components/HoursOfWeekPicker/helpers/firstAvailableRange/firstAvailableRange.js +12 -0
  26. package/components/HoursOfWeekPicker/helpers/formatDuration/formatDuration.d.ts +4 -0
  27. package/components/HoursOfWeekPicker/helpers/formatDuration/formatDuration.d.ts.map +1 -0
  28. package/components/HoursOfWeekPicker/helpers/formatDuration/formatDuration.js +7 -0
  29. package/components/HoursOfWeekPicker/helpers/formatTime/formatTime.d.ts +3 -0
  30. package/components/HoursOfWeekPicker/helpers/formatTime/formatTime.d.ts.map +1 -0
  31. package/components/HoursOfWeekPicker/helpers/formatTime/formatTime.js +8 -0
  32. package/components/HoursOfWeekPicker/helpers/getCellState/getCellState.d.ts +4 -0
  33. package/components/HoursOfWeekPicker/helpers/getCellState/getCellState.d.ts.map +1 -0
  34. package/components/HoursOfWeekPicker/helpers/getCellState/getCellState.js +7 -0
  35. package/components/HoursOfWeekPicker/helpers/getDayPeriodClock/getDayPeriodClock.d.ts +6 -0
  36. package/components/HoursOfWeekPicker/helpers/getDayPeriodClock/getDayPeriodClock.d.ts.map +1 -0
  37. package/components/HoursOfWeekPicker/helpers/getDayPeriodClock/getDayPeriodClock.js +33 -0
  38. package/components/HoursOfWeekPicker/helpers/getDayPeriodReference/getDayPeriodReference.d.ts +4 -0
  39. package/components/HoursOfWeekPicker/helpers/getDayPeriodReference/getDayPeriodReference.d.ts.map +1 -0
  40. package/components/HoursOfWeekPicker/helpers/getDayPeriodReference/getDayPeriodReference.js +31 -0
  41. package/components/HoursOfWeekPicker/helpers/getTimeOptions/getTimeOptions.d.ts +4 -0
  42. package/components/HoursOfWeekPicker/helpers/getTimeOptions/getTimeOptions.d.ts.map +1 -0
  43. package/components/HoursOfWeekPicker/helpers/getTimeOptions/getTimeOptions.js +9 -0
  44. package/components/HoursOfWeekPicker/helpers/getTotals/getTotals.d.ts +8 -0
  45. package/components/HoursOfWeekPicker/helpers/getTotals/getTotals.d.ts.map +1 -0
  46. package/components/HoursOfWeekPicker/helpers/getTotals/getTotals.js +8 -0
  47. package/components/HoursOfWeekPicker/helpers/getVisiblePeriods/getVisiblePeriods.d.ts +4 -0
  48. package/components/HoursOfWeekPicker/helpers/getVisiblePeriods/getVisiblePeriods.d.ts.map +1 -0
  49. package/components/HoursOfWeekPicker/helpers/getVisiblePeriods/getVisiblePeriods.js +6 -0
  50. package/components/HoursOfWeekPicker/helpers/index.d.ts +17 -0
  51. package/components/HoursOfWeekPicker/helpers/index.d.ts.map +1 -0
  52. package/components/HoursOfWeekPicker/helpers/matrixToValue/matrixToValue.d.ts +4 -0
  53. package/components/HoursOfWeekPicker/helpers/matrixToValue/matrixToValue.d.ts.map +1 -0
  54. package/components/HoursOfWeekPicker/helpers/matrixToValue/matrixToValue.js +14 -0
  55. package/components/HoursOfWeekPicker/helpers/parseTime/parseTime.d.ts +3 -0
  56. package/components/HoursOfWeekPicker/helpers/parseTime/parseTime.d.ts.map +1 -0
  57. package/components/HoursOfWeekPicker/helpers/parseTime/parseTime.js +12 -0
  58. package/components/HoursOfWeekPicker/helpers/replaceDayRanges/replaceDayRanges.d.ts +4 -0
  59. package/components/HoursOfWeekPicker/helpers/replaceDayRanges/replaceDayRanges.d.ts.map +1 -0
  60. package/components/HoursOfWeekPicker/helpers/replaceDayRanges/replaceDayRanges.js +8 -0
  61. package/components/HoursOfWeekPicker/helpers/resolveDayPeriodLocation/resolveDayPeriodLocation.d.ts +4 -0
  62. package/components/HoursOfWeekPicker/helpers/resolveDayPeriodLocation/resolveDayPeriodLocation.d.ts.map +1 -0
  63. package/components/HoursOfWeekPicker/helpers/resolveDayPeriodLocation/resolveDayPeriodLocation.js +23 -0
  64. package/components/HoursOfWeekPicker/helpers/resolveVisibleRange/resolveVisibleRange.d.ts +4 -0
  65. package/components/HoursOfWeekPicker/helpers/resolveVisibleRange/resolveVisibleRange.d.ts.map +1 -0
  66. package/components/HoursOfWeekPicker/helpers/resolveVisibleRange/resolveVisibleRange.js +8 -0
  67. package/components/HoursOfWeekPicker/helpers/toggleDay/toggleDay.d.ts +4 -0
  68. package/components/HoursOfWeekPicker/helpers/toggleDay/toggleDay.d.ts.map +1 -0
  69. package/components/HoursOfWeekPicker/helpers/toggleDay/toggleDay.js +8 -0
  70. package/components/HoursOfWeekPicker/helpers/toggleHour/toggleHour.d.ts +4 -0
  71. package/components/HoursOfWeekPicker/helpers/toggleHour/toggleHour.d.ts.map +1 -0
  72. package/components/HoursOfWeekPicker/helpers/toggleHour/toggleHour.js +9 -0
  73. package/components/HoursOfWeekPicker/helpers/validateRange/validateRange.d.ts +4 -0
  74. package/components/HoursOfWeekPicker/helpers/validateRange/validateRange.d.ts.map +1 -0
  75. package/components/HoursOfWeekPicker/helpers/validateRange/validateRange.js +15 -0
  76. package/components/HoursOfWeekPicker/helpers/valueToMatrix/valueToMatrix.d.ts +4 -0
  77. package/components/HoursOfWeekPicker/helpers/valueToMatrix/valueToMatrix.d.ts.map +1 -0
  78. package/components/HoursOfWeekPicker/helpers/valueToMatrix/valueToMatrix.js +17 -0
  79. package/components/HoursOfWeekPicker/hooks/useHoursOfWeekCards/useHoursOfWeekCards.d.ts +22 -0
  80. package/components/HoursOfWeekPicker/hooks/useHoursOfWeekCards/useHoursOfWeekCards.d.ts.map +1 -0
  81. package/components/HoursOfWeekPicker/hooks/useHoursOfWeekCards/useHoursOfWeekCards.js +49 -0
  82. package/components/HoursOfWeekPicker/hooks/useHoursOfWeekDayPeriods/useHoursOfWeekDayPeriods.d.ts +4 -0
  83. package/components/HoursOfWeekPicker/hooks/useHoursOfWeekDayPeriods/useHoursOfWeekDayPeriods.d.ts.map +1 -0
  84. package/components/HoursOfWeekPicker/hooks/useHoursOfWeekDayPeriods/useHoursOfWeekDayPeriods.js +20 -0
  85. package/components/HoursOfWeekPicker/hooks/useHoursOfWeekPicker/index.d.ts +2 -0
  86. package/components/HoursOfWeekPicker/hooks/useHoursOfWeekPicker/index.d.ts.map +1 -0
  87. package/components/HoursOfWeekPicker/hooks/useHoursOfWeekPicker/useHoursOfWeekPicker.d.ts +29 -0
  88. package/components/HoursOfWeekPicker/hooks/useHoursOfWeekPicker/useHoursOfWeekPicker.d.ts.map +1 -0
  89. package/components/HoursOfWeekPicker/hooks/useHoursOfWeekPicker/useHoursOfWeekPicker.js +107 -0
  90. package/components/HoursOfWeekPicker/hooks/useHoursOfWeekPresentation/useHoursOfWeekPresentation.d.ts +3 -0
  91. package/components/HoursOfWeekPicker/hooks/useHoursOfWeekPresentation/useHoursOfWeekPresentation.d.ts.map +1 -0
  92. package/components/HoursOfWeekPicker/hooks/useHoursOfWeekPresentation/useHoursOfWeekPresentation.js +10 -0
  93. package/components/HoursOfWeekPicker/index.d.ts +4 -0
  94. package/components/HoursOfWeekPicker/index.d.ts.map +1 -0
  95. package/components/HoursOfWeekPicker/slots/HoursOfWeekPickerEnum.d.ts +51 -0
  96. package/components/HoursOfWeekPicker/slots/HoursOfWeekPickerEnum.d.ts.map +1 -0
  97. package/components/HoursOfWeekPicker/slots/HoursOfWeekPickerEnum.js +4 -0
  98. package/components/HoursOfWeekPicker/slots/HoursOfWeekPickerSlots.d.ts +145 -0
  99. package/components/HoursOfWeekPicker/slots/HoursOfWeekPickerSlots.d.ts.map +1 -0
  100. package/components/HoursOfWeekPicker/slots/HoursOfWeekPickerSlots.js +56 -0
  101. package/components/HoursOfWeekPicker/slots/index.d.ts +3 -0
  102. package/components/HoursOfWeekPicker/slots/index.d.ts.map +1 -0
  103. package/components/HoursOfWeekPicker/subcomponents/HoursOfWeekCards/HoursOfWeekCards.d.ts +4 -0
  104. package/components/HoursOfWeekPicker/subcomponents/HoursOfWeekCards/HoursOfWeekCards.d.ts.map +1 -0
  105. package/components/HoursOfWeekPicker/subcomponents/HoursOfWeekCards/HoursOfWeekCards.js +111 -0
  106. package/components/HoursOfWeekPicker/subcomponents/HoursOfWeekCell/HoursOfWeekCell.d.ts +4 -0
  107. package/components/HoursOfWeekPicker/subcomponents/HoursOfWeekCell/HoursOfWeekCell.d.ts.map +1 -0
  108. package/components/HoursOfWeekPicker/subcomponents/HoursOfWeekCell/HoursOfWeekCell.js +42 -0
  109. package/components/HoursOfWeekPicker/subcomponents/HoursOfWeekLegend/HoursOfWeekLegend.d.ts +4 -0
  110. package/components/HoursOfWeekPicker/subcomponents/HoursOfWeekLegend/HoursOfWeekLegend.d.ts.map +1 -0
  111. package/components/HoursOfWeekPicker/subcomponents/HoursOfWeekLegend/HoursOfWeekLegend.js +31 -0
  112. package/components/HoursOfWeekPicker/subcomponents/HoursOfWeekPeriods/HoursOfWeekPeriods.d.ts +4 -0
  113. package/components/HoursOfWeekPicker/subcomponents/HoursOfWeekPeriods/HoursOfWeekPeriods.d.ts.map +1 -0
  114. package/components/HoursOfWeekPicker/subcomponents/HoursOfWeekPeriods/HoursOfWeekPeriods.js +28 -0
  115. package/components/HoursOfWeekPicker/subcomponents/HoursOfWeekRow/HoursOfWeekRow.d.ts +4 -0
  116. package/components/HoursOfWeekPicker/subcomponents/HoursOfWeekRow/HoursOfWeekRow.d.ts.map +1 -0
  117. package/components/HoursOfWeekPicker/subcomponents/HoursOfWeekRow/HoursOfWeekRow.js +38 -0
  118. package/components/HoursOfWeekPicker/subcomponents/HoursOfWeekSkeleton/HoursOfWeekSkeleton.d.ts +6 -0
  119. package/components/HoursOfWeekPicker/subcomponents/HoursOfWeekSkeleton/HoursOfWeekSkeleton.d.ts.map +1 -0
  120. package/components/HoursOfWeekPicker/subcomponents/HoursOfWeekSkeleton/HoursOfWeekSkeleton.js +24 -0
  121. package/components/HoursOfWeekPicker/subcomponents/HoursOfWeekSummary/HoursOfWeekSummary.d.ts +4 -0
  122. package/components/HoursOfWeekPicker/subcomponents/HoursOfWeekSummary/HoursOfWeekSummary.d.ts.map +1 -0
  123. package/components/HoursOfWeekPicker/subcomponents/HoursOfWeekSummary/HoursOfWeekSummary.js +27 -0
  124. package/components/HoursOfWeekPicker/types.d.ts +219 -0
  125. package/components/HoursOfWeekPicker/types.d.ts.map +1 -0
  126. package/components/hook-form/RHFHoursOfWeekPicker/RHFHoursOfWeekPicker.d.ts +7 -0
  127. package/components/hook-form/RHFHoursOfWeekPicker/RHFHoursOfWeekPicker.d.ts.map +1 -0
  128. package/components/hook-form/RHFHoursOfWeekPicker/RHFHoursOfWeekPicker.js +10 -0
  129. package/components/hook-form/RHFHoursOfWeekPicker/index.d.ts +3 -0
  130. package/components/hook-form/RHFHoursOfWeekPicker/index.d.ts.map +1 -0
  131. package/components/hook-form/RHFHoursOfWeekPicker/types.d.ts +6 -0
  132. package/components/hook-form/RHFHoursOfWeekPicker/types.d.ts.map +1 -0
  133. package/components/hook-form/index.d.ts +1 -0
  134. package/components/hook-form/index.d.ts.map +1 -1
  135. package/components/index.d.ts +1 -0
  136. package/components/index.d.ts.map +1 -1
  137. package/index.js +378 -372
  138. package/package.json +8 -6
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copyDay.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/components/src/components/HoursOfWeekPicker/helpers/copyDay/copyDay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrE,0FAA0F;AAC1F,wBAAgB,OAAO,CAAC,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS,cAAc,EAAE,GAAG,iBAAiB,CAEhI"}
@@ -0,0 +1,6 @@
1
+ function u(n, c, e) {
2
+ return n.map((o, p) => e.includes(p) ? [...n[c]] : o);
3
+ }
4
+ export {
5
+ u as copyDay
6
+ };
@@ -0,0 +1,4 @@
1
+ import { HoursOfWeekHourFormatter, HoursOfWeekTimePreferences } from '../../types';
2
+ /** Format recurring hours using user preferences without shifting them into another time zone. */
3
+ export declare function createHourFormatter({ timeFormat, locale }: HoursOfWeekTimePreferences): HoursOfWeekHourFormatter;
4
+ //# sourceMappingURL=createHourFormatter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createHourFormatter.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/components/src/components/HoursOfWeekPicker/helpers/createHourFormatter/createHourFormatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGxF,kGAAkG;AAClG,wBAAgB,mBAAmB,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,0BAA0B,GAAG,wBAAwB,CAehH"}
@@ -0,0 +1,14 @@
1
+ import { formatTime as a } from "../formatTime/formatTime.js";
2
+ function u({ timeFormat: i, locale: n }) {
3
+ const r = i.replace(/'[^']*'/g, ""), t = /h|K|a|b|B/.test(r) && !/H|k/.test(r);
4
+ let e;
5
+ try {
6
+ e = new Intl.DateTimeFormat(n || void 0, { hour: "2-digit", minute: "2-digit", hour12: t, timeZone: "UTC" });
7
+ } catch {
8
+ e = new Intl.DateTimeFormat("en", { hour: "2-digit", minute: "2-digit", hour12: t, timeZone: "UTC" });
9
+ }
10
+ return (o) => t ? e.format(new Date(Date.UTC(2e3, 0, 1, 0, Math.round(o * 15)))) : a(o);
11
+ }
12
+ export {
13
+ u as createHourFormatter
14
+ };
@@ -0,0 +1,4 @@
1
+ import { HoursOfWeekDay, HoursOfWeekRange, HoursOfWeekSlotMinutes, HoursOfWeekValue } from '../../types';
2
+ /** Find the first free, interval-aligned block without replacing existing availability. */
3
+ export declare function firstAvailableRange(value: HoursOfWeekValue, day: HoursOfWeekDay, slotMinutes: HoursOfWeekSlotMinutes): HoursOfWeekRange | null;
4
+ //# sourceMappingURL=firstAvailableRange.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"firstAvailableRange.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/components/src/components/HoursOfWeekPicker/helpers/firstAvailableRange/firstAvailableRange.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAI9G,2FAA2F;AAC3F,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,EAAE,cAAc,EAAE,WAAW,EAAE,sBAAsB,GAAG,gBAAgB,GAAG,IAAI,CAS9I"}
@@ -0,0 +1,12 @@
1
+ import { valueToMatrix as a } from "../valueToMatrix/valueToMatrix.js";
2
+ import { formatTime as n } from "../formatTime/formatTime.js";
3
+ function m(i, o, l) {
4
+ const e = a(i)[o], r = l / 15;
5
+ for (let t = 0; t + r <= e.length; t += r)
6
+ if (!e.slice(t, t + r).some(Boolean))
7
+ return { day: o, start: n(t), end: n(t + r) };
8
+ return null;
9
+ }
10
+ export {
11
+ m as firstAvailableRange
12
+ };
@@ -0,0 +1,4 @@
1
+ import { HoursOfWeekLabelGetter } from '../../types';
2
+ /** Format exact quarter-hour durations with the component dictionary's localized templates. */
3
+ export declare function formatDuration(minutes: number, getLabel: HoursOfWeekLabelGetter): string;
4
+ //# sourceMappingURL=formatDuration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatDuration.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/components/src/components/HoursOfWeekPicker/helpers/formatDuration/formatDuration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAE1D,+FAA+F;AAC/F,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,sBAAsB,GAAG,MAAM,CAQxF"}
@@ -0,0 +1,7 @@
1
+ function n(_, o) {
2
+ const r = Math.floor(_ / 60), u = _ % 60;
3
+ return u === 0 ? o("hours_of_week_picker.duration_hours", r) : r === 0 ? o("hours_of_week_picker.duration_minutes", u) : o("hours_of_week_picker.duration_hours_minutes", r, u);
4
+ }
5
+ export {
6
+ n as formatDuration
7
+ };
@@ -0,0 +1,3 @@
1
+ /** Format a clock boundary as HH:mm, including minute-rounded solar guides and 24:00. */
2
+ export declare function formatTime(unit: number): string;
3
+ //# sourceMappingURL=formatTime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatTime.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/components/src/components/HoursOfWeekPicker/helpers/formatTime/formatTime.ts"],"names":[],"mappings":"AACA,yFAAyF;AACzF,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG/C"}
@@ -0,0 +1,8 @@
1
+ import { HOURS_OF_WEEK_UNIT_MINUTES as o } from "../../constants.js";
2
+ function a(r) {
3
+ const t = Math.round(r * o);
4
+ return `${String(Math.floor(t / 60)).padStart(2, "0")}:${String(t % 60).padStart(2, "0")}`;
5
+ }
6
+ export {
7
+ a as formatTime
8
+ };
@@ -0,0 +1,4 @@
1
+ import { HoursOfWeekCellState } from '../../types';
2
+ /** Describe a displayed cell without rounding away its quarter-hour selections. */
3
+ export declare function getCellState(row: readonly boolean[], start: number, count: number): HoursOfWeekCellState;
4
+ //# sourceMappingURL=getCellState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getCellState.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/components/src/components/HoursOfWeekPicker/helpers/getCellState/getCellState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxD,mFAAmF;AACnF,wBAAgB,YAAY,CAAC,GAAG,EAAE,SAAS,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,oBAAoB,CAGxG"}
@@ -0,0 +1,7 @@
1
+ function i(n, e, l) {
2
+ const t = n.slice(e, e + l).filter(Boolean).length;
3
+ return t === l ? "full" : t === 0 ? "empty" : "partial";
4
+ }
5
+ export {
6
+ i as getCellState
7
+ };
@@ -0,0 +1,6 @@
1
+ import { HoursOfWeekPeriodClock, HoursOfWeekPeriodLocation } from '../../types';
2
+ /** Read civil date/time in the reference zone without using the browser's local timezone. */
3
+ export declare function getDayPeriodClock(date: Date, location: HoursOfWeekPeriodLocation): HoursOfWeekPeriodClock;
4
+ /** Resolve a reference-day clock; hour zero denotes the first actual instant of that civil date. */
5
+ export declare function getDayPeriodInstant(date: string, hour: number, location: HoursOfWeekPeriodLocation): Date;
6
+ //# sourceMappingURL=getDayPeriodClock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getDayPeriodClock.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/components/src/components/HoursOfWeekPicker/helpers/getDayPeriodClock/getDayPeriodClock.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAErF,6FAA6F;AAC7F,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,yBAAyB,GAAG,sBAAsB,CAOzG;AAED,oGAAoG;AACpG,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,yBAAyB,GAAG,IAAI,CAgBzG"}
@@ -0,0 +1,33 @@
1
+ import { zonedTimeToUtc as u } from "date-fns-tz";
2
+ function d(t, o) {
3
+ const r = new Intl.DateTimeFormat("en-CA", {
4
+ timeZone: o.timeZone,
5
+ calendar: "iso8601",
6
+ numberingSystem: "latn",
7
+ year: "numeric",
8
+ month: "2-digit",
9
+ day: "2-digit",
10
+ hour: "2-digit",
11
+ minute: "2-digit",
12
+ second: "2-digit",
13
+ hourCycle: "h23"
14
+ }).formatToParts(t), e = Object.fromEntries(r.map((n) => [n.type, n.value]));
15
+ return { date: `${e.year}-${e.month}-${e.day}`, hour: Number(e.hour), minute: Number(e.minute), second: Number(e.second) };
16
+ }
17
+ function c(t, o, r) {
18
+ const e = `${t}T${String(o).padStart(2, "0")}:00:00`;
19
+ if (o === 0) {
20
+ const n = Date.parse(`${t}T00:00:00Z`);
21
+ let a = n - 2880 * 6e4, i = n + 2880 * 6e4;
22
+ for (; i - a > 1; ) {
23
+ const m = Math.floor((a + i) / 2);
24
+ d(new Date(m), r).date < t ? a = m : i = m;
25
+ }
26
+ return new Date(i);
27
+ }
28
+ return u(e, r.timeZone);
29
+ }
30
+ export {
31
+ d as getDayPeriodClock,
32
+ c as getDayPeriodInstant
33
+ };
@@ -0,0 +1,4 @@
1
+ import { HoursOfWeekDayPeriodReference, HoursOfWeekPeriodLocation } from '../../types';
2
+ /** Build complete local-clock bands from real sunrise/set instants, including midnight and polar conditions. */
3
+ export declare function getDayPeriodReference(location: HoursOfWeekPeriodLocation, referenceDate: Date): HoursOfWeekDayPeriodReference;
4
+ //# sourceMappingURL=getDayPeriodReference.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getDayPeriodReference.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/components/src/components/HoursOfWeekPicker/helpers/getDayPeriodReference/getDayPeriodReference.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,6BAA6B,EAAqB,yBAAyB,EAAyB,MAAM,aAAa,CAAC;AAKtI,gHAAgH;AAChH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,yBAAyB,EAAE,aAAa,EAAE,IAAI,GAAG,6BAA6B,CAoC7H"}
@@ -0,0 +1,31 @@
1
+ import { getTimes as T, getPosition as w } from "suncalc";
2
+ import { getDayPeriodClock as h, getDayPeriodInstant as f } from "../getDayPeriodClock/getDayPeriodClock.js";
3
+ const p = 864e5;
4
+ function M(t, D) {
5
+ const { date: d } = h(D, t), m = f(d, 12, t), A = f(d, 0, t), k = new Date(Date.parse(`${d}T00:00:00Z`) + p).toISOString().slice(0, 10), l = f(k, 0, t), y = /* @__PURE__ */ new Map();
6
+ for (const e of [-1, 0, 1]) {
7
+ const i = T(new Date(m.getTime() + e * p), t.latitude, t.longitude);
8
+ for (const s of ["sunrise", "sunset"]) {
9
+ const n = i[s];
10
+ if (!n || n < A || n >= l)
11
+ continue;
12
+ const o = h(n, t), c = Math.round(o.hour * 60 + o.minute + o.second / 60);
13
+ y.set(n.getTime(), { unit: Math.min(96, c / 15), daylightAfter: s === "sunrise" });
14
+ }
15
+ }
16
+ const r = [...y.values()].sort((e, i) => e.unit - i.unit);
17
+ let u = r.length > 0 ? !r[0].daylightAfter : w(m, t.latitude, t.longitude).altitude >= -16 / 60, a = 0;
18
+ const g = [];
19
+ for (let e = 0; e <= r.length; e += 1) {
20
+ const i = r[e], s = i?.unit ?? 96;
21
+ if (s > a) {
22
+ const n = u ? "daytime" : r.slice(e).some((c) => c.daylightAfter) ? "early_morning" : "nighttime", o = g.at(-1);
23
+ o?.key === n ? o.end = s : g.push({ key: n, start: a, end: s });
24
+ }
25
+ a = s, u = i?.daylightAfter ?? u;
26
+ }
27
+ return { location: t, date: d, periods: g, nextRefreshAt: l.getTime() };
28
+ }
29
+ export {
30
+ M as getDayPeriodReference
31
+ };
@@ -0,0 +1,4 @@
1
+ import { HoursOfWeekSlotMinutes, HoursOfWeekTimeOption } from '../../types';
2
+ /** Offer interval-aligned times while retaining an existing finer-grained boundary. */
3
+ export declare function getTimeOptions(slotMinutes: HoursOfWeekSlotMinutes, current: string, allowEnd: boolean): HoursOfWeekTimeOption[];
4
+ //# sourceMappingURL=getTimeOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTimeOptions.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/components/src/components/HoursOfWeekPicker/helpers/getTimeOptions/getTimeOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAIjF,uFAAuF;AACvF,wBAAgB,cAAc,CAAC,WAAW,EAAE,sBAAsB,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,qBAAqB,EAAE,CAK/H"}
@@ -0,0 +1,9 @@
1
+ import { formatTime as p } from "../formatTime/formatTime.js";
2
+ import { parseTime as i } from "../parseTime/parseTime.js";
3
+ function c(e, a, t) {
4
+ const f = t ? 96 : 96 - e / 15, o = Array.from({ length: f / (e / 15) + 1 }, (r, m) => m * e / 15);
5
+ return o.push(i(a, t)), [...new Set(o)].sort((r, m) => r - m).map((r) => ({ value: p(r), label: p(r) }));
6
+ }
7
+ export {
8
+ c as getTimeOptions
9
+ };
@@ -0,0 +1,8 @@
1
+ import { HoursOfWeekMatrix } from '../../types';
2
+ /** Count weekday minutes separately from the independent holiday schedule. */
3
+ export declare function getTotals(matrix: HoursOfWeekMatrix): {
4
+ days: number[];
5
+ week: number;
6
+ holidays: number;
7
+ };
8
+ //# sourceMappingURL=getTotals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTotals.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/components/src/components/HoursOfWeekPicker/helpers/getTotals/getTotals.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,8EAA8E;AAC9E,wBAAgB,SAAS,CAAC,MAAM,EAAE,iBAAiB;;;;EAGlD"}
@@ -0,0 +1,8 @@
1
+ import { HOURS_OF_WEEK_UNIT_MINUTES as l, HOURS_OF_WEEK_HOLIDAY_DAY as t } from "../../constants.js";
2
+ function a(_) {
3
+ const e = _.map((o) => o.filter(Boolean).length * l);
4
+ return { days: e, week: e.slice(0, t).reduce((o, r) => o + r, 0), holidays: e[t] };
5
+ }
6
+ export {
7
+ a as getTotals
8
+ };
@@ -0,0 +1,4 @@
1
+ import { HoursOfWeekPeriod, HoursOfWeekVisiblePeriod } from '../../types';
2
+ /** Clip reference day periods to the visible local-hour interval without touching saved ranges. */
3
+ export declare function getVisiblePeriods(startUnit: number, endUnit: number, periods: readonly HoursOfWeekPeriod[]): HoursOfWeekVisiblePeriod[];
4
+ //# sourceMappingURL=getVisiblePeriods.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getVisiblePeriods.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/components/src/components/HoursOfWeekPicker/helpers/getVisiblePeriods/getVisiblePeriods.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAE/E,mGAAmG;AACnG,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,iBAAiB,EAAE,GAAG,wBAAwB,EAAE,CAKvI"}
@@ -0,0 +1,6 @@
1
+ function m(a, e, s) {
2
+ return s.map((t) => ({ ...t, start: Math.max(a, t.start), end: Math.min(e, t.end) })).filter((t) => t.start < t.end).map((t) => ({ ...t, startPercent: (t.start - a) / (e - a) * 100, widthPercent: (t.end - t.start) / (e - a) * 100 }));
3
+ }
4
+ export {
5
+ m as getVisiblePeriods
6
+ };
@@ -0,0 +1,17 @@
1
+ export { parseTime } from './parseTime/parseTime';
2
+ export { formatTime } from './formatTime/formatTime';
3
+ export { valueToMatrix } from './valueToMatrix/valueToMatrix';
4
+ export { matrixToValue } from './matrixToValue/matrixToValue';
5
+ export { getCellState } from './getCellState/getCellState';
6
+ export { applyRectangle } from './applyRectangle/applyRectangle';
7
+ export { toggleDay } from './toggleDay/toggleDay';
8
+ export { toggleHour } from './toggleHour/toggleHour';
9
+ export { copyDay } from './copyDay/copyDay';
10
+ export { getTotals } from './getTotals/getTotals';
11
+ export { formatDuration } from './formatDuration/formatDuration';
12
+ export { resolveVisibleRange } from './resolveVisibleRange/resolveVisibleRange';
13
+ export { firstAvailableRange } from './firstAvailableRange/firstAvailableRange';
14
+ export { validateRange } from './validateRange/validateRange';
15
+ export { replaceDayRanges } from './replaceDayRanges/replaceDayRanges';
16
+ export { getTimeOptions } from './getTimeOptions/getTimeOptions';
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../packages/components/src/components/HoursOfWeekPicker/helpers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { HoursOfWeekMatrix, HoursOfWeekValue } from '../../types';
2
+ /** Emit sorted, non-overlapping ranges with contiguous quarter-hours joined. */
3
+ export declare function matrixToValue(matrix: HoursOfWeekMatrix): HoursOfWeekValue;
4
+ //# sourceMappingURL=matrixToValue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matrixToValue.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/components/src/components/HoursOfWeekPicker/helpers/matrixToValue/matrixToValue.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEvE,gFAAgF;AAChF,wBAAgB,aAAa,CAAC,MAAM,EAAE,iBAAiB,GAAG,gBAAgB,CAczE"}
@@ -0,0 +1,14 @@
1
+ import { HOURS_OF_WEEK_DAYS as a, HOURS_OF_WEEK_UNITS as f } from "../../constants.js";
2
+ import { formatTime as i } from "../formatTime/formatTime.js";
3
+ function _(n) {
4
+ const o = [];
5
+ for (const e of a) {
6
+ let r = -1;
7
+ for (let t = 0; t <= f; t++)
8
+ t < f && n[e][t] ? r < 0 && (r = t) : r >= 0 && (o.push({ day: e, start: i(r), end: i(t) }), r = -1);
9
+ }
10
+ return o;
11
+ }
12
+ export {
13
+ _ as matrixToValue
14
+ };
@@ -0,0 +1,3 @@
1
+ /** Parse a quarter-hour local time, accepting midnight only as an end boundary. */
2
+ export declare function parseTime(time: string, allowEndOfDay?: boolean): number;
3
+ //# sourceMappingURL=parseTime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseTime.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/components/src/components/HoursOfWeekPicker/helpers/parseTime/parseTime.ts"],"names":[],"mappings":"AACA,mFAAmF;AACnF,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,UAAQ,GAAG,MAAM,CAOrE"}
@@ -0,0 +1,12 @@
1
+ import { HOURS_OF_WEEK_UNIT_MINUTES as n } from "../../constants.js";
2
+ function s(e, t = !1) {
3
+ if (!/^(?:[01]\d|2[0-3]):[0-5]\d$/.test(e) && !(t && e === "24:00"))
4
+ throw new RangeError("Expected HH:mm local time; 24:00 is only valid as an end.");
5
+ const [o, r] = e.split(":").map(Number);
6
+ if (r % n !== 0)
7
+ throw new RangeError("Time must align to 15 minutes.");
8
+ return (o * 60 + r) / n;
9
+ }
10
+ export {
11
+ s as parseTime
12
+ };
@@ -0,0 +1,4 @@
1
+ import { HoursOfWeekDay, HoursOfWeekValue } from '../../types';
2
+ /** Replace one complete day while preserving every other day and normalizing adjacency. */
3
+ export declare function replaceDayRanges(value: HoursOfWeekValue, day: HoursOfWeekDay, ranges: HoursOfWeekValue): HoursOfWeekValue;
4
+ //# sourceMappingURL=replaceDayRanges.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replaceDayRanges.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/components/src/components/HoursOfWeekPicker/helpers/replaceDayRanges/replaceDayRanges.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAIpE,2FAA2F;AAC3F,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,gBAAgB,GAAG,gBAAgB,CAEzH"}
@@ -0,0 +1,8 @@
1
+ import { matrixToValue as t } from "../matrixToValue/matrixToValue.js";
2
+ import { valueToMatrix as i } from "../valueToMatrix/valueToMatrix.js";
3
+ function f(e, a, o) {
4
+ return t(i([...e.filter((r) => r.day !== a), ...o.map((r) => ({ ...r, day: a }))]));
5
+ }
6
+ export {
7
+ f as replaceDayRanges
8
+ };
@@ -0,0 +1,4 @@
1
+ import { HoursOfWeekLocation, HoursOfWeekPeriodLocation } from '../../types';
2
+ /** Use a valid explicit location, otherwise the fixed Bogotá reference without consulting user preferences. */
3
+ export declare function resolveDayPeriodLocation(location?: HoursOfWeekLocation | null): HoursOfWeekPeriodLocation;
4
+ //# sourceMappingURL=resolveDayPeriodLocation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveDayPeriodLocation.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/components/src/components/HoursOfWeekPicker/helpers/resolveDayPeriodLocation/resolveDayPeriodLocation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAElF,+GAA+G;AAC/G,wBAAgB,wBAAwB,CAAC,QAAQ,CAAC,EAAE,mBAAmB,GAAG,IAAI,GAAG,yBAAyB,CAqBzG"}
@@ -0,0 +1,23 @@
1
+ import { HOURS_OF_WEEK_DEFAULT_LOCATION as r } from "../../constants.js";
2
+ function u(e) {
3
+ if (!e || typeof e.latitude != "number" || !Number.isFinite(e.latitude) || Math.abs(e.latitude) > 90 || typeof e.longitude != "number" || !Number.isFinite(e.longitude) || Math.abs(e.longitude) > 180 || typeof e.timeZone != "string" || !e.timeZone.trim())
4
+ return { ...r };
5
+ const t = e.timeZone.trim();
6
+ if (/^[+-]/.test(t))
7
+ return { ...r };
8
+ try {
9
+ new Intl.DateTimeFormat("en", { timeZone: t }).format(0);
10
+ } catch {
11
+ return { ...r };
12
+ }
13
+ return {
14
+ latitude: e.latitude,
15
+ longitude: e.longitude,
16
+ timeZone: t,
17
+ name: typeof e.name == "string" && e.name.trim() ? e.name.trim() : t,
18
+ source: "prop"
19
+ };
20
+ }
21
+ export {
22
+ u as resolveDayPeriodLocation
23
+ };
@@ -0,0 +1,4 @@
1
+ import { HoursOfWeekVisibleRange } from '../../types';
2
+ /** Reject invalid viewports so every rendered cell stays within its calendar day. */
3
+ export declare function resolveVisibleRange(range: HoursOfWeekVisibleRange): HoursOfWeekVisibleRange;
4
+ //# sourceMappingURL=resolveVisibleRange.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveVisibleRange.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/components/src/components/HoursOfWeekPicker/helpers/resolveVisibleRange/resolveVisibleRange.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAC3D,qFAAqF;AACrF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,uBAAuB,GAAG,uBAAuB,CAK3F"}
@@ -0,0 +1,8 @@
1
+ function e(r) {
2
+ if (!Number.isInteger(r.startHour) || !Number.isInteger(r.endHour) || r.startHour < 0 || r.endHour > 24 || r.startHour >= r.endHour)
3
+ throw new RangeError("visibleRange requires integer hours with 0 <= startHour < endHour <= 24.");
4
+ return r;
5
+ }
6
+ export {
7
+ e as resolveVisibleRange
8
+ };
@@ -0,0 +1,4 @@
1
+ import { HoursOfWeekDay, HoursOfWeekMatrix } from '../../types';
2
+ /** Toggle a day's visible interval, retaining selections outside that interval. */
3
+ export declare function toggleDay(matrix: HoursOfWeekMatrix, day: HoursOfWeekDay, startUnit: number, endUnit: number): HoursOfWeekMatrix;
4
+ //# sourceMappingURL=toggleDay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggleDay.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/components/src/components/HoursOfWeekPicker/helpers/toggleDay/toggleDay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErE,mFAAmF;AACnF,wBAAgB,SAAS,CAAC,MAAM,EAAE,iBAAiB,EAAE,GAAG,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,iBAAiB,CAG/H"}
@@ -0,0 +1,8 @@
1
+ import { applyRectangle as g } from "../applyRectangle/applyRectangle.js";
2
+ function s(l, e, o, c) {
3
+ const p = !l[e].slice(o, c).every(Boolean);
4
+ return g(l, { day: e, slot: 0 }, { day: e, slot: c - o - 1 }, 1, o, p);
5
+ }
6
+ export {
7
+ s as toggleDay
8
+ };
@@ -0,0 +1,4 @@
1
+ import { HoursOfWeekMatrix } from '../../types';
2
+ /** Toggle one complete hour across the week and independent holiday schedule. */
3
+ export declare function toggleHour(matrix: HoursOfWeekMatrix, hour: number): HoursOfWeekMatrix;
4
+ //# sourceMappingURL=toggleHour.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggleHour.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/components/src/components/HoursOfWeekPicker/helpers/toggleHour/toggleHour.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD,iFAAiF;AACjF,wBAAgB,UAAU,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAIrF"}
@@ -0,0 +1,9 @@
1
+ import { HOURS_OF_WEEK_HOLIDAY_DAY as n } from "../../constants.js";
2
+ import { applyRectangle as s } from "../applyRectangle/applyRectangle.js";
3
+ function p(o, t) {
4
+ const e = t * 4, r = !o.every((l) => l.slice(e, e + 4).every(Boolean));
5
+ return s(o, { day: 0, slot: 0 }, { day: n, slot: 3 }, 1, e, r);
6
+ }
7
+ export {
8
+ p as toggleHour
9
+ };
@@ -0,0 +1,4 @@
1
+ import { HoursOfWeekRange, HoursOfWeekRangeError, HoursOfWeekValue } from '../../types';
2
+ /** Reject invalid or overlapping drafts, excluding the day-local range being edited. */
3
+ export declare function validateRange(value: HoursOfWeekValue, range: HoursOfWeekRange, index?: number): HoursOfWeekRangeError | null;
4
+ //# sourceMappingURL=validateRange.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateRange.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/components/src/components/HoursOfWeekPicker/helpers/validateRange/validateRange.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAM7F,wFAAwF;AACxF,wBAAgB,aAAa,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,SAAK,GAAG,qBAAqB,GAAG,IAAI,CAUxH"}
@@ -0,0 +1,15 @@
1
+ import { parseTime as a } from "../parseTime/parseTime.js";
2
+ import { HOURS_OF_WEEK_DAYS as s } from "../../constants.js";
3
+ import { matrixToValue as d } from "../matrixToValue/matrixToValue.js";
4
+ import { valueToMatrix as m } from "../valueToMatrix/valueToMatrix.js";
5
+ function _(i, r, n = -1) {
6
+ try {
7
+ const e = a(r.start), o = a(r.end, !0);
8
+ return !s.includes(r.day) || e >= o ? "invalid_range" : d(m(i)).filter((t) => t.day === r.day).some((t, l) => l !== n && e < a(t.end, !0) && o > a(t.start)) ? "overlap" : null;
9
+ } catch {
10
+ return "invalid_range";
11
+ }
12
+ }
13
+ export {
14
+ _ as validateRange
15
+ };
@@ -0,0 +1,4 @@
1
+ import { HoursOfWeekMatrix, HoursOfWeekValue } from '../../types';
2
+ /** Validate recurring ranges and merge them into an immutable quarter-hour matrix. */
3
+ export declare function valueToMatrix(value: HoursOfWeekValue): HoursOfWeekMatrix;
4
+ //# sourceMappingURL=valueToMatrix.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"valueToMatrix.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/components/src/components/HoursOfWeekPicker/helpers/valueToMatrix/valueToMatrix.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEvE,sFAAsF;AACtF,wBAAgB,aAAa,CAAC,KAAK,EAAE,gBAAgB,GAAG,iBAAiB,CAUxE"}
@@ -0,0 +1,17 @@
1
+ import { HOURS_OF_WEEK_DAYS as n, HOURS_OF_WEEK_UNITS as i } from "../../constants.js";
2
+ import { parseTime as o } from "../parseTime/parseTime.js";
3
+ function l(s) {
4
+ const t = n.map(() => Array(i).fill(!1));
5
+ for (const r of s) {
6
+ if (!n.includes(r.day))
7
+ throw new RangeError("Day must be between 0 (Monday) and 7 (Holidays).");
8
+ const e = o(r.start), a = o(r.end, !0);
9
+ if (a <= e)
10
+ throw new RangeError("Range end must be later than start; split overnight ranges across days.");
11
+ t[r.day].fill(!0, e, a);
12
+ }
13
+ return t;
14
+ }
15
+ export {
16
+ l as valueToMatrix
17
+ };
@@ -0,0 +1,22 @@
1
+ import { HoursOfWeekCardsOptions, HoursOfWeekDay, HoursOfWeekDraft, HoursOfWeekValue } from '../../types';
2
+ /** Coordinate touch-friendly day expansion, draft editing and explicit copy destinations. */
3
+ export declare function useHoursOfWeekCards({ value, onChange, slotMinutes, disabled, readOnly }: HoursOfWeekCardsOptions): {
4
+ ranges: HoursOfWeekValue;
5
+ expanded: HoursOfWeekDay | null;
6
+ draft: HoursOfWeekDraft | null;
7
+ copying: HoursOfWeekDay | null;
8
+ targets: HoursOfWeekDay[];
9
+ blocked: boolean;
10
+ rangeError: import('../../types').HoursOfWeekRangeError | null;
11
+ expand: (day: HoursOfWeekDay) => void;
12
+ edit: (day: HoursOfWeekDay, index?: number) => void;
13
+ toggle: (day: HoursOfWeekDay) => void;
14
+ updateDraft: (boundary: "start" | "end", time: string) => void;
15
+ apply: () => void;
16
+ remove: (day: HoursOfWeekDay, index: number) => void;
17
+ startCopy: (day: HoursOfWeekDay) => void;
18
+ toggleTarget: (day: HoursOfWeekDay) => void;
19
+ applyCopy: () => void;
20
+ cancel: () => void;
21
+ };
22
+ //# sourceMappingURL=useHoursOfWeekCards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHoursOfWeekCards.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/components/src/components/HoursOfWeekPicker/hooks/useHoursOfWeekCards/useHoursOfWeekCards.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,uBAAuB,EAAE,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/G,6FAA6F;AAC7F,wBAAgB,mBAAmB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAgD,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,uBAAuB;;;;;;;;kBAmBnH,cAAc;gBAOhB,cAAc;kBAQZ,cAAc;4BAQJ,OAAO,GAAG,KAAK,QAAQ,MAAM;;kBAcvC,cAAc,SAAS,MAAM;qBAO1B,cAAc;wBAMX,cAAc;;;EAatD"}
@@ -0,0 +1,49 @@
1
+ import { useMemo as W, useState as u, useCallback as a, useEffect as b } from "react";
2
+ import { HOURS_OF_WEEK_DEFAULT_SLOT_MINUTES as B } from "../../constants.js";
3
+ import { matrixToValue as I } from "../../helpers/matrixToValue/matrixToValue.js";
4
+ import { valueToMatrix as K } from "../../helpers/valueToMatrix/valueToMatrix.js";
5
+ import { validateRange as M } from "../../helpers/validateRange/validateRange.js";
6
+ import { firstAvailableRange as N } from "../../helpers/firstAvailableRange/firstAvailableRange.js";
7
+ import { replaceDayRanges as p } from "../../helpers/replaceDayRanges/replaceDayRanges.js";
8
+ function P({ value: g, onChange: C, slotMinutes: m = B, disabled: d, readOnly: O }) {
9
+ const n = W(() => I(K(g)), [g]), [S, D] = u(null), [l, y] = u(null), [i, x] = u(null), [c, E] = u([]), r = !!(d || O), T = l ? M(n, l, l.index) : null, o = a(() => {
10
+ y(null), x(null), E([]);
11
+ }, []);
12
+ b(() => {
13
+ o();
14
+ }, [g, m, r, o]);
15
+ const f = a((t) => {
16
+ C?.(t);
17
+ }, [C]), k = a((t) => {
18
+ d || (o(), D((e) => e === t ? null : t));
19
+ }, [o, d]), _ = a((t, e = -1) => {
20
+ if (r)
21
+ return;
22
+ const s = e < 0 ? N(n, t, m) : n.filter((R) => R.day === t)[e];
23
+ s && (D(t), x(null), E([]), y({ ...s, index: e }));
24
+ }, [r, n, m]), U = a((t) => {
25
+ r || (o(), n.some((e) => e.day === t) ? f(p(n, t, [])) : _(t));
26
+ }, [r, o, f, _, n]), h = a((t, e) => {
27
+ r || y((s) => s ? { ...s, [t]: e } : null);
28
+ }, [r]), v = a(() => {
29
+ if (!l || r || T)
30
+ return;
31
+ const t = n.filter((s) => s.day === l.day), e = { day: l.day, start: l.start, end: l.end };
32
+ l.index < 0 ? t.push(e) : t[l.index] = e, f(p(n, l.day, t)), o();
33
+ }, [l, r, T, n, f, o]), A = a((t, e) => {
34
+ r || (f(p(n, t, n.filter((s) => s.day === t).filter((s, R) => R !== e))), o());
35
+ }, [r, f, n, o]), F = a((t) => {
36
+ r || (o(), x(t));
37
+ }, [r, o]), H = a((t) => {
38
+ r || i === null || t === i || E((e) => e.includes(t) ? e.filter((s) => s !== t) : [...e, t]);
39
+ }, [r, i]), L = a(() => {
40
+ if (r || i === null || c.length === 0)
41
+ return;
42
+ const t = n.filter((e) => e.day === i);
43
+ f(c.reduce((e, s) => p(e, s, t), n)), o();
44
+ }, [r, i, c, n, f, o]);
45
+ return { ranges: n, expanded: S, draft: l, copying: i, targets: c, blocked: r, rangeError: T, expand: k, edit: _, toggle: U, updateDraft: h, apply: v, remove: A, startCopy: F, toggleTarget: H, applyCopy: L, cancel: o };
46
+ }
47
+ export {
48
+ P as useHoursOfWeekCards
49
+ };
@@ -0,0 +1,4 @@
1
+ import { HoursOfWeekLocation } from '../../types';
2
+ /** Recompute solar guides after site changes, local midnight or resuming a background page. */
3
+ export declare function useHoursOfWeekDayPeriods(enabled: boolean, referenceDate?: Date, location?: HoursOfWeekLocation | null): import('../../types').HoursOfWeekDayPeriodReference | null;
4
+ //# sourceMappingURL=useHoursOfWeekDayPeriods.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHoursOfWeekDayPeriods.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/components/src/components/HoursOfWeekPicker/hooks/useHoursOfWeekDayPeriods/useHoursOfWeekDayPeriods.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAKvD,+FAA+F;AAC/F,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,mBAAmB,GAAG,IAAI,8DAwBrH"}