@hzblj/kara-components 0.27.2 → 0.28.0

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 (33) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/lib/module/organisms/header/header-title.js +9 -4
  3. package/lib/module/organisms/header/header-title.js.map +1 -1
  4. package/lib/module/organisms/header/native-inline-large-title.android.js +4 -0
  5. package/lib/module/organisms/header/native-inline-large-title.android.js.map +1 -0
  6. package/lib/module/organisms/header/native-inline-large-title.ios.js +7 -0
  7. package/lib/module/organisms/header/native-inline-large-title.ios.js.map +1 -0
  8. package/lib/module/organisms/header/native-inline-large-title.types.js +4 -0
  9. package/lib/module/organisms/header/native-inline-large-title.types.js.map +1 -0
  10. package/lib/module/organisms/header/use-header-scroll-to-top.js +1 -1
  11. package/lib/module/organisms/header/use-header-scroll-to-top.js.map +1 -1
  12. package/lib/module/organisms/header/use-header.js +8 -5
  13. package/lib/module/organisms/header/use-header.js.map +1 -1
  14. package/lib/module/organisms/header/use-hero-header.js +1 -0
  15. package/lib/module/organisms/header/use-hero-header.js.map +1 -1
  16. package/lib/module/organisms/header/use-stack-screen-options.js +1 -1
  17. package/lib/typescript/organisms/header/header-title.d.ts +6 -4
  18. package/lib/typescript/organisms/header/header.types.d.ts +13 -4
  19. package/lib/typescript/organisms/header/native-inline-large-title.d.ts +1 -0
  20. package/lib/typescript/organisms/header/native-inline-large-title.ios.d.ts +3 -0
  21. package/lib/typescript/organisms/header/native-inline-large-title.types.d.ts +2 -0
  22. package/lib/typescript/organisms/header/use-header.d.ts +3 -3
  23. package/lib/typescript/organisms/header/use-stack-screen-options.d.ts +1 -1
  24. package/package.json +4 -4
  25. package/src/organisms/header/header-title.tsx +12 -6
  26. package/src/organisms/header/header.types.ts +13 -4
  27. package/src/organisms/header/native-inline-large-title.android.tsx +3 -0
  28. package/src/organisms/header/native-inline-large-title.ios.tsx +6 -0
  29. package/src/organisms/header/native-inline-large-title.types.ts +3 -0
  30. package/src/organisms/header/use-header-scroll-to-top.ts +1 -1
  31. package/src/organisms/header/use-header.ts +15 -7
  32. package/src/organisms/header/use-hero-header.tsx +1 -0
  33. package/src/organisms/header/use-stack-screen-options.ts +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # @hzblj/kara-components
2
2
 
3
+ ## 0.28.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#99](https://github.com/hzblj/kara-ui/pull/99) [`2323d8e`](https://github.com/hzblj/kara-ui/commit/2323d8e4df8f60bc18555a32a2ae6c8c59c258d8) Thanks [@hzblj](https://github.com/hzblj)! - `largeTitle: 'inline'` on `useHeader` and `useHeaderOptions` puts the large title on the leading side of the bar row, next to the actions, as the Apple TV app's tabs have it (iOS 17), instead of in a row of its own under the bar. Render the result's new `inlineLargeTitle` after the list. Android shows the bar's plain title. The view behind it is `InlineLargeTitle` in `@hzblj/kara-native/swift-ui`, and `useHeaderScrollToTop` takes the same `largeTitle` value.
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies [[`2323d8e`](https://github.com/hzblj/kara-ui/commit/2323d8e4df8f60bc18555a32a2ae6c8c59c258d8), [`eb223d7`](https://github.com/hzblj/kara-ui/commit/eb223d7d831715c4f08b14898d9883fe7f1195d8), [`4f723ab`](https://github.com/hzblj/kara-ui/commit/4f723ab183fcef56641dd76c42937cb01447b6e4)]:
12
+ - @hzblj/kara-native@0.28.0
13
+ - @hzblj/kara-sx@0.28.0
14
+ - @hzblj/kara-theme@0.28.0
15
+
3
16
  ## 0.27.2
4
17
 
5
18
  ### Patch Changes
@@ -5,6 +5,7 @@ import { Platform, StyleSheet, useWindowDimensions, View } from 'react-native';
5
5
  import Animated, { Extrapolation, interpolate, useAnimatedReaction, useAnimatedStyle, useDerivedValue, useSharedValue } from 'react-native-reanimated';
6
6
  import { scheduleOnRN } from 'react-native-worklets';
7
7
  import { RnText } from "../../atoms/rn-text/index.js";
8
+ import { NativeInlineLargeTitle } from './native-inline-large-title';
8
9
  import { hasNativeSubtitle, NativeSubtitle } from './native-subtitle';
9
10
 
10
11
  /** Past half, a revealed title counts as shown: the native title and subtitle switch then. */
@@ -139,10 +140,12 @@ const CollapsingTitle = ({
139
140
  })
140
141
  });
141
142
  };
143
+ const INLINE_LARGE_TITLE = /*#__PURE__*/_jsx(NativeInlineLargeTitle, {});
142
144
  /**
143
- * The title half of a header: the options that show the title (centred, leading with a subtitle, revealed on scroll or
144
- * large), plus on Android the large title row and the scroll worklet that collapses it into the bar, as Material's large
145
- * top app bar does. iOS needs neither: the large title is UIKit's own.
145
+ * The title half of a header: the options that show the title (centred, leading with a subtitle, revealed on scroll,
146
+ * large or inline large), plus on Android the large title row and the scroll worklet that collapses it into the bar, as
147
+ * Material's large top app bar does. iOS needs neither: the large title is UIKit's own, and an inline one only needs
148
+ * the view that keeps it in the bar row.
146
149
  */
