@estiva-app/ui 0.53.0 → 0.54.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 (46) hide show
  1. package/dist/NavItem.d.ts +14 -1
  2. package/dist/NavItem.d.ts.map +1 -1
  3. package/dist/NavTree.d.ts +93 -13
  4. package/dist/NavTree.d.ts.map +1 -1
  5. package/dist/UnreadDot.d.ts +12 -0
  6. package/dist/UnreadDot.d.ts.map +1 -0
  7. package/dist/eslint/index.js +1 -1
  8. package/dist/eslint/index.js.map +2 -2
  9. package/dist/eslint/no-native-title.d.ts +1 -1
  10. package/dist/eslint/no-native-title.d.ts.map +1 -1
  11. package/dist/gates/{chunk-FIBZLYQI.js → chunk-SNYYAFZS.js} +8 -1
  12. package/dist/gates/chunk-SNYYAFZS.js.map +7 -0
  13. package/dist/gates/create-app.d.ts.map +1 -1
  14. package/dist/gates/create-app.js +1 -1
  15. package/dist/gates/index.js +1 -1
  16. package/dist/index.d.ts +2 -1
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +215 -141
  19. package/dist/index.js.map +4 -4
  20. package/dist/looks.d.ts +1 -1
  21. package/dist/looks.d.ts.map +1 -1
  22. package/package.json +1 -1
  23. package/registry.json +154 -11
  24. package/src/NavItem.mdx +14 -1
  25. package/src/NavItem.stories.tsx +15 -0
  26. package/src/NavItem.test.tsx +31 -0
  27. package/src/NavItem.tsx +49 -12
  28. package/src/NavTree.mdx +25 -0
  29. package/src/NavTree.stories.tsx +57 -1
  30. package/src/NavTree.test.tsx +78 -1
  31. package/src/NavTree.tsx +175 -40
  32. package/src/SectionLabel.stories.tsx +2 -3
  33. package/src/UnreadDot.mdx +57 -0
  34. package/src/UnreadDot.stories.tsx +22 -0
  35. package/src/UnreadDot.test.tsx +17 -0
  36. package/src/UnreadDot.tsx +17 -0
  37. package/src/eslint/no-native-title.ts +1 -1
  38. package/src/gates/create-app.test.ts +8 -0
  39. package/src/gates/create-app.ts +7 -0
  40. package/src/index.ts +2 -1
  41. package/src/looks.ts +2 -1
  42. package/src/registry/registry.test.ts +5 -5
  43. package/stories/Choosing.mdx +1 -0
  44. package/tailwind-preset.js +1 -0
  45. package/tokens.css +5 -0
  46. package/dist/gates/chunk-FIBZLYQI.js.map +0 -7
package/dist/NavItem.d.ts CHANGED
@@ -26,6 +26,15 @@ import { type ComponentPropsWithoutRef, type ReactNode } from 'react';
26
26
  * `hint` is shown only while the row is pointed at or focused, left of the
27
27
  * count — a neutral `Chip`, typically. It takes its own room while it shows,
28
28
  * so the label ends with "…" before it instead of running under it.
29
+ *
30
+ * `unread` brightens the row's words and icon, sets the label in medium, and
31
+ * draws the `UnreadDot` at the right; `urgent` with it draws the warning badge
32
+ * in the dot's place (Katerina, 2 October: Peek's row, moved in). The ⋮ lands
33
+ * on whatever is in that place, and with nothing there it takes no room until
34
+ * the row is pointed at, so a label at rest keeps the row's whole width.
35
+ *
36
+ * Active is `bg-nav-active`, the current row in a sidebar, which each theme
37
+ * sets: the selected tab's neutral fill in most, Signal's blue in Signal.
29
38
  */
