sanity 6.4.0-next.21 → 6.4.0-next.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/lib/_chunks-dts/ActiveWorkspaceMatcherContext.d.ts +1 -1
  2. package/lib/_chunks-es/CalendarFilter.js +3 -1
  3. package/lib/_chunks-es/CalendarFilter.js.map +1 -1
  4. package/lib/_chunks-es/CommentsInspector.js +58 -1
  5. package/lib/_chunks-es/CommentsInspector.js.map +1 -1
  6. package/lib/_chunks-es/PresentationToolGrantsCheck.js +9 -1
  7. package/lib/_chunks-es/PresentationToolGrantsCheck.js.map +1 -1
  8. package/lib/_chunks-es/ReleasesStudioLayout.js +58 -1
  9. package/lib/_chunks-es/ReleasesStudioLayout.js.map +1 -1
  10. package/lib/_chunks-es/ReleasesTool.js +68 -1
  11. package/lib/_chunks-es/ReleasesTool.js.map +1 -1
  12. package/lib/_chunks-es/StructureToolProvider.js +4 -1
  13. package/lib/_chunks-es/StructureToolProvider.js.map +1 -1
  14. package/lib/_chunks-es/Table.js +2 -1
  15. package/lib/_chunks-es/Table.js.map +1 -1
  16. package/lib/_chunks-es/TasksDocumentInputLayout.js +58 -1
  17. package/lib/_chunks-es/TasksDocumentInputLayout.js.map +1 -1
  18. package/lib/_chunks-es/TasksFooterOpenTasks.js +59 -1
  19. package/lib/_chunks-es/TasksFooterOpenTasks.js.map +1 -1
  20. package/lib/_chunks-es/TasksStudioActiveToolLayout.js +58 -1
  21. package/lib/_chunks-es/TasksStudioActiveToolLayout.js.map +1 -1
  22. package/lib/_chunks-es/TasksStudioLayout.js +58 -1
  23. package/lib/_chunks-es/TasksStudioLayout.js.map +1 -1
  24. package/lib/_chunks-es/TasksStudioNavbar.js +58 -1
  25. package/lib/_chunks-es/TasksStudioNavbar.js.map +1 -1
  26. package/lib/_chunks-es/Tool.js +7 -1
  27. package/lib/_chunks-es/Tool.js.map +1 -1
  28. package/lib/_chunks-es/VariantsStudioNavbar.js +58 -1
  29. package/lib/_chunks-es/VariantsStudioNavbar.js.map +1 -1
  30. package/lib/_chunks-es/VariantsTool.js +59 -1
  31. package/lib/_chunks-es/VariantsTool.js.map +1 -1
  32. package/lib/_chunks-es/index2.js +98 -1
  33. package/lib/_chunks-es/index2.js.map +1 -1
  34. package/lib/_chunks-es/index3.js +58 -1
  35. package/lib/_chunks-es/index3.js.map +1 -1
  36. package/lib/_chunks-es/index4.js +3 -1
  37. package/lib/_chunks-es/index4.js.map +1 -1
  38. package/lib/_chunks-es/index5.js +3 -1
  39. package/lib/_chunks-es/index5.js.map +1 -1
  40. package/lib/_chunks-es/index6.js +60 -1
  41. package/lib/_chunks-es/index6.js.map +1 -1
  42. package/lib/_chunks-es/index7.js +58 -1
  43. package/lib/_chunks-es/index7.js.map +1 -1
  44. package/lib/_chunks-es/index8.js +59 -1
  45. package/lib/_chunks-es/index8.js.map +1 -1
  46. package/lib/_chunks-es/index9.js +8 -1
  47. package/lib/_chunks-es/index9.js.map +1 -1
  48. package/lib/_chunks-es/inputResolver.js +2 -1
  49. package/lib/_chunks-es/inputResolver.js.map +1 -1
  50. package/lib/_chunks-es/presentation.js +7 -1
  51. package/lib/_chunks-es/presentation.js.map +1 -1
  52. package/lib/_chunks-es/resources2.js +58 -1
  53. package/lib/_chunks-es/resources2.js.map +1 -1
  54. package/lib/_chunks-es/resources3.js +58 -1
  55. package/lib/_chunks-es/resources3.js.map +1 -1
  56. package/lib/_chunks-es/resources4.js +58 -1
  57. package/lib/_chunks-es/resources4.js.map +1 -1
  58. package/lib/_chunks-es/resources5.js +58 -1
  59. package/lib/_chunks-es/resources5.js.map +1 -1
  60. package/lib/_chunks-es/resources6.js +58 -1
  61. package/lib/_chunks-es/resources6.js.map +1 -1
  62. package/lib/_chunks-es/resources7.js +58 -1
  63. package/lib/_chunks-es/resources7.js.map +1 -1
  64. package/lib/_chunks-es/structureTool.js +47 -1
  65. package/lib/_chunks-es/structureTool.js.map +1 -1
  66. package/lib/_chunks-es/version.js +2 -2
  67. package/lib/desk.js +4 -1
  68. package/lib/desk.js.map +1 -1
  69. package/lib/index.js +15 -1
  70. package/lib/index.js.map +1 -1
  71. package/lib/structure.js +3 -1
  72. package/lib/structure.js.map +1 -1
  73. package/package.json +11 -11
