ngwr 14.4.0 → 14.5.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.
- package/README.md +12 -6
- package/fesm2022/ngwr-breadcrumbs.mjs +2 -2
- package/fesm2022/ngwr-breadcrumbs.mjs.map +1 -1
- package/fesm2022/ngwr-cascader.mjs +15 -3
- package/fesm2022/ngwr-cascader.mjs.map +1 -1
- package/fesm2022/ngwr-color-picker.mjs +18 -2
- package/fesm2022/ngwr-color-picker.mjs.map +1 -1
- package/fesm2022/ngwr-context-menu.mjs +35 -3
- package/fesm2022/ngwr-context-menu.mjs.map +1 -1
- package/fesm2022/ngwr-date-picker.mjs +30 -2
- package/fesm2022/ngwr-date-picker.mjs.map +1 -1
- package/fesm2022/ngwr-dialog.mjs +12 -1
- package/fesm2022/ngwr-dialog.mjs.map +1 -1
- package/fesm2022/ngwr-drag-drop.mjs +2 -2
- package/fesm2022/ngwr-drag-drop.mjs.map +1 -1
- package/fesm2022/ngwr-drawer.mjs +48 -2
- package/fesm2022/ngwr-drawer.mjs.map +1 -1
- package/fesm2022/ngwr-dropdown.mjs +22 -2
- package/fesm2022/ngwr-dropdown.mjs.map +1 -1
- package/fesm2022/ngwr-graph-testing.mjs +243 -0
- package/fesm2022/ngwr-graph-testing.mjs.map +1 -0
- package/fesm2022/ngwr-graph.mjs +1112 -0
- package/fesm2022/ngwr-graph.mjs.map +1 -0
- package/fesm2022/ngwr-i18n-ar.mjs +5 -0
- package/fesm2022/ngwr-i18n-ar.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-cs.mjs +5 -0
- package/fesm2022/ngwr-i18n-cs.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-de.mjs +5 -0
- package/fesm2022/ngwr-i18n-de.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-en.mjs +25 -5
- package/fesm2022/ngwr-i18n-en.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-es.mjs +5 -0
- package/fesm2022/ngwr-i18n-es.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-fr.mjs +5 -0
- package/fesm2022/ngwr-i18n-fr.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-he.mjs +5 -0
- package/fesm2022/ngwr-i18n-he.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-hi.mjs +5 -0
- package/fesm2022/ngwr-i18n-hi.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-id.mjs +5 -0
- package/fesm2022/ngwr-i18n-id.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-it.mjs +5 -0
- package/fesm2022/ngwr-i18n-it.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-ja.mjs +5 -0
- package/fesm2022/ngwr-i18n-ja.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-ko.mjs +5 -0
- package/fesm2022/ngwr-i18n-ko.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-nl.mjs +5 -0
- package/fesm2022/ngwr-i18n-nl.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-pl.mjs +5 -0
- package/fesm2022/ngwr-i18n-pl.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-pt.mjs +5 -0
- package/fesm2022/ngwr-i18n-pt.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-ru.mjs +5 -0
- package/fesm2022/ngwr-i18n-ru.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-sv.mjs +5 -0
- package/fesm2022/ngwr-i18n-sv.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-tr.mjs +5 -0
- package/fesm2022/ngwr-i18n-tr.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-uk.mjs +5 -0
- package/fesm2022/ngwr-i18n-uk.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-vi.mjs +5 -0
- package/fesm2022/ngwr-i18n-vi.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-zh-TW.mjs +5 -0
- package/fesm2022/ngwr-i18n-zh-TW.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-zh.mjs +5 -0
- package/fesm2022/ngwr-i18n-zh.mjs.map +1 -1
- package/fesm2022/ngwr-i18n.mjs +13 -0
- package/fesm2022/ngwr-i18n.mjs.map +1 -1
- package/fesm2022/ngwr-lightbox.mjs +25 -4
- package/fesm2022/ngwr-lightbox.mjs.map +1 -1
- package/fesm2022/ngwr-list.mjs +2 -2
- package/fesm2022/ngwr-list.mjs.map +1 -1
- package/fesm2022/ngwr-mention.mjs +18 -2
- package/fesm2022/ngwr-mention.mjs.map +1 -1
- package/fesm2022/ngwr-overlay.mjs +119 -4
- package/fesm2022/ngwr-overlay.mjs.map +1 -1
- package/fesm2022/ngwr-popconfirm.mjs +19 -3
- package/fesm2022/ngwr-popconfirm.mjs.map +1 -1
- package/fesm2022/ngwr-popover-testing.mjs +22 -5
- package/fesm2022/ngwr-popover-testing.mjs.map +1 -1
- package/fesm2022/ngwr-popover.mjs +215 -27
- package/fesm2022/ngwr-popover.mjs.map +1 -1
- package/fesm2022/ngwr-segmented.mjs +34 -1
- package/fesm2022/ngwr-segmented.mjs.map +1 -1
- package/fesm2022/ngwr-select.mjs +15 -1
- package/fesm2022/ngwr-select.mjs.map +1 -1
- package/fesm2022/ngwr-table.mjs +10 -2
- package/fesm2022/ngwr-table.mjs.map +1 -1
- package/fesm2022/ngwr-toast.mjs +19 -2
- package/fesm2022/ngwr-toast.mjs.map +1 -1
- package/fesm2022/ngwr-tour.mjs +20 -6
- package/fesm2022/ngwr-tour.mjs.map +1 -1
- package/fesm2022/ngwr-tree.mjs +9 -2
- package/fesm2022/ngwr-tree.mjs.map +1 -1
- package/fesm2022/ngwr-version.mjs +1 -1
- package/fesm2022/ngwr-version.mjs.map +1 -1
- package/fesm2022/ngwr-window.mjs +18 -1
- package/fesm2022/ngwr-window.mjs.map +1 -1
- package/graph/styles/_index.scss +113 -0
- package/i18n/ar.json +5 -0
- package/i18n/cs.json +5 -0
- package/i18n/de.json +5 -0
- package/i18n/en.json +5 -0
- package/i18n/es.json +5 -0
- package/i18n/fr.json +5 -0
- package/i18n/he.json +5 -0
- package/i18n/hi.json +5 -0
- package/i18n/id.json +5 -0
- package/i18n/it.json +5 -0
- package/i18n/ja.json +5 -0
- package/i18n/ko.json +5 -0
- package/i18n/nl.json +5 -0
- package/i18n/pl.json +5 -0
- package/i18n/pt.json +5 -0
- package/i18n/ru.json +5 -0
- package/i18n/sv.json +5 -0
- package/i18n/tr.json +5 -0
- package/i18n/uk.json +5 -0
- package/i18n/vi.json +5 -0
- package/i18n/zh-TW.json +5 -0
- package/i18n/zh.json +5 -0
- package/llms-full.txt +13 -3
- package/llms.txt +20 -9
- package/mcp/providers.js +8 -2
- package/package.json +10 -1
- package/schematics/migrations/v14/index.js +90 -34
- package/schematics/migrations/v7/index.js +15 -4
- package/schematics/migrations/v8/index.js +13 -2
- package/schematics/migrations/v9/index.js +19 -10
- package/schematics/use/symbol-map.json +2 -0
- package/segmented/styles/_index.scss +8 -0
- package/skills/ngwr/SKILL.md +10 -5
- package/skills/ngwr/references/catalog.md +2 -0
- package/skills/ngwr/references/setup.md +2 -2
- package/styles.scss +1 -0
- package/table/styles/_index.scss +39 -12
- package/theme/styles/_focus.scss +7 -0
- package/types/ngwr-cascader.d.ts +7 -0
- package/types/ngwr-color-picker.d.ts +8 -0
- package/types/ngwr-context-menu.d.ts +10 -0
- package/types/ngwr-date-picker.d.ts +16 -0
- package/types/ngwr-dialog.d.ts +1 -0
- package/types/ngwr-drawer.d.ts +28 -0
- package/types/ngwr-dropdown.d.ts +9 -0
- package/types/ngwr-graph-testing.d.ts +190 -0
- package/types/ngwr-graph.d.ts +203 -0
- package/types/ngwr-i18n-en.d.ts +16 -5
- package/types/ngwr-i18n.d.ts +13 -0
- package/types/ngwr-lightbox.d.ts +15 -0
- package/types/ngwr-mention.d.ts +7 -0
- package/types/ngwr-overlay.d.ts +62 -4
- package/types/ngwr-popconfirm.d.ts +1 -0
- package/types/ngwr-popover-testing.d.ts +22 -5
- package/types/ngwr-popover.d.ts +28 -8
- package/types/ngwr-segmented.d.ts +16 -0
- package/types/ngwr-select.d.ts +7 -0
- package/types/ngwr-table.d.ts +8 -0
- package/types/ngwr-toast.d.ts +2 -0
- package/types/ngwr-tour.d.ts +6 -0
- package/types/ngwr-tree.d.ts +2 -1
- package/types/ngwr-version.d.ts +1 -1
- package/types/ngwr-window.d.ts +1 -0
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
@use '../../theme/styles' as theme;
|
|
2
|
+
|
|
3
|
+
.wr-graph {
|
|
4
|
+
// The scroller's ground and its breathing room around the drawing.
|
|
5
|
+
--wr-graph-background: var(--wr-color-surface);
|
|
6
|
+
--wr-graph-padding: 1rem;
|
|
7
|
+
// Lines and arrowheads are kept quiet beside the cards: 60% of the muted role
|
|
8
|
+
// over the surface, 2.44:1 on white and 3.47:1 on the dark canvas (token
|
|
9
|
+
// arithmetic — no contrast gate measures an SVG stroke). That is under the 3:1
|
|
10
|
+
// WCAG 1.4.11 asks of a meaningful graphic in the light theme, and it is a
|
|
11
|
+
// maintainer's call rather than an oversight: every relation a line draws is
|
|
12
|
+
// also written out for assistive technology, and a consumer who needs the
|
|
13
|
+
// stronger line restores it through this hook.
|
|
14
|
+
--wr-graph-edge-color: color-mix(in srgb, var(--wr-color-on-surface-muted) 60%, var(--wr-color-surface));
|
|
15
|
+
// A whole pixel: a fractional stroke is antialiased into a smear that changes
|
|
16
|
+
// with the device pixel ratio, where a lighter colour stays crisp everywhere.
|
|
17
|
+
--wr-graph-edge-width: 1px;
|
|
18
|
+
// The default card, drawn when no `ng-template[wrGraphNode]` is given.
|
|
19
|
+
--wr-graph-card-background: var(--wr-color-surface);
|
|
20
|
+
--wr-graph-card-color: var(--wr-color-on-surface);
|
|
21
|
+
--wr-graph-card-border: var(--wr-color-outline);
|
|
22
|
+
--wr-graph-card-radius: var(--wr-border-radius-base);
|
|
23
|
+
--wr-graph-card-padding: 0.5rem 0.75rem;
|
|
24
|
+
--wr-graph-card-font-size: var(--wr-text-sm);
|
|
25
|
+
|
|
26
|
+
display: block;
|
|
27
|
+
// A grid or flex item's automatic minimum width is its min-content width, and
|
|
28
|
+
// the stage below is sized inline to the whole drawing — so without this the
|
|
29
|
+
// host refuses to shrink, stretches its track and the PAGE scrolls sideways.
|
|
30
|
+
// Zero lets the track decide, and the viewport's `overflow: auto` takes over.
|
|
31
|
+
min-width: 0;
|
|
32
|
+
max-width: 100%;
|
|
33
|
+
font-family: var(--wr-font-family-base);
|
|
34
|
+
|
|
35
|
+
// The component scrolls, never the page. `height: 100%` lets a host with a
|
|
36
|
+
// height constrain it; with no height it simply grows to the drawing.
|
|
37
|
+
&__viewport {
|
|
38
|
+
box-sizing: border-box;
|
|
39
|
+
max-width: 100%;
|
|
40
|
+
height: 100%;
|
|
41
|
+
padding: var(--wr-graph-padding);
|
|
42
|
+
overflow: auto;
|
|
43
|
+
background: var(--wr-graph-background);
|
|
44
|
+
border-radius: var(--wr-border-radius-base);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// Sized inline from the layout, so the scroll extent is known without measuring.
|
|
48
|
+
&__stage {
|
|
49
|
+
position: relative;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
&__edges,
|
|
53
|
+
&__node {
|
|
54
|
+
position: absolute;
|
|
55
|
+
top: 0;
|
|
56
|
+
// rtl-ok: x is mirrored in TypeScript for RTL, so the origin stays the physical left edge
|
|
57
|
+
left: 0;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
&__edges {
|
|
61
|
+
overflow: visible;
|
|
62
|
+
pointer-events: none;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
&__edge {
|
|
66
|
+
fill: none;
|
|
67
|
+
stroke: var(--wr-graph-edge-color);
|
|
68
|
+
stroke-width: var(--wr-graph-edge-width);
|
|
69
|
+
stroke-linejoin: round;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// The arrowhead. Marker content inherits from the marker's own ancestors, which
|
|
73
|
+
// is why it takes the hook here rather than from the path that references it.
|
|
74
|
+
&__edges marker polygon {
|
|
75
|
+
fill: var(--wr-graph-edge-color);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
&__node {
|
|
79
|
+
box-sizing: border-box;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
&__card {
|
|
83
|
+
display: flex;
|
|
84
|
+
box-sizing: border-box;
|
|
85
|
+
align-items: center;
|
|
86
|
+
justify-content: center;
|
|
87
|
+
width: 100%;
|
|
88
|
+
height: 100%;
|
|
89
|
+
padding: var(--wr-graph-card-padding);
|
|
90
|
+
overflow: hidden;
|
|
91
|
+
color: var(--wr-graph-card-color);
|
|
92
|
+
font-size: var(--wr-graph-card-font-size);
|
|
93
|
+
line-height: 1.25;
|
|
94
|
+
text-align: center;
|
|
95
|
+
overflow-wrap: anywhere;
|
|
96
|
+
background: var(--wr-graph-card-background);
|
|
97
|
+
border: 1px solid var(--wr-graph-card-border);
|
|
98
|
+
border-radius: var(--wr-graph-card-radius);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// Each node's parents and children: read out, never drawn.
|
|
102
|
+
&__sr-only {
|
|
103
|
+
position: absolute;
|
|
104
|
+
width: 1px;
|
|
105
|
+
height: 1px;
|
|
106
|
+
padding: 0;
|
|
107
|
+
margin: -1px;
|
|
108
|
+
overflow: hidden;
|
|
109
|
+
clip: rect(0, 0, 0, 0);
|
|
110
|
+
white-space: nowrap;
|
|
111
|
+
border: 0;
|
|
112
|
+
}
|
|
113
|
+
}
|
package/i18n/ar.json
CHANGED
package/i18n/cs.json
CHANGED
package/i18n/de.json
CHANGED
package/i18n/en.json
CHANGED
package/i18n/es.json
CHANGED
package/i18n/fr.json
CHANGED
package/i18n/he.json
CHANGED
package/i18n/hi.json
CHANGED
package/i18n/id.json
CHANGED
package/i18n/it.json
CHANGED
package/i18n/ja.json
CHANGED
package/i18n/ko.json
CHANGED
package/i18n/nl.json
CHANGED
package/i18n/pl.json
CHANGED
package/i18n/pt.json
CHANGED
package/i18n/ru.json
CHANGED
package/i18n/sv.json
CHANGED
package/i18n/tr.json
CHANGED
package/i18n/uk.json
CHANGED
package/i18n/vi.json
CHANGED
package/i18n/zh-TW.json
CHANGED
package/i18n/zh.json
CHANGED
package/llms-full.txt
CHANGED
|
@@ -441,6 +441,16 @@
|
|
|
441
441
|
- import: `import { WrGradientTextHarness } from 'ngwr/gradient-text/testing'`
|
|
442
442
|
- exports: WrGradientTextHarness, WrGradientTextHarnessFilters
|
|
443
443
|
|
|
444
|
+
## ngwr/graph
|
|
445
|
+
- import: `import { WrGraph } from 'ngwr/graph'`
|
|
446
|
+
- selector: `ng-template[wrGraphNode]`, `wr-graph`
|
|
447
|
+
- exports: WrGraph, WrGraphNodeTemplate, WrGraphEdge, WrGraphNode, WrGraphNodeContext
|
|
448
|
+
- Draws any graph of blocks joined parent to child — a node can have several parents as well as several children. The layout runs in layers from top to bottom without measuring anything, so a prerendered page ships the finished picture. Display only: the graph scrolls inside its own viewport, and nothing in it is selectable.
|
|
449
|
+
|
|
450
|
+
## ngwr/graph/testing
|
|
451
|
+
- import: `import { WrGraphHarness } from 'ngwr/graph/testing'`
|
|
452
|
+
- exports: WrGraphHarness, WrGraphNodeHarness, WrGraphHarnessFilters, WrGraphNodeHarnessFilters
|
|
453
|
+
|
|
444
454
|
## ngwr/hotkey
|
|
445
455
|
- import: `import { WrHotkey } from 'ngwr/hotkey'`
|
|
446
456
|
- selector: `[wrHotkey]`
|
|
@@ -451,7 +461,7 @@
|
|
|
451
461
|
- import: `import { WrI18n } from 'ngwr/i18n'`
|
|
452
462
|
- selector: `[wrT]`
|
|
453
463
|
- exports: WrI18n, WrTPipe, WrTDirective, WR_I18N_CONFIG, DEFAULT_WR_I18N_CONFIG, WrI18nCatalog, WrI18nConfig, WrI18nConfigResolved, WrI18nParams, WrI18nMissingHandler, WR_I18N_LOADER, WrI18nLoader, WR_I18N_BASE_CATALOGS, WrI18nBaseCatalogs, WrI18nStaticLoader, WrI18nStaticCatalogs, WrI18nStaticScopedCatalogs, WrI18nHttpLoader, WrI18nHttpLoaderConfig, provideWrI18n, provideWrI18nBaseCatalogs, provideWrI18nStaticLoader, provideWrI18nHttpLoader, ProvideWrI18nOptions, useI18nText, readI18nText, useI18nFormatter
|
|
454
|
-
- Reactive i18n service. Active locale lives on a signal, catalogs load lazily through a swappable loader (HTTP or static), and double-brace placeholders interpolate at render time. Scopes let feature modules ship and load their own catalogs.
|
|
464
|
+
- Reactive i18n service. Active locale lives on a signal, catalogs load lazily through a swappable loader (HTTP or static), and double-brace placeholders interpolate at render time. Scopes let feature modules ship and load their own catalogs. Keep ngwr's own strings with `provideWrI18nBaseCatalogs` rather than spreading `wrEn` into your catalog: a spread is shallow, so any namespace you share with ngwr, e.g. `common`, `validation`, `table`, keeps only the side spread last, and the other side's keys stop resolving with nothing logged — ngwr's components fall back to English and a `wrT` read of a lost key renders the raw key.
|
|
455
465
|
|
|
456
466
|
## ngwr/i18n/ar
|
|
457
467
|
- import: `import { wrAr } from 'ngwr/i18n/ar'`
|
|
@@ -706,7 +716,7 @@
|
|
|
706
716
|
|
|
707
717
|
## ngwr/overlay
|
|
708
718
|
- import: `import { WrOutsideClick } from 'ngwr/overlay'`
|
|
709
|
-
- exports: wrAppendOverlayClose, wrMirrorOffsets, WrOutsideClick, WrOverlayContainer, provideWrOverlay, provideWrResponsiveOverlays, WR_OVERLAY, WR_OVERLAY_CONTAINER, WR_RESPONSIVE_OVERLAYS, wrPresentAsSheet, WrResponsiveOverlaysConfig
|
|
719
|
+
- exports: wrAppendOverlayClose, wrFollowDirection, wrMirrorOffsets, WrOutsideClick, WrOverlayContainer, provideWrOverlay, provideWrResponsiveOverlays, WR_OVERLAY, WR_OVERLAY_CONTAINER, WR_RESPONSIVE_OVERLAYS, wrPresentAsSheet, WrResponsiveOverlaysConfig
|
|
710
720
|
|
|
711
721
|
## ngwr/page-header
|
|
712
722
|
- import: `import { WrPageHeader } from 'ngwr/page-header'`
|
|
@@ -747,7 +757,7 @@
|
|
|
747
757
|
- import: `import { WrPopover } from 'ngwr/popover'`
|
|
748
758
|
- selector: `[wrPopover]`
|
|
749
759
|
- exports: WrPopover, WrPopoverPosition
|
|
750
|
-
- Anchored content panel. Project a template (popover) or pass a plain string (tooltip — use `mode="tooltip"`). Click
|
|
760
|
+
- Anchored content panel. Project a template (popover) or pass a plain string (tooltip — use `mode="tooltip"`). Click or hover to open; a tooltip also answers a keyboard focus. Built on CDK Overlay.
|
|
751
761
|
|
|
752
762
|
## ngwr/popover/testing
|
|
753
763
|
- import: `import { WrPopoverHarness } from 'ngwr/popover/testing'`
|
package/llms.txt
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# ngwr
|
|
2
2
|
|
|
3
3
|
> Angular UI library — standalone, signals-first, zoneless, fully tree-shakable.
|
|
4
|
-
>
|
|
4
|
+
> 227 secondary entry points, 177 component and directive classes, built on
|
|
5
5
|
> `@angular/cdk` primitives. The only runtime dependency is `tslib`. Docs and
|
|
6
6
|
> live demos: https://ngwr.dev — source: https://github.com/thekhegay/ngwr
|
|
7
7
|
|
|
@@ -84,7 +84,12 @@ Add from their entry points as needed:
|
|
|
84
84
|
/ `select`, and `linkTarget` / `copyable` on `markdown`. There is deliberately no
|
|
85
85
|
`color` key — a bound `[color]="null"` means "no intent", which a default cannot
|
|
86
86
|
express without inventing a sentinel.
|
|
87
|
-
- `provideWrI18n(...)` + `
|
|
87
|
+
- `provideWrI18n(...)` + `provideWrI18nBaseCatalogs({ en: wrEn })` +
|
|
88
|
+
`provideWrI18nStaticLoader(...)` — localization. ngwr's catalogs go in as a
|
|
89
|
+
BASE, never spread into yours: a spread is shallow, so any namespace you share
|
|
90
|
+
with ngwr, e.g. `common`, `validation`, `table`, keeps only the side spread
|
|
91
|
+
last, and the other side's keys stop resolving with nothing logged — ngwr's
|
|
92
|
+
components fall back to English and a `wrT` read renders the raw key.
|
|
88
93
|
- `provideWrDateAdapter(...)` — calendar + date-picker (`ngwr/date/adapters/fns`
|
|
89
94
|
or `ngwr/date/adapters/luxon`).
|
|
90
95
|
|
|
@@ -106,8 +111,12 @@ one element at a time; a step whose target is missing is skipped, not floated.
|
|
|
106
111
|
|
|
107
112
|
## Upgrading to v14
|
|
108
113
|
|
|
109
|
-
Run `ng update ngwr@14
|
|
110
|
-
|
|
114
|
+
Run `ng update ngwr@14`, once, from whatever major the app is on — it runs every
|
|
115
|
+
migration between the installed version and 14, in order. Do not step through the
|
|
116
|
+
majors, and never target a 7.x, 8.x or 9.x release: their schematics die with
|
|
117
|
+
`exports is not defined in ES module scope`. It rewrites the renames and REPORTS
|
|
118
|
+
the rest — read its output, because the reported half is where the silent
|
|
119
|
+
failures are.
|
|
111
120
|
|
|
112
121
|
Rewritten for you (six renames, one word per concept):
|
|
113
122
|
|
|
@@ -169,7 +178,9 @@ before writing your own. Full catalog: https://ngwr.dev/reference/components.
|
|
|
169
178
|
- **Data** — `wr-table` (column pin/resize/drag-reorder, row selection,
|
|
170
179
|
expandable rows, grouping, tree rows (`childrenKey`), summary rows,
|
|
171
180
|
CSV export, virtualized body),
|
|
172
|
-
`wr-pagination`, `wr-tree`, `wr-
|
|
181
|
+
`wr-pagination`, `wr-tree`, `wr-graph` (read-only layered diagram: `nodes`
|
|
182
|
+
plus `{ from, to }` parent-to-child `edges`, each node a default card or an
|
|
183
|
+
`ng-template wrGraphNode`), `wr-virtual-scroll`, `wr-sortable-list`
|
|
173
184
|
(drag-to-reorder, with `[wrDragHandle]` — both in ngwr/drag-drop).
|
|
174
185
|
- **Feedback** — `wr-alert`, `wr-result`, `wr-empty`, `wr-skeleton`,
|
|
175
186
|
`wr-spinner`.
|
|
@@ -238,17 +249,17 @@ before writing your own. Full catalog: https://ngwr.dev/reference/components.
|
|
|
238
249
|
`wr-tree` and `wr-select` (search mode), alongside the standalone
|
|
239
250
|
`wr-virtual-scroll` wrapper.
|
|
240
251
|
- **Testing** — CDK component harnesses ship beside the components they drive, at
|
|
241
|
-
`ngwr/<name>/testing`.
|
|
242
|
-
|
|
252
|
+
`ngwr/<name>/testing`. 71 entry points so far, 106 exported harness names over
|
|
253
|
+
105 distinct classes — `WrCalendarDayHarness` ships under two, since a date
|
|
243
254
|
picker's popup IS a calendar — covering the
|
|
244
|
-
form controls, the overlays,
|
|
255
|
+
form controls, the overlays, the data views, the navigation / disclosure set
|
|
245
256
|
(`tabs`, `stepper`, `carousel`, `pagination`, `segmented`, `collapse`,
|
|
246
257
|
`transfer`) and `markdown`: the form controls
|
|
247
258
|
(`button`, `input`, `textarea`, `checkbox`, `switch`, `radio`, `select`,
|
|
248
259
|
`input-number`, `input-otp`, `slider`, `rating`, `file-upload`, `color-picker`,
|
|
249
260
|
`knob`, `form` for `<wr-form-field>`), the overlays (`date-picker`, `dropdown`,
|
|
250
261
|
`popover`, `dialog`, `drawer`, `action-sheet`, `toast`, `context-menu`, `popconfirm`,
|
|
251
|
-
`command-palette`, `cascader`, `mention`), the data views (`table`, `tree`),
|
|
262
|
+
`command-palette`, `cascader`, `mention`), the data views (`table`, `tree`, `graph`),
|
|
252
263
|
`splitter`, `speed-dial`, `lightbox`, `tour`, `calendar`, `event-calendar`,
|
|
253
264
|
`window`, `image-cropper`, every chart and eighteen of the twenty-one animations —
|
|
254
265
|
every control, every overlay and every chart has one. `aurora`, `click-spark`,
|
package/mcp/providers.js
CHANGED
|
@@ -46,8 +46,14 @@ const REQUIRED_PROVIDERS = [
|
|
|
46
46
|
test: /^WrTPipe$|^WrTDirective$|^WrI18n/,
|
|
47
47
|
// Two entry points, and the comment has to say so: the catalog `wrEn` is
|
|
48
48
|
// `ngwr/i18n/en`, not `ngwr/i18n`, which exports neither catalog.
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
//
|
|
50
|
+
// `wrEn` goes in as a BASE and the loader carries only the app's keys. A
|
|
51
|
+
// loader serves only the catalog it is given, so the other way to keep both
|
|
52
|
+
// is a spread, and a spread is shallow: it silently drops one side of every
|
|
53
|
+
// namespace the two catalogs share. This line is what an agent pastes, so it
|
|
54
|
+
// has to be the form that survives the app adding its first `common` key.
|
|
55
|
+
provider: "provideWrI18n() + provideWrI18nBaseCatalogs({ en: wrEn }) + provideWrI18nStaticLoader({ en: { … } }) // from 'ngwr/i18n' + 'ngwr/i18n/en'",
|
|
56
|
+
why: "the pipe and directive read from a catalog you provide. Register ngwr's with `provideWrI18nBaseCatalogs`, never spread it into yours: a spread is shallow, so any namespace you share with ngwr, e.g. `common`, `validation`, `table`, keeps only the side spread last, and the other side's keys stop resolving with nothing logged — ngwr's components fall back to English and a `wrT` read of a lost key renders the raw key",
|
|
51
57
|
},
|
|
52
58
|
];
|
|
53
59
|
export { REQUIRED_PROVIDERS };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ngwr",
|
|
3
|
-
"version": "14.
|
|
3
|
+
"version": "14.5.1",
|
|
4
4
|
"bin": {
|
|
5
5
|
"ngwr-mcp": "mcp/server.js"
|
|
6
6
|
},
|
|
@@ -316,6 +316,11 @@
|
|
|
316
316
|
"types": "./types/ngwr-gradient-text.d.ts",
|
|
317
317
|
"default": "./fesm2022/ngwr-gradient-text.mjs"
|
|
318
318
|
},
|
|
319
|
+
"./graph": {
|
|
320
|
+
"sass": "./graph/styles/_index.scss",
|
|
321
|
+
"types": "./types/ngwr-graph.d.ts",
|
|
322
|
+
"default": "./fesm2022/ngwr-graph.mjs"
|
|
323
|
+
},
|
|
319
324
|
"./grid": {
|
|
320
325
|
"sass": "./styles/_grid.scss"
|
|
321
326
|
},
|
|
@@ -795,6 +800,10 @@
|
|
|
795
800
|
"types": "./types/ngwr-gradient-text-testing.d.ts",
|
|
796
801
|
"default": "./fesm2022/ngwr-gradient-text-testing.mjs"
|
|
797
802
|
},
|
|
803
|
+
"./graph/testing": {
|
|
804
|
+
"types": "./types/ngwr-graph-testing.d.ts",
|
|
805
|
+
"default": "./fesm2022/ngwr-graph-testing.mjs"
|
|
806
|
+
},
|
|
798
807
|
"./hotkey": {
|
|
799
808
|
"types": "./types/ngwr-hotkey.d.ts",
|
|
800
809
|
"default": "./fesm2022/ngwr-hotkey.mjs"
|