@naniteninja/dashboard-components-lib 2.1.87 → 2.1.88

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/index.d.ts CHANGED
@@ -2767,6 +2767,8 @@ declare class ClientViewportComponent extends BaseViewportComponent implements O
2767
2767
  private handoffMessages$;
2768
2768
  clientHomeConfig: IHomeDashboardInputs;
2769
2769
  traitVisualVisible: boolean;
2770
+ profileComparisonVisible: boolean;
2771
+ private traitVisualResizeDebounceTimer?;
2770
2772
  private _traitVisualNodes;
2771
2773
  get traitVisualNodes(): INodeData[];
2772
2774
  set traitVisualNodes(value: INodeData[]);
@@ -2869,6 +2871,7 @@ declare class ClientViewportComponent extends BaseViewportComponent implements O
2869
2871
  protected resolveInitialSpiderDataset(item: PrefMatchManagerItem, _itemIndex: number): IDataset | undefined;
2870
2872
  protected afterSpiderPreferencesReset(): void;
2871
2873
  protected afterSpiderPreferencesApplied(): void;
2874
+ private cycleProfileComparison;
2872
2875
  static ɵfac: i0.ɵɵFactoryDeclaration<ClientViewportComponent, never>;
2873
2876
  static ɵcmp: i0.ɵɵComponentDeclaration<ClientViewportComponent, "lib-client-viewport", never, { "config": { "alias": "config"; "required": false; }; "showViewportControls": { "alias": "showViewportControls"; "required": false; }; "showViewportHeader": { "alias": "showViewportHeader"; "required": false; }; "showViewportFooter": { "alias": "showViewportFooter"; "required": false; }; "activePage": { "alias": "activePage"; "required": false; }; "enablePageRouting": { "alias": "enablePageRouting"; "required": false; }; "pageRouteQueryParamKey": { "alias": "pageRouteQueryParamKey"; "required": false; }; "pageRouteParamKey": { "alias": "pageRouteParamKey"; "required": false; }; "pageRouteSegmentName": { "alias": "pageRouteSegmentName"; "required": false; }; }, { "back": "back"; "tabSettingsClick": "tabSettingsClick"; "activeIndexChange": "activeIndexChange"; "activePageChange": "activePageChange"; "addMessage": "addMessage"; }, never, never, false, never>;
2874
2877
  }
@@ -3090,6 +3093,7 @@ declare class MatcherViewportComponent extends BaseViewportComponent implements
3090
3093
  profileData: Profile | undefined;
3091
3094
  profileComparisonConfig: IProfileConfig;
3092
3095
  traitVisualVisible: boolean;
3096
+ profileComparisonVisible: boolean;
3093
3097
  private traitVisualResizeDebounceTimer?;
3094
3098
  traitVisualNodes: INodeData[];
3095
3099
  traitVisualAttrWeights: number[];
@@ -3230,6 +3234,7 @@ declare class MatcherViewportComponent extends BaseViewportComponent implements
3230
3234
  * recreate tv-trait-visual-canvas so it remounts into a correctly-sized
3231
3235
  * container. Waits `delay`ms so any pending layout recalculations settle.
3232
3236
  */
3237
+ private cycleProfileComparison;
3233
3238
  private cycleTraitVisualCanvas;
3234
3239
  private attachTraitVisualResizeObserver;
3235
3240
  private detachTraitVisualResizeObserver;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@naniteninja/dashboard-components-lib",
3
- "version": "2.1.87",
3
+ "version": "2.1.88",
4
4
  "author": "naniteninja",
5
5
  "repository": {
6
6
  "type": "git"
@@ -38,7 +38,9 @@
38
38
  "swiper": "^11.2.10",
39
39
  "tslib": "^2.3.0"
40
40
  },
41
- "sideEffects": false,
41
+ "sideEffects": [
42
+ "./src/lib/polyfills/localize.ts"
43
+ ],
42
44
  "module": "fesm2022/naniteninja-dashboard-components-lib.mjs",
43
45
  "typings": "index.d.ts",
