@salt-ds/lab 1.0.0-alpha.96 → 1.0.0-alpha.97

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/css/salt-lab.css +1 -201
  3. package/dist-cjs/common-hooks/useSelection.js +6 -3
  4. package/dist-cjs/common-hooks/useSelection.js.map +1 -1
  5. package/dist-cjs/index.js +0 -6
  6. package/dist-cjs/index.js.map +1 -1
  7. package/dist-cjs/list/useList.js +7 -1
  8. package/dist-cjs/list/useList.js.map +1 -1
  9. package/dist-es/common-hooks/useSelection.js +6 -3
  10. package/dist-es/common-hooks/useSelection.js.map +1 -1
  11. package/dist-es/index.js +0 -3
  12. package/dist-es/index.js.map +1 -1
  13. package/dist-es/list/useList.js +7 -1
  14. package/dist-es/list/useList.js.map +1 -1
  15. package/dist-types/index.d.ts +0 -1
  16. package/package.json +2 -2
  17. package/dist-cjs/toolbar-next/ToolbarContentNext.css.js +0 -6
  18. package/dist-cjs/toolbar-next/ToolbarContentNext.css.js.map +0 -1
  19. package/dist-cjs/toolbar-next/ToolbarContentNext.js +0 -32
  20. package/dist-cjs/toolbar-next/ToolbarContentNext.js.map +0 -1
  21. package/dist-cjs/toolbar-next/ToolbarNext.css.js +0 -6
  22. package/dist-cjs/toolbar-next/ToolbarNext.css.js.map +0 -1
  23. package/dist-cjs/toolbar-next/ToolbarNext.js +0 -394
  24. package/dist-cjs/toolbar-next/ToolbarNext.js.map +0 -1
  25. package/dist-cjs/toolbar-next/ToolbarNextOverflow.css.js +0 -6
  26. package/dist-cjs/toolbar-next/ToolbarNextOverflow.css.js.map +0 -1
  27. package/dist-cjs/toolbar-next/ToolbarNextOverflow.js +0 -706
  28. package/dist-cjs/toolbar-next/ToolbarNextOverflow.js.map +0 -1
  29. package/dist-cjs/toolbar-next/ToolbarNextOverflowFloatingBoundary.js +0 -165
  30. package/dist-cjs/toolbar-next/ToolbarNextOverflowFloatingBoundary.js.map +0 -1
  31. package/dist-cjs/toolbar-next/TooltrayNext.css.js +0 -6
  32. package/dist-cjs/toolbar-next/TooltrayNext.css.js.map +0 -1
  33. package/dist-cjs/toolbar-next/TooltrayNext.js +0 -55
  34. package/dist-cjs/toolbar-next/TooltrayNext.js.map +0 -1
  35. package/dist-cjs/toolbar-next/toolbarNextKeyboardUtils.js +0 -409
  36. package/dist-cjs/toolbar-next/toolbarNextKeyboardUtils.js.map +0 -1
  37. package/dist-cjs/toolbar-next/toolbarNextUtils.js +0 -215
  38. package/dist-cjs/toolbar-next/toolbarNextUtils.js.map +0 -1
  39. package/dist-cjs/toolbar-next/useToolbarNextKeyboardNavigation.js +0 -312
  40. package/dist-cjs/toolbar-next/useToolbarNextKeyboardNavigation.js.map +0 -1
  41. package/dist-cjs/toolbar-next/useToolbarNextOverflow.js +0 -745
  42. package/dist-cjs/toolbar-next/useToolbarNextOverflow.js.map +0 -1
  43. package/dist-es/toolbar-next/ToolbarContentNext.css.js +0 -4
  44. package/dist-es/toolbar-next/ToolbarContentNext.css.js.map +0 -1
  45. package/dist-es/toolbar-next/ToolbarContentNext.js +0 -30
  46. package/dist-es/toolbar-next/ToolbarContentNext.js.map +0 -1
  47. package/dist-es/toolbar-next/ToolbarNext.css.js +0 -4
  48. package/dist-es/toolbar-next/ToolbarNext.css.js.map +0 -1
  49. package/dist-es/toolbar-next/ToolbarNext.js +0 -392
  50. package/dist-es/toolbar-next/ToolbarNext.js.map +0 -1
  51. package/dist-es/toolbar-next/ToolbarNextOverflow.css.js +0 -4
  52. package/dist-es/toolbar-next/ToolbarNextOverflow.css.js.map +0 -1
  53. package/dist-es/toolbar-next/ToolbarNextOverflow.js +0 -701
  54. package/dist-es/toolbar-next/ToolbarNextOverflow.js.map +0 -1
  55. package/dist-es/toolbar-next/ToolbarNextOverflowFloatingBoundary.js +0 -159
  56. package/dist-es/toolbar-next/ToolbarNextOverflowFloatingBoundary.js.map +0 -1
  57. package/dist-es/toolbar-next/TooltrayNext.css.js +0 -4
  58. package/dist-es/toolbar-next/TooltrayNext.css.js.map +0 -1
  59. package/dist-es/toolbar-next/TooltrayNext.js +0 -53
  60. package/dist-es/toolbar-next/TooltrayNext.js.map +0 -1
  61. package/dist-es/toolbar-next/toolbarNextKeyboardUtils.js +0 -390
  62. package/dist-es/toolbar-next/toolbarNextKeyboardUtils.js.map +0 -1
  63. package/dist-es/toolbar-next/toolbarNextUtils.js +0 -211
  64. package/dist-es/toolbar-next/toolbarNextUtils.js.map +0 -1
  65. package/dist-es/toolbar-next/useToolbarNextKeyboardNavigation.js +0 -310
  66. package/dist-es/toolbar-next/useToolbarNextKeyboardNavigation.js.map +0 -1
  67. package/dist-es/toolbar-next/useToolbarNextOverflow.js +0 -743
  68. package/dist-es/toolbar-next/useToolbarNextOverflow.js.map +0 -1
  69. package/dist-types/toolbar-next/ToolbarContentNext.d.ts +0 -11
  70. package/dist-types/toolbar-next/ToolbarNext.d.ts +0 -12
  71. package/dist-types/toolbar-next/ToolbarNextOverflow.d.ts +0 -34
  72. package/dist-types/toolbar-next/ToolbarNextOverflowFloatingBoundary.d.ts +0 -16
  73. package/dist-types/toolbar-next/TooltrayNext.d.ts +0 -37
  74. package/dist-types/toolbar-next/index.d.ts +0 -3
  75. package/dist-types/toolbar-next/toolbarNextKeyboardUtils.d.ts +0 -39
  76. package/dist-types/toolbar-next/toolbarNextUtils.d.ts +0 -42
  77. package/dist-types/toolbar-next/useToolbarNextKeyboardNavigation.d.ts +0 -42
  78. package/dist-types/toolbar-next/useToolbarNextOverflow.d.ts +0 -37
