@eric-emg/symphiq-components 1.2.514 → 1.2.517

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.
@@ -1973,10 +1973,10 @@ class HeaderScrollService {
1973
1973
  return;
1974
1974
  }
1975
1975
  const isFastScroll = absScrollDelta > 30;
1976
- const isWellPastThreshold = !currentState && scrollPosition > this.config.collapseThreshold * 2;
1977
- const fastScrollBypass = isFastScroll && isWellPastThreshold && desiredState;
1978
- if (fastScrollBypass) {
1979
- this.log('Fast scroll bypass triggered', { scrollPosition, absScrollDelta });
1976
+ const fastCollapseBypass = isFastScroll && !currentState && scrollPosition > this.config.collapseThreshold * 2 && desiredState;
1977
+ const fastExpandBypass = isFastScroll && currentState && scrollDelta < -30 && scrollPosition < 50 && !desiredState;
1978
+ if (fastCollapseBypass || fastExpandBypass) {
1979
+ this.log('Fast scroll bypass triggered', { scrollPosition, absScrollDelta, type: fastCollapseBypass ? 'collapse' : 'expand' });
1980
1980
  if (this.scrollTimeout) {
1981
1981
  clearTimeout(this.scrollTimeout);
1982
1982
  this.scrollTimeout = null;
@@ -2147,10 +2147,10 @@ class HeaderScrollService {
2147
2147
  return;
2148
2148
  }
2149
2149
  const isFastScroll = absScrollDelta > 30;
2150
- const isWellPastThreshold = !currentState && scrollTop > collapseThreshold * 2;
2151
- const fastScrollBypass = isFastScroll && isWellPastThreshold && desiredState;
2152
- if (fastScrollBypass) {
2153
- this.log('Fast scroll bypass triggered', { scrollTop, absScrollDelta, collapseThreshold });
2150
+ const fastCollapseBypass = isFastScroll && !currentState && scrollTop > collapseThreshold * 2 && desiredState;
2151
+ const fastExpandBypass = isFastScroll && currentState && scrollDelta < -30 && scrollTop < 50 && !desiredState;
2152
+ if (fastCollapseBypass || fastExpandBypass) {
2153
+ this.log('Fast scroll bypass triggered', { scrollTop, absScrollDelta, type: fastCollapseBypass ? 'collapse' : 'expand' });
2154
2154
  if (this.scrollTimeout) {
2155
2155
  clearTimeout(this.scrollTimeout);
2156
2156
  this.scrollTimeout = null;
@@ -68917,14 +68917,14 @@ function DashboardHeaderComponent_Conditional_8_Template(rf, ctx) { if (rf & 1)
68917
68917
  } }
68918
68918
  function DashboardHeaderComponent_Conditional_11_Template(rf, ctx) { if (rf & 1) {
68919
68919
  const _r1 = i0.ɵɵgetCurrentView();
68920
- i0.ɵɵelementStart(0, "div", 7)(1, "symphiq-search-button", 14);
68920
+ i0.ɵɵelementStart(0, "div", 7)(1, "symphiq-search-button", 15);
68921
68921
  i0.ɵɵlistener("searchClick", function DashboardHeaderComponent_Conditional_11_Template_symphiq_search_button_searchClick_1_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onSearchClick()); });
68922
68922
  i0.ɵɵelementEnd();
68923
- i0.ɵɵelementStart(2, "button", 15);
68923
+ i0.ɵɵelementStart(2, "button", 16);
68924
68924
  i0.ɵɵlistener("click", function DashboardHeaderComponent_Conditional_11_Template_button_click_2_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onViewModeClick()); });
68925
68925
  i0.ɵɵnamespaceSVG();
68926
- i0.ɵɵelementStart(3, "svg", 16);
68927
- i0.ɵɵelement(4, "path", 17)(5, "path", 18);
68926
+ i0.ɵɵelementStart(3, "svg", 17);
68927
+ i0.ɵɵelement(4, "path", 18)(5, "path", 19);
68928
68928
  i0.ɵɵelementEnd();
68929
68929
  i0.ɵɵnamespaceHTML();
68930
68930
  i0.ɵɵelementStart(6, "span");
@@ -68940,10 +68940,10 @@ function DashboardHeaderComponent_Conditional_11_Template(rf, ctx) { if (rf & 1)
68940
68940
  i0.ɵɵtextInterpolate(ctx_r1.viewModeLabel());
68941
68941
  } }
68942
68942
  function DashboardHeaderComponent_Conditional_12_Conditional_1_Template(rf, ctx) { if (rf & 1) {
68943
- i0.ɵɵelementStart(0, "div", 19)(1, "div", 20);
68943
+ i0.ɵɵelementStart(0, "div", 20)(1, "div", 21);
68944
68944
  i0.ɵɵtext(2, "Generated At");
68945
68945
  i0.ɵɵelementEnd();
68946
- i0.ɵɵelementStart(3, "div", 21);
68946
+ i0.ɵɵelementStart(3, "div", 22);
68947
68947
  i0.ɵɵtext(4);
68948
68948
  i0.ɵɵelementEnd()();
68949
68949
  } if (rf & 2) {
@@ -68956,10 +68956,10 @@ function DashboardHeaderComponent_Conditional_12_Conditional_1_Template(rf, ctx)
68956
68956
  i0.ɵɵtextInterpolate(ctx_r1.formattedGeneratedDate());
68957
68957
  } }
68958
68958
  function DashboardHeaderComponent_Conditional_12_Conditional_2_Template(rf, ctx) { if (rf & 1) {
68959
- i0.ɵɵelementStart(0, "div", 19)(1, "div", 20);
68959
+ i0.ɵɵelementStart(0, "div", 20)(1, "div", 21);
68960
68960
  i0.ɵɵtext(2, "Requested by");
68961
68961
  i0.ɵɵelementEnd();
68962
- i0.ɵɵelementStart(3, "div", 21);
68962
+ i0.ɵɵelementStart(3, "div", 22);
68963
68963
  i0.ɵɵtext(4);
68964
68964
  i0.ɵɵelementEnd()();
68965
68965
  } if (rf & 2) {
@@ -68974,8 +68974,8 @@ function DashboardHeaderComponent_Conditional_12_Conditional_2_Template(rf, ctx)
68974
68974
  } }
68975
68975
  function DashboardHeaderComponent_Conditional_12_Template(rf, ctx) { if (rf & 1) {
68976
68976
  i0.ɵɵelementStart(0, "div", 8);
68977
- i0.ɵɵconditionalCreate(1, DashboardHeaderComponent_Conditional_12_Conditional_1_Template, 5, 5, "div", 19);
68978
- i0.ɵɵconditionalCreate(2, DashboardHeaderComponent_Conditional_12_Conditional_2_Template, 5, 6, "div", 19);
68977
+ i0.ɵɵconditionalCreate(1, DashboardHeaderComponent_Conditional_12_Conditional_1_Template, 5, 5, "div", 20);
68978
+ i0.ɵɵconditionalCreate(2, DashboardHeaderComponent_Conditional_12_Conditional_2_Template, 5, 6, "div", 20);
68979
68979
  i0.ɵɵelementEnd();
68980
68980
  } if (rf & 2) {
68981
68981
  const ctx_r1 = i0.ɵɵnextContext();
@@ -69000,7 +69000,7 @@ function DashboardHeaderComponent_Conditional_20_Conditional_3_Template(rf, ctx)
69000
69000
  i0.ɵɵtextInterpolate1(" ", ctx_r1.currentSubsection(), " ");
69001
69001
  } }
69002
69002
  function DashboardHeaderComponent_Conditional_20_Template(rf, ctx) { if (rf & 1) {
69003
- i0.ɵɵelementStart(0, "div", 13)(1, "span", 5);
69003
+ i0.ɵɵelementStart(0, "div", 14)(1, "span", 5);
69004
69004
  i0.ɵɵtext(2);
69005
69005
  i0.ɵɵelementEnd();
69006
69006
  i0.ɵɵconditionalCreate(3, DashboardHeaderComponent_Conditional_20_Conditional_3_Template, 4, 3);
@@ -69016,14 +69016,14 @@ function DashboardHeaderComponent_Conditional_20_Template(rf, ctx) { if (rf & 1)
69016
69016
  } }
69017
69017
  function DashboardHeaderComponent_Conditional_21_Template(rf, ctx) { if (rf & 1) {
69018
69018
  const _r3 = i0.ɵɵgetCurrentView();
69019
- i0.ɵɵelementStart(0, "symphiq-search-button", 22);
69019
+ i0.ɵɵelementStart(0, "symphiq-search-button", 23);
69020
69020
  i0.ɵɵlistener("searchClick", function DashboardHeaderComponent_Conditional_21_Template_symphiq_search_button_searchClick_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onSearchClick()); });
69021
69021
  i0.ɵɵelementEnd();
69022
- i0.ɵɵelementStart(1, "button", 23);
69022
+ i0.ɵɵelementStart(1, "button", 24);
69023
69023
  i0.ɵɵlistener("click", function DashboardHeaderComponent_Conditional_21_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onViewModeClick()); });
69024
69024
  i0.ɵɵnamespaceSVG();
69025
- i0.ɵɵelementStart(2, "svg", 16);
69026
- i0.ɵɵelement(3, "path", 17)(4, "path", 18);
69025
+ i0.ɵɵelementStart(2, "svg", 17);
69026
+ i0.ɵɵelement(3, "path", 18)(4, "path", 19);
69027
69027
  i0.ɵɵelementEnd()();
69028
69028
  } if (rf & 2) {
69029
69029
  const ctx_r1 = i0.ɵɵnextContext();
@@ -69099,7 +69099,7 @@ class DashboardHeaderComponent {
69099
69099
  : 'bg-slate-800 hover:bg-slate-700 text-slate-300 border border-slate-700';
69100
69100
  }
69101
69101
  static { this.ɵfac = function DashboardHeaderComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || DashboardHeaderComponent)(); }; }