@@ -16252,7 +16252,7 @@ interface DocumentInspector {
16252
16252
  * ```ts
16253
16253
  * // sanity.config.ts
16254
16254
  *
16255
- * import {RocketIcon} from '@sanity/icons'
16255
+ * import {RocketIcon} from '@sanity/icons/Rocket'
16256
16256
  * import {defineConfig, defineDocumentInspector} from 'sanity'
16257
16257
  *
16258
16258
  * const customInspector = defineDocumentInspector({
@@ -1,6 +1,7 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { c } from "react/compiler-runtime";
3
- import { CloseIcon, ChevronLeftIcon, ChevronRightIcon } from "@sanity/icons";
3
+ import { ChevronLeftIcon } from "@sanity/icons/ChevronLeft";
4
+ import { ChevronRightIcon } from "@sanity/icons/ChevronRight";
4
5
  import { Text, Card, Box, Label, Grid, Flex } from "@sanity/ui";
5
6
  import { addDays } from "date-fns/addDays";
6
7
  import { addMonths } from "date-fns/addMonths";
@@ -11,6 +12,7 @@ import { Button, TooltipDelayGroupProvider } from "./index.js";
11
12
  import { useTimeZone, useWeeksOfMonth, DEFAULT_WEEK_DAY_NAMES, useTranslation, DEFAULT_MONTH_NAMES, ARROW_KEYS } from "./index2.js";
12
13
  import { isSameDay } from "date-fns/isSameDay";
13
14
  import { isSameMonth } from "date-fns/isSameMonth";
15
+ import { CloseIcon } from "@sanity/icons/Close";
14
16
  import { isWeekend } from "date-fns/isWeekend";
15
17
  function CalendarDay(props) {
16
18
  const $ = c(33), {
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarFilter.js","sources":["../../src/core/components/inputs/DateFilters/calendar/CalendarDay.tsx","../../src/core/components/inputs/DateFilters/calendar/CalendarMonth.tsx","../../src/core/components/inputs/DateFilters/calendar/CalendarFilter.tsx"],"sourcesContent":["import {CloseIcon} from '@sanity/icons'\nimport {Card, type CardTone, Text} from '@sanity/ui'\nimport {isWeekend} from 'date-fns/isWeekend'\nimport {useCallback} from 'react'\n\nexport interface CalendarDayProps {\n date: Date // clock time\n focused?: boolean\n onSelect: (date?: Date) => void\n isCurrentMonth?: boolean\n isToday: boolean\n selected?: boolean\n dateStyles?: React.CSSProperties\n disabled?: boolean\n}\n\nexport function CalendarDay(props: CalendarDayProps) {\n const {\n date,\n focused,\n isCurrentMonth,\n isToday,\n onSelect,\n selected,\n disabled,\n dateStyles = {},\n } = props\n\n const handleClick = useCallback(() => {\n if (selected) {\n onSelect(undefined)\n } else {\n onSelect(date)\n }\n }, [date, onSelect, selected])\n\n let tone: CardTone\n if (isToday || selected) {\n tone = 'primary'\n } else if (isWeekend(date)) {\n // tone = 'transparent'\n tone = 'default'\n } else {\n tone = 'default'\n }\n\n return (\n <div aria-selected={selected} data-ui=\"CalendarDay\">\n <Card\n aria-label={date.toDateString()}\n aria-pressed={selected}\n as=\"button\"\n __unstable_focusRing\n data-weekday\n data-focused={focused ? 'true' : ''}\n data-testid={isToday ? 'day-tile-today' : `day-tile-${date.getDate()}-${date.getMonth()}`}\n role=\"button\"\n tabIndex={-1}\n onClick={handleClick}\n paddingX={3}\n paddingY={4}\n radius={2}\n selected={selected}\n style={{position: 'relative'}}\n tone={tone}\n disabled={disabled}\n >\n <Text\n size={1}\n style={{\n opacity: !selected && !isCurrentMonth ? 0.35 : 1,\n textAlign: 'center',\n ...dateStyles,\n }}\n >\n {selected ? <CloseIcon /> : date.getDate()}\n </Text>\n </Card>\n </div>\n )\n}\n","import {Box, Card, Grid, Label} from '@sanity/ui'\nimport {isSameDay} from 'date-fns/isSameDay'\nimport {isSameMonth} from 'date-fns/isSameMonth'\n\nimport {type TimeZoneScope, useTimeZone} from '../../../../hooks/useTimeZone'\nimport {DEFAULT_WEEK_DAY_NAMES} from '../../DateInputs/calendar/constants'\nimport {useWeeksOfMonth} from '../../DateInputs/calendar/utils'\nimport {CalendarDay as DefaultCalendarDay} from './CalendarDay'\nimport {type CalendarProps} from './CalendarFilter'\n\ninterface CalendarMonthProps {\n date: Date\n focused?: Date\n selected?: Date\n onSelect: (date?: Date) => void\n hidden?: boolean\n renderCalendarDay?: CalendarProps['renderCalendarDay']\n disabled?: boolean\n timeZoneScope: TimeZoneScope\n}\n\nexport function CalendarMonth(props: CalendarMonthProps) {\n const {date, renderCalendarDay, hidden, disabled, timeZoneScope} = props\n const {getCurrentZoneDate} = useTimeZone(timeZoneScope)\n const CalendarDay = renderCalendarDay || DefaultCalendarDay\n const weeksOfMonth = useWeeksOfMonth(date)\n\n return (\n <Box aria-hidden={hidden || false} data-ui=\"CalendarMonth\">\n <Grid\n style={{\n gridGap: '1px',\n gridTemplateColumns: 'repeat(7, 1fr)',\n }}\n >\n {/* Header */}\n {DEFAULT_WEEK_DAY_NAMES.map((weekday) => (\n <Card key={weekday} paddingY={3}>\n <Label size={1} style={{textAlign: 'center'}}>\n {weekday.slice(0, 1)}\n </Label>\n </Card>\n ))}\n\n {weeksOfMonth.map((week, weekIdx) =>\n week.days.map((dayDate, dayIdx) => {\n const focused = props.focused && isSameDay(dayDate, props.focused)\n const selected = props.selected && isSameDay(dayDate, props.selected)\n const isToday = isSameDay(dayDate, getCurrentZoneDate())\n const isCurrentMonth = isSameMonth(dayDate, props.focused || date)\n\n return (\n <CalendarDay\n key={`${weekIdx}-${dayIdx}`}\n date={dayDate}\n focused={focused}\n isCurrentMonth={isCurrentMonth}\n isToday={isToday}\n onSelect={props.onSelect}\n selected={selected}\n disabled={disabled}\n />\n )\n }),\n )}\n </Grid>\n </Box>\n )\n}\n","import {ChevronLeftIcon, ChevronRightIcon} from '@sanity/icons'\nimport {Box, Flex, Text} from '@sanity/ui'\nimport {addDays} from 'date-fns/addDays'\nimport {addMonths} from 'date-fns/addMonths'\nimport {setHours} from 'date-fns/setHours'\nimport {setMinutes} from 'date-fns/setMinutes'\nimport {\n type ComponentProps,\n type ForwardedRef,\n forwardRef,\n type KeyboardEvent,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from 'react'\n\nimport {Button} from '../../../../../ui-components/button/Button'\nimport {TooltipDelayGroupProvider} from '../../../../../ui-components/tooltipDelayGroupProvider/TooltipDelayGroupProvider'\nimport {type TimeZoneScope, useTimeZone} from '../../../../hooks/useTimeZone'\nimport {useTranslation} from '../../../../i18n/hooks/useTranslation'\nimport {ARROW_KEYS, DEFAULT_MONTH_NAMES} from '../../DateInputs/calendar/constants'\nimport {type CalendarDayProps} from './CalendarDay'\nimport {CalendarMonth} from './CalendarMonth'\n\nexport type CalendarProps = Omit<ComponentProps<'div'>, 'onSelect'> & {\n focusedDate?: Date\n onSelect: (date?: Date) => void\n onFocusedDateChange?: (index: Date) => void\n selectedDate?: Date\n renderCalendarDay?: (props: CalendarDayProps) => React.ReactNode\n disabled?: boolean\n timeZoneScope: TimeZoneScope\n}\n\n// This is used to maintain focus on a child element of the calendar-grid between re-renders\n// When using arrow keys to move focus from a day in one month to another we are setting focus at the button for the day\n// after it has changed but *only* if we *already* had focus inside the calendar grid (e.g not if focus was on the \"next\n// year\" button, or any of the other controls)\n// When moving from the last day of a month that displays 6 weeks in the grid to a month that displays 5 weeks, current\n// focus gets lost on render, so this provides us with a stable element to help us preserve focus on a child element of\n// the calendar grid between re-renders\nconst PRESERVE_FOCUS_ELEMENT = (\n <span\n data-preserve-focus\n style={{overflow: 'hidden', position: 'absolute', outline: 'none'}}\n tabIndex={-1}\n />\n)\n\nexport const CalendarFilter = forwardRef(function Calendar(\n props: CalendarProps,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n) {\n const {\n focusedDate: providedFocusedDate,\n onFocusedDateChange: handleOnFocusedDateChange,\n onSelect,\n selectedDate,\n renderCalendarDay,\n timeZoneScope,\n ...restProps\n } = props\n const [_focusedDate, _setFocusedDate] = useState<Date>(new Date())\n const {t: tCore} = useTranslation()\n const {zoneDateToUtc} = useTimeZone(timeZoneScope)\n\n const focusedDate = providedFocusedDate || _focusedDate\n\n const onFocusedDateChange = useCallback(\n (date: Date) => {\n if (handleOnFocusedDateChange && providedFocusedDate) {\n handleOnFocusedDateChange(date)\n } else {\n _setFocusedDate(date)\n }\n },\n [handleOnFocusedDateChange, providedFocusedDate],\n )\n\n const setFocusedDate = useCallback(\n (date: Date) => {\n onFocusedDateChange(zoneDateToUtc(date))\n },\n [onFocusedDateChange, zoneDateToUtc],\n )\n\n const moveFocusedDate = useCallback(\n (by: number) => setFocusedDate(addMonths(focusedDate, by)),\n [focusedDate, setFocusedDate],\n )\n\n const handleDateChange = useCallback(\n (date?: Date) => {\n if (date) {\n const targetDate = zoneDateToUtc(\n setMinutes(setHours(date, date.getHours()), date.getMinutes()),\n )\n onSelect(targetDate)\n onFocusedDateChange(targetDate)\n } else {\n onSelect(undefined)\n }\n },\n [onSelect, zoneDateToUtc, onFocusedDateChange],\n )\n\n const ref = useRef<HTMLDivElement | null>(null)\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n const focusCurrentWeekDay = useCallback(() => {\n ref.current?.querySelector<HTMLElement>(`[data-focused=\"true\"]`)?.focus()\n }, [ref])\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLInputElement>) => {\n if (!ARROW_KEYS.includes(event.key)) {\n return\n }\n event.preventDefault()\n if (event.currentTarget.hasAttribute('data-calendar-grid')) {\n focusCurrentWeekDay()\n return\n }\n if (event.key === 'ArrowUp') {\n onFocusedDateChange(zoneDateToUtc(addDays(focusedDate, -7)))\n }\n if (event.key === 'ArrowDown') {\n onFocusedDateChange(zoneDateToUtc(addDays(focusedDate, 7)))\n }\n if (event.key === 'ArrowLeft') {\n onFocusedDateChange(zoneDateToUtc(addDays(focusedDate, -1)))\n }\n if (event.key === 'ArrowRight') {\n onFocusedDateChange(zoneDateToUtc(addDays(focusedDate, 1)))\n }\n // set focus temporarily on this element to make sure focus is still inside the calendar-grid after re-render\n ref.current?.querySelector<HTMLElement>('[data-preserve-focus]')?.focus()\n },\n [ref, focusCurrentWeekDay, onFocusedDateChange, focusedDate, zoneDateToUtc],\n )\n\n useEffect(() => {\n focusCurrentWeekDay()\n }, [focusCurrentWeekDay])\n\n useEffect(() => {\n const currentFocusInCalendarGrid = document.activeElement?.matches(\n '[data-calendar-grid], [data-calendar-grid] [data-preserve-focus]',\n )\n if (\n // Only move focus if it's currently in the calendar grid\n currentFocusInCalendarGrid\n ) {\n focusCurrentWeekDay()\n }\n }, [ref, focusCurrentWeekDay, focusedDate])\n\n // Select AND focus current date when 'today' is pressed\n const handleNowClick = useCallback(() => {\n const now = new Date()\n onSelect(now)\n onFocusedDateChange(now)\n }, [onSelect, onFocusedDateChange])\n\n const handlePrevMonthClick = useCallback(() => moveFocusedDate(-1), [moveFocusedDate])\n\n const handleNextMonthClick = useCallback(() => moveFocusedDate(1), [moveFocusedDate])\n\n return (\n <Box data-ui=\"Calendar\" {...restProps} ref={ref}>\n {/* Month + Year header */}\n <Flex\n align=\"center\"\n paddingLeft={4}\n style={{\n borderBottom: '1px solid var(--card-border-color)',\n minHeight: `55px`,\n position: 'sticky',\n top: 0,\n }}\n >\n <Flex align=\"center\" flex={1} justify=\"space-between\">\n <Text weight=\"medium\" size={1}>\n {DEFAULT_MONTH_NAMES[focusedDate?.getMonth()]} {focusedDate?.getFullYear()}\n </Text>\n <Flex paddingRight={3} gap={2}>\n <TooltipDelayGroupProvider>\n <Button\n icon={ChevronLeftIcon}\n mode=\"bleed\"\n onClick={handlePrevMonthClick}\n tooltipProps={{content: 'Previous month'}}\n disabled={restProps.disabled}\n />\n <Button\n icon={ChevronRightIcon}\n mode=\"bleed\"\n onClick={handleNextMonthClick}\n tooltipProps={{content: 'Next month'}}\n disabled={restProps.disabled}\n />\n </TooltipDelayGroupProvider>\n </Flex>\n </Flex>\n </Flex>\n\n {/* Select date */}\n <Box>\n {/* Selected month (grid of days) */}\n <Box\n data-calendar-grid\n onKeyDown={handleKeyDown}\n overflow=\"hidden\"\n paddingBottom={1}\n paddingX={1}\n tabIndex={0}\n >\n <CalendarMonth\n date={focusedDate}\n focused={providedFocusedDate}\n onSelect={handleDateChange}\n selected={selectedDate}\n renderCalendarDay={renderCalendarDay}\n disabled={restProps.disabled}\n timeZoneScope={timeZoneScope}\n />\n {PRESERVE_FOCUS_ELEMENT}\n </Box>\n </Box>\n\n {/* Today button */}\n <Box flex={1} style={{borderBottom: '1px solid var(--card-border-color)'}}>\n <Button\n disabled={restProps.disabled}\n mode=\"bleed\"\n onClick={handleNowClick}\n width=\"fill\"\n aria-label={tCore('calendar.action.go-to-today-aria-label')}\n text={tCore('calendar.action.go-to-today')}\n />\n </Box>\n </Box>\n )\n})\n"],"names":["CalendarDay","props","$","_c","date","focused","isCurrentMonth","isToday","onSelect","selected","disabled","dateStyles","t0","t1","undefined","t2","handleClick","tone","isWeekend","t3","toDateString","t4","t5","getDate","getMonth","t6","for","position","t7","t8","opacity","textAlign","t9","t10","t11","t12","CalendarMonth","renderCalendarDay","hidden","timeZoneScope","getCurrentZoneDate","useTimeZone","DefaultCalendarDay","weeksOfMonth","useWeeksOfMonth","gridGap","gridTemplateColumns","DEFAULT_WEEK_DAY_NAMES","map","_temp","week","weekIdx","days","dayDate","dayIdx","isSameDay","isSameMonth","weekday","slice","PRESERVE_FOCUS_ELEMENT","overflow","outline","CalendarFilter","forwardRef","forwardedRef","handleOnFocusedDateChange","providedFocusedDate","restProps","selectedDate","focusedDate","onFocusedDateChange","Symbol","Date","_focusedDate","_setFocusedDate","useState","t","tCore","useTranslation","zoneDateToUtc","date_0","setFocusedDate","by","addMonths","moveFocusedDate","date_1","targetDate","setMinutes","setHours","getHours","getMinutes","handleDateChange","ref","useRef","current","useImperativeHandle","querySelector","focus","focusCurrentWeekDay","event","ARROW_KEYS","includes","key","preventDefault","currentTarget","hasAttribute","addDays","handleKeyDown","useEffect","document","activeElement","matches","now","handleNowClick","t13","handlePrevMonthClick","t14","handleNextMonthClick","t15","borderBottom","minHeight","top","t16","DEFAULT_MONTH_NAMES","t17","getFullYear","t18","t19","content","t20","ChevronLeftIcon","t21","t22","ChevronRightIcon","t23","t24","t25","t26","t27","t28","t29","t30","t31","t32"],"mappings":"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"}
1
+ {"version":3,"file":"CalendarFilter.js","sources":["../../src/core/components/inputs/DateFilters/calendar/CalendarDay.tsx","../../src/core/components/inputs/DateFilters/calendar/CalendarMonth.tsx","../../src/core/components/inputs/DateFilters/calendar/CalendarFilter.tsx"],"sourcesContent":["import {CloseIcon} from '@sanity/icons/Close'\nimport {Card, type CardTone, Text} from '@sanity/ui'\nimport {isWeekend} from 'date-fns/isWeekend'\nimport {useCallback} from 'react'\n\nexport interface CalendarDayProps {\n date: Date // clock time\n focused?: boolean\n onSelect: (date?: Date) => void\n isCurrentMonth?: boolean\n isToday: boolean\n selected?: boolean\n dateStyles?: React.CSSProperties\n disabled?: boolean\n}\n\nexport function CalendarDay(props: CalendarDayProps) {\n const {\n date,\n focused,\n isCurrentMonth,\n isToday,\n onSelect,\n selected,\n disabled,\n dateStyles = {},\n } = props\n\n const handleClick = useCallback(() => {\n if (selected) {\n onSelect(undefined)\n } else {\n onSelect(date)\n }\n }, [date, onSelect, selected])\n\n let tone: CardTone\n if (isToday || selected) {\n tone = 'primary'\n } else if (isWeekend(date)) {\n // tone = 'transparent'\n tone = 'default'\n } else {\n tone = 'default'\n }\n\n return (\n <div aria-selected={selected} data-ui=\"CalendarDay\">\n <Card\n aria-label={date.toDateString()}\n aria-pressed={selected}\n as=\"button\"\n __unstable_focusRing\n data-weekday\n data-focused={focused ? 'true' : ''}\n data-testid={isToday ? 'day-tile-today' : `day-tile-${date.getDate()}-${date.getMonth()}`}\n role=\"button\"\n tabIndex={-1}\n onClick={handleClick}\n paddingX={3}\n paddingY={4}\n radius={2}\n selected={selected}\n style={{position: 'relative'}}\n tone={tone}\n disabled={disabled}\n >\n <Text\n size={1}\n style={{\n opacity: !selected && !isCurrentMonth ? 0.35 : 1,\n textAlign: 'center',\n ...dateStyles,\n }}\n >\n {selected ? <CloseIcon /> : date.getDate()}\n </Text>\n </Card>\n </div>\n )\n}\n","import {Box, Card, Grid, Label} from '@sanity/ui'\nimport {isSameDay} from 'date-fns/isSameDay'\nimport {isSameMonth} from 'date-fns/isSameMonth'\n\nimport {type TimeZoneScope, useTimeZone} from '../../../../hooks/useTimeZone'\nimport {DEFAULT_WEEK_DAY_NAMES} from '../../DateInputs/calendar/constants'\nimport {useWeeksOfMonth} from '../../DateInputs/calendar/utils'\nimport {CalendarDay as DefaultCalendarDay} from './CalendarDay'\nimport {type CalendarProps} from './CalendarFilter'\n\ninterface CalendarMonthProps {\n date: Date\n focused?: Date\n selected?: Date\n onSelect: (date?: Date) => void\n hidden?: boolean\n renderCalendarDay?: CalendarProps['renderCalendarDay']\n disabled?: boolean\n timeZoneScope: TimeZoneScope\n}\n\nexport function CalendarMonth(props: CalendarMonthProps) {\n const {date, renderCalendarDay, hidden, disabled, timeZoneScope} = props\n const {getCurrentZoneDate} = useTimeZone(timeZoneScope)\n const CalendarDay = renderCalendarDay || DefaultCalendarDay\n const weeksOfMonth = useWeeksOfMonth(date)\n\n return (\n <Box aria-hidden={hidden || false} data-ui=\"CalendarMonth\">\n <Grid\n style={{\n gridGap: '1px',\n gridTemplateColumns: 'repeat(7, 1fr)',\n }}\n >\n {/* Header */}\n {DEFAULT_WEEK_DAY_NAMES.map((weekday) => (\n <Card key={weekday} paddingY={3}>\n <Label size={1} style={{textAlign: 'center'}}>\n {weekday.slice(0, 1)}\n </Label>\n </Card>\n ))}\n\n {weeksOfMonth.map((week, weekIdx) =>\n week.days.map((dayDate, dayIdx) => {\n const focused = props.focused && isSameDay(dayDate, props.focused)\n const selected = props.selected && isSameDay(dayDate, props.selected)\n const isToday = isSameDay(dayDate, getCurrentZoneDate())\n const isCurrentMonth = isSameMonth(dayDate, props.focused || date)\n\n return (\n <CalendarDay\n key={`${weekIdx}-${dayIdx}`}\n date={dayDate}\n focused={focused}\n isCurrentMonth={isCurrentMonth}\n isToday={isToday}\n onSelect={props.onSelect}\n selected={selected}\n disabled={disabled}\n />\n )\n }),\n )}\n </Grid>\n </Box>\n )\n}\n","import {ChevronLeftIcon} from '@sanity/icons/ChevronLeft'\nimport {ChevronRightIcon} from '@sanity/icons/ChevronRight'\nimport {Box, Flex, Text} from '@sanity/ui'\nimport {addDays} from 'date-fns/addDays'\nimport {addMonths} from 'date-fns/addMonths'\nimport {setHours} from 'date-fns/setHours'\nimport {setMinutes} from 'date-fns/setMinutes'\nimport {\n type ComponentProps,\n type ForwardedRef,\n forwardRef,\n type KeyboardEvent,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from 'react'\n\nimport {Button} from '../../../../../ui-components/button/Button'\nimport {TooltipDelayGroupProvider} from '../../../../../ui-components/tooltipDelayGroupProvider/TooltipDelayGroupProvider'\nimport {type TimeZoneScope, useTimeZone} from '../../../../hooks/useTimeZone'\nimport {useTranslation} from '../../../../i18n/hooks/useTranslation'\nimport {ARROW_KEYS, DEFAULT_MONTH_NAMES} from '../../DateInputs/calendar/constants'\nimport {type CalendarDayProps} from './CalendarDay'\nimport {CalendarMonth} from './CalendarMonth'\n\nexport type CalendarProps = Omit<ComponentProps<'div'>, 'onSelect'> & {\n focusedDate?: Date\n onSelect: (date?: Date) => void\n onFocusedDateChange?: (index: Date) => void\n selectedDate?: Date\n renderCalendarDay?: (props: CalendarDayProps) => React.ReactNode\n disabled?: boolean\n timeZoneScope: TimeZoneScope\n}\n\n// This is used to maintain focus on a child element of the calendar-grid between re-renders\n// When using arrow keys to move focus from a day in one month to another we are setting focus at the button for the day\n// after it has changed but *only* if we *already* had focus inside the calendar grid (e.g not if focus was on the \"next\n// year\" button, or any of the other controls)\n// When moving from the last day of a month that displays 6 weeks in the grid to a month that displays 5 weeks, current\n// focus gets lost on render, so this provides us with a stable element to help us preserve focus on a child element of\n// the calendar grid between re-renders\nconst PRESERVE_FOCUS_ELEMENT = (\n <span\n data-preserve-focus\n style={{overflow: 'hidden', position: 'absolute', outline: 'none'}}\n tabIndex={-1}\n />\n)\n\nexport const CalendarFilter = forwardRef(function Calendar(\n props: CalendarProps,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n) {\n const {\n focusedDate: providedFocusedDate,\n onFocusedDateChange: handleOnFocusedDateChange,\n onSelect,\n selectedDate,\n renderCalendarDay,\n timeZoneScope,\n ...restProps\n } = props\n const [_focusedDate, _setFocusedDate] = useState<Date>(new Date())\n const {t: tCore} = useTranslation()\n const {zoneDateToUtc} = useTimeZone(timeZoneScope)\n\n const focusedDate = providedFocusedDate || _focusedDate\n\n const onFocusedDateChange = useCallback(\n (date: Date) => {\n if (handleOnFocusedDateChange && providedFocusedDate) {\n handleOnFocusedDateChange(date)\n } else {\n _setFocusedDate(date)\n }\n },\n [handleOnFocusedDateChange, providedFocusedDate],\n )\n\n const setFocusedDate = useCallback(\n (date: Date) => {\n onFocusedDateChange(zoneDateToUtc(date))\n },\n [onFocusedDateChange, zoneDateToUtc],\n )\n\n const moveFocusedDate = useCallback(\n (by: number) => setFocusedDate(addMonths(focusedDate, by)),\n [focusedDate, setFocusedDate],\n )\n\n const handleDateChange = useCallback(\n (date?: Date) => {\n if (date) {\n const targetDate = zoneDateToUtc(\n setMinutes(setHours(date, date.getHours()), date.getMinutes()),\n )\n onSelect(targetDate)\n onFocusedDateChange(targetDate)\n } else {\n onSelect(undefined)\n }\n },\n [onSelect, zoneDateToUtc, onFocusedDateChange],\n )\n\n const ref = useRef<HTMLDivElement | null>(null)\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n const focusCurrentWeekDay = useCallback(() => {\n ref.current?.querySelector<HTMLElement>(`[data-focused=\"true\"]`)?.focus()\n }, [ref])\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLInputElement>) => {\n if (!ARROW_KEYS.includes(event.key)) {\n return\n }\n event.preventDefault()\n if (event.currentTarget.hasAttribute('data-calendar-grid')) {\n focusCurrentWeekDay()\n return\n }\n if (event.key === 'ArrowUp') {\n onFocusedDateChange(zoneDateToUtc(addDays(focusedDate, -7)))\n }\n if (event.key === 'ArrowDown') {\n onFocusedDateChange(zoneDateToUtc(addDays(focusedDate, 7)))\n }\n if (event.key === 'ArrowLeft') {\n onFocusedDateChange(zoneDateToUtc(addDays(focusedDate, -1)))\n }\n if (event.key === 'ArrowRight') {\n onFocusedDateChange(zoneDateToUtc(addDays(focusedDate, 1)))\n }\n // set focus temporarily on this element to make sure focus is still inside the calendar-grid after re-render\n ref.current?.querySelector<HTMLElement>('[data-preserve-focus]')?.focus()\n },\n [ref, focusCurrentWeekDay, onFocusedDateChange, focusedDate, zoneDateToUtc],\n )\n\n useEffect(() => {\n focusCurrentWeekDay()\n }, [focusCurrentWeekDay])\n\n useEffect(() => {\n const currentFocusInCalendarGrid = document.activeElement?.matches(\n '[data-calendar-grid], [data-calendar-grid] [data-preserve-focus]',\n )\n if (\n // Only move focus if it's currently in the calendar grid\n currentFocusInCalendarGrid\n ) {\n focusCurrentWeekDay()\n }\n }, [ref, focusCurrentWeekDay, focusedDate])\n\n // Select AND focus current date when 'today' is pressed\n const handleNowClick = useCallback(() => {\n const now = new Date()\n onSelect(now)\n onFocusedDateChange(now)\n }, [onSelect, onFocusedDateChange])\n\n const handlePrevMonthClick = useCallback(() => moveFocusedDate(-1), [moveFocusedDate])\n\n const handleNextMonthClick = useCallback(() => moveFocusedDate(1), [moveFocusedDate])\n\n return (\n <Box data-ui=\"Calendar\" {...restProps} ref={ref}>\n {/* Month + Year header */}\n <Flex\n align=\"center\"\n paddingLeft={4}\n style={{\n borderBottom: '1px solid var(--card-border-color)',\n minHeight: `55px`,\n position: 'sticky',\n top: 0,\n }}\n >\n <Flex align=\"center\" flex={1} justify=\"space-between\">\n <Text weight=\"medium\" size={1}>\n {DEFAULT_MONTH_NAMES[focusedDate?.getMonth()]} {focusedDate?.getFullYear()}\n </Text>\n <Flex paddingRight={3} gap={2}>\n <TooltipDelayGroupProvider>\n <Button\n icon={ChevronLeftIcon}\n mode=\"bleed\"\n onClick={handlePrevMonthClick}\n tooltipProps={{content: 'Previous month'}}\n disabled={restProps.disabled}\n />\n <Button\n icon={ChevronRightIcon}\n mode=\"bleed\"\n onClick={handleNextMonthClick}\n tooltipProps={{content: 'Next month'}}\n disabled={restProps.disabled}\n />\n </TooltipDelayGroupProvider>\n </Flex>\n </Flex>\n </Flex>\n\n {/* Select date */}\n <Box>\n {/* Selected month (grid of days) */}\n <Box\n data-calendar-grid\n onKeyDown={handleKeyDown}\n overflow=\"hidden\"\n paddingBottom={1}\n paddingX={1}\n tabIndex={0}\n >\n <CalendarMonth\n date={focusedDate}\n focused={providedFocusedDate}\n onSelect={handleDateChange}\n selected={selectedDate}\n renderCalendarDay={renderCalendarDay}\n disabled={restProps.disabled}\n timeZoneScope={timeZoneScope}\n />\n {PRESERVE_FOCUS_ELEMENT}\n </Box>\n </Box>\n\n {/* Today button */}\n <Box flex={1} style={{borderBottom: '1px solid var(--card-border-color)'}}>\n <Button\n disabled={restProps.disabled}\n mode=\"bleed\"\n onClick={handleNowClick}\n width=\"fill\"\n aria-label={tCore('calendar.action.go-to-today-aria-label')}\n text={tCore('calendar.action.go-to-today')}\n />\n </Box>\n </Box>\n )\n})\n"],"names":["CalendarDay","props","$","_c","date","focused","isCurrentMonth","isToday","onSelect","selected","disabled","dateStyles","t0","t1","undefined","t2","handleClick","tone","isWeekend","t3","toDateString","t4","t5","getDate","getMonth","t6","for","position","t7","t8","opacity","textAlign","t9","t10","t11","t12","CalendarMonth","renderCalendarDay","hidden","timeZoneScope","getCurrentZoneDate","useTimeZone","DefaultCalendarDay","weeksOfMonth","useWeeksOfMonth","gridGap","gridTemplateColumns","DEFAULT_WEEK_DAY_NAMES","map","_temp","week","weekIdx","days","dayDate","dayIdx","isSameDay","isSameMonth","weekday","slice","PRESERVE_FOCUS_ELEMENT","overflow","outline","CalendarFilter","forwardRef","forwardedRef","handleOnFocusedDateChange","providedFocusedDate","restProps","selectedDate","focusedDate","onFocusedDateChange","Symbol","Date","_focusedDate","_setFocusedDate","useState","t","tCore","useTranslation","zoneDateToUtc","date_0","setFocusedDate","by","addMonths","moveFocusedDate","date_1","targetDate","setMinutes","setHours","getHours","getMinutes","handleDateChange","ref","useRef","current","useImperativeHandle","querySelector","focus","focusCurrentWeekDay","event","ARROW_KEYS","includes","key","preventDefault","currentTarget","hasAttribute","addDays","handleKeyDown","useEffect","document","activeElement","matches","now","handleNowClick","t13","handlePrevMonthClick","t14","handleNextMonthClick","t15","borderBottom","minHeight","top","t16","DEFAULT_MONTH_NAMES","t17","getFullYear","t18","t19","content","t20","ChevronLeftIcon","t21","t22","ChevronRightIcon","t23","t24","t25","t26","t27","t28","t29","t30","t31","t32"],"mappings":"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"}
@@ -15,16 +15,21 @@ import "@sanity/client/csm";
15
15
  import "quick-lru";
