@estiva-app/ui 0.71.0 → 0.72.0-widgets2.1

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.
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Widgets 2 prototype: the placeholder things every widget on these pages
3
+ * draws. Words are placeholders (stories-and-pages.md); the kinds are named,
4
+ * because telling them apart is what the prototype is for.
5
+ */
6
+ import type { ThingKind } from '../KindIcon';
7
+ /** The colours a status draws in, as the apps' manifests name them. */
8
+ export type StatusColour = 'neutral' | 'blue' | 'green' | 'muted';
9
+ export interface Status {
10
+ label: string;
11
+ colour: StatusColour;
12
+ }
13
+ /** One thing a link can stand for, with every field any app draws today. */
14
+ export interface Thing {
15
+ /** The kinds the prototype covers, one more than KindIcon has: a page. */
16
+ kind: ThingKind | 'page';
17
+ /** The noun a card's corner says. */
18
+ noun: string;
19
+ /** The app it opens in. */
20
+ app: string;
21
+ title: string;
22
+ /** Its key, the way people say it: an issue's "WID-2". */
23
+ key?: string;
24
+ /** The line under the title: the project an issue is in, a page's Folder. */
25
+ subtitle?: string;
26
+ /** The opening of its description, a page's text, a message's words: what the apps draw today. */
27
+ body?: string;
28
+ /**
29
+ * A short summary of the file, one or two sentences (Miky, 15 Oct: detailed
30
+ * shows the summary, not the opening of the long description). No file
31
+ * carries one yet; it is its own project.
32
+ */
33
+ summary?: string;
34
+ status?: Status;
35
+ assignee?: string;
36
+ author?: string;
37
+ /** Everyone who wrote a page. */
38
+ authors?: string[];
39
+ comments?: number;
40
+ /**
41
+ * The reader has something unread in its conversation: they are a member
42
+ * and it moved since they last read it (SPEC §11.8, membership-replaces-following).
43
+ */
44
+ unread?: boolean;
45
+ /** A project's issues, drawn as rows inside its detailed card. */
46
+ children?: {
47
+ title: string;
48
+ key: string;
49
+ status: Status;
50
+ assignee?: string;
51
+ }[];
52
+ /** A project's progress line. */
53
+ progress?: string;
54
+ /** A project's progress as numbers, for the ring. */
55
+ done?: {
56
+ done: number;
57
+ total: number;
58
+ };
59
+ /** A topic: how many conversations, who is in it, and its latest one. */
60
+ conversations?: number;
61
+ members?: string[];
62
+ latest?: {
63
+ author: string;
64
+ body: string;
65
+ at: string;
66
+ };
67
+ updated?: string;
68
+ /** Where it is placed (WID-3): still loading, or not available to this reader. Ready when absent. */
69
+ state?: 'loading' | 'unavailable';
70
+ }
71
+ export declare const ISSUE: Thing;
72
+ export declare const PROJECT: Thing;
73
+ export declare const TOPIC: Thing;
74
+ export declare const MESSAGE: Thing;
75
+ export declare const PAGE: Thing;
76
+ /** A block of a description: drawn live, as the part it is. */
77
+ export declare const PART: {
78
+ heading: string;
79
+ noun: string;
80
+ app: string;
81
+ blocks: string[];
82
+ };
83
+ export declare const ATTACHMENT: {
84
+ name: string;
85
+ size: number;
86
+ contentType: string;
87
+ };
88
+ export declare const ATTACHMENT_FILE: {
89
+ name: string;
90
+ size: number;
91
+ contentType: string;
92
+ };
93
+ /** A file the reader cannot read: only its kind and app are known, from its address. */
94
+ export declare const UNREADABLE: {
95
+ kind: "issue";
96
+ noun: string;
97
+ app: string;
98
+ address: string;
99
+ };
100
+ /** A small picture for the attachment, drawn rather than fetched. */
101
+ export declare const PICTURE: string;
102
+ //# sourceMappingURL=fixtures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../src/widgets-2/fixtures.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE5C,uEAAuE;AACvE,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAA;AAEjE,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,YAAY,CAAA;CACrB;AAED,4EAA4E;AAC5E,MAAM,WAAW,KAAK;IACpB,0EAA0E;IAC1E,IAAI,EAAE,SAAS,GAAG,MAAM,CAAA;IACxB,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAA;IACZ,2BAA2B;IAC3B,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,0DAA0D;IAC1D,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,kGAAkG;IAClG,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,kEAAkE;IAClE,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAC9E,iCAAiC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,qDAAqD;IACrD,IAAI,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IACtC,yEAAyE;IACzE,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,MAAM,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;IACrD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,qGAAqG;IACrG,KAAK,CAAC,EAAE,SAAS,GAAG,aAAa,CAAA;CAClC;AAWD,eAAO,MAAM,KAAK,EAAE,KAanB,CAAA;AAED,eAAO,MAAM,OAAO,EAAE,KAiBrB,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,KAUnB,CAAA;AAED,eAAO,MAAM,OAAO,EAAE,KAQrB,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,KAYlB,CAAA;AAED,+DAA+D;AAC/D,eAAO,MAAM,IAAI;;;;;CAKhB,CAAA;AAED,eAAO,MAAM,UAAU;;;;CAAuE,CAAA;AAC9F,eAAO,MAAM,eAAe;;;;CAAgF,CAAA;AAE5G,wFAAwF;AACxF,eAAO,MAAM,UAAU;;;;;CAAiH,CAAA;AAExI,qEAAqE;AACrE,eAAO,MAAM,OAAO,QAIjB,CAAA"}
@@ -0,0 +1,99 @@
1
+ import { type ReactNode } from 'react';
2
+ import type { Thing } from './fixtures';
3
+ /** A piece of a sentence: words, or a link to a file. */
4
+ export type Piece = string | Thing;
5
+ /** One line of text: a link alone on its line, or a sentence of words and links. */
6
+ export type Line = Thing | Piece[];
7
+ /** Every file the lines link to, each once. */
8
+ export declare function linksIn(lines: Line[]): Thing[];
9
+ /** The file whose card goes under a message: the one it links. None when it links two or more. */
10
+ export declare function cardFileOf(lines: Line[]): Thing | undefined;
11
+ /** A message that is nothing but one link: it shows the card, not the row. */
12
+ export declare function isOnlyOneLink(lines: Line[]): boolean;
13
+ /** A file's card: a linked message draws as a message, every other file as its detailed card; loading and not available as the proposed kit draws them. */
14
+ export declare function CardOf({ thing }: {
15
+ thing: Thing;
16
+ }): import("react").JSX.Element;
17
+ export interface PlacedLinesProps {
18
+ lines: Line[];
19
+ /** In a document: the lone-line links switched to their card, by line index. */
20
+ cards?: number[];
21
+ /** In a document: a click on a lone-line link, which opens its chip menu. */
22
+ onLink?: (index: number) => void;
23
+ /** Drawn under a line, by line index: the chip menu, open. */
24
+ under?: (index: number) => ReactNode;
25
+ className?: string;
26
+ }
27
+ /** Text whose links draw by where they sit: a chip in a sentence, a row alone on its line, or (in a document) the card chosen for that line. */
28
+ export declare function PlacedLines({ lines, cards, onLink, under, className }: PlacedLinesProps): import("react").JSX.Element;
29
+ export interface CardUnderProps {
30
+ thing: Thing;
31
+ /** The ✕ that removes it: under the message box before sending, or the author's own on a sent message. */
32
+ onRemove?: () => void;
33
+ /** On a sent message the ✕ shows on hover; under the box it always shows. */
34
+ removeOnHover?: boolean;
35
+ className?: string;
36
+ }
37
+ /** The one file's card under a message, and the ✕ that removes it. */
38
+ export declare function CardUnder({ thing, onRemove, removeOnHover, className }: CardUnderProps): import("react").JSX.Element;
39
+ export interface PlacedMessageProps {
40
+ lines: Line[];
41
+ /** The card was removed with ✕: before sending, or by the author afterwards. */
42
+ removed?: boolean;
43
+ /** Draws the ✕; without it the card shows with none, as to anyone but the author. */
44
+ onRemove?: () => void;
45
+ removeOnHover?: boolean;
46
+ /**
47
+ * An old message, sent before Widgets 2 with a `compact` tag for each of
48
+ * these: no card was added to it, and each still draws as a row under it.
49
+ */
50
+ oldCompact?: Thing[];
51
+ className?: string;
52
+ }
53
+ /**
54
+ * A message's text, and under it the one file's card. A file with its card
55
+ * under the message draws no row in it (a chip in a sentence still draws), so
56
+ * a message that is only one link shows its card alone.
57
+ */
58
+ export declare function PlacedMessage({ lines, removed, onRemove, removeOnHover, oldCompact, className }: PlacedMessageProps): import("react").JSX.Element;
59
+ /** A sent message whose author can remove its card with ✕, live: try it. */
60
+ export declare function SentMessage({ lines, author, className }: {
61
+ lines: Line[];
62
+ author?: boolean;
63
+ className?: string;
64
+ }): import("react").JSX.Element;
65
+ export interface ChipMenuProps {
66
+ thing: Thing;
67
+ /**
68
+ * A lone-line link offers its card; a chip in a sentence offers Open only,
69
+ * and so does a link to what has no card worth choosing (a Folder, a file
70
+ * that is not a picture).
71
+ */
72
+ alone?: boolean;
73
+ shownAs?: 'row' | 'card';
74
+ onShowAs?: (as: 'row' | 'card') => void;
75
+ onOpen?: () => void;
76
+ }
77
+ /** What a link in a document offers its writer: Open, and on a lone-line link of a kind that has one, its card in that line's place. */
78
+ export declare function ChipMenu({ thing, alone, shownAs, onShowAs, onOpen }: ChipMenuProps): import("react").JSX.Element;
79
+ /** A document's text with its chip menu, live: click a lone-line link, then choose Row or Card. */
80
+ export declare function PlacedDocument({ lines, initialCards, className }: {
81
+ lines: Line[];
82
+ initialCards?: number[];
83
+ className?: string;
84
+ }): import("react").JSX.Element;
85
+ /**
86
+ * A description's and a page's `/` menu with the widget entry (Miky's QA note,
87
+ * 15 Oct: "`/` section where you can use `[` to insert a widget"). Format rows
88
+ * shortened to three; Insert as the app has it, plus the link.
89
+ */
90
+ export declare function SlashMenuWithLink({ file, table }: {
91
+ file?: boolean;
92
+ table?: boolean;
93
+ }): import("react").JSX.Element;
94
+ /** The `[` list the widget entry opens: the files to link, each led by its kind's icon. */
95
+ export declare function LinkPicker({ files, query }: {
96
+ files: Thing[];
97
+ query?: string;
98
+ }): import("react").JSX.Element;
99
+ //# sourceMappingURL=places.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"places.d.ts","sourceRoot":"","sources":["../../src/widgets-2/places.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,130 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { Status, Thing } from './fixtures';
3
+ /** A status as its shape: Ship's icons, which read without colour. */
4
+ export declare function StatusMark({ status }: {
5
+ status: Status;
6
+ }): import("react").JSX.Element;
7
+ /** The icon for a kind. A page gets its own (proposed): today every app draws it as "another app's file". */
8
+ export declare function ThingIcon({ kind, size, tone }: {
9
+ kind: Thing['kind'];
10
+ size?: 14 | 16;
11
+ tone?: 'secondary' | 'inherit';
12
+ }): import("react").JSX.Element;
13
+ /**
14
+ * Progress as a small ring with the count beside it as a label (Miky, 15 Oct,
15
+ * second round: the ring with the count inside was too big).
16
+ */
17
+ export declare function ProgressRing({ done, total }: {
18
+ done: number;
19
+ total: number;
20
+ }): import("react").JSX.Element;
21
+ export interface ReferenceChipProps {
22
+ thing: Thing;
23
+ state?: 'ready' | 'loading' | 'unavailable';
24
+ /** Hovering the chip shows the detailed card. */
25
+ preview?: boolean;
26
+ }
27
+ /**
28
+ * A link in running text: the icon (or the author's face), the key, the
29
+ * title cut at 24ch, the status as its shape. Loading keeps the icon (the
30
+ * kind is known from the address); not available says so in words.
31
+ */
32
+ export declare function ReferenceChip({ thing, state, preview }: ReferenceChipProps): import("react").JSX.Element;
33
+ export type CardLayout = 'compact' | 'detailed';
34
+ /** Compact: one 36px line. Every kind, every app. Hovering it shows the detailed card. */
35
+ export declare function CompactCard({ thing, preview }: {
36
+ thing: Thing;
37
+ preview?: boolean;
38
+ }): import("react").JSX.Element;
39
+ /**
40
+ * Detailed: what compact cannot hold. The header is compact's line (icon, key,
41
+ * title as the link; a project's ring or a topic's members in the corner),
42
+ * then the summary, the kind's own extras (a project's issues, a topic's
43
+ * latest conversation), and a footer: the pickers and the comments for an
44
+ * issue or a project, who and when for a page and a topic.
45
+ *
46
+ * `bare` drops the card's frame, for the hover preview, which draws the
47
+ * package's one elevated box around it.
48
+ */
49
+ export declare function DetailedCard({ thing, bare, readOnly }: {
50
+ thing: Thing;
51
+ bare?: boolean;
52
+ readOnly?: boolean;
53
+ }): import("react").JSX.Element;
54
+ /** The detailed card, on hover over a chip or a compact card: the package's preview card. */
55
+ export declare function HoverPreview({ thing, block, children }: {
56
+ thing: Thing;
57
+ block?: boolean;
58
+ children: ReactNode;
59
+ }): import("react").JSX.Element;
60
+ /** The hover preview drawn open, for a still picture of it: the same box PreviewCard draws. */
61
+ export declare function HoverPreviewOpen({ thing }: {
62
+ thing: Thing;
63
+ }): import("react").JSX.Element;
64
+ /**
65
+ * A linked message, detailed: a card, the frame every other detailed card has
66
+ * (Miky, 15 Oct: "card it is", over a quote). The time is the link.
67
+ */
68
+ export declare function MessageCard({ thing }: {
69
+ thing: Thing;
70
+ }): import("react").JSX.Element;
71
+ /** What a kind's detailed card will hold, known before it loads (the kind is in the address). */
72
+ export interface LoadingShape {
73
+ subtitle?: boolean;
74
+ summary?: boolean;
75
+ rows?: number;
76
+ preview?: boolean;
77
+ ring?: boolean;
78
+ footer?: 'pickers' | 'people' | 'line' | 'none';
79
+ }
80
+ /** The shape a thing's detailed card takes, for its placeholder. */
81
+ export declare function loadingShapeOf(thing: Thing): LoadingShape;
82
+ /**
83
+ * Loading: the card it will become, drawn in bars, at the card's own height,
84
+ * so the conversation does not jump when it arrives.
85
+ */
86
+ export declare function CardLoading({ kind, layout, shape }: {
87
+ kind: Thing['kind'];
88
+ layout: CardLayout;
89
+ shape?: LoadingShape;
90
+ }): import("react").JSX.Element;
91
+ /**
92
+ * Not available: one line, at compact's height, whichever layout was chosen.
93
+ * Deleted and unreadable read the same (Widgets 2, Not in scope). Here the
94
+ * way out stays: there is no title to click, and the app it lives in may
95
+ * still open it for you.
96
+ */
97
+ export declare function CardUnavailable({ kind, noun, app }: {
98
+ kind: Thing['kind'];
99
+ noun: string;
100
+ app: string;
101
+ }): import("react").JSX.Element;
102
+ /**
103
+ * A block of a description, shared live (a part). No compact or detailed:
104
+ * a pasted block link inserts the part itself (the-author-chooses-a-links-card,
105
+ * Accepted). The same header as a detailed card: the key and the title of
106
+ * the file it is part of, as the link.
107
+ */
108
+ export declare function PartCard({ kind, heading, partKey, children, state, noun, app }: {
109
+ kind: Thing['kind'];
110
+ heading: string;
111
+ partKey?: string;
112
+ children?: ReactNode;
113
+ state?: 'ready' | 'loading' | 'unavailable';
114
+ noun: string;
115
+ app: string;
116
+ }): import("react").JSX.Element;
117
+ /**
118
+ * A comment's anchor: the part it is about, quoted above the comment.
119
+ * Unchanged from today (the two apps already agree), with the deleted line in
120
+ * the same muted voice as "not available.".
121
+ */
122
+ export declare function CommentAnchor({ text }: {
123
+ text?: string;
124
+ }): import("react").JSX.Element;
125
+ /** An attachment's chip: a paperclip and the file's name. */
126
+ export declare function AttachmentChip({ name, state }: {
127
+ name: string;
128
+ state?: 'ready' | 'loading' | 'unavailable';
129
+ }): import("react").JSX.Element;
130
+ //# sourceMappingURL=proposed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proposed.d.ts","sourceRoot":"","sources":["../../src/widgets-2/proposed.tsx"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAatC,OAAO,KAAK,EAAE,MAAM,EAAgB,KAAK,EAAE,MAAM,YAAY,CAAA;AAc7D,sEAAsE;AACtE,wBAAgB,UAAU,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,+BAOxD;AAQD,6GAA6G;AAC7G,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,IAAS,EAAE,IAAkB,EAAE,EAAE;IAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAAC,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC;IAAC,IAAI,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;CAAE,+BAGzI;AAOD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,+BAc5E;AA0FD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,KAAK,CAAA;IACZ,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,aAAa,CAAA;IAC3C,iDAAiD;IACjD,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAQD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,KAAe,EAAE,OAAe,EAAE,EAAE,kBAAkB,+BAuB5F;AAID,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,UAAU,CAAA;AAE/C,0FAA0F;AAC1F,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,OAAe,EAAE,EAAE;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,+BAwC1F;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,IAAY,EAAE,QAAe,EAAE,EAAE;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,+BAqF1H;AAED,6FAA6F;AAC7F,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,KAAa,EAAE,QAAQ,EAAE,EAAE;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,+BAOtH;AAED,+FAA+F;AAC/F,wBAAgB,gBAAgB,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE,+BAM3D;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE,+BAatD;AAID,iGAAiG;AACjG,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAA;CAChD;AAED,oEAAoE;AACpE,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,YAAY,CASzD;AAOD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAU,EAAE,EAAE;IAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAAC,MAAM,EAAE,UAAU,CAAC;IAAC,KAAK,CAAC,EAAE,YAAY,CAAA;CAAE,+BAoE1H;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;IAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,+BAYtG;AAID;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAe,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;IAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,aAAa,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,+BAalP;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,+BAOxD;AAID,6DAA6D;AAC7D,wBAAgB,cAAc,CAAC,EAAE,IAAI,EAAE,KAAe,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,aAAa,CAAA;CAAE,+BAoBtH"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * `@estiva-app/ui/widgets-2` — the Widgets 2 prototype, unlisted (WID-3).
3
+ *
4
+ * Published only as a `concept` prerelease from `concept/widgets-2`, so Peek,
5
+ * Ship and Leaf can draw every place a widget appears in their own Storybooks
6
+ * from one copy, the one Katerina's look pass changes. Never in a release: the
7
+ * build project shapes the real exports once the stories are approved.
8
+ */
9
+ export * from './widgets-2/proposed';
10
+ export * from './widgets-2/fixtures';
11
+ export * from './widgets-2/places';
12
+ //# sourceMappingURL=widgets-2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widgets-2.d.ts","sourceRoot":"","sources":["../src/widgets-2.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA"}