69102
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DashboardHeaderComponent, selectors: [["symphiq-dashboard-header"]], inputs: { requestedByUser: [1, "requestedByUser"], createdDate: [1, "createdDate"], title: [1, "title"], subtitle: [1, "subtitle"], viewMode: [1, "viewMode"], viewModeLabel: [1, "viewModeLabel"], currentSection: [1, "currentSection"], currentSubsection: [1, "currentSubsection"], isLoading: [1, "isLoading"], showControls: [1, "showControls"] }, outputs: { searchClick: "searchClick", viewModeClick: "viewModeClick" }, decls: 22, vars: 26, consts: [[1, "sticky", "top-0", "z-50", "overflow-hidden", 2, "transition", "height 300ms ease-in-out", 3, "ngClass"], [1, "transition-opacity", "duration-300", "ease-in-out"], [1, "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-6"], [1, "flex", "items-center", "justify-between"], [1, "flex", "items-center", "gap-3"], [3, "ngClass"], ["title", "Refreshing data...", 1, "animate-spin", "w-4", "h-4", "border-2", "border-blue-500/30", "border-t-blue-500", "rounded-full"], [1, "flex", "items-center", "gap-2"], [1, "flex", "flex-col", "gap-4", "min-w-[180px]"], [1, "absolute", "inset-x-0", "top-0", "transition-opacity", "duration-300", "ease-in-out"], [1, "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-3.5"], [1, "flex-1", "min-w-0", "mr-4"], [1, "flex", "items-center", "gap-4"], [1, "flex", "items-center", "gap-2", "text-sm", "flex-shrink-0"], [3, "searchClick", "isLightMode"], ["type", "button", 1, "cursor-pointer", "flex", "items-center", "gap-2", "px-3", "py-1.5", "rounded-lg", "text-xs", "font-medium", "transition-all", "duration-200", "hover:scale-105", 3, "click", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M15 12a3 3 0 11-6 0 3 3 0 016 0z"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"], [1, "text-left", "sm:text-right"], [1, "text-xs", "sm:text-sm"], [1, "text-sm", "sm:text-base", "font-medium"], [3, "searchClick", "isLightMode", "minimized"], ["type", "button", 1, "cursor-pointer", "flex", "items-center", "gap-2", "px-2", "py-1.5", "rounded-lg", "text-xs", "font-medium", "transition-all", "duration-200", "hover:scale-105", 3, "click", "ngClass"]], template: function DashboardHeaderComponent_Template(rf, ctx) { if (rf & 1) {
69102
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DashboardHeaderComponent, selectors: [["symphiq-dashboard-header"]], inputs: { requestedByUser: [1, "requestedByUser"], createdDate: [1, "createdDate"], title: [1, "title"], subtitle: [1, "subtitle"], viewMode: [1, "viewMode"], viewModeLabel: [1, "viewModeLabel"], currentSection: [1, "currentSection"], currentSubsection: [1, "currentSubsection"], isLoading: [1, "isLoading"], showControls: [1, "showControls"] }, outputs: { searchClick: "searchClick", viewModeClick: "viewModeClick" }, decls: 22, vars: 26, consts: [[1, "sticky", "top-0", "z-50", "overflow-hidden", 2, "transition", "height 300ms ease-in-out", 3, "ngClass"], [1, "transition-opacity", "duration-300", "ease-in-out", "h-full"], [1, "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-4", "h-full", "flex", "items-center"], [1, "flex", "items-center", "justify-between", "w-full"], [1, "flex", "items-center", "gap-3"], [3, "ngClass"], ["title", "Refreshing data...", 1, "animate-spin", "w-4", "h-4", "border-2", "border-blue-500/30", "border-t-blue-500", "rounded-full"], [1, "flex", "items-center", "gap-2"], [1, "flex", "flex-col", "gap-4", "min-w-[180px]"], [1, "absolute", "inset-x-0", "top-0", "transition-opacity", "duration-300", "ease-in-out"], [1, "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-3.5"], [1, "flex", "items-center", "justify-between"], [1, "flex-1", "min-w-0", "mr-4"], [1, "flex", "items-center", "gap-4"], [1, "flex", "items-center", "gap-2", "text-sm", "flex-shrink-0"], [3, "searchClick", "isLightMode"], ["type", "button", 1, "cursor-pointer", "flex", "items-center", "gap-2", "px-3", "py-1.5", "rounded-lg", "text-xs", "font-medium", "transition-all", "duration-200", "hover:scale-105", 3, "click", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M15 12a3 3 0 11-6 0 3 3 0 016 0z"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"], [1, "text-left", "sm:text-right"], [1, "text-xs", "sm:text-sm"], [1, "text-sm", "sm:text-base", "font-medium"], [3, "searchClick", "isLightMode", "minimized"], ["type", "button", 1, "cursor-pointer", "flex", "items-center", "gap-2", "px-2", "py-1.5", "rounded-lg", "text-xs", "font-medium", "transition-all", "duration-200", "hover:scale-105", 3, "click", "ngClass"]], template: function DashboardHeaderComponent_Template(rf, ctx) { if (rf & 1) {
69103
69103
  i0.ɵɵelementStart(0, "header", 0)(1, "div", 1)(2, "div", 2)(3, "div", 3)(4, "div")(5, "div", 4)(6, "h1", 5);
69104
69104
  i0.ɵɵtext(7);
69105
69105
  i0.ɵɵelementEnd();
@@ -69111,11 +69111,11 @@ class DashboardHeaderComponent {
69111
69111
  i0.ɵɵconditionalCreate(11, DashboardHeaderComponent_Conditional_11_Template, 8, 3, "div", 7);
69112
69112
  i0.ɵɵconditionalCreate(12, DashboardHeaderComponent_Conditional_12_Template, 3, 2, "div", 8);
69113
69113
  i0.ɵɵelementEnd()()();
69114
- i0.ɵɵelementStart(13, "div", 9)(14, "div", 10)(15, "div", 3)(16, "div", 11)(17, "h1", 5);
69114
+ i0.ɵɵelementStart(13, "div", 9)(14, "div", 10)(15, "div", 11)(16, "div", 12)(17, "h1", 5);
69115
69115
  i0.ɵɵtext(18);
69116
69116
  i0.ɵɵelementEnd()();
69117
- i0.ɵɵelementStart(19, "div", 12);
69118
- i0.ɵɵconditionalCreate(20, DashboardHeaderComponent_Conditional_20_Template, 4, 3, "div", 13);
69117
+ i0.ɵɵelementStart(19, "div", 13);
69118
+ i0.ɵɵconditionalCreate(20, DashboardHeaderComponent_Conditional_20_Template, 4, 3, "div", 14);
69119
69119
  i0.ɵɵconditionalCreate(21, DashboardHeaderComponent_Conditional_21_Template, 5, 3);
69120
69120
  i0.ɵɵelementEnd()()()()();
69121
69121
  } if (rf & 2) {
@@ -69160,13 +69160,13 @@ class DashboardHeaderComponent {
69160
69160
  <header [ngClass]="getHeaderClasses()" class="sticky top-0 z-50 overflow-hidden" [style.height]="headerScrollService.isScrolled() ? '52px' : '100px'" style="transition: height 300ms ease-in-out;">
69161
69161
  <!-- Expanded Header (default state) -->
69162
69162
  <div
69163
- class="transition-opacity duration-300 ease-in-out"
69163
+ class="transition-opacity duration-300 ease-in-out h-full"
69164
69164
  [class.opacity-0]="headerScrollService.isScrolled()"
69165
69165
  [class.pointer-events-none]="headerScrollService.isScrolled()"
69166
69166
  [class.opacity-100]="!headerScrollService.isScrolled()">
69167
69167
  <div
69168
- class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6">
69169
- <div class="flex items-center justify-between">
69168
+ class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-4 h-full flex items-center">
69169
+ <div class="flex items-center justify-between w-full">
69170
69170
  <div>
69171
69171
  <div class="flex items-center gap-3">
69172
69172
  <h1 [ngClass]="getMainTitleClasses()">