@brickclay-org/ui 0.1.77 → 0.1.78

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": "@brickclay-org/ui",
3
- "version": "0.1.77",
3
+ "version": "0.1.78",
4
4
  "schematics": "./schematics/collection.json",
5
5
  "ng-add": {
6
6
  "save": "dependencies"
@@ -6,9 +6,10 @@
6
6
  display: flex;
7
7
  flex-direction: column;
8
8
  overflow-y: auto;
9
+ max-height: 225px;
9
10
  }
10
11
 
11
- @media (max-height: 700px) {
12
+ /* @media (max-height: 700px) {
12
13
  .column-select-options-list {
13
14
  max-height: 125px;
14
15
  }
@@ -24,4 +25,4 @@
24
25
  .column-select-options-list {
25
26
  max-height: 210px;
26
27
  }
27
- }
28
+ } */
@@ -258,3 +258,91 @@
258
258
  .input-container ::-webkit-scrollbar-thumb:hover {
259
259
  background: #909090;
260
260
  }
261
+
262
+ /* ============================== Compact / sm size ============================== */
263
+ .input-container--sm .input-label {
264
+ @apply text-xs;
265
+ }
266
+
267
+ .input-container--sm .input-hint,
268
+ .input-container--sm .input-error {
269
+ @apply text-[11px];
270
+ }
271
+
272
+ .input-container--sm .input-field {
273
+ @apply py-1.5 px-2.5 text-xs;
274
+ height: 32px;
275
+ }
276
+
277
+ .input-container--sm .input-field--icon,
278
+ .input-container--sm .input-field--icon-left {
279
+ @apply pl-8;
280
+ }
281
+
282
+ .input-container--sm .input-field--icon-right {
283
+ @apply pr-8;
284
+ }
285
+
286
+ .input-container--sm .input-field--password {
287
+ @apply pr-8;
288
+ }
289
+
290
+ .input-container--sm .input-field--phone {
291
+ @apply pl-16;
292
+ }
293
+
294
+ .input-container--sm .input-field--url {
295
+ @apply pl-16;
296
+ }
297
+
298
+ .input-container--sm .input-field--icon.input-field--url {
299
+ @apply pl-24;
300
+ }
301
+
302
+ .input-container--sm .input-field--phone.input-field--icon {
303
+ @apply pl-24;
304
+ }
305
+
306
+ .input-container--sm .input-search-icon {
307
+ @apply w-4 h-4;
308
+ }
309
+
310
+ .input-container--sm .input-search-icon--left {
311
+ @apply left-2;
312
+ }
313
+
314
+ .input-container--sm .input-search-icon--right {
315
+ @apply right-2;
316
+ }
317
+
318
+ .input-container--sm .input-password-toggle {
319
+ @apply right-2 w-4 h-4;
320
+ }
321
+
322
+ .input-container--sm .input-password-icon {
323
+ @apply w-4 h-4;
324
+ }
325
+
326
+ .input-container--sm .input-phone-selector {
327
+ @apply px-2;
328
+ }
329
+
330
+ .input-container--sm .input-phone-selector-text {
331
+ @apply text-[11px];
332
+ }
333
+
334
+ .input-container--sm .input-url-prefix {
335
+ @apply py-1.5 px-2.5 text-xs;
336
+ }
337
+
338
+ .input-container--sm .input-phone-dropdown {
339
+ @apply w-[68px] mt-0.5;
340
+ }
341
+
342
+ .input-container--sm .input-phone-dropdown-item {
343
+ @apply px-3 py-1.5 text-[11px];
344
+ }
345
+
346
+ .input-container--sm .input-phone-selector-arrow {
347
+ @apply w-3 h-3;
348
+ }
@@ -7,6 +7,12 @@
7
7
 
8
8
  .bk-menu {
9
9
  --menu-bg: #ffffff;
10
+ /* Lightest gray — opt-in tint for an inline submenu's whole block (title +
11
+ rows) via [submenuBackground]="true". One shade lighter than
12
+ --menu-hover-bg, so a hovered row inside it still reads. Popups don't
13
+ offer this: their padding/insets differ, and the panel's own border
14
+ already sets it apart from the page. */
15
+ --menu-submenu-bg: #f8f8f8;
10
16
  --menu-text: #141414;
11
17
  --menu-subtext: #6b7080;
12
18
  --menu-hover-bg: #edeef0;
@@ -22,6 +28,9 @@
22
28
  --menu-font-size: 14px;
23
29
  --menu-tracking: -0.28px;
24
30
  --menu-pad-y: 10px;
31
+ /* Submenu rows (inline and pop-up) sit a touch tighter vertically than
32
+ top-level rows. */
33
+ --menu-submenu-pad-y: 8px;
25
34
  --menu-pad-x: 12px;
26
35
  --menu-gap: 8px;
27
36
  --menu-icon-size: 16px;
@@ -30,6 +39,12 @@
30
39
  /* How far a group title sits left of the rows it heads. */
31
40
  --menu-title-outdent: 8px;
32
41
  --menu-popup-pad: 4px;
42
+ /* Top/bottom inset for the pop-up panel — roomier than the horizontal pad
43
+ so the first/last row don't sit flush against the panel's rounded edge. */
44
+ --menu-popup-pad-y: 8px;
45
+ /* Horizontal padding for a pop-up's own rows and group-title label — wider
46
+ than the shared --menu-pad-x so pop-up text sits roomier than inline. */
47
+ --menu-popup-item-pad-x: 16px;
33
48
  --menu-popup-min-w: 200px;
34
49
  --menu-popup-max-w: 280px;
35
50
 
@@ -48,6 +63,7 @@
48
63
  --menu-font-size: 12px;
49
64
  --menu-tracking: -0.24px;
50
65
  --menu-pad-y: 6px;
66
+ --menu-submenu-pad-y: 4px;
51
67
  --menu-pad-x: 8px;
52
68
  --menu-gap: 6px;
53
69
  --menu-icon-size: 14px;
@@ -55,6 +71,8 @@
55
71
  --menu-group-font-size: 10px;
56
72
  --menu-title-outdent: 6px;
57
73
  --menu-popup-pad: 3px;
74
+ --menu-popup-pad-y: 6px;
75
+ --menu-popup-item-pad-x: 14px;
58
76
  --menu-popup-min-w: 160px;
59
77
  --menu-popup-max-w: 240px;
60
78
  }
@@ -129,6 +147,16 @@
129
147
  /* Nested (child) items use the muted sub-text colour. */
130
148
  .bk-menu__submenu .bk-menu__button {
131
149
  @apply text-[color:var(--menu-subtext)] font-normal;
150
+ padding-top: var(--menu-submenu-pad-y);
151
+ padding-bottom: var(--menu-submenu-pad-y);
152
+ }
153
+
154
+ /* Pop-up rows get their own, roomier horizontal padding (see
155
+ --menu-popup-item-pad-x) instead of the shared --menu-pad-x — vertical
156
+ padding is untouched, inherited from the base .bk-menu__button rule. */
157
+ .bk-menu__submenu--popup .bk-menu__button {
158
+ padding-left: var(--menu-popup-item-pad-x);
159
+ padding-right: var(--menu-popup-item-pad-x);
132
160
  }
133
161
 
134
162
  .bk-menu__submenu .bk-menu__button--active {
@@ -136,28 +164,44 @@
136
164
  }
137
165
 
138
166
  /* ---- Group title: names the child group, not selectable.
139
- Reads as a heading over the rows rather than one of them: outdented a notch
140
- from the row text, and separated from the group by a rule. Inline and pop-up
141
- are meant to look identical the pop-up rules further down only cancel out
142
- the panel's own padding to get there. ---- */
167
+ Reads as a heading over the rows it titles, not a rule under itself — a
168
+ group is only ever separated from what comes *after* it (the next group,
169
+ if any), never from its own rows. See the `--divider` modifier below. ---- */
143
170
  .bk-menu__group-title {
144
171
  @apply font-semibold uppercase tracking-wider text-[color:var(--menu-subtext)]
145
- whitespace-nowrap overflow-hidden text-ellipsis select-none
146
- border-b border-[var(--menu-border)] mb-1;
172
+ whitespace-nowrap overflow-hidden text-ellipsis select-none;
147
173
  font-size: var(--menu-group-font-size);
148
174
  padding: var(--menu-pad-y) var(--menu-pad-x) calc(var(--menu-pad-y) / 2);
149
175
  /* Inline levels set padding-left themselves, indent-aware, from the template. */
150
176
  padding-left: calc(var(--menu-pad-x) - var(--menu-title-outdent));
151
177
  }
152
178
 
153
- /* The panel is padded so its rows sit in from the border; the title's rule is
154
- supposed to span it edge to edge, so pull it back out and pad the text back in.
155
- Net indent and rule width then match the inline case exactly. */
179
+ /* The panel is padded so its rows sit in from the border; a divider rule (see
180
+ `--divider` below) is supposed to span it edge to edge, so pull the title
181
+ back out to the edge and pad the text back in. Net indent then matches the
182
+ inline case exactly regardless of whether this particular title has one. */
156
183
  .bk-menu__submenu--popup > .bk-menu__group-title {
157
184
  margin-left: calc(var(--menu-popup-pad) * -1);
158
185
  margin-right: calc(var(--menu-popup-pad) * -1);
159
- padding-left: calc(var(--menu-pad-x) - var(--menu-title-outdent) + var(--menu-popup-pad));
160
- padding-right: calc(var(--menu-pad-x) + var(--menu-popup-pad));
186
+ /* +2px on top of the row's own inset — a touch roomier than the rows it titles. */
187
+ padding-left: calc(var(--menu-popup-item-pad-x) - var(--menu-title-outdent) + var(--menu-popup-pad) + 2px);
188
+ padding-right: calc(var(--menu-popup-item-pad-x) + var(--menu-popup-pad) + 2px);
189
+ }
190
+
191
+ /* ---- Flat multi-group sections (MenuItem.groupLabel): several named groups
192
+ inside one always-visible list, e.g. a mega-menu. Extra breathing room
193
+ above each section's own heading, since it follows another group's rows. ---- */
194
+ .bk-menu__group-title--section {
195
+ @apply mb-0 tracking-wide;
196
+ padding-top: calc(var(--menu-pad-y) * 1.25);
197
+ }
198
+
199
+ /* The rule that actually separates one group from the next — applied only
200
+ when a group has a preceding sibling group (never under a lone title, and
201
+ never trailing after the last group). */
202
+ .bk-menu__group-title--divider {
203
+ @apply border-t border-[var(--menu-border)];
204
+ margin-top: calc(var(--menu-pad-y) / 2);
161
205
  }
162
206
 
163
207
  /* ---- Icon (optional). Tinted monochrome when .bk-menu--tint. ---- */
@@ -216,16 +260,24 @@
216
260
  @apply max-h-[1000px]; /* large enough to reveal nested content */
217
261
  }
