@fluentui-copilot/react-reference 0.10.0 → 0.11.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 (197) hide show
  1. package/CHANGELOG.json +37 -1
  2. package/CHANGELOG.md +21 -2
  3. package/dist/index.d.ts +222 -3
  4. package/lib/Citation.js.map +1 -1
  5. package/lib/Reference.js.map +1 -1
  6. package/lib/ReferenceGroupToggle.js.map +1 -1
  7. package/lib/ReferenceList.js.map +1 -1
  8. package/lib/ReferenceListV2.js +2 -0
  9. package/lib/ReferenceListV2.js.map +1 -0
  10. package/lib/ReferenceOverflowButton.js +2 -0
  11. package/lib/ReferenceOverflowButton.js.map +1 -0
  12. package/lib/ReferenceV2.js +2 -0
  13. package/lib/ReferenceV2.js.map +1 -0
  14. package/lib/components/Citation/Citation.js.map +1 -1
  15. package/lib/components/Citation/Citation.types.js +3 -1
  16. package/lib/components/Citation/Citation.types.js.map +1 -1
  17. package/lib/components/Citation/index.js.map +1 -1
  18. package/lib/components/Citation/renderCitation.js.map +1 -1
  19. package/lib/components/Citation/useCitation.js +4 -4
  20. package/lib/components/Citation/useCitation.js.map +1 -1
  21. package/lib/components/Citation/useCitationStyles.js.map +1 -1
  22. package/lib/components/Reference/Reference.js.map +1 -1
  23. package/lib/components/Reference/Reference.types.js +3 -1
  24. package/lib/components/Reference/Reference.types.js.map +1 -1
  25. package/lib/components/Reference/index.js.map +1 -1
  26. package/lib/components/Reference/renderReference.js.map +1 -1
  27. package/lib/components/Reference/useReference.js +3 -3
  28. package/lib/components/Reference/useReference.js.map +1 -1
  29. package/lib/components/Reference/useReferenceStyles.js.map +1 -1
  30. package/lib/components/ReferenceGroupToggle/ReferenceGroupToggle.js.map +1 -1
  31. package/lib/components/ReferenceGroupToggle/ReferenceGroupToggle.types.js +3 -1
  32. package/lib/components/ReferenceGroupToggle/ReferenceGroupToggle.types.js.map +1 -1
  33. package/lib/components/ReferenceGroupToggle/index.js.map +1 -1
  34. package/lib/components/ReferenceGroupToggle/renderReferenceGroupToggle.js.map +1 -1
  35. package/lib/components/ReferenceGroupToggle/useReferenceGroupToggle.js.map +1 -1
  36. package/lib/components/ReferenceGroupToggle/useReferenceGroupToggleStyles.js.map +1 -1
  37. package/lib/components/ReferenceList/ReferenceList.js.map +1 -1
  38. package/lib/components/ReferenceList/ReferenceList.types.js +3 -1
  39. package/lib/components/ReferenceList/ReferenceList.types.js.map +1 -1
  40. package/lib/components/ReferenceList/index.js.map +1 -1
  41. package/lib/components/ReferenceList/renderReferenceList.js.map +1 -1
  42. package/lib/components/ReferenceList/useReferenceList.js +2 -2
  43. package/lib/components/ReferenceList/useReferenceList.js.map +1 -1
  44. package/lib/components/ReferenceList/useReferenceListStyles.js.map +1 -1
  45. package/lib/components/reference-v2/Reference/Reference.js +11 -0
  46. package/lib/components/reference-v2/Reference/Reference.js.map +1 -0
  47. package/lib/components/reference-v2/Reference/Reference.types.js +2 -0
  48. package/lib/components/reference-v2/Reference/Reference.types.js.map +1 -0
  49. package/lib/components/reference-v2/Reference/index.js +6 -0
  50. package/lib/components/reference-v2/Reference/index.js.map +1 -0
  51. package/lib/components/reference-v2/Reference/renderReference.js +19 -0
  52. package/lib/components/reference-v2/Reference/renderReference.js.map +1 -0
  53. package/lib/components/reference-v2/Reference/useReference.js +72 -0
  54. package/lib/components/reference-v2/Reference/useReference.js.map +1 -0
  55. package/lib/components/reference-v2/Reference/useReferenceStyles.js +71 -0
  56. package/lib/components/reference-v2/Reference/useReferenceStyles.js.map +1 -0
  57. package/lib/components/reference-v2/ReferenceList/ReferenceList.js +13 -0
  58. package/lib/components/reference-v2/ReferenceList/ReferenceList.js.map +1 -0
  59. package/lib/components/reference-v2/ReferenceList/ReferenceList.types.js +2 -0
  60. package/lib/components/reference-v2/ReferenceList/ReferenceList.types.js.map +1 -0
  61. package/lib/components/reference-v2/ReferenceList/index.js +6 -0
  62. package/lib/components/reference-v2/ReferenceList/index.js.map +1 -0
  63. package/lib/components/reference-v2/ReferenceList/renderReferenceList.js +18 -0
  64. package/lib/components/reference-v2/ReferenceList/renderReferenceList.js.map +1 -0
  65. package/lib/components/reference-v2/ReferenceList/useReferenceList.js +94 -0
  66. package/lib/components/reference-v2/ReferenceList/useReferenceList.js.map +1 -0
  67. package/lib/components/reference-v2/ReferenceList/useReferenceListContextValues.js +21 -0
  68. package/lib/components/reference-v2/ReferenceList/useReferenceListContextValues.js.map +1 -0
  69. package/lib/components/reference-v2/ReferenceList/useReferenceListStyles.js +39 -0
  70. package/lib/components/reference-v2/ReferenceList/useReferenceListStyles.js.map +1 -0
  71. package/lib/components/reference-v2/ReferenceOverflowButton/ReferenceOverflowButton.js +12 -0
  72. package/lib/components/reference-v2/ReferenceOverflowButton/ReferenceOverflowButton.js.map +1 -0
  73. package/lib/components/reference-v2/ReferenceOverflowButton/ReferenceOverflowButton.types.js +4 -0
  74. package/lib/components/reference-v2/ReferenceOverflowButton/ReferenceOverflowButton.types.js.map +1 -0
  75. package/lib/components/reference-v2/ReferenceOverflowButton/index.js +6 -0
  76. package/lib/components/reference-v2/ReferenceOverflowButton/index.js.map +1 -0
  77. package/lib/components/reference-v2/ReferenceOverflowButton/renderReferenceOverflowButton.js +10 -0
  78. package/lib/components/reference-v2/ReferenceOverflowButton/renderReferenceOverflowButton.js.map +1 -0
  79. package/lib/components/reference-v2/ReferenceOverflowButton/useReferenceOverflowButton.js +91 -0
  80. package/lib/components/reference-v2/ReferenceOverflowButton/useReferenceOverflowButton.js.map +1 -0
  81. package/lib/components/reference-v2/ReferenceOverflowButton/useReferenceOverflowButtonStyles.js +35 -0
  82. package/lib/components/reference-v2/ReferenceOverflowButton/useReferenceOverflowButtonStyles.js.map +1 -0
  83. package/lib/components/reference-v2/index.js +4 -0
  84. package/lib/components/reference-v2/index.js.map +1 -0
  85. package/lib/{context → contexts}/ReferenceGroupContext.js.map +1 -1
  86. package/lib/contexts/reference-v2/index.js +2 -0
  87. package/lib/contexts/reference-v2/index.js.map +1 -0
  88. package/lib/contexts/reference-v2/referenceListContext.js +16 -0
  89. package/lib/contexts/reference-v2/referenceListContext.js.map +1 -0
  90. package/lib/hooks/index.js.map +1 -1
  91. package/lib/hooks/reference-v2/index.js +2 -0
  92. package/lib/hooks/reference-v2/index.js.map +1 -0
  93. package/lib/hooks/reference-v2/useReferenceCitationPreview.js +120 -0
  94. package/lib/hooks/reference-v2/useReferenceCitationPreview.js.map +1 -0
  95. package/lib/hooks/useReferenceCitationPreview.js.map +1 -1
  96. package/lib/hooks/useReferenceGroup.js.map +1 -1
  97. package/lib/index.js +5 -0
  98. package/lib/index.js.map +1 -1
  99. package/lib-commonjs/Citation.js.map +1 -1
  100. package/lib-commonjs/Reference.js.map +1 -1
  101. package/lib-commonjs/ReferenceGroupToggle.js.map +1 -1
  102. package/lib-commonjs/ReferenceList.js.map +1 -1
  103. package/lib-commonjs/ReferenceListV2.js +7 -0
  104. package/lib-commonjs/ReferenceListV2.js.map +1 -0
  105. package/lib-commonjs/ReferenceOverflowButton.js +7 -0
  106. package/lib-commonjs/ReferenceOverflowButton.js.map +1 -0
  107. package/lib-commonjs/ReferenceV2.js +7 -0
  108. package/lib-commonjs/ReferenceV2.js.map +1 -0
  109. package/lib-commonjs/components/Citation/Citation.js.map +1 -1
  110. package/lib-commonjs/components/Citation/Citation.types.js +3 -1
  111. package/lib-commonjs/components/Citation/Citation.types.js.map +1 -1
  112. package/lib-commonjs/components/Citation/index.js.map +1 -1
  113. package/lib-commonjs/components/Citation/renderCitation.js.map +1 -1
  114. package/lib-commonjs/components/Citation/useCitation.js +3 -3
  115. package/lib-commonjs/components/Citation/useCitation.js.map +1 -1
  116. package/lib-commonjs/components/Citation/useCitationStyles.js.map +1 -1
  117. package/lib-commonjs/components/Reference/Reference.js.map +1 -1
  118. package/lib-commonjs/components/Reference/Reference.types.js +3 -1
  119. package/lib-commonjs/components/Reference/Reference.types.js.map +1 -1
  120. package/lib-commonjs/components/Reference/index.js.map +1 -1
  121. package/lib-commonjs/components/Reference/renderReference.js.map +1 -1
  122. package/lib-commonjs/components/Reference/useReference.js +2 -2
  123. package/lib-commonjs/components/Reference/useReference.js.map +1 -1
  124. package/lib-commonjs/components/Reference/useReferenceStyles.js.map +1 -1
  125. package/lib-commonjs/components/ReferenceGroupToggle/ReferenceGroupToggle.js.map +1 -1
  126. package/lib-commonjs/components/ReferenceGroupToggle/ReferenceGroupToggle.types.js +3 -1
  127. package/lib-commonjs/components/ReferenceGroupToggle/ReferenceGroupToggle.types.js.map +1 -1
  128. package/lib-commonjs/components/ReferenceGroupToggle/index.js.map +1 -1
  129. package/lib-commonjs/components/ReferenceGroupToggle/renderReferenceGroupToggle.js.map +1 -1
  130. package/lib-commonjs/components/ReferenceGroupToggle/useReferenceGroupToggle.js.map +1 -1
  131. package/lib-commonjs/components/ReferenceGroupToggle/useReferenceGroupToggleStyles.js.map +1 -1
  132. package/lib-commonjs/components/ReferenceList/ReferenceList.js.map +1 -1
  133. package/lib-commonjs/components/ReferenceList/ReferenceList.types.js +3 -1
  134. package/lib-commonjs/components/ReferenceList/ReferenceList.types.js.map +1 -1
  135. package/lib-commonjs/components/ReferenceList/index.js.map +1 -1
  136. package/lib-commonjs/components/ReferenceList/renderReferenceList.js.map +1 -1
  137. package/lib-commonjs/components/ReferenceList/useReferenceList.js +1 -1
  138. package/lib-commonjs/components/ReferenceList/useReferenceList.js.map +1 -1
  139. package/lib-commonjs/components/ReferenceList/useReferenceListStyles.js.map +1 -1
  140. package/lib-commonjs/components/reference-v2/Reference/Reference.js +21 -0
  141. package/lib-commonjs/components/reference-v2/Reference/Reference.js.map +1 -0
  142. package/lib-commonjs/components/reference-v2/Reference/Reference.types.js +5 -0
  143. package/lib-commonjs/components/reference-v2/Reference/Reference.types.js.map +1 -0
  144. package/lib-commonjs/components/reference-v2/Reference/index.js +28 -0
  145. package/lib-commonjs/components/reference-v2/Reference/index.js.map +1 -0
  146. package/lib-commonjs/components/reference-v2/Reference/renderReference.js +32 -0
  147. package/lib-commonjs/components/reference-v2/Reference/renderReference.js.map +1 -0
  148. package/lib-commonjs/components/reference-v2/Reference/useReference.js +67 -0
  149. package/lib-commonjs/components/reference-v2/Reference/useReference.js.map +1 -0
  150. package/lib-commonjs/components/reference-v2/Reference/useReferenceStyles.js +122 -0
  151. package/lib-commonjs/components/reference-v2/Reference/useReferenceStyles.js.map +1 -0
  152. package/lib-commonjs/components/reference-v2/ReferenceList/ReferenceList.js +23 -0
  153. package/lib-commonjs/components/reference-v2/ReferenceList/ReferenceList.js.map +1 -0
  154. package/lib-commonjs/components/reference-v2/ReferenceList/ReferenceList.types.js +5 -0
  155. package/lib-commonjs/components/reference-v2/ReferenceList/ReferenceList.types.js.map +1 -0
  156. package/lib-commonjs/components/reference-v2/ReferenceList/index.js +11 -0
  157. package/lib-commonjs/components/reference-v2/ReferenceList/index.js.map +1 -0
  158. package/lib-commonjs/components/reference-v2/ReferenceList/renderReferenceList.js +28 -0
  159. package/lib-commonjs/components/reference-v2/ReferenceList/renderReferenceList.js.map +1 -0
  160. package/lib-commonjs/components/reference-v2/ReferenceList/useReferenceList.js +93 -0
  161. package/lib-commonjs/components/reference-v2/ReferenceList/useReferenceList.js.map +1 -0
  162. package/lib-commonjs/components/reference-v2/ReferenceList/useReferenceListContextValues.js +24 -0
  163. package/lib-commonjs/components/reference-v2/ReferenceList/useReferenceListContextValues.js.map +1 -0
  164. package/lib-commonjs/components/reference-v2/ReferenceList/useReferenceListStyles.js +55 -0
  165. package/lib-commonjs/components/reference-v2/ReferenceList/useReferenceListStyles.js.map +1 -0
  166. package/lib-commonjs/components/reference-v2/ReferenceOverflowButton/ReferenceOverflowButton.js +21 -0
  167. package/lib-commonjs/components/reference-v2/ReferenceOverflowButton/ReferenceOverflowButton.js.map +1 -0
  168. package/lib-commonjs/components/reference-v2/ReferenceOverflowButton/ReferenceOverflowButton.types.js +7 -0
  169. package/lib-commonjs/components/reference-v2/ReferenceOverflowButton/ReferenceOverflowButton.types.js.map +1 -0
  170. package/lib-commonjs/components/reference-v2/ReferenceOverflowButton/index.js +11 -0
  171. package/lib-commonjs/components/reference-v2/ReferenceOverflowButton/index.js.map +1 -0
  172. package/lib-commonjs/components/reference-v2/ReferenceOverflowButton/renderReferenceOverflowButton.js +16 -0
  173. package/lib-commonjs/components/reference-v2/ReferenceOverflowButton/renderReferenceOverflowButton.js.map +1 -0
  174. package/lib-commonjs/components/reference-v2/ReferenceOverflowButton/useReferenceOverflowButton.js +84 -0
  175. package/lib-commonjs/components/reference-v2/ReferenceOverflowButton/useReferenceOverflowButton.js.map +1 -0
  176. package/lib-commonjs/components/reference-v2/ReferenceOverflowButton/useReferenceOverflowButtonStyles.js +65 -0
  177. package/lib-commonjs/components/reference-v2/ReferenceOverflowButton/useReferenceOverflowButtonStyles.js.map +1 -0
  178. package/lib-commonjs/components/reference-v2/index.js +9 -0
  179. package/lib-commonjs/components/reference-v2/index.js.map +1 -0
  180. package/lib-commonjs/contexts/ReferenceGroupContext.js.map +1 -0
  181. package/lib-commonjs/contexts/reference-v2/index.js +7 -0
  182. package/lib-commonjs/contexts/reference-v2/index.js.map +1 -0
  183. package/lib-commonjs/contexts/reference-v2/referenceListContext.js +36 -0
  184. package/lib-commonjs/contexts/reference-v2/referenceListContext.js.map +1 -0
  185. package/lib-commonjs/hooks/index.js.map +1 -1
  186. package/lib-commonjs/hooks/reference-v2/index.js +7 -0
  187. package/lib-commonjs/hooks/reference-v2/index.js.map +1 -0
  188. package/lib-commonjs/hooks/reference-v2/useReferenceCitationPreview.js +148 -0
  189. package/lib-commonjs/hooks/reference-v2/useReferenceCitationPreview.js.map +1 -0
  190. package/lib-commonjs/hooks/useReferenceCitationPreview.js.map +1 -1
  191. package/lib-commonjs/hooks/useReferenceGroup.js.map +1 -1
  192. package/lib-commonjs/index.js +95 -30
  193. package/lib-commonjs/index.js.map +1 -1
  194. package/package.json +11 -11
  195. package/lib-commonjs/context/ReferenceGroupContext.js.map +0 -1
  196. /package/lib/{context → contexts}/ReferenceGroupContext.js +0 -0
  197. /package/lib-commonjs/{context → contexts}/ReferenceGroupContext.js +0 -0