44
46
  "exports": {
@@ -133,6 +133,10 @@
133
133
  min-width: auto;
134
134
  border: none;
135
135
  cursor: pointer;
136
+ transition:
137
+ background 0.2s cubic-bezier(0.22, 1, 0.36, 1),
138
+ box-shadow 0.2s cubic-bezier(0.22, 1, 0.36, 1),
139
+ transform 0.15s cubic-bezier(0.22, 1, 0.36, 1); // 287
136
140
  img {
137
141
  margin: 5px 5px 0 0;
138
142
  width: 18px;
@@ -151,11 +155,6 @@
151
155
  outline-offset: 2px; // 286
152
156
  }
153
157
 
154
- transition:
155
- background 0.2s cubic-bezier(0.22, 1, 0.36, 1),
156
- box-shadow 0.2s cubic-bezier(0.22, 1, 0.36, 1),
157
- transform 0.15s cubic-bezier(0.22, 1, 0.36, 1); // 287
158
-
159
158
  &:active {
160
159
  box-shadow:
161
160
  0px 5px 5px -3px rgba(0, 0, 0, 0.2),
package/README.md DELETED
@@ -1,99 +0,0 @@
1
- # @naniteninja/dashboard-components-lib
2
-
3
- Canonical source of truth for shared TypeScript types, enums, and Angular presentational components used across the Cyrano ecosystem.
4
-
5
- ## Role in the Ecosystem
6
-
7
- ```
8
- Blackbox (Python) → CyranoServer (NestJS) → Cyrano (Angular) → dashboard-components-lib
9
- wire types wire envelopes host state canonical types + components
10
- ```
11
-
12
- This library owns the **canonical TypeScript definitions** consumed by:
13
- - **CyranoServer** (mirrors types for parity; contract-tested via `contract-alignment.spec.ts`)
14
- - **Cyrano** (imports directly via `@naniteninja/dashboard-components-lib`)
15
- - **Blackbox** (wire equivalence via Python TypedDicts mirroring these interfaces)
16
-
17
- ## Canonical Types
18
-
19
- ### Core Messaging
20
-
21
- | Type | File | Purpose |
22
- |------|------|---------|
23
- | `IMessage` | `interfaces/message.interface.ts` | Fundamental message unit |
24
- | `IAttachment` | `interfaces/message-attachment.interface.ts` | Message media |
25
- | `ISendOptionsMessage` | `interfaces/send-options-message.interface.ts` | Send timing preferences |
26
- | `IChatSuggestion` | `interfaces/chat-suggestion.interface.ts` | LLM suggestion entry |
27
- | `SenderTypes` | `enums/sender-types.enum.ts` | `user` / `other` enum |
28
- | `SendMessageType` | `enums/type-send-message.enum.ts` | Send timing enum |
29
- | `MatcherStatuses` | `enums/matcher-statuses.enum.ts` | Pipeline status funnel |
30
-
31
- ### Dashboard Models
32
-
33
- | Type | File | Purpose |
34
- |------|------|---------|
35
- | `IProspectData` | `interfaces/prospect-data.interface.ts` | Chat/prospect card payload |
36
- | `ILibClientMatchOverview` | `interfaces/client-match-overview.interface.ts` | Client match overview envelope |
37
- | `IDashboardMatchRequest` | `interfaces/dashboard-match-request.interface.ts` | Match request metadata |
38
- | `ISchedulerEvent` | `interfaces/scheduler.event.interface.ts` | Calendar events |
39
- | `IChartData` | `interfaces/chart-data.interface.ts` | Compatibility chart data |
40
- | `IConversationFlag` | `interfaces/conversation-flag.interface.ts` | Unresponsive/redelegation flags |
41
-
42
- ### Enums
43
-
44
- | Enum | File | Purpose |
45
- |------|------|---------|
46
- | `CONVERSATION_FLAG` | `enums/conversation-flag.enum.ts` | Unresponsive / redelegation |
47
- | `COUNTER_FLAG_BASE` | `enums/counter-flag-base.enum.ts` | Flag timing base |
48
-
49
- ## Key Components
50
-
51
- | Component | Selector | Purpose |
52
- |-----------|----------|---------|
53
- | `ChatComponent` | `lib-chat` | Message list + input with virtual scroll |
54
- | `ClientHomeComponent` | `lib-client-home` | Client dashboard shell |
55
- | `ClientViewportComponent` | `lib-client-viewport` | Tabbed viewport (chat, scheduler, suggestions) |
56
- | `MatcherViewportComponent` | `lib-matcher-viewport` | Matcher dashboard viewport |
57
- | `DashboardSwipeableTabsComponent` | `lib-dashboard-swipeable-tabs` | Prospect card swipe strip |
58
- | `MatcherStatusesComponent` | `lib-matcher-statuses` | Status milestone ladder |
59
- | `ChatSuggestionComponent` | `lib-chat-suggestion` | AI suggestion chips |
60
-
61
- ## Key Services
62
-
63
- | Service | Purpose |
64
- |---------|---------|
65
- | `ChatService` | `transformMessages()` — groups messages by date for rendering |
66
- | `CalendarUtilsService` | Calendar event helpers |
67
- | `ProgressTickerService` | Progress ring animation |
68
-
69
- ## Contract Ownership Rules
70
-
71
- 1. **New shared types** belong here if consumed by UI components
72
- 2. **CyranoServer** maintains compile-time mirrors validated by `contract-alignment.spec.ts`
73
- 3. **Cyrano** imports directly; never forks a parallel interface
74
- 4. **Blackbox** mirrors via Python TypedDicts in `shared_web_utils/base/typed_payloads.py`
75
-
76
- ## Adding a New Contract
77
-
78
- 1. Define the interface/enum in `src/lib/interfaces/` or `src/lib/enums/`
79
- 2. Export from `src/public-api.ts`
80
- 3. Add a mirror to CyranoServer's `contract-alignment.spec.ts` with compile-time assertion
81
- 4. Update `FIELD_CONSISTENCY_MATRIX.md` in the CyranoServer docs
82
- 5. If the type crosses the Python boundary, add a TypedDict in Blackbox's `typed_payloads.py`
83
-
84
- ## Development
85
-
86
- ```bash
87
- # Build the library
88
- ng build dashboard-components-lib
89
-
90
- # Run tests
91
- ng test dashboard-components-lib
92
- ```
93
-
94
- ## Related Documentation
95
-
96
- - `cyranoserver/docs/CANONICAL_MESSAGING_CONTRACTS.md` — full contract reference
97
- - `cyranoserver/docs/FIELD_CONSISTENCY_MATRIX.md` — cross-repo field comparison
98
- - `cyranoserver/docs/CROSS_REPO_TYPE_OWNERSHIP.md` — ownership map
99
- - `cyranoserver/docs/TESTING_CONTRACTS.md` — test enforcement matrix