16
16
  import "lodash-es/throttle.js";
17
17
  import "lodash-es/isEqual.js";
18
- import { CheckmarkIcon, ChevronDownIcon, CloseIcon } from "@sanity/icons";
18
+ import "@sanity/icons/Document";
19
+ import "@sanity/icons/Image";
19
20
  import "@sanity/uuid";
20
21
  import "@sanity/color";
21
22
  import "color2k";
22
23
  import "lodash-es/isString.js";
24
+ import "@sanity/icons/Copy";
25
+ import "@sanity/icons/Clipboard";
23
26
  import "./createAgentBundlesStore.js";
24
27
  import "@sanity/telemetry/react";
25
28
  import "@portabletext/editor";
26
29
  import { Button, MenuItem, MenuButton } from "./index.js";
27
30
  import "@sanity/types";
31
+ import "@sanity/icons/ChevronRight";
32
+ import "@sanity/icons/Revert";
28
33
  import "@sanity/diff-match-patch";
29
34
  import "lodash-es/flatten.js";
30
35
  import "lodash-es/orderBy.js";
@@ -32,18 +37,29 @@ import "lodash-es/uniq.js";
32
37
  import "lodash-es/xor.js";
33
38
  import "@sanity/diff-patch";
34
39
  import "./version.js";
40
+ import "@sanity/icons/ErrorOutline";
35
41
  import "@sanity/id-utils";
36
42
  import "sanity/router";
43
+ import { ChevronDownIcon } from "@sanity/icons/ChevronDown";
44
+ import "@sanity/icons/InfoOutline";
37
45
  import "date-fns/addHours";
38
46
  import "date-fns/startOfHour";
47
+ import "@sanity/icons/Bolt";
48
+ import "@sanity/icons/Clock";
49
+ import "@sanity/icons/Dot";
50
+ import "@sanity/icons/EarthGlobe";
39
51
  import "date-fns/format";
40
52
  import "date-fns/isValid";
41
53
  import "date-fns/parse";
42
54
  import "@sanity/util/legacyDateFormat";
55
+ import "@sanity/icons/Search";
43
56
  import "@sanity/ui/theme";
57
+ import "@sanity/icons/Sync";
44
58
  import "lodash-es/pick.js";
45
59
  import "react-fast-compare";
60
+ import "@sanity/icons/AccessDenied";
46
61
  import "lodash-es/startCase.js";
62
+ import { CloseIcon } from "@sanity/icons/Close";
47
63
  import "react-focus-lock";
48
64
  import "lodash-es/debounce.js";
49
65
  import "date-fns/differenceInDays";
@@ -53,8 +69,19 @@ import "date-fns/differenceInMonths";
53
69
  import "date-fns/differenceInSeconds";
54
70
  import "date-fns/differenceInWeeks";
55
71
  import "date-fns/differenceInYears";
72
+ import "@sanity/icons/AddCircle";
73
+ import "@sanity/icons/Calendar";
74
+ import "@sanity/icons/Circle";
75
+ import "@sanity/icons/Edit";
76
+ import "@sanity/icons/Publish";
77
+ import "@sanity/icons/Timeline";
78
+ import "@sanity/icons/Trash";
79
+ import "@sanity/icons/Unpublish";
56
80
  import "@sanity/diff";
57
81
  import "mendoza";
82
+ import "@sanity/icons/ArrowDown";
83
+ import "@sanity/icons/ArrowRight";
84
+ import "@sanity/icons/WarningOutline";
58
85
  import "@portabletext/sanity-bridge";
59
86
  import "motion/react";
60
87
  import "lodash-es/get.js";
@@ -73,6 +100,7 @@ import "lodash-es/toLower.js";
73
100
  import "lodash-es/union.js";
74
101
  import "lodash-es/words.js";
75
102
  import "lodash-es/isFinite.js";
103
+ import "@sanity/icons/Add";
76
104
  import "observable-callback";
77
105
  import "@sanity/util/content";
78
106
  import "lodash-es/isPlainObject.js";
@@ -80,6 +108,8 @@ import "@sanity/insert-menu";
80
108
  import "@tanstack/react-virtual";
81
109
  import "speakingurl";
82
110
  import "@sanity/asset-utils";
111
+ import "@sanity/icons/HelpCircle";
112
+ import "@sanity/icons/Launch";
83
113
  import "@sanity/image-url";
84
114
  import "nanoid";
85
115
  import "lodash-es/castArray.js";
@@ -88,8 +118,13 @@ import "@sanity/mutator";
88
118
  import "@portabletext/react";
89
119
  import "lodash-es/findIndex.js";
90
120
  import { useCommentsUpsell } from "./useCommentsUpsell.js";
121
+ import "@sanity/icons/EyeOpen";
122
+ import "@sanity/icons/Feedback";
91
123
  import "@xstate/react";
92
124
  import "xstate";
125
+ import "@sanity/icons/FaceHappy";
126
+ import "@sanity/icons/FaceIndifferent";
127
+ import "@sanity/icons/FaceSad";
93
128
  import "@sentry/react";
94
129
  import "@sanity/schema";
95
130
  import "@sanity/util/client";
@@ -99,14 +134,29 @@ import "json-reduce";
99
134
  import "rxjs-exhaustmap-with-trailing";
100
135
  import "date-fns/isBefore";
101
136
  import "date-fns/startOfMinute";
137
+ import "@sanity/icons/Documents";
138
+ import "@sanity/icons/Unknown";
102
139
  import "@portabletext/toolkit";
140
+ import "@sanity/icons/CheckmarkCircle";
141
+ import "@sanity/icons/User";
142
+ import "@sanity/icons/Link";
143
+ import "@sanity/icons/ChevronLeft";
103
144
  import "polished";
104
145
  import "@sanity/client";
146
+ import "@sanity/icons/Reset";
105
147
  import "react-is";
106
148
  import "exif-component";
107
149
  import "lodash-es/pickBy.js";
108
150
  import "swr";
151
+ import "@sanity/icons/Download";
152
+ import "@sanity/icons/Upload";
153
+ import "@sanity/icons/BinaryDocument";
154
+ import "@sanity/icons/Lock";
155
+ import "@sanity/icons/AddDocument";
156
+ import "@sanity/icons/InsertAbove";
157
+ import "@sanity/icons/InsertBelow";
109
158
  import "use-hot-module-reload";
159
+ import "@sanity/icons/EllipsisHorizontal";
110
160
  import "lodash-es/memoize.js";
111
161
  import "lodash-es/sortedIndex.js";
112
162
  import "lodash-es/difference.js";
@@ -121,11 +171,18 @@ import "groq-js";
121
171
  import "use-sync-external-store/with-selector";
122
172
  import "is-network-error";
123
173
  import "lodash-es/escapeRegExp.js";
174
+ import "@sanity/icons/Desktop";
175
+ import "@sanity/icons/Moon";
176
+ import "@sanity/icons/Sun";
124
177
  import "lodash-es/isEmpty.js";
125
178
  import "react-dom/server";
126
179
  import "lodash-es/capitalize.js";
127
180
  import "lodash-es/last.js";
128
181
  import "react-dom/client";
182
+ import "@sanity/icons/ArrowLeft";
183
+ import "@sanity/icons/AddUser";
184
+ import "@sanity/icons/Cog";
185
+ import { CheckmarkIcon } from "@sanity/icons/Checkmark";
129
186
  import "date-fns/addWeeks";
130
187
  import "date-fns/isAfter";
131
188
  import "semver";
