{"version":3,"file":"index2.mjs","sources":["../../src/structure/panes/list/ListPaneContent.tsx","../../src/structure/panes/list/ListPaneHeader.tsx","../../src/structure/panes/list/ListPane.tsx"],"sourcesContent":["import {Box} from '@sanity/ui'\nimport {useCallback} from 'react'\nimport {\n  CommandList,\n  type CommandListItemContext,\n  type GeneralPreviewLayoutKey,\n  useGetI18nText,\n} from 'sanity'\nimport {styled} from 'styled-components'\n\nimport {PaneContent, PaneItem, usePaneLayout} from '../../components'\nimport {type PaneListItem, type PaneListItemDivider} from '../../types'\n\ninterface ListPaneContentProps {\n  childItemId?: string\n  isActive?: boolean\n  items: (PaneListItem<unknown> | PaneListItemDivider)[] | undefined\n  layout?: GeneralPreviewLayoutKey\n  showIcons: boolean\n  title: string\n}\n\nconst Divider = styled.hr`\n  background-color: var(--card-border-color);\n  height: 1px;\n  margin: 0;\n  border: none;\n`\n\n/**\n * @internal\n */\nexport function ListPaneContent(props: ListPaneContentProps) {\n  const {childItemId, items, isActive, layout, showIcons, title} = props\n  const {collapsed: layoutCollapsed} = usePaneLayout()\n  const getI18nText = useGetI18nText(\n    items?.filter(\n      (item): item is Exclude<typeof item, {type: 'divider'}> => item.type !== 'divider',\n    ),\n  )\n\n  const getItemDisabled = useCallback(\n    (itemIndex: number) => {\n      return items?.find((_, i) => i === itemIndex)?.type === 'divider'\n    },\n    [items],\n  )\n\n  const shouldShowIconForItem = useCallback(\n    (item: PaneListItem): boolean => {\n      const itemShowIcon = item.displayOptions?.showIcon\n\n      // Specific true/false on item should have precedence over list setting\n      if (typeof itemShowIcon !== 'undefined') {\n        return itemShowIcon !== false // Boolean(item.icon)\n      }\n\n      // If no item setting is defined, defer to the pane settings\n      return showIcons !== false // Boolean(item.icon)\n    },\n    [showIcons],\n  )\n\n  const renderItem = useCallback(\n    (item: PaneListItem<unknown> | PaneListItemDivider, ctx: CommandListItemContext) => {\n      const {virtualIndex: itemIndex} = ctx\n\n      if (item.type === 'divider') {\n        return (\n          // eslint-disable-next-line react/no-array-index-key\n          <Box key={`divider-${itemIndex}`} marginBottom={1}>\n            <Divider />\n          </Box>\n        )\n      }\n\n      const pressed = !isActive && childItemId === item.id\n      const selected = isActive && childItemId === item.id\n      // If this is a document list item, pass on the ID and type,\n      // otherwise leave it undefined to use the passed title and gang\n      const value =\n        item._id && item.schemaType\n          ? {_id: item._id, _type: item.schemaType.name, title: item.title}\n          : undefined\n\n      return (\n        <PaneItem\n          icon={shouldShowIconForItem(item) ? item.icon : false}\n          id={item.id}\n          key={item.id}\n          layout={layout}\n          marginBottom={1}\n          pressed={pressed}\n          schemaType={item.schemaType}\n          selected={selected}\n          title={getI18nText(item).title}\n          value={value}\n        />\n      )\n    },\n    [childItemId, getI18nText, isActive, layout, shouldShowIconForItem],\n  )\n\n  return (\n    <PaneContent overflow={layoutCollapsed ? 'hidden' : 'auto'}>\n      {items && items.length > 0 && (\n        <CommandList\n          activeItemDataAttr=\"data-hovered\"\n          ariaLabel={title}\n          canReceiveFocus\n          getItemDisabled={getItemDisabled}\n          itemHeight={51}\n          items={items}\n          onlyShowSelectionWhenActive\n          paddingBottom={1}\n          paddingX={3}\n          renderItem={renderItem}\n          wrapAround={false}\n        />\n      )}\n    </PaneContent>\n  )\n}\n","import {ArrowLeftIcon} from '@sanity/icons'\n\nimport {Button} from '../../../ui-components'\nimport {BackLink, PaneHeader, PaneHeaderActions, usePane} from '../../components'\nimport {type PaneMenuItem, type PaneMenuItemGroup} from '../../types'\nimport {useStructureTool} from '../../useStructureTool'\n\ninterface ListPaneHeaderProps {\n  index: number\n  menuItems?: PaneMenuItem[]\n  menuItemGroups?: PaneMenuItemGroup[]\n  title: string\n}\n\nexport const ListPaneHeader = ({index, menuItems, menuItemGroups, title}: ListPaneHeaderProps) => {\n  const {features} = useStructureTool()\n  const {collapsed, isLast} = usePane()\n  // Prevent focus if this is the last (non-collapsed) pane.\n  const tabIndex = isLast && !collapsed ? -1 : 0\n\n  return (\n    <PaneHeader\n      actions={<PaneHeaderActions menuItems={menuItems} menuItemGroups={menuItemGroups} />}\n      backButton={\n        features.backButton &&\n        index > 0 && (\n          <Button\n            as={BackLink}\n            data-as=\"a\"\n            icon={ArrowLeftIcon}\n            mode=\"bleed\"\n            tooltipProps={{content: 'Back'}}\n          />\n        )\n      }\n      tabIndex={tabIndex}\n      title={title}\n    />\n  )\n}\n","import {Card, Code} from '@sanity/ui'\nimport {useI18nText} from 'sanity'\n\nimport {Pane} from '../../components'\nimport {_DEBUG} from '../../constants'\nimport {type BaseStructureToolPaneProps} from '../types'\nimport {ListPaneContent} from './ListPaneContent'\nimport {ListPaneHeader} from './ListPaneHeader'\n\ntype ListPaneProps = BaseStructureToolPaneProps<'list'>\n\n/**\n * @internal\n */\nexport function ListPane(props: ListPaneProps) {\n  const {childItemId, index, isActive, isSelected, pane, paneKey} = props\n\n  const {defaultLayout, displayOptions, items, menuItems, menuItemGroups} = pane\n  const showIcons = displayOptions?.showIcons !== false\n  const {title} = useI18nText(pane)\n\n  return (\n    <Pane\n      currentMaxWidth={350}\n      data-testid=\"structure-tool-list-pane\"\n      data-ui=\"ListPane\"\n      id={paneKey}\n      maxWidth={640}\n      minWidth={320}\n      selected={isSelected}\n    >\n      {_DEBUG && (\n        <Card padding={4} tone=\"transparent\">\n          <Code>{pane.source || '(none)'}</Code>\n        </Card>\n      )}\n\n      <ListPaneHeader\n        index={index}\n        menuItems={menuItems}\n        menuItemGroups={menuItemGroups}\n        title={title}\n      />\n\n      <ListPaneContent\n        childItemId={childItemId}\n        isActive={isActive}\n        items={items}\n        layout={defaultLayout}\n        key={paneKey}\n        showIcons={showIcons}\n        title={title}\n      />\n    </Pane>\n  )\n}\n"],"names":["Divider","styled","hr","ListPaneContent","props","$","_c","childItemId","items","isActive","layout","showIcons","title","collapsed","layoutCollapsed","usePaneLayout","t0","filter","_temp","getI18nText","useGetI18nText","t1","itemIndex","find","_","i","type","getItemDisabled","t2","item_0","itemShowIcon","item","displayOptions","showIcon","shouldShowIconForItem","t3","item_1","ctx","virtualIndex","itemIndex_0","pressed","id","selected","value","_id","schemaType","_type","name","undefined","icon","renderItem","t4","t5","length","t6","ListPaneHeader","index","menuItems","menuItemGroups","features","useStructureTool","isLast","usePane","tabIndex","backButton","BackLink","ArrowLeftIcon","content","ListPane","isSelected","pane","paneKey","defaultLayout","useI18nText","source","_DEBUG"],"mappings":"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"}