ngwr 14.4.0 → 14.5.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/README.md +3 -3
- 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 +9 -0
- 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-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-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 +12 -2
- package/llms.txt +8 -6
- package/package.json +10 -1
- package/schematics/use/symbol-map.json +2 -0
- package/segmented/styles/_index.scss +8 -0
- package/skills/ngwr/SKILL.md +1 -1
- package/skills/ngwr/references/catalog.md +2 -0
- package/styles.scss +1 -0
- 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-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-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]`
|
|
@@ -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
|
|
|
@@ -169,7 +169,9 @@ before writing your own. Full catalog: https://ngwr.dev/reference/components.
|
|
|
169
169
|
- **Data** — `wr-table` (column pin/resize/drag-reorder, row selection,
|
|
170
170
|
expandable rows, grouping, tree rows (`childrenKey`), summary rows,
|
|
171
171
|
CSV export, virtualized body),
|
|
172
|
-
`wr-pagination`, `wr-tree`, `wr-
|
|
172
|
+
`wr-pagination`, `wr-tree`, `wr-graph` (read-only layered diagram: `nodes`
|
|
173
|
+
plus `{ from, to }` parent-to-child `edges`, each node a default card or an
|
|
174
|
+
`ng-template wrGraphNode`), `wr-virtual-scroll`, `wr-sortable-list`
|
|
173
175
|
(drag-to-reorder, with `[wrDragHandle]` — both in ngwr/drag-drop).
|
|
174
176
|
- **Feedback** — `wr-alert`, `wr-result`, `wr-empty`, `wr-skeleton`,
|
|
175
177
|
`wr-spinner`.
|
|
@@ -238,17 +240,17 @@ before writing your own. Full catalog: https://ngwr.dev/reference/components.
|
|
|
238
240
|
`wr-tree` and `wr-select` (search mode), alongside the standalone
|
|
239
241
|
`wr-virtual-scroll` wrapper.
|
|
240
242
|
- **Testing** — CDK component harnesses ship beside the components they drive, at
|
|
241
|
-
`ngwr/<name>/testing`.
|
|
242
|
-
|
|
243
|
+
`ngwr/<name>/testing`. 71 entry points so far, 106 exported harness names over
|
|
244
|
+
105 distinct classes — `WrCalendarDayHarness` ships under two, since a date
|
|
243
245
|
picker's popup IS a calendar — covering the
|
|
244
|
-
form controls, the overlays,
|
|
246
|
+
form controls, the overlays, the data views, the navigation / disclosure set
|
|
245
247
|
(`tabs`, `stepper`, `carousel`, `pagination`, `segmented`, `collapse`,
|
|
246
248
|
`transfer`) and `markdown`: the form controls
|
|
247
249
|
(`button`, `input`, `textarea`, `checkbox`, `switch`, `radio`, `select`,
|
|
248
250
|
`input-number`, `input-otp`, `slider`, `rating`, `file-upload`, `color-picker`,
|
|
249
251
|
`knob`, `form` for `<wr-form-field>`), the overlays (`date-picker`, `dropdown`,
|
|
250
252
|
`popover`, `dialog`, `drawer`, `action-sheet`, `toast`, `context-menu`, `popconfirm`,
|
|
251
|
-
`command-palette`, `cascader`, `mention`), the data views (`table`, `tree`),
|
|
253
|
+
`command-palette`, `cascader`, `mention`), the data views (`table`, `tree`, `graph`),
|
|
252
254
|
`splitter`, `speed-dial`, `lightbox`, `tour`, `calendar`, `event-calendar`,
|
|
253
255
|
`window`, `image-cropper`, every chart and eighteen of the twenty-one animations —
|
|
254
256
|
every control, every overlay and every chart has one. `aurora`, `click-spark`,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ngwr",
|
|
3
|
-
"version": "14.
|
|
3
|
+
"version": "14.5.0",
|
|
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"
|
|
@@ -91,6 +91,8 @@
|
|
|
91
91
|
"WrGauge": "ngwr/gauge",
|
|
92
92
|
"WrGlitchText": "ngwr/glitch-text",
|
|
93
93
|
"WrGradientText": "ngwr/gradient-text",
|
|
94
|
+
"WrGraph": "ngwr/graph",
|
|
95
|
+
"WrGraphNodeTemplate": "ngwr/graph",
|
|
94
96
|
"WrHotkey": "ngwr/hotkey",
|
|
95
97
|
"WrHotkeyBinding": "ngwr/hotkey",
|
|
96
98
|
"WrI18n": "ngwr/i18n",
|
|
@@ -70,6 +70,14 @@
|
|
|
70
70
|
transition: transform 0.25s var(--wr-ease-out);
|
|
71
71
|
}
|
|
72
72
|
|
|
73
|
+
// A direction flip mirrors the strip, which moves the thumb's slot by the whole
|
|
74
|
+
// width of it. Animated, that drags the pill across options it does not mark;
|
|
75
|
+
// the component sets this class for the tick the flip lands in so the pill is
|
|
76
|
+
// simply already there. Selection changes keep their slide.
|
|
77
|
+
&--flipping &__thumb {
|
|
78
|
+
transition: none;
|
|
79
|
+
}
|
|
80
|
+
|
|
73
81
|
&--unselected &__thumb {
|
|
74
82
|
opacity: 0;
|
|
75
83
|
}
|
package/skills/ngwr/SKILL.md
CHANGED
|
@@ -5,7 +5,7 @@ description: Build Angular UIs with the ngwr component library (standalone, sign
|
|
|
5
5
|
|
|
6
6
|
# ngwr
|
|
7
7
|
|
|
8
|
-
An Angular 22 UI library:
|
|
8
|
+
An Angular 22 UI library: 227 tree-shakable entry points, 113 of them shipping a selector.
|
|
9
9
|
Standalone, signals-first, zoneless, `ViewEncapsulation.None`. One runtime
|
|
10
10
|
dependency (`tslib`).
|
|
11
11
|
|
|
@@ -89,6 +89,8 @@ root barrel for components.
|
|
|
89
89
|
| `ngwr/glitch-text/testing` | `import { WrGlitchTextHarness } from 'ngwr/glitch-text/testing'` | — |
|
|
90
90
|
| `ngwr/gradient-text` | `import { WrGradientText } from 'ngwr/gradient-text'` | `wr-gradient-text` |
|
|
91
91
|
| `ngwr/gradient-text/testing` | `import { WrGradientTextHarness } from 'ngwr/gradient-text/testing'` | — |
|
|
92
|
+
| `ngwr/graph` | `import { WrGraph } from 'ngwr/graph'` | `ng-template[wrGraphNode]` `wr-graph` |
|
|
93
|
+
| `ngwr/graph/testing` | `import { WrGraphHarness } from 'ngwr/graph/testing'` | — |
|
|
92
94
|
| `ngwr/hotkey` | `import { WrHotkey } from 'ngwr/hotkey'` | `[wrHotkey]` |
|
|
93
95
|
| `ngwr/i18n` | `import { WrI18n } from 'ngwr/i18n'` | `[wrT]` |
|
|
94
96
|
| `ngwr/i18n/ar` | `import { wrAr } from 'ngwr/i18n/ar'` | — |
|
package/styles.scss
CHANGED
package/theme/styles/_focus.scss
CHANGED
|
@@ -164,3 +164,10 @@
|
|
|
164
164
|
.wr-alert__close:focus-visible {
|
|
165
165
|
@include focus-ring;
|
|
166
166
|
}
|
|
167
|
+
|
|
168
|
+
// Graph viewport — the scroller is the graph's one tab stop, so a keyboard user
|
|
169
|
+
// scrolling it needs to see where focus is. Safe as an OUTSET ring: the outline
|
|
170
|
+
// sits outside the scroller's own box, and `.wr-graph` sets no `overflow`.
|
|
171
|
+
.wr-graph__viewport:focus-visible {
|
|
172
|
+
@include focus-ring;
|
|
173
|
+
}
|
package/types/ngwr-cascader.d.ts
CHANGED
|
@@ -133,6 +133,13 @@ declare class WrCascader<T = string> implements FormValueControl<unknown> {
|
|
|
133
133
|
private readonly scrollStrategies;
|
|
134
134
|
private readonly destroyRef;
|
|
135
135
|
private readonly injector;
|
|
136
|
+
/**
|
|
137
|
+
* Ambient reading direction, for the open panel alone — nothing in this
|
|
138
|
+
* component reads it directly. Optional so a bare `TestBed` needs no
|
|
139
|
+
* provider; `Directionality` is root-provided anyway, and a missing one
|
|
140
|
+
* simply reads as `ltr`.
|
|
141
|
+
*/
|
|
142
|
+
private readonly dir;
|
|
136
143
|
private overlayRef;
|
|
137
144
|
constructor();
|
|
138
145
|
protected onTriggerClick(): void;
|
|
@@ -415,6 +415,14 @@ declare class WrColorPickerTrigger {
|
|
|
415
415
|
private readonly vcr;
|
|
416
416
|
private readonly scrollStrategies;
|
|
417
417
|
private readonly destroyRef;
|
|
418
|
+
private readonly injector;
|
|
419
|
+
/**
|
|
420
|
+
* Ambient reading direction, for the open panel alone — nothing in this
|
|
421
|
+
* directive reads it directly. Optional so a bare `TestBed` needs no
|
|
422
|
+
* provider; `Directionality` is root-provided anyway, and a missing one
|
|
423
|
+
* simply reads as `ltr`.
|
|
424
|
+
*/
|
|
425
|
+
private readonly dir;
|
|
418
426
|
protected readonly isOpen: _angular_core.WritableSignal<boolean>;
|
|
419
427
|
private overlayRef;
|
|
420
428
|
/** @internal Public so the host binding can read it. */
|
|
@@ -44,9 +44,18 @@ declare class WrContextMenu {
|
|
|
44
44
|
readonly menu: _angular_core.InputSignal<WrContextMenuPanel>;
|
|
45
45
|
private readonly host;
|
|
46
46
|
private readonly overlay;
|
|
47
|
+
/**
|
|
48
|
+
* The reading direction the open menu has to keep up with.
|
|
49
|
+
*
|
|
50
|
+
* Optional inject, as on every other overlay here: `Directionality` is
|
|
51
|
+
* root-provided and so never null in an app, but a bare `TestBed` that
|
|
52
|
+
* provides nothing should still get a menu that opens.
|
|
53
|
+
*/
|
|
54
|
+
private readonly dir;
|
|
47
55
|
private readonly outsideClick;
|
|
48
56
|
private readonly vcr;
|
|
49
57
|
private readonly scrollStrategies;
|
|
58
|
+
private readonly injector;
|
|
50
59
|
private readonly destroyRef;
|
|
51
60
|
/**
|
|
52
61
|
* Id of the menu element while this trigger's menu is open, published on the
|
|
@@ -219,6 +228,7 @@ declare class WrContextMenuItem {
|
|
|
219
228
|
private readonly dir;
|
|
220
229
|
private readonly vcr;
|
|
221
230
|
private readonly scrollStrategies;
|
|
231
|
+
private readonly injector;
|
|
222
232
|
private readonly destroyRef;
|
|
223
233
|
private submenuRef;
|
|
224
234
|
private submenuKeys;
|