{"version":3,"file":"PointerEvents.cjs","sources":["../../src/util/getNodeIcon.tsx","../../src/ui/PopoverPortal.tsx","../../src/ui/telemetry/TelemetryContext.tsx","../../src/ui/telemetry/useTelemetry.tsx","../../src/overlay-components/components/InsertMenu.tsx","../../src/overlay-components/components/PointerEvents.tsx"],"sourcesContent":["import {\n  BlockContentIcon,\n  CheckmarkCircleIcon,\n  CubeIcon,\n  ImageIcon,\n  NumberIcon,\n  StringIcon,\n  ThListIcon,\n} from '@sanity/icons'\nimport type {\n  SchemaArrayItem,\n  SchemaNumberNode,\n  SchemaObjectField,\n  SchemaStringNode,\n  SchemaUnionOption,\n} from '@sanity/presentation-comlink'\n\ntype Option =\n  | SchemaNumberNode\n  | SchemaStringNode\n  | SchemaArrayItem\n  | SchemaObjectField\n  | SchemaUnionOption\n\nexport function getNodeIcon(option: Option | undefined): React.JSX.Element {\n  if (!option) return <CubeIcon />\n\n  if (option.type === 'string') {\n    return <StringIcon />\n  }\n\n  if (option.type === 'number') {\n    return <NumberIcon />\n  }\n\n  const {value: node} = option\n\n  if ('icon' in option && option.icon) {\n    return <div dangerouslySetInnerHTML={{__html: option.icon}} />\n  }\n\n  const {type} = node\n\n  if (type === 'string') {\n    return <StringIcon />\n  }\n\n  if (type === 'boolean') {\n    return <CheckmarkCircleIcon />\n  }\n\n  if (type === 'number') {\n    return <NumberIcon />\n  }\n\n  if (type === 'array' || type === 'union') {\n    const of = Array.isArray(node.of) ? node.of : [node.of]\n    if (of.some((n) => 'name' in n && n.name === 'block')) {\n      return <BlockContentIcon />\n    }\n    return <ThListIcon />\n  }\n\n  if (type === 'object') {\n    if (option.name === 'image') {\n      return <ImageIcon />\n    }\n    if (option.name === 'block') {\n      return <StringIcon />\n    }\n  }\n\n  return <CubeIcon />\n}\n","import {Portal} from '@sanity/ui/_visual-editing'\nimport {type FunctionComponent, type MouseEvent} from 'react'\nimport {css, styled} from 'styled-components'\n\nconst scrollBlockStyles = css`\n  overflow-y: scroll;\n  overscroll-behavior: contain;\n  -ms-overflow-style: none;\n  scrollbar-width: none;\n\n  &:before {\n    content: '';\n    display: block;\n    height: calc(100% + 1px);\n    position: absolute;\n    top: 0;\n    width: 100%;\n    z-index: -1;\n  }\n`\n\nconst PortalContainer = styled.div<{$blockScroll: boolean}>`\n  height: 100%;\n  inset: 0;\n  pointer-events: all;\n  position: fixed;\n  width: 100%;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n\n  ${(props) => props.$blockScroll && scrollBlockStyles}\n`\nconst PortalBackground = styled.div`\n  background: transparent;\n  height: 100%;\n  inset: 0;\n  position: absolute;\n  width: 100%;\n`\n\ntype PopoverPortalProps = {\n  children?: React.ReactNode\n  onDismiss?: () => void\n  setBoundaryElement?: (element: HTMLDivElement) => void\n  blockScroll?: boolean\n}\n\nexport const PopoverPortal: FunctionComponent<PopoverPortalProps> = (props) => {\n  return (\n    <Portal>\n      <PopoverBackground {...props} />\n    </Portal>\n  )\n}\n\nexport const PopoverBackground: FunctionComponent<{\n  children?: React.ReactNode\n  onDismiss?: () => void\n  setBoundaryElement?: (element: HTMLDivElement) => void\n  blockScroll?: boolean\n}> = (props) => {\n  const {children, onDismiss, setBoundaryElement, blockScroll = true} = props\n\n  // Prevent the event from propagating to the window, so that the controller's\n  // `handleBlur` listener is not triggered. This is needed to prevent the\n  // context menu from being dismissed when some click causes parent elements to\n  // re-render, and the data-attribute method of preventing propagation fails.\n  const handleClick = (event: MouseEvent) => {\n    event.stopPropagation()\n  }\n\n  return (\n    <PortalContainer\n      data-sanity-overlay-element\n      ref={setBoundaryElement}\n      onClick={handleClick}\n      $blockScroll={blockScroll}\n    >\n      <PortalBackground\n        onMouseDownCapture={() => {\n          onDismiss?.()\n        }}\n      />\n      {children}\n    </PortalContainer>\n  )\n}\n","import {defineEvent} from '@sanity/telemetry'\nimport {createContext} from 'react'\n\nexport const events = {\n  'Visual Editing Drag Sequence Completed': defineEvent({\n    name: 'Visual Editing Drag Sequence Completed',\n    description: 'An array is successfully reordered using drag and drop.',\n    version: 1,\n  }),\n  'Visual Editing Drag Minimap Enabled': defineEvent({\n    name: 'Visual Editing Drag Minimap Enabled',\n    description: 'The zoomed-out minimap view is enabled during a drag sequence.',\n    version: 1,\n  }),\n  'Visual Editing Context Menu Item Removed': defineEvent({\n    name: 'Visual Editing Context Menu Item Removed',\n    description: 'An item is removed using the Context Menu.',\n    version: 1,\n  }),\n  'Visual Editing Context Menu Item Duplicated': defineEvent({\n    name: 'Visual Editing Context Menu Item Duplicated',\n    description: 'An item is duplicated using the Context Menu.',\n    version: 1,\n  }),\n  'Visual Editing Context Menu Item Moved': defineEvent({\n    name: 'Visual Editing Context Menu Item Moved',\n    description: 'An item is moved using the Context Menu.',\n    version: 1,\n  }),\n  'Visual Editing Context Menu Item Inserted': defineEvent({\n    name: 'Visual Editing Context Menu Item Inserted',\n    description: 'An item is inserted using the Context Menu.',\n    version: 1,\n  }),\n  'Visual Editing Insert Menu Item Inserted': defineEvent({\n    name: 'Visual Editing Insert Menu Item Inserted',\n    description: 'An item is inserted using the Insert Menu.',\n    version: 1,\n  }),\n  'Visual Editing Overlay Clicked': defineEvent({\n    name: 'Visual Editing Overlay Clicked',\n    description: 'An Overlay is clicked.',\n    version: 1,\n  }),\n}\n\ntype EventDataMap = {\n  [K in keyof typeof events]: (typeof events)[K] extends ReturnType<typeof defineEvent<infer T>>\n    ? T\n    : never\n}\n\nexport type TelemetryEventNames = keyof typeof events\n\nexport type TelemetryContextValue = <K extends keyof typeof events>(\n  name: K,\n  data: EventDataMap[K] extends void ? null | undefined : EventDataMap[K],\n) => void\n\nexport const TelemetryContext = createContext<TelemetryContextValue | undefined>(undefined)\n","import {useContext} from 'react'\nimport {TelemetryContext, type TelemetryContextValue} from './TelemetryContext'\n\nexport function useTelemetry(): TelemetryContextValue {\n  const context = useContext(TelemetryContext)\n\n  if (!context) {\n    throw new Error('Telemetry context is missing')\n  }\n\n  return context\n}\n","import type {InsertMenuOptions} from '@sanity/insert-menu'\nimport {InsertMenu as SanityInsertMenu} from '@sanity/insert-menu'\nimport type {SchemaUnionNode} from '@sanity/presentation-comlink'\nimport type {SchemaType} from '@sanity/types'\nimport {Popover} from '@sanity/ui/_visual-editing'\nimport {type FunctionComponent} from 'react'\nimport {PopoverPortal} from '../../ui/PopoverPortal'\nimport {getNodeIcon} from '../../util/getNodeIcon'\n\n// @todo How can this be localised?\nconst labels = {\n  'insert-menu.filter.all-items': 'All',\n  'insert-menu.search.no-results': 'No results',\n  'insert-menu.search.placeholder': 'Filter types…',\n  'insert-menu.toggle-grid-view.tooltip': 'Toggle grid view',\n  'insert-menu.toggle-list-view.tooltip': 'Toggle list view',\n} as const\n\nexport interface InsertMenuProps {\n  node: SchemaUnionNode\n  onSelect: (schemaType: SchemaType) => void\n}\n\nexport const InsertMenu: FunctionComponent<InsertMenuProps> = (props) => {\n  const {node, onSelect} = props\n\n  const insertMenuOptions = node.options?.insertMenu || {}\n\n  const views: InsertMenuOptions['views'] = insertMenuOptions.views?.map((view) => {\n    // Map the `previewImageUrls` that Presentation already resolved and\n    // serialized back to a function so that InsertMenu can \"resolve\" them\n    if (view.name === 'grid') {\n      return {\n        ...view,\n        previewImageUrl: (name) => view.previewImageUrls?.[name],\n      }\n    }\n    return view\n  })\n\n  return (\n    <SanityInsertMenu\n      {...insertMenuOptions}\n      labels={labels}\n      // @ts-expect-error -- @todo map typings\n      schemaTypes={node.of.map((type) => ({\n        ...type,\n        icon: getNodeIcon(type),\n      }))}\n      onSelect={onSelect}\n      views={views}\n    />\n  )\n}\n\nexport interface InsertMenuPopoverProps extends InsertMenuProps {\n  onDismiss: () => void\n  referenceElement?: HTMLElement | null\n}\n\nexport const InsertMenuPopover: FunctionComponent<InsertMenuPopoverProps> = (props) => {\n  const {node, onDismiss, onSelect, referenceElement} = props\n\n  const popoverContent = <InsertMenu node={node} onSelect={onSelect} />\n\n  const insertMenuOptions = node.options?.insertMenu || {}\n\n  // If the grid view is not enabled, the popover should fit the content. If it\n  // is enabled, the popover width needs to be 'forced' to some arbitrary amount\n  // to prevent the grid from collapsing to a single column. The '0' size allows\n  // for a two column layout\n  const width = insertMenuOptions.views?.some((view) => view.name === 'grid') ? 0 : undefined\n\n  return (\n    <PopoverPortal onDismiss={onDismiss}>\n      <Popover\n        animate={true}\n        constrainSize\n        content={popoverContent}\n        fallbackPlacements={['bottom']}\n        open\n        placement={'top'}\n        preventOverflow\n        referenceElement={referenceElement}\n        width={width}\n      />\n    </PopoverPortal>\n  )\n}\n","import type {FunctionComponent, HTMLAttributes, PropsWithChildren} from 'react'\n\nexport const PointerEvents: FunctionComponent<\n  PropsWithChildren<HTMLAttributes<HTMLDivElement>>\n> = ({children, style, ...rest}) => {\n  return (\n    <div style={{...style, pointerEvents: 'all'}} data-sanity-overlay-element {...rest}>\n      {children}\n    </div>\n  )\n}\n"],"names":["getNodeIcon","option","jsx","CubeIcon","type","StringIcon","NumberIcon","value","node","icon","__html","CheckmarkCircleIcon","Array","isArray","of","some","n","name","BlockContentIcon","ThListIcon","ImageIcon","scrollBlockStyles","css","PortalContainer","styled","div","props","$blockScroll","PortalBackground","PopoverPortal","$","_c","t0","Portal","PopoverBackground","children","onDismiss","setBoundaryElement","blockScroll","undefined","handleClick","_temp","t1","t2","jsxs","event","stopPropagation","events","defineEvent","description","version","TelemetryContext","createContext","useTelemetry","context","useContext","Error","labels","InsertMenu","onSelect","options","insertMenu","insertMenuOptions","views","map","_temp2","t3","SanityInsertMenu","InsertMenuPopover","referenceElement","popoverContent","width","_temp3","Symbol","for","Popover","view","previewImageUrl","previewImageUrls","PointerEvents","rest","style","pointerEvents"],"mappings":"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"}