30
39
  export interface NavItemProps extends Omit<ComponentPropsWithoutRef<'a'>, 'href' | 'children'> {
31
40
  label: string;
@@ -43,6 +52,10 @@ export interface NavItemProps extends Omit<ComponentPropsWithoutRef<'a'>, 'href'
43
52
  menuLabel?: string;
44
53
  /** Shown only while the row is pointed at or focused, left of the count: a neutral `Chip`, typically. */
45
54
  hint?: ReactNode;
55
+ /** Something new here: brighter words, the label in medium, and the `UnreadDot` at the right. Say so in the row's own words for assistive tech too. */
56
+ unread?: boolean;
57
+ /** With `unread`: the warning badge in the dot's place. */
58
+ urgent?: boolean;
46
59
  /** Rows under this one, folding under it: `NavItem`s. While the row is pointed at or focused, its icon becomes the arrow. */
47
60
  children?: ReactNode;
48
61
  /** With `children`: open unless told otherwise. */
@@ -52,5 +65,5 @@ export interface NavItemProps extends Omit<ComponentPropsWithoutRef<'a'>, 'href'
52
65
  onOpenChange?: (open: boolean) => void;
53
66
  className?: string;
54
67
  }
55
- export declare function NavItem({ label, href, count, countLabel, active, icon, menu, menuLabel, hint, children, defaultOpen, open: openProp, onOpenChange, className, ...props }: NavItemProps): import("react").JSX.Element;
68
+ export declare function NavItem({ label, href, count, countLabel, active, icon, menu, menuLabel, hint, unread, urgent, children, defaultOpen, open: openProp, onOpenChange, className, ...props }: NavItemProps): import("react").JSX.Element;
56
69
  //# sourceMappingURL=NavItem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NavItem.d.ts","sourceRoot":"","sources":["../src/NavItem.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,wBAAwB,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAStF;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAC5F,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,wBAAwB;IACxB,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,4GAA4G;IAC5G,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,yGAAyG;IACzG,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,6HAA6H;IAC7H,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,mDAAmD;IACnD,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,kDAAkD;IAClD,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACtC,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,OAAO,CAAC,EACtB,KAAK,EACL,IAAI,EACJ,KAAK,EACL,UAAU,EACV,MAAc,EACd,IAAI,EACJ,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,WAAkB,EAClB,IAAI,EAAE,QAAQ,EACd,YAAY,EACZ,SAAS,EACT,GAAG,KAAK,EACT,EAAE,YAAY,+BA8Hd"}
