@wildmason/aegis 1.16.0 → 2.0.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 +113 -2
- package/dist/fesm2022/wildmason-aegis-license.mjs +153 -0
- package/dist/fesm2022/wildmason-aegis-license.mjs.map +1 -0
- package/dist/fesm2022/wildmason-aegis.mjs +626 -294
- package/dist/fesm2022/wildmason-aegis.mjs.map +1 -1
- package/dist/types/wildmason-aegis-license.d.ts +73 -0
- package/dist/types/wildmason-aegis.d.ts +110 -71
- package/fonts/CascadiaCode-OFL.txt +94 -94
- package/inputs.css +43 -26
- package/package.json +27 -13
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
|
|
3
|
+
interface LicenseStatus {
|
|
4
|
+
valid: boolean;
|
|
5
|
+
org: string | null;
|
|
6
|
+
product: string;
|
|
7
|
+
seats: number | null;
|
|
8
|
+
tier: string | null;
|
|
9
|
+
expires: string | null;
|
|
10
|
+
key_id: string | null;
|
|
11
|
+
error: string | null;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
declare class WmLicenseService {
|
|
15
|
+
private toast;
|
|
16
|
+
readonly license: _angular_core.WritableSignal<LicenseStatus>;
|
|
17
|
+
readonly isLicensed: _angular_core.Signal<boolean>;
|
|
18
|
+
readonly orgName: _angular_core.Signal<string>;
|
|
19
|
+
checkLicense(): Promise<void>;
|
|
20
|
+
installKey(jwt: string): Promise<LicenseStatus>;
|
|
21
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<WmLicenseService, never>;
|
|
22
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<WmLicenseService>;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* One of the values written to `AppConfig.declared_use_type` by the
|
|
27
|
+
* first-run EULA modal in apps that gate on use-type self-attestation
|
|
28
|
+
* (Mortar). Apps without a use-type system (Helm) leave this `null` and
|
|
29
|
+
* the nudge falls back to its original behaviour: visible to anyone
|
|
30
|
+
* without a valid commercial key.
|
|
31
|
+
*/
|
|
32
|
+
type WmDeclaredUseType = 'personal' | 'oss' | 'commercial';
|
|
33
|
+
declare class WmLicenseNudge {
|
|
34
|
+
private licenseService;
|
|
35
|
+
/**
|
|
36
|
+
* Self-declared use type from the host app's first-run modal. When the
|
|
37
|
+
* user has declared `personal` or `oss` the nudge stays hidden — they've
|
|
38
|
+
* already told us a commercial key isn't relevant. `commercial` (without
|
|
39
|
+
* a key) and `null` (no declaration yet) keep the nudge visible.
|
|
40
|
+
*
|
|
41
|
+
* Typed `string | null` rather than `WmDeclaredUseType | null` because
|
|
42
|
+
* ng-packagr's partial-compilation d.ts emit drops the `null` from a
|
|
43
|
+
* union with a string-literal type, which then forces every consumer to
|
|
44
|
+
* `as` the binding. Runtime narrowing happens in `shouldShow`.
|
|
45
|
+
*/
|
|
46
|
+
readonly declaredUseType: _angular_core.InputSignal<string>;
|
|
47
|
+
dismissed: _angular_core.WritableSignal<boolean>;
|
|
48
|
+
enterLicense: _angular_core.OutputEmitterRef<void>;
|
|
49
|
+
protected readonly shouldShow: () => boolean;
|
|
50
|
+
dismiss(): void;
|
|
51
|
+
onEnterLicense(): void;
|
|
52
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<WmLicenseNudge, never>;
|
|
53
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<WmLicenseNudge, "wm-license-nudge", never, { "declaredUseType": { "alias": "declaredUseType"; "required": false; "isSignal": true; }; }, { "enterLicense": "enterLicense"; }, never, never, true, never>;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
declare class WmLicenseDialog {
|
|
57
|
+
private licenseService;
|
|
58
|
+
visible: _angular_core.InputSignal<boolean>;
|
|
59
|
+
dismiss: _angular_core.OutputEmitterRef<void>;
|
|
60
|
+
keyInput: _angular_core.WritableSignal<string>;
|
|
61
|
+
validationResult: _angular_core.WritableSignal<LicenseStatus>;
|
|
62
|
+
validating: _angular_core.WritableSignal<boolean>;
|
|
63
|
+
installed: _angular_core.WritableSignal<boolean>;
|
|
64
|
+
onDismiss(): void;
|
|
65
|
+
onKeyInput(event: Event): void;
|
|
66
|
+
validate(): Promise<void>;
|
|
67
|
+
private reset;
|
|
68
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<WmLicenseDialog, never>;
|
|
69
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<WmLicenseDialog, "wm-license-dialog", never, { "visible": { "alias": "visible"; "required": true; "isSignal": true; }; }, { "dismiss": "dismiss"; }, never, never, true, never>;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export { WmLicenseDialog, WmLicenseNudge, WmLicenseService };
|
|
73
|
+
export type { LicenseStatus, WmDeclaredUseType };
|
|
@@ -956,6 +956,114 @@ declare class WmTooltip {
|
|
|
956
956
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<WmTooltip, "[wmTooltip]", ["wmTooltip"], { "wmTooltip": { "alias": "wmTooltip"; "required": false; "isSignal": true; }; "wmTooltipPosition": { "alias": "wmTooltipPosition"; "required": false; "isSignal": true; }; "wmTooltipDelay": { "alias": "wmTooltipDelay"; "required": false; "isSignal": true; }; "wmTooltipDisabled": { "alias": "wmTooltipDisabled"; "required": false; "isSignal": true; }; "wmTooltipRelation": { "alias": "wmTooltipRelation"; "required": false; "isSignal": true; }; "wmTooltipFocusable": { "alias": "wmTooltipFocusable"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
957
957
|
}
|
|
958
958
|
|
|
959
|
+
/** Marks the projected element that owns a rich tooltip. */
|
|
960
|
+
declare class WmRichTooltipTrigger {
|
|
961
|
+
readonly elementRef: ElementRef<any>;
|
|
962
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<WmRichTooltipTrigger, never>;
|
|
963
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<WmRichTooltipTrigger, "[wmRichTooltipTrigger]", never, {}, {}, never, never, true, never>;
|
|
964
|
+
}
|
|
965
|
+
/** Marks the projected Angular template used as a rich tooltip's body. */
|
|
966
|
+
declare class WmRichTooltipContent {
|
|
967
|
+
readonly templateRef: TemplateRef<any>;
|
|
968
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<WmRichTooltipContent, never>;
|
|
969
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<WmRichTooltipContent, "ng-template[wmRichTooltipContent]", never, {}, {}, never, never, true, never>;
|
|
970
|
+
}
|
|
971
|
+
/**
|
|
972
|
+
* `wm-rich-tooltip` — a tooltip-shaped CDK overlay with projected Angular
|
|
973
|
+
* template content.
|
|
974
|
+
*
|
|
975
|
+
* ```html
|
|
976
|
+
* <wm-rich-tooltip position="top">
|
|
977
|
+
* <span wmRichTooltipTrigger>feature/checkout</span>
|
|
978
|
+
* <ng-template wmRichTooltipContent>
|
|
979
|
+
* <strong>feature/checkout</strong>
|
|
980
|
+
* <div class="legend-row">
|
|
981
|
+
* <span class="swatch" aria-hidden="true"></span>
|
|
982
|
+
* <span>Pull request linked</span>
|
|
983
|
+
* </div>
|
|
984
|
+
* </ng-template>
|
|
985
|
+
* </wm-rich-tooltip>
|
|
986
|
+
* ```
|
|
987
|
+
*
|
|
988
|
+
* The body is an Angular `TemplateRef`, not an HTML string. Consumers can use
|
|
989
|
+
* normal Angular markup, bindings, loops, and components; callers should not
|
|
990
|
+
* use this as a path for unsanitized user HTML. If a caller explicitly uses
|
|
991
|
+
* Angular's `[innerHTML]`, Angular's normal sanitizer remains the boundary.
|
|
992
|
+
*
|
|
993
|
+
* The interaction contract matches `WmTooltip`: hover and keyboard focus,
|
|
994
|
+
* Escape dismissal, a hoverable panel, scroll/resize re-anchoring, clipping
|
|
995
|
+
* detection, and an `aria-describedby` relationship by default. Rich tooltip
|
|
996
|
+
* content should remain non-interactive; use `WmPopover` for menus, links,
|
|
997
|
+
* forms, or other content that needs focus and interaction.
|
|
998
|
+
*/
|
|
999
|
+
declare class WmRichTooltip {
|
|
1000
|
+
/** Preferred side. Flips automatically when the viewport has no room. */
|
|
1001
|
+
readonly position: _angular_core.InputSignal<WmTooltipPosition>;
|
|
1002
|
+
/** Milliseconds a pointer must rest on the trigger before opening. */
|
|
1003
|
+
readonly delay: _angular_core.InputSignal<number>;
|
|
1004
|
+
/** Suppress the tooltip without removing its projected content. */
|
|
1005
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
1006
|
+
/** Whether the panel describes the trigger or names it. */
|
|
1007
|
+
readonly relation: _angular_core.InputSignal<WmTooltipRelation>;
|
|
1008
|
+
/** Make a non-focusable projected trigger reachable by keyboard when needed. */
|
|
1009
|
+
readonly focusable: _angular_core.InputSignal<boolean>;
|
|
1010
|
+
private readonly injector;
|
|
1011
|
+
private readonly renderer;
|
|
1012
|
+
private readonly triggerQuery;
|
|
1013
|
+
private readonly contentQuery;
|
|
1014
|
+
private readonly panelId;
|
|
1015
|
+
private triggerElement;
|
|
1016
|
+
private contentTemplate;
|
|
1017
|
+
private triggerCleanups;
|
|
1018
|
+
private addedTabIndex;
|
|
1019
|
+
private overlayRef;
|
|
1020
|
+
private panelRef;
|
|
1021
|
+
private portal;
|
|
1022
|
+
private positionChanges;
|
|
1023
|
+
private showTimer;
|
|
1024
|
+
private hideTimer;
|
|
1025
|
+
private raiseFrame;
|
|
1026
|
+
private pointerOnTrigger;
|
|
1027
|
+
private pointerOnPanel;
|
|
1028
|
+
private triggerFocused;
|
|
1029
|
+
private detachDocumentListeners;
|
|
1030
|
+
private clippingAncestors;
|
|
1031
|
+
constructor();
|
|
1032
|
+
/** Open the rich tooltip immediately, bypassing the hover delay. */
|
|
1033
|
+
show(): void;
|
|
1034
|
+
/** Close the rich tooltip immediately, without the pointer grace period. */
|
|
1035
|
+
hideNow(): void;
|
|
1036
|
+
/** True while the rich tooltip panel is attached. */
|
|
1037
|
+
get isOpen(): boolean;
|
|
1038
|
+
private bindTrigger;
|
|
1039
|
+
private unbindTrigger;
|
|
1040
|
+
private updateFocusable;
|
|
1041
|
+
private onPointerEnterTrigger;
|
|
1042
|
+
private onPointerLeaveTrigger;
|
|
1043
|
+
private onFocusTrigger;
|
|
1044
|
+
private onBlurTrigger;
|
|
1045
|
+
private scheduleShow;
|
|
1046
|
+
private scheduleHide;
|
|
1047
|
+
private clearTimer;
|
|
1048
|
+
private ensureOverlay;
|
|
1049
|
+
private positions;
|
|
1050
|
+
private readonly onPointerEnterPanel;
|
|
1051
|
+
private readonly onPointerLeavePanel;
|
|
1052
|
+
private attachDocumentListeners;
|
|
1053
|
+
private releaseDocumentListeners;
|
|
1054
|
+
private reanchor;
|
|
1055
|
+
private resolveClippingAncestors;
|
|
1056
|
+
private isTriggerClipped;
|
|
1057
|
+
private relationAttribute;
|
|
1058
|
+
private linkTriggerToPanel;
|
|
1059
|
+
private unlinkTriggerFromPanel;
|
|
1060
|
+
private isNativelyFocusable;
|
|
1061
|
+
private matchesFocusVisible;
|
|
1062
|
+
private teardown;
|
|
1063
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<WmRichTooltip, never>;
|
|
1064
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<WmRichTooltip, "wm-rich-tooltip", never, { "position": { "alias": "position"; "required": false; "isSignal": true; }; "delay": { "alias": "delay"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "relation": { "alias": "relation"; "required": false; "isSignal": true; }; "focusable": { "alias": "focusable"; "required": false; "isSignal": true; }; }, {}, ["triggerQuery", "contentQuery"], ["[wmRichTooltipTrigger]", "ng-template[wmRichTooltipContent]"], true, never>;
|
|
1065
|
+
}
|
|
1066
|
+
|
|
959
1067
|
/**
|
|
960
1068
|
* Notify a handler whenever anything that can move an anchored overlay moves.
|
|
961
1069
|
*
|
|
@@ -982,74 +1090,5 @@ declare class WmTooltip {
|
|
|
982
1090
|
*/
|
|
983
1091
|
declare function onViewportChange(handler: () => void): () => void;
|
|
984
1092
|
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
org: string | null;
|
|
988
|
-
product: string;
|
|
989
|
-
seats: number | null;
|
|
990
|
-
tier: string | null;
|
|
991
|
-
expires: string | null;
|
|
992
|
-
key_id: string | null;
|
|
993
|
-
error: string | null;
|
|
994
|
-
}
|
|
995
|
-
|
|
996
|
-
declare class WmLicenseService {
|
|
997
|
-
private toast;
|
|
998
|
-
readonly license: _angular_core.WritableSignal<LicenseStatus>;
|
|
999
|
-
readonly isLicensed: _angular_core.Signal<boolean>;
|
|
1000
|
-
readonly orgName: _angular_core.Signal<string>;
|
|
1001
|
-
checkLicense(): Promise<void>;
|
|
1002
|
-
installKey(jwt: string): Promise<LicenseStatus>;
|
|
1003
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<WmLicenseService, never>;
|
|
1004
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<WmLicenseService>;
|
|
1005
|
-
}
|
|
1006
|
-
|
|
1007
|
-
/**
|
|
1008
|
-
* One of the values written to `AppConfig.declared_use_type` by the
|
|
1009
|
-
* first-run EULA modal in apps that gate on use-type self-attestation
|
|
1010
|
-
* (Mortar). Apps without a use-type system (Helm) leave this `null` and
|
|
1011
|
-
* the nudge falls back to its original behaviour: visible to anyone
|
|
1012
|
-
* without a valid commercial key.
|
|
1013
|
-
*/
|
|
1014
|
-
type WmDeclaredUseType = 'personal' | 'oss' | 'commercial';
|
|
1015
|
-
declare class WmLicenseNudge {
|
|
1016
|
-
private licenseService;
|
|
1017
|
-
/**
|
|
1018
|
-
* Self-declared use type from the host app's first-run modal. When the
|
|
1019
|
-
* user has declared `personal` or `oss` the nudge stays hidden — they've
|
|
1020
|
-
* already told us a commercial key isn't relevant. `commercial` (without
|
|
1021
|
-
* a key) and `null` (no declaration yet) keep the nudge visible.
|
|
1022
|
-
*
|
|
1023
|
-
* Typed `string | null` rather than `WmDeclaredUseType | null` because
|
|
1024
|
-
* ng-packagr's partial-compilation d.ts emit drops the `null` from a
|
|
1025
|
-
* union with a string-literal type, which then forces every consumer to
|
|
1026
|
-
* `as` the binding. Runtime narrowing happens in `shouldShow`.
|
|
1027
|
-
*/
|
|
1028
|
-
readonly declaredUseType: _angular_core.InputSignal<string>;
|
|
1029
|
-
dismissed: _angular_core.WritableSignal<boolean>;
|
|
1030
|
-
enterLicense: _angular_core.OutputEmitterRef<void>;
|
|
1031
|
-
protected readonly shouldShow: () => boolean;
|
|
1032
|
-
dismiss(): void;
|
|
1033
|
-
onEnterLicense(): void;
|
|
1034
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<WmLicenseNudge, never>;
|
|
1035
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<WmLicenseNudge, "wm-license-nudge", never, { "declaredUseType": { "alias": "declaredUseType"; "required": false; "isSignal": true; }; }, { "enterLicense": "enterLicense"; }, never, never, true, never>;
|
|
1036
|
-
}
|
|
1037
|
-
|
|
1038
|
-
declare class WmLicenseDialog {
|
|
1039
|
-
private licenseService;
|
|
1040
|
-
visible: _angular_core.InputSignal<boolean>;
|
|
1041
|
-
dismiss: _angular_core.OutputEmitterRef<void>;
|
|
1042
|
-
keyInput: _angular_core.WritableSignal<string>;
|
|
1043
|
-
validationResult: _angular_core.WritableSignal<LicenseStatus>;
|
|
1044
|
-
validating: _angular_core.WritableSignal<boolean>;
|
|
1045
|
-
installed: _angular_core.WritableSignal<boolean>;
|
|
1046
|
-
onDismiss(): void;
|
|
1047
|
-
onKeyInput(event: Event): void;
|
|
1048
|
-
validate(): Promise<void>;
|
|
1049
|
-
private reset;
|
|
1050
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<WmLicenseDialog, never>;
|
|
1051
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<WmLicenseDialog, "wm-license-dialog", never, { "visible": { "alias": "visible"; "required": true; "isSignal": true; }; }, { "dismiss": "dismiss"; }, never, never, true, never>;
|
|
1052
|
-
}
|
|
1053
|
-
|
|
1054
|
-
export { Checkbox, GhostField, NumberInput, PageHeader, Toggle, WmAnchoredScrollStrategy, WmAutoFocus, WmButton, WmCombobox, WmDialog, WmLicenseDialog, WmLicenseNudge, WmLicenseService, WmModal, WmPopover, WmSelect, WmTab, WmTabs, WmToastContainer, WmToastService, WmTooltip, onViewportChange };
|
|
1055
|
-
export type { ButtonSize, ButtonVariant, ComboboxOption, DialogSize, LicenseStatus, SelectOption, Toast, ToastType, WmDeclaredUseType, WmTooltipPosition, WmTooltipRelation };
|
|
1093
|
+
export { Checkbox, GhostField, NumberInput, PageHeader, Toggle, WmAnchoredScrollStrategy, WmAutoFocus, WmButton, WmCombobox, WmDialog, WmModal, WmPopover, WmRichTooltip, WmRichTooltipContent, WmRichTooltipTrigger, WmSelect, WmTab, WmTabs, WmToastContainer, WmToastService, WmTooltip, onViewportChange };
|
|
1094
|
+
export type { ButtonSize, ButtonVariant, ComboboxOption, DialogSize, SelectOption, Toast, ToastType, WmTooltipPosition, WmTooltipRelation };
|
|
@@ -1,94 +1,94 @@
|
|
|
1
|
-
Copyright (c) 2019 - Present, Microsoft Corporation,
|
|
2
|
-
with Reserved Font Name Cascadia Code.
|
|
3
|
-
|
|
4
|
-
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
|
5
|
-
This license is copied below, and is also available with a FAQ at:
|
|
6
|
-
http://scripts.sil.org/OFL
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
-----------------------------------------------------------
|
|
10
|
-
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
|
11
|
-
-----------------------------------------------------------
|
|
12
|
-
|
|
13
|
-
PREAMBLE
|
|
14
|
-
The goals of the Open Font License (OFL) are to stimulate worldwide
|
|
15
|
-
development of collaborative font projects, to support the font creation
|
|
16
|
-
efforts of academic and linguistic communities, and to provide a free and
|
|
17
|
-
open framework in which fonts may be shared and improved in partnership
|
|
18
|
-
with others.
|
|
19
|
-
|
|
20
|
-
The OFL allows the licensed fonts to be used, studied, modified and
|
|
21
|
-
redistributed freely as long as they are not sold by themselves. The
|
|
22
|
-
fonts, including any derivative works, can be bundled, embedded,
|
|
23
|
-
redistributed and/or sold with any software provided that any reserved
|
|
24
|
-
names are not used by derivative works. The fonts and derivatives,
|
|
25
|
-
however, cannot be released under any other type of license. The
|
|
26
|
-
requirement for fonts to remain under this license does not apply
|
|
27
|
-
to any document created using the fonts or their derivatives.
|
|
28
|
-
|
|
29
|
-
DEFINITIONS
|
|
30
|
-
"Font Software" refers to the set of files released by the Copyright
|
|
31
|
-
Holder(s) under this license and clearly marked as such. This may
|
|
32
|
-
include source files, build scripts and documentation.
|
|
33
|
-
|
|
34
|
-
"Reserved Font Name" refers to any names specified as such after the
|
|
35
|
-
copyright statement(s).
|
|
36
|
-
|
|
37
|
-
"Original Version" refers to the collection of Font Software components as
|
|
38
|
-
distributed by the Copyright Holder(s).
|
|
39
|
-
|
|
40
|
-
"Modified Version" refers to any derivative made by adding to, deleting,
|
|
41
|
-
or substituting -- in part or in whole -- any of the components of the
|
|
42
|
-
Original Version, by changing formats or by porting the Font Software to a
|
|
43
|
-
new environment.
|
|
44
|
-
|
|
45
|
-
"Author" refers to any designer, engineer, programmer, technical
|
|
46
|
-
writer or other person who contributed to the Font Software.
|
|
47
|
-
|
|
48
|
-
PERMISSION & CONDITIONS
|
|
49
|
-
Permission is hereby granted, free of charge, to any person obtaining
|
|
50
|
-
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
|
51
|
-
redistribute, and sell modified and unmodified copies of the Font
|
|
52
|
-
Software, subject to the following conditions:
|
|
53
|
-
|
|
54
|
-
1) Neither the Font Software nor any of its individual components,
|
|
55
|
-
in Original or Modified Versions, may be sold by itself.
|
|
56
|
-
|
|
57
|
-
2) Original or Modified Versions of the Font Software may be bundled,
|
|
58
|
-
redistributed and/or sold with any software, provided that each copy
|
|
59
|
-
contains the above copyright notice and this license. These can be
|
|
60
|
-
included either as stand-alone text files, human-readable headers or
|
|
61
|
-
in the appropriate machine-readable metadata fields within text or
|
|
62
|
-
binary files as long as those fields can be easily viewed by the user.
|
|
63
|
-
|
|
64
|
-
3) No Modified Version of the Font Software may use the Reserved Font
|
|
65
|
-
Name(s) unless explicit written permission is granted by the corresponding
|
|
66
|
-
Copyright Holder. This restriction only applies to the primary font name as
|
|
67
|
-
presented to the users.
|
|
68
|
-
|
|
69
|
-
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
|
70
|
-
Software shall not be used to promote, endorse or advertise any
|
|
71
|
-
Modified Version, except to acknowledge the contribution(s) of the
|
|
72
|
-
Copyright Holder(s) and the Author(s) or with their explicit written
|
|
73
|
-
permission.
|
|
74
|
-
|
|
75
|
-
5) The Font Software, modified or unmodified, in part or in whole,
|
|
76
|
-
must be distributed entirely under this license, and must not be
|
|
77
|
-
distributed under any other license. The requirement for fonts to
|
|
78
|
-
remain under this license does not apply to any document created
|
|
79
|
-
using the Font Software.
|
|
80
|
-
|
|
81
|
-
TERMINATION
|
|
82
|
-
This license becomes null and void if any of the above conditions are
|
|
83
|
-
not met.
|
|
84
|
-
|
|
85
|
-
DISCLAIMER
|
|
86
|
-
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
87
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
|
88
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
|
89
|
-
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
|
90
|
-
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
91
|
-
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
|
92
|
-
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
93
|
-
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
|
94
|
-
OTHER DEALINGS IN THE FONT SOFTWARE.
|
|
1
|
+
Copyright (c) 2019 - Present, Microsoft Corporation,
|
|
2
|
+
with Reserved Font Name Cascadia Code.
|
|
3
|
+
|
|
4
|
+
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
|
5
|
+
This license is copied below, and is also available with a FAQ at:
|
|
6
|
+
http://scripts.sil.org/OFL
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
-----------------------------------------------------------
|
|
10
|
+
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
|
11
|
+
-----------------------------------------------------------
|
|
12
|
+
|
|
13
|
+
PREAMBLE
|
|
14
|
+
The goals of the Open Font License (OFL) are to stimulate worldwide
|
|
15
|
+
development of collaborative font projects, to support the font creation
|
|
16
|
+
efforts of academic and linguistic communities, and to provide a free and
|
|
17
|
+
open framework in which fonts may be shared and improved in partnership
|
|
18
|
+
with others.
|
|
19
|
+
|
|
20
|
+
The OFL allows the licensed fonts to be used, studied, modified and
|
|
21
|
+
redistributed freely as long as they are not sold by themselves. The
|
|
22
|
+
fonts, including any derivative works, can be bundled, embedded,
|
|
23
|
+
redistributed and/or sold with any software provided that any reserved
|
|
24
|
+
names are not used by derivative works. The fonts and derivatives,
|
|
25
|
+
however, cannot be released under any other type of license. The
|
|
26
|
+
requirement for fonts to remain under this license does not apply
|
|
27
|
+
to any document created using the fonts or their derivatives.
|
|
28
|
+
|
|
29
|
+
DEFINITIONS
|
|
30
|
+
"Font Software" refers to the set of files released by the Copyright
|
|
31
|
+
Holder(s) under this license and clearly marked as such. This may
|
|
32
|
+
include source files, build scripts and documentation.
|
|
33
|
+
|
|
34
|
+
"Reserved Font Name" refers to any names specified as such after the
|
|
35
|
+
copyright statement(s).
|
|
36
|
+
|
|
37
|
+
"Original Version" refers to the collection of Font Software components as
|
|
38
|
+
distributed by the Copyright Holder(s).
|
|
39
|
+
|
|
40
|
+
"Modified Version" refers to any derivative made by adding to, deleting,
|
|
41
|
+
or substituting -- in part or in whole -- any of the components of the
|
|
42
|
+
Original Version, by changing formats or by porting the Font Software to a
|
|
43
|
+
new environment.
|
|
44
|
+
|
|
45
|
+
"Author" refers to any designer, engineer, programmer, technical
|
|
46
|
+
writer or other person who contributed to the Font Software.
|
|
47
|
+
|
|
48
|
+
PERMISSION & CONDITIONS
|
|
49
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
50
|
+
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
|
51
|
+
redistribute, and sell modified and unmodified copies of the Font
|
|
52
|
+
Software, subject to the following conditions:
|
|
53
|
+
|
|
54
|
+
1) Neither the Font Software nor any of its individual components,
|
|
55
|
+
in Original or Modified Versions, may be sold by itself.
|
|
56
|
+
|
|
57
|
+
2) Original or Modified Versions of the Font Software may be bundled,
|
|
58
|
+
redistributed and/or sold with any software, provided that each copy
|
|
59
|
+
contains the above copyright notice and this license. These can be
|
|
60
|
+
included either as stand-alone text files, human-readable headers or
|
|
61
|
+
in the appropriate machine-readable metadata fields within text or
|
|
62
|
+
binary files as long as those fields can be easily viewed by the user.
|
|
63
|
+
|
|
64
|
+
3) No Modified Version of the Font Software may use the Reserved Font
|
|
65
|
+
Name(s) unless explicit written permission is granted by the corresponding
|
|
66
|
+
Copyright Holder. This restriction only applies to the primary font name as
|
|
67
|
+
presented to the users.
|
|
68
|
+
|
|
69
|
+
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
|
70
|
+
Software shall not be used to promote, endorse or advertise any
|
|
71
|
+
Modified Version, except to acknowledge the contribution(s) of the
|
|
72
|
+
Copyright Holder(s) and the Author(s) or with their explicit written
|
|
73
|
+
permission.
|
|
74
|
+
|
|
75
|
+
5) The Font Software, modified or unmodified, in part or in whole,
|
|
76
|
+
must be distributed entirely under this license, and must not be
|
|
77
|
+
distributed under any other license. The requirement for fonts to
|
|
78
|
+
remain under this license does not apply to any document created
|
|
79
|
+
using the Font Software.
|
|
80
|
+
|
|
81
|
+
TERMINATION
|
|
82
|
+
This license becomes null and void if any of the above conditions are
|
|
83
|
+
not met.
|
|
84
|
+
|
|
85
|
+
DISCLAIMER
|
|
86
|
+
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
87
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
|
88
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
|
89
|
+
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
|
90
|
+
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
91
|
+
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
|
92
|
+
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
93
|
+
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
|
94
|
+
OTHER DEALINGS IN THE FONT SOFTWARE.
|
package/inputs.css
CHANGED
|
@@ -49,6 +49,7 @@
|
|
|
49
49
|
Keyboard:
|
|
50
50
|
.wm-kbd Single keyboard key badge (heavier bottom border = key depth)
|
|
51
51
|
.wm-kbd-combo Flex wrapper for key combinations — auto-injects '+' between keys
|
|
52
|
+
.wm-kbd--on-fill Key cap on a control that carries its own fill — borrows its label
|
|
52
53
|
|
|
53
54
|
Spec
|
|
54
55
|
----
|
|
@@ -1588,46 +1589,62 @@ select.wm-input {
|
|
|
1588
1589
|
}
|
|
1589
1590
|
|
|
1590
1591
|
/* ----------------------------------------------------------------
|
|
1591
|
-
On
|
|
1592
|
+
On a filled control — .wm-kbd--on-fill
|
|
1592
1593
|
----------------------------------------------------------------
|
|
1593
1594
|
A plain .wm-kbd is --wm-bg-sunken inside --wm-border-input: a
|
|
1594
|
-
recess in a surface. Put one on
|
|
1595
|
-
are answering the wrong question — the
|
|
1596
|
-
stranded on the
|
|
1597
|
-
surfaces rather than from a
|
|
1595
|
+
recess in a surface. Put one on any control that carries its own
|
|
1596
|
+
fill and both tokens are answering the wrong question — the
|
|
1597
|
+
fill is a surface colour stranded on the control, and the border
|
|
1598
|
+
is tuned to separate from surfaces rather than from a fill.
|
|
1598
1599
|
|
|
1599
|
-
This modifier carries no fill of its own. It borrows the
|
|
1600
|
-
which means the cap's label IS the
|
|
1600
|
+
This modifier carries no fill of its own. It borrows the control's,
|
|
1601
|
+
which means the cap's label IS the control's label and inherits the
|
|
1601
1602
|
contrast that pair already guarantees; nothing about the text needs
|
|
1602
|
-
measuring twice. The edge is
|
|
1603
|
-
sits behind it, and mixing toward `transparent` rather than
|
|
1604
|
-
a named fill is what lets ONE declaration serve
|
|
1605
|
-
|
|
1606
|
-
|
|
1607
|
-
|
|
1608
|
-
|
|
1609
|
-
|
|
1610
|
-
|
|
1611
|
-
|
|
1612
|
-
|
|
1603
|
+
measuring twice. The edge is that same label colour at 75% over
|
|
1604
|
+
whatever sits behind it, and mixing toward `transparent` rather than
|
|
1605
|
+
toward a named fill is what lets ONE declaration serve every state
|
|
1606
|
+
the control has — a mix toward --wm-color-accent could only ever
|
|
1607
|
+
be correct for one fill.
|
|
1608
|
+
|
|
1609
|
+
Both values come from `currentColor` rather than from a named token,
|
|
1610
|
+
which is what makes this general. On .wm-btn--primary currentColor
|
|
1611
|
+
IS --wm-color-accent-text, so the accent case computes to exactly
|
|
1612
|
+
what it did when this rule named that token outright; on a danger
|
|
1613
|
+
or success control it follows that control's own label instead of
|
|
1614
|
+
painting the accent's label on a fill that is not the accent.
|
|
1615
|
+
|
|
1616
|
+
The generality is not theoretical. Measured across all 12 themes on
|
|
1617
|
+
Helm's conflict-resolution Reject button — danger at 22% over a
|
|
1618
|
+
tinted header — a plain .wm-kbd's edge separates from the button
|
|
1619
|
+
at 1.65:1 to 2.89:1, failing WCAG 1.4.11 on EVERY theme. The same
|
|
1620
|
+
cap under this modifier measures 3.55:1 to 4.43:1.
|
|
1621
|
+
|
|
1622
|
+
75% is held by check-accent-contrast.mjs against both accent fills
|
|
1623
|
+
on every theme. The binding case there is posh-sandalwood, where
|
|
1624
|
+
the edge measures 3.47:1 against 1.4.11's 3:1.
|
|
1625
|
+
|
|
1626
|
+
Usage — inside a filled button:
|
|
1613
1627
|
<button class="wm-btn wm-btn--primary">
|
|
1614
1628
|
Accept
|
|
1615
1629
|
<span class="wm-kbd-combo">
|
|
1616
|
-
<kbd class="wm-kbd wm-kbd--on-
|
|
1617
|
-
<kbd class="wm-kbd wm-kbd--on-
|
|
1630
|
+
<kbd class="wm-kbd wm-kbd--on-fill">Ctrl</kbd>
|
|
1631
|
+
<kbd class="wm-kbd wm-kbd--on-fill">Enter</kbd>
|
|
1618
1632
|
</span>
|
|
1619
1633
|
</button>
|
|
1634
|
+
|
|
1635
|
+
.wm-kbd--on-accent, the name this shipped under in 1.16.0, was
|
|
1636
|
+
removed in 2.0.0: the mechanism was never accent-specific.
|
|
1620
1637
|
---------------------------------------------------------------- */
|
|
1621
1638
|
|
|
1622
|
-
.wm-kbd--on-
|
|
1623
|
-
color:
|
|
1639
|
+
.wm-kbd--on-fill {
|
|
1640
|
+
color: inherit;
|
|
1624
1641
|
background: transparent;
|
|
1625
|
-
border-color: color-mix(in srgb,
|
|
1642
|
+
border-color: color-mix(in srgb, currentColor 75%, transparent);
|
|
1626
1643
|
}
|
|
1627
1644
|
|
|
1628
1645
|
/* The combo's `+` is --wm-text-muted, a surface colour, so it is as wrong on
|
|
1629
|
-
|
|
1630
|
-
|
|
1631
|
-
.wm-kbd-combo > .wm-kbd--on-
|
|
1646
|
+
a fill as the cap's own tokens were. Same share as the edge, so there is one
|
|
1647
|
+
number to keep in step rather than two. */
|
|
1648
|
+
.wm-kbd-combo > .wm-kbd--on-fill + .wm-kbd--on-fill::before {
|
|
1632
1649
|
color: color-mix(in srgb, currentColor 75%, transparent);
|
|
1633
1650
|
}
|
package/package.json
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wildmason/aegis",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "Aegis design system
|
|
3
|
+
"version": "2.0.0",
|
|
4
|
+
"description": "Aegis design system — CSS tokens and Angular component library",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"check:offline-fonts": "node scripts/check-offline-fonts.mjs",
|
|
7
|
-
"build": "npm run check:offline-fonts && npm run check:destructive-contrast && npm run check:semantic-contrast && npm run check:accent-contrast && npm run check:tooltip-contrast && npm run check:docs && ng-packagr -p ng-package.json",
|
|
7
|
+
"build": "npm run check:offline-fonts && npm run check:destructive-contrast && npm run check:semantic-contrast && npm run check:accent-contrast && npm run check:tooltip-contrast && npm run check:docs && ng-packagr -p ng-package.json && npm run check:entry-points",
|
|
8
8
|
"prepublishOnly": "npm run build",
|
|
9
9
|
"check:destructive-contrast": "node scripts/check-destructive-contrast.mjs",
|
|
10
10
|
"check:semantic-contrast": "node scripts/check-semantic-contrast.mjs",
|
|
11
11
|
"check:tooltip-contrast": "node scripts/check-tooltip-contrast.mjs",
|
|
12
12
|
"check:accent-contrast": "node scripts/check-accent-contrast.mjs",
|
|
13
|
-
"check:docs": "node scripts/check-design-language.mjs"
|
|
13
|
+
"check:docs": "node scripts/check-design-language.mjs",
|
|
14
|
+
"check:entry-points": "node scripts/check-entry-points.mjs"
|
|
14
15
|
},
|
|
15
16
|
"files": [
|
|
16
17
|
"CHANGELOG.md",
|
|
@@ -22,9 +23,17 @@
|
|
|
22
23
|
"exports": {
|
|
23
24
|
"./themes.css": "./themes.css",
|
|
24
25
|
"./inputs.css": "./inputs.css",
|
|
26
|
+
".": {
|
|
27
|
+
"types": "./dist/types/wildmason-aegis.d.ts",
|
|
28
|
+
"default": "./dist/fesm2022/wildmason-aegis.mjs"
|
|
29
|
+
},
|
|
25
30
|
"./components": {
|
|
26
31
|
"types": "./dist/types/wildmason-aegis.d.ts",
|
|
27
32
|
"default": "./dist/fesm2022/wildmason-aegis.mjs"
|
|
33
|
+
},
|
|
34
|
+
"./license": {
|
|
35
|
+
"types": "./dist/types/wildmason-aegis-license.d.ts",
|
|
36
|
+
"default": "./dist/fesm2022/wildmason-aegis-license.mjs"
|
|
28
37
|
}
|
|
29
38
|
},
|
|
30
39
|
"peerDependencies": {
|
|
@@ -34,16 +43,21 @@
|
|
|
34
43
|
"rxjs": ">=7",
|
|
35
44
|
"tslib": "^2.3.0"
|
|
36
45
|
},
|
|
46
|
+
"peerDependenciesMeta": {
|
|
47
|
+
"@tauri-apps/api": {
|
|
48
|
+
"optional": true
|
|
49
|
+
}
|
|
50
|
+
},
|
|
37
51
|
"devDependencies": {
|
|
38
|
-
"@angular/cdk": "^21.
|
|
39
|
-
"@angular/common": "21.2.
|
|
40
|
-
"@angular/compiler": "21.2.
|
|
41
|
-
"@angular/compiler-cli": "21.2.
|
|
42
|
-
"@angular/core": "21.2.
|
|
43
|
-
"@angular/forms": "21.2.
|
|
44
|
-
"@angular/platform-browser": "21.2.
|
|
45
|
-
"@tauri-apps/api": "^2.
|
|
46
|
-
"ng-packagr": "^21.
|
|
52
|
+
"@angular/cdk": "^21.2.14",
|
|
53
|
+
"@angular/common": "^21.2.23",
|
|
54
|
+
"@angular/compiler": "^21.2.23",
|
|
55
|
+
"@angular/compiler-cli": "^21.2.23",
|
|
56
|
+
"@angular/core": "^21.2.23",
|
|
57
|
+
"@angular/forms": "^21.2.23",
|
|
58
|
+
"@angular/platform-browser": "^21.2.23",
|
|
59
|
+
"@tauri-apps/api": "^2.11.1",
|
|
60
|
+
"ng-packagr": "^21.2.7",
|
|
47
61
|
"tslib": "^2.8.1",
|
|
48
62
|
"typescript": "^5.9.2"
|
|
49
63
|
},
|