@@ -0,0 +1,120 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "@fluentui/react-jsx-runtime/jsx-runtime";
2
+ import * as React from 'react';
3
+ import { mergeCallbacks, usePopoverContext_unstable } from '@fluentui/react-components';
4
+ import { Preview, PreviewContent, PreviewHeader, PreviewMetadata, PreviewSurface, PreviewTrigger } from '@fluentui-copilot/react-preview';
5
+ import { SensitivityLabel } from '@fluentui-copilot/react-sensitivity-label';
6
+ import { Citation } from '../../Citation';
7
+ import { Reference } from '../../ReferenceV2';
8
+ // Abstract the citation that serves as the close button of the Preview into its own component so that we have access to the popover context.
9
+ const CitationCloseButton = citationCloseButtonProps => {
10
+ const setPopoverOpen = usePopoverContext_unstable(context => context.setOpen);
11
+ const onPopoverCloseClick = React.useCallback(ev => {
12
+ setPopoverOpen(ev, false);
13
+ // Don't navigate
14
+ ev.preventDefault();
15
+ }, [setPopoverOpen]);
16
+ const onCitationCloseButtonClick = mergeCallbacks(onPopoverCloseClick, citationCloseButtonProps.onClick);
17
+ return /*#__PURE__*/_jsx(Citation, {
18
+ ...citationCloseButtonProps,
19
+ onClick: onCitationCloseButtonClick
20
+ });
21
+ };
22
+ export const useReferenceCitationPreview = props => {
23
+ const {
24
+ citationPreviewProps,
25
+ citationPreviewSurfaceProps,
26
+ citationProps,
27
+ index,
28
+ previewContentProps,
29
+ referencePreviewProps,
30
+ referencePreviewSurfaceProps,
31
+ referenceProps,
32
+ sensitivityLabelProps
33
+ } = props;
34
+ const components = React.useMemo(() => {
35
+ const citationWithPreview = props => {
36
+ var _previewContentProps_content;
37
+ return /*#__PURE__*/_jsxs(Preview, {
38
+ closeOnScroll: true,
39
+ positioning: "below",
40
+ size: "small",
41
+ trapFocus: true,
42
+ withArrow: true,
43
+ ...citationPreviewProps,
44
+ children: [/*#__PURE__*/_jsx(PreviewTrigger, {
45
+ children: /*#__PURE__*/_jsx(Citation, {
46
+ ...citationProps,
47
+ ...props,
48
+ children: index
49
+ })
50
+ }), /*#__PURE__*/_jsx(PreviewSurface, {
51
+ ...citationPreviewSurfaceProps,
52
+ children: /*#__PURE__*/_jsxs(PreviewContent, {
53
+ children: [/*#__PURE__*/_jsx(PreviewHeader, {
54
+ citation: /*#__PURE__*/_jsx(CitationCloseButton, {
55
+ "aria-label": `Reference ${index}, close`,
56
+ referenceHref: "#",
57
+ tabIndex: -1,
58
+ children: index
59
+ }),
60
+ media: referenceProps === null || referenceProps === void 0 ? void 0 : referenceProps.media,
61
+ children: referenceProps === null || referenceProps === void 0 ? void 0 : referenceProps.children
62
+ }), /*#__PURE__*/_jsx(PreviewMetadata, {
63
+ icon: previewContentProps === null || previewContentProps === void 0 ? void 0 : previewContentProps.icon,
64
+ primaryText: previewContentProps === null || previewContentProps === void 0 ? void 0 : previewContentProps.primaryText,
65
+ secondaryText: previewContentProps === null || previewContentProps === void 0 ? void 0 : previewContentProps.secondaryText,
66
+ tertiaryText: previewContentProps === null || previewContentProps === void 0 ? void 0 : previewContentProps.tertiaryText
67
+ }), sensitivityLabelProps && /*#__PURE__*/_jsx(SensitivityLabel, {
68
+ ...sensitivityLabelProps
69
+ }), (_previewContentProps_content = previewContentProps === null || previewContentProps === void 0 ? void 0 : previewContentProps.content) !== null && _previewContentProps_content !== void 0 ? _previewContentProps_content : citationPreviewProps === null || citationPreviewProps === void 0 ? void 0 : citationPreviewProps.children]
70
+ })
71
+ })]
72
+ });
73
+ };
74
+ const referenceWithPreview = props => {
75
+ var _previewContentProps_content;
76
+ return /*#__PURE__*/_jsxs(Preview, {
77
+ closeOnScroll: true,
78
+ positioning: "below",
79
+ size: "small",
80
+ trapFocus: true,
81
+ withArrow: true,
82
+ ...referencePreviewProps,
83
+ children: [/*#__PURE__*/_jsx(PreviewTrigger, {
84
+ children: /*#__PURE__*/_jsx(Reference, {
85
+ citation: index,
86
+ ...referenceProps,
87
+ ...props
88
+ })
89
+ }), /*#__PURE__*/_jsx(PreviewSurface, {
90
+ ...referencePreviewSurfaceProps,
91
+ children: /*#__PURE__*/_jsxs(PreviewContent, {
92
+ children: [/*#__PURE__*/_jsx(PreviewHeader, {
93
+ citation: /*#__PURE__*/_jsx(CitationCloseButton, {
94
+ "aria-label": `Reference ${index}, close`,
95
+ referenceHref: "#",
96
+ tabIndex: -1,
97
+ children: index
98
+ }),
99
+ media: referenceProps === null || referenceProps === void 0 ? void 0 : referenceProps.media,
100
+ children: referenceProps === null || referenceProps === void 0 ? void 0 : referenceProps.children
101
+ }), /*#__PURE__*/_jsx(PreviewMetadata, {
102
+ icon: previewContentProps === null || previewContentProps === void 0 ? void 0 : previewContentProps.icon,
103
+ primaryText: previewContentProps === null || previewContentProps === void 0 ? void 0 : previewContentProps.primaryText,
104
+ secondaryText: previewContentProps === null || previewContentProps === void 0 ? void 0 : previewContentProps.secondaryText,
105
+ tertiaryText: previewContentProps === null || previewContentProps === void 0 ? void 0 : previewContentProps.tertiaryText
106
+ }), sensitivityLabelProps && /*#__PURE__*/_jsx(SensitivityLabel, {
107
+ ...sensitivityLabelProps
108
+ }), (_previewContentProps_content = previewContentProps === null || previewContentProps === void 0 ? void 0 : previewContentProps.content) !== null && _previewContentProps_content !== void 0 ? _previewContentProps_content : referencePreviewProps === null || referencePreviewProps === void 0 ? void 0 : referencePreviewProps.children]
109
+ })
110
+ })]
111
+ });
112
+ };
113
+ return {
114
+ Citation: citationWithPreview,
115
+ Reference: referenceWithPreview
116
+ };
117
+ }, [citationPreviewProps, citationPreviewSurfaceProps, citationProps, index, referencePreviewProps, referencePreviewSurfaceProps, referenceProps, previewContentProps, sensitivityLabelProps]);
118
+ return components;
119
+ };
120
+ //# sourceMappingURL=useReferenceCitationPreview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["useReferenceCitationPreview.tsx"],"sourcesContent":["/** @jsxRuntime automatic */\n/** @jsxImportSource @fluentui/react-jsx-runtime */\n\nimport * as React from 'react';\n\nimport { mergeCallbacks, usePopoverContext_unstable } from '@fluentui/react-components';\n\nimport {\n Preview,\n PreviewContent,\n PreviewHeader,\n PreviewMetadata,\n PreviewSurface,\n PreviewTrigger,\n} from '@fluentui-copilot/react-preview';\nimport { SensitivityLabel } from '@fluentui-copilot/react-sensitivity-label';\nimport type {\n PreviewHeaderProps,\n PreviewMetadataProps,\n PreviewProps,\n PreviewSurfaceProps,\n} from '@fluentui-copilot/react-preview';\nimport type { SensitivityLabelProps } from '@fluentui-copilot/react-sensitivity-label';\n\nimport { Citation } from '../../Citation';\nimport { Reference } from '../../ReferenceV2';\nimport type { CitationProps } from '../../Citation';\nimport type { ReferenceProps } from '../../ReferenceV2';\n\nexport type PackagedCitation = React.FC<CitationProps>;\n\nexport type PackagedReference = React.FC<ReferenceProps>;\n\nexport type PackagedPreviewContentProps = Pick<\n PreviewMetadataProps,\n 'icon' | 'primaryText' | 'secondaryText' | 'tertiaryText'\n> & {\n content?: React.ReactNode;\n};\n\nexport type UseReferenceCitationPreviewProps = {\n citationPreviewProps?: PreviewProps;\n citationPreviewSurfaceProps?: PreviewSurfaceProps;\n citationProps?: CitationProps;\n index: number;\n previewContentProps?: PackagedPreviewContentProps;\n referencePreviewProps?: PreviewProps;\n referencePreviewSurfaceProps?: PreviewSurfaceProps;\n referenceProps?: ReferenceProps;\n sensitivityLabelProps?: SensitivityLabelProps;\n};\n\nexport type UseReferenceCitationPreview = (props: UseReferenceCitationPreviewProps) => {\n Citation: PackagedCitation;\n Reference: PackagedReference;\n};\n\n// Abstract the citation that serves as the close button of the Preview into its own component so that we have access to the popover context.\nconst CitationCloseButton = (citationCloseButtonProps: CitationProps) => {\n const setPopoverOpen = usePopoverContext_unstable(context => context.setOpen);\n\n const onPopoverCloseClick = React.useCallback<NonNullable<CitationProps['onClick']>>(\n ev => {\n setPopoverOpen(ev, false);\n\n // Don't navigate\n ev.preventDefault();\n },\n [setPopoverOpen],\n );\n\n const onCitationCloseButtonClick = mergeCallbacks(onPopoverCloseClick, citationCloseButtonProps.onClick);\n\n return <Citation {...citationCloseButtonProps} onClick={onCitationCloseButtonClick} />;\n};\n\nexport const useReferenceCitationPreview: UseReferenceCitationPreview = props => {\n const {\n citationPreviewProps,\n citationPreviewSurfaceProps,\n citationProps,\n index,\n previewContentProps,\n referencePreviewProps,\n referencePreviewSurfaceProps,\n referenceProps,\n sensitivityLabelProps,\n } = props;\n\n const components = React.useMemo(() => {\n const citationWithPreview: PackagedCitation = props => {\n return (\n <Preview closeOnScroll positioning=\"below\" size=\"small\" trapFocus withArrow {...citationPreviewProps}>\n <PreviewTrigger>\n <Citation {...citationProps} {...props}>\n {index}\n </Citation>\n </PreviewTrigger>\n <PreviewSurface {...citationPreviewSurfaceProps}>\n <PreviewContent>\n <PreviewHeader\n citation={\n <CitationCloseButton aria-label={`Reference ${index}, close`} referenceHref=\"#\" tabIndex={-1}>\n {index}\n </CitationCloseButton>\n }\n media={referenceProps?.media as PreviewHeaderProps['media']}\n >\n {referenceProps?.children}\n </PreviewHeader>\n <PreviewMetadata\n icon={previewContentProps?.icon}\n primaryText={previewContentProps?.primaryText}\n secondaryText={previewContentProps?.secondaryText}\n tertiaryText={previewContentProps?.tertiaryText}\n />\n {sensitivityLabelProps && <SensitivityLabel {...sensitivityLabelProps} />}\n {previewContentProps?.content ?? citationPreviewProps?.children}\n </PreviewContent>\n </PreviewSurface>\n </Preview>\n );\n };\n\n const referenceWithPreview: PackagedReference = props => {\n return (\n <Preview closeOnScroll positioning=\"below\" size=\"small\" trapFocus withArrow {...referencePreviewProps}>\n <PreviewTrigger>\n <Reference citation={index} {...referenceProps} {...props} />\n </PreviewTrigger>\n <PreviewSurface {...referencePreviewSurfaceProps}>\n <PreviewContent>\n <PreviewHeader\n citation={\n <CitationCloseButton aria-label={`Reference ${index}, close`} referenceHref=\"#\" tabIndex={-1}>\n {index}\n </CitationCloseButton>\n }\n media={referenceProps?.media as PreviewHeaderProps['media']}\n >\n {referenceProps?.children}\n </PreviewHeader>\n <PreviewMetadata\n icon={previewContentProps?.icon}\n primaryText={previewContentProps?.primaryText}\n secondaryText={previewContentProps?.secondaryText}\n tertiaryText={previewContentProps?.tertiaryText}\n />\n {sensitivityLabelProps && <SensitivityLabel {...sensitivityLabelProps} />}\n {previewContentProps?.content ?? referencePreviewProps?.children}\n </PreviewContent>\n </PreviewSurface>\n </Preview>\n );\n };\n\n return {\n Citation: citationWithPreview,\n Reference: referenceWithPreview,\n };\n }, [\n citationPreviewProps,\n citationPreviewSurfaceProps,\n citationProps,\n index,\n referencePreviewProps,\n referencePreviewSurfaceProps,\n referenceProps,\n previewContentProps,\n sensitivityLabelProps,\n ]);\n\n return components;\n};\n"],"names":["React","mergeCallbacks","usePopoverContext_unstable","Preview","PreviewContent","PreviewHeader","PreviewMetadata","PreviewSurface","PreviewTrigger","SensitivityLabel","Citation","Reference","CitationCloseButton","citationCloseButtonProps","setPopoverOpen","context","setOpen","onPopoverCloseClick","useCallback","ev","preventDefault","onCitationCloseButtonClick","onClick","useReferenceCitationPreview","props","citationPreviewProps","citationPreviewSurfaceProps","citationProps","index","previewContentProps","referencePreviewProps","referencePreviewSurfaceProps","referenceProps","sensitivityLabelProps","components","useMemo","citationWithPreview","closeOnScroll","positioning","size","trapFocus","withArrow","citation","aria-label","referenceHref","tabIndex","media","children","icon","primaryText","secondaryText","tertiaryText","content","referenceWithPreview"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["useReferenceCitationPreview.tsx"],"sourcesContent":["/** @jsxRuntime automatic */\n/** @jsxImportSource @fluentui/react-jsx-runtime */\n\nimport * as React from 'react';\nimport {\n Caption1,\n assertSlots,\n mergeCallbacks,\n slot,\n useId,\n usePopoverContext_unstable,\n} from '@fluentui/react-components';\nimport type { Slot } from '@fluentui/react-components';\n\nimport {\n Preview,\n PreviewContent,\n PreviewHeader,\n PreviewMetadata,\n PreviewSurface,\n PreviewTrigger,\n} from '@fluentui-copilot/react-preview';\nimport { SensitivityLabel } from '@fluentui-copilot/react-sensitivity-label';\nimport type { PreviewProps, PreviewSurfaceProps } from '@fluentui-copilot/react-preview';\nimport type { SensitivityLabelProps } from '@fluentui-copilot/react-sensitivity-label';\n\nimport { Citation } from '../Citation';\nimport { Reference } from '../Reference';\nimport type { CitationProps } from '../Citation';\nimport type { ReferenceProps } from '../Reference';\n\n/**\n * Props for a \"packaged Citation\". A packaged Citation is a `Citation` that is\n * pre-packaged with props set by the `useReferenceCitation` hook.\n */\nexport type PackagedCitationProps = Omit<CitationProps, 'referenceHref'> &\n Partial<Pick<CitationProps, 'referenceHref'>>;\n\n/**\n * A \"packaged Citation\". A packaged Citation is a `Citation` that is\n * pre-packaged with props set by the `useReferenceCitation` hook.\n */\nexport type PackagedCitation = React.FC<PackagedCitationProps>;\n\ntype PartialReferenceProps = 'citationHref' | 'index' | 'referenceId';\n\n/**\n * Props for a \"packaged Reference\". A packaged Reference is a `Reference` that is\n * pre-packaged with props set by the `useReferenceCitation` hook.\n */\nexport type PackagedReferenceProps = Omit<ReferenceProps, PartialReferenceProps> &\n Partial<Pick<ReferenceProps, PartialReferenceProps>>;\n\n/**\n * A \"packaged Reference\". A packaged Reference is a `Reference` that is\n * pre-packaged with props set by the `useReferenceCitation` hook.\n */\nexport type PackagedReference = React.FC<PackagedReferenceProps>;\n\n/**\n * Data used to package a `Citation` and `Reference` together with\n * the `useReferenceCitation` hook.\n */\nexport type ReferenceCitationData = {\n index: number;\n referenceId?: string;\n citationId?: string;\n citationProps?: PackagedCitationProps;\n referenceProps?: PackagedReferenceProps;\n previewProps?: PreviewProps;\n previewSurfaceProps?: PreviewSurfaceProps;\n sensitivityLabelProps?: SensitivityLabelProps;\n};\n\nexport type UseReferenceCitationPreview = (data: ReferenceCitationData) => {\n Citation: PackagedCitation;\n Reference: PackagedReference;\n};\n\ntype PreviewExtraSlots = {\n content: Slot<'div'>;\n};\n\n// Abstract the citation that serves as the close button of the Preview into its own component so that we have access to the popover context.\nconst CitationCloseButton = (citationCloseButtonProps: CitationProps) => {\n const setPopoverOpen = usePopoverContext_unstable(context => context.setOpen);\n\n const onPopoverCloseClick = React.useCallback<NonNullable<CitationProps['onClick']>>(\n ev => {\n setPopoverOpen(ev, false);\n\n // Don't navigate\n ev.preventDefault();\n },\n [setPopoverOpen],\n );\n\n const onCitationCloseButtonClick = mergeCallbacks(onPopoverCloseClick, citationCloseButtonProps.onClick);\n\n return <Citation {...citationCloseButtonProps} onClick={onCitationCloseButtonClick} />;\n};\n\n/**\n * Hook to package a `Citation` and `Reference` together in an\n * accessibly by default manner.\n *\n * When using citations and references, prefer using them via this\n * hook to ensure props are wired up correctly.\n */\nexport const useReferenceCitationPreview: UseReferenceCitationPreview = ({\n index,\n referenceId: propsRefId,\n citationId: propsCiteId,\n citationProps,\n referenceProps,\n previewProps,\n previewSurfaceProps,\n sensitivityLabelProps,\n}) => {\n const refId = useId();\n const citeId = useId();\n\n const referenceId = propsRefId ?? refId;\n const citationId = propsCiteId ?? citeId;\n\n const components = React.useMemo(() => {\n const citationHref = `#${citationId}`;\n\n const PackagedReference: PackagedReference = props => {\n const referenceIndex = props.index ?? referenceProps?.index ?? index;\n\n return (\n <Reference\n {...referenceProps}\n index={referenceIndex}\n referenceId={referenceId}\n citationHref={citationHref}\n {...props}\n />\n );\n };\n\n const CitationWithPreview: PackagedCitation = props => {\n // We assert content as a slot to use it with its resolved props object and the correct defaults below.\n const content = slot.always(referenceProps ? referenceProps.content : undefined, {\n defaultProps: {\n children: referenceProps?.excerpt && <Caption1>{referenceProps.excerpt}</Caption1>,\n },\n elementType: 'div',\n });\n const citationWithPreviewState = {\n components: {\n content: 'div',\n },\n content,\n };\n assertSlots<PreviewExtraSlots>(citationWithPreviewState);\n\n // We resolve the slots' objects for sensitivity and title here so that we can use the information from their children below.\n const sensitivity = slot.optional(referenceProps?.sensitivity, { elementType: 'span' });\n const title = slot.optional(referenceProps?.label, { elementType: 'div' });\n\n return (\n <Preview closeOnScroll positioning=\"below\" size=\"small\" trapFocus withArrow {...previewProps}>\n <PreviewTrigger>\n <Citation {...citationProps} id={citationId} {...props}>\n {index}\n </Citation>\n </PreviewTrigger>\n <PreviewSurface {...previewSurfaceProps}>\n <PreviewContent>\n <PreviewHeader\n citation={\n <CitationCloseButton aria-label={`Reference ${index}, close`} referenceHref=\"#\" tabIndex={-1}>\n {index}\n </CitationCloseButton>\n }\n media={referenceProps?.media}\n >\n {title?.children}\n </PreviewHeader>\n <PreviewMetadata\n icon={referenceProps?.icon}\n primaryText={referenceProps?.primaryText}\n secondaryText={referenceProps?.secondaryText}\n tertiaryText={referenceProps?.tertiaryText}\n />\n {sensitivity && (\n <SensitivityLabel description={sensitivityLabelProps?.description ?? ''}>\n {sensitivity.children}\n </SensitivityLabel>\n )}\n <citationWithPreviewState.content />\n {previewProps?.children}\n </PreviewContent>\n </PreviewSurface>\n </Preview>\n );\n };\n\n return {\n Citation: CitationWithPreview,\n Reference: PackagedReference,\n };\n }, [\n index,\n referenceId,\n citationId,\n referenceProps,\n citationProps,\n previewProps,\n previewSurfaceProps,\n sensitivityLabelProps,\n ]);\n\n return components;\n};\n"],"names":["React","Caption1","assertSlots","mergeCallbacks","slot","useId","usePopoverContext_unstable","Preview","PreviewContent","PreviewHeader","PreviewMetadata","PreviewSurface","PreviewTrigger","SensitivityLabel","Citation","Reference","CitationCloseButton","citationCloseButtonProps","setPopoverOpen","context","setOpen","onPopoverCloseClick","useCallback","ev","preventDefault","onCitationCloseButtonClick","onClick","useReferenceCitationPreview","index","referenceId","propsRefId","citationId","propsCiteId","citationProps","referenceProps","previewProps","previewSurfaceProps","sensitivityLabelProps","refId","citeId","components","useMemo","citationHref","PackagedReference","props","referenceIndex","CitationWithPreview","content","always","undefined","defaultProps","children","excerpt","elementType","citationWithPreviewState","sensitivity","optional","title","label","closeOnScroll","positioning","size","trapFocus","withArrow","id","citation","aria-label","referenceHref","tabIndex","media","icon","primaryText","secondaryText","tertiaryText","description"],"mappings":"AAAA,0BAA0B,GAC1B,iDAAiD;AAEjD,YAAYA,WAAW,QAAQ;AAC/B,SACEC,QAAQ,EACRC,WAAW,EACXC,cAAc,EACdC,IAAI,EACJC,KAAK,EACLC,0BAA0B,QACrB,6BAA6B;AAGpC,SACEC,OAAO,EACPC,cAAc,EACdC,aAAa,EACbC,eAAe,EACfC,cAAc,EACdC,cAAc,QACT,kCAAkC;AACzC,SAASC,gBAAgB,QAAQ,4CAA4C;AAI7E,SAASC,QAAQ,QAAQ,cAAc;AACvC,SAASC,SAAS,QAAQ,eAAe;AAwDzC,6IAA6I;AAC7I,MAAMC,sBAAsB,CAACC;IAC3B,MAAMC,iBAAiBZ,2BAA2Ba,CAAAA,UAAWA,QAAQC,OAAO;IAE5E,MAAMC,sBAAsBrB,MAAMsB,WAAW,CAC3CC,CAAAA;QACEL,eAAeK,IAAI;QAEnB,iBAAiB;QACjBA,GAAGC,cAAc;IACnB,GACA;QAACN;KAAe;IAGlB,MAAMO,6BAA6BtB,eAAekB,qBAAqBJ,yBAAyBS,OAAO;IAEvG,qBAAO,KAACZ;QAAU,GAAGG,wBAAwB;QAAES,SAASD;;AAC1D;AAEA;;;;;;CAMC,GACD,OAAO,MAAME,8BAA2D,CAAC,EACvEC,KAAK,EACLC,aAAaC,UAAU,EACvBC,YAAYC,WAAW,EACvBC,aAAa,EACbC,cAAc,EACdC,YAAY,EACZC,mBAAmB,EACnBC,qBAAqB,EACtB;IACC,MAAMC,QAAQjC;IACd,MAAMkC,SAASlC;IAEf,MAAMwB,cAAcC,uBAAAA,wBAAAA,aAAcQ;IAClC,MAAMP,aAAaC,wBAAAA,yBAAAA,cAAeO;IAElC,MAAMC,aAAaxC,MAAMyC,OAAO,CAAC;QAC/B,MAAMC,eAAe,CAAC,CAAC,EAAEX,WAAW,CAAC;QAErC,MAAMY,oBAAuCC,CAAAA;gBACpBA,cAAAA;YAAvB,MAAMC,iBAAiBD,CAAAA,OAAAA,CAAAA,eAAAA,MAAMhB,KAAK,cAAXgB,0BAAAA,eAAeV,2BAAAA,qCAAAA,eAAgBN,KAAK,cAApCgB,kBAAAA,OAAwChB;YAE/D,qBACE,KAACb;gBACE,GAAGmB,cAAc;gBAClBN,OAAOiB;gBACPhB,aAAaA;gBACba,cAAcA;gBACb,GAAGE,KAAK;;QAGf;QAEA,MAAME,sBAAwCF,CAAAA;YAC5C,uGAAuG;YACvG,MAAMG,UAAU3C,KAAK4C,MAAM,CAACd,iBAAiBA,eAAea,OAAO,GAAGE,WAAW;gBAC/EC,cAAc;oBACZC,UAAUjB,CAAAA,2BAAAA,qCAAAA,eAAgBkB,OAAO,mBAAI,KAACnD;kCAAUiC,eAAekB,OAAO;;gBACxE;gBACAC,aAAa;YACf;YACA,MAAMC,2BAA2B;gBAC/Bd,YAAY;oBACVO,SAAS;gBACX;gBACAA;YACF;YACA7C,YAA+BoD;YAE/B,6HAA6H;YAC7H,MAAMC,cAAcnD,KAAKoD,QAAQ,CAACtB,2BAAAA,qCAAAA,eAAgBqB,WAAW,EAAE;gBAAEF,aAAa;YAAO;YACrF,MAAMI,QAAQrD,KAAKoD,QAAQ,CAACtB,2BAAAA,qCAAAA,eAAgBwB,KAAK,EAAE;gBAAEL,aAAa;YAAM;gBA4B/BhB;YA1BzC,qBACE,MAAC9B;gBAAQoD,aAAa;gBAACC,aAAY;gBAAQC,MAAK;gBAAQC,SAAS;gBAACC,SAAS;gBAAE,GAAG5B,YAAY;;kCAC1F,KAACvB;kCACC,cAAA,KAACE;4BAAU,GAAGmB,aAAa;4BAAE+B,IAAIjC;4BAAa,GAAGa,KAAK;sCACnDhB;;;kCAGL,KAACjB;wBAAgB,GAAGyB,mBAAmB;kCACrC,cAAA,MAAC5B;;8CACC,KAACC;oCACCwD,wBACE,KAACjD;wCAAoBkD,cAAY,CAAC,UAAU,EAAEtC,MAAM,OAAO,CAAC;wCAAEuC,eAAc;wCAAIC,UAAU,CAAC;kDACxFxC;;oCAGLyC,KAAK,EAAEnC,2BAAAA,qCAAAA,eAAgBmC,KAAK;8CAE3BZ,kBAAAA,4BAAAA,MAAON,QAAQ;;8CAElB,KAACzC;oCACC4D,IAAI,EAAEpC,2BAAAA,qCAAAA,eAAgBoC,IAAI;oCAC1BC,WAAW,EAAErC,2BAAAA,qCAAAA,eAAgBqC,WAAW;oCACxCC,aAAa,EAAEtC,2BAAAA,qCAAAA,eAAgBsC,aAAa;oCAC5CC,YAAY,EAAEvC,2BAAAA,qCAAAA,eAAgBuC,YAAY;;gCAE3ClB,6BACC,KAAC1C;oCAAiB6D,aAAarC,CAAAA,qCAAAA,kCAAAA,4CAAAA,sBAAuBqC,WAAW,cAAlCrC,gDAAAA,qCAAsC;8CAClEkB,YAAYJ,QAAQ;;8CAGzB,KAACG,yBAAyBP,OAAO;gCAChCZ,yBAAAA,mCAAAA,aAAcgB,QAAQ;;;;;;QAKjC;QAEA,OAAO;YACLrC,UAAUgC;YACV/B,WAAW4B;QACb;IACF,GAAG;QACDf;QACAC;QACAE;QACAG;QACAD;QACAE;QACAC;QACAC;KACD;IAED,OAAOG;AACT,EAAE"}
1
+ {"version":3,"sources":["useReferenceCitationPreview.tsx"],"sourcesContent":["/** @jsxRuntime automatic */\n/** @jsxImportSource @fluentui/react-jsx-runtime */\n\nimport * as React from 'react';\nimport {\n Caption1,\n assertSlots,\n mergeCallbacks,\n slot,\n useId,\n usePopoverContext_unstable,\n} from '@fluentui/react-components';\nimport type { Slot } from '@fluentui/react-components';\n\nimport {\n Preview,\n PreviewContent,\n PreviewHeader,\n PreviewMetadata,\n PreviewSurface,\n PreviewTrigger,\n} from '@fluentui-copilot/react-preview';\nimport { SensitivityLabel } from '@fluentui-copilot/react-sensitivity-label';\nimport type { PreviewProps, PreviewSurfaceProps } from '@fluentui-copilot/react-preview';\nimport type { SensitivityLabelProps } from '@fluentui-copilot/react-sensitivity-label';\n\nimport { Citation } from '../Citation';\nimport { Reference } from '../Reference';\nimport type { CitationProps } from '../Citation';\nimport type { ReferenceProps } from '../Reference';\n\n/**\n * Props for a \"packaged Citation\". A packaged Citation is a `Citation` that is\n * pre-packaged with props set by the `useReferenceCitation` hook.\n */\nexport type PackagedCitationProps = Omit<CitationProps, 'referenceHref'> &\n Partial<Pick<CitationProps, 'referenceHref'>>;\n\n/**\n * A \"packaged Citation\". A packaged Citation is a `Citation` that is\n * pre-packaged with props set by the `useReferenceCitation` hook.\n */\nexport type PackagedCitation = React.FC<PackagedCitationProps>;\n\ntype PartialReferenceProps = 'citationHref' | 'index' | 'referenceId';\n\n/**\n * Props for a \"packaged Reference\". A packaged Reference is a `Reference` that is\n * pre-packaged with props set by the `useReferenceCitation` hook.\n */\nexport type PackagedReferenceProps = Omit<ReferenceProps, PartialReferenceProps> &\n Partial<Pick<ReferenceProps, PartialReferenceProps>>;\n\n/**\n * A \"packaged Reference\". A packaged Reference is a `Reference` that is\n * pre-packaged with props set by the `useReferenceCitation` hook.\n */\nexport type PackagedReference = React.FC<PackagedReferenceProps>;\n\n/**\n * Data used to package a `Citation` and `Reference` together with\n * the `useReferenceCitation` hook.\n */\nexport type ReferenceCitationData = {\n index: number;\n referenceId?: string;\n citationId?: string;\n citationProps?: PackagedCitationProps;\n referenceProps?: PackagedReferenceProps;\n previewProps?: PreviewProps;\n previewSurfaceProps?: PreviewSurfaceProps;\n sensitivityLabelProps?: SensitivityLabelProps;\n};\n\nexport type UseReferenceCitationPreview = (data: ReferenceCitationData) => {\n Citation: PackagedCitation;\n Reference: PackagedReference;\n};\n\ntype PreviewExtraSlots = {\n content: Slot<'div'>;\n};\n\n// Abstract the citation that serves as the close button of the Preview into its own component so that we have access to the popover context.\nconst CitationCloseButton = (citationCloseButtonProps: CitationProps) => {\n const setPopoverOpen = usePopoverContext_unstable(context => context.setOpen);\n\n const onPopoverCloseClick = React.useCallback<NonNullable<CitationProps['onClick']>>(\n ev => {\n setPopoverOpen(ev, false);\n\n // Don't navigate\n ev.preventDefault();\n },\n [setPopoverOpen],\n );\n\n const onCitationCloseButtonClick = mergeCallbacks(onPopoverCloseClick, citationCloseButtonProps.onClick);\n\n return <Citation {...citationCloseButtonProps} onClick={onCitationCloseButtonClick} />;\n};\n\n/**\n * Hook to package a `Citation` and `Reference` together in an\n * accessibly by default manner.\n *\n * When using citations and references, prefer using them via this\n * hook to ensure props are wired up correctly.\n */\nexport const useReferenceCitationPreview: UseReferenceCitationPreview = ({\n index,\n referenceId: propsRefId,\n citationId: propsCiteId,\n citationProps,\n referenceProps,\n previewProps,\n previewSurfaceProps,\n sensitivityLabelProps,\n}) => {\n const refId = useId();\n const citeId = useId();\n\n const referenceId = propsRefId ?? refId;\n const citationId = propsCiteId ?? citeId;\n\n const components = React.useMemo(() => {\n const citationHref = `#${citationId}`;\n\n const PackagedReference: PackagedReference = props => {\n const referenceIndex = props.index ?? referenceProps?.index ?? index;\n\n return (\n <Reference\n {...referenceProps}\n index={referenceIndex}\n referenceId={referenceId}\n citationHref={citationHref}\n {...props}\n />\n );\n };\n\n const CitationWithPreview: PackagedCitation = props => {\n // We assert content as a slot to use it with its resolved props object and the correct defaults below.\n const content = slot.always(referenceProps ? referenceProps.content : undefined, {\n defaultProps: {\n children: referenceProps?.excerpt && <Caption1>{referenceProps.excerpt}</Caption1>,\n },\n elementType: 'div',\n });\n const citationWithPreviewState = {\n components: {\n content: 'div',\n },\n content,\n };\n assertSlots<PreviewExtraSlots>(citationWithPreviewState);\n\n // We resolve the slots' objects for sensitivity and title here so that we can use the information from their children below.\n const sensitivity = slot.optional(referenceProps?.sensitivity, { elementType: 'span' });\n const title = slot.optional(referenceProps?.label, { elementType: 'div' });\n\n return (\n <Preview closeOnScroll positioning=\"below\" size=\"small\" trapFocus withArrow {...previewProps}>\n <PreviewTrigger>\n <Citation {...citationProps} id={citationId} {...props}>\n {index}\n </Citation>\n </PreviewTrigger>\n <PreviewSurface {...previewSurfaceProps}>\n <PreviewContent>\n <PreviewHeader\n citation={\n <CitationCloseButton aria-label={`Reference ${index}, close`} referenceHref=\"#\" tabIndex={-1}>\n {index}\n </CitationCloseButton>\n }\n media={referenceProps?.media}\n >\n {title?.children}\n </PreviewHeader>\n <PreviewMetadata\n icon={referenceProps?.icon}\n primaryText={referenceProps?.primaryText}\n secondaryText={referenceProps?.secondaryText}\n tertiaryText={referenceProps?.tertiaryText}\n />\n {sensitivity && (\n <SensitivityLabel description={sensitivityLabelProps?.description ?? ''}>\n {sensitivity.children}\n </SensitivityLabel>\n )}\n <citationWithPreviewState.content />\n {previewProps?.children}\n </PreviewContent>\n </PreviewSurface>\n </Preview>\n );\n };\n\n return {\n Citation: CitationWithPreview,\n Reference: PackagedReference,\n };\n }, [\n index,\n referenceId,\n citationId,\n referenceProps,\n citationProps,\n previewProps,\n previewSurfaceProps,\n sensitivityLabelProps,\n ]);\n\n return components;\n};\n"],"names":["React","Caption1","assertSlots","mergeCallbacks","slot","useId","usePopoverContext_unstable","Preview","PreviewContent","PreviewHeader","PreviewMetadata","PreviewSurface","PreviewTrigger","SensitivityLabel","Citation","Reference","CitationCloseButton","citationCloseButtonProps","setPopoverOpen","context","setOpen","onPopoverCloseClick","useCallback","ev","preventDefault","onCitationCloseButtonClick","onClick","useReferenceCitationPreview","index","referenceId","propsRefId","citationId","propsCiteId","citationProps","referenceProps","previewProps","previewSurfaceProps","sensitivityLabelProps","refId","citeId","components","useMemo","citationHref","PackagedReference","props","referenceIndex","CitationWithPreview","content","always","undefined","defaultProps","children","excerpt","elementType","citationWithPreviewState","sensitivity","optional","title","label","closeOnScroll","positioning","size","trapFocus","withArrow","id","citation","aria-label","referenceHref","tabIndex","media","icon","primaryText","secondaryText","tertiaryText","description"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["useReferenceGroup.tsx"],"sourcesContent":["import * as React from 'react';\nimport { makeStyles, useId } from '@fluentui/react-components';\nimport type { ReferenceListProps } from '../ReferenceList';\nimport type { ReferenceGroupToggleProps } from '../ReferenceGroupToggle';\n\nexport type UseReferenceGroupProps = { referenceListId?: string };\nexport type UseReferenceGroup = (props: UseReferenceGroupProps) => {\n referenceGroupToggleProps: ReferenceGroupToggleProps;\n referenceListProps: ReferenceListProps;\n};\n\nconst useStyles = makeStyles({\n hidden: {\n display: 'none',\n },\n});\n\n/**\n * Hook to package a `ReferenceGroupToggle` and `ReferenceList` together and\n * maintain their `isOpen` state.\n *\n * When rendering a group of references, prefer to use this hook\n * hook to ensure state is maintained correctly\n */\nexport const useReferenceGroup: UseReferenceGroup = props => {\n const [isOpen, setIsOpen] = React.useState(false);\n const styles = useStyles();\n const referenceListId = useId('reference-list', props.referenceListId);\n\n return React.useMemo(() => {\n const handleClick = () => {\n setIsOpen(isOpen => !isOpen);\n };\n\n const referenceGroupToggleProps = {\n 'aria-controls': referenceListId,\n isOpen,\n onClick: handleClick,\n };\n\n const referenceListProps = {\n className: isOpen ? undefined : styles.hidden,\n id: referenceListId,\n };\n\n return { referenceGroupToggleProps, referenceListProps };\n }, [isOpen, referenceListId, styles.hidden]);\n};\n"],"names":["React","makeStyles","useId","useStyles","hidden","display","useReferenceGroup","props","isOpen","setIsOpen","useState","styles","referenceListId","useMemo","handleClick","referenceGroupToggleProps","onClick","referenceListProps","className","undefined","id"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,KAAK,QAAQ,6BAA6B;AAU/D,MAAMC,YAAYF,WAAW;IAC3BG,QAAQ;QACNC,SAAS;IACX;AACF;AAEA;;;;;;CAMC,GACD,OAAO,MAAMC,oBAAuCC,CAAAA;IAClD,MAAM,CAACC,QAAQC,UAAU,GAAGT,MAAMU,QAAQ,CAAC;IAC3C,MAAMC,SAASR;IACf,MAAMS,kBAAkBV,MAAM,kBAAkBK,MAAMK,eAAe;IAErE,OAAOZ,MAAMa,OAAO,CAAC;QACnB,MAAMC,cAAc;YAClBL,UAAUD,CAAAA,SAAU,CAACA;QACvB;QAEA,MAAMO,4BAA4B;YAChC,iBAAiBH;YACjBJ;YACAQ,SAASF;QACX;QAEA,MAAMG,qBAAqB;YACzBC,WAAWV,SAASW,YAAYR,OAAOP,MAAM;YAC7CgB,IAAIR;QACN;QAEA,OAAO;YAAEG;YAA2BE;QAAmB;IACzD,GAAG;QAACT;QAAQI;QAAiBD,OAAOP,MAAM;KAAC;AAC7C,EAAE"}
1
+ {"version":3,"sources":["useReferenceGroup.tsx"],"sourcesContent":["import * as React from 'react';\nimport { makeStyles, useId } from '@fluentui/react-components';\nimport type { ReferenceListProps } from '../ReferenceList';\nimport type { ReferenceGroupToggleProps } from '../ReferenceGroupToggle';\n\nexport type UseReferenceGroupProps = { referenceListId?: string };\nexport type UseReferenceGroup = (props: UseReferenceGroupProps) => {\n referenceGroupToggleProps: ReferenceGroupToggleProps;\n referenceListProps: ReferenceListProps;\n};\n\nconst useStyles = makeStyles({\n hidden: {\n display: 'none',\n },\n});\n\n/**\n * Hook to package a `ReferenceGroupToggle` and `ReferenceList` together and\n * maintain their `isOpen` state.\n *\n * When rendering a group of references, prefer to use this hook\n * hook to ensure state is maintained correctly\n */\nexport const useReferenceGroup: UseReferenceGroup = props => {\n const [isOpen, setIsOpen] = React.useState(false);\n const styles = useStyles();\n const referenceListId = useId('reference-list', props.referenceListId);\n\n return React.useMemo(() => {\n const handleClick = () => {\n setIsOpen(isOpen => !isOpen);\n };\n\n const referenceGroupToggleProps = {\n 'aria-controls': referenceListId,\n isOpen,\n onClick: handleClick,\n };\n\n const referenceListProps = {\n className: isOpen ? undefined : styles.hidden,\n id: referenceListId,\n };\n\n return { referenceGroupToggleProps, referenceListProps };\n }, [isOpen, referenceListId, styles.hidden]);\n};\n"],"names":["React","makeStyles","useId","useStyles","hidden","display","useReferenceGroup","props","isOpen","setIsOpen","useState","styles","referenceListId","useMemo","handleClick","referenceGroupToggleProps","onClick","referenceListProps","className","undefined","id"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,KAAK,QAAQ,6BAA6B;AAU/D,MAAMC,YAAYF,WAAW;IAC3BG,QAAQ;QACNC,SAAS;IACX;AACF;AAEA;;;;;;CAMC,GACD,OAAO,MAAMC,oBAAuCC,CAAAA;IAClD,MAAM,CAACC,QAAQC,UAAU,GAAGT,MAAMU,QAAQ,CAAC;IAC3C,MAAMC,SAASR;IACf,MAAMS,kBAAkBV,MAAM,kBAAkBK,MAAMK,eAAe;IAErE,OAAOZ,MAAMa,OAAO,CAAC;QACnB,MAAMC,cAAc;YAClBL,UAAUD,CAAAA,SAAU,CAACA;QACvB;QAEA,MAAMO,4BAA4B;YAChC,iBAAiBH;YACjBJ;YACAQ,SAASF;QACX;QAEA,MAAMG,qBAAqB;YACzBC,WAAWV,SAASW,YAAYR,OAAOP,MAAM;YAC7CgB,IAAIR;QACN;QAEA,OAAO;YAAEG;YAA2BE;QAAmB;IACzD,GAAG;QAACT;QAAQI;QAAiBD,OAAOP,MAAM;KAAC;AAC7C,EAAE"}
package/lib/index.js CHANGED
@@ -3,4 +3,9 @@ export { Reference, referenceClassNames, renderReference_unstable, useReference_
3
3
  export { useReferenceCitationPreview, useReferenceGroup } from './hooks';
4
4
  export { ReferenceList, referenceListClassNames, useReferenceList_unstable, useReferenceListStyles_unstable, renderReferenceList_unstable } from './ReferenceList';
5
5
  export { ReferenceGroupToggle, referenceGroupToggleClassNames, renderReferenceGroupToggle_unstable, useReferenceGroupToggleStyles_unstable, useReferenceGroupToggle_unstable } from './ReferenceGroupToggle';
6
+ export { Reference as ReferenceV2, referenceClassNames as referenceV2ClassNames, referenceExtraClassNames as referenceV2ExtraClassNames, renderReference_unstable as renderReferenceV2_unstable, useReferenceStyles_unstable as useReferenceStylesV2_unstable, useReference_unstable as useReferenceV2_unstable } from './ReferenceV2';
7
+ export { ReferenceList as ReferenceListV2, referenceListClassNames as referenceListV2ClassNames, renderReferenceList_unstable as renderReferenceListV2_unstable, useReferenceListStyles_unstable as useReferenceListStylesV2_unstable, useReferenceList_unstable as useReferenceListV2_unstable } from './ReferenceListV2';
8
+ export { ReferenceOverflowButton, referenceOverflowButtonClassNames, renderReferenceOverflowButton_unstable, useReferenceOverflowButtonStyles_unstable, useReferenceOverflowButton_unstable } from './ReferenceOverflowButton';
9
+ export { ReferenceListContext, ReferenceListContextProvider, useReferenceListContext_unstable } from './contexts/reference-v2';
10
+ export { useReferenceCitationPreview as useReferenceCitationPreviewV2 } from './hooks/reference-v2';
6
11
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"sourcesContent":["export {\n Citation,\n citationClassNames,\n renderCitation_unstable,\n useCitation_unstable,\n useCitationStyles_unstable,\n} from './Citation';\nexport {\n Reference,\n referenceClassNames,\n renderReference_unstable,\n useReference_unstable,\n useReferenceStyles_unstable,\n} from './Reference';\nexport { useReferenceCitationPreview, useReferenceGroup } from './hooks';\nexport {\n ReferenceList,\n referenceListClassNames,\n useReferenceList_unstable,\n useReferenceListStyles_unstable,\n renderReferenceList_unstable,\n} from './ReferenceList';\nexport {\n ReferenceGroupToggle,\n referenceGroupToggleClassNames,\n renderReferenceGroupToggle_unstable,\n useReferenceGroupToggleStyles_unstable,\n useReferenceGroupToggle_unstable,\n} from './ReferenceGroupToggle';\n\n// Types\n\nexport type { CitationSlots, CitationProps, CitationState } from './Citation';\nexport type { ReferenceSlots, ReferenceProps, ReferenceState } from './Reference';\nexport type { ReferenceListSlots, ReferenceListProps, ReferenceListState } from './ReferenceList';\nexport type {\n ReferenceGroupToggleSlots,\n ReferenceGroupToggleProps,\n ReferenceGroupToggleState,\n} from './ReferenceGroupToggle';\n\nexport type {\n PackagedCitationProps,\n PackagedCitation,\n PackagedReferenceProps,\n PackagedReference,\n ReferenceCitationData,\n UseReferenceCitationPreview,\n UseReferenceGroup,\n UseReferenceGroupProps,\n} from './hooks';\n"],"names":["Citation","citationClassNames","renderCitation_unstable","useCitation_unstable","useCitationStyles_unstable","Reference","referenceClassNames","renderReference_unstable","useReference_unstable","useReferenceStyles_unstable","useReferenceCitationPreview","useReferenceGroup","ReferenceList","referenceListClassNames","useReferenceList_unstable","useReferenceListStyles_unstable","renderReferenceList_unstable","ReferenceGroupToggle","referenceGroupToggleClassNames","renderReferenceGroupToggle_unstable","useReferenceGroupToggleStyles_unstable","useReferenceGroupToggle_unstable"],"mappings":"AAAA,SACEA,QAAQ,EACRC,kBAAkB,EAClBC,uBAAuB,EACvBC,oBAAoB,EACpBC,0BAA0B,QACrB,aAAa;AACpB,SACEC,SAAS,EACTC,mBAAmB,EACnBC,wBAAwB,EACxBC,qBAAqB,EACrBC,2BAA2B,QACtB,cAAc;AACrB,SAASC,2BAA2B,EAAEC,iBAAiB,QAAQ,UAAU;AACzE,SACEC,aAAa,EACbC,uBAAuB,EACvBC,yBAAyB,EACzBC,+BAA+B,EAC/BC,4BAA4B,QACvB,kBAAkB;AACzB,SACEC,oBAAoB,EACpBC,8BAA8B,EAC9BC,mCAAmC,EACnCC,sCAAsC,EACtCC,gCAAgC,QAC3B,yBAAyB"}
1
+ {"version":3,"sources":["index.ts"],"sourcesContent":["export {\n Citation,\n citationClassNames,\n renderCitation_unstable,\n useCitation_unstable,\n useCitationStyles_unstable,\n} from './Citation';\nexport {\n Reference,\n referenceClassNames,\n renderReference_unstable,\n useReference_unstable,\n useReferenceStyles_unstable,\n} from './Reference';\nexport { useReferenceCitationPreview, useReferenceGroup } from './hooks';\nexport {\n ReferenceList,\n referenceListClassNames,\n useReferenceList_unstable,\n useReferenceListStyles_unstable,\n renderReferenceList_unstable,\n} from './ReferenceList';\nexport {\n ReferenceGroupToggle,\n referenceGroupToggleClassNames,\n renderReferenceGroupToggle_unstable,\n useReferenceGroupToggleStyles_unstable,\n useReferenceGroupToggle_unstable,\n} from './ReferenceGroupToggle';\n\n// Types\n\nexport type { CitationSlots, CitationProps, CitationState } from './Citation';\nexport type { ReferenceSlots, ReferenceProps, ReferenceState } from './Reference';\nexport type { ReferenceListSlots, ReferenceListProps, ReferenceListState } from './ReferenceList';\nexport type {\n ReferenceGroupToggleSlots,\n ReferenceGroupToggleProps,\n ReferenceGroupToggleState,\n} from './ReferenceGroupToggle';\n\nexport type {\n PackagedCitationProps,\n PackagedCitation,\n PackagedReferenceProps,\n PackagedReference,\n ReferenceCitationData,\n UseReferenceCitationPreview,\n UseReferenceGroup,\n UseReferenceGroupProps,\n} from './hooks';\n\n// reference-v2 exports\nexport type {\n ReferenceProps as ReferenceV2Props,\n ReferenceSlots as ReferenceV2Slots,\n ReferenceState as ReferenceV2State,\n} from './ReferenceV2';\nexport {\n Reference as ReferenceV2,\n referenceClassNames as referenceV2ClassNames,\n referenceExtraClassNames as referenceV2ExtraClassNames,\n renderReference_unstable as renderReferenceV2_unstable,\n useReferenceStyles_unstable as useReferenceStylesV2_unstable,\n useReference_unstable as useReferenceV2_unstable,\n} from './ReferenceV2';\n\nexport type {\n ReferenceListContextValues as ReferenceListV2ContextValues,\n ReferenceListProps as ReferenceListV2Props,\n ReferenceListSlots as ReferenceListV2Slots,\n ReferenceListState as ReferenceListV2State,\n} from './ReferenceListV2';\nexport {\n ReferenceList as ReferenceListV2,\n referenceListClassNames as referenceListV2ClassNames,\n renderReferenceList_unstable as renderReferenceListV2_unstable,\n useReferenceListStyles_unstable as useReferenceListStylesV2_unstable,\n useReferenceList_unstable as useReferenceListV2_unstable,\n} from './ReferenceListV2';\n\nexport type {\n ReferenceOverflowButtonProps,\n ReferenceOverflowButtonSlots,\n ReferenceOverflowButtonState,\n} from './ReferenceOverflowButton';\nexport {\n ReferenceOverflowButton,\n referenceOverflowButtonClassNames,\n renderReferenceOverflowButton_unstable,\n useReferenceOverflowButtonStyles_unstable,\n useReferenceOverflowButton_unstable,\n} from './ReferenceOverflowButton';\n\nexport type { ReferenceListContextValue } from './contexts/reference-v2';\nexport {\n ReferenceListContext,\n ReferenceListContextProvider,\n useReferenceListContext_unstable,\n} from './contexts/reference-v2';\n\nexport type {\n PackagedCitation as PackagedCitationV2,\n PackagedPreviewContentProps as PackagedPreviewContentV2Props,\n PackagedReference as PackagedReferenceV2,\n UseReferenceCitationPreview as UseReferenceCitationPreviewV2,\n UseReferenceCitationPreviewProps as UseReferenceCitationPreviewV2Props,\n} from './hooks/reference-v2';\nexport { useReferenceCitationPreview as useReferenceCitationPreviewV2 } from './hooks/reference-v2';\n"],"names":["Citation","citationClassNames","renderCitation_unstable","useCitation_unstable","useCitationStyles_unstable","Reference","referenceClassNames","renderReference_unstable","useReference_unstable","useReferenceStyles_unstable","useReferenceCitationPreview","useReferenceGroup","ReferenceList","referenceListClassNames","useReferenceList_unstable","useReferenceListStyles_unstable","renderReferenceList_unstable","ReferenceGroupToggle","referenceGroupToggleClassNames","renderReferenceGroupToggle_unstable","useReferenceGroupToggleStyles_unstable","useReferenceGroupToggle_unstable","ReferenceV2","referenceV2ClassNames","referenceExtraClassNames","referenceV2ExtraClassNames","renderReferenceV2_unstable","useReferenceStylesV2_unstable","useReferenceV2_unstable","ReferenceListV2","referenceListV2ClassNames","renderReferenceListV2_unstable","useReferenceListStylesV2_unstable","useReferenceListV2_unstable","ReferenceOverflowButton","referenceOverflowButtonClassNames","renderReferenceOverflowButton_unstable","useReferenceOverflowButtonStyles_unstable","useReferenceOverflowButton_unstable","ReferenceListContext","ReferenceListContextProvider","useReferenceListContext_unstable","useReferenceCitationPreviewV2"],"rangeMappings":";;;;;;;;;","mappings":"AAAA,SACEA,QAAQ,EACRC,kBAAkB,EAClBC,uBAAuB,EACvBC,oBAAoB,EACpBC,0BAA0B,QACrB,aAAa;AACpB,SACEC,SAAS,EACTC,mBAAmB,EACnBC,wBAAwB,EACxBC,qBAAqB,EACrBC,2BAA2B,QACtB,cAAc;AACrB,SAASC,2BAA2B,EAAEC,iBAAiB,QAAQ,UAAU;AACzE,SACEC,aAAa,EACbC,uBAAuB,EACvBC,yBAAyB,EACzBC,+BAA+B,EAC/BC,4BAA4B,QACvB,kBAAkB;AACzB,SACEC,oBAAoB,EACpBC,8BAA8B,EAC9BC,mCAAmC,EACnCC,sCAAsC,EACtCC,gCAAgC,QAC3B,yBAAyB;AA8BhC,SACEhB,aAAaiB,WAAW,EACxBhB,uBAAuBiB,qBAAqB,EAC5CC,4BAA4BC,0BAA0B,EACtDlB,4BAA4BmB,0BAA0B,EACtDjB,+BAA+BkB,6BAA6B,EAC5DnB,yBAAyBoB,uBAAuB,QAC3C,gBAAgB;AAQvB,SACEhB,iBAAiBiB,eAAe,EAChChB,2BAA2BiB,yBAAyB,EACpDd,gCAAgCe,8BAA8B,EAC9DhB,mCAAmCiB,iCAAiC,EACpElB,6BAA6BmB,2BAA2B,QACnD,oBAAoB;AAO3B,SACEC,uBAAuB,EACvBC,iCAAiC,EACjCC,sCAAsC,EACtCC,yCAAyC,EACzCC,mCAAmC,QAC9B,4BAA4B;AAGnC,SACEC,oBAAoB,EACpBC,4BAA4B,EAC5BC,gCAAgC,QAC3B,0BAA0B;AASjC,SAAS/B,+BAA+BgC,6BAA6B,QAAQ,uBAAuB"}
@@ -1 +1 @@
1
- {"version":3,"sources":["Citation.js"],"sourcesContent":["export * from './components/Citation/index';\n//# sourceMappingURL=Citation.js.map"],"names":[],"mappings":";;;;;uBAAc;CACd,oCAAoC"}
1
+ {"version":3,"sources":["Citation.ts"],"sourcesContent":["export * from './components/Citation/index';\n"],"names":[],"rangeMappings":";;;;;","mappings":";;;;;uBAAc"}
@@ -1 +1 @@
1
- {"version":3,"sources":["Reference.js"],"sourcesContent":["export * from './components/Reference/index';\n//# sourceMappingURL=Reference.js.map"],"names":[],"mappings":";;;;;uBAAc;CACd,qCAAqC"}
1
+ {"version":3,"sources":["Reference.ts"],"sourcesContent":["export * from './components/Reference/index';\n"],"names":[],"rangeMappings":";;;;;","mappings":";;;;;uBAAc"}
@@ -1 +1 @@
1
- {"version":3,"sources":["ReferenceGroupToggle.js"],"sourcesContent":["export * from './components/ReferenceGroupToggle/index';\n//# sourceMappingURL=ReferenceGroupToggle.js.map"],"names":[],"mappings":";;;;;uBAAc;CACd,gDAAgD"}
1
+ {"version":3,"sources":["ReferenceGroupToggle.ts"],"sourcesContent":["export * from './components/ReferenceGroupToggle/index';\n"],"names":[],"rangeMappings":";;;;;","mappings":";;;;;uBAAc"}
@@ -1 +1 @@
1
- {"version":3,"sources":["ReferenceList.js"],"sourcesContent":["export * from './components/ReferenceList/index';\n//# sourceMappingURL=ReferenceList.js.map"],"names":[],"mappings":";;;;;uBAAc;CACd,yCAAyC"}
1
+ {"version":3,"sources":["ReferenceList.ts"],"sourcesContent":["export * from './components/ReferenceList/index';\n"],"names":[],"rangeMappings":";;;;;","mappings":";;;;;uBAAc"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ const _export_star = require("@swc/helpers/_/_export_star");
6
+ _export_star._(require("./components/reference-v2/ReferenceList"), exports);
7
+ //# sourceMappingURL=ReferenceListV2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["ReferenceListV2.ts"],"sourcesContent":["export * from './components/reference-v2/ReferenceList';\n"],"names":[],"rangeMappings":";;;;;","mappings":";;;;;uBAAc"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ const _export_star = require("@swc/helpers/_/_export_star");
6
+ _export_star._(require("./components/reference-v2/ReferenceOverflowButton"), exports);
7
+ //# sourceMappingURL=ReferenceOverflowButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["ReferenceOverflowButton.ts"],"sourcesContent":["export * from './components/reference-v2/ReferenceOverflowButton';\n"],"names":[],"rangeMappings":";;;;;","mappings":";;;;;uBAAc"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ const _export_star = require("@swc/helpers/_/_export_star");
6
+ _export_star._(require("./components/reference-v2/Reference"), exports);
7
+ //# sourceMappingURL=ReferenceV2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["ReferenceV2.ts"],"sourcesContent":["export * from './components/reference-v2/Reference';\n"],"names":[],"rangeMappings":";;;;;","mappings":";;;;;uBAAc"}
@@ -1 +1 @@
1
- {"version":3,"sources":["Citation.js"],"sourcesContent":["import * as React from 'react';\nimport { useCitation_unstable } from './useCitation';\nimport { renderCitation_unstable } from './renderCitation';\nimport { useCitationStyles_unstable } from './useCitationStyles';\nimport { useCustomStyleHook } from '@fluentui-copilot/react-provider';\n// Citation component - TODO: add more docs\nexport const Citation = /*#__PURE__*/React.forwardRef((props, ref) => {\n const state = useCitation_unstable(props, ref);\n useCitationStyles_unstable(state);\n useCustomStyleHook('useCitationStyles')(state);\n return renderCitation_unstable(state);\n});\nCitation.displayName = 'Citation';\n//# sourceMappingURL=Citation.js.map"],"names":["Citation","React","forwardRef","props","ref","state","useCitation_unstable","useCitationStyles_unstable","useCustomStyleHook","renderCitation_unstable","displayName"],"mappings":";;;;+BAMaA;;;eAAAA;;;;iEANU;6BACc;gCACG;mCACG;+BACR;AAE5B,MAAMA,WAAW,WAAW,GAAEC,OAAMC,UAAU,CAAC,CAACC,OAAOC;IAC5D,MAAMC,QAAQC,IAAAA,iCAAoB,EAACH,OAAOC;IAC1CG,IAAAA,6CAA0B,EAACF;IAC3BG,IAAAA,iCAAkB,EAAC,qBAAqBH;IACxC,OAAOI,IAAAA,uCAAuB,EAACJ;AACjC;AACAL,SAASU,WAAW,GAAG,YACvB,oCAAoC"}
1
+ {"version":3,"sources":["Citation.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useCitation_unstable } from './useCitation';\nimport { renderCitation_unstable } from './renderCitation';\nimport { useCitationStyles_unstable } from './useCitationStyles';\nimport type { CitationProps } from './Citation.types';\nimport type { ForwardRefComponent } from '@fluentui/react-components';\nimport { useCustomStyleHook } from '@fluentui-copilot/react-provider';\n\n// Citation component - TODO: add more docs\nexport const Citation: ForwardRefComponent<CitationProps> = React.forwardRef((props, ref) => {\n const state = useCitation_unstable(props, ref);\n\n useCitationStyles_unstable(state);\n useCustomStyleHook('useCitationStyles')(state);\n\n return renderCitation_unstable(state);\n});\n\nCitation.displayName = 'Citation';\n"],"names":["Citation","React","forwardRef","props","state","useCitation_unstable","useCitationStyles_unstable","useCustomStyleHook","renderCitation_unstable","displayName"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BASaA;;;eAAAA;;;;iEATU;6BACc;gCACG;mCACG;+BAGR;AAG5B,MAAMA,WAAAA,WAAAA,GAAAA,OAA+CC,UAAMC,CAAU,CAACC,OAACA;UAC5EC,QAAMA,IAAAA,iCAAQC,EAAAA,OAAqBF;qDAEnCG,EAAAA;yCACAC,EAAAA,qBAAmBH;WAEnBI,IAAAA,uCAAOA,EAAAA;AACT;AAEAR,SAASS,WAAW,GAAG"}
@@ -1,4 +1,6 @@
1
- "use strict";
1
+ /**
2
+ * State used in rendering Citation
3
+ */ "use strict";
2
4
  Object.defineProperty(exports, "__esModule", {
3
5
  value: true
4
6
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["Citation.types.js"],"sourcesContent":["export {};\n//# sourceMappingURL=Citation.types.js.map"],"names":[],"mappings":";;;;CACA,0CAA0C"}
1
+ {"version":3,"sources":["Citation.types.ts"],"sourcesContent":["import type { ComponentProps, ComponentState, Slot } from '@fluentui/react-components';\n\nexport type CitationSlots = {\n /**\n * The root slot.\n */\n root: NonNullable<Slot<'a'>>;\n};\n\n/**\n * Citation Props\n */\nexport type CitationProps = ComponentProps<Partial<CitationSlots>> & {\n /**\n * HREF to the associated `Reference`.\n */\n referenceHref?: string;\n\n /**\n * Whether the citation is a block citation and has no built in margins.\n * Citations are inline by default with margins to separate them from inline text.\n */\n block?: boolean;\n};\n\n/**\n * State used in rendering Citation\n */\nexport type CitationState = ComponentState<CitationSlots> &\n Required<Pick<CitationProps, 'block'>> & {\n isPopoverLocked: boolean;\n };\n"],"names":[],"rangeMappings":";;","mappings":"AAyBA;;CAEC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["index.js"],"sourcesContent":["export * from './Citation';\nexport * from './Citation.types';\nexport * from './renderCitation';\nexport * from './useCitation';\nexport * from './useCitationStyles';\n//# sourceMappingURL=index.js.map"],"names":[],"mappings":";;;;;uBAAc;uBACA;uBACA;uBACA;uBACA;CACd,iCAAiC"}
1
+ {"version":3,"sources":["index.ts"],"sourcesContent":["export * from './Citation';\nexport * from './Citation.types';\nexport * from './renderCitation';\nexport * from './useCitation';\nexport * from './useCitationStyles';\n"],"names":[],"rangeMappings":";;;;;;;;;","mappings":";;;;;uBAAc;uBACA;uBACA;uBACA;uBACA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["renderCitation.js"],"sourcesContent":["import { jsx as _jsx } from \"@fluentui/react-jsx-runtime/jsx-runtime\";\nimport { assertSlots } from '@fluentui/react-components';\n/**\n * Render the final JSX of Citation\n */\nexport const renderCitation_unstable = state => {\n assertSlots(state);\n return /*#__PURE__*/_jsx(state.root, {});\n};\n//# sourceMappingURL=renderCitation.js.map"],"names":["renderCitation_unstable","state","assertSlots","_jsx","root"],"mappings":";;;;+BAKaA;;;eAAAA;;;4BALe;iCACA;AAIrB,MAAMA,0BAA0BC,CAAAA;IACrCC,IAAAA,4BAAW,EAACD;IACZ,OAAO,WAAW,GAAEE,IAAAA,eAAI,EAACF,MAAMG,IAAI,EAAE,CAAC;AACxC,GACA,0CAA0C"}
1
+ {"version":3,"sources":["renderCitation.tsx"],"sourcesContent":["/** @jsxRuntime automatic */\n/** @jsxImportSource @fluentui/react-jsx-runtime */\n\nimport { assertSlots } from '@fluentui/react-components';\nimport type { CitationState, CitationSlots } from './Citation.types';\n/**\n * Render the final JSX of Citation\n */\nexport const renderCitation_unstable = (state: CitationState) => {\n assertSlots<CitationSlots>(state);\n\n return <state.root />;\n};\n"],"names":["assertSlots","state","_jsx","root"],"rangeMappings":";;;;;;;;;;;;;;","mappings":";;;;+BASEA;;;eAAAA;;;4BATwB;iCAGE;AAM1BA,MAAAA,0BAA2BC,CAAAA;oCAE3B,EAAAA;IACA,OAAA,WAAA,GAAAC,IAAAA,eAAA,EAAAD,MAAAE,IAAA,EAAA,CAAA"}
@@ -19,11 +19,11 @@ const useCitation_unstable = (props, ref)=>{
19
19
  components: {
20
20
  root: 'a'
21
21
  },
22
- root: _reactcomponents.slot.always((0, _reactcomponents.getNativeElementProps)('a', {
22
+ root: _reactcomponents.slot.always((0, _reactcomponents.getIntrinsicElementProps)('a', {
23
23
  ref,
24
24
  href: referenceHref,
25
- role: null,
26
- 'aria-expanded': null,
25
+ role: undefined,
26
+ 'aria-expanded': undefined,
27
27
  ...otherProps
28
28
  }), {
29
29
  elementType: 'a'
@@ -1 +1 @@
1
- {"version":3,"sources":["useCitation.js"],"sourcesContent":["import { getNativeElementProps, slot } from '@fluentui/react-components';\nimport { usePreviewContext_unstable } from '@fluentui-copilot/react-preview';\n/**\n * Create the state required to render Citation.\n *\n * The returned state can be modified with hooks such as useCitationStyles_unstable,\n * before being passed to renderCitation_unstable.\n *\n * @param props - props from this instance of Citation\n * @param ref - reference to root HTMLElement of Citation\n */\nexport const useCitation_unstable = (props, ref) => {\n const {\n referenceHref,\n block = false,\n ...otherProps\n } = props;\n const isPopoverLocked = usePreviewContext_unstable(ctx => ctx.isPreviewLocked) && props['aria-expanded'];\n const state = {\n block,\n isPopoverLocked,\n components: {\n root: 'a'\n },\n root: slot.always(getNativeElementProps('a', {\n ref,\n href: referenceHref,\n role: null,\n 'aria-expanded': null,\n ...otherProps\n }), {\n elementType: 'a'\n })\n };\n return state;\n};\n//# sourceMappingURL=useCitation.js.map"],"names":["useCitation_unstable","props","ref","referenceHref","block","otherProps","isPopoverLocked","usePreviewContext_unstable","ctx","isPreviewLocked","state","components","root","slot","always","getNativeElementProps","href","role","elementType"],"mappings":";;;;+BAWaA;;;eAAAA;;;iCAX+B;8BACD;AAUpC,MAAMA,uBAAuB,CAACC,OAAOC;IAC1C,MAAM,EACJC,aAAa,EACbC,QAAQ,KAAK,EACb,GAAGC,YACJ,GAAGJ;IACJ,MAAMK,kBAAkBC,IAAAA,wCAA0B,EAACC,CAAAA,MAAOA,IAAIC,eAAe,KAAKR,KAAK,CAAC,gBAAgB;IACxG,MAAMS,QAAQ;QACZN;QACAE;QACAK,YAAY;YACVC,MAAM;QACR;QACAA,MAAMC,qBAAI,CAACC,MAAM,CAACC,IAAAA,sCAAqB,EAAC,KAAK;YAC3Cb;YACAc,MAAMb;YACNc,MAAM;YACN,iBAAiB;YACjB,GAAGZ,UAAU;QACf,IAAI;YACFa,aAAa;QACf;IACF;IACA,OAAOR;AACT,GACA,uCAAuC"}
1
+ {"version":3,"sources":["useCitation.ts"],"sourcesContent":["import { getIntrinsicElementProps, slot } from '@fluentui/react-components';\nimport { usePreviewContext_unstable } from '@fluentui-copilot/react-preview';\nimport type { CitationProps, CitationState } from './Citation.types';\n/**\n * Create the state required to render Citation.\n *\n * The returned state can be modified with hooks such as useCitationStyles_unstable,\n * before being passed to renderCitation_unstable.\n *\n * @param props - props from this instance of Citation\n * @param ref - reference to root HTMLElement of Citation\n */\nexport const useCitation_unstable = (props: CitationProps, ref: React.Ref<HTMLAnchorElement>): CitationState => {\n const { referenceHref, block = false, ...otherProps } = props;\n\n const isPopoverLocked = usePreviewContext_unstable(ctx => ctx.isPreviewLocked) && (props['aria-expanded'] as boolean);\n\n const state: CitationState = {\n block,\n isPopoverLocked,\n components: {\n root: 'a',\n },\n root: slot.always(\n getIntrinsicElementProps('a', {\n ref,\n href: referenceHref,\n role: undefined,\n 'aria-expanded': undefined,\n ...otherProps,\n }),\n { elementType: 'a' },\n ),\n };\n\n return state;\n};\n"],"names":["referenceHref","props","ref","state","block","usePreviewContext_unstable","ctx","isPreviewLocked","href","role","otherProps","elementType","undefined"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BAaUA;;;eAAAA;;;iCAbqC;8BACJ;AAYzC,MAAQA,uBAAuB,CAAAC,OAAOC;UAEtC,EAEAF,aAAMG,UACJC,KAAAA;4BAGQC,IAAAA,wCAAA,EAAAC,CAAAA,MAAAA,IAAAC,eAAA,KAAAN,KAAA,CAAA,gBAAA;UACRE,QAAA;;;oBAIIK;kBACAC;;mCAEA,CAAGC,MAAAA,CAAAA,IAAAA,yCAAU,EAAA,KAAA;;kBAEbC;kBAAiBC;YAEvB,iBAAAA;YAEA,GAAAF,UAAOP;QACP,IAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["useCitationStyles.js"],"sourcesContent":["import { __resetStyles, __styles, mergeClasses, shorthands, tokens, typographyStyles } from '@fluentui/react-components';\nexport const citationClassNames = {\n root: 'fai-Citation'\n};\nconst useCitationBaseClassName = __resetStyles(\"rad2akz\", \"r1hx2d32\", [\".rad2akz{display:inline-flex;justify-content:center;box-sizing:border-box;align-items:center;font-family:var(--fontFamilyBase);font-size:var(--fontSizeBase100);font-weight:var(--fontWeightSemibold);line-height:var(--lineHeightBase100);color:var(--colorNeutralForeground2);border:var(--strokeWidthThin) solid var(--colorNeutralStroke2);min-width:14px;height:14px;vertical-align:calc((var(--lineHeightBase100) - var(--fontSizeBase100)) / 2);border-radius:var(--borderRadiusMedium);text-decoration:none;margin-left:var(--spacingHorizontalXXS);margin-right:var(--spacingHorizontalXXS);}\", \".rad2akz:hover{cursor:pointer;color:var(--colorBrandForeground2Hover);border-color:var(--colorBrandStroke2Hover);background-color:var(--colorBrandBackground2Hover);}\", \".rad2akz:hover:active{cursor:pointer;color:var(--colorBrandForeground2Pressed);border-color:var(--colorBrandStroke2Pressed);background-color:var(--colorBrandBackground2Pressed);}\", \".r1hx2d32{display:inline-flex;justify-content:center;box-sizing:border-box;align-items:center;font-family:var(--fontFamilyBase);font-size:var(--fontSizeBase100);font-weight:var(--fontWeightSemibold);line-height:var(--lineHeightBase100);color:var(--colorNeutralForeground2);border:var(--strokeWidthThin) solid var(--colorNeutralStroke2);min-width:14px;height:14px;vertical-align:calc((var(--lineHeightBase100) - var(--fontSizeBase100)) / 2);border-radius:var(--borderRadiusMedium);text-decoration:none;margin-right:var(--spacingHorizontalXXS);margin-left:var(--spacingHorizontalXXS);}\", \".r1hx2d32:hover{cursor:pointer;color:var(--colorBrandForeground2Hover);border-color:var(--colorBrandStroke2Hover);background-color:var(--colorBrandBackground2Hover);}\", \".r1hx2d32:hover:active{cursor:pointer;color:var(--colorBrandForeground2Pressed);border-color:var(--colorBrandStroke2Pressed);background-color:var(--colorBrandBackground2Pressed);}\"]);\nconst useCitationRootStyles = __styles({\n isBlock: {\n mc9l5x: \"f22iagw\",\n Frg6f3: [\"f1tyq0we\", \"f11qmguv\"],\n t21cq0: [\"f11qmguv\", \"f1tyq0we\"]\n },\n isPopoverLocked: {\n sj55zd: \"fkjhhq2\",\n g2u3we: \"f1nbqb3e\",\n h3c5rm: [\"fah3j9v\", \"f56crja\"],\n B9xav0g: \"fef4ti1\",\n zhjwy3: [\"f56crja\", \"fah3j9v\"],\n De3pzq: \"f16xkysk\",\n Bi91k9c: \"fbszb7v\",\n Bgoe8wy: \"ftxwbyd\",\n Bwzppfd: [\"f1p7dilp\", \"f15x2k42\"],\n oetu4i: \"fegdlwn\",\n gg5e9n: [\"f15x2k42\", \"f1p7dilp\"],\n Jwef8y: \"f121v1wq\"\n }\n}, {\n d: [\".f22iagw{display:flex;}\", \".f1tyq0we{margin-left:0;}\", \".f11qmguv{margin-right:0;}\", \".fkjhhq2{color:var(--colorBrandForeground2Pressed);}\", \".f1nbqb3e{border-top-color:var(--colorBrandStroke2Pressed);}\", \".fah3j9v{border-right-color:var(--colorBrandStroke2Pressed);}\", \".f56crja{border-left-color:var(--colorBrandStroke2Pressed);}\", \".fef4ti1{border-bottom-color:var(--colorBrandStroke2Pressed);}\", \".f16xkysk{background-color:var(--colorBrandBackground2);}\"],\n h: [\".fbszb7v:hover{color:var(--colorBrandForeground2Pressed);}\", \".ftxwbyd:hover{border-top-color:var(--colorBrandStroke2Pressed);}\", \".f1p7dilp:hover{border-right-color:var(--colorBrandStroke2Pressed);}\", \".f15x2k42:hover{border-left-color:var(--colorBrandStroke2Pressed);}\", \".fegdlwn:hover{border-bottom-color:var(--colorBrandStroke2Pressed);}\", \".f121v1wq:hover{background-color:var(--colorBrandBackground2);}\"]\n});\n/**\n * Apply styling to the Citation slots based on the state\n */\nexport const useCitationStyles_unstable = state => {\n const rootBaseClassName = useCitationBaseClassName();\n const rootStyles = useCitationRootStyles();\n state.root.className = mergeClasses(citationClassNames.root, state.isPopoverLocked && rootStyles.isPopoverLocked, state.block && rootStyles.isBlock, rootBaseClassName, state.root.className);\n return state;\n};\n//# sourceMappingURL=useCitationStyles.js.map"],"names":["citationClassNames","useCitationStyles_unstable","root","useCitationBaseClassName","__resetStyles","useCitationRootStyles","__styles","isBlock","mc9l5x","Frg6f3","t21cq0","isPopoverLocked","sj55zd","g2u3we","h3c5rm","B9xav0g","zhjwy3","De3pzq","Bi91k9c","Bgoe8wy","Bwzppfd","oetu4i","gg5e9n","Jwef8y","d","h","state","rootBaseClassName","rootStyles","className","mergeClasses","block"],"mappings":";;;;;;;;;;;IACaA,kBAAkB;eAAlBA;;IA+BAC,0BAA0B;eAA1BA;;;iCAhC+E;AACrF,MAAMD,qBAAqB;IAChCE,MAAM;AACR;AACA,MAAMC,2BAA2BC,IAAAA,8BAAa,EAAC,WAAW,YAAY;IAAC;IAA0kB;IAAyK;IAAsL;IAA2kB;IAA0K;CAAsL;AAC35D,MAAMC,wBAAwBC,IAAAA,yBAAQ,EAAC;IACrCC,SAAS;QACPC,QAAQ;QACRC,QAAQ;YAAC;YAAY;SAAW;QAChCC,QAAQ;YAAC;YAAY;SAAW;IAClC;IACAC,iBAAiB;QACfC,QAAQ;QACRC,QAAQ;QACRC,QAAQ;YAAC;YAAW;SAAU;QAC9BC,SAAS;QACTC,QAAQ;YAAC;YAAW;SAAU;QAC9BC,QAAQ;QACRC,SAAS;QACTC,SAAS;QACTC,SAAS;YAAC;YAAY;SAAW;QACjCC,QAAQ;QACRC,QAAQ;YAAC;YAAY;SAAW;QAChCC,QAAQ;IACV;AACF,GAAG;IACDC,GAAG;QAAC;QAA2B;QAA6B;QAA8B;QAAwD;QAAgE;QAAiE;QAAgE;QAAkE;KAA4D;IACjdC,GAAG;QAAC;QAA8D;QAAqE;QAAwE;QAAuE;QAAwE;KAAkE;AACla;AAIO,MAAMxB,6BAA6ByB,CAAAA;IACxC,MAAMC,oBAAoBxB;IAC1B,MAAMyB,aAAavB;IACnBqB,MAAMxB,IAAI,CAAC2B,SAAS,GAAGC,IAAAA,6BAAY,EAAC9B,mBAAmBE,IAAI,EAAEwB,MAAMf,eAAe,IAAIiB,WAAWjB,eAAe,EAAEe,MAAMK,KAAK,IAAIH,WAAWrB,OAAO,EAAEoB,mBAAmBD,MAAMxB,IAAI,CAAC2B,SAAS;IAC5L,OAAOH;AACT,GACA,6CAA6C"}
1
+ {"version":3,"sources":["useCitationStyles.ts"],"sourcesContent":["import {\n makeResetStyles,\n makeStyles,\n mergeClasses,\n shorthands,\n tokens,\n typographyStyles,\n} from '@fluentui/react-components';\nimport type { CitationSlots, CitationState } from './Citation.types';\nimport type { SlotClassNames } from '@fluentui/react-components';\n\nexport const citationClassNames: SlotClassNames<CitationSlots> = {\n root: 'fai-Citation',\n};\n\nconst useCitationBaseClassName = makeResetStyles({\n display: 'inline-flex',\n justifyContent: 'center',\n boxSizing: 'border-box',\n alignItems: 'center',\n ...typographyStyles.caption2Strong,\n\n color: tokens.colorNeutralForeground2,\n border: `${tokens.strokeWidthThin} solid ${tokens.colorNeutralStroke2}`,\n\n minWidth: '14px',\n height: '14px',\n verticalAlign: `calc((${typographyStyles.caption2Strong.lineHeight} - ${typographyStyles.caption2Strong.fontSize}) / 2)`,\n\n borderRadius: tokens.borderRadiusMedium,\n\n textDecoration: 'none',\n\n marginLeft: tokens.spacingHorizontalXXS,\n marginRight: tokens.spacingHorizontalXXS,\n\n ':hover': {\n cursor: 'pointer',\n color: tokens.colorBrandForeground2Hover,\n borderColor: tokens.colorBrandStroke2Hover,\n backgroundColor: tokens.colorBrandBackground2Hover,\n },\n\n ':hover:active': {\n cursor: 'pointer',\n color: tokens.colorBrandForeground2Pressed,\n borderColor: tokens.colorBrandStroke2Pressed,\n backgroundColor: tokens.colorBrandBackground2Pressed,\n },\n});\n\nconst useCitationRootStyles = makeStyles({\n isBlock: {\n display: 'flex',\n marginLeft: 0,\n marginRight: 0,\n },\n isPopoverLocked: {\n color: tokens.colorBrandForeground2Pressed,\n ...shorthands.borderColor(tokens.colorBrandStroke2Pressed),\n backgroundColor: tokens.colorBrandBackground2,\n ':hover': {\n color: tokens.colorBrandForeground2Pressed,\n ...shorthands.borderColor(tokens.colorBrandStroke2Pressed),\n backgroundColor: tokens.colorBrandBackground2,\n },\n },\n});\n\n/**\n * Apply styling to the Citation slots based on the state\n */\nexport const useCitationStyles_unstable = (state: CitationState): CitationState => {\n const rootBaseClassName = useCitationBaseClassName();\n const rootStyles = useCitationRootStyles();\n\n state.root.className = mergeClasses(\n citationClassNames.root,\n state.isPopoverLocked && rootStyles.isPopoverLocked,\n state.block && rootStyles.isBlock,\n rootBaseClassName,\n state.root.className,\n );\n\n return state;\n};\n"],"names":["citationClassNames","useCitationRootStyles","makeStyles","root","useCitationBaseClassName","makeResetStyles","display","__styles","justifyContent","boxSizing","alignItems","t21cq0","typographyStyles","caption2Strong","tokens","minWidth","height","verticalAlign","borderRadius","textDecoration","marginLeft","marginRight","Bgoe8wy","cursor","color","borderColor","colorBrandStroke2Hover","backgroundColor","state","isBlock","mergeClasses","isPopoverLocked","rootStyles","block","rootBaseClassName","className"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;;;;IAWaA,kBAAAA;eAAAA;;IAwCPC,0BAAwBC;eAAxBD;;;iCA7CY;AAKX,MAAMD,qBAAoD;UAC/DG;AACF;AAEA,MAAMC,2BAA2BC,IAAAA,8BAAAA,EAAAA,WAAgB,YAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;CAAA;MAC/CC,wBAASC,IAAAA,yBAAA,EAAA;aACTC;QACAC,QAAAA;QACAC,QAAAA;YAAAA;YAAY;SAAA;QACZC,QAAGC;YAAAA;YAAiBC;SAAAA;;qBAGTC;QAEXC,QAAAA;QACAC,QAAQ;QACRC,QAAAA;YAAAA;YAAgB;SAAQL;QAExBM,SAAAA;QAEAC,QAAAA;YAAAA;YAAgB;SAAA;QAEhBC,QAAAA;QACAC,SAAAA;QAEAC,SAAA;iBACEC;YAAAA;YAAQ;SAAA;gBACRC;gBACAC;YAAAA;YAAaX;SAAOY;gBACpBC;;;;;QAIQ;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;KAAA;;;QACkC;QAAA;QAAA;QAAA;QAAA;KAAA;;AAMxC1B,MAAAA,6BAAmC2B,CAAAA;UACvCC,oBAASzB;UACPE,aAASL;UACTmB,IAAAA,CAAAA,SAAY,GAAAU,IAAAA,6BAAA,EAAA9B,mBAAAG,IAAA,EAAAyB,MAAAG,eAAA,IAAAC,WAAAD,eAAA,EAAAH,MAAAK,KAAA,IAAAD,WAAAH,OAAA,EAAAK,mBAAAN,MAAAzB,IAAA,CAAAgC,SAAA;WACZd;gDAEe"}
@@ -1 +1 @@
1
- {"version":3,"sources":["Reference.js"],"sourcesContent":["import * as React from 'react';\nimport { useReference_unstable } from './useReference';\nimport { renderReference_unstable } from './renderReference';\nimport { useReferenceStyles_unstable } from './useReferenceStyles';\nimport { useCustomStyleHook } from '@fluentui-copilot/react-provider';\n// Reference component - TODO: add more docs\nexport const Reference = /*#__PURE__*/React.forwardRef((props, ref) => {\n const state = useReference_unstable(props, ref);\n useReferenceStyles_unstable(state);\n useCustomStyleHook('useReferenceStyles')(state);\n return renderReference_unstable(state);\n});\nReference.displayName = 'Reference';\n//# sourceMappingURL=Reference.js.map"],"names":["Reference","React","forwardRef","props","ref","state","useReference_unstable","useReferenceStyles_unstable","useCustomStyleHook","renderReference_unstable","displayName"],"mappings":";;;;+BAMaA;;;eAAAA;;;;iEANU;8BACe;iCACG;oCACG;+BACT;AAE5B,MAAMA,YAAY,WAAW,GAAEC,OAAMC,UAAU,CAAC,CAACC,OAAOC;IAC7D,MAAMC,QAAQC,IAAAA,mCAAqB,EAACH,OAAOC;IAC3CG,IAAAA,+CAA2B,EAACF;IAC5BG,IAAAA,iCAAkB,EAAC,sBAAsBH;IACzC,OAAOI,IAAAA,yCAAwB,EAACJ;AAClC;AACAL,UAAUU,WAAW,GAAG,aACxB,qCAAqC"}
1
+ {"version":3,"sources":["Reference.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useReference_unstable } from './useReference';\nimport { renderReference_unstable } from './renderReference';\nimport { useReferenceStyles_unstable } from './useReferenceStyles';\nimport type { ReferenceProps } from './Reference.types';\nimport type { ForwardRefComponent } from '@fluentui/react-components';\nimport { useCustomStyleHook } from '@fluentui-copilot/react-provider';\n\n// Reference component - TODO: add more docs\nexport const Reference: ForwardRefComponent<ReferenceProps> = React.forwardRef((props, ref) => {\n const state = useReference_unstable(props, ref);\n\n useReferenceStyles_unstable(state);\n useCustomStyleHook('useReferenceStyles')(state);\n\n return renderReference_unstable(state);\n});\n\nReference.displayName = 'Reference';\n"],"names":["Reference","React","forwardRef","props","state","useReference_unstable","useReferenceStyles_unstable","useCustomStyleHook","renderReference_unstable","displayName"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BASaA;;;eAAAA;;;;iEATU;8BACe;iCACG;oCACG;+BAGT;AAG5B,MAAMA,YAAAA,WAAAA,GAAAA,OAAiDC,UAAMC,CAAU,CAACC,OAACA;UAC9EC,QAAMA,IAAAA,mCAAQC,EAAAA,OAAsBF;uDAEpCG,EAAAA;yCACAC,EAAAA,sBAAmBH;WAEnBI,IAAAA,yCAAOA,EAAAA;AACT;AAEAR,UAAUS,WAAW,GAAG"}
@@ -1,4 +1,6 @@
1
- "use strict";
1
+ /**
2
+ * State used in rendering Reference
3
+ */ "use strict";
2
4
  Object.defineProperty(exports, "__esModule", {
3
5
  value: true
4
6
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["Reference.types.js"],"sourcesContent":["export {};\n//# sourceMappingURL=Reference.types.js.map"],"names":[],"mappings":";;;;CACA,2CAA2C"}
1
+ {"version":3,"sources":["Reference.types.ts"],"sourcesContent":["import type { CopilotMode } from '@fluentui-copilot/react-provider';\nimport type { Button, ComponentProps, ComponentState, Slot } from '@fluentui/react-components';\n\nexport type ReferenceSlots = {\n /**\n * The root slot.\n */\n root: NonNullable<Slot<'div'>>;\n\n /**\n * Citation slot. Displays a `Citation`. Set the `null` to hide the citation.\n */\n citation: Slot<'div'>;\n\n /**\n * Media slot. Used to display Avatars, Icons, etc.\n */\n media: Slot<'div'>;\n\n /**\n * Actions slot.\n */\n actions: Slot<'div'>;\n\n /**\n * Label slot. Primary description of the reference.\n */\n label: NonNullable<Slot<'div'>>;\n\n /**\n * Sensitivity slot. Used to display a `SensitivityLabel`.\n */\n sensitivity: Slot<'span'>;\n\n /**\n * Metadata slot. Container for `primaryText`, `secondaryText`, `tertiaryText` and `icon`.\n */\n metadata: NonNullable<Slot<'div'>>;\n\n /**\n * Primary text slot. First displayed metadata text.\n */\n primaryText: Slot<'span'>;\n\n /**\n * Secondary text slot. Second displayed metadata text.\n */\n secondaryText: Slot<'span'>;\n\n /**\n * Tertiary text slot. Third displayed metadata text.\n */\n tertiaryText: Slot<'span'>;\n\n /**\n * Icon slot. Icon displayed in metadata area.\n */\n icon: Slot<'span'>;\n\n /**\n * Content slot.\n */\n content: NonNullable<Slot<'div'>>;\n\n /**\n * Details button slot. Used to expand/collapse the reference.\n */\n detailsButton: Slot<typeof Button>;\n};\n\n/**\n * Reference Props\n */\nexport type ReferenceProps = ComponentProps<Partial<ReferenceSlots>> &\n CopilotMode & {\n /**\n * Numeric index associated with `Citation`.\n */\n index: number;\n\n /**\n * HREF back to the `Citation` this `Reference` is associated with.\n */\n citationHref?: string;\n\n /**\n * Unique ID associated with this `Reference`.\n */\n referenceId?: string;\n\n /**\n * Text snippet from the reference source.\n */\n excerpt?: string;\n\n /**\n * @deprecated Inline layout is the only one that is available, use `Preview` component instead for an equivalent to a `Reference` with a popover layout inside of a `Popover`.\n */\n layout?: 'inline' | 'popover';\n };\n\n/**\n * State used in rendering Reference\n */\nexport type ReferenceState = ComponentState<ReferenceSlots> &\n Required<Pick<ReferenceProps, 'mode' | 'layout' | 'index'>> & {\n /**\n * State used to renderer the `Reference` in an expanded state.\n */\n isExpanded: boolean;\n };\n"],"names":[],"rangeMappings":";;","mappings":"AAqGA;;CAEC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["index.js"],"sourcesContent":["export * from './Reference';\nexport * from './Reference.types';\nexport * from './renderReference';\nexport * from './useReference';\nexport * from './useReferenceStyles';\n//# sourceMappingURL=index.js.map"],"names":[],"mappings":";;;;;uBAAc;uBACA;uBACA;uBACA;uBACA;CACd,iCAAiC"}
1
+ {"version":3,"sources":["index.ts"],"sourcesContent":["export * from './Reference';\nexport * from './Reference.types';\nexport * from './renderReference';\nexport * from './useReference';\nexport * from './useReferenceStyles';\n"],"names":[],"rangeMappings":";;;;;;;;;","mappings":";;;;;uBAAc;uBACA;uBACA;uBACA;uBACA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["renderReference.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs } from \"@fluentui/react-jsx-runtime/jsx-runtime\";\nimport { assertSlots } from '@fluentui/react-components';\n/**\n * Render the final JSX of Reference\n */\nexport const renderReference_unstable = state => {\n assertSlots(state);\n return /*#__PURE__*/_jsxs(state.root, {\n children: [state.citation && /*#__PURE__*/_jsx(state.citation, {}), state.media && /*#__PURE__*/_jsx(state.media, {}), /*#__PURE__*/_jsx(state.label, {}), state.actions && /*#__PURE__*/_jsxs(state.actions, {\n children: [state.actions.children, state.detailsButton && /*#__PURE__*/_jsx(state.detailsButton, {})]\n }), state.sensitivity && /*#__PURE__*/_jsx(state.sensitivity, {}), /*#__PURE__*/_jsxs(state.metadata, {\n children: [state.primaryText && /*#__PURE__*/_jsx(state.primaryText, {}), state.secondaryText && /*#__PURE__*/_jsx(state.secondaryText, {}), state.tertiaryText && /*#__PURE__*/_jsx(state.tertiaryText, {}), state.icon && /*#__PURE__*/_jsx(state.icon, {}), state.metadata.children]\n }), /*#__PURE__*/_jsx(state.content, {})]\n });\n};\n//# sourceMappingURL=renderReference.js.map"],"names":["renderReference_unstable","state","assertSlots","_jsxs","root","children","citation","_jsx","media","label","actions","detailsButton","sensitivity","metadata","primaryText","secondaryText","tertiaryText","icon","content"],"mappings":";;;;+BAKaA;;;eAAAA;;;4BAL8B;iCACf;AAIrB,MAAMA,2BAA2BC,CAAAA;IACtCC,IAAAA,4BAAW,EAACD;IACZ,OAAO,WAAW,GAAEE,IAAAA,gBAAK,EAACF,MAAMG,IAAI,EAAE;QACpCC,UAAU;YAACJ,MAAMK,QAAQ,IAAI,WAAW,GAAEC,IAAAA,eAAI,EAACN,MAAMK,QAAQ,EAAE,CAAC;YAAIL,MAAMO,KAAK,IAAI,WAAW,GAAED,IAAAA,eAAI,EAACN,MAAMO,KAAK,EAAE,CAAC;YAAI,WAAW,GAAED,IAAAA,eAAI,EAACN,MAAMQ,KAAK,EAAE,CAAC;YAAIR,MAAMS,OAAO,IAAI,WAAW,GAAEP,IAAAA,gBAAK,EAACF,MAAMS,OAAO,EAAE;gBAC5ML,UAAU;oBAACJ,MAAMS,OAAO,CAACL,QAAQ;oBAAEJ,MAAMU,aAAa,IAAI,WAAW,GAAEJ,IAAAA,eAAI,EAACN,MAAMU,aAAa,EAAE,CAAC;iBAAG;YACvG;YAAIV,MAAMW,WAAW,IAAI,WAAW,GAAEL,IAAAA,eAAI,EAACN,MAAMW,WAAW,EAAE,CAAC;YAAI,WAAW,GAAET,IAAAA,gBAAK,EAACF,MAAMY,QAAQ,EAAE;gBACpGR,UAAU;oBAACJ,MAAMa,WAAW,IAAI,WAAW,GAAEP,IAAAA,eAAI,EAACN,MAAMa,WAAW,EAAE,CAAC;oBAAIb,MAAMc,aAAa,IAAI,WAAW,GAAER,IAAAA,eAAI,EAACN,MAAMc,aAAa,EAAE,CAAC;oBAAId,MAAMe,YAAY,IAAI,WAAW,GAAET,IAAAA,eAAI,EAACN,MAAMe,YAAY,EAAE,CAAC;oBAAIf,MAAMgB,IAAI,IAAI,WAAW,GAAEV,IAAAA,eAAI,EAACN,MAAMgB,IAAI,EAAE,CAAC;oBAAIhB,MAAMY,QAAQ,CAACR,QAAQ;iBAAC;YACzR;YAAI,WAAW,GAAEE,IAAAA,eAAI,EAACN,MAAMiB,OAAO,EAAE,CAAC;SAAG;IAC3C;AACF,GACA,2CAA2C"}
1
+ {"version":3,"sources":["renderReference.tsx"],"sourcesContent":["/** @jsxRuntime automatic */\n/** @jsxImportSource @fluentui/react-jsx-runtime */\n\nimport { assertSlots } from '@fluentui/react-components';\n\nimport type { ReferenceState, ReferenceSlots } from './Reference.types';\n\n/**\n * Render the final JSX of Reference\n */\nexport const renderReference_unstable = (state: ReferenceState) => {\n assertSlots<ReferenceSlots>(state);\n\n return (\n <state.root>\n {state.citation && <state.citation />}\n {state.media && <state.media />}\n <state.label />\n {state.actions && (\n <state.actions>\n {state.actions.children}\n {state.detailsButton && <state.detailsButton />}\n </state.actions>\n )}\n {state.sensitivity && <state.sensitivity />}\n <state.metadata>\n {state.primaryText && <state.primaryText />}\n {state.secondaryText && <state.secondaryText />}\n {state.tertiaryText && <state.tertiaryText />}\n {state.icon && <state.icon />}\n {state.metadata.children}\n </state.metadata>\n <state.content />\n </state.root>\n );\n};\n"],"names":["assertSlots","state","citation","_jsx","media","label","actions","_jsxs","children","detailsButton","sensitivity","metadata","primaryText","secondaryText","tertiaryText","icon"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BAWEA;;;eAAAA;;;4BAVF;iCAE4B;AAQ1BA,MAAAA,2BAA4BC,CAAAA;oCAE5B,EAAAA;;kBAEKA;YAAAA,MAAMC,QAAQ,IAAA,WAAI,GAAAC,IAAAA,eAACF,EAAAA,MAAMC,QAAQ,EAAA,CAAA;YAAAD,MAAAG,KAAA,IAAA,WAAA,GAAAD,IAAAA,eAAA,EAAAF,MAAAG,KAAA,EAAA,CAAA;YAAA,WAAA,GAAAD,IAAAA,eAAA,EAAAF,MAAAI,KAAA,EAAA,CAAA;YAAAJ,MAAAK,OAAA,IAAA,WAAA,GAAAC,IAAAA,gBAAA,EAAAN,MAAAK,OAAA,EAAA;0BACjCL;oBAAAA,MAAWK,OAAA,CAAAE,QAAA;oBAAIP,MAACA,aAAW,IAAA,WAAA,GAAAE,IAAAA,eAAA,EAAAF,MAAAQ,aAAA,EAAA,CAAA;iBAAA;;iCAC5B,WAAOJ,GAAKF,IAAAA,eAAA,EAAAF,MAAAS,WAAA,EAAA,CAAA;YAAA,WAAA,GAAAH,IAAAA,gBAAA,EAAAN,MAAAU,QAAA,EAAA;0BACXV;oBAAAA,MAAMK,WAAO,IAAA,WACXL,GAAAA,IAAAA,eAAMK,EAAAA,MAAOM,WAAA,EAAA,CAAA;oBAAAX,MAAAY,aAAA,IAAA,WAAA,GAAAV,IAAAA,eAAA,EAAAF,MAAAY,aAAA,EAAA,CAAA;oBAAAZ,MAAAa,YAAA,IAAA,WAAA,GAAAX,IAAAA,eAAA,EAAAF,MAAAa,YAAA,EAAA,CAAA;oBAAAb,MAAAc,IAAA,IAAA,WAAA,GAAAZ,IAAAA,eAAA,EAAAF,MAAAc,IAAA,EAAA,CAAA;oBAAAd,MAAAU,QAAA,CAAAH,QAAA;iBAAA"}
@@ -14,7 +14,7 @@ const _reactcomponents = require("@fluentui/react-components");
14
14
  const _reacticons = require("@fluentui/react-icons");
15
15
  const _useReferenceStyles = require("./useReferenceStyles");
16
16
  const _Citation = require("../Citation");
17
- const _ReferenceGroupContext = require("../../context/ReferenceGroupContext");
17
+ const _ReferenceGroupContext = require("../../contexts/ReferenceGroupContext");
18
18
  const _reactprovider = require("@fluentui-copilot/react-provider");
19
19
  const useReference_unstable = (props, ref)=>{
20
20
  const { index, referenceId, citationHref, excerpt, layout = 'inline' } = props;
@@ -101,7 +101,7 @@ const useReference_unstable = (props, ref)=>{
101
101
  icon: 'span',
102
102
  detailsButton: _reactcomponents.Button
103
103
  },
104
- root: _reactcomponents.slot.always((0, _reactcomponents.getNativeElementProps)('div', {
104
+ root: _reactcomponents.slot.always((0, _reactcomponents.getIntrinsicElementProps)('div', {
105
105
  ref,
106
106
  id: referenceId,
107
107
  ...groupSemantics,
@@ -1 +1 @@
1
- {"version":3,"sources":["useReference.js"],"sourcesContent":["import * as React from 'react';\nimport { Button, Caption1, getNativeElementProps, mergeCallbacks, mergeClasses, slot, useId, usePopoverContext_unstable as usePopoverContext } from '@fluentui/react-components';\nimport { ChevronDown24Regular, ChevronUp24Regular, ChevronDown16Regular, ChevronUp16Regular } from '@fluentui/react-icons';\nimport { referenceExtraClassNames } from './useReferenceStyles';\nimport { Citation } from '../Citation';\nimport { useReferenceGroupSetOpen } from '../../context/ReferenceGroupContext';\nimport { useCopilotMode } from '@fluentui-copilot/react-provider';\n/**\n * Create the state required to render Reference.\n *\n * The returned state can be modified with hooks such as useReferenceStyles_unstable,\n * before being passed to renderReference_unstable.\n *\n * @param props - props from this instance of Reference\n * @param ref - reference to root HTMLElement of Reference\n */\nexport const useReference_unstable = (props, ref) => {\n const {\n index,\n referenceId,\n citationHref,\n excerpt,\n layout = 'inline'\n } = props;\n const mode = useCopilotMode(props.mode);\n const labelId = useId();\n const mediaId = useId();\n const [isExpanded, setIsExpanded] = React.useState(layout === 'popover' ? true : false);\n const setPopoverOpen = usePopoverContext(context => context.setOpen);\n const onExpandClick = _e => {\n setIsExpanded(!isExpanded);\n };\n const label = slot.always(props.label, {\n defaultProps: {\n id: labelId\n },\n elementType: 'div'\n });\n const media = slot.optional(props.media, {\n defaultProps: {\n id: mediaId\n },\n elementType: 'div'\n });\n if (media && /*#__PURE__*/React.isValidElement(media.children)) {\n media.children = /*#__PURE__*/React.cloneElement(media.children, {\n className: mergeClasses(media.children.props.className, referenceExtraClassNames.mediaChild)\n });\n }\n if (media === null || media === void 0 ? void 0 : media.id) {\n var _label_ariadescribedby;\n var _label_ariadescribedby_concat;\n label['aria-describedby'] = (_label_ariadescribedby_concat = (_label_ariadescribedby = label['aria-describedby']) === null || _label_ariadescribedby === void 0 ? void 0 : _label_ariadescribedby.concat(media.id)) !== null && _label_ariadescribedby_concat !== void 0 ? _label_ariadescribedby_concat : media.id;\n }\n const ariaLabelledByProp = props['aria-labelledby'];\n const groupSemantics = React.useMemo(() => {\n return layout === 'inline' ? {\n role: 'group',\n 'aria-labelledby': `${ariaLabelledByProp !== null && ariaLabelledByProp !== void 0 ? ariaLabelledByProp : ''} ${label.id}`,\n tabIndex: -1\n } : {};\n }, [layout, ariaLabelledByProp, label.id]);\n // Within a popup, a citation should function as a close button\n const citationProps = React.useMemo(() => {\n const onPopoverCloseClick = e => {\n setPopoverOpen(e, false);\n // don't navigate\n e.preventDefault();\n };\n return layout === 'popover' ? {\n referenceHref: '#',\n tabIndex: -1,\n 'aria-label': `Reference ${index}, close`,\n onClick: onPopoverCloseClick\n } : {\n referenceHref: citationHref\n };\n }, [layout, citationHref, index, setPopoverOpen]);\n const state = {\n isExpanded,\n mode: layout === 'popover' ? 'sidecar' : mode,\n layout,\n index,\n components: {\n root: 'div',\n citation: 'div',\n media: 'div',\n actions: 'div',\n label: 'div',\n sensitivity: 'span',\n metadata: 'div',\n content: 'div',\n primaryText: 'span',\n secondaryText: 'span',\n tertiaryText: 'span',\n icon: 'span',\n detailsButton: Button\n },\n root: slot.always(getNativeElementProps('div', {\n ref,\n id: referenceId,\n ...groupSemantics,\n ...props\n }), {\n elementType: 'div'\n }),\n citation: slot.optional(props.citation, {\n defaultProps: {\n children: /*#__PURE__*/React.createElement(Citation, {\n block: true,\n ...citationProps\n }, index)\n },\n renderByDefault: true,\n elementType: 'div'\n }),\n media,\n actions: slot.optional(layout === 'inline' ? props.actions : null, {\n renderByDefault: true,\n elementType: 'div'\n }),\n label,\n sensitivity: slot.optional(props.sensitivity, {\n elementType: 'span'\n }),\n metadata: slot.always(props.metadata, {\n elementType: 'div'\n }),\n primaryText: slot.optional(props.primaryText, {\n defaultProps: {\n hidden: !isExpanded\n },\n elementType: 'span'\n }),\n secondaryText: slot.optional(props.secondaryText, {\n defaultProps: {\n hidden: !isExpanded\n },\n elementType: 'span'\n }),\n tertiaryText: slot.optional(props.tertiaryText, {\n defaultProps: {\n hidden: !isExpanded\n },\n elementType: 'span'\n }),\n icon: slot.optional(props.icon, {\n elementType: 'span'\n }),\n content: slot.always(props.content, {\n defaultProps: {\n children: excerpt && /*#__PURE__*/React.createElement(Caption1, null, excerpt)\n },\n elementType: 'div'\n }),\n detailsButton: slot.optional(layout === 'inline' ? props.detailsButton : null, {\n defaultProps: {\n appearance: 'transparent',\n 'aria-expanded': isExpanded,\n 'aria-label': 'show details',\n size: mode === 'sidecar' ? 'small' : 'medium',\n icon: {\n children: getIcon(isExpanded, mode)\n }\n },\n renderByDefault: true,\n elementType: Button\n })\n };\n if (state.detailsButton) {\n const onClick = state.detailsButton.onClick;\n state.detailsButton.onClick = mergeCallbacks(onClick, onExpandClick);\n }\n const referenceGroupSetOpen = useReferenceGroupSetOpen();\n const onTargettedByCitation = e => {\n var _e_relatedTarget;\n const relatedTargetHash = (_e_relatedTarget = e.relatedTarget) === null || _e_relatedTarget === void 0 ? void 0 : _e_relatedTarget.hash;\n if (relatedTargetHash && relatedTargetHash.substring(1) === referenceId) {\n referenceGroupSetOpen();\n setIsExpanded(true);\n }\n };\n state.root.onFocus = mergeCallbacks(state.root.onFocus, onTargettedByCitation);\n return state;\n};\nconst getIcon = (isExpanded, mode) => {\n if (mode === 'sidecar') {\n return !isExpanded ? /*#__PURE__*/React.createElement(ChevronDown16Regular, null) : /*#__PURE__*/React.createElement(ChevronUp16Regular, null);\n }\n return !isExpanded ? /*#__PURE__*/React.createElement(ChevronDown24Regular, null) : /*#__PURE__*/React.createElement(ChevronUp24Regular, null);\n};\n//# sourceMappingURL=useReference.js.map"],"names":["useReference_unstable","props","ref","index","referenceId","citationHref","excerpt","layout","mode","useCopilotMode","labelId","useId","mediaId","isExpanded","setIsExpanded","React","useState","setPopoverOpen","usePopoverContext","context","setOpen","onExpandClick","_e","label","slot","always","defaultProps","id","elementType","media","optional","isValidElement","children","cloneElement","className","mergeClasses","referenceExtraClassNames","mediaChild","_label_ariadescribedby","_label_ariadescribedby_concat","concat","ariaLabelledByProp","groupSemantics","useMemo","role","tabIndex","citationProps","onPopoverCloseClick","e","preventDefault","referenceHref","onClick","state","components","root","citation","actions","sensitivity","metadata","content","primaryText","secondaryText","tertiaryText","icon","detailsButton","Button","getNativeElementProps","createElement","Citation","block","renderByDefault","hidden","Caption1","appearance","size","getIcon","mergeCallbacks","referenceGroupSetOpen","useReferenceGroupSetOpen","onTargettedByCitation","_e_relatedTarget","relatedTargetHash","relatedTarget","hash","substring","onFocus","ChevronDown16Regular","ChevronUp16Regular","ChevronDown24Regular","ChevronUp24Regular"],"mappings":"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"}
1
+ {"version":3,"sources":["useReference.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n Button,\n Caption1,\n getIntrinsicElementProps,\n mergeCallbacks,\n mergeClasses,\n slot,\n useId,\n usePopoverContext_unstable as usePopoverContext,\n} from '@fluentui/react-components';\nimport {\n ChevronDown24Regular,\n ChevronUp24Regular,\n ChevronDown16Regular,\n ChevronUp16Regular,\n} from '@fluentui/react-icons';\nimport { referenceExtraClassNames } from './useReferenceStyles';\nimport { Citation } from '../Citation';\nimport type { ReferenceProps, ReferenceState } from './Reference.types';\nimport { useReferenceGroupSetOpen } from '../../contexts/ReferenceGroupContext';\nimport { useCopilotMode } from '@fluentui-copilot/react-provider';\n\n/**\n * Create the state required to render Reference.\n *\n * The returned state can be modified with hooks such as useReferenceStyles_unstable,\n * before being passed to renderReference_unstable.\n *\n * @param props - props from this instance of Reference\n * @param ref - reference to root HTMLElement of Reference\n */\nexport const useReference_unstable = (props: ReferenceProps, ref: React.Ref<HTMLDivElement>): ReferenceState => {\n const { index, referenceId, citationHref, excerpt, layout = 'inline' } = props;\n\n const mode = useCopilotMode(props.mode);\n\n const labelId = useId();\n const mediaId = useId();\n const [isExpanded, setIsExpanded] = React.useState(layout === 'popover' ? true : false);\n\n const setPopoverOpen = usePopoverContext(context => context.setOpen);\n\n const onExpandClick: React.MouseEventHandler<HTMLButtonElement> = _e => {\n setIsExpanded(!isExpanded);\n };\n\n const label = slot.always(props.label, {\n defaultProps: { id: labelId },\n elementType: 'div',\n });\n const media = slot.optional(props.media, { defaultProps: { id: mediaId }, elementType: 'div' });\n if (media && React.isValidElement<HTMLElement>(media.children)) {\n media.children = React.cloneElement(media.children, {\n className: mergeClasses(media.children.props.className, referenceExtraClassNames.mediaChild),\n });\n }\n\n if (media?.id) {\n label['aria-describedby'] = label['aria-describedby']?.concat(media.id) ?? media.id;\n }\n\n const ariaLabelledByProp = props['aria-labelledby'];\n const groupSemantics = React.useMemo(() => {\n return layout === 'inline'\n ? {\n role: 'group',\n 'aria-labelledby': `${ariaLabelledByProp ?? ''} ${label.id}`,\n tabIndex: -1,\n }\n : {};\n }, [layout, ariaLabelledByProp, label.id]);\n\n // Within a popup, a citation should function as a close button\n const citationProps = React.useMemo(() => {\n const onPopoverCloseClick = (e: React.MouseEvent<HTMLAnchorElement>) => {\n setPopoverOpen(e, false);\n\n // don't navigate\n e.preventDefault();\n };\n\n return layout === 'popover'\n ? {\n referenceHref: '#',\n tabIndex: -1,\n 'aria-label': `Reference ${index}, close`,\n onClick: onPopoverCloseClick,\n }\n : {\n referenceHref: citationHref,\n };\n }, [layout, citationHref, index, setPopoverOpen]);\n\n const state: ReferenceState = {\n isExpanded,\n mode: layout === 'popover' ? 'sidecar' : mode,\n layout,\n index,\n components: {\n root: 'div',\n citation: 'div',\n media: 'div',\n actions: 'div',\n label: 'div',\n sensitivity: 'span',\n metadata: 'div',\n content: 'div',\n primaryText: 'span',\n secondaryText: 'span',\n tertiaryText: 'span',\n icon: 'span',\n detailsButton: Button,\n },\n root: slot.always(\n getIntrinsicElementProps('div', {\n ref,\n id: referenceId,\n ...groupSemantics,\n ...props,\n }),\n { elementType: 'div' },\n ),\n citation: slot.optional(props.citation, {\n defaultProps: {\n children: (\n <Citation block {...citationProps}>\n {index}\n </Citation>\n ),\n },\n renderByDefault: true,\n elementType: 'div',\n }),\n media,\n actions: slot.optional(layout === 'inline' ? props.actions : null, {\n renderByDefault: true,\n elementType: 'div',\n }),\n label,\n sensitivity: slot.optional(props.sensitivity, { elementType: 'span' }),\n metadata: slot.always(props.metadata, { elementType: 'div' }),\n primaryText: slot.optional(props.primaryText, {\n defaultProps: {\n hidden: !isExpanded,\n },\n elementType: 'span',\n }),\n secondaryText: slot.optional(props.secondaryText, {\n defaultProps: {\n hidden: !isExpanded,\n },\n elementType: 'span',\n }),\n tertiaryText: slot.optional(props.tertiaryText, {\n defaultProps: {\n hidden: !isExpanded,\n },\n elementType: 'span',\n }),\n icon: slot.optional(props.icon, { elementType: 'span' }),\n content: slot.always(props.content, {\n defaultProps: {\n children: excerpt && <Caption1>{excerpt}</Caption1>,\n },\n elementType: 'div',\n }),\n detailsButton: slot.optional(layout === 'inline' ? props.detailsButton : null, {\n defaultProps: {\n appearance: 'transparent',\n 'aria-expanded': isExpanded,\n 'aria-label': 'show details',\n size: mode === 'sidecar' ? 'small' : 'medium',\n icon: {\n children: getIcon(isExpanded, mode),\n },\n },\n renderByDefault: true,\n elementType: Button,\n }),\n };\n\n if (state.detailsButton) {\n const onClick = state.detailsButton.onClick as React.MouseEventHandler<HTMLButtonElement>;\n state.detailsButton.onClick = mergeCallbacks(onClick, onExpandClick);\n }\n\n const referenceGroupSetOpen = useReferenceGroupSetOpen();\n const onTargettedByCitation = (e: React.FocusEvent<HTMLElement>) => {\n const relatedTargetHash: string | undefined = (e.relatedTarget as HTMLAnchorElement)?.hash;\n if (relatedTargetHash && relatedTargetHash.substring(1) === referenceId) {\n referenceGroupSetOpen();\n setIsExpanded(true);\n }\n };\n state.root.onFocus = mergeCallbacks(state.root.onFocus, onTargettedByCitation);\n\n return state;\n};\n\nconst getIcon = (isExpanded: boolean, mode: ReferenceProps['mode']): JSX.Element => {\n if (mode === 'sidecar') {\n return !isExpanded ? <ChevronDown16Regular /> : <ChevronUp16Regular />;\n }\n\n return !isExpanded ? <ChevronDown24Regular /> : <ChevronUp24Regular />;\n};\n"],"names":["index","citationHref","ref","referenceId","mediaId","isExpanded","excerpt","setPopoverOpen","layout","onExpandClick","mode","useCopilotMode","props","labelId","slot","always","defaultProps","usePopoverContext","context","setOpen","elementType","_e","setIsExpanded","label","media","children","React","className","mergeClasses","referenceExtraClassNames","mediaChild","id","_label_ariadescribedby_concat","_label_ariadescribedby","concat","ariaLabelledByProp","tabIndex","onPopoverCloseClick","e","useMemo","referenceHref","state","components","root","citation","actions","sensitivity","metadata","primaryText","secondaryText","tertiaryText","detailsButton","Button","optional","Citation","hidden","icon","content","createElement","Caption1","appearance","size","onClick","mergeCallbacks","onTargettedByCitation","_e_relatedTarget","relatedTargetHash","onFocus","getIcon","ChevronDown24Regular","ChevronDown16Regular","ChevronUp24Regular","ChevronUp16Regular"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}