@@ -1 +0,0 @@
1
- {"version":3,"file":"useToolbarNextOverflow.js","sources":["../src/toolbar-next/useToolbarNextOverflow.ts"],"sourcesContent":["import { ownerWindow, useIsomorphicLayoutEffect } from \"@salt-ds/core\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport type { ToolbarContentNextPosition } from \"./ToolbarContentNext\";\nimport {\n buildContentOverflowRenderSlots,\n type ToolbarNextContentModel,\n type ToolbarNextOverflowItem,\n} from \"./toolbarNextUtils\";\n\ninterface OverflowGroupDefinition {\n id: string;\n key: string;\n label: string;\n named: boolean;\n order: number;\n overflowGroup: string;\n contentKey?: string;\n}\n\ninterface CollapseUnit {\n groupKey: string;\n itemIds: string[];\n order: number;\n priority: number;\n}\n\nexport interface ToolbarNextOverflowGroup {\n id: string;\n items: ToolbarNextOverflowItem[];\n key: string;\n label: string;\n named: boolean;\n overflowGroup: string;\n contentKey?: string;\n}\n\ninterface OverflowState {\n overflowGroups: ToolbarNextOverflowGroup[];\n overflowedIds: Set<string>;\n}\n\ninterface UseToolbarNextOverflowProps {\n content: ToolbarNextContentModel[];\n}\n\ntype ObservedWidthTarget =\n | {\n kind: \"container\";\n }\n | {\n id: string;\n kind: \"item\";\n }\n | {\n id: string;\n kind: \"named-trigger\";\n }\n | {\n id: string;\n kind: \"named-trigger-measure\";\n }\n | {\n groupKey: string;\n kind: \"shared-trigger-measure\";\n };\n\nconst emptyOverflowState: OverflowState = {\n overflowGroups: [],\n overflowedIds: new Set<string>(),\n};\n\nconst bandPositions: ToolbarContentNextPosition[] = [\"start\", \"center\", \"end\"];\n// Tolerance for comparing measured content against the available width.\n// `getBoundingClientRect` reports fractional pixels, so summed item, gap, and\n// container measurements can differ by sub-pixel amounts that never visibly\n// overflow. Treating differences below half a CSS pixel as \"fits\" prevents\n// false overflow. Matches the epsilon used by core Tabs for consistency.\nconst WIDTH_EPSILON = 0.5;\n\nfunction measureWidth(element: HTMLElement | null) {\n if (!element) {\n return 0;\n }\n\n const { width } = element.getBoundingClientRect();\n return width;\n}\n\nfunction isVisibleMeasurementElement(element: Element): element is HTMLElement {\n if (!(element instanceof HTMLElement)) {\n return false;\n }\n\n const { width, height } = element.getBoundingClientRect();\n const styles = ownerWindow(element).getComputedStyle(element);\n\n return (\n width > 0 &&\n height > 0 &&\n styles.display !== \"none\" &&\n styles.visibility !== \"hidden\"\n );\n}\n\nfunction measureOverflowItemWidth(element: HTMLElement | null) {\n if (!element) {\n return 0;\n }\n\n const rect = element.getBoundingClientRect();\n let left = rect.left;\n let right = rect.right;\n\n for (const descendant of element.querySelectorAll(\"*\")) {\n if (!isVisibleMeasurementElement(descendant)) {\n continue;\n }\n\n const descendantRect = descendant.getBoundingClientRect();\n left = Math.min(left, descendantRect.left);\n right = Math.max(right, descendantRect.right);\n }\n\n return Math.max(rect.width, right - left);\n}\n\nfunction exceedsAvailableWidth(measuredWidth: number, availableWidth: number) {\n return measuredWidth - availableWidth > WIDTH_EPSILON;\n}\n\nfunction readGap(gapValue: string) {\n return Number.parseFloat(gapValue || \"0\") || 0;\n}\n\nfunction sumFlexWidths(widths: number[], gap: number) {\n if (widths.length === 0) {\n return 0;\n }\n\n return (\n widths.reduce((total, width) => total + width, 0) +\n gap * (widths.length - 1)\n );\n}\n\nfunction buildGroupDefinitions(items: ToolbarNextOverflowItem[]) {\n const groupMap = new Map<string, OverflowGroupDefinition>();\n\n for (const [sequence, item] of items.entries()) {\n if (item.overflowMode === \"none\") {\n continue;\n }\n\n const existing = groupMap.get(item.overflowGroupKey);\n\n if (existing) {\n if (!existing.named && item.overflowGroup === \"shared\") {\n continue;\n }\n\n if (existing.label === item.overflowGroup && item.overflowLabel) {\n existing.label = item.overflowLabel;\n }\n\n continue;\n }\n\n groupMap.set(item.overflowGroupKey, {\n id: `${item.overflowGroupKey}-${sequence}`,\n key: item.overflowGroupKey,\n label:\n item.overflowGroup === \"shared\"\n ? \"More\"\n : (item.overflowLabel ?? item.overflowGroup),\n named: item.overflowGroup !== \"shared\",\n order: sequence,\n overflowGroup: item.overflowGroup,\n contentKey: item.overflowGroup === \"shared\" ? undefined : item.contentKey,\n });\n }\n\n return Array.from(groupMap.values()).sort(\n (left, right) => left.order - right.order,\n );\n}\n\nfunction buildCollapseUnits(items: ToolbarNextOverflowItem[]) {\n const groupedUnits = new Map<string, CollapseUnit>();\n const units: CollapseUnit[] = [];\n\n for (const [sequence, item] of items.entries()) {\n if (item.overflowMode === \"none\") {\n continue;\n }\n\n if (item.overflowMode === \"grouped\" && item.overflowGroup !== \"shared\") {\n const existing = groupedUnits.get(item.overflowGroupKey);\n\n if (existing) {\n existing.itemIds.push(item.id);\n existing.order = Math.max(existing.order, sequence);\n existing.priority = Math.max(existing.priority, item.overflowPriority);\n continue;\n }\n\n const unit: CollapseUnit = {\n groupKey: item.overflowGroupKey,\n itemIds: [item.id],\n order: sequence,\n priority: item.overflowPriority,\n };\n\n groupedUnits.set(item.overflowGroupKey, unit);\n units.push(unit);\n continue;\n }\n\n units.push({\n groupKey: item.overflowGroupKey,\n itemIds: [item.id],\n order: sequence,\n priority: item.overflowPriority,\n });\n }\n\n return units.sort((left, right) => {\n if (left.priority !== right.priority) {\n return right.priority - left.priority;\n }\n\n return right.order - left.order;\n });\n}\n\nfunction areOverflowStatesEqual(previous: OverflowState, next: OverflowState) {\n if (previous.overflowedIds.size !== next.overflowedIds.size) {\n return false;\n }\n\n for (const itemId of previous.overflowedIds) {\n if (!next.overflowedIds.has(itemId)) {\n return false;\n }\n }\n\n if (previous.overflowGroups.length !== next.overflowGroups.length) {\n return false;\n }\n\n return previous.overflowGroups.every((group, index) => {\n const nextGroup = next.overflowGroups[index];\n\n if (\n nextGroup == null ||\n group.id !== nextGroup.id ||\n group.label !== nextGroup.label ||\n group.items.length !== nextGroup.items.length\n ) {\n return false;\n }\n\n return group.items.every((item, itemIndex) => {\n return item.id === nextGroup.items[itemIndex]?.id;\n });\n });\n}\n\ninterface ComputeToolbarNextOverflowStateArgs {\n collapseUnits: CollapseUnit[];\n containerWidth: number;\n groupDefinitions: OverflowGroupDefinition[];\n itemWidths: Map<string, number>;\n items: ToolbarNextOverflowItem[];\n namedTriggerWidths: Map<string, number>;\n content: ToolbarNextContentModel[];\n contentGaps: Map<string, number>;\n rootGap: number;\n triggerWidths: Map<string, number>;\n bandGaps: Map<ToolbarContentNextPosition, number>;\n}\n\nfunction computeToolbarNextOverflowState({\n bandGaps,\n collapseUnits,\n containerWidth,\n groupDefinitions,\n itemWidths,\n items,\n namedTriggerWidths,\n content,\n contentGaps,\n rootGap,\n triggerWidths,\n}: ComputeToolbarNextOverflowStateArgs): OverflowState {\n const hasCenteredLayout = content.some(\n (contentArea) => contentArea.position === \"center\",\n );\n const contentByPosition = bandPositions.reduce<\n Record<ToolbarContentNextPosition, ToolbarNextContentModel[]>\n >(\n (bands, position) => {\n bands[position] = content.filter(\n (contentArea) => contentArea.position === position,\n );\n return bands;\n },\n {\n start: [],\n center: [],\n end: [],\n },\n );\n const overflowedIds = new Set<string>();\n const activeGroups = new Set<string>();\n\n const getContentWidth = (contentArea: ToolbarNextContentModel) => {\n const renderSlots = buildContentOverflowRenderSlots(\n contentArea.items,\n overflowedIds,\n new Set(\n groupDefinitions\n .filter((group) => {\n return (\n group.named &&\n group.contentKey === contentArea.key &&\n activeGroups.has(group.key)\n );\n })\n .map((group) => group.key),\n ),\n );\n const slotWidths: number[] = [];\n\n for (const slot of renderSlots) {\n const width =\n slot.triggerGroupKey != null\n ? namedTriggerWidths.get(slot.item.id)\n : itemWidths.get(slot.item.id);\n\n if (width == null || width <= 0) {\n return null;\n }\n\n slotWidths.push(width);\n }\n\n return sumFlexWidths(slotWidths, contentGaps.get(contentArea.key) ?? 0);\n };\n\n const getBandWidth = (position: ToolbarContentNextPosition) => {\n const bandChildWidths: number[] = [];\n\n for (const contentArea of contentByPosition[position]) {\n const contentWidth = getContentWidth(contentArea);\n\n if (contentWidth == null) {\n return null;\n }\n\n if (contentWidth > 0) {\n bandChildWidths.push(contentWidth);\n }\n }\n\n if (position === \"end\") {\n for (const group of groupDefinitions) {\n if (!group.named && activeGroups.has(group.key)) {\n const width = triggerWidths.get(group.key);\n\n if (width == null || width <= 0) {\n return null;\n }\n\n bandChildWidths.push(width);\n }\n }\n }\n\n return sumFlexWidths(bandChildWidths, bandGaps.get(position) ?? 0);\n };\n\n const getTotalWidth = () => {\n if (hasCenteredLayout) {\n const startBandWidth = getBandWidth(\"start\");\n const centerBandWidth = getBandWidth(\"center\");\n const endBandWidth = getBandWidth(\"end\");\n\n if (\n startBandWidth == null ||\n centerBandWidth == null ||\n endBandWidth == null\n ) {\n return null;\n }\n\n return centerBandWidth + Math.max(startBandWidth, endBandWidth) * 2;\n }\n\n const visibleBandWidths: number[] = [];\n\n for (const position of bandPositions) {\n const bandWidth = getBandWidth(position);\n\n if (bandWidth == null) {\n return null;\n }\n\n if (bandWidth > 0) {\n visibleBandWidths.push(bandWidth);\n }\n }\n\n return sumFlexWidths(visibleBandWidths, rootGap);\n };\n\n const initialWidth = getTotalWidth();\n\n if (initialWidth == null) {\n return emptyOverflowState;\n }\n\n if (exceedsAvailableWidth(initialWidth, containerWidth)) {\n for (const unit of collapseUnits) {\n for (const itemId of unit.itemIds) {\n overflowedIds.add(itemId);\n }\n\n activeGroups.add(unit.groupKey);\n\n const nextWidth = getTotalWidth();\n\n if (nextWidth == null) {\n return emptyOverflowState;\n }\n\n if (!exceedsAvailableWidth(nextWidth, containerWidth)) {\n break;\n }\n }\n }\n\n const overflowGroups = groupDefinitions.reduce<ToolbarNextOverflowGroup[]>(\n (groups, group) => {\n const hiddenItems = items.filter(\n (item) =>\n item.overflowGroupKey === group.key && overflowedIds.has(item.id),\n );\n\n if (hiddenItems.length > 0) {\n groups.push({\n id: group.id,\n items: hiddenItems,\n key: group.key,\n label: group.label,\n named: group.named,\n overflowGroup: group.overflowGroup,\n contentKey: group.contentKey,\n });\n }\n\n return groups;\n },\n [],\n );\n\n return {\n overflowGroups,\n overflowedIds,\n };\n}\n\nexport function useToolbarNextOverflow({\n content,\n}: UseToolbarNextOverflowProps) {\n const targetWindow = useWindow();\n const items = useMemo(\n () => content.flatMap((contentArea) => contentArea.items),\n [content],\n );\n const containerRef = useRef<HTMLDivElement>(null);\n\n const bandRefs = useRef<\n Record<ToolbarContentNextPosition, HTMLDivElement | null>\n >({\n start: null,\n center: null,\n end: null,\n });\n const bandRefCallbacks = useRef(\n new Map<\n ToolbarContentNextPosition,\n (node: HTMLDivElement | null) => void\n >(),\n );\n const contentRefs = useRef<Record<string, HTMLDivElement | null>>({});\n const contentRefCallbacks = useRef(\n new Map<string, (node: HTMLDivElement | null) => void>(),\n );\n const itemRefs = useRef<Record<string, HTMLDivElement | null>>({});\n const itemRefCallbacks = useRef(\n new Map<string, (node: HTMLDivElement | null) => void>(),\n );\n const namedTriggerRefs = useRef<Record<string, HTMLDivElement | null>>({});\n const namedTriggerRefCallbacks = useRef(\n new Map<string, (node: HTMLDivElement | null) => void>(),\n );\n const namedTriggerMeasureRefs = useRef<Record<string, HTMLDivElement | null>>(\n {},\n );\n const namedTriggerMeasureCallbacks = useRef(\n new Map<string, (node: HTMLDivElement | null) => void>(),\n );\n const triggerMeasureRefs = useRef<Record<string, HTMLButtonElement | null>>(\n {},\n );\n const triggerMeasureCallbacks = useRef(\n new Map<string, (node: HTMLButtonElement | null) => void>(),\n );\n const rafRef = useRef<number | null>(null);\n const clearComputingRafRef = useRef<number | null>(null);\n const isComputingRef = useRef(false);\n const pendingMeasureRef = useRef(false);\n const resizeObserverRef = useRef<ResizeObserver | null>(null);\n const observedWidthTargetsRef = useRef(\n new Map<Element, ObservedWidthTarget>(),\n );\n\n const cachedItemWidths = useRef<Record<string, number>>({});\n const cachedNamedTriggerWidths = useRef<Record<string, number>>({});\n const cachedSharedTriggerWidths = useRef<Record<string, number>>({});\n const [overflowState, setOverflowState] =\n useState<OverflowState>(emptyOverflowState);\n\n const namedTriggerItems = useMemo(\n () =>\n items.filter((item) => {\n return item.overflowMode !== \"none\" && item.overflowGroup !== \"shared\";\n }),\n [items],\n );\n\n const groupDefinitions = useMemo(() => buildGroupDefinitions(items), [items]);\n const collapseUnits = useMemo(() => buildCollapseUnits(items), [items]);\n\n const computeOverflow = useCallback((): OverflowState => {\n const container = containerRef.current;\n\n if (!container) {\n return emptyOverflowState;\n }\n\n const containerStyles = ownerWindow(container).getComputedStyle(container);\n const paddingLeft =\n Number.parseFloat(containerStyles.paddingLeft || \"0\") || 0;\n const paddingRight =\n Number.parseFloat(containerStyles.paddingRight || \"0\") || 0;\n const borderLeft =\n Number.parseFloat(containerStyles.borderLeftWidth || \"0\") || 0;\n const borderRight =\n Number.parseFloat(containerStyles.borderRightWidth || \"0\") || 0;\n const containerWidth =\n container.getBoundingClientRect().width -\n paddingLeft -\n paddingRight -\n borderLeft -\n borderRight;\n\n if (containerWidth <= 0) {\n return emptyOverflowState;\n }\n\n const rootGap = readGap(\n containerStyles.columnGap || containerStyles.gap || \"0\",\n );\n const bandGaps = new Map<ToolbarContentNextPosition, number>();\n const contentGaps = new Map<string, number>();\n const itemWidths = new Map<string, number>();\n const namedTriggerWidths = new Map<string, number>();\n const triggerWidths = new Map<string, number>();\n\n for (const position of bandPositions) {\n const bandElement = bandRefs.current[position];\n\n if (!bandElement) {\n bandGaps.set(position, 0);\n continue;\n }\n\n const bandStyles = ownerWindow(bandElement).getComputedStyle(bandElement);\n bandGaps.set(\n position,\n readGap(bandStyles.columnGap || bandStyles.gap || \"0\"),\n );\n }\n\n for (const contentArea of content) {\n const contentElement = contentRefs.current[contentArea.key];\n\n if (!contentElement) {\n return emptyOverflowState;\n }\n\n const contentStyles =\n ownerWindow(contentElement).getComputedStyle(contentElement);\n\n contentGaps.set(\n contentArea.key,\n readGap(contentStyles.columnGap || contentStyles.gap || \"0\"),\n );\n }\n\n for (const item of items) {\n const element = itemRefs.current[item.id];\n\n if (element) {\n const width = measureOverflowItemWidth(element);\n\n if (width > 0) {\n itemWidths.set(item.id, width);\n cachedItemWidths.current[item.id] = width;\n continue;\n }\n }\n\n const cached = cachedItemWidths.current[item.id];\n if (cached != null && cached > 0) {\n itemWidths.set(item.id, cached);\n continue;\n }\n\n return emptyOverflowState;\n }\n\n for (const item of namedTriggerItems) {\n const liveWidth = measureWidth(namedTriggerRefs.current[item.id]);\n\n if (liveWidth > 0) {\n namedTriggerWidths.set(item.id, liveWidth);\n cachedNamedTriggerWidths.current[item.id] = liveWidth;\n continue;\n }\n\n const measureWidthForItem = measureWidth(\n namedTriggerMeasureRefs.current[item.id],\n );\n\n if (measureWidthForItem > 0) {\n namedTriggerWidths.set(item.id, measureWidthForItem);\n cachedNamedTriggerWidths.current[item.id] = measureWidthForItem;\n continue;\n }\n\n const cached = cachedNamedTriggerWidths.current[item.id];\n if (cached != null && cached > 0) {\n namedTriggerWidths.set(item.id, cached);\n continue;\n }\n\n return emptyOverflowState;\n }\n\n for (const group of groupDefinitions.filter((entry) => !entry.named)) {\n const width = measureWidth(triggerMeasureRefs.current[group.key]);\n\n if (width <= 0) {\n const cached = cachedSharedTriggerWidths.current[group.key];\n\n if (cached != null && cached > 0) {\n triggerWidths.set(group.key, cached);\n continue;\n }\n\n return emptyOverflowState;\n }\n\n triggerWidths.set(group.key, width);\n cachedSharedTriggerWidths.current[group.key] = width;\n }\n\n const nextOverflowState = computeToolbarNextOverflowState({\n bandGaps,\n collapseUnits,\n containerWidth,\n groupDefinitions,\n itemWidths,\n items,\n namedTriggerWidths,\n content,\n contentGaps,\n rootGap,\n triggerWidths,\n });\n\n return nextOverflowState;\n }, [collapseUnits, groupDefinitions, items, namedTriggerItems, content]);\n\n const scheduleMeasureRef = useRef<() => void>(() => {});\n\n const scheduleMeasure = useCallback(() => {\n if (!targetWindow) {\n return;\n }\n\n if (isComputingRef.current) {\n pendingMeasureRef.current = true;\n return;\n }\n\n if (rafRef.current != null) {\n targetWindow.cancelAnimationFrame(rafRef.current);\n }\n\n rafRef.current = targetWindow.requestAnimationFrame(() => {\n rafRef.current = null;\n isComputingRef.current = true;\n\n try {\n const nextState = computeOverflow();\n\n setOverflowState((previous) => {\n return areOverflowStatesEqual(previous, nextState)\n ? previous\n : nextState;\n });\n } finally {\n clearComputingRafRef.current = targetWindow.requestAnimationFrame(\n () => {\n clearComputingRafRef.current = null;\n isComputingRef.current = false;\n\n if (pendingMeasureRef.current) {\n pendingMeasureRef.current = false;\n scheduleMeasureRef.current();\n }\n },\n );\n }\n });\n }, [computeOverflow, targetWindow]);\n\n useIsomorphicLayoutEffect(() => {\n scheduleMeasureRef.current = scheduleMeasure;\n\n return () => {\n scheduleMeasureRef.current = () => {};\n };\n }, [scheduleMeasure]);\n\n const getCachedWidthForObservedTarget = useCallback(\n (target: Exclude<ObservedWidthTarget, { kind: \"container\" }>) => {\n switch (target.kind) {\n case \"item\":\n return cachedItemWidths.current[target.id];\n case \"named-trigger\":\n case \"named-trigger-measure\":\n return cachedNamedTriggerWidths.current[target.id];\n case \"shared-trigger-measure\":\n return cachedSharedTriggerWidths.current[target.groupKey];\n }\n },\n [],\n );\n\n const setCachedWidthForObservedTarget = useCallback(\n (\n target: Exclude<ObservedWidthTarget, { kind: \"container\" }>,\n width: number,\n ) => {\n switch (target.kind) {\n case \"item\":\n cachedItemWidths.current[target.id] = width;\n return;\n case \"named-trigger\":\n case \"named-trigger-measure\":\n cachedNamedTriggerWidths.current[target.id] = width;\n return;\n case \"shared-trigger-measure\":\n cachedSharedTriggerWidths.current[target.groupKey] = width;\n return;\n }\n },\n [],\n );\n\n const observeWidthTarget = useCallback(\n (node: Element | null, target: ObservedWidthTarget) => {\n if (!node) {\n return;\n }\n\n observedWidthTargetsRef.current.set(node, target);\n resizeObserverRef.current?.observe(node);\n },\n [],\n );\n\n const unobserveWidthTarget = useCallback((node: Element | null) => {\n if (!node) {\n return;\n }\n\n observedWidthTargetsRef.current.delete(node);\n resizeObserverRef.current?.unobserve(node);\n }, []);\n\n const updateObservedNode = useCallback(\n <TElement extends Element>(\n nodes: Record<string, TElement | null>,\n key: string,\n node: TElement | null,\n target: ObservedWidthTarget,\n ) => {\n const previous = nodes[key];\n\n if (previous === node) {\n return;\n }\n\n if (previous) {\n unobserveWidthTarget(previous);\n }\n\n nodes[key] = node;\n\n if (node) {\n observeWidthTarget(node, target);\n }\n },\n [observeWidthTarget, unobserveWidthTarget],\n );\n\n useIsomorphicLayoutEffect(() => {\n scheduleMeasure();\n }, [scheduleMeasure]);\n\n useEffect(() => {\n const container = containerRef.current;\n\n if (!container) {\n return;\n }\n\n let cancelled = false;\n const win = ownerWindow(container);\n const resizeObserver = new win.ResizeObserver((entries) => {\n let shouldMeasure = false;\n\n for (const entry of entries) {\n const target = observedWidthTargetsRef.current.get(entry.target);\n\n if (!target) {\n continue;\n }\n\n if (target.kind === \"container\") {\n shouldMeasure = true;\n continue;\n }\n\n const nextWidth =\n target.kind === \"item\"\n ? measureOverflowItemWidth(entry.target as HTMLElement)\n : measureWidth(entry.target as HTMLElement);\n\n if (nextWidth <= 0) {\n continue;\n }\n\n const previousWidth = getCachedWidthForObservedTarget(target);\n\n if (previousWidth !== nextWidth) {\n setCachedWidthForObservedTarget(target, nextWidth);\n shouldMeasure = true;\n }\n }\n\n if (shouldMeasure) {\n scheduleMeasureRef.current();\n }\n });\n\n resizeObserverRef.current = resizeObserver;\n observeWidthTarget(container, { kind: \"container\" });\n\n for (const node of observedWidthTargetsRef.current.keys()) {\n resizeObserver.observe(node);\n }\n\n if (win.document.fonts) {\n void win.document.fonts.ready.then(() => {\n if (!cancelled) {\n scheduleMeasureRef.current();\n }\n });\n }\n\n return () => {\n cancelled = true;\n resizeObserverRef.current = null;\n resizeObserver.disconnect();\n\n if (rafRef.current != null) {\n win.cancelAnimationFrame(rafRef.current);\n rafRef.current = null;\n }\n\n if (clearComputingRafRef.current != null) {\n win.cancelAnimationFrame(clearComputingRafRef.current);\n clearComputingRafRef.current = null;\n }\n\n isComputingRef.current = false;\n pendingMeasureRef.current = false;\n };\n }, [\n getCachedWidthForObservedTarget,\n observeWidthTarget,\n setCachedWidthForObservedTarget,\n ]);\n\n const getItemRef = useCallback(\n (id: string) => {\n const existing = itemRefCallbacks.current.get(id);\n\n if (existing) {\n return existing;\n }\n\n const callback = (node: HTMLDivElement | null) => {\n updateObservedNode(itemRefs.current, id, node, {\n id,\n kind: \"item\",\n });\n };\n\n itemRefCallbacks.current.set(id, callback);\n return callback;\n },\n [updateObservedNode],\n );\n\n const getNamedTriggerRef = useCallback(\n (id: string) => {\n const existing = namedTriggerRefCallbacks.current.get(id);\n\n if (existing) {\n return existing;\n }\n\n const callback = (node: HTMLDivElement | null) => {\n updateObservedNode(namedTriggerRefs.current, id, node, {\n id,\n kind: \"named-trigger\",\n });\n };\n\n namedTriggerRefCallbacks.current.set(id, callback);\n return callback;\n },\n [updateObservedNode],\n );\n\n const getNamedTriggerMeasureRef = useCallback(\n (id: string) => {\n const existing = namedTriggerMeasureCallbacks.current.get(id);\n\n if (existing) {\n return existing;\n }\n\n const callback = (node: HTMLDivElement | null) => {\n updateObservedNode(namedTriggerMeasureRefs.current, id, node, {\n id,\n kind: \"named-trigger-measure\",\n });\n };\n\n namedTriggerMeasureCallbacks.current.set(id, callback);\n return callback;\n },\n [updateObservedNode],\n );\n\n const getContentRef = useCallback((contentKey: string) => {\n const existing = contentRefCallbacks.current.get(contentKey);\n\n if (existing) {\n return existing;\n }\n\n const callback = (node: HTMLDivElement | null) => {\n contentRefs.current[contentKey] = node;\n };\n\n contentRefCallbacks.current.set(contentKey, callback);\n return callback;\n }, []);\n const getBandRef = useCallback((position: ToolbarContentNextPosition) => {\n const existing = bandRefCallbacks.current.get(position);\n\n if (existing) {\n return existing;\n }\n\n const callback = (node: HTMLDivElement | null) => {\n bandRefs.current[position] = node;\n };\n\n bandRefCallbacks.current.set(position, callback);\n return callback;\n }, []);\n\n const getTriggerMeasureRef = useCallback(\n (groupKey: string) => {\n const existing = triggerMeasureCallbacks.current.get(groupKey);\n\n if (existing) {\n return existing;\n }\n\n const callback = (node: HTMLButtonElement | null) => {\n updateObservedNode(triggerMeasureRefs.current, groupKey, node, {\n groupKey,\n kind: \"shared-trigger-measure\",\n });\n };\n\n triggerMeasureCallbacks.current.set(groupKey, callback);\n return callback;\n },\n [updateObservedNode],\n );\n\n return {\n containerRef,\n getBandRef,\n getItemRef,\n getNamedTriggerMeasureRef,\n getNamedTriggerRef,\n getContentRef,\n getTriggerMeasureRef,\n isOverflowing: overflowState.overflowGroups.length > 0,\n overflowGroups: overflowState.overflowGroups,\n overflowedIds: overflowState.overflowedIds,\n overflowTriggerGroups: groupDefinitions,\n };\n}\n"],"names":["ownerWindow","buildContentOverflowRenderSlots","useWindow","useMemo","useRef","useState","useCallback","useIsomorphicLayoutEffect","useEffect"],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- var css_248z = ".saltToolbarContentNext {\n display: flex;\n align-items: center;\n gap: var(--salt-spacing-100);\n min-width: 0;\n flex-shrink: 0;\n}\n\n.saltToolbarContentNext[data-position=\"start\"] {\n justify-content: flex-start;\n}\n\n.saltToolbarContentNext[data-position=\"center\"] {\n justify-content: center;\n}\n\n.saltToolbarContentNext[data-position=\"end\"] {\n justify-content: flex-end;\n}\n\n.saltToolbarContentNext[data-implicit] > .saltTooltrayNext[data-align=\"center\"],\n.saltToolbarContentNext[data-implicit] > .saltTooltrayNext[data-align=\"end\"] {\n margin-inline-start: 0;\n margin-inline-end: 0;\n}\n";
2
-
3
- export { css_248z as default };
4
- //# sourceMappingURL=ToolbarContentNext.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ToolbarContentNext.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,30 +0,0 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { makePrefixer } from '@salt-ds/core';
3
- import { useComponentCssInjection } from '@salt-ds/styles';
4
- import { useWindow } from '@salt-ds/window';
5
- import { clsx } from 'clsx';
6
- import { forwardRef } from 'react';
7
- import css_248z from './ToolbarContentNext.css.js';
8
-
9
- const withBaseName = makePrefixer("saltToolbarContentNext");
10
- const ToolbarContentNext = forwardRef(function ToolbarContentNext2({ children, className, position, ...rest }, ref) {
11
- const targetWindow = useWindow();
12
- useComponentCssInjection({
13
- testId: "salt-toolbar-content-next",
14
- css: css_248z,
15
- window: targetWindow
16
- });
17
- return /* @__PURE__ */ jsx(
18
- "div",
19
- {
20
- className: clsx(withBaseName(), className),
21
- ...rest,
22
- "data-position": position,
23
- ref,
24
- children
25
- }
26
- );
27
- });
28
-
29
- export { ToolbarContentNext };
30
- //# sourceMappingURL=ToolbarContentNext.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ToolbarContentNext.js","sources":["../src/toolbar-next/ToolbarContentNext.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport { type ComponentPropsWithoutRef, forwardRef } from \"react\";\n\nimport toolbarContentNextCss from \"./ToolbarContentNext.css\";\n\nexport type ToolbarContentNextPosition = \"start\" | \"center\" | \"end\";\n\nexport interface ToolbarContentNextProps\n extends ComponentPropsWithoutRef<\"div\"> {\n /**\n * Controls where the content is placed across the full toolbar.\n * If any content uses `\"center\"`, `ToolbarNext` reserves symmetric side space\n * so the center band stays on the toolbar midpoint.\n */\n position: ToolbarContentNextPosition;\n}\n\nconst withBaseName = makePrefixer(\"saltToolbarContentNext\");\n\nexport const ToolbarContentNext = forwardRef<\n HTMLDivElement,\n ToolbarContentNextProps\n>(function ToolbarContentNext({ children, className, position, ...rest }, ref) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-toolbar-content-next\",\n css: toolbarContentNextCss,\n window: targetWindow,\n });\n\n return (\n <div\n className={clsx(withBaseName(), className)}\n {...rest}\n data-position={position}\n ref={ref}\n >\n {children}\n </div>\n );\n});\n"],"names":["ToolbarContentNext","toolbarContentNextCss"],"mappings":";;;;;;;;AAoBA,MAAM,YAAA,GAAe,aAAa,wBAAwB,CAAA;AAEnD,MAAM,kBAAA,GAAqB,UAAA,CAGhC,SAASA,mBAAAA,CAAmB,EAAE,QAAA,EAAU,SAAA,EAAW,QAAA,EAAU,GAAG,IAAA,EAAK,EAAG,GAAA,EAAK;AAC7E,EAAA,MAAM,eAAe,SAAA,EAAU;AAC/B,EAAA,wBAAA,CAAyB;AAAA,IACvB,MAAA,EAAQ,2BAAA;AAAA,IACR,GAAA,EAAKC,QAAA;AAAA,IACL,MAAA,EAAQ;AAAA,GACT,CAAA;AAED,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,IAAA,CAAK,YAAA,EAAa,EAAG,SAAS,CAAA;AAAA,MACxC,GAAG,IAAA;AAAA,MACJ,eAAA,EAAe,QAAA;AAAA,MACf,GAAA;AAAA,MAEC;AAAA;AAAA,GACH;AAEJ,CAAC;;;;"}
@@ -1,4 +0,0 @@
1
- var css_248z = ".saltToolbarNext {\n box-sizing: border-box;\n inline-size: 100%;\n min-width: 0;\n position: relative;\n}\n\n.saltToolbarNext-layout {\n align-items: center;\n --saltToolbarNext-band-gap: var(--salt-spacing-100);\n}\n\n.saltToolbarNext-layout:not([data-centered]) {\n display: flex;\n column-gap: var(--saltToolbarNext-band-gap);\n}\n\n.saltToolbarNext-layout[data-centered] {\n display: grid;\n grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);\n}\n\n.saltToolbarNext-band {\n display: flex;\n align-items: center;\n gap: var(--saltToolbarNext-band-gap);\n min-width: 0;\n}\n\n.saltToolbarNext-layout:not([data-centered]) > .saltToolbarNext-band[data-band-position=\"end\"] {\n justify-content: flex-end;\n margin-inline-start: auto;\n}\n\n.saltToolbarNext-layout[data-centered] > .saltToolbarNext-band[data-band-position=\"start\"] {\n grid-column: 1;\n}\n\n.saltToolbarNext-layout[data-centered] > .saltToolbarNext-band[data-band-position=\"center\"] {\n grid-column: 2;\n justify-content: center;\n}\n\n.saltToolbarNext-layout[data-centered] > .saltToolbarNext-band[data-band-position=\"end\"] {\n grid-column: 3;\n justify-content: flex-end;\n}\n\n.saltToolbarNext-fallback {\n display: flex;\n align-items: center;\n gap: var(--salt-spacing-100);\n}\n\n.saltToolbarNext-layout > * {\n min-width: 0;\n}\n\n.saltToolbarNext-primary {\n --toolbarNext-background: var(--salt-container-primary-background);\n --toolbarNext-borderColor: var(--salt-container-primary-borderColor);\n}\n\n.saltToolbarNext-secondary {\n --toolbarNext-background: var(--salt-container-secondary-background);\n --toolbarNext-borderColor: var(--salt-container-secondary-borderColor);\n}\n\n.saltToolbarNext-tertiary {\n --toolbarNext-background: var(--salt-container-tertiary-background);\n --toolbarNext-borderColor: var(--salt-container-tertiary-borderColor);\n}\n\n.saltToolbarNext-bordered {\n background: var(--saltToolbarNext-background, var(--toolbarNext-background));\n border: var(--salt-size-fixed-100) var(--salt-borderStyle-solid) var(--saltToolbarNext-borderColor, var(--toolbarNext-borderColor));\n border-radius: var(--salt-palette-corner, 0);\n padding: var(--salt-spacing-100);\n}\n\n.saltToolbarNext-transparent {\n background: transparent;\n border: none;\n padding: 0;\n}\n\n.saltToolbarNext-measurements {\n display: flex;\n gap: var(--salt-spacing-100);\n position: absolute;\n visibility: hidden;\n pointer-events: none;\n inset: 0 auto auto 0;\n block-size: 0;\n overflow: hidden;\n}\n\n.saltToolbarNext-measureTrigger {\n white-space: nowrap;\n}\n";
2
-
3
- export { css_248z as default };
4
- //# sourceMappingURL=ToolbarNext.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ToolbarNext.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,392 +0,0 @@
1
- import { jsx, jsxs } from 'react/jsx-runtime';
2
- import { makePrefixer, useForkRef, useIsomorphicLayoutEffect, Button } from '@salt-ds/core';
3
- import { useComponentCssInjection } from '@salt-ds/styles';
4
- import { useWindow } from '@salt-ds/window';
5
- import { clsx } from 'clsx';
6
- import { forwardRef, useMemo, useRef, useState, useCallback, useEffect, cloneElement } from 'react';
7
- import css_248z from './ToolbarNext.css.js';
8
- import { ToolbarNextOverflowOwners, ToolbarNextOverflowTriggerContent, ToolbarNextOverflowContent, ToolbarNextOverflowMenu } from './ToolbarNextOverflow.js';
9
- import { ToolbarNextOverflowFloatingBoundaryProvider } from './ToolbarNextOverflowFloatingBoundary.js';
10
- import { TOOLBAR_NEXT_SCOPE_ROOT_ATTR } from './toolbarNextKeyboardUtils.js';
11
- import { normalizeToolbarChildren } from './toolbarNextUtils.js';
12
- import { useToolbarNextKeyboardNavigation } from './useToolbarNextKeyboardNavigation.js';
13
- import { useToolbarNextOverflow } from './useToolbarNextOverflow.js';
14
-
15
- const withBaseName = makePrefixer("saltToolbarNext");
16
- const withOverflowBaseName = makePrefixer("saltToolbarNextOverflow");
17
- const bandPositions = ["start", "center", "end"];
18
- function cloneMeasureDecorations(itemId, slot, decorations) {
19
- return decorations.map((decoration, index) => {
20
- return cloneElement(decoration, {
21
- key: `${itemId}-${slot}-measurement-${String(decoration.key ?? index)}`
22
- });
23
- });
24
- }
25
- const ToolbarNext = forwardRef(
26
- function ToolbarNext2({
27
- children,
28
- className,
29
- onBlurCapture,
30
- onFocusCapture,
31
- onKeyDownCapture,
32
- onPointerDownCapture,
33
- appearance = "bordered",
34
- variant = "primary",
35
- ...rest
36
- }, ref) {
37
- const targetWindow = useWindow();
38
- useComponentCssInjection({
39
- testId: "salt-toolbar-next",
40
- css: css_248z,
41
- window: targetWindow
42
- });
43
- const { mode, content } = normalizeToolbarChildren(children);
44
- const overflowContent = useMemo(
45
- () => normalizeToolbarChildren(children).content,
46
- [children]
47
- );
48
- const allItems = useMemo(
49
- () => content.flatMap((contentArea) => contentArea.items),
50
- [content]
51
- );
52
- const {
53
- containerRef,
54
- getBandRef,
55
- getItemRef,
56
- getNamedTriggerMeasureRef,
57
- getNamedTriggerRef,
58
- getContentRef,
59
- getTriggerMeasureRef,
60
- overflowGroups,
61
- overflowTriggerGroups,
62
- overflowedIds
63
- } = useToolbarNextOverflow({ content: overflowContent });
64
- const handleRef = useForkRef(ref, containerRef);
65
- const invalidCompositionWarnedRef = useRef(false);
66
- const itemHostRefCallbacks = useRef(
67
- /* @__PURE__ */ new Map()
68
- );
69
- const [itemHostNodes, setItemHostNodes] = useState({});
70
- const sharedOverflowGroups = useMemo(
71
- () => overflowGroups.filter((group) => !group.named),
72
- [overflowGroups]
73
- );
74
- const namedOverflowGroups = useMemo(
75
- () => overflowGroups.filter((group) => group.named),
76
- [overflowGroups]
77
- );
78
- const overflowTriggerGroupByKey = useMemo(
79
- () => new Map(
80
- overflowTriggerGroups.map((group) => [group.key, group])
81
- ),
82
- [overflowTriggerGroups]
83
- );
84
- const namedTriggerMeasureItems = useMemo(
85
- () => allItems.filter((item) => {
86
- return item.overflowMode !== "none" && item.overflowGroup !== "shared";
87
- }),
88
- [allItems]
89
- );
90
- const bandsByPosition = useMemo(() => {
91
- return bandPositions.reduce(
92
- (bands, position) => {
93
- bands[position] = content.filter(
94
- (contentArea) => contentArea.position === position
95
- );
96
- return bands;
97
- },
98
- {
99
- start: [],
100
- center: [],
101
- end: []
102
- }
103
- );
104
- }, [content]);
105
- const hasCenteredLayout = bandsByPosition.center.length > 0;
106
- const keyboardNavigation = useToolbarNextKeyboardNavigation({
107
- items: allItems,
108
- overflowedIds,
109
- scopeRef: containerRef
110
- });
111
- const overflowedIdsKey = useMemo(
112
- () => Array.from(overflowedIds).sort().join("\0"),
113
- [overflowedIds]
114
- );
115
- const previousOverflowedIdsKeyRef = useRef(overflowedIdsKey);
116
- const getItemHostRef = useCallback(
117
- (id, kind) => {
118
- const callbackKey = `${id}:${kind}`;
119
- const existing = itemHostRefCallbacks.current.get(callbackKey);
120
- if (existing) {
121
- return existing;
122
- }
123
- const callback = (node) => {
124
- setItemHostNodes((previous) => {
125
- var _a;
126
- if (((_a = previous[id]) == null ? void 0 : _a[kind]) === node) {
127
- return previous;
128
- }
129
- return {
130
- ...previous,
131
- [id]: {
132
- ...previous[id],
133
- [kind]: node
134
- }
135
- };
136
- });
137
- };
138
- itemHostRefCallbacks.current.set(callbackKey, callback);
139
- return callback;
140
- },
141
- []
142
- );
143
- const itemOwnerHostNodes = useMemo(() => {
144
- return allItems.reduce(
145
- (hosts, item) => {
146
- const nodes = itemHostNodes[item.id];
147
- hosts[item.id] = (nodes == null ? void 0 : nodes.overflow) ?? (nodes == null ? void 0 : nodes.main) ?? (nodes == null ? void 0 : nodes.measurement) ?? null;
148
- return hosts;
149
- },
150
- {}
151
- );
152
- }, [allItems, itemHostNodes]);
153
- const overflowedMeasurementItems = useMemo(() => {
154
- return allItems.filter((item) => {
155
- var _a;
156
- return overflowedIds.has(item.id) && !((_a = itemHostNodes[item.id]) == null ? void 0 : _a.overflow);
157
- });
158
- }, [allItems, itemHostNodes, overflowedIds]);
159
- useIsomorphicLayoutEffect(() => {
160
- const overflowChanged = previousOverflowedIdsKeyRef.current !== overflowedIdsKey;
161
- previousOverflowedIdsKeyRef.current = overflowedIdsKey;
162
- if (!overflowChanged) {
163
- return;
164
- }
165
- const doc = targetWindow == null ? void 0 : targetWindow.document;
166
- const rememberedFocus = keyboardNavigation.rememberedFocusRef.current;
167
- if (!doc || !rememberedFocus) {
168
- return;
169
- }
170
- const activeElement = doc.activeElement;
171
- const focusWasLost = !activeElement || activeElement === doc.body || activeElement === doc.documentElement || !activeElement.isConnected;
172
- const target = keyboardNavigation.getEntryFocusable();
173
- if (!focusWasLost) {
174
- return;
175
- }
176
- if (!target) {
177
- return;
178
- }
179
- const focusTarget = () => {
180
- if (target.isConnected) {
181
- target.focus({ preventScroll: true });
182
- }
183
- };
184
- if (targetWindow == null ? void 0 : targetWindow.requestAnimationFrame) {
185
- const frame = targetWindow.requestAnimationFrame(focusTarget);
186
- return () => {
187
- targetWindow.cancelAnimationFrame(frame);
188
- };
189
- }
190
- queueMicrotask(focusTarget);
191
- }, [
192
- keyboardNavigation.getEntryFocusable,
193
- keyboardNavigation.rememberedFocusRef,
194
- overflowedIdsKey,
195
- targetWindow
196
- ]);
197
- useEffect(() => {
198
- if (process.env.NODE_ENV !== "production") {
199
- if (mode === "invalid" && !invalidCompositionWarnedRef.current) {
200
- console.warn(
201
- "ToolbarNext children must be authored in one composition model: either TooltrayNext/Divider children directly in ToolbarNext, or ToolbarContentNext children containing TooltrayNext/Divider items."
202
- );
203
- invalidCompositionWarnedRef.current = true;
204
- }
205
- if (mode !== "invalid") {
206
- invalidCompositionWarnedRef.current = false;
207
- }
208
- }
209
- }, [mode]);
210
- return /* @__PURE__ */ jsx(
211
- "div",
212
- {
213
- className: clsx(
214
- withBaseName(),
215
- {
216
- [withBaseName("fallback")]: mode === "invalid",
217
- [withBaseName("layout")]: mode !== "invalid"
218
- },
219
- withBaseName(variant),
220
- withBaseName(appearance),
221
- className
222
- ),
223
- ...rest,
224
- "data-centered": mode !== "invalid" && hasCenteredLayout ? "" : void 0,
225
- "data-mode": mode,
226
- ...{ [TOOLBAR_NEXT_SCOPE_ROOT_ATTR]: "main" },
227
- ref: handleRef,
228
- onBlurCapture: (event) => {
229
- keyboardNavigation.handleBlurCapture(event);
230
- onBlurCapture == null ? void 0 : onBlurCapture(event);
231
- },
232
- onFocusCapture: (event) => {
233
- keyboardNavigation.handleFocusCapture(event);
234
- onFocusCapture == null ? void 0 : onFocusCapture(event);
235
- },
236
- onKeyDownCapture: (event) => {
237
- keyboardNavigation.handleKeyDownCapture(event);
238
- onKeyDownCapture == null ? void 0 : onKeyDownCapture(event);
239
- },
240
- onPointerDownCapture: (event) => {
241
- keyboardNavigation.handlePointerDownCapture(event);
242
- onPointerDownCapture == null ? void 0 : onPointerDownCapture(event);
243
- },
244
- role: "toolbar",
245
- "aria-orientation": "horizontal",
246
- children: mode === "invalid" ? children : /* @__PURE__ */ jsxs(ToolbarNextOverflowFloatingBoundaryProvider, { children: [
247
- /* @__PURE__ */ jsx(
248
- ToolbarNextOverflowOwners,
249
- {
250
- hostNodes: itemOwnerHostNodes,
251
- items: allItems
252
- }
253
- ),
254
- /* @__PURE__ */ jsxs("div", { "aria-hidden": true, className: withBaseName("measurements"), children: [
255
- overflowTriggerGroups.filter((group) => !group.named).map((group) => /* @__PURE__ */ jsx(
256
- Button,
257
- {
258
- appearance: "transparent",
259
- className: withBaseName("measureTrigger"),
260
- ref: getTriggerMeasureRef(group.key),
261
- sentiment: "neutral",
262
- tabIndex: -1,
263
- children: /* @__PURE__ */ jsx(
264
- ToolbarNextOverflowTriggerContent,
265
- {
266
- label: group.label,
267
- named: group.named
268
- }
269
- )
270
- },
271
- group.id
272
- )),
273
- namedTriggerMeasureItems.map((item) => {
274
- const group = overflowTriggerGroupByKey.get(
275
- item.overflowGroupKey
276
- );
277
- if (!group) {
278
- return null;
279
- }
280
- return /* @__PURE__ */ jsxs(
281
- "div",
282
- {
283
- className: withOverflowBaseName("slot"),
284
- ref: getNamedTriggerMeasureRef(item.id),
285
- children: [
286
- cloneMeasureDecorations(
287
- item.id,
288
- "leading",
289
- item.leadingDecorations
290
- ),
291
- /* @__PURE__ */ jsx("div", { className: withOverflowBaseName("item"), children: /* @__PURE__ */ jsx(
292
- Button,
293
- {
294
- appearance: "transparent",
295
- className: withOverflowBaseName("trigger"),
296
- sentiment: "neutral",
297
- tabIndex: -1,
298
- children: /* @__PURE__ */ jsx(
299
- ToolbarNextOverflowTriggerContent,
300
- {
301
- label: group.label,
302
- named: group.named
303
- }
304
- )
305
- }
306
- ) })
307
- ]
308
- },
309
- `measure-${item.id}`
310
- );
311
- }),
312
- overflowedMeasurementItems.map((item) => /* @__PURE__ */ jsxs(
313
- "div",
314
- {
315
- className: withOverflowBaseName("slot"),
316
- ref: getItemRef(item.id),
317
- children: [
318
- cloneMeasureDecorations(
319
- item.id,
320
- "leading",
321
- item.leadingDecorations
322
- ),
323
- /* @__PURE__ */ jsx("div", { className: withOverflowBaseName("item"), children: /* @__PURE__ */ jsx(
324
- "div",
325
- {
326
- className: withOverflowBaseName("itemHost"),
327
- ref: getItemHostRef(item.id, "measurement")
328
- }
329
- ) }),
330
- cloneMeasureDecorations(
331
- item.id,
332
- "trailing",
333
- item.trailingDecorations
334
- )
335
- ]
336
- },
337
- `measure-item-${item.id}`
338
- ))
339
- ] }),
340
- bandPositions.map((position) => {
341
- const bandContent = bandsByPosition[position];
342
- const shouldRenderBand = hasCenteredLayout ? true : position === "end" ? bandContent.length > 0 || sharedOverflowGroups.length > 0 : bandContent.length > 0;
343
- if (!shouldRenderBand) {
344
- return null;
345
- }
346
- return /* @__PURE__ */ jsxs(
347
- "div",
348
- {
349
- className: withBaseName("band"),
350
- "data-band-position": position,
351
- ref: getBandRef(position),
352
- children: [
353
- bandContent.map((contentArea) => /* @__PURE__ */ jsx(
354
- ToolbarNextOverflowContent,
355
- {
356
- focusMemoryRef: keyboardNavigation.rememberedFocusRef,
357
- getItemHostRef,
358
- getItemRef,
359
- getNamedTriggerRef,
360
- getContentRef,
361
- onItemFocus: keyboardNavigation.rememberItemFocus,
362
- overflowGroups: namedOverflowGroups.filter(
363
- (group) => group.contentKey === contentArea.key
364
- ),
365
- overflowedIds,
366
- content: contentArea
367
- },
368
- contentArea.key
369
- )),
370
- position === "end" ? sharedOverflowGroups.map((group) => /* @__PURE__ */ jsx(
371
- ToolbarNextOverflowMenu,
372
- {
373
- focusMemoryRef: keyboardNavigation.rememberedFocusRef,
374
- getItemHostRef,
375
- group,
376
- onItemFocus: keyboardNavigation.rememberItemFocus
377
- },
378
- group.id
379
- )) : null
380
- ]
381
- },
382
- position
383
- );
384
- })
385
- ] })
386
- }
387
- );
388
- }
389
- );
390
-
391
- export { ToolbarNext };
392
- //# sourceMappingURL=ToolbarNext.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ToolbarNext.js","sources":["../src/toolbar-next/ToolbarNext.tsx"],"sourcesContent":["import {\n Button,\n makePrefixer,\n useForkRef,\n useIsomorphicLayoutEffect,\n} from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n type ComponentPropsWithoutRef,\n cloneElement,\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport type { ToolbarContentNextPosition } from \"./ToolbarContentNext\";\nimport toolbarNextCss from \"./ToolbarNext.css\";\nimport {\n type ToolbarNextItemHostKind,\n ToolbarNextOverflowContent,\n ToolbarNextOverflowMenu,\n ToolbarNextOverflowOwners,\n ToolbarNextOverflowTriggerContent,\n} from \"./ToolbarNextOverflow\";\nimport { ToolbarNextOverflowFloatingBoundaryProvider } from \"./ToolbarNextOverflowFloatingBoundary\";\nimport { TOOLBAR_NEXT_SCOPE_ROOT_ATTR } from \"./toolbarNextKeyboardUtils\";\nimport {\n normalizeToolbarChildren,\n type ToolbarNextOverflowItem,\n} from \"./toolbarNextUtils\";\nimport { useToolbarNextKeyboardNavigation } from \"./useToolbarNextKeyboardNavigation\";\nimport { useToolbarNextOverflow } from \"./useToolbarNextOverflow\";\n\nexport interface ToolbarNextProps extends ComponentPropsWithoutRef<\"div\"> {\n /**\n * Visual treatment of the toolbar. Defaults to `\"bordered\"`.\n */\n appearance?: \"bordered\" | \"transparent\";\n /**\n * Styling variant. Defaults to `\"primary\"`.\n */\n variant?: \"primary\" | \"secondary\" | \"tertiary\";\n}\n\nconst withBaseName = makePrefixer(\"saltToolbarNext\");\nconst withOverflowBaseName = makePrefixer(\"saltToolbarNextOverflow\");\nconst bandPositions: ToolbarContentNextPosition[] = [\"start\", \"center\", \"end\"];\n\ntype ToolbarNextItemHostNodes = Partial<\n Record<ToolbarNextItemHostKind, HTMLDivElement | null>\n>;\n\nfunction cloneMeasureDecorations(\n itemId: string,\n slot: \"leading\" | \"trailing\",\n decorations: ToolbarNextOverflowItem[\"leadingDecorations\"],\n) {\n return decorations.map((decoration, index) => {\n return cloneElement(decoration, {\n key: `${itemId}-${slot}-measurement-${String(decoration.key ?? index)}`,\n });\n });\n}\n\nexport const ToolbarNext = forwardRef<HTMLDivElement, ToolbarNextProps>(\n function ToolbarNext(\n {\n children,\n className,\n onBlurCapture,\n onFocusCapture,\n onKeyDownCapture,\n onPointerDownCapture,\n appearance = \"bordered\",\n variant = \"primary\",\n ...rest\n },\n ref,\n ) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-toolbar-next\",\n css: toolbarNextCss,\n window: targetWindow,\n });\n\n const { mode, content } = normalizeToolbarChildren(children);\n const overflowContent = useMemo(\n () => normalizeToolbarChildren(children).content,\n [children],\n );\n\n const allItems = useMemo(\n () => content.flatMap((contentArea) => contentArea.items),\n [content],\n );\n\n const {\n containerRef,\n getBandRef,\n getItemRef,\n getNamedTriggerMeasureRef,\n getNamedTriggerRef,\n getContentRef,\n getTriggerMeasureRef,\n overflowGroups,\n overflowTriggerGroups,\n overflowedIds,\n } = useToolbarNextOverflow({ content: overflowContent });\n\n const handleRef = useForkRef(ref, containerRef);\n const invalidCompositionWarnedRef = useRef(false);\n const itemHostRefCallbacks = useRef(\n new Map<string, (node: HTMLDivElement | null) => void>(),\n );\n const [itemHostNodes, setItemHostNodes] = useState<\n Record<string, ToolbarNextItemHostNodes>\n >({});\n\n const sharedOverflowGroups = useMemo(\n () => overflowGroups.filter((group) => !group.named),\n [overflowGroups],\n );\n\n const namedOverflowGroups = useMemo(\n () => overflowGroups.filter((group) => group.named),\n [overflowGroups],\n );\n\n const overflowTriggerGroupByKey = useMemo(\n () =>\n new Map(\n overflowTriggerGroups.map((group) => [group.key, group] as const),\n ),\n [overflowTriggerGroups],\n );\n\n const namedTriggerMeasureItems = useMemo(\n () =>\n allItems.filter((item) => {\n return (\n item.overflowMode !== \"none\" && item.overflowGroup !== \"shared\"\n );\n }),\n [allItems],\n );\n\n const bandsByPosition = useMemo(() => {\n return bandPositions.reduce<\n Record<ToolbarContentNextPosition, typeof content>\n >(\n (bands, position) => {\n bands[position] = content.filter(\n (contentArea) => contentArea.position === position,\n );\n return bands;\n },\n {\n start: [],\n center: [],\n end: [],\n },\n );\n }, [content]);\n const hasCenteredLayout = bandsByPosition.center.length > 0;\n const keyboardNavigation = useToolbarNextKeyboardNavigation({\n items: allItems,\n overflowedIds,\n scopeRef: containerRef,\n });\n const overflowedIdsKey = useMemo(\n () => Array.from(overflowedIds).sort().join(\"\\0\"),\n [overflowedIds],\n );\n const previousOverflowedIdsKeyRef = useRef(overflowedIdsKey);\n\n const getItemHostRef = useCallback(\n (id: string, kind: ToolbarNextItemHostKind) => {\n const callbackKey = `${id}:${kind}`;\n const existing = itemHostRefCallbacks.current.get(callbackKey);\n\n if (existing) {\n return existing;\n }\n\n const callback = (node: HTMLDivElement | null) => {\n setItemHostNodes((previous) => {\n if (previous[id]?.[kind] === node) {\n return previous;\n }\n\n return {\n ...previous,\n [id]: {\n ...previous[id],\n [kind]: node,\n },\n };\n });\n };\n\n itemHostRefCallbacks.current.set(callbackKey, callback);\n return callback;\n },\n [],\n );\n\n const itemOwnerHostNodes = useMemo(() => {\n return allItems.reduce<Record<string, HTMLDivElement | null>>(\n (hosts, item) => {\n const nodes = itemHostNodes[item.id];\n\n hosts[item.id] =\n nodes?.overflow ?? nodes?.main ?? nodes?.measurement ?? null;\n return hosts;\n },\n {},\n );\n }, [allItems, itemHostNodes]);\n\n const overflowedMeasurementItems = useMemo(() => {\n return allItems.filter((item) => {\n return overflowedIds.has(item.id) && !itemHostNodes[item.id]?.overflow;\n });\n }, [allItems, itemHostNodes, overflowedIds]);\n\n useIsomorphicLayoutEffect(() => {\n const overflowChanged =\n previousOverflowedIdsKeyRef.current !== overflowedIdsKey;\n previousOverflowedIdsKeyRef.current = overflowedIdsKey;\n\n if (!overflowChanged) {\n return;\n }\n\n const doc = targetWindow?.document;\n const rememberedFocus = keyboardNavigation.rememberedFocusRef.current;\n\n if (!doc || !rememberedFocus) {\n return;\n }\n\n const activeElement = doc.activeElement;\n const focusWasLost =\n !activeElement ||\n activeElement === doc.body ||\n activeElement === doc.documentElement ||\n !activeElement.isConnected;\n const target = keyboardNavigation.getEntryFocusable();\n\n if (!focusWasLost) {\n return;\n }\n\n if (!target) {\n return;\n }\n\n const focusTarget = () => {\n if (target.isConnected) {\n target.focus({ preventScroll: true });\n }\n };\n\n if (targetWindow?.requestAnimationFrame) {\n const frame = targetWindow.requestAnimationFrame(focusTarget);\n\n return () => {\n targetWindow.cancelAnimationFrame(frame);\n };\n }\n\n queueMicrotask(focusTarget);\n }, [\n keyboardNavigation.getEntryFocusable,\n keyboardNavigation.rememberedFocusRef,\n overflowedIdsKey,\n targetWindow,\n ]);\n\n useEffect(() => {\n if (process.env.NODE_ENV !== \"production\") {\n if (mode === \"invalid\" && !invalidCompositionWarnedRef.current) {\n console.warn(\n \"ToolbarNext children must be authored in one composition model: either TooltrayNext/Divider children directly in ToolbarNext, or ToolbarContentNext children containing TooltrayNext/Divider items.\",\n );\n invalidCompositionWarnedRef.current = true;\n }\n\n if (mode !== \"invalid\") {\n invalidCompositionWarnedRef.current = false;\n }\n }\n }, [mode]);\n\n return (\n <div\n className={clsx(\n withBaseName(),\n {\n [withBaseName(\"fallback\")]: mode === \"invalid\",\n [withBaseName(\"layout\")]: mode !== \"invalid\",\n },\n withBaseName(variant),\n withBaseName(appearance),\n className,\n )}\n {...rest}\n data-centered={mode !== \"invalid\" && hasCenteredLayout ? \"\" : undefined}\n data-mode={mode}\n {...{ [TOOLBAR_NEXT_SCOPE_ROOT_ATTR]: \"main\" }}\n ref={handleRef}\n onBlurCapture={(event) => {\n keyboardNavigation.handleBlurCapture(event);\n onBlurCapture?.(event);\n }}\n onFocusCapture={(event) => {\n keyboardNavigation.handleFocusCapture(event);\n onFocusCapture?.(event);\n }}\n onKeyDownCapture={(event) => {\n keyboardNavigation.handleKeyDownCapture(event);\n onKeyDownCapture?.(event);\n }}\n onPointerDownCapture={(event) => {\n keyboardNavigation.handlePointerDownCapture(event);\n onPointerDownCapture?.(event);\n }}\n role=\"toolbar\"\n aria-orientation=\"horizontal\"\n >\n {mode === \"invalid\" ? (\n children\n ) : (\n <ToolbarNextOverflowFloatingBoundaryProvider>\n <ToolbarNextOverflowOwners\n hostNodes={itemOwnerHostNodes}\n items={allItems}\n />\n <div aria-hidden className={withBaseName(\"measurements\")}>\n {overflowTriggerGroups\n .filter((group) => !group.named)\n .map((group) => (\n <Button\n appearance=\"transparent\"\n className={withBaseName(\"measureTrigger\")}\n key={group.id}\n ref={getTriggerMeasureRef(group.key)}\n sentiment=\"neutral\"\n tabIndex={-1}\n >\n <ToolbarNextOverflowTriggerContent\n label={group.label}\n named={group.named}\n />\n </Button>\n ))}\n {namedTriggerMeasureItems.map((item) => {\n const group = overflowTriggerGroupByKey.get(\n item.overflowGroupKey,\n );\n\n if (!group) {\n return null;\n }\n\n return (\n <div\n className={withOverflowBaseName(\"slot\")}\n key={`measure-${item.id}`}\n ref={getNamedTriggerMeasureRef(item.id)}\n >\n {cloneMeasureDecorations(\n item.id,\n \"leading\",\n item.leadingDecorations,\n )}\n <div className={withOverflowBaseName(\"item\")}>\n <Button\n appearance=\"transparent\"\n className={withOverflowBaseName(\"trigger\")}\n sentiment=\"neutral\"\n tabIndex={-1}\n >\n <ToolbarNextOverflowTriggerContent\n label={group.label}\n named={group.named}\n />\n </Button>\n </div>\n </div>\n );\n })}\n {overflowedMeasurementItems.map((item) => (\n <div\n className={withOverflowBaseName(\"slot\")}\n key={`measure-item-${item.id}`}\n ref={getItemRef(item.id)}\n >\n {cloneMeasureDecorations(\n item.id,\n \"leading\",\n item.leadingDecorations,\n )}\n <div className={withOverflowBaseName(\"item\")}>\n <div\n className={withOverflowBaseName(\"itemHost\")}\n ref={getItemHostRef(item.id, \"measurement\")}\n />\n </div>\n {cloneMeasureDecorations(\n item.id,\n \"trailing\",\n item.trailingDecorations,\n )}\n </div>\n ))}\n </div>\n {bandPositions.map((position) => {\n const bandContent = bandsByPosition[position];\n const shouldRenderBand = hasCenteredLayout\n ? true\n : position === \"end\"\n ? bandContent.length > 0 || sharedOverflowGroups.length > 0\n : bandContent.length > 0;\n\n if (!shouldRenderBand) {\n return null;\n }\n\n return (\n <div\n className={withBaseName(\"band\")}\n data-band-position={position}\n key={position}\n ref={getBandRef(position)}\n >\n {bandContent.map((contentArea) => (\n <ToolbarNextOverflowContent\n focusMemoryRef={keyboardNavigation.rememberedFocusRef}\n getItemHostRef={getItemHostRef}\n getItemRef={getItemRef}\n getNamedTriggerRef={getNamedTriggerRef}\n getContentRef={getContentRef}\n key={contentArea.key}\n onItemFocus={keyboardNavigation.rememberItemFocus}\n overflowGroups={namedOverflowGroups.filter(\n (group) => group.contentKey === contentArea.key,\n )}\n overflowedIds={overflowedIds}\n content={contentArea}\n />\n ))}\n {position === \"end\"\n ? sharedOverflowGroups.map((group) => (\n <ToolbarNextOverflowMenu\n focusMemoryRef={keyboardNavigation.rememberedFocusRef}\n getItemHostRef={getItemHostRef}\n group={group}\n key={group.id}\n onItemFocus={keyboardNavigation.rememberItemFocus}\n />\n ))\n : null}\n </div>\n );\n })}\n </ToolbarNextOverflowFloatingBoundaryProvider>\n )}\n </div>\n );\n },\n);\n"],"names":["ToolbarNext","toolbarNextCss"],"mappings":";;;;;;;;;;;;;;AAgDA,MAAM,YAAA,GAAe,aAAa,iBAAiB,CAAA;AACnD,MAAM,oBAAA,GAAuB,aAAa,yBAAyB,CAAA;AACnE,MAAM,aAAA,GAA8C,CAAC,OAAA,EAAS,QAAA,EAAU,KAAK,CAAA;AAM7E,SAAS,uBAAA,CACP,MAAA,EACA,IAAA,EACA,WAAA,EACA;AACA,EAAA,OAAO,WAAA,CAAY,GAAA,CAAI,CAAC,UAAA,EAAY,KAAA,KAAU;AAC5C,IAAA,OAAO,aAAa,UAAA,EAAY;AAAA,MAC9B,GAAA,EAAK,CAAA,EAAG,MAAM,CAAA,CAAA,EAAI,IAAI,gBAAgB,MAAA,CAAO,UAAA,CAAW,GAAA,IAAO,KAAK,CAAC,CAAA;AAAA,KACtE,CAAA;AAAA,EACH,CAAC,CAAA;AACH;AAEO,MAAM,WAAA,GAAc,UAAA;AAAA,EACzB,SAASA,YAAAA,CACP;AAAA,IACE,QAAA;AAAA,IACA,SAAA;AAAA,IACA,aAAA;AAAA,IACA,cAAA;AAAA,IACA,gBAAA;AAAA,IACA,oBAAA;AAAA,IACA,UAAA,GAAa,UAAA;AAAA,IACb,OAAA,GAAU,SAAA;AAAA,IACV,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,MAAM,eAAe,SAAA,EAAU;AAC/B,IAAA,wBAAA,CAAyB;AAAA,MACvB,MAAA,EAAQ,mBAAA;AAAA,MACR,GAAA,EAAKC,QAAA;AAAA,MACL,MAAA,EAAQ;AAAA,KACT,CAAA;AAED,IAAA,MAAM,EAAE,IAAA,EAAM,OAAA,EAAQ,GAAI,yBAAyB,QAAQ,CAAA;AAC3D,IAAA,MAAM,eAAA,GAAkB,OAAA;AAAA,MACtB,MAAM,wBAAA,CAAyB,QAAQ,CAAA,CAAE,OAAA;AAAA,MACzC,CAAC,QAAQ;AAAA,KACX;AAEA,IAAA,MAAM,QAAA,GAAW,OAAA;AAAA,MACf,MAAM,OAAA,CAAQ,OAAA,CAAQ,CAAC,WAAA,KAAgB,YAAY,KAAK,CAAA;AAAA,MACxD,CAAC,OAAO;AAAA,KACV;AAEA,IAAA,MAAM;AAAA,MACJ,YAAA;AAAA,MACA,UAAA;AAAA,MACA,UAAA;AAAA,MACA,yBAAA;AAAA,MACA,kBAAA;AAAA,MACA,aAAA;AAAA,MACA,oBAAA;AAAA,MACA,cAAA;AAAA,MACA,qBAAA;AAAA,MACA;AAAA,KACF,GAAI,sBAAA,CAAuB,EAAE,OAAA,EAAS,iBAAiB,CAAA;AAEvD,IAAA,MAAM,SAAA,GAAY,UAAA,CAAW,GAAA,EAAK,YAAY,CAAA;AAC9C,IAAA,MAAM,2BAAA,GAA8B,OAAO,KAAK,CAAA;AAChD,IAAA,MAAM,oBAAA,GAAuB,MAAA;AAAA,0BACvB,GAAA;AAAmD,KACzD;AACA,IAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAI,QAAA,CAExC,EAAE,CAAA;AAEJ,IAAA,MAAM,oBAAA,GAAuB,OAAA;AAAA,MAC3B,MAAM,cAAA,CAAe,MAAA,CAAO,CAAC,KAAA,KAAU,CAAC,MAAM,KAAK,CAAA;AAAA,MACnD,CAAC,cAAc;AAAA,KACjB;AAEA,IAAA,MAAM,mBAAA,GAAsB,OAAA;AAAA,MAC1B,MAAM,cAAA,CAAe,MAAA,CAAO,CAAC,KAAA,KAAU,MAAM,KAAK,CAAA;AAAA,MAClD,CAAC,cAAc;AAAA,KACjB;AAEA,IAAA,MAAM,yBAAA,GAA4B,OAAA;AAAA,MAChC,MACE,IAAI,GAAA;AAAA,QACF,qBAAA,CAAsB,IAAI,CAAC,KAAA,KAAU,CAAC,KAAA,CAAM,GAAA,EAAK,KAAK,CAAU;AAAA,OAClE;AAAA,MACF,CAAC,qBAAqB;AAAA,KACxB;AAEA,IAAA,MAAM,wBAAA,GAA2B,OAAA;AAAA,MAC/B,MACE,QAAA,CAAS,MAAA,CAAO,CAAC,IAAA,KAAS;AACxB,QAAA,OACE,IAAA,CAAK,YAAA,KAAiB,MAAA,IAAU,IAAA,CAAK,aAAA,KAAkB,QAAA;AAAA,MAE3D,CAAC,CAAA;AAAA,MACH,CAAC,QAAQ;AAAA,KACX;AAEA,IAAA,MAAM,eAAA,GAAkB,QAAQ,MAAM;AACpC,MAAA,OAAO,aAAA,CAAc,MAAA;AAAA,QAGnB,CAAC,OAAO,QAAA,KAAa;AACnB,UAAA,KAAA,CAAM,QAAQ,IAAI,OAAA,CAAQ,MAAA;AAAA,YACxB,CAAC,WAAA,KAAgB,WAAA,CAAY,QAAA,KAAa;AAAA,WAC5C;AACA,UAAA,OAAO,KAAA;AAAA,QACT,CAAA;AAAA,QACA;AAAA,UACE,OAAO,EAAC;AAAA,UACR,QAAQ,EAAC;AAAA,UACT,KAAK;AAAC;AACR,OACF;AAAA,IACF,CAAA,EAAG,CAAC,OAAO,CAAC,CAAA;AACZ,IAAA,MAAM,iBAAA,GAAoB,eAAA,CAAgB,MAAA,CAAO,MAAA,GAAS,CAAA;AAC1D,IAAA,MAAM,qBAAqB,gCAAA,CAAiC;AAAA,MAC1D,KAAA,EAAO,QAAA;AAAA,MACP,aAAA;AAAA,MACA,QAAA,EAAU;AAAA,KACX,CAAA;AACD,IAAA,MAAM,gBAAA,GAAmB,OAAA;AAAA,MACvB,MAAM,MAAM,IAAA,CAAK,aAAa,EAAE,IAAA,EAAK,CAAE,KAAK,IAAI,CAAA;AAAA,MAChD,CAAC,aAAa;AAAA,KAChB;AACA,IAAA,MAAM,2BAAA,GAA8B,OAAO,gBAAgB,CAAA;AAE3D,IAAA,MAAM,cAAA,GAAiB,WAAA;AAAA,MACrB,CAAC,IAAY,IAAA,KAAkC;AAC7C,QAAA,MAAM,WAAA,GAAc,CAAA,EAAG,EAAE,CAAA,CAAA,EAAI,IAAI,CAAA,CAAA;AACjC,QAAA,MAAM,QAAA,GAAW,oBAAA,CAAqB,OAAA,CAAQ,GAAA,CAAI,WAAW,CAAA;AAE7D,QAAA,IAAI,QAAA,EAAU;AACZ,UAAA,OAAO,QAAA;AAAA,QACT;AAEA,QAAA,MAAM,QAAA,GAAW,CAAC,IAAA,KAAgC;AAChD,UAAA,gBAAA,CAAiB,CAAC,QAAA,KAAa;AA9LzC,YAAA,IAAA,EAAA;AA+LY,YAAA,IAAA,CAAA,CAAI,EAAA,GAAA,QAAA,CAAS,EAAE,CAAA,KAAX,IAAA,GAAA,MAAA,GAAA,EAAA,CAAe,WAAU,IAAA,EAAM;AACjC,cAAA,OAAO,QAAA;AAAA,YACT;AAEA,YAAA,OAAO;AAAA,cACL,GAAG,QAAA;AAAA,cACH,CAAC,EAAE,GAAG;AAAA,gBACJ,GAAG,SAAS,EAAE,CAAA;AAAA,gBACd,CAAC,IAAI,GAAG;AAAA;AACV,aACF;AAAA,UACF,CAAC,CAAA;AAAA,QACH,CAAA;AAEA,QAAA,oBAAA,CAAqB,OAAA,CAAQ,GAAA,CAAI,WAAA,EAAa,QAAQ,CAAA;AACtD,QAAA,OAAO,QAAA;AAAA,MACT,CAAA;AAAA,MACA;AAAC,KACH;AAEA,IAAA,MAAM,kBAAA,GAAqB,QAAQ,MAAM;AACvC,MAAA,OAAO,QAAA,CAAS,MAAA;AAAA,QACd,CAAC,OAAO,IAAA,KAAS;AACf,UAAA,MAAM,KAAA,GAAQ,aAAA,CAAc,IAAA,CAAK,EAAE,CAAA;AAEnC,UAAA,KAAA,CAAM,IAAA,CAAK,EAAE,CAAA,GAAA,CACX,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO,cAAY,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO,IAAA,CAAA,KAAQ,+BAAO,WAAA,CAAA,IAAe,IAAA;AAC1D,UAAA,OAAO,KAAA;AAAA,QACT,CAAA;AAAA,QACA;AAAC,OACH;AAAA,IACF,CAAA,EAAG,CAAC,QAAA,EAAU,aAAa,CAAC,CAAA;AAE5B,IAAA,MAAM,0BAAA,GAA6B,QAAQ,MAAM;AAC/C,MAAA,OAAO,QAAA,CAAS,MAAA,CAAO,CAAC,IAAA,KAAS;AAjOvC,QAAA,IAAA,EAAA;AAkOQ,QAAA,OAAO,aAAA,CAAc,GAAA,CAAI,IAAA,CAAK,EAAE,CAAA,IAAK,GAAC,EAAA,GAAA,aAAA,CAAc,IAAA,CAAK,EAAE,CAAA,KAArB,IAAA,GAAA,MAAA,GAAA,EAAA,CAAwB,QAAA,CAAA;AAAA,MAChE,CAAC,CAAA;AAAA,IACH,CAAA,EAAG,CAAC,QAAA,EAAU,aAAA,EAAe,aAAa,CAAC,CAAA;AAE3C,IAAA,yBAAA,CAA0B,MAAM;AAC9B,MAAA,MAAM,eAAA,GACJ,4BAA4B,OAAA,KAAY,gBAAA;AAC1C,MAAA,2BAAA,CAA4B,OAAA,GAAU,gBAAA;AAEtC,MAAA,IAAI,CAAC,eAAA,EAAiB;AACpB,QAAA;AAAA,MACF;AAEA,MAAA,MAAM,MAAM,YAAA,IAAA,IAAA,GAAA,MAAA,GAAA,YAAA,CAAc,QAAA;AAC1B,MAAA,MAAM,eAAA,GAAkB,mBAAmB,kBAAA,CAAmB,OAAA;AAE9D,MAAA,IAAI,CAAC,GAAA,IAAO,CAAC,eAAA,EAAiB;AAC5B,QAAA;AAAA,MACF;AAEA,MAAA,MAAM,gBAAgB,GAAA,CAAI,aAAA;AAC1B,MAAA,MAAM,YAAA,GACJ,CAAC,aAAA,IACD,aAAA,KAAkB,GAAA,CAAI,QACtB,aAAA,KAAkB,GAAA,CAAI,eAAA,IACtB,CAAC,aAAA,CAAc,WAAA;AACjB,MAAA,MAAM,MAAA,GAAS,mBAAmB,iBAAA,EAAkB;AAEpD,MAAA,IAAI,CAAC,YAAA,EAAc;AACjB,QAAA;AAAA,MACF;AAEA,MAAA,IAAI,CAAC,MAAA,EAAQ;AACX,QAAA;AAAA,MACF;AAEA,MAAA,MAAM,cAAc,MAAM;AACxB,QAAA,IAAI,OAAO,WAAA,EAAa;AACtB,UAAA,MAAA,CAAO,KAAA,CAAM,EAAE,aAAA,EAAe,IAAA,EAAM,CAAA;AAAA,QACtC;AAAA,MACF,CAAA;AAEA,MAAA,IAAI,6CAAc,qBAAA,EAAuB;AACvC,QAAA,MAAM,KAAA,GAAQ,YAAA,CAAa,qBAAA,CAAsB,WAAW,CAAA;AAE5D,QAAA,OAAO,MAAM;AACX,UAAA,YAAA,CAAa,qBAAqB,KAAK,CAAA;AAAA,QACzC,CAAA;AAAA,MACF;AAEA,MAAA,cAAA,CAAe,WAAW,CAAA;AAAA,IAC5B,CAAA,EAAG;AAAA,MACD,kBAAA,CAAmB,iBAAA;AAAA,MACnB,kBAAA,CAAmB,kBAAA;AAAA,MACnB,gBAAA;AAAA,MACA;AAAA,KACD,CAAA;AAED,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,QAAA,KAAa,YAAA,EAAc;AACzC,QAAA,IAAI,IAAA,KAAS,SAAA,IAAa,CAAC,2BAAA,CAA4B,OAAA,EAAS;AAC9D,UAAA,OAAA,CAAQ,IAAA;AAAA,YACN;AAAA,WACF;AACA,UAAA,2BAAA,CAA4B,OAAA,GAAU,IAAA;AAAA,QACxC;AAEA,QAAA,IAAI,SAAS,SAAA,EAAW;AACtB,UAAA,2BAAA,CAA4B,OAAA,GAAU,KAAA;AAAA,QACxC;AAAA,MACF;AAAA,IACF,CAAA,EAAG,CAAC,IAAI,CAAC,CAAA;AAET,IAAA,uBACE,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,IAAA;AAAA,UACT,YAAA,EAAa;AAAA,UACb;AAAA,YACE,CAAC,YAAA,CAAa,UAAU,CAAC,GAAG,IAAA,KAAS,SAAA;AAAA,YACrC,CAAC,YAAA,CAAa,QAAQ,CAAC,GAAG,IAAA,KAAS;AAAA,WACrC;AAAA,UACA,aAAa,OAAO,CAAA;AAAA,UACpB,aAAa,UAAU,CAAA;AAAA,UACvB;AAAA,SACF;AAAA,QACC,GAAG,IAAA;AAAA,QACJ,eAAA,EAAe,IAAA,KAAS,SAAA,IAAa,iBAAA,GAAoB,EAAA,GAAK,MAAA;AAAA,QAC9D,WAAA,EAAW,IAAA;AAAA,QACV,GAAG,EAAE,CAAC,4BAA4B,GAAG,MAAA,EAAO;AAAA,QAC7C,GAAA,EAAK,SAAA;AAAA,QACL,aAAA,EAAe,CAAC,KAAA,KAAU;AACxB,UAAA,kBAAA,CAAmB,kBAAkB,KAAK,CAAA;AAC1C,UAAA,aAAA,IAAA,IAAA,GAAA,MAAA,GAAA,aAAA,CAAgB,KAAA,CAAA;AAAA,QAClB,CAAA;AAAA,QACA,cAAA,EAAgB,CAAC,KAAA,KAAU;AACzB,UAAA,kBAAA,CAAmB,mBAAmB,KAAK,CAAA;AAC3C,UAAA,cAAA,IAAA,IAAA,GAAA,MAAA,GAAA,cAAA,CAAiB,KAAA,CAAA;AAAA,QACnB,CAAA;AAAA,QACA,gBAAA,EAAkB,CAAC,KAAA,KAAU;AAC3B,UAAA,kBAAA,CAAmB,qBAAqB,KAAK,CAAA;AAC7C,UAAA,gBAAA,IAAA,IAAA,GAAA,MAAA,GAAA,gBAAA,CAAmB,KAAA,CAAA;AAAA,QACrB,CAAA;AAAA,QACA,oBAAA,EAAsB,CAAC,KAAA,KAAU;AAC/B,UAAA,kBAAA,CAAmB,yBAAyB,KAAK,CAAA;AACjD,UAAA,oBAAA,IAAA,IAAA,GAAA,MAAA,GAAA,oBAAA,CAAuB,KAAA,CAAA;AAAA,QACzB,CAAA;AAAA,QACA,IAAA,EAAK,SAAA;AAAA,QACL,kBAAA,EAAiB,YAAA;AAAA,QAEhB,QAAA,EAAA,IAAA,KAAS,SAAA,GACR,QAAA,mBAEA,IAAA,CAAC,2CAAA,EAAA,EACC,QAAA,EAAA;AAAA,0BAAA,GAAA;AAAA,YAAC,yBAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,kBAAA;AAAA,cACX,KAAA,EAAO;AAAA;AAAA,WACT;AAAA,+BACC,KAAA,EAAA,EAAI,aAAA,EAAW,MAAC,SAAA,EAAW,YAAA,CAAa,cAAc,CAAA,EACpD,QAAA,EAAA;AAAA,YAAA,qBAAA,CACE,MAAA,CAAO,CAAC,KAAA,KAAU,CAAC,MAAM,KAAK,CAAA,CAC9B,GAAA,CAAI,CAAC,KAAA,qBACJ,GAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,UAAA,EAAW,aAAA;AAAA,gBACX,SAAA,EAAW,aAAa,gBAAgB,CAAA;AAAA,gBAExC,GAAA,EAAK,oBAAA,CAAqB,KAAA,CAAM,GAAG,CAAA;AAAA,gBACnC,SAAA,EAAU,SAAA;AAAA,gBACV,QAAA,EAAU,EAAA;AAAA,gBAEV,QAAA,kBAAA,GAAA;AAAA,kBAAC,iCAAA;AAAA,kBAAA;AAAA,oBACC,OAAO,KAAA,CAAM,KAAA;AAAA,oBACb,OAAO,KAAA,CAAM;AAAA;AAAA;AACf,eAAA;AAAA,cARK,KAAA,CAAM;AAAA,aAUd,CAAA;AAAA,YACF,wBAAA,CAAyB,GAAA,CAAI,CAAC,IAAA,KAAS;AACtC,cAAA,MAAM,QAAQ,yBAAA,CAA0B,GAAA;AAAA,gBACtC,IAAA,CAAK;AAAA,eACP;AAEA,cAAA,IAAI,CAAC,KAAA,EAAO;AACV,gBAAA,OAAO,IAAA;AAAA,cACT;AAEA,cAAA,uBACE,IAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAW,qBAAqB,MAAM,CAAA;AAAA,kBAEtC,GAAA,EAAK,yBAAA,CAA0B,IAAA,CAAK,EAAE,CAAA;AAAA,kBAErC,QAAA,EAAA;AAAA,oBAAA,uBAAA;AAAA,sBACC,IAAA,CAAK,EAAA;AAAA,sBACL,SAAA;AAAA,sBACA,IAAA,CAAK;AAAA,qBACP;AAAA,oCACA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,oBAAA,CAAqB,MAAM,CAAA,EACzC,QAAA,kBAAA,GAAA;AAAA,sBAAC,MAAA;AAAA,sBAAA;AAAA,wBACC,UAAA,EAAW,aAAA;AAAA,wBACX,SAAA,EAAW,qBAAqB,SAAS,CAAA;AAAA,wBACzC,SAAA,EAAU,SAAA;AAAA,wBACV,QAAA,EAAU,EAAA;AAAA,wBAEV,QAAA,kBAAA,GAAA;AAAA,0BAAC,iCAAA;AAAA,0BAAA;AAAA,4BACC,OAAO,KAAA,CAAM,KAAA;AAAA,4BACb,OAAO,KAAA,CAAM;AAAA;AAAA;AACf;AAAA,qBACF,EACF;AAAA;AAAA,iBAAA;AAAA,gBApBK,CAAA,QAAA,EAAW,KAAK,EAAE,CAAA;AAAA,eAqBzB;AAAA,YAEJ,CAAC,CAAA;AAAA,YACA,0BAAA,CAA2B,GAAA,CAAI,CAAC,IAAA,qBAC/B,IAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAW,qBAAqB,MAAM,CAAA;AAAA,gBAEtC,GAAA,EAAK,UAAA,CAAW,IAAA,CAAK,EAAE,CAAA;AAAA,gBAEtB,QAAA,EAAA;AAAA,kBAAA,uBAAA;AAAA,oBACC,IAAA,CAAK,EAAA;AAAA,oBACL,SAAA;AAAA,oBACA,IAAA,CAAK;AAAA,mBACP;AAAA,kCACA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,oBAAA,CAAqB,MAAM,CAAA,EACzC,QAAA,kBAAA,GAAA;AAAA,oBAAC,KAAA;AAAA,oBAAA;AAAA,sBACC,SAAA,EAAW,qBAAqB,UAAU,CAAA;AAAA,sBAC1C,GAAA,EAAK,cAAA,CAAe,IAAA,CAAK,EAAA,EAAI,aAAa;AAAA;AAAA,mBAC5C,EACF,CAAA;AAAA,kBACC,uBAAA;AAAA,oBACC,IAAA,CAAK,EAAA;AAAA,oBACL,UAAA;AAAA,oBACA,IAAA,CAAK;AAAA;AACP;AAAA,eAAA;AAAA,cAlBK,CAAA,aAAA,EAAgB,KAAK,EAAE,CAAA;AAAA,aAoB/B;AAAA,WAAA,EACH,CAAA;AAAA,UACC,aAAA,CAAc,GAAA,CAAI,CAAC,QAAA,KAAa;AAC/B,YAAA,MAAM,WAAA,GAAc,gBAAgB,QAAQ,CAAA;AAC5C,YAAA,MAAM,gBAAA,GAAmB,iBAAA,GACrB,IAAA,GACA,QAAA,KAAa,KAAA,GACX,WAAA,CAAY,MAAA,GAAS,CAAA,IAAK,oBAAA,CAAqB,MAAA,GAAS,CAAA,GACxD,WAAA,CAAY,MAAA,GAAS,CAAA;AAE3B,YAAA,IAAI,CAAC,gBAAA,EAAkB;AACrB,cAAA,OAAO,IAAA;AAAA,YACT;AAEA,YAAA,uBACE,IAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAW,aAAa,MAAM,CAAA;AAAA,gBAC9B,oBAAA,EAAoB,QAAA;AAAA,gBAEpB,GAAA,EAAK,WAAW,QAAQ,CAAA;AAAA,gBAEvB,QAAA,EAAA;AAAA,kBAAA,WAAA,CAAY,GAAA,CAAI,CAAC,WAAA,qBAChB,GAAA;AAAA,oBAAC,0BAAA;AAAA,oBAAA;AAAA,sBACC,gBAAgB,kBAAA,CAAmB,kBAAA;AAAA,sBACnC,cAAA;AAAA,sBACA,UAAA;AAAA,sBACA,kBAAA;AAAA,sBACA,aAAA;AAAA,sBAEA,aAAa,kBAAA,CAAmB,iBAAA;AAAA,sBAChC,gBAAgB,mBAAA,CAAoB,MAAA;AAAA,wBAClC,CAAC,KAAA,KAAU,KAAA,CAAM,UAAA,KAAe,WAAA,CAAY;AAAA,uBAC9C;AAAA,sBACA,aAAA;AAAA,sBACA,OAAA,EAAS;AAAA,qBAAA;AAAA,oBANJ,WAAA,CAAY;AAAA,mBAQpB,CAAA;AAAA,kBACA,QAAA,KAAa,KAAA,GACV,oBAAA,CAAqB,GAAA,CAAI,CAAC,KAAA,qBACxB,GAAA;AAAA,oBAAC,uBAAA;AAAA,oBAAA;AAAA,sBACC,gBAAgB,kBAAA,CAAmB,kBAAA;AAAA,sBACnC,cAAA;AAAA,sBACA,KAAA;AAAA,sBAEA,aAAa,kBAAA,CAAmB;AAAA,qBAAA;AAAA,oBAD3B,KAAA,CAAM;AAAA,mBAGd,CAAA,GACD;AAAA;AAAA,eAAA;AAAA,cA7BC;AAAA,aA8BP;AAAA,UAEJ,CAAC;AAAA,SAAA,EACH;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF;;;;"}
@@ -1,4 +0,0 @@
1
- var css_248z = ".saltToolbarNextOverflow-content {\n position: relative;\n}\n\n.saltToolbarNextOverflow-slot,\n.saltToolbarNextOverflow-panelItem {\n align-items: center;\n display: flex;\n flex-shrink: 0;\n gap: var(--salt-spacing-100);\n min-width: 0;\n}\n\n.saltToolbarNextOverflow-slot[data-align=\"end\"] {\n margin-inline-start: auto;\n}\n\n.saltToolbarNextOverflow-slot[data-align=\"center\"] {\n margin-inline-start: auto;\n margin-inline-end: auto;\n}\n\n.saltToolbarNextOverflow-item {\n align-items: center;\n display: flex;\n flex-shrink: 0;\n min-width: 0;\n}\n\n.saltToolbarNextOverflow-menu {\n display: flex;\n flex-shrink: 0;\n}\n\n.saltToolbarNextOverflow-itemHost,\n.saltToolbarNextOverflow-contentHost {\n display: contents;\n}\n\n.saltToolbarNextOverflow-trigger {\n white-space: nowrap;\n}\n\n.saltToolbarNextOverflow-panel {\n background: var(--salt-container-primary-background);\n border: var(--salt-size-fixed-100) var(--salt-borderStyle-solid) var(--salt-selectable-borderColor-selected);\n border-radius: var(--salt-palette-corner, 0);\n box-shadow: var(--salt-overlayable-shadow-popout);\n box-sizing: border-box;\n max-width: min(32rem, calc(100vw - var(--salt-spacing-300)));\n overflow: auto;\n position: absolute;\n z-index: var(--salt-zIndex-flyover);\n}\n\n/* TODO: improve this as brittle */\n.saltToolbarNextOverflow-floatingDescendant.saltToolbarNextOverflow-floatingDescendant {\n z-index: calc(var(--salt-zIndex-flyover) + var(--salt-zIndex-default));\n}\n\n.saltToolbarNextOverflow-panelContent {\n align-items: center;\n display: flex;\n flex-wrap: wrap;\n gap: var(--salt-spacing-100);\n max-width: inherit;\n min-width: max-content;\n padding: var(--salt-spacing-100);\n}\n\n.saltToolbarNextOverflow-panel .saltTooltrayNext[data-align=\"center\"],\n.saltToolbarNextOverflow-panel .saltTooltrayNext[data-align=\"end\"] {\n margin-inline-start: 0;\n margin-inline-end: 0;\n}\n\n.saltToolbarNextOverflow-panel .saltTooltrayNext > * {\n inline-size: auto;\n}\n\n.saltToolbarNextOverflow-content > .saltToolbarNextOverflow-slot .saltTooltrayNext[data-align=\"center\"],\n.saltToolbarNextOverflow-content > .saltToolbarNextOverflow-slot .saltTooltrayNext[data-align=\"end\"] {\n margin-inline-start: 0;\n margin-inline-end: 0;\n}\n";
2
-
3
- export { css_248z as default };
4
- //# sourceMappingURL=ToolbarNextOverflow.css.js.map