@fluentui/react-tree 9.15.16 → 9.16.1

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 (119) hide show
  1. package/CHANGELOG.md +46 -2
  2. package/dist/index.d.ts +9 -8
  3. package/lib/components/FlatTree/useFlatControllableCheckedItems.js.map +1 -1
  4. package/lib/components/FlatTree/useFlatTree.js.map +1 -1
  5. package/lib/components/FlatTree/useFlatTreeContextValues.js +16 -5
  6. package/lib/components/FlatTree/useFlatTreeContextValues.js.map +1 -1
  7. package/lib/components/FlatTree/useFlatTreeStyles.styles.js +1 -0
  8. package/lib/components/FlatTree/useFlatTreeStyles.styles.js.map +1 -1
  9. package/lib/components/FlatTree/useFlatTreeStyles.styles.raw.js +1 -0
  10. package/lib/components/FlatTree/useFlatTreeStyles.styles.raw.js.map +1 -1
  11. package/lib/components/FlatTree/useHeadlessFlatTree.js.map +1 -1
  12. package/lib/components/FlatTreeItem/FlatTreeItem.js.map +1 -1
  13. package/lib/components/Tree/Tree.types.js.map +1 -1
  14. package/lib/components/Tree/useNestedControllableCheckedItems.js.map +1 -1
  15. package/lib/components/Tree/useTreeContextValues.js +16 -5
  16. package/lib/components/Tree/useTreeContextValues.js.map +1 -1
  17. package/lib/components/Tree/useTreeStyles.styles.js +1 -0
  18. package/lib/components/Tree/useTreeStyles.styles.js.map +1 -1
  19. package/lib/components/Tree/useTreeStyles.styles.raw.js +1 -0
  20. package/lib/components/Tree/useTreeStyles.styles.raw.js.map +1 -1
  21. package/lib/components/TreeItem/TreeItem.types.js +3 -1
  22. package/lib/components/TreeItem/TreeItem.types.js.map +1 -1
  23. package/lib/components/TreeItem/useTreeItemContextValues.js +17 -5
  24. package/lib/components/TreeItem/useTreeItemContextValues.js.map +1 -1
  25. package/lib/components/TreeItem/useTreeItemStyles.styles.js +12 -0
  26. package/lib/components/TreeItem/useTreeItemStyles.styles.js.map +1 -1
  27. package/lib/components/TreeItem/useTreeItemStyles.styles.raw.js +12 -0
  28. package/lib/components/TreeItem/useTreeItemStyles.styles.raw.js.map +1 -1
  29. package/lib/components/TreeItemLayout/TreeItemLayout.types.js.map +1 -1
  30. package/lib/components/TreeItemLayout/useTreeItemLayout.js +2 -0
  31. package/lib/components/TreeItemLayout/useTreeItemLayout.js.map +1 -1
  32. package/lib/components/TreeItemLayout/useTreeItemLayoutStyles.styles.js +8 -0
  33. package/lib/components/TreeItemLayout/useTreeItemLayoutStyles.styles.js.map +1 -1
  34. package/lib/components/TreeItemLayout/useTreeItemLayoutStyles.styles.raw.js +8 -0
  35. package/lib/components/TreeItemLayout/useTreeItemLayoutStyles.styles.raw.js.map +1 -1
  36. package/lib/components/TreeItemPersonaLayout/TreeItemPersonaLayout.types.js.map +1 -1
  37. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js +0 -1
  38. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js.map +1 -1
  39. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.styles.js +8 -0
  40. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.styles.js.map +1 -1
  41. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.styles.raw.js +8 -0
  42. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.styles.raw.js.map +1 -1
  43. package/lib/components/TreeProvider.js.map +1 -1
  44. package/lib/contexts/treeContext.js.map +1 -1
  45. package/lib/contexts/treeItemContext.js.map +1 -1
  46. package/lib/hooks/useControllableOpenItems.js.map +1 -1
  47. package/lib/hooks/useFlatTreeNavigation.js.map +1 -1
  48. package/lib/hooks/useHTMLElementWalkerRef.js.map +1 -1
  49. package/lib/hooks/useRootTree.js.map +1 -1
  50. package/lib/hooks/useRovingTabIndexes.js +2 -0
  51. package/lib/hooks/useRovingTabIndexes.js.map +1 -1
  52. package/lib/hooks/useSubtree.js +0 -1
  53. package/lib/hooks/useSubtree.js.map +1 -1
  54. package/lib/hooks/useTreeNavigation.js.map +1 -1
  55. package/lib/utils/assert.js +0 -1
  56. package/lib/utils/assert.js.map +1 -1
  57. package/lib/utils/createHeadlessTree.js.map +1 -1
  58. package/lib/utils/flattenTree.js.map +1 -1
  59. package/lib/utils/nextTypeAheadElement.js.map +1 -1
  60. package/lib/utils/tokens.js.map +1 -1
  61. package/lib-commonjs/components/FlatTree/useFlatControllableCheckedItems.js.map +1 -1
  62. package/lib-commonjs/components/FlatTree/useFlatTree.js.map +1 -1
  63. package/lib-commonjs/components/FlatTree/useFlatTreeContextValues.js +17 -5
  64. package/lib-commonjs/components/FlatTree/useFlatTreeContextValues.js.map +1 -1
  65. package/lib-commonjs/components/FlatTree/useFlatTreeStyles.styles.js +1 -0
  66. package/lib-commonjs/components/FlatTree/useFlatTreeStyles.styles.js.map +1 -1
  67. package/lib-commonjs/components/FlatTree/useFlatTreeStyles.styles.raw.js +1 -0
  68. package/lib-commonjs/components/FlatTree/useFlatTreeStyles.styles.raw.js.map +1 -1
  69. package/lib-commonjs/components/FlatTree/useHeadlessFlatTree.js.map +1 -1
  70. package/lib-commonjs/components/FlatTreeItem/FlatTreeItem.js.map +1 -1
  71. package/lib-commonjs/components/Tree/Tree.types.js.map +1 -1
  72. package/lib-commonjs/components/Tree/useNestedControllableCheckedItems.js.map +1 -1
  73. package/lib-commonjs/components/Tree/useTreeContextValues.js +16 -5
  74. package/lib-commonjs/components/Tree/useTreeContextValues.js.map +1 -1
  75. package/lib-commonjs/components/Tree/useTreeStyles.styles.js +1 -0
  76. package/lib-commonjs/components/Tree/useTreeStyles.styles.js.map +1 -1
  77. package/lib-commonjs/components/Tree/useTreeStyles.styles.raw.js +1 -0
  78. package/lib-commonjs/components/Tree/useTreeStyles.styles.raw.js.map +1 -1
  79. package/lib-commonjs/components/TreeItem/TreeItem.types.js +3 -3
  80. package/lib-commonjs/components/TreeItem/TreeItem.types.js.map +1 -1
  81. package/lib-commonjs/components/TreeItem/useTreeItemContextValues.js +18 -5
  82. package/lib-commonjs/components/TreeItem/useTreeItemContextValues.js.map +1 -1
  83. package/lib-commonjs/components/TreeItem/useTreeItemStyles.styles.js +13 -0
  84. package/lib-commonjs/components/TreeItem/useTreeItemStyles.styles.js.map +1 -1
  85. package/lib-commonjs/components/TreeItem/useTreeItemStyles.styles.raw.js +12 -0
  86. package/lib-commonjs/components/TreeItem/useTreeItemStyles.styles.raw.js.map +1 -1
  87. package/lib-commonjs/components/TreeItemLayout/TreeItemLayout.types.js.map +1 -1
  88. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayout.js +2 -0
  89. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayout.js.map +1 -1
  90. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayoutStyles.styles.js +8 -0
  91. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayoutStyles.styles.js.map +1 -1
  92. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayoutStyles.styles.raw.js +8 -0
  93. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayoutStyles.styles.raw.js.map +1 -1
  94. package/lib-commonjs/components/TreeItemPersonaLayout/TreeItemPersonaLayout.types.js.map +1 -1
  95. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js +0 -2
  96. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js.map +1 -1
  97. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.styles.js +8 -0
  98. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.styles.js.map +1 -1
  99. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.styles.raw.js +8 -0
  100. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.styles.raw.js.map +1 -1
  101. package/lib-commonjs/components/TreeProvider.js.map +1 -1
  102. package/lib-commonjs/contexts/treeContext.js.map +1 -1
  103. package/lib-commonjs/contexts/treeItemContext.js.map +1 -1
  104. package/lib-commonjs/hooks/useControllableOpenItems.js.map +1 -1
  105. package/lib-commonjs/hooks/useFlatTreeNavigation.js.map +1 -1
  106. package/lib-commonjs/hooks/useHTMLElementWalkerRef.js.map +1 -1
  107. package/lib-commonjs/hooks/useRootTree.js.map +1 -1
  108. package/lib-commonjs/hooks/useRovingTabIndexes.js +2 -0
  109. package/lib-commonjs/hooks/useRovingTabIndexes.js.map +1 -1
  110. package/lib-commonjs/hooks/useSubtree.js +0 -2
  111. package/lib-commonjs/hooks/useSubtree.js.map +1 -1
  112. package/lib-commonjs/hooks/useTreeNavigation.js.map +1 -1
  113. package/lib-commonjs/utils/assert.js +0 -2
  114. package/lib-commonjs/utils/assert.js.map +1 -1
  115. package/lib-commonjs/utils/createHeadlessTree.js.map +1 -1
  116. package/lib-commonjs/utils/flattenTree.js.map +1 -1
  117. package/lib-commonjs/utils/nextTypeAheadElement.js.map +1 -1
  118. package/lib-commonjs/utils/tokens.js.map +1 -1
  119. package/package.json +12 -12
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/TreeItemLayout/useTreeItemLayout.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport {\n getIntrinsicElementProps,\n isResolvedShorthand,\n useMergedRefs,\n slot,\n useEventCallback,\n elementContains,\n useControllableState,\n} from '@fluentui/react-utilities';\nimport { useTreeItemContext_unstable, useTreeContext_unstable } from '../../contexts';\nimport type {\n TreeItemLayoutActionSlotProps,\n TreeItemLayoutActionVisibilityChangeData,\n TreeItemLayoutProps,\n TreeItemLayoutState,\n} from './TreeItemLayout.types';\nimport { Checkbox, CheckboxProps } from '@fluentui/react-checkbox';\nimport { Radio, RadioProps } from '@fluentui/react-radio';\nimport { TreeItemChevron } from '../TreeItemChevron';\nimport { useArrowNavigationGroup, useIsNavigatingWithKeyboard } from '@fluentui/react-tabster';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\n\n/**\n * Create the state required to render TreeItemLayout.\n *\n * The returned state can be modified with hooks such as useTreeItemLayoutStyles_unstable,\n * before being passed to renderTreeItemLayout_unstable.\n *\n * @param props - props from this instance of TreeItemLayout\n * @param ref - reference to root HTMLElement of TreeItemLayout\n */\nexport const useTreeItemLayout_unstable = (\n props: TreeItemLayoutProps,\n ref: React.Ref<HTMLElement>,\n): TreeItemLayoutState => {\n 'use no memo';\n\n const { main, iconAfter, iconBefore } = props;\n\n const layoutRef = useTreeItemContext_unstable(ctx => ctx.layoutRef);\n const selectionMode = useTreeContext_unstable(ctx => ctx.selectionMode);\n const navigationMode = useTreeContext_unstable(ctx => ctx.navigationMode ?? 'tree');\n\n const [isActionsVisibleFromProps, onActionVisibilityChange]: [\n TreeItemLayoutActionSlotProps['visible'],\n TreeItemLayoutActionSlotProps['onVisibilityChange'],\n ] = isResolvedShorthand(props.actions)\n ? // .visible .onVisibilityChange prop should not be propagated to the DOM\n [props.actions.visible, props.actions.onVisibilityChange]\n : [undefined, undefined];\n\n const [isActionsVisible, setIsActionsVisible] = useControllableState({\n state: isActionsVisibleFromProps,\n initialState: false,\n });\n\n const selectionRef = useTreeItemContext_unstable(ctx => ctx.selectionRef);\n const expandIconRef = useTreeItemContext_unstable(ctx => ctx.expandIconRef);\n const actionsRef = useTreeItemContext_unstable(ctx => ctx.actionsRef);\n const actionsRefInternal = React.useRef<HTMLDivElement>(null);\n const treeItemRef = useTreeItemContext_unstable(ctx => ctx.treeItemRef);\n const subtreeRef = useTreeItemContext_unstable(ctx => ctx.subtreeRef);\n const checked = useTreeItemContext_unstable(ctx => ctx.checked);\n const isBranch = useTreeItemContext_unstable(ctx => ctx.itemType === 'branch');\n\n // FIXME: Asserting is required here, as converting this to RefObject on context type would be a breaking change\n assertIsRefObject(treeItemRef);\n // FIXME: Asserting is required here, as converting this to RefObject on context type would be a breaking change\n assertIsRefObject(subtreeRef);\n\n const setActionsVisibleIfNotFromSubtree = React.useCallback(\n (event: MouseEvent | FocusEvent) => {\n const isTargetFromSubtree = Boolean(\n subtreeRef.current && elementContains(subtreeRef.current, event.target as Node),\n );\n if (!isTargetFromSubtree) {\n onActionVisibilityChange?.(event, {\n visible: true,\n event,\n type: event.type,\n } as Extract<TreeItemLayoutActionVisibilityChangeData, { event: typeof event }>);\n if (event.defaultPrevented) {\n return;\n }\n setIsActionsVisible(true);\n }\n },\n [subtreeRef, setIsActionsVisible, onActionVisibilityChange],\n );\n\n const { targetDocument } = useFluent();\n const isNavigatingWithKeyboard = useIsNavigatingWithKeyboard();\n\n const setActionsInvisibleIfNotFromSubtree = React.useCallback(\n (event: FocusEvent | MouseEvent) => {\n const isRelatedTargetFromActions = () =>\n Boolean(actionsRefInternal.current && elementContains(actionsRefInternal.current, event.relatedTarget as Node));\n const isRelatedTargetFromTreeItem = () =>\n Boolean(treeItemRef.current && elementContains(treeItemRef.current, event.relatedTarget as Node));\n const isTargetFromActions = () => Boolean(actionsRefInternal.current?.contains(event.target as Node));\n if (isRelatedTargetFromActions()) {\n onActionVisibilityChange?.(event, {\n visible: true,\n event,\n type: event.type,\n } as Extract<TreeItemLayoutActionVisibilityChangeData, { event: typeof event }>);\n if (event.defaultPrevented) {\n return;\n }\n setIsActionsVisible(true);\n return;\n }\n if (isTargetFromActions() && isRelatedTargetFromTreeItem()) {\n return;\n }\n // when a mouseout event happens during keyboard interaction\n // we should not hide the actions if the activeElement is the treeitem or an action\n // as the focus on the treeitem takes precedence over the mouseout event\n if (\n event.type === 'mouseout' &&\n isNavigatingWithKeyboard() &&\n (targetDocument?.activeElement === treeItemRef.current ||\n elementContains(actionsRefInternal.current, targetDocument?.activeElement as Node))\n ) {\n return;\n }\n onActionVisibilityChange?.(event, {\n visible: false,\n event,\n type: event.type,\n } as Extract<TreeItemLayoutActionVisibilityChangeData, { event: typeof event }>);\n if (event.defaultPrevented) {\n return;\n }\n setIsActionsVisible(false);\n },\n [setIsActionsVisible, onActionVisibilityChange, treeItemRef, isNavigatingWithKeyboard, targetDocument],\n );\n\n const expandIcon = slot.optional(props.expandIcon, {\n renderByDefault: isBranch,\n defaultProps: {\n children: <TreeItemChevron />,\n 'aria-hidden': true,\n },\n elementType: 'div',\n });\n const expandIconRefs = useMergedRefs(expandIcon?.ref, expandIconRef);\n if (expandIcon) {\n expandIcon.ref = expandIconRefs;\n }\n const arrowNavigationProps = useArrowNavigationGroup({ circular: navigationMode === 'tree', axis: 'horizontal' });\n const actions = isActionsVisible\n ? slot.optional(props.actions, {\n defaultProps: { ...arrowNavigationProps, role: 'toolbar' },\n elementType: 'div',\n })\n : undefined;\n delete actions?.visible;\n delete actions?.onVisibilityChange;\n\n const actionsRefs = useMergedRefs(actions?.ref, actionsRef, actionsRefInternal);\n const handleActionsBlur = useEventCallback((event: React.FocusEvent<HTMLDivElement>) => {\n if (isResolvedShorthand(props.actions)) {\n props.actions.onBlur?.(event);\n }\n const isRelatedTargetFromActions = Boolean(elementContains(event.currentTarget, event.relatedTarget as Node));\n onActionVisibilityChange?.(event, {\n visible: isRelatedTargetFromActions,\n event,\n type: event.type,\n } as Extract<TreeItemLayoutActionVisibilityChangeData, { event: typeof event }>);\n setIsActionsVisible(isRelatedTargetFromActions);\n });\n if (actions) {\n actions.ref = actionsRefs;\n actions.onBlur = handleActionsBlur;\n }\n\n const hasActions = Boolean(props.actions);\n\n React.useEffect(() => {\n if (treeItemRef.current && hasActions) {\n const treeItemElement = treeItemRef.current;\n\n const handleMouseOver = setActionsVisibleIfNotFromSubtree;\n const handleMouseOut = setActionsInvisibleIfNotFromSubtree;\n const handleFocus = setActionsVisibleIfNotFromSubtree;\n const handleBlur = setActionsInvisibleIfNotFromSubtree;\n\n treeItemElement.addEventListener('mouseover', handleMouseOver);\n treeItemElement.addEventListener('mouseout', handleMouseOut);\n treeItemElement.addEventListener('focus', handleFocus);\n treeItemElement.addEventListener('blur', handleBlur);\n\n return () => {\n treeItemElement.removeEventListener('mouseover', handleMouseOver);\n treeItemElement.removeEventListener('mouseout', handleMouseOut);\n treeItemElement.removeEventListener('focus', handleFocus);\n treeItemElement.removeEventListener('blur', handleBlur);\n };\n }\n }, [hasActions, treeItemRef, setActionsVisibleIfNotFromSubtree, setActionsInvisibleIfNotFromSubtree]);\n\n return {\n components: {\n root: 'div',\n expandIcon: 'div',\n iconBefore: 'div',\n main: 'div',\n iconAfter: 'div',\n actions: 'div',\n aside: 'div',\n // Casting here to a union between checkbox and radio\n selector: (selectionMode === 'multiselect' ? Checkbox : Radio) as React.ElementType<CheckboxProps | RadioProps>,\n },\n buttonContextValue: { size: 'small' },\n root: slot.always(\n getIntrinsicElementProps('div', {\n ...props,\n // FIXME:\n // `ref` is wrongly assigned to be `HTMLElement` instead of `HTMLDivElement`\n // but since it would be a breaking change to fix it, we are casting ref to it's proper type\n ref: useMergedRefs(ref, layoutRef) as React.Ref<HTMLDivElement>,\n }),\n {\n elementType: 'div',\n },\n ),\n iconBefore: slot.optional(iconBefore, { elementType: 'div' }),\n main: slot.always(main, { elementType: 'div' }),\n iconAfter: slot.optional(iconAfter, { elementType: 'div' }),\n aside: !isActionsVisible ? slot.optional(props.aside, { elementType: 'div' }) : undefined,\n actions,\n expandIcon,\n selector: slot.optional(props.selector, {\n renderByDefault: selectionMode !== 'none',\n defaultProps: {\n checked,\n tabIndex: -1,\n 'aria-hidden': true,\n ref: selectionRef,\n // casting here to a union between checkbox and radio\n // since ref is not present on the selector signature\n // FIXME: look into Slot type to see if we can make this work\n } as CheckboxProps | RadioProps,\n elementType: (selectionMode === 'multiselect' ? Checkbox : Radio) as React.ElementType<\n CheckboxProps | RadioProps\n >,\n }),\n };\n};\n\nfunction assertIsRefObject<Value>(ref?: React.Ref<Value>): asserts ref is React.RefObject<Value> {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof ref !== 'object' || ref === null || !('current' in ref)) {\n throw new Error(`\n @fluentui/react-tree [${useTreeItemLayout_unstable.name}]:\n Internal Error: contextual ref is not a RefObject! Please report this bug immediately, as contextual refs should be RefObjects.\n `);\n }\n }\n}\n"],"names":["React","getIntrinsicElementProps","isResolvedShorthand","useMergedRefs","slot","useEventCallback","elementContains","useControllableState","useTreeItemContext_unstable","useTreeContext_unstable","Checkbox","Radio","TreeItemChevron","useArrowNavigationGroup","useIsNavigatingWithKeyboard","useFluent_unstable","useFluent","useTreeItemLayout_unstable","props","ref","main","iconAfter","iconBefore","layoutRef","ctx","selectionMode","navigationMode","isActionsVisibleFromProps","onActionVisibilityChange","actions","visible","onVisibilityChange","undefined","isActionsVisible","setIsActionsVisible","state","initialState","selectionRef","expandIconRef","actionsRef","actionsRefInternal","useRef","treeItemRef","subtreeRef","checked","isBranch","itemType","assertIsRefObject","setActionsVisibleIfNotFromSubtree","useCallback","event","isTargetFromSubtree","Boolean","current","target","type","defaultPrevented","targetDocument","isNavigatingWithKeyboard","setActionsInvisibleIfNotFromSubtree","isRelatedTargetFromActions","relatedTarget","isRelatedTargetFromTreeItem","isTargetFromActions","contains","activeElement","expandIcon","optional","renderByDefault","defaultProps","children","elementType","expandIconRefs","arrowNavigationProps","circular","axis","role","actionsRefs","handleActionsBlur","onBlur","currentTarget","hasActions","useEffect","treeItemElement","handleMouseOver","handleMouseOut","handleFocus","handleBlur","addEventListener","removeEventListener","components","root","aside","selector","buttonContextValue","size","always","tabIndex","process","env","NODE_ENV","Error","name"],"mappings":"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"}
1
+ {"version":3,"sources":["../src/components/TreeItemLayout/useTreeItemLayout.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport {\n getIntrinsicElementProps,\n isResolvedShorthand,\n useMergedRefs,\n slot,\n useEventCallback,\n elementContains,\n useControllableState,\n} from '@fluentui/react-utilities';\nimport { useTreeItemContext_unstable, useTreeContext_unstable } from '../../contexts';\nimport type {\n TreeItemLayoutActionSlotProps,\n TreeItemLayoutActionVisibilityChangeData,\n TreeItemLayoutProps,\n TreeItemLayoutState,\n} from './TreeItemLayout.types';\nimport type { CheckboxProps } from '@fluentui/react-checkbox';\nimport { Checkbox } from '@fluentui/react-checkbox';\nimport type { RadioProps } from '@fluentui/react-radio';\nimport { Radio } from '@fluentui/react-radio';\nimport { TreeItemChevron } from '../TreeItemChevron';\nimport { useArrowNavigationGroup, useIsNavigatingWithKeyboard } from '@fluentui/react-tabster';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\n\n/**\n * Create the state required to render TreeItemLayout.\n *\n * The returned state can be modified with hooks such as useTreeItemLayoutStyles_unstable,\n * before being passed to renderTreeItemLayout_unstable.\n *\n * @param props - props from this instance of TreeItemLayout\n * @param ref - reference to root HTMLElement of TreeItemLayout\n */\nexport const useTreeItemLayout_unstable = (\n props: TreeItemLayoutProps,\n ref: React.Ref<HTMLElement>,\n): TreeItemLayoutState => {\n 'use no memo';\n\n const { main, iconAfter, iconBefore } = props;\n\n const layoutRef = useTreeItemContext_unstable(ctx => ctx.layoutRef);\n const selectionMode = useTreeContext_unstable(ctx => ctx.selectionMode);\n const navigationMode = useTreeContext_unstable(ctx => ctx.navigationMode ?? 'tree');\n\n const [isActionsVisibleFromProps, onActionVisibilityChange]: [\n TreeItemLayoutActionSlotProps['visible'],\n TreeItemLayoutActionSlotProps['onVisibilityChange'],\n ] = isResolvedShorthand(props.actions)\n ? // .visible .onVisibilityChange prop should not be propagated to the DOM\n [props.actions.visible, props.actions.onVisibilityChange]\n : [undefined, undefined];\n\n const [isActionsVisible, setIsActionsVisible] = useControllableState({\n state: isActionsVisibleFromProps,\n initialState: false,\n });\n\n const selectionRef = useTreeItemContext_unstable(ctx => ctx.selectionRef);\n const expandIconRef = useTreeItemContext_unstable(ctx => ctx.expandIconRef);\n const actionsRef = useTreeItemContext_unstable(ctx => ctx.actionsRef);\n const actionsRefInternal = React.useRef<HTMLDivElement>(null);\n const treeItemRef = useTreeItemContext_unstable(ctx => ctx.treeItemRef);\n const subtreeRef = useTreeItemContext_unstable(ctx => ctx.subtreeRef);\n const checked = useTreeItemContext_unstable(ctx => ctx.checked);\n const isBranch = useTreeItemContext_unstable(ctx => ctx.itemType === 'branch');\n\n // FIXME: Asserting is required here, as converting this to RefObject on context type would be a breaking change\n // eslint-disable-next-line react-hooks/refs\n assertIsRefObject(treeItemRef);\n // FIXME: Asserting is required here, as converting this to RefObject on context type would be a breaking change\n // eslint-disable-next-line react-hooks/refs\n assertIsRefObject(subtreeRef);\n\n const setActionsVisibleIfNotFromSubtree = React.useCallback(\n (event: MouseEvent | FocusEvent) => {\n const isTargetFromSubtree = Boolean(\n subtreeRef.current && elementContains(subtreeRef.current, event.target as Node),\n );\n if (!isTargetFromSubtree) {\n onActionVisibilityChange?.(event, {\n visible: true,\n event,\n type: event.type,\n } as Extract<TreeItemLayoutActionVisibilityChangeData, { event: typeof event }>);\n if (event.defaultPrevented) {\n return;\n }\n setIsActionsVisible(true);\n }\n },\n [subtreeRef, setIsActionsVisible, onActionVisibilityChange],\n );\n\n const { targetDocument } = useFluent();\n const isNavigatingWithKeyboard = useIsNavigatingWithKeyboard();\n\n const setActionsInvisibleIfNotFromSubtree = React.useCallback(\n (event: FocusEvent | MouseEvent) => {\n const isRelatedTargetFromActions = () =>\n Boolean(actionsRefInternal.current && elementContains(actionsRefInternal.current, event.relatedTarget as Node));\n const isRelatedTargetFromTreeItem = () =>\n Boolean(treeItemRef.current && elementContains(treeItemRef.current, event.relatedTarget as Node));\n const isTargetFromActions = () => Boolean(actionsRefInternal.current?.contains(event.target as Node));\n if (isRelatedTargetFromActions()) {\n onActionVisibilityChange?.(event, {\n visible: true,\n event,\n type: event.type,\n } as Extract<TreeItemLayoutActionVisibilityChangeData, { event: typeof event }>);\n if (event.defaultPrevented) {\n return;\n }\n setIsActionsVisible(true);\n return;\n }\n if (isTargetFromActions() && isRelatedTargetFromTreeItem()) {\n return;\n }\n // when a mouseout event happens during keyboard interaction\n // we should not hide the actions if the activeElement is the treeitem or an action\n // as the focus on the treeitem takes precedence over the mouseout event\n if (\n event.type === 'mouseout' &&\n isNavigatingWithKeyboard() &&\n (targetDocument?.activeElement === treeItemRef.current ||\n elementContains(actionsRefInternal.current, targetDocument?.activeElement as Node))\n ) {\n return;\n }\n onActionVisibilityChange?.(event, {\n visible: false,\n event,\n type: event.type,\n } as Extract<TreeItemLayoutActionVisibilityChangeData, { event: typeof event }>);\n if (event.defaultPrevented) {\n return;\n }\n setIsActionsVisible(false);\n },\n [setIsActionsVisible, onActionVisibilityChange, treeItemRef, isNavigatingWithKeyboard, targetDocument],\n );\n\n const expandIcon = slot.optional(props.expandIcon, {\n renderByDefault: isBranch,\n defaultProps: {\n children: <TreeItemChevron />,\n 'aria-hidden': true,\n },\n elementType: 'div',\n });\n const expandIconRefs = useMergedRefs(expandIcon?.ref, expandIconRef);\n if (expandIcon) {\n expandIcon.ref = expandIconRefs;\n }\n const arrowNavigationProps = useArrowNavigationGroup({ circular: navigationMode === 'tree', axis: 'horizontal' });\n const actions = isActionsVisible\n ? slot.optional(props.actions, {\n defaultProps: { ...arrowNavigationProps, role: 'toolbar' },\n elementType: 'div',\n })\n : undefined;\n delete actions?.visible;\n delete actions?.onVisibilityChange;\n\n const actionsRefs = useMergedRefs(actions?.ref, actionsRef, actionsRefInternal);\n const handleActionsBlur = useEventCallback((event: React.FocusEvent<HTMLDivElement>) => {\n if (isResolvedShorthand(props.actions)) {\n props.actions.onBlur?.(event);\n }\n const isRelatedTargetFromActions = Boolean(elementContains(event.currentTarget, event.relatedTarget as Node));\n onActionVisibilityChange?.(event, {\n visible: isRelatedTargetFromActions,\n event,\n type: event.type,\n } as Extract<TreeItemLayoutActionVisibilityChangeData, { event: typeof event }>);\n setIsActionsVisible(isRelatedTargetFromActions);\n });\n if (actions) {\n actions.ref = actionsRefs;\n actions.onBlur = handleActionsBlur;\n }\n\n const hasActions = Boolean(props.actions);\n\n React.useEffect(() => {\n if (treeItemRef.current && hasActions) {\n const treeItemElement = treeItemRef.current;\n\n const handleMouseOver = setActionsVisibleIfNotFromSubtree;\n const handleMouseOut = setActionsInvisibleIfNotFromSubtree;\n const handleFocus = setActionsVisibleIfNotFromSubtree;\n const handleBlur = setActionsInvisibleIfNotFromSubtree;\n\n treeItemElement.addEventListener('mouseover', handleMouseOver);\n treeItemElement.addEventListener('mouseout', handleMouseOut);\n treeItemElement.addEventListener('focus', handleFocus);\n treeItemElement.addEventListener('blur', handleBlur);\n\n return () => {\n treeItemElement.removeEventListener('mouseover', handleMouseOver);\n treeItemElement.removeEventListener('mouseout', handleMouseOut);\n treeItemElement.removeEventListener('focus', handleFocus);\n treeItemElement.removeEventListener('blur', handleBlur);\n };\n }\n }, [hasActions, treeItemRef, setActionsVisibleIfNotFromSubtree, setActionsInvisibleIfNotFromSubtree]);\n\n return {\n components: {\n root: 'div',\n expandIcon: 'div',\n iconBefore: 'div',\n main: 'div',\n iconAfter: 'div',\n actions: 'div',\n aside: 'div',\n // Casting here to a union between checkbox and radio\n selector: (selectionMode === 'multiselect' ? Checkbox : Radio) as React.ElementType<CheckboxProps | RadioProps>,\n },\n buttonContextValue: { size: 'small' },\n root: slot.always(\n getIntrinsicElementProps('div', {\n ...props,\n // FIXME:\n // `ref` is wrongly assigned to be `HTMLElement` instead of `HTMLDivElement`\n // but since it would be a breaking change to fix it, we are casting ref to it's proper type\n ref: useMergedRefs(ref, layoutRef) as React.Ref<HTMLDivElement>,\n }),\n {\n elementType: 'div',\n },\n ),\n iconBefore: slot.optional(iconBefore, { elementType: 'div' }),\n main: slot.always(main, { elementType: 'div' }),\n iconAfter: slot.optional(iconAfter, { elementType: 'div' }),\n aside: !isActionsVisible ? slot.optional(props.aside, { elementType: 'div' }) : undefined,\n actions,\n expandIcon,\n selector: slot.optional(props.selector, {\n renderByDefault: selectionMode !== 'none',\n defaultProps: {\n checked,\n tabIndex: -1,\n 'aria-hidden': true,\n ref: selectionRef,\n // casting here to a union between checkbox and radio\n // since ref is not present on the selector signature\n // FIXME: look into Slot type to see if we can make this work\n } as CheckboxProps | RadioProps,\n elementType: (selectionMode === 'multiselect' ? Checkbox : Radio) as React.ElementType<\n CheckboxProps | RadioProps\n >,\n }),\n };\n};\n\nfunction assertIsRefObject<Value>(ref?: React.Ref<Value>): asserts ref is React.RefObject<Value> {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof ref !== 'object' || ref === null || !('current' in ref)) {\n throw new Error(`\n @fluentui/react-tree [${useTreeItemLayout_unstable.name}]:\n Internal Error: contextual ref is not a RefObject! Please report this bug immediately, as contextual refs should be RefObjects.\n `);\n }\n }\n}\n"],"names":["React","getIntrinsicElementProps","isResolvedShorthand","useMergedRefs","slot","useEventCallback","elementContains","useControllableState","useTreeItemContext_unstable","useTreeContext_unstable","Checkbox","Radio","TreeItemChevron","useArrowNavigationGroup","useIsNavigatingWithKeyboard","useFluent_unstable","useFluent","useTreeItemLayout_unstable","props","ref","main","iconAfter","iconBefore","layoutRef","ctx","selectionMode","navigationMode","isActionsVisibleFromProps","onActionVisibilityChange","actions","visible","onVisibilityChange","undefined","isActionsVisible","setIsActionsVisible","state","initialState","selectionRef","expandIconRef","actionsRef","actionsRefInternal","useRef","treeItemRef","subtreeRef","checked","isBranch","itemType","assertIsRefObject","setActionsVisibleIfNotFromSubtree","useCallback","event","isTargetFromSubtree","Boolean","current","target","type","defaultPrevented","targetDocument","isNavigatingWithKeyboard","setActionsInvisibleIfNotFromSubtree","isRelatedTargetFromActions","relatedTarget","isRelatedTargetFromTreeItem","isTargetFromActions","contains","activeElement","expandIcon","optional","renderByDefault","defaultProps","children","elementType","expandIconRefs","arrowNavigationProps","circular","axis","role","actionsRefs","handleActionsBlur","onBlur","currentTarget","hasActions","useEffect","treeItemElement","handleMouseOver","handleMouseOut","handleFocus","handleBlur","addEventListener","removeEventListener","components","root","aside","selector","buttonContextValue","size","always","tabIndex","process","env","NODE_ENV","Error","name"],"mappings":"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"}
@@ -183,24 +183,32 @@ const useTreeItemLayoutStyles_unstable = (state)=>{
183
183
  const size = (0, _treeContext.useTreeContext_unstable)((ctx)=>ctx.size);
184
184
  const appearance = (0, _treeContext.useTreeContext_unstable)((ctx)=>ctx.appearance);
185
185
  const itemType = (0, _treeItemContext.useTreeItemContext_unstable)((ctx)=>ctx.itemType);
186
+ // eslint-disable-next-line react-hooks/immutability
186
187
  root.className = (0, _react.mergeClasses)(treeItemLayoutClassNames.root, rootBaseStyles, rootStyles[appearance], rootStyles[size], rootStyles[itemType], root.className);
188
+ // eslint-disable-next-line react-hooks/immutability
187
189
  main.className = (0, _react.mergeClasses)(treeItemLayoutClassNames.main, mainBaseStyles, main.className);
188
190
  if (expandIcon) {
191
+ // eslint-disable-next-line react-hooks/immutability
189
192
  expandIcon.className = (0, _react.mergeClasses)(treeItemLayoutClassNames.expandIcon, expandIconBaseStyles, expandIcon.className);
190
193
  }
191
194
  if (iconBefore) {
195
+ // eslint-disable-next-line react-hooks/immutability
192
196
  iconBefore.className = (0, _react.mergeClasses)(treeItemLayoutClassNames.iconBefore, iconBaseStyles, iconBeforeStyles[size], iconBefore.className);
193
197
  }
194
198
  if (iconAfter) {
199
+ // eslint-disable-next-line react-hooks/immutability
195
200
  iconAfter.className = (0, _react.mergeClasses)(treeItemLayoutClassNames.iconAfter, iconBaseStyles, iconAfterStyles[size], iconAfter.className);
196
201
  }
197
202
  if (actions) {
203
+ // eslint-disable-next-line react-hooks/immutability
198
204
  actions.className = (0, _react.mergeClasses)(treeItemLayoutClassNames.actions, actionsBaseStyles, actions.className);
199
205
  }
200
206
  if (aside) {
207
+ // eslint-disable-next-line react-hooks/immutability
201
208
  aside.className = (0, _react.mergeClasses)(treeItemLayoutClassNames.aside, asideBaseStyles, aside.className);
202
209
  }
203
210
  if (selector) {
211
+ // eslint-disable-next-line react-hooks/immutability
204
212
  selector.className = (0, _react.mergeClasses)(treeItemLayoutClassNames.selector, selector.className);
205
213
  }
206
214
  return state;
@@ -1 +1 @@
1
- {"version":3,"sources":["useTreeItemLayoutStyles.styles.js"],"sourcesContent":["'use client';\nimport { makeResetStyles, makeStyles, mergeClasses } from '@griffel/react';\nimport { tokens, typographyStyles } from '@fluentui/react-theme';\nimport { useTreeContext_unstable } from '../../contexts/treeContext';\nimport { treeItemLevelToken } from '../../utils/tokens';\nimport { useTreeItemContext_unstable } from '../../contexts/treeItemContext';\nexport const treeItemLayoutClassNames = {\n root: 'fui-TreeItemLayout',\n iconBefore: 'fui-TreeItemLayout__iconBefore',\n main: 'fui-TreeItemLayout__main',\n iconAfter: 'fui-TreeItemLayout__iconAfter',\n expandIcon: 'fui-TreeItemLayout__expandIcon',\n aside: 'fui-TreeItemLayout__aside',\n actions: 'fui-TreeItemLayout__actions',\n selector: 'fui-TreeItemLayout__selector'\n};\nconst useRootBaseStyles = makeResetStyles({\n display: 'flex',\n alignItems: 'center',\n minHeight: '32px',\n boxSizing: 'border-box',\n gridArea: 'layout',\n ':hover': {\n color: tokens.colorNeutralForeground2Hover,\n backgroundColor: tokens.colorSubtleBackgroundHover,\n // TODO: stop using treeItemLayoutClassNames.expandIcon for styling\n [`& .${treeItemLayoutClassNames.expandIcon}`]: {\n color: tokens.colorNeutralForeground3Hover\n }\n },\n ':active': {\n color: tokens.colorNeutralForeground2Pressed,\n backgroundColor: tokens.colorSubtleBackgroundPressed,\n // TODO: stop using treeItemLayoutClassNames.expandIcon for styling\n [`& .${treeItemLayoutClassNames.expandIcon}`]: {\n color: tokens.colorNeutralForeground3Pressed\n }\n }\n});\n/**\n * Styles for the root slot\n */ const useRootStyles = makeStyles({\n leaf: {\n paddingLeft: `calc(var(${treeItemLevelToken}, 1) * ${tokens.spacingHorizontalXXL})`\n },\n branch: {\n paddingLeft: `calc((var(${treeItemLevelToken}, 1) - 1) * ${tokens.spacingHorizontalXXL})`\n },\n medium: {\n ...typographyStyles.body1\n },\n small: {\n minHeight: '24px',\n ...typographyStyles.caption1\n },\n // Appearance variations\n subtle: {},\n 'subtle-alpha': {\n ':hover': {\n backgroundColor: tokens.colorSubtleBackgroundLightAlphaHover\n },\n ':active': {\n backgroundColor: tokens.colorSubtleBackgroundLightAlphaPressed\n }\n },\n transparent: {\n backgroundColor: tokens.colorTransparentBackground,\n ':hover': {\n backgroundColor: tokens.colorTransparentBackgroundHover\n },\n ':active': {\n backgroundColor: tokens.colorTransparentBackgroundPressed\n }\n }\n});\n/**\n * Styles for the action icon slot\n */ const useActionsBaseStyles = makeResetStyles({\n display: 'flex',\n marginLeft: 'auto',\n position: 'relative',\n zIndex: 1,\n gridArea: 'aside',\n padding: `0 ${tokens.spacingHorizontalS}`\n});\n/**\n * Styles for the action icon slot\n */ const useAsideBaseStyles = makeResetStyles({\n display: 'flex',\n marginLeft: 'auto',\n alignItems: 'center',\n zIndex: 0,\n gridArea: 'aside',\n padding: `0 ${tokens.spacingHorizontalM}`,\n gap: tokens.spacingHorizontalXS\n});\n/**\n * Styles for the expand icon slot\n */ const useExpandIconBaseStyles = makeResetStyles({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n minWidth: '24px',\n boxSizing: 'border-box',\n color: tokens.colorNeutralForeground3,\n flex: `0 0 auto`,\n padding: `${tokens.spacingVerticalXS} 0`\n});\n/**\n * Styles for the content slot\n */ const useMainBaseStyles = makeResetStyles({\n padding: `0 ${tokens.spacingHorizontalXXS}`\n});\n/**\n * Styles for the before/after icon slot\n */ const useIconBaseStyles = makeResetStyles({\n display: 'flex',\n alignItems: 'center',\n color: tokens.colorNeutralForeground2,\n lineHeight: tokens.lineHeightBase500,\n fontSize: tokens.fontSizeBase500\n});\nconst useIconBeforeStyles = makeStyles({\n medium: {\n paddingRight: tokens.spacingHorizontalXS\n },\n small: {\n paddingRight: tokens.spacingHorizontalXXS\n }\n});\nconst useIconAfterStyles = makeStyles({\n medium: {\n paddingLeft: tokens.spacingHorizontalXS\n },\n small: {\n paddingLeft: tokens.spacingHorizontalXXS\n }\n});\n/**\n * Apply styling to the TreeItemLayout slots based on the state\n */ export const useTreeItemLayoutStyles_unstable = (state)=>{\n 'use no memo';\n const { main, iconAfter, iconBefore, expandIcon, root, aside, actions, selector } = state;\n const rootStyles = useRootStyles();\n const rootBaseStyles = useRootBaseStyles();\n const actionsBaseStyles = useActionsBaseStyles();\n const asideBaseStyles = useAsideBaseStyles();\n const mainBaseStyles = useMainBaseStyles();\n const expandIconBaseStyles = useExpandIconBaseStyles();\n const iconBaseStyles = useIconBaseStyles();\n const iconBeforeStyles = useIconBeforeStyles();\n const iconAfterStyles = useIconAfterStyles();\n const size = useTreeContext_unstable((ctx)=>ctx.size);\n const appearance = useTreeContext_unstable((ctx)=>ctx.appearance);\n const itemType = useTreeItemContext_unstable((ctx)=>ctx.itemType);\n root.className = mergeClasses(treeItemLayoutClassNames.root, rootBaseStyles, rootStyles[appearance], rootStyles[size], rootStyles[itemType], root.className);\n main.className = mergeClasses(treeItemLayoutClassNames.main, mainBaseStyles, main.className);\n if (expandIcon) {\n expandIcon.className = mergeClasses(treeItemLayoutClassNames.expandIcon, expandIconBaseStyles, expandIcon.className);\n }\n if (iconBefore) {\n iconBefore.className = mergeClasses(treeItemLayoutClassNames.iconBefore, iconBaseStyles, iconBeforeStyles[size], iconBefore.className);\n }\n if (iconAfter) {\n iconAfter.className = mergeClasses(treeItemLayoutClassNames.iconAfter, iconBaseStyles, iconAfterStyles[size], iconAfter.className);\n }\n if (actions) {\n actions.className = mergeClasses(treeItemLayoutClassNames.actions, actionsBaseStyles, actions.className);\n }\n if (aside) {\n aside.className = mergeClasses(treeItemLayoutClassNames.aside, asideBaseStyles, aside.className);\n }\n if (selector) {\n selector.className = mergeClasses(treeItemLayoutClassNames.selector, selector.className);\n }\n return state;\n};\n"],"names":["__resetStyles","__styles","mergeClasses","tokens","typographyStyles","useTreeContext_unstable","treeItemLevelToken","useTreeItemContext_unstable","treeItemLayoutClassNames","root","iconBefore","main","iconAfter","expandIcon","aside","actions","selector","useRootBaseStyles","useRootStyles","leaf","uwmqm3","branch","medium","Bahqtrf","Be2twd7","Bhrd7zp","Bg96gwp","small","sshi5w","subtle","Jwef8y","ecr2s2","transparent","De3pzq","d","h","a","useActionsBaseStyles","useAsideBaseStyles","useExpandIconBaseStyles","useMainBaseStyles","useIconBaseStyles","useIconBeforeStyles","z189sj","useIconAfterStyles","useTreeItemLayoutStyles_unstable","state","rootStyles","rootBaseStyles","actionsBaseStyles","asideBaseStyles","mainBaseStyles","expandIconBaseStyles","iconBaseStyles","iconBeforeStyles","iconAfterStyles","size","ctx","appearance","itemType","className"],"mappings":"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"}
1
+ {"version":3,"sources":["useTreeItemLayoutStyles.styles.js"],"sourcesContent":["'use client';\nimport { makeResetStyles, makeStyles, mergeClasses } from '@griffel/react';\nimport { tokens, typographyStyles } from '@fluentui/react-theme';\nimport { useTreeContext_unstable } from '../../contexts/treeContext';\nimport { treeItemLevelToken } from '../../utils/tokens';\nimport { useTreeItemContext_unstable } from '../../contexts/treeItemContext';\nexport const treeItemLayoutClassNames = {\n root: 'fui-TreeItemLayout',\n iconBefore: 'fui-TreeItemLayout__iconBefore',\n main: 'fui-TreeItemLayout__main',\n iconAfter: 'fui-TreeItemLayout__iconAfter',\n expandIcon: 'fui-TreeItemLayout__expandIcon',\n aside: 'fui-TreeItemLayout__aside',\n actions: 'fui-TreeItemLayout__actions',\n selector: 'fui-TreeItemLayout__selector'\n};\nconst useRootBaseStyles = makeResetStyles({\n display: 'flex',\n alignItems: 'center',\n minHeight: '32px',\n boxSizing: 'border-box',\n gridArea: 'layout',\n ':hover': {\n color: tokens.colorNeutralForeground2Hover,\n backgroundColor: tokens.colorSubtleBackgroundHover,\n // TODO: stop using treeItemLayoutClassNames.expandIcon for styling\n [`& .${treeItemLayoutClassNames.expandIcon}`]: {\n color: tokens.colorNeutralForeground3Hover\n }\n },\n ':active': {\n color: tokens.colorNeutralForeground2Pressed,\n backgroundColor: tokens.colorSubtleBackgroundPressed,\n // TODO: stop using treeItemLayoutClassNames.expandIcon for styling\n [`& .${treeItemLayoutClassNames.expandIcon}`]: {\n color: tokens.colorNeutralForeground3Pressed\n }\n }\n});\n/**\n * Styles for the root slot\n */ const useRootStyles = makeStyles({\n leaf: {\n paddingLeft: `calc(var(${treeItemLevelToken}, 1) * ${tokens.spacingHorizontalXXL})`\n },\n branch: {\n paddingLeft: `calc((var(${treeItemLevelToken}, 1) - 1) * ${tokens.spacingHorizontalXXL})`\n },\n medium: {\n ...typographyStyles.body1\n },\n small: {\n minHeight: '24px',\n ...typographyStyles.caption1\n },\n // Appearance variations\n subtle: {},\n 'subtle-alpha': {\n ':hover': {\n backgroundColor: tokens.colorSubtleBackgroundLightAlphaHover\n },\n ':active': {\n backgroundColor: tokens.colorSubtleBackgroundLightAlphaPressed\n }\n },\n transparent: {\n backgroundColor: tokens.colorTransparentBackground,\n ':hover': {\n backgroundColor: tokens.colorTransparentBackgroundHover\n },\n ':active': {\n backgroundColor: tokens.colorTransparentBackgroundPressed\n }\n }\n});\n/**\n * Styles for the action icon slot\n */ const useActionsBaseStyles = makeResetStyles({\n display: 'flex',\n marginLeft: 'auto',\n position: 'relative',\n zIndex: 1,\n gridArea: 'aside',\n padding: `0 ${tokens.spacingHorizontalS}`\n});\n/**\n * Styles for the action icon slot\n */ const useAsideBaseStyles = makeResetStyles({\n display: 'flex',\n marginLeft: 'auto',\n alignItems: 'center',\n zIndex: 0,\n gridArea: 'aside',\n padding: `0 ${tokens.spacingHorizontalM}`,\n gap: tokens.spacingHorizontalXS\n});\n/**\n * Styles for the expand icon slot\n */ const useExpandIconBaseStyles = makeResetStyles({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n minWidth: '24px',\n boxSizing: 'border-box',\n color: tokens.colorNeutralForeground3,\n flex: `0 0 auto`,\n padding: `${tokens.spacingVerticalXS} 0`\n});\n/**\n * Styles for the content slot\n */ const useMainBaseStyles = makeResetStyles({\n padding: `0 ${tokens.spacingHorizontalXXS}`\n});\n/**\n * Styles for the before/after icon slot\n */ const useIconBaseStyles = makeResetStyles({\n display: 'flex',\n alignItems: 'center',\n color: tokens.colorNeutralForeground2,\n lineHeight: tokens.lineHeightBase500,\n fontSize: tokens.fontSizeBase500\n});\nconst useIconBeforeStyles = makeStyles({\n medium: {\n paddingRight: tokens.spacingHorizontalXS\n },\n small: {\n paddingRight: tokens.spacingHorizontalXXS\n }\n});\nconst useIconAfterStyles = makeStyles({\n medium: {\n paddingLeft: tokens.spacingHorizontalXS\n },\n small: {\n paddingLeft: tokens.spacingHorizontalXXS\n }\n});\n/**\n * Apply styling to the TreeItemLayout slots based on the state\n */ export const useTreeItemLayoutStyles_unstable = (state)=>{\n 'use no memo';\n const { main, iconAfter, iconBefore, expandIcon, root, aside, actions, selector } = state;\n const rootStyles = useRootStyles();\n const rootBaseStyles = useRootBaseStyles();\n const actionsBaseStyles = useActionsBaseStyles();\n const asideBaseStyles = useAsideBaseStyles();\n const mainBaseStyles = useMainBaseStyles();\n const expandIconBaseStyles = useExpandIconBaseStyles();\n const iconBaseStyles = useIconBaseStyles();\n const iconBeforeStyles = useIconBeforeStyles();\n const iconAfterStyles = useIconAfterStyles();\n const size = useTreeContext_unstable((ctx)=>ctx.size);\n const appearance = useTreeContext_unstable((ctx)=>ctx.appearance);\n const itemType = useTreeItemContext_unstable((ctx)=>ctx.itemType);\n // eslint-disable-next-line react-hooks/immutability\n root.className = mergeClasses(treeItemLayoutClassNames.root, rootBaseStyles, rootStyles[appearance], rootStyles[size], rootStyles[itemType], root.className);\n // eslint-disable-next-line react-hooks/immutability\n main.className = mergeClasses(treeItemLayoutClassNames.main, mainBaseStyles, main.className);\n if (expandIcon) {\n // eslint-disable-next-line react-hooks/immutability\n expandIcon.className = mergeClasses(treeItemLayoutClassNames.expandIcon, expandIconBaseStyles, expandIcon.className);\n }\n if (iconBefore) {\n // eslint-disable-next-line react-hooks/immutability\n iconBefore.className = mergeClasses(treeItemLayoutClassNames.iconBefore, iconBaseStyles, iconBeforeStyles[size], iconBefore.className);\n }\n if (iconAfter) {\n // eslint-disable-next-line react-hooks/immutability\n iconAfter.className = mergeClasses(treeItemLayoutClassNames.iconAfter, iconBaseStyles, iconAfterStyles[size], iconAfter.className);\n }\n if (actions) {\n // eslint-disable-next-line react-hooks/immutability\n actions.className = mergeClasses(treeItemLayoutClassNames.actions, actionsBaseStyles, actions.className);\n }\n if (aside) {\n // eslint-disable-next-line react-hooks/immutability\n aside.className = mergeClasses(treeItemLayoutClassNames.aside, asideBaseStyles, aside.className);\n }\n if (selector) {\n // eslint-disable-next-line react-hooks/immutability\n selector.className = mergeClasses(treeItemLayoutClassNames.selector, selector.className);\n }\n return state;\n};\n"],"names":["__resetStyles","__styles","mergeClasses","tokens","typographyStyles","useTreeContext_unstable","treeItemLevelToken","useTreeItemContext_unstable","treeItemLayoutClassNames","root","iconBefore","main","iconAfter","expandIcon","aside","actions","selector","useRootBaseStyles","useRootStyles","leaf","uwmqm3","branch","medium","Bahqtrf","Be2twd7","Bhrd7zp","Bg96gwp","small","sshi5w","subtle","Jwef8y","ecr2s2","transparent","De3pzq","d","h","a","useActionsBaseStyles","useAsideBaseStyles","useExpandIconBaseStyles","useMainBaseStyles","useIconBaseStyles","useIconBeforeStyles","z189sj","useIconAfterStyles","useTreeItemLayoutStyles_unstable","state","rootStyles","rootBaseStyles","actionsBaseStyles","asideBaseStyles","mainBaseStyles","expandIconBaseStyles","iconBaseStyles","iconBeforeStyles","iconAfterStyles","size","ctx","appearance","itemType","className"],"mappings":"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"}
@@ -169,24 +169,32 @@ const useTreeItemLayoutStyles_unstable = (state)=>{
169
169
  const size = (0, _treeContext.useTreeContext_unstable)((ctx)=>ctx.size);
170
170
  const appearance = (0, _treeContext.useTreeContext_unstable)((ctx)=>ctx.appearance);
171
171
  const itemType = (0, _treeItemContext.useTreeItemContext_unstable)((ctx)=>ctx.itemType);
172
+ // eslint-disable-next-line react-hooks/immutability
172
173
  root.className = (0, _react.mergeClasses)(treeItemLayoutClassNames.root, rootBaseStyles, rootStyles[appearance], rootStyles[size], rootStyles[itemType], root.className);
174
+ // eslint-disable-next-line react-hooks/immutability
173
175
  main.className = (0, _react.mergeClasses)(treeItemLayoutClassNames.main, mainBaseStyles, main.className);
174
176
  if (expandIcon) {
177
+ // eslint-disable-next-line react-hooks/immutability
175
178
  expandIcon.className = (0, _react.mergeClasses)(treeItemLayoutClassNames.expandIcon, expandIconBaseStyles, expandIcon.className);
176
179
  }
177
180
  if (iconBefore) {
181
+ // eslint-disable-next-line react-hooks/immutability
178
182
  iconBefore.className = (0, _react.mergeClasses)(treeItemLayoutClassNames.iconBefore, iconBaseStyles, iconBeforeStyles[size], iconBefore.className);
179
183
  }
180
184
  if (iconAfter) {
185
+ // eslint-disable-next-line react-hooks/immutability
181
186
  iconAfter.className = (0, _react.mergeClasses)(treeItemLayoutClassNames.iconAfter, iconBaseStyles, iconAfterStyles[size], iconAfter.className);
182
187
  }
183
188
  if (actions) {
189
+ // eslint-disable-next-line react-hooks/immutability
184
190
  actions.className = (0, _react.mergeClasses)(treeItemLayoutClassNames.actions, actionsBaseStyles, actions.className);
185
191
  }
186
192
  if (aside) {
193
+ // eslint-disable-next-line react-hooks/immutability
187
194
  aside.className = (0, _react.mergeClasses)(treeItemLayoutClassNames.aside, asideBaseStyles, aside.className);
188
195
  }
189
196
  if (selector) {
197
+ // eslint-disable-next-line react-hooks/immutability
190
198
  selector.className = (0, _react.mergeClasses)(treeItemLayoutClassNames.selector, selector.className);
191
199
  }
192
200
  return state;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/TreeItemLayout/useTreeItemLayoutStyles.styles.ts"],"sourcesContent":["'use client';\n\nimport { makeResetStyles, makeStyles, mergeClasses } from '@griffel/react';\nimport type { TreeItemLayoutSlots, TreeItemLayoutState } from './TreeItemLayout.types';\nimport type { SlotClassNames } from '@fluentui/react-utilities';\nimport { tokens, typographyStyles } from '@fluentui/react-theme';\nimport { useTreeContext_unstable } from '../../contexts/treeContext';\nimport { treeItemLevelToken } from '../../utils/tokens';\nimport { useTreeItemContext_unstable } from '../../contexts/treeItemContext';\n\nexport const treeItemLayoutClassNames: SlotClassNames<TreeItemLayoutSlots> = {\n root: 'fui-TreeItemLayout',\n iconBefore: 'fui-TreeItemLayout__iconBefore',\n main: 'fui-TreeItemLayout__main',\n iconAfter: 'fui-TreeItemLayout__iconAfter',\n expandIcon: 'fui-TreeItemLayout__expandIcon',\n aside: 'fui-TreeItemLayout__aside',\n actions: 'fui-TreeItemLayout__actions',\n selector: 'fui-TreeItemLayout__selector',\n};\n\nconst useRootBaseStyles = makeResetStyles({\n display: 'flex',\n alignItems: 'center',\n minHeight: '32px',\n boxSizing: 'border-box',\n gridArea: 'layout',\n ':hover': {\n color: tokens.colorNeutralForeground2Hover,\n backgroundColor: tokens.colorSubtleBackgroundHover,\n // TODO: stop using treeItemLayoutClassNames.expandIcon for styling\n [`& .${treeItemLayoutClassNames.expandIcon}`]: {\n color: tokens.colorNeutralForeground3Hover,\n },\n },\n ':active': {\n color: tokens.colorNeutralForeground2Pressed,\n backgroundColor: tokens.colorSubtleBackgroundPressed,\n // TODO: stop using treeItemLayoutClassNames.expandIcon for styling\n [`& .${treeItemLayoutClassNames.expandIcon}`]: {\n color: tokens.colorNeutralForeground3Pressed,\n },\n },\n});\n\n/**\n * Styles for the root slot\n */\nconst useRootStyles = makeStyles({\n leaf: {\n paddingLeft: `calc(var(${treeItemLevelToken}, 1) * ${tokens.spacingHorizontalXXL})`,\n },\n branch: {\n paddingLeft: `calc((var(${treeItemLevelToken}, 1) - 1) * ${tokens.spacingHorizontalXXL})`,\n },\n medium: {\n ...typographyStyles.body1,\n },\n small: {\n minHeight: '24px',\n ...typographyStyles.caption1,\n },\n // Appearance variations\n subtle: {},\n 'subtle-alpha': {\n ':hover': {\n backgroundColor: tokens.colorSubtleBackgroundLightAlphaHover,\n },\n ':active': {\n backgroundColor: tokens.colorSubtleBackgroundLightAlphaPressed,\n },\n },\n transparent: {\n backgroundColor: tokens.colorTransparentBackground,\n ':hover': {\n backgroundColor: tokens.colorTransparentBackgroundHover,\n },\n ':active': {\n backgroundColor: tokens.colorTransparentBackgroundPressed,\n },\n },\n});\n\n/**\n * Styles for the action icon slot\n */\nconst useActionsBaseStyles = makeResetStyles({\n display: 'flex',\n marginLeft: 'auto',\n position: 'relative',\n zIndex: 1,\n gridArea: 'aside',\n padding: `0 ${tokens.spacingHorizontalS}`,\n});\n/**\n * Styles for the action icon slot\n */\nconst useAsideBaseStyles = makeResetStyles({\n display: 'flex',\n marginLeft: 'auto',\n alignItems: 'center',\n zIndex: 0,\n gridArea: 'aside',\n padding: `0 ${tokens.spacingHorizontalM}`,\n gap: tokens.spacingHorizontalXS,\n});\n\n/**\n * Styles for the expand icon slot\n */\nconst useExpandIconBaseStyles = makeResetStyles({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n minWidth: '24px',\n boxSizing: 'border-box',\n color: tokens.colorNeutralForeground3,\n flex: `0 0 auto`,\n padding: `${tokens.spacingVerticalXS} 0`,\n});\n\n/**\n * Styles for the content slot\n */\nconst useMainBaseStyles = makeResetStyles({\n padding: `0 ${tokens.spacingHorizontalXXS}`,\n});\n\n/**\n * Styles for the before/after icon slot\n */\nconst useIconBaseStyles = makeResetStyles({\n display: 'flex',\n alignItems: 'center',\n color: tokens.colorNeutralForeground2,\n lineHeight: tokens.lineHeightBase500,\n fontSize: tokens.fontSizeBase500,\n});\n\nconst useIconBeforeStyles = makeStyles({\n medium: {\n paddingRight: tokens.spacingHorizontalXS,\n },\n small: {\n paddingRight: tokens.spacingHorizontalXXS,\n },\n});\n\nconst useIconAfterStyles = makeStyles({\n medium: {\n paddingLeft: tokens.spacingHorizontalXS,\n },\n small: {\n paddingLeft: tokens.spacingHorizontalXXS,\n },\n});\n\n/**\n * Apply styling to the TreeItemLayout slots based on the state\n */\nexport const useTreeItemLayoutStyles_unstable = (state: TreeItemLayoutState): TreeItemLayoutState => {\n 'use no memo';\n\n const { main, iconAfter, iconBefore, expandIcon, root, aside, actions, selector } = state;\n const rootStyles = useRootStyles();\n const rootBaseStyles = useRootBaseStyles();\n const actionsBaseStyles = useActionsBaseStyles();\n const asideBaseStyles = useAsideBaseStyles();\n\n const mainBaseStyles = useMainBaseStyles();\n\n const expandIconBaseStyles = useExpandIconBaseStyles();\n const iconBaseStyles = useIconBaseStyles();\n const iconBeforeStyles = useIconBeforeStyles();\n const iconAfterStyles = useIconAfterStyles();\n\n const size = useTreeContext_unstable(ctx => ctx.size);\n const appearance = useTreeContext_unstable(ctx => ctx.appearance);\n const itemType = useTreeItemContext_unstable(ctx => ctx.itemType);\n\n root.className = mergeClasses(\n treeItemLayoutClassNames.root,\n rootBaseStyles,\n rootStyles[appearance],\n rootStyles[size],\n rootStyles[itemType],\n root.className,\n );\n\n main.className = mergeClasses(treeItemLayoutClassNames.main, mainBaseStyles, main.className);\n\n if (expandIcon) {\n expandIcon.className = mergeClasses(\n treeItemLayoutClassNames.expandIcon,\n expandIconBaseStyles,\n expandIcon.className,\n );\n }\n\n if (iconBefore) {\n iconBefore.className = mergeClasses(\n treeItemLayoutClassNames.iconBefore,\n iconBaseStyles,\n iconBeforeStyles[size],\n iconBefore.className,\n );\n }\n\n if (iconAfter) {\n iconAfter.className = mergeClasses(\n treeItemLayoutClassNames.iconAfter,\n iconBaseStyles,\n iconAfterStyles[size],\n iconAfter.className,\n );\n }\n\n if (actions) {\n actions.className = mergeClasses(treeItemLayoutClassNames.actions, actionsBaseStyles, actions.className);\n }\n if (aside) {\n aside.className = mergeClasses(treeItemLayoutClassNames.aside, asideBaseStyles, aside.className);\n }\n if (selector) {\n selector.className = mergeClasses(treeItemLayoutClassNames.selector, selector.className);\n }\n\n return state;\n};\n"],"names":["makeResetStyles","makeStyles","mergeClasses","tokens","typographyStyles","useTreeContext_unstable","treeItemLevelToken","useTreeItemContext_unstable","treeItemLayoutClassNames","root","iconBefore","main","iconAfter","expandIcon","aside","actions","selector","useRootBaseStyles","display","alignItems","minHeight","boxSizing","gridArea","color","colorNeutralForeground2Hover","backgroundColor","colorSubtleBackgroundHover","colorNeutralForeground3Hover","colorNeutralForeground2Pressed","colorSubtleBackgroundPressed","colorNeutralForeground3Pressed","useRootStyles","leaf","paddingLeft","spacingHorizontalXXL","branch","medium","body1","small","caption1","subtle","colorSubtleBackgroundLightAlphaHover","colorSubtleBackgroundLightAlphaPressed","transparent","colorTransparentBackground","colorTransparentBackgroundHover","colorTransparentBackgroundPressed","useActionsBaseStyles","marginLeft","position","zIndex","padding","spacingHorizontalS","useAsideBaseStyles","spacingHorizontalM","gap","spacingHorizontalXS","useExpandIconBaseStyles","justifyContent","minWidth","colorNeutralForeground3","flex","spacingVerticalXS","useMainBaseStyles","spacingHorizontalXXS","useIconBaseStyles","colorNeutralForeground2","lineHeight","lineHeightBase500","fontSize","fontSizeBase500","useIconBeforeStyles","paddingRight","useIconAfterStyles","useTreeItemLayoutStyles_unstable","state","rootStyles","rootBaseStyles","actionsBaseStyles","asideBaseStyles","mainBaseStyles","expandIconBaseStyles","iconBaseStyles","iconBeforeStyles","iconAfterStyles","size","ctx","appearance","itemType","className"],"mappings":"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"}
1
+ {"version":3,"sources":["../src/components/TreeItemLayout/useTreeItemLayoutStyles.styles.ts"],"sourcesContent":["'use client';\n\nimport { makeResetStyles, makeStyles, mergeClasses } from '@griffel/react';\nimport type { TreeItemLayoutSlots, TreeItemLayoutState } from './TreeItemLayout.types';\nimport type { SlotClassNames } from '@fluentui/react-utilities';\nimport { tokens, typographyStyles } from '@fluentui/react-theme';\nimport { useTreeContext_unstable } from '../../contexts/treeContext';\nimport { treeItemLevelToken } from '../../utils/tokens';\nimport { useTreeItemContext_unstable } from '../../contexts/treeItemContext';\n\nexport const treeItemLayoutClassNames: SlotClassNames<TreeItemLayoutSlots> = {\n root: 'fui-TreeItemLayout',\n iconBefore: 'fui-TreeItemLayout__iconBefore',\n main: 'fui-TreeItemLayout__main',\n iconAfter: 'fui-TreeItemLayout__iconAfter',\n expandIcon: 'fui-TreeItemLayout__expandIcon',\n aside: 'fui-TreeItemLayout__aside',\n actions: 'fui-TreeItemLayout__actions',\n selector: 'fui-TreeItemLayout__selector',\n};\n\nconst useRootBaseStyles = makeResetStyles({\n display: 'flex',\n alignItems: 'center',\n minHeight: '32px',\n boxSizing: 'border-box',\n gridArea: 'layout',\n ':hover': {\n color: tokens.colorNeutralForeground2Hover,\n backgroundColor: tokens.colorSubtleBackgroundHover,\n // TODO: stop using treeItemLayoutClassNames.expandIcon for styling\n [`& .${treeItemLayoutClassNames.expandIcon}`]: {\n color: tokens.colorNeutralForeground3Hover,\n },\n },\n ':active': {\n color: tokens.colorNeutralForeground2Pressed,\n backgroundColor: tokens.colorSubtleBackgroundPressed,\n // TODO: stop using treeItemLayoutClassNames.expandIcon for styling\n [`& .${treeItemLayoutClassNames.expandIcon}`]: {\n color: tokens.colorNeutralForeground3Pressed,\n },\n },\n});\n\n/**\n * Styles for the root slot\n */\nconst useRootStyles = makeStyles({\n leaf: {\n paddingLeft: `calc(var(${treeItemLevelToken}, 1) * ${tokens.spacingHorizontalXXL})`,\n },\n branch: {\n paddingLeft: `calc((var(${treeItemLevelToken}, 1) - 1) * ${tokens.spacingHorizontalXXL})`,\n },\n medium: {\n ...typographyStyles.body1,\n },\n small: {\n minHeight: '24px',\n ...typographyStyles.caption1,\n },\n // Appearance variations\n subtle: {},\n 'subtle-alpha': {\n ':hover': {\n backgroundColor: tokens.colorSubtleBackgroundLightAlphaHover,\n },\n ':active': {\n backgroundColor: tokens.colorSubtleBackgroundLightAlphaPressed,\n },\n },\n transparent: {\n backgroundColor: tokens.colorTransparentBackground,\n ':hover': {\n backgroundColor: tokens.colorTransparentBackgroundHover,\n },\n ':active': {\n backgroundColor: tokens.colorTransparentBackgroundPressed,\n },\n },\n});\n\n/**\n * Styles for the action icon slot\n */\nconst useActionsBaseStyles = makeResetStyles({\n display: 'flex',\n marginLeft: 'auto',\n position: 'relative',\n zIndex: 1,\n gridArea: 'aside',\n padding: `0 ${tokens.spacingHorizontalS}`,\n});\n/**\n * Styles for the action icon slot\n */\nconst useAsideBaseStyles = makeResetStyles({\n display: 'flex',\n marginLeft: 'auto',\n alignItems: 'center',\n zIndex: 0,\n gridArea: 'aside',\n padding: `0 ${tokens.spacingHorizontalM}`,\n gap: tokens.spacingHorizontalXS,\n});\n\n/**\n * Styles for the expand icon slot\n */\nconst useExpandIconBaseStyles = makeResetStyles({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n minWidth: '24px',\n boxSizing: 'border-box',\n color: tokens.colorNeutralForeground3,\n flex: `0 0 auto`,\n padding: `${tokens.spacingVerticalXS} 0`,\n});\n\n/**\n * Styles for the content slot\n */\nconst useMainBaseStyles = makeResetStyles({\n padding: `0 ${tokens.spacingHorizontalXXS}`,\n});\n\n/**\n * Styles for the before/after icon slot\n */\nconst useIconBaseStyles = makeResetStyles({\n display: 'flex',\n alignItems: 'center',\n color: tokens.colorNeutralForeground2,\n lineHeight: tokens.lineHeightBase500,\n fontSize: tokens.fontSizeBase500,\n});\n\nconst useIconBeforeStyles = makeStyles({\n medium: {\n paddingRight: tokens.spacingHorizontalXS,\n },\n small: {\n paddingRight: tokens.spacingHorizontalXXS,\n },\n});\n\nconst useIconAfterStyles = makeStyles({\n medium: {\n paddingLeft: tokens.spacingHorizontalXS,\n },\n small: {\n paddingLeft: tokens.spacingHorizontalXXS,\n },\n});\n\n/**\n * Apply styling to the TreeItemLayout slots based on the state\n */\nexport const useTreeItemLayoutStyles_unstable = (state: TreeItemLayoutState): TreeItemLayoutState => {\n 'use no memo';\n\n const { main, iconAfter, iconBefore, expandIcon, root, aside, actions, selector } = state;\n const rootStyles = useRootStyles();\n const rootBaseStyles = useRootBaseStyles();\n const actionsBaseStyles = useActionsBaseStyles();\n const asideBaseStyles = useAsideBaseStyles();\n\n const mainBaseStyles = useMainBaseStyles();\n\n const expandIconBaseStyles = useExpandIconBaseStyles();\n const iconBaseStyles = useIconBaseStyles();\n const iconBeforeStyles = useIconBeforeStyles();\n const iconAfterStyles = useIconAfterStyles();\n\n const size = useTreeContext_unstable(ctx => ctx.size);\n const appearance = useTreeContext_unstable(ctx => ctx.appearance);\n const itemType = useTreeItemContext_unstable(ctx => ctx.itemType);\n\n // eslint-disable-next-line react-hooks/immutability\n root.className = mergeClasses(\n treeItemLayoutClassNames.root,\n rootBaseStyles,\n rootStyles[appearance],\n rootStyles[size],\n rootStyles[itemType],\n root.className,\n );\n\n // eslint-disable-next-line react-hooks/immutability\n main.className = mergeClasses(treeItemLayoutClassNames.main, mainBaseStyles, main.className);\n\n if (expandIcon) {\n // eslint-disable-next-line react-hooks/immutability\n expandIcon.className = mergeClasses(\n treeItemLayoutClassNames.expandIcon,\n expandIconBaseStyles,\n expandIcon.className,\n );\n }\n\n if (iconBefore) {\n // eslint-disable-next-line react-hooks/immutability\n iconBefore.className = mergeClasses(\n treeItemLayoutClassNames.iconBefore,\n iconBaseStyles,\n iconBeforeStyles[size],\n iconBefore.className,\n );\n }\n\n if (iconAfter) {\n // eslint-disable-next-line react-hooks/immutability\n iconAfter.className = mergeClasses(\n treeItemLayoutClassNames.iconAfter,\n iconBaseStyles,\n iconAfterStyles[size],\n iconAfter.className,\n );\n }\n\n if (actions) {\n // eslint-disable-next-line react-hooks/immutability\n actions.className = mergeClasses(treeItemLayoutClassNames.actions, actionsBaseStyles, actions.className);\n }\n if (aside) {\n // eslint-disable-next-line react-hooks/immutability\n aside.className = mergeClasses(treeItemLayoutClassNames.aside, asideBaseStyles, aside.className);\n }\n if (selector) {\n // eslint-disable-next-line react-hooks/immutability\n selector.className = mergeClasses(treeItemLayoutClassNames.selector, selector.className);\n }\n\n return state;\n};\n"],"names":["makeResetStyles","makeStyles","mergeClasses","tokens","typographyStyles","useTreeContext_unstable","treeItemLevelToken","useTreeItemContext_unstable","treeItemLayoutClassNames","root","iconBefore","main","iconAfter","expandIcon","aside","actions","selector","useRootBaseStyles","display","alignItems","minHeight","boxSizing","gridArea","color","colorNeutralForeground2Hover","backgroundColor","colorSubtleBackgroundHover","colorNeutralForeground3Hover","colorNeutralForeground2Pressed","colorSubtleBackgroundPressed","colorNeutralForeground3Pressed","useRootStyles","leaf","paddingLeft","spacingHorizontalXXL","branch","medium","body1","small","caption1","subtle","colorSubtleBackgroundLightAlphaHover","colorSubtleBackgroundLightAlphaPressed","transparent","colorTransparentBackground","colorTransparentBackgroundHover","colorTransparentBackgroundPressed","useActionsBaseStyles","marginLeft","position","zIndex","padding","spacingHorizontalS","useAsideBaseStyles","spacingHorizontalM","gap","spacingHorizontalXS","useExpandIconBaseStyles","justifyContent","minWidth","colorNeutralForeground3","flex","spacingVerticalXS","useMainBaseStyles","spacingHorizontalXXS","useIconBaseStyles","colorNeutralForeground2","lineHeight","lineHeightBase500","fontSize","fontSizeBase500","useIconBeforeStyles","paddingRight","useIconAfterStyles","useTreeItemLayoutStyles_unstable","state","rootStyles","rootBaseStyles","actionsBaseStyles","asideBaseStyles","mainBaseStyles","expandIconBaseStyles","iconBaseStyles","iconBeforeStyles","iconAfterStyles","size","ctx","appearance","itemType","className"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/TreeItemPersonaLayout/TreeItemPersonaLayout.types.ts"],"sourcesContent":["import type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';\nimport type { AvatarContextValue, AvatarSize } from '@fluentui/react-avatar';\nimport { ButtonContextValue } from '@fluentui/react-button';\nimport { TreeItemLayoutSlots } from '../TreeItemLayout/TreeItemLayout.types';\n\nexport type TreeItemPersonaLayoutContextValues = {\n avatar: AvatarContextValue;\n};\n\nexport type TreeItemPersonaLayoutSlots = Pick<TreeItemLayoutSlots, 'actions' | 'aside' | 'expandIcon' | 'selector'> & {\n root: NonNullable<Slot<'div'>>;\n /**\n * Avatar to display.\n */\n media: NonNullable<Slot<'div'>>;\n /**\n * Content. Children of the root slot are automatically rendered here\n */\n main: NonNullable<Slot<'div'>>;\n /**\n * Secondary text that describes or complements the content\n */\n description?: Slot<'div'>;\n};\n\n/**\n * TreeItemPersonaLayout Props\n */\nexport type TreeItemPersonaLayoutProps = ComponentProps<Partial<TreeItemPersonaLayoutSlots>>;\n\n/**\n * State used in rendering TreeItemPersonaLayout\n */\nexport type TreeItemPersonaLayoutState = ComponentState<TreeItemPersonaLayoutSlots> & {\n avatarSize: AvatarSize;\n buttonContextValue: ButtonContextValue;\n};\n"],"names":[],"mappings":"AA8BA;;CAEC,GACD,WAGE"}
1
+ {"version":3,"sources":["../src/components/TreeItemPersonaLayout/TreeItemPersonaLayout.types.ts"],"sourcesContent":["import type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';\nimport type { AvatarContextValue, AvatarSize } from '@fluentui/react-avatar';\nimport type { ButtonContextValue } from '@fluentui/react-button';\nimport type { TreeItemLayoutSlots } from '../TreeItemLayout/TreeItemLayout.types';\n\nexport type TreeItemPersonaLayoutContextValues = {\n avatar: AvatarContextValue;\n};\n\nexport type TreeItemPersonaLayoutSlots = Pick<TreeItemLayoutSlots, 'actions' | 'aside' | 'expandIcon' | 'selector'> & {\n root: NonNullable<Slot<'div'>>;\n /**\n * Avatar to display.\n */\n media: NonNullable<Slot<'div'>>;\n /**\n * Content. Children of the root slot are automatically rendered here\n */\n main: NonNullable<Slot<'div'>>;\n /**\n * Secondary text that describes or complements the content\n */\n description?: Slot<'div'>;\n};\n\n/**\n * TreeItemPersonaLayout Props\n */\nexport type TreeItemPersonaLayoutProps = ComponentProps<Partial<TreeItemPersonaLayoutSlots>>;\n\n/**\n * State used in rendering TreeItemPersonaLayout\n */\nexport type TreeItemPersonaLayoutState = ComponentState<TreeItemPersonaLayoutSlots> & {\n avatarSize: AvatarSize;\n buttonContextValue: ButtonContextValue;\n};\n"],"names":[],"mappings":"AA8BA;;CAEC,GACD,WAGE"}
@@ -9,8 +9,6 @@ Object.defineProperty(exports, "useTreeItemPersonaLayout_unstable", {
9
9
  return useTreeItemPersonaLayout_unstable;
10
10
  }
11
11
  });
12
- const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
13
- const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
14
12
  const _reactutilities = require("@fluentui/react-utilities");
15
13
  const _contexts = require("../../contexts");
16
14
  const _tokens = require("../../utils/tokens");
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.ts"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport type { TreeItemPersonaLayoutProps, TreeItemPersonaLayoutState } from './TreeItemPersonaLayout.types';\nimport { slot } from '@fluentui/react-utilities';\nimport { useTreeContext_unstable } from '../../contexts';\nimport { treeAvatarSize } from '../../utils/tokens';\nimport { useTreeItemLayout_unstable } from '../TreeItemLayout/useTreeItemLayout';\nimport { Checkbox, CheckboxProps } from '@fluentui/react-checkbox';\nimport { Radio, RadioProps } from '@fluentui/react-radio';\n\n/**\n * Create the state required to render TreeItemPersonaLayout.\n *\n * The returned state can be modified with hooks such as useTreeItemPersonaLayoutStyles_unstable,\n * before being passed to renderTreeItemPersonaLayout_unstable.\n *\n * @param props - props from this instance of TreeItemPersonaLayout\n * @param ref - reference to root HTMLElement of TreeItemPersonaLayout\n */\nexport const useTreeItemPersonaLayout_unstable = (\n props: TreeItemPersonaLayoutProps,\n ref: React.Ref<HTMLSpanElement>,\n): TreeItemPersonaLayoutState => {\n const { media, children, main, description } = props;\n\n const treeItemLayoutState = useTreeItemLayout_unstable(\n {\n ...props,\n iconBefore: null,\n iconAfter: null,\n },\n ref,\n );\n\n const size = useTreeContext_unstable(ctx => ctx.size);\n const selectionMode = useTreeContext_unstable(ctx => ctx.selectionMode);\n\n return {\n ...treeItemLayoutState,\n components: {\n expandIcon: 'div',\n main: 'div',\n description: 'div',\n root: 'div',\n media: 'div',\n aside: 'div',\n actions: 'div',\n // Casting here to a union between checkbox and radio\n selector: (selectionMode === 'multiselect' ? Checkbox : Radio) as React.ElementType<CheckboxProps | RadioProps>,\n },\n avatarSize: treeAvatarSize[size],\n main: slot.always(main, { defaultProps: { children }, elementType: 'div' }),\n media: slot.always(media, { elementType: 'div' }),\n description: slot.optional(description, { elementType: 'div' }),\n };\n};\n"],"names":["React","slot","useTreeContext_unstable","treeAvatarSize","useTreeItemLayout_unstable","Checkbox","Radio","useTreeItemPersonaLayout_unstable","props","ref","media","children","main","description","treeItemLayoutState","iconBefore","iconAfter","size","ctx","selectionMode","components","expandIcon","root","aside","actions","selector","avatarSize","always","defaultProps","elementType","optional"],"mappings":"AAAA;;;;;+BAoBaO;;;;;;;iEAlBU,QAAQ;gCAEV,4BAA4B;0BACT,iBAAiB;wBAC1B,qBAAqB;mCACT,sCAAsC;+BACzC,2BAA2B;4BACjC,wBAAwB;AAWnD,0CAA0C,CAC/CC,OACAC;IAEA,MAAM,EAAEC,KAAK,EAAEC,QAAQ,EAAEC,IAAI,EAAEC,WAAW,EAAE,GAAGL;IAE/C,MAAMM,0BAAsBV,6CAAAA,EAC1B;QACE,GAAGI,KAAK;QACRO,YAAY;QACZC,WAAW;IACb,GACAP;IAGF,MAAMQ,WAAOf,iCAAAA,EAAwBgB,CAAAA,MAAOA,IAAID,IAAI;IACpD,MAAME,oBAAgBjB,iCAAAA,EAAwBgB,CAAAA,MAAOA,IAAIC,aAAa;IAEtE,OAAO;QACL,GAAGL,mBAAmB;QACtBM,YAAY;YACVC,YAAY;YACZT,MAAM;YACNC,aAAa;YACbS,MAAM;YACNZ,OAAO;YACPa,OAAO;YACPC,SAAS;YACT,qDAAqD;YACrDC,UAAWN,kBAAkB,gBAAgBd,uBAAAA,GAAWC,iBAAAA;QAC1D;QACAoB,YAAYvB,sBAAc,CAACc,KAAK;QAChCL,MAAMX,oBAAAA,CAAK0B,MAAM,CAACf,MAAM;YAAEgB,cAAc;gBAAEjB;YAAS;YAAGkB,aAAa;QAAM;QACzEnB,OAAOT,oBAAAA,CAAK0B,MAAM,CAACjB,OAAO;YAAEmB,aAAa;QAAM;QAC/ChB,aAAaZ,oBAAAA,CAAK6B,QAAQ,CAACjB,aAAa;YAAEgB,aAAa;QAAM;IAC/D;AACF,EAAE"}
1
+ {"version":3,"sources":["../src/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.ts"],"sourcesContent":["'use client';\n\nimport type * as React from 'react';\nimport type { TreeItemPersonaLayoutProps, TreeItemPersonaLayoutState } from './TreeItemPersonaLayout.types';\nimport { slot } from '@fluentui/react-utilities';\nimport { useTreeContext_unstable } from '../../contexts';\nimport { treeAvatarSize } from '../../utils/tokens';\nimport { useTreeItemLayout_unstable } from '../TreeItemLayout/useTreeItemLayout';\nimport type { CheckboxProps } from '@fluentui/react-checkbox';\nimport { Checkbox } from '@fluentui/react-checkbox';\nimport type { RadioProps } from '@fluentui/react-radio';\nimport { Radio } from '@fluentui/react-radio';\n\n/**\n * Create the state required to render TreeItemPersonaLayout.\n *\n * The returned state can be modified with hooks such as useTreeItemPersonaLayoutStyles_unstable,\n * before being passed to renderTreeItemPersonaLayout_unstable.\n *\n * @param props - props from this instance of TreeItemPersonaLayout\n * @param ref - reference to root HTMLElement of TreeItemPersonaLayout\n */\nexport const useTreeItemPersonaLayout_unstable = (\n props: TreeItemPersonaLayoutProps,\n ref: React.Ref<HTMLSpanElement>,\n): TreeItemPersonaLayoutState => {\n const { media, children, main, description } = props;\n\n const treeItemLayoutState = useTreeItemLayout_unstable(\n {\n ...props,\n iconBefore: null,\n iconAfter: null,\n },\n ref,\n );\n\n const size = useTreeContext_unstable(ctx => ctx.size);\n const selectionMode = useTreeContext_unstable(ctx => ctx.selectionMode);\n\n return {\n ...treeItemLayoutState,\n components: {\n expandIcon: 'div',\n main: 'div',\n description: 'div',\n root: 'div',\n media: 'div',\n aside: 'div',\n actions: 'div',\n // Casting here to a union between checkbox and radio\n selector: (selectionMode === 'multiselect' ? Checkbox : Radio) as React.ElementType<CheckboxProps | RadioProps>,\n },\n avatarSize: treeAvatarSize[size],\n main: slot.always(main, { defaultProps: { children }, elementType: 'div' }),\n media: slot.always(media, { elementType: 'div' }),\n description: slot.optional(description, { elementType: 'div' }),\n };\n};\n"],"names":["slot","useTreeContext_unstable","treeAvatarSize","useTreeItemLayout_unstable","Checkbox","Radio","useTreeItemPersonaLayout_unstable","props","ref","media","children","main","description","treeItemLayoutState","iconBefore","iconAfter","size","ctx","selectionMode","components","expandIcon","root","aside","actions","selector","avatarSize","always","defaultProps","elementType","optional"],"mappings":"AAAA;;;;;+BAsBaM;;;;;;gCAlBQ,4BAA4B;0BACT,iBAAiB;wBAC1B,qBAAqB;mCACT,sCAAsC;+BAExD,2BAA2B;4BAE9B,wBAAwB;AAWvC,0CAA0C,CAC/CC,OACAC;IAEA,MAAM,EAAEC,KAAK,EAAEC,QAAQ,EAAEC,IAAI,EAAEC,WAAW,EAAE,GAAGL;IAE/C,MAAMM,0BAAsBV,6CAAAA,EAC1B;QACE,GAAGI,KAAK;QACRO,YAAY;QACZC,WAAW;IACb,GACAP;IAGF,MAAMQ,WAAOf,iCAAAA,EAAwBgB,CAAAA,MAAOA,IAAID,IAAI;IACpD,MAAME,oBAAgBjB,iCAAAA,EAAwBgB,CAAAA,MAAOA,IAAIC,aAAa;IAEtE,OAAO;QACL,GAAGL,mBAAmB;QACtBM,YAAY;YACVC,YAAY;YACZT,MAAM;YACNC,aAAa;YACbS,MAAM;YACNZ,OAAO;YACPa,OAAO;YACPC,SAAS;YACT,qDAAqD;YACrDC,UAAWN,kBAAkB,gBAAgBd,uBAAAA,GAAWC,iBAAAA;QAC1D;QACAoB,YAAYvB,sBAAc,CAACc,KAAK;QAChCL,MAAMX,oBAAAA,CAAK0B,MAAM,CAACf,MAAM;YAAEgB,cAAc;gBAAEjB;YAAS;YAAGkB,aAAa;QAAM;QACzEnB,OAAOT,oBAAAA,CAAK0B,MAAM,CAACjB,OAAO;YAAEmB,aAAa;QAAM;QAC/ChB,aAAaZ,oBAAAA,CAAK6B,QAAQ,CAACjB,aAAa;YAAEgB,aAAa;QAAM;IAC/D;AACF,EAAE"}
@@ -171,24 +171,32 @@ const useTreeItemPersonaLayoutStyles_unstable = (state)=>{
171
171
  const size = (0, _treeContext.useTreeContext_unstable)((ctx)=>ctx.size);
172
172
  const appearance = (0, _treeContext.useTreeContext_unstable)((ctx)=>ctx.appearance);
173
173
  const itemType = (0, _treeItemContext.useTreeItemContext_unstable)((ctx)=>ctx.itemType);
174
+ // eslint-disable-next-line react-hooks/immutability
174
175
  state.root.className = (0, _react.mergeClasses)(treeItemPersonaLayoutClassNames.root, rootBaseStyles, rootStyles[itemType], rootStyles[appearance], rootStyles[size], state.root.className);
176
+ // eslint-disable-next-line react-hooks/immutability
175
177
  state.media.className = (0, _react.mergeClasses)(treeItemPersonaLayoutClassNames.media, mediaBaseStyles, state.media.className);
176
178
  if (state.main) {
179
+ // eslint-disable-next-line react-hooks/immutability
177
180
  state.main.className = (0, _react.mergeClasses)(treeItemPersonaLayoutClassNames.main, mainBaseStyles, state.description && mainStyles.withDescription, state.main.className);
178
181
  }
179
182
  if (state.description) {
183
+ // eslint-disable-next-line react-hooks/immutability
180
184
  state.description.className = (0, _react.mergeClasses)(treeItemPersonaLayoutClassNames.description, descriptionBaseStyles, state.description.className);
181
185
  }
182
186
  if (state.actions) {
187
+ // eslint-disable-next-line react-hooks/immutability
183
188
  state.actions.className = (0, _react.mergeClasses)(treeItemPersonaLayoutClassNames.actions, actionsBaseStyles, state.actions.className);
184
189
  }
185
190
  if (state.aside) {
191
+ // eslint-disable-next-line react-hooks/immutability
186
192
  state.aside.className = (0, _react.mergeClasses)(treeItemPersonaLayoutClassNames.aside, asideBaseStyles, state.aside.className);
187
193
  }
188
194
  if (state.expandIcon) {
195
+ // eslint-disable-next-line react-hooks/immutability
189
196
  state.expandIcon.className = (0, _react.mergeClasses)(treeItemPersonaLayoutClassNames.expandIcon, expandIconBaseStyles, state.expandIcon.className);
190
197
  }
191
198
  if (state.selector) {
199
+ // eslint-disable-next-line react-hooks/immutability
192
200
  state.selector.className = (0, _react.mergeClasses)(treeItemPersonaLayoutClassNames.selector, state.selector.className);
193
201
  }
194
202
  return state;
@@ -1 +1 @@
1
- {"version":3,"sources":["useTreeItemPersonaLayoutStyles.styles.js"],"sourcesContent":["'use client';\nimport { makeResetStyles, makeStyles, mergeClasses } from '@griffel/react';\nimport { tokens, typographyStyles } from '@fluentui/react-theme';\nimport { treeItemLevelToken } from '../../utils/tokens';\nimport { useTreeItemContext_unstable } from '../../contexts/treeItemContext';\nimport { useTreeContext_unstable } from '../../contexts/treeContext';\nexport const treeItemPersonaLayoutClassNames = {\n root: 'fui-TreeItemPersonaLayout',\n media: 'fui-TreeItemPersonaLayout__media',\n description: 'fui-TreeItemPersonaLayout__description',\n main: 'fui-TreeItemPersonaLayout__main',\n expandIcon: 'fui-TreeItemPersonaLayout__expandIcon',\n aside: 'fui-TreeItemPersonaLayout__aside',\n actions: 'fui-TreeItemPersonaLayout__actions',\n selector: 'fui-TreeItemPersonaLayout__selector'\n};\nconst useRootBaseStyles = makeResetStyles({\n display: 'grid',\n gridTemplateRows: '1fr auto',\n gridTemplateColumns: 'auto auto 1fr auto',\n gridTemplateAreas: `\n \"expandIcon media main aside\"\n \"expandIcon media description aside\"\n `,\n alignItems: 'center',\n ...typographyStyles.body1,\n ':active': {\n color: tokens.colorNeutralForeground2Pressed,\n backgroundColor: tokens.colorSubtleBackgroundPressed,\n // TODO: stop using treeItemPersonaLayoutClassNames.expandIcon for styling\n [`& .${treeItemPersonaLayoutClassNames.expandIcon}`]: {\n color: tokens.colorNeutralForeground3Pressed\n }\n },\n ':hover': {\n color: tokens.colorNeutralForeground2Hover,\n backgroundColor: tokens.colorSubtleBackgroundHover,\n // TODO: stop using treeItemPersonaLayoutClassNames.expandIcon for styling\n [`& .${treeItemPersonaLayoutClassNames.expandIcon}`]: {\n color: tokens.colorNeutralForeground3Hover\n }\n }\n});\n/**\n * Styles for the root slot\n */ const useRootStyles = makeStyles({\n leaf: {\n paddingLeft: `calc(var(${treeItemLevelToken}, 1) * ${tokens.spacingHorizontalXXL})`\n },\n branch: {\n paddingLeft: `calc((var(${treeItemLevelToken}, 1) - 1) * ${tokens.spacingHorizontalXXL})`\n },\n // Size variations\n medium: {\n ...typographyStyles.body1\n },\n small: {\n minHeight: '24px',\n ...typographyStyles.caption1\n },\n // Appearance variations\n subtle: {},\n 'subtle-alpha': {\n ':hover': {\n backgroundColor: tokens.colorSubtleBackgroundLightAlphaHover\n },\n ':active': {\n backgroundColor: tokens.colorSubtleBackgroundLightAlphaPressed\n }\n },\n transparent: {\n backgroundColor: tokens.colorTransparentBackground,\n ':hover': {\n backgroundColor: tokens.colorTransparentBackgroundHover\n },\n ':active': {\n backgroundColor: tokens.colorTransparentBackgroundPressed\n }\n }\n});\n/**\n * Styles for the expand icon slot\n */ const useMediaBaseStyles = makeResetStyles({\n display: 'flex',\n alignItems: 'center',\n width: '32px',\n height: '32px',\n gridArea: 'media',\n padding: `0 ${tokens.spacingHorizontalXS} 0 ${tokens.spacingHorizontalXXS}`\n});\nconst useMainBaseStyles = makeResetStyles({\n gridArea: 'main',\n padding: `${tokens.spacingVerticalMNudge} ${tokens.spacingHorizontalXS} ${tokens.spacingVerticalMNudge} ${tokens.spacingHorizontalS}`\n});\nconst useMainStyles = makeStyles({\n withDescription: {\n padding: `${tokens.spacingVerticalMNudge} ${tokens.spacingHorizontalXS} 0 ${tokens.spacingHorizontalS}`\n }\n});\nconst useDescriptionBaseStyles = makeResetStyles({\n gridArea: 'description',\n ...typographyStyles.caption1,\n padding: `0 ${tokens.spacingHorizontalXS} ${tokens.spacingVerticalMNudge} ${tokens.spacingHorizontalS}`\n});\n/**\n * Styles for the action icon slot\n */ const useActionsBaseStyles = makeResetStyles({\n display: 'flex',\n marginLeft: 'auto',\n position: 'relative',\n zIndex: 1,\n gridArea: 'aside',\n padding: `0 ${tokens.spacingHorizontalS}`\n});\n/**\n * Styles for the action icon slot\n */ const useAsideBaseStyles = makeResetStyles({\n display: 'flex',\n marginLeft: 'auto',\n alignItems: 'center',\n zIndex: 0,\n gridArea: 'aside',\n padding: `0 ${tokens.spacingHorizontalM}`,\n gap: tokens.spacingHorizontalXS\n});\n/**\n * Styles for the expand icon slot\n */ const useExpandIconBaseStyles = makeResetStyles({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n minWidth: '24px',\n boxSizing: 'border-box',\n color: tokens.colorNeutralForeground3,\n gridArea: 'expandIcon',\n flex: `0 0 auto`,\n padding: `${tokens.spacingVerticalXS} 0`\n});\n/**\n * Apply styling to the TreeItemPersonaLayout slots based on the state\n */ export const useTreeItemPersonaLayoutStyles_unstable = (state)=>{\n 'use no memo';\n const rootBaseStyles = useRootBaseStyles();\n const rootStyles = useRootStyles();\n const mediaBaseStyles = useMediaBaseStyles();\n const descriptionBaseStyles = useDescriptionBaseStyles();\n const actionsBaseStyles = useActionsBaseStyles();\n const asideBaseStyles = useAsideBaseStyles();\n const expandIconBaseStyles = useExpandIconBaseStyles();\n const mainBaseStyles = useMainBaseStyles();\n const mainStyles = useMainStyles();\n const size = useTreeContext_unstable((ctx)=>ctx.size);\n const appearance = useTreeContext_unstable((ctx)=>ctx.appearance);\n const itemType = useTreeItemContext_unstable((ctx)=>ctx.itemType);\n state.root.className = mergeClasses(treeItemPersonaLayoutClassNames.root, rootBaseStyles, rootStyles[itemType], rootStyles[appearance], rootStyles[size], state.root.className);\n state.media.className = mergeClasses(treeItemPersonaLayoutClassNames.media, mediaBaseStyles, state.media.className);\n if (state.main) {\n state.main.className = mergeClasses(treeItemPersonaLayoutClassNames.main, mainBaseStyles, state.description && mainStyles.withDescription, state.main.className);\n }\n if (state.description) {\n state.description.className = mergeClasses(treeItemPersonaLayoutClassNames.description, descriptionBaseStyles, state.description.className);\n }\n if (state.actions) {\n state.actions.className = mergeClasses(treeItemPersonaLayoutClassNames.actions, actionsBaseStyles, state.actions.className);\n }\n if (state.aside) {\n state.aside.className = mergeClasses(treeItemPersonaLayoutClassNames.aside, asideBaseStyles, state.aside.className);\n }\n if (state.expandIcon) {\n state.expandIcon.className = mergeClasses(treeItemPersonaLayoutClassNames.expandIcon, expandIconBaseStyles, state.expandIcon.className);\n }\n if (state.selector) {\n state.selector.className = mergeClasses(treeItemPersonaLayoutClassNames.selector, state.selector.className);\n }\n return state;\n};\n"],"names":["__resetStyles","__styles","mergeClasses","tokens","typographyStyles","treeItemLevelToken","useTreeItemContext_unstable","useTreeContext_unstable","treeItemPersonaLayoutClassNames","root","media","description","main","expandIcon","aside","actions","selector","useRootBaseStyles","useRootStyles","leaf","uwmqm3","branch","medium","Bahqtrf","Be2twd7","Bhrd7zp","Bg96gwp","small","sshi5w","subtle","Jwef8y","ecr2s2","transparent","De3pzq","d","h","a","useMediaBaseStyles","useMainBaseStyles","useMainStyles","withDescription","Byoj8tv","z189sj","z8tnut","B0ocmuz","p","useDescriptionBaseStyles","useActionsBaseStyles","useAsideBaseStyles","useExpandIconBaseStyles","useTreeItemPersonaLayoutStyles_unstable","state","rootBaseStyles","rootStyles","mediaBaseStyles","descriptionBaseStyles","actionsBaseStyles","asideBaseStyles","expandIconBaseStyles","mainBaseStyles","mainStyles","size","ctx","appearance","itemType","className"],"mappings":"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"}
1
+ {"version":3,"sources":["useTreeItemPersonaLayoutStyles.styles.js"],"sourcesContent":["'use client';\nimport { makeResetStyles, makeStyles, mergeClasses } from '@griffel/react';\nimport { tokens, typographyStyles } from '@fluentui/react-theme';\nimport { treeItemLevelToken } from '../../utils/tokens';\nimport { useTreeItemContext_unstable } from '../../contexts/treeItemContext';\nimport { useTreeContext_unstable } from '../../contexts/treeContext';\nexport const treeItemPersonaLayoutClassNames = {\n root: 'fui-TreeItemPersonaLayout',\n media: 'fui-TreeItemPersonaLayout__media',\n description: 'fui-TreeItemPersonaLayout__description',\n main: 'fui-TreeItemPersonaLayout__main',\n expandIcon: 'fui-TreeItemPersonaLayout__expandIcon',\n aside: 'fui-TreeItemPersonaLayout__aside',\n actions: 'fui-TreeItemPersonaLayout__actions',\n selector: 'fui-TreeItemPersonaLayout__selector'\n};\nconst useRootBaseStyles = makeResetStyles({\n display: 'grid',\n gridTemplateRows: '1fr auto',\n gridTemplateColumns: 'auto auto 1fr auto',\n gridTemplateAreas: `\n \"expandIcon media main aside\"\n \"expandIcon media description aside\"\n `,\n alignItems: 'center',\n ...typographyStyles.body1,\n ':active': {\n color: tokens.colorNeutralForeground2Pressed,\n backgroundColor: tokens.colorSubtleBackgroundPressed,\n // TODO: stop using treeItemPersonaLayoutClassNames.expandIcon for styling\n [`& .${treeItemPersonaLayoutClassNames.expandIcon}`]: {\n color: tokens.colorNeutralForeground3Pressed\n }\n },\n ':hover': {\n color: tokens.colorNeutralForeground2Hover,\n backgroundColor: tokens.colorSubtleBackgroundHover,\n // TODO: stop using treeItemPersonaLayoutClassNames.expandIcon for styling\n [`& .${treeItemPersonaLayoutClassNames.expandIcon}`]: {\n color: tokens.colorNeutralForeground3Hover\n }\n }\n});\n/**\n * Styles for the root slot\n */ const useRootStyles = makeStyles({\n leaf: {\n paddingLeft: `calc(var(${treeItemLevelToken}, 1) * ${tokens.spacingHorizontalXXL})`\n },\n branch: {\n paddingLeft: `calc((var(${treeItemLevelToken}, 1) - 1) * ${tokens.spacingHorizontalXXL})`\n },\n // Size variations\n medium: {\n ...typographyStyles.body1\n },\n small: {\n minHeight: '24px',\n ...typographyStyles.caption1\n },\n // Appearance variations\n subtle: {},\n 'subtle-alpha': {\n ':hover': {\n backgroundColor: tokens.colorSubtleBackgroundLightAlphaHover\n },\n ':active': {\n backgroundColor: tokens.colorSubtleBackgroundLightAlphaPressed\n }\n },\n transparent: {\n backgroundColor: tokens.colorTransparentBackground,\n ':hover': {\n backgroundColor: tokens.colorTransparentBackgroundHover\n },\n ':active': {\n backgroundColor: tokens.colorTransparentBackgroundPressed\n }\n }\n});\n/**\n * Styles for the expand icon slot\n */ const useMediaBaseStyles = makeResetStyles({\n display: 'flex',\n alignItems: 'center',\n width: '32px',\n height: '32px',\n gridArea: 'media',\n padding: `0 ${tokens.spacingHorizontalXS} 0 ${tokens.spacingHorizontalXXS}`\n});\nconst useMainBaseStyles = makeResetStyles({\n gridArea: 'main',\n padding: `${tokens.spacingVerticalMNudge} ${tokens.spacingHorizontalXS} ${tokens.spacingVerticalMNudge} ${tokens.spacingHorizontalS}`\n});\nconst useMainStyles = makeStyles({\n withDescription: {\n padding: `${tokens.spacingVerticalMNudge} ${tokens.spacingHorizontalXS} 0 ${tokens.spacingHorizontalS}`\n }\n});\nconst useDescriptionBaseStyles = makeResetStyles({\n gridArea: 'description',\n ...typographyStyles.caption1,\n padding: `0 ${tokens.spacingHorizontalXS} ${tokens.spacingVerticalMNudge} ${tokens.spacingHorizontalS}`\n});\n/**\n * Styles for the action icon slot\n */ const useActionsBaseStyles = makeResetStyles({\n display: 'flex',\n marginLeft: 'auto',\n position: 'relative',\n zIndex: 1,\n gridArea: 'aside',\n padding: `0 ${tokens.spacingHorizontalS}`\n});\n/**\n * Styles for the action icon slot\n */ const useAsideBaseStyles = makeResetStyles({\n display: 'flex',\n marginLeft: 'auto',\n alignItems: 'center',\n zIndex: 0,\n gridArea: 'aside',\n padding: `0 ${tokens.spacingHorizontalM}`,\n gap: tokens.spacingHorizontalXS\n});\n/**\n * Styles for the expand icon slot\n */ const useExpandIconBaseStyles = makeResetStyles({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n minWidth: '24px',\n boxSizing: 'border-box',\n color: tokens.colorNeutralForeground3,\n gridArea: 'expandIcon',\n flex: `0 0 auto`,\n padding: `${tokens.spacingVerticalXS} 0`\n});\n/**\n * Apply styling to the TreeItemPersonaLayout slots based on the state\n */ export const useTreeItemPersonaLayoutStyles_unstable = (state)=>{\n 'use no memo';\n const rootBaseStyles = useRootBaseStyles();\n const rootStyles = useRootStyles();\n const mediaBaseStyles = useMediaBaseStyles();\n const descriptionBaseStyles = useDescriptionBaseStyles();\n const actionsBaseStyles = useActionsBaseStyles();\n const asideBaseStyles = useAsideBaseStyles();\n const expandIconBaseStyles = useExpandIconBaseStyles();\n const mainBaseStyles = useMainBaseStyles();\n const mainStyles = useMainStyles();\n const size = useTreeContext_unstable((ctx)=>ctx.size);\n const appearance = useTreeContext_unstable((ctx)=>ctx.appearance);\n const itemType = useTreeItemContext_unstable((ctx)=>ctx.itemType);\n // eslint-disable-next-line react-hooks/immutability\n state.root.className = mergeClasses(treeItemPersonaLayoutClassNames.root, rootBaseStyles, rootStyles[itemType], rootStyles[appearance], rootStyles[size], state.root.className);\n // eslint-disable-next-line react-hooks/immutability\n state.media.className = mergeClasses(treeItemPersonaLayoutClassNames.media, mediaBaseStyles, state.media.className);\n if (state.main) {\n // eslint-disable-next-line react-hooks/immutability\n state.main.className = mergeClasses(treeItemPersonaLayoutClassNames.main, mainBaseStyles, state.description && mainStyles.withDescription, state.main.className);\n }\n if (state.description) {\n // eslint-disable-next-line react-hooks/immutability\n state.description.className = mergeClasses(treeItemPersonaLayoutClassNames.description, descriptionBaseStyles, state.description.className);\n }\n if (state.actions) {\n // eslint-disable-next-line react-hooks/immutability\n state.actions.className = mergeClasses(treeItemPersonaLayoutClassNames.actions, actionsBaseStyles, state.actions.className);\n }\n if (state.aside) {\n // eslint-disable-next-line react-hooks/immutability\n state.aside.className = mergeClasses(treeItemPersonaLayoutClassNames.aside, asideBaseStyles, state.aside.className);\n }\n if (state.expandIcon) {\n // eslint-disable-next-line react-hooks/immutability\n state.expandIcon.className = mergeClasses(treeItemPersonaLayoutClassNames.expandIcon, expandIconBaseStyles, state.expandIcon.className);\n }\n if (state.selector) {\n // eslint-disable-next-line react-hooks/immutability\n state.selector.className = mergeClasses(treeItemPersonaLayoutClassNames.selector, state.selector.className);\n }\n return state;\n};\n"],"names":["__resetStyles","__styles","mergeClasses","tokens","typographyStyles","treeItemLevelToken","useTreeItemContext_unstable","useTreeContext_unstable","treeItemPersonaLayoutClassNames","root","media","description","main","expandIcon","aside","actions","selector","useRootBaseStyles","useRootStyles","leaf","uwmqm3","branch","medium","Bahqtrf","Be2twd7","Bhrd7zp","Bg96gwp","small","sshi5w","subtle","Jwef8y","ecr2s2","transparent","De3pzq","d","h","a","useMediaBaseStyles","useMainBaseStyles","useMainStyles","withDescription","Byoj8tv","z189sj","z8tnut","B0ocmuz","p","useDescriptionBaseStyles","useActionsBaseStyles","useAsideBaseStyles","useExpandIconBaseStyles","useTreeItemPersonaLayoutStyles_unstable","state","rootBaseStyles","rootStyles","mediaBaseStyles","descriptionBaseStyles","actionsBaseStyles","asideBaseStyles","expandIconBaseStyles","mainBaseStyles","mainStyles","size","ctx","appearance","itemType","className"],"mappings":"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"}
@@ -168,24 +168,32 @@ const useTreeItemPersonaLayoutStyles_unstable = (state)=>{
168
168
  const size = (0, _treeContext.useTreeContext_unstable)((ctx)=>ctx.size);
169
169
  const appearance = (0, _treeContext.useTreeContext_unstable)((ctx)=>ctx.appearance);
170
170
  const itemType = (0, _treeItemContext.useTreeItemContext_unstable)((ctx)=>ctx.itemType);
171
+ // eslint-disable-next-line react-hooks/immutability
171
172
  state.root.className = (0, _react.mergeClasses)(treeItemPersonaLayoutClassNames.root, rootBaseStyles, rootStyles[itemType], rootStyles[appearance], rootStyles[size], state.root.className);
173
+ // eslint-disable-next-line react-hooks/immutability
172
174
  state.media.className = (0, _react.mergeClasses)(treeItemPersonaLayoutClassNames.media, mediaBaseStyles, state.media.className);
173
175
  if (state.main) {
176
+ // eslint-disable-next-line react-hooks/immutability
174
177
  state.main.className = (0, _react.mergeClasses)(treeItemPersonaLayoutClassNames.main, mainBaseStyles, state.description && mainStyles.withDescription, state.main.className);
175
178
  }
176
179
  if (state.description) {
180
+ // eslint-disable-next-line react-hooks/immutability
177
181
  state.description.className = (0, _react.mergeClasses)(treeItemPersonaLayoutClassNames.description, descriptionBaseStyles, state.description.className);
178
182
  }
179
183
  if (state.actions) {
184
+ // eslint-disable-next-line react-hooks/immutability
180
185
  state.actions.className = (0, _react.mergeClasses)(treeItemPersonaLayoutClassNames.actions, actionsBaseStyles, state.actions.className);
181
186
  }
182
187
  if (state.aside) {
188
+ // eslint-disable-next-line react-hooks/immutability
183
189
  state.aside.className = (0, _react.mergeClasses)(treeItemPersonaLayoutClassNames.aside, asideBaseStyles, state.aside.className);
184
190
  }
185
191
  if (state.expandIcon) {
192
+ // eslint-disable-next-line react-hooks/immutability
186
193
  state.expandIcon.className = (0, _react.mergeClasses)(treeItemPersonaLayoutClassNames.expandIcon, expandIconBaseStyles, state.expandIcon.className);
187
194
  }
188
195
  if (state.selector) {
196
+ // eslint-disable-next-line react-hooks/immutability
189
197
  state.selector.className = (0, _react.mergeClasses)(treeItemPersonaLayoutClassNames.selector, state.selector.className);
190
198
  }
191
199
  return state;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.styles.ts"],"sourcesContent":["'use client';\n\nimport type { TreeItemPersonaLayoutSlots, TreeItemPersonaLayoutState } from './TreeItemPersonaLayout.types';\nimport type { SlotClassNames } from '@fluentui/react-utilities';\nimport { makeResetStyles, makeStyles, mergeClasses } from '@griffel/react';\nimport { tokens, typographyStyles } from '@fluentui/react-theme';\nimport { treeItemLevelToken } from '../../utils/tokens';\nimport { useTreeItemContext_unstable } from '../../contexts/treeItemContext';\nimport { useTreeContext_unstable } from '../../contexts/treeContext';\n\nexport const treeItemPersonaLayoutClassNames: SlotClassNames<TreeItemPersonaLayoutSlots> = {\n root: 'fui-TreeItemPersonaLayout',\n media: 'fui-TreeItemPersonaLayout__media',\n description: 'fui-TreeItemPersonaLayout__description',\n main: 'fui-TreeItemPersonaLayout__main',\n expandIcon: 'fui-TreeItemPersonaLayout__expandIcon',\n aside: 'fui-TreeItemPersonaLayout__aside',\n actions: 'fui-TreeItemPersonaLayout__actions',\n selector: 'fui-TreeItemPersonaLayout__selector',\n};\n\nconst useRootBaseStyles = makeResetStyles({\n display: 'grid',\n gridTemplateRows: '1fr auto',\n gridTemplateColumns: 'auto auto 1fr auto',\n gridTemplateAreas: `\n \"expandIcon media main aside\"\n \"expandIcon media description aside\"\n `,\n alignItems: 'center',\n ...typographyStyles.body1,\n ':active': {\n color: tokens.colorNeutralForeground2Pressed,\n backgroundColor: tokens.colorSubtleBackgroundPressed,\n // TODO: stop using treeItemPersonaLayoutClassNames.expandIcon for styling\n [`& .${treeItemPersonaLayoutClassNames.expandIcon}`]: {\n color: tokens.colorNeutralForeground3Pressed,\n },\n },\n ':hover': {\n color: tokens.colorNeutralForeground2Hover,\n backgroundColor: tokens.colorSubtleBackgroundHover,\n // TODO: stop using treeItemPersonaLayoutClassNames.expandIcon for styling\n [`& .${treeItemPersonaLayoutClassNames.expandIcon}`]: {\n color: tokens.colorNeutralForeground3Hover,\n },\n },\n});\n\n/**\n * Styles for the root slot\n */\nconst useRootStyles = makeStyles({\n leaf: {\n paddingLeft: `calc(var(${treeItemLevelToken}, 1) * ${tokens.spacingHorizontalXXL})`,\n },\n branch: {\n paddingLeft: `calc((var(${treeItemLevelToken}, 1) - 1) * ${tokens.spacingHorizontalXXL})`,\n },\n // Size variations\n medium: {\n ...typographyStyles.body1,\n },\n small: {\n minHeight: '24px',\n ...typographyStyles.caption1,\n },\n // Appearance variations\n subtle: {},\n 'subtle-alpha': {\n ':hover': {\n backgroundColor: tokens.colorSubtleBackgroundLightAlphaHover,\n },\n ':active': {\n backgroundColor: tokens.colorSubtleBackgroundLightAlphaPressed,\n },\n },\n transparent: {\n backgroundColor: tokens.colorTransparentBackground,\n ':hover': {\n backgroundColor: tokens.colorTransparentBackgroundHover,\n },\n ':active': {\n backgroundColor: tokens.colorTransparentBackgroundPressed,\n },\n },\n});\n\n/**\n * Styles for the expand icon slot\n */\nconst useMediaBaseStyles = makeResetStyles({\n display: 'flex',\n alignItems: 'center',\n width: '32px',\n height: '32px',\n gridArea: 'media',\n padding: `0 ${tokens.spacingHorizontalXS} 0 ${tokens.spacingHorizontalXXS}`,\n});\n\nconst useMainBaseStyles = makeResetStyles({\n gridArea: 'main',\n padding: `${tokens.spacingVerticalMNudge} ${tokens.spacingHorizontalXS} ${tokens.spacingVerticalMNudge} ${tokens.spacingHorizontalS}`,\n});\n\nconst useMainStyles = makeStyles({\n withDescription: {\n padding: `${tokens.spacingVerticalMNudge} ${tokens.spacingHorizontalXS} 0 ${tokens.spacingHorizontalS}`,\n },\n});\n\nconst useDescriptionBaseStyles = makeResetStyles({\n gridArea: 'description',\n ...typographyStyles.caption1,\n padding: `0 ${tokens.spacingHorizontalXS} ${tokens.spacingVerticalMNudge} ${tokens.spacingHorizontalS}`,\n});\n\n/**\n * Styles for the action icon slot\n */\nconst useActionsBaseStyles = makeResetStyles({\n display: 'flex',\n marginLeft: 'auto',\n position: 'relative',\n zIndex: 1,\n gridArea: 'aside',\n padding: `0 ${tokens.spacingHorizontalS}`,\n});\n/**\n * Styles for the action icon slot\n */\nconst useAsideBaseStyles = makeResetStyles({\n display: 'flex',\n marginLeft: 'auto',\n alignItems: 'center',\n zIndex: 0,\n gridArea: 'aside',\n padding: `0 ${tokens.spacingHorizontalM}`,\n gap: tokens.spacingHorizontalXS,\n});\n\n/**\n * Styles for the expand icon slot\n */\nconst useExpandIconBaseStyles = makeResetStyles({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n minWidth: '24px',\n boxSizing: 'border-box',\n color: tokens.colorNeutralForeground3,\n gridArea: 'expandIcon',\n flex: `0 0 auto`,\n padding: `${tokens.spacingVerticalXS} 0`,\n});\n\n/**\n * Apply styling to the TreeItemPersonaLayout slots based on the state\n */\nexport const useTreeItemPersonaLayoutStyles_unstable = (\n state: TreeItemPersonaLayoutState,\n): TreeItemPersonaLayoutState => {\n 'use no memo';\n\n const rootBaseStyles = useRootBaseStyles();\n const rootStyles = useRootStyles();\n const mediaBaseStyles = useMediaBaseStyles();\n const descriptionBaseStyles = useDescriptionBaseStyles();\n const actionsBaseStyles = useActionsBaseStyles();\n const asideBaseStyles = useAsideBaseStyles();\n const expandIconBaseStyles = useExpandIconBaseStyles();\n const mainBaseStyles = useMainBaseStyles();\n const mainStyles = useMainStyles();\n\n const size = useTreeContext_unstable(ctx => ctx.size);\n const appearance = useTreeContext_unstable(ctx => ctx.appearance);\n const itemType = useTreeItemContext_unstable(ctx => ctx.itemType);\n\n state.root.className = mergeClasses(\n treeItemPersonaLayoutClassNames.root,\n rootBaseStyles,\n rootStyles[itemType],\n rootStyles[appearance],\n rootStyles[size],\n state.root.className,\n );\n\n state.media.className = mergeClasses(treeItemPersonaLayoutClassNames.media, mediaBaseStyles, state.media.className);\n\n if (state.main) {\n state.main.className = mergeClasses(\n treeItemPersonaLayoutClassNames.main,\n mainBaseStyles,\n state.description && mainStyles.withDescription,\n state.main.className,\n );\n }\n if (state.description) {\n state.description.className = mergeClasses(\n treeItemPersonaLayoutClassNames.description,\n descriptionBaseStyles,\n state.description.className,\n );\n }\n if (state.actions) {\n state.actions.className = mergeClasses(\n treeItemPersonaLayoutClassNames.actions,\n actionsBaseStyles,\n state.actions.className,\n );\n }\n if (state.aside) {\n state.aside.className = mergeClasses(treeItemPersonaLayoutClassNames.aside, asideBaseStyles, state.aside.className);\n }\n if (state.expandIcon) {\n state.expandIcon.className = mergeClasses(\n treeItemPersonaLayoutClassNames.expandIcon,\n expandIconBaseStyles,\n state.expandIcon.className,\n );\n }\n\n if (state.selector) {\n state.selector.className = mergeClasses(treeItemPersonaLayoutClassNames.selector, state.selector.className);\n }\n\n return state;\n};\n"],"names":["makeResetStyles","makeStyles","mergeClasses","tokens","typographyStyles","treeItemLevelToken","useTreeItemContext_unstable","useTreeContext_unstable","treeItemPersonaLayoutClassNames","root","media","description","main","expandIcon","aside","actions","selector","useRootBaseStyles","display","gridTemplateRows","gridTemplateColumns","gridTemplateAreas","alignItems","body1","color","colorNeutralForeground2Pressed","backgroundColor","colorSubtleBackgroundPressed","colorNeutralForeground3Pressed","colorNeutralForeground2Hover","colorSubtleBackgroundHover","colorNeutralForeground3Hover","useRootStyles","leaf","paddingLeft","spacingHorizontalXXL","branch","medium","small","minHeight","caption1","subtle","colorSubtleBackgroundLightAlphaHover","colorSubtleBackgroundLightAlphaPressed","transparent","colorTransparentBackground","colorTransparentBackgroundHover","colorTransparentBackgroundPressed","useMediaBaseStyles","width","height","gridArea","padding","spacingHorizontalXS","spacingHorizontalXXS","useMainBaseStyles","spacingVerticalMNudge","spacingHorizontalS","useMainStyles","withDescription","useDescriptionBaseStyles","useActionsBaseStyles","marginLeft","position","zIndex","useAsideBaseStyles","spacingHorizontalM","gap","useExpandIconBaseStyles","justifyContent","minWidth","boxSizing","colorNeutralForeground3","flex","spacingVerticalXS","useTreeItemPersonaLayoutStyles_unstable","state","rootBaseStyles","rootStyles","mediaBaseStyles","descriptionBaseStyles","actionsBaseStyles","asideBaseStyles","expandIconBaseStyles","mainBaseStyles","mainStyles","size","ctx","appearance","itemType","className"],"mappings":"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"}
1
+ {"version":3,"sources":["../src/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.styles.ts"],"sourcesContent":["'use client';\n\nimport type { TreeItemPersonaLayoutSlots, TreeItemPersonaLayoutState } from './TreeItemPersonaLayout.types';\nimport type { SlotClassNames } from '@fluentui/react-utilities';\nimport { makeResetStyles, makeStyles, mergeClasses } from '@griffel/react';\nimport { tokens, typographyStyles } from '@fluentui/react-theme';\nimport { treeItemLevelToken } from '../../utils/tokens';\nimport { useTreeItemContext_unstable } from '../../contexts/treeItemContext';\nimport { useTreeContext_unstable } from '../../contexts/treeContext';\n\nexport const treeItemPersonaLayoutClassNames: SlotClassNames<TreeItemPersonaLayoutSlots> = {\n root: 'fui-TreeItemPersonaLayout',\n media: 'fui-TreeItemPersonaLayout__media',\n description: 'fui-TreeItemPersonaLayout__description',\n main: 'fui-TreeItemPersonaLayout__main',\n expandIcon: 'fui-TreeItemPersonaLayout__expandIcon',\n aside: 'fui-TreeItemPersonaLayout__aside',\n actions: 'fui-TreeItemPersonaLayout__actions',\n selector: 'fui-TreeItemPersonaLayout__selector',\n};\n\nconst useRootBaseStyles = makeResetStyles({\n display: 'grid',\n gridTemplateRows: '1fr auto',\n gridTemplateColumns: 'auto auto 1fr auto',\n gridTemplateAreas: `\n \"expandIcon media main aside\"\n \"expandIcon media description aside\"\n `,\n alignItems: 'center',\n ...typographyStyles.body1,\n ':active': {\n color: tokens.colorNeutralForeground2Pressed,\n backgroundColor: tokens.colorSubtleBackgroundPressed,\n // TODO: stop using treeItemPersonaLayoutClassNames.expandIcon for styling\n [`& .${treeItemPersonaLayoutClassNames.expandIcon}`]: {\n color: tokens.colorNeutralForeground3Pressed,\n },\n },\n ':hover': {\n color: tokens.colorNeutralForeground2Hover,\n backgroundColor: tokens.colorSubtleBackgroundHover,\n // TODO: stop using treeItemPersonaLayoutClassNames.expandIcon for styling\n [`& .${treeItemPersonaLayoutClassNames.expandIcon}`]: {\n color: tokens.colorNeutralForeground3Hover,\n },\n },\n});\n\n/**\n * Styles for the root slot\n */\nconst useRootStyles = makeStyles({\n leaf: {\n paddingLeft: `calc(var(${treeItemLevelToken}, 1) * ${tokens.spacingHorizontalXXL})`,\n },\n branch: {\n paddingLeft: `calc((var(${treeItemLevelToken}, 1) - 1) * ${tokens.spacingHorizontalXXL})`,\n },\n // Size variations\n medium: {\n ...typographyStyles.body1,\n },\n small: {\n minHeight: '24px',\n ...typographyStyles.caption1,\n },\n // Appearance variations\n subtle: {},\n 'subtle-alpha': {\n ':hover': {\n backgroundColor: tokens.colorSubtleBackgroundLightAlphaHover,\n },\n ':active': {\n backgroundColor: tokens.colorSubtleBackgroundLightAlphaPressed,\n },\n },\n transparent: {\n backgroundColor: tokens.colorTransparentBackground,\n ':hover': {\n backgroundColor: tokens.colorTransparentBackgroundHover,\n },\n ':active': {\n backgroundColor: tokens.colorTransparentBackgroundPressed,\n },\n },\n});\n\n/**\n * Styles for the expand icon slot\n */\nconst useMediaBaseStyles = makeResetStyles({\n display: 'flex',\n alignItems: 'center',\n width: '32px',\n height: '32px',\n gridArea: 'media',\n padding: `0 ${tokens.spacingHorizontalXS} 0 ${tokens.spacingHorizontalXXS}`,\n});\n\nconst useMainBaseStyles = makeResetStyles({\n gridArea: 'main',\n padding: `${tokens.spacingVerticalMNudge} ${tokens.spacingHorizontalXS} ${tokens.spacingVerticalMNudge} ${tokens.spacingHorizontalS}`,\n});\n\nconst useMainStyles = makeStyles({\n withDescription: {\n padding: `${tokens.spacingVerticalMNudge} ${tokens.spacingHorizontalXS} 0 ${tokens.spacingHorizontalS}`,\n },\n});\n\nconst useDescriptionBaseStyles = makeResetStyles({\n gridArea: 'description',\n ...typographyStyles.caption1,\n padding: `0 ${tokens.spacingHorizontalXS} ${tokens.spacingVerticalMNudge} ${tokens.spacingHorizontalS}`,\n});\n\n/**\n * Styles for the action icon slot\n */\nconst useActionsBaseStyles = makeResetStyles({\n display: 'flex',\n marginLeft: 'auto',\n position: 'relative',\n zIndex: 1,\n gridArea: 'aside',\n padding: `0 ${tokens.spacingHorizontalS}`,\n});\n/**\n * Styles for the action icon slot\n */\nconst useAsideBaseStyles = makeResetStyles({\n display: 'flex',\n marginLeft: 'auto',\n alignItems: 'center',\n zIndex: 0,\n gridArea: 'aside',\n padding: `0 ${tokens.spacingHorizontalM}`,\n gap: tokens.spacingHorizontalXS,\n});\n\n/**\n * Styles for the expand icon slot\n */\nconst useExpandIconBaseStyles = makeResetStyles({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n minWidth: '24px',\n boxSizing: 'border-box',\n color: tokens.colorNeutralForeground3,\n gridArea: 'expandIcon',\n flex: `0 0 auto`,\n padding: `${tokens.spacingVerticalXS} 0`,\n});\n\n/**\n * Apply styling to the TreeItemPersonaLayout slots based on the state\n */\nexport const useTreeItemPersonaLayoutStyles_unstable = (\n state: TreeItemPersonaLayoutState,\n): TreeItemPersonaLayoutState => {\n 'use no memo';\n\n const rootBaseStyles = useRootBaseStyles();\n const rootStyles = useRootStyles();\n const mediaBaseStyles = useMediaBaseStyles();\n const descriptionBaseStyles = useDescriptionBaseStyles();\n const actionsBaseStyles = useActionsBaseStyles();\n const asideBaseStyles = useAsideBaseStyles();\n const expandIconBaseStyles = useExpandIconBaseStyles();\n const mainBaseStyles = useMainBaseStyles();\n const mainStyles = useMainStyles();\n\n const size = useTreeContext_unstable(ctx => ctx.size);\n const appearance = useTreeContext_unstable(ctx => ctx.appearance);\n const itemType = useTreeItemContext_unstable(ctx => ctx.itemType);\n\n // eslint-disable-next-line react-hooks/immutability\n state.root.className = mergeClasses(\n treeItemPersonaLayoutClassNames.root,\n rootBaseStyles,\n rootStyles[itemType],\n rootStyles[appearance],\n rootStyles[size],\n state.root.className,\n );\n\n // eslint-disable-next-line react-hooks/immutability\n state.media.className = mergeClasses(treeItemPersonaLayoutClassNames.media, mediaBaseStyles, state.media.className);\n\n if (state.main) {\n // eslint-disable-next-line react-hooks/immutability\n state.main.className = mergeClasses(\n treeItemPersonaLayoutClassNames.main,\n mainBaseStyles,\n state.description && mainStyles.withDescription,\n state.main.className,\n );\n }\n if (state.description) {\n // eslint-disable-next-line react-hooks/immutability\n state.description.className = mergeClasses(\n treeItemPersonaLayoutClassNames.description,\n descriptionBaseStyles,\n state.description.className,\n );\n }\n if (state.actions) {\n // eslint-disable-next-line react-hooks/immutability\n state.actions.className = mergeClasses(\n treeItemPersonaLayoutClassNames.actions,\n actionsBaseStyles,\n state.actions.className,\n );\n }\n if (state.aside) {\n // eslint-disable-next-line react-hooks/immutability\n state.aside.className = mergeClasses(treeItemPersonaLayoutClassNames.aside, asideBaseStyles, state.aside.className);\n }\n if (state.expandIcon) {\n // eslint-disable-next-line react-hooks/immutability\n state.expandIcon.className = mergeClasses(\n treeItemPersonaLayoutClassNames.expandIcon,\n expandIconBaseStyles,\n state.expandIcon.className,\n );\n }\n\n if (state.selector) {\n // eslint-disable-next-line react-hooks/immutability\n state.selector.className = mergeClasses(treeItemPersonaLayoutClassNames.selector, state.selector.className);\n }\n\n return state;\n};\n"],"names":["makeResetStyles","makeStyles","mergeClasses","tokens","typographyStyles","treeItemLevelToken","useTreeItemContext_unstable","useTreeContext_unstable","treeItemPersonaLayoutClassNames","root","media","description","main","expandIcon","aside","actions","selector","useRootBaseStyles","display","gridTemplateRows","gridTemplateColumns","gridTemplateAreas","alignItems","body1","color","colorNeutralForeground2Pressed","backgroundColor","colorSubtleBackgroundPressed","colorNeutralForeground3Pressed","colorNeutralForeground2Hover","colorSubtleBackgroundHover","colorNeutralForeground3Hover","useRootStyles","leaf","paddingLeft","spacingHorizontalXXL","branch","medium","small","minHeight","caption1","subtle","colorSubtleBackgroundLightAlphaHover","colorSubtleBackgroundLightAlphaPressed","transparent","colorTransparentBackground","colorTransparentBackgroundHover","colorTransparentBackgroundPressed","useMediaBaseStyles","width","height","gridArea","padding","spacingHorizontalXS","spacingHorizontalXXS","useMainBaseStyles","spacingVerticalMNudge","spacingHorizontalS","useMainStyles","withDescription","useDescriptionBaseStyles","useActionsBaseStyles","marginLeft","position","zIndex","useAsideBaseStyles","spacingHorizontalM","gap","useExpandIconBaseStyles","justifyContent","minWidth","boxSizing","colorNeutralForeground3","flex","spacingVerticalXS","useTreeItemPersonaLayoutStyles_unstable","state","rootBaseStyles","rootStyles","mediaBaseStyles","descriptionBaseStyles","actionsBaseStyles","asideBaseStyles","expandIconBaseStyles","mainBaseStyles","mainStyles","size","ctx","appearance","itemType","className"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/TreeProvider.tsx"],"sourcesContent":["import * as React from 'react';\nimport { SubtreeContext, SubtreeContextValue, TreeContextValue, TreeContext } from '../contexts';\nimport type { JSXElement } from '@fluentui/react-utilities';\n\n/**\n * @internal\n */\nconst rootSubtreeContextValue: SubtreeContextValue = {\n level: 1,\n contextType: 'subtree',\n};\nexport const TreeProvider = (props: React.ProviderProps<TreeContextValue | SubtreeContextValue>): JSXElement => {\n if (props.value.contextType === 'subtree') {\n return <SubtreeContext.Provider value={props.value}>{props.children}</SubtreeContext.Provider>;\n }\n return (\n <TreeContext.Provider value={props.value}>\n <SubtreeContext.Provider value={rootSubtreeContextValue}>{props.children}</SubtreeContext.Provider>\n </TreeContext.Provider>\n );\n};\n\nTreeProvider.displayName = 'TreeProvider';\n\nexport type TreeRootResetProps = {\n children?: React.ReactNode;\n};\nexport const TreeRootReset = (props: TreeRootResetProps): JSXElement => (\n <SubtreeContext.Provider value={undefined as unknown as SubtreeContextValue}>\n {props.children}\n </SubtreeContext.Provider>\n);\n"],"names":["React","SubtreeContext","TreeContext","rootSubtreeContextValue","level","contextType","TreeProvider","props","value","Provider","children","displayName","TreeRootReset","undefined"],"mappings":";;;;;;;;;;;IAWaM,YAAAA;;;iBAgBAM;;;;;iEA3BU,QAAQ;0BACoD,cAAc;AAGjG;;CAEC,GACD,MAAMT,0BAA+C;IACnDC,OAAO;IACPC,aAAa;AACf;AACO,qBAAqB,CAACE;IAC3B,IAAIA,MAAMC,KAAK,CAACH,WAAW,KAAK,WAAW;QACzC,OAAA,WAAA,GAAO,OAAA,aAAA,CAACJ,wBAAAA,CAAeQ,QAAQ,EAAA;YAACD,OAAOD,MAAMC,KAAK;WAAGD,MAAMG,QAAQ;IACrE;IACA,OAAA,WAAA,GACE,OAAA,aAAA,CAACR,qBAAAA,CAAYO,QAAQ,EAAA;QAACD,OAAOD,MAAMC,KAAK;qBACtC,OAAA,aAAA,CAACP,wBAAAA,CAAeQ,QAAQ,EAAA;QAACD,OAAOL;OAA0BI,MAAMG,QAAQ;AAG9E,EAAE;AAEFJ,aAAaK,WAAW,GAAG;AAKpB,MAAMC,gBAAgB,CAACL,QAAAA,WAAAA,GAC5B,OAAA,aAAA,CAACN,wBAAAA,CAAeQ,QAAQ,EAAA;QAACD,OAAOK;OAC7BN,MAAMG,QAAQ,EAEjB"}
1
+ {"version":3,"sources":["../src/components/TreeProvider.tsx"],"sourcesContent":["import * as React from 'react';\nimport type { SubtreeContextValue, TreeContextValue } from '../contexts';\nimport { SubtreeContext, TreeContext } from '../contexts';\nimport type { JSXElement } from '@fluentui/react-utilities';\n\n/**\n * @internal\n */\nconst rootSubtreeContextValue: SubtreeContextValue = {\n level: 1,\n contextType: 'subtree',\n};\nexport const TreeProvider = (props: React.ProviderProps<TreeContextValue | SubtreeContextValue>): JSXElement => {\n if (props.value.contextType === 'subtree') {\n return <SubtreeContext.Provider value={props.value}>{props.children}</SubtreeContext.Provider>;\n }\n return (\n <TreeContext.Provider value={props.value}>\n <SubtreeContext.Provider value={rootSubtreeContextValue}>{props.children}</SubtreeContext.Provider>\n </TreeContext.Provider>\n );\n};\n\nTreeProvider.displayName = 'TreeProvider';\n\nexport type TreeRootResetProps = {\n children?: React.ReactNode;\n};\nexport const TreeRootReset = (props: TreeRootResetProps): JSXElement => (\n <SubtreeContext.Provider value={undefined as unknown as SubtreeContextValue}>\n {props.children}\n </SubtreeContext.Provider>\n);\n"],"names":["React","SubtreeContext","TreeContext","rootSubtreeContextValue","level","contextType","TreeProvider","props","value","Provider","children","displayName","TreeRootReset","undefined"],"mappings":";;;;;;;;;;;IAYaM,YAAAA;;;iBAgBAM;;;;;iEA5BU,QAAQ;0BAEa,cAAc;AAG1D;;CAEC,GACD,MAAMT,0BAA+C;IACnDC,OAAO;IACPC,aAAa;AACf;AACO,qBAAqB,CAACE;IAC3B,IAAIA,MAAMC,KAAK,CAACH,WAAW,KAAK,WAAW;QACzC,OAAA,WAAA,GAAO,OAAA,aAAA,CAACJ,wBAAAA,CAAeQ,QAAQ,EAAA;YAACD,OAAOD,MAAMC,KAAK;WAAGD,MAAMG,QAAQ;IACrE;IACA,OAAA,WAAA,GACE,OAAA,aAAA,CAACR,qBAAAA,CAAYO,QAAQ,EAAA;QAACD,OAAOD,MAAMC,KAAK;qBACtC,OAAA,aAAA,CAACP,wBAAAA,CAAeQ,QAAQ,EAAA;QAACD,OAAOL;OAA0BI,MAAMG,QAAQ;AAG9E,EAAE;AAEFJ,aAAaK,WAAW,GAAG;AAKpB,MAAMC,gBAAgB,CAACL,QAAAA,WAAAA,GAC5B,OAAA,aAAA,CAACN,wBAAAA,CAAeQ,QAAQ,EAAA;QAACD,OAAOK;OAC7BN,MAAMG,QAAQ,EAEjB"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/contexts/treeContext.ts"],"sourcesContent":["'use client';\n\nimport { Context, ContextSelector, createContext, useContextSelector } from '@fluentui/react-context-selector';\nimport { TreeItemType, TreeItemValue } from '../TreeItem';\nimport type { SelectionMode, DistributiveOmit } from '@fluentui/react-utilities';\nimport { ImmutableSet } from '../utils/ImmutableSet';\nimport { ImmutableMap } from '../utils/ImmutableMap';\nimport { TreeCheckedChangeData, TreeNavigationData_unstable, TreeOpenChangeData } from '../Tree';\n\nexport type TreeContextValue = {\n contextType?: 'root';\n level: number;\n treeType: 'nested' | 'flat';\n selectionMode: 'none' | SelectionMode;\n appearance: 'subtle' | 'subtle-alpha' | 'transparent';\n size: 'small' | 'medium';\n openItems: ImmutableSet<TreeItemValue>;\n checkedItems: ImmutableMap<TreeItemValue, 'mixed' | boolean>;\n /**\n * requests root Tree component to respond to some tree item event,\n */\n requestTreeResponse(request: TreeItemRequest): void;\n // FIXME: this is only marked as optional to avoid breaking changes\n // it should always be provided internally\n forceUpdateRovingTabIndex?(): void;\n // FIXME: this is only marked as optional to avoid breaking changes\n // it should always be provided internally\n navigationMode?: 'tree' | 'treegrid';\n};\n\nexport type TreeItemRequest = { itemType: TreeItemType } & (\n | (DistributiveOmit<TreeOpenChangeData, 'openItems'> & { requestType: 'open' })\n | (TreeNavigationData_unstable & { requestType: 'navigate' })\n | (DistributiveOmit<TreeCheckedChangeData, 'selectionMode' | 'checkedItems'> & { requestType: 'selection' })\n);\n\n/**\n * @internal\n */\nconst defaultTreeContextValue: TreeContextValue = {\n level: 0,\n contextType: 'root',\n treeType: 'nested',\n selectionMode: 'none',\n openItems: ImmutableSet.empty,\n checkedItems: ImmutableMap.empty,\n requestTreeResponse: noop,\n forceUpdateRovingTabIndex: noop,\n appearance: 'subtle',\n size: 'medium',\n navigationMode: 'tree',\n};\n\nfunction noop() {\n /* noop */\n}\n\n/**\n * @internal\n */\nexport const TreeContext: Context<TreeContextValue> = createContext<TreeContextValue | undefined>(\n undefined,\n) as Context<TreeContextValue>;\n\nexport const useTreeContext_unstable = <T>(selector: ContextSelector<TreeContextValue, T>): T =>\n useContextSelector(TreeContext, (ctx = defaultTreeContextValue) => selector(ctx));\n"],"names":["createContext","useContextSelector","ImmutableSet","ImmutableMap","defaultTreeContextValue","level","contextType","treeType","selectionMode","openItems","empty","checkedItems","requestTreeResponse","noop","forceUpdateRovingTabIndex","appearance","size","navigationMode","TreeContext","undefined","useTreeContext_unstable","selector","ctx"],"mappings":"AAAA;;;;;;;;;;;;eA4DakB;;;2BAIAE;;;;sCA9D+D,mCAAmC;8BAGlF,wBAAwB;8BACxB,wBAAwB;AA8BrD;;CAEC,GACD,MAAMhB,0BAA4C;IAChDC,OAAO;IACPC,aAAa;IACbC,UAAU;IACVC,eAAe;IACfC,WAAWP,0BAAAA,CAAaQ,KAAK;IAC7BC,cAAcR,0BAAAA,CAAaO,KAAK;IAChCE,qBAAqBC;IACrBC,2BAA2BD;IAC3BE,YAAY;IACZC,MAAM;IACNC,gBAAgB;AAClB;AAEA,SAASJ;AACP,QAAQ,GACV;AAKO,MAAMK,kBAAyClB,mCAAAA,EACpDmB,WAC6B;AAExB,MAAMC,0BAA0B,CAAIC,eACzCpB,wCAAAA,EAAmBiB,aAAa,CAACI,MAAMlB,uBAAuB,GAAKiB,SAASC,MAAM"}
1
+ {"version":3,"sources":["../src/contexts/treeContext.ts"],"sourcesContent":["'use client';\n\nimport type { Context, ContextSelector } from '@fluentui/react-context-selector';\nimport { createContext, useContextSelector } from '@fluentui/react-context-selector';\nimport type { TreeItemType, TreeItemValue } from '../TreeItem';\nimport type { SelectionMode, DistributiveOmit } from '@fluentui/react-utilities';\nimport { ImmutableSet } from '../utils/ImmutableSet';\nimport { ImmutableMap } from '../utils/ImmutableMap';\nimport type { TreeCheckedChangeData, TreeNavigationData_unstable, TreeOpenChangeData } from '../Tree';\n\nexport type TreeContextValue = {\n contextType?: 'root';\n level: number;\n treeType: 'nested' | 'flat';\n selectionMode: 'none' | SelectionMode;\n appearance: 'subtle' | 'subtle-alpha' | 'transparent';\n size: 'small' | 'medium';\n openItems: ImmutableSet<TreeItemValue>;\n checkedItems: ImmutableMap<TreeItemValue, 'mixed' | boolean>;\n /**\n * requests root Tree component to respond to some tree item event,\n */\n requestTreeResponse(request: TreeItemRequest): void;\n // FIXME: this is only marked as optional to avoid breaking changes\n // it should always be provided internally\n forceUpdateRovingTabIndex?(): void;\n // FIXME: this is only marked as optional to avoid breaking changes\n // it should always be provided internally\n navigationMode?: 'tree' | 'treegrid';\n};\n\nexport type TreeItemRequest = { itemType: TreeItemType } & (\n | (DistributiveOmit<TreeOpenChangeData, 'openItems'> & { requestType: 'open' })\n | (TreeNavigationData_unstable & { requestType: 'navigate' })\n | (DistributiveOmit<TreeCheckedChangeData, 'selectionMode' | 'checkedItems'> & { requestType: 'selection' })\n);\n\n/**\n * @internal\n */\nconst defaultTreeContextValue: TreeContextValue = {\n level: 0,\n contextType: 'root',\n treeType: 'nested',\n selectionMode: 'none',\n openItems: ImmutableSet.empty,\n checkedItems: ImmutableMap.empty,\n requestTreeResponse: noop,\n forceUpdateRovingTabIndex: noop,\n appearance: 'subtle',\n size: 'medium',\n navigationMode: 'tree',\n};\n\nfunction noop() {\n /* noop */\n}\n\n/**\n * @internal\n */\nexport const TreeContext: Context<TreeContextValue> = createContext<TreeContextValue | undefined>(\n undefined,\n) as Context<TreeContextValue>;\n\nexport const useTreeContext_unstable = <T>(selector: ContextSelector<TreeContextValue, T>): T =>\n useContextSelector(TreeContext, (ctx = defaultTreeContextValue) => selector(ctx));\n"],"names":["createContext","useContextSelector","ImmutableSet","ImmutableMap","defaultTreeContextValue","level","contextType","treeType","selectionMode","openItems","empty","checkedItems","requestTreeResponse","noop","forceUpdateRovingTabIndex","appearance","size","navigationMode","TreeContext","undefined","useTreeContext_unstable","selector","ctx"],"mappings":"AAAA;;;;;;;;;;;;eA6DakB;;;2BAIAE;;;;sCA9DqC,mCAAmC;8BAGxD,wBAAwB;8BACxB,wBAAwB;AA8BrD;;CAEC,GACD,MAAMhB,0BAA4C;IAChDC,OAAO;IACPC,aAAa;IACbC,UAAU;IACVC,eAAe;IACfC,WAAWP,0BAAAA,CAAaQ,KAAK;IAC7BC,cAAcR,0BAAAA,CAAaO,KAAK;IAChCE,qBAAqBC;IACrBC,2BAA2BD;IAC3BE,YAAY;IACZC,MAAM;IACNC,gBAAgB;AAClB;AAEA,SAASJ;AACP,QAAQ,GACV;AAKO,MAAMK,kBAAyClB,mCAAAA,EACpDmB,WAC6B;AAExB,MAAMC,0BAA0B,CAAIC,eACzCpB,wCAAAA,EAAmBiB,aAAa,CAACI,MAAMlB,uBAAuB,GAAKiB,SAASC,MAAM"}