218
262
 
263
+ /* Opt-in tint, set via [submenuBackground]="true" — see --menu-submenu-bg above. */
264
+ .bk-menu__submenu--inline.bk-menu__submenu--bg {
265
+ background-color: var(--menu-submenu-bg);
266
+ }
267
+
219
268
  /* =========================================================================
220
269
  Pop-up submenus — floating panels, hidden until open.
221
270
  ========================================================================= */
222
271
  .bk-menu__submenu--popup {
223
272
  /* Fixed so the fly-out escapes the menu's overflow/scroll box and renders
224
273
  outside the nav. Coordinates are set inline (top/left) from JS. */
274
+ /* max-width/max-height below are the ceiling; menu.ts narrows them inline to
275
+ whatever room the viewport actually leaves, and the panel scrolls past it.
276
+ overflow-x is hidden because rows ellipsise rather than widen the panel. */
225
277
  @apply fixed z-[1000] max-h-[calc(100vh-16px)]
226
- overflow-y-auto bg-[var(--menu-bg)] border border-[var(--menu-border)]
278
+ overflow-y-auto overflow-x-hidden bg-[var(--menu-bg)] border border-[var(--menu-border)]
227
279
  rounded-xl shadow-[var(--menu-shadow)] hidden;
228
- padding: var(--menu-popup-pad);
280
+ padding: var(--menu-popup-pad-y) var(--menu-popup-pad);
229
281
  min-width: var(--menu-popup-min-w);
230
282
  max-width: var(--menu-popup-max-w);
231
283
  }