@estiva-app/ui 0.45.0 → 0.47.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 (61) hide show
  1. package/dist/CollapsibleSection.d.ts +7 -1
  2. package/dist/CollapsibleSection.d.ts.map +1 -1
  3. package/dist/InlineChip.d.ts +1 -1
  4. package/dist/NavItem.d.ts +11 -1
  5. package/dist/NavItem.d.ts.map +1 -1
  6. package/dist/SectionHeader.d.ts +9 -1
  7. package/dist/SectionHeader.d.ts.map +1 -1
  8. package/dist/eslint/index.js +2 -1
  9. package/dist/eslint/index.js.map +2 -2
  10. package/dist/eslint/no-restyled-part.d.ts.map +1 -1
  11. package/dist/gates/app-checks.d.ts.map +1 -1
  12. package/dist/gates/{chunk-P5W6O5TF.js → chunk-BS5JASHV.js} +14 -9
  13. package/dist/gates/{chunk-P5W6O5TF.js.map → chunk-BS5JASHV.js.map} +3 -3
  14. package/dist/gates/cli.js +1 -1
  15. package/dist/gates/index.js +2 -1
  16. package/dist/gates/index.js.map +2 -2
  17. package/dist/gates/status.d.ts +2 -0
  18. package/dist/gates/status.d.ts.map +1 -1
  19. package/dist/index.js +76 -37
  20. package/dist/index.js.map +2 -2
  21. package/dist/looks.d.ts +3 -0
  22. package/dist/looks.d.ts.map +1 -1
  23. package/dist/registry/{chunk-XK747STJ.js → chunk-4QWD3EBY.js} +5 -1
  24. package/dist/registry/chunk-4QWD3EBY.js.map +7 -0
  25. package/dist/registry/cli.js +4 -3
  26. package/dist/registry/cli.js.map +2 -2
  27. package/dist/registry/contract.d.ts +7 -0
  28. package/dist/registry/contract.d.ts.map +1 -1
  29. package/dist/registry/index.d.ts +1 -1
  30. package/dist/registry/index.d.ts.map +1 -1
  31. package/dist/registry/index.js +3 -1
  32. package/package.json +1 -1
  33. package/registry.json +51 -9
  34. package/skill/estiva-ui.md +14 -11
  35. package/src/Chip.tsx +1 -1
  36. package/src/CollapsibleSection.mdx +5 -0
  37. package/src/CollapsibleSection.stories.tsx +5 -0
  38. package/src/CollapsibleSection.tsx +10 -3
  39. package/src/CommandPalette.tsx +1 -1
  40. package/src/InlineChip.test.tsx +1 -1
  41. package/src/InlineChip.tsx +1 -1
  42. package/src/NavItem.mdx +9 -0
  43. package/src/NavItem.stories.tsx +23 -0
  44. package/src/NavItem.tsx +56 -6
  45. package/src/Reaction.tsx +1 -1
  46. package/src/SectionHeader.mdx +9 -0
  47. package/src/SectionHeader.stories.tsx +15 -0
  48. package/src/SectionHeader.tsx +28 -7
  49. package/src/eslint/no-restyled-part.ts +2 -1
  50. package/src/gates/app-checks.ts +1 -0
  51. package/src/gates/gates.test.ts +22 -0
  52. package/src/gates/status.ts +19 -8
  53. package/src/looks.ts +4 -0
  54. package/src/registry/cli.ts +2 -2
  55. package/src/registry/contract.test.ts +18 -2
  56. package/src/registry/contract.ts +10 -0
  57. package/src/registry/index.ts +1 -1
  58. package/src/registry/skill.test.ts +2 -0
  59. package/tailwind-preset.js +1 -0
  60. package/tokens.css +19 -4
  61. package/dist/registry/chunk-XK747STJ.js.map +0 -7
