@atlaskit/ads-mcp 1.10.8 → 1.10.10

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.
@@ -3,8 +3,8 @@
3
3
  *
4
4
  * Structured content hooks from design-system *.docs.tsx files
5
5
  *
6
- * @codegen <<SignedSource::62df1129cd332cd422134d3da180202d>>
7
- * @codegenCommand yarn workspace @af/ads-ai-tooling codegen
6
+ * @codegen <<SignedSource::3b66faaf90a123fa4bc5856ae6f6a17f>>
7
+ * @codegenCommand afm workspace @af/ads-ai-tooling codegen
8
8
  */
9
9
  /* eslint-disable @repo/internal/react/boolean-prop-naming-convention -- not our types */
10
10
 
@@ -21,7 +21,7 @@ export const atlaskitHooks = [{
21
21
  description: '`createAnalyticsEvent` is referentially stable per nearest `AnalyticsContext`, so it is safe to put in dependency arrays.'
22
22
  },
23
23
  package: '@atlaskit/analytics-next',
24
- examples: ["import React, { type FC, type MouseEvent, useCallback } from 'react';\nimport AnalyticsListener from '../src/components/AnalyticsListener';\nimport type UIAnalyticsEvent from '../src/events/UIAnalyticsEvent';\nimport { useAnalyticsEvents } from '../src/hooks/useAnalyticsEvents';\nimport { useCallbackWithAnalytics } from '../src/hooks/useCallbackWithAnalytics';\nimport { usePlatformLeafEventHandler } from '../src/hooks/usePlatformLeafEventHandler';\nimport withAnalyticsEvents, {\n\ttype WithAnalyticsEventsProps,\n} from '../src/hocs/withAnalyticsEvents';\ninterface Props extends WithAnalyticsEventsProps {\n\tchildren: React.ReactNode;\n\tonClick: (e: MouseEvent<HTMLButtonElement>) => void;\n}\nconst ButtonBase = ({ createAnalyticsEvent, onClick, ...rest }: Props) => {\n\tconst handleClick = useCallback(\n\t\t(e: MouseEvent<HTMLButtonElement>) => {\n\t\t\t// Create our analytics event\n\t\t\tconst analyticsEvent = createAnalyticsEvent!({\n\t\t\t\taction: 'click',\n\t\t\t});\n\t\t\t// Fire our analytics event on the 'atlaskit' channel\n\t\t\tanalyticsEvent.fire('atlaskit');\n\t\t\tif (onClick) {\n\t\t\t\tonClick(e);\n\t\t\t}\n\t\t},\n\t\t[onClick, createAnalyticsEvent],\n\t);\n\treturn <button {...rest} onClick={handleClick} />;\n};\nconst Button = withAnalyticsEvents()(ButtonBase);\nconst ButtonUsingHook: FC<Props> = ({ onClick, ...props }) => {\n\t// Decompose function from the hook\n\tconst { createAnalyticsEvent } = useAnalyticsEvents();\n\tconst handleClick = useCallback(\n\t\t(e: MouseEvent<HTMLButtonElement>) => {\n\t\t\t// Create our analytics event\n\t\t\tconst analyticsEvent = createAnalyticsEvent({ action: 'click' });\n\t\t\t// Fire our analytics event\n\t\t\tanalyticsEvent.fire('atlaskit');\n\t\t\tif (onClick) {\n\t\t\t\tonClick(e);\n\t\t\t}\n\t\t},\n\t\t[onClick, createAnalyticsEvent],\n\t);\n\treturn <button {...props} onClick={handleClick} />;\n};\nconst ButtonUsingCallback: FC<Props> = ({ onClick, ...props }) => {\n\tconst handleClick = useCallbackWithAnalytics(onClick, { action: 'click' }, 'atlaskit');\n\treturn <button {...props} onClick={handleClick} />;\n};\nconst ButtonUsingEventHandlerHook = ({\n\tonClick,\n\tchildren,\n}: {\n\tchildren: React.ReactNode;\n\tonClick: (\n\t\tmouseEvent: React.MouseEvent<HTMLButtonElement>,\n\t\tanalyticsEvent: UIAnalyticsEvent,\n\t) => void;\n}) => {\n\tconst handleClick = usePlatformLeafEventHandler({\n\t\tfn: onClick,\n\t\taction: 'clicked',\n\t\tcomponentName: 'fancy-button',\n\t\tpackageName: '@atlaskit/fancy-button',\n\t\tpackageVersion: '0.1.0',\n\t});\n\treturn <button onClick={handleClick}>{children}</button>;\n};\nconst App: FC = () => {\n\tconst handleEvent = (analyticsEvent: UIAnalyticsEvent) => {\n\t\tconst { payload, context } = analyticsEvent;\n\t\tconsole.log('Received event:', { payload, context });\n\t};\n\tconst onClickHandler = () => console.log('onClickCallback');\n\treturn (\n\t\t<AnalyticsListener channel=\"atlaskit\" onEvent={handleEvent}>\n\t\t\t<Button onClick={onClickHandler}>Click me (withAnalyticsEvents)</Button>\n\t\t\t<br />\n\t\t\t<ButtonUsingHook onClick={onClickHandler}>Click me (useAnalyticsEvents)</ButtonUsingHook>\n\t\t\t<br />\n\t\t\t<ButtonUsingCallback onClick={onClickHandler}>\n\t\t\t\tClick me (useCallbackWithAnalytics)\n\t\t\t</ButtonUsingCallback>\n\t\t\t<br />\n\t\t\t<ButtonUsingEventHandlerHook onClick={onClickHandler}>\n\t\t\t\tClick me (usePlatformLeafEventHandler)\n\t\t\t</ButtonUsingEventHandlerHook>\n\t\t</AnalyticsListener>\n\t);\n};\nexport default App;"]
24
+ examples: ["import React, { type FC, type MouseEvent, useCallback } from 'react';\nimport AnalyticsListener from '../src/components/AnalyticsListener';\nimport type UIAnalyticsEvent from '../src/events/UIAnalyticsEvent';\nimport withAnalyticsEvents, {\n\ttype WithAnalyticsEventsProps,\n} from '../src/hocs/withAnalyticsEvents';\nimport { useAnalyticsEvents } from '../src/hooks/useAnalyticsEvents';\nimport { useCallbackWithAnalytics } from '../src/hooks/useCallbackWithAnalytics';\nimport { usePlatformLeafEventHandler } from '../src/hooks/usePlatformLeafEventHandler';\ninterface Props extends WithAnalyticsEventsProps {\n\tchildren: React.ReactNode;\n\tonClick: (e: MouseEvent<HTMLButtonElement>) => void;\n}\nconst ButtonBase = ({ createAnalyticsEvent, onClick, ...rest }: Props) => {\n\tconst handleClick = useCallback(\n\t\t(e: MouseEvent<HTMLButtonElement>) => {\n\t\t\t// Create our analytics event\n\t\t\tconst analyticsEvent = createAnalyticsEvent!({\n\t\t\t\taction: 'click',\n\t\t\t});\n\t\t\t// Fire our analytics event on the 'atlaskit' channel\n\t\t\tanalyticsEvent.fire('atlaskit');\n\t\t\tif (onClick) {\n\t\t\t\tonClick(e);\n\t\t\t}\n\t\t},\n\t\t[onClick, createAnalyticsEvent],\n\t);\n\treturn <button {...rest} onClick={handleClick} />;\n};\nconst Button = withAnalyticsEvents()(ButtonBase);\nconst ButtonUsingHook: FC<Props> = ({ onClick, ...props }) => {\n\t// Decompose function from the hook\n\tconst { createAnalyticsEvent } = useAnalyticsEvents();\n\tconst handleClick = useCallback(\n\t\t(e: MouseEvent<HTMLButtonElement>) => {\n\t\t\t// Create our analytics event\n\t\t\tconst analyticsEvent = createAnalyticsEvent({ action: 'click' });\n\t\t\t// Fire our analytics event\n\t\t\tanalyticsEvent.fire('atlaskit');\n\t\t\tif (onClick) {\n\t\t\t\tonClick(e);\n\t\t\t}\n\t\t},\n\t\t[onClick, createAnalyticsEvent],\n\t);\n\treturn <button {...props} onClick={handleClick} />;\n};\nconst ButtonUsingCallback: FC<Props> = ({ onClick, ...props }) => {\n\tconst handleClick = useCallbackWithAnalytics(onClick, { action: 'click' }, 'atlaskit');\n\treturn <button {...props} onClick={handleClick} />;\n};\nconst ButtonUsingEventHandlerHook = ({\n\tonClick,\n\tchildren,\n}: {\n\tchildren: React.ReactNode;\n\tonClick: (\n\t\tmouseEvent: React.MouseEvent<HTMLButtonElement>,\n\t\tanalyticsEvent: UIAnalyticsEvent,\n\t) => void;\n}) => {\n\tconst handleClick = usePlatformLeafEventHandler({\n\t\tfn: onClick,\n\t\taction: 'clicked',\n\t\tcomponentName: 'fancy-button',\n\t\tpackageName: '@atlaskit/fancy-button',\n\t\tpackageVersion: '0.1.0',\n\t});\n\treturn <button onClick={handleClick}>{children}</button>;\n};\nconst App: FC = () => {\n\tconst handleEvent = (analyticsEvent: UIAnalyticsEvent) => {\n\t\tconst { payload, context } = analyticsEvent;\n\t\tconsole.log('Received event:', { payload, context });\n\t};\n\tconst onClickHandler = () => console.log('onClickCallback');\n\treturn (\n\t\t<AnalyticsListener channel=\"atlaskit\" onEvent={handleEvent}>\n\t\t\t<Button onClick={onClickHandler}>Click me (withAnalyticsEvents)</Button>\n\t\t\t<br />\n\t\t\t<ButtonUsingHook onClick={onClickHandler}>Click me (useAnalyticsEvents)</ButtonUsingHook>\n\t\t\t<br />\n\t\t\t<ButtonUsingCallback onClick={onClickHandler}>\n\t\t\t\tClick me (useCallbackWithAnalytics)\n\t\t\t</ButtonUsingCallback>\n\t\t\t<br />\n\t\t\t<ButtonUsingEventHandlerHook onClick={onClickHandler}>\n\t\t\t\tClick me (usePlatformLeafEventHandler)\n\t\t\t</ButtonUsingEventHandlerHook>\n\t\t</AnalyticsListener>\n\t);\n};\nexport default App;"]
25
25
  }, {
26
26
  name: 'useInterval',
27
27
  description: 'Declarative wrapper around `setInterval`. Re-runs the latest `callback` every `delay` milliseconds and clears the timer on unmount or when `delay` changes. Passing `null` for `delay` pauses the timer without unmounting the hook.',
@@ -331,6 +331,24 @@ export const atlaskitHooks = [{
331
331
  category: 'linking',
332
332
  package: '@atlaskit/smart-card',
333
333
  examples: ["import AnalyticsContext from '@atlaskit/analytics-next/AnalyticsContext';\nimport AnalyticsListener from '@atlaskit/analytics-next/AnalyticsListener';\nimport type UIAnalyticsEvent from '@atlaskit/analytics-next/UIAnalyticsEvent';\nimport Heading from '@atlaskit/heading/heading';\nimport { SmartCardProvider } from '@atlaskit/link-provider/smart-card-provider';\nimport { ResolvedClient, ResolvedClientUrl } from '@atlaskit/link-test-helpers';\nimport { Box, Text, xcss } from '@atlaskit/primitives';\nimport { Card } from '../../src';\nconst headingBoxStyles = xcss({\n\tmarginBottom: 'space.100',\n});\nconst stackBoxStyles = xcss({\n\tmarginTop: 'space.100',\n});\ntype ExampleComponentProps = {\n\tsetRecentEvents: React.Dispatch<React.SetStateAction<UIAnalyticsEvent[]>>;\n};\nconst ExampleComponent = ({ setRecentEvents }: ExampleComponentProps): JSX.Element => {\n\tconst handleOnClick = React.useCallback(\n\t\t(e: React.MouseEvent<Element, MouseEvent> | React.KeyboardEvent<Element>) => {\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t},\n\t\t[],\n\t);\n\treturn (\n\t\t<AnalyticsListener\n\t\t\tonEvent={(event) => {\n\t\t\t\tsetRecentEvents((prevEvents) => [...prevEvents, event]);\n\t\t\t}}\n\t\t\tchannel=\"*\"\n\t\t>\n\t\t\t<AnalyticsContext\n\t\t\t\tdata={{\n\t\t\t\t\tsource: 'content',\n\t\t\t\t\tattributes: {\n\t\t\t\t\t\tdisplayCategory: 'link',\n\t\t\t\t\t\tdisplay: 'url',\n\t\t\t\t\t\tid: '123',\n\t\t\t\t\t},\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<SmartCardProvider client={new ResolvedClient('dev')}>\n\t\t\t\t\t<Card\n\t\t\t\t\t\turl={ResolvedClientUrl}\n\t\t\t\t\t\tappearance=\"inline\"\n\t\t\t\t\t\tplatform=\"web\"\n\t\t\t\t\t\tshowHoverPreview={true}\n\t\t\t\t\t\tonClick={handleOnClick}\n\t\t\t\t\t/>\n\t\t\t\t</SmartCardProvider>\n\t\t\t</AnalyticsContext>\n\t\t</AnalyticsListener>\n\t);\n};\nexport default (): React.JSX.Element => {\n\tconst [recentEvents, setRecentEvents] = React.useState<UIAnalyticsEvent[]>([]);\n\tconst mostRecent10Events = React.useMemo(() => {\n\t\treturn Array.from({ length: 10 }, (_, i) => {\n\t\t\treturn recentEvents.at(recentEvents.length - i - 1);\n\t\t});\n\t}, [recentEvents]);\n\treturn (\n\t\t<Box>\n\t\t\t<Box xcss={headingBoxStyles}>\n\t\t\t\t<Heading size=\"medium\">Interact with the link below and see events being fired</Heading>\n\t\t\t</Box>\n\t\t\t<ExampleComponent setRecentEvents={setRecentEvents} />\n\t\t\t<Box xcss={stackBoxStyles}>\n\t\t\t\t<Heading size=\"small\">The 10 Most Recent Events Fired</Heading>\n\t\t\t\t<ol>\n\t\t\t\t\t{mostRecent10Events.map((event, index) => {\n\t\t\t\t\t\tif (event === undefined) {\n\t\t\t\t\t\t\treturn <li key={index}></li>;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst { action, actionSubject, eventType } = event.payload;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<li key={index}>\n\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\t\t>{`actionSubject: ${actionSubject}, action: ${action}, eventType: ${eventType}`}</Text>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</ol>\n\t\t\t</Box>\n\t\t</Box>\n\t);\n};"]
334
+ }, {
335
+ name: 'useAgentSessions',
336
+ description: 'Reads normalized account-scoped Rovo agent sessions and keeps the Relay result current after lifecycle events.',
337
+ status: 'general-availability',
338
+ usageGuidelines: ['Call inside a RelayEnvironmentProvider and pass accountId with cloudId unless the host already has a Rovo activation ID.', 'Render from the ready result and preserve backend session state for product-owned presentation rather than inventing replacement labels.', 'Use the exported types entrypoint for AgentSessionsOptions, AgentSessionsResult, and normalized session contracts.'],
339
+ keywords: ['rovo', 'agent sessions', 'relay', 'hooks'],
340
+ category: 'data',
341
+ parameters: [{
342
+ name: 'options',
343
+ type: 'AgentSessionsOptions',
344
+ description: 'Account identity plus cloudId or rovoActivationId, with optional pageSize and sort configuration.'
345
+ }],
346
+ returns: {
347
+ type: 'AgentSessionsResult',
348
+ description: 'An unavailable result when identity cannot resolve a Rovo workspace, otherwise normalized sessions, pagination, and refetch controls.'
349
+ },
350
+ package: '@atlassian/agent-sessions',
351
+ examples: []
334
352
  }, {
335
353
  name: 'useChooseObjectExample',
336
354
  description: 'Returns object-example selection state for smart-creation prompts.',
@@ -802,6 +820,24 @@ export const atlaskitHooks = [{
802
820
  category: 'rovo',
803
821
  package: '@atlassian/creation-settings',
804
822
  examples: []
823
+ }, {
824
+ name: 'useEditorRovoBridge',
825
+ description: 'Connects an editor instance to Rovo command handling, streaming lifecycle, and media insertion.',
826
+ status: 'general-availability',
827
+ usageGuidelines: ['Use from the editor integration that owns the current EditorView and Rovo content bridge session.'],
828
+ keywords: ['rovo', 'editor', 'streaming', 'bridge'],
829
+ category: 'rovo',
830
+ package: '@atlassian/editor-rovo-bridge',
831
+ examples: []
832
+ }, {
833
+ name: 'useGuardFlagContent',
834
+ description: 'Builds localized Guard flag content for a supported product surface.',
835
+ status: 'general-availability',
836
+ usageGuidelines: ['Pass the real Guard surface so copy matches the policy context.'],
837
+ keywords: ['rovo chat', 'guard', 'flag'],
838
+ category: 'rovo',
839
+ package: '@atlassian/guard-redaction-ui',
840
+ examples: []
805
841
  }, {
806
842
  name: 'useAiCreateProjectContext',
807
843
  description: 'Resolves Jira project context for an AI-assisted creation flow.',
@@ -1075,6 +1111,15 @@ export const atlaskitHooks = [{
1075
1111
  category: 'rovo',
1076
1112
  package: '@atlassian/rovo-action-trigger',
1077
1113
  examples: []
1114
+ }, {
1115
+ name: 'useFiltersState',
1116
+ description: 'Initializes and maintains connector-specific search filter state from resource type, hydrated connector configuration, and URL query parameters.',
1117
+ status: 'general-availability',
1118
+ usageGuidelines: ['Render within IntlProvider because connector configuration includes localized filter state.', 'Wait for hasInitialisedState before issuing a connector search from filtersState.'],
1119
+ keywords: ['rovo', 'agents', 'connectors', 'filters', 'search'],
1120
+ category: 'rovo',
1121
+ package: '@atlassian/rovo-agent-connectors',
1122
+ examples: []
1078
1123
  }, {
1079
1124
  name: 'useClearFormValue',
1080
1125
  description: 'Returns a callback for clearing one declarative form property.',
@@ -1174,6 +1219,24 @@ export const atlaskitHooks = [{
1174
1219
  category: 'rovo',
1175
1220
  package: '@atlassian/rovo-chat-side-by-side-evaluation',
1176
1221
  examples: []
1222
+ }, {
1223
+ name: 'useRovoConfig',
1224
+ description: 'Fetches the combined Rovo configuration, including accessible products, connector state, and OAuth update support.',
1225
+ status: 'early-access',
1226
+ usageGuidelines: ['Use in a Rovo host with a cloud ID and render loading or error states before using connector data.', 'Call onOAuthSuccess only after the host confirms a connector OAuth flow has succeeded.'],
1227
+ keywords: ['rovo', 'connectors', 'configuration', 'oauth', 'search'],
1228
+ category: 'agents',
1229
+ package: '@atlassian/rovo-connectors-config',
1230
+ examples: []
1231
+ }, {
1232
+ name: 'useRovoConfigStore',
1233
+ description: 'Provides the conversation-assistant-compatible connector store while Rovo Chat migrates to canonical connector configuration.',
1234
+ status: 'early-access',
1235
+ usageGuidelines: ['Use only as a 1:1 migration boundary for existing conversation-assistant connector selectors.', 'Do not persist or mutate returned connector records directly; use markUserConnected after a confirmed OAuth flow.'],
1236
+ keywords: ['rovo', 'chat', 'connectors', 'store', 'oauth'],
1237
+ category: 'agents',
1238
+ package: '@atlassian/rovo-connectors-config',
1239
+ examples: []
1177
1240
  }, {
1178
1241
  name: 'useActionsContext',
1179
1242
  description: 'Returns the nearest custom action configuration or package defaults.',
@@ -1468,6 +1531,15 @@ export const atlaskitHooks = [{
1468
1531
  },
1469
1532
  package: '@atlassian/rovo-platform-ui-components',
1470
1533
  examples: []
1534
+ }, {
1535
+ name: 'usePromptOfTheDay',
1536
+ description: 'Reads today’s account-scoped prompt suggestions with a shared request cache and an explicit availability status.',
1537
+ status: 'general-availability',
1538
+ usageGuidelines: ['Render no prompt UI when status is unavailable; an empty result intentionally covers skipped, failed, and malformed responses.', 'Pass the same account and request arguments across surfaces to reuse the cache entry.'],
1539
+ keywords: ['rovo', 'prompt of the day', 'suggestions', 'cache'],
1540
+ category: 'rovo',
1541
+ package: '@atlassian/rovo-prompt-of-the-day',
1542
+ examples: []
1471
1543
  }, {
1472
1544
  name: 'useIsRovoSettingsModalProviderMounted',
1473
1545
  description: 'Reports whether a Rovo settings modal provider is mounted above the caller.',
@@ -1612,6 +1684,60 @@ export const atlaskitHooks = [{
1612
1684
  },
1613
1685
  package: '@atlassian/rovodal-context',
1614
1686
  examples: []
1687
+ }, {
1688
+ name: 'useRetry',
1689
+ description: 'Retries an asynchronous readiness check until it succeeds, fails, or is stopped.',
1690
+ status: 'general-availability',
1691
+ usageGuidelines: ['Use a stable async callback and provide a bounded retry count for transient session checks.'],
1692
+ keywords: ['rovodev', 'retry', 'session', 'hooks'],
1693
+ category: 'agents',
1694
+ package: '@atlassian/rovodev-session-frame',
1695
+ examples: []
1696
+ }, {
1697
+ name: 'useSandboxReadiness',
1698
+ description: 'Polls Relay for Rovo Dev sandbox readiness, progress, and known sandbox errors.',
1699
+ status: 'general-availability',
1700
+ usageGuidelines: ['Use from a Relay-enabled session surface and show the returned progress or error state to the user.'],
1701
+ keywords: ['rovodev', 'sandbox', 'relay', 'readiness', 'hooks'],
1702
+ category: 'agents',
1703
+ package: '@atlassian/rovodev-session-frame',
1704
+ examples: []
1705
+ }, {
1706
+ name: 'useWakeUpSession',
1707
+ description: 'Returns a callback that asks the Rovo Dev backend to keep a session sandbox awake.',
1708
+ status: 'general-availability',
1709
+ usageGuidelines: ['Invoke from a Relay-enabled host only when a user action needs to wake an existing session.'],
1710
+ keywords: ['rovodev', 'session', 'sandbox', 'relay', 'hooks'],
1711
+ category: 'agents',
1712
+ package: '@atlassian/rovodev-session-frame',
1713
+ examples: []
1714
+ }, {
1715
+ name: 'useGetRovoDevAutomationSettings',
1716
+ description: 'Returns an async reader, cache state, loading state, and error state for a container’s Rovo Dev automation setting.',
1717
+ status: 'general-availability',
1718
+ usageGuidelines: ['Call the returned reader from a host-owned effect or user action and render its loading and error states.', 'Treat a missing server setting as the documented disabled default rather than assuming automation is enabled.'],
1719
+ keywords: ['rovodev', 'automation', 'settings', 'container'],
1720
+ category: 'agents',
1721
+ package: '@atlassian/rovodev-settings',
1722
+ examples: []
1723
+ }, {
1724
+ name: 'useSetRovoDevAutomationSettings',
1725
+ description: 'Returns an async writer with loading and error state for a container’s Rovo Dev automation setting.',
1726
+ status: 'general-availability',
1727
+ usageGuidelines: ['Persist an automation toggle only after explicit user confirmation and surface a failed write in the host UI.'],
1728
+ keywords: ['rovodev', 'automation', 'settings', 'container'],
1729
+ category: 'agents',
1730
+ package: '@atlassian/rovodev-settings',
1731
+ examples: []
1732
+ }, {
1733
+ name: 'useRovodevIframe',
1734
+ description: 'Returns readiness state and command helpers for the Rovo Dev session iframe.',
1735
+ status: 'general-availability',
1736
+ usageGuidelines: ['Use only in the browser surface that owns the Rovo Dev iframe identified by ROVODEV_IFRAME_SELECTOR.', 'Wait for isIframeReady and handle rejected command promises when the iframe is unavailable or times out.'],
1737
+ keywords: ['rovodev', 'iframe', 'vscode', 'commands'],
1738
+ category: 'agents',
1739
+ package: '@atlassian/rovodev-use-rovodev-iframe',
1740
+ examples: []
1615
1741
  }, {
1616
1742
  name: 'useRovoProjectCreationCategories',
1617
1743
  description: 'Returns localized feedback categories for Rovo project creation.',
@@ -1708,6 +1834,24 @@ export const atlaskitHooks = [{
1708
1834
  },
1709
1835
  package: '@atlassian/smart-creation',
1710
1836
  examples: []
1837
+ }, {
1838
+ name: 'useRovoPanel',
1839
+ description: 'Returns the current Store Rovo panel mode and controls.',
1840
+ status: 'general-availability',
1841
+ usageGuidelines: ['Call beneath RovoPanelProvider; use mode instead of duplicating panel-open state.'],
1842
+ keywords: ['rovo', 'store', 'panel'],
1843
+ category: 'rovo',
1844
+ package: '@atlassian/store-rovo',
1845
+ examples: []
1846
+ }, {
1847
+ name: 'useStoreRovoContext',
1848
+ description: 'Returns Store context and setters used to enrich a Rovo conversation.',
1849
+ status: 'general-availability',
1850
+ usageGuidelines: ['Call beneath StoreRovoContextProvider and clear route-specific context when leaving a Store surface.'],
1851
+ keywords: ['rovo', 'store', 'context'],
1852
+ category: 'rovo',
1853
+ package: '@atlassian/store-rovo',
1854
+ examples: []
1711
1855
  }, {
1712
1856
  name: 'useBrowseAgentView',
1713
1857
  description: 'Returns controls for opening and closing nested views in the Rovo agent browser.',