panelui-native 0.79.0 → 0.80.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.
- package/lib/module/components/accordion/index.js +13 -1
- package/lib/module/components/accordion/index.js.map +1 -1
- package/lib/module/components/bottom-sheet/index.js +9 -2
- package/lib/module/components/bottom-sheet/index.js.map +1 -1
- package/lib/module/components/panelside/index.js +527 -19
- package/lib/module/components/panelside/index.js.map +1 -1
- package/lib/module/components/qr-code/index.js +84 -15
- package/lib/module/components/qr-code/index.js.map +1 -1
- package/lib/module/components/qr-code/qr-shapes.js +202 -0
- package/lib/module/components/qr-code/qr-shapes.js.map +1 -0
- package/lib/module/components/timeline/index.js +145 -18
- package/lib/module/components/timeline/index.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/components/accordion/index.d.ts.map +1 -1
- package/lib/typescript/src/components/bottom-sheet/index.d.ts +16 -0
- package/lib/typescript/src/components/bottom-sheet/index.d.ts.map +1 -1
- package/lib/typescript/src/components/panelside/index.d.ts +242 -5
- package/lib/typescript/src/components/panelside/index.d.ts.map +1 -1
- package/lib/typescript/src/components/qr-code/index.d.ts +42 -3
- package/lib/typescript/src/components/qr-code/index.d.ts.map +1 -1
- package/lib/typescript/src/components/qr-code/qr-shapes.d.ts +64 -0
- package/lib/typescript/src/components/qr-code/qr-shapes.d.ts.map +1 -0
- package/lib/typescript/src/components/timeline/index.d.ts +33 -0
- package/lib/typescript/src/components/timeline/index.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +1 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/accordion/index.tsx +13 -0
- package/src/components/bottom-sheet/index.tsx +9 -2
- package/src/components/panelside/index.tsx +750 -28
- package/src/components/qr-code/index.tsx +124 -18
- package/src/components/qr-code/qr-shapes.ts +234 -0
- package/src/components/timeline/index.tsx +165 -14
- package/src/index.ts +3 -0
|
@@ -79,11 +79,21 @@
|
|
|
79
79
|
import { type ReactElement, type ReactNode } from 'react';
|
|
80
80
|
import { type PressableProps, type ScrollViewProps, type TextInputProps, type ViewProps } from 'react-native';
|
|
81
81
|
import { type SharedValue } from 'react-native-reanimated';
|
|
82
|
+
import { type BottomSheetBodyProps, type BottomSheetProps } from '../bottom-sheet/index.js';
|
|
82
83
|
import { type TextProps } from '../../primitives/text.js';
|
|
83
84
|
export type PanelsideMode = 'push' | 'overlay';
|
|
84
85
|
export type PanelsideSwipeFrom = 'anywhere' | 'edge';
|
|
85
86
|
export type PanelsideItemSize = 'default' | 'sm';
|
|
86
87
|
export type PanelsideCtaSize = 'default' | 'lg';
|
|
88
|
+
/**
|
|
89
|
+
* What a header or a footer paints behind itself.
|
|
90
|
+
*
|
|
91
|
+
* `transparent` paints nothing, and the list runs the full height of the panel
|
|
92
|
+
* underneath it. `fade` dissolves the list into the panel background over the
|
|
93
|
+
* strip above the controls. `solid` is a band with an edge on it, for a footer
|
|
94
|
+
* that is a row of the layout rather than something floating over one.
|
|
95
|
+
*/
|
|
96
|
+
export type PanelsideSurface = 'transparent' | 'fade' | 'solid';
|
|
87
97
|
export interface UsePanelsideResult {
|
|
88
98
|
open: boolean;
|
|
89
99
|
setOpen: (open: boolean) => void;
|
|
@@ -96,6 +106,9 @@ export interface UsePanelsideResult {
|
|
|
96
106
|
progress: SharedValue<number>;
|
|
97
107
|
/** True while the panel is docked open beside the scene. */
|
|
98
108
|
docked: boolean;
|
|
109
|
+
/** Whether the search surface is up. `Panelside.SearchTrigger` sets it. */
|
|
110
|
+
searchOpen: boolean;
|
|
111
|
+
setSearchOpen: (open: boolean) => void;
|
|
99
112
|
}
|
|
100
113
|
/**
|
|
101
114
|
* The panel's state, from anywhere inside a `<Panelside>` — including your own
|
|
@@ -200,10 +213,24 @@ export interface PanelsideHeaderProps extends ViewProps {
|
|
|
200
213
|
title?: string;
|
|
201
214
|
/** A single element pinned to the trailing end of the title row. */
|
|
202
215
|
action?: ReactNode;
|
|
216
|
+
/**
|
|
217
|
+
* What the header paints behind itself.
|
|
218
|
+
*
|
|
219
|
+
* `transparent` is the default and paints nothing, so the header is the
|
|
220
|
+
* panel's own surface with a title on it rather than a bar sitting on top of
|
|
221
|
+
* one. In the panel's normal stacking that is the whole story — the header
|
|
222
|
+
* takes a row and the list starts below it.
|
|
223
|
+
*
|
|
224
|
+
* `fade` and `solid` are for a header the caller has lifted out of that
|
|
225
|
+
* stack — `className="absolute start-0 end-0 top-0"` — so the list runs
|
|
226
|
+
* underneath it. They are the two shapes `Panelside.Footer` offers, drawn
|
|
227
|
+
* the other way up.
|
|
228
|
+
*/
|
|
229
|
+
surface?: PanelsideSurface;
|
|
203
230
|
/** Anything below the title row — a search field, a workspace switcher. */
|
|
204
231
|
children?: ReactNode;
|
|
205
232
|
}
|
|
206
|
-
declare function PanelsideHeader({ className, title, action, children, style, ...props }: PanelsideHeaderProps): import("react").JSX.Element;
|
|
233
|
+
declare function PanelsideHeader({ className, title, action, surface, children, style, ...props }: PanelsideHeaderProps): import("react").JSX.Element;
|
|
207
234
|
declare namespace PanelsideHeader {
|
|
208
235
|
var displayName: string;
|
|
209
236
|
}
|
|
@@ -368,9 +395,25 @@ export interface PanelsideFooterProps extends ViewProps {
|
|
|
368
395
|
* leaves exactly this footer's height of room at the end.
|
|
369
396
|
*/
|
|
370
397
|
floating?: boolean;
|
|
398
|
+
/**
|
|
399
|
+
* What the footer paints behind its controls.
|
|
400
|
+
*
|
|
401
|
+
* `transparent` is the default and paints nothing: the list runs under the
|
|
402
|
+
* controls, which is how the panel reads as one surface with two things
|
|
403
|
+
* floating on it rather than as a list with a bar bolted to the bottom.
|
|
404
|
+
*
|
|
405
|
+
* `fade` dissolves the list into the panel background over the strip above
|
|
406
|
+
* the controls. It costs a band of the panel, and buys a compose button that
|
|
407
|
+
* never has a chat title running through its label — worth turning on for a
|
|
408
|
+
* panel whose history is long enough that something is always underneath.
|
|
409
|
+
*
|
|
410
|
+
* `solid` is a band with a hairline over it, for a footer that is a row of
|
|
411
|
+
* the layout. Implied by `floating={false}`, which has no list to float over.
|
|
412
|
+
*/
|
|
413
|
+
surface?: PanelsideSurface;
|
|
371
414
|
children?: ReactNode;
|
|
372
415
|
}
|
|
373
|
-
declare function PanelsideFooter({ className, floating, children, style, ...props }: PanelsideFooterProps): import("react").JSX.Element;
|
|
416
|
+
declare function PanelsideFooter({ className, floating, surface, children, style, ...props }: PanelsideFooterProps): import("react").JSX.Element;
|
|
374
417
|
declare namespace PanelsideFooter {
|
|
375
418
|
var displayName: string;
|
|
376
419
|
}
|
|
@@ -383,9 +426,10 @@ export interface PanelsideCtaProps extends Omit<PressableProps, 'children'> {
|
|
|
383
426
|
/** `primary` is the filled accent pill; `secondary` is the quiet one. */
|
|
384
427
|
variant?: 'primary' | 'secondary';
|
|
385
428
|
/**
|
|
386
|
-
* How tall the pill is. `default` is
|
|
387
|
-
*
|
|
388
|
-
* the call to action is the only thing
|
|
429
|
+
* How tall the pill is. `default` is 44pt — a step above the account button
|
|
430
|
+
* beside it, so the footer reads as one primary control and one secondary
|
|
431
|
+
* one. `lg` is 52pt, for a panel where the call to action is the only thing
|
|
432
|
+
* in the row.
|
|
389
433
|
*
|
|
390
434
|
* Ignored under `native` — the platform sizes its own button, and asks for a
|
|
391
435
|
* control size rather than a height.
|
|
@@ -454,6 +498,192 @@ declare function PanelsideTrigger({ className, label, children, onPress, ...prop
|
|
|
454
498
|
declare namespace PanelsideTrigger {
|
|
455
499
|
var displayName: string;
|
|
456
500
|
}
|
|
501
|
+
export interface PanelsideSearchTriggerProps extends Omit<PressableProps, 'children'> {
|
|
502
|
+
className?: string;
|
|
503
|
+
/** What a screen reader announces. */
|
|
504
|
+
label?: string;
|
|
505
|
+
/** Replaces the default magnifier. */
|
|
506
|
+
children?: ReactNode;
|
|
507
|
+
/**
|
|
508
|
+
* Render the platform's own button instead of the circle. Requires the
|
|
509
|
+
* optional `@expo/ui` package; without it this prop does nothing.
|
|
510
|
+
*/
|
|
511
|
+
native?: boolean;
|
|
512
|
+
/**
|
|
513
|
+
* Draw the native button in the platform's Liquid Glass material. Requires
|
|
514
|
+
* `native`, and iOS 26 or later; ignored anywhere else.
|
|
515
|
+
*/
|
|
516
|
+
glass?: boolean;
|
|
517
|
+
}
|
|
518
|
+
/**
|
|
519
|
+
* The button that opens the search surface. Goes in `Panelside.Header`'s
|
|
520
|
+
* `action` slot.
|
|
521
|
+
*
|
|
522
|
+
* It toggles the root's `searchOpen`, which `Panelside.SearchSheet` reads —
|
|
523
|
+
* so the two need nothing wired between them.
|
|
524
|
+
*/
|
|
525
|
+
declare function PanelsideSearchTrigger({ className, label, children, native, glass, onPress, ...props }: PanelsideSearchTriggerProps): import("react").JSX.Element;
|
|
526
|
+
declare namespace PanelsideSearchTrigger {
|
|
527
|
+
var displayName: string;
|
|
528
|
+
}
|
|
529
|
+
export interface PanelsideSearchSheetProps {
|
|
530
|
+
className?: string;
|
|
531
|
+
/** Controlled. Omit it and the sheet follows the root's `searchOpen`. */
|
|
532
|
+
open?: boolean;
|
|
533
|
+
onOpenChange?: (open: boolean) => void;
|
|
534
|
+
/** The query. Controlled; pair it with `onValueChange`. */
|
|
535
|
+
value?: string;
|
|
536
|
+
defaultValue?: string;
|
|
537
|
+
onValueChange?: (value: string) => void;
|
|
538
|
+
/** Which tab is selected — the `value` of a `Panelside.SearchTab`. */
|
|
539
|
+
tab?: string;
|
|
540
|
+
/**
|
|
541
|
+
* Which tab starts selected, when the sheet is not controlling `tab`. Set it
|
|
542
|
+
* to the first tab's `value`: the expanding row shows the selected tab open
|
|
543
|
+
* and the rest as their icons, so with nothing selected every tab is closed
|
|
544
|
+
* and the row is a line of unlabelled glyphs.
|
|
545
|
+
*/
|
|
546
|
+
defaultTab?: string;
|
|
547
|
+
onTabChange?: (tab: string) => void;
|
|
548
|
+
/**
|
|
549
|
+
* Present the platform's own sheet. Default true, because this one is the
|
|
550
|
+
* whole screen and the system's presentation, detents and dismiss gesture
|
|
551
|
+
* are the ones people already know. Requires the optional `@expo/ui`
|
|
552
|
+
* package; without it the styled sheet renders instead.
|
|
553
|
+
*/
|
|
554
|
+
native?: boolean;
|
|
555
|
+
/** Heights the sheet can rest at. Defaults to the tall one. */
|
|
556
|
+
snapPoints?: BottomSheetProps['snapPoints'];
|
|
557
|
+
/** Gap between the field and the top of the keyboard. */
|
|
558
|
+
keyboardGap?: number;
|
|
559
|
+
/**
|
|
560
|
+
* Draw the round dismiss button at the leading edge of the top row. On by
|
|
561
|
+
* default — it is the way out of a surface that covers the screen, and it
|
|
562
|
+
* belongs where a thumb reaching across arrives rather than in the corner
|
|
563
|
+
* furthest from one.
|
|
564
|
+
*/
|
|
565
|
+
showClose?: boolean;
|
|
566
|
+
/** What a screen reader announces for that button. */
|
|
567
|
+
closeLabel?: string;
|
|
568
|
+
children?: ReactNode;
|
|
569
|
+
}
|
|
570
|
+
/**
|
|
571
|
+
* The search surface: tabs, results, and a field at the bottom.
|
|
572
|
+
*
|
|
573
|
+
* ```tsx
|
|
574
|
+
* <Panelside.SearchSheet value={query} onValueChange={setQuery} tab={tab} onTabChange={setTab}>
|
|
575
|
+
* <Panelside.SearchTabs>
|
|
576
|
+
* <Panelside.SearchTab value="all" icon={<SparklesIcon size={16} />}>All</Panelside.SearchTab>
|
|
577
|
+
* <Panelside.SearchTab value="chats" icon={<MessageCircleIcon size={16} />}>Chats</Panelside.SearchTab>
|
|
578
|
+
* </Panelside.SearchTabs>
|
|
579
|
+
*
|
|
580
|
+
* <Panelside.SearchResults>
|
|
581
|
+
* {hits.map((hit) => (
|
|
582
|
+
* <Panelside.SearchResult key={hit.id} title={hit.title} description={hit.kind} />
|
|
583
|
+
* ))}
|
|
584
|
+
* </Panelside.SearchResults>
|
|
585
|
+
*
|
|
586
|
+
* <Panelside.SearchField placeholder="Search chats" />
|
|
587
|
+
* </Panelside.SearchSheet>
|
|
588
|
+
* ```
|
|
589
|
+
*
|
|
590
|
+
* Put it under `<Panelside>` and outside `Panelside.Panel` — a sheet is
|
|
591
|
+
* presented over the whole app, and the panel is a layer that slides.
|
|
592
|
+
*
|
|
593
|
+
* It reports what was typed and which tab is selected. What counts as a match,
|
|
594
|
+
* and what a result is, are yours: a search that only read chat titles would
|
|
595
|
+
* be wrong for the first app that indexes message bodies.
|
|
596
|
+
*/
|
|
597
|
+
declare function PanelsideSearchSheet({ className, open: openProp, onOpenChange, value, defaultValue, onValueChange, tab, defaultTab, onTabChange, native, snapPoints, keyboardGap, showClose, closeLabel, children, }: PanelsideSearchSheetProps): import("react").JSX.Element;
|
|
598
|
+
declare namespace PanelsideSearchSheet {
|
|
599
|
+
var displayName: string;
|
|
600
|
+
}
|
|
601
|
+
export interface PanelsideSearchTabsProps {
|
|
602
|
+
className?: string;
|
|
603
|
+
children?: ReactNode;
|
|
604
|
+
}
|
|
605
|
+
/**
|
|
606
|
+
* The row across the top of the search sheet, narrowing what is searched.
|
|
607
|
+
*
|
|
608
|
+
* The expanding variant: only the selected tab is open, and the rest are their
|
|
609
|
+
* icons. A row of four full labels takes the whole width to say four words
|
|
610
|
+
* nobody rereads, and this row has to leave the results the screen.
|
|
611
|
+
*
|
|
612
|
+
* Every `Panelside.SearchTab` therefore needs an `icon` — a closed tab has
|
|
613
|
+
* nothing else to be.
|
|
614
|
+
*/
|
|
615
|
+
declare function PanelsideSearchTabs({ className, children }: PanelsideSearchTabsProps): import("react").JSX.Element;
|
|
616
|
+
declare namespace PanelsideSearchTabs {
|
|
617
|
+
var displayName: string;
|
|
618
|
+
}
|
|
619
|
+
export interface PanelsideSearchTabProps {
|
|
620
|
+
className?: string;
|
|
621
|
+
/** What selecting this tab reports as the sheet's `tab`. */
|
|
622
|
+
value: string;
|
|
623
|
+
/** Required: a closed tab is its icon and nothing else. */
|
|
624
|
+
icon: ReactNode;
|
|
625
|
+
children?: ReactNode;
|
|
626
|
+
}
|
|
627
|
+
declare function PanelsideSearchTab({ className, value, icon, children }: PanelsideSearchTabProps): import("react").JSX.Element;
|
|
628
|
+
declare namespace PanelsideSearchTab {
|
|
629
|
+
var displayName: string;
|
|
630
|
+
}
|
|
631
|
+
export interface PanelsideSearchResultsProps extends BottomSheetBodyProps {
|
|
632
|
+
className?: string;
|
|
633
|
+
contentContainerClassName?: string;
|
|
634
|
+
children?: ReactNode;
|
|
635
|
+
}
|
|
636
|
+
/**
|
|
637
|
+
* The scrolling middle of the search sheet.
|
|
638
|
+
*
|
|
639
|
+
* `BottomSheet.Body` rather than a `ScrollView`, so the list's scroll and the
|
|
640
|
+
* sheet's dismiss drag agree on which of them a downward pull belongs to.
|
|
641
|
+
*/
|
|
642
|
+
declare function PanelsideSearchResults({ className, contentContainerClassName, children, ...props }: PanelsideSearchResultsProps): import("react").JSX.Element;
|
|
643
|
+
declare namespace PanelsideSearchResults {
|
|
644
|
+
var displayName: string;
|
|
645
|
+
}
|
|
646
|
+
export interface PanelsideSearchResultProps extends Omit<PressableProps, 'children'> {
|
|
647
|
+
className?: string;
|
|
648
|
+
/** Leading element — a thumbnail, an icon, an avatar. */
|
|
649
|
+
media?: ReactNode;
|
|
650
|
+
/** The result's name, truncated to one line. */
|
|
651
|
+
title?: string;
|
|
652
|
+
/** What kind of thing it is, or where it was found. */
|
|
653
|
+
description?: string;
|
|
654
|
+
children?: ReactNode;
|
|
655
|
+
}
|
|
656
|
+
/**
|
|
657
|
+
* One hit. A leading thumbnail, a title, and a line saying what it is.
|
|
658
|
+
*
|
|
659
|
+
* Taller than a `Panelside.Item`, and deliberately: a navigation row is a
|
|
660
|
+
* place you already know the name of, and a result is a thing you are deciding
|
|
661
|
+
* about — the second line is what the decision is made on.
|
|
662
|
+
*/
|
|
663
|
+
declare function PanelsideSearchResult({ className, media, title, description, children, ...props }: PanelsideSearchResultProps): import("react").JSX.Element;
|
|
664
|
+
declare namespace PanelsideSearchResult {
|
|
665
|
+
var displayName: string;
|
|
666
|
+
}
|
|
667
|
+
export interface PanelsideSearchFieldProps extends TextInputProps {
|
|
668
|
+
className?: string;
|
|
669
|
+
containerClassName?: string;
|
|
670
|
+
}
|
|
671
|
+
/**
|
|
672
|
+
* The field, at the bottom of the sheet, riding the keyboard.
|
|
673
|
+
*
|
|
674
|
+
* At the bottom because that is where the thumb is and where the keyboard
|
|
675
|
+
* comes up: a field at the top of a full-height sheet is at the far end of the
|
|
676
|
+
* screen from both, and every character typed into it is read at the other
|
|
677
|
+
* end of a list that is moving.
|
|
678
|
+
*
|
|
679
|
+
* The way out of the surface is not here — `Panelside.SearchSheet` draws it at
|
|
680
|
+
* the leading edge of the top row, so the dismiss control does not move with
|
|
681
|
+
* the keyboard and is not one mis-tap away from the field.
|
|
682
|
+
*/
|
|
683
|
+
declare function PanelsideSearchField({ className, containerClassName, placeholder, value, onChangeText, ...props }: PanelsideSearchFieldProps): import("react").JSX.Element;
|
|
684
|
+
declare namespace PanelsideSearchField {
|
|
685
|
+
var displayName: string;
|
|
686
|
+
}
|
|
457
687
|
export declare const Panelside: typeof PanelsideRoot & {
|
|
458
688
|
Panel: typeof PanelsidePanel;
|
|
459
689
|
Header: typeof PanelsideHeader;
|
|
@@ -470,6 +700,13 @@ export declare const Panelside: typeof PanelsideRoot & {
|
|
|
470
700
|
Cta: typeof PanelsideCta;
|
|
471
701
|
Scene: typeof PanelsideScene;
|
|
472
702
|
Trigger: typeof PanelsideTrigger;
|
|
703
|
+
SearchTrigger: typeof PanelsideSearchTrigger;
|
|
704
|
+
SearchSheet: typeof PanelsideSearchSheet;
|
|
705
|
+
SearchTabs: typeof PanelsideSearchTabs;
|
|
706
|
+
SearchTab: typeof PanelsideSearchTab;
|
|
707
|
+
SearchResults: typeof PanelsideSearchResults;
|
|
708
|
+
SearchResult: typeof PanelsideSearchResult;
|
|
709
|
+
SearchField: typeof PanelsideSearchField;
|
|
473
710
|
};
|
|
474
711
|
export {};
|
|
475
712
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/panelside/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6EG;AACH,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/panelside/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -16,17 +16,33 @@
|
|
|
16
16
|
*
|
|
17
17
|
* ## What it draws
|
|
18
18
|
*
|
|
19
|
-
*
|
|
19
|
+
* Three `<Path>`s: the body, the three corner rings, and the three corner
|
|
20
|
+
* centres. Every module is a subpath of one of them, not a `<Rect>` of its
|
|
20
21
|
* own. A version 10 code is 3,481 modules; half of them dark is seventeen
|
|
21
22
|
* hundred native views for a picture that never changes, and the difference
|
|
22
|
-
* between that and
|
|
23
|
-
* one that appears eventually.
|
|
23
|
+
* between that and three nodes is the difference between a code that appears
|
|
24
|
+
* and one that appears eventually.
|
|
25
|
+
*
|
|
26
|
+
* Three rather than one because they are the three things worth colouring and
|
|
27
|
+
* shaping separately. A code is found by its corner eyes before a single
|
|
28
|
+
* module is read, so they are the part a design touches first — and the part
|
|
29
|
+
* it is most dangerous to touch badly.
|
|
24
30
|
*
|
|
25
31
|
* The colours come from the theme, so a code drawn on a card is legible on
|
|
26
32
|
* every one of them — and light-on-dark is drawn the way scanners expect it,
|
|
27
33
|
* with the quiet zone painted rather than left transparent. A code with
|
|
28
34
|
* nothing behind it reads at about half the distance.
|
|
29
35
|
*
|
|
36
|
+
* ## Shaping it
|
|
37
|
+
*
|
|
38
|
+
* `moduleShape`, `eyeFrameShape` and `eyeBallShape` on `QRCode.Canvas` change
|
|
39
|
+
* the geometry; `color`, `eyeFrameColor`, `eyeBallColor` and `backgroundColor`
|
|
40
|
+
* change the ink. A scanner samples the centre of each cell, so every shape
|
|
41
|
+
* here reads exactly as a square does — what changes is how much of the cell
|
|
42
|
+
* is covered. `dot` fills about two thirds of it and `diamond` half, which is
|
|
43
|
+
* read distance spent on a look. Raise `errorCorrection` to pay for it, and
|
|
44
|
+
* check a printed code rather than one on a screen.
|
|
45
|
+
*
|
|
30
46
|
* ## The hole in the middle
|
|
31
47
|
*
|
|
32
48
|
* `QRCode.Logo` clears a square of modules and puts its children there.
|
|
@@ -41,7 +57,9 @@ import { View, type ViewProps } from 'react-native';
|
|
|
41
57
|
import { type VariantProps } from 'tailwind-variants';
|
|
42
58
|
import { type PopoverContentProps } from '../popover/index.js';
|
|
43
59
|
import { type ErrorCorrectionLevel } from './qr-encode.js';
|
|
60
|
+
import { type QRCodeEyeBallShape, type QRCodeEyeFrameShape, type QRCodeModuleShape } from './qr-shapes.js';
|
|
44
61
|
export type { ErrorCorrectionLevel };
|
|
62
|
+
export type { QRCodeModuleShape, QRCodeEyeFrameShape, QRCodeEyeBallShape };
|
|
45
63
|
declare const qrCodeVariants: import("tailwind-variants").TVReturnType<{
|
|
46
64
|
size: {
|
|
47
65
|
sm: {};
|
|
@@ -124,6 +142,27 @@ export interface QRCodeCanvasProps extends Omit<ViewProps, 'children'> {
|
|
|
124
142
|
color?: string;
|
|
125
143
|
/** The plate the modules sit on. See the note below. */
|
|
126
144
|
backgroundColor?: string;
|
|
145
|
+
/**
|
|
146
|
+
* How a data module is drawn.
|
|
147
|
+
*
|
|
148
|
+
* `rounded` and `classy` join to their neighbours — a corner is rounded only
|
|
149
|
+
* where both cells touching it are light — so a run reads as one stroke
|
|
150
|
+
* rather than as a string of beads with a light seam through it.
|
|
151
|
+
*
|
|
152
|
+
* `dot` and `diamond` do not tile, and cost read distance for it: `dot`
|
|
153
|
+
* covers about two thirds of its cell and `diamond` exactly half, so the
|
|
154
|
+
* same code is a fainter code at the same size. Raise `errorCorrection` with
|
|
155
|
+
* them, and check a printed one rather than a screen.
|
|
156
|
+
*/
|
|
157
|
+
moduleShape?: QRCodeModuleShape;
|
|
158
|
+
/** How the ring around each of the three corner eyes is drawn. */
|
|
159
|
+
eyeFrameShape?: QRCodeEyeFrameShape;
|
|
160
|
+
/** How the square inside each corner eye is drawn. */
|
|
161
|
+
eyeBallShape?: QRCodeEyeBallShape;
|
|
162
|
+
/** The three corner rings. Defaults to `color`. */
|
|
163
|
+
eyeFrameColor?: string;
|
|
164
|
+
/** The three corner centres. Defaults to `eyeFrameColor`, then `color`. */
|
|
165
|
+
eyeBallColor?: string;
|
|
127
166
|
}
|
|
128
167
|
export interface QRCodeFrameProps extends ViewProps {
|
|
129
168
|
className?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/qr-code/index.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/qr-code/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The geometry a styled QR code is drawn from.
|
|
3
|
+
*
|
|
4
|
+
* A code is three different things wearing one colour: the body — every module
|
|
5
|
+
* that carries data — and the three corner eyes, each of which is a square
|
|
6
|
+
* ring with a square inside it. Scanners find a code by those three eyes
|
|
7
|
+
* before they read a single module, which is why they are the part worth
|
|
8
|
+
* shaping separately and the part it is most dangerous to shape badly.
|
|
9
|
+
*
|
|
10
|
+
* Everything here works in **module units**: one module is 1×1, and the paths
|
|
11
|
+
* are placed into a viewBox that is the matrix plus its quiet zone. So a shape
|
|
12
|
+
* is written once and scales to whatever the code is drawn at, with no
|
|
13
|
+
* arithmetic per module and no rounding gaps between neighbours at fractional
|
|
14
|
+
* sizes.
|
|
15
|
+
*
|
|
16
|
+
* ## What is safe to change and what is not
|
|
17
|
+
*
|
|
18
|
+
* A scanner locates a module by sampling the centre of its cell, so a shape
|
|
19
|
+
* that stays inside its own cell and keeps that centre dark reads exactly as a
|
|
20
|
+
* square does. All of these do. What actually costs read distance is *area*:
|
|
21
|
+
* `dot` covers about two thirds of its cell and `diamond` exactly half, so a
|
|
22
|
+
* code in either is a fainter code at the same size, and one in `diamond` at a
|
|
23
|
+
* low error-correction level is a code that works on a screen and not on
|
|
24
|
+
* paper.
|
|
25
|
+
*
|
|
26
|
+
* The rounded shapes join to their neighbours rather than rounding every
|
|
27
|
+
* corner. A corner is rounded only where both cells touching it are light —
|
|
28
|
+
* otherwise a run of modules would be a string of beads with a light seam
|
|
29
|
+
* through it, and the seam is what the sampler sees.
|
|
30
|
+
*/
|
|
31
|
+
/** How a data module is drawn. */
|
|
32
|
+
export type QRCodeModuleShape = 'square' | 'rounded' | 'dot' | 'classy' | 'diamond';
|
|
33
|
+
/** How the ring around each of the three corner eyes is drawn. */
|
|
34
|
+
export type QRCodeEyeFrameShape = 'square' | 'rounded' | 'circle' | 'leaf' | 'shield';
|
|
35
|
+
/** How the square inside each corner eye is drawn. */
|
|
36
|
+
export type QRCodeEyeBallShape = 'square' | 'rounded' | 'dot' | 'diamond' | 'leaf';
|
|
37
|
+
/** A finder pattern is seven modules on a side, in three of the four corners. */
|
|
38
|
+
export declare const FINDER_SIZE = 7;
|
|
39
|
+
/** True where `(x, y)` falls inside one of the three finder patterns. */
|
|
40
|
+
export declare function inFinder(x: number, y: number, size: number): boolean;
|
|
41
|
+
/** Which corner of the code an eye sits in. */
|
|
42
|
+
export type QRCodeEyeCorner = 'tl' | 'tr' | 'bl';
|
|
43
|
+
/**
|
|
44
|
+
* Where each finder pattern starts, and which corner it is in.
|
|
45
|
+
*
|
|
46
|
+
* The corner is not decoration: an asymmetric eye shape has to be turned to
|
|
47
|
+
* face outwards, or two of the three point into the middle of the code and
|
|
48
|
+
* read as a mistake rather than as a style.
|
|
49
|
+
*/
|
|
50
|
+
export declare function finderOrigins(size: number): [number, number, QRCodeEyeCorner][];
|
|
51
|
+
/** One data module, in the requested shape, offset into the quiet zone. */
|
|
52
|
+
export declare function modulePath(shape: QRCodeModuleShape, modules: boolean[][], x: number, y: number, size: number, offset: number): string;
|
|
53
|
+
/**
|
|
54
|
+
* One eye's ring: a 7×7 outline with a 5×5 hole in it.
|
|
55
|
+
*
|
|
56
|
+
* Two subpaths and `fillRule="evenodd"`, rather than a stroked rectangle. A
|
|
57
|
+
* stroke is centred on its path, so its outer edge lands half a module outside
|
|
58
|
+
* the seven the specification allows — and the eye stops being seven modules
|
|
59
|
+
* wide, which is the one measurement a scanner takes before it reads anything.
|
|
60
|
+
*/
|
|
61
|
+
export declare function eyeFramePath(shape: QRCodeEyeFrameShape, x: number, y: number, offset: number, corner?: QRCodeEyeCorner): string;
|
|
62
|
+
/** One eye's centre: the 3×3 square two modules inside the ring. */
|
|
63
|
+
export declare function eyeBallPath(shape: QRCodeEyeBallShape, x: number, y: number, offset: number): string;
|
|
64
|
+
//# sourceMappingURL=qr-shapes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qr-shapes.d.ts","sourceRoot":"","sources":["../../../../../src/components/qr-code/qr-shapes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,kCAAkC;AAClC,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;AACpF,kEAAkE;AAClE,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;AACtF,sDAAsD;AACtD,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,GAAG,MAAM,CAAC;AAEnF,iFAAiF;AACjF,eAAO,MAAM,WAAW,IAAI,CAAC;AAyD7B,yEAAyE;AACzE,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAOpE;AAED,+CAA+C;AAC/C,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEjD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,CAO/E;AAED,2EAA2E;AAC3E,wBAAgB,UAAU,CACxB,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,OAAO,EAAE,EAAE,EACpB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CA2BR;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,mBAAmB,EAC1B,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,eAAsB,GAC7B,MAAM,CAuCR;AAED,oEAAoE;AACpE,wBAAgB,WAAW,CACzB,KAAK,EAAE,kBAAkB,EACzB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,MAAM,EAAE,MAAM,GACb,MAAM,CAUR"}
|
|
@@ -75,6 +75,24 @@ export interface TimelineProps extends ViewProps {
|
|
|
75
75
|
* whether this one is worth feeling is the caller's call.
|
|
76
76
|
*/
|
|
77
77
|
haptics?: boolean;
|
|
78
|
+
/**
|
|
79
|
+
* Horizontal only: which column is at the reading edge, reported as it
|
|
80
|
+
* changes.
|
|
81
|
+
*
|
|
82
|
+
* For anything outside the rail that belongs to the column being read — a
|
|
83
|
+
* masthead naming it, a caption, a picture. Without it that block can only
|
|
84
|
+
* show the same thing for the whole run, which makes a swipe through ten
|
|
85
|
+
* columns a swipe under one unchanging heading.
|
|
86
|
+
*
|
|
87
|
+
* The index is the column's position among the rendered items, not its
|
|
88
|
+
* `step`: `step` is the progress value and may be sparse or repeated, so it
|
|
89
|
+
* cannot address a column.
|
|
90
|
+
*
|
|
91
|
+
* It fires on the crossing, not per frame — the reading edge passing from
|
|
92
|
+
* one column to the next — so it is a state update per column rather than
|
|
93
|
+
* per scroll event.
|
|
94
|
+
*/
|
|
95
|
+
onColumnChange?: (index: number) => void;
|
|
78
96
|
children?: ReactNode;
|
|
79
97
|
}
|
|
80
98
|
export interface TimelineListProps<T> extends Omit<FlatListProps<T>, 'data' | 'renderItem' | 'horizontal' | 'getItemLayout' | 'onScroll' | 'snapToOffsets' | 'CellRendererComponent'> {
|
|
@@ -129,12 +147,27 @@ export interface TimelineStatProps extends ViewProps {
|
|
|
129
147
|
label: string;
|
|
130
148
|
value: string;
|
|
131
149
|
}
|
|
150
|
+
export interface TimelineMastheadProps extends ViewProps {
|
|
151
|
+
className?: string;
|
|
152
|
+
/**
|
|
153
|
+
* What sits above the two lines — a logo pair, an avatar stack, a single
|
|
154
|
+
* mark. Anything; the slot only lays it out in a row.
|
|
155
|
+
*/
|
|
156
|
+
media?: ReactNode;
|
|
157
|
+
/** The small line: what kind of thing the run below is. */
|
|
158
|
+
label?: string;
|
|
159
|
+
/** The name of it, in the size the eye lands on first. */
|
|
160
|
+
title?: string;
|
|
161
|
+
/** Anything else, below the title. */
|
|
162
|
+
children?: ReactNode;
|
|
163
|
+
}
|
|
132
164
|
export declare const Timeline: import("react").ForwardRefExoticComponent<TimelineProps & import("react").RefAttributes<View>> & {
|
|
133
165
|
List: typeof TimelineList;
|
|
134
166
|
Item: import("react").ForwardRefExoticComponent<TimelineItemProps & import("react").RefAttributes<View>>;
|
|
135
167
|
Aside: import("react").ForwardRefExoticComponent<ViewProps & {
|
|
136
168
|
className?: string;
|
|
137
169
|
} & import("react").RefAttributes<View>>;
|
|
170
|
+
Masthead: import("react").ForwardRefExoticComponent<TimelineMastheadProps & import("react").RefAttributes<View>>;
|
|
138
171
|
Indicator: import("react").ForwardRefExoticComponent<TimelineIndicatorProps & import("react").RefAttributes<View>>;
|
|
139
172
|
Content: import("react").ForwardRefExoticComponent<ViewProps & {
|
|
140
173
|
className?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/timeline/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/timeline/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -87,7 +87,7 @@ export { Planner, type PlannerProps, type PlannerEntry, type PlannerCategory, ty
|
|
|
87
87
|
export { Post, type PostProps, type PostHeaderProps, type PostAuthorProps, type PostActionProps, type PostCommunityProps, type PostTitleProps, type PostBodyProps, type PostMediaProps, type PostFooterProps, type PostStatProps, type PostVotesProps, type PostVote, } from './components/post/index.js';
|
|
88
88
|
export { Progress, type ProgressProps } from './components/progress/index.js';
|
|
89
89
|
export { ProgressButton, useProgressButton, type ProgressButtonProps, type ProgressButtonLabelProps, type ProgressButtonDoneProps, type ProgressButtonVariant, type ProgressButtonSize, } from './components/progress-button/index.js';
|
|
90
|
-
export { QRCode, type QRCodeProps, type QRCodeCanvasProps, type QRCodeFrameProps, type QRCodeHeaderProps, type QRCodeTitleProps, type QRCodeActionProps, type QRCodePanelProps, type QRCodeDescriptionProps, type QRCodeCaptionProps, type QRCodeValueProps, type QRCodeLogoProps, type QRCodeTriggerProps, type QRCodeContentProps, type QRCodeSize, type QRCodePresentation, type ErrorCorrectionLevel, } from './components/qr-code/index.js';
|
|
90
|
+
export { QRCode, type QRCodeProps, type QRCodeCanvasProps, type QRCodeFrameProps, type QRCodeHeaderProps, type QRCodeTitleProps, type QRCodeActionProps, type QRCodePanelProps, type QRCodeDescriptionProps, type QRCodeCaptionProps, type QRCodeValueProps, type QRCodeLogoProps, type QRCodeTriggerProps, type QRCodeContentProps, type QRCodeSize, type QRCodePresentation, type QRCodeModuleShape, type QRCodeEyeFrameShape, type QRCodeEyeBallShape, type ErrorCorrectionLevel, } from './components/qr-code/index.js';
|
|
91
91
|
export { Questionnaire, type QuestionnaireProps, type QuestionnaireTitleProps, type QuestionnaireProgressProps, type QuestionnaireProgressState, type QuestionnaireProgressVariant, type QuestionnaireItemProps, type QuestionnaireQuestionProps, type QuestionnaireDescriptionProps, type QuestionnaireChoicesProps, type QuestionnaireChoiceProps, type QuestionnaireInputProps, type QuestionnaireErrorProps, type QuestionnaireFooterProps, type QuestionnaireActionProps, type QuestionnaireActionState, type QuestionnaireAnswers, type QuestionnaireItemDefinition, type QuestionnaireItemStatus, type QuestionnaireShortcutMode, } from './components/questionnaire/index.js';
|
|
92
92
|
export { RadioGroup, type RadioGroupProps, type RadioGroupItemProps, } from './components/radio-group/index.js';
|
|
93
93
|
export { Rating, type RatingProps, type RatingColor, type RatingSize, } from './components/rating/index.js';
|