panelui-native 0.102.3 → 0.103.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 (28) hide show
  1. package/lib/module/components/bottom-sheet/index.js +95 -41
  2. package/lib/module/components/bottom-sheet/index.js.map +1 -1
  3. package/lib/module/components/panelside/index.js +8 -28
  4. package/lib/module/components/panelside/index.js.map +1 -1
  5. package/lib/module/components/selection-mode/index.js.map +1 -1
  6. package/lib/module/components/sketch/index.js +1086 -0
  7. package/lib/module/components/sketch/index.js.map +1 -0
  8. package/lib/module/index.js +1 -0
  9. package/lib/module/index.js.map +1 -1
  10. package/lib/module/native/index.js.map +1 -1
  11. package/lib/typescript/src/components/bottom-sheet/index.d.ts +11 -2
  12. package/lib/typescript/src/components/bottom-sheet/index.d.ts.map +1 -1
  13. package/lib/typescript/src/components/panelside/index.d.ts.map +1 -1
  14. package/lib/typescript/src/components/selection-mode/index.d.ts +2 -4
  15. package/lib/typescript/src/components/selection-mode/index.d.ts.map +1 -1
  16. package/lib/typescript/src/components/sketch/index.d.ts +100 -0
  17. package/lib/typescript/src/components/sketch/index.d.ts.map +1 -0
  18. package/lib/typescript/src/index.d.ts +1 -0
  19. package/lib/typescript/src/index.d.ts.map +1 -1
  20. package/lib/typescript/src/native/index.d.ts +8 -0
  21. package/lib/typescript/src/native/index.d.ts.map +1 -1
  22. package/package.json +1 -1
  23. package/src/components/bottom-sheet/index.tsx +72 -10
  24. package/src/components/panelside/index.tsx +8 -38
  25. package/src/components/selection-mode/index.tsx +2 -4
  26. package/src/components/sketch/index.tsx +1290 -0
  27. package/src/index.ts +11 -0
  28. package/src/native/index.ts +8 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/native/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/native/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "panelui-native",
3
- "version": "0.102.3",
3
+ "version": "0.103.0",
4
4
  "description": "High-performance React Native UI components for Expo. Semantic design tokens, powered by Uniwind (Tailwind v4) and Reanimated.",
5
5
  "main": "./lib/module/index.js",
6
6
  "module": "./lib/module/index.js",
@@ -244,6 +244,31 @@ function nativeSheetSurface(color: string): unknown[] | undefined {
244
244
  return undefined;
245
245
  }
246
246
 
