@spacesync/client 0.1.10 → 0.1.12
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/README.md +105 -13
- package/dist/analog-clock-picker.js +3 -11
- package/dist/analog-clock-picker.js.map +1 -1
- package/dist/booking-schedule-calendars.js +82 -19
- package/dist/booking-schedule-calendars.js.map +1 -1
- package/dist/booking-schedule.js +1 -1
- package/dist/booking-space-layout-picker.d.ts +1 -1
- package/dist/booking-space-layout-picker.js +8 -11
- package/dist/booking-space-layout-picker.js.map +1 -1
- package/dist/button-Iem7kbk0.d.ts +16 -0
- package/dist/chat-stick-to-bottom.js +0 -10
- package/dist/chat-stick-to-bottom.js.map +1 -1
- package/dist/chunk-2IZODKTR.js +116 -0
- package/dist/chunk-2IZODKTR.js.map +1 -0
- package/dist/chunk-2TT2ZGMT.js +21 -0
- package/dist/chunk-2TT2ZGMT.js.map +1 -0
- package/dist/chunk-3MAGTCCN.js +192 -0
- package/dist/chunk-3MAGTCCN.js.map +1 -0
- package/dist/chunk-56H7UFAW.js +237 -0
- package/dist/chunk-56H7UFAW.js.map +1 -0
- package/dist/{chunk-OTSA5ROL.js → chunk-5CUJZNUC.js} +16 -5
- package/dist/chunk-5CUJZNUC.js.map +1 -0
- package/dist/chunk-5HOK5JHR.js +60 -0
- package/dist/chunk-5HOK5JHR.js.map +1 -0
- package/dist/chunk-6VJQIBC3.js +715 -0
- package/dist/chunk-6VJQIBC3.js.map +1 -0
- package/dist/{chunk-H7EX6B6N.js → chunk-AHFRK6KP.js} +25 -7
- package/dist/chunk-AHFRK6KP.js.map +1 -0
- package/dist/chunk-BQVMO33N.js +133 -0
- package/dist/chunk-BQVMO33N.js.map +1 -0
- package/dist/chunk-CXXOKCLJ.js +37 -0
- package/dist/chunk-CXXOKCLJ.js.map +1 -0
- package/dist/chunk-EQLKSX4E.js +241 -0
- package/dist/chunk-EQLKSX4E.js.map +1 -0
- package/dist/chunk-FN4BWFDX.js +43 -0
- package/dist/chunk-FN4BWFDX.js.map +1 -0
- package/dist/chunk-HRHDOLWU.js +62 -0
- package/dist/chunk-HRHDOLWU.js.map +1 -0
- package/dist/chunk-HZB2EHEH.js +216 -0
- package/dist/chunk-HZB2EHEH.js.map +1 -0
- package/dist/chunk-IBGGQXTH.js +21 -0
- package/dist/chunk-IBGGQXTH.js.map +1 -0
- package/dist/chunk-JCEOU7BU.js +128 -0
- package/dist/chunk-JCEOU7BU.js.map +1 -0
- package/dist/{chunk-CKCXQBHQ.js → chunk-KXTYPZDK.js} +91 -19
- package/dist/chunk-KXTYPZDK.js.map +1 -0
- package/dist/{chunk-RV5PMZYZ.js → chunk-MBZAYH5D.js} +4 -18
- package/dist/chunk-MBZAYH5D.js.map +1 -0
- package/dist/chunk-NWVNYKND.js +153 -0
- package/dist/chunk-NWVNYKND.js.map +1 -0
- package/dist/chunk-PPMJZVR4.js +37 -0
- package/dist/chunk-PPMJZVR4.js.map +1 -0
- package/dist/chunk-SHMKDGFF.js +75 -0
- package/dist/chunk-SHMKDGFF.js.map +1 -0
- package/dist/chunk-T3SOBIYA.js +61 -0
- package/dist/chunk-T3SOBIYA.js.map +1 -0
- package/dist/chunk-TH5RASJS.js +97 -0
- package/dist/chunk-TH5RASJS.js.map +1 -0
- package/dist/{chunk-LUB7QWGU.js → chunk-VIJ2HWPZ.js} +5 -159
- package/dist/chunk-VIJ2HWPZ.js.map +1 -0
- package/dist/chunk-VQ63T7CJ.js +22 -0
- package/dist/chunk-VQ63T7CJ.js.map +1 -0
- package/dist/chunk-XDVGFHK4.js +50 -0
- package/dist/chunk-XDVGFHK4.js.map +1 -0
- package/dist/chunk-XI4BQY5T.js +188 -0
- package/dist/chunk-XI4BQY5T.js.map +1 -0
- package/dist/chunk-ZVWUPYSV.js +170 -0
- package/dist/chunk-ZVWUPYSV.js.map +1 -0
- package/dist/detail-page-header.js +1 -1
- package/dist/file-viewer-dialog.js +3 -9
- package/dist/file-viewer-dialog.js.map +1 -1
- package/dist/floor-switcher.js +5 -9
- package/dist/floor-switcher.js.map +1 -1
- package/dist/{layout-canvas-view-DOjyUNJH.d.ts → layout-canvas-view-C3u96xu4.d.ts} +5 -1
- package/dist/layout-canvas-view.d.ts +1 -1
- package/dist/layout-canvas-view.js +8 -11
- package/dist/lib/dateDisplay.d.ts +16 -1
- package/dist/lib/dateDisplay.js +1 -1
- package/dist/notification-sidebar-preview.js +1 -1
- package/dist/page-list-chrome.d.ts +3 -1
- package/dist/page-list-chrome.js +5 -3
- package/dist/page-list-loading.js +5 -3
- package/dist/page-list-loading.js.map +1 -1
- package/dist/platform-support-message-composer.js +2 -10
- package/dist/platform-support-message-composer.js.map +1 -1
- package/dist/sidebar-Dzvrjr69.d.ts +85 -0
- package/dist/styles/theme.css +52 -2
- package/dist/styles/theme.css.map +1 -1
- package/dist/support-presence-status.js +1 -1
- package/dist/theme-appearance-control.js +2 -1
- package/dist/theme-appearance-control.js.map +1 -1
- package/dist/ui/accordion.d.ts +9 -0
- package/dist/ui/accordion.js +4 -0
- package/dist/ui/accordion.js.map +1 -0
- package/dist/ui/calendar.d.ts +6 -0
- package/dist/ui/calendar.js +4 -0
- package/dist/ui/calendar.js.map +1 -0
- package/dist/ui/carousel.d.ts +22 -0
- package/dist/ui/carousel.js +5 -0
- package/dist/ui/carousel.js.map +1 -0
- package/dist/ui/chart.d.ts +42 -0
- package/dist/ui/chart.js +229 -0
- package/dist/ui/chart.js.map +1 -0
- package/dist/ui/command.d.ts +19 -0
- package/dist/ui/command.js +5 -0
- package/dist/ui/command.js.map +1 -0
- package/dist/ui/context-menu.d.ts +27 -0
- package/dist/ui/context-menu.js +4 -0
- package/dist/ui/context-menu.js.map +1 -0
- package/dist/ui/form.d.ts +27 -0
- package/dist/ui/form.js +5 -0
- package/dist/ui/form.js.map +1 -0
- package/dist/ui/input-otp.d.ts +13 -0
- package/dist/ui/input-otp.js +4 -0
- package/dist/ui/input-otp.js.map +1 -0
- package/dist/ui/menubar.d.ts +28 -0
- package/dist/ui/menubar.js +4 -0
- package/dist/ui/menubar.js.map +1 -0
- package/dist/ui/navigation-menu.d.ts +17 -0
- package/dist/ui/navigation-menu.js +4 -0
- package/dist/ui/navigation-menu.js.map +1 -0
- package/dist/ui/resizable.d.ts +10 -0
- package/dist/ui/resizable.js +4 -0
- package/dist/ui/resizable.js.map +1 -0
- package/dist/ui/sidebar.d.ts +7 -0
- package/dist/ui/sidebar.js +9 -0
- package/dist/ui/sidebar.js.map +1 -0
- package/dist/ui.d.ts +36 -270
- package/dist/ui.js +2471 -6
- package/dist/ui.js.map +1 -1
- package/package.json +15 -5
- package/dist/chunk-CKCXQBHQ.js.map +0 -1
- package/dist/chunk-F7MU5T46.js +0 -5146
- package/dist/chunk-F7MU5T46.js.map +0 -1
- package/dist/chunk-H7EX6B6N.js.map +0 -1
- package/dist/chunk-LUB7QWGU.js.map +0 -1
- package/dist/chunk-OTSA5ROL.js.map +0 -1
- package/dist/chunk-PBNBLCC2.js +0 -84
- package/dist/chunk-PBNBLCC2.js.map +0 -1
- package/dist/chunk-RV5PMZYZ.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/ui/carousel.tsx"],"names":[],"mappings":"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","file":"chunk-56H7UFAW.js","sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { ArrowLeft, ArrowRight } from \"lucide-react\";\n\nimport { cn } from \"./utils\";\nimport { Button } from \"./button\";\n\ntype CarouselApi = {\n scrollPrev: () => void;\n scrollNext: () => void;\n canScrollPrev: boolean;\n canScrollNext: boolean;\n};\n\ntype CarouselProps = {\n orientation?: \"horizontal\" | \"vertical\";\n setApi?: (api: CarouselApi) => void;\n};\n\ntype CarouselContextProps = {\n orientation: \"horizontal\" | \"vertical\";\n setViewportRef: (node: HTMLDivElement | null) => void;\n scrollPrev: () => void;\n scrollNext: () => void;\n canScrollPrev: boolean;\n canScrollNext: boolean;\n};\n\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null);\n\nfunction useCarousel() {\n const context = React.useContext(CarouselContext);\n\n if (!context) {\n throw new Error(\"useCarousel must be used within a <Carousel />\");\n }\n\n return context;\n}\n\nfunction itemStep(viewport: HTMLElement, orientation: \"horizontal\" | \"vertical\") {\n const items = viewport.querySelectorAll(\"[data-slot=carousel-item]\");\n const first = items[0] as HTMLElement | undefined;\n const second = items[1] as HTMLElement | undefined;\n if (!first) {\n return orientation === \"horizontal\" ? viewport.clientWidth * 0.8 : viewport.clientHeight * 0.8;\n }\n if (second) {\n return orientation === \"horizontal\"\n ? second.offsetLeft - first.offsetLeft\n : second.offsetTop - first.offsetTop;\n }\n return orientation === \"horizontal\" ? first.offsetWidth : first.offsetHeight;\n}\n\nfunction Carousel({\n orientation = \"horizontal\",\n setApi,\n className,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & CarouselProps) {\n const viewportRef = React.useRef<HTMLDivElement | null>(null);\n const [viewportEl, setViewportEl] = React.useState<HTMLDivElement | null>(null);\n const [canScrollPrev, setCanScrollPrev] = React.useState(false);\n const [canScrollNext, setCanScrollNext] = React.useState(false);\n\n const setViewportRef = React.useCallback((node: HTMLDivElement | null) => {\n viewportRef.current = node;\n setViewportEl(node);\n }, []);\n\n const updateScrollState = React.useCallback(() => {\n const el = viewportRef.current;\n if (!el) return;\n const pos = orientation === \"horizontal\" ? el.scrollLeft : el.scrollTop;\n const max =\n orientation === \"horizontal\"\n ? el.scrollWidth - el.clientWidth\n : el.scrollHeight - el.clientHeight;\n setCanScrollPrev(pos > 1);\n setCanScrollNext(pos < max - 1);\n }, [orientation]);\n\n const scrollByDir = React.useCallback(\n (dir: -1 | 1) => {\n const el = viewportRef.current;\n if (!el) return;\n const delta = itemStep(el, orientation) * dir;\n el.scrollBy({\n left: orientation === \"horizontal\" ? delta : 0,\n top: orientation === \"vertical\" ? delta : 0,\n behavior: \"smooth\",\n });\n },\n [orientation],\n );\n\n const scrollPrev = React.useCallback(() => {\n scrollByDir(-1);\n }, [scrollByDir]);\n\n const scrollNext = React.useCallback(() => {\n scrollByDir(1);\n }, [scrollByDir]);\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (orientation === \"horizontal\") {\n if (event.key === \"ArrowLeft\") {\n event.preventDefault();\n scrollPrev();\n } else if (event.key === \"ArrowRight\") {\n event.preventDefault();\n scrollNext();\n }\n return;\n }\n if (event.key === \"ArrowUp\") {\n event.preventDefault();\n scrollPrev();\n } else if (event.key === \"ArrowDown\") {\n event.preventDefault();\n scrollNext();\n }\n },\n [orientation, scrollNext, scrollPrev],\n );\n\n React.useEffect(() => {\n const el = viewportEl;\n if (!el) return;\n updateScrollState();\n el.addEventListener(\"scroll\", updateScrollState, { passive: true });\n const observer = new ResizeObserver(updateScrollState);\n observer.observe(el);\n const track = el.firstElementChild;\n if (track instanceof Element) observer.observe(track);\n return () => {\n el.removeEventListener(\"scroll\", updateScrollState);\n observer.disconnect();\n };\n }, [updateScrollState, viewportEl]);\n\n React.useEffect(() => {\n setApi?.({\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n });\n }, [setApi, scrollPrev, scrollNext, canScrollPrev, canScrollNext]);\n\n return (\n <CarouselContext.Provider\n value={{\n orientation,\n setViewportRef,\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div\n tabIndex={0}\n onKeyDownCapture={handleKeyDown}\n className={cn(\"relative\", className)}\n role=\"region\"\n aria-roledescription=\"carousel\"\n data-slot=\"carousel\"\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n );\n}\n\nfunction CarouselContent({ className, ...props }: React.ComponentProps<\"div\">) {\n const { setViewportRef, orientation } = useCarousel();\n\n return (\n <div\n ref={setViewportRef}\n data-slot=\"carousel-viewport\"\n className={cn(\n \"scroll-smooth [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden\",\n orientation === \"horizontal\"\n ? \"overflow-x-auto overflow-y-hidden snap-x snap-mandatory\"\n : \"overflow-y-auto overflow-x-hidden snap-y snap-mandatory\",\n )}\n >\n <div\n data-slot=\"carousel-content\"\n className={cn(\"flex\", orientation === \"vertical\" && \"flex-col\", className)}\n {...props}\n />\n </div>\n );\n}\n\nfunction CarouselItem({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n role=\"group\"\n aria-roledescription=\"slide\"\n data-slot=\"carousel-item\"\n className={cn(\"min-w-0 shrink-0 grow-0 snap-start basis-auto\", className)}\n {...props}\n />\n );\n}\n\nfunction CarouselPrevious({\n className,\n variant = \"outline\",\n size = \"icon\",\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel();\n\n return (\n <Button\n type=\"button\"\n data-slot=\"carousel-previous\"\n variant={variant}\n size={size}\n {...props}\n className={cn(\n \"absolute z-10 size-8 rounded-full bg-background shadow-sm\",\n orientation === \"horizontal\"\n ? \"top-1/2 left-2 -translate-y-1/2\"\n : \"top-2 left-1/2 -translate-x-1/2 rotate-90\",\n !canScrollPrev && \"hidden\",\n className,\n )}\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n >\n <ArrowLeft />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n );\n}\n\nfunction CarouselNext({\n className,\n variant = \"outline\",\n size = \"icon\",\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { orientation, scrollNext, canScrollNext } = useCarousel();\n\n return (\n <Button\n type=\"button\"\n data-slot=\"carousel-next\"\n variant={variant}\n size={size}\n {...props}\n className={cn(\n \"absolute z-10 size-8 rounded-full bg-background shadow-sm\",\n orientation === \"horizontal\"\n ? \"top-1/2 right-2 -translate-y-1/2\"\n : \"bottom-2 left-1/2 -translate-x-1/2 rotate-90\",\n !canScrollNext && \"hidden\",\n className,\n )}\n disabled={!canScrollNext}\n onClick={scrollNext}\n >\n <ArrowRight />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n );\n}\n\nexport {\n type CarouselApi,\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselPrevious,\n CarouselNext,\n};\n"]}
|
|
@@ -105,6 +105,9 @@ function minNeededTimeHm(prepMinutes, now = /* @__PURE__ */ new Date()) {
|
|
|
105
105
|
earliest.setSeconds(0, 0);
|
|
106
106
|
return `${String(earliest.getHours()).padStart(2, "0")}:${String(earliest.getMinutes()).padStart(2, "0")}`;
|
|
107
107
|
}
|
|
108
|
+
function currentTimeHm(now = /* @__PURE__ */ new Date()) {
|
|
109
|
+
return `${String(now.getHours()).padStart(2, "0")}:${String(now.getMinutes()).padStart(2, "0")}`;
|
|
110
|
+
}
|
|
108
111
|
function partialElapsed(config, booking, now = /* @__PURE__ */ new Date()) {
|
|
109
112
|
const today = todayLocalYmd(now);
|
|
110
113
|
if (config.chargeBy === "months") {
|
|
@@ -191,13 +194,21 @@ function applyBookingScheduleDefaults(config, booking, options) {
|
|
|
191
194
|
}
|
|
192
195
|
if (config.chargeBy === "quantity") {
|
|
193
196
|
if (!booking.scheduleDate) patch.scheduleDate = today;
|
|
194
|
-
|
|
197
|
+
const date = patch.scheduleDate ?? booking.scheduleDate ?? today;
|
|
198
|
+
let time = booking.scheduleTime || currentTimeHm(now);
|
|
195
199
|
const prep = options?.preparationMinutes ?? 0;
|
|
196
|
-
if (prep > 0 &&
|
|
200
|
+
if (prep > 0 && date === today) {
|
|
197
201
|
const floor = minNeededTimeHm(prep, now);
|
|
198
202
|
if (time < floor) time = floor;
|
|
199
203
|
}
|
|
200
|
-
if (
|
|
204
|
+
if (time !== booking.scheduleTime) {
|
|
205
|
+
patch.scheduleTime = time;
|
|
206
|
+
patch.scheduleEndTime = time;
|
|
207
|
+
}
|
|
208
|
+
if (!booking.scheduleDate) {
|
|
209
|
+
patch.startDate = date;
|
|
210
|
+
patch.endDate = date;
|
|
211
|
+
}
|
|
201
212
|
if (!booking.itemQuantity) patch.itemQuantity = 1;
|
|
202
213
|
return patch;
|
|
203
214
|
}
|
|
@@ -205,5 +216,5 @@ function applyBookingScheduleDefaults(config, booking, options) {
|
|
|
205
216
|
}
|
|
206
217
|
|
|
207
218
|
export { IS_PARTIAL_MONTH, MIN_MONTH, MIN_WEEK_START, PRICING_TODAY, addDays, addMonthsYm, applyBookingScheduleDefaults, computeMinMonth, computeMinWeekStart, currentMonthYm, currentWeekStart, diffDays, formatPartialElapsedLabel, localDateYmd, monthCount, monthLabel, partialElapsed, pricingTodayYmd, todayLocalYmd, weekCountBetween, weekRangeLabel };
|
|
208
|
-
//# sourceMappingURL=chunk-
|
|
209
|
-
//# sourceMappingURL=chunk-
|
|
219
|
+
//# sourceMappingURL=chunk-5CUJZNUC.js.map
|
|
220
|
+
//# sourceMappingURL=chunk-5CUJZNUC.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/lib/booking-schedule.ts"],"names":[],"mappings":";AA4CO,SAAS,aAAa,CAAA,EAAiB;AAC5C,EAAA,MAAM,CAAA,GAAI,EAAE,WAAA,EAAY;AACxB,EAAA,MAAM,CAAA,GAAI,OAAO,CAAA,CAAE,QAAA,KAAa,CAAC,CAAA,CAAE,QAAA,CAAS,CAAA,EAAG,GAAG,CAAA;AAClD,EAAA,MAAM,GAAA,GAAM,OAAO,CAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,CAAS,GAAG,GAAG,CAAA;AAC/C,EAAA,OAAO,CAAA,EAAG,CAAC,CAAA,CAAA,EAAI,CAAC,IAAI,GAAG,CAAA,CAAA;AACzB;AAEO,SAAS,aAAA,CAAc,GAAA,mBAAY,IAAI,IAAA,EAAK,EAAW;AAC5D,EAAA,OAAO,aAAa,GAAG,CAAA;AACzB;AAGO,SAAS,eAAA,CAAgB,GAAA,mBAAY,IAAI,IAAA,EAAK,EAAW;AAC9D,EAAA,OAAO,cAAc,GAAG,CAAA;AAC1B;AAEO,IAAM,gBAAgB,aAAA;AAEtB,SAAS,cAAA,CAAe,GAAA,mBAAY,IAAI,IAAA,EAAK,EAAW;AAC7D,EAAA,OAAO,CAAA,EAAG,GAAA,CAAI,WAAA,EAAa,IAAI,MAAA,CAAO,GAAA,CAAI,QAAA,EAAS,GAAI,CAAC,CAAA,CAAE,QAAA,CAAS,CAAA,EAAG,GAAG,CAAC,CAAA,CAAA;AAC5E;AAGO,SAAS,gBAAA,CAAiB,GAAA,mBAAY,IAAI,IAAA,EAAK,EAAW;AAC/D,EAAA,MAAM,CAAA,GAAI,IAAI,IAAA,CAAK,GAAA,CAAI,WAAA,EAAY,EAAG,GAAA,CAAI,QAAA,EAAS,EAAG,GAAA,CAAI,OAAA,EAAS,CAAA;AACnE,EAAA,MAAM,GAAA,GAAM,EAAE,MAAA,EAAO;AACrB,EAAA,MAAM,MAAA,GAAS,GAAA,KAAQ,CAAA,GAAI,EAAA,GAAK,CAAA,GAAI,GAAA;AACpC,EAAA,CAAA,CAAE,OAAA,CAAQ,CAAA,CAAE,OAAA,EAAQ,GAAI,MAAM,CAAA;AAC9B,EAAA,OAAO,aAAa,CAAC,CAAA;AACvB;AAGO,SAAS,eAAA,CAAgB,GAAA,mBAAY,IAAI,IAAA,EAAK,EAAW;AAC9D,EAAA,IAAI,GAAA,CAAI,OAAA,EAAQ,KAAM,CAAA,EAAG;AACvB,IAAA,OAAO,eAAe,GAAG,CAAA;AAAA,EAC3B;AACA,EAAA,MAAM,CAAA,GAAI,IAAI,IAAA,CAAK,GAAA,CAAI,WAAA,IAAe,GAAA,CAAI,QAAA,EAAS,GAAI,CAAA,EAAG,CAAC,CAAA;AAC3D,EAAA,OAAO,eAAe,CAAC,CAAA;AACzB;AAGO,SAAS,mBAAA,CAAoB,GAAA,mBAAY,IAAI,IAAA,EAAK,EAAW;AAClE,EAAA,MAAM,GAAA,GAAM,IAAI,MAAA,EAAO;AACvB,EAAA,IAAI,GAAA,KAAQ,CAAA,EAAG,OAAO,aAAA,CAAc,GAAG,CAAA;AACvC,EAAA,MAAM,CAAA,GAAI,IAAI,IAAA,CAAK,GAAA,CAAI,WAAA,EAAY,EAAG,GAAA,CAAI,QAAA,EAAS,EAAG,GAAA,CAAI,OAAA,EAAS,CAAA;AACnE,EAAA,MAAM,IAAA,GAAO,GAAA,KAAQ,CAAA,GAAI,CAAA,GAAI,CAAA,GAAI,GAAA;AACjC,EAAA,CAAA,CAAE,OAAA,CAAQ,CAAA,CAAE,OAAA,EAAQ,GAAI,IAAI,CAAA;AAC5B,EAAA,OAAO,aAAa,CAAC,CAAA;AACvB;AAEO,IAAM,YAAY,eAAA;AAClB,IAAM,iBAAiB,mBAAA;AAEvB,IAAM,gBAAA,GAAA,iBAAmB,IAAI,IAAA,EAAK,EAAE,SAAQ,KAAM;AAElD,SAAS,WAAW,EAAA,EAAoB;AAC7C,EAAA,MAAM,CAAC,GAAG,CAAC,CAAA,GAAI,GAAG,KAAA,CAAM,GAAG,CAAA,CAAE,GAAA,CAAI,MAAM,CAAA;AACvC,EAAA,OAAO,IAAI,IAAA,CAAK,CAAA,EAAG,CAAA,GAAI,GAAG,CAAC,CAAA,CAAE,kBAAA,CAAmB,OAAA,EAAS,EAAE,KAAA,EAAO,MAAA,EAAQ,IAAA,EAAM,WAAW,CAAA;AAC7F;AAEO,SAAS,UAAA,CAAW,MAAc,EAAA,EAAoB;AAC3D,EAAA,IAAI,CAAC,IAAA,IAAQ,CAAC,EAAA,IAAM,CAAC,IAAA,CAAK,QAAA,CAAS,GAAG,CAAA,IAAK,CAAC,EAAA,CAAG,QAAA,CAAS,GAAG,GAAG,OAAO,CAAA;AACrE,EAAA,MAAM,CAAC,IAAI,EAAE,CAAA,GAAI,KAAK,KAAA,CAAM,GAAG,CAAA,CAAE,GAAA,CAAI,MAAM,CAAA;AAC3C,EAAA,MAAM,CAAC,IAAI,EAAE,CAAA,GAAI,GAAG,KAAA,CAAM,GAAG,CAAA,CAAE,GAAA,CAAI,MAAM,CAAA;AACzC,EAAA,OAAA,CAAQ,EAAA,GAAK,EAAA,IAAM,EAAA,IAAM,EAAA,GAAK,EAAA,CAAA,GAAM,CAAA;AACtC;AAEO,SAAS,cAAA,CAAe,UAAkB,SAAA,EAA2B;AAC1E,EAAA,IAAI,CAAC,QAAA,IAAY,KAAA,CAAA,iBAAM,IAAI,IAAA,CAAK,QAAA,GAAW,WAAW,CAAA,EAAE,OAAA,EAAS,CAAA,EAAG,OAAO,QAAA;AAC3E,EAAA,MAAM,GAAA,GAAM,cAAc,QAAQ,CAAA;AAClC,EAAA,GAAA,CAAI,QAAQ,GAAA,CAAI,OAAA,EAAQ,GAAI,SAAA,GAAY,IAAI,CAAC,CAAA;AAC7C,EAAA,MAAM,CAAA,GAAI,aAAA,CAAc,QAAQ,CAAA,CAAE,kBAAA,CAAmB,OAAA,EAAS,EAAE,KAAA,EAAO,OAAA,EAAS,GAAA,EAAK,SAAA,EAAW,CAAA;AAChG,EAAA,MAAM,CAAA,GAAI,GAAA,CAAI,kBAAA,CAAmB,OAAA,EAAS,EAAE,KAAA,EAAO,OAAA,EAAS,GAAA,EAAK,SAAA,EAAW,IAAA,EAAM,SAAA,EAAW,CAAA;AAC7F,EAAA,OAAO,CAAA,EAAG,CAAC,CAAA,QAAA,EAAM,CAAC,CAAA,CAAA;AACpB;AAGO,SAAS,gBAAA,CAAiB,UAAkB,SAAA,EAA2B;AAC5E,EAAA,IAAI,CAAC,QAAA,IAAY,CAAC,SAAA,EAAW,OAAO,CAAA;AACpC,EAAA,IAAI,SAAA,GAAY,UAAU,OAAO,CAAA;AACjC,EAAA,OAAO,KAAK,KAAA,CAAM,QAAA,CAAS,UAAU,SAAS,CAAA,GAAI,CAAC,CAAA,GAAI,CAAA;AACzD;AAEO,SAAS,WAAA,CAAY,IAAY,KAAA,EAAuB;AAC7D,EAAA,MAAM,CAAC,GAAG,CAAC,CAAA,GAAI,GAAG,KAAA,CAAM,GAAG,CAAA,CAAE,GAAA,CAAI,MAAM,CAAA;AACvC,EAAA,MAAM,CAAA,GAAI,IAAI,IAAA,CAAK,CAAA,EAAA,CAAI,KAAK,CAAA,IAAK,CAAA,GAAI,OAAO,CAAC,CAAA;AAC7C,EAAA,OAAO,CAAA,EAAG,CAAA,CAAE,WAAA,EAAa,IAAI,MAAA,CAAO,CAAA,CAAE,QAAA,EAAS,GAAI,CAAC,CAAA,CAAE,QAAA,CAAS,CAAA,EAAG,GAAG,CAAC,CAAA,CAAA;AACxE;AAEA,SAAS,cAAc,IAAA,EAAoB;AACzC,EAAA,MAAM,CAAC,CAAA,EAAG,CAAA,EAAG,CAAC,CAAA,GAAI,KAAK,KAAA,CAAM,GAAG,CAAA,CAAE,GAAA,CAAI,MAAM,CAAA;AAC5C,EAAA,OAAO,IAAI,IAAA,CAAK,CAAA,EAAG,CAAA,GAAI,GAAG,CAAC,CAAA;AAC7B;AAEO,SAAS,QAAA,CAAS,GAAW,CAAA,EAAmB;AACrD,EAAA,MAAM,EAAA,GAAK,cAAc,CAAC,CAAA;AAC1B,EAAA,MAAM,EAAA,GAAK,cAAc,CAAC,CAAA;AAC1B,EAAA,OAAO,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,IAAA,CAAK,KAAA,CAAA,CAAO,EAAA,CAAG,OAAA,EAAQ,GAAI,EAAA,CAAG,OAAA,EAAQ,IAAK,KAAU,CAAC,CAAA;AAC3E;AAEO,SAAS,OAAA,CAAQ,MAAc,IAAA,EAAsB;AAC1D,EAAA,MAAM,CAAA,GAAI,cAAc,IAAI,CAAA;AAC5B,EAAA,CAAA,CAAE,OAAA,CAAQ,CAAA,CAAE,OAAA,EAAQ,GAAI,IAAI,CAAA;AAC5B,EAAA,OAAO,aAAa,CAAC,CAAA;AACvB;AAEA,SAAS,UAAU,EAAA,EAA2B;AAC5C,EAAA,MAAM,CAAC,GAAG,CAAC,CAAA,GAAI,GAAG,KAAA,CAAM,GAAG,CAAA,CAAE,GAAA,CAAI,MAAM,CAAA;AACvC,EAAA,IAAI,CAAC,MAAA,CAAO,QAAA,CAAS,CAAC,CAAA,IAAK,CAAC,MAAA,CAAO,QAAA,CAAS,CAAC,CAAA,EAAG,OAAO,IAAA;AACvD,EAAA,OAAO,IAAI,EAAA,GAAK,CAAA;AAClB;AAEA,SAAS,aAAa,QAAA,EAAqC;AACzD,EAAA,OAAO,QAAA,KAAa,WAAW,QAAA,KAAa,SAAA;AAC9C;AAMA,SAAS,mBAAA,CAAoB,IAAA,EAAc,GAAA,EAAa,QAAA,EAAoC;AAE1F,EAAA,MAAM,OAAA,GAAU,UAAU,IAAI,CAAA;AAC9B,EAAA,IAAI,OAAA,IAAW,IAAA,EAAM,OAAO,GAAA,IAAO,OAAA;AACnC,EAAA,MAAM,KAAA,GAAQ,QAAA,KAAa,SAAA,GAAY,CAAA,GAAI,EAAA;AAC3C,EAAA,MAAM,OAAO,OAAA,GAAU,KAAA;AACvB,EAAA,OAAO,CAAA,EAAG,OAAO,IAAA,CAAK,KAAA,CAAM,OAAO,EAAE,CAAC,EAAE,QAAA,CAAS,CAAA,EAAG,GAAG,CAAC,CAAA,CAAA,EAAI,OAAO,IAAA,GAAO,EAAE,EAAE,QAAA,CAAS,CAAA,EAAG,GAAG,CAAC,CAAA,CAAA;AAChG;AAEA,SAAS,eAAA,CAAgB,WAAA,EAAqB,GAAA,mBAAY,IAAI,MAAK,EAAW;AAC5E,EAAA,MAAM,WAAW,IAAI,IAAA,CAAK,IAAI,OAAA,EAAQ,GAAI,cAAc,GAAM,CAAA;AAC9D,EAAA,IAAI,SAAS,UAAA,EAAW,GAAI,KAAK,QAAA,CAAS,eAAA,KAAoB,CAAA,EAAG;AAC/D,IAAA,QAAA,CAAS,UAAA,CAAW,QAAA,CAAS,UAAA,EAAW,GAAI,CAAC,CAAA;AAAA,EAC/C;AACA,EAAA,QAAA,CAAS,UAAA,CAAW,GAAG,CAAC,CAAA;AACxB,EAAA,OAAO,GAAG,MAAA,CAAO,QAAA,CAAS,UAAU,CAAA,CAAE,SAAS,CAAA,EAAG,GAAG,CAAC,CAAA,CAAA,EAAI,MAAA,CAAO,SAAS,UAAA,EAAY,EAAE,QAAA,CAAS,CAAA,EAAG,GAAG,CAAC,CAAA,CAAA;AAC1G;AAEA,SAAS,aAAA,CAAc,GAAA,mBAAY,IAAI,IAAA,EAAK,EAAW;AACrD,EAAA,OAAO,GAAG,MAAA,CAAO,GAAA,CAAI,UAAU,CAAA,CAAE,SAAS,CAAA,EAAG,GAAG,CAAC,CAAA,CAAA,EAAI,MAAA,CAAO,IAAI,UAAA,EAAY,EAAE,QAAA,CAAS,CAAA,EAAG,GAAG,CAAC,CAAA,CAAA;AAChG;AAGO,SAAS,eACd,MAAA,EACA,OAAA,EACA,GAAA,mBAAY,IAAI,MAAK,EACE;AACvB,EAAA,MAAM,KAAA,GAAQ,cAAc,GAAG,CAAA;AAE/B,EAAA,IAAI,MAAA,CAAO,aAAa,QAAA,EAAU;AAChC,IAAA,MAAM,GAAA,GAAM,eAAe,GAAG,CAAA;AAC9B,IAAA,MAAM,GAAA,GAAM,gBAAgB,GAAG,CAAA;AAC/B,IAAA,IAAI,CAAC,QAAQ,SAAA,IAAa,OAAA,CAAQ,cAAc,GAAA,IAAO,OAAA,CAAQ,SAAA,IAAa,GAAA,EAAK,OAAO,IAAA;AACxF,IAAA,MAAM,OAAO,QAAA,CAAS,CAAA,EAAG,OAAA,CAAQ,SAAS,OAAO,KAAK,CAAA;AACtD,IAAA,OAAO,OAAO,CAAA,GAAI,EAAE,QAAQ,IAAA,EAAM,IAAA,EAAM,QAAO,GAAI,IAAA;AAAA,EACrD;AAEA,EAAA,IAAI,MAAA,CAAO,aAAa,OAAA,EAAS;AAC/B,IAAA,MAAM,GAAA,GAAM,iBAAiB,GAAG,CAAA;AAChC,IAAA,MAAM,GAAA,GAAM,oBAAoB,GAAG,CAAA;AACnC,IAAA,IAAI,CAAC,QAAQ,QAAA,IAAY,OAAA,CAAQ,aAAa,GAAA,IAAO,OAAA,CAAQ,QAAA,IAAY,GAAA,EAAK,OAAO,IAAA;AACrF,IAAA,MAAM,IAAA,GAAO,QAAA,CAAS,OAAA,CAAQ,QAAA,EAAU,KAAK,CAAA;AAC7C,IAAA,OAAO,OAAO,CAAA,GAAI,EAAE,QAAQ,IAAA,EAAM,IAAA,EAAM,QAAO,GAAI,IAAA;AAAA,EACrD;AAEA,EAAA,IAAI,MAAA,CAAO,aAAa,MAAA,EAAQ;AAC9B,IAAA,IAAI,CAAC,OAAA,CAAQ,SAAA,EAAW,OAAO,IAAA;AAC/B,IAAA,IAAI,OAAA,CAAQ,YAAY,KAAA,EAAO;AAC7B,MAAA,MAAM,IAAA,GAAO,QAAA,CAAS,OAAA,CAAQ,SAAA,EAAW,KAAK,CAAA;AAC9C,MAAA,OAAO,OAAO,CAAA,GAAI,EAAE,QAAQ,IAAA,EAAM,IAAA,EAAM,QAAO,GAAI,IAAA;AAAA,IACrD;AACA,IAAA,IAAI,OAAA,CAAQ,aAAA,KAAkB,KAAA,IAAS,OAAA,CAAQ,cAAc,KAAA,EAAO;AAClE,MAAA,MAAM,QAAQ,GAAA,CAAI,QAAA,EAAS,GAAI,GAAA,CAAI,YAAW,GAAI,EAAA;AAClD,MAAA,MAAM,OAAA,GAAU,IAAA,CAAK,KAAA,CAAM,KAAK,CAAA;AAChC,MAAA,OAAO,UAAU,CAAA,GAAI,EAAE,QAAQ,OAAA,EAAS,IAAA,EAAM,SAAQ,GAAI,IAAA;AAAA,IAC5D;AACA,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,IAAI,YAAA,CAAa,MAAA,CAAO,QAAQ,CAAA,EAAG;AACjC,IAAA,IAAI,QAAQ,YAAA,KAAiB,KAAA,IAAS,CAAC,OAAA,CAAQ,cAAc,OAAO,IAAA;AACpE,IAAA,MAAM,QAAA,GAAW,SAAA,CAAU,OAAA,CAAQ,YAAY,CAAA;AAC/C,IAAA,MAAM,SAAS,GAAA,CAAI,QAAA,EAAS,GAAI,EAAA,GAAK,IAAI,UAAA,EAAW;AACpD,IAAA,IAAI,QAAA,IAAY,IAAA,IAAQ,QAAA,IAAY,MAAA,EAAQ,OAAO,IAAA;AACnD,IAAA,MAAM,UAAU,MAAA,GAAS,QAAA;AACzB,IAAA,IAAI,MAAA,CAAO,aAAa,SAAA,EAAW;AACjC,MAAA,OAAO,UAAU,CAAA,GAAI,EAAE,QAAQ,OAAA,EAAS,IAAA,EAAM,WAAU,GAAI,IAAA;AAAA,IAC9D;AACA,IAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,OAAA,GAAU,EAAE,CAAA;AACrC,IAAA,OAAO,QAAQ,CAAA,GAAI,EAAE,QAAQ,KAAA,EAAO,IAAA,EAAM,SAAQ,GAAI,IAAA;AAAA,EACxD;AAEA,EAAA,OAAO,IAAA;AACT;AAEO,SAAS,0BAA0B,OAAA,EAAiC;AACzE,EAAA,MAAM,EAAE,MAAA,EAAQ,IAAA,EAAK,GAAI,OAAA;AACzB,EAAA,IAAI,IAAA,KAAS,QAAQ,OAAO,CAAA,EAAG,MAAM,CAAA,IAAA,EAAO,MAAA,KAAW,CAAA,GAAI,GAAA,GAAM,EAAE,CAAA,CAAA;AACnE,EAAA,IAAI,IAAA,KAAS,SAAS,OAAO,CAAA,EAAG,MAAM,CAAA,KAAA,EAAQ,MAAA,KAAW,CAAA,GAAI,GAAA,GAAM,EAAE,CAAA,CAAA;AACrE,EAAA,OAAO,GAAG,MAAM,CAAA,OAAA,EAAU,MAAA,KAAW,CAAA,GAAI,MAAM,EAAE,CAAA,CAAA;AACnD;AAGO,SAAS,4BAAA,CACd,MAAA,EACA,OAAA,EACA,OAAA,EACuB;AACvB,EAAA,MAAM,GAAA,GAAM,OAAA,EAAS,GAAA,oBAAO,IAAI,IAAA,EAAK;AACrC,EAAA,MAAM,KAAA,GAAQ,cAAc,GAAG,CAAA;AAC/B,EAAA,MAAM,QAA+B,EAAC;AAEtC,EAAA,IAAI,YAAA,CAAa,MAAA,CAAO,QAAQ,CAAA,EAAG;AACjC,IAAA,IAAI,CAAC,OAAA,CAAQ,YAAA,EAAc,KAAA,CAAM,YAAA,GAAe,KAAA;AAChD,IAAA,IAAI,CAAC,OAAA,CAAQ,YAAA,EAAc,KAAA,CAAM,YAAA,GAAe,OAAA;AAChD,IAAA,MAAM,IAAA,GAAO,KAAA,CAAM,YAAA,IAAgB,OAAA,CAAQ,YAAA,IAAgB,OAAA;AAC3D,IAAA,IAAI,CAAC,QAAQ,eAAA,EAAiB;AAC5B,MAAA,KAAA,CAAM,eAAA,GAAkB,mBAAA,CAAoB,IAAA,EAAM,EAAA,EAAI,OAAO,QAAQ,CAAA;AAAA,IACvE;AACA,IAAA,OAAO,KAAA;AAAA,EACT;AAEA,EAAA,IAAI,MAAA,CAAO,aAAa,MAAA,EAAQ;AAC9B,IAAA,IAAI,CAAC,QAAQ,SAAA,EAAW;AACtB,MAAA,KAAA,CAAM,SAAA,GAAY,KAAA;AAClB,MAAA,KAAA,CAAM,OAAA,GAAU,OAAA,CAAQ,KAAA,EAAO,CAAC,CAAA;AAChC,MAAA,KAAA,CAAM,aAAA,GAAgB,IAAA;AAAA,IACxB,CAAA,MAAA,IAAW,CAAC,OAAA,CAAQ,OAAA,EAAS;AAC3B,MAAA,KAAA,CAAM,OAAA,GAAU,OAAA,CAAQ,OAAA,CAAQ,SAAA,EAAW,CAAC,CAAA;AAAA,IAC9C;AACA,IAAA,IAAI,OAAA,CAAQ,aAAA,KAAkB,MAAA,EAAW,KAAA,CAAM,aAAA,GAAgB,IAAA;AAC/D,IAAA,OAAO,KAAA;AAAA,EACT;AAEA,EAAA,IAAI,MAAA,CAAO,aAAa,OAAA,EAAS;AAC/B,IAAA,IAAI,CAAC,OAAA,CAAQ,QAAA,EAAU,KAAA,CAAM,QAAA,GAAW,oBAAoB,GAAG,CAAA;AAC/D,IAAA,IAAI,CAAC,OAAA,CAAQ,SAAA,EAAW,KAAA,CAAM,SAAA,GAAY,CAAA;AAC1C,IAAA,OAAO,KAAA;AAAA,EACT;AAEA,EAAA,IAAI,MAAA,CAAO,aAAa,QAAA,EAAU;AAChC,IAAA,MAAM,GAAA,GAAM,gBAAgB,GAAG,CAAA;AAC/B,IAAA,IAAI,CAAC,OAAA,CAAQ,SAAA,EAAW,KAAA,CAAM,SAAA,GAAY,GAAA;AAC1C,IAAA,IAAI,CAAC,QAAQ,OAAA,EAAS,KAAA,CAAM,UAAU,KAAA,CAAM,SAAA,IAAa,QAAQ,SAAA,IAAa,GAAA;AAC9E,IAAA,OAAO,KAAA;AAAA,EACT;AAEA,EAAA,IAAI,MAAA,CAAO,aAAa,UAAA,EAAY;AAClC,IAAA,IAAI,CAAC,OAAA,CAAQ,YAAA,EAAc,KAAA,CAAM,YAAA,GAAe,KAAA;AAChD,IAAA,MAAM,IAAA,GAAO,KAAA,CAAM,YAAA,IAAgB,OAAA,CAAQ,YAAA,IAAgB,KAAA;AAC3D,IAAA,IAAI,IAAA,GAAO,OAAA,CAAQ,YAAA,IAAgB,aAAA,CAAc,GAAG,CAAA;AACpD,IAAA,MAAM,IAAA,GAAO,SAAS,kBAAA,IAAsB,CAAA;AAC5C,IAAA,IAAI,IAAA,GAAO,CAAA,IAAK,IAAA,KAAS,KAAA,EAAO;AAC9B,MAAA,MAAM,KAAA,GAAQ,eAAA,CAAgB,IAAA,EAAM,GAAG,CAAA;AACvC,MAAA,IAAI,IAAA,GAAO,OAAO,IAAA,GAAO,KAAA;AAAA,IAC3B;AACA,IAAA,IAAI,IAAA,KAAS,QAAQ,YAAA,EAAc;AACjC,MAAA,KAAA,CAAM,YAAA,GAAe,IAAA;AACrB,MAAA,KAAA,CAAM,eAAA,GAAkB,IAAA;AAAA,IAC1B;AACA,IAAA,IAAI,CAAC,QAAQ,YAAA,EAAc;AACzB,MAAA,KAAA,CAAM,SAAA,GAAY,IAAA;AAClB,MAAA,KAAA,CAAM,OAAA,GAAU,IAAA;AAAA,IAClB;AACA,IAAA,IAAI,CAAC,OAAA,CAAQ,YAAA,EAAc,KAAA,CAAM,YAAA,GAAe,CAAA;AAChD,IAAA,OAAO,KAAA;AAAA,EACT;AAEA,EAAA,OAAO,KAAA;AACT","file":"chunk-5CUJZNUC.js","sourcesContent":["/**\n * Date / schedule helpers used by booking-schedule calendars.\n */\n\nexport type RepeatType = \"none\" | \"daily\" | \"weekly\" | \"monthly\";\nexport type BookingMode = \"slots\" | \"schedule\";\nexport type ScheduleChargeBy = \"minutes\" | \"hours\" | \"days\" | \"weeks\" | \"months\" | \"quantity\";\n\nexport type PartialElapsedUnit = \"days\" | \"hours\" | \"minutes\";\n\nexport interface PartialElapsed {\n amount: number;\n unit: PartialElapsedUnit;\n}\n\n/** Editor state for slot / schedule / daily / item shaped tiers */\nexport interface BookingState {\n slotCount: number;\n bookingDate: string;\n bookingMode: BookingMode;\n scheduleDate: string;\n scheduleTime: string;\n scheduleEndTime: string;\n repeatType: RepeatType;\n repeatEveryDays: number;\n repeatEveryWeeks: number;\n repeatOnDays: string[];\n repeatEveryMonths: number;\n repeatUntilDate: string;\n startDate: string;\n endDate: string;\n monthFrom: string;\n monthTo: string;\n weekFrom: string;\n weekCount: number;\n itemQuantity: number;\n oneDayBooking?: boolean;\n}\n\nexport interface ScheduleDefaultsConfig {\n chargeBy: ScheduleChargeBy;\n}\n\n/** YYYY-MM-DD in local timezone (never UTC ISO split). */\nexport function localDateYmd(d: Date): string {\n const y = d.getFullYear();\n const m = String(d.getMonth() + 1).padStart(2, \"0\");\n const day = String(d.getDate()).padStart(2, \"0\");\n return `${y}-${m}-${day}`;\n}\n\nexport function todayLocalYmd(now: Date = new Date()): string {\n return localDateYmd(now);\n}\n\n/** @deprecated Prefer `todayLocalYmd()` — kept for existing imports. */\nexport function pricingTodayYmd(now: Date = new Date()): string {\n return todayLocalYmd(now);\n}\n\nexport const PRICING_TODAY = todayLocalYmd();\n\nexport function currentMonthYm(now: Date = new Date()): string {\n return `${now.getFullYear()}-${String(now.getMonth() + 1).padStart(2, \"0\")}`;\n}\n\n/** Monday of the current local week (YYYY-MM-DD). */\nexport function currentWeekStart(now: Date = new Date()): string {\n const d = new Date(now.getFullYear(), now.getMonth(), now.getDate());\n const day = d.getDay();\n const offset = day === 0 ? -6 : 1 - day;\n d.setDate(d.getDate() + offset);\n return localDateYmd(d);\n}\n\n/** First full month default: next month if today is past the 1st, else current month. */\nexport function computeMinMonth(now: Date = new Date()): string {\n if (now.getDate() === 1) {\n return currentMonthYm(now);\n }\n const n = new Date(now.getFullYear(), now.getMonth() + 1, 1);\n return currentMonthYm(n);\n}\n\n/** First full week default: next Monday unless today is already Monday. */\nexport function computeMinWeekStart(now: Date = new Date()): string {\n const day = now.getDay();\n if (day === 1) return todayLocalYmd(now);\n const d = new Date(now.getFullYear(), now.getMonth(), now.getDate());\n const skip = day === 0 ? 1 : 8 - day;\n d.setDate(d.getDate() + skip);\n return localDateYmd(d);\n}\n\nexport const MIN_MONTH = computeMinMonth();\nexport const MIN_WEEK_START = computeMinWeekStart();\n\nexport const IS_PARTIAL_MONTH = new Date().getDate() !== 1;\n\nexport function monthLabel(ym: string): string {\n const [y, m] = ym.split(\"-\").map(Number);\n return new Date(y, m - 1, 1).toLocaleDateString(\"en-US\", { month: \"long\", year: \"numeric\" });\n}\n\nexport function monthCount(from: string, to: string): number {\n if (!from || !to || !from.includes(\"-\") || !to.includes(\"-\")) return 0;\n const [fy, fm] = from.split(\"-\").map(Number);\n const [ty, tm] = to.split(\"-\").map(Number);\n return (ty - fy) * 12 + (tm - fm) + 1;\n}\n\nexport function weekRangeLabel(weekFrom: string, weekCount: number): string {\n if (!weekFrom || isNaN(new Date(weekFrom + \"T00:00:00\").getTime())) return \"—\";\n const end = parseDateOnly(weekFrom);\n end.setDate(end.getDate() + weekCount * 7 - 1);\n const s = parseDateOnly(weekFrom).toLocaleDateString(\"en-US\", { month: \"short\", day: \"numeric\" });\n const e = end.toLocaleDateString(\"en-US\", { month: \"short\", day: \"numeric\", year: \"numeric\" });\n return `${s} – ${e}`;\n}\n\n/** Inclusive number of Mon-anchored weeks from `weekFrom` through `weekToMon`. */\nexport function weekCountBetween(weekFrom: string, weekToMon: string): number {\n if (!weekFrom || !weekToMon) return 0;\n if (weekToMon < weekFrom) return 1;\n return Math.floor(diffDays(weekFrom, weekToMon) / 7) + 1;\n}\n\nexport function addMonthsYm(ym: string, delta: number): string {\n const [y, m] = ym.split(\"-\").map(Number);\n const d = new Date(y, (m ?? 1) - 1 + delta, 1);\n return `${d.getFullYear()}-${String(d.getMonth() + 1).padStart(2, \"0\")}`;\n}\n\nfunction parseDateOnly(date: string): Date {\n const [y, m, d] = date.split(\"-\").map(Number);\n return new Date(y, m - 1, d);\n}\n\nexport function diffDays(a: string, b: string): number {\n const da = parseDateOnly(a);\n const db = parseDateOnly(b);\n return Math.max(0, Math.round((db.getTime() - da.getTime()) / 86_400_000));\n}\n\nexport function addDays(date: string, days: number): string {\n const d = parseDateOnly(date);\n d.setDate(d.getDate() + days);\n return localDateYmd(d);\n}\n\nfunction hmMinutes(hm: string): number | null {\n const [h, m] = hm.split(\":\").map(Number);\n if (!Number.isFinite(h) || !Number.isFinite(m)) return null;\n return h * 60 + m;\n}\n\nfunction isSlotCharge(chargeBy: ScheduleChargeBy): boolean {\n return chargeBy === \"hours\" || chargeBy === \"minutes\";\n}\n\nfunction isPeriodCharge(chargeBy: ScheduleChargeBy): boolean {\n return chargeBy === \"days\" || chargeBy === \"weeks\" || chargeBy === \"months\";\n}\n\nfunction snapScheduleEndTime(from: string, end: string, chargeBy: ScheduleChargeBy): string {\n if (end && end > from) return end;\n const fromMin = hmMinutes(from);\n if (fromMin == null) return end || \"10:00\";\n const delta = chargeBy === \"minutes\" ? 1 : 60;\n const next = fromMin + delta;\n return `${String(Math.floor(next / 60)).padStart(2, \"0\")}:${String(next % 60).padStart(2, \"0\")}`;\n}\n\nfunction minNeededTimeHm(prepMinutes: number, now: Date = new Date()): string {\n const earliest = new Date(now.getTime() + prepMinutes * 60_000);\n if (earliest.getSeconds() > 0 || earliest.getMilliseconds() > 0) {\n earliest.setMinutes(earliest.getMinutes() + 1);\n }\n earliest.setSeconds(0, 0);\n return `${String(earliest.getHours()).padStart(2, \"0\")}:${String(earliest.getMinutes()).padStart(2, \"0\")}`;\n}\n\nfunction currentTimeHm(now: Date = new Date()): string {\n return `${String(now.getHours()).padStart(2, \"0\")}:${String(now.getMinutes()).padStart(2, \"0\")}`;\n}\n\n/** Elapsed time in the selected in-progress booking period, if any. */\nexport function partialElapsed(\n config: ScheduleDefaultsConfig,\n booking: BookingState,\n now: Date = new Date(),\n): PartialElapsed | null {\n const today = todayLocalYmd(now);\n\n if (config.chargeBy === \"months\") {\n const cur = currentMonthYm(now);\n const min = computeMinMonth(now);\n if (!booking.monthFrom || booking.monthFrom !== cur || booking.monthFrom >= min) return null;\n const days = diffDays(`${booking.monthFrom}-01`, today);\n return days > 0 ? { amount: days, unit: \"days\" } : null;\n }\n\n if (config.chargeBy === \"weeks\") {\n const cur = currentWeekStart(now);\n const min = computeMinWeekStart(now);\n if (!booking.weekFrom || booking.weekFrom !== cur || booking.weekFrom >= min) return null;\n const days = diffDays(booking.weekFrom, today);\n return days > 0 ? { amount: days, unit: \"days\" } : null;\n }\n\n if (config.chargeBy === \"days\") {\n if (!booking.startDate) return null;\n if (booking.startDate < today) {\n const days = diffDays(booking.startDate, today);\n return days > 0 ? { amount: days, unit: \"days\" } : null;\n }\n if (booking.oneDayBooking !== false && booking.startDate === today) {\n const hours = now.getHours() + now.getMinutes() / 60;\n const rounded = Math.floor(hours);\n return rounded > 0 ? { amount: rounded, unit: \"hours\" } : null;\n }\n return null;\n }\n\n if (isSlotCharge(config.chargeBy)) {\n if (booking.scheduleDate !== today || !booking.scheduleTime) return null;\n const startMin = hmMinutes(booking.scheduleTime);\n const nowMin = now.getHours() * 60 + now.getMinutes();\n if (startMin == null || startMin >= nowMin) return null;\n const elapsed = nowMin - startMin;\n if (config.chargeBy === \"minutes\") {\n return elapsed > 0 ? { amount: elapsed, unit: \"minutes\" } : null;\n }\n const hours = Math.floor(elapsed / 60);\n return hours > 0 ? { amount: hours, unit: \"hours\" } : null;\n }\n\n return null;\n}\n\nexport function formatPartialElapsedLabel(elapsed: PartialElapsed): string {\n const { amount, unit } = elapsed;\n if (unit === \"days\") return `${amount} day${amount !== 1 ? \"s\" : \"\"}`;\n if (unit === \"hours\") return `${amount} hour${amount !== 1 ? \"s\" : \"\"}`;\n return `${amount} minute${amount !== 1 ? \"s\" : \"\"}`;\n}\n\n/** Patch empty schedule fields with tier-appropriate defaults. */\nexport function applyBookingScheduleDefaults(\n config: ScheduleDefaultsConfig,\n booking: BookingState,\n options?: { preparationMinutes?: number; now?: Date },\n): Partial<BookingState> {\n const now = options?.now ?? new Date();\n const today = todayLocalYmd(now);\n const patch: Partial<BookingState> = {};\n\n if (isSlotCharge(config.chargeBy)) {\n if (!booking.scheduleDate) patch.scheduleDate = today;\n if (!booking.scheduleTime) patch.scheduleTime = \"09:00\";\n const from = patch.scheduleTime ?? booking.scheduleTime ?? \"09:00\";\n if (!booking.scheduleEndTime) {\n patch.scheduleEndTime = snapScheduleEndTime(from, \"\", config.chargeBy);\n }\n return patch;\n }\n\n if (config.chargeBy === \"days\") {\n if (!booking.startDate) {\n patch.startDate = today;\n patch.endDate = addDays(today, 1);\n patch.oneDayBooking = true;\n } else if (!booking.endDate) {\n patch.endDate = addDays(booking.startDate, 1);\n }\n if (booking.oneDayBooking === undefined) patch.oneDayBooking = true;\n return patch;\n }\n\n if (config.chargeBy === \"weeks\") {\n if (!booking.weekFrom) patch.weekFrom = computeMinWeekStart(now);\n if (!booking.weekCount) patch.weekCount = 1;\n return patch;\n }\n\n if (config.chargeBy === \"months\") {\n const min = computeMinMonth(now);\n if (!booking.monthFrom) patch.monthFrom = min;\n if (!booking.monthTo) patch.monthTo = patch.monthFrom ?? booking.monthFrom ?? min;\n return patch;\n }\n\n if (config.chargeBy === \"quantity\") {\n if (!booking.scheduleDate) patch.scheduleDate = today;\n const date = patch.scheduleDate ?? booking.scheduleDate ?? today;\n let time = booking.scheduleTime || currentTimeHm(now);\n const prep = options?.preparationMinutes ?? 0;\n if (prep > 0 && date === today) {\n const floor = minNeededTimeHm(prep, now);\n if (time < floor) time = floor;\n }\n if (time !== booking.scheduleTime) {\n patch.scheduleTime = time;\n patch.scheduleEndTime = time;\n }\n if (!booking.scheduleDate) {\n patch.startDate = date;\n patch.endDate = date;\n }\n if (!booking.itemQuantity) patch.itemQuantity = 1;\n return patch;\n }\n\n return patch;\n}\n"]}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { cn } from './chunk-DMPSQ22Q.js';
|
|
2
|
+
import { ChevronRight, ChevronLeft } from 'lucide-react';
|
|
3
|
+
import { DayPicker } from 'react-day-picker';
|
|
4
|
+
import { jsx } from 'react/jsx-runtime';
|
|
5
|
+
|
|
6
|
+
function Calendar({
|
|
7
|
+
className,
|
|
8
|
+
classNames,
|
|
9
|
+
showOutsideDays = true,
|
|
10
|
+
...props
|
|
11
|
+
}) {
|
|
12
|
+
return /* @__PURE__ */ jsx(
|
|
13
|
+
DayPicker,
|
|
14
|
+
{
|
|
15
|
+
showOutsideDays,
|
|
16
|
+
className: cn("p-3", className),
|
|
17
|
+
classNames: {
|
|
18
|
+
months: "flex flex-col sm:flex-row gap-2",
|
|
19
|
+
month: "flex flex-col gap-4",
|
|
20
|
+
caption: "flex justify-center pt-1 relative items-center w-full",
|
|
21
|
+
caption_label: "text-sm font-medium",
|
|
22
|
+
nav: "flex items-center gap-1",
|
|
23
|
+
nav_button: cn(
|
|
24
|
+
"inline-flex size-7 items-center justify-center rounded-md border border-white/15 bg-card/5 p-0 text-popover-foreground transition-colors hover:bg-card/10 hover:text-white"
|
|
25
|
+
),
|
|
26
|
+
nav_button_previous: "absolute left-1",
|
|
27
|
+
nav_button_next: "absolute right-1",
|
|
28
|
+
table: "w-full border-collapse space-x-1",
|
|
29
|
+
head_row: "flex",
|
|
30
|
+
head_cell: "w-9 rounded-md font-normal text-[0.8rem] text-popover-foreground/50",
|
|
31
|
+
row: "flex w-full mt-2",
|
|
32
|
+
cell: cn(
|
|
33
|
+
"relative p-0 text-center text-sm focus-within:relative focus-within:z-20",
|
|
34
|
+
props.mode === "range" ? "[&:has(>.day-range-end)]:rounded-r-md [&:has(>.day-range-start)]:rounded-l-md first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md [&:has([aria-selected])]:bg-card/10" : "[&:has([aria-selected])]:rounded-md"
|
|
35
|
+
),
|
|
36
|
+
day: cn(
|
|
37
|
+
"inline-flex size-9 items-center justify-center rounded-md p-0 text-sm font-normal text-popover-foreground transition-colors hover:bg-card/10 hover:text-white aria-selected:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/25"
|
|
38
|
+
),
|
|
39
|
+
day_range_start: "day-range-start rounded-md bg-card font-medium text-foreground hover:bg-card hover:text-foreground",
|
|
40
|
+
day_range_end: "day-range-end rounded-md bg-card font-medium text-foreground hover:bg-card hover:text-foreground",
|
|
41
|
+
day_selected: "rounded-md bg-card font-medium text-foreground hover:bg-card hover:text-foreground focus:bg-card focus:text-foreground focus-visible:ring-0",
|
|
42
|
+
day_today: "rounded-md bg-card/10 font-medium text-popover-foreground aria-selected:bg-card aria-selected:text-foreground",
|
|
43
|
+
day_outside: "day-outside text-popover-foreground/30 aria-selected:bg-card/15 aria-selected:text-popover-foreground/50",
|
|
44
|
+
day_disabled: "text-popover-foreground/30 opacity-50",
|
|
45
|
+
day_range_middle: "rounded-none aria-selected:bg-card/10 aria-selected:text-popover-foreground",
|
|
46
|
+
day_hidden: "invisible",
|
|
47
|
+
...classNames
|
|
48
|
+
},
|
|
49
|
+
components: {
|
|
50
|
+
IconLeft: ({ className: className2, ...props2 }) => /* @__PURE__ */ jsx(ChevronLeft, { className: cn("size-4", className2), strokeWidth: 2, ...props2 }),
|
|
51
|
+
IconRight: ({ className: className2, ...props2 }) => /* @__PURE__ */ jsx(ChevronRight, { className: cn("size-4", className2), strokeWidth: 2, ...props2 })
|
|
52
|
+
},
|
|
53
|
+
...props
|
|
54
|
+
}
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export { Calendar };
|
|
59
|
+
//# sourceMappingURL=chunk-5HOK5JHR.js.map
|
|
60
|
+
//# sourceMappingURL=chunk-5HOK5JHR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/ui/calendar.tsx"],"names":["className","props"],"mappings":";;;;;AAQA,SAAS,QAAA,CAAS;AAAA,EAChB,SAAA;AAAA,EACA,UAAA;AAAA,EACA,eAAA,GAAkB,IAAA;AAAA,EAClB,GAAG;AACL,CAAA,EAA2C;AACzC,EAAA,uBACE,GAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,eAAA;AAAA,MACA,SAAA,EAAW,EAAA,CAAG,KAAA,EAAO,SAAS,CAAA;AAAA,MAC9B,UAAA,EAAY;AAAA,QACV,MAAA,EAAQ,iCAAA;AAAA,QACR,KAAA,EAAO,qBAAA;AAAA,QACP,OAAA,EAAS,uDAAA;AAAA,QACT,aAAA,EAAe,qBAAA;AAAA,QACf,GAAA,EAAK,yBAAA;AAAA,QACL,UAAA,EAAY,EAAA;AAAA,UACV;AAAA,SACF;AAAA,QACA,mBAAA,EAAqB,iBAAA;AAAA,QACrB,eAAA,EAAiB,kBAAA;AAAA,QACjB,KAAA,EAAO,kCAAA;AAAA,QACP,QAAA,EAAU,MAAA;AAAA,QACV,SAAA,EACE,qEAAA;AAAA,QACF,GAAA,EAAK,kBAAA;AAAA,QACL,IAAA,EAAM,EAAA;AAAA,UACJ,0EAAA;AAAA,UACA,KAAA,CAAM,IAAA,KAAS,OAAA,GACX,0MAAA,GACA;AAAA,SACN;AAAA,QACA,GAAA,EAAK,EAAA;AAAA,UACH;AAAA,SACF;AAAA,QACA,eAAA,EACE,oGAAA;AAAA,QACF,aAAA,EACE,kGAAA;AAAA,QACF,YAAA,EACE,6IAAA;AAAA,QACF,SAAA,EACE,+GAAA;AAAA,QACF,WAAA,EACE,0GAAA;AAAA,QACF,YAAA,EAAc,uCAAA;AAAA,QACd,gBAAA,EACE,6EAAA;AAAA,QACF,UAAA,EAAY,WAAA;AAAA,QACZ,GAAG;AAAA,OACL;AAAA,MACA,UAAA,EAAY;AAAA,QACV,UAAU,CAAC,EAAE,WAAAA,UAAAA,EAAW,GAAGC,QAAM,qBAC/B,GAAA,CAAC,WAAA,EAAA,EAAY,SAAA,EAAW,GAAG,QAAA,EAAUD,UAAS,GAAG,WAAA,EAAa,CAAA,EAAI,GAAGC,MAAAA,EAAO,CAAA;AAAA,QAE9E,WAAW,CAAC,EAAE,WAAAD,UAAAA,EAAW,GAAGC,QAAM,qBAChC,GAAA,CAAC,YAAA,EAAA,EAAa,SAAA,EAAW,GAAG,QAAA,EAAUD,UAAS,GAAG,WAAA,EAAa,CAAA,EAAI,GAAGC,MAAAA,EAAO;AAAA,OAEjF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ","file":"chunk-5HOK5JHR.js","sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { ChevronLeft, ChevronRight } from \"lucide-react\";\nimport { DayPicker } from \"react-day-picker\";\n\nimport { cn } from \"./utils\";\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n ...props\n}: React.ComponentProps<typeof DayPicker>) {\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\"p-3\", className)}\n classNames={{\n months: \"flex flex-col sm:flex-row gap-2\",\n month: \"flex flex-col gap-4\",\n caption: \"flex justify-center pt-1 relative items-center w-full\",\n caption_label: \"text-sm font-medium\",\n nav: \"flex items-center gap-1\",\n nav_button: cn(\n \"inline-flex size-7 items-center justify-center rounded-md border border-white/15 bg-card/5 p-0 text-popover-foreground transition-colors hover:bg-card/10 hover:text-white\",\n ),\n nav_button_previous: \"absolute left-1\",\n nav_button_next: \"absolute right-1\",\n table: \"w-full border-collapse space-x-1\",\n head_row: \"flex\",\n head_cell:\n \"w-9 rounded-md font-normal text-[0.8rem] text-popover-foreground/50\",\n row: \"flex w-full mt-2\",\n cell: cn(\n \"relative p-0 text-center text-sm focus-within:relative focus-within:z-20\",\n props.mode === \"range\"\n ? \"[&:has(>.day-range-end)]:rounded-r-md [&:has(>.day-range-start)]:rounded-l-md first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md [&:has([aria-selected])]:bg-card/10\"\n : \"[&:has([aria-selected])]:rounded-md\",\n ),\n day: cn(\n \"inline-flex size-9 items-center justify-center rounded-md p-0 text-sm font-normal text-popover-foreground transition-colors hover:bg-card/10 hover:text-white aria-selected:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/25\",\n ),\n day_range_start:\n \"day-range-start rounded-md bg-card font-medium text-foreground hover:bg-card hover:text-foreground\",\n day_range_end:\n \"day-range-end rounded-md bg-card font-medium text-foreground hover:bg-card hover:text-foreground\",\n day_selected:\n \"rounded-md bg-card font-medium text-foreground hover:bg-card hover:text-foreground focus:bg-card focus:text-foreground focus-visible:ring-0\",\n day_today:\n \"rounded-md bg-card/10 font-medium text-popover-foreground aria-selected:bg-card aria-selected:text-foreground\",\n day_outside:\n \"day-outside text-popover-foreground/30 aria-selected:bg-card/15 aria-selected:text-popover-foreground/50\",\n day_disabled: \"text-popover-foreground/30 opacity-50\",\n day_range_middle:\n \"rounded-none aria-selected:bg-card/10 aria-selected:text-popover-foreground\",\n day_hidden: \"invisible\",\n ...classNames,\n }}\n components={{\n IconLeft: ({ className, ...props }) => (\n <ChevronLeft className={cn(\"size-4\", className)} strokeWidth={2} {...props} />\n ),\n IconRight: ({ className, ...props }) => (\n <ChevronRight className={cn(\"size-4\", className)} strokeWidth={2} {...props} />\n ),\n }}\n {...props}\n />\n );\n}\n\nexport { Calendar };\n"]}
|