1
+ {"version":3,"file":"NavItem.d.ts","sourceRoot":"","sources":["../src/NavItem.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,wBAAwB,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAUtF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAC5F,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,wBAAwB;IACxB,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,4GAA4G;IAC5G,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,yGAAyG;IACzG,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,uJAAuJ;IACvJ,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,2DAA2D;IAC3D,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,6HAA6H;IAC7H,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,mDAAmD;IACnD,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,kDAAkD;IAClD,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACtC,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,OAAO,CAAC,EACtB,KAAK,EACL,IAAI,EACJ,KAAK,EACL,UAAU,EACV,MAAc,EACd,IAAI,EACJ,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,MAAc,EACd,MAAc,EACd,QAAQ,EACR,WAAkB,EAClB,IAAI,EAAE,QAAQ,EACd,YAAY,EACZ,SAAS,EACT,GAAG,KAAK,EACT,EAAE,YAAY,+BAwId"}
package/dist/NavTree.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- import type { MouseEvent, ReactNode } from 'react';
1
+ import { type MouseEvent, type ReactNode } from 'react';
2
+ import { type SectionAction } from './SectionHeader';
2
3
  /** One row of the tree, and the rows under it. */
3
4
  export interface NavTreeNode {
4
5
  id: string;
@@ -12,38 +13,117 @@ export interface NavTreeNode {
12
13
  countLabel?: string;
13
14
  /** Shown only while the row is pointed at or focused, left of the count: a neutral `Chip`, typically. */
14
15
  hint?: ReactNode;
16
+ /** Something new here: NavItem's `unread`. */
17
+ unread?: boolean;
18
+ /** With `unread`: the warning badge in the dot's place. */
19
+ urgent?: boolean;
15
20
  /** The row's "More options" menu: `MenuItem`s. */
16
21
  menu?: ReactNode;
17
- /** Rows under this one. Their row folds them; open unless `defaultOpen` says otherwise. */
18
- children?: NavTreeNode[];
22
+ /**
23
+ * Rows under this one. `null` while they are being read: the row has its
24
+ * arrow, and a skeleton under it once open. Absent with `hasChildren`, the
25
+ * same — for rows read only when the row opens.
26
+ */
27
+ children?: NavTreeNode[] | null;
28
+ /** The row has rows under it that are not read yet: it gets its arrow, and `onOpenChange` says when to read them. */
29
+ hasChildren?: boolean;
30
+ /** Said under the row, level with its rows, in place of them: "Nothing in this yet.", "This could not be read." The caller's words. */
31
+ childrenMessage?: string;
19
32
  defaultOpen?: boolean;
33
+ /** The caller owns whether its rows are open. */
34
+ open?: boolean;
35
+ onOpenChange?: (open: boolean) => void;
20
36
  }
21
37
  /** A group heading over its rows: the top of the tree. */
22
38
  export interface NavTreeGroup {
23
39
  id: string;
24
40
  title: string;
25
- nodes: NavTreeNode[];
41
+ /** The rows. `null` while they are being read: a skeleton in their place. */
42
+ nodes: NavTreeNode[] | null;
43
+ /** Said in the rows' place, level with them: "Nothing in this yet.", "This could not be read." The caller's words. */
44
+ message?: string;
45
+ /** Beside the title, always shown: an `UnreadDot`, typically. */
46
+ trailing?: ReactNode;
47
+ /** Beside the title, shown on hover or focus: "Open", typically. */
48
+ actions?: SectionAction[];
49
+ defaultOpen?: boolean;
50
+ /** The caller owns whether the group is open. */
51
+ open?: boolean;
52
+ onOpenChange?: (open: boolean) => void;
53
+ /**
54
+ * The pointer rests on the group, or the keyboard reaches it: read its rows
55
+ * now, so opening it draws them. Resting, not passing — a pointer sweeping
56
+ * down the column calls nothing.
57
+ */
58
+ onIntent?: () => void;
26
59
  }
27
60
  export interface NavTreeProps {
28
61
  /** The quiet label over the groups. Absent, none is drawn. */
29
62
  title?: string;
30
- /** `null` while the first read is on its way: a skeleton in the rows' place. */
31
- groups: NavTreeGroup[] | null;
63
+ /** Beside the label, always shown: "New", typically. */
64
+ titleActions?: SectionAction[];
65
+ /**
66
+ * `null` while the first read is on its way: a skeleton in the groups' place.
67
+ * Absent when the app draws its own groups as `children`.
68
+ */
69
+ groups?: NavTreeGroup[] | null;
70
+ /**
71
+ * The groups, drawn by the app: `NavTreeSection`s with `NavItem` rows — for
72
+ * an app whose groups and rows each read their own data. Used when `groups`
73
+ * is absent.
74
+ */
75
+ children?: ReactNode;
32
76
  /** The row that is current: `active`, and its group starts open. */
33
77
  selected?: string;
34
78
  /** A row was clicked. A router app prevents the default and navigates. */
35
79
  onSelect?: (node: NavTreeNode, event: MouseEvent<HTMLAnchorElement>) => void;
36
- /** What to say when there are no groups. The words are the caller's. */
37
- emptyMessage: string;
80
+ /** What to say when `groups` is empty. The words are the caller's; absent, nothing is said. */
81
+ emptyMessage?: string;
38
82
  /** Remember each group open or closed in this browser, under this key and the group's id. The app prefixes it. */
39
83
  storageKey?: string;
40
84
  }
85
+ /** How long the pointer rests on a group before `onIntent` (Peek's FolderTree, 150ms). */
86
+ export declare const NAV_TREE_INTENT_MS = 150;
87
+ export interface NavTreeSectionProps {
88
+ title: string;
89
+ /** Marks the group's box as `data-nav-group`, for tests and photo runs to find it. */
90
+ id?: string;
91
+ /** Said in the rows' place, level with them. The caller's words. */
92
+ message?: string;
93
+ /** Beside the title, always shown: an `UnreadDot`, typically. */
94
+ trailing?: ReactNode;
95
+ /** Beside the title, shown on hover or focus: "Open", typically. */
96
+ actions?: SectionAction[];
97
+ /** Open unless told otherwise. */
98
+ defaultOpen?: boolean;
99
+ /** The caller owns whether the group is open. */
100
+ open?: boolean;
101
+ onOpenChange?: (open: boolean) => void;
102
+ /** The pointer rests on the group, or the keyboard reaches it: read its rows now. */
103
+ onIntent?: () => void;
104
+ /** Its rows are being read: a skeleton in their place. */
105
+ loading?: boolean;
106
+ /** Remember it open or closed in this browser, under this key. */
107
+ storageKey?: string;
108
+ /** The rows: `NavItem`s. */
109
+ children?: ReactNode;
110
+ }
111
+ /**
112
+ * One group of a `NavTree`, for an app that draws its own: the standard
113
+ * heading folding its rows, lightly indented under its title, with the
114
+ * group's line, skeleton, actions and `onIntent`. `NavTree` draws these from
115
+ * `groups`; an app whose groups each read their own data draws them itself,
116
+ * as `NavTree`'s children.
117
+ */
118
+ export declare function NavTreeSection({ id, title, message, loading, trailing, actions, defaultOpen, open, onOpenChange, storageKey, onIntent, children }: NavTreeSectionProps): import("react").JSX.Element;
41
119
  /**
42
120
  * A sidebar's tree, from one nested list (Katerina, 2 October: Leaf's folder
43
- * tree): a quiet label, then each group as the standard heading folding its
44
- * rows, lightly indented under its title; rows under rows to any depth, each
45
- * row a link whose icon becomes the arrow that folds what is under it. Only
46
- * the group that holds the current row starts open.
121
+ * tree, then Peek's and Ship's): a quiet label with its actions, then each
122
+ * group as the standard heading folding its rows, lightly indented under its
123
+ * title; rows under rows to any depth, each row a link whose icon becomes the
124
+ * arrow that folds what is under it. Groups and rows can be read when they
125
+ * open. Only the group that holds the current row starts open, unless the
126
+ * caller owns it.
47
127
  */
48
- export declare function NavTree({ title, groups, selected, onSelect, emptyMessage, storageKey }: NavTreeProps): import("react").JSX.Element;
128
+ export declare function NavTree({ title, titleActions, groups, children, selected, onSelect, emptyMessage, storageKey }: NavTreeProps): import("react").JSX.Element;
49
129
  //# sourceMappingURL=NavTree.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NavTree.d.ts","sourceRoot":"","sources":["../src/NavTree.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAOlD,kDAAkD;AAClD,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,wBAAwB;IACxB,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,yGAAyG;IACzG,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,kDAAkD;IAClD,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,2FAA2F;IAC3F,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAA;IACxB,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,0DAA0D;AAC1D,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,WAAW,EAAE,CAAA;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,8DAA8D;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,gFAAgF;IAChF,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAA;IAC7B,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAA;IAC5E,wEAAwE;IACxE,YAAY,EAAE,MAAM,CAAA;IACpB,kHAAkH;IAClH,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AA2BD;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,YAAY,+BA8BpG"}
1
+ {"version":3,"file":"NavTree.d.ts","sourceRoot":"","sources":["../src/NavTree.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * The accent dot that says "something new here": a 6px disc centred in a
3
+ * 24px slot, so it sits where a control would and the row does not shift when
4
+ * one replaces the other (Peek's UnreadDot, moved in on 2 October, Katerina).
5
+ *
6
+ * Purely visual: the row that draws it says "unread" in its own accessible
7
+ * name, because a coloured disc reads as nothing to a screen reader.
8
+ */
9
+ export declare function UnreadDot({ className }: {
10
+ className?: string;
11
+ }): import("react").JSX.Element;
12
+ //# sourceMappingURL=UnreadDot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnreadDot.d.ts","sourceRoot":"","sources":["../src/UnreadDot.tsx"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,+BAM9D"}
@@ -1521,7 +1521,7 @@ var noFieldOutsideAForm = {
1521
1521
  };
1522
1522
 
1523
1523
  // src/eslint/no-native-title.ts
1524
- var PARTS_WITH_A_TITLE = ["CollapsibleSection", "ConfirmDialog", "ContainerHeader", "DialogShell", "ListColumn", "NavTree", "Panel", "SectionHeader"];
1524
+ var PARTS_WITH_A_TITLE = ["CollapsibleSection", "ConfirmDialog", "ContainerHeader", "DialogShell", "ListColumn", "NavTree", "NavTreeSection", "Panel", "SectionHeader"];
1525
1525
  var child4 = (node, key) => node[key];
1526
1526
  var nameOf5 = (node) => node?.type === "JSXIdentifier" || node?.type === "Identifier" ? node.name : void 0;
1527
1527
  var noNativeTitle = {