@dxos/react-ui-list 0.8.1 → 0.8.2-main.12df754
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/browser/index.mjs +2 -2
- package/dist/lib/browser/index.mjs.map +2 -2
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node/index.cjs +2 -2
- package/dist/lib/node/index.cjs.map +2 -2
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node-esm/index.mjs +2 -2
- package/dist/lib/node-esm/index.mjs.map +2 -2
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/types/src/components/Tree/TreeItemToggle.d.ts.map +1 -1
- package/package.json +16 -16
- package/src/components/List/List.stories.tsx +2 -2
- package/src/components/Tree/Tree.stories.tsx +5 -5
- package/src/components/Tree/TreeItemToggle.tsx +1 -5
- package/src/util/path.ts +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/Accordion/AccordionItem.tsx", "../../../src/components/Accordion/AccordionRoot.tsx", "../../../src/components/Accordion/Accordion.tsx", "../../../src/components/List/ListItem.tsx", "../../../src/components/List/ListRoot.tsx", "../../../src/components/List/List.tsx", "../../../src/components/Tree/Tree.tsx", "../../../src/components/Tree/TreeContext.tsx", "../../../src/components/Tree/TreeItem.tsx", "../../../src/components/Tree/TreeItemHeading.tsx", "../../../src/components/Tree/TreeItemToggle.tsx", "../../../src/components/Tree/helpers.ts", "../../../src/util/path.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as AccordionPrimitive from '@radix-ui/react-accordion';\nimport { createContext } from '@radix-ui/react-context';\nimport React, { type PropsWithChildren } from 'react';\n\nimport { Icon, type ThemedClassName } from '@dxos/react-ui';\nimport { mx } from '@dxos/react-ui-theme';\n\nimport { useAccordionContext } from './AccordionRoot';\nimport { type ListItemRecord } from '../List';\n\nconst ACCORDION_ITEM_NAME = 'AccordionItem';\n\ntype AccordionItemContext<T extends ListItemRecord> = {\n item: T;\n};\n\nexport const [AccordionItemProvider, useAccordionItemContext] =\n createContext<AccordionItemContext<any>>(ACCORDION_ITEM_NAME);\n\nexport type AccordionItemProps<T extends ListItemRecord> = ThemedClassName<PropsWithChildren<{ item: T }>>;\n\nexport const AccordionItem = <T extends ListItemRecord>({ children, classNames, item }: AccordionItemProps<T>) => {\n const { getId } = useAccordionContext(ACCORDION_ITEM_NAME);\n\n return (\n <AccordionItemProvider {...{ item }}>\n <AccordionPrimitive.Item value={getId(item)} className={mx('overflow-hidden', classNames)}>\n {children}\n </AccordionPrimitive.Item>\n </AccordionItemProvider>\n );\n};\n\nexport type AccordionItemHeaderProps = ThemedClassName<AccordionPrimitive.AccordionHeaderProps>;\n\nexport const AccordionItemHeader = ({ classNames, children, ...props }: AccordionItemHeaderProps) => {\n return (\n <AccordionPrimitive.Header {...props} className={mx(classNames)}>\n <AccordionPrimitive.Trigger className='group flex items-center p-2 dx-focus-ring-inset is-full text-start'>\n {children}\n <Icon\n icon='ph--caret-right--regular'\n size={4}\n classNames='transition-transform duration-200 group-data-[state=open]:rotate-90'\n />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n );\n};\n\nexport type AccordionItemBodyProps = ThemedClassName<PropsWithChildren>;\n\nexport const AccordionItemBody = ({ children, classNames }: AccordionItemBodyProps) => {\n return (\n <AccordionPrimitive.Content className='overflow-hidden data-[state=closed]:animate-slideUp data-[state=open]:animate-slideDown'>\n <div role='none' className={mx('p-2', classNames)}>\n {children}\n </div>\n </AccordionPrimitive.Content>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as AccordionPrimitive from '@radix-ui/react-accordion';\nimport { createContext } from '@radix-ui/react-context';\nimport React, { type ReactNode } from 'react';\n\nimport { type ThemedClassName } from '@dxos/react-ui';\nimport { mx } from '@dxos/react-ui-theme';\n\nimport { type ListItemRecord } from '../List';\n\ntype AccordionContext<T extends ListItemRecord> = {\n getId: (item: T) => string;\n};\n\nconst ACCORDION_NAME = 'Accordion';\n\nexport const [AccordionProvider, useAccordionContext] = createContext<AccordionContext<any>>(ACCORDION_NAME);\n\nexport type AccordionRendererProps<T extends ListItemRecord> = {\n items: T[];\n};\n\nconst defaultGetId = <T extends ListItemRecord>(item: T) => (item as any)?.id;\n\nexport type AccordionRootProps<T extends ListItemRecord> = ThemedClassName<\n {\n children?: (props: AccordionRendererProps<T>) => ReactNode;\n items?: T[];\n } & Partial<Pick<AccordionContext<T>, 'getId'>>\n>;\n\nexport const AccordionRoot = <T extends ListItemRecord>({\n classNames,\n items,\n getId = defaultGetId,\n children,\n value,\n defaultValue,\n onValueChange,\n}: AccordionRootProps<T> &\n Pick<AccordionPrimitive.AccordionMultipleProps, 'value' | 'defaultValue' | 'onValueChange'>) => {\n return (\n <AccordionProvider {...{ getId }}>\n <AccordionPrimitive.Root\n type='multiple'\n value={value}\n defaultValue={defaultValue}\n onValueChange={onValueChange}\n className={mx(classNames)}\n >\n {children?.({ items: items ?? [] })}\n </AccordionPrimitive.Root>\n </AccordionProvider>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { AccordionItem, AccordionItemHeader, AccordionItemBody } from './AccordionItem';\nimport { AccordionRoot } from './AccordionRoot';\n\n// TODO(burdon): Next iteration should be based on Radix UI Accordion:\n// https://www.radix-ui.com/primitives/docs/components/accordion\n// TODO(burdon): Support key navigation.\n\nexport const Accordion = {\n Root: AccordionRoot,\n Item: AccordionItem,\n ItemHeader: AccordionItemHeader,\n ItemBody: AccordionItemBody,\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { combine } from '@atlaskit/pragmatic-drag-and-drop/combine';\nimport { draggable, dropTargetForElements } from '@atlaskit/pragmatic-drag-and-drop/element/adapter';\nimport { setCustomNativeDragPreview } from '@atlaskit/pragmatic-drag-and-drop/element/set-custom-native-drag-preview';\nimport {\n type Edge,\n attachClosestEdge,\n extractClosestEdge,\n} from '@atlaskit/pragmatic-drag-and-drop-hitbox/closest-edge';\nimport { createContext } from '@radix-ui/react-context';\nimport React, {\n type ComponentProps,\n type HTMLAttributes,\n type MutableRefObject,\n type PropsWithChildren,\n type ReactNode,\n forwardRef,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport { createPortal } from 'react-dom';\n\nimport { invariant } from '@dxos/invariant';\nimport { Icon, type ThemedClassName, ListItem as NaturalListItem } from '@dxos/react-ui';\nimport { mx } from '@dxos/react-ui-theme';\n\nimport { useListContext } from './ListRoot';\n\nexport type ListItemRecord = {};\n\nexport type ItemDragState =\n | {\n type: 'idle';\n }\n | {\n type: 'preview';\n container: HTMLElement;\n }\n | {\n type: 'is-dragging';\n }\n | {\n type: 'is-dragging-over';\n closestEdge: Edge | null;\n };\n\nexport const idle: ItemDragState = { type: 'idle' };\n\nconst stateStyles: { [Key in ItemDragState['type']]?: HTMLAttributes<HTMLDivElement>['className'] } = {\n 'is-dragging': 'opacity-50',\n};\n\ntype ListItemContext<T extends ListItemRecord> = {\n item: T;\n dragHandleRef: MutableRefObject<HTMLElement | null>;\n};\n\n/**\n * Default context defined for ListItemDragPreview, which is defined outside of ListItem.\n */\nconst defaultContext: ListItemContext<any> = {} as any;\n\nconst LIST_ITEM_NAME = 'ListItem';\n\nexport const [ListItemProvider, useListItemContext] = createContext<ListItemContext<any>>(\n LIST_ITEM_NAME,\n defaultContext,\n);\n\nexport type ListItemProps<T extends ListItemRecord> = ThemedClassName<\n PropsWithChildren<{\n item: T;\n }> &\n HTMLAttributes<HTMLDivElement>\n>;\n\n/**\n * Draggable list item.\n */\nexport const ListItem = <T extends ListItemRecord>({ children, classNames, item, ...props }: ListItemProps<T>) => {\n const { isItem, dragPreview, setState: setRootState } = useListContext(LIST_ITEM_NAME);\n const ref = useRef<HTMLDivElement | null>(null);\n const dragHandleRef = useRef<HTMLElement | null>(null);\n const [state, setState] = useState<ItemDragState>(idle);\n useEffect(() => {\n const element = ref.current;\n invariant(element);\n return combine(\n //\n // https://atlassian.design/components/pragmatic-drag-and-drop/core-package/adapters/element/about#draggable\n //\n draggable({\n element,\n dragHandle: dragHandleRef.current!,\n getInitialData: () => item,\n onGenerateDragPreview: dragPreview\n ? ({ nativeSetDragImage, source }) => {\n const rect = source.element.getBoundingClientRect();\n setCustomNativeDragPreview({\n nativeSetDragImage,\n getOffset: ({ container }) => {\n const { height } = container.getBoundingClientRect();\n return {\n x: 20,\n y: height / 2,\n };\n },\n render: ({ container }) => {\n container.style.width = rect.width + 'px';\n setState({ type: 'preview', container });\n setRootState({ type: 'preview', container, item });\n return () => {}; // TODO(burdon): Cleanup.\n },\n });\n }\n : undefined,\n onDragStart: () => {\n setState({ type: 'is-dragging' });\n setRootState({ type: 'is-dragging', item });\n },\n onDrop: () => {\n setState(idle);\n setRootState(idle);\n },\n }),\n\n //\n // https://atlassian.design/components/pragmatic-drag-and-drop/core-package/adapters/element/about#drop-target-for-elements\n //\n dropTargetForElements({\n element,\n canDrop: ({ source }) => {\n return source.element !== element && isItem(source.data);\n },\n getData: ({ input }) => {\n return attachClosestEdge(item, { element, input, allowedEdges: ['top', 'bottom'] });\n },\n getIsSticky: () => true,\n onDragEnter: ({ self }) => {\n const closestEdge = extractClosestEdge(self.data);\n setState({ type: 'is-dragging-over', closestEdge });\n },\n onDrag: ({ self }) => {\n const closestEdge = extractClosestEdge(self.data);\n setState((current) => {\n if (current.type === 'is-dragging-over' && current.closestEdge === closestEdge) {\n return current;\n }\n return { type: 'is-dragging-over', closestEdge };\n });\n },\n onDragLeave: () => {\n setState(idle);\n },\n onDrop: () => {\n setState(idle);\n },\n }),\n );\n }, [item]);\n\n return (\n <ListItemProvider item={item} dragHandleRef={dragHandleRef}>\n <div role='none' className='relative'>\n <div\n ref={ref}\n role='listitem'\n className={mx('flex overflow-hidden', classNames, stateStyles[state.type])}\n {...props}\n >\n {children}\n </div>\n {state.type === 'is-dragging-over' && state.closestEdge && (\n <NaturalListItem.DropIndicator edge={state.closestEdge} />\n )}\n </div>\n </ListItemProvider>\n );\n};\n\n//\n// List item components\n//\n\nexport type IconButtonProps = ThemedClassName<ComponentProps<'button'>> & { icon: string };\n\nexport const IconButton = forwardRef<HTMLButtonElement, IconButtonProps>(\n ({ classNames, icon, ...props }, forwardedRef) => {\n return (\n <button ref={forwardedRef} className={mx('flex items-center justify-center', classNames)} {...props}>\n <Icon icon={icon} classNames='cursor-pointer' size={4} />\n </button>\n );\n },\n);\n\nexport const ListItemDeleteButton = ({\n autoHide = true,\n classNames,\n disabled,\n icon = 'ph--x--regular',\n ...props\n}: Partial<Pick<IconButtonProps, 'icon'>> & Omit<IconButtonProps, 'icon'> & { autoHide?: boolean }) => {\n const { state } = useListContext('DELETE_BUTTON');\n const isDisabled = state.type !== 'idle' || disabled;\n return (\n <IconButton\n icon={icon}\n disabled={isDisabled}\n classNames={[classNames, autoHide && disabled && 'hidden']}\n {...props}\n />\n );\n};\n\nexport const ListItemButton = ({\n autoHide = true,\n classNames,\n disabled,\n ...props\n}: IconButtonProps & { autoHide?: boolean }) => {\n const { state } = useListContext('ITEM_BUTTON');\n const isDisabled = state.type !== 'idle' || disabled;\n return <IconButton disabled={isDisabled} classNames={[classNames, autoHide && disabled && 'hidden']} {...props} />;\n};\n\nexport const ListItemDragHandle = () => {\n const { dragHandleRef } = useListItemContext('DRAG_HANDLE');\n return <IconButton ref={dragHandleRef as any} icon='ph--dots-six-vertical--regular' />;\n};\n\nexport const ListItemDragPreview = <T extends ListItemRecord>({\n children,\n}: {\n children: ({ item }: { item: T }) => ReactNode;\n}) => {\n const { state } = useListContext('DRAG_PREVIEW');\n return state?.type === 'preview' ? createPortal(children({ item: state.item }), state.container) : null;\n};\n\nexport const ListItemWrapper = ({ classNames, children }: ThemedClassName<PropsWithChildren>) => (\n <div className={mx('flex is-full gap-2', classNames)}>{children}</div>\n);\n\nexport const ListItemTitle = ({\n classNames,\n children,\n ...props\n}: ThemedClassName<PropsWithChildren<ComponentProps<'div'>>>) => (\n <div className={mx('flex grow items-center truncate', classNames)} {...props}>\n {children}\n </div>\n);\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { monitorForElements } from '@atlaskit/pragmatic-drag-and-drop/element/adapter';\nimport { extractClosestEdge } from '@atlaskit/pragmatic-drag-and-drop-hitbox/closest-edge';\nimport { getReorderDestinationIndex } from '@atlaskit/pragmatic-drag-and-drop-hitbox/util/get-reorder-destination-index';\nimport { createContext } from '@radix-ui/react-context';\nimport React, { type ReactNode, useCallback, useEffect, useState } from 'react';\n\nimport { idle, type ItemDragState, type ListItemRecord } from './ListItem';\n\ntype ListContext<T extends ListItemRecord> = {\n // TODO(burdon): Rename drag state.\n state: ItemDragState & { item?: T };\n setState: (state: ItemDragState & { item?: T }) => void;\n dragPreview?: boolean;\n isItem: (item: any) => boolean;\n getId?: (item: T) => string; // TODO(burdon): Require if T doesn't conform to type.\n};\n\nconst LIST_NAME = 'List';\n\nexport const [ListProvider, useListContext] = createContext<ListContext<any>>(LIST_NAME);\n\nexport type ListRendererProps<T extends ListItemRecord> = {\n state: ListContext<T>['state'];\n items: T[];\n};\n\nconst defaultGetId = <T extends ListItemRecord>(item: T) => (item as any)?.id;\n\nexport type ListRootProps<T extends ListItemRecord> = {\n children?: (props: ListRendererProps<T>) => ReactNode;\n items?: T[];\n onMove?: (fromIndex: number, toIndex: number) => void;\n} & Pick<ListContext<T>, 'isItem' | 'getId' | 'dragPreview'>;\n\nexport const ListRoot = <T extends ListItemRecord>({\n children,\n items,\n isItem,\n getId = defaultGetId,\n onMove,\n ...props\n}: ListRootProps<T>) => {\n const isEqual = useCallback(\n (a: T, b: T) => {\n const idA = getId?.(a);\n const idB = getId?.(b);\n\n if (idA !== undefined && idB !== undefined) {\n return idA === idB;\n } else {\n // Fallback for primitive values or when getId fails.\n // NOTE(ZaymonFC): After drag and drop, pragmatic internally serializes drop targets which breaks reference equality.\n // You must provide an `getId` function that returns a stable identifier for your items.\n return a === b;\n }\n },\n [getId],\n );\n\n const [state, setState] = useState<ListContext<T>['state']>(idle);\n useEffect(() => {\n if (!items) {\n return;\n }\n\n return monitorForElements({\n canMonitor: ({ source }) => isItem(source.data),\n onDrop: ({ location, source }) => {\n const target = location.current.dropTargets[0];\n if (!target) {\n return;\n }\n\n const sourceData = source.data;\n const targetData = target.data;\n\n if (!isItem(sourceData) || !isItem(targetData)) {\n return;\n }\n\n const sourceIdx = items.findIndex((item) => isEqual(item, sourceData as T));\n const targetIdx = items.findIndex((item) => isEqual(item, targetData as T));\n if (targetIdx < 0 || sourceIdx < 0) {\n return;\n }\n const closestEdgeOfTarget = extractClosestEdge(targetData);\n const destinationIndex = getReorderDestinationIndex({\n closestEdgeOfTarget,\n startIndex: sourceIdx,\n indexOfTarget: targetIdx,\n axis: 'vertical',\n });\n\n onMove?.(sourceIdx, destinationIndex);\n },\n });\n }, [items, isEqual, onMove]);\n\n return (\n <ListProvider {...{ state, setState, isItem, ...props }}>{children?.({ state, items: items ?? [] })}</ListProvider>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport {\n IconButton,\n type IconButtonProps,\n ListItem,\n ListItemDeleteButton,\n ListItemButton,\n ListItemDragHandle,\n ListItemDragPreview,\n type ListItemProps,\n type ListItemRecord,\n ListItemTitle,\n ListItemWrapper,\n} from './ListItem';\nimport { ListRoot, type ListRootProps } from './ListRoot';\n\n// TODO(burdon): Multi-select model.\n// TODO(burdon): Key nav.\n// TODO(burdon): Animation.\n// TODO(burdon): Constrain axis.\n// TODO(burdon): Tree view.\n// TODO(burdon): Fix autoscroll while dragging.\n\n/**\n * Draggable list.\n * Ref: https://github.com/atlassian/pragmatic-drag-and-drop\n * Ref: https://github.com/alexreardon/pdnd-react-tailwind/blob/main/src/task.tsx\n */\nexport const List = {\n Root: ListRoot,\n Item: ListItem,\n ItemDragPreview: ListItemDragPreview,\n ItemWrapper: ListItemWrapper,\n ItemDragHandle: ListItemDragHandle,\n ItemDeleteButton: ListItemDeleteButton,\n ItemButton: ListItemButton,\n ItemTitle: ListItemTitle,\n IconButton,\n};\n\ntype ListItem = ListItemRecord;\n\nexport type { ListRootProps, ListItemProps, IconButtonProps, ListItem, ListItemRecord };\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useMemo } from 'react';\n\nimport { Treegrid, type TreegridRootProps } from '@dxos/react-ui';\n\nimport { type TreeContextType, TreeProvider } from './TreeContext';\nimport { TreeItem, type TreeItemProps } from './TreeItem';\n\nexport type TreeProps<T = any> = { root?: T; path?: string[]; id: string } & TreeContextType &\n Partial<Pick<TreegridRootProps, 'gridTemplateColumns' | 'classNames'>> &\n Pick<TreeItemProps<T>, 'draggable' | 'renderColumns' | 'canDrop' | 'onOpenChange' | 'onSelect' | 'levelOffset'>;\n\nexport const Tree = <T = any,>({\n root,\n path,\n id,\n getItems,\n getProps,\n isOpen,\n isCurrent,\n draggable = false,\n gridTemplateColumns = '[tree-row-start] 1fr min-content [tree-row-end]',\n classNames,\n renderColumns,\n canDrop,\n onOpenChange,\n onSelect,\n levelOffset,\n}: TreeProps<T>) => {\n const context = useMemo(\n () => ({\n getItems,\n getProps,\n isOpen,\n isCurrent,\n }),\n [getItems, getProps, isOpen, isCurrent],\n );\n const items = getItems(root);\n const treePath = useMemo(() => (path ? [...path, id] : [id]), [id, path]);\n\n return (\n <Treegrid.Root gridTemplateColumns={gridTemplateColumns} classNames={classNames}>\n <TreeProvider value={context}>\n {items.map((item, index) => (\n <TreeItem\n key={item.id}\n item={item}\n last={index === items.length - 1}\n path={treePath}\n levelOffset={levelOffset}\n draggable={draggable}\n renderColumns={renderColumns}\n canDrop={canDrop}\n onOpenChange={onOpenChange}\n onSelect={onSelect}\n />\n ))}\n </TreeProvider>\n </Treegrid.Root>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { createContext, useContext } from 'react';\n\nimport { raise } from '@dxos/debug';\nimport { type Label } from '@dxos/react-ui';\n\nexport type PropsFromTreeItem = {\n id: string;\n label: Label;\n parentOf?: string[];\n icon?: string;\n disabled?: boolean;\n className?: string;\n headingClassName?: string;\n testId?: string;\n};\n\nexport type TreeContextType<T = any> = {\n getItems: (parent?: T) => T[];\n getProps: (item: T, parent: string[]) => PropsFromTreeItem;\n isOpen: (path: string[], item: T) => boolean;\n isCurrent: (path: string[], item: T) => boolean;\n};\n\nconst TreeContext = createContext<null | TreeContextType>(null);\n\nexport const useTree = () => useContext(TreeContext) ?? raise(new Error('TreeContext not found'));\n\nexport const TreeProvider = TreeContext.Provider;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { combine } from '@atlaskit/pragmatic-drag-and-drop/combine';\nimport { draggable, dropTargetForElements } from '@atlaskit/pragmatic-drag-and-drop/element/adapter';\nimport {\n attachInstruction,\n extractInstruction,\n type Instruction,\n type ItemMode,\n} from '@atlaskit/pragmatic-drag-and-drop-hitbox/tree-item';\nimport React, { memo, useCallback, useEffect, useMemo, useRef, useState, type FC, type KeyboardEvent } from 'react';\n\nimport { S } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { Treegrid, TreeItem as NaturalTreeItem } from '@dxos/react-ui';\nimport {\n ghostHover,\n hoverableControls,\n hoverableFocusedKeyboardControls,\n hoverableFocusedWithinControls,\n mx,\n} from '@dxos/react-ui-theme';\n\nimport { useTree } from './TreeContext';\nimport { TreeItemHeading } from './TreeItemHeading';\nimport { TreeItemToggle } from './TreeItemToggle';\nimport { DEFAULT_INDENTATION, paddingIndentation } from './helpers';\n\ntype TreeItemState = 'idle' | 'dragging' | 'preview' | 'parent-of-instruction';\n\nconst hoverableDescriptionIcons =\n '[--icons-color:inherit] hover-hover:[--icons-color:var(--description-text)] hover-hover:hover:[--icons-color:inherit] focus-within:[--icons-color:inherit]';\n\nexport const TreeDataSchema = S.Struct({\n id: S.String,\n path: S.Array(S.String),\n item: S.Any,\n});\n\nexport type TreeData = S.Schema.Type<typeof TreeDataSchema>;\n\nexport const isTreeData = (data: unknown): data is TreeData => S.is(TreeDataSchema)(data);\n\nexport type TreeItemProps<T = any> = {\n item: T;\n path: string[];\n levelOffset?: number;\n last: boolean;\n draggable?: boolean;\n renderColumns?: FC<{\n item: T;\n path: string[];\n open: boolean;\n menuOpen: boolean;\n setMenuOpen: (open: boolean) => void;\n }>;\n canDrop?: (source: TreeData, target: TreeData) => boolean;\n onOpenChange?: (params: { item: T; path: string[]; open: boolean }) => void;\n onSelect?: (params: { item: T; path: string[]; current: boolean; option: boolean }) => void;\n};\n\nexport const RawTreeItem = <T = any,>({\n item,\n path: _path,\n last,\n draggable: _draggable,\n renderColumns: Columns,\n canDrop,\n onOpenChange,\n onSelect,\n levelOffset = 2,\n}: TreeItemProps<T>) => {\n const { getItems, getProps, isOpen, isCurrent } = useTree();\n const items = getItems(item);\n const { id, label, parentOf, icon, disabled, className, headingClassName, testId } = getProps(item, _path);\n const path = useMemo(() => [..._path, id], [_path, id]);\n const open = isOpen(path, item);\n const current = isCurrent(path, item);\n const level = path.length - levelOffset;\n const isBranch = !!parentOf;\n const mode: ItemMode = last ? 'last-in-group' : open ? 'expanded' : 'standard';\n const data = useMemo(() => ({ id, path, item }) satisfies TreeData, [id, path, item]);\n\n const rowRef = useRef<HTMLDivElement | null>(null);\n const buttonRef = useRef<HTMLButtonElement | null>(null);\n const openRef = useRef(false);\n const cancelExpandRef = useRef<NodeJS.Timeout | null>(null);\n const [_state, setState] = useState<TreeItemState>('idle');\n const [instruction, setInstruction] = useState<Instruction | null>(null);\n const [menuOpen, setMenuOpen] = useState(false);\n\n const cancelExpand = useCallback(() => {\n if (cancelExpandRef.current) {\n clearTimeout(cancelExpandRef.current);\n cancelExpandRef.current = null;\n }\n }, []);\n\n useEffect(() => {\n if (!_draggable) {\n return;\n }\n\n invariant(buttonRef.current);\n\n // https://atlassian.design/components/pragmatic-drag-and-drop/core-package/adapters/element/about\n return combine(\n draggable({\n element: buttonRef.current,\n getInitialData: () => data,\n onDragStart: () => {\n setState('dragging');\n if (open) {\n openRef.current = true;\n onOpenChange?.({ item, path, open: false });\n }\n },\n onDrop: () => {\n setState('idle');\n if (openRef.current) {\n onOpenChange?.({ item, path, open: true });\n }\n },\n }),\n // https://github.com/atlassian/pragmatic-drag-and-drop/blob/main/packages/hitbox/constellation/index/about.mdx\n dropTargetForElements({\n element: buttonRef.current,\n getData: ({ input, element }) => {\n return attachInstruction(data, {\n input,\n element,\n indentPerLevel: DEFAULT_INDENTATION,\n currentLevel: level,\n mode,\n block: isBranch ? [] : ['make-child'],\n });\n },\n canDrop: ({ source }) => {\n const _canDrop = canDrop ?? (() => true);\n return source.element !== buttonRef.current && _canDrop(source.data as TreeData, data);\n },\n getIsSticky: () => true,\n onDrag: ({ self, source }) => {\n const instruction = extractInstruction(self.data);\n\n if (source.data.id !== id) {\n if (instruction?.type === 'make-child' && isBranch && !open && !cancelExpandRef.current) {\n cancelExpandRef.current = setTimeout(() => {\n onOpenChange?.({ item, path, open: true });\n }, 500);\n }\n\n if (instruction?.type !== 'make-child') {\n cancelExpand();\n }\n\n setInstruction(instruction);\n } else if (instruction?.type === 'reparent') {\n // TODO(wittjosiah): This is not occurring in the current implementation.\n setInstruction(instruction);\n } else {\n setInstruction(null);\n }\n },\n onDragLeave: () => {\n cancelExpand();\n setInstruction(null);\n },\n onDrop: () => {\n cancelExpand();\n setInstruction(null);\n },\n }),\n );\n }, [_draggable, item, id, mode, path, open, canDrop]);\n\n // Cancel expand on unmount.\n useEffect(() => () => cancelExpand(), [cancelExpand]);\n\n const handleOpenChange = useCallback(\n () => onOpenChange?.({ item, path, open: !open }),\n [onOpenChange, item, path, open],\n );\n\n const handleSelect = useCallback(\n (option = false) => {\n if (isBranch) {\n handleOpenChange();\n } else {\n rowRef.current?.focus();\n onSelect?.({ item, path, current: !current, option });\n }\n },\n [item, path, current, isBranch, handleOpenChange, onSelect],\n );\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent) => {\n switch (event.key) {\n case 'ArrowRight':\n isBranch && !open && handleOpenChange();\n break;\n case 'ArrowLeft':\n isBranch && open && handleOpenChange();\n break;\n case ' ':\n handleSelect(event.altKey);\n break;\n }\n },\n [isBranch, open, handleOpenChange, handleSelect],\n );\n\n return (\n <>\n <Treegrid.Row\n ref={rowRef}\n key={id}\n id={id}\n aria-labelledby={`${id}__label`}\n parentOf={parentOf?.join(Treegrid.PARENT_OF_SEPARATOR)}\n classNames={mx(\n 'grid grid-cols-subgrid col-[tree-row] mbs-0.5 aria-[current]:bg-groupSurface',\n hoverableControls,\n hoverableFocusedKeyboardControls,\n hoverableFocusedWithinControls,\n hoverableDescriptionIcons,\n ghostHover,\n className,\n )}\n data-itemid={id}\n data-testid={testId}\n // NOTE(thure): This is intentionally an empty string to for descendents to select by in the CSS\n // without alerting the user (except for in the correct link element). See also:\n // https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-current#description\n aria-current={current ? ('' as 'page') : undefined}\n onKeyDown={handleKeyDown}\n onContextMenu={(event) => {\n event.preventDefault();\n setMenuOpen(true);\n }}\n >\n <Treegrid.Cell\n indent\n classNames='relative grid grid-cols-subgrid col-[tree-row]'\n style={paddingIndentation(level)}\n >\n <div role='none' className='flex items-center'>\n <TreeItemToggle isBranch={isBranch} open={open} onToggle={handleOpenChange} />\n <TreeItemHeading\n ref={buttonRef}\n label={label}\n icon={icon}\n className={headingClassName}\n disabled={disabled}\n current={current}\n onSelect={handleSelect}\n />\n </div>\n {Columns && <Columns item={item} path={path} open={open} menuOpen={menuOpen} setMenuOpen={setMenuOpen} />}\n {instruction && <NaturalTreeItem.DropIndicator instruction={instruction} gap={2} />}\n </Treegrid.Cell>\n </Treegrid.Row>\n {open &&\n items.map((item, index) => (\n <TreeItem\n key={item.id}\n item={item}\n path={path}\n last={index === items.length - 1}\n draggable={_draggable}\n renderColumns={Columns}\n canDrop={canDrop}\n onOpenChange={onOpenChange}\n onSelect={onSelect}\n />\n ))}\n </>\n );\n};\n\nexport const TreeItem = memo(RawTreeItem) as FC<TreeItemProps>;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { type KeyboardEvent, type MouseEvent, forwardRef, memo, useCallback } from 'react';\n\nimport { Button, Icon, toLocalizedString, useTranslation, type Label } from '@dxos/react-ui';\nimport { TextTooltip } from '@dxos/react-ui-text-tooltip';\nimport { mx } from '@dxos/react-ui-theme';\n\n// TODO(wittjosiah): Consider whether there should be a separate disabled prop which was visually distinct\n// rather than just making the item unselectable.\nexport type NavTreeItemHeadingProps = {\n label: Label;\n icon?: string;\n className?: string;\n disabled?: boolean;\n current?: boolean;\n onSelect?: (option: boolean) => void;\n};\n\nexport const TreeItemHeading = memo(\n forwardRef<HTMLButtonElement, NavTreeItemHeadingProps>(\n ({ label, icon, className, disabled, current, onSelect }, forwardedRef) => {\n const { t } = useTranslation();\n\n const handleSelect = useCallback(\n (event: MouseEvent) => {\n onSelect?.(event.altKey);\n },\n [onSelect],\n );\n\n const handleButtonKeydown = useCallback(\n (event: KeyboardEvent) => {\n if (event.key === ' ' || event.key === 'Enter') {\n event.preventDefault();\n event.stopPropagation();\n onSelect?.(event.altKey);\n }\n },\n [onSelect],\n );\n\n return (\n <TextTooltip\n text={toLocalizedString(label, t)}\n side='bottom'\n truncateQuery='span[data-tooltip]'\n onlyWhenTruncating\n asChild\n ref={forwardedRef}\n >\n <Button\n data-testid='treeItem.heading'\n variant='ghost'\n density='fine'\n classNames={mx(\n 'grow gap-2 pis-0.5 hover:bg-transparent dark:hover:bg-transparent',\n 'disabled:cursor-default disabled:opacity-100',\n className,\n )}\n disabled={disabled}\n onClick={handleSelect}\n onKeyDown={handleButtonKeydown}\n {...(current && { 'aria-current': 'location' })}\n >\n {icon && <Icon icon={icon ?? 'ph--placeholder--regular'} size={5} classNames='mlb-1' />}\n <span className='flex-1 is-0 truncate text-start text-sm font-normal' data-tooltip>\n {toLocalizedString(label, t)}\n </span>\n </Button>\n </TextTooltip>\n );\n },\n ),\n);\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { forwardRef, memo } from 'react';\n\nimport { Button, Icon } from '@dxos/react-ui';\nimport { mx } from '@dxos/react-ui-theme';\n\nexport type TreeItemToggleProps = {\n open?: boolean;\n isBranch?: boolean;\n onToggle?: () => void;\n hidden?: boolean;\n};\n\nexport const TreeItemToggle = memo(\n forwardRef<HTMLButtonElement, TreeItemToggleProps>(({ open, isBranch, hidden, onToggle }, forwardedRef) => {\n return (\n <Button\n ref={forwardedRef}\n data-testid='treeItem.toggle'\n aria-expanded={open}\n variant='ghost'\n density='fine'\n classNames={mx('is-6 pli-0 dx-focus-ring-inset', hidden ? 'hidden' : !isBranch && 'invisible')}\n onClick={onToggle}\n >\n <Icon\n icon='ph--caret-right--regular'\n size={3}\n classNames={mx('transition duration-200', open && 'rotate-90')}\n />\n </Button>\n );\n }),\n);\n", "//\n// Copyright 2024 DXOS.org\n//\n\nexport const DEFAULT_INDENTATION = 8;\n\nexport const paddingIndentation = (level: number, indentation = DEFAULT_INDENTATION) => ({\n paddingInlineStart: `${(level - 1) * indentation}px`,\n});\n", "//\n// Copyright 2023 DXOS.org\n//\n\nconst SEPARATOR = '~';\n\nexport const Path = {\n create: (...args: string[]) => args.join(SEPARATOR),\n\n parts: (path: string) => path.split(SEPARATOR),\n length: (path: string) => path.split(SEPARATOR).length,\n first: (path: string) => path.split(SEPARATOR)[0] ?? path,\n last: (path: string) => path.split(SEPARATOR).at(-1) ?? path,\n parent: (path: string) => path.split(SEPARATOR).slice(0, -1).join(SEPARATOR),\n\n hasRoot: (path: string, id: string) => Path.first(path) === id,\n hasChild: (path: string, compare: string) => Path.parent(compare) === path,\n hasDescendent: (path: string, compare: string) => compare !== path && compare.startsWith(path),\n siblings: (path: string, compare: string) => Path.parent(path) === Path.parent(compare),\n onPath: (path: string, id: string) => Path.parts(path).includes(id),\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as AccordionPrimitive from '@radix-ui/react-accordion';\nimport { createContext } from '@radix-ui/react-context';\nimport React, { type PropsWithChildren } from 'react';\n\nimport { Icon, type ThemedClassName } from '@dxos/react-ui';\nimport { mx } from '@dxos/react-ui-theme';\n\nimport { useAccordionContext } from './AccordionRoot';\nimport { type ListItemRecord } from '../List';\n\nconst ACCORDION_ITEM_NAME = 'AccordionItem';\n\ntype AccordionItemContext<T extends ListItemRecord> = {\n item: T;\n};\n\nexport const [AccordionItemProvider, useAccordionItemContext] =\n createContext<AccordionItemContext<any>>(ACCORDION_ITEM_NAME);\n\nexport type AccordionItemProps<T extends ListItemRecord> = ThemedClassName<PropsWithChildren<{ item: T }>>;\n\nexport const AccordionItem = <T extends ListItemRecord>({ children, classNames, item }: AccordionItemProps<T>) => {\n const { getId } = useAccordionContext(ACCORDION_ITEM_NAME);\n\n return (\n <AccordionItemProvider {...{ item }}>\n <AccordionPrimitive.Item value={getId(item)} className={mx('overflow-hidden', classNames)}>\n {children}\n </AccordionPrimitive.Item>\n </AccordionItemProvider>\n );\n};\n\nexport type AccordionItemHeaderProps = ThemedClassName<AccordionPrimitive.AccordionHeaderProps>;\n\nexport const AccordionItemHeader = ({ classNames, children, ...props }: AccordionItemHeaderProps) => {\n return (\n <AccordionPrimitive.Header {...props} className={mx(classNames)}>\n <AccordionPrimitive.Trigger className='group flex items-center p-2 dx-focus-ring-inset is-full text-start'>\n {children}\n <Icon\n icon='ph--caret-right--regular'\n size={4}\n classNames='transition-transform duration-200 group-data-[state=open]:rotate-90'\n />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n );\n};\n\nexport type AccordionItemBodyProps = ThemedClassName<PropsWithChildren>;\n\nexport const AccordionItemBody = ({ children, classNames }: AccordionItemBodyProps) => {\n return (\n <AccordionPrimitive.Content className='overflow-hidden data-[state=closed]:animate-slideUp data-[state=open]:animate-slideDown'>\n <div role='none' className={mx('p-2', classNames)}>\n {children}\n </div>\n </AccordionPrimitive.Content>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as AccordionPrimitive from '@radix-ui/react-accordion';\nimport { createContext } from '@radix-ui/react-context';\nimport React, { type ReactNode } from 'react';\n\nimport { type ThemedClassName } from '@dxos/react-ui';\nimport { mx } from '@dxos/react-ui-theme';\n\nimport { type ListItemRecord } from '../List';\n\ntype AccordionContext<T extends ListItemRecord> = {\n getId: (item: T) => string;\n};\n\nconst ACCORDION_NAME = 'Accordion';\n\nexport const [AccordionProvider, useAccordionContext] = createContext<AccordionContext<any>>(ACCORDION_NAME);\n\nexport type AccordionRendererProps<T extends ListItemRecord> = {\n items: T[];\n};\n\nconst defaultGetId = <T extends ListItemRecord>(item: T) => (item as any)?.id;\n\nexport type AccordionRootProps<T extends ListItemRecord> = ThemedClassName<\n {\n children?: (props: AccordionRendererProps<T>) => ReactNode;\n items?: T[];\n } & Partial<Pick<AccordionContext<T>, 'getId'>>\n>;\n\nexport const AccordionRoot = <T extends ListItemRecord>({\n classNames,\n items,\n getId = defaultGetId,\n children,\n value,\n defaultValue,\n onValueChange,\n}: AccordionRootProps<T> &\n Pick<AccordionPrimitive.AccordionMultipleProps, 'value' | 'defaultValue' | 'onValueChange'>) => {\n return (\n <AccordionProvider {...{ getId }}>\n <AccordionPrimitive.Root\n type='multiple'\n value={value}\n defaultValue={defaultValue}\n onValueChange={onValueChange}\n className={mx(classNames)}\n >\n {children?.({ items: items ?? [] })}\n </AccordionPrimitive.Root>\n </AccordionProvider>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { AccordionItem, AccordionItemHeader, AccordionItemBody } from './AccordionItem';\nimport { AccordionRoot } from './AccordionRoot';\n\n// TODO(burdon): Next iteration should be based on Radix UI Accordion:\n// https://www.radix-ui.com/primitives/docs/components/accordion\n// TODO(burdon): Support key navigation.\n\nexport const Accordion = {\n Root: AccordionRoot,\n Item: AccordionItem,\n ItemHeader: AccordionItemHeader,\n ItemBody: AccordionItemBody,\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { combine } from '@atlaskit/pragmatic-drag-and-drop/combine';\nimport { draggable, dropTargetForElements } from '@atlaskit/pragmatic-drag-and-drop/element/adapter';\nimport { setCustomNativeDragPreview } from '@atlaskit/pragmatic-drag-and-drop/element/set-custom-native-drag-preview';\nimport {\n type Edge,\n attachClosestEdge,\n extractClosestEdge,\n} from '@atlaskit/pragmatic-drag-and-drop-hitbox/closest-edge';\nimport { createContext } from '@radix-ui/react-context';\nimport React, {\n type ComponentProps,\n type HTMLAttributes,\n type MutableRefObject,\n type PropsWithChildren,\n type ReactNode,\n forwardRef,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport { createPortal } from 'react-dom';\n\nimport { invariant } from '@dxos/invariant';\nimport { Icon, type ThemedClassName, ListItem as NaturalListItem } from '@dxos/react-ui';\nimport { mx } from '@dxos/react-ui-theme';\n\nimport { useListContext } from './ListRoot';\n\nexport type ListItemRecord = {};\n\nexport type ItemDragState =\n | {\n type: 'idle';\n }\n | {\n type: 'preview';\n container: HTMLElement;\n }\n | {\n type: 'is-dragging';\n }\n | {\n type: 'is-dragging-over';\n closestEdge: Edge | null;\n };\n\nexport const idle: ItemDragState = { type: 'idle' };\n\nconst stateStyles: { [Key in ItemDragState['type']]?: HTMLAttributes<HTMLDivElement>['className'] } = {\n 'is-dragging': 'opacity-50',\n};\n\ntype ListItemContext<T extends ListItemRecord> = {\n item: T;\n dragHandleRef: MutableRefObject<HTMLElement | null>;\n};\n\n/**\n * Default context defined for ListItemDragPreview, which is defined outside of ListItem.\n */\nconst defaultContext: ListItemContext<any> = {} as any;\n\nconst LIST_ITEM_NAME = 'ListItem';\n\nexport const [ListItemProvider, useListItemContext] = createContext<ListItemContext<any>>(\n LIST_ITEM_NAME,\n defaultContext,\n);\n\nexport type ListItemProps<T extends ListItemRecord> = ThemedClassName<\n PropsWithChildren<{\n item: T;\n }> &\n HTMLAttributes<HTMLDivElement>\n>;\n\n/**\n * Draggable list item.\n */\nexport const ListItem = <T extends ListItemRecord>({ children, classNames, item, ...props }: ListItemProps<T>) => {\n const { isItem, dragPreview, setState: setRootState } = useListContext(LIST_ITEM_NAME);\n const ref = useRef<HTMLDivElement | null>(null);\n const dragHandleRef = useRef<HTMLElement | null>(null);\n const [state, setState] = useState<ItemDragState>(idle);\n useEffect(() => {\n const element = ref.current;\n invariant(element);\n return combine(\n //\n // https://atlassian.design/components/pragmatic-drag-and-drop/core-package/adapters/element/about#draggable\n //\n draggable({\n element,\n dragHandle: dragHandleRef.current!,\n getInitialData: () => item,\n onGenerateDragPreview: dragPreview\n ? ({ nativeSetDragImage, source }) => {\n const rect = source.element.getBoundingClientRect();\n setCustomNativeDragPreview({\n nativeSetDragImage,\n getOffset: ({ container }) => {\n const { height } = container.getBoundingClientRect();\n return {\n x: 20,\n y: height / 2,\n };\n },\n render: ({ container }) => {\n container.style.width = rect.width + 'px';\n setState({ type: 'preview', container });\n setRootState({ type: 'preview', container, item });\n return () => {}; // TODO(burdon): Cleanup.\n },\n });\n }\n : undefined,\n onDragStart: () => {\n setState({ type: 'is-dragging' });\n setRootState({ type: 'is-dragging', item });\n },\n onDrop: () => {\n setState(idle);\n setRootState(idle);\n },\n }),\n\n //\n // https://atlassian.design/components/pragmatic-drag-and-drop/core-package/adapters/element/about#drop-target-for-elements\n //\n dropTargetForElements({\n element,\n canDrop: ({ source }) => {\n return source.element !== element && isItem(source.data);\n },\n getData: ({ input }) => {\n return attachClosestEdge(item, { element, input, allowedEdges: ['top', 'bottom'] });\n },\n getIsSticky: () => true,\n onDragEnter: ({ self }) => {\n const closestEdge = extractClosestEdge(self.data);\n setState({ type: 'is-dragging-over', closestEdge });\n },\n onDrag: ({ self }) => {\n const closestEdge = extractClosestEdge(self.data);\n setState((current) => {\n if (current.type === 'is-dragging-over' && current.closestEdge === closestEdge) {\n return current;\n }\n return { type: 'is-dragging-over', closestEdge };\n });\n },\n onDragLeave: () => {\n setState(idle);\n },\n onDrop: () => {\n setState(idle);\n },\n }),\n );\n }, [item]);\n\n return (\n <ListItemProvider item={item} dragHandleRef={dragHandleRef}>\n <div role='none' className='relative'>\n <div\n ref={ref}\n role='listitem'\n className={mx('flex overflow-hidden', classNames, stateStyles[state.type])}\n {...props}\n >\n {children}\n </div>\n {state.type === 'is-dragging-over' && state.closestEdge && (\n <NaturalListItem.DropIndicator edge={state.closestEdge} />\n )}\n </div>\n </ListItemProvider>\n );\n};\n\n//\n// List item components\n//\n\nexport type IconButtonProps = ThemedClassName<ComponentProps<'button'>> & { icon: string };\n\nexport const IconButton = forwardRef<HTMLButtonElement, IconButtonProps>(\n ({ classNames, icon, ...props }, forwardedRef) => {\n return (\n <button ref={forwardedRef} className={mx('flex items-center justify-center', classNames)} {...props}>\n <Icon icon={icon} classNames='cursor-pointer' size={4} />\n </button>\n );\n },\n);\n\nexport const ListItemDeleteButton = ({\n autoHide = true,\n classNames,\n disabled,\n icon = 'ph--x--regular',\n ...props\n}: Partial<Pick<IconButtonProps, 'icon'>> & Omit<IconButtonProps, 'icon'> & { autoHide?: boolean }) => {\n const { state } = useListContext('DELETE_BUTTON');\n const isDisabled = state.type !== 'idle' || disabled;\n return (\n <IconButton\n icon={icon}\n disabled={isDisabled}\n classNames={[classNames, autoHide && disabled && 'hidden']}\n {...props}\n />\n );\n};\n\nexport const ListItemButton = ({\n autoHide = true,\n classNames,\n disabled,\n ...props\n}: IconButtonProps & { autoHide?: boolean }) => {\n const { state } = useListContext('ITEM_BUTTON');\n const isDisabled = state.type !== 'idle' || disabled;\n return <IconButton disabled={isDisabled} classNames={[classNames, autoHide && disabled && 'hidden']} {...props} />;\n};\n\nexport const ListItemDragHandle = () => {\n const { dragHandleRef } = useListItemContext('DRAG_HANDLE');\n return <IconButton ref={dragHandleRef as any} icon='ph--dots-six-vertical--regular' />;\n};\n\nexport const ListItemDragPreview = <T extends ListItemRecord>({\n children,\n}: {\n children: ({ item }: { item: T }) => ReactNode;\n}) => {\n const { state } = useListContext('DRAG_PREVIEW');\n return state?.type === 'preview' ? createPortal(children({ item: state.item }), state.container) : null;\n};\n\nexport const ListItemWrapper = ({ classNames, children }: ThemedClassName<PropsWithChildren>) => (\n <div className={mx('flex is-full gap-2', classNames)}>{children}</div>\n);\n\nexport const ListItemTitle = ({\n classNames,\n children,\n ...props\n}: ThemedClassName<PropsWithChildren<ComponentProps<'div'>>>) => (\n <div className={mx('flex grow items-center truncate', classNames)} {...props}>\n {children}\n </div>\n);\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { monitorForElements } from '@atlaskit/pragmatic-drag-and-drop/element/adapter';\nimport { extractClosestEdge } from '@atlaskit/pragmatic-drag-and-drop-hitbox/closest-edge';\nimport { getReorderDestinationIndex } from '@atlaskit/pragmatic-drag-and-drop-hitbox/util/get-reorder-destination-index';\nimport { createContext } from '@radix-ui/react-context';\nimport React, { type ReactNode, useCallback, useEffect, useState } from 'react';\n\nimport { idle, type ItemDragState, type ListItemRecord } from './ListItem';\n\ntype ListContext<T extends ListItemRecord> = {\n // TODO(burdon): Rename drag state.\n state: ItemDragState & { item?: T };\n setState: (state: ItemDragState & { item?: T }) => void;\n dragPreview?: boolean;\n isItem: (item: any) => boolean;\n getId?: (item: T) => string; // TODO(burdon): Require if T doesn't conform to type.\n};\n\nconst LIST_NAME = 'List';\n\nexport const [ListProvider, useListContext] = createContext<ListContext<any>>(LIST_NAME);\n\nexport type ListRendererProps<T extends ListItemRecord> = {\n state: ListContext<T>['state'];\n items: T[];\n};\n\nconst defaultGetId = <T extends ListItemRecord>(item: T) => (item as any)?.id;\n\nexport type ListRootProps<T extends ListItemRecord> = {\n children?: (props: ListRendererProps<T>) => ReactNode;\n items?: T[];\n onMove?: (fromIndex: number, toIndex: number) => void;\n} & Pick<ListContext<T>, 'isItem' | 'getId' | 'dragPreview'>;\n\nexport const ListRoot = <T extends ListItemRecord>({\n children,\n items,\n isItem,\n getId = defaultGetId,\n onMove,\n ...props\n}: ListRootProps<T>) => {\n const isEqual = useCallback(\n (a: T, b: T) => {\n const idA = getId?.(a);\n const idB = getId?.(b);\n\n if (idA !== undefined && idB !== undefined) {\n return idA === idB;\n } else {\n // Fallback for primitive values or when getId fails.\n // NOTE(ZaymonFC): After drag and drop, pragmatic internally serializes drop targets which breaks reference equality.\n // You must provide an `getId` function that returns a stable identifier for your items.\n return a === b;\n }\n },\n [getId],\n );\n\n const [state, setState] = useState<ListContext<T>['state']>(idle);\n useEffect(() => {\n if (!items) {\n return;\n }\n\n return monitorForElements({\n canMonitor: ({ source }) => isItem(source.data),\n onDrop: ({ location, source }) => {\n const target = location.current.dropTargets[0];\n if (!target) {\n return;\n }\n\n const sourceData = source.data;\n const targetData = target.data;\n\n if (!isItem(sourceData) || !isItem(targetData)) {\n return;\n }\n\n const sourceIdx = items.findIndex((item) => isEqual(item, sourceData as T));\n const targetIdx = items.findIndex((item) => isEqual(item, targetData as T));\n if (targetIdx < 0 || sourceIdx < 0) {\n return;\n }\n const closestEdgeOfTarget = extractClosestEdge(targetData);\n const destinationIndex = getReorderDestinationIndex({\n closestEdgeOfTarget,\n startIndex: sourceIdx,\n indexOfTarget: targetIdx,\n axis: 'vertical',\n });\n\n onMove?.(sourceIdx, destinationIndex);\n },\n });\n }, [items, isEqual, onMove]);\n\n return (\n <ListProvider {...{ state, setState, isItem, ...props }}>{children?.({ state, items: items ?? [] })}</ListProvider>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport {\n IconButton,\n type IconButtonProps,\n ListItem,\n ListItemDeleteButton,\n ListItemButton,\n ListItemDragHandle,\n ListItemDragPreview,\n type ListItemProps,\n type ListItemRecord,\n ListItemTitle,\n ListItemWrapper,\n} from './ListItem';\nimport { ListRoot, type ListRootProps } from './ListRoot';\n\n// TODO(burdon): Multi-select model.\n// TODO(burdon): Key nav.\n// TODO(burdon): Animation.\n// TODO(burdon): Constrain axis.\n// TODO(burdon): Tree view.\n// TODO(burdon): Fix autoscroll while dragging.\n\n/**\n * Draggable list.\n * Ref: https://github.com/atlassian/pragmatic-drag-and-drop\n * Ref: https://github.com/alexreardon/pdnd-react-tailwind/blob/main/src/task.tsx\n */\nexport const List = {\n Root: ListRoot,\n Item: ListItem,\n ItemDragPreview: ListItemDragPreview,\n ItemWrapper: ListItemWrapper,\n ItemDragHandle: ListItemDragHandle,\n ItemDeleteButton: ListItemDeleteButton,\n ItemButton: ListItemButton,\n ItemTitle: ListItemTitle,\n IconButton,\n};\n\ntype ListItem = ListItemRecord;\n\nexport type { ListRootProps, ListItemProps, IconButtonProps, ListItem, ListItemRecord };\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useMemo } from 'react';\n\nimport { Treegrid, type TreegridRootProps } from '@dxos/react-ui';\n\nimport { type TreeContextType, TreeProvider } from './TreeContext';\nimport { TreeItem, type TreeItemProps } from './TreeItem';\n\nexport type TreeProps<T = any> = { root?: T; path?: string[]; id: string } & TreeContextType &\n Partial<Pick<TreegridRootProps, 'gridTemplateColumns' | 'classNames'>> &\n Pick<TreeItemProps<T>, 'draggable' | 'renderColumns' | 'canDrop' | 'onOpenChange' | 'onSelect' | 'levelOffset'>;\n\nexport const Tree = <T = any,>({\n root,\n path,\n id,\n getItems,\n getProps,\n isOpen,\n isCurrent,\n draggable = false,\n gridTemplateColumns = '[tree-row-start] 1fr min-content [tree-row-end]',\n classNames,\n renderColumns,\n canDrop,\n onOpenChange,\n onSelect,\n levelOffset,\n}: TreeProps<T>) => {\n const context = useMemo(\n () => ({\n getItems,\n getProps,\n isOpen,\n isCurrent,\n }),\n [getItems, getProps, isOpen, isCurrent],\n );\n const items = getItems(root);\n const treePath = useMemo(() => (path ? [...path, id] : [id]), [id, path]);\n\n return (\n <Treegrid.Root gridTemplateColumns={gridTemplateColumns} classNames={classNames}>\n <TreeProvider value={context}>\n {items.map((item, index) => (\n <TreeItem\n key={item.id}\n item={item}\n last={index === items.length - 1}\n path={treePath}\n levelOffset={levelOffset}\n draggable={draggable}\n renderColumns={renderColumns}\n canDrop={canDrop}\n onOpenChange={onOpenChange}\n onSelect={onSelect}\n />\n ))}\n </TreeProvider>\n </Treegrid.Root>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { createContext, useContext } from 'react';\n\nimport { raise } from '@dxos/debug';\nimport { type Label } from '@dxos/react-ui';\n\nexport type PropsFromTreeItem = {\n id: string;\n label: Label;\n parentOf?: string[];\n icon?: string;\n disabled?: boolean;\n className?: string;\n headingClassName?: string;\n testId?: string;\n};\n\nexport type TreeContextType<T = any> = {\n getItems: (parent?: T) => T[];\n getProps: (item: T, parent: string[]) => PropsFromTreeItem;\n isOpen: (path: string[], item: T) => boolean;\n isCurrent: (path: string[], item: T) => boolean;\n};\n\nconst TreeContext = createContext<null | TreeContextType>(null);\n\nexport const useTree = () => useContext(TreeContext) ?? raise(new Error('TreeContext not found'));\n\nexport const TreeProvider = TreeContext.Provider;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { combine } from '@atlaskit/pragmatic-drag-and-drop/combine';\nimport { draggable, dropTargetForElements } from '@atlaskit/pragmatic-drag-and-drop/element/adapter';\nimport {\n attachInstruction,\n extractInstruction,\n type Instruction,\n type ItemMode,\n} from '@atlaskit/pragmatic-drag-and-drop-hitbox/tree-item';\nimport React, { memo, useCallback, useEffect, useMemo, useRef, useState, type FC, type KeyboardEvent } from 'react';\n\nimport { S } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { Treegrid, TreeItem as NaturalTreeItem } from '@dxos/react-ui';\nimport {\n ghostHover,\n hoverableControls,\n hoverableFocusedKeyboardControls,\n hoverableFocusedWithinControls,\n mx,\n} from '@dxos/react-ui-theme';\n\nimport { useTree } from './TreeContext';\nimport { TreeItemHeading } from './TreeItemHeading';\nimport { TreeItemToggle } from './TreeItemToggle';\nimport { DEFAULT_INDENTATION, paddingIndentation } from './helpers';\n\ntype TreeItemState = 'idle' | 'dragging' | 'preview' | 'parent-of-instruction';\n\nconst hoverableDescriptionIcons =\n '[--icons-color:inherit] hover-hover:[--icons-color:var(--description-text)] hover-hover:hover:[--icons-color:inherit] focus-within:[--icons-color:inherit]';\n\nexport const TreeDataSchema = S.Struct({\n id: S.String,\n path: S.Array(S.String),\n item: S.Any,\n});\n\nexport type TreeData = S.Schema.Type<typeof TreeDataSchema>;\n\nexport const isTreeData = (data: unknown): data is TreeData => S.is(TreeDataSchema)(data);\n\nexport type TreeItemProps<T = any> = {\n item: T;\n path: string[];\n levelOffset?: number;\n last: boolean;\n draggable?: boolean;\n renderColumns?: FC<{\n item: T;\n path: string[];\n open: boolean;\n menuOpen: boolean;\n setMenuOpen: (open: boolean) => void;\n }>;\n canDrop?: (source: TreeData, target: TreeData) => boolean;\n onOpenChange?: (params: { item: T; path: string[]; open: boolean }) => void;\n onSelect?: (params: { item: T; path: string[]; current: boolean; option: boolean }) => void;\n};\n\nexport const RawTreeItem = <T = any,>({\n item,\n path: _path,\n last,\n draggable: _draggable,\n renderColumns: Columns,\n canDrop,\n onOpenChange,\n onSelect,\n levelOffset = 2,\n}: TreeItemProps<T>) => {\n const { getItems, getProps, isOpen, isCurrent } = useTree();\n const items = getItems(item);\n const { id, label, parentOf, icon, disabled, className, headingClassName, testId } = getProps(item, _path);\n const path = useMemo(() => [..._path, id], [_path, id]);\n const open = isOpen(path, item);\n const current = isCurrent(path, item);\n const level = path.length - levelOffset;\n const isBranch = !!parentOf;\n const mode: ItemMode = last ? 'last-in-group' : open ? 'expanded' : 'standard';\n const data = useMemo(() => ({ id, path, item }) satisfies TreeData, [id, path, item]);\n\n const rowRef = useRef<HTMLDivElement | null>(null);\n const buttonRef = useRef<HTMLButtonElement | null>(null);\n const openRef = useRef(false);\n const cancelExpandRef = useRef<NodeJS.Timeout | null>(null);\n const [_state, setState] = useState<TreeItemState>('idle');\n const [instruction, setInstruction] = useState<Instruction | null>(null);\n const [menuOpen, setMenuOpen] = useState(false);\n\n const cancelExpand = useCallback(() => {\n if (cancelExpandRef.current) {\n clearTimeout(cancelExpandRef.current);\n cancelExpandRef.current = null;\n }\n }, []);\n\n useEffect(() => {\n if (!_draggable) {\n return;\n }\n\n invariant(buttonRef.current);\n\n // https://atlassian.design/components/pragmatic-drag-and-drop/core-package/adapters/element/about\n return combine(\n draggable({\n element: buttonRef.current,\n getInitialData: () => data,\n onDragStart: () => {\n setState('dragging');\n if (open) {\n openRef.current = true;\n onOpenChange?.({ item, path, open: false });\n }\n },\n onDrop: () => {\n setState('idle');\n if (openRef.current) {\n onOpenChange?.({ item, path, open: true });\n }\n },\n }),\n // https://github.com/atlassian/pragmatic-drag-and-drop/blob/main/packages/hitbox/constellation/index/about.mdx\n dropTargetForElements({\n element: buttonRef.current,\n getData: ({ input, element }) => {\n return attachInstruction(data, {\n input,\n element,\n indentPerLevel: DEFAULT_INDENTATION,\n currentLevel: level,\n mode,\n block: isBranch ? [] : ['make-child'],\n });\n },\n canDrop: ({ source }) => {\n const _canDrop = canDrop ?? (() => true);\n return source.element !== buttonRef.current && _canDrop(source.data as TreeData, data);\n },\n getIsSticky: () => true,\n onDrag: ({ self, source }) => {\n const instruction = extractInstruction(self.data);\n\n if (source.data.id !== id) {\n if (instruction?.type === 'make-child' && isBranch && !open && !cancelExpandRef.current) {\n cancelExpandRef.current = setTimeout(() => {\n onOpenChange?.({ item, path, open: true });\n }, 500);\n }\n\n if (instruction?.type !== 'make-child') {\n cancelExpand();\n }\n\n setInstruction(instruction);\n } else if (instruction?.type === 'reparent') {\n // TODO(wittjosiah): This is not occurring in the current implementation.\n setInstruction(instruction);\n } else {\n setInstruction(null);\n }\n },\n onDragLeave: () => {\n cancelExpand();\n setInstruction(null);\n },\n onDrop: () => {\n cancelExpand();\n setInstruction(null);\n },\n }),\n );\n }, [_draggable, item, id, mode, path, open, canDrop]);\n\n // Cancel expand on unmount.\n useEffect(() => () => cancelExpand(), [cancelExpand]);\n\n const handleOpenChange = useCallback(\n () => onOpenChange?.({ item, path, open: !open }),\n [onOpenChange, item, path, open],\n );\n\n const handleSelect = useCallback(\n (option = false) => {\n if (isBranch) {\n handleOpenChange();\n } else {\n rowRef.current?.focus();\n onSelect?.({ item, path, current: !current, option });\n }\n },\n [item, path, current, isBranch, handleOpenChange, onSelect],\n );\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent) => {\n switch (event.key) {\n case 'ArrowRight':\n isBranch && !open && handleOpenChange();\n break;\n case 'ArrowLeft':\n isBranch && open && handleOpenChange();\n break;\n case ' ':\n handleSelect(event.altKey);\n break;\n }\n },\n [isBranch, open, handleOpenChange, handleSelect],\n );\n\n return (\n <>\n <Treegrid.Row\n ref={rowRef}\n key={id}\n id={id}\n aria-labelledby={`${id}__label`}\n parentOf={parentOf?.join(Treegrid.PARENT_OF_SEPARATOR)}\n classNames={mx(\n 'grid grid-cols-subgrid col-[tree-row] mbs-0.5 aria-[current]:bg-groupSurface',\n hoverableControls,\n hoverableFocusedKeyboardControls,\n hoverableFocusedWithinControls,\n hoverableDescriptionIcons,\n ghostHover,\n className,\n )}\n data-itemid={id}\n data-testid={testId}\n // NOTE(thure): This is intentionally an empty string to for descendents to select by in the CSS\n // without alerting the user (except for in the correct link element). See also:\n // https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-current#description\n aria-current={current ? ('' as 'page') : undefined}\n onKeyDown={handleKeyDown}\n onContextMenu={(event) => {\n event.preventDefault();\n setMenuOpen(true);\n }}\n >\n <Treegrid.Cell\n indent\n classNames='relative grid grid-cols-subgrid col-[tree-row]'\n style={paddingIndentation(level)}\n >\n <div role='none' className='flex items-center'>\n <TreeItemToggle isBranch={isBranch} open={open} onToggle={handleOpenChange} />\n <TreeItemHeading\n ref={buttonRef}\n label={label}\n icon={icon}\n className={headingClassName}\n disabled={disabled}\n current={current}\n onSelect={handleSelect}\n />\n </div>\n {Columns && <Columns item={item} path={path} open={open} menuOpen={menuOpen} setMenuOpen={setMenuOpen} />}\n {instruction && <NaturalTreeItem.DropIndicator instruction={instruction} gap={2} />}\n </Treegrid.Cell>\n </Treegrid.Row>\n {open &&\n items.map((item, index) => (\n <TreeItem\n key={item.id}\n item={item}\n path={path}\n last={index === items.length - 1}\n draggable={_draggable}\n renderColumns={Columns}\n canDrop={canDrop}\n onOpenChange={onOpenChange}\n onSelect={onSelect}\n />\n ))}\n </>\n );\n};\n\nexport const TreeItem = memo(RawTreeItem) as FC<TreeItemProps>;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { type KeyboardEvent, type MouseEvent, forwardRef, memo, useCallback } from 'react';\n\nimport { Button, Icon, toLocalizedString, useTranslation, type Label } from '@dxos/react-ui';\nimport { TextTooltip } from '@dxos/react-ui-text-tooltip';\nimport { mx } from '@dxos/react-ui-theme';\n\n// TODO(wittjosiah): Consider whether there should be a separate disabled prop which was visually distinct\n// rather than just making the item unselectable.\nexport type NavTreeItemHeadingProps = {\n label: Label;\n icon?: string;\n className?: string;\n disabled?: boolean;\n current?: boolean;\n onSelect?: (option: boolean) => void;\n};\n\nexport const TreeItemHeading = memo(\n forwardRef<HTMLButtonElement, NavTreeItemHeadingProps>(\n ({ label, icon, className, disabled, current, onSelect }, forwardedRef) => {\n const { t } = useTranslation();\n\n const handleSelect = useCallback(\n (event: MouseEvent) => {\n onSelect?.(event.altKey);\n },\n [onSelect],\n );\n\n const handleButtonKeydown = useCallback(\n (event: KeyboardEvent) => {\n if (event.key === ' ' || event.key === 'Enter') {\n event.preventDefault();\n event.stopPropagation();\n onSelect?.(event.altKey);\n }\n },\n [onSelect],\n );\n\n return (\n <TextTooltip\n text={toLocalizedString(label, t)}\n side='bottom'\n truncateQuery='span[data-tooltip]'\n onlyWhenTruncating\n asChild\n ref={forwardedRef}\n >\n <Button\n data-testid='treeItem.heading'\n variant='ghost'\n density='fine'\n classNames={mx(\n 'grow gap-2 pis-0.5 hover:bg-transparent dark:hover:bg-transparent',\n 'disabled:cursor-default disabled:opacity-100',\n className,\n )}\n disabled={disabled}\n onClick={handleSelect}\n onKeyDown={handleButtonKeydown}\n {...(current && { 'aria-current': 'location' })}\n >\n {icon && <Icon icon={icon ?? 'ph--placeholder--regular'} size={5} classNames='mlb-1' />}\n <span className='flex-1 is-0 truncate text-start text-sm font-normal' data-tooltip>\n {toLocalizedString(label, t)}\n </span>\n </Button>\n </TextTooltip>\n );\n },\n ),\n);\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { forwardRef, memo } from 'react';\n\nimport { Button, Icon } from '@dxos/react-ui';\nimport { mx } from '@dxos/react-ui-theme';\n\nexport type TreeItemToggleProps = {\n open?: boolean;\n isBranch?: boolean;\n onToggle?: () => void;\n hidden?: boolean;\n};\n\nexport const TreeItemToggle = memo(\n forwardRef<HTMLButtonElement, TreeItemToggleProps>(({ open, isBranch, hidden, onToggle }, forwardedRef) => {\n return (\n <Button\n ref={forwardedRef}\n data-testid='treeItem.toggle'\n aria-expanded={open}\n variant='ghost'\n density='fine'\n classNames={mx('is-6 pli-0 dx-focus-ring-inset', hidden ? 'hidden' : !isBranch && 'invisible')}\n onClick={onToggle}\n >\n <Icon icon='ph--caret-right--bold' size={3} classNames={mx('transition duration-200', open && 'rotate-90')} />\n </Button>\n );\n }),\n);\n", "//\n// Copyright 2024 DXOS.org\n//\n\nexport const DEFAULT_INDENTATION = 8;\n\nexport const paddingIndentation = (level: number, indentation = DEFAULT_INDENTATION) => ({\n paddingInlineStart: `${(level - 1) * indentation}px`,\n});\n", "//\n// Copyright 2023 DXOS.org\n//\n\nconst SEPARATOR = '+';\n\nexport const Path = {\n create: (...args: string[]) => args.join(SEPARATOR),\n\n parts: (path: string) => path.split(SEPARATOR),\n length: (path: string) => path.split(SEPARATOR).length,\n first: (path: string) => path.split(SEPARATOR)[0] ?? path,\n last: (path: string) => path.split(SEPARATOR).at(-1) ?? path,\n parent: (path: string) => path.split(SEPARATOR).slice(0, -1).join(SEPARATOR),\n\n hasRoot: (path: string, id: string) => Path.first(path) === id,\n hasChild: (path: string, compare: string) => Path.parent(compare) === path,\n hasDescendent: (path: string, compare: string) => compare !== path && compare.startsWith(path),\n siblings: (path: string, compare: string) => Path.parent(path) === Path.parent(compare),\n onPath: (path: string, id: string) => Path.parts(path).includes(id),\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,0BAAoC;AACpC,2BAA8B;AAC9B,mBAA8C;AAE9C,sBAA2C;AAC3C,4BAAmB;ACLnB,yBAAoC;AACpC,IAAAA,wBAA8B;AAC9B,IAAAC,gBAAsC;AAGtC,IAAAC,yBAAmB;AELnB,qBAAwB;AACxB,qBAAiD;AACjD,4CAA2C;AAC3C,0BAIO;AACP,IAAAF,wBAA8B;AAC9B,IAAAC,gBAUO;AACP,uBAA6B;AAE7B,uBAA0B;AAC1B,IAAAE,mBAAwE;AACxE,IAAAD,yBAAmB;ACxBnB,IAAAE,kBAAmC;AACnC,IAAAC,uBAAmC;AACnC,2CAA2C;AAC3C,IAAAL,wBAA8B;AAC9B,IAAAC,gBAAwE;AEJxE,IAAAA,gBAA+B;AAE/B,IAAAE,mBAAiD;ACFjD,IAAAF,gBAA0C;AAE1C,mBAAsB;ACFtB,IAAAK,kBAAwB;AACxB,IAAAF,kBAAiD;AACjD,uBAKO;AACP,IAAAH,gBAA4G;AAE5G,yBAAkB;AAClB,IAAAM,oBAA0B;AAC1B,IAAAJ,mBAAsD;AACtD,IAAAD,yBAMO;ACnBP,IAAAD,gBAA0F;AAE1F,IAAAE,mBAA4E;AAC5E,mCAA4B;AAC5B,IAAAD,yBAAmB;ACJnB,IAAAD,gBAAwC;AAExC,IAAAE,mBAA6B;AAC7B,IAAAD,yBAAmB;ATUnB,IAAMM,iBAAiB;AAEhB,IAAM,CAACC,mBAAmBC,mBAAAA,QAAuBC,qCAAqCH,cAAAA;AAM7F,IAAMI,eAAe,CAA2BC,SAAaA,MAAcC;AASpE,IAAMC,gBAAgB,CAA2B,EACtDC,YACAC,OACAC,QAAQN,cACRO,UACAC,OACAC,cACAC,cAAa,MAE8E;AAC3F,SACE,8BAAAC,QAAA,cAACd,mBAAsB;IAAES;EAAM,GAC7B,8BAAAK,QAAA,cAAoBC,mBAAAA,MAAI;IACtBC,MAAK;IACLL;IACAC;IACAC;IACAI,eAAWC,2BAAGX,UAAAA;KAEbG,WAAW;IAAEF,OAAOA,SAAS,CAAA;EAAG,CAAA,CAAA,CAAA;AAIzC;AD3CA,IAAMW,sBAAsB;AAMrB,IAAM,CAACC,uBAAuBC,uBAAAA,QACnCnB,qBAAAA,eAAyCiB,mBAAAA;AAIpC,IAAMG,gBAAgB,CAA2B,EAAEZ,UAAUH,YAAYH,KAAI,MAAyB;AAC3G,QAAM,EAAEK,MAAK,IAAKR,oBAAoBkB,mBAAAA;AAEtC,SACEL,6BAAAA,QAAA,cAACM,uBAA0B;IAAEhB;EAAK,GAChCU,6BAAAA,QAAA,cAAoBS,oBAAAA,MAAI;IAACZ,OAAOF,MAAML,IAAAA;IAAOa,eAAWC,sBAAAA,IAAG,mBAAmBX,UAAAA;KAC3EG,QAAAA,CAAAA;AAIT;AAIO,IAAMc,sBAAsB,CAAC,EAAEjB,YAAYG,UAAU,GAAGe,MAAAA,MAAiC;AAC9F,SACEX,6BAAAA,QAAA,cAAoBY,oBAAAA,QAAM;IAAE,GAAGD;IAAOR,eAAWC,sBAAAA,IAAGX,UAAAA;KAClDO,6BAAAA,QAAA,cAAoBa,oBAAAA,SAAO;IAACV,WAAU;KACnCP,UACDI,6BAAAA,QAAA,cAACc,sBAAAA;IACCC,MAAK;IACLC,MAAM;IACNvB,YAAW;;AAKrB;AAIO,IAAMwB,oBAAoB,CAAC,EAAErB,UAAUH,WAAU,MAA0B;AAChF,SACEO,6BAAAA,QAAA,cAAoBkB,oBAAAA,SAAO;IAACf,WAAU;KACpCH,6BAAAA,QAAA,cAACmB,OAAAA;IAAIC,MAAK;IAAOjB,eAAWC,sBAAAA,IAAG,OAAOX,UAAAA;KACnCG,QAAAA,CAAAA;AAIT;AErDO,IAAMyB,YAAY;EACvBpB,MAAMT;EACNiB,MAAMD;EACNc,YAAYZ;EACZa,UAAUN;AACZ;AEKA,IAAMO,YAAY;AAEX,IAAM,CAACC,cAAcC,cAAAA,QAAkBtC,sBAAAA,eAAgCoC,SAAAA;AAO9E,IAAMnC,gBAAe,CAA2BC,SAAaA,MAAcC;AAQpE,IAAMoC,WAAW,CAA2B,EACjD/B,UACAF,OACAkC,QACAjC,QAAQN,eACRwC,QACA,GAAGlB,MAAAA,MACc;AACjB,QAAMmB,cAAUC,2BACd,CAACC,GAAMC,MAAAA;AACL,UAAMC,MAAMvC,QAAQqC,CAAAA;AACpB,UAAMG,MAAMxC,QAAQsC,CAAAA;AAEpB,QAAIC,QAAQE,UAAaD,QAAQC,QAAW;AAC1C,aAAOF,QAAQC;IACjB,OAAO;AAIL,aAAOH,MAAMC;IACf;EACF,GACA;IAACtC;GAAM;AAGT,QAAM,CAAC0C,OAAOC,QAAAA,QAAYC,wBAAkCC,IAAAA;AAC5DC,+BAAU,MAAA;AACR,QAAI,CAAC/C,OAAO;AACV;IACF;AAEA,eAAOgD,oCAAmB;MACxBC,YAAY,CAAC,EAAEC,OAAM,MAAOhB,OAAOgB,OAAOC,IAAI;MAC9CC,QAAQ,CAAC,EAAEC,UAAUH,OAAM,MAAE;AAC3B,cAAMI,SAASD,SAASE,QAAQC,YAAY,CAAA;AAC5C,YAAI,CAACF,QAAQ;AACX;QACF;AAEA,cAAMG,aAAaP,OAAOC;AAC1B,cAAMO,aAAaJ,OAAOH;AAE1B,YAAI,CAACjB,OAAOuB,UAAAA,KAAe,CAACvB,OAAOwB,UAAAA,GAAa;AAC9C;QACF;AAEA,cAAMC,YAAY3D,MAAM4D,UAAU,CAAChE,SAASwC,QAAQxC,MAAM6D,UAAAA,CAAAA;AAC1D,cAAMI,YAAY7D,MAAM4D,UAAU,CAAChE,SAASwC,QAAQxC,MAAM8D,UAAAA,CAAAA;AAC1D,YAAIG,YAAY,KAAKF,YAAY,GAAG;AAClC;QACF;AACA,cAAMG,0BAAsBC,yCAAmBL,UAAAA;AAC/C,cAAMM,uBAAmBC,iEAA2B;UAClDH;UACAI,YAAYP;UACZQ,eAAeN;UACfO,MAAM;QACR,CAAA;AAEAjC,iBAASwB,WAAWK,gBAAAA;MACtB;IACF,CAAA;EACF,GAAG;IAAChE;IAAOoC;IAASD;GAAO;AAE3B,SACE7B,8BAAAA,QAAA,cAACyB,cAAiB;IAAEY;IAAOC;IAAUV;IAAQ,GAAGjB;EAAM,GAAIf,WAAW;IAAEyC;IAAO3C,OAAOA,SAAS,CAAA;EAAG,CAAA,CAAA;AAErG;;ADvDO,IAAM8C,OAAsB;EAAEtC,MAAM;AAAO;AAElD,IAAM6D,cAAgG;EACpG,eAAe;AACjB;AAUA,IAAMC,iBAAuC,CAAC;AAE9C,IAAMC,iBAAiB;AAEhB,IAAM,CAACC,kBAAkBC,kBAAAA,QAAsB/E,sBAAAA,eACpD6E,gBACAD,cAAAA;AAaK,IAAMI,WAAW,CAA2B,EAAExE,UAAUH,YAAYH,MAAM,GAAGqB,MAAAA,MAAyB;AAC3G,QAAM,EAAEiB,QAAQyC,aAAa/B,UAAUgC,aAAY,IAAK5C,eAAeuC,cAAAA;AACvE,QAAMM,UAAMC,sBAA8B,IAAA;AAC1C,QAAMC,oBAAgBD,sBAA2B,IAAA;AACjD,QAAM,CAACnC,OAAOC,QAAAA,QAAYC,cAAAA,UAAwBC,IAAAA;AAClDC,oBAAAA,WAAU,MAAA;AACR,UAAMiC,UAAUH,IAAItB;AACpB0B,oCAAUD,SAAAA,QAAAA;;;;;;;;;AACV,eAAOE;;;;UAILC,0BAAU;QACRH;QACAI,YAAYL,cAAcxB;QAC1B8B,gBAAgB,MAAMzF;QACtB0F,uBAAuBX,cACnB,CAAC,EAAEY,oBAAoBrC,OAAM,MAAE;AAC7B,gBAAMsC,OAAOtC,OAAO8B,QAAQS,sBAAqB;AACjDC,gFAA2B;YACzBH;YACAI,WAAW,CAAC,EAAEC,UAAS,MAAE;AACvB,oBAAM,EAAEC,OAAM,IAAKD,UAAUH,sBAAqB;AAClD,qBAAO;gBACLK,GAAG;gBACHC,GAAGF,SAAS;cACd;YACF;YACAG,QAAQ,CAAC,EAAEJ,UAAS,MAAE;AACpBA,wBAAUK,MAAMC,QAAQV,KAAKU,QAAQ;AACrCtD,uBAAS;gBAAEpC,MAAM;gBAAWoF;cAAU,CAAA;AACtChB,2BAAa;gBAAEpE,MAAM;gBAAWoF;gBAAWhG;cAAK,CAAA;AAChD,qBAAO,MAAA;cAAO;YAChB;UACF,CAAA;QACF,IACA8C;QACJyD,aAAa,MAAA;AACXvD,mBAAS;YAAEpC,MAAM;UAAc,CAAA;AAC/BoE,uBAAa;YAAEpE,MAAM;YAAeZ;UAAK,CAAA;QAC3C;QACAwD,QAAQ,MAAA;AACNR,mBAASE,IAAAA;AACT8B,uBAAa9B,IAAAA;QACf;MACF,CAAA;;;;UAKAsD,sCAAsB;QACpBpB;QACAqB,SAAS,CAAC,EAAEnD,OAAM,MAAE;AAClB,iBAAOA,OAAO8B,YAAYA,WAAW9C,OAAOgB,OAAOC,IAAI;QACzD;QACAmD,SAAS,CAAC,EAAEC,MAAK,MAAE;AACjB,qBAAOC,uCAAkB5G,MAAM;YAAEoF;YAASuB;YAAOE,cAAc;cAAC;cAAO;;UAAU,CAAA;QACnF;QACAC,aAAa,MAAM;QACnBC,aAAa,CAAC,EAAEC,KAAI,MAAE;AACpB,gBAAMC,kBAAc9C,oBAAAA,oBAAmB6C,KAAKzD,IAAI;AAChDP,mBAAS;YAAEpC,MAAM;YAAoBqG;UAAY,CAAA;QACnD;QACAC,QAAQ,CAAC,EAAEF,KAAI,MAAE;AACf,gBAAMC,kBAAc9C,oBAAAA,oBAAmB6C,KAAKzD,IAAI;AAChDP,mBAAS,CAACW,YAAAA;AACR,gBAAIA,QAAQ/C,SAAS,sBAAsB+C,QAAQsD,gBAAgBA,aAAa;AAC9E,qBAAOtD;YACT;AACA,mBAAO;cAAE/C,MAAM;cAAoBqG;YAAY;UACjD,CAAA;QACF;QACAE,aAAa,MAAA;AACXnE,mBAASE,IAAAA;QACX;QACAM,QAAQ,MAAA;AACNR,mBAASE,IAAAA;QACX;MACF,CAAA;IAAA;EAEJ,GAAG;IAAClD;GAAK;AAET,SACEU,8BAAAA,QAAA,cAACkE,kBAAAA;IAAiB5E;IAAYmF;KAC5BzE,8BAAAA,QAAA,cAACmB,OAAAA;IAAIC,MAAK;IAAOjB,WAAU;KACzBH,8BAAAA,QAAA,cAACmB,OAAAA;IACCoD;IACAnD,MAAK;IACLjB,eAAWC,uBAAAA,IAAG,wBAAwBX,YAAYsE,YAAY1B,MAAMnC,IAAI,CAAC;IACxE,GAAGS;KAEHf,QAAAA,GAEFyC,MAAMnC,SAAS,sBAAsBmC,MAAMkE,eAC1CvG,8BAAAA,QAAA,cAAC0G,iBAAAA,SAAgBC,eAAa;IAACC,MAAMvE,MAAMkE;;AAKrD;AAQO,IAAMM,aAAaC,8CACxB,CAAC,EAAErH,YAAYsB,MAAM,GAAGJ,MAAAA,GAASoG,iBAAAA;AAC/B,SACE/G,8BAAAA,QAAA,cAACgH,UAAAA;IAAOzC,KAAKwC;IAAc5G,eAAWC,uBAAAA,IAAG,oCAAoCX,UAAAA;IAAc,GAAGkB;KAC5FX,8BAAAA,QAAA,cAACc,iBAAAA,MAAAA;IAAKC;IAAYtB,YAAW;IAAiBuB,MAAM;;AAG1D,CAAA;AAGK,IAAMiG,uBAAuB,CAAC,EACnCC,WAAW,MACXzH,YACA0H,UACApG,OAAO,kBACP,GAAGJ,MAAAA,MAC6F;AAChG,QAAM,EAAE0B,MAAK,IAAKX,eAAe,eAAA;AACjC,QAAM0F,aAAa/E,MAAMnC,SAAS,UAAUiH;AAC5C,SACEnH,8BAAAA,QAAA,cAAC6G,YAAAA;IACC9F;IACAoG,UAAUC;IACV3H,YAAY;MAACA;MAAYyH,YAAYC,YAAY;;IAChD,GAAGxG;;AAGV;AAEO,IAAM0G,iBAAiB,CAAC,EAC7BH,WAAW,MACXzH,YACA0H,UACA,GAAGxG,MAAAA,MACsC;AACzC,QAAM,EAAE0B,MAAK,IAAKX,eAAe,aAAA;AACjC,QAAM0F,aAAa/E,MAAMnC,SAAS,UAAUiH;AAC5C,SAAOnH,8BAAAA,QAAA,cAAC6G,YAAAA;IAAWM,UAAUC;IAAY3H,YAAY;MAACA;MAAYyH,YAAYC,YAAY;;IAAY,GAAGxG;;AAC3G;AAEO,IAAM2G,qBAAqB,MAAA;AAChC,QAAM,EAAE7C,cAAa,IAAKN,mBAAmB,aAAA;AAC7C,SAAOnE,8BAAAA,QAAA,cAAC6G,YAAAA;IAAWtC,KAAKE;IAAsB1D,MAAK;;AACrD;AAEO,IAAMwG,sBAAsB,CAA2B,EAC5D3H,SAAQ,MAGT;AACC,QAAM,EAAEyC,MAAK,IAAKX,eAAe,cAAA;AACjC,SAAOW,OAAOnC,SAAS,YAAYsH,mDAAa5H,SAAS;IAAEN,MAAM+C,MAAM/C;EAAK,CAAA,GAAI+C,MAAMiD,SAAS,IAAI;AACrG;AAEO,IAAMmC,kBAAkB,CAAC,EAAEhI,YAAYG,SAAQ,MACpDI,8BAAAA,QAAA,cAACmB,OAAAA;EAAIhB,eAAWC,uBAAAA,IAAG,sBAAsBX,UAAAA;GAAcG,QAAAA;AAGlD,IAAM8H,gBAAgB,CAAC,EAC5BjI,YACAG,UACA,GAAGe,MAAAA,MAEHX,8BAAAA,QAAA,cAACmB,OAAAA;EAAIhB,eAAWC,uBAAAA,IAAG,mCAAmCX,UAAAA;EAAc,GAAGkB;GACpEf,QAAAA;AE/NE,IAAM+H,OAAO;EAClB1H,MAAM0B;EACNlB,MAAM2D;EACNwD,iBAAiBL;EACjBM,aAAaJ;EACbK,gBAAgBR;EAChBS,kBAAkBd;EAClBe,YAAYX;EACZY,WAAWP;EACXb;AACF;AEdA,IAAMqB,cAAc9I,kCAAAA,eAAsC,IAAA;AAEnD,IAAM+I,UAAU,UAAMC,0BAAWF,WAAAA,SAAgBG,oBAAM,IAAIC,MAAM,uBAAA,CAAA;AAEjE,IAAMC,eAAeL,YAAYM;AEVjC,IAAMC,kBAAkBC,wCAC7B5B,kCAAAA,YACE,CAAC,EAAE6B,OAAO5H,MAAMZ,WAAWgH,UAAUlE,SAAS2F,SAAQ,GAAI7B,iBAAAA;AACxD,QAAM,EAAE8B,EAAC,QAAKC,iCAAAA;AAEd,QAAMC,mBAAehH,cAAAA,aACnB,CAACiH,UAAAA;AACCJ,eAAWI,MAAMC,MAAM;EACzB,GACA;IAACL;GAAS;AAGZ,QAAMM,0BAAsBnH,cAAAA,aAC1B,CAACiH,UAAAA;AACC,QAAIA,MAAMG,QAAQ,OAAOH,MAAMG,QAAQ,SAAS;AAC9CH,YAAMI,eAAc;AACpBJ,YAAMK,gBAAe;AACrBT,iBAAWI,MAAMC,MAAM;IACzB;EACF,GACA;IAACL;GAAS;AAGZ,SACE5I,8BAAAA,QAAA,cAACsJ,0CAAAA;IACCC,UAAMC,oCAAkBb,OAAOE,CAAAA;IAC/BY,MAAK;IACLC,eAAc;IACdC,oBAAAA;IACAC,SAAAA;IACArF,KAAKwC;KAEL/G,8BAAAA,QAAA,cAAC6J,yBAAAA;IACCC,eAAY;IACZC,SAAQ;IACRC,SAAQ;IACRvK,gBAAYW,uBAAAA,IACV,qEACA,gDACAD,SAAAA;IAEFgH;IACA8C,SAASlB;IACTmB,WAAWhB;IACV,GAAIjG,WAAW;MAAE,gBAAgB;IAAW;KAE5ClC,QAAQf,8BAAAA,QAAA,cAACc,iBAAAA,MAAAA;IAAKC,MAAMA,QAAQ;IAA4BC,MAAM;IAAGvB,YAAW;MAC7EO,8BAAAA,QAAA,cAACmK,QAAAA;IAAKhK,WAAU;IAAsDiK,gBAAAA;SACnEZ,oCAAkBb,OAAOE,CAAAA,CAAAA,CAAAA,CAAAA;AAKpC,CAAA,CAAA;AC1DG,IAAMwB,iBAAiB3B,kCAAAA,MAC5B5B,kCAAAA,YAAmD,CAAC,EAAEwD,MAAMC,UAAUC,QAAQC,SAAQ,GAAI1D,iBAAAA;AACxF,SACE/G,8BAAAA,QAAA,cAAC6J,iBAAAA,QAAAA;IACCtF,KAAKwC;IACL+C,eAAY;IACZY,iBAAeJ;IACfP,SAAQ;IACRC,SAAQ;IACRvK,gBAAYW,uBAAAA,IAAG,kCAAkCoK,SAAS,WAAW,CAACD,YAAY,WAAA;IAClFN,SAASQ;KAETzK,8BAAAA,QAAA,cAACc,iBAAAA,MAAAA;IAAKC,MAAK;IAAwBC,MAAM;IAAGvB,gBAAYW,uBAAAA,IAAG,2BAA2BkK,QAAQ,WAAA;;AAGpG,CAAA,CAAA;AC3BK,IAAMK,sBAAsB;AAE5B,IAAMC,qBAAqB,CAACC,OAAeC,cAAcH,yBAAyB;EACvFI,oBAAoB,IAAIF,QAAQ,KAAKC,WAAAA;AACvC;;AHwBA,IAAME,4BACJ;AAEK,IAAMC,iBAAiBC,qBAAEC,OAAO;EACrC5L,IAAI2L,qBAAEE;EACNC,MAAMH,qBAAEI,MAAMJ,qBAAEE,MAAM;EACtB9L,MAAM4L,qBAAEK;AACV,CAAA;AAIO,IAAMC,aAAa,CAAC3I,SAAoCqI,qBAAEO,GAAGR,cAAAA,EAAgBpI,IAAAA;AAoB7E,IAAM6I,cAAc,CAAW,EACpCpM,MACA+L,MAAMM,OACNC,MACA/G,WAAWgH,YACXC,eAAeC,SACfhG,SACAiG,cACApD,UACAqD,cAAc,EAAC,MACE;AACjB,QAAM,EAAEC,UAAUC,UAAUC,QAAQC,UAAS,IAAKlE,QAAAA;AAClD,QAAMzI,QAAQwM,SAAS5M,IAAAA;AACvB,QAAM,EAAEC,IAAIoJ,OAAO2D,UAAUvL,MAAMoG,UAAUhH,WAAWoM,kBAAkBC,OAAM,IAAKL,SAAS7M,MAAMqM,KAAAA;AACpG,QAAMN,WAAOoB,uBAAQ,MAAM;OAAId;IAAOpM;KAAK;IAACoM;IAAOpM;GAAG;AACtD,QAAM+K,OAAO8B,OAAOf,MAAM/L,IAAAA;AAC1B,QAAM2D,UAAUoJ,UAAUhB,MAAM/L,IAAAA;AAChC,QAAMuL,QAAQQ,KAAKqB,SAAST;AAC5B,QAAM1B,WAAW,CAAC,CAAC+B;AACnB,QAAMK,OAAiBf,OAAO,kBAAkBtB,OAAO,aAAa;AACpE,QAAMzH,WAAO4J,uBAAQ,OAAO;IAAElN;IAAI8L;IAAM/L;EAAK,IAAuB;IAACC;IAAI8L;IAAM/L;GAAK;AAEpF,QAAMsN,aAASpI,cAAAA,QAA8B,IAAA;AAC7C,QAAMqI,gBAAYrI,cAAAA,QAAiC,IAAA;AACnD,QAAMsI,cAAUtI,cAAAA,QAAO,KAAA;AACvB,QAAMuI,sBAAkBvI,cAAAA,QAA8B,IAAA;AACtD,QAAM,CAACwI,QAAQ1K,QAAAA,QAAYC,cAAAA,UAAwB,MAAA;AACnD,QAAM,CAAC0K,aAAaC,cAAAA,QAAkB3K,cAAAA,UAA6B,IAAA;AACnE,QAAM,CAAC4K,UAAUC,WAAAA,QAAe7K,cAAAA,UAAS,KAAA;AAEzC,QAAM8K,mBAAetL,cAAAA,aAAY,MAAA;AAC/B,QAAIgL,gBAAgB9J,SAAS;AAC3BqK,mBAAaP,gBAAgB9J,OAAO;AACpC8J,sBAAgB9J,UAAU;IAC5B;EACF,GAAG,CAAA,CAAE;AAELR,oBAAAA,WAAU,MAAA;AACR,QAAI,CAACoJ,YAAY;AACf;IACF;AAEAlH,0BAAAA,WAAUkI,UAAU5J,SAAO,QAAA;;;;;;;;;AAG3B,eAAO2B,gBAAAA;UACLC,gBAAAA,WAAU;QACRH,SAASmI,UAAU5J;QACnB8B,gBAAgB,MAAMlC;QACtBgD,aAAa,MAAA;AACXvD,mBAAS,UAAA;AACT,cAAIgI,MAAM;AACRwC,oBAAQ7J,UAAU;AAClB+I,2BAAe;cAAE1M;cAAM+L;cAAMf,MAAM;YAAM,CAAA;UAC3C;QACF;QACAxH,QAAQ,MAAA;AACNR,mBAAS,MAAA;AACT,cAAIwK,QAAQ7J,SAAS;AACnB+I,2BAAe;cAAE1M;cAAM+L;cAAMf,MAAM;YAAK,CAAA;UAC1C;QACF;MACF,CAAA;;UAEAxE,gBAAAA,uBAAsB;QACpBpB,SAASmI,UAAU5J;QACnB+C,SAAS,CAAC,EAAEC,OAAOvB,QAAO,MAAE;AAC1B,qBAAO6I,oCAAkB1K,MAAM;YAC7BoD;YACAvB;YACA8I,gBAAgB7C;YAChB8C,cAAc5C;YACd8B;YACAe,OAAOnD,WAAW,CAAA,IAAK;cAAC;;UAC1B,CAAA;QACF;QACAxE,SAAS,CAAC,EAAEnD,OAAM,MAAE;AAClB,gBAAM+K,WAAW5H,YAAY,MAAM;AACnC,iBAAOnD,OAAO8B,YAAYmI,UAAU5J,WAAW0K,SAAS/K,OAAOC,MAAkBA,IAAAA;QACnF;QACAuD,aAAa,MAAM;QACnBI,QAAQ,CAAC,EAAEF,MAAM1D,OAAM,MAAE;AACvB,gBAAMqK,mBAAcW,qCAAmBtH,KAAKzD,IAAI;AAEhD,cAAID,OAAOC,KAAKtD,OAAOA,IAAI;AACzB,gBAAI0N,cAAa/M,SAAS,gBAAgBqK,YAAY,CAACD,QAAQ,CAACyC,gBAAgB9J,SAAS;AACvF8J,8BAAgB9J,UAAU4K,WAAW,MAAA;AACnC7B,+BAAe;kBAAE1M;kBAAM+L;kBAAMf,MAAM;gBAAK,CAAA;cAC1C,GAAG,GAAA;YACL;AAEA,gBAAI2C,cAAa/M,SAAS,cAAc;AACtCmN,2BAAAA;YACF;AAEAH,2BAAeD,YAAAA;UACjB,WAAWA,cAAa/M,SAAS,YAAY;AAE3CgN,2BAAeD,YAAAA;UACjB,OAAO;AACLC,2BAAe,IAAA;UACjB;QACF;QACAzG,aAAa,MAAA;AACX4G,uBAAAA;AACAH,yBAAe,IAAA;QACjB;QACApK,QAAQ,MAAA;AACNuK,uBAAAA;AACAH,yBAAe,IAAA;QACjB;MACF,CAAA;IAAA;EAEJ,GAAG;IAACrB;IAAYvM;IAAMC;IAAIoN;IAAMtB;IAAMf;IAAMvE;GAAQ;AAGpDtD,oBAAAA,WAAU,MAAM,MAAM4K,aAAAA,GAAgB;IAACA;GAAa;AAEpD,QAAMS,uBAAmB/L,cAAAA,aACvB,MAAMiK,eAAe;IAAE1M;IAAM+L;IAAMf,MAAM,CAACA;EAAK,CAAA,GAC/C;IAAC0B;IAAc1M;IAAM+L;IAAMf;GAAK;AAGlC,QAAMvB,mBAAehH,cAAAA,aACnB,CAACgM,SAAS,UAAK;AACb,QAAIxD,UAAU;AACZuD,uBAAAA;IACF,OAAO;AACLlB,aAAO3J,SAAS+K,MAAAA;AAChBpF,iBAAW;QAAEtJ;QAAM+L;QAAMpI,SAAS,CAACA;QAAS8K;MAAO,CAAA;IACrD;EACF,GACA;IAACzO;IAAM+L;IAAMpI;IAASsH;IAAUuD;IAAkBlF;GAAS;AAG7D,QAAMqF,oBAAgBlM,cAAAA,aACpB,CAACiH,UAAAA;AACC,YAAQA,MAAMG,KAAG;MACf,KAAK;AACHoB,oBAAY,CAACD,QAAQwD,iBAAAA;AACrB;MACF,KAAK;AACHvD,oBAAYD,QAAQwD,iBAAAA;AACpB;MACF,KAAK;AACH/E,qBAAaC,MAAMC,MAAM;AACzB;IACJ;EACF,GACA;IAACsB;IAAUD;IAAMwD;IAAkB/E;GAAa;AAGlD,SACE/I,8BAAAA,QAAA,cAAAA,cAAAA,QAAA,UAAA,MACEA,8BAAAA,QAAA,cAACkO,0BAASC,KAAG;IACX5J,KAAKqI;IACLzD,KAAK5J;IACLA;IACA6O,mBAAiB,GAAG7O,EAAAA;IACpB+M,UAAUA,UAAU+B,KAAKH,0BAASI,mBAAmB;IACrD7O,gBAAYW,uBAAAA,IACV,gFACAmO,0CACAC,yDACAC,uDACAzD,2BACA0D,mCACAvO,SAAAA;IAEFwO,eAAapP;IACbuK,eAAa0C;;;;IAIboC,gBAAc3L,UAAW,KAAgBb;IACzC8H,WAAW+D;IACXY,eAAe,CAAC7F,UAAAA;AACdA,YAAMI,eAAc;AACpBgE,kBAAY,IAAA;IACd;KAEApN,8BAAAA,QAAA,cAACkO,0BAASY,MAAI;IACZC,QAAAA;IACAtP,YAAW;IACXkG,OAAOiF,mBAAmBC,KAAAA;KAE1B7K,8BAAAA,QAAA,cAACmB,OAAAA;IAAIC,MAAK;IAAOjB,WAAU;KACzBH,8BAAAA,QAAA,cAACqK,gBAAAA;IAAeE;IAAoBD;IAAYG,UAAUqD;MAC1D9N,8BAAAA,QAAA,cAACyI,iBAAAA;IACClE,KAAKsI;IACLlE;IACA5H;IACAZ,WAAWoM;IACXpF;IACAlE;IACA2F,UAAUG;OAGbgD,WAAW/L,8BAAAA,QAAA,cAAC+L,SAAAA;IAAQzM;IAAY+L;IAAYf;IAAY6C;IAAoBC;MAC5EH,eAAejN,8BAAAA,QAAA,cAACgP,iBAAAA,SAAgBrI,eAAa;IAACsG;IAA0BgC,KAAK;QAGjF3E,QACC5K,MAAMwP,IAAI,CAAC5P,OAAM6P,UACfnP,8BAAAA,QAAA,cAACoP,UAAAA;IACCjG,KAAK7J,MAAKC;IACVD,MAAMA;IACN+L;IACAO,MAAMuD,UAAUzP,MAAMgN,SAAS;IAC/B7H,WAAWgH;IACXC,eAAeC;IACfhG;IACAiG;IACApD;;AAKZ;AAEO,IAAMwG,WAAW1G,kCAAAA,MAAKgD,WAAAA;AF5QtB,IAAM2D,OAAO,CAAW,EAC7BC,MACAjE,MACA9L,IACA2M,UACAC,UACAC,QACAC,WACAxH,WAAAA,aAAY,OACZ0K,sBAAsB,mDACtB9P,YACAqM,eACA/F,SACAiG,cACApD,UACAqD,YAAW,MACE;AACb,QAAMuD,cAAU/C,cAAAA,SACd,OAAO;IACLP;IACAC;IACAC;IACAC;EACF,IACA;IAACH;IAAUC;IAAUC;IAAQC;GAAU;AAEzC,QAAM3M,QAAQwM,SAASoD,IAAAA;AACvB,QAAMG,eAAWhD,cAAAA,SAAQ,MAAOpB,OAAO;OAAIA;IAAM9L;MAAM;IAACA;KAAM;IAACA;IAAI8L;GAAK;AAExE,SACErL,8BAAAA,QAAA,cAACkO,iBAAAA,SAASjO,MAAI;IAACsP;IAA0C9P;KACvDO,8BAAAA,QAAA,cAACuI,cAAAA;IAAa1I,OAAO2P;KAClB9P,MAAMwP,IAAI,CAAC5P,MAAM6P,UAChBnP,8BAAAA,QAAA,cAACoP,UAAAA;IACCjG,KAAK7J,KAAKC;IACVD;IACAsM,MAAMuD,UAAUzP,MAAMgN,SAAS;IAC/BrB,MAAMoE;IACNxD;IACApH,WAAWA;IACXiH;IACA/F;IACAiG;IACApD;;AAMZ;AM5DA,IAAM8G,YAAY;AAEX,IAAMC,OAAO;EAClBC,QAAQ,IAAIC,SAAmBA,KAAKxB,KAAKqB,SAAAA;EAEzCI,OAAO,CAACzE,SAAiBA,KAAK0E,MAAML,SAAAA;EACpChD,QAAQ,CAACrB,SAAiBA,KAAK0E,MAAML,SAAAA,EAAWhD;EAChDsD,OAAO,CAAC3E,SAAiBA,KAAK0E,MAAML,SAAAA,EAAW,CAAA,KAAMrE;EACrDO,MAAM,CAACP,SAAiBA,KAAK0E,MAAML,SAAAA,EAAWO,GAAG,EAAC,KAAM5E;EACxD6E,QAAQ,CAAC7E,SAAiBA,KAAK0E,MAAML,SAAAA,EAAWS,MAAM,GAAG,EAAC,EAAG9B,KAAKqB,SAAAA;EAElEU,SAAS,CAAC/E,MAAc9L,OAAeoQ,KAAKK,MAAM3E,IAAAA,MAAU9L;EAC5D8Q,UAAU,CAAChF,MAAciF,YAAoBX,KAAKO,OAAOI,OAAAA,MAAajF;EACtEkF,eAAe,CAAClF,MAAciF,YAAoBA,YAAYjF,QAAQiF,QAAQE,WAAWnF,IAAAA;EACzFoF,UAAU,CAACpF,MAAciF,YAAoBX,KAAKO,OAAO7E,IAAAA,MAAUsE,KAAKO,OAAOI,OAAAA;EAC/EI,QAAQ,CAACrF,MAAc9L,OAAeoQ,KAAKG,MAAMzE,IAAAA,EAAMsF,SAASpR,EAAAA;AAClE;",
|
|
6
6
|
"names": ["import_react_context", "import_react", "import_react_ui_theme", "import_react_ui", "import_adapter", "import_closest_edge", "import_combine", "import_invariant", "ACCORDION_NAME", "AccordionProvider", "useAccordionContext", "createContext", "defaultGetId", "item", "id", "AccordionRoot", "classNames", "items", "getId", "children", "value", "defaultValue", "onValueChange", "React", "Root", "type", "className", "mx", "ACCORDION_ITEM_NAME", "AccordionItemProvider", "useAccordionItemContext", "AccordionItem", "Item", "AccordionItemHeader", "props", "Header", "Trigger", "Icon", "icon", "size", "AccordionItemBody", "Content", "div", "role", "Accordion", "ItemHeader", "ItemBody", "LIST_NAME", "ListProvider", "useListContext", "ListRoot", "isItem", "onMove", "isEqual", "useCallback", "a", "b", "idA", "idB", "undefined", "state", "setState", "useState", "idle", "useEffect", "monitorForElements", "canMonitor", "source", "data", "onDrop", "location", "target", "current", "dropTargets", "sourceData", "targetData", "sourceIdx", "findIndex", "targetIdx", "closestEdgeOfTarget", "extractClosestEdge", "destinationIndex", "getReorderDestinationIndex", "startIndex", "indexOfTarget", "axis", "stateStyles", "defaultContext", "LIST_ITEM_NAME", "ListItemProvider", "useListItemContext", "ListItem", "dragPreview", "setRootState", "ref", "useRef", "dragHandleRef", "element", "invariant", "combine", "draggable", "dragHandle", "getInitialData", "onGenerateDragPreview", "nativeSetDragImage", "rect", "getBoundingClientRect", "setCustomNativeDragPreview", "getOffset", "container", "height", "x", "y", "render", "style", "width", "onDragStart", "dropTargetForElements", "canDrop", "getData", "input", "attachClosestEdge", "allowedEdges", "getIsSticky", "onDragEnter", "self", "closestEdge", "onDrag", "onDragLeave", "NaturalListItem", "DropIndicator", "edge", "IconButton", "forwardRef", "forwardedRef", "button", "ListItemDeleteButton", "autoHide", "disabled", "isDisabled", "ListItemButton", "ListItemDragHandle", "ListItemDragPreview", "createPortal", "ListItemWrapper", "ListItemTitle", "List", "ItemDragPreview", "ItemWrapper", "ItemDragHandle", "ItemDeleteButton", "ItemButton", "ItemTitle", "TreeContext", "useTree", "useContext", "raise", "Error", "TreeProvider", "Provider", "TreeItemHeading", "memo", "label", "onSelect", "t", "useTranslation", "handleSelect", "event", "altKey", "handleButtonKeydown", "key", "preventDefault", "stopPropagation", "TextTooltip", "text", "toLocalizedString", "side", "truncateQuery", "onlyWhenTruncating", "asChild", "Button", "data-testid", "variant", "density", "onClick", "onKeyDown", "span", "data-tooltip", "TreeItemToggle", "open", "isBranch", "hidden", "onToggle", "aria-expanded", "DEFAULT_INDENTATION", "paddingIndentation", "level", "indentation", "paddingInlineStart", "hoverableDescriptionIcons", "TreeDataSchema", "S", "Struct", "String", "path", "Array", "Any", "isTreeData", "is", "RawTreeItem", "_path", "last", "_draggable", "renderColumns", "Columns", "onOpenChange", "levelOffset", "getItems", "getProps", "isOpen", "isCurrent", "parentOf", "headingClassName", "testId", "useMemo", "length", "mode", "rowRef", "buttonRef", "openRef", "cancelExpandRef", "_state", "instruction", "setInstruction", "menuOpen", "setMenuOpen", "cancelExpand", "clearTimeout", "attachInstruction", "indentPerLevel", "currentLevel", "block", "_canDrop", "extractInstruction", "setTimeout", "handleOpenChange", "option", "focus", "handleKeyDown", "Treegrid", "Row", "aria-labelledby", "join", "PARENT_OF_SEPARATOR", "hoverableControls", "hoverableFocusedKeyboardControls", "hoverableFocusedWithinControls", "ghostHover", "data-itemid", "aria-current", "onContextMenu", "Cell", "indent", "NaturalTreeItem", "gap", "map", "index", "TreeItem", "Tree", "root", "gridTemplateColumns", "context", "treePath", "SEPARATOR", "Path", "create", "args", "parts", "split", "first", "at", "parent", "slice", "hasRoot", "hasChild", "compare", "hasDescendent", "startsWith", "siblings", "onPath", "includes"]
|
|
7
7
|
}
|
package/dist/lib/node/meta.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"packages/ui/react-ui-list/src/components/Accordion/AccordionRoot.tsx":{"bytes":4521,"imports":[{"path":"@radix-ui/react-accordion","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-list/src/components/Accordion/AccordionItem.tsx":{"bytes":7016,"imports":[{"path":"@radix-ui/react-accordion","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-list/src/components/Accordion/AccordionRoot.tsx","kind":"import-statement","original":"./AccordionRoot"}],"format":"esm"},"packages/ui/react-ui-list/src/components/Accordion/Accordion.tsx":{"bytes":1988,"imports":[{"path":"packages/ui/react-ui-list/src/components/Accordion/AccordionItem.tsx","kind":"import-statement","original":"./AccordionItem"},{"path":"packages/ui/react-ui-list/src/components/Accordion/AccordionRoot.tsx","kind":"import-statement","original":"./AccordionRoot"}],"format":"esm"},"packages/ui/react-ui-list/src/components/Accordion/index.ts":{"bytes":519,"imports":[{"path":"packages/ui/react-ui-list/src/components/Accordion/Accordion.tsx","kind":"import-statement","original":"./Accordion"}],"format":"esm"},"packages/ui/react-ui-list/src/components/List/ListRoot.tsx":{"bytes":10800,"imports":[{"path":"@atlaskit/pragmatic-drag-and-drop/element/adapter","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop-hitbox/closest-edge","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop-hitbox/util/get-reorder-destination-index","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-list/src/components/List/ListItem.tsx","kind":"import-statement","original":"./ListItem"}],"format":"esm"},"packages/ui/react-ui-list/src/components/List/ListItem.tsx":{"bytes":26097,"imports":[{"path":"@atlaskit/pragmatic-drag-and-drop/combine","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/element/adapter","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/element/set-custom-native-drag-preview","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop-hitbox/closest-edge","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react-dom","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-list/src/components/List/ListRoot.tsx","kind":"import-statement","original":"./ListRoot"}],"format":"esm"},"packages/ui/react-ui-list/src/components/List/List.tsx":{"bytes":3686,"imports":[{"path":"packages/ui/react-ui-list/src/components/List/ListItem.tsx","kind":"import-statement","original":"./ListItem"},{"path":"packages/ui/react-ui-list/src/components/List/ListRoot.tsx","kind":"import-statement","original":"./ListRoot"}],"format":"esm"},"packages/ui/react-ui-list/src/components/List/index.ts":{"bytes":505,"imports":[{"path":"packages/ui/react-ui-list/src/components/List/List.tsx","kind":"import-statement","original":"./List"}],"format":"esm"},"packages/ui/react-ui-list/src/components/Tree/TreeContext.tsx":{"bytes":2214,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-list/src/components/Tree/TreeItemHeading.tsx":{"bytes":7611,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-text-tooltip","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-list/src/components/Tree/TreeItemToggle.tsx":{"bytes":3377,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-list/src/components/Tree/helpers.ts":{"bytes":1223,"imports":[],"format":"esm"},"packages/ui/react-ui-list/src/components/Tree/TreeItem.tsx":{"bytes":31836,"imports":[{"path":"@atlaskit/pragmatic-drag-and-drop/combine","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/element/adapter","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop-hitbox/tree-item","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-list/src/components/Tree/TreeContext.tsx","kind":"import-statement","original":"./TreeContext"},{"path":"packages/ui/react-ui-list/src/components/Tree/TreeItemHeading.tsx","kind":"import-statement","original":"./TreeItemHeading"},{"path":"packages/ui/react-ui-list/src/components/Tree/TreeItemToggle.tsx","kind":"import-statement","original":"./TreeItemToggle"},{"path":"packages/ui/react-ui-list/src/components/Tree/helpers.ts","kind":"import-statement","original":"./helpers"}],"format":"esm"},"packages/ui/react-ui-list/src/components/Tree/Tree.tsx":{"bytes":5887,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-list/src/components/Tree/TreeContext.tsx","kind":"import-statement","original":"./TreeContext"},{"path":"packages/ui/react-ui-list/src/components/Tree/TreeItem.tsx","kind":"import-statement","original":"./TreeItem"}],"format":"esm"},"packages/ui/react-ui-list/src/components/Tree/index.ts":{"bytes":692,"imports":[{"path":"packages/ui/react-ui-list/src/components/Tree/Tree.tsx","kind":"import-statement","original":"./Tree"},{"path":"packages/ui/react-ui-list/src/components/Tree/TreeContext.tsx","kind":"import-statement","original":"./TreeContext"},{"path":"packages/ui/react-ui-list/src/components/Tree/TreeItem.tsx","kind":"import-statement","original":"./TreeItem"}],"format":"esm"},"packages/ui/react-ui-list/src/components/index.ts":{"bytes":669,"imports":[{"path":"packages/ui/react-ui-list/src/components/Accordion/index.ts","kind":"import-statement","original":"./Accordion"},{"path":"packages/ui/react-ui-list/src/components/List/index.ts","kind":"import-statement","original":"./List"},{"path":"packages/ui/react-ui-list/src/components/Tree/index.ts","kind":"import-statement","original":"./Tree"}],"format":"esm"},"packages/ui/react-ui-list/src/util/path.ts":{"bytes":3466,"imports":[],"format":"esm"},"packages/ui/react-ui-list/src/util/index.ts":{"bytes":494,"imports":[{"path":"packages/ui/react-ui-list/src/util/path.ts","kind":"import-statement","original":"./path"}],"format":"esm"},"packages/ui/react-ui-list/src/index.ts":{"bytes":583,"imports":[{"path":"packages/ui/react-ui-list/src/components/index.ts","kind":"import-statement","original":"./components"},{"path":"packages/ui/react-ui-list/src/util/index.ts","kind":"import-statement","original":"./util"}],"format":"esm"}},"outputs":{"packages/ui/react-ui-list/dist/lib/node/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":56481},"packages/ui/react-ui-list/dist/lib/node/index.cjs":{"imports":[{"path":"@radix-ui/react-accordion","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@radix-ui/react-accordion","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/combine","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/element/adapter","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/element/set-custom-native-drag-preview","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop-hitbox/closest-edge","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react-dom","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/element/adapter","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop-hitbox/closest-edge","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop-hitbox/util/get-reorder-destination-index","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/combine","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/element/adapter","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop-hitbox/tree-item","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-text-tooltip","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"exports":["Accordion","List","Path","RawTreeItem","Tree","TreeDataSchema","TreeItem","TreeProvider","isTreeData","useTree"],"entryPoint":"packages/ui/react-ui-list/src/index.ts","inputs":{"packages/ui/react-ui-list/src/components/Accordion/AccordionItem.tsx":{"bytesInOutput":1676},"packages/ui/react-ui-list/src/components/Accordion/AccordionRoot.tsx":{"bytesInOutput":756},"packages/ui/react-ui-list/src/components/Accordion/Accordion.tsx":{"bytesInOutput":132},"packages/ui/react-ui-list/src/components/Accordion/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-list/src/components/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-list/src/components/List/ListItem.tsx":{"bytesInOutput":6916},"packages/ui/react-ui-list/src/components/List/ListRoot.tsx":{"bytesInOutput":2186},"packages/ui/react-ui-list/src/components/List/List.tsx":{"bytesInOutput":275},"packages/ui/react-ui-list/src/components/List/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-list/src/components/Tree/Tree.tsx":{"bytesInOutput":1127},"packages/ui/react-ui-list/src/components/Tree/TreeContext.tsx":{"bytesInOutput":293},"packages/ui/react-ui-list/src/components/Tree/TreeItem.tsx":{"bytesInOutput":8275},"packages/ui/react-ui-list/src/components/Tree/TreeItemHeading.tsx":{"bytesInOutput":1799},"packages/ui/react-ui-list/src/components/Tree/TreeItemToggle.tsx":{"bytesInOutput":813},"packages/ui/react-ui-list/src/components/Tree/helpers.ts":{"bytesInOutput":162},"packages/ui/react-ui-list/src/components/Tree/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-list/src/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-list/src/util/path.ts":{"bytesInOutput":678},"packages/ui/react-ui-list/src/util/index.ts":{"bytesInOutput":0}},"bytes":26349}}}
|
|
1
|
+
{"inputs":{"packages/ui/react-ui-list/src/components/Accordion/AccordionRoot.tsx":{"bytes":4521,"imports":[{"path":"@radix-ui/react-accordion","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-list/src/components/Accordion/AccordionItem.tsx":{"bytes":7016,"imports":[{"path":"@radix-ui/react-accordion","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-list/src/components/Accordion/AccordionRoot.tsx","kind":"import-statement","original":"./AccordionRoot"}],"format":"esm"},"packages/ui/react-ui-list/src/components/Accordion/Accordion.tsx":{"bytes":1988,"imports":[{"path":"packages/ui/react-ui-list/src/components/Accordion/AccordionItem.tsx","kind":"import-statement","original":"./AccordionItem"},{"path":"packages/ui/react-ui-list/src/components/Accordion/AccordionRoot.tsx","kind":"import-statement","original":"./AccordionRoot"}],"format":"esm"},"packages/ui/react-ui-list/src/components/Accordion/index.ts":{"bytes":519,"imports":[{"path":"packages/ui/react-ui-list/src/components/Accordion/Accordion.tsx","kind":"import-statement","original":"./Accordion"}],"format":"esm"},"packages/ui/react-ui-list/src/components/List/ListRoot.tsx":{"bytes":10800,"imports":[{"path":"@atlaskit/pragmatic-drag-and-drop/element/adapter","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop-hitbox/closest-edge","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop-hitbox/util/get-reorder-destination-index","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-list/src/components/List/ListItem.tsx","kind":"import-statement","original":"./ListItem"}],"format":"esm"},"packages/ui/react-ui-list/src/components/List/ListItem.tsx":{"bytes":26097,"imports":[{"path":"@atlaskit/pragmatic-drag-and-drop/combine","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/element/adapter","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/element/set-custom-native-drag-preview","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop-hitbox/closest-edge","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react-dom","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-list/src/components/List/ListRoot.tsx","kind":"import-statement","original":"./ListRoot"}],"format":"esm"},"packages/ui/react-ui-list/src/components/List/List.tsx":{"bytes":3686,"imports":[{"path":"packages/ui/react-ui-list/src/components/List/ListItem.tsx","kind":"import-statement","original":"./ListItem"},{"path":"packages/ui/react-ui-list/src/components/List/ListRoot.tsx","kind":"import-statement","original":"./ListRoot"}],"format":"esm"},"packages/ui/react-ui-list/src/components/List/index.ts":{"bytes":505,"imports":[{"path":"packages/ui/react-ui-list/src/components/List/List.tsx","kind":"import-statement","original":"./List"}],"format":"esm"},"packages/ui/react-ui-list/src/components/Tree/TreeContext.tsx":{"bytes":2214,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-list/src/components/Tree/TreeItemHeading.tsx":{"bytes":7611,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-text-tooltip","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-list/src/components/Tree/TreeItemToggle.tsx":{"bytes":3314,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-list/src/components/Tree/helpers.ts":{"bytes":1223,"imports":[],"format":"esm"},"packages/ui/react-ui-list/src/components/Tree/TreeItem.tsx":{"bytes":31836,"imports":[{"path":"@atlaskit/pragmatic-drag-and-drop/combine","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/element/adapter","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop-hitbox/tree-item","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-list/src/components/Tree/TreeContext.tsx","kind":"import-statement","original":"./TreeContext"},{"path":"packages/ui/react-ui-list/src/components/Tree/TreeItemHeading.tsx","kind":"import-statement","original":"./TreeItemHeading"},{"path":"packages/ui/react-ui-list/src/components/Tree/TreeItemToggle.tsx","kind":"import-statement","original":"./TreeItemToggle"},{"path":"packages/ui/react-ui-list/src/components/Tree/helpers.ts","kind":"import-statement","original":"./helpers"}],"format":"esm"},"packages/ui/react-ui-list/src/components/Tree/Tree.tsx":{"bytes":5887,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-list/src/components/Tree/TreeContext.tsx","kind":"import-statement","original":"./TreeContext"},{"path":"packages/ui/react-ui-list/src/components/Tree/TreeItem.tsx","kind":"import-statement","original":"./TreeItem"}],"format":"esm"},"packages/ui/react-ui-list/src/components/Tree/index.ts":{"bytes":692,"imports":[{"path":"packages/ui/react-ui-list/src/components/Tree/Tree.tsx","kind":"import-statement","original":"./Tree"},{"path":"packages/ui/react-ui-list/src/components/Tree/TreeContext.tsx","kind":"import-statement","original":"./TreeContext"},{"path":"packages/ui/react-ui-list/src/components/Tree/TreeItem.tsx","kind":"import-statement","original":"./TreeItem"}],"format":"esm"},"packages/ui/react-ui-list/src/components/index.ts":{"bytes":669,"imports":[{"path":"packages/ui/react-ui-list/src/components/Accordion/index.ts","kind":"import-statement","original":"./Accordion"},{"path":"packages/ui/react-ui-list/src/components/List/index.ts","kind":"import-statement","original":"./List"},{"path":"packages/ui/react-ui-list/src/components/Tree/index.ts","kind":"import-statement","original":"./Tree"}],"format":"esm"},"packages/ui/react-ui-list/src/util/path.ts":{"bytes":3466,"imports":[],"format":"esm"},"packages/ui/react-ui-list/src/util/index.ts":{"bytes":494,"imports":[{"path":"packages/ui/react-ui-list/src/util/path.ts","kind":"import-statement","original":"./path"}],"format":"esm"},"packages/ui/react-ui-list/src/index.ts":{"bytes":583,"imports":[{"path":"packages/ui/react-ui-list/src/components/index.ts","kind":"import-statement","original":"./components"},{"path":"packages/ui/react-ui-list/src/util/index.ts","kind":"import-statement","original":"./util"}],"format":"esm"}},"outputs":{"packages/ui/react-ui-list/dist/lib/node/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":56437},"packages/ui/react-ui-list/dist/lib/node/index.cjs":{"imports":[{"path":"@radix-ui/react-accordion","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@radix-ui/react-accordion","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/combine","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/element/adapter","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/element/set-custom-native-drag-preview","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop-hitbox/closest-edge","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react-dom","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/element/adapter","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop-hitbox/closest-edge","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop-hitbox/util/get-reorder-destination-index","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/combine","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/element/adapter","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop-hitbox/tree-item","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-text-tooltip","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"exports":["Accordion","List","Path","RawTreeItem","Tree","TreeDataSchema","TreeItem","TreeProvider","isTreeData","useTree"],"entryPoint":"packages/ui/react-ui-list/src/index.ts","inputs":{"packages/ui/react-ui-list/src/components/Accordion/AccordionItem.tsx":{"bytesInOutput":1676},"packages/ui/react-ui-list/src/components/Accordion/AccordionRoot.tsx":{"bytesInOutput":756},"packages/ui/react-ui-list/src/components/Accordion/Accordion.tsx":{"bytesInOutput":132},"packages/ui/react-ui-list/src/components/Accordion/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-list/src/components/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-list/src/components/List/ListItem.tsx":{"bytesInOutput":6916},"packages/ui/react-ui-list/src/components/List/ListRoot.tsx":{"bytesInOutput":2186},"packages/ui/react-ui-list/src/components/List/List.tsx":{"bytesInOutput":275},"packages/ui/react-ui-list/src/components/List/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-list/src/components/Tree/Tree.tsx":{"bytesInOutput":1127},"packages/ui/react-ui-list/src/components/Tree/TreeContext.tsx":{"bytesInOutput":293},"packages/ui/react-ui-list/src/components/Tree/TreeItem.tsx":{"bytesInOutput":8275},"packages/ui/react-ui-list/src/components/Tree/TreeItemHeading.tsx":{"bytesInOutput":1799},"packages/ui/react-ui-list/src/components/Tree/TreeItemToggle.tsx":{"bytesInOutput":810},"packages/ui/react-ui-list/src/components/Tree/helpers.ts":{"bytesInOutput":162},"packages/ui/react-ui-list/src/components/Tree/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-list/src/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-list/src/util/path.ts":{"bytesInOutput":678},"packages/ui/react-ui-list/src/util/index.ts":{"bytesInOutput":0}},"bytes":26346}}}
|
|
@@ -445,7 +445,7 @@ var TreeItemToggle = /* @__PURE__ */ memo2(/* @__PURE__ */ forwardRef3(({ open,
|
|
|
445
445
|
classNames: mx5("is-6 pli-0 dx-focus-ring-inset", hidden ? "hidden" : !isBranch && "invisible"),
|
|
446
446
|
onClick: onToggle
|
|
447
447
|
}, /* @__PURE__ */ React6.createElement(Icon4, {
|
|
448
|
-
icon: "ph--caret-right--
|
|
448
|
+
icon: "ph--caret-right--bold",
|
|
449
449
|
size: 3,
|
|
450
450
|
classNames: mx5("transition duration-200", open && "rotate-90")
|
|
451
451
|
}));
|
|
@@ -758,7 +758,7 @@ var Tree = ({ root, path, id, getItems, getProps, isOpen, isCurrent, draggable:
|
|
|
758
758
|
};
|
|
759
759
|
|
|
760
760
|
// packages/ui/react-ui-list/src/util/path.ts
|
|
761
|
-
var SEPARATOR = "
|
|
761
|
+
var SEPARATOR = "+";
|
|
762
762
|
var Path = {
|
|
763
763
|
create: (...args) => args.join(SEPARATOR),
|
|
764
764
|
parts: (path) => path.split(SEPARATOR),
|