@masmarino/gabarit 0.5.0 → 0.6.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@masmarino/gabarit",
3
- "version": "0.5.0",
3
+ "version": "0.6.1",
4
4
  "description": "Angular design system — UI components and dataviz for self-hosted applications.",
5
5
  "license": "MIT",
6
6
  "homepage": "https://github.com/Masmarino/Gabarit",
@@ -4,7 +4,7 @@ import { OnDestroy, TemplateRef, ElementRef, InjectionToken, Signal } from '@ang
4
4
  import { ControlValueAccessor, FormControl } from '@angular/forms';
5
5
  import { Observable } from 'rxjs';
6
6
 
7
- declare const GABARIT_VERSION = "0.5.0";
7
+ declare const GABARIT_VERSION = "0.6.1";
8
8
 
9
9
  declare class Icon {
10
10
  private readonly sanitizer;
@@ -21,7 +21,7 @@ declare class IconRegistry {
21
21
  registerAll(icons: Record<string, string>): void;
22
22
  get(name: string): string | null;
23
23
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<IconRegistry, never>;
24
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<IconRegistry>;
24
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
25
25
  }
26
26
 
27
27
  declare class AppShell {
@@ -74,6 +74,17 @@ declare class Badge {
74
74
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<Badge, "gbt-badge", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
75
75
  }
76
76
 
77
+ declare class Tag {
78
+ color: _angular_core.InputSignal<string>;
79
+ removable: _angular_core.InputSignal<boolean>;
80
+ removeLabel: _angular_core.InputSignal<string>;
81
+ removed: _angular_core.OutputEmitterRef<void>;
82
+ protected readonly textColor: _angular_core.Signal<string>;
83
+ protected onRemoveClick(event: MouseEvent): void;
84
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Tag, never>;
85
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Tag, "gbt-tag", never, { "color": { "alias": "color"; "required": true; "isSignal": true; }; "removable": { "alias": "removable"; "required": false; "isSignal": true; }; "removeLabel": { "alias": "removeLabel"; "required": false; "isSignal": true; }; }, { "removed": "removed"; }, never, ["*"], true, never>;
86
+ }
87
+
77
88
  type EmptyStateIllustration = 'folder' | 'star' | 'checklist' | 'merge' | 'pipeline' | 'tag' | 'book';
78
89
  declare class EmptyState {
79
90
  illustration: _angular_core.InputSignal<EmptyStateIllustration>;
@@ -87,6 +98,7 @@ interface SelectOption<T = string> {
87
98
  value: T;
88
99
  label: string;
89
100
  icon?: string;
101
+ color?: string;
90
102
  }
91
103
  declare class Select<T = string> implements ControlValueAccessor {
92
104
  private readonly elementRef;
@@ -95,11 +107,13 @@ declare class Select<T = string> implements ControlValueAccessor {
95
107
  size: _angular_core.InputSignal<"md" | "sm">;
96
108
  options: _angular_core.InputSignal<SelectOption<T>[]>;
97
109
  multiple: _angular_core.InputSignalWithTransform<boolean, unknown>;
110
+ chips: _angular_core.InputSignalWithTransform<boolean, unknown>;
98
111
  placeholder: _angular_core.InputSignal<string>;
99
112
  disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
100
113
  required: _angular_core.InputSignalWithTransform<boolean, unknown>;
101
114
  errorMessage: _angular_core.InputSignal<string | null>;
102
115
  selectedCountLabel: _angular_core.InputSignal<(count: number) => string>;
116
+ chipRemoveLabel: _angular_core.InputSignal<(label: string) => string>;
103
117
  protected readonly open: _angular_core.WritableSignal<boolean>;
104
118
  protected readonly activeIndex: _angular_core.WritableSignal<number>;
105
119
  protected readonly selected: _angular_core.WritableSignal<T[]>;
@@ -110,6 +124,7 @@ declare class Select<T = string> implements ControlValueAccessor {
110
124
  } | null>;
111
125
  private readonly formDisabled;
112
126
  protected readonly labelId: _angular_core.Signal<string>;
127
+ protected readonly chipsId: _angular_core.Signal<string>;
113
128
  protected readonly isDisabled: _angular_core.Signal<boolean>;
114
129
  private onChange;
115
130
  private onTouched;
@@ -119,16 +134,31 @@ declare class Select<T = string> implements ControlValueAccessor {
119
134
  registerOnTouched(fn: () => void): void;
120
135
  protected readonly selectedOptions: _angular_core.Signal<SelectOption<T>[]>;
121
136
  protected readonly triggerLabel: _angular_core.Signal<string>;
137
+ protected readonly chipsVisible: _angular_core.Signal<boolean>;
138
+ /**
139
+ * In chips mode the trigger keeps showing the placeholder, so the selection
140
+ * is conveyed to assistive technology by describing the trigger with the
141
+ * chip row itself. The error message keeps its own id in the list.
142
+ */
143
+ protected readonly describedBy: _angular_core.Signal<string | null>;
122
144
  protected readonly triggerIcon: _angular_core.Signal<string | undefined>;
123
145
  protected readonly activeOptionId: _angular_core.Signal<string | null>;
124
146
  protected isSelected(value: T): boolean;
125
147
  protected toggleOpen(): void;
126
148
  protected updatePanelPosition(): void;
149
+ /**
150
+ * Removes the chip at `index`. Refuses to mutate anything while the control
151
+ * is disabled (the remove buttons are not rendered then, but a programmatic
152
+ * caller must not be able to bypass the disabled state either), and moves
153
+ * focus off the button it is about to destroy — otherwise focus falls back
154
+ * to `<body>`.
155
+ */
156
+ protected removeChip(value: T, index: number): void;
127
157
  protected selectOption(value: T): void;
128
158
  protected handleClickOutside(event: MouseEvent): void;
129
159
  protected onKeydown(event: KeyboardEvent): void;
130
160
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<Select<any>, never>;
131
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<Select<any>, "gbt-select", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": true; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "selectedCountLabel": { "alias": "selectedCountLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
161
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Select<any>, "gbt-select", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": true; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "chips": { "alias": "chips"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "selectedCountLabel": { "alias": "selectedCountLabel"; "required": false; "isSignal": true; }; "chipRemoveLabel": { "alias": "chipRemoveLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
132
162
  }
133
163
 
134
164
  interface ListToolbarSortOption<T extends string = string> {
@@ -160,7 +190,7 @@ declare class Card {
160
190
  hoverable: _angular_core.InputSignalWithTransform<boolean, unknown>;
161
191
  heading: _angular_core.InputSignal<string>;
162
192
  icon: _angular_core.InputSignal<string>;
163
- headingLevel: _angular_core.InputSignal<2 | 1 | 6 | 3 | 4 | 5>;
193
+ headingLevel: _angular_core.InputSignal<2 | 1 | 4 | 6 | 3 | 5>;
164
194
  protected readonly cardClass: _angular_core.Signal<string>;
165
195
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<Card, never>;
166
196
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<Card, "gbt-card", never, { "hoverable": { "alias": "hoverable"; "required": false; "isSignal": true; }; "heading": { "alias": "heading"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "headingLevel": { "alias": "headingLevel"; "required": false; "isSignal": true; }; }, {}, never, ["[card-header-actions]", "*"], true, never>;
@@ -217,7 +247,7 @@ declare class Checkbox implements ControlValueAccessor {
217
247
  declare class Modal implements OnDestroy {
218
248
  isOpen: _angular_core.InputSignal<boolean>;
219
249
  heading: _angular_core.InputSignal<string>;
220
- headingLevel: _angular_core.InputSignal<2 | 1 | 6 | 3 | 4 | 5>;
250
+ headingLevel: _angular_core.InputSignal<2 | 1 | 4 | 6 | 3 | 5>;
221
251
  closeLabel: _angular_core.InputSignal<string>;
222
252
  closed: _angular_core.OutputEmitterRef<void>;
223
253
  private readonly dialog;
@@ -422,7 +452,7 @@ declare class ChartFrame {
422
452
  private readonly context;
423
453
  label: _angular_core.InputSignal<string>;
424
454
  heading: _angular_core.InputSignal<string>;
425
- headingLevel: _angular_core.InputSignal<2 | 1 | 6 | 3 | 4 | 5>;
455
+ headingLevel: _angular_core.InputSignal<2 | 1 | 4 | 6 | 3 | 5>;
426
456
  headline: _angular_core.InputSignal<string>;
427
457
  trend: _angular_core.InputSignal<string>;
428
458
  x: _angular_core.InputSignal<AxisSpec>;
@@ -559,7 +589,7 @@ declare class LineChart<X extends number | Date> {
559
589
  height: number;
560
590
  } | null>;
561
591
  heading: _angular_core.InputSignal<string>;
562
- headingLevel: _angular_core.InputSignal<2 | 1 | 6 | 3 | 4 | 5>;
592
+ headingLevel: _angular_core.InputSignal<2 | 1 | 4 | 6 | 3 | 5>;
563
593
  headline: _angular_core.InputSignal<string>;
564
594
  trend: _angular_core.InputSignal<string>;
565
595
  protected readonly activeIndex: _angular_core.WritableSignal<number | null>;
@@ -615,7 +645,7 @@ declare class BarChart {
615
645
  height: number;
616
646
  } | null>;
617
647
  heading: _angular_core.InputSignal<string>;
618
- headingLevel: _angular_core.InputSignal<2 | 1 | 6 | 3 | 4 | 5>;
648
+ headingLevel: _angular_core.InputSignal<2 | 1 | 4 | 6 | 3 | 5>;
619
649
  headline: _angular_core.InputSignal<string>;
620
650
  trend: _angular_core.InputSignal<string>;
621
651
  protected readonly hasData: _angular_core.Signal<boolean>;
@@ -662,7 +692,7 @@ declare class TimelineChart {
662
692
  height: number;
663
693
  } | null>;
664
694
  heading: _angular_core.InputSignal<string>;
665
- headingLevel: _angular_core.InputSignal<2 | 1 | 6 | 3 | 4 | 5>;
695
+ headingLevel: _angular_core.InputSignal<2 | 1 | 4 | 6 | 3 | 5>;
666
696
  headline: _angular_core.InputSignal<string>;
667
697
  trend: _angular_core.InputSignal<string>;
668
698
  protected readonly hasData: _angular_core.Signal<boolean>;
@@ -1068,5 +1098,5 @@ declare class Autocomplete<T = unknown> implements ControlValueAccessor, OnDestr
1068
1098
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<Autocomplete<any>, "gbt-autocomplete", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "search": { "alias": "search"; "required": true; "isSignal": true; }; "displayFn": { "alias": "displayFn"; "required": false; "isSignal": true; }; "itemTemplate": { "alias": "itemTemplate"; "required": false; "isSignal": true; }; "debounceMs": { "alias": "debounceMs"; "required": false; "isSignal": true; }; "minLength": { "alias": "minLength"; "required": false; "isSignal": true; }; "loadingMessage": { "alias": "loadingMessage"; "required": false; "isSignal": true; }; "noResultsMessage": { "alias": "noResultsMessage"; "required": false; "isSignal": true; }; "searchErrorMessage": { "alias": "searchErrorMessage"; "required": false; "isSignal": true; }; "resultsAnnouncement": { "alias": "resultsAnnouncement"; "required": false; "isSignal": true; }; }, { "itemSelected": "itemSelected"; }, never, never, true, never>;
1069
1099
  }
1070
1100
 
1071
- export { AppShell, Autocomplete, Badge, BarChart, BarSeries, Breadcrumb, Button, CHART_CONTEXT, Card, ChartAxis, ChartEmpty, ChartFrame, ChartLegend, ChartTable, ChartTooltip, Checkbox, ConfirmDangerModal, DimensionCard, EmptyState, FunnelChart, GABARIT_VERSION, GaugeBar, GbtInput, Icon, IconRegistry, LineChart, LineSeries, ListToolbar, Menu, Modal, Pagination, RadioGroup, SearchBar, Select, Sparkline, Switch, Tab, Table, Tabs, Textarea, TimelineChart, TimelineSeries, Toaster, Tooltip, areaPath, bandScale, formatCompact, formatDuration, formatNumber, formatPercent, linePath, linearScale, nearestIndex, niceTicks, niceXDomain, niceYDomain, timeScale, timeTicks };
1101
+ export { AppShell, Autocomplete, Badge, BarChart, BarSeries, Breadcrumb, Button, CHART_CONTEXT, Card, ChartAxis, ChartEmpty, ChartFrame, ChartLegend, ChartTable, ChartTooltip, Checkbox, ConfirmDangerModal, DimensionCard, EmptyState, FunnelChart, GABARIT_VERSION, GaugeBar, GbtInput, Icon, IconRegistry, LineChart, LineSeries, ListToolbar, Menu, Modal, Pagination, RadioGroup, SearchBar, Select, Sparkline, Switch, Tab, Table, Tabs, Tag, Textarea, TimelineChart, TimelineSeries, Toaster, Tooltip, areaPath, bandScale, formatCompact, formatDuration, formatNumber, formatPercent, linePath, linearScale, nearestIndex, niceTicks, niceXDomain, niceYDomain, timeScale, timeTicks };
1072
1102
  export type { AutocompleteSearchFn, AxisSpec, BadgeVariant, BandScale, ChartBox, ChartInterval, ChartMargin, ChartPoint, ChartReader, ChartSeries, DimensionRow, EmptyStateIllustration, FunnelStep, LegendEntry, LinearAxisSpec, ListToolbarSortOption, Point, PointValue, RadioOption, Scale, SearchResultCategory, SelectOption, TableColumn, TimeTicks, TimeUnit, ToastItem, ToastVariant, ToasterPosition, TooltipPoint, TooltipPosition, TooltipRow };