ngx-bsl 0.0.2 → 0.0.4

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/index.d.ts CHANGED
@@ -1,10 +1,306 @@
1
- import * as i0 from '@angular/core';
2
- import { OnInit } from '@angular/core';
1
+ import * as _angular_core from '@angular/core';
2
+ import { OnInit, AfterContentInit, ElementRef, PipeTransform, OnDestroy } from '@angular/core';
3
+ import { ControlValueAccessor } from '@angular/forms';
3
4
 
4
- declare class NgxBsl implements OnInit {
5
+ declare class ComboboxComponent<TOption> implements ControlValueAccessor {
6
+ id: _angular_core.InputSignal<string>;
7
+ options: _angular_core.InputSignal<TOption[]>;
8
+ bindLabel: _angular_core.InputSignal<string | undefined>;
9
+ placeholder: _angular_core.InputSignal<string>;
10
+ ariaLabel: _angular_core.InputSignal<string | undefined>;
11
+ ariaLabelledBy: _angular_core.InputSignal<string | undefined>;
12
+ comparisonField: _angular_core.InputSignal<keyof TOption | undefined>;
13
+ confirmSelection: _angular_core.OutputEmitterRef<void>;
14
+ private listBox;
15
+ onChange: (_value: TOption) => void;
16
+ onTouch: () => void;
17
+ protected value: TOption | null;
18
+ protected open: _angular_core.WritableSignal<boolean>;
19
+ protected ariaActiveDescendant: _angular_core.Signal<string | null>;
20
+ protected initialFocusedOptionIndex: _angular_core.WritableSignal<number | null>;
21
+ protected showListBox(): void;
22
+ protected hideListBox(): void;
23
+ protected onClick(): void;
24
+ protected onSelectOption(value: TOption): void;
25
+ protected onInputChange(event: InputEvent): void;
26
+ protected onKeydown(event: KeyboardEvent): void;
27
+ registerOnChange(onChange: (value: TOption) => void): void;
28
+ registerOnTouched(onTouch: () => void): void;
29
+ writeValue(value: TOption): void;
30
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ComboboxComponent<any>, never>;
31
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ComboboxComponent<any>, "ngx-bsl-combobox", never, { "id": { "alias": "id"; "required": true; "isSignal": true; }; "options": { "alias": "options"; "required": true; "isSignal": true; }; "bindLabel": { "alias": "bindLabel"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; "isSignal": true; }; "comparisonField": { "alias": "comparisonField"; "required": false; "isSignal": true; }; }, { "confirmSelection": "confirmSelection"; }, never, never, true, never>;
32
+ }
33
+
34
+ declare class CheckboxComponent implements ControlValueAccessor {
35
+ id: _angular_core.InputSignal<string>;
36
+ protected checked: _angular_core.WritableSignal<boolean>;
37
+ protected disabled: _angular_core.WritableSignal<boolean>;
38
+ onChange: (_value: boolean) => void;
39
+ onTouch: () => void;
40
+ registerOnChange(onChange: (value: boolean) => void): void;
41
+ registerOnTouched(onTouch: () => void): void;
42
+ writeValue(value: boolean): void;
43
+ setDisabledState(disabled: boolean): void;
44
+ onKeydown(event: Event): void;
45
+ onSelect(): void;
46
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CheckboxComponent, never>;
47
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CheckboxComponent, "ngx-bsl-checkbox", never, { "id": { "alias": "id"; "required": true; "isSignal": true; }; }, {}, never, ["*"], true, never>;
48
+ }
49
+
50
+ declare class DrawerComponent {
51
+ title: _angular_core.InputSignal<string>;
52
+ closed: _angular_core.OutputEmitterRef<void>;
53
+ protected isClosed: _angular_core.WritableSignal<boolean>;
54
+ private elementRef;
55
+ constructor();
56
+ close(): void;
57
+ protected onTransitionEnd(event: TransitionEvent): void;
58
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DrawerComponent, never>;
59
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DrawerComponent, "ngx-bsl-drawer", never, { "title": { "alias": "title"; "required": true; "isSignal": true; }; }, { "closed": "closed"; }, never, ["*"], true, never>;
60
+ }
61
+
62
+ declare class ListBoxOptionComponent<TOption> {
63
+ value: _angular_core.InputSignal<TOption>;
64
+ id: _angular_core.InputSignal<string>;
65
+ private optionIdGenerator;
66
+ protected listBoxOptionId: _angular_core.Signal<string>;
67
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ListBoxOptionComponent<any>, never>;
68
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ListBoxOptionComponent<any>, "ngx-bsl-list-box-option", never, { "value": { "alias": "value"; "required": true; "isSignal": true; }; "id": { "alias": "id"; "required": true; "isSignal": true; }; }, {}, never, ["*"], true, never>;
69
+ }
70
+
71
+ declare class ListBoxComponent<TOption> implements OnInit, AfterContentInit, ControlValueAccessor {
72
+ id: _angular_core.InputSignal<string>;
73
+ ariaLabel: _angular_core.InputSignal<string | undefined>;
74
+ ariaLabelledby: _angular_core.InputSignal<string | undefined>;
75
+ exposeAriaActiveDescendant: _angular_core.InputSignal<boolean>;
76
+ comparisonField: _angular_core.InputSignal<keyof TOption | undefined>;
77
+ initialValue: _angular_core.InputSignal<TOption | null | undefined>;
78
+ initialFocusedOptionIndex: _angular_core.InputSignal<number | null>;
79
+ selectOption: _angular_core.OutputEmitterRef<TOption>;
80
+ listBoxOptions: _angular_core.Signal<readonly ListBoxOptionComponent<TOption>[]>;
81
+ listBoxOptionRefs: _angular_core.Signal<readonly ElementRef<HTMLElement>[]>;
82
+ ariaActiveDescendant: _angular_core.WritableSignal<string | null>;
83
+ onChange: (_value: TOption) => void;
84
+ onTouch: () => void;
85
+ private value;
5
86
  ngOnInit(): void;
6
- static ɵfac: i0.ɵɵFactoryDeclaration<NgxBsl, never>;
7
- static ɵcmp: i0.ɵɵComponentDeclaration<NgxBsl, "ngx-bsl-test", never, {}, {}, never, never, true, never>;
87
+ ngAfterContentInit(): void;
88
+ onClick(event: MouseEvent): void;
89
+ onKeydown(event: KeyboardEvent): void;
90
+ private initSelectedOption;
91
+ private equalsToCurrentValue;
92
+ private handleSelectionKeys;
93
+ private handleArrowKeys;
94
+ private getVisuallyFocusedListBoxOptionRefIndex;
95
+ private setVisualFocus;
96
+ private removeVisualFocus;
97
+ protected clearVisualFocus(): void;
98
+ protected setSelectedAttribute(optionIndex: number): void;
99
+ protected removeSelectedAttribute(): void;
100
+ registerOnChange(onChange: (value: TOption) => void): void;
101
+ registerOnTouched(onTouch: () => void): void;
102
+ writeValue(value: TOption): void;
103
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ListBoxComponent<any>, never>;
104
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ListBoxComponent<any>, "ngx-bsl-list-box", never, { "id": { "alias": "id"; "required": true; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "ariaLabelledby": { "alias": "ariaLabelledby"; "required": false; "isSignal": true; }; "exposeAriaActiveDescendant": { "alias": "exposeAriaActiveDescendant"; "required": false; "isSignal": true; }; "comparisonField": { "alias": "comparisonField"; "required": false; "isSignal": true; }; "initialValue": { "alias": "initialValue"; "required": false; "isSignal": true; }; "initialFocusedOptionIndex": { "alias": "initialFocusedOptionIndex"; "required": false; "isSignal": true; }; }, { "selectOption": "selectOption"; }, ["listBoxOptions", "listBoxOptionRefs"], ["*"], true, never>;
105
+ }
106
+
107
+ declare class ListBoxGroupComponent {
108
+ title: _angular_core.InputSignal<string | undefined>;
109
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ListBoxGroupComponent, never>;
110
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ListBoxGroupComponent, "ngx-bsl-list-box-group", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
111
+ }
112
+
113
+ declare class ListBoxOptionValueConverterPipe implements PipeTransform {
114
+ transform(value: unknown, bindLabel?: string): string;
115
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ListBoxOptionValueConverterPipe, never>;
116
+ static ɵpipe: _angular_core.ɵɵPipeDeclaration<ListBoxOptionValueConverterPipe, "listBoxOptionValueConverter", true>;
117
+ }
118
+
119
+ declare class ListBoxSeparatorComponent {
120
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ListBoxSeparatorComponent, never>;
121
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ListBoxSeparatorComponent, "ngx-bsl-list-box-separator", never, {}, {}, never, never, true, never>;
122
+ }
123
+
124
+ declare class IconCheckComponent {
125
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<IconCheckComponent, never>;
126
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<IconCheckComponent, "ngx-bsl-icon-check", never, {}, {}, never, never, true, never>;
127
+ }
128
+
129
+ declare class IconChevronDownComponent {
130
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<IconChevronDownComponent, never>;
131
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<IconChevronDownComponent, "ngx-bsl-icon-chevron-down", never, {}, {}, never, never, true, never>;
132
+ }
133
+
134
+ declare class IconCompanyComponent {
135
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<IconCompanyComponent, never>;
136
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<IconCompanyComponent, "ngx-bsl-icon-company", never, {}, {}, never, never, true, never>;
137
+ }
138
+
139
+ declare class IconLanguageComponent {
140
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<IconLanguageComponent, never>;
141
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<IconLanguageComponent, "ngx-bsl-icon-language", never, {}, {}, never, never, true, never>;
142
+ }
143
+
144
+ declare class IconLocationComponent {
145
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<IconLocationComponent, never>;
146
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<IconLocationComponent, "ngx-bsl-icon-location", never, {}, {}, never, never, true, never>;
147
+ }
148
+
149
+ declare class IconMoonComponent {
150
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<IconMoonComponent, never>;
151
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<IconMoonComponent, "ngx-bsl-icon-moon", never, {}, {}, never, never, true, never>;
152
+ }
153
+
154
+ declare class IconSunComponent {
155
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<IconSunComponent, never>;
156
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<IconSunComponent, "ngx-bsl-icon-sun", never, {}, {}, never, never, true, never>;
157
+ }
158
+
159
+ declare class IconXMarkComponent {
160
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<IconXMarkComponent, never>;
161
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<IconXMarkComponent, "ngx-bsl-icon-x-mark", never, {}, {}, never, never, true, never>;
162
+ }
163
+
164
+ declare class PaginationComponent {
165
+ page: _angular_core.ModelSignal<number>;
166
+ total: _angular_core.InputSignal<number>;
167
+ size: _angular_core.InputSignal<number>;
168
+ nextPageAriaLabel: _angular_core.InputSignal<string>;
169
+ previousPageAriaLabel: _angular_core.InputSignal<string>;
170
+ firstPageAriaLabel: _angular_core.InputSignal<string>;
171
+ lastPageAriaLabel: _angular_core.InputSignal<string>;
172
+ selectPageAriaLabel: _angular_core.InputSignal<string>;
173
+ selectPageAriaLabelledBy: _angular_core.InputSignal<string | null>;
174
+ pageChanged: _angular_core.OutputEmitterRef<number>;
175
+ protected inputRef: _angular_core.Signal<ElementRef<HTMLInputElement>>;
176
+ protected pages: _angular_core.Signal<number>;
177
+ protected disabled: _angular_core.WritableSignal<boolean>;
178
+ protected onInputBlur(value: number): void;
179
+ protected onInputEnter(): void;
180
+ protected onNextPage(event: PointerEvent): void;
181
+ protected onPreviousPage(event: PointerEvent): void;
182
+ protected onFirstPage(event: PointerEvent): void;
183
+ protected onLastPage(event: PointerEvent): void;
184
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<PaginationComponent, never>;
185
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<PaginationComponent, "ngx-bsl-pagination", never, { "page": { "alias": "page"; "required": false; "isSignal": true; }; "total": { "alias": "total"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "nextPageAriaLabel": { "alias": "nextPageAriaLabel"; "required": false; "isSignal": true; }; "previousPageAriaLabel": { "alias": "previousPageAriaLabel"; "required": false; "isSignal": true; }; "firstPageAriaLabel": { "alias": "firstPageAriaLabel"; "required": false; "isSignal": true; }; "lastPageAriaLabel": { "alias": "lastPageAriaLabel"; "required": false; "isSignal": true; }; "selectPageAriaLabel": { "alias": "selectPageAriaLabel"; "required": false; "isSignal": true; }; "selectPageAriaLabelledBy": { "alias": "selectPageAriaLabelledBy"; "required": false; "isSignal": true; }; }, { "page": "pageChange"; "pageChanged": "pageChanged"; }, never, never, true, never>;
186
+ }
187
+
188
+ declare enum RangeMoveDirection {
189
+ FORWARD = "forward",
190
+ BACKWARD = "backward"
191
+ }
192
+
193
+ declare class Range {
194
+ from: number;
195
+ to: number;
196
+ constructor(from?: number, to?: number);
197
+ }
198
+ declare enum Thumb {
199
+ FROM = "from",
200
+ TO = "to"
201
+ }
202
+ declare class RangeComponent implements ControlValueAccessor, OnInit, OnDestroy {
203
+ private elementRef;
204
+ min: _angular_core.InputSignal<number>;
205
+ max: _angular_core.InputSignal<number>;
206
+ step: _angular_core.InputSignal<number>;
207
+ value: _angular_core.ModelSignal<Range>;
208
+ ariaLabel: _angular_core.InputSignal<string | null>;
209
+ ariaLabelledBy: _angular_core.InputSignal<string | null>;
210
+ showThumbLabels: _angular_core.InputSignal<boolean>;
211
+ protected thumbFromRef: _angular_core.Signal<ElementRef<HTMLElement>>;
212
+ protected thumbToRef: _angular_core.Signal<ElementRef<HTMLElement>>;
213
+ protected _step: _angular_core.WritableSignal<number>;
214
+ protected disabled: _angular_core.WritableSignal<boolean>;
215
+ protected ratio: _angular_core.WritableSignal<number>;
216
+ protected thumbFromPosition: _angular_core.WritableSignal<number>;
217
+ protected thumbToPosition: _angular_core.WritableSignal<number>;
218
+ protected overlappingThumb: _angular_core.WritableSignal<Thumb>;
219
+ private stepDigits;
220
+ private thumbWidth;
221
+ protected trackerLeft: _angular_core.Signal<string>;
222
+ protected trackerRight: _angular_core.Signal<string>;
223
+ protected readonly Thumb: typeof Thumb;
224
+ private resizeObserver;
225
+ onChange: (_value: number) => void;
226
+ onTouch: () => void;
227
+ ngOnInit(): void;
228
+ private validateRange;
229
+ private valueInRange;
230
+ private validateStep;
231
+ private initResizeObserver;
232
+ private computeRatio;
233
+ private computeFromThumbPosition;
234
+ private computeToThumbPosition;
235
+ protected onPositionChangedThumbFrom(direction: RangeMoveDirection): void;
236
+ protected onPositionChangedThumbTo(direction: RangeMoveDirection): void;
237
+ private minReached;
238
+ private maxReached;
239
+ private fromReached;
240
+ private toReached;
241
+ protected onRailClick(event: MouseEvent): void;
242
+ private computeNewValueOnClick;
243
+ private selectThumbToMove;
244
+ registerOnChange(onChange: (value: number) => void): void;
245
+ registerOnTouched(onTouch: () => void): void;
246
+ writeValue(value: {
247
+ from: number;
248
+ to: number;
249
+ }): void;
250
+ setDisabledState(disabled: boolean): void;
251
+ ngOnDestroy(): void;
252
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RangeComponent, never>;
253
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<RangeComponent, "ngx-bsl-range", never, { "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "ariaLabelledBy": { "alias": "aria-labelledby"; "required": false; "isSignal": true; }; "showThumbLabels": { "alias": "showThumbLabels"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
254
+ }
255
+
256
+ declare class SelectComponent<TOption> implements ControlValueAccessor {
257
+ id: _angular_core.InputSignal<string>;
258
+ options: _angular_core.InputSignal<TOption[]>;
259
+ bindLabel: _angular_core.InputSignal<string | undefined>;
260
+ placeholder: _angular_core.InputSignal<string>;
261
+ ariaLabel: _angular_core.InputSignal<string | undefined>;
262
+ ariaLabelledBy: _angular_core.InputSignal<string | undefined>;
263
+ comparisonField: _angular_core.InputSignal<keyof TOption | undefined>;
264
+ iconMode: _angular_core.InputSignal<boolean>;
265
+ customIcon: _angular_core.InputSignal<boolean>;
266
+ dropdownWidth: _angular_core.InputSignal<string | undefined>;
267
+ private listBox;
268
+ onChange: (_value: TOption) => void;
269
+ onTouch: () => void;
270
+ protected value: TOption | null;
271
+ protected open: _angular_core.WritableSignal<boolean>;
272
+ protected ariaActiveDescendant: _angular_core.Signal<string | null>;
273
+ protected initialFocusedOptionIndex: _angular_core.WritableSignal<number | null>;
274
+ protected showListBox(): void;
275
+ protected hideListBox(): void;
276
+ protected onClick(): void;
277
+ protected onSelectOption(value: TOption): void;
278
+ protected onKeydown(event: KeyboardEvent): void;
279
+ registerOnChange(onChange: (value: TOption) => void): void;
280
+ registerOnTouched(onTouch: () => void): void;
281
+ writeValue(value: TOption): void;
282
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SelectComponent<any>, never>;
283
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SelectComponent<any>, "ngx-bsl-select", never, { "id": { "alias": "id"; "required": true; "isSignal": true; }; "options": { "alias": "options"; "required": true; "isSignal": true; }; "bindLabel": { "alias": "bindLabel"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; "isSignal": true; }; "comparisonField": { "alias": "comparisonField"; "required": false; "isSignal": true; }; "iconMode": { "alias": "iconMode"; "required": false; "isSignal": true; }; "customIcon": { "alias": "customIcon"; "required": false; "isSignal": true; }; "dropdownWidth": { "alias": "dropdownWidth"; "required": false; "isSignal": true; }; }, {}, never, ["[data-custom-icon]", "[data-custom-icon]"], true, never>;
284
+ }
285
+
286
+ declare enum TooltipPosition {
287
+ TOP = "TOP",
288
+ BOTTOM = "BOTTOM",
289
+ LEFT = "LEFT",
290
+ RIGHT = "RIGHT"
291
+ }
292
+
293
+ declare class TooltipDirective {
294
+ message: _angular_core.InputSignal<string>;
295
+ position: _angular_core.InputSignal<TooltipPosition>;
296
+ private overlay;
297
+ private elementRef;
298
+ private overlayRef;
299
+ protected show(): void;
300
+ protected hide(): void;
301
+ private createPositionStrategy;
302
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TooltipDirective, never>;
303
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TooltipDirective, "[ngxBslTooltip]", never, { "message": { "alias": "ngxBslTooltip"; "required": true; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
8
304
  }
9
305
 
10
- export { NgxBsl };
306
+ export { CheckboxComponent, ComboboxComponent, DrawerComponent, IconCheckComponent, IconChevronDownComponent, IconCompanyComponent, IconLanguageComponent, IconLocationComponent, IconMoonComponent, IconSunComponent, IconXMarkComponent, ListBoxComponent, ListBoxGroupComponent, ListBoxOptionComponent, ListBoxOptionValueConverterPipe, ListBoxSeparatorComponent, PaginationComponent, RangeComponent, SelectComponent, TooltipDirective };
package/package.json CHANGED
@@ -1,7 +1,8 @@
1
1
  {
2
2
  "name": "ngx-bsl",
3
- "version": "0.0.2",
3
+ "version": "0.0.4",
4
4
  "peerDependencies": {
5
+ "@angular/animations": "^20.3.0",
5
6
  "@angular/common": "^20.3.0",
6
7
  "@angular/core": "^20.3.0"
7
8
  },
@@ -23,4 +24,4 @@
23
24
  },
24
25
  "module": "fesm2022/ngx-bsl.mjs",
25
26
  "typings": "index.d.ts"
26
- }
27
+ }
@@ -1,13 +1,13 @@
1
- :root {
2
- --bsl-color-neutral-50: oklch(98.4% .003 247.858);
3
- --bsl-color-neutral-100: oklch(96.8% .007 247.896);
4
- --bsl-color-neutral-200: oklch(92.9% .013 255.508);
5
- --bsl-color-neutral-300: oklch(86.9% .022 252.894);
6
- --bsl-color-neutral-400: oklch(70.4% .04 256.788);
7
- --bsl-color-neutral-500: oklch(55.4% .046 257.417);
8
- --bsl-color-neutral-600: oklch(44.6% .043 257.281);
9
- --bsl-color-neutral-700: oklch(37.2% .044 257.287);
10
- --bsl-color-neutral-800: oklch(27.9% .041 260.031);
11
- --bsl-color-neutral-900: oklch(20.8% .042 265.755);
12
- --bsl-color-neutral-950: oklch(12.9% .042 264.695);
13
- }
1
+ :root {
2
+ --bsl-color-neutral-50: oklch(98.4% .003 247.858);
3
+ --bsl-color-neutral-100: oklch(96.8% .007 247.896);
4
+ --bsl-color-neutral-200: oklch(92.9% .013 255.508);
5
+ --bsl-color-neutral-300: oklch(86.9% .022 252.894);
6
+ --bsl-color-neutral-400: oklch(70.4% .04 256.788);
7
+ --bsl-color-neutral-500: oklch(55.4% .046 257.417);
8
+ --bsl-color-neutral-600: oklch(44.6% .043 257.281);
9
+ --bsl-color-neutral-700: oklch(37.2% .044 257.287);
10
+ --bsl-color-neutral-800: oklch(27.9% .041 260.031);
11
+ --bsl-color-neutral-900: oklch(20.8% .042 265.755);
12
+ --bsl-color-neutral-950: oklch(12.9% .042 264.695);
13
+ }
@@ -1,21 +1,21 @@
1
- :root {
2
- --bsl-font-xs: 0.75rem/1rem sans-serif;
3
- --bsl-font-sm: 0.875rem/1.25rem sans-serif;
4
- --bsl-font-md: 1rem/1.5rem sans-serif;
5
- --bsl-font-lg: 1.125rem/1.75rem sans-serif;
6
- --bsl-font-xl: 1.25rem/1.75rem sans-serif;
7
- --bsl-font-2xl: 1.5rem/2rem sans-serif;
8
- --bsl-font-3xl: 1.75rem/2rem sans-serif;
9
- --bsl-font-4xl: 1.875rem/2.25rem sans-serif;
10
- --bsl-font-5xl: 2.25rem/2.5rem sans-serif;
11
-
12
- --bsl-line-height-xs: 1rem;
13
- --bsl-line-height-sm: 1.25rem;
14
- --bsl-line-height-md: 1.5rem;
15
- --bsl-line-height-lg: 1.75rem;
16
- --bsl-line-height-xl: 1.75rem;
17
- --bsl-line-height-2xl: 2rem;
18
- --bsl-line-height-3xl: 2rem;
19
- --bsl-line-height-4xl: 2.25rem;
20
- --bsl-line-height-5xl: 2.5rem;
21
- }
1
+ :root {
2
+ --bsl-font-xs: 0.75rem/1rem sans-serif;
3
+ --bsl-font-sm: 0.875rem/1.25rem sans-serif;
4
+ --bsl-font-md: 1rem/1.5rem sans-serif;
5
+ --bsl-font-lg: 1.125rem/1.75rem sans-serif;
6
+ --bsl-font-xl: 1.25rem/1.75rem sans-serif;
7
+ --bsl-font-2xl: 1.5rem/2rem sans-serif;
8
+ --bsl-font-3xl: 1.75rem/2rem sans-serif;
9
+ --bsl-font-4xl: 1.875rem/2.25rem sans-serif;
10
+ --bsl-font-5xl: 2.25rem/2.5rem sans-serif;
11
+
12
+ --bsl-line-height-xs: 1rem;
13
+ --bsl-line-height-sm: 1.25rem;
14
+ --bsl-line-height-md: 1.5rem;
15
+ --bsl-line-height-lg: 1.75rem;
16
+ --bsl-line-height-xl: 1.75rem;
17
+ --bsl-line-height-2xl: 2rem;
18
+ --bsl-line-height-3xl: 2rem;
19
+ --bsl-line-height-4xl: 2.25rem;
20
+ --bsl-line-height-5xl: 2.5rem;
21
+ }
@@ -0,0 +1,15 @@
1
+ @mixin ellipsis {
2
+ overflow: hidden;
3
+ white-space: nowrap;
4
+ text-overflow: ellipsis;
5
+ }
6
+
7
+ @mixin multiline-ellipsis($lines, $line-height) {
8
+ overflow: hidden;
9
+ text-overflow: ellipsis;
10
+ display: -webkit-box;
11
+ -webkit-line-clamp: $lines;
12
+ -webkit-box-orient: vertical;
13
+ line-height: $line-height;
14
+ max-height: calc(#{$line-height} * #{$lines});
15
+ }
@@ -0,0 +1,3 @@
1
+ .cdk-backdrop-class {
2
+ background-color: oklch(0 0 0 / 20%);
3
+ }
@@ -1,53 +1,53 @@
1
- button {
2
- padding: .5rem 1rem;
3
- display: flex;
4
- align-items: center;
5
- justify-content: center;
6
- gap: .25rem;
7
- background-color: var(--bsl-button-backgroundColor);
8
- border: 1px solid var(--bsl-button-borderColor);
9
- border-radius: 6px;
10
- color: var(--bsl-textColor);
11
- font: var(--bsl-font-sm);
12
- font-weight: 500;
13
- line-height: var(--bsl-line-height-sm);
14
- cursor: pointer;
15
- transition: background-color 150ms cubic-bezier(.4, 0, .2, 1);
16
-
17
- &:not(:disabled):hover {
18
- background-color: var(--bsl-button-backgroundColor-hover);
19
- }
20
-
21
- &:not(:disabled):active {
22
- background-color: var(--bsl-button-backgroundColor-active);
23
- }
24
-
25
- &:disabled {
26
- opacity: .65;
27
- cursor: not-allowed;
28
- pointer-events: none;
29
- }
30
-
31
- &:focus-visible {
32
- outline-offset: 2px;
33
- }
34
-
35
- &.button-icon {
36
- padding: .5rem;
37
-
38
- span {
39
- display: block;
40
- min-width: 1.125rem; //equal to line-height
41
- line-height: inherit;
42
- }
43
- }
44
-
45
- &.invisible {
46
- background-color: transparent;
47
- border-color: transparent;
48
-
49
- &:focus-visible {
50
- outline-offset: 0;
51
- }
52
- }
53
- }
1
+ button {
2
+ padding: .5rem 1rem;
3
+ display: flex;
4
+ align-items: center;
5
+ justify-content: center;
6
+ gap: .25rem;
7
+ background-color: var(--bsl-button-backgroundColor);
8
+ border: 1px solid var(--bsl-button-borderColor);
9
+ border-radius: 6px;
10
+ color: var(--bsl-textColor);
11
+ font: var(--bsl-font-sm);
12
+ font-weight: 500;
13
+ line-height: var(--bsl-line-height-sm);
14
+ cursor: pointer;
15
+ transition: background-color 150ms cubic-bezier(.4, 0, .2, 1);
16
+
17
+ &:not(:disabled):hover {
18
+ background-color: var(--bsl-button-backgroundColor-hover);
19
+ }
20
+
21
+ &:not(:disabled):active {
22
+ background-color: var(--bsl-button-backgroundColor-active);
23
+ }
24
+
25
+ &:disabled {
26
+ opacity: .65;
27
+ cursor: not-allowed;
28
+ pointer-events: none;
29
+ }
30
+
31
+ &:focus-visible {
32
+ outline-offset: 2px;
33
+ }
34
+
35
+ &.button-icon {
36
+ padding: .5rem;
37
+
38
+ span {
39
+ display: block;
40
+ min-width: 1.125rem; //equal to line-height
41
+ line-height: inherit;
42
+ }
43
+ }
44
+
45
+ &.invisible {
46
+ background-color: transparent;
47
+ border-color: transparent;
48
+
49
+ &:focus-visible {
50
+ outline-offset: 0;
51
+ }
52
+ }
53
+ }
@@ -1,62 +1,62 @@
1
- input[type="text"],
2
- input[type="number"] {
3
- width: 100%;
4
- padding: .5rem .75rem;
5
- background-color: var(--bsl-input-backgroundColor);
6
- border: 1px solid var(--bsl-input-borderColor);
7
- border-radius: 6px;
8
- color: var(--bsl-textColor);
9
- font: var(--bsl-font-sm);
10
- line-height: var(--bsl-line-height-sm);
11
-
12
- &:disabled {
13
- opacity: .65;
14
- cursor: not-allowed;
15
- pointer-events: none;
16
- }
17
-
18
- &::placeholder {
19
- color: var(--bsl-input-textColor-placeholder);
20
- }
21
- }
22
-
23
- .input-with-icon {
24
- position: relative;
25
-
26
- input {
27
- padding-left: 2rem;
28
- }
29
-
30
- [class^="icon-"] {
31
- position: absolute;
32
- top: 50%;
33
- left: .5rem;
34
- transform: translateY(-50%);
35
- font: var(--bsl-font-md);
36
- color: var(--bsl-input-textColor);
37
- }
38
- }
39
-
40
- .input-large {
41
- input {
42
- padding: .75rem 1.5rem .75rem 3rem;
43
- font: var(--bsl-font-lg);
44
- }
45
-
46
- [class^="icon-"] {
47
- left: 1rem;
48
- font: var(--bsl-font-lg);
49
- }
50
- }
51
-
52
- /* Remove arrows Chrome */
53
- input::-webkit-outer-spin-button,
54
- input::-webkit-inner-spin-button {
55
- -webkit-appearance: none;
56
- margin: 0;
57
- }
58
-
59
- /* Remove arrows Firefox */
60
- input[type=number] {
61
- -moz-appearance: textfield;
62
- }
1
+ input[type="text"],
2
+ input[type="number"] {
3
+ width: 100%;
4
+ padding: .5rem .75rem;
5
+ background-color: var(--bsl-input-backgroundColor);
6
+ border: 1px solid var(--bsl-input-borderColor);
7
+ border-radius: 6px;
8
+ color: var(--bsl-textColor);
9
+ font: var(--bsl-font-sm);
10
+ line-height: var(--bsl-line-height-sm);
11
+
12
+ &:disabled {
13
+ opacity: .65;
14
+ cursor: not-allowed;
15
+ pointer-events: none;
16
+ }
17
+
18
+ &::placeholder {
19
+ color: var(--bsl-input-textColor-placeholder);
20
+ }
21
+ }
22
+
23
+ .input-with-icon {
24
+ position: relative;
25
+
26
+ input {
27
+ padding-left: 2rem;
28
+ }
29
+
30
+ [class^="icon-"] {
31
+ position: absolute;
32
+ top: 50%;
33
+ left: .5rem;
34
+ transform: translateY(-50%);
35
+ font: var(--bsl-font-md);
36
+ color: var(--bsl-input-textColor);
37
+ }
38
+ }
39
+
40
+ .input-large {
41
+ input {
42
+ padding: .75rem 1.5rem .75rem 3rem;
43
+ font: var(--bsl-font-lg);
44
+ }
45
+
46
+ [class^="icon-"] {
47
+ left: 1rem;
48
+ font: var(--bsl-font-lg);
49
+ }
50
+ }
51
+
52
+ /* Remove arrows Chrome */
53
+ input::-webkit-outer-spin-button,
54
+ input::-webkit-inner-spin-button {
55
+ -webkit-appearance: none;
56
+ margin: 0;
57
+ }
58
+
59
+ /* Remove arrows Firefox */
60
+ input[type=number] {
61
+ -moz-appearance: textfield;
62
+ }