147
150
  export const useHeaderTitle = ({
148
151
  largeTitle,
@@ -164,7 +167,7 @@ export const useHeaderTitle = ({
164
167
  const options = useMemo(() => {
165
168
  const titleOptions = {};
166
169
  if (largeTitle !== undefined) {
167
- titleOptions.headerLargeTitleEnabled = Platform.OS === 'ios' && largeTitle;
170
+ titleOptions.headerLargeTitleEnabled = Platform.OS === 'ios' && largeTitle !== false;
168
171
  }
169
172
  if (title === undefined) {
170
173
  return titleOptions;
@@ -222,7 +225,9 @@ export const useHeaderTitle = ({
222
225
  height: largeTitleHeight,
223
226
  title: title
224
227
  }) : null, [isAndroidLargeTitle, largeTitleHeight, title]);
228
+ const inlineLargeTitle = largeTitle === 'inline' ? INLINE_LARGE_TITLE : null;
225
229
  return {
230
+ inlineLargeTitle,
226
231
  largeTitle: largeTitleRow,
227
232
  onScroll,
228
233
  options,
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useMemo","useState","Platform","StyleSheet","useWindowDimensions","View","Animated","Extrapolation","interpolate","useAnimatedReaction","useAnimatedStyle","useDerivedValue","useSharedValue","scheduleOnRN","RnText","hasNativeSubtitle","NativeSubtitle","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","REVEALED_THRESHOLD","LEADING_TITLE_RESERVED_WIDTH","styles","create","largeTitle","paddingHorizontal","paddingVertical","leadingTitleAndroid","paddingStart","paddingTop","leadingTitleIos","flexShrink","shrink","useIsTitleRevealed","progress","revealed","setRevealed","undefined","value","isRevealed","wasRevealed","Reveal","children","animatedStyle","opacity","style","BarTitle","title","accessibilityRole","allowFontScaling","numberOfLines","variant","LeadingTitle","subtitle","width","content","color","OS","maxWidth","LargeTitle","height","onLayout","event","nativeEvent","layout","CollapsingTitle","scrollY","CLAMP","useHeaderTitle","titleHidden","titleRevealProgress","titleTransition","largeTitleHeight","isAndroidLargeTitle","onScroll","offsetY","options","titleOptions","headerLargeTitleEnabled","headerTitle","shownTitle","headerBackground","subtitleHidden","transition","leadingTitle","largeTitleRow"],"sourceRoot":"../../../../src","sources":["organisms/header/header-title.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useMemo","useState","Platform","StyleSheet","useWindowDimensions","View","Animated","Extrapolation","interpolate","useAnimatedReaction","useAnimatedStyle","useDerivedValue","useSharedValue","scheduleOnRN","RnText","NativeInlineLargeTitle","hasNativeSubtitle","NativeSubtitle","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","REVEALED_THRESHOLD","LEADING_TITLE_RESERVED_WIDTH","styles","create","largeTitle","paddingHorizontal","paddingVertical","leadingTitleAndroid","paddingStart","paddingTop","leadingTitleIos","flexShrink","shrink","useIsTitleRevealed","progress","revealed","setRevealed","undefined","value","isRevealed","wasRevealed","Reveal","children","animatedStyle","opacity","style","BarTitle","title","accessibilityRole","allowFontScaling","numberOfLines","variant","LeadingTitle","subtitle","width","content","color","OS","maxWidth","LargeTitle","height","onLayout","event","nativeEvent","layout","CollapsingTitle","scrollY","CLAMP","INLINE_LARGE_TITLE","useHeaderTitle","titleHidden","titleRevealProgress","titleTransition","largeTitleHeight","isAndroidLargeTitle","onScroll","offsetY","options","titleOptions","headerLargeTitleEnabled","headerTitle","shownTitle","headerBackground","subtitleHidden","transition","leadingTitle","largeTitleRow","inlineLargeTitle"],"sourceRoot":"../../../../src","sources":["organisms/header/header-title.tsx"],"mappings":";;AACA,SAAwBA,WAAW,EAAEC,OAAO,EAAEC,QAAQ,QAAO,OAAO;AACpE,SAAgCC,QAAQ,EAAEC,UAAU,EAAEC,mBAAmB,EAAEC,IAAI,QAAO,cAAc;AACpG,OAAOC,QAAQ,IACbC,aAAa,EACbC,WAAW,EAEXC,mBAAmB,EACnBC,gBAAgB,EAChBC,eAAe,EACfC,cAAc,QACT,yBAAyB;AAChC,SAAQC,YAAY,QAAO,uBAAuB;AAElD,SAAQC,MAAM,QAAO,8BAAqB;AAE1C,SAAQC,sBAAsB,QAAO,6BAA6B;AAClE,SAAQC,iBAAiB,EAAEC,cAAc,QAAO,mBAAmB;;AAEnE;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AACA,MAAMC,kBAAkB,GAAG,GAAG;;AAE9B;AACA,MAAMC,4BAA4B,GAAG,GAAG;AAExC,MAAMC,MAAM,GAAGvB,UAAU,CAACwB,MAAM,CAAC;EAC/BC,UAAU,EAAE;IAACC,iBAAiB,EAAE,EAAE;IAAEC,eAAe,EAAE;EAAC,CAAC;EACvDC,mBAAmB,EAAE;IAACC,YAAY,EAAE,CAAC;IAAEC,UAAU,EAAE;EAAC,CAAC;EACrDC,eAAe,EAAE;IAACC,UAAU,EAAE,CAAC;IAAEF,UAAU,EAAE;EAAC,CAAC;EAC/CG,MAAM,EAAE;IAACD,UAAU,EAAE;EAAC;AACxB,CAAC,CAAC;AAEF,OAAO,MAAME,kBAAkB,GAAIC,QAA8B,IAAK;EACpE,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAGvC,QAAQ,CAAC,MAAMqC,QAAQ,KAAKG,SAAS,IAAIH,QAAQ,CAACI,KAAK,GAAGlB,kBAAkB,CAAC;EAE7Gf,mBAAmB,CACjB,MAAM6B,QAAQ,KAAKG,SAAS,IAAIH,QAAQ,CAACI,KAAK,GAAGlB,kBAAkB,EACnE,CAACmB,UAAU,EAAEC,WAAW,KAAK;IAC3B,IAAID,UAAU,KAAKC,WAAW,EAAE;MAC9B/B,YAAY,CAAC2B,WAAW,EAAEG,UAAU,CAAC;IACvC;EACF,CACF,CAAC;EAED,OAAOJ,QAAQ;AACjB,CAAC;AAED,MAAMM,MAAM,GAAGA,CAAC;EAACC,QAAQ;EAAER;AAA8D,CAAC,KAAK;EAC7F,MAAMS,aAAa,GAAGrC,gBAAgB,CAAC,OAAO;IAACsC,OAAO,EAAEV,QAAQ,CAACI;EAAK,CAAC,CAAC,CAAC;EAEzE,oBAAOvB,IAAA,CAACb,QAAQ,CAACD,IAAI;IAAC4C,KAAK,EAAE,CAACvB,MAAM,CAACU,MAAM,EAAEW,aAAa,CAAE;IAAAD,QAAA,EAAEA;EAAQ,CAAgB,CAAC;AACzF,CAAC;AAED,MAAMI,QAAQ,GAAGA,CAAC;EAACC;AAAsB,CAAC,kBACxChC,IAAA,CAACL,MAAM;EAACsC,iBAAiB,EAAC,QAAQ;EAACC,gBAAgB,EAAE,KAAM;EAACC,aAAa,EAAE,CAAE;EAACC,OAAO,EAAC,UAAU;EAAAT,QAAA,EAC7FK;AAAK,CACA,CACT;AAED,MAAMK,YAAY,GAAGA,CAAC;EAACC,QAAQ;EAAEN;AAAwC,CAAC,KAAK;EAC7E,MAAM;IAACO;EAAK,CAAC,GAAGtD,mBAAmB,CAAC,CAAC;EACrC,MAAMuD,OAAO,gBACXpC,KAAA,CAAAF,SAAA;IAAAyB,QAAA,gBACE3B,IAAA,CAACL,MAAM;MAACsC,iBAAiB,EAAC,QAAQ;MAACC,gBAAgB,EAAE,KAAM;MAACC,aAAa,EAAE,CAAE;MAACC,OAAO,EAAC,mBAAmB;MAAAT,QAAA,EACtGK;IAAK,CACA,CAAC,eACThC,IAAA,CAACL,MAAM;MAACuC,gBAAgB,EAAE,KAAM;MAACO,KAAK,EAAC,mBAAmB;MAACN,aAAa,EAAE,CAAE;MAACC,OAAO,EAAC,OAAO;MAAAT,QAAA,EACzFW;IAAQ,CACH,CAAC;EAAA,CACT,CACH;EAED,IAAIvD,QAAQ,CAAC2D,EAAE,KAAK,KAAK,EAAE;IACzB,oBACE1C,IAAA,CAACd,IAAI;MAAC4C,KAAK,EAAE,CAACvB,MAAM,CAACQ,eAAe,EAAE;QAACwB;MAAK,CAAC,CAAE;MAAAZ,QAAA,eAC7C3B,IAAA,CAACd,IAAI;QAAC4C,KAAK,EAAE;UAACa,QAAQ,EAAEJ,KAAK,GAAGjC;QAA4B,CAAE;QAAAqB,QAAA,EAAEa;MAAO,CAAO;IAAC,CAC3E,CAAC;EAEX;EAEA,oBAAOxC,IAAA,CAACd,IAAI;IAAC4C,KAAK,EAAE,CAACvB,MAAM,CAACK,mBAAmB,EAAE;MAAC+B,QAAQ,EAAEJ,KAAK,GAAGjC;IAA4B,CAAC,CAAE;IAAAqB,QAAA,EAAEa;EAAO,CAAO,CAAC;AACtH,CAAC;AAED,MAAMI,UAAU,GAAGA,CAAC;EAACC,MAAM;EAAEb;AAAmD,CAAC,KAAK;EACpF,MAAMc,QAAQ,GAAGlE,WAAW,CACzBmE,KAAwB,IAAK;IAC5BF,MAAM,CAACtB,KAAK,GAAGwB,KAAK,CAACC,WAAW,CAACC,MAAM,CAACJ,MAAM;EAChD,CAAC,EACD,CAACA,MAAM,CACT,CAAC;EAED,oBACE7C,IAAA,CAACd,IAAI;IAAC4D,QAAQ,EAAEA,QAAS;IAAChB,KAAK,EAAEvB,MAAM,CAACE,UAAW;IAAAkB,QAAA,eACjD3B,IAAA,CAACL,MAAM;MAACsC,iBAAiB,EAAC,QAAQ;MAACC,gBAAgB,EAAE,KAAM;MAACC,aAAa,EAAE,CAAE;MAACC,OAAO,EAAC,UAAU;MAAAT,QAAA,EAC7FK;IAAK,CACA;EAAC,CACL,CAAC;AAEX,CAAC;AAED,MAAMkB,eAAe,GAAGA,CAAC;EACvBL,MAAM;EACNM,OAAO;EACPnB;AAKF,CAAC,KAAK;EACJ,MAAMb,QAAQ,GAAG3B,eAAe,CAAC,MAAM;IACrC,IAAIqD,MAAM,CAACtB,KAAK,KAAK,CAAC,EAAE;MACtB,OAAO,CAAC;IACV;IAEA,OAAOlC,WAAW,CAAC8D,OAAO,CAAC5B,KAAK,EAAE,CAACsB,MAAM,CAACtB,KAAK,GAAG,CAAC,EAAEsB,MAAM,CAACtB,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAEnC,aAAa,CAACgE,KAAK,CAAC;EAClG,CAAC,CAAC;EAEF,oBACEpD,IAAA,CAAC0B,MAAM;IAACP,QAAQ,EAAEA,QAAS;IAAAQ,QAAA,eACzB3B,IAAA,CAAC+B,QAAQ;MAACC,KAAK,EAAEA;IAAM,CAAE;EAAC,CACpB,CAAC;AAEb,CAAC;AAED,MAAMqB,kBAAkB,gBAAGrD,IAAA,CAACJ,sBAAsB,IAAE,CAAC;AAWrD;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAM0D,cAAc,GAAGA,CAAC;EAC7B7C,UAAU;EACV6B,QAAQ;EACRN,KAAK;EACLuB,WAAW;EACXC,mBAAmB;EACnBC;AACW,CAAC,KAAK;EACjB,MAAMN,OAAO,GAAG1D,cAAc,CAAC,CAAC,CAAC;EACjC,MAAMiE,gBAAgB,GAAGjE,cAAc,CAAC,CAAC,CAAC;EAC1C,MAAM2B,QAAQ,GAAGF,kBAAkB,CAACsC,mBAAmB,CAAC;EACxD,MAAMG,mBAAmB,GAAG5E,QAAQ,CAAC2D,EAAE,KAAK,SAAS,IAAIjC,UAAU,KAAK,IAAI,IAAI,CAAC,CAACuB,KAAK;EAEvF,MAAM4B,QAAQ,GAAGhF,WAAW,CACzBiF,OAAe,IAAK;IACnB,SAAS;;IACTV,OAAO,CAAC5B,KAAK,GAAGsC,OAAO;EACzB,CAAC,EACD,CAACV,OAAO,CACV,CAAC;EAED,MAAMW,OAAO,GAAGjF,OAAO,CAAC,MAAqB;IAC3C,MAAMkF,YAA2B,GAAG,CAAC,CAAC;IAEtC,IAAItD,UAAU,KAAKa,SAAS,EAAE;MAC5ByC,YAAY,CAACC,uBAAuB,GAAGjF,QAAQ,CAAC2D,EAAE,KAAK,KAAK,IAAIjC,UAAU,KAAK,KAAK;IACtF;IAEA,IAAIuB,KAAK,KAAKV,SAAS,EAAE;MACvB,OAAOyC,YAAY;IACrB;IAEAA,YAAY,CAAC/B,KAAK,GAAGA,KAAK;IAE1B,IAAIuB,WAAW,EAAE;MACfQ,YAAY,CAACE,WAAW,GAAG,EAAE;MAC7B,OAAOF,YAAY;IACrB;IAEA,IAAIzB,QAAQ,KAAKhB,SAAS,IAAIzB,iBAAiB,EAAE;MAC/C,MAAMqE,UAAU,GAAG9C,QAAQ,GAAGY,KAAK,GAAG,EAAE;;MAExC;MACA+B,YAAY,CAACI,gBAAgB,GAAG,mBAC9BnE,IAAA,CAACF,cAAc;QAACwC,QAAQ,EAAEA,QAAS;QAAC8B,cAAc,EAAE,CAAChD,QAAS;QAACiD,UAAU,EAAEZ;MAAgB,CAAE,CAC9F;MACDM,YAAY,CAACE,WAAW,GAAGC,UAAU;MACrCH,YAAY,CAAC/B,KAAK,GAAGkC,UAAU;MAC/B,OAAOH,YAAY;IACrB;IAEA,IAAIzB,QAAQ,KAAKhB,SAAS,EAAE;MAC1B,MAAMgD,YAAY,gBAAGtE,IAAA,CAACqC,YAAY;QAACC,QAAQ,EAAEA,QAAS;QAACN,KAAK,EAAEA;MAAM,CAAE,CAAC;MAEvE+B,YAAY,CAACE,WAAW,GAAG,MACzBT,mBAAmB,gBAAGxD,IAAA,CAAC0B,MAAM;QAACP,QAAQ,EAAEqC,mBAAoB;QAAA7B,QAAA,EAAE2C;MAAY,CAAS,CAAC,GAAGA,YAAY;MACrG,OAAOP,YAAY;IACrB;IAEA,IAAIP,mBAAmB,EAAE;MACvBO,YAAY,CAACE,WAAW,GAAG,mBACzBjE,IAAA,CAAC0B,MAAM;QAACP,QAAQ,EAAEqC,mBAAoB;QAAA7B,QAAA,eACpC3B,IAAA,CAAC+B,QAAQ;UAACC,KAAK,EAAEA;QAAM,CAAE;MAAC,CACpB,CACT;MACD,OAAO+B,YAAY;IACrB;IAEA,IAAIJ,mBAAmB,EAAE;MACvBI,YAAY,CAACE,WAAW,GAAG,mBAAMjE,IAAA,CAACkD,eAAe;QAACL,MAAM,EAAEa,gBAAiB;QAACP,OAAO,EAAEA,OAAQ;QAACnB,KAAK,EAAEA;MAAM,CAAE,CAAC;MAC9G,OAAO+B,YAAY;IACrB;IAEAA,YAAY,CAACE,WAAW,GAAGjC,KAAK;IAChC,OAAO+B,YAAY;EACrB,CAAC,EAAE,CACDJ,mBAAmB,EACnBlD,UAAU,EACViD,gBAAgB,EAChBtC,QAAQ,EACR+B,OAAO,EACPb,QAAQ,EACRN,KAAK,EACLuB,WAAW,EACXC,mBAAmB,EACnBC,eAAe,CAChB,CAAC;EAEF,MAAMc,aAAa,GAAG1F,OAAO,CAC3B,MAAO8E,mBAAmB,IAAI3B,KAAK,gBAAGhC,IAAA,CAAC4C,UAAU;IAACC,MAAM,EAAEa,gBAAiB;IAAC1B,KAAK,EAAEA;EAAM,CAAE,CAAC,GAAG,IAAK,EACpG,CAAC2B,mBAAmB,EAAED,gBAAgB,EAAE1B,KAAK,CAC/C,CAAC;EAED,MAAMwC,gBAAgB,GAAG/D,UAAU,KAAK,QAAQ,GAAG4C,kBAAkB,GAAG,IAAI;EAE5E,OAAO;IAACmB,gBAAgB;IAAE/D,UAAU,EAAE8D,aAAa;IAAEX,QAAQ;IAAEE,OAAO;IAAE1C;EAAQ,CAAC;AACnF,CAAC","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export const NativeInlineLargeTitle = () => null;
4
+ //# sourceMappingURL=native-inline-large-title.android.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["NativeInlineLargeTitle"],"sourceRoot":"../../../../src","sources":["organisms/header/native-inline-large-title.android.tsx"],"mappings":";;AAEA,OAAO,MAAMA,sBAAuD,GAAGA,CAAA,KAAM,IAAI","ignoreList":[]}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+
3
+ import { InlineLargeTitle } from '@hzblj/kara-native/swift-ui';
4
+ import { jsx as _jsx } from "react/jsx-runtime";
5
+ /** iOS 17 keeps the large title in the bar row, next to the bar items (`LargeTitleDisplayMode.inline`). */
6
+ export const NativeInlineLargeTitle = () => /*#__PURE__*/_jsx(InlineLargeTitle, {});
7
+ //# sourceMappingURL=native-inline-large-title.ios.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["InlineLargeTitle","jsx","_jsx","NativeInlineLargeTitle"],"sourceRoot":"../../../../src","sources":["organisms/header/native-inline-large-title.ios.tsx"],"mappings":";;AAAA,SAAQA,gBAAgB,QAAO,6BAA6B;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAI5D;AACA,OAAO,MAAMC,sBAAuD,GAAGA,CAAA,kBAAMD,IAAA,CAACF,gBAAgB,IAAE,CAAC","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=native-inline-large-title.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["organisms/header/native-inline-large-title.types.ts"],"mappings":"","ignoreList":[]}
@@ -37,7 +37,7 @@ export const useHeaderScrollToTop = (ref, {
37
37
  topInset = 0
38
38
  } = {}) => {
39
39
  const barInset = useHeaderBarInset();
40
- const offset = Platform.OS === 'ios' ? -(barInset + (largeTitle ? LARGE_TITLE_HEIGHT : 0) + topInset) : 0;
40
+ const offset = Platform.OS === 'ios' ? -(barInset + (largeTitle === true ? LARGE_TITLE_HEIGHT : 0) + topInset) : 0;
41
41
  return useMemo(() => ({
42
42
  current: {
43
43
  scrollToTop: () => {
@@ -1 +1 @@
1
- {"version":3,"names":["useMemo","Platform","useHeaderBarInset","LARGE_TITLE_HEIGHT","scrollToOffset","target","offset","animated","scrollTo","y","getScrollResponder","useHeaderScrollToTop","ref","largeTitle","topInset","barInset","OS","current","scrollToTop"],"sourceRoot":"../../../../src","sources":["organisms/header/use-header-scroll-to-top.ts"],"mappings":";;AAAA,SAAwBA,OAAO,QAAO,OAAO;AAC7C,SAAQC,QAAQ,QAAO,cAAc;AAGrC,SAAQC,iBAAiB,QAAO,wBAAwB;;AAExD;AACA,MAAMC,kBAAkB,GAAG,EAAE;AAE7B,MAAMC,cAAc,GAAGA,CAACC,MAAwB,EAAEC,MAAc,KAAK;EACnE,IAAI,gBAAgB,IAAID,MAAM,EAAE;IAC9BA,MAAM,CAACD,cAAc,CAAC;MAACG,QAAQ,EAAE,IAAI;MAAED;IAAM,CAAC,CAAC;IAC/C;EACF;EAEA,IAAI,UAAU,IAAID,MAAM,EAAE;IACxBA,MAAM,CAACG,QAAQ,CAAC;MAACD,QAAQ,EAAE,IAAI;MAAEE,CAAC,EAAEH;IAAM,CAAC,CAAC;IAC5C;EACF;EAEAD,MAAM,CAACK,kBAAkB,CAAC,CAAC,EAAEF,QAAQ,CAAC;IAACD,QAAQ,EAAE,IAAI;IAAEE,CAAC,EAAEH;EAAM,CAAC,CAAC;AACpE,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMK,oBAAoB,GAAGA,CAClCC,GAAuC,EACvC;EAACC,UAAU,GAAG,KAAK;EAAEC,QAAQ,GAAG;AAA2B,CAAC,GAAG,CAAC,CAAC,KACxC;EACzB,MAAMC,QAAQ,GAAGb,iBAAiB,CAAC,CAAC;EACpC,MAAMI,MAAM,GAAGL,QAAQ,CAACe,EAAE,KAAK,KAAK,GAAG,EAAED,QAAQ,IAAIF,UAAU,GAAGV,kBAAkB,GAAG,CAAC,CAAC,GAAGW,QAAQ,CAAC,GAAG,CAAC;EAEzG,OAAOd,OAAO,CACZ,OAAO;IACLiB,OAAO,EAAE;MACPC,WAAW,EAAEA,CAAA,KAAM;QACjB,IAAIN,GAAG,CAACK,OAAO,EAAE;UACfb,cAAc,CAACQ,GAAG,CAACK,OAAO,EAAEX,MAAM,CAAC;QACrC;MACF;IACF;EACF,CAAC,CAAC,EACF,CAACA,MAAM,EAAEM,GAAG,CACd,CAAC;AACH,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useMemo","Platform","useHeaderBarInset","LARGE_TITLE_HEIGHT","scrollToOffset","target","offset","animated","scrollTo","y","getScrollResponder","useHeaderScrollToTop","ref","largeTitle","topInset","barInset","OS","current","scrollToTop"],"sourceRoot":"../../../../src","sources":["organisms/header/use-header-scroll-to-top.ts"],"mappings":";;AAAA,SAAwBA,OAAO,QAAO,OAAO;AAC7C,SAAQC,QAAQ,QAAO,cAAc;AAGrC,SAAQC,iBAAiB,QAAO,wBAAwB;;AAExD;AACA,MAAMC,kBAAkB,GAAG,EAAE;AAE7B,MAAMC,cAAc,GAAGA,CAACC,MAAwB,EAAEC,MAAc,KAAK;EACnE,IAAI,gBAAgB,IAAID,MAAM,EAAE;IAC9BA,MAAM,CAACD,cAAc,CAAC;MAACG,QAAQ,EAAE,IAAI;MAAED;IAAM,CAAC,CAAC;IAC/C;EACF;EAEA,IAAI,UAAU,IAAID,MAAM,EAAE;IACxBA,MAAM,CAACG,QAAQ,CAAC;MAACD,QAAQ,EAAE,IAAI;MAAEE,CAAC,EAAEH;IAAM,CAAC,CAAC;IAC5C;EACF;EAEAD,MAAM,CAACK,kBAAkB,CAAC,CAAC,EAAEF,QAAQ,CAAC;IAACD,QAAQ,EAAE,IAAI;IAAEE,CAAC,EAAEH;EAAM,CAAC,CAAC;AACpE,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMK,oBAAoB,GAAGA,CAClCC,GAAuC,EACvC;EAACC,UAAU,GAAG,KAAK;EAAEC,QAAQ,GAAG;AAA2B,CAAC,GAAG,CAAC,CAAC,KACxC;EACzB,MAAMC,QAAQ,GAAGb,iBAAiB,CAAC,CAAC;EACpC,MAAMI,MAAM,GAAGL,QAAQ,CAACe,EAAE,KAAK,KAAK,GAAG,EAAED,QAAQ,IAAIF,UAAU,KAAK,IAAI,GAAGV,kBAAkB,GAAG,CAAC,CAAC,GAAGW,QAAQ,CAAC,GAAG,CAAC;EAElH,OAAOd,OAAO,CACZ,OAAO;IACLiB,OAAO,EAAE;MACPC,WAAW,EAAEA,CAAA,KAAM;QACjB,IAAIN,GAAG,CAACK,OAAO,EAAE;UACfb,cAAc,CAACQ,GAAG,CAACK,OAAO,EAAEX,MAAM,CAAC;QACrC;MACF;IACF;EACF,CAAC,CAAC,EACF,CAACA,MAAM,EAAEM,GAAG,CACd,CAAC;AACH,CAAC","ignoreList":[]}
@@ -7,9 +7,9 @@ import { useHeaderTitle } from "./header-title.js";
7
7
 
8
8
  /**
9
9
  * A screen's header as native-stack options, with what its list needs alongside: the title (centred, leading with a
10
- * subtitle, revealed on scroll or large), the actions on both sides (the navigation bar's own items on iOS, Material
11
- * buttons on Android) and a search field. Spread `options` into Expo Router's `<Stack.Screen options>` or a React
12
- * Navigation screen's `options`. Memoize the action arrays: new arrays build new options on every render.
10
+ * subtitle, revealed on scroll, large or inline large), the actions on both sides (the navigation bar's own items on
11
+ * iOS, Material buttons on Android) and a search field. Spread `options` into Expo Router's `<Stack.Screen options>` or
12
+ * a React Navigation screen's `options`. Memoize the action arrays: new arrays build new options on every render.
13
13
  */
14
14
  export const useHeaderOptions = ({
15
15
  backHidden,
@@ -45,11 +45,12 @@ export const useHeaderOptions = ({
45
45
  }
46
46
  return {
47
47
  contentInsetAdjustmentBehavior: 'automatic',
48
+ inlineLargeTitle: headerTitle.inlineLargeTitle,
48
49
  largeTitle: headerTitle.largeTitle,
49
50
  onScroll: headerTitle.onScroll,
50
51
  options
51
52
  };
52
- }, [actionOptions, headerTitle.largeTitle, headerTitle.onScroll, headerTitle.options, search]);
53
+ }, [actionOptions, headerTitle.inlineLargeTitle, headerTitle.largeTitle, headerTitle.onScroll, headerTitle.options, search]);
53
54
  };
54
55
 
55
56
  /**
@@ -60,6 +61,7 @@ export const useHeaderOptions = ({
60
61
  export const useHeader = (navigation, params) => {
61
62
  const {
62
63
  contentInsetAdjustmentBehavior,
64
+ inlineLargeTitle,
63
65
  largeTitle,
64
66
  onScroll,
65
67
  options
@@ -69,8 +71,9 @@ export const useHeader = (navigation, params) => {
69
71
  }, [navigation, options]);
70
72
  return useMemo(() => ({
71
73
  contentInsetAdjustmentBehavior,
74
+ inlineLargeTitle,
72
75
  largeTitle,
73
76
  onScroll
74
- }), [contentInsetAdjustmentBehavior, largeTitle, onScroll]);
77
+ }), [contentInsetAdjustmentBehavior, inlineLargeTitle, largeTitle, onScroll]);
75
78
  };
76
79
  //# sourceMappingURL=use-header.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useAppTheme","useLayoutEffect","useMemo","toHeaderOptions","useHeaderTitle","useHeaderOptions","backHidden","largeTitle","leadingActions","search","subtitle","title","titleHidden","titleRevealProgress","titleTransition","trailingActions","theme","headerTitle","actionOptions","options","Object","assign","headerSearchBarOptions","contentInsetAdjustmentBehavior","onScroll","useHeader","navigation","params","setOptions"],"sourceRoot":"../../../../src","sources":["organisms/header/use-header.ts"],"mappings":";;AAAA,SAAQA,WAAW,QAAO,mBAAmB;AAC7C,SAAQC,eAAe,EAAEC,OAAO,QAAO,OAAO;AAG9C,SAAQC,eAAe,QAAO,kBAAkB;AAChD,SAAQC,cAAc,QAAO,mBAAgB;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,gBAAgB,GAAGA,CAAC;EAC/BC,UAAU;EACVC,UAAU;EACVC,cAAc;EACdC,MAAM;EACNC,QAAQ;EACRC,KAAK;EACLC,WAAW,GAAG,KAAK;EACnBC,mBAAmB;EACnBC,eAAe;EACfC;AACY,CAAC,KAA0B;EACvC,MAAMC,KAAK,GAAGhB,WAAW,CAAC,CAAC;EAC3B,MAAMiB,WAAW,GAAGb,cAAc,CAAC;IAACG,UAAU;IAAEG,QAAQ;IAAEC,KAAK;IAAEC,WAAW;IAAEC,mBAAmB;IAAEC;EAAe,CAAC,CAAC;EAEpH,MAAMI,aAAa,GAAGhB,OAAO,CAC3B,MAAMC,eAAe,CAAC;IAACG,UAAU;IAAEE,cAAc;IAAEO;EAAe,CAAC,EAAEC,KAAK,CAAC,EAC3E,CAACV,UAAU,EAAEE,cAAc,EAAEQ,KAAK,EAAED,eAAe,CACrD,CAAC;EAED,OAAOb,OAAO,CAAC,MAAM;IACnB,MAAMiB,OAAsB,GAAG,CAAC,CAAC;IAEjCC,MAAM,CAACC,MAAM,CAACF,OAAO,EAAEF,WAAW,CAACE,OAAO,EAAED,aAAa,CAAC;IAE1D,IAAIT,MAAM,EAAE;MACVU,OAAO,CAACG,sBAAsB,GAAGb,MAAM;IACzC;IAEA,OAAO;MACLc,8BAA8B,EAAE,WAAW;MAC3ChB,UAAU,EAAEU,WAAW,CAACV,UAAU;MAClCiB,QAAQ,EAAEP,WAAW,CAACO,QAAQ;MAC9BL;IACF,CAAC;EACH,CAAC,EAAE,CAACD,aAAa,EAAED,WAAW,CAACV,UAAU,EAAEU,WAAW,CAACO,QAAQ,EAAEP,WAAW,CAACE,OAAO,EAAEV,MAAM,CAAC,CAAC;AAChG,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMgB,SAAS,GAAGA,CAACC,UAA4B,EAAEC,MAAoB,KAAoB;EAC9F,MAAM;IAACJ,8BAA8B;IAAEhB,UAAU;IAAEiB,QAAQ;IAAEL;EAAO,CAAC,GAAGd,gBAAgB,CAACsB,MAAM,CAAC;EAEhG1B,eAAe,CAAC,MAAM;IACpByB,UAAU,CAACE,UAAU,CAACT,OAAO,CAAC;EAChC,CAAC,EAAE,CAACO,UAAU,EAAEP,OAAO,CAAC,CAAC;EAEzB,OAAOjB,OAAO,CACZ,OAAO;IAACqB,8BAA8B;IAAEhB,UAAU;IAAEiB;EAAQ,CAAC,CAAC,EAC9D,CAACD,8BAA8B,EAAEhB,UAAU,EAAEiB,QAAQ,CACvD,CAAC;AACH,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useAppTheme","useLayoutEffect","useMemo","toHeaderOptions","useHeaderTitle","useHeaderOptions","backHidden","largeTitle","leadingActions","search","subtitle","title","titleHidden","titleRevealProgress","titleTransition","trailingActions","theme","headerTitle","actionOptions","options","Object","assign","headerSearchBarOptions","contentInsetAdjustmentBehavior","inlineLargeTitle","onScroll","useHeader","navigation","params","setOptions"],"sourceRoot":"../../../../src","sources":["organisms/header/use-header.ts"],"mappings":";;AAAA,SAAQA,WAAW,QAAO,mBAAmB;AAC7C,SAAQC,eAAe,EAAEC,OAAO,QAAO,OAAO;AAG9C,SAAQC,eAAe,QAAO,kBAAkB;AAChD,SAAQC,cAAc,QAAO,mBAAgB;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,gBAAgB,GAAGA,CAAC;EAC/BC,UAAU;EACVC,UAAU;EACVC,cAAc;EACdC,MAAM;EACNC,QAAQ;EACRC,KAAK;EACLC,WAAW,GAAG,KAAK;EACnBC,mBAAmB;EACnBC,eAAe;EACfC;AACY,CAAC,KAA0B;EACvC,MAAMC,KAAK,GAAGhB,WAAW,CAAC,CAAC;EAC3B,MAAMiB,WAAW,GAAGb,cAAc,CAAC;IAACG,UAAU;IAAEG,QAAQ;IAAEC,KAAK;IAAEC,WAAW;IAAEC,mBAAmB;IAAEC;EAAe,CAAC,CAAC;EAEpH,MAAMI,aAAa,GAAGhB,OAAO,CAC3B,MAAMC,eAAe,CAAC;IAACG,UAAU;IAAEE,cAAc;IAAEO;EAAe,CAAC,EAAEC,KAAK,CAAC,EAC3E,CAACV,UAAU,EAAEE,cAAc,EAAEQ,KAAK,EAAED,eAAe,CACrD,CAAC;EAED,OAAOb,OAAO,CAAC,MAAM;IACnB,MAAMiB,OAAsB,GAAG,CAAC,CAAC;IAEjCC,MAAM,CAACC,MAAM,CAACF,OAAO,EAAEF,WAAW,CAACE,OAAO,EAAED,aAAa,CAAC;IAE1D,IAAIT,MAAM,EAAE;MACVU,OAAO,CAACG,sBAAsB,GAAGb,MAAM;IACzC;IAEA,OAAO;MACLc,8BAA8B,EAAE,WAAW;MAC3CC,gBAAgB,EAAEP,WAAW,CAACO,gBAAgB;MAC9CjB,UAAU,EAAEU,WAAW,CAACV,UAAU;MAClCkB,QAAQ,EAAER,WAAW,CAACQ,QAAQ;MAC9BN;IACF,CAAC;EACH,CAAC,EAAE,CACDD,aAAa,EACbD,WAAW,CAACO,gBAAgB,EAC5BP,WAAW,CAACV,UAAU,EACtBU,WAAW,CAACQ,QAAQ,EACpBR,WAAW,CAACE,OAAO,EACnBV,MAAM,CACP,CAAC;AACJ,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMiB,SAAS,GAAGA,CAACC,UAA4B,EAAEC,MAAoB,KAAoB;EAC9F,MAAM;IAACL,8BAA8B;IAAEC,gBAAgB;IAAEjB,UAAU;IAAEkB,QAAQ;IAAEN;EAAO,CAAC,GAAGd,gBAAgB,CAACuB,MAAM,CAAC;EAElH3B,eAAe,CAAC,MAAM;IACpB0B,UAAU,CAACE,UAAU,CAACV,OAAO,CAAC;EAChC,CAAC,EAAE,CAACQ,UAAU,EAAER,OAAO,CAAC,CAAC;EAEzB,OAAOjB,OAAO,CACZ,OAAO;IAACqB,8BAA8B;IAAEC,gBAAgB;IAAEjB,UAAU;IAAEkB;EAAQ,CAAC,CAAC,EAChF,CAACF,8BAA8B,EAAEC,gBAAgB,EAAEjB,UAAU,EAAEkB,QAAQ,CACzE,CAAC;AACH,CAAC","ignoreList":[]}
@@ -182,6 +182,7 @@ export const useHeroHeader = (navigation, {
182
182
  return {
183
183
  background,
184
184
  contentInsetAdjustmentBehavior: 'never',
185
+ inlineLargeTitle: null,
185
186
  largeTitle: null,
186
187
  onScroll,
187
188
  progress,
@@ -1 +1 @@
1
- {"version":3,"names":["isScrollEdgeEffectAvailable","isViewControllerBasedStatusBarAppearance","useAppTheme","useCallback","useEffect","useLayoutEffect","useMemo","useState","Platform","StatusBar","Extrapolation","interpolate","useAnimatedReaction","useDerivedValue","useSharedValue","useSafeAreaInsets","scheduleOnRN","headerColor","useIsTitleRevealed","HeroHeaderBackground","useHeaderOptions","useHeaderBarInset","HERO_HEADER_SCREEN_OPTIONS","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","REVEAL_RANGE","ANDROID_BAR_HEIGHT","useHeroBarHeight","iosBarInset","top","OS","useIsOverHero","progress","overHero","setOverHero","value","isOver","wasOver","useIsScreenFocused","navigation","focused","setFocused","isFocused","unsubscribeFocus","addListener","unsubscribeBlur","BAR_STYLES","dark","light","useHeroStatusBar","overHeroStyle","perScreen","setOptions","statusBarStyle","animated","barStyle","useRevealProgress","barHeight","heroHeight","introProgress","scrollY","heroUnderBar","start","end","scrollProgress","CLAMP","Math","max","onScroll","offsetY","useHeroHeader","backHidden","leadingActions","revealedTrailingActions","subtitle","title","titleTransition","trailingActions","theme","titleShown","scrolledOverHero","statusBar","visibleTrailingActions","actions","action","push","options","titleRevealProgress","appearance","headerTintColor","scrollEdgeEffects","background","children","height","contentInsetAdjustmentBehavior","largeTitle"],"sourceRoot":"../../../../src","sources":["organisms/header/use-hero-header.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["isScrollEdgeEffectAvailable","isViewControllerBasedStatusBarAppearance","useAppTheme","useCallback","useEffect","useLayoutEffect","useMemo","useState","Platform","StatusBar","Extrapolation","interpolate","useAnimatedReaction","useDerivedValue","useSharedValue","useSafeAreaInsets","scheduleOnRN","headerColor","useIsTitleRevealed","HeroHeaderBackground","useHeaderOptions","useHeaderBarInset","HERO_HEADER_SCREEN_OPTIONS","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","REVEAL_RANGE","ANDROID_BAR_HEIGHT","useHeroBarHeight","iosBarInset","top","OS","useIsOverHero","progress","overHero","setOverHero","value","isOver","wasOver","useIsScreenFocused","navigation","focused","setFocused","isFocused","unsubscribeFocus","addListener","unsubscribeBlur","BAR_STYLES","dark","light","useHeroStatusBar","overHeroStyle","perScreen","setOptions","statusBarStyle","animated","barStyle","useRevealProgress","barHeight","heroHeight","introProgress","scrollY","heroUnderBar","start","end","scrollProgress","CLAMP","Math","max","onScroll","offsetY","useHeroHeader","backHidden","leadingActions","revealedTrailingActions","subtitle","title","titleTransition","trailingActions","theme","titleShown","scrolledOverHero","statusBar","visibleTrailingActions","actions","action","push","options","titleRevealProgress","appearance","headerTintColor","scrollEdgeEffects","background","children","height","contentInsetAdjustmentBehavior","inlineLargeTitle","largeTitle"],"sourceRoot":"../../../../src","sources":["organisms/header/use-hero-header.tsx"],"mappings":"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","ignoreList":[]}
@@ -47,7 +47,7 @@ export const useStackScreenOptions = () => {
47
47
  }, [theme]);
48
48
  };
49
49
 
50
- /** A screen with a large title that collapses into the bar as its list scrolls. */
50
+ /** A screen with a large title that collapses into the bar as its list scrolls, or sits in the bar row (`'inline'`). */
51
51
  export const LARGE_TITLE_SCREEN_OPTIONS = {
52
52
  headerLargeTitleEnabled: true,
53
53
  headerShown: true
@@ -3,7 +3,7 @@ import { type SharedValue } from 'react-native-reanimated';
3
3
  import type { HeaderOptions } from './header.types';
4
4
  export declare const useIsTitleRevealed: (progress?: SharedValue<number>) => boolean;
5
5
  type TitleParams = {
6
- largeTitle?: boolean;
6
+ largeTitle?: boolean | 'inline';
7
7
  subtitle?: string;
8
8
  title?: string;
9
9
  titleHidden: boolean;
@@ -11,11 +11,13 @@ type TitleParams = {
11
11
  titleTransition?: NavigationTitleTransition;
12
12
  };
13
13
  /**
14
- * The title half of a header: the options that show the title (centred, leading with a subtitle, revealed on scroll or
15
- * large), plus on Android the large title row and the scroll worklet that collapses it into the bar, as Material's large
16
- * top app bar does. iOS needs neither: the large title is UIKit's own.
14
+ * The title half of a header: the options that show the title (centred, leading with a subtitle, revealed on scroll,
15
+ * large or inline large), plus on Android the large title row and the scroll worklet that collapses it into the bar, as
16
+ * Material's large top app bar does. iOS needs neither: the large title is UIKit's own, and an inline one only needs
17
+ * the view that keeps it in the bar row.
17
18
  */
18
19
  export declare const useHeaderTitle: ({ largeTitle, subtitle, title, titleHidden, titleRevealProgress, titleTransition, }: TitleParams) => {
20
+ inlineLargeTitle: import("react").JSX.Element | null;
19
21
  largeTitle: import("react").JSX.Element | null;
20
22
  onScroll: (offsetY: number) => void;
21
23
  options: HeaderOptions;
@@ -136,8 +136,12 @@ export type HeaderParams = {
136
136
  * A large title that collapses into the bar as the list scrolls. iOS draws UIKit's own; Android, where the native
137
137
  * stack has none, puts it into the content as the list's first row (`largeTitle` in the result) and fades the bar's
138
138
  * title in once that row has scrolled away, as Material's large top app bar does. Wire `onScroll` for it.
139
+ *
140
+ * `'inline'` puts the large title on the leading side of the bar row instead, level with the actions, as the Apple
141
+ * TV app's tabs have it (iOS 17), with no row of its own under the bar. Render `inlineLargeTitle` from the result.
142
+ * Android shows the bar's plain title.
139
143
  */
140
- largeTitle?: boolean;
144
+ largeTitle?: boolean | 'inline';
141
145
  /**
142
146
  * The leading side's actions, in screen order from the edge. On iOS they follow the back button. Unset leaves the
143
147
  * side as the stack's options have it; an empty array clears it.
@@ -268,7 +272,12 @@ export type HeaderContent = {
268
272
  * lets the content run under it.
269
273
  */
270
274
  contentInsetAdjustmentBehavior: 'automatic' | 'never';
271
- /** Android, with `largeTitle`: the large title, to render as the list's first row. `null` everywhere else. */
275
+ /**
276
+ * iOS, with `largeTitle: 'inline'`: what keeps the large title in the bar row. Render it once anywhere in the screen,
277
+ * after the list, outside a SwiftUI host. `null` everywhere else.
278
+ */
279
+ inlineLargeTitle: ReactElement | null;
280
+ /** Android, with `largeTitle: true`: the large title, to render as the list's first row. `null` everywhere else. */
272
281
  largeTitle: ReactElement | null;
273
282
  /** A worklet to call with the list's vertical offset from its scroll handler, for what follows the scroll. */
274
283
  onScroll: (offsetY: number) => void;
@@ -439,8 +448,8 @@ export type HeaderScrollable = {
439
448
  }) => void;
440
449
  };
441
450
  export type HeaderScrollToTopOptions = {
442
- /** Whether the screen has a large title, which the top includes on iOS. */
443
- largeTitle?: boolean;
451
+ /** The screen's `largeTitle`: the top includes an expanded one on iOS (an inline one has no row of its own). */
452
+ largeTitle?: boolean | 'inline';
444
453
  /** Extra room above the content, for a bar the screen lays out under the header itself. */
445
454
  topInset?: number;
446
455
  };
@@ -0,0 +1 @@
1
+ export * from './native-inline-large-title.ios';
@@ -0,0 +1,3 @@
1
+ import type { NativeInlineLargeTitleComponent } from './native-inline-large-title.types';
2
+ /** iOS 17 keeps the large title in the bar row, next to the bar items (`LargeTitleDisplayMode.inline`). */
3
+ export declare const NativeInlineLargeTitle: NativeInlineLargeTitleComponent;
@@ -0,0 +1,2 @@
1
+ import type { ReactNode } from 'react';
2
+ export type NativeInlineLargeTitleComponent = () => ReactNode;
@@ -1,9 +1,9 @@
1
1
  import type { HeaderContent, HeaderNavigation, HeaderOptionsResult, HeaderParams } from './header.types';
2
2
  /**
3
3
  * A screen's header as native-stack options, with what its list needs alongside: the title (centred, leading with a
4
- * subtitle, revealed on scroll or large), the actions on both sides (the navigation bar's own items on iOS, Material
5
- * buttons on Android) and a search field. Spread `options` into Expo Router's `<Stack.Screen options>` or a React
6
- * Navigation screen's `options`. Memoize the action arrays: new arrays build new options on every render.
4
+ * subtitle, revealed on scroll, large or inline large), the actions on both sides (the navigation bar's own items on
5
+ * iOS, Material buttons on Android) and a search field. Spread `options` into Expo Router's `<Stack.Screen options>` or
6
+ * a React Navigation screen's `options`. Memoize the action arrays: new arrays build new options on every render.
7
7
  */
8
8
  export declare const useHeaderOptions: ({ backHidden, largeTitle, leadingActions, search, subtitle, title, titleHidden, titleRevealProgress, titleTransition, trailingActions, }: HeaderParams) => HeaderOptionsResult;
9
9
  /**
@@ -6,7 +6,7 @@ import type { StackScreenOptions } from './header.types';
6
6
  * bar in the surface colour.
7
7
  */
8
8
  export declare const useStackScreenOptions: () => StackScreenOptions;
9
- /** A screen with a large title that collapses into the bar as its list scrolls. */
9
+ /** A screen with a large title that collapses into the bar as its list scrolls, or sits in the bar row (`'inline'`). */
10
10
  export declare const LARGE_TITLE_SCREEN_OPTIONS: StackScreenOptions;
11
11
  /** A screen without the stack's header, for one that draws its own or none. */
12
12
  export declare const HIDDEN_HEADER_SCREEN_OPTIONS: StackScreenOptions;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hzblj/kara-components",
3
- "version": "0.27.2",
3
+ "version": "0.28.0",
4
4
  "description": "The atoms, molecules, organisms and templates of @hzblj/kara-ui — real SwiftUI and Jetpack Compose views through @expo/ui.",
5
5
  "author": "Jan Blazej",
6
6
  "license": "MIT",
@@ -66,9 +66,9 @@
66
66
  "dependencies": {
67
67
  "@hzblj/expo-native-icons": "^0.2.0",
68
68
  "@hzblj/expo-rich-haptics": "^0.1.0",
69
- "@hzblj/kara-native": "^0.27.2",
70
- "@hzblj/kara-sx": "^0.27.2",
71
- "@hzblj/kara-theme": "^0.27.2",
69
+ "@hzblj/kara-native": "^0.28.0",
70
+ "@hzblj/kara-sx": "^0.28.0",
71
+ "@hzblj/kara-theme": "^0.28.0",
72
72
  "sf-symbols-typescript": "^2.2.0"
73
73
  },
74
74
  "peerDependencies": {
@@ -14,6 +14,7 @@ import {scheduleOnRN} from 'react-native-worklets'
14
14
 
15
15
  import {RnText} from '../../atoms/rn-text'
16
16
  import type {HeaderOptions} from './header.types'
17
+ import {NativeInlineLargeTitle} from './native-inline-large-title'
17
18
  import {hasNativeSubtitle, NativeSubtitle} from './native-subtitle'
18
19
 
19
20
  /** Past half, a revealed title counts as shown: the native title and subtitle switch then. */
@@ -121,8 +122,10 @@ const CollapsingTitle = ({
121
122
  )
122
123
  }
123
124
 
125
+ const INLINE_LARGE_TITLE = <NativeInlineLargeTitle />
126
+
124
127
  type TitleParams = {
125
- largeTitle?: boolean
128
+ largeTitle?: boolean | 'inline'
126
129
  subtitle?: string
127
130
  title?: string
128
131
  titleHidden: boolean
@@ -131,9 +134,10 @@ type TitleParams = {
131
134
  }
132
135
 
133
136
  /**
134
- * The title half of a header: the options that show the title (centred, leading with a subtitle, revealed on scroll or
135
- * large), plus on Android the large title row and the scroll worklet that collapses it into the bar, as Material's large
136
- * top app bar does. iOS needs neither: the large title is UIKit's own.
137
+ * The title half of a header: the options that show the title (centred, leading with a subtitle, revealed on scroll,
138
+ * large or inline large), plus on Android the large title row and the scroll worklet that collapses it into the bar, as
139
+ * Material's large top app bar does. iOS needs neither: the large title is UIKit's own, and an inline one only needs
140
+ * the view that keeps it in the bar row.
137
141
  */
138
142
  export const useHeaderTitle = ({
139
143
  largeTitle,
@@ -160,7 +164,7 @@ export const useHeaderTitle = ({
160
164
  const titleOptions: HeaderOptions = {}
161
165
 
162
166
  if (largeTitle !== undefined) {
163
- titleOptions.headerLargeTitleEnabled = Platform.OS === 'ios' && largeTitle
167
+ titleOptions.headerLargeTitleEnabled = Platform.OS === 'ios' && largeTitle !== false
164
168
  }
165
169
 
166
170
  if (title === undefined) {
@@ -228,5 +232,7 @@ export const useHeaderTitle = ({
228
232
  [isAndroidLargeTitle, largeTitleHeight, title]
229
233
  )
230
234
 
231
- return {largeTitle: largeTitleRow, onScroll, options, revealed}
235
+ const inlineLargeTitle = largeTitle === 'inline' ? INLINE_LARGE_TITLE : null
236
+
237
+ return {inlineLargeTitle, largeTitle: largeTitleRow, onScroll, options, revealed}
232
238
  }
@@ -153,8 +153,12 @@ export type HeaderParams = {
153
153
  * A large title that collapses into the bar as the list scrolls. iOS draws UIKit's own; Android, where the native
154
154
  * stack has none, puts it into the content as the list's first row (`largeTitle` in the result) and fades the bar's
155
155
  * title in once that row has scrolled away, as Material's large top app bar does. Wire `onScroll` for it.
156
+ *
157
+ * `'inline'` puts the large title on the leading side of the bar row instead, level with the actions, as the Apple
158
+ * TV app's tabs have it (iOS 17), with no row of its own under the bar. Render `inlineLargeTitle` from the result.
159
+ * Android shows the bar's plain title.
156
160
  */
157
- largeTitle?: boolean
161
+ largeTitle?: boolean | 'inline'
158
162
  /**
159
163
  * The leading side's actions, in screen order from the edge. On iOS they follow the back button. Unset leaves the
160
164
  * side as the stack's options have it; an empty array clears it.
@@ -263,7 +267,12 @@ export type HeaderContent = {
263
267
  * lets the content run under it.
264
268
  */
265
269
  contentInsetAdjustmentBehavior: 'automatic' | 'never'
266
- /** Android, with `largeTitle`: the large title, to render as the list's first row. `null` everywhere else. */
270
+ /**
271
+ * iOS, with `largeTitle: 'inline'`: what keeps the large title in the bar row. Render it once anywhere in the screen,
272
+ * after the list, outside a SwiftUI host. `null` everywhere else.
273
+ */
274
+ inlineLargeTitle: ReactElement | null
275
+ /** Android, with `largeTitle: true`: the large title, to render as the list's first row. `null` everywhere else. */
267
276
  largeTitle: ReactElement | null
268
277
  /** A worklet to call with the list's vertical offset from its scroll handler, for what follows the scroll. */
269
278
  onScroll: (offsetY: number) => void
@@ -418,8 +427,8 @@ export type HeaderScrollable =
418
427
  | {scrollToOffset: (params: {animated?: boolean; offset: number}) => void}
419
428
 
420
429
  export type HeaderScrollToTopOptions = {
421
- /** Whether the screen has a large title, which the top includes on iOS. */
422
- largeTitle?: boolean
430
+ /** The screen's `largeTitle`: the top includes an expanded one on iOS (an inline one has no row of its own). */
431
+ largeTitle?: boolean | 'inline'
423
432
  /** Extra room above the content, for a bar the screen lays out under the header itself. */
424
433
  topInset?: number
425
434
  }
@@ -0,0 +1,3 @@
1
+ import type {NativeInlineLargeTitleComponent} from './native-inline-large-title.types'
2
+
3
+ export const NativeInlineLargeTitle: NativeInlineLargeTitleComponent = () => null
@@ -0,0 +1,6 @@
1
+ import {InlineLargeTitle} from '@hzblj/kara-native/swift-ui'
2
+
3
+ import type {NativeInlineLargeTitleComponent} from './native-inline-large-title.types'
4
+
5
+ /** iOS 17 keeps the large title in the bar row, next to the bar items (`LargeTitleDisplayMode.inline`). */
6
+ export const NativeInlineLargeTitle: NativeInlineLargeTitleComponent = () => <InlineLargeTitle />
@@ -0,0 +1,3 @@
1
+ import type {ReactNode} from 'react'
2
+
3
+ export type NativeInlineLargeTitleComponent = () => ReactNode
@@ -31,7 +31,7 @@ export const useHeaderScrollToTop = (
31
31
  {largeTitle = false, topInset = 0}: HeaderScrollToTopOptions = {}
32
32
  ): HeaderScrollToTopRef => {
33
33
  const barInset = useHeaderBarInset()
34
- const offset = Platform.OS === 'ios' ? -(barInset + (largeTitle ? LARGE_TITLE_HEIGHT : 0) + topInset) : 0
34
+ const offset = Platform.OS === 'ios' ? -(barInset + (largeTitle === true ? LARGE_TITLE_HEIGHT : 0) + topInset) : 0
35
35
 
36
36
  return useMemo(
37
37
  () => ({
@@ -7,9 +7,9 @@ import {useHeaderTitle} from './header-title'
7
7
 
8
8
  /**
9
9
  * A screen's header as native-stack options, with what its list needs alongside: the title (centred, leading with a
10
- * subtitle, revealed on scroll or large), the actions on both sides (the navigation bar's own items on iOS, Material
11
- * buttons on Android) and a search field. Spread `options` into Expo Router's `<Stack.Screen options>` or a React
12
- * Navigation screen's `options`. Memoize the action arrays: new arrays build new options on every render.
10
+ * subtitle, revealed on scroll, large or inline large), the actions on both sides (the navigation bar's own items on
11
+ * iOS, Material buttons on Android) and a search field. Spread `options` into Expo Router's `<Stack.Screen options>` or
12
+ * a React Navigation screen's `options`. Memoize the action arrays: new arrays build new options on every render.
13
13
  */
14
14
  export const useHeaderOptions = ({
15
15
  backHidden,
@@ -42,11 +42,19 @@ export const useHeaderOptions = ({
42
42
 
43
43
  return {
44
44
  contentInsetAdjustmentBehavior: 'automatic',
45
+ inlineLargeTitle: headerTitle.inlineLargeTitle,
45
46
  largeTitle: headerTitle.largeTitle,
46
47
  onScroll: headerTitle.onScroll,
47
48
  options,
48
49
  }
49
- }, [actionOptions, headerTitle.largeTitle, headerTitle.onScroll, headerTitle.options, search])
50
+ }, [
51
+ actionOptions,
52
+ headerTitle.inlineLargeTitle,
53
+ headerTitle.largeTitle,
54
+ headerTitle.onScroll,
55
+ headerTitle.options,
56
+ search,
57
+ ])
50
58
  }
51
59
 
52
60
  /**
@@ -55,14 +63,14 @@ export const useHeaderOptions = ({
55
63
  * belongs in its static `options` too: iOS morphs the bar items between screens only when they exist at the push.
56
64
  */
57
65
  export const useHeader = (navigation: HeaderNavigation, params: HeaderParams): HeaderContent => {
58
- const {contentInsetAdjustmentBehavior, largeTitle, onScroll, options} = useHeaderOptions(params)
66
+ const {contentInsetAdjustmentBehavior, inlineLargeTitle, largeTitle, onScroll, options} = useHeaderOptions(params)
59
67
 
60
68
  useLayoutEffect(() => {
61
69
  navigation.setOptions(options)
62
70
  }, [navigation, options])
63
71
 
64
72
  return useMemo(
65
- () => ({contentInsetAdjustmentBehavior, largeTitle, onScroll}),
66
- [contentInsetAdjustmentBehavior, largeTitle, onScroll]
73
+ () => ({contentInsetAdjustmentBehavior, inlineLargeTitle, largeTitle, onScroll}),
74
+ [contentInsetAdjustmentBehavior, inlineLargeTitle, largeTitle, onScroll]
67
75
  )
68
76
  }
@@ -216,6 +216,7 @@ export const useHeroHeader = (
216
216
  return {
217
217
  background,
218
218
  contentInsetAdjustmentBehavior: 'never',
219
+ inlineLargeTitle: null,
219
220
  largeTitle: null,
220
221
  onScroll,
221
222
  progress,
@@ -46,7 +46,7 @@ export const useStackScreenOptions = (): StackScreenOptions => {
46
46
  }, [theme])
47
47
  }
48
48
 
49
- /** A screen with a large title that collapses into the bar as its list scrolls. */
49
+ /** A screen with a large title that collapses into the bar as its list scrolls, or sits in the bar row (`'inline'`). */
50
50
  export const LARGE_TITLE_SCREEN_OPTIONS: StackScreenOptions = {headerLargeTitleEnabled: true, headerShown: true}
51
51
 
52
52
  /** A screen without the stack's header, for one that draws its own or none. */