@dxos/react-ui-stack 0.7.4 → 0.7.5-labs.5f04cf6
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 +176 -103
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node/index.cjs +183 -109
- package/dist/lib/node/index.cjs.map +4 -4
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node-esm/index.mjs +176 -103
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/types/src/components/LayoutControls.d.ts.map +1 -1
- package/dist/types/src/components/Stack.d.ts.map +1 -1
- package/dist/types/src/components/Stack.stories.d.ts.map +1 -1
- package/dist/types/src/components/StackContext.d.ts +9 -4
- package/dist/types/src/components/StackContext.d.ts.map +1 -1
- package/dist/types/src/components/StackItem.d.ts +12 -9
- package/dist/types/src/components/StackItem.d.ts.map +1 -1
- package/dist/types/src/components/StackItemContent.d.ts +35 -2
- package/dist/types/src/components/StackItemContent.d.ts.map +1 -1
- package/dist/types/src/components/StackItemDragHandle.d.ts +6 -0
- package/dist/types/src/components/StackItemDragHandle.d.ts.map +1 -0
- package/dist/types/src/components/StackItemHeading.d.ts.map +1 -1
- package/dist/types/src/components/StackItemResizeHandle.d.ts +1 -0
- package/dist/types/src/components/StackItemResizeHandle.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +1 -0
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -0
- package/package.json +21 -20
- package/src/components/LayoutControls.tsx +1 -3
- package/src/components/Stack.stories.tsx +5 -4
- package/src/components/Stack.tsx +56 -8
- package/src/components/StackContext.tsx +13 -4
- package/src/components/StackItem.tsx +18 -17
- package/src/components/StackItemContent.tsx +45 -32
- package/src/components/StackItemDragHandle.tsx +22 -0
- package/src/components/StackItemHeading.tsx +2 -4
- package/src/components/StackItemResizeHandle.tsx +7 -6
- package/src/components/StackItemSigil.tsx +2 -2
- package/src/components/index.ts +1 -0
- package/dist/types/src/testing/EditorContent.d.ts +0 -8
- package/dist/types/src/testing/EditorContent.d.ts.map +0 -1
- package/src/testing/EditorContent.tsx +0 -60
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/Stack.tsx", "../../../src/components/StackContext.tsx", "../../../src/components/StackItem.tsx", "../../../src/components/StackItemContent.tsx", "../../../src/components/StackItemHeading.tsx", "../../../src/components/StackItemResizeHandle.tsx", "../../../src/components/StackItemSigil.tsx", "../../../src/components/MenuSignifier.tsx", "../../../src/translations.ts", "../../../src/components/LayoutControls.tsx"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { useArrowNavigationGroup } from '@fluentui/react-tabster';\nimport React, { Children, type CSSProperties, type ComponentPropsWithRef, forwardRef } from 'react';\n\nimport { type ThemedClassName } from '@dxos/react-ui';\nimport { mx } from '@dxos/react-ui-theme';\n\nimport { type StackContextValue, StackContext } from './StackContext';\n\nexport type Orientation = 'horizontal' | 'vertical';\nexport type Size = 'intrinsic' | 'contain';\n\nexport type StackProps = Omit<ThemedClassName<ComponentPropsWithRef<'div'>>, 'aria-orientation'> &\n Partial<StackContextValue> & { itemsCount?: number };\n\nexport const railGridHorizontal = 'grid-rows-[[rail-start]_var(--rail-size)_[content-start]_1fr_[content-end]]';\n\nexport const railGridVertical = 'grid-cols-[[rail-start]_var(--rail-size)_[content-start]_1fr_[content-end]]';\n\nexport const Stack = forwardRef<HTMLDivElement, StackProps>(\n (\n {\n children,\n classNames,\n style,\n orientation = 'vertical',\n rail = true,\n separators = true,\n size = 'intrinsic',\n itemsCount = Children.count(children),\n ...props\n },\n forwardedRef,\n ) => {\n const arrowNavigationGroup = useArrowNavigationGroup({ axis: orientation });\n\n const styles: CSSProperties = {\n [orientation === 'horizontal' ? 'gridTemplateColumns' : 'gridTemplateRows']: `repeat(${itemsCount}, min-content)`,\n ...style,\n };\n\n return (\n <StackContext.Provider value={{ orientation, rail, size, separators }}>\n <div\n {...props}\n {...arrowNavigationGroup}\n className={mx(\n 'grid relative',\n rail\n ? orientation === 'horizontal'\n ? railGridHorizontal\n : railGridVertical\n : orientation === 'horizontal'\n ? 'grid-rows-1'\n : 'grid-cols-1',\n size === 'contain' &&\n (orientation === 'horizontal'\n ? 'overflow-x-auto min-bs-0 bs-full max-bs-full'\n : 'overflow-y-auto min-is-0 is-full max-is-full'),\n separators && (orientation === 'horizontal' ? 'divide-separator divide-x' : 'divide-separator divide-y'),\n classNames,\n )}\n aria-orientation={orientation}\n style={styles}\n ref={forwardedRef}\n >\n {children}\n </div>\n </StackContext.Provider>\n );\n },\n);\n\nexport { StackContext };\nexport type { StackContextValue };\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { createContext, useContext } from 'react';\n\nimport { type Orientation, type Size } from './Stack';\nimport { type StackItemSize } from './StackItem';\n\nexport type StackContextValue = {\n orientation: Orientation;\n separators: boolean;\n rail: boolean;\n size: Size;\n};\n\nexport const StackContext = createContext<StackContextValue>({\n orientation: 'vertical',\n rail: true,\n size: 'intrinsic',\n separators: true,\n});\n\nexport const useStack = () => useContext(StackContext);\n\ntype StackItemContextValue = {\n selfDragHandleRef: (element: HTMLDivElement | null) => void;\n size: StackItemSize;\n setSize: (nextSize: StackItemSize, commit?: boolean) => void;\n};\n\nexport const StackItemContext = createContext<StackItemContextValue>({\n selfDragHandleRef: () => {},\n size: 'min-content',\n setSize: () => {},\n});\n\nexport const useStackItem = () => useContext(StackItemContext);\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 attachClosestEdge,\n extractClosestEdge,\n type Edge,\n} from '@atlaskit/pragmatic-drag-and-drop-hitbox/closest-edge';\n// TODO(wittjosiah): Drop indicator that doesn't depend on emotion. See react-ui-list DropIndicator.\n// import { DropIndicator } from '@atlaskit/pragmatic-drag-and-drop-react-drop-indicator/box';\nimport { useFocusableGroup } from '@fluentui/react-tabster';\nimport { composeRefs } from '@radix-ui/react-compose-refs';\nimport React, { forwardRef, useLayoutEffect, useState, type ComponentPropsWithRef, useCallback } from 'react';\n\nimport { type ThemedClassName } from '@dxos/react-ui';\nimport { mx } from '@dxos/react-ui-theme';\n\nimport { useStack, StackItemContext } from './StackContext';\nimport { StackItemContent, type StackItemContentProps } from './StackItemContent';\nimport {\n StackItemHeading,\n StackItemHeadingLabel,\n type StackItemHeadingProps,\n type StackItemHeadingLabelProps,\n} from './StackItemHeading';\nimport { StackItemResizeHandle } from './StackItemResizeHandle';\nimport {\n StackItemSigil,\n type StackItemSigilProps,\n type StackItemSigilAction,\n type StackItemSigilButtonProps,\n StackItemSigilButton,\n} from './StackItemSigil';\n\nexport type StackItemSize = number | 'min-content';\nexport const DEFAULT_HORIZONTAL_SIZE = 44 satisfies StackItemSize;\nexport const DEFAULT_VERTICAL_SIZE = 'min-content' satisfies StackItemSize;\nexport const DEFAULT_EXTRINSIC_SIZE = DEFAULT_HORIZONTAL_SIZE satisfies StackItemSize;\n\nexport type StackItemData = { id: string; type: 'column' | 'card' };\n\nexport type StackItemRootProps = ThemedClassName<ComponentPropsWithRef<'div'>> & {\n item: Omit<StackItemData, 'type'>;\n order?: number;\n onRearrange?: (source: StackItemData, target: StackItemData, closestEdge: Edge | null) => void;\n size?: StackItemSize;\n onSizeChange?: (nextSize: StackItemSize) => void;\n role?: 'article' | 'section';\n};\n\nconst StackItemRoot = forwardRef<HTMLDivElement, StackItemRootProps>(\n (\n { item, children, classNames, onRearrange, size: propsSize, onSizeChange, role, order, style, ...props },\n forwardedRef,\n ) => {\n const [itemElement, itemRef] = useState<HTMLDivElement | null>(null);\n const [selfDragHandleElement, selfDragHandleRef] = useState<HTMLDivElement | null>(null);\n const [_closestEdge, setEdge] = useState<Edge | null>(null);\n const { orientation, rail, separators } = useStack();\n const [size = orientation === 'horizontal' ? DEFAULT_HORIZONTAL_SIZE : DEFAULT_VERTICAL_SIZE, setInternalSize] =\n useState(propsSize);\n\n const Root = role ?? 'div';\n\n const composedItemRef = composeRefs<HTMLDivElement>(itemRef, forwardedRef);\n\n const setSize = useCallback(\n (nextSize: StackItemSize, commit?: boolean) => {\n setInternalSize(nextSize);\n if (commit) {\n onSizeChange?.(nextSize);\n }\n },\n [onSizeChange],\n );\n\n const type = orientation === 'horizontal' ? 'column' : 'card';\n\n useLayoutEffect(() => {\n if (!itemElement || !onRearrange) {\n return;\n }\n return combine(\n draggable({\n element: itemElement,\n ...(selfDragHandleElement && { dragHandle: selfDragHandleElement }),\n getInitialData: () => ({ id: item.id, type }),\n }),\n dropTargetForElements({\n element: itemElement,\n getData: ({ input, element }) => {\n return attachClosestEdge(\n { id: item.id, type },\n { input, element, allowedEdges: orientation === 'horizontal' ? ['left', 'right'] : ['top', 'bottom'] },\n );\n },\n onDragEnter: ({ self, source }) => {\n if (source.data.type === self.data.type) {\n setEdge(extractClosestEdge(self.data));\n }\n },\n onDrag: ({ self, source }) => {\n if (source.data.type === self.data.type) {\n setEdge(extractClosestEdge(self.data));\n }\n },\n onDragLeave: () => setEdge(null),\n onDrop: ({ self, source }) => {\n setEdge(null);\n if (source.data.type === self.data.type) {\n onRearrange(source.data as StackItemData, self.data as StackItemData, extractClosestEdge(self.data));\n }\n },\n }),\n );\n }, [orientation, item, onRearrange, selfDragHandleElement, itemElement]);\n\n const focusGroupAttrs = useFocusableGroup({ tabBehavior: 'limited' });\n\n return (\n <StackItemContext.Provider value={{ selfDragHandleRef, size, setSize }}>\n <Root\n {...props}\n tabIndex={0}\n {...focusGroupAttrs}\n className={mx(\n 'group/stack-item grid relative ch-focus-ring-inset-over-all',\n size === 'min-content' && (orientation === 'horizontal' ? 'is-min' : 'bs-min'),\n orientation === 'horizontal' ? 'grid-rows-subgrid' : 'grid-cols-subgrid',\n rail && (orientation === 'horizontal' ? 'row-span-2' : 'col-span-2'),\n separators && (orientation === 'horizontal' ? 'divide-separator divide-y' : 'divide-separator divide-x'),\n classNames,\n )}\n data-dx-stack-item\n style={{\n ...(size !== 'min-content' && {\n [orientation === 'horizontal' ? 'inlineSize' : 'blockSize']: `${size}rem`,\n }),\n ...(Number.isFinite(order) && {\n [orientation === 'horizontal' ? 'gridColumn' : 'gridRow']: `${order}`,\n }),\n ...style,\n }}\n ref={composedItemRef}\n >\n {children}\n {/* {closestEdge && <DropIndicator edge={closestEdge} />} */}\n </Root>\n </StackItemContext.Provider>\n );\n },\n);\n\nexport const StackItem = {\n Root: StackItemRoot,\n Content: StackItemContent,\n Heading: StackItemHeading,\n HeadingLabel: StackItemHeadingLabel,\n ResizeHandle: StackItemResizeHandle,\n Sigil: StackItemSigil,\n SigilButton: StackItemSigilButton,\n};\n\nexport type {\n StackItemContentProps,\n StackItemHeadingProps,\n StackItemHeadingLabelProps,\n StackItemSigilProps,\n StackItemSigilButtonProps,\n StackItemSigilAction,\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { type ComponentPropsWithoutRef } from 'react';\n\nimport { type ThemedClassName } from '@dxos/react-ui';\nimport { mx } from '@dxos/react-ui-theme';\n\nimport { useStack } from './StackContext';\n\nexport type StackItemContentProps = ThemedClassName<ComponentPropsWithoutRef<'div'>> & {\n toolbar?: boolean;\n statusbar?: boolean;\n};\n\nexport const StackItemContent = ({\n children,\n toolbar = true,\n statusbar,\n classNames,\n ...props\n}: StackItemContentProps) => {\n const { size, separators } = useStack();\n\n return (\n <div\n role='none'\n {...props}\n className={mx(\n 'group grid grid-cols-[100%]',\n size === 'contain' && 'min-bs-0 overflow-hidden',\n separators && 'divide-separator divide-y',\n classNames,\n )}\n style={{\n gridTemplateRows: [\n ...(toolbar ? ['var(--rail-action)'] : []),\n '1fr',\n ...(statusbar ? ['var(--statusbar-size)'] : []),\n ].join(' '),\n }}\n >\n {children}\n </div>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { useFocusableGroup } from '@fluentui/react-tabster';\nimport React, { type ComponentPropsWithoutRef, type ComponentPropsWithRef, forwardRef } from 'react';\n\nimport { type ThemedClassName } from '@dxos/react-ui';\nimport { useAttention, type AttendableId, type Related } from '@dxos/react-ui-attention';\nimport { mx } from '@dxos/react-ui-theme';\n\nimport { useStack, useStackItem } from './StackContext';\n\nexport type StackItemHeadingProps = ThemedClassName<ComponentPropsWithoutRef<'div'>>;\n\nexport const StackItemHeading = ({ children, classNames, ...props }: StackItemHeadingProps) => {\n const { orientation } = useStack();\n const { selfDragHandleRef } = useStackItem();\n const focusableGroupAttrs = useFocusableGroup({ tabBehavior: 'limited' });\n return (\n <div\n role='heading'\n {...props}\n tabIndex={0}\n {...focusableGroupAttrs}\n className={mx(\n 'flex items-center ch-focus-ring-inset-over-all relative !border-is-0',\n orientation === 'horizontal' ? 'bs-[--rail-size]' : 'is-[--rail-size] flex-col',\n classNames,\n )}\n ref={selfDragHandleRef}\n >\n {children}\n </div>\n );\n};\n\nexport type StackItemHeadingLabelProps = ThemedClassName<ComponentPropsWithRef<'h1'>> & AttendableId & Related;\n\nexport const StackItemHeadingLabel = forwardRef<HTMLHeadingElement, StackItemHeadingLabelProps>(\n ({ attendableId, related, classNames, ...props }, forwardedRef) => {\n const { hasAttention, isAncestor, isRelated } = useAttention(attendableId);\n return (\n <h1\n {...props}\n data-attention={((related && isRelated) || hasAttention || isAncestor).toString()}\n className={mx(\n 'pli-1 min-is-0 is-0 grow truncate font-medium text-baseText data-[attention=true]:text-accentText',\n classNames,\n )}\n ref={forwardedRef}\n />\n );\n },\n);\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { draggable } from '@atlaskit/pragmatic-drag-and-drop/element/adapter';\nimport { disableNativeDragPreview } from '@atlaskit/pragmatic-drag-and-drop/element/disable-native-drag-preview';\nimport { preventUnhandled } from '@atlaskit/pragmatic-drag-and-drop/prevent-unhandled';\nimport { type DragLocationHistory } from '@atlaskit/pragmatic-drag-and-drop/types';\nimport React, { useLayoutEffect, useRef } from 'react';\n\nimport { mx } from '@dxos/react-ui-theme';\n\nimport { useStack, useStackItem } from './StackContext';\nimport { DEFAULT_EXTRINSIC_SIZE, type StackItemSize } from './StackItem';\n\nconst REM = parseFloat(getComputedStyle(document.documentElement).fontSize);\n\nconst MIN_SIZE = 20;\n\nconst measureStackItem = (element: HTMLButtonElement): { width: number; height: number } => {\n const stackItemElement = element.closest('[data-dx-stack-item]');\n return stackItemElement?.getBoundingClientRect() ?? { width: DEFAULT_EXTRINSIC_SIZE, height: DEFAULT_EXTRINSIC_SIZE };\n};\n\nconst getNextSize = (startSize: number, location: DragLocationHistory, client: 'clientX' | 'clientY') => {\n return Math.max(MIN_SIZE, startSize + (location.current.input[client] - location.initial.input[client]) / REM);\n};\n\nexport const StackItemResizeHandle = () => {\n const { orientation } = useStack();\n const { setSize, size } = useStackItem();\n const buttonRef = useRef<HTMLButtonElement>(null);\n const dragStartSize = useRef<StackItemSize>(size);\n const client = orientation === 'horizontal' ? 'clientX' : 'clientY';\n\n useLayoutEffect(\n () => {\n if (!buttonRef.current || buttonRef.current.hasAttribute('draggable')) {\n return;\n }\n // TODO(thure): This should handle StackItem state vs local state better.\n draggable({\n element: buttonRef.current,\n onGenerateDragPreview: ({ nativeSetDragImage }) => {\n // we will be moving the line to indicate a drag\n // we can disable the native drag preview\n disableNativeDragPreview({ nativeSetDragImage });\n // we don't want any native drop animation for when the user\n // does not drop on a drop target. we want the drag to finish immediately\n preventUnhandled.start();\n },\n onDragStart: () => {\n dragStartSize.current =\n dragStartSize.current === 'min-content'\n ? measureStackItem(buttonRef.current!)[orientation === 'horizontal' ? 'width' : 'height'] / REM\n : dragStartSize.current;\n },\n onDrag: ({ location }) => {\n if (typeof dragStartSize.current !== 'number') {\n return;\n }\n setSize(getNextSize(dragStartSize.current, location, client));\n },\n onDrop: ({ location }) => {\n if (typeof dragStartSize.current !== 'number') {\n return;\n }\n const nextSize = getNextSize(dragStartSize.current, location, client);\n setSize(nextSize, true);\n dragStartSize.current = nextSize;\n },\n });\n },\n [\n // Note that `size` should not be a dependency here since dragging this adjusts the size.\n ],\n );\n\n return (\n <button\n ref={buttonRef}\n className={mx(\n orientation === 'horizontal' ? 'cursor-col-resize' : 'cursor-row-resize',\n 'group absolute is-3 bs-full inline-end-[-1px] !border-lb-0',\n 'before:transition-opacity before:duration-100 before:ease-in-out before:opacity-0 hover:before:opacity-100 focus-visible:before:opacity-100 active:before:opacity-100',\n 'before:absolute before:block before:inset-block-0 before:inline-end-0 before:is-1 before:bg-accentFocusIndicator',\n )}\n >\n <div\n role='none'\n className='absolute block-start-0 inline-end-[1px] bs-[--rail-size] flex items-center group-hover:opacity-0 group-focus-visible:opacity-0 group-active:opacity-0'\n >\n <DragHandleSignifier />\n </div>\n </button>\n );\n};\n\nconst DragHandleSignifier = () => {\n return (\n <svg\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 256 256'\n fill='currentColor'\n className='shrink-0 bs-[1em] is-[1em] text-unAccent'\n >\n {/* two pips: <path d='M256,120c-8.8,0-16-7.2-16-16v-56c0-8.8,7.2-16,16-16v88Z' />\n <path d='M256,232c-8.8,0-16-7.2-16-16v-56c0-8.8,7.2-16,16-16v88Z' /> */}\n <path d='M256,64c-8.8,0-16-7.2-16-16s7.2-16,16-16v32Z' />\n <path d='M256,120c-8.8,0-16-7.2-16-16s7.2-16,16-16v32Z' />\n <path d='M256,176c-8.8,0-16-7.2-16-16s7.2-16,16-16v32Z' />\n <path d='M256,232c-8.8,0-16-7.2-16-16s7.2-16,16-16v32Z' />\n </svg>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { Fragment, type PropsWithChildren, forwardRef, useRef, useState } from 'react';\n\nimport { type ActionLike } from '@dxos/app-graph';\nimport { keySymbols } from '@dxos/keyboard';\nimport {\n Button,\n type ButtonProps,\n DropdownMenu,\n Icon,\n toLocalizedString,\n Tooltip,\n useTranslation,\n} from '@dxos/react-ui';\nimport { type AttendableId, type Related, useAttention } from '@dxos/react-ui-attention';\nimport { descriptionText, mx } from '@dxos/react-ui-theme';\nimport { getHostPlatform } from '@dxos/util';\n\nimport { MenuSignifierHorizontal } from './MenuSignifier';\nimport { translationKey } from '../translations';\n\nexport type KeyBinding = {\n windows?: string;\n macos?: string;\n ios?: string;\n linux?: string;\n unknown?: string;\n};\n\nexport type StackItemSigilAction = Pick<ActionLike, 'id' | 'properties' | 'data'>;\n\nexport type StackItemSigilButtonProps = Omit<ButtonProps, 'variant'> & AttendableId & Related;\n\nexport const StackItemSigilButton = forwardRef<HTMLButtonElement, StackItemSigilButtonProps>(\n ({ attendableId, classNames, related, children, ...props }, forwardedRef) => {\n const { hasAttention, isAncestor, isRelated } = useAttention(attendableId);\n const variant = (related && isRelated) || hasAttention || isAncestor ? 'primary' : 'ghost';\n return (\n <Button\n {...props}\n variant={variant}\n classNames={['m-1 shrink-0 pli-0 min-bs-0 is-[--rail-action] bs-[--rail-action] relative', classNames]}\n ref={forwardedRef}\n >\n <MenuSignifierHorizontal />\n {children}\n </Button>\n );\n },\n);\n\nexport type StackItemSigilProps = PropsWithChildren<\n {\n attendableId?: string;\n triggerLabel: string;\n actions?: StackItemSigilAction[][];\n icon: string;\n onAction?: (action: StackItemSigilAction) => void;\n } & Related\n>;\n\nexport const StackItemSigil = forwardRef<HTMLButtonElement, StackItemSigilProps>(\n ({ actions: actionGroups, onAction, triggerLabel, attendableId, icon, related, children }, forwardedRef) => {\n const { t } = useTranslation(translationKey);\n const suppressNextTooltip = useRef(false);\n\n const [optionsMenuOpen, setOptionsMenuOpen] = useState(false);\n const [triggerTooltipOpen, setTriggerTooltipOpen] = useState(false);\n\n return (\n <Tooltip.Root\n open={triggerTooltipOpen}\n onOpenChange={(nextOpen) => {\n if (suppressNextTooltip.current) {\n setTriggerTooltipOpen(false);\n suppressNextTooltip.current = false;\n } else {\n setTriggerTooltipOpen(nextOpen);\n }\n }}\n >\n <DropdownMenu.Root\n {...{\n open: optionsMenuOpen,\n onOpenChange: (nextOpen: boolean) => {\n if (!nextOpen) {\n suppressNextTooltip.current = true;\n }\n return setOptionsMenuOpen(nextOpen);\n },\n }}\n >\n <Tooltip.Trigger asChild>\n <DropdownMenu.Trigger asChild ref={forwardedRef}>\n <StackItemSigilButton attendableId={attendableId} related={related}>\n <span className='sr-only'>{triggerLabel}</span>\n <Icon icon={icon} size={5} />\n </StackItemSigilButton>\n </DropdownMenu.Trigger>\n </Tooltip.Trigger>\n <DropdownMenu.Portal>\n <DropdownMenu.Content classNames='z-[31]'>\n <DropdownMenu.Viewport>\n {actionGroups?.map((actions, index) => {\n const separator = index > 0 ? <DropdownMenu.Separator /> : null;\n return (\n <Fragment key={index}>\n {separator}\n {actions.map((action) => {\n const shortcut =\n typeof action.properties.keyBinding === 'string'\n ? action.properties.keyBinding\n : action.properties.keyBinding?.[getHostPlatform()];\n\n const menuItemType = action.properties.menuItemType;\n const Root = menuItemType === 'toggle' ? DropdownMenu.CheckboxItem : DropdownMenu.Item;\n\n return (\n <Root\n key={action.id}\n onClick={(event) => {\n if (action.properties.disabled) {\n return;\n }\n event.stopPropagation();\n // TODO(thure): Why does Dialog’s modal-ness cause issues if we don’t explicitly close the menu here?\n suppressNextTooltip.current = true;\n setOptionsMenuOpen(false);\n onAction?.(action);\n }}\n classNames='gap-2'\n disabled={action.properties.disabled}\n checked={menuItemType === 'toggle' ? action.properties.isChecked : undefined}\n {...(action.properties?.testId && { 'data-testid': action.properties.testId })}\n >\n <Icon icon={action.properties.icon ?? 'ph--placeholder--regular'} size={4} />\n <span className='grow truncate'>{toLocalizedString(action.properties.label ?? '', t)}</span>\n {menuItemType === 'toggle' && (\n <DropdownMenu.ItemIndicator asChild>\n <Icon icon='ph--check--regular' size={4} />\n </DropdownMenu.ItemIndicator>\n )}\n {shortcut && (\n <span className={mx('shrink-0', descriptionText)}>{keySymbols(shortcut).join('')}</span>\n )}\n </Root>\n );\n })}\n </Fragment>\n );\n })}\n {children}\n </DropdownMenu.Viewport>\n <DropdownMenu.Arrow />\n </DropdownMenu.Content>\n </DropdownMenu.Portal>\n </DropdownMenu.Root>\n <Tooltip.Portal>\n <Tooltip.Content style={{ zIndex: 70 }} side='bottom'>\n {triggerLabel}\n <Tooltip.Arrow />\n </Tooltip.Content>\n </Tooltip.Portal>\n </Tooltip.Root>\n );\n },\n);\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nexport const MenuSignifierHorizontal = () => (\n <svg\n className='absolute block-end-[7px]'\n width={20}\n height={2}\n viewBox='0 0 20 2'\n stroke='currentColor'\n opacity={0.5}\n >\n <line\n x1={0.5}\n y1={0.75}\n x2={19}\n y2={0.75}\n strokeWidth={1.25}\n strokeLinecap='round'\n strokeDasharray='6 20'\n strokeDashoffset='-6.5'\n />\n </svg>\n);\n\nexport const MenuSignifierVertical = () => (\n <svg className='absolute inline-start-1' width={2} height={18} viewBox='0 0 2 18' stroke='currentColor'>\n <line x1={1} y1={3} x2={1} y2={18} strokeWidth={1.5} strokeLinecap='round' strokeDasharray='0 6' />\n </svg>\n);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nexport const translationKey = 'stack';\n\nexport default [\n {\n 'en-US': {\n [translationKey]: {\n 'resize label': 'Drag to resize',\n 'pin start label': 'Pin to the left sidebar',\n 'pin end label': 'Pin to the right sidebar',\n 'increment start label': 'Move to the left',\n 'increment end label': 'Move to the right',\n 'close label': 'Close',\n 'minify label': 'Minify',\n },\n },\n },\n];\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { forwardRef } from 'react';\n\nimport {\n Button,\n ButtonGroup,\n type ButtonGroupProps,\n type ButtonProps,\n Icon,\n Tooltip,\n useTranslation,\n} from '@dxos/react-ui';\n\nimport { translationKey } from '../translations';\n\nexport type LayoutControlEvent = 'solo' | 'close' | `${'pin' | 'increment'}-${'start' | 'end'}`;\nexport type LayoutControlHandler = (event: LayoutControlEvent) => void;\n\nexport type LayoutCapabilities = {\n incrementStart?: boolean;\n incrementEnd?: boolean;\n solo?: boolean;\n};\n\nexport type LayoutControlsProps = Omit<ButtonGroupProps, 'onClick'> & {\n onClick?: LayoutControlHandler;\n variant?: 'hide-disabled' | 'default';\n close?: boolean | 'minify-start' | 'minify-end';\n capabilities: LayoutCapabilities;\n isSolo?: boolean;\n pin?: 'start' | 'end' | 'both';\n};\n\nconst LayoutControl = ({ icon, label, ...props }: Omit<ButtonProps, 'children'> & { label: string; icon: string }) => {\n return (\n <Tooltip.Root>\n <Tooltip.Trigger asChild>\n <Button variant='ghost' {...props}>\n <span className='sr-only'>{label}</span>\n <Icon icon={icon} />\n </Button>\n </Tooltip.Trigger>\n <Tooltip.Portal>\n <Tooltip.Content side='bottom' classNames='z-[70]'>\n {label}\n </Tooltip.Content>\n </Tooltip.Portal>\n </Tooltip.Root>\n );\n};\n\nexport const LayoutControls = forwardRef<HTMLDivElement, LayoutControlsProps>(\n (\n { onClick, variant = 'default', capabilities: can, isSolo, pin, close = false, children, ...props },\n forwardedRef,\n ) => {\n const { t } = useTranslation(translationKey);\n const buttonClassNames = variant === 'hide-disabled' ? 'disabled:hidden !p-1' : '!p-1';\n\n return (\n <ButtonGroup {...props} ref={forwardedRef}>\n {pin && !isSolo && ['both', 'start'].includes(pin) && (\n <LayoutControl\n label={t('pin start label')}\n variant='ghost'\n classNames={buttonClassNames}\n onClick={() => onClick?.('pin-start')}\n icon='ph--caret-line-left--regular'\n />\n )}\n\n {can.solo && (\n <LayoutControl\n label={t('solo layout label')}\n classNames={buttonClassNames}\n onClick={() => onClick?.('solo')}\n icon={isSolo ? 'ph--arrows-in--regular' : 'ph--arrows-out--regular'}\n />\n )}\n\n {!isSolo && can.solo && (\n <>\n <LayoutControl\n label={t('increment start label')}\n disabled={!can.incrementStart}\n classNames={buttonClassNames}\n onClick={() => onClick?.('increment-start')}\n icon='ph--caret-left--regular'\n />\n <LayoutControl\n label={t('increment end label')}\n disabled={!can.incrementEnd}\n classNames={buttonClassNames}\n onClick={() => onClick?.('increment-end')}\n icon='ph--caret-right--regular'\n />\n </>\n )}\n\n {pin && !isSolo && ['both', 'end'].includes(pin) && (\n <LayoutControl\n label={t('pin end label')}\n classNames={buttonClassNames}\n onClick={() => onClick?.('pin-end')}\n icon='ph--caret-line-right--regular'\n />\n )}\n\n {close && !isSolo && (\n <LayoutControl\n label={t(`${typeof close === 'string' ? 'minify' : 'close'} label`)}\n classNames={buttonClassNames}\n onClick={() => onClick?.('close')}\n data-testid='layoutHeading.close'\n icon={\n close === 'minify-start'\n ? 'ph--caret-line-left--regular'\n : close === 'minify-end'\n ? 'ph--caret-line-right--regular'\n : 'ph--x--regular'\n }\n />\n )}\n {children}\n </ButtonGroup>\n );\n },\n);\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["import_react", "import_react_tabster", "import_react_ui_theme", "
|
|
3
|
+
"sources": ["../../../src/components/Stack.tsx", "../../../src/components/StackContext.tsx", "../../../src/components/StackItem.tsx", "../../../src/components/StackItemContent.tsx", "../../../src/components/StackItemDragHandle.tsx", "../../../src/components/StackItemHeading.tsx", "../../../src/components/StackItemResizeHandle.tsx", "../../../src/components/StackItemSigil.tsx", "../../../src/components/MenuSignifier.tsx", "../../../src/translations.ts", "../../../src/components/LayoutControls.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\nimport { dropTargetForElements } from '@atlaskit/pragmatic-drag-and-drop/element/adapter';\nimport { attachClosestEdge, extractClosestEdge } from '@atlaskit/pragmatic-drag-and-drop-hitbox/closest-edge';\nimport { useArrowNavigationGroup } from '@fluentui/react-tabster';\nimport { composeRefs } from '@radix-ui/react-compose-refs';\nimport React, {\n Children,\n type CSSProperties,\n type ComponentPropsWithRef,\n forwardRef,\n useLayoutEffect,\n useState,\n} from 'react';\n\nimport { type ThemedClassName, ListItem } from '@dxos/react-ui';\nimport { mx } from '@dxos/react-ui-theme';\n\nimport { type StackContextValue, StackContext, type StackItemData } from './StackContext';\n\nexport type Orientation = 'horizontal' | 'vertical';\nexport type Size = 'intrinsic' | 'contain';\n\nexport type StackProps = Omit<ThemedClassName<ComponentPropsWithRef<'div'>>, 'aria-orientation'> &\n Partial<StackContextValue> & { itemsCount?: number };\n\nexport const railGridHorizontal = 'grid-rows-[[rail-start]_var(--rail-size)_[content-start]_1fr_[content-end]]';\n\nexport const railGridVertical = 'grid-cols-[[rail-start]_var(--rail-size)_[content-start]_1fr_[content-end]]';\n\nexport const Stack = forwardRef<HTMLDivElement, StackProps>(\n (\n {\n children,\n classNames,\n style,\n orientation = 'vertical',\n rail = true,\n size = 'intrinsic',\n onRearrange,\n itemsCount = Children.count(children),\n ...props\n },\n forwardedRef,\n ) => {\n const [stackElement, stackRef] = useState<HTMLDivElement | null>(null);\n const composedItemRef = composeRefs<HTMLDivElement>(stackRef, forwardedRef);\n const [dropping, setDropping] = useState(false);\n\n const arrowNavigationGroup = useArrowNavigationGroup({ axis: orientation });\n\n const styles: CSSProperties = {\n [orientation === 'horizontal' ? 'gridTemplateColumns' : 'gridTemplateRows']: `repeat(${itemsCount}, min-content)`,\n ...style,\n };\n\n const selfDroppable = !!(itemsCount < 1 && onRearrange && props.id);\n\n useLayoutEffect(() => {\n if (!stackElement || !selfDroppable) {\n return;\n }\n const acceptSourceType = orientation === 'horizontal' ? 'column' : 'card';\n return dropTargetForElements({\n element: stackElement,\n getData: ({ input, element }) => {\n return attachClosestEdge(\n { id: props.id, type: orientation === 'horizontal' ? 'card' : 'column' },\n { input, element, allowedEdges: [orientation === 'horizontal' ? 'left' : 'top'] },\n );\n },\n onDragEnter: ({ source }) => {\n if (source.data.type === acceptSourceType) {\n setDropping(true);\n }\n },\n onDrag: ({ source }) => {\n if (source.data.type === acceptSourceType) {\n setDropping(true);\n }\n },\n onDragLeave: () => setDropping(false),\n onDrop: ({ self, source }) => {\n setDropping(false);\n if (source.data.type === acceptSourceType && selfDroppable) {\n onRearrange(source.data as StackItemData, self.data as StackItemData, extractClosestEdge(self.data));\n }\n },\n });\n }, [stackElement, selfDroppable]);\n\n return (\n <StackContext.Provider value={{ orientation, rail, size, onRearrange }}>\n <div\n {...props}\n {...arrowNavigationGroup}\n className={mx(\n 'grid relative',\n rail\n ? orientation === 'horizontal'\n ? railGridHorizontal\n : railGridVertical\n : orientation === 'horizontal'\n ? 'grid-rows-1'\n : 'grid-cols-1',\n size === 'contain' &&\n (orientation === 'horizontal'\n ? 'overflow-x-auto min-bs-0 bs-full max-bs-full'\n : 'overflow-y-auto min-is-0 is-full max-is-full'),\n classNames,\n )}\n aria-orientation={orientation}\n style={styles}\n ref={composedItemRef}\n >\n {children}\n {selfDroppable && dropping && <ListItem.DropIndicator edge={orientation === 'horizontal' ? 'left' : 'top'} />}\n </div>\n </StackContext.Provider>\n );\n },\n);\n\nexport { StackContext };\nexport type { StackContextValue };\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport type { Edge } from '@atlaskit/pragmatic-drag-and-drop-hitbox/closest-edge';\nimport { createContext, useContext } from 'react';\n\nimport { type Orientation, type Size } from './Stack';\n\nexport type StackItemSize = number | 'min-content';\n\nexport type StackItemData = { id: string; type: 'column' | 'card' };\n\nexport type StackItemRearrangeHandler = (\n source: StackItemData,\n target: StackItemData,\n closestEdge: Edge | null,\n) => void;\n\nexport type StackContextValue = {\n orientation: Orientation;\n rail: boolean;\n size: Size;\n onRearrange?: StackItemRearrangeHandler;\n};\n\nexport const StackContext = createContext<StackContextValue>({\n orientation: 'vertical',\n rail: true,\n size: 'intrinsic',\n});\n\nexport const useStack = () => useContext(StackContext);\n\nexport type StackItemContextValue = {\n selfDragHandleRef: (element: HTMLDivElement | null) => void;\n size: StackItemSize;\n setSize: (nextSize: StackItemSize, commit?: boolean) => void;\n};\n\nexport const StackItemContext = createContext<StackItemContextValue>({\n selfDragHandleRef: () => {},\n size: 'min-content',\n setSize: () => {},\n});\n\nexport const useStackItem = () => useContext(StackItemContext);\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 { disableNativeDragPreview } from '@atlaskit/pragmatic-drag-and-drop/element/disable-native-drag-preview';\nimport { preventUnhandled } from '@atlaskit/pragmatic-drag-and-drop/prevent-unhandled';\nimport {\n attachClosestEdge,\n extractClosestEdge,\n type Edge,\n} from '@atlaskit/pragmatic-drag-and-drop-hitbox/closest-edge';\nimport { useFocusableGroup } from '@fluentui/react-tabster';\nimport { composeRefs } from '@radix-ui/react-compose-refs';\nimport React, { forwardRef, useLayoutEffect, useState, type ComponentPropsWithRef, useCallback } from 'react';\n\nimport { type ThemedClassName, ListItem } from '@dxos/react-ui';\nimport { mx } from '@dxos/react-ui-theme';\n\nimport { useStack, StackItemContext, type StackItemSize, type StackItemData } from './StackContext';\nimport { StackItemContent, type StackItemContentProps } from './StackItemContent';\nimport { StackItemDragHandle, type StackItemDragHandleProps } from './StackItemDragHandle';\nimport {\n StackItemHeading,\n StackItemHeadingLabel,\n type StackItemHeadingProps,\n type StackItemHeadingLabelProps,\n} from './StackItemHeading';\nimport { StackItemResizeHandle, type StackItemResizeHandleProps } from './StackItemResizeHandle';\nimport {\n StackItemSigil,\n type StackItemSigilProps,\n type StackItemSigilAction,\n type StackItemSigilButtonProps,\n StackItemSigilButton,\n} from './StackItemSigil';\n\nexport const DEFAULT_HORIZONTAL_SIZE = 44 satisfies StackItemSize;\nexport const DEFAULT_VERTICAL_SIZE = 'min-content' satisfies StackItemSize;\nexport const DEFAULT_EXTRINSIC_SIZE = DEFAULT_HORIZONTAL_SIZE satisfies StackItemSize;\n\nexport type StackItemRootProps = ThemedClassName<ComponentPropsWithRef<'div'>> & {\n item: Omit<StackItemData, 'type'>;\n order?: number;\n size?: StackItemSize;\n onSizeChange?: (nextSize: StackItemSize) => void;\n role?: 'article' | 'section';\n};\n\nconst StackItemRoot = forwardRef<HTMLDivElement, StackItemRootProps>(\n ({ item, children, classNames, size: propsSize, onSizeChange, role, order, style, ...props }, forwardedRef) => {\n const [itemElement, itemRef] = useState<HTMLDivElement | null>(null);\n const [selfDragHandleElement, selfDragHandleRef] = useState<HTMLDivElement | null>(null);\n const [closestEdge, setEdge] = useState<Edge | null>(null);\n const { orientation, rail, onRearrange } = useStack();\n const [size = orientation === 'horizontal' ? DEFAULT_HORIZONTAL_SIZE : DEFAULT_VERTICAL_SIZE, setInternalSize] =\n useState(propsSize);\n\n const Root = role ?? 'div';\n\n const composedItemRef = composeRefs<HTMLDivElement>(itemRef, forwardedRef);\n\n const setSize = useCallback(\n (nextSize: StackItemSize, commit?: boolean) => {\n setInternalSize(nextSize);\n if (commit) {\n onSizeChange?.(nextSize);\n }\n },\n [onSizeChange],\n );\n\n const type = orientation === 'horizontal' ? 'column' : 'card';\n\n useLayoutEffect(() => {\n if (!itemElement || !onRearrange) {\n return;\n }\n return combine(\n draggable({\n element: itemElement,\n ...(selfDragHandleElement && { dragHandle: selfDragHandleElement }),\n getInitialData: () => ({ id: item.id, type }),\n // TODO(thure): tabster focus honeypots are causing the preview to render with the wrong dimensions; what do?\n onGenerateDragPreview: ({ nativeSetDragImage }) => {\n disableNativeDragPreview({ nativeSetDragImage });\n preventUnhandled.start();\n },\n }),\n dropTargetForElements({\n element: itemElement,\n getData: ({ input, element }) => {\n return attachClosestEdge(\n { id: item.id, type },\n { input, element, allowedEdges: orientation === 'horizontal' ? ['left', 'right'] : ['top', 'bottom'] },\n );\n },\n onDragEnter: ({ self, source }) => {\n if (source.data.type === self.data.type) {\n setEdge(extractClosestEdge(self.data));\n }\n },\n onDrag: ({ self, source }) => {\n if (source.data.type === self.data.type) {\n setEdge(extractClosestEdge(self.data));\n }\n },\n onDragLeave: () => setEdge(null),\n onDrop: ({ self, source }) => {\n setEdge(null);\n if (source.data.type === self.data.type) {\n onRearrange(source.data as StackItemData, self.data as StackItemData, extractClosestEdge(self.data));\n }\n },\n }),\n );\n }, [orientation, item, onRearrange, selfDragHandleElement, itemElement]);\n\n const focusGroupAttrs = useFocusableGroup({ tabBehavior: 'limited' });\n\n return (\n <StackItemContext.Provider value={{ selfDragHandleRef, size, setSize }}>\n <Root\n {...props}\n tabIndex={0}\n {...focusGroupAttrs}\n className={mx(\n 'group/stack-item grid relative ch-focus-ring-inset-over-all',\n size === 'min-content' && (orientation === 'horizontal' ? 'is-min' : 'bs-min'),\n orientation === 'horizontal' ? 'grid-rows-subgrid' : 'grid-cols-subgrid',\n rail && (orientation === 'horizontal' ? 'row-span-2' : 'col-span-2'),\n classNames,\n )}\n data-dx-stack-item\n style={{\n ...(size !== 'min-content' && {\n [orientation === 'horizontal' ? 'inlineSize' : 'blockSize']: `${size}rem`,\n }),\n ...(Number.isFinite(order) && {\n [orientation === 'horizontal' ? 'gridColumn' : 'gridRow']: `${order}`,\n }),\n ...style,\n }}\n ref={composedItemRef}\n >\n {children}\n {closestEdge && <ListItem.DropIndicator edge={closestEdge} />}\n </Root>\n </StackItemContext.Provider>\n );\n },\n);\n\nexport const StackItem = {\n Root: StackItemRoot,\n Content: StackItemContent,\n Heading: StackItemHeading,\n HeadingLabel: StackItemHeadingLabel,\n ResizeHandle: StackItemResizeHandle,\n DragHandle: StackItemDragHandle,\n Sigil: StackItemSigil,\n SigilButton: StackItemSigilButton,\n};\n\nexport type {\n StackItemContentProps,\n StackItemHeadingProps,\n StackItemHeadingLabelProps,\n StackItemResizeHandleProps,\n StackItemDragHandleProps,\n StackItemSigilProps,\n StackItemSigilButtonProps,\n StackItemSigilAction,\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { type ComponentPropsWithoutRef, forwardRef } from 'react';\n\nimport { type ThemedClassName } from '@dxos/react-ui';\nimport { mx } from '@dxos/react-ui-theme';\n\nimport { useStack } from './StackContext';\n\nexport type StackItemContentProps = ThemedClassName<ComponentPropsWithoutRef<'div'>> & {\n /**\n * This flag is required in order to clarify a developer experience that seemed like it needed extra boilerplate\n * (`row-span-2`) or was buggy. See the description of the StackItem.Content component itself for more information.\n */\n toolbar: boolean;\n /**\n * Whether to provide for the layout of a statusbar after the content.\n */\n statusbar?: boolean;\n /**\n * Whether to set a certain aspect ratio on the content, including the toolbar and statusbar. This is provided for\n * convenience and consistency; it can instead be specified by the `classNames` or `style` props as needed.\n */\n size?: 'intrinsic' | 'video' | 'square';\n};\n\n/**\n * This component should be used by plugins for rendering content within a stack item, a.k.a. a “plank” or “section”.\n * The `toolbar` flag must be provided since this component provides for the layout of content with the toolbar.\n */\nexport const StackItemContent = forwardRef<HTMLDivElement, StackItemContentProps>(\n ({ children, toolbar, statusbar, classNames, size = 'intrinsic', ...props }, forwardedRef) => {\n const { size: stackItemSize } = useStack();\n\n return (\n <div\n role='none'\n {...props}\n className={mx(\n 'group grid grid-cols-[100%]',\n stackItemSize === 'contain' && 'min-bs-0 overflow-hidden',\n size === 'video' ? 'aspect-video' : size === 'square' && 'aspect-square',\n classNames,\n )}\n style={{\n gridTemplateRows: [\n ...(toolbar ? ['var(--rail-action)'] : []),\n '1fr',\n ...(statusbar ? ['var(--statusbar-size)'] : []),\n ].join(' '),\n }}\n ref={forwardedRef}\n >\n {children}\n </div>\n );\n },\n);\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Slot } from '@radix-ui/react-slot';\nimport React, { type ComponentPropsWithoutRef } from 'react';\n\nimport { useStackItem } from './StackContext';\n\nexport type StackItemDragHandleProps = ComponentPropsWithoutRef<'button'> & { asChild: boolean };\n\nexport const StackItemDragHandle = ({ asChild, children }: StackItemDragHandleProps) => {\n const { selfDragHandleRef } = useStackItem();\n\n const Root = asChild ? Slot : 'div';\n\n return (\n <Root ref={selfDragHandleRef} role='button'>\n {children}\n </Root>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { useFocusableGroup } from '@fluentui/react-tabster';\nimport React, { type ComponentPropsWithoutRef, type ComponentPropsWithRef, forwardRef } from 'react';\n\nimport { type ThemedClassName } from '@dxos/react-ui';\nimport { useAttention, type AttendableId, type Related } from '@dxos/react-ui-attention';\nimport { mx } from '@dxos/react-ui-theme';\n\nimport { useStack } from './StackContext';\n\nexport type StackItemHeadingProps = ThemedClassName<ComponentPropsWithoutRef<'div'>>;\n\nexport const StackItemHeading = ({ children, classNames, ...props }: StackItemHeadingProps) => {\n const { orientation } = useStack();\n const focusableGroupAttrs = useFocusableGroup({ tabBehavior: 'limited' });\n return (\n <div\n role='heading'\n {...props}\n tabIndex={0}\n {...focusableGroupAttrs}\n className={mx(\n 'flex items-center ch-focus-ring-inset-over-all relative !border-is-0',\n orientation === 'horizontal' ? 'bs-[--rail-size]' : 'is-[--rail-size] flex-col',\n classNames,\n )}\n >\n {children}\n </div>\n );\n};\n\nexport type StackItemHeadingLabelProps = ThemedClassName<ComponentPropsWithRef<'h1'>> & AttendableId & Related;\n\nexport const StackItemHeadingLabel = forwardRef<HTMLHeadingElement, StackItemHeadingLabelProps>(\n ({ attendableId, related, classNames, ...props }, forwardedRef) => {\n const { hasAttention, isAncestor, isRelated } = useAttention(attendableId);\n return (\n <h1\n {...props}\n data-attention={((related && isRelated) || hasAttention || isAncestor).toString()}\n className={mx(\n 'pli-1 min-is-0 is-0 grow truncate font-medium text-baseText data-[attention=true]:text-accentText self-center',\n classNames,\n )}\n ref={forwardedRef}\n />\n );\n },\n);\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { draggable } from '@atlaskit/pragmatic-drag-and-drop/element/adapter';\nimport { disableNativeDragPreview } from '@atlaskit/pragmatic-drag-and-drop/element/disable-native-drag-preview';\nimport { preventUnhandled } from '@atlaskit/pragmatic-drag-and-drop/prevent-unhandled';\nimport { type DragLocationHistory } from '@atlaskit/pragmatic-drag-and-drop/types';\nimport React, { useLayoutEffect, useRef } from 'react';\n\nimport { mx } from '@dxos/react-ui-theme';\n\nimport { useStack, useStackItem, type StackItemSize } from './StackContext';\nimport { DEFAULT_EXTRINSIC_SIZE } from './StackItem';\n\nconst REM = parseFloat(getComputedStyle(document.documentElement).fontSize);\n\nconst MIN_SIZE = 20;\n\nconst measureStackItem = (element: HTMLButtonElement): { width: number; height: number } => {\n const stackItemElement = element.closest('[data-dx-stack-item]');\n return stackItemElement?.getBoundingClientRect() ?? { width: DEFAULT_EXTRINSIC_SIZE, height: DEFAULT_EXTRINSIC_SIZE };\n};\n\nconst getNextSize = (startSize: number, location: DragLocationHistory, client: 'clientX' | 'clientY') => {\n return Math.max(MIN_SIZE, startSize + (location.current.input[client] - location.initial.input[client]) / REM);\n};\n\nexport type StackItemResizeHandleProps = {};\n\nexport const StackItemResizeHandle = () => {\n const { orientation } = useStack();\n const { setSize, size } = useStackItem();\n const buttonRef = useRef<HTMLButtonElement>(null);\n const dragStartSize = useRef<StackItemSize>(size);\n const client = orientation === 'horizontal' ? 'clientX' : 'clientY';\n\n useLayoutEffect(\n () => {\n if (!buttonRef.current || buttonRef.current.hasAttribute('draggable')) {\n return;\n }\n // TODO(thure): This should handle StackItem state vs local state better.\n draggable({\n element: buttonRef.current,\n onGenerateDragPreview: ({ nativeSetDragImage }) => {\n // We will be moving the line to indicate a drag; we can disable the native drag preview.\n disableNativeDragPreview({ nativeSetDragImage });\n // We don't want any native drop animation for when the user does not drop on a drop target.\n // We want the drag to finish immediately.\n preventUnhandled.start();\n },\n onDragStart: () => {\n dragStartSize.current =\n dragStartSize.current === 'min-content'\n ? measureStackItem(buttonRef.current!)[orientation === 'horizontal' ? 'width' : 'height'] / REM\n : dragStartSize.current;\n },\n onDrag: ({ location }) => {\n if (typeof dragStartSize.current !== 'number') {\n return;\n }\n setSize(getNextSize(dragStartSize.current, location, client));\n },\n onDrop: ({ location }) => {\n if (typeof dragStartSize.current !== 'number') {\n return;\n }\n const nextSize = getNextSize(dragStartSize.current, location, client);\n setSize(nextSize, true);\n dragStartSize.current = nextSize;\n },\n });\n },\n [\n // Note that `size` should not be a dependency here since dragging this adjusts the size.\n ],\n );\n\n return (\n <button\n ref={buttonRef}\n className={mx(\n orientation === 'horizontal' ? 'cursor-col-resize' : 'cursor-row-resize',\n 'group absolute is-3 bs-full inline-end-[-1px] !border-lb-0',\n 'before:transition-opacity before:duration-100 before:ease-in-out before:opacity-0 hover:before:opacity-100 focus-visible:before:opacity-100 active:before:opacity-100',\n 'before:absolute before:block before:inset-block-0 before:inline-end-0 before:is-1 before:bg-accentFocusIndicator',\n )}\n >\n <div\n role='none'\n className='absolute block-start-0 inline-end-[1px] bs-[--rail-size] flex items-center group-hover:opacity-0 group-focus-visible:opacity-0 group-active:opacity-0'\n >\n <DragHandleSignifier />\n </div>\n </button>\n );\n};\n\nconst DragHandleSignifier = () => {\n return (\n <svg\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 256 256'\n fill='currentColor'\n className='shrink-0 bs-[1em] is-[1em] text-unAccent'\n >\n {/* two pips: <path d='M256,120c-8.8,0-16-7.2-16-16v-56c0-8.8,7.2-16,16-16v88Z' />\n <path d='M256,232c-8.8,0-16-7.2-16-16v-56c0-8.8,7.2-16,16-16v88Z' /> */}\n <path d='M256,64c-8.8,0-16-7.2-16-16s7.2-16,16-16v32Z' />\n <path d='M256,120c-8.8,0-16-7.2-16-16s7.2-16,16-16v32Z' />\n <path d='M256,176c-8.8,0-16-7.2-16-16s7.2-16,16-16v32Z' />\n <path d='M256,232c-8.8,0-16-7.2-16-16s7.2-16,16-16v32Z' />\n </svg>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { Fragment, type PropsWithChildren, forwardRef, useRef, useState } from 'react';\n\nimport { type ActionLike } from '@dxos/app-graph';\nimport { keySymbols } from '@dxos/keyboard';\nimport {\n Button,\n type ButtonProps,\n DropdownMenu,\n Icon,\n toLocalizedString,\n Tooltip,\n useTranslation,\n} from '@dxos/react-ui';\nimport { type AttendableId, type Related, useAttention } from '@dxos/react-ui-attention';\nimport { descriptionText, mx } from '@dxos/react-ui-theme';\nimport { getHostPlatform } from '@dxos/util';\n\nimport { MenuSignifierHorizontal } from './MenuSignifier';\nimport { translationKey } from '../translations';\n\nexport type KeyBinding = {\n windows?: string;\n macos?: string;\n ios?: string;\n linux?: string;\n unknown?: string;\n};\n\nexport type StackItemSigilAction = Pick<ActionLike, 'id' | 'properties' | 'data'>;\n\nexport type StackItemSigilButtonProps = Omit<ButtonProps, 'variant'> & AttendableId & Related;\n\nexport const StackItemSigilButton = forwardRef<HTMLButtonElement, StackItemSigilButtonProps>(\n ({ attendableId, classNames, related, children, ...props }, forwardedRef) => {\n const { hasAttention, isAncestor, isRelated } = useAttention(attendableId);\n const variant = (related && isRelated) || hasAttention || isAncestor ? 'primary' : 'ghost';\n return (\n <Button\n {...props}\n variant={variant}\n classNames={['shrink-0 pli-0 min-bs-0 is-[--rail-action] bs-[--rail-action] relative', classNames]}\n ref={forwardedRef}\n >\n <MenuSignifierHorizontal />\n {children}\n </Button>\n );\n },\n);\n\nexport type StackItemSigilProps = PropsWithChildren<\n {\n attendableId?: string;\n triggerLabel: string;\n actions?: StackItemSigilAction[][];\n icon: string;\n onAction?: (action: StackItemSigilAction) => void;\n } & Related\n>;\n\nexport const StackItemSigil = forwardRef<HTMLButtonElement, StackItemSigilProps>(\n ({ actions: actionGroups, onAction, triggerLabel, attendableId, icon, related, children }, forwardedRef) => {\n const { t } = useTranslation(translationKey);\n const suppressNextTooltip = useRef(false);\n\n const [optionsMenuOpen, setOptionsMenuOpen] = useState(false);\n const [triggerTooltipOpen, setTriggerTooltipOpen] = useState(false);\n\n return (\n <Tooltip.Root\n open={triggerTooltipOpen}\n onOpenChange={(nextOpen) => {\n if (suppressNextTooltip.current) {\n setTriggerTooltipOpen(false);\n suppressNextTooltip.current = false;\n } else {\n setTriggerTooltipOpen(nextOpen);\n }\n }}\n >\n <DropdownMenu.Root\n {...{\n open: optionsMenuOpen,\n onOpenChange: (nextOpen: boolean) => {\n if (!nextOpen) {\n suppressNextTooltip.current = true;\n }\n return setOptionsMenuOpen(nextOpen);\n },\n }}\n >\n <Tooltip.Trigger asChild>\n <DropdownMenu.Trigger asChild ref={forwardedRef}>\n <StackItemSigilButton attendableId={attendableId} related={related}>\n <span className='sr-only'>{triggerLabel}</span>\n <Icon icon={icon} size={5} />\n </StackItemSigilButton>\n </DropdownMenu.Trigger>\n </Tooltip.Trigger>\n <DropdownMenu.Portal>\n <DropdownMenu.Content classNames='z-[31]'>\n <DropdownMenu.Viewport>\n {actionGroups?.map((actions, index) => {\n const separator = index > 0 ? <DropdownMenu.Separator /> : null;\n return (\n <Fragment key={index}>\n {separator}\n {actions.map((action) => {\n const shortcut =\n typeof action.properties.keyBinding === 'string'\n ? action.properties.keyBinding\n : action.properties.keyBinding?.[getHostPlatform()];\n\n const menuItemType = action.properties.menuItemType;\n const Root = menuItemType === 'toggle' ? DropdownMenu.CheckboxItem : DropdownMenu.Item;\n\n return (\n <Root\n key={action.id}\n onClick={(event) => {\n if (action.properties.disabled) {\n return;\n }\n event.stopPropagation();\n // TODO(thure): Why does Dialog’s modal-ness cause issues if we don’t explicitly close the menu here?\n suppressNextTooltip.current = true;\n setOptionsMenuOpen(false);\n onAction?.(action);\n }}\n classNames='gap-2'\n disabled={action.properties.disabled}\n checked={menuItemType === 'toggle' ? action.properties.isChecked : undefined}\n {...(action.properties?.testId && { 'data-testid': action.properties.testId })}\n >\n <Icon icon={action.properties.icon ?? 'ph--placeholder--regular'} size={4} />\n <span className='grow truncate'>{toLocalizedString(action.properties.label ?? '', t)}</span>\n {menuItemType === 'toggle' && (\n <DropdownMenu.ItemIndicator asChild>\n <Icon icon='ph--check--regular' size={4} />\n </DropdownMenu.ItemIndicator>\n )}\n {shortcut && (\n <span className={mx('shrink-0', descriptionText)}>{keySymbols(shortcut).join('')}</span>\n )}\n </Root>\n );\n })}\n </Fragment>\n );\n })}\n {children}\n </DropdownMenu.Viewport>\n <DropdownMenu.Arrow />\n </DropdownMenu.Content>\n </DropdownMenu.Portal>\n </DropdownMenu.Root>\n <Tooltip.Portal>\n <Tooltip.Content side='bottom'>\n {triggerLabel}\n <Tooltip.Arrow />\n </Tooltip.Content>\n </Tooltip.Portal>\n </Tooltip.Root>\n );\n },\n);\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nexport const MenuSignifierHorizontal = () => (\n <svg\n className='absolute block-end-[7px]'\n width={20}\n height={2}\n viewBox='0 0 20 2'\n stroke='currentColor'\n opacity={0.5}\n >\n <line\n x1={0.5}\n y1={0.75}\n x2={19}\n y2={0.75}\n strokeWidth={1.25}\n strokeLinecap='round'\n strokeDasharray='6 20'\n strokeDashoffset='-6.5'\n />\n </svg>\n);\n\nexport const MenuSignifierVertical = () => (\n <svg className='absolute inline-start-1' width={2} height={18} viewBox='0 0 2 18' stroke='currentColor'>\n <line x1={1} y1={3} x2={1} y2={18} strokeWidth={1.5} strokeLinecap='round' strokeDasharray='0 6' />\n </svg>\n);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nexport const translationKey = 'stack';\n\nexport default [\n {\n 'en-US': {\n [translationKey]: {\n 'resize label': 'Drag to resize',\n 'pin start label': 'Pin to the left sidebar',\n 'pin end label': 'Pin to the right sidebar',\n 'increment start label': 'Move to the left',\n 'increment end label': 'Move to the right',\n 'close label': 'Close',\n 'minify label': 'Minify',\n },\n },\n },\n];\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { forwardRef } from 'react';\n\nimport {\n Button,\n ButtonGroup,\n type ButtonGroupProps,\n type ButtonProps,\n Icon,\n Tooltip,\n useTranslation,\n} from '@dxos/react-ui';\n\nimport { translationKey } from '../translations';\n\nexport type LayoutControlEvent = 'solo' | 'close' | `${'pin' | 'increment'}-${'start' | 'end'}`;\nexport type LayoutControlHandler = (event: LayoutControlEvent) => void;\n\nexport type LayoutCapabilities = {\n incrementStart?: boolean;\n incrementEnd?: boolean;\n solo?: boolean;\n};\n\nexport type LayoutControlsProps = Omit<ButtonGroupProps, 'onClick'> & {\n onClick?: LayoutControlHandler;\n variant?: 'hide-disabled' | 'default';\n close?: boolean | 'minify-start' | 'minify-end';\n capabilities: LayoutCapabilities;\n isSolo?: boolean;\n pin?: 'start' | 'end' | 'both';\n};\n\nconst LayoutControl = ({ icon, label, ...props }: Omit<ButtonProps, 'children'> & { label: string; icon: string }) => {\n return (\n <Tooltip.Root>\n <Tooltip.Trigger asChild>\n <Button variant='ghost' {...props}>\n <span className='sr-only'>{label}</span>\n <Icon icon={icon} />\n </Button>\n </Tooltip.Trigger>\n <Tooltip.Portal>\n <Tooltip.Content side='bottom'>{label}</Tooltip.Content>\n </Tooltip.Portal>\n </Tooltip.Root>\n );\n};\n\nexport const LayoutControls = forwardRef<HTMLDivElement, LayoutControlsProps>(\n (\n { onClick, variant = 'default', capabilities: can, isSolo, pin, close = false, children, ...props },\n forwardedRef,\n ) => {\n const { t } = useTranslation(translationKey);\n const buttonClassNames = variant === 'hide-disabled' ? 'disabled:hidden !p-1' : '!p-1';\n\n return (\n <ButtonGroup {...props} ref={forwardedRef}>\n {pin && !isSolo && ['both', 'start'].includes(pin) && (\n <LayoutControl\n label={t('pin start label')}\n variant='ghost'\n classNames={buttonClassNames}\n onClick={() => onClick?.('pin-start')}\n icon='ph--caret-line-left--regular'\n />\n )}\n\n {can.solo && (\n <LayoutControl\n label={t('solo layout label')}\n classNames={buttonClassNames}\n onClick={() => onClick?.('solo')}\n icon={isSolo ? 'ph--arrows-in--regular' : 'ph--arrows-out--regular'}\n />\n )}\n\n {!isSolo && can.solo && (\n <>\n <LayoutControl\n label={t('increment start label')}\n disabled={!can.incrementStart}\n classNames={buttonClassNames}\n onClick={() => onClick?.('increment-start')}\n icon='ph--caret-left--regular'\n />\n <LayoutControl\n label={t('increment end label')}\n disabled={!can.incrementEnd}\n classNames={buttonClassNames}\n onClick={() => onClick?.('increment-end')}\n icon='ph--caret-right--regular'\n />\n </>\n )}\n\n {pin && !isSolo && ['both', 'end'].includes(pin) && (\n <LayoutControl\n label={t('pin end label')}\n classNames={buttonClassNames}\n onClick={() => onClick?.('pin-end')}\n icon='ph--caret-line-right--regular'\n />\n )}\n\n {close && !isSolo && (\n <LayoutControl\n label={t(`${typeof close === 'string' ? 'minify' : 'close'} label`)}\n classNames={buttonClassNames}\n onClick={() => onClick?.('close')}\n data-testid='layoutHeading.close'\n icon={\n close === 'minify-start'\n ? 'ph--caret-line-left--regular'\n : close === 'minify-end'\n ? 'ph--caret-line-right--regular'\n : 'ph--x--regular'\n }\n />\n )}\n {children}\n </ButtonGroup>\n );\n },\n);\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["import_react", "import_adapter", "import_closest_edge", "import_react_tabster", "import_react_compose_refs", "import_react_ui", "import_react_ui_theme", "import_disable_native_drag_preview", "import_prevent_unhandled", "import_react_ui_attention", "StackContext", "createContext", "orientation", "rail", "size", "useStack", "useContext", "StackItemContext", "selfDragHandleRef", "setSize", "useStackItem", "railGridHorizontal", "railGridVertical", "Stack", "forwardRef", "children", "classNames", "style", "onRearrange", "itemsCount", "Children", "count", "props", "forwardedRef", "stackElement", "stackRef", "useState", "composedItemRef", "composeRefs", "dropping", "setDropping", "arrowNavigationGroup", "useArrowNavigationGroup", "axis", "styles", "selfDroppable", "id", "useLayoutEffect", "acceptSourceType", "dropTargetForElements", "element", "getData", "input", "attachClosestEdge", "type", "allowedEdges", "onDragEnter", "source", "data", "onDrag", "onDragLeave", "onDrop", "self", "extractClosestEdge", "React", "Provider", "value", "div", "className", "mx", "aria-orientation", "ref", "ListItem", "DropIndicator", "edge", "StackItemContent", "toolbar", "statusbar", "stackItemSize", "role", "gridTemplateRows", "join", "StackItemDragHandle", "asChild", "Root", "Slot", "StackItemHeading", "focusableGroupAttrs", "useFocusableGroup", "tabBehavior", "tabIndex", "StackItemHeadingLabel", "attendableId", "related", "hasAttention", "isAncestor", "isRelated", "useAttention", "h1", "data-attention", "toString", "REM", "parseFloat", "getComputedStyle", "document", "documentElement", "fontSize", "MIN_SIZE", "measureStackItem", "stackItemElement", "closest", "getBoundingClientRect", "width", "DEFAULT_EXTRINSIC_SIZE", "height", "getNextSize", "startSize", "location", "client", "Math", "max", "current", "initial", "StackItemResizeHandle", "buttonRef", "useRef", "dragStartSize", "hasAttribute", "draggable", "onGenerateDragPreview", "nativeSetDragImage", "disableNativeDragPreview", "preventUnhandled", "start", "onDragStart", "nextSize", "button", "DragHandleSignifier", "svg", "xmlns", "viewBox", "fill", "path", "d", "MenuSignifierHorizontal", "stroke", "opacity", "line", "x1", "y1", "x2", "y2", "strokeWidth", "strokeLinecap", "strokeDasharray", "strokeDashoffset", "translationKey", "StackItemSigilButton", "variant", "Button", "StackItemSigil", "actions", "actionGroups", "onAction", "triggerLabel", "icon", "t", "useTranslation", "suppressNextTooltip", "optionsMenuOpen", "setOptionsMenuOpen", "triggerTooltipOpen", "setTriggerTooltipOpen", "Tooltip", "open", "onOpenChange", "nextOpen", "DropdownMenu", "Trigger", "span", "Icon", "Portal", "Content", "Viewport", "map", "index", "separator", "Separator", "Fragment", "key", "action", "shortcut", "properties", "keyBinding", "getHostPlatform", "menuItemType", "CheckboxItem", "Item", "onClick", "event", "disabled", "stopPropagation", "checked", "isChecked", "undefined", "testId", "toLocalizedString", "label", "ItemIndicator", "descriptionText", "keySymbols", "Arrow", "side", "DEFAULT_HORIZONTAL_SIZE", "DEFAULT_VERTICAL_SIZE", "StackItemRoot", "item", "propsSize", "onSizeChange", "order", "itemElement", "itemRef", "selfDragHandleElement", "closestEdge", "setEdge", "setInternalSize", "useCallback", "commit", "combine", "dragHandle", "getInitialData", "focusGroupAttrs", "data-dx-stack-item", "Number", "isFinite", "StackItem", "Heading", "HeadingLabel", "ResizeHandle", "DragHandle", "Sigil", "SigilButton", "LayoutControl", "LayoutControls", "capabilities", "can", "isSolo", "pin", "close", "buttonClassNames", "ButtonGroup", "includes", "solo", "incrementStart", "incrementEnd", "data-testid"]
|
|
7
7
|
}
|
package/dist/lib/node/meta.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"packages/ui/react-ui-stack/src/components/StackContext.tsx":{"bytes":2741,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-stack/src/components/Stack.tsx":{"bytes":7327,"imports":[{"path":"@fluentui/react-tabster","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-stack/src/components/StackContext.tsx","kind":"import-statement","original":"./StackContext"}],"format":"esm"},"packages/ui/react-ui-stack/src/components/StackItemContent.tsx":{"bytes":3578,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-stack/src/components/StackContext.tsx","kind":"import-statement","original":"./StackContext"}],"format":"esm"},"packages/ui/react-ui-stack/src/components/StackItemHeading.tsx":{"bytes":6082,"imports":[{"path":"@fluentui/react-tabster","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui-attention","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-stack/src/components/StackContext.tsx","kind":"import-statement","original":"./StackContext"}],"format":"esm"},"packages/ui/react-ui-stack/src/components/StackItemResizeHandle.tsx":{"bytes":14860,"imports":[{"path":"@atlaskit/pragmatic-drag-and-drop/element/adapter","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/element/disable-native-drag-preview","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/prevent-unhandled","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-stack/src/components/StackContext.tsx","kind":"import-statement","original":"./StackContext"},{"path":"packages/ui/react-ui-stack/src/components/StackItem.tsx","kind":"import-statement","original":"./StackItem"}],"format":"esm"},"packages/ui/react-ui-stack/src/components/MenuSignifier.tsx":{"bytes":3282,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-stack/src/translations.ts":{"bytes":1870,"imports":[],"format":"esm"},"packages/ui/react-ui-stack/src/components/StackItemSigil.tsx":{"bytes":20212,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/keyboard","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-attention","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-stack/src/components/MenuSignifier.tsx","kind":"import-statement","original":"./MenuSignifier"},{"path":"packages/ui/react-ui-stack/src/translations.ts","kind":"import-statement","original":"../translations"}],"format":"esm"},"packages/ui/react-ui-stack/src/components/StackItem.tsx":{"bytes":20185,"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/closest-edge","kind":"import-statement","external":true},{"path":"@fluentui/react-tabster","kind":"import-statement","external":true},{"path":"@radix-ui/react-compose-refs","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-stack/src/components/StackContext.tsx","kind":"import-statement","original":"./StackContext"},{"path":"packages/ui/react-ui-stack/src/components/StackItemContent.tsx","kind":"import-statement","original":"./StackItemContent"},{"path":"packages/ui/react-ui-stack/src/components/StackItemHeading.tsx","kind":"import-statement","original":"./StackItemHeading"},{"path":"packages/ui/react-ui-stack/src/components/StackItemResizeHandle.tsx","kind":"import-statement","original":"./StackItemResizeHandle"},{"path":"packages/ui/react-ui-stack/src/components/StackItemSigil.tsx","kind":"import-statement","original":"./StackItemSigil"}],"format":"esm"},"packages/ui/react-ui-stack/src/components/LayoutControls.tsx":{"bytes":11759,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-stack/src/translations.ts","kind":"import-statement","original":"../translations"}],"format":"esm"},"packages/ui/react-ui-stack/src/components/index.ts":{"bytes":701,"imports":[{"path":"packages/ui/react-ui-stack/src/components/Stack.tsx","kind":"import-statement","original":"./Stack"},{"path":"packages/ui/react-ui-stack/src/components/StackItem.tsx","kind":"import-statement","original":"./StackItem"},{"path":"packages/ui/react-ui-stack/src/components/LayoutControls.tsx","kind":"import-statement","original":"./LayoutControls"}],"format":"esm"},"packages/ui/react-ui-stack/src/index.ts":{"bytes":718,"imports":[{"path":"packages/ui/react-ui-stack/src/components/index.ts","kind":"import-statement","original":"./components"},{"path":"packages/ui/react-ui-stack/src/translations.ts","kind":"import-statement","original":"./translations"}],"format":"esm"},"packages/ui/react-ui-stack/src/testing/stack-manager.ts":{"bytes":7183,"imports":[],"format":"esm"},"packages/ui/react-ui-stack/src/testing/index.ts":{"bytes":519,"imports":[{"path":"packages/ui/react-ui-stack/src/testing/stack-manager.ts","kind":"import-statement","original":"./stack-manager"}],"format":"esm"}},"outputs":{"packages/ui/react-ui-stack/dist/lib/node/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":47919},"packages/ui/react-ui-stack/dist/lib/node/index.cjs":{"imports":[{"path":"@fluentui/react-tabster","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"react","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/closest-edge","kind":"import-statement","external":true},{"path":"@fluentui/react-tabster","kind":"import-statement","external":true},{"path":"@radix-ui/react-compose-refs","kind":"import-statement","external":true},{"path":"react","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-theme","kind":"import-statement","external":true},{"path":"@fluentui/react-tabster","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui-attention","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/element/disable-native-drag-preview","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/prevent-unhandled","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/keyboard","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-attention","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/util","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}],"exports":["DEFAULT_EXTRINSIC_SIZE","DEFAULT_HORIZONTAL_SIZE","DEFAULT_VERTICAL_SIZE","LayoutControls","Stack","StackContext","StackItem","railGridHorizontal","railGridVertical","translations"],"entryPoint":"packages/ui/react-ui-stack/src/index.ts","inputs":{"packages/ui/react-ui-stack/src/components/Stack.tsx":{"bytesInOutput":1616},"packages/ui/react-ui-stack/src/components/StackContext.tsx":{"bytesInOutput":428},"packages/ui/react-ui-stack/src/components/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-stack/src/components/StackItem.tsx":{"bytesInOutput":4374},"packages/ui/react-ui-stack/src/components/StackItemContent.tsx":{"bytesInOutput":697},"packages/ui/react-ui-stack/src/components/StackItemHeading.tsx":{"bytesInOutput":1350},"packages/ui/react-ui-stack/src/components/StackItemResizeHandle.tsx":{"bytesInOutput":3741},"packages/ui/react-ui-stack/src/components/StackItemSigil.tsx":{"bytesInOutput":4909},"packages/ui/react-ui-stack/src/components/MenuSignifier.tsx":{"bytesInOutput":442},"packages/ui/react-ui-stack/src/translations.ts":{"bytesInOutput":444},"packages/ui/react-ui-stack/src/components/LayoutControls.tsx":{"bytesInOutput":3056},"packages/ui/react-ui-stack/src/index.ts":{"bytesInOutput":0}},"bytes":22129},"packages/ui/react-ui-stack/dist/lib/node/testing/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3597},"packages/ui/react-ui-stack/dist/lib/node/testing/index.cjs":{"imports":[],"exports":["SectionManager","StackManager"],"entryPoint":"packages/ui/react-ui-stack/src/testing/index.ts","inputs":{"packages/ui/react-ui-stack/src/testing/stack-manager.ts":{"bytesInOutput":1516},"packages/ui/react-ui-stack/src/testing/index.ts":{"bytesInOutput":0}},"bytes":1655}}}
|
|
1
|
+
{"inputs":{"packages/ui/react-ui-stack/src/components/StackContext.tsx":{"bytes":3091,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-stack/src/components/Stack.tsx":{"bytes":13994,"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":"@fluentui/react-tabster","kind":"import-statement","external":true},{"path":"@radix-ui/react-compose-refs","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-stack/src/components/StackContext.tsx","kind":"import-statement","original":"./StackContext"}],"format":"esm"},"packages/ui/react-ui-stack/src/components/StackItemContent.tsx":{"bytes":5524,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-stack/src/components/StackContext.tsx","kind":"import-statement","original":"./StackContext"}],"format":"esm"},"packages/ui/react-ui-stack/src/components/StackItemDragHandle.tsx":{"bytes":2101,"imports":[{"path":"@radix-ui/react-slot","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-stack/src/components/StackContext.tsx","kind":"import-statement","original":"./StackContext"}],"format":"esm"},"packages/ui/react-ui-stack/src/components/StackItemHeading.tsx":{"bytes":5758,"imports":[{"path":"@fluentui/react-tabster","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui-attention","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-stack/src/components/StackContext.tsx","kind":"import-statement","original":"./StackContext"}],"format":"esm"},"packages/ui/react-ui-stack/src/components/StackItemResizeHandle.tsx":{"bytes":14876,"imports":[{"path":"@atlaskit/pragmatic-drag-and-drop/element/adapter","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/element/disable-native-drag-preview","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/prevent-unhandled","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-stack/src/components/StackContext.tsx","kind":"import-statement","original":"./StackContext"},{"path":"packages/ui/react-ui-stack/src/components/StackItem.tsx","kind":"import-statement","original":"./StackItem"}],"format":"esm"},"packages/ui/react-ui-stack/src/components/MenuSignifier.tsx":{"bytes":3282,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-stack/src/translations.ts":{"bytes":1870,"imports":[],"format":"esm"},"packages/ui/react-ui-stack/src/components/StackItemSigil.tsx":{"bytes":20057,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/keyboard","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-attention","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-stack/src/components/MenuSignifier.tsx","kind":"import-statement","original":"./MenuSignifier"},{"path":"packages/ui/react-ui-stack/src/translations.ts","kind":"import-statement","original":"../translations"}],"format":"esm"},"packages/ui/react-ui-stack/src/components/StackItem.tsx":{"bytes":21446,"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/disable-native-drag-preview","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/prevent-unhandled","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop-hitbox/closest-edge","kind":"import-statement","external":true},{"path":"@fluentui/react-tabster","kind":"import-statement","external":true},{"path":"@radix-ui/react-compose-refs","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-stack/src/components/StackContext.tsx","kind":"import-statement","original":"./StackContext"},{"path":"packages/ui/react-ui-stack/src/components/StackItemContent.tsx","kind":"import-statement","original":"./StackItemContent"},{"path":"packages/ui/react-ui-stack/src/components/StackItemDragHandle.tsx","kind":"import-statement","original":"./StackItemDragHandle"},{"path":"packages/ui/react-ui-stack/src/components/StackItemHeading.tsx","kind":"import-statement","original":"./StackItemHeading"},{"path":"packages/ui/react-ui-stack/src/components/StackItemResizeHandle.tsx","kind":"import-statement","original":"./StackItemResizeHandle"},{"path":"packages/ui/react-ui-stack/src/components/StackItemSigil.tsx","kind":"import-statement","original":"./StackItemSigil"}],"format":"esm"},"packages/ui/react-ui-stack/src/components/LayoutControls.tsx":{"bytes":11653,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-stack/src/translations.ts","kind":"import-statement","original":"../translations"}],"format":"esm"},"packages/ui/react-ui-stack/src/components/index.ts":{"bytes":801,"imports":[{"path":"packages/ui/react-ui-stack/src/components/Stack.tsx","kind":"import-statement","original":"./Stack"},{"path":"packages/ui/react-ui-stack/src/components/StackItem.tsx","kind":"import-statement","original":"./StackItem"},{"path":"packages/ui/react-ui-stack/src/components/LayoutControls.tsx","kind":"import-statement","original":"./LayoutControls"},{"path":"packages/ui/react-ui-stack/src/components/StackContext.tsx","kind":"import-statement","original":"./StackContext"}],"format":"esm"},"packages/ui/react-ui-stack/src/index.ts":{"bytes":718,"imports":[{"path":"packages/ui/react-ui-stack/src/components/index.ts","kind":"import-statement","original":"./components"},{"path":"packages/ui/react-ui-stack/src/translations.ts","kind":"import-statement","original":"./translations"}],"format":"esm"},"packages/ui/react-ui-stack/src/testing/stack-manager.ts":{"bytes":7183,"imports":[],"format":"esm"},"packages/ui/react-ui-stack/src/testing/index.ts":{"bytes":519,"imports":[{"path":"packages/ui/react-ui-stack/src/testing/stack-manager.ts","kind":"import-statement","original":"./stack-manager"}],"format":"esm"}},"outputs":{"packages/ui/react-ui-stack/dist/lib/node/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":54279},"packages/ui/react-ui-stack/dist/lib/node/index.cjs":{"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":"@fluentui/react-tabster","kind":"import-statement","external":true},{"path":"@radix-ui/react-compose-refs","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":"react","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/disable-native-drag-preview","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/prevent-unhandled","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop-hitbox/closest-edge","kind":"import-statement","external":true},{"path":"@fluentui/react-tabster","kind":"import-statement","external":true},{"path":"@radix-ui/react-compose-refs","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":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@radix-ui/react-slot","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@fluentui/react-tabster","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui-attention","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/element/disable-native-drag-preview","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/prevent-unhandled","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/keyboard","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-attention","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/util","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}],"exports":["DEFAULT_EXTRINSIC_SIZE","DEFAULT_HORIZONTAL_SIZE","DEFAULT_VERTICAL_SIZE","LayoutControls","Stack","StackContext","StackItem","StackItemContext","railGridHorizontal","railGridVertical","translations","useStack","useStackItem"],"entryPoint":"packages/ui/react-ui-stack/src/index.ts","inputs":{"packages/ui/react-ui-stack/src/components/Stack.tsx":{"bytesInOutput":3397},"packages/ui/react-ui-stack/src/components/StackContext.tsx":{"bytesInOutput":408},"packages/ui/react-ui-stack/src/components/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-stack/src/components/StackItem.tsx":{"bytesInOutput":5094},"packages/ui/react-ui-stack/src/components/StackItemContent.tsx":{"bytesInOutput":850},"packages/ui/react-ui-stack/src/components/StackItemDragHandle.tsx":{"bytesInOutput":335},"packages/ui/react-ui-stack/src/components/StackItemHeading.tsx":{"bytesInOutput":1286},"packages/ui/react-ui-stack/src/components/StackItemResizeHandle.tsx":{"bytesInOutput":3762},"packages/ui/react-ui-stack/src/components/StackItemSigil.tsx":{"bytesInOutput":4883},"packages/ui/react-ui-stack/src/components/MenuSignifier.tsx":{"bytesInOutput":442},"packages/ui/react-ui-stack/src/translations.ts":{"bytesInOutput":444},"packages/ui/react-ui-stack/src/components/LayoutControls.tsx":{"bytesInOutput":3030},"packages/ui/react-ui-stack/src/index.ts":{"bytesInOutput":0}},"bytes":25121},"packages/ui/react-ui-stack/dist/lib/node/testing/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3597},"packages/ui/react-ui-stack/dist/lib/node/testing/index.cjs":{"imports":[],"exports":["SectionManager","StackManager"],"entryPoint":"packages/ui/react-ui-stack/src/testing/index.ts","inputs":{"packages/ui/react-ui-stack/src/testing/stack-manager.ts":{"bytesInOutput":1516},"packages/ui/react-ui-stack/src/testing/index.ts":{"bytesInOutput":0}},"bytes":1655}}}
|