@neuronection/assistant-ui 0.8.1 → 0.9.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/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # @neuronection/assistant-ui
2
2
 
3
+ ## 0.9.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`71f029b`](https://github.com/neuronection/assistant-ui/commit/71f029b3193460db28293b811186a2f46516bf10) Thanks [@constLiakos](https://github.com/constLiakos)! - Add about module: a uniform family "about page" kit. `AboutPanel` composes hero (logo, name, tagline, version badge), creator/license/links cards, tech chips, a toned note (e.g. medical disclaimer), the `FamilyBadge` showcase and a version/copyright footer — all content via props so apps keep their i18n and data. `FamilyBadge` presents the Neuronection brand lockup (mark + wordmark), an open-source/self-hosted family blurb, a prominent hub CTA, and one tile per app (logo, name, tagline, links to its presentation page, GitHub and website where applicable) with the current app highlighted. Building blocks (`AboutCard`, `AboutLinkList`, `AboutNote`, `AboutFooterLine`, `FamilyBadge`, `TechChips`) are also exported individually.
8
+
9
+ - [`71f029b`](https://github.com/neuronection/assistant-ui/commit/71f029b3193460db28293b811186a2f46516bf10) Thanks [@constLiakos](https://github.com/constLiakos)! - Add logo module with inline brand marks for the Assistant family: `NeuronectionMark`, `NeuronectionWordmark`, `CareerMark`, `StudyMark`, `HealthMark`. All are theme-aware (`theme="light" | "dark"`, mirroring the hub artwork pairs), decorative and non-focusable by default, labeled via an optional `title` prop, sized via `size`, and use per-instance gradient ids so several marks can share a page. The wordmark also accepts `mono` for a `currentColor` fill. Brand artwork keeps its fixed fills as a deliberate exception to the semantic-token rule.
10
+
3
11
  ## 0.8.1
4
12
 
5
13
  ### Patch Changes
package/README.md CHANGED
@@ -99,6 +99,7 @@ no router — data in, events out.
99
99
 
100
100
  - [Adopting in an app](./docs/adoption.md) — the install/switchover recipe each family app follows (incl. the TW3 cascade notes)
101
101
  - [Theming](./docs/theming.md) — tokens, app themes, dark mode, styling hooks
102
+ - [Accessibility](./docs/accessibility.md) — the keyboard + ARIA contract per module (test-asserted)
102
103
  - [Adding a component](./docs/adding-a-component.md) — rules, checklist, required companions
103
104
  - [Local development](./docs/local-development.md) — live-test library changes in the family apps without publishing
104
105
  - [Publishing](./docs/publishing.md) — the Changesets release flow and CI setup
@@ -110,6 +111,7 @@ pnpm install
110
111
  pnpm dev # Ladle playground on :61000 (CSS watches alongside)
111
112
  pnpm test --watch
112
113
  pnpm verify # lint + typecheck + test + build
114
+ pnpm test:visual # Playwright screenshots of every story vs committed baselines
113
115
  ```
114
116
 
115
117
  Releases happen via [Changesets](./CONTRIBUTING.md) — CI publishes, never a
@@ -0,0 +1,11 @@
1
+ import * as React from 'react';
2
+
3
+ type LogoTheme = 'light' | 'dark';
4
+ interface LogoProps extends Omit<React.ComponentProps<'svg'>, 'children'> {
5
+ size?: number | string;
6
+ theme?: LogoTheme;
7
+ title?: string;
8
+ }
9
+ declare const useLogoId: () => string;
10
+
11
+ export { type LogoProps as L, type LogoTheme as a, useLogoId as u };
@@ -0,0 +1,124 @@
1
+ import * as React from 'react';
2
+ import * as class_variance_authority_types from 'class-variance-authority/types';
3
+ import { VariantProps } from 'class-variance-authority';
4
+ import { a as LogoTheme } from './Logo-D8DEBUoL.js';
5
+
6
+ interface AboutCardProps extends Omit<React.ComponentProps<'div'>, 'title'> {
7
+ icon?: React.ReactNode;
8
+ title: React.ReactNode;
9
+ description?: React.ReactNode;
10
+ heading?: 'h2' | 'h3' | 'h4';
11
+ }
12
+ declare const AboutCard: React.ForwardRefExoticComponent<Omit<AboutCardProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
13
+
14
+ interface AboutLinkItem {
15
+ href?: string;
16
+ label: React.ReactNode;
17
+ subtitle?: React.ReactNode;
18
+ icon?: React.ComponentType<{
19
+ className?: string;
20
+ }>;
21
+ external?: boolean;
22
+ group?: React.ReactNode;
23
+ copyValue?: string;
24
+ copyLabel?: string;
25
+ copiedLabel?: string;
26
+ }
27
+ interface AboutLinkListProps extends React.ComponentProps<'ul'> {
28
+ links: ReadonlyArray<AboutLinkItem>;
29
+ }
30
+ declare const AboutLinkList: React.ForwardRefExoticComponent<Omit<AboutLinkListProps, "ref"> & React.RefAttributes<HTMLUListElement>>;
31
+
32
+ declare const noteStyles: (props?: ({
33
+ tone?: "info" | "warning" | null | undefined;
34
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
35
+ interface AboutNoteProps extends Omit<React.ComponentProps<'div'>, 'title'>, VariantProps<typeof noteStyles> {
36
+ title?: React.ReactNode;
37
+ }
38
+ declare const AboutNote: React.ForwardRefExoticComponent<Omit<AboutNoteProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
39
+
40
+ interface AboutFooterLineProps extends React.ComponentProps<'p'> {
41
+ version?: string;
42
+ copyright?: React.ReactNode;
43
+ }
44
+ declare const AboutFooterLine: React.ForwardRefExoticComponent<Omit<AboutFooterLineProps, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
45
+
46
+ type FamilyApp = 'health' | 'career' | 'study';
47
+ interface FamilyMember {
48
+ app: FamilyApp;
49
+ name: string;
50
+ tagline?: string;
51
+ href?: string;
52
+ github?: string;
53
+ website?: string;
54
+ }
55
+ interface FamilyCreator {
56
+ name: React.ReactNode;
57
+ role?: React.ReactNode;
58
+ href?: string;
59
+ }
60
+ interface FamilyBadgeProps extends Omit<React.ComponentProps<'div'>, 'title'> {
61
+ current: FamilyApp;
62
+ members?: ReadonlyArray<FamilyMember>;
63
+ creator?: FamilyCreator;
64
+ creatorLabel?: string;
65
+ hubUrl?: string;
66
+ label?: string;
67
+ blurb?: React.ReactNode;
68
+ ctaLabel?: string;
69
+ currentLabel?: string;
70
+ githubLabel?: string;
71
+ websiteLabel?: string;
72
+ theme?: LogoTheme;
73
+ }
74
+ declare const FamilyBadge: React.ForwardRefExoticComponent<Omit<FamilyBadgeProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
75
+
76
+ interface TechChipsProps extends React.ComponentProps<'div'> {
77
+ items: ReadonlyArray<string | null | undefined>;
78
+ }
79
+ declare const TechChips: React.ForwardRefExoticComponent<Omit<TechChipsProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
80
+
81
+ interface AboutCreator {
82
+ name: React.ReactNode;
83
+ role?: React.ReactNode;
84
+ href?: string;
85
+ links?: ReadonlyArray<AboutLinkItem>;
86
+ }
87
+ interface AboutLicense {
88
+ name: string;
89
+ href?: string;
90
+ }
91
+ interface AboutNoteContent {
92
+ tone?: 'info' | 'warning';
93
+ title?: React.ReactNode;
94
+ children: React.ReactNode;
95
+ }
96
+ interface AboutPanelProps extends React.ComponentProps<'div'> {
97
+ appName: string;
98
+ familyCurrent?: FamilyApp;
99
+ logo?: React.ReactNode;
100
+ tagline?: React.ReactNode;
101
+ description?: React.ReactNode;
102
+ version?: string;
103
+ license?: AboutLicense;
104
+ licenseTitle?: string;
105
+ licenseLinkLabel?: string;
106
+ links?: ReadonlyArray<AboutLinkItem>;
107
+ linksTitle?: string;
108
+ creator?: AboutCreator;
109
+ creatorTitle?: string;
110
+ tech?: ReadonlyArray<string>;
111
+ techTitle?: string;
112
+ note?: AboutNoteContent;
113
+ familyMembers?: ReadonlyArray<FamilyMember>;
114
+ hubUrl?: string;
115
+ familyLabel?: string;
116
+ familyBlurb?: React.ReactNode;
117
+ familyCtaLabel?: string;
118
+ familyCurrentLabel?: string;
119
+ theme?: LogoTheme;
120
+ copyright?: React.ReactNode;
121
+ }
122
+ declare const AboutPanel: React.ForwardRefExoticComponent<Omit<AboutPanelProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
123
+
124
+ export { AboutCard, type AboutCardProps, type AboutCreator, AboutFooterLine, type AboutFooterLineProps, type AboutLicense, type AboutLinkItem, AboutLinkList, type AboutLinkListProps, AboutNote, type AboutNoteContent, type AboutNoteProps, AboutPanel, type AboutPanelProps, type FamilyApp, FamilyBadge, type FamilyBadgeProps, type FamilyCreator, type FamilyMember, TechChips, type TechChipsProps };
package/dist/about.js ADDED
@@ -0,0 +1,3 @@
1
+ export { AboutCard, AboutFooterLine, AboutLinkList, AboutNote, AboutPanel, FamilyBadge, TechChips } from './chunk-3QGVWTBU.js';
2
+ //# sourceMappingURL=about.js.map
3
+ //# sourceMappingURL=about.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"about.js"}
package/dist/badge.d.ts CHANGED
@@ -3,7 +3,7 @@ import * as React from 'react';
3
3
  import { VariantProps } from 'class-variance-authority';
4
4
 
5
5
  declare const badgeVariants: (props?: ({
6
- variant?: "default" | "secondary" | "outline" | "success" | "warning" | "danger" | "ai" | null | undefined;
6
+ variant?: "default" | "warning" | "success" | "danger" | "secondary" | "outline" | "ai" | null | undefined;
7
7
  } & class_variance_authority_types.ClassProp) | undefined) => string;
8
8
  interface BadgeProps extends React.ComponentProps<'span'>, VariantProps<typeof badgeVariants> {
9
9
  }
package/dist/badge.js CHANGED
@@ -1,3 +1,3 @@
1
- export { Badge, badgeVariants } from './chunk-SKTLC2XY.js';
1
+ export { Badge, badgeVariants } from './chunk-F4DP4PIM.js';
2
2
  //# sourceMappingURL=badge.js.map
3
3
  //# sourceMappingURL=badge.js.map
package/dist/card.js CHANGED
@@ -1,3 +1,3 @@
1
- export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from './chunk-HSWSYEFQ.js';
1
+ export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from './chunk-RYE5YCFF.js';
2
2
  //# sourceMappingURL=card.js.map
3
3
  //# sourceMappingURL=card.js.map
package/dist/chip-list.js CHANGED
@@ -1,3 +1,3 @@
1
- export { ChipList } from './chunk-BN3YHYYL.js';
1
+ export { ChipList } from './chunk-QUPGIPTT.js';
2
2
  //# sourceMappingURL=chip-list.js.map
3
3
  //# sourceMappingURL=chip-list.js.map