@arbidocs/blocks 0.4.129 → 0.4.131
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/agents/index.cjs +303 -303
- package/dist/agents/index.js +11 -11
- package/dist/calendar/CalendarPrint.d.ts +25 -0
- package/dist/calendar/booking-slots.d.ts +21 -0
- package/dist/calendar/index.cjs +381 -97
- package/dist/calendar/index.cjs.map +1 -1
- package/dist/calendar/index.d.ts +4 -0
- package/dist/calendar/index.js +277 -3
- package/dist/calendar/index.js.map +1 -1
- package/dist/calendar/print-layout.d.ts +16 -0
- package/dist/calendar/printCalendar.d.ts +6 -0
- package/dist/calls/composite-canvas.d.ts +52 -0
- package/dist/calls/index.cjs +374 -1
- package/dist/calls/index.cjs.map +1 -1
- package/dist/calls/index.d.ts +3 -0
- package/dist/calls/index.js +359 -4
- package/dist/calls/index.js.map +1 -1
- package/dist/calls/ringtone.d.ts +16 -0
- package/dist/calls/voice-levels.d.ts +32 -0
- package/dist/chat/ThreadVisualizer.d.ts +28 -0
- package/dist/chat/index.cjs +151 -135
- package/dist/chat/index.d.ts +2 -0
- package/dist/chat/index.js +4 -4
- package/dist/chat/thread-diagram.d.ts +26 -0
- package/dist/{chunk-H2KQ6OSU.js → chunk-26E6PHD2.js} +231 -6
- package/dist/chunk-26E6PHD2.js.map +1 -0
- package/dist/{chunk-2PNNCEPH.js → chunk-54ANPPMV.js} +4 -4
- package/dist/{chunk-2PNNCEPH.js.map → chunk-54ANPPMV.js.map} +1 -1
- package/dist/{chunk-IBZJYCYM.js → chunk-66TA5IBN.js} +17 -25
- package/dist/chunk-66TA5IBN.js.map +1 -0
- package/dist/{chunk-OYMWV45N.js → chunk-7D4W3SAH.js} +51 -4
- package/dist/chunk-7D4W3SAH.js.map +1 -0
- package/dist/{chunk-2DFDFOM7.js → chunk-7HAM7Y5U.js} +3 -3
- package/dist/{chunk-2DFDFOM7.js.map → chunk-7HAM7Y5U.js.map} +1 -1
- package/dist/{chunk-7423V6RM.cjs → chunk-7KH4M3KY.cjs} +8 -8
- package/dist/{chunk-7423V6RM.cjs.map → chunk-7KH4M3KY.cjs.map} +1 -1
- package/dist/{chunk-TGWTLNXW.cjs → chunk-BIXHB4LV.cjs} +3 -2
- package/dist/{chunk-TGWTLNXW.cjs.map → chunk-BIXHB4LV.cjs.map} +1 -1
- package/dist/{chunk-DZYAAL4H.cjs → chunk-BZF55UCE.cjs} +234 -5
- package/dist/chunk-BZF55UCE.cjs.map +1 -0
- package/dist/{chunk-3BJLNKOB.cjs → chunk-CDZVC32G.cjs} +5 -5
- package/dist/{chunk-3BJLNKOB.cjs.map → chunk-CDZVC32G.cjs.map} +1 -1
- package/dist/{chunk-PUCY3UXN.js → chunk-CXLVI3SB.js} +3 -3
- package/dist/{chunk-PUCY3UXN.js.map → chunk-CXLVI3SB.js.map} +1 -1
- package/dist/{chunk-KYDRUFWT.cjs → chunk-D4YR56FV.cjs} +5 -5
- package/dist/{chunk-KYDRUFWT.cjs.map → chunk-D4YR56FV.cjs.map} +1 -1
- package/dist/{chunk-6BTCDKCK.js → chunk-DI35D756.js} +4 -4
- package/dist/{chunk-6BTCDKCK.js.map → chunk-DI35D756.js.map} +1 -1
- package/dist/{chunk-TGJNPKST.js → chunk-GTCC2VAR.js} +3 -3
- package/dist/{chunk-TGJNPKST.js.map → chunk-GTCC2VAR.js.map} +1 -1
- package/dist/{chunk-6AALMYPS.cjs → chunk-HM23LXUP.cjs} +3 -3
- package/dist/{chunk-6AALMYPS.cjs.map → chunk-HM23LXUP.cjs.map} +1 -1
- package/dist/{chunk-HSFLEVZY.js → chunk-KLOSOT26.js} +10 -10
- package/dist/{chunk-HSFLEVZY.js.map → chunk-KLOSOT26.js.map} +1 -1
- package/dist/{chunk-SARREDFP.cjs → chunk-LC2KJSUS.cjs} +46 -46
- package/dist/{chunk-SARREDFP.cjs.map → chunk-LC2KJSUS.cjs.map} +1 -1
- package/dist/{chunk-MUMH3Z6K.cjs → chunk-LRD7BHAT.cjs} +50 -3
- package/dist/chunk-LRD7BHAT.cjs.map +1 -0
- package/dist/{chunk-CJBN5HIS.js → chunk-P5HOXWYL.js} +3 -3
- package/dist/{chunk-CJBN5HIS.js.map → chunk-P5HOXWYL.js.map} +1 -1
- package/dist/{chunk-5Y7JRY7Y.js → chunk-P5ST47VY.js} +3 -3
- package/dist/{chunk-5Y7JRY7Y.js.map → chunk-P5ST47VY.js.map} +1 -1
- package/dist/{chunk-A7NCSZAP.cjs → chunk-QZTNTP75.cjs} +17 -25
- package/dist/chunk-QZTNTP75.cjs.map +1 -0
- package/dist/{chunk-ENDP7JER.js → chunk-VW2C2AZL.js} +3 -3
- package/dist/{chunk-ENDP7JER.js.map → chunk-VW2C2AZL.js.map} +1 -1
- package/dist/{chunk-JLTXVW25.cjs → chunk-W27VK32R.cjs} +78 -78
- package/dist/{chunk-JLTXVW25.cjs.map → chunk-W27VK32R.cjs.map} +1 -1
- package/dist/{chunk-PJJY6CYL.cjs → chunk-WV4IDVDQ.cjs} +11 -11
- package/dist/{chunk-PJJY6CYL.cjs.map → chunk-WV4IDVDQ.cjs.map} +1 -1
- package/dist/{chunk-NYHGG2IA.cjs → chunk-ZV3BKLFY.cjs} +3 -3
- package/dist/{chunk-NYHGG2IA.cjs.map → chunk-ZV3BKLFY.cjs.map} +1 -1
- package/dist/collaboration/index.cjs +9 -9
- package/dist/collaboration/index.js +1 -1
- package/dist/connect/docx.cjs +4 -4
- package/dist/connect/docx.js +3 -3
- package/dist/connect/index.cjs +183 -146
- package/dist/connect/index.cjs.map +1 -1
- package/dist/connect/index.d.ts +1 -1
- package/dist/connect/index.js +134 -98
- package/dist/connect/index.js.map +1 -1
- package/dist/connection/ConnectedSettings.d.ts +42 -7
- package/dist/document-tools/index.cjs +1 -1
- package/dist/document-tools/index.js +1 -1
- package/dist/facts/fact-citations.d.ts +56 -0
- package/dist/facts/fact-table-column-resize.d.ts +18 -0
- package/dist/facts/index.cjs +194 -8
- package/dist/facts/index.cjs.map +1 -1
- package/dist/facts/index.d.ts +2 -0
- package/dist/facts/index.js +180 -5
- package/dist/facts/index.js.map +1 -1
- package/dist/files/index.cjs +1 -1
- package/dist/files/index.js +1 -1
- package/dist/home/index.cjs +17 -17
- package/dist/home/index.js +3 -3
- package/dist/index.cjs +517 -501
- package/dist/index.js +18 -18
- package/dist/settings/MoreInfo.d.ts +25 -0
- package/dist/settings/PlanCard.d.ts +1 -1
- package/dist/settings/index.cjs +79 -225
- package/dist/settings/index.cjs.map +1 -1
- package/dist/settings/index.d.ts +1 -1
- package/dist/settings/index.js +70 -215
- package/dist/settings/index.js.map +1 -1
- package/dist/shell/index.cjs +1 -1
- package/dist/shell/index.js +1 -1
- package/dist/site/index.cjs +5 -5
- package/dist/site/index.js +1 -1
- package/dist/studio/index.cjs +8 -8
- package/dist/studio/index.js +6 -6
- package/dist/workflow-canvas/index.cjs +64 -64
- package/dist/workflow-canvas/index.js +12 -12
- package/node_modules/@arbidocs/coedit/package.json +1 -1
- package/package.json +9 -4
- package/dist/chunk-A7NCSZAP.cjs.map +0 -1
- package/dist/chunk-DZYAAL4H.cjs.map +0 -1
- package/dist/chunk-H2KQ6OSU.js.map +0 -1
- package/dist/chunk-IBZJYCYM.js.map +0 -1
- package/dist/chunk-MUMH3Z6K.cjs.map +0 -1
- package/dist/chunk-OYMWV45N.js.map +0 -1
- package/dist/settings/FirmPool.d.ts +0 -82
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/connection/ai.tsx"],"names":["useKitAiTask","useKitWorkspaceDocs","useKitSemanticSearch"],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/connection/ai.tsx"],"names":["useKitAiTask","useKitWorkspaceDocs","useKitSemanticSearch"],"mappings":"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","file":"chunk-DI35D756.js","sourcesContent":["/**\n * The connected agent hooks — thin adapters over the reusable AI kit in\n * `@arbidocs/react`. The streaming/accumulation/search plumbing lives once in\n * the SDK; these hooks only bind the *workspace source* (from the connection\n * context, falling back to the configured workspace) and inject the host's\n * default assistant *configuration* so call sites needn't know the config\n * ext_id. An explicit `opts.model` still wins.\n */\nimport { useCallback } from 'react'\nimport {\n useAiTask as useKitAiTask,\n useWorkspaceDocs as useKitWorkspaceDocs,\n useSemanticSearch as useKitSemanticSearch,\n useArbiChat,\n useWorkspaceUsers,\n type ArbiChat,\n type UseArbiChatOptions,\n type AiRunOptions,\n} from '@arbidocs/react'\nimport { useConnection } from './ConnectionProvider'\nimport { AssistantDock, type AssistantDockProps } from '../chat/AssistantDock'\nimport type { MentionCandidate } from '../chat/mentions'\nimport { takeOpenDocumentForTurn } from '../chat/open-document'\n\nexport type { AiTaskStatus, AiRunOptions, SearchChunk, ArtifactEvent } from '@arbidocs/react'\n\n/** Client-side redlining, re-exported so a host app has one import surface. */\nexport { toRedlineMarkdown, redlineStats, textToArtifact } from '@arbidocs/react'\n\n/**\n * The kit's `useAiTask` with the host's default assistant configuration\n * injected, so call sites needn't know the config ext_id.\n */\nexport function useConnectedAiTask() {\n const { assistantConfig } = useConnection()\n const task = useKitAiTask()\n const kitRun = task.run\n const run = useCallback(\n (question: string, docIds: string[], opts?: AiRunOptions) =>\n kitRun(question, docIds, { ...opts, model: opts?.model ?? assistantConfig }),\n [kitRun, assistantConfig]\n )\n return { ...task, run }\n}\n\n/** Resolve the active workspace + its document ids (what we ground the agent on). */\nexport function useWorkspaceDocs() {\n const { workspaceId, fallbackWorkspaceId } = useConnection()\n return useKitWorkspaceDocs(workspaceId ?? fallbackWorkspaceId)\n}\n\n/** Search the active workspace's documents and return the top matching passages. */\nexport function useSemanticSearch() {\n const { docIds } = useWorkspaceDocs()\n return useKitSemanticSearch(docIds)\n}\n\n/**\n * The chat controller for `ChatPage` bound to the connection: the active workspace and the host's\n * default assistant configuration are injected, so a host writes\n * `<ChatPage chat={useConnectedChat()} />`.\n */\nexport function useConnectedChat(\n options?: Omit<UseArbiChatOptions, 'workspaceId'>\n): ArbiChat & { mentionCandidates: MentionCandidate[] } {\n const { workspaceId, fallbackWorkspaceId, assistantConfig, user, status, ensureWorkspaceOpen } =\n useConnection()\n const wsId = workspaceId ?? fallbackWorkspaceId\n const { data: members = [] } = useWorkspaceUsers(wsId, {\n enabled: status === 'authenticated' && !!wsId,\n beforeFetch: ensureWorkspaceOpen,\n })\n const mentionCandidates: MentionCandidate[] = [\n { id: 'assistant', kind: 'assistant', label: 'Assistant' },\n ...(status === 'authenticated' ? members : [])\n .filter(\n (member) =>\n !member.agent_ext_id &&\n member.user.external_id !== user?.externalId &&\n !member.user.external_id.startsWith('agt-')\n )\n .map((member) => ({\n id: member.user.external_id,\n kind: 'user' as const,\n label:\n [member.user.given_name, member.user.family_name].filter(Boolean).join(' ') ||\n member.user.email,\n description: member.user.email,\n }))\n .sort((a, b) => a.label.localeCompare(b.label)),\n ]\n const chat = useArbiChat({\n // Drafting mode: each question names the document open beside the chat.\n activeArtifact: () => takeOpenDocumentForTurn({ workspaceId: wsId }),\n ...options,\n workspaceId: wsId,\n model: options?.model ?? assistantConfig,\n })\n return {\n ...chat,\n mentionCandidates,\n messages: chat.messages.map((message) => ({\n ...message,\n ...(message.authorId\n ? {\n senderName:\n message.authorId === user?.externalId\n ? user?.name || user?.email\n : mentionCandidates.find((candidate) => candidate.id === message.authorId)?.label,\n }\n : {}),\n })),\n }\n}\n\n/**\n * The assistant dock bound to the connection: mount it once in the layout (`Shell.Root`'s `aside`)\n * and put `AssistantDockToggle` in the topbar. Chat state lives here, so it survives closing the dock.\n */\nexport function ConnectedAssistantDock(props: Omit<AssistantDockProps, 'chat'>) {\n const chat = useConnectedChat()\n return <AssistantDock {...props} chat={chat} />\n}\n"]}
|
|
@@ -148,6 +148,6 @@ function wallArrayOffset(a, zone) {
|
|
|
148
148
|
return Math.round(zdt.offsetNanoseconds / 6e10);
|
|
149
149
|
}
|
|
150
150
|
|
|
151
|
-
export { addDays, addMonths, convertWall, detectTimeZone, diffDays, epochToWallArray, formatInZone, formatPlainDate, isValidTimeZone, isoWeekNumber, listTimeZones, safeZone, startOfWeek, todayInZone, utcToDate, utcToTime, utcToWall, wallArrayOffset, wallToEpochMs, wallToUtc, zoneCity, zoneOffsetLabel, zoneOffsetMinutes };
|
|
152
|
-
//# sourceMappingURL=chunk-
|
|
153
|
-
//# sourceMappingURL=chunk-
|
|
151
|
+
export { addDays, addMonths, convertWall, dayOfWeekSun0, detectTimeZone, diffDays, epochToWallArray, formatInZone, formatPlainDate, isValidTimeZone, isoWeekNumber, listTimeZones, safeZone, startOfWeek, todayInZone, utcToDate, utcToTime, utcToWall, wallArrayOffset, wallToEpochMs, wallToUtc, zoneCity, zoneOffsetLabel, zoneOffsetMinutes };
|
|
152
|
+
//# sourceMappingURL=chunk-GTCC2VAR.js.map
|
|
153
|
+
//# sourceMappingURL=chunk-GTCC2VAR.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/calendar/zone.ts"],"names":[],"mappings":"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","file":"chunk-TGJNPKST.js","sourcesContent":["/**\n * Zone math for the calendar. Every conversion between a wall time in a named IANA zone and a UTC\n * instant goes through Temporal (the polyfill, imported as a module: nothing global is patched),\n * so DST gaps/overlaps resolve the way RFC 5545 says (`compatible`: a skipped time moves forward,\n * a repeated time takes the earlier instant). Nothing here reads the browser's local zone.\n */\nimport { Temporal } from 'temporal-polyfill'\n\nconst pad2 = (n: number) => String(n).padStart(2, '0')\nconst pad4 = (n: number) => String(n).padStart(4, '0')\n\n/** True when `zone` is a time zone the runtime can resolve. */\nexport function isValidTimeZone(zone: string | null | undefined): zone is string {\n if (!zone) return false\n try {\n Temporal.Now.instant().toZonedDateTimeISO(zone)\n return true\n } catch {\n return false\n }\n}\n\n/** `zone` when valid, else `fallback` (else UTC). */\nexport function safeZone(zone: string | null | undefined, fallback = 'UTC'): string {\n if (isValidTimeZone(zone)) return zone\n return isValidTimeZone(fallback) ? fallback : 'UTC'\n}\n\nfunction toPlainDateTime(wall: string): Temporal.PlainDateTime {\n // Accept `YYYY-MM-DDTHH:MM`, `…:SS` and a bare date (midnight).\n return /^\\d{4}-\\d{2}-\\d{2}$/.test(wall)\n ? Temporal.PlainDate.from(wall).toPlainDateTime()\n : Temporal.PlainDateTime.from(wall)\n}\n\n/** The instant a wall time in `zone` names, as an ISO string ending in `Z` (no milliseconds unless set). */\nexport function wallToUtc(wall: string, zone: string): string {\n const zdt = toPlainDateTime(wall).toZonedDateTime(safeZone(zone), {\n disambiguation: 'compatible',\n })\n return zdt.toInstant().toString()\n}\n\n/** Epoch milliseconds of a wall time in `zone`. */\nexport function wallToEpochMs(wall: string, zone: string): number {\n return toPlainDateTime(wall).toZonedDateTime(safeZone(zone), { disambiguation: 'compatible' })\n .epochMilliseconds\n}\n\nfunction instantOf(utc: string | Date | number): Temporal.Instant {\n if (typeof utc === 'number') return Temporal.Instant.fromEpochMilliseconds(utc)\n if (utc instanceof Date) return Temporal.Instant.fromEpochMilliseconds(utc.getTime())\n return Temporal.Instant.from(utc)\n}\n\n/** The zoned date-time of an instant. */\nexport function zoned(utc: string | Date | number, zone: string): Temporal.ZonedDateTime {\n return instantOf(utc).toZonedDateTimeISO(safeZone(zone))\n}\n\n/** `YYYY-MM-DDTHH:MM` wall time of an instant in `zone`. */\nexport function utcToWall(utc: string | Date | number, zone: string): string {\n const z = zoned(utc, zone)\n return `${pad4(z.year)}-${pad2(z.month)}-${pad2(z.day)}T${pad2(z.hour)}:${pad2(z.minute)}`\n}\n\n/** `YYYY-MM-DD` date of an instant in `zone`. */\nexport function utcToDate(utc: string | Date | number, zone: string): string {\n const z = zoned(utc, zone)\n return `${pad4(z.year)}-${pad2(z.month)}-${pad2(z.day)}`\n}\n\n/** `HH:MM` of an instant in `zone`. */\nexport function utcToTime(utc: string | Date | number, zone: string): string {\n const z = zoned(utc, zone)\n return `${pad2(z.hour)}:${pad2(z.minute)}`\n}\n\n/** Convert a wall time from one zone to the same instant's wall time in another. */\nexport function convertWall(wall: string, fromZone: string, toZone: string): string {\n return utcToWall(wallToUtc(wall, fromZone), toZone)\n}\n\n/** Today's date in `zone`. */\nexport function todayInZone(zone: string, now: Date | number = Date.now()): string {\n return utcToDate(now, zone)\n}\n\n/** Calendar arithmetic on a `YYYY-MM-DD` date. */\nexport function addDays(date: string, days: number): string {\n return Temporal.PlainDate.from(date).add({ days }).toString()\n}\n\nexport function addMonths(date: string, months: number): string {\n return Temporal.PlainDate.from(date).add({ months }).toString()\n}\n\n/** Whole days from `a` to `b` (both `YYYY-MM-DD`). */\nexport function diffDays(a: string, b: string): number {\n return Temporal.PlainDate.from(a).until(Temporal.PlainDate.from(b), { largestUnit: 'days' }).days\n}\n\n/** 0 = Sunday … 6 = Saturday, for a `YYYY-MM-DD` date. */\nexport function dayOfWeekSun0(date: string): number {\n return Temporal.PlainDate.from(date).dayOfWeek % 7\n}\n\n/** The first day of the week containing `date`, for a week starting on `weekStart` (0 = Sunday). */\nexport function startOfWeek(date: string, weekStart: number): string {\n const back = (dayOfWeekSun0(date) - weekStart + 7) % 7\n return addDays(date, -back)\n}\n\n/** ISO-8601 week number of a `YYYY-MM-DD` date. */\nexport function isoWeekNumber(date: string): number {\n return Temporal.PlainDate.from(date).weekOfYear ?? 1\n}\n\n/** Offset of `zone` at an instant, in minutes east of UTC. */\nexport function zoneOffsetMinutes(zone: string, at: string | Date | number = Date.now()): number {\n return Math.round(zoned(at, zone).offsetNanoseconds / 60_000_000_000)\n}\n\n/** `GMT+5:30` / `GMT-4` / `GMT` label for `zone` at an instant. */\nexport function zoneOffsetLabel(zone: string, at: string | Date | number = Date.now()): string {\n const total = zoneOffsetMinutes(zone, at)\n if (total === 0) return 'GMT'\n const sign = total > 0 ? '+' : '-'\n const abs = Math.abs(total)\n const h = Math.floor(abs / 60)\n const m = abs % 60\n return `GMT${sign}${h}${m ? `:${pad2(m)}` : ''}`\n}\n\n/** Short city-ish label for a zone: `America/New_York` → `New York`. */\nexport function zoneCity(zone: string): string {\n const last = zone.split('/').pop() ?? zone\n return last.replace(/_/g, ' ')\n}\n\n/** Every IANA zone the runtime knows (falls back to a short list on old engines). */\nexport function listTimeZones(): string[] {\n try {\n const fn = (Intl as unknown as { supportedValuesOf?: (k: string) => string[] })\n .supportedValuesOf\n const zones = fn ? fn('timeZone') : []\n if (zones.length) return zones.includes('UTC') ? zones : ['UTC', ...zones]\n } catch {\n // fall through\n }\n return [\n 'UTC',\n 'Europe/London',\n 'Europe/Paris',\n 'Europe/Berlin',\n 'America/New_York',\n 'America/Chicago',\n 'America/Denver',\n 'America/Los_Angeles',\n 'Asia/Tokyo',\n 'Asia/Singapore',\n 'Australia/Sydney',\n ]\n}\n\n/** The viewer's zone (only as a default for a new user; rendering always uses an explicit zone). */\nexport function detectTimeZone(): string {\n try {\n return Intl.DateTimeFormat().resolvedOptions().timeZone || 'UTC'\n } catch {\n return 'UTC'\n }\n}\n\n/** Format an instant in `zone` with Intl (never the browser zone). */\nexport function formatInZone(\n utc: string | Date | number,\n zone: string,\n options: Intl.DateTimeFormatOptions,\n locale?: string\n): string {\n const ms = instantOf(utc).epochMilliseconds\n return new Intl.DateTimeFormat(locale, { ...options, timeZone: safeZone(zone) }).format(ms)\n}\n\n/** Format a `YYYY-MM-DD` date (zone-free: rendered at UTC noon so no zone can shift the day). */\nexport function formatPlainDate(\n date: string,\n options: Intl.DateTimeFormatOptions,\n locale?: string\n): string {\n return new Intl.DateTimeFormat(locale, { ...options, timeZone: 'UTC' }).format(\n Date.parse(`${date}T12:00:00Z`)\n )\n}\n\n/** Wall-clock array FullCalendar's NamedTimeZoneImpl speaks: [y, m0, d, h, min, s, ms]. */\nexport function epochToWallArray(ms: number, zone: string): number[] {\n const z = Temporal.Instant.fromEpochMilliseconds(ms).toZonedDateTimeISO(zone)\n return [z.year, z.month - 1, z.day, z.hour, z.minute, z.second, z.millisecond]\n}\n\n/** Offset (minutes east of UTC) for a wall-clock array in `zone`, resolving gaps `compatible`. */\nexport function wallArrayOffset(a: number[], zone: string): number {\n // FullCalendar may pass out-of-range parts (e.g. hour 24): normalise via a UTC Date first.\n const norm = new Date(\n Date.UTC(a[0], a[1] ?? 0, a[2] ?? 1, a[3] ?? 0, a[4] ?? 0, a[5] ?? 0, a[6] ?? 0)\n )\n const pdt = new Temporal.PlainDateTime(\n norm.getUTCFullYear(),\n norm.getUTCMonth() + 1,\n norm.getUTCDate(),\n norm.getUTCHours(),\n norm.getUTCMinutes(),\n norm.getUTCSeconds(),\n norm.getUTCMilliseconds()\n )\n const zdt = pdt.toZonedDateTime(zone, { disambiguation: 'compatible' })\n return Math.round(zdt.offsetNanoseconds / 60_000_000_000)\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/calendar/zone.ts"],"names":[],"mappings":"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","file":"chunk-GTCC2VAR.js","sourcesContent":["/**\n * Zone math for the calendar. Every conversion between a wall time in a named IANA zone and a UTC\n * instant goes through Temporal (the polyfill, imported as a module: nothing global is patched),\n * so DST gaps/overlaps resolve the way RFC 5545 says (`compatible`: a skipped time moves forward,\n * a repeated time takes the earlier instant). Nothing here reads the browser's local zone.\n */\nimport { Temporal } from 'temporal-polyfill'\n\nconst pad2 = (n: number) => String(n).padStart(2, '0')\nconst pad4 = (n: number) => String(n).padStart(4, '0')\n\n/** True when `zone` is a time zone the runtime can resolve. */\nexport function isValidTimeZone(zone: string | null | undefined): zone is string {\n if (!zone) return false\n try {\n Temporal.Now.instant().toZonedDateTimeISO(zone)\n return true\n } catch {\n return false\n }\n}\n\n/** `zone` when valid, else `fallback` (else UTC). */\nexport function safeZone(zone: string | null | undefined, fallback = 'UTC'): string {\n if (isValidTimeZone(zone)) return zone\n return isValidTimeZone(fallback) ? fallback : 'UTC'\n}\n\nfunction toPlainDateTime(wall: string): Temporal.PlainDateTime {\n // Accept `YYYY-MM-DDTHH:MM`, `…:SS` and a bare date (midnight).\n return /^\\d{4}-\\d{2}-\\d{2}$/.test(wall)\n ? Temporal.PlainDate.from(wall).toPlainDateTime()\n : Temporal.PlainDateTime.from(wall)\n}\n\n/** The instant a wall time in `zone` names, as an ISO string ending in `Z` (no milliseconds unless set). */\nexport function wallToUtc(wall: string, zone: string): string {\n const zdt = toPlainDateTime(wall).toZonedDateTime(safeZone(zone), {\n disambiguation: 'compatible',\n })\n return zdt.toInstant().toString()\n}\n\n/** Epoch milliseconds of a wall time in `zone`. */\nexport function wallToEpochMs(wall: string, zone: string): number {\n return toPlainDateTime(wall).toZonedDateTime(safeZone(zone), { disambiguation: 'compatible' })\n .epochMilliseconds\n}\n\nfunction instantOf(utc: string | Date | number): Temporal.Instant {\n if (typeof utc === 'number') return Temporal.Instant.fromEpochMilliseconds(utc)\n if (utc instanceof Date) return Temporal.Instant.fromEpochMilliseconds(utc.getTime())\n return Temporal.Instant.from(utc)\n}\n\n/** The zoned date-time of an instant. */\nexport function zoned(utc: string | Date | number, zone: string): Temporal.ZonedDateTime {\n return instantOf(utc).toZonedDateTimeISO(safeZone(zone))\n}\n\n/** `YYYY-MM-DDTHH:MM` wall time of an instant in `zone`. */\nexport function utcToWall(utc: string | Date | number, zone: string): string {\n const z = zoned(utc, zone)\n return `${pad4(z.year)}-${pad2(z.month)}-${pad2(z.day)}T${pad2(z.hour)}:${pad2(z.minute)}`\n}\n\n/** `YYYY-MM-DD` date of an instant in `zone`. */\nexport function utcToDate(utc: string | Date | number, zone: string): string {\n const z = zoned(utc, zone)\n return `${pad4(z.year)}-${pad2(z.month)}-${pad2(z.day)}`\n}\n\n/** `HH:MM` of an instant in `zone`. */\nexport function utcToTime(utc: string | Date | number, zone: string): string {\n const z = zoned(utc, zone)\n return `${pad2(z.hour)}:${pad2(z.minute)}`\n}\n\n/** Convert a wall time from one zone to the same instant's wall time in another. */\nexport function convertWall(wall: string, fromZone: string, toZone: string): string {\n return utcToWall(wallToUtc(wall, fromZone), toZone)\n}\n\n/** Today's date in `zone`. */\nexport function todayInZone(zone: string, now: Date | number = Date.now()): string {\n return utcToDate(now, zone)\n}\n\n/** Calendar arithmetic on a `YYYY-MM-DD` date. */\nexport function addDays(date: string, days: number): string {\n return Temporal.PlainDate.from(date).add({ days }).toString()\n}\n\nexport function addMonths(date: string, months: number): string {\n return Temporal.PlainDate.from(date).add({ months }).toString()\n}\n\n/** Whole days from `a` to `b` (both `YYYY-MM-DD`). */\nexport function diffDays(a: string, b: string): number {\n return Temporal.PlainDate.from(a).until(Temporal.PlainDate.from(b), { largestUnit: 'days' }).days\n}\n\n/** 0 = Sunday … 6 = Saturday, for a `YYYY-MM-DD` date. */\nexport function dayOfWeekSun0(date: string): number {\n return Temporal.PlainDate.from(date).dayOfWeek % 7\n}\n\n/** The first day of the week containing `date`, for a week starting on `weekStart` (0 = Sunday). */\nexport function startOfWeek(date: string, weekStart: number): string {\n const back = (dayOfWeekSun0(date) - weekStart + 7) % 7\n return addDays(date, -back)\n}\n\n/** ISO-8601 week number of a `YYYY-MM-DD` date. */\nexport function isoWeekNumber(date: string): number {\n return Temporal.PlainDate.from(date).weekOfYear ?? 1\n}\n\n/** Offset of `zone` at an instant, in minutes east of UTC. */\nexport function zoneOffsetMinutes(zone: string, at: string | Date | number = Date.now()): number {\n return Math.round(zoned(at, zone).offsetNanoseconds / 60_000_000_000)\n}\n\n/** `GMT+5:30` / `GMT-4` / `GMT` label for `zone` at an instant. */\nexport function zoneOffsetLabel(zone: string, at: string | Date | number = Date.now()): string {\n const total = zoneOffsetMinutes(zone, at)\n if (total === 0) return 'GMT'\n const sign = total > 0 ? '+' : '-'\n const abs = Math.abs(total)\n const h = Math.floor(abs / 60)\n const m = abs % 60\n return `GMT${sign}${h}${m ? `:${pad2(m)}` : ''}`\n}\n\n/** Short city-ish label for a zone: `America/New_York` → `New York`. */\nexport function zoneCity(zone: string): string {\n const last = zone.split('/').pop() ?? zone\n return last.replace(/_/g, ' ')\n}\n\n/** Every IANA zone the runtime knows (falls back to a short list on old engines). */\nexport function listTimeZones(): string[] {\n try {\n const fn = (Intl as unknown as { supportedValuesOf?: (k: string) => string[] })\n .supportedValuesOf\n const zones = fn ? fn('timeZone') : []\n if (zones.length) return zones.includes('UTC') ? zones : ['UTC', ...zones]\n } catch {\n // fall through\n }\n return [\n 'UTC',\n 'Europe/London',\n 'Europe/Paris',\n 'Europe/Berlin',\n 'America/New_York',\n 'America/Chicago',\n 'America/Denver',\n 'America/Los_Angeles',\n 'Asia/Tokyo',\n 'Asia/Singapore',\n 'Australia/Sydney',\n ]\n}\n\n/** The viewer's zone (only as a default for a new user; rendering always uses an explicit zone). */\nexport function detectTimeZone(): string {\n try {\n return Intl.DateTimeFormat().resolvedOptions().timeZone || 'UTC'\n } catch {\n return 'UTC'\n }\n}\n\n/** Format an instant in `zone` with Intl (never the browser zone). */\nexport function formatInZone(\n utc: string | Date | number,\n zone: string,\n options: Intl.DateTimeFormatOptions,\n locale?: string\n): string {\n const ms = instantOf(utc).epochMilliseconds\n return new Intl.DateTimeFormat(locale, { ...options, timeZone: safeZone(zone) }).format(ms)\n}\n\n/** Format a `YYYY-MM-DD` date (zone-free: rendered at UTC noon so no zone can shift the day). */\nexport function formatPlainDate(\n date: string,\n options: Intl.DateTimeFormatOptions,\n locale?: string\n): string {\n return new Intl.DateTimeFormat(locale, { ...options, timeZone: 'UTC' }).format(\n Date.parse(`${date}T12:00:00Z`)\n )\n}\n\n/** Wall-clock array FullCalendar's NamedTimeZoneImpl speaks: [y, m0, d, h, min, s, ms]. */\nexport function epochToWallArray(ms: number, zone: string): number[] {\n const z = Temporal.Instant.fromEpochMilliseconds(ms).toZonedDateTimeISO(zone)\n return [z.year, z.month - 1, z.day, z.hour, z.minute, z.second, z.millisecond]\n}\n\n/** Offset (minutes east of UTC) for a wall-clock array in `zone`, resolving gaps `compatible`. */\nexport function wallArrayOffset(a: number[], zone: string): number {\n // FullCalendar may pass out-of-range parts (e.g. hour 24): normalise via a UTC Date first.\n const norm = new Date(\n Date.UTC(a[0], a[1] ?? 0, a[2] ?? 1, a[3] ?? 0, a[4] ?? 0, a[5] ?? 0, a[6] ?? 0)\n )\n const pdt = new Temporal.PlainDateTime(\n norm.getUTCFullYear(),\n norm.getUTCMonth() + 1,\n norm.getUTCDate(),\n norm.getUTCHours(),\n norm.getUTCMinutes(),\n norm.getUTCSeconds(),\n norm.getUTCMilliseconds()\n )\n const zdt = pdt.toZonedDateTime(zone, { disambiguation: 'compatible' })\n return Math.round(zdt.offsetNanoseconds / 60_000_000_000)\n}\n"]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var chunk32HW2Q33_cjs = require('./chunk-32HW2Q33.cjs');
|
|
5
4
|
var chunk7UTB4PHM_cjs = require('./chunk-7UTB4PHM.cjs');
|
|
5
|
+
var chunk32HW2Q33_cjs = require('./chunk-32HW2Q33.cjs');
|
|
6
6
|
var chunkPPCATBOY_cjs = require('./chunk-PPCATBOY.cjs');
|
|
7
7
|
var lucideReact = require('lucide-react');
|
|
8
8
|
var ui = require('@arbidocs/react/ui');
|
|
@@ -972,5 +972,5 @@ exports.workflowFromFrontmatter = workflowFromFrontmatter;
|
|
|
972
972
|
exports.workflowSteps = workflowSteps;
|
|
973
973
|
exports.workflowsAccepting = workflowsAccepting;
|
|
974
974
|
exports.workflowsForHost = workflowsForHost;
|
|
975
|
-
//# sourceMappingURL=chunk-
|
|
976
|
-
//# sourceMappingURL=chunk-
|
|
975
|
+
//# sourceMappingURL=chunk-HM23LXUP.cjs.map
|
|
976
|
+
//# sourceMappingURL=chunk-HM23LXUP.cjs.map
|