···77import {isNative} from '#/platform/detection'
88import {atoms as a, flatten, native, TextStyleProp, useTheme, web} from '#/alf'
99import {useInteractionState} from '#/components/hooks/useInteractionState'
1010-import {InlineLink} from '#/components/Link'
1010+import {InlineLinkText} from '#/components/Link'
1111import {TagMenu, useTagMenuControl} from '#/components/TagMenu'
1212import {Text, TextProps} from '#/components/Typography'
1313···8484 !disableLinks
8585 ) {
8686 els.push(
8787- <InlineLink
8787+ <InlineLinkText
8888 selectable={selectable}
8989 key={key}
9090 to={`/profile/${mention.did}`}
···9292 // @ts-ignore TODO
9393 dataSet={WORD_WRAP}>
9494 {segment.text}
9595- </InlineLink>,
9595+ </InlineLinkText>,
9696 )
9797 } else if (link && AppBskyRichtextFacet.validateLink(link).success) {
9898 if (disableLinks) {
9999 els.push(toShortUrl(segment.text))
100100 } else {
101101 els.push(
102102- <InlineLink
102102+ <InlineLinkText
103103 selectable={selectable}
104104 key={key}
105105 to={link.uri}
···108108 dataSet={WORD_WRAP}
109109 shareOnLongPress>
110110 {toShortUrl(segment.text)}
111111- </InlineLink>,
111111+ </InlineLinkText>,
112112 )
113113 }
114114 } else if (
+17-18
src/components/dialogs/MutedWords.tsx
···11import React from 'react'
22import {Keyboard, View} from 'react-native'
33+import {AppBskyActorDefs, sanitizeMutedWordValue} from '@atproto/api'
34import {msg, Trans} from '@lingui/macro'
45import {useLingui} from '@lingui/react'
55-import {AppBskyActorDefs, sanitizeMutedWordValue} from '@atproto/api'
6677+import {logger} from '#/logger'
88+import {isNative} from '#/platform/detection'
79import {
810 usePreferencesQuery,
99- useUpsertMutedWordsMutation,
1011 useRemoveMutedWordMutation,
1212+ useUpsertMutedWordsMutation,
1113} from '#/state/queries/preferences'
1212-import {isNative} from '#/platform/detection'
1314import {
1415 atoms as a,
1515- useTheme,
1616+ native,
1617 useBreakpoints,
1818+ useTheme,
1719 ViewStyleProp,
1820 web,
1919- native,
2021} from '#/alf'
2121-import {Text} from '#/components/Typography'
2222import {Button, ButtonIcon, ButtonText} from '#/components/Button'
2323+import * as Dialog from '#/components/Dialog'
2424+import {useGlobalDialogsControlContext} from '#/components/dialogs/Context'
2525+import {Divider} from '#/components/Divider'
2626+import * as Toggle from '#/components/forms/Toggle'
2727+import {Hashtag_Stroke2_Corner0_Rounded as Hashtag} from '#/components/icons/Hashtag'
2828+import {PageText_Stroke2_Corner0_Rounded as PageText} from '#/components/icons/PageText'
2329import {PlusLarge_Stroke2_Corner0_Rounded as Plus} from '#/components/icons/Plus'
2430import {TimesLarge_Stroke2_Corner0_Rounded as X} from '#/components/icons/Times'
2525-import {Hashtag_Stroke2_Corner0_Rounded as Hashtag} from '#/components/icons/Hashtag'
2626-import {PageText_Stroke2_Corner0_Rounded as PageText} from '#/components/icons/PageText'
2727-import {Divider} from '#/components/Divider'
2831import {Loader} from '#/components/Loader'
2929-import {logger} from '#/logger'
3030-import * as Dialog from '#/components/Dialog'
3131-import * as Toggle from '#/components/forms/Toggle'
3232import * as Prompt from '#/components/Prompt'
3333-3434-import {useGlobalDialogsControlContext} from '#/components/dialogs/Context'
3333+import {Text} from '#/components/Typography'
35343635export function MutedWordsDialog() {
3736 const {mutedWordsDialogControl: control} = useGlobalDialogsControlContext()
···130129 <TargetToggle>
131130 <View style={[a.flex_row, a.align_center, a.gap_sm]}>
132131 <Toggle.Radio />
133133- <Toggle.Label>
132132+ <Toggle.LabelText>
134133 <Trans>Mute in text & tags</Trans>
135135- </Toggle.Label>
134134+ </Toggle.LabelText>
136135 </View>
137136 <PageText size="sm" />
138137 </TargetToggle>
···145144 <TargetToggle>
146145 <View style={[a.flex_row, a.align_center, a.gap_sm]}>
147146 <Toggle.Radio />
148148- <Toggle.Label>
147147+ <Toggle.LabelText>
149148 <Trans>Mute in tags only</Trans>
150150- </Toggle.Label>
149149+ </Toggle.LabelText>
151150 </View>
152151 <Hashtag size="sm" />
153152 </TargetToggle>
+1-1
src/components/forms/DateField/index.android.tsx
···88import {DateFieldButton} from './index.shared'
991010export * as utils from '#/components/forms/DateField/utils'
1111-export const Label = TextField.Label
1111+export const LabelText = TextField.LabelText
12121313export function DateField({
1414 value,
+1-1
src/components/forms/DateField/index.tsx
···1313import {DateFieldButton} from './index.shared'
14141515export * as utils from '#/components/forms/DateField/utils'
1616-export const Label = TextField.Label
1616+export const LabelText = TextField.LabelText
17171818/**
1919 * Date-only input. Accepts a date in the format YYYY-MM-DD, and reports date
+1-1
src/components/forms/DateField/index.web.tsx
···99import {CalendarDays_Stroke2_Corner0_Rounded as CalendarDays} from '#/components/icons/CalendarDays'
10101111export * as utils from '#/components/forms/DateField/utils'
1212-export const Label = TextField.Label
1212+export const LabelText = TextField.LabelText
13131414const InputBase = React.forwardRef<HTMLInputElement, TextInputProps>(
1515 ({style, ...props}, ref) => {
+2-2
src/components/forms/TextField.tsx
···225225226226export const Input = createInput(TextInput)
227227228228-export function Label({
228228+export function LabelText({
229229 nativeID,
230230 children,
231231}: React.PropsWithChildren<{nativeID?: string}>) {
···288288 )
289289}
290290291291-export function Suffix({
291291+export function SuffixText({
292292 children,
293293 label,
294294 accessibilityHint,
+5-5
src/components/forms/Toggle.tsx
···3344import {HITSLOP_10} from 'lib/constants'
55import {
66- useTheme,
76 atoms as a,
88- native,
97 flatten,
1010- ViewStyleProp,
88+ native,
119 TextStyleProp,
1010+ useTheme,
1111+ ViewStyleProp,
1212} from '#/alf'
1313-import {Text} from '#/components/Typography'
1413import {useInteractionState} from '#/components/hooks/useInteractionState'
1514import {CheckThick_Stroke2_Corner0_Rounded as Checkmark} from '#/components/icons/Check'
1515+import {Text} from '#/components/Typography'
16161717export type ItemState = {
1818 name: string
···234234 )
235235}
236236237237-export function Label({
237237+export function LabelText({
238238 children,
239239 style,
240240}: React.PropsWithChildren<TextStyleProp>) {
+3-3
src/components/moderation/LabelPreference.tsx
···1313} from '#/state/queries/preferences'
1414import {atoms as a, useBreakpoints, useTheme} from '#/alf'
1515import * as ToggleButton from '#/components/forms/ToggleButton'
1616-import {InlineLink} from '#/components/Link'
1616+import {InlineLinkText} from '#/components/Link'
1717import {Text} from '#/components/Typography'
1818import {CircleInfo_Stroke2_Corner0_Rounded as CircleInfo} from '../icons/CircleInfo'
1919···243243 ) : isGlobalLabel ? (
244244 <Trans>
245245 Configured in{' '}
246246- <InlineLink to="/moderation" style={a.text_sm}>
246246+ <InlineLinkText to="/moderation" style={a.text_sm}>
247247 moderation settings
248248- </InlineLink>
248248+ </InlineLinkText>
249249 .
250250 </Trans>
251251 ) : null}
+9-10
src/components/moderation/LabelsOnMeDialog.tsx
···11import React from 'react'
22import {View} from 'react-native'
33+import {ComAtprotoLabelDefs, ComAtprotoModerationDefs} from '@atproto/api'
34import {msg, Trans} from '@lingui/macro'
45import {useLingui} from '@lingui/react'
55-import {ComAtprotoLabelDefs, ComAtprotoModerationDefs} from '@atproto/api'
6677import {useLabelInfo} from '#/lib/moderation/useLabelInfo'
88import {makeProfileLink} from '#/lib/routes/links'
99import {sanitizeHandle} from '#/lib/strings/handles'
1010import {getAgent} from '#/state/session'
1111-1111+import * as Toast from '#/view/com/util/Toast'
1212import {atoms as a, useBreakpoints, useTheme} from '#/alf'
1313+import {Button, ButtonText} from '#/components/Button'
1414+import * as Dialog from '#/components/Dialog'
1515+import {InlineLinkText} from '#/components/Link'
1316import {Text} from '#/components/Typography'
1414-import * as Dialog from '#/components/Dialog'
1515-import {Button, ButtonText} from '#/components/Button'
1616-import {InlineLink} from '#/components/Link'
1717-import * as Toast from '#/view/com/util/Toast'
1817import {Divider} from '../Divider'
19182019export {useDialogControl as useLabelsOnMeDialogControl} from '#/components/Dialog'
···145144 <View style={[a.px_md, a.py_sm, t.atoms.bg_contrast_25]}>
146145 <Text style={[t.atoms.text_contrast_medium]}>
147146 <Trans>Source:</Trans>{' '}
148148- <InlineLink
147147+ <InlineLinkText
149148 to={makeProfileLink(
150149 labeler ? labeler.creator : {did: label.src, handle: ''},
151150 )}
152151 onPress={() => control.close()}>
153152 {labeler ? sanitizeHandle(labeler.creator.handle, '@') : label.src}
154154- </InlineLink>
153153+ </InlineLinkText>
155154 </Text>
156155 </View>
157156 </View>
···204203 <Text style={[a.text_md, a.leading_snug]}>
205204 <Trans>
206205 This appeal will be sent to{' '}
207207- <InlineLink
206206+ <InlineLinkText
208207 to={makeProfileLink(
209208 labeler ? labeler.creator : {did: label.src, handle: ''},
210209 )}
211210 onPress={() => control.close()}
212211 style={[a.text_md, a.leading_snug]}>
213212 {labeler ? sanitizeHandle(labeler.creator.handle, '@') : label.src}
214214- </InlineLink>
213213+ </InlineLinkText>
215214 .
216215 </Trans>
217216 </Text>
···11import React from 'react'
22import {View} from 'react-native'
33+import {ModerationCause} from '@atproto/api'
34import {msg, Trans} from '@lingui/macro'
45import {useLingui} from '@lingui/react'
55-import {ModerationCause} from '@atproto/api'
6677-import {listUriToHref} from '#/lib/strings/url-helpers'
87import {useModerationCauseDescription} from '#/lib/moderation/useModerationCauseDescription'
98import {makeProfileLink} from '#/lib/routes/links'
1010-99+import {listUriToHref} from '#/lib/strings/url-helpers'
1110import {isNative} from '#/platform/detection'
1212-import {useTheme, atoms as a} from '#/alf'
1313-import {Text} from '#/components/Typography'
1111+import {atoms as a, useTheme} from '#/alf'
1412import * as Dialog from '#/components/Dialog'
1515-import {InlineLink} from '#/components/Link'
1613import {Divider} from '#/components/Divider'
1414+import {InlineLinkText} from '#/components/Link'
1515+import {Text} from '#/components/Typography'
17161817export {useDialogControl as useModerationDetailsDialogControl} from '#/components/Dialog'
1918···5554 description = (
5655 <Trans>
5756 This user is included in the{' '}
5858- <InlineLink to={listUriToHref(list.uri)} style={[a.text_sm]}>
5757+ <InlineLinkText to={listUriToHref(list.uri)} style={[a.text_sm]}>
5958 {list.name}
6060- </InlineLink>{' '}
5959+ </InlineLinkText>{' '}
6160 list which you have blocked.
6261 </Trans>
6362 )
···8483 description = (
8584 <Trans>
8685 This user is included in the{' '}
8787- <InlineLink to={listUriToHref(list.uri)} style={[a.text_sm]}>
8686+ <InlineLinkText to={listUriToHref(list.uri)} style={[a.text_sm]}>
8887 {list.name}
8989- </InlineLink>{' '}
8888+ </InlineLinkText>{' '}
9089 list which you have muted.
9190 </Trans>
9291 )
···127126 {modcause.source.type === 'user' ? (
128127 <Trans>the author</Trans>
129128 ) : (
130130- <InlineLink
129129+ <InlineLinkText
131130 to={makeProfileLink({did: modcause.label.src, handle: ''})}
132131 onPress={() => control.close()}
133132 style={a.text_md}>
134133 {desc.source}
135135- </InlineLink>
134134+ </InlineLinkText>
136135 )}
137136 .
138137 </Trans>
···9999 return (
100100 <FormContainer
101101 testID="setNewPasswordForm"
102102- title={<Trans>Set new password</Trans>}>
102102+ titleText={<Trans>Set new password</Trans>}>
103103 <Text style={[a.leading_snug, a.mb_sm]}>
104104 <Trans>
105105 You will receive an email with a "reset code." Enter that code here,
···108108 </Text>
109109110110 <View>
111111- <TextField.Label>Reset code</TextField.Label>
111111+ <TextField.LabelText>Reset code</TextField.LabelText>
112112 <TextField.Root>
113113 <TextField.Icon icon={Ticket} />
114114 <TextField.Input
···131131 </View>
132132133133 <View>
134134- <TextField.Label>New password</TextField.Label>
134134+ <TextField.LabelText>New password</TextField.LabelText>
135135 <TextField.Root>
136136 <TextField.Icon icon={Lock} />
137137 <TextField.Input
+5-5
src/screens/Moderation/index.tsx
···4040import {Group3_Stroke2_Corner0_Rounded as Group} from '#/components/icons/Group'
4141import {Person_Stroke2_Corner0_Rounded as Person} from '#/components/icons/Person'
4242import * as LabelingService from '#/components/LabelingServiceCard'
4343-import {InlineLink, Link} from '#/components/Link'
4343+import {InlineLinkText, Link} from '#/components/Link'
4444import {Loader} from '#/components/Loader'
4545import {GlobalLabelPreference} from '#/components/moderation/LabelPreference'
4646import {Text} from '#/components/Typography'
···518518 msg`Discourage apps from showing my account to logged-out users`,
519519 )}>
520520 <Toggle.Switch />
521521- <Toggle.Label style={[a.text_md, a.flex_1]}>
521521+ <Toggle.LabelText style={[a.text_md, a.flex_1]}>
522522 <Trans>
523523 Discourage apps from showing my account to logged-out users
524524 </Trans>
525525- </Toggle.Label>
525525+ </Toggle.LabelText>
526526 </Toggle.Item>
527527528528 {updateProfile.isPending && <Loader />}
···545545 </Trans>
546546 </Text>
547547548548- <InlineLink to="https://blueskyweb.zendesk.com/hc/en-us/articles/15835264007693-Data-Privacy">
548548+ <InlineLinkText to="https://blueskyweb.zendesk.com/hc/en-us/articles/15835264007693-Data-Privacy">
549549 <Trans>Learn more about what is public on Bluesky.</Trans>
550550- </InlineLink>
550550+ </InlineLinkText>
551551 </View>
552552 </View>
553553 )
+12-14
src/screens/Onboarding/Layout.tsx
···11import React from 'react'
22import {View} from 'react-native'
33import {useSafeAreaInsets} from 'react-native-safe-area-context'
44-import {useLingui} from '@lingui/react'
54import {msg} from '@lingui/macro'
55+import {useLingui} from '@lingui/react'
6677-import {IS_DEV} from '#/env'
87import {isWeb} from '#/platform/detection'
98import {useOnboardingDispatch} from '#/state/shell'
1010-99+import {ScrollView} from '#/view/com/util/Views'
1010+import {Context} from '#/screens/Onboarding/state'
1111import {
1212- useTheme,
1312 atoms as a,
1414- useBreakpoints,
1515- web,
1313+ flatten,
1614 native,
1717- flatten,
1815 TextStyleProp,
1616+ useBreakpoints,
1717+ useTheme,
1818+ web,
1919} from '#/alf'
2020-import {P, leading, Text} from '#/components/Typography'
2020+import {Button, ButtonIcon} from '#/components/Button'
2121import {ChevronLeft_Stroke2_Corner0_Rounded as ChevronLeft} from '#/components/icons/Chevron'
2222-import {Button, ButtonIcon} from '#/components/Button'
2323-import {ScrollView} from '#/view/com/util/Views'
2422import {createPortalGroup} from '#/components/Portal'
2525-2626-import {Context} from '#/screens/Onboarding/state'
2323+import {leading, P, Text} from '#/components/Typography'
2424+import {IS_DEV} from '#/env'
27252826const COL_WIDTH = 500
2927···204202 )
205203}
206204207207-export function Title({
205205+export function TitleText({
208206 children,
209207 style,
210208}: React.PropsWithChildren<TextStyleProp>) {
···224222 )
225223}
226224227227-export function Description({
225225+export function DescriptionText({
228226 children,
229227 style,
230228}: React.PropsWithChildren<TextStyleProp>) {
+6-6
src/screens/Onboarding/StepAlgoFeeds/index.tsx
···66import {useAnalytics} from '#/lib/analytics/analytics'
77import {logEvent} from '#/lib/statsig/statsig'
88import {
99- Description,
99+ DescriptionText,
1010 OnboardingControls,
1111- Title,
1111+ TitleText,
1212} from '#/screens/Onboarding/Layout'
1313import {Context} from '#/screens/Onboarding/state'
1414import {FeedCard} from '#/screens/Onboarding/StepAlgoFeeds/FeedCard'
···105105 <View style={[a.align_start]}>
106106 <IconCircle icon={ListSparkle} style={[a.mb_2xl]} />
107107108108- <Title>
108108+ <TitleText>
109109 <Trans>Choose your main feeds</Trans>
110110- </Title>
111111- <Description>
110110+ </TitleText>
111111+ <DescriptionText>
112112 <Trans>
113113 Custom feeds built by the community bring you new experiences and help
114114 you find the content you love.
115115 </Trans>
116116- </Description>
116116+ </DescriptionText>
117117118118 <View style={[a.w_full, a.pb_2xl]}>
119119 <Toggle.Group
+6-6
src/screens/Onboarding/StepFinished.tsx
···1010import {getAgent} from '#/state/session'
1111import {useOnboardingDispatch} from '#/state/shell'
1212import {
1313- Description,
1313+ DescriptionText,
1414 OnboardingControls,
1515- Title,
1515+ TitleText,
1616} from '#/screens/Onboarding/Layout'
1717import {Context} from '#/screens/Onboarding/state'
1818import {
···8787 <View style={[a.align_start]}>
8888 <IconCircle icon={Check} style={[a.mb_2xl]} />
89899090- <Title>
9090+ <TitleText>
9191 <Trans>You're ready to go!</Trans>
9292- </Title>
9393- <Description>
9292+ </TitleText>
9393+ <DescriptionText>
9494 <Trans>We hope you have a wonderful time. Remember, Bluesky is:</Trans>
9595- </Description>
9595+ </DescriptionText>
96969797 <View style={[a.pt_5xl, a.gap_3xl]}>
9898 <View style={[a.flex_row, a.align_center, a.w_full, a.gap_lg]}>
+8-8
src/screens/Onboarding/StepFollowingFeed.tsx
···1010 useSetFeedViewPreferencesMutation,
1111} from 'state/queries/preferences'
1212import {
1313- Description,
1313+ DescriptionText,
1414 OnboardingControls,
1515- Title,
1515+ TitleText,
1616} from '#/screens/Onboarding/Layout'
1717import {Context} from '#/screens/Onboarding/state'
1818import {atoms as a} from '#/alf'
···5858 <View style={[a.align_start]}>
5959 <IconCircle icon={FilterTimeline} style={[a.mb_2xl]} />
60606161- <Title>
6161+ <TitleText>
6262 <Trans>Your default feed is "Following"</Trans>
6363- </Title>
6464- <Description style={[a.mb_md]}>
6363+ </TitleText>
6464+ <DescriptionText style={[a.mb_md]}>
6565 <Trans>It shows posts from the people you follow as they happen.</Trans>
6666- </Description>
6666+ </DescriptionText>
67676868 <View style={[a.w_full]}>
6969 <Toggle.Item
···139139 </Toggle.Item>
140140 </View>
141141142142- <Description style={[a.mt_lg]}>
142142+ <DescriptionText style={[a.mt_lg]}>
143143 <Trans>You can change these settings later.</Trans>
144144- </Description>
144144+ </DescriptionText>
145145146146 <OnboardingControls.Portal>
147147 <Button
···2424import {atoms as a, useBreakpoints, useTheme} from '#/alf'
2525import {Button, ButtonText} from '#/components/Button'
2626import {Divider} from '#/components/Divider'
2727-import {InlineLink} from '#/components/Link'
2727+import {InlineLinkText} from '#/components/Link'
2828import {Text} from '#/components/Typography'
29293030export function Signup({onPressBack}: {onPressBack: () => void}) {
···215215 <View style={[a.w_full, a.py_lg]}>
216216 <Text style={[t.atoms.text_contrast_medium]}>
217217 <Trans>Having trouble?</Trans>{' '}
218218- <InlineLink to={FEEDBACK_FORM_URL({email: state.email})}>
218218+ <InlineLinkText to={FEEDBACK_FORM_URL({email: state.email})}>
219219 <Trans>Contact support</Trans>
220220- </InlineLink>
220220+ </InlineLinkText>
221221 </Text>
222222 </View>
223223 </View>
+7-7
src/view/com/auth/SplashScreen.web.tsx
···1414import {atoms as a, useTheme} from '#/alf'
1515import {Button, ButtonText} from '#/components/Button'
1616import {ChevronBottom_Stroke2_Corner0_Rounded as ChevronDown} from '#/components/icons/Chevron'
1717-import {InlineLink} from '#/components/Link'
1717+import {InlineLinkText} from '#/components/Link'
1818import {Text} from '#/components/Typography'
1919import {CenteredView} from '../util/Views'
2020···162162 a.flex_1,
163163 t.atoms.border_contrast_medium,
164164 ]}>
165165- <InlineLink to="https://bsky.social">
165165+ <InlineLinkText to="https://bsky.social">
166166 <Trans>Business</Trans>
167167- </InlineLink>
168168- <InlineLink to="https://bsky.social/about/blog">
167167+ </InlineLinkText>
168168+ <InlineLinkText to="https://bsky.social/about/blog">
169169 <Trans>Blog</Trans>
170170- </InlineLink>
171171- <InlineLink to="https://bsky.social/about/join">
170170+ </InlineLinkText>
171171+ <InlineLinkText to="https://bsky.social/about/join">
172172 <Trans>Jobs</Trans>
173173- </InlineLink>
173173+ </InlineLinkText>
174174175175 <View style={a.flex_1} />
176176
+8-8
src/view/com/auth/server-input/index.tsx
···11import React from 'react'
22import {View} from 'react-native'
33+import {msg, Trans} from '@lingui/macro'
34import {useLingui} from '@lingui/react'
44-import {Trans, msg} from '@lingui/macro'
55-import {BSKY_SERVICE} from 'lib/constants'
55+66import * as persisted from '#/state/persisted'
77-77+import {BSKY_SERVICE} from 'lib/constants'
88import {atoms as a, useBreakpoints, useTheme} from '#/alf'
99-import * as Dialog from '#/components/Dialog'
1010-import {Text, P} from '#/components/Typography'
119import {Button, ButtonText} from '#/components/Button'
1212-import * as ToggleButton from '#/components/forms/ToggleButton'
1010+import * as Dialog from '#/components/Dialog'
1311import * as TextField from '#/components/forms/TextField'
1212+import * as ToggleButton from '#/components/forms/ToggleButton'
1413import {Globe_Stroke2_Corner0_Rounded as Globe} from '#/components/icons/Globe'
1414+import {P, Text} from '#/components/Typography'
15151616export function ServerInputDialog({
1717 control,
···106106 a.px_md,
107107 a.py_md,
108108 ]}>
109109- <TextField.Label nativeID="address-input-label">
109109+ <TextField.LabelText nativeID="address-input-label">
110110 <Trans>Server address</Trans>
111111- </TextField.Label>
111111+ </TextField.LabelText>
112112 <TextField.Root>
113113 <TextField.Icon icon={Globe} />
114114 <Dialog.Input
···11-import React, {useMemo, useCallback} from 'react'
22-import {StyleSheet, View, Pressable} from 'react-native'
11+import React, {useCallback, useMemo} from 'react'
22+import {Pressable, StyleSheet, View} from 'react-native'
33+import {msg, Trans} from '@lingui/macro'
44+import {useLingui} from '@lingui/react'
55+import {useIsFocused, useNavigation} from '@react-navigation/native'
36import {NativeStackScreenProps} from '@react-navigation/native-stack'
44-import {useIsFocused, useNavigation} from '@react-navigation/native'
57import {useQueryClient} from '@tanstack/react-query'
88+99+import {HITSLOP_20} from '#/lib/constants'
1010+import {logger} from '#/logger'
1111+import {isNative} from '#/platform/detection'
1212+import {listenSoftReset} from '#/state/events'
1313+import {FeedSourceFeedInfo, useFeedSourceInfoQuery} from '#/state/queries/feed'
1414+import {useLikeMutation, useUnlikeMutation} from '#/state/queries/like'
1515+import {FeedDescriptor} from '#/state/queries/post-feed'
1616+import {RQKEY as FEED_RQKEY} from '#/state/queries/post-feed'
1717+import {
1818+ usePinFeedMutation,
1919+ usePreferencesQuery,
2020+ UsePreferencesQueryResponse,
2121+ useRemoveFeedMutation,
2222+ useSaveFeedMutation,
2323+ useUnpinFeedMutation,
2424+} from '#/state/queries/preferences'
2525+import {useResolveUriQuery} from '#/state/queries/resolve-uri'
2626+import {truncateAndInvalidate} from '#/state/queries/util'
2727+import {useSession} from '#/state/session'
2828+import {useComposerControls} from '#/state/shell/composer'
2929+import {useAnalytics} from 'lib/analytics/analytics'
3030+import {Haptics} from 'lib/haptics'
631import {usePalette} from 'lib/hooks/usePalette'
3232+import {useSetTitle} from 'lib/hooks/useSetTitle'
3333+import {ComposeIcon2} from 'lib/icons'
3434+import {makeCustomFeedLink} from 'lib/routes/links'
735import {CommonNavigatorParams} from 'lib/routes/types'
3636+import {NavigationProp} from 'lib/routes/types'
3737+import {shareUrl} from 'lib/sharing'
3838+import {pluralize} from 'lib/strings/helpers'
839import {makeRecordUri} from 'lib/strings/url-helpers'
4040+import {toShareUrl} from 'lib/strings/url-helpers'
941import {s} from 'lib/styles'
1010-import {FeedDescriptor} from '#/state/queries/post-feed'
1142import {PagerWithHeader} from 'view/com/pager/PagerWithHeader'
1212-import {ProfileSubpageHeader} from 'view/com/profile/ProfileSubpageHeader'
1343import {Feed} from 'view/com/posts/Feed'
1414-import {InlineLink} from '#/components/Link'
1515-import {ListRef} from 'view/com/util/List'
4444+import {ProfileSubpageHeader} from 'view/com/profile/ProfileSubpageHeader'
4545+import {EmptyState} from 'view/com/util/EmptyState'
4646+import {FAB} from 'view/com/util/fab/FAB'
1647import {Button} from 'view/com/util/forms/Button'
1717-import {Text} from 'view/com/util/text/Text'
1818-import {RichText} from '#/components/RichText'
4848+import {ListRef} from 'view/com/util/List'
1949import {LoadLatestBtn} from 'view/com/util/load-latest/LoadLatestBtn'
2020-import {FAB} from 'view/com/util/fab/FAB'
2121-import {EmptyState} from 'view/com/util/EmptyState'
2250import {LoadingScreen} from 'view/com/util/LoadingScreen'
5151+import {Text} from 'view/com/util/text/Text'
2352import * as Toast from 'view/com/util/Toast'
2424-import {useSetTitle} from 'lib/hooks/useSetTitle'
2525-import {RQKEY as FEED_RQKEY} from '#/state/queries/post-feed'
2626-import {shareUrl} from 'lib/sharing'
2727-import {toShareUrl} from 'lib/strings/url-helpers'
2828-import {Haptics} from 'lib/haptics'
2929-import {useAnalytics} from 'lib/analytics/analytics'
3030-import {makeCustomFeedLink} from 'lib/routes/links'
3131-import {pluralize} from 'lib/strings/helpers'
3253import {CenteredView} from 'view/com/util/Views'
3333-import {NavigationProp} from 'lib/routes/types'
3434-import {ComposeIcon2} from 'lib/icons'
3535-import {logger} from '#/logger'
3636-import {Trans, msg} from '@lingui/macro'
3737-import {useLingui} from '@lingui/react'
3838-import {ReportDialog, useReportDialogControl} from '#/components/ReportDialog'
3939-import {useFeedSourceInfoQuery, FeedSourceFeedInfo} from '#/state/queries/feed'
4040-import {useResolveUriQuery} from '#/state/queries/resolve-uri'
4141-import {
4242- UsePreferencesQueryResponse,
4343- usePreferencesQuery,
4444- useSaveFeedMutation,
4545- useRemoveFeedMutation,
4646- usePinFeedMutation,
4747- useUnpinFeedMutation,
4848-} from '#/state/queries/preferences'
4949-import {useSession} from '#/state/session'
5050-import {useLikeMutation, useUnlikeMutation} from '#/state/queries/like'
5151-import {useComposerControls} from '#/state/shell/composer'
5252-import {truncateAndInvalidate} from '#/state/queries/util'
5353-import {isNative} from '#/platform/detection'
5454-import {listenSoftReset} from '#/state/events'
5554import {atoms as a, useTheme} from '#/alf'
5656-import * as Menu from '#/components/Menu'
5757-import {HITSLOP_20} from '#/lib/constants'
5858-import {DotGrid_Stroke2_Corner0_Rounded as Ellipsis} from '#/components/icons/DotGrid'
5959-import {Trash_Stroke2_Corner0_Rounded as Trash} from '#/components/icons/Trash'
6060-import {PlusLarge_Stroke2_Corner0_Rounded as Plus} from '#/components/icons/Plus'
6161-import {CircleInfo_Stroke2_Corner0_Rounded as CircleInfo} from '#/components/icons/CircleInfo'
5555+import {Button as NewButton, ButtonText} from '#/components/Button'
6256import {ArrowOutOfBox_Stroke2_Corner0_Rounded as Share} from '#/components/icons/ArrowOutOfBox'
5757+import {CircleInfo_Stroke2_Corner0_Rounded as CircleInfo} from '#/components/icons/CircleInfo'
5858+import {DotGrid_Stroke2_Corner0_Rounded as Ellipsis} from '#/components/icons/DotGrid'
6359import {
6464- Heart2_Stroke2_Corner0_Rounded as HeartOutline,
6560 Heart2_Filled_Stroke2_Corner0_Rounded as HeartFilled,
6161+ Heart2_Stroke2_Corner0_Rounded as HeartOutline,
6662} from '#/components/icons/Heart2'
6767-import {Button as NewButton, ButtonText} from '#/components/Button'
6363+import {PlusLarge_Stroke2_Corner0_Rounded as Plus} from '#/components/icons/Plus'
6464+import {Trash_Stroke2_Corner0_Rounded as Trash} from '#/components/icons/Trash'
6565+import {InlineLinkText} from '#/components/Link'
6666+import * as Menu from '#/components/Menu'
6767+import {ReportDialog, useReportDialogControl} from '#/components/ReportDialog'
6868+import {RichText} from '#/components/RichText'
68696970const SECTION_TITLES = ['Posts']
7071···580581 )}
581582 </NewButton>
582583 {typeof likeCount === 'number' && (
583583- <InlineLink
584584+ <InlineLinkText
584585 label={_(msg`View users who like this feed`)}
585586 to={makeCustomFeedLink(feedOwnerDid, feedRkey, 'liked-by')}
586587 style={[t.atoms.text_contrast_medium, a.font_bold]}>
587588 {_(msg`Liked by ${likeCount} ${pluralize(likeCount, 'user')}`)}
588588- </InlineLink>
589589+ </InlineLinkText>
589590 )}
590591 </View>
591592 </View>
+7-7
src/view/screens/Settings/ExportCarDialog.tsx
···11import React from 'react'
22import {View} from 'react-native'
33+import {msg, Trans} from '@lingui/macro'
34import {useLingui} from '@lingui/react'
44-import {Trans, msg} from '@lingui/macro'
5566+import {getAgent, useSession} from '#/state/session'
67import {atoms as a, useBreakpoints, useTheme} from '#/alf'
77-import * as Dialog from '#/components/Dialog'
88-import {Text, P} from '#/components/Typography'
98import {Button, ButtonText} from '#/components/Button'
1010-import {InlineLink, Link} from '#/components/Link'
1111-import {getAgent, useSession} from '#/state/session'
99+import * as Dialog from '#/components/Dialog'
1010+import {InlineLinkText, Link} from '#/components/Link'
1111+import {P, Text} from '#/components/Typography'
12121313export function ExportCarDialog({
1414 control,
···7575 <Trans>
7676 This feature is in beta. You can read more about repository
7777 exports in{' '}
7878- <InlineLink
7878+ <InlineLinkText
7979 to="https://docs.bsky.app/blog/repo-export"
8080 style={[a.text_sm]}>
8181 this blogpost
8282- </InlineLink>
8282+ </InlineLinkText>
8383 .
8484 </Trans>
8585 </P>
+5-5
src/view/screens/Storybook/Dialogs.tsx
···11import React from 'react'
22import {View} from 'react-native'
3344+import {useDialogStateControlContext} from '#/state/dialogs'
45import {atoms as a} from '#/alf'
56import {Button} from '#/components/Button'
66-import {H3, P} from '#/components/Typography'
77import * as Dialog from '#/components/Dialog'
88import * as Prompt from '#/components/Prompt'
99-import {useDialogStateControlContext} from '#/state/dialogs'
99+import {H3, P} from '#/components/Typography'
10101111export function Dialogs() {
1212 const scrollable = Dialog.useDialogControl()
···6161 </Button>
62626363 <Prompt.Outer control={prompt}>
6464- <Prompt.Title>This is a prompt</Prompt.Title>
6565- <Prompt.Description>
6464+ <Prompt.TitleText>This is a prompt</Prompt.TitleText>
6565+ <Prompt.DescriptionText>
6666 This is a generic prompt component. It accepts a title and a
6767 description, as well as two actions.
6868- </Prompt.Description>
6868+ </Prompt.DescriptionText>
6969 <Prompt.Actions>
7070 <Prompt.Cancel>Cancel</Prompt.Cancel>
7171 <Prompt.Action onPress={() => {}}>Confirm</Prompt.Action>