@cloudflare/kumo 1.6.0 → 1.7.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.
- package/CHANGELOG.md +23 -0
- package/ai/component-registry.json +1 -7
- package/ai/component-registry.md +0 -88
- package/dist/.build-complete +1 -1
- package/dist/{clipboard-text-Bw5rKPXz.js → clipboard-text-CeoyR28P.js} +2 -2
- package/dist/{clipboard-text-Bw5rKPXz.js.map → clipboard-text-CeoyR28P.js.map} +1 -1
- package/dist/components/clipboard-text.js +1 -1
- package/dist/components/flow.js +5640 -0
- package/dist/components/flow.js.map +1 -0
- package/dist/date-range-picker-CbKEQ9pi.js.map +1 -1
- package/dist/index.js +10 -8
- package/dist/index.js.map +1 -1
- package/dist/src/components/date-range-picker/date-range-picker.d.ts +7 -0
- package/dist/src/components/date-range-picker/date-range-picker.d.ts.map +1 -1
- package/dist/src/components/date-range-picker/index.d.ts +3 -0
- package/dist/src/components/date-range-picker/index.d.ts.map +1 -1
- package/dist/src/components/flow/connectors.d.ts +35 -0
- package/dist/src/components/flow/connectors.d.ts.map +1 -0
- package/dist/src/components/flow/diagram.d.ts +62 -0
- package/dist/src/components/flow/diagram.d.ts.map +1 -0
- package/dist/src/components/flow/index.d.ts +26 -0
- package/dist/src/components/flow/index.d.ts.map +1 -0
- package/dist/src/components/flow/node.d.ts +52 -0
- package/dist/src/components/flow/node.d.ts.map +1 -0
- package/dist/src/components/flow/parallel.d.ts +5 -0
- package/dist/src/components/flow/parallel.d.ts.map +1 -0
- package/dist/src/components/flow/use-children.d.ts +69 -0
- package/dist/src/components/flow/use-children.d.ts.map +1 -0
- package/dist/src/index.d.ts +4 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/styles/kumo-standalone.css +1 -1
- package/dist/styles/theme-kumo.css +1 -1
- package/package.json +7 -1
- package/scripts/theme-generator/config.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-range-picker-CbKEQ9pi.js","sources":["../src/components/date-range-picker/date-range-picker.tsx"],"sourcesContent":["import {\n CaretLeftIcon,\n CaretRightIcon,\n GlobeHemisphereWestIcon,\n} from \"@phosphor-icons/react\";\nimport { useCallback, useState } from \"react\";\nimport { cn } from \"../../utils/cn\";\n\n/** DateRangePicker size and variant definitions mapping names to their Tailwind classes. */\nexport const KUMO_DATE_RANGE_PICKER_VARIANTS = {\n size: {\n sm: {\n classes: \"p-3 gap-2\",\n cellHeight: \"h-[22px]\",\n cellWidth: \"w-6\",\n calendarWidth: \"w-[168px]\",\n textSize: \"text-xs\",\n iconSize: 14,\n description: \"Compact calendar for tight spaces\",\n },\n base: {\n classes: \"p-4 gap-2.5\",\n cellHeight: \"h-[26px]\",\n cellWidth: \"w-7\",\n calendarWidth: \"w-[196px]\",\n textSize: \"text-sm\",\n iconSize: 16,\n description: \"Default calendar size\",\n },\n lg: {\n classes: \"p-5 gap-3\",\n cellHeight: \"h-[32px]\",\n cellWidth: \"w-9\",\n calendarWidth: \"w-[252px]\",\n textSize: \"text-base\",\n iconSize: 18,\n description: \"Large calendar for prominent date selection\",\n },\n },\n variant: {\n default: {\n classes: \"bg-kumo-overlay\",\n description: \"Default calendar appearance\",\n },\n subtle: {\n classes: \"bg-kumo-base\",\n description: \"Subtle calendar with minimal background\",\n },\n },\n} as const;\n\nexport const KUMO_DATE_RANGE_PICKER_DEFAULT_VARIANTS = {\n size: \"base\",\n variant: \"default\",\n} as const;\n\n// Derived types from KUMO_DATE_RANGE_PICKER_VARIANTS\nexport type KumoDateRangePickerSize =\n keyof typeof KUMO_DATE_RANGE_PICKER_VARIANTS.size;\nexport type KumoDateRangePickerVariant =\n keyof typeof KUMO_DATE_RANGE_PICKER_VARIANTS.variant;\n\nexport interface KumoDateRangePickerVariantsProps {\n /**\n * Calendar size.\n * - `\"sm\"` — Compact calendar for tight spaces\n * - `\"base\"` — Default calendar size\n * - `\"lg\"` — Large calendar for prominent date selection\n * @default \"base\"\n */\n size?: KumoDateRangePickerSize;\n /**\n * Visual variant.\n * - `\"default\"` — Standard appearance with overlay background\n * - `\"subtle\"` — Minimal background\n * @default \"default\"\n */\n variant?: KumoDateRangePickerVariant;\n}\n\nexport function dateRangePickerVariants({\n size = KUMO_DATE_RANGE_PICKER_DEFAULT_VARIANTS.size,\n variant = KUMO_DATE_RANGE_PICKER_DEFAULT_VARIANTS.variant,\n}: KumoDateRangePickerVariantsProps = {}) {\n return cn(\n // Base styles\n \"flex w-fit flex-col rounded-xl select-none\",\n // Apply variant and size styles\n KUMO_DATE_RANGE_PICKER_VARIANTS.variant[variant].classes,\n KUMO_DATE_RANGE_PICKER_VARIANTS.size[size].classes,\n );\n}\n\n// Helper to get size config\nfunction getSizeConfig(size: KumoDateRangePickerSize) {\n return KUMO_DATE_RANGE_PICKER_VARIANTS.size[size];\n}\n\nenum DateRangeCellMode {\n OUT_OF_RANGE,\n ENABLED,\n SELECTED_START_NODE,\n SELECTED_END_NODE,\n SELECTED,\n SELECTED_OUT_OF_RANGE,\n}\n\nconst DAYS_OF_WEEK = [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"] as const;\n\n/**\n * DateRangePicker component props.\n *\n * Dual-calendar date range selector with hover preview, timezone display, and reset support.\n *\n * @example\n * ```tsx\n * <DateRangePicker\n * onStartDateChange={(d) => setStart(d)}\n * onEndDateChange={(d) => setEnd(d)}\n * timezone=\"New York, NY, USA (GMT-4)\"\n * />\n *\n * // Compact variant\n * <DateRangePicker\n * size=\"sm\"\n * variant=\"subtle\"\n * onStartDateChange={setStart}\n * onEndDateChange={setEnd}\n * />\n * ```\n */\nexport interface DateRangePickerProps extends KumoDateRangePickerVariantsProps {\n /** Callback fired when start date changes. Receives `null` on reset. */\n onStartDateChange: (date: Date | null) => void;\n /** Callback fired when end date changes. Receives `null` on reset. */\n onEndDateChange: (date: Date | null) => void;\n /**\n * Display timezone string shown in the footer.\n * @default \"New York, NY, USA (GMT-4)\"\n */\n timezone?: string;\n /** Additional CSS classes merged via `cn()`. */\n className?: string;\n}\n\n/**\n * DateRangePicker — dual-calendar date range selector.\n *\n * Renders two side-by-side month calendars with click-to-select start/end dates,\n * hover preview of the range, a timezone footer, and a reset button.\n *\n * @example\n * ```tsx\n * <DateRangePicker\n * onStartDateChange={setStart}\n * onEndDateChange={setEnd}\n * />\n * ```\n */\nexport function DateRangePicker({\n onStartDateChange,\n onEndDateChange,\n size = KUMO_DATE_RANGE_PICKER_DEFAULT_VARIANTS.size,\n variant = KUMO_DATE_RANGE_PICKER_DEFAULT_VARIANTS.variant,\n timezone = \"New York, NY, USA (GMT-4)\",\n className,\n}: DateRangePickerProps) {\n const [startDate, setStartDate] = useState<Date | null>(null);\n const [endDate, setEndDate] = useState<Date | null>(null);\n const [viewingMonth, setViewingMonth] = useState<Date>(new Date());\n const [hoveringDate, setHoveringDate] = useState<Date | null>(null);\n\n const sizeConfig = getSizeConfig(size);\n\n const handleStartDateChange = (date: Date | null) => {\n setStartDate(date);\n onStartDateChange(date); // Pass the updated startDate to the parent component\n };\n\n const handleEndDateChange = (date: Date | null) => {\n setEndDate(date);\n onEndDateChange(date); // Pass the updated endDate to the parent component\n };\n\n const getMonthName = useCallback((date: Date, monthOffset?: number) => {\n const copyDate = new Date(date);\n copyDate.setMonth(copyDate.getMonth() + (monthOffset || 0));\n return copyDate.toLocaleString(\"default\", { month: \"long\" });\n }, []);\n\n const getDateYear = useCallback((date: Date, monthOffset?: number) => {\n const copyDate = new Date(date);\n copyDate.setMonth(copyDate.getMonth() + (monthOffset || 0));\n return copyDate.getFullYear();\n }, []);\n\n const getMonthsStartingDay = useCallback(\n (date: Date, monthOffset?: number) => {\n const copyDate = new Date(date);\n copyDate.setDate(1);\n copyDate.setMonth(copyDate.getMonth() + (monthOffset || 0));\n return copyDate.getDay();\n },\n [],\n );\n\n const getNumberOfDaysInMonth = useCallback(\n (date: Date, monthOffset?: number) => {\n const copyDate = new Date(date);\n copyDate.setDate(1);\n copyDate.setMonth(copyDate.getMonth() + (monthOffset || 0));\n copyDate.setMonth(copyDate.getMonth() + 1);\n copyDate.setDate(0);\n return copyDate.getDate();\n },\n [],\n );\n\n const adjustMonth = useCallback((monthOffset: number) => {\n setViewingMonth((prev) => {\n const newDate = new Date(prev);\n newDate.setMonth(newDate.getMonth() + monthOffset);\n return newDate;\n });\n }, []);\n\n const getDateFromIndex = useCallback(\n (date: Date, monthOffset: number, index: number) => {\n const startingDay = getMonthsStartingDay(date, monthOffset);\n\n if (index < startingDay) {\n // Get the last day of the previous month\n const previousMonth = new Date(date);\n previousMonth.setMonth(previousMonth.getMonth() + monthOffset);\n previousMonth.setDate(1);\n previousMonth.setDate(previousMonth.getDate() - (startingDay - index));\n return previousMonth;\n } else if (\n index >\n getNumberOfDaysInMonth(date, monthOffset) + startingDay - 1\n ) {\n // Get the first day of the next month\n const nextMonth = new Date(date);\n nextMonth.setMonth(nextMonth.getMonth() + monthOffset);\n nextMonth.setMonth(nextMonth.getMonth() + 1);\n nextMonth.setDate(\n index - getNumberOfDaysInMonth(date, monthOffset) - startingDay + 1,\n );\n return nextMonth;\n } else {\n // Get the current month's date\n const newDate = new Date(date);\n newDate.setMonth(newDate.getMonth() + monthOffset);\n newDate.setDate(index - startingDay + 1);\n return newDate;\n }\n },\n [getMonthsStartingDay, getNumberOfDaysInMonth],\n );\n\n const isDateEqual = useCallback((date1: Date | null, date2: Date | null) => {\n if (!date1 || !date2) return false;\n return date1.toDateString() === date2.toDateString();\n }, []);\n\n return (\n <div className={cn(dateRangePickerVariants({ size, variant }), className)}>\n <div className=\"flex gap-4\">\n <div className={cn(\"relative\", sizeConfig.calendarWidth)}>\n <button\n type=\"button\"\n aria-label=\"Previous month\"\n className=\"absolute top-0 left-0 cursor-pointer rounded bg-kumo-interact/85 p-1.5 hover:bg-kumo-interact\"\n onClick={() => adjustMonth(-1)}\n >\n <CaretLeftIcon size={sizeConfig.iconSize} />\n </button>\n\n <DateRangeMonthHeader\n month={getMonthName(viewingMonth)}\n year={getDateYear(viewingMonth)}\n size={size}\n updateCurrentMonth={(dateString) => {\n setViewingMonth(new Date(dateString));\n }}\n />\n\n <div className=\"grid grid-cols-7 gap-0 gap-y-0.5\">\n {Array.from({ length: 42 }).map((_, index) => (\n <DateRangeDayCell\n key={index}\n date={getDateFromIndex(viewingMonth, 0, index)}\n size={size}\n mode={\n // After current month range\n (startDate &&\n endDate &&\n getDateFromIndex(viewingMonth, 0, index) >= startDate &&\n getDateFromIndex(viewingMonth, 0, index) <= endDate &&\n index >\n getNumberOfDaysInMonth(viewingMonth, 0) +\n getMonthsStartingDay(viewingMonth, 0) -\n 1) ||\n // Before current month range\n (startDate &&\n endDate &&\n getDateFromIndex(viewingMonth, 0, index) >= startDate &&\n getDateFromIndex(viewingMonth, 0, index) <= endDate &&\n index < getMonthsStartingDay(viewingMonth, 0))\n ? DateRangeCellMode.SELECTED_OUT_OF_RANGE\n : // Before current month range\n index < getMonthsStartingDay(viewingMonth, 0)\n ? DateRangeCellMode.OUT_OF_RANGE\n : // After current month range\n index >\n getNumberOfDaysInMonth(viewingMonth, 0) +\n getMonthsStartingDay(viewingMonth, 0) -\n 1\n ? DateRangeCellMode.OUT_OF_RANGE\n : // Selected start date\n isDateEqual(\n getDateFromIndex(viewingMonth, 0, index),\n startDate,\n )\n ? DateRangeCellMode.SELECTED_START_NODE\n : // Selected end date\n isDateEqual(\n getDateFromIndex(viewingMonth, 0, index),\n endDate,\n )\n ? DateRangeCellMode.SELECTED_END_NODE\n : // Selected date range\n startDate &&\n getDateFromIndex(viewingMonth, 0, index) >=\n startDate &&\n endDate &&\n getDateFromIndex(viewingMonth, 0, index) <=\n endDate\n ? DateRangeCellMode.SELECTED\n : // Hovering past a starting date and no end date selected\n startDate &&\n !endDate &&\n hoveringDate &&\n hoveringDate > startDate &&\n getDateFromIndex(viewingMonth, 0, index) <=\n hoveringDate &&\n getDateFromIndex(viewingMonth, 0, index) >\n startDate\n ? DateRangeCellMode.SELECTED\n : // Default to enabled date\n DateRangeCellMode.ENABLED\n }\n onClick={(date) => {\n if (!startDate || date < startDate) {\n handleStartDateChange(date);\n setHoveringDate(date);\n } else {\n handleEndDateChange(date);\n }\n }}\n isHoveringDate={(date) => {\n if (startDate && !endDate && date > startDate) {\n setHoveringDate(date);\n }\n }}\n />\n ))}\n </div>\n </div>\n <div className={cn(\"relative\", sizeConfig.calendarWidth)}>\n <button\n type=\"button\"\n aria-label=\"Next month\"\n className=\"absolute top-0 right-0 cursor-pointer rounded bg-kumo-interact/85 p-1.5 hover:bg-kumo-interact\"\n onClick={() => adjustMonth(1)}\n >\n <CaretRightIcon size={sizeConfig.iconSize} />\n </button>\n\n <DateRangeMonthHeader\n month={getMonthName(viewingMonth, 1)}\n year={getDateYear(viewingMonth, 1)}\n size={size}\n updateCurrentMonth={(dateString) => {\n const date = new Date(dateString);\n date.setMonth(date.getMonth() - 1);\n setViewingMonth(date);\n }}\n />\n\n <div className=\"grid grid-cols-7 gap-0 gap-y-0.5\">\n {Array.from({ length: 42 }).map((_, index) => (\n <DateRangeDayCell\n key={index}\n date={getDateFromIndex(viewingMonth, 1, index)}\n size={size}\n mode={\n // After current month range\n (startDate &&\n endDate &&\n getDateFromIndex(viewingMonth, 1, index) >= startDate &&\n getDateFromIndex(viewingMonth, 1, index) <= endDate &&\n index >\n getNumberOfDaysInMonth(viewingMonth, 1) +\n getMonthsStartingDay(viewingMonth, 1) -\n 1) ||\n // Before current month range\n (startDate &&\n endDate &&\n getDateFromIndex(viewingMonth, 1, index) >= startDate &&\n getDateFromIndex(viewingMonth, 1, index) <= endDate &&\n index < getMonthsStartingDay(viewingMonth, 1))\n ? DateRangeCellMode.SELECTED_OUT_OF_RANGE\n : // Before current month range\n index < getMonthsStartingDay(viewingMonth, 1)\n ? DateRangeCellMode.OUT_OF_RANGE\n : // After current month range\n index >\n getNumberOfDaysInMonth(viewingMonth, 1) +\n getMonthsStartingDay(viewingMonth, 1) -\n 1\n ? DateRangeCellMode.OUT_OF_RANGE\n : // Selected start date\n isDateEqual(\n getDateFromIndex(viewingMonth, 1, index),\n startDate,\n )\n ? DateRangeCellMode.SELECTED_START_NODE\n : // Selected end date\n isDateEqual(\n getDateFromIndex(viewingMonth, 1, index),\n endDate,\n )\n ? DateRangeCellMode.SELECTED_END_NODE\n : // Selected date range\n startDate &&\n getDateFromIndex(viewingMonth, 1, index) >=\n startDate &&\n endDate &&\n getDateFromIndex(viewingMonth, 1, index) <=\n endDate\n ? DateRangeCellMode.SELECTED\n : // Hovering past a starting date and no end date selected\n startDate &&\n !endDate &&\n hoveringDate &&\n hoveringDate > startDate &&\n getDateFromIndex(viewingMonth, 1, index) <=\n hoveringDate &&\n getDateFromIndex(viewingMonth, 1, index) >\n startDate\n ? DateRangeCellMode.SELECTED\n : // Default to enabled date\n DateRangeCellMode.ENABLED\n }\n onClick={(date) => {\n if (!startDate || date < startDate) {\n handleStartDateChange(date);\n setHoveringDate(date);\n } else {\n handleEndDateChange(date);\n }\n }}\n isHoveringDate={(date) => {\n if (startDate && !endDate && date > startDate) {\n setHoveringDate(date);\n }\n }}\n />\n ))}\n </div>\n </div>\n </div>\n\n <DateRangeFooter\n timezone={timezone}\n size={size}\n reset={() => {\n handleStartDateChange(null);\n handleEndDateChange(null);\n }}\n />\n </div>\n );\n}\n\nfunction DateRangeDayCell({\n date,\n mode,\n size = KUMO_DATE_RANGE_PICKER_DEFAULT_VARIANTS.size,\n onClick,\n isHoveringDate,\n}: {\n date: Date;\n mode?: DateRangeCellMode;\n size?: KumoDateRangePickerSize;\n onClick?: (date: Date) => void;\n isHoveringDate?: (date: Date) => void;\n}) {\n const sizeConfig = getSizeConfig(size);\n\n const getDateNumberFromDate = useCallback((date: Date) => {\n return date.getDate();\n }, []);\n\n const getBackgroundColor = useCallback(() => {\n switch (mode) {\n case DateRangeCellMode.OUT_OF_RANGE:\n return \"bg-transparent\";\n case DateRangeCellMode.ENABLED:\n return \"bg-transparent\";\n case DateRangeCellMode.SELECTED_START_NODE:\n return \"!bg-kumo-contrast rounded-tl-[5px] rounded-bl-[5px]\";\n case DateRangeCellMode.SELECTED_END_NODE:\n return \"!bg-kumo-contrast rounded-tr-[5px] rounded-br-[5px]\";\n case DateRangeCellMode.SELECTED:\n return \"bg-kumo-interact\";\n case DateRangeCellMode.SELECTED_OUT_OF_RANGE:\n return \"bg-kumo-fill\";\n }\n }, [mode]);\n\n const getTextColor = useCallback(() => {\n switch (mode) {\n case DateRangeCellMode.OUT_OF_RANGE:\n case DateRangeCellMode.SELECTED_OUT_OF_RANGE:\n return \"!text-kumo-strong\";\n case DateRangeCellMode.SELECTED_START_NODE:\n case DateRangeCellMode.SELECTED_END_NODE:\n return \"!text-kumo-inverse\";\n default:\n return \"text-kumo-default\";\n }\n }, [mode]);\n\n const getAriaLabel = useCallback(() => {\n const dateStr = date.toLocaleDateString(\"en-US\", {\n weekday: \"long\",\n month: \"long\",\n day: \"numeric\",\n year: \"numeric\",\n });\n switch (mode) {\n case DateRangeCellMode.SELECTED_START_NODE:\n return `${dateStr}, selected as start date`;\n case DateRangeCellMode.SELECTED_END_NODE:\n return `${dateStr}, selected as end date`;\n case DateRangeCellMode.SELECTED:\n return `${dateStr}, within selected range`;\n default:\n return dateStr;\n }\n }, [date, mode]);\n\n return (\n <button\n type=\"button\"\n aria-label={getAriaLabel()}\n id={date.toDateString()}\n className={cn(\n sizeConfig.cellHeight,\n sizeConfig.cellWidth,\n sizeConfig.textSize,\n \"cursor-pointer text-center text-kumo-default transition-all duration-[50]\",\n `leading-[${sizeConfig.cellHeight.replace(\"h-[\", \"\").replace(\"]\", \"\")}]`,\n mode !== DateRangeCellMode.OUT_OF_RANGE &&\n mode !== DateRangeCellMode.SELECTED_OUT_OF_RANGE\n ? \"hover:bg-kumo-interact\"\n : \"\",\n getBackgroundColor(),\n getTextColor(),\n )}\n onClick={() => onClick?.(date)}\n onMouseOver={() => isHoveringDate?.(date)}\n onFocus={() => isHoveringDate?.(date)}\n >\n {getDateNumberFromDate(date)}\n </button>\n );\n}\n\nfunction DateRangeMonthHeader({\n month,\n year,\n size = KUMO_DATE_RANGE_PICKER_DEFAULT_VARIANTS.size,\n updateCurrentMonth,\n}: {\n month?: string;\n year?: number;\n size?: KumoDateRangePickerSize;\n updateCurrentMonth?: (dateString: string) => void;\n}) {\n const sizeConfig = getSizeConfig(size);\n\n return (\n <div>\n <div className=\"mb-3 text-center\">\n <input\n key={`${month}-${year}`}\n aria-label=\"Edit month and year\"\n defaultValue={`${month} ${year}`}\n className={cn(\n \"w-full rounded-md border-none bg-transparent py-1.5 text-center font-semibold text-kumo-default transition-all duration-200 focus:outline-none\",\n sizeConfig.textSize,\n )}\n onBlur={(e) => {\n if (e.currentTarget.value.length === 0) return;\n updateCurrentMonth?.(e.currentTarget.value);\n }}\n />\n </div>\n\n <div className=\"mt-2 grid grid-cols-7 gap-1\">\n {DAYS_OF_WEEK.map((day) => (\n <div\n key={day}\n className={cn(\n \"h-[22px] text-center text-kumo-subtle\",\n sizeConfig.cellWidth,\n sizeConfig.textSize,\n )}\n >\n {day}\n </div>\n ))}\n </div>\n </div>\n );\n}\n\nfunction DateRangeFooter({\n timezone,\n size = KUMO_DATE_RANGE_PICKER_DEFAULT_VARIANTS.size,\n reset,\n}: {\n timezone?: string;\n size?: KumoDateRangePickerSize;\n reset?: () => void;\n}) {\n const sizeConfig = getSizeConfig(size);\n\n return (\n <div\n className={cn(\"flex items-center gap-2 text-kumo-strong\", sizeConfig.textSize)}\n >\n <GlobeHemisphereWestIcon size={sizeConfig.iconSize} />\n <span className=\"flex-1\">Timezone: {timezone}</span>\n <button\n type=\"button\"\n onClick={reset}\n className=\"cursor-pointer font-semibold text-kumo-default underline underline-offset-2\"\n >\n Reset Dates\n </button>\n </div>\n );\n}\n\n// Default export for backwards compatibility\nexport default DateRangePicker;\n"],"names":["KUMO_DATE_RANGE_PICKER_VARIANTS","KUMO_DATE_RANGE_PICKER_DEFAULT_VARIANTS","dateRangePickerVariants","size","variant","cn","getSizeConfig","DAYS_OF_WEEK","DateRangePicker","onStartDateChange","onEndDateChange","timezone","className","startDate","setStartDate","useState","endDate","setEndDate","viewingMonth","setViewingMonth","hoveringDate","setHoveringDate","sizeConfig","handleStartDateChange","date","handleEndDateChange","getMonthName","useCallback","monthOffset","copyDate","getDateYear","getMonthsStartingDay","getNumberOfDaysInMonth","adjustMonth","prev","newDate","getDateFromIndex","index","startingDay","previousMonth","nextMonth","isDateEqual","date1","date2","jsxs","jsx","CaretLeftIcon","DateRangeMonthHeader","dateString","_","DateRangeDayCell","CaretRightIcon","DateRangeFooter","mode","onClick","isHoveringDate","getDateNumberFromDate","getBackgroundColor","getTextColor","getAriaLabel","dateStr","month","year","updateCurrentMonth","e","day","reset","GlobeHemisphereWestIcon"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"date-range-picker-CbKEQ9pi.js","sources":["../src/components/date-range-picker/date-range-picker.tsx"],"sourcesContent":["import {\n CaretLeftIcon,\n CaretRightIcon,\n GlobeHemisphereWestIcon,\n} from \"@phosphor-icons/react\";\nimport { useCallback, useState } from \"react\";\nimport { cn } from \"../../utils/cn\";\n\n/** DateRangePicker size and variant definitions mapping names to their Tailwind classes. */\nexport const KUMO_DATE_RANGE_PICKER_VARIANTS = {\n size: {\n sm: {\n classes: \"p-3 gap-2\",\n cellHeight: \"h-[22px]\",\n cellWidth: \"w-6\",\n calendarWidth: \"w-[168px]\",\n textSize: \"text-xs\",\n iconSize: 14,\n description: \"Compact calendar for tight spaces\",\n },\n base: {\n classes: \"p-4 gap-2.5\",\n cellHeight: \"h-[26px]\",\n cellWidth: \"w-7\",\n calendarWidth: \"w-[196px]\",\n textSize: \"text-sm\",\n iconSize: 16,\n description: \"Default calendar size\",\n },\n lg: {\n classes: \"p-5 gap-3\",\n cellHeight: \"h-[32px]\",\n cellWidth: \"w-9\",\n calendarWidth: \"w-[252px]\",\n textSize: \"text-base\",\n iconSize: 18,\n description: \"Large calendar for prominent date selection\",\n },\n },\n variant: {\n default: {\n classes: \"bg-kumo-overlay\",\n description: \"Default calendar appearance\",\n },\n subtle: {\n classes: \"bg-kumo-base\",\n description: \"Subtle calendar with minimal background\",\n },\n },\n} as const;\n\nexport const KUMO_DATE_RANGE_PICKER_DEFAULT_VARIANTS = {\n size: \"base\",\n variant: \"default\",\n} as const;\n\n// Derived types from KUMO_DATE_RANGE_PICKER_VARIANTS\nexport type KumoDateRangePickerSize =\n keyof typeof KUMO_DATE_RANGE_PICKER_VARIANTS.size;\nexport type KumoDateRangePickerVariant =\n keyof typeof KUMO_DATE_RANGE_PICKER_VARIANTS.variant;\n\nexport interface KumoDateRangePickerVariantsProps {\n /**\n * Calendar size.\n * - `\"sm\"` — Compact calendar for tight spaces\n * - `\"base\"` — Default calendar size\n * - `\"lg\"` — Large calendar for prominent date selection\n * @default \"base\"\n */\n size?: KumoDateRangePickerSize;\n /**\n * Visual variant.\n * - `\"default\"` — Standard appearance with overlay background\n * - `\"subtle\"` — Minimal background\n * @default \"default\"\n */\n variant?: KumoDateRangePickerVariant;\n}\n\nexport function dateRangePickerVariants({\n size = KUMO_DATE_RANGE_PICKER_DEFAULT_VARIANTS.size,\n variant = KUMO_DATE_RANGE_PICKER_DEFAULT_VARIANTS.variant,\n}: KumoDateRangePickerVariantsProps = {}) {\n return cn(\n // Base styles\n \"flex w-fit flex-col rounded-xl select-none\",\n // Apply variant and size styles\n KUMO_DATE_RANGE_PICKER_VARIANTS.variant[variant].classes,\n KUMO_DATE_RANGE_PICKER_VARIANTS.size[size].classes,\n );\n}\n\n// Helper to get size config\nfunction getSizeConfig(size: KumoDateRangePickerSize) {\n return KUMO_DATE_RANGE_PICKER_VARIANTS.size[size];\n}\n\nenum DateRangeCellMode {\n OUT_OF_RANGE,\n ENABLED,\n SELECTED_START_NODE,\n SELECTED_END_NODE,\n SELECTED,\n SELECTED_OUT_OF_RANGE,\n}\n\nconst DAYS_OF_WEEK = [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"] as const;\n\n/**\n * DateRangePicker component props.\n *\n * Dual-calendar date range selector with hover preview, timezone display, and reset support.\n *\n * @example\n * ```tsx\n * <DateRangePicker\n * onStartDateChange={(d) => setStart(d)}\n * onEndDateChange={(d) => setEnd(d)}\n * timezone=\"New York, NY, USA (GMT-4)\"\n * />\n *\n * // Compact variant\n * <DateRangePicker\n * size=\"sm\"\n * variant=\"subtle\"\n * onStartDateChange={setStart}\n * onEndDateChange={setEnd}\n * />\n * ```\n *\n * @deprecated Use {@link DatePicker} with `mode=\"range\"` instead.\n */\nexport interface DateRangePickerProps extends KumoDateRangePickerVariantsProps {\n /** Callback fired when start date changes. Receives `null` on reset. */\n onStartDateChange: (date: Date | null) => void;\n /** Callback fired when end date changes. Receives `null` on reset. */\n onEndDateChange: (date: Date | null) => void;\n /**\n * Display timezone string shown in the footer.\n * @default \"New York, NY, USA (GMT-4)\"\n */\n timezone?: string;\n /** Additional CSS classes merged via `cn()`. */\n className?: string;\n}\n\n/**\n * DateRangePicker — dual-calendar date range selector.\n *\n * Renders two side-by-side month calendars with click-to-select start/end dates,\n * hover preview of the range, a timezone footer, and a reset button.\n *\n * @example\n * ```tsx\n * <DateRangePicker\n * onStartDateChange={setStart}\n * onEndDateChange={setEnd}\n * />\n * ```\n *\n * @deprecated Use {@link DatePicker} with `mode=\"range\"` instead.\n */\nexport function DateRangePicker({\n onStartDateChange,\n onEndDateChange,\n size = KUMO_DATE_RANGE_PICKER_DEFAULT_VARIANTS.size,\n variant = KUMO_DATE_RANGE_PICKER_DEFAULT_VARIANTS.variant,\n timezone = \"New York, NY, USA (GMT-4)\",\n className,\n}: DateRangePickerProps) {\n const [startDate, setStartDate] = useState<Date | null>(null);\n const [endDate, setEndDate] = useState<Date | null>(null);\n const [viewingMonth, setViewingMonth] = useState<Date>(new Date());\n const [hoveringDate, setHoveringDate] = useState<Date | null>(null);\n\n const sizeConfig = getSizeConfig(size);\n\n const handleStartDateChange = (date: Date | null) => {\n setStartDate(date);\n onStartDateChange(date); // Pass the updated startDate to the parent component\n };\n\n const handleEndDateChange = (date: Date | null) => {\n setEndDate(date);\n onEndDateChange(date); // Pass the updated endDate to the parent component\n };\n\n const getMonthName = useCallback((date: Date, monthOffset?: number) => {\n const copyDate = new Date(date);\n copyDate.setMonth(copyDate.getMonth() + (monthOffset || 0));\n return copyDate.toLocaleString(\"default\", { month: \"long\" });\n }, []);\n\n const getDateYear = useCallback((date: Date, monthOffset?: number) => {\n const copyDate = new Date(date);\n copyDate.setMonth(copyDate.getMonth() + (monthOffset || 0));\n return copyDate.getFullYear();\n }, []);\n\n const getMonthsStartingDay = useCallback(\n (date: Date, monthOffset?: number) => {\n const copyDate = new Date(date);\n copyDate.setDate(1);\n copyDate.setMonth(copyDate.getMonth() + (monthOffset || 0));\n return copyDate.getDay();\n },\n [],\n );\n\n const getNumberOfDaysInMonth = useCallback(\n (date: Date, monthOffset?: number) => {\n const copyDate = new Date(date);\n copyDate.setDate(1);\n copyDate.setMonth(copyDate.getMonth() + (monthOffset || 0));\n copyDate.setMonth(copyDate.getMonth() + 1);\n copyDate.setDate(0);\n return copyDate.getDate();\n },\n [],\n );\n\n const adjustMonth = useCallback((monthOffset: number) => {\n setViewingMonth((prev) => {\n const newDate = new Date(prev);\n newDate.setMonth(newDate.getMonth() + monthOffset);\n return newDate;\n });\n }, []);\n\n const getDateFromIndex = useCallback(\n (date: Date, monthOffset: number, index: number) => {\n const startingDay = getMonthsStartingDay(date, monthOffset);\n\n if (index < startingDay) {\n // Get the last day of the previous month\n const previousMonth = new Date(date);\n previousMonth.setMonth(previousMonth.getMonth() + monthOffset);\n previousMonth.setDate(1);\n previousMonth.setDate(previousMonth.getDate() - (startingDay - index));\n return previousMonth;\n } else if (\n index >\n getNumberOfDaysInMonth(date, monthOffset) + startingDay - 1\n ) {\n // Get the first day of the next month\n const nextMonth = new Date(date);\n nextMonth.setMonth(nextMonth.getMonth() + monthOffset);\n nextMonth.setMonth(nextMonth.getMonth() + 1);\n nextMonth.setDate(\n index - getNumberOfDaysInMonth(date, monthOffset) - startingDay + 1,\n );\n return nextMonth;\n } else {\n // Get the current month's date\n const newDate = new Date(date);\n newDate.setMonth(newDate.getMonth() + monthOffset);\n newDate.setDate(index - startingDay + 1);\n return newDate;\n }\n },\n [getMonthsStartingDay, getNumberOfDaysInMonth],\n );\n\n const isDateEqual = useCallback((date1: Date | null, date2: Date | null) => {\n if (!date1 || !date2) return false;\n return date1.toDateString() === date2.toDateString();\n }, []);\n\n return (\n <div className={cn(dateRangePickerVariants({ size, variant }), className)}>\n <div className=\"flex gap-4\">\n <div className={cn(\"relative\", sizeConfig.calendarWidth)}>\n <button\n type=\"button\"\n aria-label=\"Previous month\"\n className=\"absolute top-0 left-0 cursor-pointer rounded bg-kumo-interact/85 p-1.5 hover:bg-kumo-interact\"\n onClick={() => adjustMonth(-1)}\n >\n <CaretLeftIcon size={sizeConfig.iconSize} />\n </button>\n\n <DateRangeMonthHeader\n month={getMonthName(viewingMonth)}\n year={getDateYear(viewingMonth)}\n size={size}\n updateCurrentMonth={(dateString) => {\n setViewingMonth(new Date(dateString));\n }}\n />\n\n <div className=\"grid grid-cols-7 gap-0 gap-y-0.5\">\n {Array.from({ length: 42 }).map((_, index) => (\n <DateRangeDayCell\n key={index}\n date={getDateFromIndex(viewingMonth, 0, index)}\n size={size}\n mode={\n // After current month range\n (startDate &&\n endDate &&\n getDateFromIndex(viewingMonth, 0, index) >= startDate &&\n getDateFromIndex(viewingMonth, 0, index) <= endDate &&\n index >\n getNumberOfDaysInMonth(viewingMonth, 0) +\n getMonthsStartingDay(viewingMonth, 0) -\n 1) ||\n // Before current month range\n (startDate &&\n endDate &&\n getDateFromIndex(viewingMonth, 0, index) >= startDate &&\n getDateFromIndex(viewingMonth, 0, index) <= endDate &&\n index < getMonthsStartingDay(viewingMonth, 0))\n ? DateRangeCellMode.SELECTED_OUT_OF_RANGE\n : // Before current month range\n index < getMonthsStartingDay(viewingMonth, 0)\n ? DateRangeCellMode.OUT_OF_RANGE\n : // After current month range\n index >\n getNumberOfDaysInMonth(viewingMonth, 0) +\n getMonthsStartingDay(viewingMonth, 0) -\n 1\n ? DateRangeCellMode.OUT_OF_RANGE\n : // Selected start date\n isDateEqual(\n getDateFromIndex(viewingMonth, 0, index),\n startDate,\n )\n ? DateRangeCellMode.SELECTED_START_NODE\n : // Selected end date\n isDateEqual(\n getDateFromIndex(viewingMonth, 0, index),\n endDate,\n )\n ? DateRangeCellMode.SELECTED_END_NODE\n : // Selected date range\n startDate &&\n getDateFromIndex(viewingMonth, 0, index) >=\n startDate &&\n endDate &&\n getDateFromIndex(viewingMonth, 0, index) <=\n endDate\n ? DateRangeCellMode.SELECTED\n : // Hovering past a starting date and no end date selected\n startDate &&\n !endDate &&\n hoveringDate &&\n hoveringDate > startDate &&\n getDateFromIndex(viewingMonth, 0, index) <=\n hoveringDate &&\n getDateFromIndex(viewingMonth, 0, index) >\n startDate\n ? DateRangeCellMode.SELECTED\n : // Default to enabled date\n DateRangeCellMode.ENABLED\n }\n onClick={(date) => {\n if (!startDate || date < startDate) {\n handleStartDateChange(date);\n setHoveringDate(date);\n } else {\n handleEndDateChange(date);\n }\n }}\n isHoveringDate={(date) => {\n if (startDate && !endDate && date > startDate) {\n setHoveringDate(date);\n }\n }}\n />\n ))}\n </div>\n </div>\n <div className={cn(\"relative\", sizeConfig.calendarWidth)}>\n <button\n type=\"button\"\n aria-label=\"Next month\"\n className=\"absolute top-0 right-0 cursor-pointer rounded bg-kumo-interact/85 p-1.5 hover:bg-kumo-interact\"\n onClick={() => adjustMonth(1)}\n >\n <CaretRightIcon size={sizeConfig.iconSize} />\n </button>\n\n <DateRangeMonthHeader\n month={getMonthName(viewingMonth, 1)}\n year={getDateYear(viewingMonth, 1)}\n size={size}\n updateCurrentMonth={(dateString) => {\n const date = new Date(dateString);\n date.setMonth(date.getMonth() - 1);\n setViewingMonth(date);\n }}\n />\n\n <div className=\"grid grid-cols-7 gap-0 gap-y-0.5\">\n {Array.from({ length: 42 }).map((_, index) => (\n <DateRangeDayCell\n key={index}\n date={getDateFromIndex(viewingMonth, 1, index)}\n size={size}\n mode={\n // After current month range\n (startDate &&\n endDate &&\n getDateFromIndex(viewingMonth, 1, index) >= startDate &&\n getDateFromIndex(viewingMonth, 1, index) <= endDate &&\n index >\n getNumberOfDaysInMonth(viewingMonth, 1) +\n getMonthsStartingDay(viewingMonth, 1) -\n 1) ||\n // Before current month range\n (startDate &&\n endDate &&\n getDateFromIndex(viewingMonth, 1, index) >= startDate &&\n getDateFromIndex(viewingMonth, 1, index) <= endDate &&\n index < getMonthsStartingDay(viewingMonth, 1))\n ? DateRangeCellMode.SELECTED_OUT_OF_RANGE\n : // Before current month range\n index < getMonthsStartingDay(viewingMonth, 1)\n ? DateRangeCellMode.OUT_OF_RANGE\n : // After current month range\n index >\n getNumberOfDaysInMonth(viewingMonth, 1) +\n getMonthsStartingDay(viewingMonth, 1) -\n 1\n ? DateRangeCellMode.OUT_OF_RANGE\n : // Selected start date\n isDateEqual(\n getDateFromIndex(viewingMonth, 1, index),\n startDate,\n )\n ? DateRangeCellMode.SELECTED_START_NODE\n : // Selected end date\n isDateEqual(\n getDateFromIndex(viewingMonth, 1, index),\n endDate,\n )\n ? DateRangeCellMode.SELECTED_END_NODE\n : // Selected date range\n startDate &&\n getDateFromIndex(viewingMonth, 1, index) >=\n startDate &&\n endDate &&\n getDateFromIndex(viewingMonth, 1, index) <=\n endDate\n ? DateRangeCellMode.SELECTED\n : // Hovering past a starting date and no end date selected\n startDate &&\n !endDate &&\n hoveringDate &&\n hoveringDate > startDate &&\n getDateFromIndex(viewingMonth, 1, index) <=\n hoveringDate &&\n getDateFromIndex(viewingMonth, 1, index) >\n startDate\n ? DateRangeCellMode.SELECTED\n : // Default to enabled date\n DateRangeCellMode.ENABLED\n }\n onClick={(date) => {\n if (!startDate || date < startDate) {\n handleStartDateChange(date);\n setHoveringDate(date);\n } else {\n handleEndDateChange(date);\n }\n }}\n isHoveringDate={(date) => {\n if (startDate && !endDate && date > startDate) {\n setHoveringDate(date);\n }\n }}\n />\n ))}\n </div>\n </div>\n </div>\n\n <DateRangeFooter\n timezone={timezone}\n size={size}\n reset={() => {\n handleStartDateChange(null);\n handleEndDateChange(null);\n }}\n />\n </div>\n );\n}\n\nfunction DateRangeDayCell({\n date,\n mode,\n size = KUMO_DATE_RANGE_PICKER_DEFAULT_VARIANTS.size,\n onClick,\n isHoveringDate,\n}: {\n date: Date;\n mode?: DateRangeCellMode;\n size?: KumoDateRangePickerSize;\n onClick?: (date: Date) => void;\n isHoveringDate?: (date: Date) => void;\n}) {\n const sizeConfig = getSizeConfig(size);\n\n const getDateNumberFromDate = useCallback((date: Date) => {\n return date.getDate();\n }, []);\n\n const getBackgroundColor = useCallback(() => {\n switch (mode) {\n case DateRangeCellMode.OUT_OF_RANGE:\n return \"bg-transparent\";\n case DateRangeCellMode.ENABLED:\n return \"bg-transparent\";\n case DateRangeCellMode.SELECTED_START_NODE:\n return \"!bg-kumo-contrast rounded-tl-[5px] rounded-bl-[5px]\";\n case DateRangeCellMode.SELECTED_END_NODE:\n return \"!bg-kumo-contrast rounded-tr-[5px] rounded-br-[5px]\";\n case DateRangeCellMode.SELECTED:\n return \"bg-kumo-interact\";\n case DateRangeCellMode.SELECTED_OUT_OF_RANGE:\n return \"bg-kumo-fill\";\n }\n }, [mode]);\n\n const getTextColor = useCallback(() => {\n switch (mode) {\n case DateRangeCellMode.OUT_OF_RANGE:\n case DateRangeCellMode.SELECTED_OUT_OF_RANGE:\n return \"!text-kumo-strong\";\n case DateRangeCellMode.SELECTED_START_NODE:\n case DateRangeCellMode.SELECTED_END_NODE:\n return \"!text-kumo-inverse\";\n default:\n return \"text-kumo-default\";\n }\n }, [mode]);\n\n const getAriaLabel = useCallback(() => {\n const dateStr = date.toLocaleDateString(\"en-US\", {\n weekday: \"long\",\n month: \"long\",\n day: \"numeric\",\n year: \"numeric\",\n });\n switch (mode) {\n case DateRangeCellMode.SELECTED_START_NODE:\n return `${dateStr}, selected as start date`;\n case DateRangeCellMode.SELECTED_END_NODE:\n return `${dateStr}, selected as end date`;\n case DateRangeCellMode.SELECTED:\n return `${dateStr}, within selected range`;\n default:\n return dateStr;\n }\n }, [date, mode]);\n\n return (\n <button\n type=\"button\"\n aria-label={getAriaLabel()}\n id={date.toDateString()}\n className={cn(\n sizeConfig.cellHeight,\n sizeConfig.cellWidth,\n sizeConfig.textSize,\n \"cursor-pointer text-center text-kumo-default transition-all duration-[50]\",\n `leading-[${sizeConfig.cellHeight.replace(\"h-[\", \"\").replace(\"]\", \"\")}]`,\n mode !== DateRangeCellMode.OUT_OF_RANGE &&\n mode !== DateRangeCellMode.SELECTED_OUT_OF_RANGE\n ? \"hover:bg-kumo-interact\"\n : \"\",\n getBackgroundColor(),\n getTextColor(),\n )}\n onClick={() => onClick?.(date)}\n onMouseOver={() => isHoveringDate?.(date)}\n onFocus={() => isHoveringDate?.(date)}\n >\n {getDateNumberFromDate(date)}\n </button>\n );\n}\n\nfunction DateRangeMonthHeader({\n month,\n year,\n size = KUMO_DATE_RANGE_PICKER_DEFAULT_VARIANTS.size,\n updateCurrentMonth,\n}: {\n month?: string;\n year?: number;\n size?: KumoDateRangePickerSize;\n updateCurrentMonth?: (dateString: string) => void;\n}) {\n const sizeConfig = getSizeConfig(size);\n\n return (\n <div>\n <div className=\"mb-3 text-center\">\n <input\n key={`${month}-${year}`}\n aria-label=\"Edit month and year\"\n defaultValue={`${month} ${year}`}\n className={cn(\n \"w-full rounded-md border-none bg-transparent py-1.5 text-center font-semibold text-kumo-default transition-all duration-200 focus:outline-none\",\n sizeConfig.textSize,\n )}\n onBlur={(e) => {\n if (e.currentTarget.value.length === 0) return;\n updateCurrentMonth?.(e.currentTarget.value);\n }}\n />\n </div>\n\n <div className=\"mt-2 grid grid-cols-7 gap-1\">\n {DAYS_OF_WEEK.map((day) => (\n <div\n key={day}\n className={cn(\n \"h-[22px] text-center text-kumo-subtle\",\n sizeConfig.cellWidth,\n sizeConfig.textSize,\n )}\n >\n {day}\n </div>\n ))}\n </div>\n </div>\n );\n}\n\nfunction DateRangeFooter({\n timezone,\n size = KUMO_DATE_RANGE_PICKER_DEFAULT_VARIANTS.size,\n reset,\n}: {\n timezone?: string;\n size?: KumoDateRangePickerSize;\n reset?: () => void;\n}) {\n const sizeConfig = getSizeConfig(size);\n\n return (\n <div\n className={cn(\"flex items-center gap-2 text-kumo-strong\", sizeConfig.textSize)}\n >\n <GlobeHemisphereWestIcon size={sizeConfig.iconSize} />\n <span className=\"flex-1\">Timezone: {timezone}</span>\n <button\n type=\"button\"\n onClick={reset}\n className=\"cursor-pointer font-semibold text-kumo-default underline underline-offset-2\"\n >\n Reset Dates\n </button>\n </div>\n );\n}\n\n// Default export for backwards compatibility\n/**\n * @deprecated Use {@link DatePicker} with `mode=\"range\"` instead.\n */\nexport default DateRangePicker;\n"],"names":["KUMO_DATE_RANGE_PICKER_VARIANTS","KUMO_DATE_RANGE_PICKER_DEFAULT_VARIANTS","dateRangePickerVariants","size","variant","cn","getSizeConfig","DAYS_OF_WEEK","DateRangePicker","onStartDateChange","onEndDateChange","timezone","className","startDate","setStartDate","useState","endDate","setEndDate","viewingMonth","setViewingMonth","hoveringDate","setHoveringDate","sizeConfig","handleStartDateChange","date","handleEndDateChange","getMonthName","useCallback","monthOffset","copyDate","getDateYear","getMonthsStartingDay","getNumberOfDaysInMonth","adjustMonth","prev","newDate","getDateFromIndex","index","startingDay","previousMonth","nextMonth","isDateEqual","date1","date2","jsxs","jsx","CaretLeftIcon","DateRangeMonthHeader","dateString","_","DateRangeDayCell","CaretRightIcon","DateRangeFooter","mode","onClick","isHoveringDate","getDateNumberFromDate","getBackgroundColor","getTextColor","getAriaLabel","dateStr","month","year","updateCurrentMonth","e","day","reset","GlobeHemisphereWestIcon"],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -6,7 +6,7 @@ import { B as n } from "./button-Bh96oxRL.js";
|
|
|
6
6
|
import { L as aa, R as ea, b as oa } from "./button-Bh96oxRL.js";
|
|
7
7
|
import { D as ta } from "./date-range-picker-CbKEQ9pi.js";
|
|
8
8
|
import { C as ia } from "./checkbox-Dt8iSNOg.js";
|
|
9
|
-
import { C as na } from "./clipboard-text-
|
|
9
|
+
import { C as na } from "./clipboard-text-CeoyR28P.js";
|
|
10
10
|
import { C as pa, a as fa } from "./code-T2wPDiM0.js";
|
|
11
11
|
import { C as ca } from "./combobox-BIC-YZ2L.js";
|
|
12
12
|
import { a as N, D as O, c as U, e as A } from "./dialog-toS9krNF.js";
|
|
@@ -43,13 +43,14 @@ import { E as ze } from "./empty-D03cbzRS.js";
|
|
|
43
43
|
import { G as je, a as $e, c as qe, K as We, b as Xe, g as He } from "./grid-DKajRHh8.js";
|
|
44
44
|
import { C as Qe, a as Ye, K as Ze, P as ao, g as eo } from "./cloudflare-logo-Dqd1VD9z.js";
|
|
45
45
|
import { D as ro } from "./date-picker-M6uNX5Ca.js";
|
|
46
|
+
import { Flow as so } from "./components/flow.js";
|
|
46
47
|
import { c as D } from "./cn-Bhsu1vx2.js";
|
|
47
|
-
import { s as
|
|
48
|
-
import { L as
|
|
48
|
+
import { s as lo } from "./cn-Bhsu1vx2.js";
|
|
49
|
+
import { L as mo, u as po } from "./link-provider-DPBGo-0n.js";
|
|
49
50
|
import { jsx as a, jsxs as e } from "react/jsx-runtime";
|
|
50
51
|
import { useState as _, useEffect as V, useCallback as m } from "react";
|
|
51
52
|
import { XIcon as K, WarningCircleIcon as M, CheckIcon as k, CopyIcon as v } from "@phosphor-icons/react";
|
|
52
|
-
import { i as
|
|
53
|
+
import { i as co } from "./vendor-base-ui-9w7J6BvW.js";
|
|
53
54
|
const W = {
|
|
54
55
|
size: {
|
|
55
56
|
sm: {
|
|
@@ -222,6 +223,7 @@ export {
|
|
|
222
223
|
_a as DropdownMenu,
|
|
223
224
|
ze as Empty,
|
|
224
225
|
La as Field,
|
|
226
|
+
so as Flow,
|
|
225
227
|
je as Grid,
|
|
226
228
|
$e as GridItem,
|
|
227
229
|
g as Input,
|
|
@@ -251,7 +253,7 @@ export {
|
|
|
251
253
|
Ba as LayerCard,
|
|
252
254
|
Pe as Link,
|
|
253
255
|
aa as LinkButton,
|
|
254
|
-
|
|
256
|
+
mo as LinkProvider,
|
|
255
257
|
za as Loader,
|
|
256
258
|
qa as MenuBar,
|
|
257
259
|
Ha as Meter,
|
|
@@ -270,7 +272,7 @@ export {
|
|
|
270
272
|
se as Tabs,
|
|
271
273
|
me as Text,
|
|
272
274
|
va as Textarea,
|
|
273
|
-
|
|
275
|
+
co as Toast,
|
|
274
276
|
fe as ToastProvider,
|
|
275
277
|
de as Toasty,
|
|
276
278
|
Te as Tooltip,
|
|
@@ -285,9 +287,9 @@ export {
|
|
|
285
287
|
ga as labelContentVariants,
|
|
286
288
|
Da as labelVariants,
|
|
287
289
|
ye as linkVariants,
|
|
288
|
-
|
|
290
|
+
lo as safeRandomId,
|
|
289
291
|
ce as useKumoToastManager,
|
|
290
|
-
|
|
292
|
+
po as useLinkComponent,
|
|
291
293
|
Wa as useMenuNavigation
|
|
292
294
|
};
|
|
293
295
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/blocks/delete-resource/delete-resource.tsx"],"sourcesContent":["import { useState, useCallback, useEffect } from \"react\";\nimport {\n Dialog,\n DialogRoot,\n DialogTitle,\n DialogClose,\n} from \"../../components/dialog\";\nimport { Input } from \"../../components/input\";\nimport { Button } from \"../../components/button\";\nimport { cn } from \"../../utils/cn\";\nimport {\n CheckIcon,\n CopyIcon,\n WarningCircleIcon,\n XIcon,\n} from \"@phosphor-icons/react\";\nimport { Banner } from \"../../components/banner\";\n\nexport const KUMO_DELETE_RESOURCE_VARIANTS = {\n size: {\n sm: {\n classes: \"\",\n description: \"Small dialog for simple delete confirmations\",\n },\n base: {\n classes: \"\",\n description: \"Default delete confirmation dialog size\",\n },\n },\n} as const;\n\nexport const KUMO_DELETE_RESOURCE_DEFAULT_VARIANTS = {\n size: \"base\",\n} as const;\n\nexport type KumoDeleteResourceSize =\n keyof typeof KUMO_DELETE_RESOURCE_VARIANTS.size;\n\nexport interface KumoDeleteResourceVariantsProps {\n size?: KumoDeleteResourceSize;\n}\n\nexport interface DeleteResourceProps extends KumoDeleteResourceVariantsProps {\n /** Whether the dialog is open */\n open: boolean;\n /** Callback when open state changes */\n onOpenChange: (open: boolean) => void;\n /** The type of resource being deleted (e.g., \"Zone\", \"Worker\", \"KV Namespace\") */\n resourceType: string;\n /** The name of the specific resource being deleted */\n resourceName: string;\n /** Callback when delete is confirmed */\n onDelete: () => void | Promise<void>;\n /** Whether the delete action is in progress */\n isDeleting?: boolean;\n /** Whether the confirmation input should be case-sensitive (default: true) */\n caseSensitive?: boolean;\n /** Custom delete button text (defaults to \"Delete {resourceType}\") */\n deleteButtonText?: string;\n /** Additional className for the dialog */\n className?: string;\n /** Error message to display if the delete action fails */\n errorMessage?: string;\n}\n\nexport function DeleteResource({\n open,\n onOpenChange,\n resourceType,\n resourceName,\n onDelete,\n isDeleting = false,\n caseSensitive = true,\n deleteButtonText,\n size = KUMO_DELETE_RESOURCE_DEFAULT_VARIANTS.size,\n errorMessage,\n className,\n}: DeleteResourceProps) {\n const [confirmationInput, setConfirmationInput] = useState(\"\");\n const [copied, setCopied] = useState(false);\n\n useEffect(() => {\n if (!open) {\n setConfirmationInput(\"\");\n setCopied(false);\n }\n }, [open]);\n\n const normalizeForComparison = useCallback(\n (str: string) => (caseSensitive ? str : str.toLowerCase()),\n [caseSensitive],\n );\n\n const isConfirmed =\n normalizeForComparison(confirmationInput) ===\n normalizeForComparison(resourceName);\n\n const handleDelete = useCallback(async () => {\n if (!isConfirmed || isDeleting) return;\n await onDelete();\n }, [isConfirmed, isDeleting, onDelete]);\n\n const handleCopy = useCallback(async () => {\n await navigator.clipboard.writeText(resourceName);\n setCopied(true);\n setTimeout(() => setCopied(false), 1500);\n }, [resourceName]);\n\n return (\n <DialogRoot open={open} onOpenChange={onOpenChange}>\n <Dialog size={size} className={cn(\"p-0\", className)}>\n <div className=\"flex items-center justify-between border-b border-kumo-line px-6 py-4\">\n <DialogTitle className=\"text-lg font-semibold\">\n Delete {resourceName}\n </DialogTitle>\n <DialogClose\n render={(props) => (\n <Button\n {...props}\n variant=\"ghost\"\n shape=\"square\"\n size=\"sm\"\n aria-label=\"Close\"\n disabled={isDeleting}\n >\n <XIcon size={18} />\n </Button>\n )}\n />\n </div>\n\n <div className=\"flex flex-col p-6 gap-4\">\n <div className=\"flex flex-col gap-2\">\n {errorMessage && (\n <Banner icon={<WarningCircleIcon />} variant=\"error\">\n {errorMessage}\n </Banner>\n )}\n <p className=\"text-base text-kumo-subtle max-w-prose text-pretty\">\n This action cannot be undone. This will permanently delete the{\" \"}\n <span className=\"font-medium text-kumo-default\">\n {resourceName}\n </span>{\" \"}\n {resourceType.toLowerCase()}.\n </p>\n </div>\n\n <div className=\"flex flex-col gap-2\">\n <div className=\"flex items-center gap-1.5 text-base\">\n <span>\n Type{\" \"}\n <button\n className=\"font-mono text-sm inline font-semibold bg-kumo-tint hover:bg-kumo-fill rounded-md px-2 py-1 group hover:cursor-pointer\"\n onClick={handleCopy}\n aria-label={`Copy ${resourceName} to clipboard`}\n >\n {resourceName}\n\n {copied ? (\n <CheckIcon\n size={12}\n weight=\"bold\"\n className=\"inline ml-1.5\"\n />\n ) : (\n <CopyIcon\n size={12}\n weight=\"bold\"\n className=\"inline text-kumo-subtle group-hover:text-kumo-default ml-1.5\"\n />\n )}\n </button>{\" \"}\n to confirm:\n </span>\n </div>\n <Input\n placeholder={resourceName}\n value={confirmationInput}\n onChange={(e) => setConfirmationInput(e.target.value)}\n disabled={isDeleting}\n autoComplete=\"off\"\n autoCorrect=\"off\"\n autoCapitalize=\"off\"\n spellCheck={false}\n aria-label={`Type ${resourceName} to confirm deletion`}\n className=\"w-full\"\n />\n </div>\n </div>\n\n <div className=\"flex justify-end gap-3 border-t border-kumo-line px-6 py-4\">\n <DialogClose\n render={(props) => (\n <Button {...props} variant=\"secondary\" disabled={isDeleting}>\n Cancel\n </Button>\n )}\n />\n <Button\n variant=\"destructive\"\n onClick={handleDelete}\n disabled={!isConfirmed || isDeleting}\n loading={isDeleting}\n >\n {deleteButtonText || `Delete ${resourceType}`}\n </Button>\n </div>\n </Dialog>\n </DialogRoot>\n );\n}\n\nDeleteResource.displayName = \"DeleteResource\";\n"],"names":["KUMO_DELETE_RESOURCE_VARIANTS","KUMO_DELETE_RESOURCE_DEFAULT_VARIANTS","DeleteResource","open","onOpenChange","resourceType","resourceName","onDelete","isDeleting","caseSensitive","deleteButtonText","size","errorMessage","className","confirmationInput","setConfirmationInput","useState","copied","setCopied","useEffect","normalizeForComparison","useCallback","str","isConfirmed","handleDelete","handleCopy","jsx","DialogRoot","jsxs","Dialog","cn","DialogTitle","DialogClose","props","Button","XIcon","Banner","WarningCircleIcon","CheckIcon","CopyIcon","Input","e"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/blocks/delete-resource/delete-resource.tsx"],"sourcesContent":["import { useState, useCallback, useEffect } from \"react\";\nimport {\n Dialog,\n DialogRoot,\n DialogTitle,\n DialogClose,\n} from \"../../components/dialog\";\nimport { Input } from \"../../components/input\";\nimport { Button } from \"../../components/button\";\nimport { cn } from \"../../utils/cn\";\nimport {\n CheckIcon,\n CopyIcon,\n WarningCircleIcon,\n XIcon,\n} from \"@phosphor-icons/react\";\nimport { Banner } from \"../../components/banner\";\n\nexport const KUMO_DELETE_RESOURCE_VARIANTS = {\n size: {\n sm: {\n classes: \"\",\n description: \"Small dialog for simple delete confirmations\",\n },\n base: {\n classes: \"\",\n description: \"Default delete confirmation dialog size\",\n },\n },\n} as const;\n\nexport const KUMO_DELETE_RESOURCE_DEFAULT_VARIANTS = {\n size: \"base\",\n} as const;\n\nexport type KumoDeleteResourceSize =\n keyof typeof KUMO_DELETE_RESOURCE_VARIANTS.size;\n\nexport interface KumoDeleteResourceVariantsProps {\n size?: KumoDeleteResourceSize;\n}\n\nexport interface DeleteResourceProps extends KumoDeleteResourceVariantsProps {\n /** Whether the dialog is open */\n open: boolean;\n /** Callback when open state changes */\n onOpenChange: (open: boolean) => void;\n /** The type of resource being deleted (e.g., \"Zone\", \"Worker\", \"KV Namespace\") */\n resourceType: string;\n /** The name of the specific resource being deleted */\n resourceName: string;\n /** Callback when delete is confirmed */\n onDelete: () => void | Promise<void>;\n /** Whether the delete action is in progress */\n isDeleting?: boolean;\n /** Whether the confirmation input should be case-sensitive (default: true) */\n caseSensitive?: boolean;\n /** Custom delete button text (defaults to \"Delete {resourceType}\") */\n deleteButtonText?: string;\n /** Additional className for the dialog */\n className?: string;\n /** Error message to display if the delete action fails */\n errorMessage?: string;\n}\n\nexport function DeleteResource({\n open,\n onOpenChange,\n resourceType,\n resourceName,\n onDelete,\n isDeleting = false,\n caseSensitive = true,\n deleteButtonText,\n size = KUMO_DELETE_RESOURCE_DEFAULT_VARIANTS.size,\n errorMessage,\n className,\n}: DeleteResourceProps) {\n const [confirmationInput, setConfirmationInput] = useState(\"\");\n const [copied, setCopied] = useState(false);\n\n useEffect(() => {\n if (!open) {\n setConfirmationInput(\"\");\n setCopied(false);\n }\n }, [open]);\n\n const normalizeForComparison = useCallback(\n (str: string) => (caseSensitive ? str : str.toLowerCase()),\n [caseSensitive],\n );\n\n const isConfirmed =\n normalizeForComparison(confirmationInput) ===\n normalizeForComparison(resourceName);\n\n const handleDelete = useCallback(async () => {\n if (!isConfirmed || isDeleting) return;\n await onDelete();\n }, [isConfirmed, isDeleting, onDelete]);\n\n const handleCopy = useCallback(async () => {\n await navigator.clipboard.writeText(resourceName);\n setCopied(true);\n setTimeout(() => setCopied(false), 1500);\n }, [resourceName]);\n\n return (\n <DialogRoot open={open} onOpenChange={onOpenChange}>\n <Dialog size={size} className={cn(\"p-0\", className)}>\n <div className=\"flex items-center justify-between border-b border-kumo-line px-6 py-4\">\n <DialogTitle className=\"text-lg font-semibold\">\n Delete {resourceName}\n </DialogTitle>\n <DialogClose\n render={(props) => (\n <Button\n {...props}\n variant=\"ghost\"\n shape=\"square\"\n size=\"sm\"\n aria-label=\"Close\"\n disabled={isDeleting}\n >\n <XIcon size={18} />\n </Button>\n )}\n />\n </div>\n\n <div className=\"flex flex-col p-6 gap-4\">\n <div className=\"flex flex-col gap-2\">\n {errorMessage && (\n <Banner icon={<WarningCircleIcon />} variant=\"error\">\n {errorMessage}\n </Banner>\n )}\n <p className=\"text-base text-kumo-subtle max-w-prose text-pretty\">\n This action cannot be undone. This will permanently delete the{\" \"}\n <span className=\"font-medium text-kumo-default\">\n {resourceName}\n </span>{\" \"}\n {resourceType.toLowerCase()}.\n </p>\n </div>\n\n <div className=\"flex flex-col gap-2\">\n <div className=\"flex items-center gap-1.5 text-base\">\n <span>\n Type{\" \"}\n <button\n className=\"font-mono text-sm inline font-semibold bg-kumo-tint hover:bg-kumo-fill rounded-md px-2 py-1 group hover:cursor-pointer\"\n onClick={handleCopy}\n aria-label={`Copy ${resourceName} to clipboard`}\n >\n {resourceName}\n\n {copied ? (\n <CheckIcon\n size={12}\n weight=\"bold\"\n className=\"inline ml-1.5\"\n />\n ) : (\n <CopyIcon\n size={12}\n weight=\"bold\"\n className=\"inline text-kumo-subtle group-hover:text-kumo-default ml-1.5\"\n />\n )}\n </button>{\" \"}\n to confirm:\n </span>\n </div>\n <Input\n placeholder={resourceName}\n value={confirmationInput}\n onChange={(e) => setConfirmationInput(e.target.value)}\n disabled={isDeleting}\n autoComplete=\"off\"\n autoCorrect=\"off\"\n autoCapitalize=\"off\"\n spellCheck={false}\n aria-label={`Type ${resourceName} to confirm deletion`}\n className=\"w-full\"\n />\n </div>\n </div>\n\n <div className=\"flex justify-end gap-3 border-t border-kumo-line px-6 py-4\">\n <DialogClose\n render={(props) => (\n <Button {...props} variant=\"secondary\" disabled={isDeleting}>\n Cancel\n </Button>\n )}\n />\n <Button\n variant=\"destructive\"\n onClick={handleDelete}\n disabled={!isConfirmed || isDeleting}\n loading={isDeleting}\n >\n {deleteButtonText || `Delete ${resourceType}`}\n </Button>\n </div>\n </Dialog>\n </DialogRoot>\n );\n}\n\nDeleteResource.displayName = \"DeleteResource\";\n"],"names":["KUMO_DELETE_RESOURCE_VARIANTS","KUMO_DELETE_RESOURCE_DEFAULT_VARIANTS","DeleteResource","open","onOpenChange","resourceType","resourceName","onDelete","isDeleting","caseSensitive","deleteButtonText","size","errorMessage","className","confirmationInput","setConfirmationInput","useState","copied","setCopied","useEffect","normalizeForComparison","useCallback","str","isConfirmed","handleDelete","handleCopy","jsx","DialogRoot","jsxs","Dialog","cn","DialogTitle","DialogClose","props","Button","XIcon","Banner","WarningCircleIcon","CheckIcon","CopyIcon","Input","e"],"mappings":"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"}
|
|
@@ -85,6 +85,8 @@ export declare function dateRangePickerVariants({ size, variant, }?: KumoDateRan
|
|
|
85
85
|
* onEndDateChange={setEnd}
|
|
86
86
|
* />
|
|
87
87
|
* ```
|
|
88
|
+
*
|
|
89
|
+
* @deprecated Use {@link DatePicker} with `mode="range"` instead.
|
|
88
90
|
*/
|
|
89
91
|
export interface DateRangePickerProps extends KumoDateRangePickerVariantsProps {
|
|
90
92
|
/** Callback fired when start date changes. Receives `null` on reset. */
|
|
@@ -112,7 +114,12 @@ export interface DateRangePickerProps extends KumoDateRangePickerVariantsProps {
|
|
|
112
114
|
* onEndDateChange={setEnd}
|
|
113
115
|
* />
|
|
114
116
|
* ```
|
|
117
|
+
*
|
|
118
|
+
* @deprecated Use {@link DatePicker} with `mode="range"` instead.
|
|
115
119
|
*/
|
|
116
120
|
export declare function DateRangePicker({ onStartDateChange, onEndDateChange, size, variant, timezone, className, }: DateRangePickerProps): import("react/jsx-runtime").JSX.Element;
|
|
121
|
+
/**
|
|
122
|
+
* @deprecated Use {@link DatePicker} with `mode="range"` instead.
|
|
123
|
+
*/
|
|
117
124
|
export default DateRangePicker;
|
|
118
125
|
//# sourceMappingURL=date-range-picker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-range-picker.d.ts","sourceRoot":"","sources":["../../../../src/components/date-range-picker/date-range-picker.tsx"],"names":[],"mappings":"AAQA,4FAA4F;AAC5F,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwClC,CAAC;AAEX,eAAO,MAAM,uCAAuC;;;CAG1C,CAAC;AAGX,MAAM,MAAM,uBAAuB,GACjC,MAAM,OAAO,+BAA+B,CAAC,IAAI,CAAC;AACpD,MAAM,MAAM,0BAA0B,GACpC,MAAM,OAAO,+BAA+B,CAAC,OAAO,CAAC;AAEvD,MAAM,WAAW,gCAAgC;IAC/C;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,uBAAuB,CAAC;IAC/B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,0BAA0B,CAAC;CACtC;AAED,wBAAgB,uBAAuB,CAAC,EACtC,IAAmD,EACnD,OAAyD,GAC1D,GAAE,gCAAqC,UAQvC;AAkBD
|
|
1
|
+
{"version":3,"file":"date-range-picker.d.ts","sourceRoot":"","sources":["../../../../src/components/date-range-picker/date-range-picker.tsx"],"names":[],"mappings":"AAQA,4FAA4F;AAC5F,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwClC,CAAC;AAEX,eAAO,MAAM,uCAAuC;;;CAG1C,CAAC;AAGX,MAAM,MAAM,uBAAuB,GACjC,MAAM,OAAO,+BAA+B,CAAC,IAAI,CAAC;AACpD,MAAM,MAAM,0BAA0B,GACpC,MAAM,OAAO,+BAA+B,CAAC,OAAO,CAAC;AAEvD,MAAM,WAAW,gCAAgC;IAC/C;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,uBAAuB,CAAC;IAC/B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,0BAA0B,CAAC;CACtC;AAED,wBAAgB,uBAAuB,CAAC,EACtC,IAAmD,EACnD,OAAyD,GAC1D,GAAE,gCAAqC,UAQvC;AAkBD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,oBAAqB,SAAQ,gCAAgC;IAC5E,wEAAwE;IACxE,iBAAiB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;IAC/C,sEAAsE;IACtE,eAAe,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;IAC7C;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAAC,EAC9B,iBAAiB,EACjB,eAAe,EACf,IAAmD,EACnD,OAAyD,EACzD,QAAsC,EACtC,SAAS,GACV,EAAE,oBAAoB,2CA8TtB;AA+KD;;GAEG;AACH,eAAe,eAAe,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/date-range-picker/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/date-range-picker/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export interface Connector {
|
|
3
|
+
x1: number;
|
|
4
|
+
y1: number;
|
|
5
|
+
x2: number;
|
|
6
|
+
y2: number;
|
|
7
|
+
isBottom?: boolean;
|
|
8
|
+
}
|
|
9
|
+
type PathProps = Partial<{
|
|
10
|
+
cornerRadius: number;
|
|
11
|
+
midOffset: number;
|
|
12
|
+
arrowheadOffset: number;
|
|
13
|
+
isBottom: boolean;
|
|
14
|
+
single: boolean;
|
|
15
|
+
orientation: "vertical" | "horizontal";
|
|
16
|
+
}>;
|
|
17
|
+
export declare function createRoundedPath({ x1, y1, x2, y2 }: {
|
|
18
|
+
x1: number;
|
|
19
|
+
y1: number;
|
|
20
|
+
x2: number;
|
|
21
|
+
y2: number;
|
|
22
|
+
}, { cornerRadius: maxCornerRadius, midOffset, arrowheadOffset, isBottom, single, orientation, }?: PathProps): string;
|
|
23
|
+
export declare const Connectors: import('react').ForwardRefExoticComponent<{
|
|
24
|
+
connectors: Connector[];
|
|
25
|
+
children?: ReactNode;
|
|
26
|
+
} & Omit<Partial<{
|
|
27
|
+
cornerRadius: number;
|
|
28
|
+
midOffset: number;
|
|
29
|
+
arrowheadOffset: number;
|
|
30
|
+
isBottom: boolean;
|
|
31
|
+
single: boolean;
|
|
32
|
+
orientation: "vertical" | "horizontal";
|
|
33
|
+
}>, "isBottom"> & import('react').RefAttributes<SVGSVGElement>>;
|
|
34
|
+
export {};
|
|
35
|
+
//# sourceMappingURL=connectors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connectors.d.ts","sourceRoot":"","sources":["../../../../src/components/flow/connectors.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE1D,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAOD,KAAK,SAAS,GAAG,OAAO,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,UAAU,GAAG,YAAY,CAAC;CACxC,CAAC,CAAC;AASH,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,EACtE,EACE,YAAY,EAAE,eAAmB,EACjC,SAAc,EACd,eAAmB,EACnB,QAAgB,EAChB,MAAc,EACd,WAAwB,GACzB,GAAE,SAAc,UAiGlB;AAED,eAAO,MAAM,UAAU;gBAhIT,SAAS,EAAE;eACZ,SAAS;;kBAIN,MAAM;eACT,MAAM;qBACA,MAAM;cACb,OAAO;YACT,OAAO;iBACF,UAAU,GAAG,YAAY;+DAuKvC,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { MotionValue } from 'motion/react';
|
|
3
|
+
import { DescendantInfo } from './use-children';
|
|
4
|
+
type Orientation = "horizontal" | "vertical";
|
|
5
|
+
type Align = "start" | "center";
|
|
6
|
+
interface DiagramContextValue {
|
|
7
|
+
orientation: Orientation;
|
|
8
|
+
align: Align;
|
|
9
|
+
x: MotionValue<number>;
|
|
10
|
+
y: MotionValue<number>;
|
|
11
|
+
/** Ref to the canvas viewport wrapper element */
|
|
12
|
+
wrapperRef: React.RefObject<HTMLDivElement | null>;
|
|
13
|
+
}
|
|
14
|
+
export declare function useDiagramContext(): DiagramContextValue;
|
|
15
|
+
interface FlowDiagramProps {
|
|
16
|
+
orientation?: Orientation;
|
|
17
|
+
/**
|
|
18
|
+
* Controls vertical alignment of nodes in horizontal orientation.
|
|
19
|
+
* - `start`: Nodes align to the top (default)
|
|
20
|
+
* - `center`: Nodes are vertically centered
|
|
21
|
+
*/
|
|
22
|
+
align?: Align;
|
|
23
|
+
className?: string;
|
|
24
|
+
children?: ReactNode;
|
|
25
|
+
}
|
|
26
|
+
export declare function FlowDiagram({ orientation, align, className, children, }: FlowDiagramProps): import("react/jsx-runtime").JSX.Element;
|
|
27
|
+
export type RectLike = {
|
|
28
|
+
x: number;
|
|
29
|
+
y: number;
|
|
30
|
+
top: number;
|
|
31
|
+
left: number;
|
|
32
|
+
right: number;
|
|
33
|
+
bottom: number;
|
|
34
|
+
width: number;
|
|
35
|
+
height: number;
|
|
36
|
+
};
|
|
37
|
+
export type NodeData = {
|
|
38
|
+
parallel?: boolean;
|
|
39
|
+
start?: RectLike | null;
|
|
40
|
+
end?: RectLike | null;
|
|
41
|
+
};
|
|
42
|
+
export declare const useNodeGroup: () => {
|
|
43
|
+
register: (id: string, renderOrder: number, props?: NodeData | undefined) => {
|
|
44
|
+
unregister: () => void;
|
|
45
|
+
};
|
|
46
|
+
descendants: DescendantInfo<NodeData>[];
|
|
47
|
+
claimRenderOrder: (id: string) => number;
|
|
48
|
+
};
|
|
49
|
+
export declare const useNode: (props: NodeData) => {
|
|
50
|
+
index: number;
|
|
51
|
+
id: string;
|
|
52
|
+
getPrevious: () => DescendantInfo<NodeData> | undefined;
|
|
53
|
+
getNext: () => DescendantInfo<NodeData> | undefined;
|
|
54
|
+
};
|
|
55
|
+
export declare const getNodeRect: (node: DescendantInfo<NodeData> | undefined, { type }: {
|
|
56
|
+
type?: "start" | "end";
|
|
57
|
+
}) => RectLike | null;
|
|
58
|
+
export declare function FlowNodeList({ children }: {
|
|
59
|
+
children: ReactNode;
|
|
60
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
61
|
+
export {};
|
|
62
|
+
//# sourceMappingURL=diagram.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagram.d.ts","sourceRoot":"","sources":["../../../../src/components/flow/diagram.tsx"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAKL,KAAK,WAAW,EAEjB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,gBAAgB,CAAC;AAWxB,KAAK,WAAW,GAAG,YAAY,GAAG,UAAU,CAAC;AAC7C,KAAK,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEhC,UAAU,mBAAmB;IAC3B,WAAW,EAAE,WAAW,CAAC;IACzB,KAAK,EAAE,KAAK,CAAC;IACb,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACvB,iDAAiD;IACjD,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;CACpD;AAID,wBAAgB,iBAAiB,IAAI,mBAAmB,CAMvD;AAED,UAAU,gBAAgB;IACxB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;;;OAIG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,wBAAgB,WAAW,CAAC,EAC1B,WAA0B,EAC1B,KAAe,EACf,SAAS,EACT,QAAQ,GACT,EAAE,gBAAgB,2CAgNlB;AAID,MAAM,MAAM,QAAQ,GAAG;IACrB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IACxB,GAAG,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;CAAmC,CAAC;AAE7D,eAAO,MAAM,OAAO,GAAI,OAAO,QAAQ;;;;;CAAwC,CAAC;AAEhF,eAAO,MAAM,WAAW,GACtB,MAAM,cAAc,CAAC,QAAQ,CAAC,GAAG,SAAS,EAC1C,UAAoB;IAAE,IAAI,CAAC,EAAE,OAAO,GAAG,KAAK,CAAA;CAAE,KAC7C,QAAQ,GAAG,IAGb,CAAC;AAEF,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAuDjE"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { FlowDiagram, FlowNodeList } from './diagram';
|
|
2
|
+
import { FlowParallelNode } from './parallel';
|
|
3
|
+
/**
|
|
4
|
+
* Flow - Components for visualizing workflows and data flows.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```tsx
|
|
8
|
+
* <Flow>
|
|
9
|
+
* <Flow.Node>Step 1</Flow.Node>
|
|
10
|
+
* <Flow.Node>Step 2</Flow.Node>
|
|
11
|
+
* <Flow.Parallel>
|
|
12
|
+
* <Flow.Node>Branch A</Flow.Node>
|
|
13
|
+
* <Flow.Node>Branch B</Flow.Node>
|
|
14
|
+
* </Flow.Parallel>
|
|
15
|
+
* <Flow.Node>Step 3</Flow.Node>
|
|
16
|
+
* </Flow>
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
declare const Flow: typeof FlowDiagram & {
|
|
20
|
+
Node: import('react').ForwardRefExoticComponent<import('./node').FlowNodeProps & import('react').RefAttributes<HTMLElement>>;
|
|
21
|
+
Parallel: typeof FlowParallelNode;
|
|
22
|
+
List: typeof FlowNodeList;
|
|
23
|
+
Anchor: import('react').ForwardRefExoticComponent<import('./node').FlowAnchorProps & import('react').RefAttributes<HTMLElement>>;
|
|
24
|
+
};
|
|
25
|
+
export { Flow };
|
|
26
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/flow/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C;;;;;;;;;;;;;;;GAeG;AACH,QAAA,MAAM,IAAI;;;;;CAKR,CAAC;AAEH,OAAO,EAAE,IAAI,EAAE,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { ReactElement, ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* FlowNode component props.
|
|
4
|
+
*
|
|
5
|
+
* @example Default styling
|
|
6
|
+
* ```tsx
|
|
7
|
+
* <Flow.Node>Step 1</Flow.Node>
|
|
8
|
+
* ```
|
|
9
|
+
*
|
|
10
|
+
* @example Custom render - completely replaces the default element
|
|
11
|
+
* ```tsx
|
|
12
|
+
* <Flow.Node render={<div className="custom-node">Custom content</div>} />
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
export type FlowNodeProps = {
|
|
16
|
+
/**
|
|
17
|
+
* Custom element to render instead of the default styled node.
|
|
18
|
+
* When provided, completely replaces the default element.
|
|
19
|
+
*/
|
|
20
|
+
render?: ReactElement;
|
|
21
|
+
children?: ReactNode;
|
|
22
|
+
};
|
|
23
|
+
export declare const FlowNode: import('react').ForwardRefExoticComponent<FlowNodeProps & import('react').RefAttributes<HTMLElement>>;
|
|
24
|
+
/**
|
|
25
|
+
* FlowAnchor component props.
|
|
26
|
+
*
|
|
27
|
+
* @example Default (unstyled div)
|
|
28
|
+
* ```tsx
|
|
29
|
+
* <Flow.Anchor type="start">Anchor content</Flow.Anchor>
|
|
30
|
+
* ```
|
|
31
|
+
*
|
|
32
|
+
* @example Custom render - completely replaces the default element
|
|
33
|
+
* ```tsx
|
|
34
|
+
* <Flow.Anchor type="end" render={<span className="custom-anchor">Custom anchor</span>} />
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export type FlowAnchorProps = {
|
|
38
|
+
/**
|
|
39
|
+
* Determines if the anchor should serve as a "start" point for the
|
|
40
|
+
* _next_ connector or the "end" point for the _previous_ connector.
|
|
41
|
+
* When omitted, it serves as both the start and end points.
|
|
42
|
+
*/
|
|
43
|
+
type?: "start" | "end";
|
|
44
|
+
/**
|
|
45
|
+
* Custom element to render instead of the default div.
|
|
46
|
+
* When provided, completely replaces the default element.
|
|
47
|
+
*/
|
|
48
|
+
render?: ReactElement;
|
|
49
|
+
children?: ReactNode;
|
|
50
|
+
};
|
|
51
|
+
export declare const FlowAnchor: import('react').ForwardRefExoticComponent<FlowAnchorProps & import('react').RefAttributes<HTMLElement>>;
|
|
52
|
+
//# sourceMappingURL=node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../../src/components/flow/node.tsx"],"names":[],"mappings":"AAAA,OAAO,EAUL,KAAK,YAAY,EACjB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAkBf;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B;;;OAGG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,QAAQ,uGA4FpB,CAAC;AAaF;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IACvB;;;OAGG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,UAAU,yGA6CtB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parallel.d.ts","sourceRoot":"","sources":["../../../../src/components/flow/parallel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAyDxD,wBAAgB,gBAAgB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAuKrE"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export type DescendantInfo<T = Record<string, unknown>> = {
|
|
3
|
+
id: string;
|
|
4
|
+
props: T;
|
|
5
|
+
renderOrder: number;
|
|
6
|
+
};
|
|
7
|
+
type DescendantsContextType<DescendantType = Record<string, unknown>> = {
|
|
8
|
+
register: (id: string, renderOrder: number, props?: DescendantType) => {
|
|
9
|
+
unregister: () => void;
|
|
10
|
+
};
|
|
11
|
+
descendants: DescendantInfo<DescendantType>[];
|
|
12
|
+
claimRenderOrder: (id: string) => number;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Hook that manages descendant registration and provides access to all registered descendants.
|
|
16
|
+
* This hook contains all the logic for tracking and managing descendants.
|
|
17
|
+
*
|
|
18
|
+
* @returns The descendants context value with register function and descendants array
|
|
19
|
+
*/
|
|
20
|
+
export declare function useDescendants<DescendantType extends Record<string, unknown>>(): DescendantsContextType<DescendantType>;
|
|
21
|
+
type DescendantsProviderProps<T extends Record<string, unknown>> = {
|
|
22
|
+
value: DescendantsContextType<T>;
|
|
23
|
+
children: ReactNode;
|
|
24
|
+
};
|
|
25
|
+
export declare function DescendantsProvider<T extends Record<string, unknown>>({ value, children }: DescendantsProviderProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
26
|
+
/**
|
|
27
|
+
* Hook to access the descendants context from within a DescendantsProvider.
|
|
28
|
+
* This allows callers to access the descendants data and register function.
|
|
29
|
+
*
|
|
30
|
+
* @returns The descendants context value
|
|
31
|
+
* @throws Error if used outside of DescendantsProvider
|
|
32
|
+
*/
|
|
33
|
+
export declare function useDescendantsContext<T extends Record<string, unknown>>(): DescendantsContextType<T>;
|
|
34
|
+
/**
|
|
35
|
+
* Hook that allows a descendant component to register itself with a parent
|
|
36
|
+
* and returns the index of the descendant in the parent's list.
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```tsx
|
|
40
|
+
* function Parent() {
|
|
41
|
+
* return (
|
|
42
|
+
* <DescendantsProvider>
|
|
43
|
+
* <Descendant />
|
|
44
|
+
* <Descendant />
|
|
45
|
+
* <Descendant />
|
|
46
|
+
* </DescendantsProvider>
|
|
47
|
+
* );
|
|
48
|
+
* }
|
|
49
|
+
*
|
|
50
|
+
* function Descendant() {
|
|
51
|
+
* const index = useDescendantIndex();
|
|
52
|
+
* return <div>I am descendant {index}</div>;
|
|
53
|
+
* }
|
|
54
|
+
*
|
|
55
|
+
* // With props
|
|
56
|
+
* function Descendant() {
|
|
57
|
+
* const index = useDescendantIndex({ name: "Descendant 1", type: "primary" });
|
|
58
|
+
* return <div>I am descendant {index}</div>;
|
|
59
|
+
* }
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
export declare function useDescendantIndex<T extends Record<string, unknown>>(props?: T): {
|
|
63
|
+
index: number;
|
|
64
|
+
id: string;
|
|
65
|
+
getPrevious: () => DescendantInfo<T> | undefined;
|
|
66
|
+
getNext: () => DescendantInfo<T> | undefined;
|
|
67
|
+
};
|
|
68
|
+
export {};
|
|
69
|
+
//# sourceMappingURL=use-children.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-children.d.ts","sourceRoot":"","sources":["../../../../src/components/flow/use-children.tsx"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAKf,MAAM,MAAM,cAAc,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;IACxD,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,CAAC,CAAC;IACT,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,KAAK,sBAAsB,CAAC,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;IACtE,QAAQ,EAAE,CACR,EAAE,EAAE,MAAM,EACV,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,cAAc,KACnB;QAAE,UAAU,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC;IAChC,WAAW,EAAE,cAAc,CAAC,cAAc,CAAC,EAAE,CAAC;IAC9C,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC;CAC1C,CAAC;AAYF;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,cAAc,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC3C,sBAAsB,CAAC,cAAc,CAAC,CAqE1C;AAMD,KAAK,wBAAwB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;IACjE,KAAK,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC;IACjC,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EACrE,KAAK,EACL,QAAQ,EACT,EAAE,wBAAwB,CAAC,CAAC,CAAC,2CAQ7B;AAMD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC9B,sBAAsB,CAAC,CAAC,CAAC,CAU7B;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAKH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClE,KAAK,CAAC,EAAE,CAAC;;;uBAsC2B,cAAc,CAAC,CAAC,CAAC,GAAG,SAAS;mBAKjC,cAAc,CAAC,CAAC,CAAC,GAAG,SAAS;EAM9D"}
|