@@ -1 +1 @@
1
- {"version":3,"file":"CommentsInspector.js","sources":["../../src/core/comments/components/upsell/CommentsUpsellPanel.tsx","../../src/core/comments/hooks/useCommentsOnboarding.ts","../../src/core/comments/plugin/inspector/CommentsInspectorError.tsx","../../src/core/comments/plugin/inspector/CommentsInspectorHeader.tsx","../../src/core/comments/plugin/inspector/CommentsInspector.tsx"],"sourcesContent":["import {Box, Container} from '@sanity/ui'\n\nimport {type UpsellData} from '../../../studio/upsell/types'\nimport {UpsellPanel} from '../../../studio/upsell/UpsellPanel'\n\ninterface CommentsUpsellPanelProps {\n data: UpsellData\n onPrimaryClick: () => void\n onSecondaryClick: () => void\n}\n\nexport function CommentsUpsellPanel(props: CommentsUpsellPanelProps) {\n const {data, onPrimaryClick, onSecondaryClick} = props\n return (\n <Container width={1}>\n <Box marginBottom={6}>\n <UpsellPanel\n data={data}\n onPrimaryClick={onPrimaryClick}\n onSecondaryClick={onSecondaryClick}\n />\n </Box>\n </Container>\n )\n}\n","import {useContext} from 'react'\nimport {CommentsOnboardingContext} from 'sanity/_singletons'\n\nimport {type CommentsOnboardingContextValue} from '../context/onboarding/types'\n\nexport function useCommentsOnboarding(): CommentsOnboardingContextValue {\n const ctx = useContext(CommentsOnboardingContext)\n\n if (!ctx) {\n throw new Error('useCommentsOnboarding: missing context value')\n }\n\n return ctx\n}\n","import {Box, Card, Stack, Text} from '@sanity/ui'\n\nimport {useTranslation} from '../../../i18n'\nimport {commentsLocaleNamespace} from '../../i18n'\n\nexport function CommentsInspectorError({error}: {error: Error}) {\n const {t} = useTranslation(commentsLocaleNamespace)\n\n return (\n <Box padding={2}>\n <Card paddingX={2} paddingY={3} tone=\"critical\" border radius={3}>\n <Stack space={3}>\n <Text size={1} weight=\"medium\">\n {t('inspector-error.title')}\n </Text>\n <Text size={1} muted>\n {error.message}\n </Text>\n </Stack>\n </Card>\n </Box>\n )\n}\n","import {CheckmarkIcon, ChevronDownIcon, CloseIcon} from '@sanity/icons'\nimport {Card, Flex, Menu, Text} from '@sanity/ui'\nimport {forwardRef, useCallback} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Button, MenuButton, MenuItem} from '../../../../ui-components'\nimport {useTranslation} from '../../../i18n'\nimport {commentsLocaleNamespace} from '../../i18n'\nimport {type CommentStatus, type CommentsUIMode} from '../../types'\n\nconst Root = styled(Card)({\n position: 'relative',\n zIndex: '1',\n lineHeight: '0',\n})\n\ninterface CommentsInspectorHeaderProps {\n onClose: () => void\n onViewChange: (view: CommentStatus) => void\n view: CommentStatus\n mode: CommentsUIMode\n}\n\nexport const CommentsInspectorHeader = forwardRef(function CommentsInspectorHeader(\n props: CommentsInspectorHeaderProps,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {t} = useTranslation(commentsLocaleNamespace)\n const {onClose, onViewChange, view, mode} = props\n\n const handleSetOpenView = useCallback(() => onViewChange('open'), [onViewChange])\n const handleSetResolvedView = useCallback(() => onViewChange('resolved'), [onViewChange])\n\n return (\n <Root ref={ref}>\n <Flex padding={2}>\n <Flex align=\"center\" flex={1} gap={2} paddingY={2} padding={3}>\n <Text as=\"h1\" size={1} weight=\"medium\">\n {t('feature-name')}\n </Text>\n </Flex>\n\n <Flex flex=\"none\" padding={1} gap={2}>\n <MenuButton\n id=\"comment-status-menu-button\"\n button={\n <Button\n text={\n view === 'open'\n ? t('status-filter.status-open')\n : t('status-filter.status-resolved')\n }\n mode=\"bleed\"\n iconRight={ChevronDownIcon}\n />\n }\n menu={\n <Menu style={{width: '180px'}}>\n <MenuItem\n iconRight={view === 'open' ? CheckmarkIcon : undefined}\n onClick={handleSetOpenView}\n text={t('status-filter.status-open-full')}\n />\n <MenuItem\n iconRight={view === 'resolved' ? CheckmarkIcon : undefined}\n onClick={handleSetResolvedView}\n text={t('status-filter.status-resolved-full')}\n tooltipProps={\n mode === 'upsell'\n ? {content: t('status-filter.status-resolved-full-upsell')}\n : undefined\n }\n disabled={mode === 'upsell'}\n />\n </Menu>\n }\n popover={{placement: 'bottom-end'}}\n />\n\n <Button\n aria-label={t('close-pane-button-text-aria-label')}\n icon={CloseIcon}\n mode=\"bleed\"\n onClick={onClose}\n tooltipProps={{content: t('close-pane-button-text')}}\n />\n </Flex>\n </Flex>\n </Root>\n )\n})\n","import {Flex, Layer, useClickOutsideEvent, useLayer, useToast} from '@sanity/ui'\nimport * as PathUtils from '@sanity/util/paths'\nimport {Fragment, useCallback, useEffect, useMemo, useRef, useState} from 'react'\nimport {styled} from 'styled-components'\n\nimport {type DocumentInspectorProps} from '../../../config'\nimport {useTranslation} from '../../../i18n'\nimport {useCurrentUser} from '../../../store'\nimport {useAddonDataset} from '../../../studio/addonDataset'\nimport {\n CommentDeleteDialog,\n CommentsList,\n CommentsOnboardingPopover,\n CommentsUpsellPanel,\n} from '../../components'\nimport {type CommentsSelectedPath} from '../../context'\nimport {isTextSelectionComment} from '../../helpers'\nimport {\n useComments,\n useCommentsEnabled,\n useCommentsOnboarding,\n useCommentsScroll,\n useCommentsSelectedPath,\n useCommentsTelemetry,\n useCommentsUpsell,\n} from '../../hooks'\nimport {commentsLocaleNamespace} from '../../i18n'\nimport {\n type CommentBaseCreatePayload,\n type CommentReactionOption,\n type CommentStatus,\n type CommentsUIMode,\n type CommentUpdatePayload,\n} from '../../types'\nimport {CommentsInspectorError} from './CommentsInspectorError'\nimport {CommentsInspectorHeader} from './CommentsInspectorHeader'\n\ninterface CommentToDelete {\n commentId: string\n isParent: boolean\n}\n\nconst RootLayer = styled(Layer)`\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: hidden;\n`\n\nexport function CommentsInspector(props: DocumentInspectorProps) {\n const {enabled, mode} = useCommentsEnabled()\n\n if (!enabled) return null\n\n // We wrap the comments inspector in a Layer in order to know when the comments inspector\n // is the top layer (that is, if there is e.g. a popover open). This is used to determine\n // if we should deselect the selected path when clicking outside the comments inspector.\n return (\n <RootLayer>\n <CommentsInspectorInner {...props} mode={mode} />\n </RootLayer>\n )\n}\n\nfunction CommentsInspectorInner(\n props: DocumentInspectorProps & {\n mode: CommentsUIMode\n },\n) {\n const {t} = useTranslation(commentsLocaleNamespace)\n const {onClose, mode} = props\n const [showDeleteDialog, setShowDeleteDialog] = useState<boolean>(false)\n const [commentToDelete, setCommentToDelete] = useState<CommentToDelete | null>(null)\n const [deleteLoading, setDeleteLoading] = useState<boolean>(false)\n const [deleteError, setDeleteError] = useState<Error | null>(null)\n\n const rootRef = useRef<HTMLDivElement | null>(null)\n const [rootElement, setRootElement] = useState<HTMLDivElement | null>(null)\n\n const currentUser = useCurrentUser()\n const {\n comments,\n getComment,\n isCreatingDataset,\n mentionOptions,\n setStatus,\n status,\n operation,\n selectedCommentId,\n getCommentLink,\n onClearSelectedComment,\n onPathOpen,\n } = useComments()\n const commentIdParamRef = useRef<string | undefined>(selectedCommentId)\n const {error: addonDatasetError} = useAddonDataset()\n const didScrollToCommentFromParam = useRef<boolean>(false)\n\n const pushToast = useToast().push\n const {isTopLayer} = useLayer()\n\n const {scrollToComment, scrollToField, scrollToInlineComment} = useCommentsScroll({\n boundaryElement: rootElement,\n })\n const {selectedPath, setSelectedPath} = useCommentsSelectedPath()\n const {isDismissed, setDismissed} = useCommentsOnboarding()\n const telemetry = useCommentsTelemetry()\n\n const {upsellData, telemetryLogs: upsellTelemetryLogs} = useCommentsUpsell()\n\n const currentComments = useMemo(() => comments.data[status], [comments, status])\n\n const {loading} = comments\n\n const handleChangeView = useCallback(\n (nextView: CommentStatus) => {\n setStatus(nextView)\n setSelectedPath(null)\n\n telemetry.commentListViewChanged(nextView)\n },\n [setSelectedPath, setStatus, telemetry],\n )\n\n const handleCloseInspector = useCallback(() => {\n onClose()\n setSelectedPath(null)\n }, [onClose, setSelectedPath])\n\n const handleCopyLink = useMemo(() => {\n if (!getCommentLink) return undefined\n\n const copyLink = (id: string) => {\n navigator.clipboard.writeText(getCommentLink(id)).catch(() => {\n pushToast({\n closable: true,\n status: 'error',\n title: t('copy-link-error-message'),\n })\n })\n\n telemetry.commentLinkCopied()\n }\n\n return copyLink\n }, [getCommentLink, pushToast, t, telemetry])\n\n const handleCreateRetry = useCallback(\n (id: string) => {\n const comment = getComment(id)\n if (!comment) return\n\n void operation.create({\n type: 'field',\n fieldPath: comment.target.path?.field || '',\n id: comment._id,\n message: comment.message,\n parentCommentId: comment.parentCommentId,\n reactions: comment.reactions || [],\n status: comment.status,\n threadId: comment.threadId,\n })\n },\n [getComment, operation],\n )\n\n const closeDeleteDialog = useCallback(() => {\n if (deleteLoading) return\n setShowDeleteDialog(false)\n setCommentToDelete(null)\n }, [deleteLoading])\n\n const handlePathSelect = useCallback(\n (nextPath: CommentsSelectedPath) => {\n setSelectedPath(nextPath)\n\n if (nextPath?.fieldPath) {\n const path = PathUtils.fromString(nextPath.fieldPath)\n onPathOpen?.(path)\n\n scrollToField(nextPath.fieldPath)\n\n const isInlineComment = comments.data.open\n .filter((c) => c.threadId === nextPath?.threadId)\n .some((x) => isTextSelectionComment(x.parentComment))\n\n if (isInlineComment && nextPath.threadId) {\n scrollToInlineComment(nextPath.threadId)\n }\n }\n },\n [comments.data.open, onPathOpen, scrollToField, scrollToInlineComment, setSelectedPath],\n )\n\n const handleNewThreadCreate = useCallback(\n (nextComment: CommentBaseCreatePayload) => {\n const fieldPath = nextComment?.payload?.fieldPath || ''\n\n void operation.create({\n type: 'field',\n fieldPath,\n message: nextComment.message,\n parentCommentId: nextComment.parentCommentId,\n reactions: nextComment.reactions,\n status: nextComment.status,\n threadId: nextComment.threadId,\n })\n\n setSelectedPath({\n fieldPath,\n origin: 'inspector',\n threadId: nextComment.threadId,\n })\n },\n [operation, setSelectedPath],\n )\n\n const handleReply = useCallback(\n (nextComment: CommentBaseCreatePayload) => {\n void operation.create({\n ...nextComment,\n type: 'field',\n fieldPath: nextComment?.payload?.fieldPath || '',\n })\n },\n [operation],\n )\n\n const handleEdit = useCallback(\n (id: string, nextComment: CommentUpdatePayload) => {\n void operation.update(id, nextComment)\n },\n [operation],\n )\n\n const onDeleteStart = useCallback(\n (id: string) => {\n const parent = currentComments.find((c) => c.parentComment?._id === id)\n const isParent = Boolean(parent && parent?.replies?.length > 0)\n\n setShowDeleteDialog(true)\n setCommentToDelete({\n commentId: id,\n isParent,\n })\n },\n\n [currentComments],\n )\n\n const handleDeleteConfirm = useCallback(\n async (id: string) => {\n try {\n setDeleteLoading(true)\n await operation.remove(id)\n closeDeleteDialog()\n } catch (err) {\n setDeleteError(err)\n }\n setDeleteLoading(false)\n },\n [closeDeleteDialog, operation],\n )\n\n const handleStatusChange = useCallback(\n (id: string, nextStatus: CommentStatus) => {\n void operation.update(id, {\n status: nextStatus,\n })\n\n // If the comment is being opened, we want to change to the \"open\" view\n // and scroll to the comment\n if (nextStatus === 'open') {\n setStatus('open')\n\n const comment = getComment(id)\n\n if (!comment) return\n\n setSelectedPath({\n fieldPath: comment.target.path?.field || null,\n origin: 'inspector',\n threadId: comment.threadId || null,\n })\n\n scrollToComment(id)\n }\n },\n [getComment, operation, scrollToComment, setSelectedPath, setStatus],\n )\n\n const handleReactionSelect = useCallback(\n (id: string, reaction: CommentReactionOption) => {\n void operation.react(id, reaction)\n },\n [operation],\n )\n\n const handleDeselectPath = useCallback(() => {\n // Clear the selected path when:\n // - Clicking outside the inspector when it's the top layer\n // - The target is not a slate editor string. This is needed because we do not want to\n // frequently deselect the selected path when clicking inside the editor.\n if (selectedPath && isTopLayer) {\n setSelectedPath(null)\n }\n }, [isTopLayer, selectedPath, setSelectedPath])\n\n const setRootRef = useCallback((element: HTMLDivElement | null) => {\n rootRef.current = element\n setRootElement(element)\n }, [])\n\n useClickOutsideEvent(\n (event) => {\n // Clear the selected path when clicking outside the comments inspector.\n // We do this only when the comments inspector is the top layer.\n const isPTETarget =\n event.target instanceof HTMLElement && event.target?.hasAttribute('data-pt-text')\n\n if (!isPTETarget) {\n handleDeselectPath()\n }\n },\n () => [rootRef.current],\n )\n\n const [loggedTelemetry, setLoggedTelemetry] = useState(false)\n useEffect(() => {\n if (loggedTelemetry || mode !== 'upsell') return undefined\n // oxlint-disable-next-line react/react-compiler\n setLoggedTelemetry(true)\n if (selectedPath?.origin === 'form') {\n upsellTelemetryLogs.panelViewed('field_action')\n } else if (commentIdParamRef.current) {\n upsellTelemetryLogs.panelViewed('link')\n } else {\n upsellTelemetryLogs.panelViewed('document_action')\n }\n return () => {\n upsellTelemetryLogs.panelDismissed()\n }\n }, [loggedTelemetry, mode, selectedPath?.origin, upsellTelemetryLogs])\n\n // Handle scroll to comment from URL param\n useEffect(() => {\n // Make sure that the comment exists before we try to scroll to it.\n // We can't solely rely on the comment id from the url since the comment might not be loaded yet.\n const commentToScrollTo = getComment(commentIdParamRef.current || '')\n\n if (!loading && commentToScrollTo && !didScrollToCommentFromParam.current) {\n // Make sure we have the correct status set before we scroll to the comment\n setStatus(commentToScrollTo.status || 'open')\n\n handlePathSelect({\n fieldPath: commentToScrollTo.target.path?.field || null,\n origin: 'url',\n threadId: commentToScrollTo.threadId || null,\n })\n\n // Defer the comment scroll to prevent React batching from overwriting the field scroll\n requestAnimationFrame(() => {\n scrollToComment(commentToScrollTo._id)\n })\n\n didScrollToCommentFromParam.current = true\n commentIdParamRef.current = undefined\n\n onClearSelectedComment?.()\n\n telemetry.commentViewedFromLink()\n }\n }, [\n getComment,\n handlePathSelect,\n loading,\n onClearSelectedComment,\n scrollToComment,\n setStatus,\n telemetry,\n ])\n\n const beforeListNode = useMemo(() => {\n if (mode === 'upsell' && upsellData) {\n return (\n <CommentsUpsellPanel\n data={upsellData}\n onPrimaryClick={upsellTelemetryLogs.panelPrimaryClicked}\n onSecondaryClick={upsellTelemetryLogs.panelSecondaryClicked}\n />\n )\n }\n\n return null\n }, [\n mode,\n upsellTelemetryLogs.panelPrimaryClicked,\n upsellTelemetryLogs.panelSecondaryClicked,\n upsellData,\n ])\n\n return (\n <Fragment>\n {commentToDelete && showDeleteDialog && (\n <CommentDeleteDialog\n {...commentToDelete}\n error={deleteError}\n loading={deleteLoading}\n onClose={closeDeleteDialog}\n onConfirm={handleDeleteConfirm}\n />\n )}\n\n <Flex\n direction=\"column\"\n flex={1}\n height=\"fill\"\n onClick={handleDeselectPath}\n overflow=\"hidden\"\n ref={setRootRef}\n >\n <CommentsOnboardingPopover\n onDismiss={setDismissed}\n open={!isDismissed}\n placement=\"left-start\"\n >\n <CommentsInspectorHeader\n onClose={handleCloseInspector}\n onViewChange={handleChangeView}\n view={status}\n mode={mode}\n />\n </CommentsOnboardingPopover>\n {addonDatasetError && <CommentsInspectorError error={addonDatasetError} />}\n {currentUser && (\n <CommentsList\n beforeListNode={beforeListNode}\n comments={currentComments}\n currentUser={currentUser}\n error={comments.error}\n loading={loading}\n mentionOptions={mentionOptions}\n mode={mode}\n onCopyLink={handleCopyLink}\n onCreateRetry={handleCreateRetry}\n onDelete={onDeleteStart}\n onEdit={handleEdit}\n onNewThreadCreate={handleNewThreadCreate}\n onPathSelect={handlePathSelect}\n onReactionSelect={handleReactionSelect}\n onReply={handleReply}\n onStatusChange={handleStatusChange}\n readOnly={isCreatingDataset}\n selectedPath={selectedPath}\n status={status}\n />\n )}\n </Flex>\n </Fragment>\n )\n}\n"],"names":["CommentsUpsellPanel","props","$","_c","data","onPrimaryClick","onSecondaryClick","t0","useCommentsOnboarding","ctx","useContext","CommentsOnboardingContext","Error","CommentsInspectorError","error","t","useTranslation","commentsLocaleNamespace","t1","t2","t3","message","t4","Root","styled","Card","withConfig","displayName","componentId","position","zIndex","lineHeight","CommentsInspectorHeader","forwardRef","ref","onClose","onViewChange","view","mode","handleSetOpenView","handleSetResolvedView","t5","ChevronDownIcon","t6","for","width","t7","CheckmarkIcon","undefined","t8","t9","t10","t11","t12","content","t13","t14","t15","t16","placement","t17","t18","t19","t20","t21","CloseIcon","t22","t23","t24","RootLayer","Layer","CommentsInspector","enabled","useCommentsEnabled","CommentsInspectorInner","showDeleteDialog","setShowDeleteDialog","useState","commentToDelete","setCommentToDelete","deleteLoading","setDeleteLoading","deleteError","setDeleteError","rootRef","useRef","rootElement","setRootElement","currentUser","useCurrentUser","comments","getComment","isCreatingDataset","mentionOptions","setStatus","status","operation","selectedCommentId","getCommentLink","onClearSelectedComment","onPathOpen","useComments","commentIdParamRef","addonDatasetError","useAddonDataset","didScrollToCommentFromParam","pushToast","useToast","push","isTopLayer","useLayer","boundaryElement","scrollToComment","scrollToField","scrollToInlineComment","useCommentsScroll","selectedPath","setSelectedPath","useCommentsSelectedPath","isDismissed","setDismissed","telemetry","useCommentsTelemetry","upsellData","telemetryLogs","upsellTelemetryLogs","useCommentsUpsell","currentComments","loading","nextView","commentListViewChanged","handleChangeView","handleCloseInspector","bb0","id","navigator","clipboard","writeText","catch","closable","title","commentLinkCopied","handleCopyLink","id_0","comment","create","type","fieldPath","target","path","field","_id","parentCommentId","reactions","threadId","handleCreateRetry","closeDeleteDialog","open","nextPath","PathUtils","fromString","filter","c","some","_temp","handlePathSelect","nextComment","payload","origin","handleNewThreadCreate","nextComment_0","handleReply","id_1","nextComment_1","update","handleEdit","id_2","parent","find","c_0","parentComment","isParent","Boolean","replies","length","commentId","onDeleteStart","id_3","remove","err","handleDeleteConfirm","id_4","nextStatus","comment_0","handleStatusChange","id_5","reaction","react","handleReactionSelect","handleDeselectPath","Symbol","element","current","setRootRef","event","HTMLElement","hasAttribute","useClickOutsideEvent","loggedTelemetry","setLoggedTelemetry","panelViewed","panelDismissed","useEffect","commentToScrollTo","requestAnimationFrame","commentViewedFromLink","bb1","panelPrimaryClicked","panelSecondaryClicked","beforeListNode","t25","t26","t27","t28","t29","t30","t31","x","isTextSelectionComment"],"mappings":"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"}
1
+ {"version":3,"file":"CommentsInspector.js","sources":["../../src/core/comments/components/upsell/CommentsUpsellPanel.tsx","../../src/core/comments/hooks/useCommentsOnboarding.ts","../../src/core/comments/plugin/inspector/CommentsInspectorError.tsx","../../src/core/comments/plugin/inspector/CommentsInspectorHeader.tsx","../../src/core/comments/plugin/inspector/CommentsInspector.tsx"],"sourcesContent":["import {Box, Container} from '@sanity/ui'\n\nimport {type UpsellData} from '../../../studio/upsell/types'\nimport {UpsellPanel} from '../../../studio/upsell/UpsellPanel'\n\ninterface CommentsUpsellPanelProps {\n data: UpsellData\n onPrimaryClick: () => void\n onSecondaryClick: () => void\n}\n\nexport function CommentsUpsellPanel(props: CommentsUpsellPanelProps) {\n const {data, onPrimaryClick, onSecondaryClick} = props\n return (\n <Container width={1}>\n <Box marginBottom={6}>\n <UpsellPanel\n data={data}\n onPrimaryClick={onPrimaryClick}\n onSecondaryClick={onSecondaryClick}\n />\n </Box>\n </Container>\n )\n}\n","import {useContext} from 'react'\nimport {CommentsOnboardingContext} from 'sanity/_singletons'\n\nimport {type CommentsOnboardingContextValue} from '../context/onboarding/types'\n\nexport function useCommentsOnboarding(): CommentsOnboardingContextValue {\n const ctx = useContext(CommentsOnboardingContext)\n\n if (!ctx) {\n throw new Error('useCommentsOnboarding: missing context value')\n }\n\n return ctx\n}\n","import {Box, Card, Stack, Text} from '@sanity/ui'\n\nimport {useTranslation} from '../../../i18n'\nimport {commentsLocaleNamespace} from '../../i18n'\n\nexport function CommentsInspectorError({error}: {error: Error}) {\n const {t} = useTranslation(commentsLocaleNamespace)\n\n return (\n <Box padding={2}>\n <Card paddingX={2} paddingY={3} tone=\"critical\" border radius={3}>\n <Stack space={3}>\n <Text size={1} weight=\"medium\">\n {t('inspector-error.title')}\n </Text>\n <Text size={1} muted>\n {error.message}\n </Text>\n </Stack>\n </Card>\n </Box>\n )\n}\n","import {CheckmarkIcon} from '@sanity/icons/Checkmark'\nimport {ChevronDownIcon} from '@sanity/icons/ChevronDown'\nimport {CloseIcon} from '@sanity/icons/Close'\nimport {Card, Flex, Menu, Text} from '@sanity/ui'\nimport {forwardRef, useCallback} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Button, MenuButton, MenuItem} from '../../../../ui-components'\nimport {useTranslation} from '../../../i18n'\nimport {commentsLocaleNamespace} from '../../i18n'\nimport {type CommentStatus, type CommentsUIMode} from '../../types'\n\nconst Root = styled(Card)({\n position: 'relative',\n zIndex: '1',\n lineHeight: '0',\n})\n\ninterface CommentsInspectorHeaderProps {\n onClose: () => void\n onViewChange: (view: CommentStatus) => void\n view: CommentStatus\n mode: CommentsUIMode\n}\n\nexport const CommentsInspectorHeader = forwardRef(function CommentsInspectorHeader(\n props: CommentsInspectorHeaderProps,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {t} = useTranslation(commentsLocaleNamespace)\n const {onClose, onViewChange, view, mode} = props\n\n const handleSetOpenView = useCallback(() => onViewChange('open'), [onViewChange])\n const handleSetResolvedView = useCallback(() => onViewChange('resolved'), [onViewChange])\n\n return (\n <Root ref={ref}>\n <Flex padding={2}>\n <Flex align=\"center\" flex={1} gap={2} paddingY={2} padding={3}>\n <Text as=\"h1\" size={1} weight=\"medium\">\n {t('feature-name')}\n </Text>\n </Flex>\n\n <Flex flex=\"none\" padding={1} gap={2}>\n <MenuButton\n id=\"comment-status-menu-button\"\n button={\n <Button\n text={\n view === 'open'\n ? t('status-filter.status-open')\n : t('status-filter.status-resolved')\n }\n mode=\"bleed\"\n iconRight={ChevronDownIcon}\n />\n }\n menu={\n <Menu style={{width: '180px'}}>\n <MenuItem\n iconRight={view === 'open' ? CheckmarkIcon : undefined}\n onClick={handleSetOpenView}\n text={t('status-filter.status-open-full')}\n />\n <MenuItem\n iconRight={view === 'resolved' ? CheckmarkIcon : undefined}\n onClick={handleSetResolvedView}\n text={t('status-filter.status-resolved-full')}\n tooltipProps={\n mode === 'upsell'\n ? {content: t('status-filter.status-resolved-full-upsell')}\n : undefined\n }\n disabled={mode === 'upsell'}\n />\n </Menu>\n }\n popover={{placement: 'bottom-end'}}\n />\n\n <Button\n aria-label={t('close-pane-button-text-aria-label')}\n icon={CloseIcon}\n mode=\"bleed\"\n onClick={onClose}\n tooltipProps={{content: t('close-pane-button-text')}}\n />\n </Flex>\n </Flex>\n </Root>\n )\n})\n","import {Flex, Layer, useClickOutsideEvent, useLayer, useToast} from '@sanity/ui'\nimport * as PathUtils from '@sanity/util/paths'\nimport {Fragment, useCallback, useEffect, useMemo, useRef, useState} from 'react'\nimport {styled} from 'styled-components'\n\nimport {type DocumentInspectorProps} from '../../../config'\nimport {useTranslation} from '../../../i18n'\nimport {useCurrentUser} from '../../../store'\nimport {useAddonDataset} from '../../../studio/addonDataset'\nimport {\n CommentDeleteDialog,\n CommentsList,\n CommentsOnboardingPopover,\n CommentsUpsellPanel,\n} from '../../components'\nimport {type CommentsSelectedPath} from '../../context'\nimport {isTextSelectionComment} from '../../helpers'\nimport {\n useComments,\n useCommentsEnabled,\n useCommentsOnboarding,\n useCommentsScroll,\n useCommentsSelectedPath,\n useCommentsTelemetry,\n useCommentsUpsell,\n} from '../../hooks'\nimport {commentsLocaleNamespace} from '../../i18n'\nimport {\n type CommentBaseCreatePayload,\n type CommentReactionOption,\n type CommentStatus,\n type CommentsUIMode,\n type CommentUpdatePayload,\n} from '../../types'\nimport {CommentsInspectorError} from './CommentsInspectorError'\nimport {CommentsInspectorHeader} from './CommentsInspectorHeader'\n\ninterface CommentToDelete {\n commentId: string\n isParent: boolean\n}\n\nconst RootLayer = styled(Layer)`\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: hidden;\n`\n\nexport function CommentsInspector(props: DocumentInspectorProps) {\n const {enabled, mode} = useCommentsEnabled()\n\n if (!enabled) return null\n\n // We wrap the comments inspector in a Layer in order to know when the comments inspector\n // is the top layer (that is, if there is e.g. a popover open). This is used to determine\n // if we should deselect the selected path when clicking outside the comments inspector.\n return (\n <RootLayer>\n <CommentsInspectorInner {...props} mode={mode} />\n </RootLayer>\n )\n}\n\nfunction CommentsInspectorInner(\n props: DocumentInspectorProps & {\n mode: CommentsUIMode\n },\n) {\n const {t} = useTranslation(commentsLocaleNamespace)\n const {onClose, mode} = props\n const [showDeleteDialog, setShowDeleteDialog] = useState<boolean>(false)\n const [commentToDelete, setCommentToDelete] = useState<CommentToDelete | null>(null)\n const [deleteLoading, setDeleteLoading] = useState<boolean>(false)\n const [deleteError, setDeleteError] = useState<Error | null>(null)\n\n const rootRef = useRef<HTMLDivElement | null>(null)\n const [rootElement, setRootElement] = useState<HTMLDivElement | null>(null)\n\n const currentUser = useCurrentUser()\n const {\n comments,\n getComment,\n isCreatingDataset,\n mentionOptions,\n setStatus,\n status,\n operation,\n selectedCommentId,\n getCommentLink,\n onClearSelectedComment,\n onPathOpen,\n } = useComments()\n const commentIdParamRef = useRef<string | undefined>(selectedCommentId)\n const {error: addonDatasetError} = useAddonDataset()\n const didScrollToCommentFromParam = useRef<boolean>(false)\n\n const pushToast = useToast().push\n const {isTopLayer} = useLayer()\n\n const {scrollToComment, scrollToField, scrollToInlineComment} = useCommentsScroll({\n boundaryElement: rootElement,\n })\n const {selectedPath, setSelectedPath} = useCommentsSelectedPath()\n const {isDismissed, setDismissed} = useCommentsOnboarding()\n const telemetry = useCommentsTelemetry()\n\n const {upsellData, telemetryLogs: upsellTelemetryLogs} = useCommentsUpsell()\n\n const currentComments = useMemo(() => comments.data[status], [comments, status])\n\n const {loading} = comments\n\n const handleChangeView = useCallback(\n (nextView: CommentStatus) => {\n setStatus(nextView)\n setSelectedPath(null)\n\n telemetry.commentListViewChanged(nextView)\n },\n [setSelectedPath, setStatus, telemetry],\n )\n\n const handleCloseInspector = useCallback(() => {\n onClose()\n setSelectedPath(null)\n }, [onClose, setSelectedPath])\n\n const handleCopyLink = useMemo(() => {\n if (!getCommentLink) return undefined\n\n const copyLink = (id: string) => {\n navigator.clipboard.writeText(getCommentLink(id)).catch(() => {\n pushToast({\n closable: true,\n status: 'error',\n title: t('copy-link-error-message'),\n })\n })\n\n telemetry.commentLinkCopied()\n }\n\n return copyLink\n }, [getCommentLink, pushToast, t, telemetry])\n\n const handleCreateRetry = useCallback(\n (id: string) => {\n const comment = getComment(id)\n if (!comment) return\n\n void operation.create({\n type: 'field',\n fieldPath: comment.target.path?.field || '',\n id: comment._id,\n message: comment.message,\n parentCommentId: comment.parentCommentId,\n reactions: comment.reactions || [],\n status: comment.status,\n threadId: comment.threadId,\n })\n },\n [getComment, operation],\n )\n\n const closeDeleteDialog = useCallback(() => {\n if (deleteLoading) return\n setShowDeleteDialog(false)\n setCommentToDelete(null)\n }, [deleteLoading])\n\n const handlePathSelect = useCallback(\n (nextPath: CommentsSelectedPath) => {\n setSelectedPath(nextPath)\n\n if (nextPath?.fieldPath) {\n const path = PathUtils.fromString(nextPath.fieldPath)\n onPathOpen?.(path)\n\n scrollToField(nextPath.fieldPath)\n\n const isInlineComment = comments.data.open\n .filter((c) => c.threadId === nextPath?.threadId)\n .some((x) => isTextSelectionComment(x.parentComment))\n\n if (isInlineComment && nextPath.threadId) {\n scrollToInlineComment(nextPath.threadId)\n }\n }\n },\n [comments.data.open, onPathOpen, scrollToField, scrollToInlineComment, setSelectedPath],\n )\n\n const handleNewThreadCreate = useCallback(\n (nextComment: CommentBaseCreatePayload) => {\n const fieldPath = nextComment?.payload?.fieldPath || ''\n\n void operation.create({\n type: 'field',\n fieldPath,\n message: nextComment.message,\n parentCommentId: nextComment.parentCommentId,\n reactions: nextComment.reactions,\n status: nextComment.status,\n threadId: nextComment.threadId,\n })\n\n setSelectedPath({\n fieldPath,\n origin: 'inspector',\n threadId: nextComment.threadId,\n })\n },\n [operation, setSelectedPath],\n )\n\n const handleReply = useCallback(\n (nextComment: CommentBaseCreatePayload) => {\n void operation.create({\n ...nextComment,\n type: 'field',\n fieldPath: nextComment?.payload?.fieldPath || '',\n })\n },\n [operation],\n )\n\n const handleEdit = useCallback(\n (id: string, nextComment: CommentUpdatePayload) => {\n void operation.update(id, nextComment)\n },\n [operation],\n )\n\n const onDeleteStart = useCallback(\n (id: string) => {\n const parent = currentComments.find((c) => c.parentComment?._id === id)\n const isParent = Boolean(parent && parent?.replies?.length > 0)\n\n setShowDeleteDialog(true)\n setCommentToDelete({\n commentId: id,\n isParent,\n })\n },\n\n [currentComments],\n )\n\n const handleDeleteConfirm = useCallback(\n async (id: string) => {\n try {\n setDeleteLoading(true)\n await operation.remove(id)\n closeDeleteDialog()\n } catch (err) {\n setDeleteError(err)\n }\n setDeleteLoading(false)\n },\n [closeDeleteDialog, operation],\n )\n\n const handleStatusChange = useCallback(\n (id: string, nextStatus: CommentStatus) => {\n void operation.update(id, {\n status: nextStatus,\n })\n\n // If the comment is being opened, we want to change to the \"open\" view\n // and scroll to the comment\n if (nextStatus === 'open') {\n setStatus('open')\n\n const comment = getComment(id)\n\n if (!comment) return\n\n setSelectedPath({\n fieldPath: comment.target.path?.field || null,\n origin: 'inspector',\n threadId: comment.threadId || null,\n })\n\n scrollToComment(id)\n }\n },\n [getComment, operation, scrollToComment, setSelectedPath, setStatus],\n )\n\n const handleReactionSelect = useCallback(\n (id: string, reaction: CommentReactionOption) => {\n void operation.react(id, reaction)\n },\n [operation],\n )\n\n const handleDeselectPath = useCallback(() => {\n // Clear the selected path when:\n // - Clicking outside the inspector when it's the top layer\n // - The target is not a slate editor string. This is needed because we do not want to\n // frequently deselect the selected path when clicking inside the editor.\n if (selectedPath && isTopLayer) {\n setSelectedPath(null)\n }\n }, [isTopLayer, selectedPath, setSelectedPath])\n\n const setRootRef = useCallback((element: HTMLDivElement | null) => {\n rootRef.current = element\n setRootElement(element)\n }, [])\n\n useClickOutsideEvent(\n (event) => {\n // Clear the selected path when clicking outside the comments inspector.\n // We do this only when the comments inspector is the top layer.\n const isPTETarget =\n event.target instanceof HTMLElement && event.target?.hasAttribute('data-pt-text')\n\n if (!isPTETarget) {\n handleDeselectPath()\n }\n },\n () => [rootRef.current],\n )\n\n const [loggedTelemetry, setLoggedTelemetry] = useState(false)\n useEffect(() => {\n if (loggedTelemetry || mode !== 'upsell') return undefined\n // oxlint-disable-next-line react/react-compiler\n setLoggedTelemetry(true)\n if (selectedPath?.origin === 'form') {\n upsellTelemetryLogs.panelViewed('field_action')\n } else if (commentIdParamRef.current) {\n upsellTelemetryLogs.panelViewed('link')\n } else {\n upsellTelemetryLogs.panelViewed('document_action')\n }\n return () => {\n upsellTelemetryLogs.panelDismissed()\n }\n }, [loggedTelemetry, mode, selectedPath?.origin, upsellTelemetryLogs])\n\n // Handle scroll to comment from URL param\n useEffect(() => {\n // Make sure that the comment exists before we try to scroll to it.\n // We can't solely rely on the comment id from the url since the comment might not be loaded yet.\n const commentToScrollTo = getComment(commentIdParamRef.current || '')\n\n if (!loading && commentToScrollTo && !didScrollToCommentFromParam.current) {\n // Make sure we have the correct status set before we scroll to the comment\n setStatus(commentToScrollTo.status || 'open')\n\n handlePathSelect({\n fieldPath: commentToScrollTo.target.path?.field || null,\n origin: 'url',\n threadId: commentToScrollTo.threadId || null,\n })\n\n // Defer the comment scroll to prevent React batching from overwriting the field scroll\n requestAnimationFrame(() => {\n scrollToComment(commentToScrollTo._id)\n })\n\n didScrollToCommentFromParam.current = true\n commentIdParamRef.current = undefined\n\n onClearSelectedComment?.()\n\n telemetry.commentViewedFromLink()\n }\n }, [\n getComment,\n handlePathSelect,\n loading,\n onClearSelectedComment,\n scrollToComment,\n setStatus,\n telemetry,\n ])\n\n const beforeListNode = useMemo(() => {\n if (mode === 'upsell' && upsellData) {\n return (\n <CommentsUpsellPanel\n data={upsellData}\n onPrimaryClick={upsellTelemetryLogs.panelPrimaryClicked}\n onSecondaryClick={upsellTelemetryLogs.panelSecondaryClicked}\n />\n )\n }\n\n return null\n }, [\n mode,\n upsellTelemetryLogs.panelPrimaryClicked,\n upsellTelemetryLogs.panelSecondaryClicked,\n upsellData,\n ])\n\n return (\n <Fragment>\n {commentToDelete && showDeleteDialog && (\n <CommentDeleteDialog\n {...commentToDelete}\n error={deleteError}\n loading={deleteLoading}\n onClose={closeDeleteDialog}\n onConfirm={handleDeleteConfirm}\n />\n )}\n\n <Flex\n direction=\"column\"\n flex={1}\n height=\"fill\"\n onClick={handleDeselectPath}\n overflow=\"hidden\"\n ref={setRootRef}\n >\n <CommentsOnboardingPopover\n onDismiss={setDismissed}\n open={!isDismissed}\n placement=\"left-start\"\n >\n <CommentsInspectorHeader\n onClose={handleCloseInspector}\n onViewChange={handleChangeView}\n view={status}\n mode={mode}\n />\n </CommentsOnboardingPopover>\n {addonDatasetError && <CommentsInspectorError error={addonDatasetError} />}\n {currentUser && (\n <CommentsList\n beforeListNode={beforeListNode}\n comments={currentComments}\n currentUser={currentUser}\n error={comments.error}\n loading={loading}\n mentionOptions={mentionOptions}\n mode={mode}\n onCopyLink={handleCopyLink}\n onCreateRetry={handleCreateRetry}\n onDelete={onDeleteStart}\n onEdit={handleEdit}\n onNewThreadCreate={handleNewThreadCreate}\n onPathSelect={handlePathSelect}\n onReactionSelect={handleReactionSelect}\n onReply={handleReply}\n onStatusChange={handleStatusChange}\n readOnly={isCreatingDataset}\n selectedPath={selectedPath}\n status={status}\n />\n )}\n </Flex>\n </Fragment>\n )\n}\n"],"names":["CommentsUpsellPanel","props","$","_c","data","onPrimaryClick","onSecondaryClick","t0","useCommentsOnboarding","ctx","useContext","CommentsOnboardingContext","Error","CommentsInspectorError","error","t","useTranslation","commentsLocaleNamespace","t1","t2","t3","message","t4","Root","styled","Card","withConfig","displayName","componentId","position","zIndex","lineHeight","CommentsInspectorHeader","forwardRef","ref","onClose","onViewChange","view","mode","handleSetOpenView","handleSetResolvedView","t5","ChevronDownIcon","t6","for","width","t7","CheckmarkIcon","undefined","t8","t9","t10","t11","t12","content","t13","t14","t15","t16","placement","t17","t18","t19","t20","t21","CloseIcon","t22","t23","t24","RootLayer","Layer","CommentsInspector","enabled","useCommentsEnabled","CommentsInspectorInner","showDeleteDialog","setShowDeleteDialog","useState","commentToDelete","setCommentToDelete","deleteLoading","setDeleteLoading","deleteError","setDeleteError","rootRef","useRef","rootElement","setRootElement","currentUser","useCurrentUser","comments","getComment","isCreatingDataset","mentionOptions","setStatus","status","operation","selectedCommentId","getCommentLink","onClearSelectedComment","onPathOpen","useComments","commentIdParamRef","addonDatasetError","useAddonDataset","didScrollToCommentFromParam","pushToast","useToast","push","isTopLayer","useLayer","boundaryElement","scrollToComment","scrollToField","scrollToInlineComment","useCommentsScroll","selectedPath","setSelectedPath","useCommentsSelectedPath","isDismissed","setDismissed","telemetry","useCommentsTelemetry","upsellData","telemetryLogs","upsellTelemetryLogs","useCommentsUpsell","currentComments","loading","nextView","commentListViewChanged","handleChangeView","handleCloseInspector","bb0","id","navigator","clipboard","writeText","catch","closable","title","commentLinkCopied","handleCopyLink","id_0","comment","create","type","fieldPath","target","path","field","_id","parentCommentId","reactions","threadId","handleCreateRetry","closeDeleteDialog","open","nextPath","PathUtils","fromString","filter","c","some","_temp","handlePathSelect","nextComment","payload","origin","handleNewThreadCreate","nextComment_0","handleReply","id_1","nextComment_1","update","handleEdit","id_2","parent","find","c_0","parentComment","isParent","Boolean","replies","length","commentId","onDeleteStart","id_3","remove","err","handleDeleteConfirm","id_4","nextStatus","comment_0","handleStatusChange","id_5","reaction","react","handleReactionSelect","handleDeselectPath","Symbol","element","current","setRootRef","event","HTMLElement","hasAttribute","useClickOutsideEvent","loggedTelemetry","setLoggedTelemetry","panelViewed","panelDismissed","useEffect","commentToScrollTo","requestAnimationFrame","commentViewedFromLink","bb1","panelPrimaryClicked","panelSecondaryClicked","beforeListNode","t25","t26","t27","t28","t29","t30","t31","x","isTextSelectionComment"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWO,SAAAA,oBAAAC,OAAA;AAAA,QAAAC,IAAAC,EAAA,CAAA,GACL;AAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,EAAAA,IAAiDL;AAAK,MAAAM;AAAA,SAAAL,EAAA,CAAA,MAAAE,QAAAF,SAAAG,kBAAAH,EAAA,CAAA,MAAAI,oBAEpDC,yBAAC,aAAiB,UAChB,8BAAC,KAAA,EAAkB,cAAA,GACjB,UAAA,oBAAC,aAAA,EACOH,MACUC,gBACEC,iBAAAA,CAAgB,GAEtC,GACF,GAAYJ,OAAAE,MAAAF,OAAAG,gBAAAH,OAAAI,kBAAAJ,OAAAK,MAAAA,KAAAL,EAAA,CAAA,GARZK;AAQY;ACjBT,SAAAC,wBAAA;AACL,QAAAC,MAAYC,WAAWC,yBAAyB;AAEhD,MAAI,CAACF;AACH,UAAM,IAAIG,MAAM,8CAA8C;AAC/D,SAEMH;AAAG;ACPL,SAAAI,uBAAAN,IAAA;AAAA,QAAAL,IAAAC,EAAA,CAAA,GAAgC;AAAA,IAAAW;AAAAA,EAAAA,IAAAP,IACrC;AAAA,IAAAQ;AAAAA,EAAAA,IAAYC,eAAeC,uBAAuB;AAAC,MAAAC;AAAAhB,WAAAa,KAOxCG,KAAAH,EAAE,uBAAuB,GAACb,OAAAa,GAAAb,OAAAgB,MAAAA,KAAAhB,EAAA,CAAA;AAAA,MAAAiB;AAAAjB,WAAAgB,MAD7BC,yBAAC,MAAA,EAAW,SAAU,QAAA,UACnBD,cACH,GAAOhB,OAAAgB,IAAAhB,OAAAiB,MAAAA,KAAAjB,EAAA,CAAA;AAAA,MAAAkB;AAAAlB,IAAA,CAAA,MAAAY,MAAAO,WACPD,yBAAC,MAAA,EAAW,MAAA,GAAG,WACZN,UAAAA,MAAKO,SACR,GAAOnB,EAAA,CAAA,IAAAY,MAAAO,SAAAnB,OAAAkB,MAAAA,KAAAlB,EAAA,CAAA;AAAA,MAAAoB;AAAA,SAAApB,EAAA,CAAA,MAAAiB,MAAAjB,SAAAkB,MARbE,KAAA,oBAAC,KAAA,EAAa,YACZ,UAAA,oBAAC,MAAA,EAAe,aAAa,UAAA,GAAQ,MAAA,YAAW,QAAA,IAAe,QAAA,GAC7D,UAAA,qBAAC,OAAA,EAAa,OAAA,GACZH,UAAAA;AAAAA,IAAAA;AAAAA,IAGAC;AAAAA,EAAAA,EAAAA,CAGF,GACF,GACF,GAAMlB,OAAAiB,IAAAjB,OAAAkB,IAAAlB,OAAAoB,MAAAA,KAAApB,EAAA,CAAA,GAXNoB;AAWM;ACRV,MAAMC,OAAOC,uBAAOC,IAAI,EAACC,WAAA;AAAA,EAAAC,aAAA;AAAA,EAAAC,aAAA;AAAA,CAAA,EAAC;AAAA,EACxBC,UAAU;AAAA,EACVC,QAAQ;AAAA,EACRC,YAAY;AACd,CAAC,GASYC,0BAA0BC,WAAW,SAAAhC,OAAAiC,KAAA;AAAA,QAAAhC,IAAAC,EAAA,EAAA,GAIhD;AAAA,IAAAY;AAAAA,EAAAA,IAAYC,eAAeC,uBAAuB,GAClD;AAAA,IAAAkB;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,EAAAA,IAA4CrC;AAAK,MAAAM;AAAAL,WAAAkC,gBAEX7B,KAAAA,MAAM6B,aAAa,MAAM,GAAClC,OAAAkC,cAAAlC,OAAAK,MAAAA,KAAAL,EAAA,CAAA;AAAhE,QAAAqC,oBAA0BhC;AAAuD,MAAAW;AAAAhB,WAAAkC,gBACvClB,KAAAA,MAAMkB,aAAa,UAAU,GAAClC,OAAAkC,cAAAlC,OAAAgB,MAAAA,KAAAhB,EAAA,CAAA;AAAxE,QAAAsC,wBAA8BtB;AAA2D,MAAAC;AAAAjB,WAAAa,KAO9EI,KAAAJ,EAAE,cAAc,GAACb,OAAAa,GAAAb,OAAAiB,MAAAA,KAAAjB,EAAA,CAAA;AAAA,MAAAkB;AAAAlB,WAAAiB,MAFtBC,yBAAC,MAAA,EAAW,OAAA,UAAe,MAAA,GAAQ,QAAa,UAAA,GAAY,SAAA,GAC1D,UAAA,oBAAC,MAAA,EAAQ,IAAA,MAAW,SAAU,QAAA,UAC3BD,UAAAA,GAAAA,CACH,GACF,GAAOjB,OAAAiB,IAAAjB,OAAAkB,MAAAA,KAAAlB,EAAA,CAAA;AAAA,MAAAoB;AAAApB,IAAA,CAAA,MAAAa,KAAAb,SAAAmC,QAQGf,KACIP,EADJsB,SAAS,SACH,8BACA,+BAA+B,GAACnC,OAAAa,GAAAb,OAAAmC,MAAAnC,QAAAoB,MAAAA,KAAApB,EAAA,EAAA;AAAA,MAAAuC;AAAAvC,YAAAoB,MAJ1CmB,yBAAC,QAAA,EAEG,MAAAnB,IAIG,MAAA,SACMoB,WAAAA,iBAAe,GAC1BxC,QAAAoB,IAAApB,QAAAuC,MAAAA,KAAAvC,EAAA,EAAA;AAAA,MAAAyC;AAAAzC,IAAA,EAAA,6BAAA0C,IAAA,2BAAA,KAGWD,KAAA;AAAA,IAAAE,OAAQ;AAAA,EAAA,GAAQ3C,QAAAyC,MAAAA,KAAAzC,EAAA,EAAA;AAEd,QAAA4C,KAAAT,SAAS,SAATU,gBAAAC;AAA2C,MAAAC;AAAA/C,YAAAa,KAEhDkC,KAAAlC,EAAE,gCAAgC,GAACb,QAAAa,GAAAb,QAAA+C,MAAAA,KAAA/C,EAAA,EAAA;AAAA,MAAAgD;AAAAhD,IAAA,EAAA,MAAAqC,qBAAArC,UAAA4C,MAAA5C,EAAA,EAAA,MAAA+C,MAH3CC,yBAAC,YACY,WAAAJ,IACFP,SAAAA,mBACH,MAAAU,IAAmC,GACzC/C,QAAAqC,mBAAArC,QAAA4C,IAAA5C,QAAA+C,IAAA/C,QAAAgD,MAAAA,KAAAhD,EAAA,EAAA;AAEW,QAAAiD,MAAAd,SAAS,aAATU,gBAAAC;AAA+C,MAAAI;AAAAlD,YAAAa,KAEpDqC,MAAArC,EAAE,oCAAoC,GAACb,QAAAa,GAAAb,QAAAkD,OAAAA,MAAAlD,EAAA,EAAA;AAAA,MAAAmD;AAAAnD,IAAA,EAAA,MAAAoC,QAAApC,UAAAa,KAE3CsC,MAAAf,SAAS,WAAT;AAAA,IAAAgB,SACcvC,EAAE,2CAA2C;AAAA,EAAA,IAD3DiC,QAEa9C,QAAAoC,MAAApC,QAAAa,GAAAb,QAAAmD,OAAAA,MAAAnD,EAAA,EAAA;AAEL,QAAAqD,MAAAjB,SAAS;AAAQ,MAAAkB;AAAAtD,IAAA,EAAA,MAAAsC,yBAAAtC,EAAA,EAAA,MAAAiD,OAAAjD,EAAA,EAAA,MAAAkD,OAAAlD,EAAA,EAAA,MAAAmD,OAAAnD,UAAAqD,OAT7BC,MAAA,oBAAC,UAAA,EACY,WAAAL,KACFX,SAAAA,uBACH,MAAAY,KAEJ,cAAAC,KAIQ,UAAAE,IAAAA,CAAiB,GAC3BrD,QAAAsC,uBAAAtC,QAAAiD,KAAAjD,QAAAkD,KAAAlD,QAAAmD,KAAAnD,QAAAqD,KAAArD,QAAAsD,OAAAA,MAAAtD,EAAA,EAAA;AAAA,MAAAuD;AAAAvD,IAAA,EAAA,MAAAsD,OAAAtD,UAAAgD,MAhBJO,2BAAC,MAAA,EAAY,OAAAd,IACXO,UAAAA;AAAAA,IAAAA;AAAAA,IAKAM;AAAAA,EAAAA,EAAAA,CAWF,GAAOtD,QAAAsD,KAAAtD,QAAAgD,IAAAhD,QAAAuD,OAAAA,MAAAvD,EAAA,EAAA;AAAA,MAAAwD;AAAAxD,IAAA,EAAA,6BAAA0C,IAAA,2BAAA,KAEAc,MAAA;AAAA,IAAAC,WAAY;AAAA,EAAA,GAAazD,QAAAwD,OAAAA,MAAAxD,EAAA,EAAA;AAAA,MAAA0D;AAAA1D,IAAA,EAAA,MAAAuD,OAAAvD,UAAAuC,MAjCpCmB,0BAAC,YAAA,EACI,IAAA,8BAED,QAAAnB,IAWA,MAAAgB,KAmBO,SAAAC,IAAAA,CAAyB,GAClCxD,QAAAuD,KAAAvD,QAAAuC,IAAAvC,QAAA0D,OAAAA,MAAA1D,EAAA,EAAA;AAAA,MAAA2D;AAAA3D,YAAAa,KAGY8C,MAAA9C,EAAE,mCAAmC,GAACb,QAAAa,GAAAb,QAAA2D,OAAAA,MAAA3D,EAAA,EAAA;AAAA,MAAA4D;AAAA5D,YAAAa,KAI1B+C,MAAA/C,EAAE,wBAAwB,GAACb,QAAAa,GAAAb,QAAA4D,OAAAA,MAAA5D,EAAA,EAAA;AAAA,MAAA6D;AAAA7D,YAAA4D,OAArCC,MAAA;AAAA,IAAAT,SAAUQ;AAAAA,EAAAA,GAA4B5D,QAAA4D,KAAA5D,QAAA6D,OAAAA,MAAA7D,EAAA,EAAA;AAAA,MAAA8D;AAAA9D,IAAA,EAAA,MAAAiC,WAAAjC,UAAA2D,OAAA3D,EAAA,EAAA,MAAA6D,OALtDC,0BAAC,QAAA,EACa,cAAAH,KACNI,MAAAA,WACD,MAAA,SACI9B,SAAAA,SACK,cAAA4B,IAAAA,CAAsC,GACpD7D,QAAAiC,SAAAjC,QAAA2D,KAAA3D,QAAA6D,KAAA7D,QAAA8D,OAAAA,MAAA9D,EAAA,EAAA;AAAA,MAAAgE;AAAAhE,IAAA,EAAA,MAAA0D,OAAA1D,UAAA8D,OA3CJE,MAAA,qBAAC,QAAU,MAAA,QAAgB,SAAA,GAAQ,KAAA,GACjCN,UAAAA;AAAAA,IAAAA;AAAAA,IAoCAI;AAAAA,EAAAA,EAAAA,CAOF,GAAO9D,QAAA0D,KAAA1D,QAAA8D,KAAA9D,QAAAgE,OAAAA,MAAAhE,EAAA,EAAA;AAAA,MAAAiE;AAAAjE,IAAA,EAAA,MAAAgE,OAAAhE,UAAAkB,MAnDT+C,MAAA,qBAAC,MAAA,EAAc,SAAA,GACb/C,UAAAA;AAAAA,IAAAA;AAAAA,IAMA8C;AAAAA,EAAAA,EAAAA,CA6CF,GAAOhE,QAAAgE,KAAAhE,QAAAkB,IAAAlB,QAAAiE,OAAAA,MAAAjE,EAAA,EAAA;AAAA,MAAAkE;AAAA,SAAAlE,EAAA,EAAA,MAAAgC,OAAAhC,UAAAiE,OArDTC,MAAA,oBAAC,MAAA,EAAUlC,KACTiC,UAAAA,IAAAA,CAqDF,GAAOjE,QAAAgC,KAAAhC,QAAAiE,KAAAjE,QAAAkE,OAAAA,MAAAlE,EAAA,EAAA,GAtDPkE;AAsDO,CAEV,GClDKC,YAAY7C,OAAO8C,KAAK,EAAC5C,WAAA;AAAA,EAAAC,aAAA;AAAA,EAAAC,aAAA;AAAA,CAAA;AAOxB,SAAA2C,kBAAAtE,OAAA;AAAA,QAAAC,IAAAC,EAAA,CAAA,GACL;AAAA,IAAAqE;AAAAA,IAAAlC;AAAAA,EAAAA,IAAwBmC,mBAAAA;AAExB,MAAI,CAACD;AAAO,WAAS;AAAI,MAAAjE;AAAA,SAAAL,EAAA,CAAA,MAAAoC,QAAApC,SAAAD,SAMvBM,KAAA,oBAAC,WAAA,EACC,UAAA,oBAAC,wBAAA,EAAsB,GAAKN,OAAaqC,KAAAA,CAAI,EAAA,CAC/C,GAAYpC,OAAAoC,MAAApC,OAAAD,OAAAC,OAAAK,MAAAA,KAAAL,EAAA,CAAA,GAFZK;AAEY;AAIhB,SAAAmE,uBAAAzE,OAAA;AAAA,QAAAC,IAAAC,EAAA,GAAA,GAKE;AAAA,IAAAY;AAAAA,EAAAA,IAAYC,eAAeC,uBAAuB,GAClD;AAAA,IAAAkB;AAAAA,IAAAG;AAAAA,EAAAA,IAAwBrC,OACxB,CAAA0E,kBAAAC,mBAAA,IAAgDC,SAAkB,EAAK,GACvE,CAAAC,iBAAAC,kBAAA,IAA8CF,SAAiC,IAAI,GACnF,CAAAG,eAAAC,gBAAA,IAA0CJ,SAAkB,EAAK,GACjE,CAAAK,aAAAC,cAAA,IAAsCN,SAAuB,IAAI,GAEjEO,UAAgBC,OAA8B,IAAI,GAClD,CAAAC,aAAAC,cAAA,IAAsCV,SAAgC,IAAI,GAE1EW,cAAoBC,kBACpB;AAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,EAAAA,IAYIC,YAAAA,GACJC,oBAA0BjB,OAA2BY,iBAAiB,GACtE;AAAA,IAAAnF,OAAAyF;AAAAA,EAAAA,IAAmCC,gBAAAA,GACnCC,8BAAoCpB,OAAgB,EAAK,GAEzDqB,YAAkBC,SAAAA,EAAUC,MAC5B;AAAA,IAAAC;AAAAA,EAAAA,IAAqBC,SAAAA;AAAU,MAAAvG;AAAAL,WAAAoF,eAEmD/E,KAAA;AAAA,IAAAwG,iBAC/DzB;AAAAA,EAAAA,GAClBpF,OAAAoF,aAAApF,OAAAK,MAAAA,KAAAL,EAAA,CAAA;AAFD,QAAA;AAAA,IAAA8G;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,EAAAA,IAAgEC,kBAAkB5G,EAEjF,GACD;AAAA,IAAA6G;AAAAA,IAAAC;AAAAA,EAAAA,IAAwCC,2BACxC;AAAA,IAAAC;AAAAA,IAAAC;AAAAA,EAAAA,IAAoChH,sBAAAA,GACpCiH,YAAkBC,wBAElB;AAAA,IAAAC;AAAAA,IAAAC,eAAAC;AAAAA,EAAAA,IAAyDC,kBAAAA,GAEzDC,kBAAsCrC,SAAQtF,KAAM2F,MAAM,GAE1D;AAAA,IAAAiC;AAAAA,EAAAA,IAAkBtC;AAAQ,MAAAxE;AAAAhB,IAAA,CAAA,MAAAmH,mBAAAnH,SAAA4F,aAAA5F,EAAA,CAAA,MAAAuH,aAGxBvG,KAAA+G,CAAAA,aAAA;AACEnC,cAAUmC,QAAQ,GAClBZ,gBAAgB,IAAI,GAEpBI,UAASS,uBAAwBD,QAAQ;AAAA,EAAC,GAC3C/H,OAAAmH,iBAAAnH,OAAA4F,WAAA5F,OAAAuH,WAAAvH,OAAAgB,MAAAA,KAAAhB,EAAA,CAAA;AANH,QAAAiI,mBAAyBjH;AAQxB,MAAAC;AAAAjB,IAAA,CAAA,MAAAiC,WAAAjC,SAAAmH,mBAEwClG,KAAAA,MAAA;AACvCgB,YAAAA,GACAkF,gBAAgB,IAAI;AAAA,EAAC,GACtBnH,OAAAiC,SAAAjC,OAAAmH,iBAAAnH,OAAAiB,MAAAA,KAAAjB,EAAA,CAAA;AAHD,QAAAkI,uBAA6BjH;AAGC,MAAAC;AAAAiH,OAAA;AAG5B,QAAI,CAACnC,gBAAc;AAAE9E,WAAO4B;AAAP,YAAAqF;AAAAA,IAAgB;AAAA,QAAA/G;AAAApB,MAAA,CAAA,MAAAgG,kBAAAhG,EAAA,EAAA,MAAAwG,aAAAxG,EAAA,EAAA,MAAAa,KAAAb,UAAAuH,aAEpBnG,MAAAgH,CAAAA,OAAA;AACfC,gBAASC,UAAUC,UAAWvC,eAAeoC,EAAE,CAAC,EAACI,MAAO,MAAA;AACtDhC,kBAAU;AAAA,UAAAiC,UACE;AAAA,UAAI5C,QACN;AAAA,UAAO6C,OACR7H,EAAE,yBAAyB;AAAA,QAAA,CACnC;AAAA,MAAC,CACH,GAED0G,UAASoB,kBAAAA;AAAAA,IAAoB,GAC9B3I,OAAAgG,gBAAAhG,QAAAwG,WAAAxG,QAAAa,GAAAb,QAAAuH,WAAAvH,QAAAoB,OAAAA,MAAApB,EAAA,EAAA,GAEDkB,KAZiBE;AAAAA,EAYF;AAfjB,QAAAwH,iBAAuB1H;AAgBsB,MAAAE;AAAApB,IAAA,EAAA,MAAAyF,cAAAzF,UAAA8F,aAG3C1E,KAAAyH,CAAAA,SAAA;AACE,UAAAC,UAAgBrD,WAAW2C,IAAE;AACxBU,eAEAhD,UAASiD,OAAQ;AAAA,MAAAC,MACd;AAAA,MAAOC,WACFH,QAAOI,OAAOC,MAAYC,SAA1B;AAAA,MAAgChB,IACvCU,QAAOO;AAAAA,MAAIlI,SACN2H,QAAO3H;AAAAA,MAAQmI,iBACPR,QAAOQ;AAAAA,MAAgBC,WAC7BT,QAAOS,aAAP,CAAA;AAAA,MAAuB1D,QAC1BiD,QAAOjD;AAAAA,MAAO2D,UACZV,QAAOU;AAAAA,IAAAA,CAClB;AAAA,EAAC,GACHxJ,QAAAyF,YAAAzF,QAAA8F,WAAA9F,QAAAoB,MAAAA,KAAApB,EAAA,EAAA;AAfH,QAAAyJ,oBAA0BrI;AAiBzB,MAAAmB;AAAAvC,YAAA8E,iBAEqCvC,KAAAA,MAAA;AAChCuC,sBACJJ,oBAAoB,EAAK,GACzBG,mBAAmB,IAAI;AAAA,EAAC,GACzB7E,QAAA8E,eAAA9E,QAAAuC,MAAAA,KAAAvC,EAAA,EAAA;AAJD,QAAA0J,oBAA0BnH;AAIP,MAAAE;AAAAzC,YAAAwF,SAAAtF,KAAAyJ,QAAA3J,EAAA,EAAA,MAAAkG,cAAAlG,EAAA,EAAA,MAAA+G,iBAAA/G,UAAAgH,yBAAAhH,EAAA,EAAA,MAAAmH,mBAGjB1E,KAAAmH,CAAAA,aAAA;AAGE,QAFAzC,gBAAgByC,QAAQ,GAEpBA,UAAQX,WAAW;AACrB,YAAAE,OAAaU,UAASC,WAAYF,SAAQX,SAAU;AACpD/C,mBAAaiD,IAAI,GAEjBpC,cAAc6C,SAAQX,SAAU,GAERzD,SAAQtF,KAAKyJ,KAAKI,OAChCC,CAAAA,OAAOA,GAACR,aAAcI,UAAQJ,QAAU,EAACS,KAC3CC,KAA8C,KAE/BN,SAAQJ,YAC7BxC,sBAAsB4C,SAAQJ,QAAS;AAAA,IACxC;AAAA,EACF,GACFxJ,EAAA,EAAA,IAAAwF,SAAAtF,KAAAyJ,MAAA3J,QAAAkG,YAAAlG,QAAA+G,eAAA/G,QAAAgH,uBAAAhH,QAAAmH,iBAAAnH,QAAAyC,MAAAA,KAAAzC,EAAA,EAAA;AAlBH,QAAAmK,mBAAyB1H;AAoBxB,MAAAG;AAAA5C,IAAA,EAAA,MAAA8F,aAAA9F,UAAAmH,mBAGCvE,KAAAwH,CAAAA,gBAAA;AACE,UAAAnB,YAAkBmB,aAAWC,SAAoBpB,aAA/B;AAEbnD,cAASiD,OAAQ;AAAA,MAAAC,MACd;AAAA,MAAOC;AAAAA,MAAA9H,SAEJiJ,YAAWjJ;AAAAA,MAAQmI,iBACXc,YAAWd;AAAAA,MAAgBC,WACjCa,YAAWb;AAAAA,MAAU1D,QACxBuE,YAAWvE;AAAAA,MAAO2D,UAChBY,YAAWZ;AAAAA,IAAAA,CACtB,GAEDrC,gBAAgB;AAAA,MAAA8B;AAAAA,MAAAqB,QAEN;AAAA,MAAWd,UACTY,YAAWZ;AAAAA,IAAAA,CACtB;AAAA,EAAC,GACHxJ,QAAA8F,WAAA9F,QAAAmH,iBAAAnH,QAAA4C,MAAAA,KAAA5C,EAAA,EAAA;AAnBH,QAAAuK,wBAA8B3H;AAqB7B,MAAAG;AAAA/C,YAAA8F,aAGC/C,KAAAyH,CAAAA,kBAAA;AACO1E,cAASiD,OAAQ;AAAA,MAAA,GACjBqB;AAAAA,MAAWpB,MACR;AAAA,MAAOC,WACFmB,eAAWC,SAAoBpB,aAA/B;AAAA,IAAA,CACZ;AAAA,EAAC,GACHjJ,QAAA8F,WAAA9F,QAAA+C,MAAAA,KAAA/C,EAAA,EAAA;AAPH,QAAAyK,cAAoB1H;AASnB,MAAAC;AAAAhD,YAAA8F,aAGC9C,KAAAA,CAAA0H,MAAAC,kBAAA;AACO7E,cAAS8E,OAAQxC,MAAIgC,aAAW;AAAA,EAAC,GACvCpK,QAAA8F,WAAA9F,QAAAgD,MAAAA,KAAAhD,EAAA,EAAA;AAHH,QAAA6K,aAAmB7H;AAKlB,MAAAC;AAAAjD,YAAA6H,mBAGC5E,MAAA6H,CAAAA,SAAA;AACE,UAAAC,SAAelD,gBAAemD,KAAMC,CAAAA,QAAOjB,IAACkB,eAAmB7B,QAAKjB,IAAE,GACtE+C,WAAiBC,CAAAA,EAAQL,UAAUA,QAAMM,SAAiBC,SAAG;AAE7D5G,wBAAoB,EAAI,GACxBG,mBAAmB;AAAA,MAAA0G,WACNnD;AAAAA,MAAE+C;AAAAA,IAAAA,CAEd;AAAA,EAAC,GACHnL,QAAA6H,iBAAA7H,QAAAiD,OAAAA,MAAAjD,EAAA,EAAA;AAVH,QAAAwL,gBAAsBvI;AAarB,MAAAC;AAAAlD,IAAA,EAAA,MAAA0J,qBAAA1J,UAAA8F,aAGC5C,aAAAuI,SAAA;AACE,QAAA;AACE1G,uBAAiB,EAAI,GACrB,MAAMe,UAAS4F,OAAQtD,IAAE,GACzBsB,kBAAAA;AAAAA,IAAmB,SAAAvG,MAAA;AAEnB8B,qBADO0G,IACW;AAAA,IAAC;AAErB5G,qBAAiB,EAAK;AAAA,EAAC,GACxB/E,QAAA0J,mBAAA1J,QAAA8F,WAAA9F,QAAAkD,OAAAA,MAAAlD,EAAA,EAAA;AAVH,QAAA4L,sBAA4B1I;AAY3B,MAAAC;AAAAnD,IAAA,EAAA,MAAAyF,cAAAzF,EAAA,EAAA,MAAA8F,aAAA9F,EAAA,EAAA,MAAA8G,mBAAA9G,EAAA,EAAA,MAAAmH,mBAAAnH,UAAA4F,aAGCzC,MAAAA,CAAA0I,MAAAC,eAAA;AAOE,QANKhG,UAAS8E,OAAQxC,MAAI;AAAA,MAAAvC,QAChBiG;AAAAA,IAAAA,CACT,GAIGA,eAAe,QAAM;AACvBlG,gBAAU,MAAM;AAEhB,YAAAmG,YAAgBtG,WAAW2C,IAAE;AAE7B,UAAI,CAACU;AAAO;AAEZ3B,sBAAgB;AAAA,QAAA8B,WACHH,UAAOI,OAAOC,MAAYC,SAA1B;AAAA,QAAkCkB,QACrC;AAAA,QAAWd,UACTV,UAAOU,YAAP;AAAA,MAAA,CACX,GAED1C,gBAAgBsB,IAAE;AAAA,IAAC;AAAA,EACpB,GACFpI,QAAAyF,YAAAzF,QAAA8F,WAAA9F,QAAA8G,iBAAA9G,QAAAmH,iBAAAnH,QAAA4F,WAAA5F,QAAAmD,OAAAA,MAAAnD,EAAA,EAAA;AAvBH,QAAAgM,qBAA2B7I;AAyB1B,MAAAE;AAAArD,YAAA8F,aAGCzC,MAAAA,CAAA4I,MAAAC,aAAA;AACOpG,cAASqG,MAAO/D,MAAI8D,QAAQ;AAAA,EAAC,GACnClM,QAAA8F,WAAA9F,QAAAqD,OAAAA,MAAArD,EAAA,EAAA;AAHH,QAAAoM,uBAA6B/I;AAK5B,MAAAC;AAAAtD,IAAA,EAAA,MAAA2G,cAAA3G,UAAAkH,gBAAAlH,EAAA,EAAA,MAAAmH,mBAEsC7D,MAAAA,MAAA;AAKjC4D,oBAAAP,cACFQ,gBAAgB,IAAI;AAAA,EACrB,GACFnH,QAAA2G,YAAA3G,QAAAkH,cAAAlH,QAAAmH,iBAAAnH,QAAAsD,OAAAA,MAAAtD,EAAA,EAAA;AARD,QAAAqM,qBAA2B/I;AAQoB,MAAAC;AAAAvD,IAAA,EAAA,MAAAsM,uBAAA5J,IAAA,2BAAA,KAEhBa,MAAAgJ,CAAAA,YAAA;AAC7BrH,YAAOsH,UAAWD,SAClBlH,eAAekH,OAAO;AAAA,EAAC,GACxBvM,QAAAuD,OAAAA,MAAAvD,EAAA,EAAA;AAHD,QAAAyM,aAAmBlJ;AAGb,MAAAC;AAAAxD,YAAAqM,sBAGJ7I,MAAAkJ,CAAAA,UAAA;AAIIA,UAAKxD,kBAAmByD,eAAeD,MAAKxD,QAAqB0D,aAAC,cAAc,KAGhFP,mBAAAA;AAAAA,EACD,GACFrM,QAAAqM,oBAAArM,QAAAwD,OAAAA,MAAAxD,EAAA,EAAA;AAAA,MAAA0D;AAAA1D,IAAA,EAAA,MAAAsM,uBAAA5J,IAAA,2BAAA,KACDgB,MAAAA,MAAM,CAACwB,QAAOsH,OAAQ,GAACxM,QAAA0D,OAAAA,MAAA1D,EAAA,EAAA,GAXzB6M,qBACErJ,KAUAE,GACF;AAEA,QAAA,CAAAoJ,iBAAAC,kBAAA,IAA8CpI,SAAS,EAAK;AAAC,MAAAhB;AAAA3D,IAAA,EAAA,MAAA8M,mBAAA9M,UAAAoC,QAAApC,EAAA,EAAA,MAAAkH,cAAAoD,UAAAtK,UAAA2H,uBACnDhE,MAAAA,MAAA;AACR,QAAImJ,qBAAmB1K,SAAS;AAEhC2K,aAAAA,mBAAmB,EAAI,GACnB7F,cAAYoD,WAAa,SAC3B3C,oBAAmBqF,YAAa,cAAc,IACrC5G,kBAAiBoG,UAC1B7E,oBAAmBqF,YAAa,MAAM,IAEtCrF,oBAAmBqF,YAAa,iBAAiB,GAE5C,MAAA;AACLrF,4BAAmBsF,eAAAA;AAAAA,MAAiB;AAAA,EACrC,GACFjN,QAAA8M,iBAAA9M,QAAAoC,MAAApC,EAAA,EAAA,IAAAkH,cAAAoD,QAAAtK,QAAA2H,qBAAA3H,QAAA2D,OAAAA,MAAA3D,EAAA,EAAA;AAA0B,QAAA4D,MAAAsD,cAAYoD;AAAQ,MAAAzG;AAAA7D,IAAA,EAAA,MAAA8M,mBAAA9M,EAAA,EAAA,MAAAoC,QAAApC,EAAA,EAAA,MAAA4D,OAAA5D,UAAA2H,uBAA5C9D,MAAA,CAACiJ,iBAAiB1K,MAAMwB,KAAsB+D,mBAAmB,GAAC3H,QAAA8M,iBAAA9M,QAAAoC,MAAApC,QAAA4D,KAAA5D,QAAA2H,qBAAA3H,QAAA6D,OAAAA,MAAA7D,EAAA,EAAA,GAdrEkN,UAAUvJ,KAcPE,GAAkE;AAAC,MAAAC,KAAAE;AAAAhE,IAAA,EAAA,MAAAyF,cAAAzF,EAAA,EAAA,MAAAmK,oBAAAnK,EAAA,EAAA,MAAA8H,WAAA9H,UAAAiG,0BAAAjG,EAAA,EAAA,MAAA8G,mBAAA9G,EAAA,EAAA,MAAA4F,aAAA5F,EAAA,EAAA,MAAAuH,aAG5DzD,MAAAA,MAAA;AAGR,UAAAqJ,oBAA0B1H,WAAWW,kBAAiBoG,WAAjB,EAA+B;AAEhE,KAAC1E,WAADqF,qBAAA,CAAkC5G,4BAA2BiG,YAE/D5G,UAAUuH,kBAAiBtH,UAAjB,MAAkC,GAE5CsE,iBAAiB;AAAA,MAAAlB,WACJkE,kBAAiBjE,OAAOC,MAAYC,SAApC;AAAA,MAA4CkB,QAC/C;AAAA,MAAKd,UACH2D,kBAAiB3D,YAAjB;AAAA,IAAA,CACX,GAGD4D,sBAAsB,MAAA;AACpBtG,sBAAgBqG,kBAAiB9D,GAAI;AAAA,IAAC,CACvC,GAED9C,4BAA2BiG,UAAW,IACtCpG,kBAAiBoG,UAAW1J,QAE5BmD,yBAAAA,GAEAsB,UAAS8F,sBAAAA;AAAAA,EACV,GACArJ,MAAA,CACDyB,YACA0E,kBACArC,SACA7B,wBACAa,iBACAlB,WACA2B,SAAS,GACVvH,QAAAyF,YAAAzF,QAAAmK,kBAAAnK,QAAA8H,SAAA9H,QAAAiG,wBAAAjG,QAAA8G,iBAAA9G,QAAA4F,WAAA5F,QAAAuH,WAAAvH,QAAA8D,KAAA9D,QAAAgE,QAAAF,MAAA9D,EAAA,EAAA,GAAAgE,MAAAhE,EAAA,EAAA,IAnCDkN,UAAUpJ,KA2BPE,GAQF;AAAC,MAAAC;AAAAqJ,OAAA;AAGA,QAAIlL,SAAS,YAATqF,YAA+B;AAAA,UAAAvD;AAAAlE,QAAA,EAAA,MAAAyH,cAAAzH,EAAA,EAAA,MAAA2H,oBAAA4F,uBAAAvN,EAAA,EAAA,MAAA2H,oBAAA6F,yBAE/BtJ,OAAA,oBAAC,qBAAA,EACOuD,MAAAA,YACU,gBAAAE,oBAAmB4F,qBACjB,kBAAA5F,oBAAmB6F,uBAAsB,GAC3DxN,QAAAyH,YAAAzH,EAAA,EAAA,IAAA2H,oBAAA4F,qBAAAvN,EAAA,EAAA,IAAA2H,oBAAA6F,uBAAAxN,QAAAkE,QAAAA,OAAAlE,EAAA,EAAA,GALJiE,MACEC;AADF,YAAAoJ;AAAAA,IAMC;AAGHrJ,UAAO;AAAA,EAAI;AAXb,QAAAwJ,iBAAuBxJ;AAiBrB,MAAAC;AAAAlE,YAAA0J,qBAAA1J,EAAA,EAAA,MAAA4E,mBAAA5E,EAAA,EAAA,MAAAgF,eAAAhF,EAAA,EAAA,MAAA8E,iBAAA9E,UAAA4L,uBAAA5L,EAAA,EAAA,MAAAyE,oBAIGP,MAAAU,mBAAAH,wCACE,qBAAA,EAAmB,GACdG,iBACGI,OAAAA,aACEF,SAAAA,eACA4E,SAAAA,mBACEkC,WAAAA,oBAAAA,CAAmB,GAEjC5L,QAAA0J,mBAAA1J,QAAA4E,iBAAA5E,QAAAgF,aAAAhF,QAAA8E,eAAA9E,QAAA4L,qBAAA5L,QAAAyE,kBAAAzE,QAAAkE,OAAAA,MAAAlE,EAAA,EAAA;AAYS,QAAA0N,OAACrG;AAAW,MAAAsG;AAAA3N,IAAA,EAAA,MAAAiI,oBAAAjI,EAAA,EAAA,MAAAkI,wBAAAlI,EAAA,EAAA,MAAAoC,QAAApC,UAAA6F,UAGlB8H,0BAAC,yBAAA,EACUzF,SAAAA,sBACKD,cAAAA,kBACRpC,MAAAA,QACAzD,MAAI,GACVpC,QAAAiI,kBAAAjI,QAAAkI,sBAAAlI,QAAAoC,MAAApC,QAAA6F,QAAA7F,QAAA2N,OAAAA,MAAA3N,EAAA,EAAA;AAAA,MAAA4N;AAAA5N,IAAA,EAAA,MAAAsH,gBAAAtH,UAAA0N,OAAA1N,EAAA,EAAA,MAAA2N,OAVJC,MAAA,oBAAC,6BACYtG,WAAAA,cACL,MAAAoG,KACI,WAAA,cAEVC,UAAAA,IAAAA,CAMF,GAA4B3N,QAAAsH,cAAAtH,QAAA0N,KAAA1N,QAAA2N,KAAA3N,QAAA4N,OAAAA,MAAA5N,EAAA,EAAA;AAAA,MAAA6N;AAAA7N,YAAAqG,qBAC3BwH,MAAAxH,qBAAqB,oBAAC,0BAA8BA,OAAAA,kBAAAA,CAAiB,GAAIrG,QAAAqG,mBAAArG,QAAA6N,OAAAA,MAAA7N,EAAA,EAAA;AAAA,MAAA8N;AAAA9N,IAAA,EAAA,MAAAyN,kBAAAzN,UAAAwF,SAAA5E,SAAAZ,EAAA,EAAA,MAAA6H,mBAAA7H,UAAAsF,eAAAtF,EAAA,EAAA,MAAA4I,kBAAA5I,EAAA,EAAA,MAAAyJ,qBAAAzJ,EAAA,GAAA,MAAA6K,cAAA7K,EAAA,GAAA,MAAAuK,yBAAAvK,WAAAmK,oBAAAnK,EAAA,GAAA,MAAAoM,wBAAApM,EAAA,GAAA,MAAAyK,eAAAzK,EAAA,GAAA,MAAAgM,sBAAAhM,EAAA,GAAA,MAAA0F,qBAAA1F,WAAA8H,WAAA9H,EAAA,GAAA,MAAA2F,kBAAA3F,EAAA,GAAA,MAAAoC,QAAApC,EAAA,GAAA,MAAAwL,iBAAAxL,EAAA,GAAA,MAAAkH,gBAAAlH,WAAA6F,UACzEiI,MAAAxI,mCACE,cAAA,EACiBmI,gBACN5F,UAAAA,iBACGvC,aACN,OAAAE,SAAQ5E,OACNkH,SACOnC,gBACVvD,MACMwG,YAAAA,gBACGa,kCACL+B,UAAAA,eACFX,QAAAA,YACWN,mBAAAA,uBACLJ,gCACIiC,kBAAAA,sBACT3B,sBACOuB,gBAAAA,oBACNtG,6BACIwB,cACNrB,OAAAA,CAAM,GAEjB7F,QAAAyN,gBAAAzN,EAAA,EAAA,IAAAwF,SAAA5E,OAAAZ,QAAA6H,iBAAA7H,QAAAsF,aAAAtF,QAAA4I,gBAAA5I,QAAAyJ,mBAAAzJ,SAAA6K,YAAA7K,SAAAuK,uBAAAvK,SAAAmK,kBAAAnK,SAAAoM,sBAAApM,SAAAyK,aAAAzK,SAAAgM,oBAAAhM,SAAA0F,mBAAA1F,SAAA8H,SAAA9H,SAAA2F,gBAAA3F,SAAAoC,MAAApC,SAAAwL,eAAAxL,SAAAkH,cAAAlH,SAAA6F,QAAA7F,SAAA8N,OAAAA,MAAA9N,EAAA,GAAA;AAAA,MAAA+N;AAAA/N,IAAA,GAAA,MAAAqM,sBAAArM,EAAA,GAAA,MAAA4N,OAAA5N,EAAA,GAAA,MAAA6N,OAAA7N,WAAA8N,OA3CHC,2BAAC,MAAA,EACW,WAAA,UACJ,MAAA,GACC,QAAA,QACE1B,6BACA,UAAA,UACJI,KAAAA,YAELmB,UAAAA;AAAAA,IAAAA;AAAAA,IAYCC;AAAAA,IACAC;AAAAA,EAAAA,GAuBH,GAAO9N,SAAAqM,oBAAArM,SAAA4N,KAAA5N,SAAA6N,KAAA7N,SAAA8N,KAAA9N,SAAA+N,OAAAA,MAAA/N,EAAA,GAAA;AAAA,MAAAgO;AAAA,SAAAhO,EAAA,GAAA,MAAAkE,OAAAlE,WAAA+N,OAvDTC,MAAA,qBAAC,UAAA,EACE9J,UAAAA;AAAAA,IAAAA;AAAAA,IAUD6J;AAAAA,EAAAA,EAAAA,CA6CF,GAAW/N,SAAAkE,KAAAlE,SAAA+N,KAAA/N,SAAAgO,OAAAA,MAAAhO,EAAA,GAAA,GAxDXgO;AAwDW;AAzYf,SAAA9D,MAAA+D,GAAA;AAAA,SAuHuBC,uBAAuBD,EAAC/C,aAAc;AAAC;"}
@@ -14,7 +14,7 @@ import { setup, assign, fromPromise, fromObservable, log } from "xstate";
14
14
  import { PresentationSharedStateContext, PresentationPanelsContext, PresentationNavigateContext, PresentationParamsContext, PresentationContext } from "sanity/_singletons";
15
15
  import { Tab, Button, ErrorBoundary, Tooltip, MenuItem, MenuButton, TooltipDelayGroupProvider } from "./index.js";
16
16
  import "react-i18next";
17
- import { WarningOutlineIcon, LaunchIcon, ResetIcon, CopyIcon, ShareIcon, PanelLeftIcon, MobileDeviceIcon, DesktopIcon, RefreshIcon } from "@sanity/icons";
17
+ import { WarningOutlineIcon } from "@sanity/icons/WarningOutline";
18
18
  import { PaneRouterContext, PaneLayout, StructureToolProvider, ORDER_BY_IDS_PARAM_FIELD, DocumentListPane as DocumentListPane$1, DocumentPane as DocumentPane$1 } from "sanity/structure";
19
19
  import { toString } from "@sanity/util/paths";
20
20
  import { StructureToolProvider as StructureToolProvider$1 } from "./StructureToolProvider.js";
@@ -23,7 +23,15 @@ import { DisplayedDocumentBroadcasterProvider } from "./DisplayedDocumentBroadca
23
23
  import { v4 } from "uuid";
24
24
  import { motion, AnimatePresence, MotionConfig } from "motion/react";
25
25
  import { flushSync } from "react-dom";
26
+ import { DesktopIcon } from "@sanity/icons/Desktop";
27
+ import { MobileDeviceIcon } from "@sanity/icons/MobileDevice";
28
+ import { PanelLeftIcon } from "@sanity/icons/PanelLeft";
29
+ import { RefreshIcon } from "@sanity/icons/Refresh";
26
30
  import { setSecretSearchParams, withoutSecretSearchParams } from "@sanity/preview-url-secret/without-secret-search-params";
31
+ import { LaunchIcon } from "@sanity/icons/Launch";
32
+ import { ResetIcon } from "@sanity/icons/Reset";
33
+ import { CopyIcon } from "@sanity/icons/Copy";
34
+ import { ShareIcon } from "@sanity/icons/Share";
27
35
  import { SanityMonogram } from "@sanity/logos";
28
36
  import { disablePreviewAccessSharing, enablePreviewAccessSharing } from "@sanity/preview-url-secret/toggle-preview-access-sharing";
29
37
  import { validateApiPerspective } from "@sanity/client";