247
+ /**
248
+ * The modifiers that hold a native sheet still and hide its grabber, where the
249
+ * platform has them. iOS only: Compose's sheet is not asked, and keeps its own
250
+ * drag and handle.
251
+ *
252
+ * A sheet whose content takes drags — a canvas, a map — needs both. Left to
253
+ * the platform, a downward stroke on the content moves the sheet instead.
254
+ */
255
+ function nativeSheetBehaviour(
256
+ dismissible: boolean,
257
+ showGrabber: boolean
258
+ ): unknown[] {
259
+ const swiftUI = getSwiftUIModifiers();
260
+ if (!swiftUI) return [];
261
+
262
+ const modifiers: unknown[] = [];
263
+ if (!dismissible && swiftUI.interactiveDismissDisabled) {
264
+ modifiers.push(swiftUI.interactiveDismissDisabled(true));
265
+ }
266
+ if (!showGrabber && swiftUI.presentationDragIndicator) {
267
+ modifiers.push(swiftUI.presentationDragIndicator('hidden'));
268
+ }
269
+ return modifiers;
270
+ }
271
+
247
272
  /**
248
273
  * Set by the root so Content knows the platform is drawing the sheet, and with
249
274
  * which detents. Null means the styled sheet renders.
@@ -272,6 +297,18 @@ const SheetSurfaceContext = createContext<{
272
297
  hasScrollable: SharedValue<boolean>;
273
298
  } | null>(null);
274
299
 
300
+ /**
301
+ * Whether the sheet has a height of its own for `Body` to fill.
302
+ *
303
+ * Provided by both the styled and the native sheet, because the body has to be
304
+ * laid out differently in the two cases. A sized sheet is a definite column,
305
+ * and the body takes what the header and footer leave. An `auto` sheet is
306
+ * measured from its content — and a body that asks to fill it (`flex: 1`, a
307
+ * basis of zero) asks for a share of nothing, so it comes out zero points tall
308
+ * and everything in it disappears.
309
+ */
310
+ const SheetSizedContext = createContext(false);
311
+
275
312
  function BottomSheetRoot({
276
313
  children,
277
314
  open,
@@ -331,7 +368,13 @@ function BottomSheetTrigger({ children }: BottomSheetTriggerProps) {
331
368
 
332
369
  export interface BottomSheetContentProps extends ViewProps {
333
370
  className?: string;
334
- /** Tap on the backdrop closes the sheet. Default true. */
371
+ /**
372
+ * Whether the reader can close the sheet themselves — by tapping the
373
+ * backdrop, dragging it down, or pressing back on Android. Default true.
374
+ *
375
+ * Off, only your own controls close it. On the native sheet this also stops
376
+ * the drag on iOS, which is what a sheet whose content takes drags needs.
377
+ */
335
378
  dismissible?: boolean;
336
379
  /**
337
380
  * Show a close button in the top trailing corner — the right in a
@@ -347,6 +390,8 @@ export interface BottomSheetContentProps extends ViewProps {
347
390
  * Turn it off when the sheet draws its own — a component wrapping this one
348
391
  * to give the surface a material of its own has to put the handle on that
349
392
  * material, and a handle floating above it belongs to nothing.
393
+ *
394
+ * On the native sheet it hides the platform's grabber on iOS.
350
395
  */
351
396
  showGrabber?: boolean;
352
397
  /**
@@ -371,7 +416,8 @@ export interface BottomSheetContentProps extends ViewProps {
371
416
  * How tall the sheet opens.
372
417
  *
373
418
  * `auto` sizes to the content, which is right for a sheet that is a handful
374
- * of rows. `half` and `full` fix the height instead, for content that has to
419
+ * of rows. It stops short of the status bar, and a `Body` inside it scrolls
420
+ * once the content is taller than that. `half` and `full` fix the height instead, for content that has to
375
421
  * be given the room rather than allowed to ask for it — a list, a form, a
376
422
  * document. Either way the sheet is clamped to leave the status bar clear,
377
423
  * so `full` is as tall as the screen allows rather than as tall as the screen.
@@ -707,13 +753,11 @@ function BottomSheetContent({
707
753
  * `insets.top` is the status bar and the notch, and content that runs under
708
754
  * those is unreadable at exactly the moment the sheet is at its tallest.
709
755
  */
756
+ const sheetCap = screenHeight - insets.top - (detached ? detachedGap : 8);
710
757
  const sizedHeight =
711
758
  size === 'auto'
712
759
  ? undefined
713
- : Math.min(
714
- screenHeight * SIZE_FRACTION[size],
715
- screenHeight - insets.top - (detached ? detachedGap : 8)
716
- );
760
+ : Math.min(screenHeight * SIZE_FRACTION[size], sheetCap);
717
761
 
718
762
  const surface = useMemo(
719
763
  () => ({ scrollGesture, scrollOffset, hasScrollable }),
@@ -744,7 +788,10 @@ function BottomSheetContent({
744
788
  : typeof requested === 'string'
745
789
  ? requested
746
790
  : undefined;
747
- const modifiers = surface ? nativeSheetSurface(surface) : undefined;
791
+ const painted = surface ? nativeSheetSurface(surface) ?? [] : [];
792
+ const held = nativeSheetBehaviour(dismissible, showGrabber);
793
+ const modifiers =
794
+ painted.length || held.length ? [...painted, ...held] : undefined;
748
795
  // The platform owns presentation, so this stays mounted and toggles
749
796
  // isPresented rather than unmounting on close.
750
797
  //
@@ -766,6 +813,7 @@ function BottomSheetContent({
766
813
  >
767
814
  <RNHostView matchContents>
768
815
  <BottomSheetContext.Provider value={context}>
816
+ <SheetSizedContext.Provider value={snapPoints !== undefined}>
769
817
  <View
770
818
  {...props}
771
819
  className={cn(
@@ -788,6 +836,7 @@ function BottomSheetContent({
788
836
  >
789
837
  {textChildren(children)}
790
838
  </View>
839
+ </SheetSizedContext.Provider>
791
840
  </BottomSheetContext.Provider>
792
841
  </RNHostView>
793
842
  </NativeBottomSheet>
@@ -847,11 +896,14 @@ function BottomSheetContent({
847
896
  detached
848
897
  ? { marginBottom: detachedGap, paddingBottom: 16 }
849
898
  : { paddingBottom: Math.max(insets.bottom, 16) },
850
- sizedHeight === undefined ? null : { height: sizedHeight },
899
+ sizedHeight === undefined
900
+ ? { maxHeight: sheetCap }
901
+ : { height: sizedHeight },
851
902
  props.style,
852
903
  ]}
853
904
  >
854
905
  <SheetSurfaceContext.Provider value={surface}>
906
+ <SheetSizedContext.Provider value={sizedHeight !== undefined}>
855
907
  {showGrabber ? (
856
908
  <View className="mb-3 self-center">
857
909
  <View className="h-1 w-10 rounded-full bg-muted-foreground/30" />
@@ -884,6 +936,7 @@ function BottomSheetContent({
884
936
  />
885
937
  </Pressable>
886
938
  ) : null}
939
+ </SheetSizedContext.Provider>
887
940
  </SheetSurfaceContext.Provider>
888
941
  </Animated.View>
889
942
  </GestureDetector>
@@ -944,7 +997,12 @@ export interface BottomSheetBodyProps
944
997
  }
945
998
 
946
999
  /**
947
- * The scrolling part of a sized sheet.
1000
+ * The scrolling part of a sheet.
1001
+ *
1002
+ * In a sheet with a `size` it fills whatever the header and footer leave. In
1003
+ * an `auto` sheet it is as tall as its content, and scrolls once the sheet
1004
+ * has grown as tall as the screen allows — or as a `maxHeight` on the content
1005
+ * allows.
948
1006
  *
949
1007
  * A plain `ScrollView` works here too, but only one of the two gestures can
950
1008
  * win a given drag and neither knows about the other, so the list and the
@@ -958,6 +1016,7 @@ const BottomSheetBody = forwardRef<
958
1016
  BottomSheetBodyProps
959
1017
  >(function BottomSheetBody({ className, children, onScroll, ...props }, ref) {
960
1018
  const surface = useContext(SheetSurfaceContext);
1019
+ const sized = useContext(SheetSizedContext);
961
1020
 
962
1021
  useEffect(() => {
963
1022
  if (!surface) return;
@@ -998,7 +1057,10 @@ const BottomSheetBody = forwardRef<
998
1057
  ref={ref}
999
1058
  scrollEventThrottle={16}
1000
1059
  showsVerticalScrollIndicator={false}
1001
- className={cn('flex-1', className)}
1060
+ // In a sized sheet the body fills what the header and footer leave. In
1061
+ // an `auto` one it is as tall as its content and gives way once the
1062
+ // sheet reaches its cap, which is what makes a long list scroll.
1063
+ className={cn(sized ? 'flex-1' : 'shrink grow-0', className)}
1002
1064
  {...props}
1003
1065
  onScroll={composed}
1004
1066
  >
@@ -120,23 +120,13 @@ import { tv } from 'tailwind-variants';
120
120
  import { useCSSVariable } from 'uniwind';
121
121
  import { LinearGradient } from 'expo-linear-gradient';
122
122
  import { HugeiconsIcon, type IconSvgElement } from '@hugeicons/react-native';
123
- import Cancel01Icon from '@hugeicons/core-free-icons/Cancel01Icon';
124
123
  import Menu01Icon from '@hugeicons/core-free-icons/Menu01Icon';
125
124
  import MoreHorizontalIcon from '@hugeicons/core-free-icons/MoreHorizontalIcon';
126
125
  import Search01Icon from '@hugeicons/core-free-icons/Search01Icon';
127
126
  import { IconColorProvider, useIconColor } from '../../icons';
128
- import {
129
- BottomSheet,
130
- bottomSheetDetentHeight,
131
- type BottomSheetBodyProps,
132
- type BottomSheetProps,
133
- } from '../bottom-sheet';
134
127
  import { Button } from '../button';
135
128
  import { Menu, type MenuContentProps } from '../menu';
136
- import { Tabs } from '../tabs';
137
- import { getNativeUI } from '../../native';
138
129
  import { AnimatedPressable } from '../../primitives/animated-pressable';
139
- import { KeyboardAvoider } from '../../primitives/keyboard-avoider';
140
130
  import { Text, textChildren, type TextProps } from '../../primitives/text';
141
131
  import { useBackHandler } from '../../hooks/use-back-handler';
142
132
  import { useDirectionSign } from '../../hooks/use-direction';
@@ -254,20 +244,6 @@ const DOCK_WIDTH_MAX = 320;
254
244
  /** How far above the floating footer the list starts dissolving into it. */
255
245
  const FOOTER_FADE = 28;
256
246
 
257
- /**
258
- * What `BottomSheet.Content` leaves below its last child, maxed against the
259
- * home indicator. Mirrored here so the search field can subtract the strip it
260
- * already sits above before it travels with the keyboard.
261
- */
262
- const SHEET_BOTTOM_PADDING = 16;
263
-
264
- /**
265
- * The top padding the search surface asks `BottomSheet.Content` for, and takes
266
- * back off the column's height. Smaller than the sheet's own default, because
267
- * this surface leads with a round button rather than with a title.
268
- */
269
- const SHEET_TOP_PADDING = 12;
270
-
271
247
  /** Progress past which a layer is treated as fully hidden for accessibility. */
272
248
  const HIDDEN_EPSILON = 0.05;
273
249
 
@@ -2060,22 +2036,16 @@ function PanelsideTrigger({
2060
2036
  /* ------------------------------------------------------------------ *
2061
2037
  * Search.
2062
2038
  *
2063
- * A field in the header is the obvious way to put search in a navigation
2064
- * panel, and it is the wrong one on a phone. The panel is 80% of the screen
2065
- * and the field is 40 points of it, so a search that returns anything has to
2066
- * push the history down the screen it is already filling — and the field is at
2067
- * the top, which is the far end of the screen from the keyboard that has just
2068
- * opened under it.
2039
+ * On a phone, search is a button in the header rather than a field. The panel
2040
+ * is most of the screen and a field is 40 points of it, so results would have
2041
+ * to push the history down — and the field would be at the far end of the
2042
+ * screen from the keyboard.
2069
2043
  *
2070
- * So search is a surface rather than a row. A round button in the header opens
2071
- * a sheet that is the whole screen; the tabs across the top narrow what is
2072
- * being searched; the results fill the middle; and the field is at the bottom,
2073
- * where the thumb already is, riding the keyboard rather than hiding behind
2074
- * it.
2044
+ * The button draws the control and nothing else. What it opens — a page, a
2045
+ * sheet, a screen on the app's own stack — is the app's to decide.
2075
2046
  *
2076
- * `Panelside.Search` — the inline field — is still exported, and is still
2077
- * right for a docked panel on a tablet, where there is width for a field and
2078
- * no keyboard covering half the screen.
2047
+ * `Panelside.Search`, the inline field, suits a docked panel on a tablet,
2048
+ * where there is width for a field and no keyboard covering half the screen.
2079
2049
  * ------------------------------------------------------------------ */
2080
2050
 
2081
2051
  export interface PanelsideSearchTriggerProps extends Omit<PressableProps, 'children'> {
@@ -1055,10 +1055,8 @@ export interface SelectionModeSheetProps {
1055
1055
  /**
1056
1056
  * How tall the sheet opens.
1057
1057
  *
1058
- * `full` by default, and deliberately not `auto`. A sheet that sizes to its
1059
- * content gives its scrolling body no height to fill, and a list inside a box
1060
- * of no height draws nothing — which looks like an empty sheet rather than
1061
- * like a missing style.
1058
+ * `full` by default. `auto` sizes the sheet to its rows, up to the height
1059
+ * of the screen, and suits a short list.
1062
1060
  *
1063
1061
  * Full rather than half because a picker spends a header and a footer before
1064
1062
  * it draws a single row. At half a screen that leaves four or five rows for