@brickclay-org/ui 0.1.89 → 0.1.91
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/fesm2022/brickclay-org-ui.mjs +65 -22
- package/fesm2022/brickclay-org-ui.mjs.map +1 -1
- package/index.d.ts +19 -8
- package/package.json +1 -1
- package/src/lib/calender/components/custom-calendar/custom-calendar.component.css +0 -127
- package/src/lib/menu/menu.css +18 -0
- package/src/lib/toastr/toastr.css +4 -2
package/index.d.ts
CHANGED
|
@@ -1579,7 +1579,7 @@ declare class BkSelect implements ControlValueAccessor, AfterViewInit, OnDestroy
|
|
|
1579
1579
|
* existing click/Enter-to-open behaviour is unchanged.
|
|
1580
1580
|
*/
|
|
1581
1581
|
openOnFocus: _angular_core.InputSignal<boolean>;
|
|
1582
|
-
dropdownPosition: _angular_core.InputSignal<"
|
|
1582
|
+
dropdownPosition: _angular_core.InputSignal<"bottom" | "top">;
|
|
1583
1583
|
hasError: boolean;
|
|
1584
1584
|
errorMessage: string;
|
|
1585
1585
|
/**
|
|
@@ -1618,7 +1618,7 @@ declare class BkSelect implements ControlValueAccessor, AfterViewInit, OnDestroy
|
|
|
1618
1618
|
private gridDraftOptions;
|
|
1619
1619
|
searchTerm: _angular_core.WritableSignal<string>;
|
|
1620
1620
|
markedIndex: _angular_core.WritableSignal<number>;
|
|
1621
|
-
placement: _angular_core.WritableSignal<"
|
|
1621
|
+
placement: _angular_core.WritableSignal<"bottom" | "top">;
|
|
1622
1622
|
visibleCount: _angular_core.WritableSignal<number>;
|
|
1623
1623
|
private resizeObserver?;
|
|
1624
1624
|
/**
|
|
@@ -1868,6 +1868,19 @@ declare class BkInput implements OnInit, OnDestroy, AfterViewInit, ControlValueA
|
|
|
1868
1868
|
phoneOverlay?: CdkConnectedOverlay;
|
|
1869
1869
|
isFocused: boolean;
|
|
1870
1870
|
inputValue: string;
|
|
1871
|
+
/**
|
|
1872
|
+
* What the template's `[value]` binding actually renders. Deliberately a separate property
|
|
1873
|
+
* from `inputValue` (which still mirrors the live text for `isFilled`/bookkeeping on every
|
|
1874
|
+
* keystroke): re-applying `[value]` to an element that already displays that exact text is a
|
|
1875
|
+
* no-op on most inputs, but on `type="number"` it isn't - Chromium doesn't skip the write just
|
|
1876
|
+
* because the string is unchanged, and since `type="number"` also refuses `setSelectionRange`
|
|
1877
|
+
* (it throws), we have no way to put the caret back afterwards. So `displayValue` is only ever
|
|
1878
|
+
* written by genuinely external changes (writeValue(), the phone country-prefix swap) - never
|
|
1879
|
+
* from handleInput() or the "parent mutated the native value" resync, both of which are only
|
|
1880
|
+
* echoing back text the DOM already has. That keeps every self-originated edit from re-touching
|
|
1881
|
+
* `.value` at all, which is the only reliable fix here given number inputs can't be caret-restored.
|
|
1882
|
+
*/
|
|
1883
|
+
displayValue: string;
|
|
1871
1884
|
isDropdownOpen: boolean;
|
|
1872
1885
|
private pendingMaskedValue;
|
|
1873
1886
|
private isPropagatingViewValue;
|
|
@@ -2921,7 +2934,7 @@ declare class BkHierarchicalSelect implements ControlValueAccessor, AfterViewIni
|
|
|
2921
2934
|
*/
|
|
2922
2935
|
appendToBody: _angular_core.InputSignal<boolean>;
|
|
2923
2936
|
/** Open above or below the trigger (also used when appendToBody is true for fixed coordinates). */
|
|
2924
|
-
dropdownPosition: _angular_core.InputSignal<"
|
|
2937
|
+
dropdownPosition: _angular_core.InputSignal<"bottom" | "top">;
|
|
2925
2938
|
/** Key for option color (e.g. "color"). When set, option label and selected value use this color. */
|
|
2926
2939
|
colorKey: _angular_core.InputSignal<string>;
|
|
2927
2940
|
/**
|
|
@@ -2955,7 +2968,7 @@ declare class BkHierarchicalSelect implements ControlValueAccessor, AfterViewIni
|
|
|
2955
2968
|
/** Index of the keyboard-highlighted option within the current level (`filteredItems`). */
|
|
2956
2969
|
markedIndex: _angular_core.WritableSignal<number>;
|
|
2957
2970
|
private el;
|
|
2958
|
-
placement: _angular_core.WritableSignal<"
|
|
2971
|
+
placement: _angular_core.WritableSignal<"bottom" | "top">;
|
|
2959
2972
|
/**
|
|
2960
2973
|
* Panel width, kept equal to the control's — matches the old `dropdownStyle().width`
|
|
2961
2974
|
* behaviour. Set on open and re-measured by a ResizeObserver on the control while open, so a
|
|
@@ -3538,7 +3551,6 @@ interface MenuItem {
|
|
|
3538
3551
|
* flip — they stay under their trigger and scroll instead.
|
|
3539
3552
|
*/
|
|
3540
3553
|
declare class BkMenu implements OnChanges, OnDestroy {
|
|
3541
|
-
private readonly host;
|
|
3542
3554
|
items: MenuItem[];
|
|
3543
3555
|
orientation: MenuOrientation;
|
|
3544
3556
|
submenuMode: MenuSubmenuMode;
|
|
@@ -3609,7 +3621,6 @@ declare class BkMenu implements OnChanges, OnDestroy {
|
|
|
3609
3621
|
*/
|
|
3610
3622
|
private static popupHeightCeiling;
|
|
3611
3623
|
private closeTimer;
|
|
3612
|
-
constructor(host: ElementRef<HTMLElement>);
|
|
3613
3624
|
/**
|
|
3614
3625
|
* Inline mode: whenever the active leaf is (re)set — including the very
|
|
3615
3626
|
* first binding, so a deep link or a page refresh lands with the section
|
|
@@ -3658,7 +3669,7 @@ declare class BkMenu implements OnChanges, OnDestroy {
|
|
|
3658
3669
|
private toggle;
|
|
3659
3670
|
private closeBranch;
|
|
3660
3671
|
private closeAll;
|
|
3661
|
-
onDocumentClick(
|
|
3672
|
+
onDocumentClick(): void;
|
|
3662
3673
|
onViewportChange(): void;
|
|
3663
3674
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BkMenu, never>;
|
|
3664
3675
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<BkMenu, "bk-menu", never, { "items": { "alias": "items"; "required": false; }; "orientation": { "alias": "orientation"; "required": false; }; "submenuMode": { "alias": "submenuMode"; "required": false; }; "trigger": { "alias": "trigger"; "required": false; }; "size": { "alias": "size"; "required": false; }; "hoverCloseDelay": { "alias": "hoverCloseDelay"; "required": false; }; "singleOpen": { "alias": "singleOpen"; "required": false; }; "submenuBackground": { "alias": "submenuBackground"; "required": false; }; "emitParentClick": { "alias": "emitParentClick"; "required": false; }; "activeItemId": { "alias": "activeItemId"; "required": false; }; "tintIcons": { "alias": "tintIcons"; "required": false; }; "maxHeight": { "alias": "maxHeight"; "required": false; }; }, { "activeItemIdChange": "activeItemIdChange"; "itemClick": "itemClick"; }, never, never, true, never>;
|
|
@@ -4568,7 +4579,7 @@ declare class BkTd extends BkCellBase implements AfterViewInit, OnDestroy {
|
|
|
4568
4579
|
*/
|
|
4569
4580
|
protected readonly truncatedTooltip: _angular_core.WritableSignal<string>;
|
|
4570
4581
|
/** Forwarded to the content wrapper's `bkTooltip`. Override on a column whose default 'right' would run into its neighbour. */
|
|
4571
|
-
tooltipPosition: _angular_core.InputSignal<"left" | "right" | "
|
|
4582
|
+
tooltipPosition: _angular_core.InputSignal<"left" | "right" | "bottom" | "top">;
|
|
4572
4583
|
/** Only present when `ellipsis()` is true — see the `@else` branch in the template. */
|
|
4573
4584
|
private ellipsisTextRef?;
|
|
4574
4585
|
checkbox: _angular_core.InputSignal<boolean>;
|
package/package.json
CHANGED
|
@@ -598,129 +598,6 @@
|
|
|
598
598
|
justify-content: center;
|
|
599
599
|
} */
|
|
600
600
|
|
|
601
|
-
/* --------------------------
|
|
602
|
-
CUSTOM TIME PICKER
|
|
603
|
-
---------------------------*/
|
|
604
|
-
.custom-time-picker {
|
|
605
|
-
display: flex;
|
|
606
|
-
flex-direction: column;
|
|
607
|
-
gap: 8px;
|
|
608
|
-
align-items: start;
|
|
609
|
-
}
|
|
610
|
-
|
|
611
|
-
.time-input-group {
|
|
612
|
-
display: flex;
|
|
613
|
-
align-items: center;
|
|
614
|
-
justify-content: center;
|
|
615
|
-
/*width: 100%;*/
|
|
616
|
-
gap: 8px;
|
|
617
|
-
background: #f8f9fa;
|
|
618
|
-
padding: 12px;
|
|
619
|
-
border-radius: 8px;
|
|
620
|
-
border: 1px solid #e0e0e0;
|
|
621
|
-
}
|
|
622
|
-
|
|
623
|
-
.time-control {
|
|
624
|
-
display: flex;
|
|
625
|
-
flex-direction: column;
|
|
626
|
-
align-items: center;
|
|
627
|
-
/* gap: 4px; */
|
|
628
|
-
}
|
|
629
|
-
|
|
630
|
-
.time-btn {
|
|
631
|
-
background: #fff;
|
|
632
|
-
border: 1px solid #ddd;
|
|
633
|
-
width: 28px;
|
|
634
|
-
height: 20px;
|
|
635
|
-
cursor: pointer;
|
|
636
|
-
font-size: 10px;
|
|
637
|
-
color: #666;
|
|
638
|
-
border-radius: 4px;
|
|
639
|
-
transition: all 0.2s;
|
|
640
|
-
display: flex;
|
|
641
|
-
align-items: center;
|
|
642
|
-
justify-content: center;
|
|
643
|
-
padding: 0;
|
|
644
|
-
line-height: 1;
|
|
645
|
-
}
|
|
646
|
-
|
|
647
|
-
.time-btn:hover {
|
|
648
|
-
background: #e4e4e4;
|
|
649
|
-
color: white;
|
|
650
|
-
border-color: #e4e4e4;
|
|
651
|
-
}
|
|
652
|
-
|
|
653
|
-
.time-btn.up {
|
|
654
|
-
border-bottom-left-radius: 0;
|
|
655
|
-
border-bottom-right-radius: 0;
|
|
656
|
-
border-bottom: none;
|
|
657
|
-
}
|
|
658
|
-
|
|
659
|
-
.time-btn.down {
|
|
660
|
-
border-top-left-radius: 0;
|
|
661
|
-
border-top-right-radius: 0;
|
|
662
|
-
border-top: none;
|
|
663
|
-
}
|
|
664
|
-
|
|
665
|
-
.time-input {
|
|
666
|
-
width: 40px;
|
|
667
|
-
height: 32px;
|
|
668
|
-
text-align: center;
|
|
669
|
-
border: 1px solid #ddd;
|
|
670
|
-
border-radius: 4px;
|
|
671
|
-
font-size: 16px;
|
|
672
|
-
font-weight: 600;
|
|
673
|
-
background: #fff;
|
|
674
|
-
color: #333;
|
|
675
|
-
}
|
|
676
|
-
|
|
677
|
-
.time-separator {
|
|
678
|
-
font-size: 18px;
|
|
679
|
-
font-weight: 600;
|
|
680
|
-
color: #666;
|
|
681
|
-
margin: 0 2px;
|
|
682
|
-
}
|
|
683
|
-
|
|
684
|
-
.ampm-control {
|
|
685
|
-
display: flex;
|
|
686
|
-
flex-direction: column;
|
|
687
|
-
gap: 4px;
|
|
688
|
-
margin-left: 8px;
|
|
689
|
-
}
|
|
690
|
-
|
|
691
|
-
.ampm-btn {
|
|
692
|
-
padding: 6px 12px;
|
|
693
|
-
border: 1px solid #ddd;
|
|
694
|
-
background: #fff;
|
|
695
|
-
border-radius: 4px;
|
|
696
|
-
cursor: pointer;
|
|
697
|
-
font-size: 12px;
|
|
698
|
-
font-weight: 600;
|
|
699
|
-
color: #666;
|
|
700
|
-
transition: all 0.2s;
|
|
701
|
-
min-width: 45px;
|
|
702
|
-
}
|
|
703
|
-
|
|
704
|
-
.ampm-btn:hover {
|
|
705
|
-
background: #f0f0f0;
|
|
706
|
-
}
|
|
707
|
-
|
|
708
|
-
.ampm-btn.active {
|
|
709
|
-
background: #000;
|
|
710
|
-
color: white;
|
|
711
|
-
border-color: #000;
|
|
712
|
-
}
|
|
713
|
-
|
|
714
|
-
.html5-time-input {
|
|
715
|
-
margin-top: 8px;
|
|
716
|
-
padding: 8px;
|
|
717
|
-
border: 1px solid #ddd;
|
|
718
|
-
border-radius: 6px;
|
|
719
|
-
font-size: 14px;
|
|
720
|
-
width: 100%;
|
|
721
|
-
max-width: 120px;
|
|
722
|
-
}
|
|
723
|
-
|
|
724
601
|
/* --------------------------
|
|
725
602
|
FOOTER (Apply/Cancel Buttons)
|
|
726
603
|
---------------------------*/
|
|
@@ -830,10 +707,6 @@
|
|
|
830
707
|
margin-bottom: 16px;
|
|
831
708
|
}
|
|
832
709
|
|
|
833
|
-
.time-input-group {
|
|
834
|
-
flex-wrap: wrap;
|
|
835
|
-
justify-content: center;
|
|
836
|
-
}
|
|
837
710
|
}
|
|
838
711
|
|
|
839
712
|
/* --------------------------
|
package/src/lib/menu/menu.css
CHANGED
|
@@ -131,10 +131,28 @@
|
|
|
131
131
|
@apply rounded-r-[var(--menu-radius)];
|
|
132
132
|
}
|
|
133
133
|
|
|
134
|
+
/* Inline only: once the last vertical item's submenu opens, it sits flush
|
|
135
|
+
below the button — the rounded-bottom corner above no longer matches the
|
|
136
|
+
container's true edge, so it'd leave an odd notch against the flat panel
|
|
137
|
+
underneath. Square it off while open. Pop-up fly-outs go sideways, not
|
|
138
|
+
below, so they never hit this — hence the :not(.bk-menu--popup) guard. */
|
|
139
|
+
.bk-menu--vertical:not(.bk-menu--popup) > .bk-menu__list > .bk-menu__item--open:last-child > .bk-menu__button {
|
|
140
|
+
border-bottom-left-radius: 0;
|
|
141
|
+
border-bottom-right-radius: 0;
|
|
142
|
+
}
|
|
143
|
+
|
|
134
144
|
.bk-menu__button:hover:not(:disabled):not(.bk-menu__button--active) {
|
|
135
145
|
@apply bg-[var(--menu-hover-bg)] text-[color:var(--menu-hover-text)];
|
|
136
146
|
}
|
|
137
147
|
|
|
148
|
+
/* Open state (submenu expanded — inline or flown-out): same tint as hover,
|
|
149
|
+
so a parent stays visibly "open" once the pointer moves off it instead of
|
|
150
|
+
reading as a plain unhovered row. Skipped when it's also the active
|
|
151
|
+
button — the dark active background already marks that more strongly. */
|
|
152
|
+
.bk-menu__item--open > .bk-menu__button:not(.bk-menu__button--active) {
|
|
153
|
+
@apply bg-[var(--menu-hover-bg)] text-[color:var(--menu-hover-text)];
|
|
154
|
+
}
|
|
155
|
+
|
|
138
156
|
.bk-menu__button--active {
|
|
139
157
|
@apply bg-[var(--menu-active-bg)] text-[color:var(--menu-active-text)];
|
|
140
158
|
}
|
|
@@ -14,8 +14,10 @@
|
|
|
14
14
|
pointer-events: none;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
/*
|
|
18
|
-
|
|
17
|
+
/* Belt-and-braces: pins the pane itself in case some future overlay ever nests a pane inside
|
|
18
|
+
this one's wrapper. The stacking fight against *other* overlays (dialogs, selects, popovers)
|
|
19
|
+
actually happens one level up, at the wrapper CDK puts around the pane — see the
|
|
20
|
+
`hostElement.style.zIndex` line in toastr.service.ts, which is the real fix for that. */
|
|
19
21
|
.cdk-overlay-pane.bk-toastr-panel {
|
|
20
22
|
z-index: 2147483647 !important;
|
|
21
23
|
}
|