@@ -33,6 +33,12 @@ export interface CollapsibleSectionProps {
33
33
  /** Beside the title, revealed on hover or focus — `SectionHeader`'s. */
34
34
  actions?: SectionAction[];
35
35
  showActions?: 'hover' | 'always';
36
+ /**
37
+ * `heading` (default): the title is a section heading. `row`: the fold is a
38
+ * row among rows — a folder in a sidebar — and its rows sit indented under
39
+ * its title, past the chevron (`SectionHeader`'s `look`).
40
+ */
41
+ look?: 'heading' | 'row';
36
42
  /** The rows. */
37
43
  children: ReactNode;
38
44
  /** On the section's box: `mt-2` between groups, `shrink-0` in a scrolling column. */
@@ -40,5 +46,5 @@ export interface CollapsibleSectionProps {
40
46
  /** On the box the rows sit in: the gap between them. */
41
47
  contentClassName?: string;
42
48
  }
43
- export declare function CollapsibleSection({ title, defaultOpen, open: openProp, onOpenChange, storageKey, trailing, actions, showActions, children, className, contentClassName }: CollapsibleSectionProps): import("react").JSX.Element;
49
+ export declare function CollapsibleSection({ title, defaultOpen, open: openProp, onOpenChange, storageKey, trailing, actions, showActions, look, children, className, contentClassName }: CollapsibleSectionProps): import("react").JSX.Element;
44
50
  //# sourceMappingURL=CollapsibleSection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CollapsibleSection.d.ts","sourceRoot":"","sources":["../src/CollapsibleSection.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAGhD,OAAO,EAAiB,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAEnE;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAA;IACb,kCAAkC;IAClC,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,iCAAiC;IACjC,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACtC,oFAAoF;IACpF,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,wEAAwE;IACxE,OAAO,CAAC,EAAE,aAAa,EAAE,CAAA;IACzB,WAAW,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAA;IAChC,gBAAgB;IAChB,QAAQ,EAAE,SAAS,CAAA;IACnB,qFAAqF;IACrF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,wDAAwD;IACxD,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAwBD,wBAAgB,kBAAkB,CAAC,EAAE,KAAK,EAAE,WAAkB,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,EAAE,uBAAuB,+BAyBzM"}
1
+ {"version":3,"file":"CollapsibleSection.d.ts","sourceRoot":"","sources":["../src/CollapsibleSection.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAGhD,OAAO,EAAiB,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAEnE;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAA;IACb,kCAAkC;IAClC,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,iCAAiC;IACjC,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACtC,oFAAoF;IACpF,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,wEAAwE;IACxE,OAAO,CAAC,EAAE,aAAa,EAAE,CAAA;IACzB,WAAW,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAA;IAChC;;;;OAIG;IACH,IAAI,CAAC,EAAE,SAAS,GAAG,KAAK,CAAA;IACxB,gBAAgB;IAChB,QAAQ,EAAE,SAAS,CAAA;IACnB,qFAAqF;IACrF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,wDAAwD;IACxD,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAwBD,wBAAgB,kBAAkB,CAAC,EAAE,KAAK,EAAE,WAAkB,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,IAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,EAAE,uBAAuB,+BA0B3N"}
@@ -28,7 +28,7 @@ export declare const INLINE_CHIP_TONE_CLASSES: {
28
28
  /** A thing or a place — anything that is not a person. */
29
29
  readonly neutral: "bg-bg-active text-text-primary";
30
30
  /** A person. */
31
- readonly person: "bg-accent-muted text-accent-primary";
31
+ readonly person: "bg-accent-muted text-accent-text";
32
32
  /** A person, called urgently. */
33
33
  readonly urgent: "bg-warning-muted text-warning-default";
34
34
  /**
package/dist/NavItem.d.ts CHANGED
@@ -9,6 +9,12 @@ import type { ComponentPropsWithoutRef, ReactNode } from 'react';
9
9
  * count draws its zero (see Tabs) — both rulings stand, deliberately.
10
10
  *
11
11
  * Active is the same fill as a selected tab — `bg-active`, neutral.
12
+ *
13
+ * `menu` gives the row a "More options" menu (UIG-44, Katerina, 30
14
+ * September): a ⋮ that shows while the row is pointed at, focused or its
15
+ * menu is open, in the count's place — the count steps aside rather than
16
+ * sitting under it. The ⋮ is beside the link, not inside it (a button inside
17
+ * an anchor is not a button), and follows it in the Tab order.
12
18
  */
13
19
  export interface NavItemProps extends Omit<ComponentPropsWithoutRef<'a'>, 'href'> {
14
20
  label: string;
@@ -20,7 +26,11 @@ export interface NavItemProps extends Omit<ComponentPropsWithoutRef<'a'>, 'href'
20
26
  active?: boolean;
21
27
  /** 16px, stroke 1.5. */
22
28
  icon?: ReactNode;
29
+ /** The row's "More options" menu: `MenuItem`s. Absent, the row has no menu and is exactly the plain row. */
30
+ menu?: ReactNode;
31
+ /** The ⋮'s accessible name and tooltip. Default "More options for {label}". */
32
+ menuLabel?: string;
23
33
  className?: string;
24
34
  }
25
- export declare function NavItem({ label, href, count, countLabel, active, icon, className, ...props }: NavItemProps): import("react").JSX.Element;
35
+ export declare function NavItem({ label, href, count, countLabel, active, icon, menu, menuLabel, className, ...props }: NavItemProps): import("react").JSX.Element;
26
36
  //# sourceMappingURL=NavItem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NavItem.d.ts","sourceRoot":"","sources":["../src/NavItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAIhE;;;;;;;;;;GAUG;AACH,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAC/E,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,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,MAAc,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,YAAY,+BA6BlH"}
1
+ {"version":3,"file":"NavItem.d.ts","sourceRoot":"","sources":["../src/NavItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAQhE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAC/E,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,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,MAAc,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,YAAY,+BAiEnI"}
@@ -59,6 +59,14 @@ export interface SectionHeaderProps {
59
59
  * where the buttons light up on their own (UIG-14, Katerina, 19 September).
60
60
  */
61
61
  hover?: 'fill' | 'none';
62
+ /**
63
+ * `heading` (default): a section's title, the `SectionLabel`. `quiet`: a
64
+ * small grey label over a list (12px, muted) — "Folders" over the folders,
65
+ * which never reads as one of them. `row`: a row among rows — the chevron
66
+ * and the title at a row's weight and colour, as a sidebar row is (Katerina,
67
+ * 30 September: Leaf's folders, in Ship).
68
+ */
69
+ look?: 'heading' | 'quiet' | 'row';
62
70
  /**
63
71
  * What the title renders as, in Base UI's manner. A plain button with
64
72
  * `onToggle` by default; `CollapsibleSection` hands in `Collapsible.Trigger`.
@@ -66,5 +74,5 @@ export interface SectionHeaderProps {
66
74
  render?: useRender.RenderProp;
67
75
  className?: string;
68
76
  }
69
- export declare function SectionHeader({ title, chevron, isExpanded, onToggle, trailing, actions, showActions, hover, render, className }: SectionHeaderProps): import("react").JSX.Element;
77
+ export declare function SectionHeader({ title, chevron, isExpanded, onToggle, trailing, actions, showActions, hover, look, render, className }: SectionHeaderProps): import("react").JSX.Element;
70
78
  //# sourceMappingURL=SectionHeader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SectionHeader.d.ts","sourceRoot":"","sources":["../src/SectionHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAKrD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,WAAW,aAAa;IAC5B,wBAAwB;IACxB,IAAI,EAAE,SAAS,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAA;IACb,gFAAgF;IAChF,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,yCAAyC;IACzC,OAAO,CAAC,EAAE,aAAa,EAAE,CAAA;IACzB,4FAA4F;IAC5F,WAAW,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAA;IAChC;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC,UAAU,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,OAAe,EAAE,UAAiB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAqB,EAAE,KAAc,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,kBAAkB,+BA2DrL"}
1
+ {"version":3,"file":"SectionHeader.d.ts","sourceRoot":"","sources":["../src/SectionHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAMrD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,WAAW,aAAa;IAC5B,wBAAwB;IACxB,IAAI,EAAE,SAAS,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAA;IACb,gFAAgF;IAChF,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,yCAAyC;IACzC,OAAO,CAAC,EAAE,aAAa,EAAE,CAAA;IACzB,4FAA4F;IAC5F,WAAW,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAA;IAChC;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,KAAK,CAAA;IAClC;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC,UAAU,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,OAAe,EAAE,UAAiB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAqB,EAAE,KAAc,EAAE,IAAgB,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,kBAAkB,+BAuEvM"}
@@ -231,6 +231,7 @@ var PART_LOOK_PROPS = {
231
231
  Card: ["fill", "hover", "attention", "selected", "active", "hovered", "quietUntilHover", "unreadable", "clip"],
232
232
  Checkbox: ["row"],
233
233
  Chip: ["type"],
234
+ CollapsibleSection: ["look"],
234
235
  Divider: ["tone", "orientation"],
235
236
  EmptyState: ["scope"],
236
237
  FieldLine: ["tone"],
@@ -248,7 +249,7 @@ var PART_LOOK_PROPS = {
248
249
  Reaction: ["pressed"],
249
250
  ReactionPicker: ["surface"],
250
251
  RichText: ["size"],
251
- SectionHeader: ["hover"],
252
+ SectionHeader: ["hover", "look"],
252
253
  SectionLabel: ["tone", "truncate"],
253
254
  Select: ["size"],
254
255
  Tabs: ["size"],