@sentropic/design-system-angular 0.36.57 → 0.36.59

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/dist/Icon.js ADDED
@@ -0,0 +1,149 @@
1
+ import { Component, Input as NgInput } from "@angular/core";
2
+ import { classNames } from "./classNames.js";
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Canonical Sentropic icon set (day-one).
6
+ *
7
+ * The DS prescribes ONE icon set, addressed by DS-owned names via {@link Icon}.
8
+ * Angular has no lucide dependency, so the glyphs are rendered as inline SVG
9
+ * from the same lucide (stroke-24) path data the other frameworks wrap — the
10
+ * single visual source of truth, frozen under DS-owned names. Names are ADDITIVE.
11
+ */
12
+ const ICON_NODES = {
13
+ settings: [
14
+ ["path", { d: "M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915" }],
15
+ ["circle", { cx: "12", cy: "12", r: "3" }],
16
+ ],
17
+ eye: [
18
+ ["path", { d: "M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0" }],
19
+ ["circle", { cx: "12", cy: "12", r: "3" }],
20
+ ],
21
+ "eye-off": [
22
+ ["path", { d: "M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49" }],
23
+ ["path", { d: "M14.084 14.158a3 3 0 0 1-4.242-4.242" }],
24
+ ["path", { d: "M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143" }],
25
+ ["path", { d: "m2 2 20 20" }],
26
+ ],
27
+ layers: [
28
+ ["path", { d: "M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z" }],
29
+ ["path", { d: "M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12" }],
30
+ ["path", { d: "M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17" }],
31
+ ],
32
+ target: [
33
+ ["circle", { cx: "12", cy: "12", r: "10" }],
34
+ ["circle", { cx: "12", cy: "12", r: "6" }],
35
+ ["circle", { cx: "12", cy: "12", r: "2" }],
36
+ ],
37
+ close: [
38
+ ["path", { d: "M18 6 6 18" }],
39
+ ["path", { d: "m6 6 12 12" }],
40
+ ],
41
+ "chevron-down": [["path", { d: "m6 9 6 6 6-6" }]],
42
+ "chevron-right": [["path", { d: "m9 18 6-6-6-6" }]],
43
+ };
44
+ /** All canonical icon names, ordered — useful for docs/catalogs. */
45
+ export const ICON_NAMES = Object.keys(ICON_NODES);
46
+ export class Icon {
47
+ static stComponentName = "Icon";
48
+ componentName = "Icon";
49
+ /** Canonical DS icon name. */
50
+ name;
51
+ /** Square size in px. Default 18 — the DS-standard inline glyph size. */
52
+ size;
53
+ /** Stroke width. Default 2.25 — matches the DS's existing lucide usage. */
54
+ strokeWidth;
55
+ /** Accessible name; when omitted the icon is decorative (`aria-hidden`). */
56
+ titleInput;
57
+ classInput;
58
+ get nodes() {
59
+ return ICON_NODES[this.name] ?? null;
60
+ }
61
+ get hostClass() {
62
+ return classNames("st-icon", this.classInput);
63
+ }
64
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: Icon, deps: [], target: i0.ɵɵFactoryTarget.Component });
65
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: Icon, isStandalone: true, selector: "st-icon", inputs: { name: "name", size: "size", strokeWidth: "strokeWidth", titleInput: ["title", "titleInput"], classInput: ["class", "classInput"] }, ngImport: i0, template: `
66
+ @if (nodes) {
67
+ <svg
68
+ [attr.data-st-component]="componentName"
69
+ [attr.width]="size ?? 18"
70
+ [attr.height]="size ?? 18"
71
+ viewBox="0 0 24 24"
72
+ fill="none"
73
+ stroke="currentColor"
74
+ [attr.stroke-width]="strokeWidth ?? 2.25"
75
+ stroke-linecap="round"
76
+ stroke-linejoin="round"
77
+ [class]="hostClass"
78
+ [attr.role]="titleInput ? 'img' : null"
79
+ [attr.aria-label]="titleInput ?? null"
80
+ [attr.aria-hidden]="titleInput ? null : 'true'"
81
+ focusable="false"
82
+ >
83
+ @for (node of nodes; track $index) {
84
+ @switch (node[0]) {
85
+ @case ('path') {
86
+ <svg:path [attr.d]="node[1].d"></svg:path>
87
+ }
88
+ @case ('circle') {
89
+ <svg:circle [attr.cx]="node[1].cx" [attr.cy]="node[1].cy" [attr.r]="node[1].r"></svg:circle>
90
+ }
91
+ @case ('line') {
92
+ <svg:line [attr.x1]="node[1].x1" [attr.y1]="node[1].y1" [attr.x2]="node[1].x2" [attr.y2]="node[1].y2"></svg:line>
93
+ }
94
+ }
95
+ }
96
+ </svg>
97
+ }
98
+ `, isInline: true, styles: [":host { display: contents; }"] });
99
+ }
100
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: Icon, decorators: [{
101
+ type: Component,
102
+ args: [{ selector: "st-icon", standalone: true, template: `
103
+ @if (nodes) {
104
+ <svg
105
+ [attr.data-st-component]="componentName"
106
+ [attr.width]="size ?? 18"
107
+ [attr.height]="size ?? 18"
108
+ viewBox="0 0 24 24"
109
+ fill="none"
110
+ stroke="currentColor"
111
+ [attr.stroke-width]="strokeWidth ?? 2.25"
112
+ stroke-linecap="round"
113
+ stroke-linejoin="round"
114
+ [class]="hostClass"
115
+ [attr.role]="titleInput ? 'img' : null"
116
+ [attr.aria-label]="titleInput ?? null"
117
+ [attr.aria-hidden]="titleInput ? null : 'true'"
118
+ focusable="false"
119
+ >
120
+ @for (node of nodes; track $index) {
121
+ @switch (node[0]) {
122
+ @case ('path') {
123
+ <svg:path [attr.d]="node[1].d"></svg:path>
124
+ }
125
+ @case ('circle') {
126
+ <svg:circle [attr.cx]="node[1].cx" [attr.cy]="node[1].cy" [attr.r]="node[1].r"></svg:circle>
127
+ }
128
+ @case ('line') {
129
+ <svg:line [attr.x1]="node[1].x1" [attr.y1]="node[1].y1" [attr.x2]="node[1].x2" [attr.y2]="node[1].y2"></svg:line>
130
+ }
131
+ }
132
+ }
133
+ </svg>
134
+ }
135
+ `, styles: [":host { display: contents; }"] }]
136
+ }], propDecorators: { name: [{
137
+ type: NgInput
138
+ }], size: [{
139
+ type: NgInput
140
+ }], strokeWidth: [{
141
+ type: NgInput
142
+ }], titleInput: [{
143
+ type: NgInput,
144
+ args: ["title"]
145
+ }], classInput: [{
146
+ type: NgInput,
147
+ args: ["class"]
148
+ }] } });
149
+ //# sourceMappingURL=Icon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Icon.js","sourceRoot":"","sources":["../src/Icon.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,103 @@
1
+ import { EventEmitter } from "@angular/core";
2
+ import { type AbsoluteDraft, type TimeRange, type TimeRangeMode, type TimeRangePreset } from "./timeRange.js";
3
+ import * as i0 from "@angular/core";
4
+ export type TimeRangePickerSize = "sm" | "md" | "lg";
5
+ export type TimeRangePickerPlacement = "bottom-start" | "bottom-end" | "top-start" | "top-end";
6
+ export type TimeRangePickerAlign = "start" | "end" | "center";
7
+ export type TimeRangePickerProps = {
8
+ value?: TimeRange;
9
+ defaultValue?: TimeRange;
10
+ presets?: TimeRangePreset[];
11
+ min?: number;
12
+ max?: number;
13
+ locale?: string;
14
+ timeFormat?: "24" | "12";
15
+ timeStep?: number;
16
+ calendarMonths?: 1 | 2;
17
+ disabled?: boolean;
18
+ label?: string;
19
+ placement?: TimeRangePickerPlacement;
20
+ align?: TimeRangePickerAlign;
21
+ size?: TimeRangePickerSize;
22
+ class?: string;
23
+ };
24
+ type ResolvedPreset = {
25
+ token: string;
26
+ label: string;
27
+ disabled: boolean;
28
+ };
29
+ export declare class TimeRangePicker {
30
+ static readonly stComponentName = "TimeRangePicker";
31
+ readonly componentName = "TimeRangePicker";
32
+ value?: TimeRange;
33
+ defaultValue?: TimeRange;
34
+ presets?: TimeRangePreset[];
35
+ min?: number;
36
+ max?: number;
37
+ locale?: string;
38
+ timeFormat?: "24" | "12";
39
+ timeStep?: number;
40
+ calendarMonths?: 1 | 2;
41
+ disabled?: boolean;
42
+ label?: string;
43
+ placement?: TimeRangePickerPlacement;
44
+ align?: TimeRangePickerAlign;
45
+ size?: TimeRangePickerSize;
46
+ classInput?: string;
47
+ formatRange?: (value: TimeRange, locale: string) => string;
48
+ formatPresetLabel?: (token: string, locale: string) => string;
49
+ valueChange: EventEmitter<TimeRange>;
50
+ change: EventEmitter<TimeRange>;
51
+ open: boolean;
52
+ activeTab: TimeRangeMode;
53
+ draft: AbsoluteDraft;
54
+ /** Uncontrolled fallback, seeded on first read from `defaultValue`. */
55
+ private internalValue?;
56
+ private get resolvedLocale();
57
+ private get isFr();
58
+ /** The committed range: controlled `value` wins, else internal/uncontrolled. */
59
+ get currentValue(): TimeRange;
60
+ get hostClass(): string;
61
+ get popoverClass(): string;
62
+ get triggerLabel(): string;
63
+ get tabItems(): Array<{
64
+ value: string;
65
+ label: string;
66
+ }>;
67
+ get fromLabel(): string;
68
+ get toLabel(): string;
69
+ get applyLabel(): string;
70
+ get cancelLabel(): string;
71
+ get selectedRelativeToken(): string | null;
72
+ /** Presets resolved to labels + a disabled flag when they'd fall below `min`. */
73
+ get resolvedPresets(): ResolvedPreset[];
74
+ /** `AbsoluteDraft` times are optional; the TimePicker input requires a string. */
75
+ get fromTimeValue(): string;
76
+ get toTimeValue(): string;
77
+ get calendarValue(): [string | null, string | null];
78
+ get minDay(): string | null;
79
+ get maxDay(): string | null;
80
+ /** Null when the draft is valid; otherwise the user-facing reason. */
81
+ get errorText(): string | null;
82
+ get canApply(): boolean;
83
+ toggle(): void;
84
+ openPanel(): void;
85
+ close(): void;
86
+ /** Cancel discards the draft and emits nothing. */
87
+ cancel(): void;
88
+ onTabChange: (tab: string) => void;
89
+ onFromTimeChange: (time: string) => void;
90
+ onToTimeChange: (time: string) => void;
91
+ onCalendarChange: (next: unknown) => void;
92
+ makePresetSelect(preset: ResolvedPreset): () => void;
93
+ /** Relative presets resolve, emit and close immediately. */
94
+ selectPreset(token: string): void;
95
+ /** Absolute mode is staged: nothing emits until Apply. */
96
+ apply(): void;
97
+ private resolveToken;
98
+ private commit;
99
+ static ɵfac: i0.ɵɵFactoryDeclaration<TimeRangePicker, never>;
100
+ static ɵcmp: i0.ɵɵComponentDeclaration<TimeRangePicker, "st-time-range-picker", never, { "value": { "alias": "value"; "required": false; }; "defaultValue": { "alias": "defaultValue"; "required": false; }; "presets": { "alias": "presets"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "locale": { "alias": "locale"; "required": false; }; "timeFormat": { "alias": "timeFormat"; "required": false; }; "timeStep": { "alias": "timeStep"; "required": false; }; "calendarMonths": { "alias": "calendarMonths"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "label": { "alias": "label"; "required": false; }; "placement": { "alias": "placement"; "required": false; }; "align": { "alias": "align"; "required": false; }; "size": { "alias": "size"; "required": false; }; "classInput": { "alias": "class"; "required": false; }; "formatRange": { "alias": "formatRange"; "required": false; }; "formatPresetLabel": { "alias": "formatPresetLabel"; "required": false; }; }, { "valueChange": "valueChange"; "change": "change"; }, never, never, true, never>;
101
+ }
102
+ export {};
103
+ //# sourceMappingURL=TimeRangePicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimeRangePicker.d.ts","sourceRoot":"","sources":["../src/TimeRangePicker.ts"],"names":[],"mappings":"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"}