@joanroucoux/cairn-ui 0.3.0 → 0.4.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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@joanroucoux/cairn-ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Cairn UI — a monochrome, accessible Angular design system.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"angular",
|
|
@@ -32,6 +32,8 @@
|
|
|
32
32
|
"@angular/core": "^22.0.0"
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
|
+
"d3-scale": "4.0.2",
|
|
36
|
+
"d3-shape": "3.2.0",
|
|
35
37
|
"tslib": "2.8.1"
|
|
36
38
|
},
|
|
37
39
|
"sideEffects": false,
|
|
@@ -77,7 +77,7 @@ type AvatarSize = (typeof AVATAR_SIZES)[number];
|
|
|
77
77
|
declare class UiAvatar {
|
|
78
78
|
readonly initials: _angular_core.InputSignal<string>;
|
|
79
79
|
readonly label: _angular_core.InputSignal<string>;
|
|
80
|
-
readonly size: _angular_core.InputSignal<"
|
|
80
|
+
readonly size: _angular_core.InputSignal<"sm" | "md">;
|
|
81
81
|
protected readonly classes: _angular_core.Signal<string>;
|
|
82
82
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UiAvatar, never>;
|
|
83
83
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UiAvatar, "ui-avatar", never, { "initials": { "alias": "initials"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
@@ -136,7 +136,7 @@ type CardPadding = (typeof CARD_PADDINGS)[number];
|
|
|
136
136
|
*/
|
|
137
137
|
declare class UiCard {
|
|
138
138
|
readonly variant: _angular_core.InputSignal<"default" | "elevated">;
|
|
139
|
-
readonly padding: _angular_core.InputSignal<"
|
|
139
|
+
readonly padding: _angular_core.InputSignal<"sm" | "md" | "none">;
|
|
140
140
|
protected readonly classes: _angular_core.Signal<string>;
|
|
141
141
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UiCard, never>;
|
|
142
142
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UiCard, "ui-card", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "padding": { "alias": "padding"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
@@ -269,7 +269,7 @@ type ControlSize = (typeof CONTROL_SIZES)[number];
|
|
|
269
269
|
* <input uiInput type="email" placeholder="you@example.com" />
|
|
270
270
|
*/
|
|
271
271
|
declare class UiInput implements UiControl {
|
|
272
|
-
readonly size: _angular_core.InputSignal<"
|
|
272
|
+
readonly size: _angular_core.InputSignal<"sm" | "md">;
|
|
273
273
|
readonly errors: _angular_core.InputSignal<readonly UiControlError[]>;
|
|
274
274
|
readonly touched: _angular_core.InputSignal<boolean>;
|
|
275
275
|
protected readonly classes: _angular_core.Signal<string>;
|
|
@@ -294,6 +294,81 @@ declare class UiTextarea implements UiControl {
|
|
|
294
294
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<UiTextarea, "textarea[uiTextarea]", never, { "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
295
295
|
}
|
|
296
296
|
|
|
297
|
+
type ChartPoint = {
|
|
298
|
+
t: number;
|
|
299
|
+
v: number;
|
|
300
|
+
};
|
|
301
|
+
type PlottedPoint = ChartPoint & {
|
|
302
|
+
x: number;
|
|
303
|
+
y: number;
|
|
304
|
+
};
|
|
305
|
+
type ChartGeometry = {
|
|
306
|
+
line: string;
|
|
307
|
+
end: {
|
|
308
|
+
x: number;
|
|
309
|
+
y: number;
|
|
310
|
+
};
|
|
311
|
+
start: {
|
|
312
|
+
y: number;
|
|
313
|
+
};
|
|
314
|
+
points: PlottedPoint[];
|
|
315
|
+
plotBottom: number;
|
|
316
|
+
plotTop: number;
|
|
317
|
+
};
|
|
318
|
+
|
|
319
|
+
type StartLabelPlacement = {
|
|
320
|
+
x: number;
|
|
321
|
+
y: number;
|
|
322
|
+
anchor: 'start' | 'end';
|
|
323
|
+
};
|
|
324
|
+
|
|
325
|
+
type PlotRef = ElementRef<SVGSVGElement>;
|
|
326
|
+
/**
|
|
327
|
+
* Value over time: a monotone curve with a dashed line at the starting value and a tooltip.
|
|
328
|
+
*
|
|
329
|
+
* @example
|
|
330
|
+
* <ui-line-chart [points]="points" label="Net worth over one month" startLabel="Since" [valueFormat]="formatEur" />
|
|
331
|
+
*/
|
|
332
|
+
declare class UiLineChart {
|
|
333
|
+
#private;
|
|
334
|
+
readonly points: _angular_core.InputSignal<ChartPoint[]>;
|
|
335
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
336
|
+
readonly valueFormat: _angular_core.InputSignal<(value: number) => string>;
|
|
337
|
+
readonly deltaFormat: _angular_core.InputSignal<(delta: number) => string>;
|
|
338
|
+
readonly timeFormat: _angular_core.InputSignal<(time: number) => string>;
|
|
339
|
+
readonly axisFormat: _angular_core.InputSignal<(time: number) => string>;
|
|
340
|
+
readonly startLabel: _angular_core.InputSignal<string>;
|
|
341
|
+
readonly timeColumnLabel: _angular_core.InputSignal<string>;
|
|
342
|
+
readonly valueColumnLabel: _angular_core.InputSignal<string>;
|
|
343
|
+
protected readonly svgRef: _angular_core.Signal<PlotRef>;
|
|
344
|
+
protected readonly activeIndex: _angular_core.WritableSignal<number | null>;
|
|
345
|
+
protected readonly animatedLine: _angular_core.WritableSignal<string | null>;
|
|
346
|
+
protected readonly measuredSize: _angular_core.WritableSignal<{
|
|
347
|
+
width: number;
|
|
348
|
+
height: number;
|
|
349
|
+
} | null>;
|
|
350
|
+
protected readonly effectiveWidth: _angular_core.Signal<number>;
|
|
351
|
+
protected readonly effectiveHeight: _angular_core.Signal<number>;
|
|
352
|
+
protected readonly geometry: _angular_core.Signal<ChartGeometry | null>;
|
|
353
|
+
protected readonly displayLine: _angular_core.Signal<string>;
|
|
354
|
+
protected readonly ticks: _angular_core.Signal<PlottedPoint[]>;
|
|
355
|
+
protected readonly active: _angular_core.Signal<PlottedPoint | null>;
|
|
356
|
+
protected readonly startLabelInfo: _angular_core.Signal<{
|
|
357
|
+
label: string;
|
|
358
|
+
placement: StartLabelPlacement;
|
|
359
|
+
} | null>;
|
|
360
|
+
constructor();
|
|
361
|
+
protected coreTick(index: number, count: number): boolean;
|
|
362
|
+
protected deltaFor(point: PlottedPoint): number;
|
|
363
|
+
protected deltaClasses(point: PlottedPoint): string;
|
|
364
|
+
protected tooltipStyle(point: PlottedPoint): string;
|
|
365
|
+
protected onPointerMove(event: PointerEvent): void;
|
|
366
|
+
protected onPointerLeave(): void;
|
|
367
|
+
protected onKeydown(event: KeyboardEvent): void;
|
|
368
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UiLineChart, never>;
|
|
369
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UiLineChart, "ui-line-chart", never, { "points": { "alias": "points"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "valueFormat": { "alias": "valueFormat"; "required": false; "isSignal": true; }; "deltaFormat": { "alias": "deltaFormat"; "required": false; "isSignal": true; }; "timeFormat": { "alias": "timeFormat"; "required": false; "isSignal": true; }; "axisFormat": { "alias": "axisFormat"; "required": false; "isSignal": true; }; "startLabel": { "alias": "startLabel"; "required": false; "isSignal": true; }; "timeColumnLabel": { "alias": "timeColumnLabel"; "required": false; "isSignal": true; }; "valueColumnLabel": { "alias": "valueColumnLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
370
|
+
}
|
|
371
|
+
|
|
297
372
|
/**
|
|
298
373
|
* One action of a `ui-menu`; `destructive` paints it in `--negative`.
|
|
299
374
|
*
|
|
@@ -363,7 +438,7 @@ declare class UiMeter {
|
|
|
363
438
|
readonly value: _angular_core.InputSignal<number>;
|
|
364
439
|
readonly label: _angular_core.InputSignal<string>;
|
|
365
440
|
readonly valueText: _angular_core.InputSignal<string>;
|
|
366
|
-
readonly tone: _angular_core.InputSignal<2 |
|
|
441
|
+
readonly tone: _angular_core.InputSignal<2 | 4 | 1 | 3 | 5 | 6>;
|
|
367
442
|
protected readonly percent: _angular_core.Signal<number>;
|
|
368
443
|
protected readonly fillClasses: _angular_core.Signal<string>;
|
|
369
444
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UiMeter, never>;
|
|
@@ -437,7 +512,7 @@ declare class UiSegmented {
|
|
|
437
512
|
* <select uiSelect><option value="pea">PEA</option></select>
|
|
438
513
|
*/
|
|
439
514
|
declare class UiSelect implements UiControl {
|
|
440
|
-
readonly size: _angular_core.InputSignal<"
|
|
515
|
+
readonly size: _angular_core.InputSignal<"sm" | "md">;
|
|
441
516
|
readonly errors: _angular_core.InputSignal<readonly UiControlError[]>;
|
|
442
517
|
readonly touched: _angular_core.InputSignal<boolean>;
|
|
443
518
|
protected readonly classes: _angular_core.Signal<string>;
|
|
@@ -454,7 +529,7 @@ declare class UiSelect implements UiControl {
|
|
|
454
529
|
* <ui-skeleton [lines]="3" />
|
|
455
530
|
*/
|
|
456
531
|
declare class UiSkeleton {
|
|
457
|
-
readonly shape: _angular_core.InputSignal<"
|
|
532
|
+
readonly shape: _angular_core.InputSignal<"text" | "figure" | "row" | "chart" | "ring">;
|
|
458
533
|
readonly lines: _angular_core.InputSignal<number>;
|
|
459
534
|
readonly height: _angular_core.InputSignal<number>;
|
|
460
535
|
protected readonly animation = "cairn-pulse var(--pulse-duration) var(--ease-out) infinite alternate";
|
|
@@ -572,5 +647,5 @@ declare class UiTab {
|
|
|
572
647
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UiTab, "a[ui-tab]", never, { "active": { "alias": "active"; "required": false; "isSignal": true; }; }, {}, never, ["[tabIcon]", "*"], true, never>;
|
|
573
648
|
}
|
|
574
649
|
|
|
575
|
-
export { AMOUNT_MASKINGS, AMOUNT_NUMERICS, ASYNC_STATES, AVATAR_SIZES, BADGE_VARIANTS, BUTTON_SIZES, BUTTON_VARIANTS, CARD_PADDINGS, CARD_VARIANTS, CELL_BREAKPOINTS, CONTROL_SIZES, DELTA_EMPHASES, DIALOG_WIDTHS, METER_TONES, STAT_SIZES, UI_AMOUNT_MASKED, UiAmount, UiAsync, UiAvatar, UiBadge, UiButton, UiCard, UiDelta, UiDialog, UiField, UiInput, UiMenu, UiMenuItem, UiMenuTrigger, UiMeter, UiNavItem, UiRow, UiSegmented, UiSelect, UiSkeleton, UiStat, UiSwitch, UiTab, UiTabBar, UiTable, UiTd, UiTextarea, UiTh, UiTr, formatAmount };
|
|
576
|
-
export type { AmountFormatOptions, AmountMasking, AmountNumeric, AsyncState, AvatarSize, BadgeVariant, ButtonSize, ButtonVariant, CardPadding, CardVariant, CellBreakpoint, ControlSize, DeltaEmphasis, DialogWidth, MeterTone, SegmentedOption, StatSize, UiControlError };
|
|
650
|
+
export { AMOUNT_MASKINGS, AMOUNT_NUMERICS, ASYNC_STATES, AVATAR_SIZES, BADGE_VARIANTS, BUTTON_SIZES, BUTTON_VARIANTS, CARD_PADDINGS, CARD_VARIANTS, CELL_BREAKPOINTS, CONTROL_SIZES, DELTA_EMPHASES, DIALOG_WIDTHS, METER_TONES, STAT_SIZES, UI_AMOUNT_MASKED, UiAmount, UiAsync, UiAvatar, UiBadge, UiButton, UiCard, UiDelta, UiDialog, UiField, UiInput, UiLineChart, UiMenu, UiMenuItem, UiMenuTrigger, UiMeter, UiNavItem, UiRow, UiSegmented, UiSelect, UiSkeleton, UiStat, UiSwitch, UiTab, UiTabBar, UiTable, UiTd, UiTextarea, UiTh, UiTr, formatAmount };
|
|
651
|
+
export type { AmountFormatOptions, AmountMasking, AmountNumeric, AsyncState, AvatarSize, BadgeVariant, ButtonSize, ButtonVariant, CardPadding, CardVariant, CellBreakpoint, ChartPoint, ControlSize, DeltaEmphasis, DialogWidth, MeterTone, SegmentedOption, StatSize, UiControlError };
|