@brickclay-org/ui 0.1.81 → 0.1.83

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
@@ -1063,6 +1063,9 @@ declare class BkSelect implements ControlValueAccessor, AfterViewInit, OnDestroy
1063
1063
  gridSelectionActions: _angular_core.InputSignal<boolean>;
1064
1064
  gridMinWidth: _angular_core.InputSignal<string>;
1065
1065
  gridMaxHeight: _angular_core.InputSignal<string>;
1066
+ /** One or two item keys used for the selected grid value/chip label. */
1067
+ gridSelectedLabelKeys: _angular_core.InputSignal<string[]>;
1068
+ gridSelectedLabelSeparator: _angular_core.InputSignal<string>;
1066
1069
  gridApplyText: _angular_core.InputSignal<string>;
1067
1070
  gridClearText: _angular_core.InputSignal<string>;
1068
1071
  /**
@@ -1187,6 +1190,7 @@ declare class BkSelect implements ControlValueAccessor, AfterViewInit, OnDestroy
1187
1190
  resolveLabel(item: any): string;
1188
1191
  resolveValue(item: any): any;
1189
1192
  resolveGridCell(item: any, column: BkSelectGridColumn): string;
1193
+ private readItemValue;
1190
1194
  gridColumnStyle(column: BkSelectGridColumn): Record<string, string>;
1191
1195
  gridBadgeColor(item: any, column: BkSelectGridColumn): BadgeColor;
1192
1196
  isGridItemSelected(item: any): boolean;
@@ -1276,7 +1280,7 @@ declare class BkSelect implements ControlValueAccessor, AfterViewInit, OnDestroy
1276
1280
  getTooltipIfEllipsed(el: HTMLElement, text: string): string;
1277
1281
  onOptionHover(index: number): void;
1278
1282
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BkSelect, never>;
1279
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<BkSelect, "bk-select", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "bindLabel": { "alias": "bindLabel"; "required": false; "isSignal": true; }; "bindValue": { "alias": "bindValue"; "required": false; "isSignal": true; }; "bindIcon": { "alias": "bindIcon"; "required": false; "isSignal": true; }; "isResponsive": { "alias": "isResponsive"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "notFoundText": { "alias": "notFoundText"; "required": false; "isSignal": true; }; "loadingText": { "alias": "loadingText"; "required": false; "isSignal": true; }; "clearAllText": { "alias": "clearAllText"; "required": false; "isSignal": true; }; "groupBy": { "alias": "groupBy"; "required": false; "isSignal": true; }; "colorKey": { "alias": "colorKey"; "required": false; "isSignal": true; }; "dropdownView": { "alias": "dropdownView"; "required": false; "isSignal": true; }; "gridColumns": { "alias": "gridColumns"; "required": false; "isSignal": true; }; "gridSelectionActions": { "alias": "gridSelectionActions"; "required": false; "isSignal": true; }; "gridMinWidth": { "alias": "gridMinWidth"; "required": false; "isSignal": true; }; "gridMaxHeight": { "alias": "gridMaxHeight"; "required": false; "isSignal": true; }; "gridApplyText": { "alias": "gridApplyText"; "required": false; "isSignal": true; }; "gridClearText": { "alias": "gridClearText"; "required": false; "isSignal": true; }; "showDots": { "alias": "showDots"; "required": false; "isSignal": true; }; "showAvatar": { "alias": "showAvatar"; "required": false; "isSignal": true; }; "avatarKey": { "alias": "avatarKey"; "required": false; "isSignal": true; }; "iconAlt": { "alias": "iconAlt"; "required": false; }; "label": { "alias": "label"; "required": false; }; "required": { "alias": "required"; "required": false; }; "variation": { "alias": "variation"; "required": false; }; "iconSrc": { "alias": "iconSrc"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "maxLabels": { "alias": "maxLabels"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "allSelect": { "alias": "allSelect"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "closeOnSelect": { "alias": "closeOnSelect"; "required": false; "isSignal": true; }; "dropdownPosition": { "alias": "dropdownPosition"; "required": false; "isSignal": true; }; "hasError": { "alias": "hasError"; "required": false; }; "errorMessage": { "alias": "errorMessage"; "required": false; }; "appendToBody": { "alias": "appendToBody"; "required": false; "isSignal": true; }; "compareWith": { "alias": "compareWith"; "required": false; "isSignal": true; }; }, { "disabled": "disabledChange"; "open": "open"; "close": "close"; "focus": "focus"; "blur": "blur"; "search": "search"; "clear": "clear"; "change": "change"; "scrollToEnd": "scrollToEnd"; }, never, never, true, never>;
1283
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BkSelect, "bk-select", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "bindLabel": { "alias": "bindLabel"; "required": false; "isSignal": true; }; "bindValue": { "alias": "bindValue"; "required": false; "isSignal": true; }; "bindIcon": { "alias": "bindIcon"; "required": false; "isSignal": true; }; "isResponsive": { "alias": "isResponsive"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "notFoundText": { "alias": "notFoundText"; "required": false; "isSignal": true; }; "loadingText": { "alias": "loadingText"; "required": false; "isSignal": true; }; "clearAllText": { "alias": "clearAllText"; "required": false; "isSignal": true; }; "groupBy": { "alias": "groupBy"; "required": false; "isSignal": true; }; "colorKey": { "alias": "colorKey"; "required": false; "isSignal": true; }; "dropdownView": { "alias": "dropdownView"; "required": false; "isSignal": true; }; "gridColumns": { "alias": "gridColumns"; "required": false; "isSignal": true; }; "gridSelectionActions": { "alias": "gridSelectionActions"; "required": false; "isSignal": true; }; "gridMinWidth": { "alias": "gridMinWidth"; "required": false; "isSignal": true; }; "gridMaxHeight": { "alias": "gridMaxHeight"; "required": false; "isSignal": true; }; "gridSelectedLabelKeys": { "alias": "gridSelectedLabelKeys"; "required": false; "isSignal": true; }; "gridSelectedLabelSeparator": { "alias": "gridSelectedLabelSeparator"; "required": false; "isSignal": true; }; "gridApplyText": { "alias": "gridApplyText"; "required": false; "isSignal": true; }; "gridClearText": { "alias": "gridClearText"; "required": false; "isSignal": true; }; "showDots": { "alias": "showDots"; "required": false; "isSignal": true; }; "showAvatar": { "alias": "showAvatar"; "required": false; "isSignal": true; }; "avatarKey": { "alias": "avatarKey"; "required": false; "isSignal": true; }; "iconAlt": { "alias": "iconAlt"; "required": false; }; "label": { "alias": "label"; "required": false; }; "required": { "alias": "required"; "required": false; }; "variation": { "alias": "variation"; "required": false; }; "iconSrc": { "alias": "iconSrc"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "maxLabels": { "alias": "maxLabels"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "allSelect": { "alias": "allSelect"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "closeOnSelect": { "alias": "closeOnSelect"; "required": false; "isSignal": true; }; "dropdownPosition": { "alias": "dropdownPosition"; "required": false; "isSignal": true; }; "hasError": { "alias": "hasError"; "required": false; }; "errorMessage": { "alias": "errorMessage"; "required": false; }; "appendToBody": { "alias": "appendToBody"; "required": false; "isSignal": true; }; "compareWith": { "alias": "compareWith"; "required": false; "isSignal": true; }; }, { "disabled": "disabledChange"; "open": "open"; "close": "close"; "focus": "focus"; "blur": "blur"; "search": "search"; "clear": "clear"; "change": "change"; "scrollToEnd": "scrollToEnd"; }, never, never, true, never>;
1280
1284
  }
1281
1285
 
1282
1286
  type BkInputType = 'text' | 'email' | 'password' | 'number' | 'url' | 'tel';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brickclay-org/ui",
3
- "version": "0.1.81",
3
+ "version": "0.1.83",
4
4
  "schematics": "./schematics/collection.json",
5
5
  "ng-add": {
6
6
  "save": "dependencies"
@@ -130,6 +130,12 @@
130
130
  max-width: 140px;
131
131
  }
132
132
 
133
+ /* Grid selections may combine two column values, so allow wider chips without
134
+ changing the established list-mode multi-select sizing. */
135
+ .bk-select-container.bk-grid-view .bk-multi-badge-item {
136
+ max-width: 175px;
137
+ }
138
+
133
139
  .bk-multi-badge-item-text {
134
140
  @apply text-[10px] leading-[12px] font-normal text-[#6B7080];
135
141
  white-space: nowrap;
@@ -167,6 +173,36 @@
167
173
  /* Opt-in grid dropdown. List-mode selectors above and below remain unchanged. */
168
174
  .bk-grid-scroll {
169
175
  @apply overflow-auto -mx-2.5;
176
+ scrollbar-width: thin;
177
+ scrollbar-color: #D6D7DC transparent;
178
+ }
179
+
180
+ .bk-grid-scroll::-webkit-scrollbar {
181
+ width: 6px;
182
+ height: 6px;
183
+ }
184
+
185
+ .bk-grid-scroll::-webkit-scrollbar-track {
186
+ background: transparent;
187
+ }
188
+
189
+ .bk-grid-scroll::-webkit-scrollbar-thumb {
190
+ background: #D6D7DC;
191
+ border-radius: 999px;
192
+ }
193
+
194
+ .bk-grid-scroll::-webkit-scrollbar-thumb:hover {
195
+ background: #909090;
196
+ }
197
+
198
+ .bk-grid-scroll::-webkit-scrollbar-button {
199
+ display: none;
200
+ }
201
+
202
+ /* Unlike list options, the grid header should meet the panel's top edge. */
203
+ .bk-dropdown-panel.bk-grid-panel {
204
+ padding-top: 0;
205
+ padding-bottom: 0;
170
206
  }
171
207
 
172
208
  .bk-select-grid {
@@ -175,7 +211,7 @@
175
211
  }
176
212
 
177
213
  .bk-select-grid th {
178
- @apply sticky top-0 z-10 bg-[#F8F8F8] px-4 py-2.5 font-semibold whitespace-nowrap border-b border-[#E3E3E7];
214
+ @apply sticky top-0 z-10 bg-[#F1F1F3] px-4 py-2.5 font-semibold whitespace-nowrap border-b border-[#E3E3E7];
179
215
  }
180
216
 
181
217
  .bk-select-grid td {
@@ -214,13 +250,58 @@
214
250
  }
215
251
 
216
252
  .bk-grid-footer {
217
- @apply flex items-center justify-between gap-4 px-1 pt-2.5 text-xs text-[#6B7080];
253
+ @apply flex items-center justify-between gap-4 px-1 py-2.5 text-xs text-[#6B7080];
218
254
  }
219
255
 
220
256
  .bk-grid-footer-actions {
221
257
  @apply flex items-center gap-2;
222
258
  }
223
259
 
260
+ /* Grid density follows the select's existing `variation="sm"` contract. The
261
+ class lives on the panel so it keeps working when appendToBody relocates it. */
262
+ .bk-dropdown-panel.bk-grid-compact {
263
+ padding: 0 0.5rem;
264
+ }
265
+
266
+ .bk-dropdown-panel.bk-grid-compact .bk-dropdown-search {
267
+ @apply px-1 pt-1;
268
+ }
269
+
270
+ .bk-dropdown-panel.bk-grid-compact .bk-search-wrapper {
271
+ @apply px-2 py-1;
272
+ }
273
+
274
+ .bk-dropdown-panel.bk-grid-compact .bk-search-input {
275
+ @apply text-xs;
276
+ }
277
+
278
+ .bk-dropdown-panel.bk-grid-compact .bk-grid-scroll {
279
+ @apply -mx-2;
280
+ }
281
+
282
+ .bk-dropdown-panel.bk-grid-compact .bk-select-grid {
283
+ @apply text-xs;
284
+ }
285
+
286
+ .bk-dropdown-panel.bk-grid-compact .bk-select-grid th,
287
+ .bk-dropdown-panel.bk-grid-compact .bk-select-grid td {
288
+ @apply px-3 py-1.5;
289
+ }
290
+
291
+ .bk-dropdown-panel.bk-grid-compact .bk-grid-checkbox-column {
292
+ width: 40px;
293
+ min-width: 40px;
294
+ @apply !px-3;
295
+ }
296
+
297
+ .bk-dropdown-panel.bk-grid-compact .bk-grid-footer {
298
+ @apply gap-3 px-0 py-1.5 text-[11px];
299
+ }
300
+
301
+ .bk-dropdown-panel.bk-grid-compact .bk-grid-footer-actions {
302
+ @apply gap-1.5;
303
+ }
304
+
224
305
  @media (max-width: 640px) {
225
306
  .bk-grid-scroll {
226
307
  max-width: calc(100vw - 32px);