@kodaris/krubble-app-components 1.0.39 → 1.0.40

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.
@@ -53,9 +53,12 @@ export declare class KRScreenNav extends LitElement {
53
53
  */
54
54
  navItems: KRScreenNavItem[];
55
55
  /**
56
- * Currently active item ID
56
+ * Currently active item ID. Auto-detected from the URL by default.
57
+ * Can be set explicitly by the parent to override.
57
58
  */
58
59
  activeId: string;
60
+ connectedCallback(): void;
61
+ disconnectedCallback(): void;
59
62
  /**
60
63
  * Handles click events on navigation items.
61
64
  *
@@ -72,6 +75,8 @@ export declare class KRScreenNav extends LitElement {
72
75
  * @param item - The nav item that was clicked
73
76
  */
74
77
  private handleNavItemClick;
78
+ private handlePopstate;
79
+ private syncActiveFromUrl;
75
80
  render(): import("lit-html").TemplateResult<1>;
76
81
  }
77
82
  declare global {
@@ -1 +1 @@
1
- {"version":3,"file":"screen-nav.d.ts","sourceRoot":"","sources":["../src/screen-nav.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAGrD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,yBAAyB;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBACa,WAAY,SAAQ,UAAU;IACzC,OAAgB,MAAM,0BA2FpB;IAEF;;OAEG;IAEH,KAAK,SAAM;IAEX;;OAEG;IAEH,QAAQ,SAAM;IAEd;;OAEG;IAEH,QAAQ,EAAE,eAAe,EAAE,CAAM;IAEjC;;OAEG;IAEH,QAAQ,SAAM;IAEd;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,kBAAkB;IAejB,MAAM;CAkChB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,eAAe,EAAE,WAAW,CAAC;KAC9B;CACF"}
1
+ {"version":3,"file":"screen-nav.d.ts","sourceRoot":"","sources":["../src/screen-nav.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAGrD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,yBAAyB;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBACa,WAAY,SAAQ,UAAU;IACzC,OAAgB,MAAM,0BA2FpB;IAEF;;OAEG;IAEH,KAAK,SAAM;IAEX;;OAEG;IAEH,QAAQ,SAAM;IAEd;;OAEG;IAEH,QAAQ,EAAE,eAAe,EAAE,CAAM;IAEjC;;;OAGG;IAEH,QAAQ,SAAM;IAEL,iBAAiB;IAOjB,oBAAoB;IAK7B;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,cAAc,CAEpB;IAEF,OAAO,CAAC,iBAAiB;IAkBhB,MAAM;CAkChB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,eAAe,EAAE,WAAW,CAAC;KAC9B;CACF"}
@@ -50,9 +50,23 @@ let KRScreenNav = class KRScreenNav extends LitElement {
50
50
  */
51
51
  this.navItems = [];
52
52
  /**
53
- * Currently active item ID
53
+ * Currently active item ID. Auto-detected from the URL by default.
54
+ * Can be set explicitly by the parent to override.
54
55
  */
55
56
  this.activeId = '';
57
+ this.handlePopstate = () => {
58
+ this.syncActiveFromUrl();
59
+ };
60
+ }
61
+ connectedCallback() {
62
+ super.connectedCallback();
63
+ // Defer so property bindings (.navItems) have been applied
64
+ requestAnimationFrame(() => this.syncActiveFromUrl());
65
+ window.addEventListener('popstate', this.handlePopstate);
66
+ }
67
+ disconnectedCallback() {
68
+ super.disconnectedCallback();
69
+ window.removeEventListener('popstate', this.handlePopstate);
56
70
  }
57
71
  /**
58
72
  * Handles click events on navigation items.
@@ -81,6 +95,24 @@ let KRScreenNav = class KRScreenNav extends LitElement {
81
95
  if (navEvent.defaultPrevented) {
82
96
  e.preventDefault();
83
97
  }
98
+ this.activeId = item.id;
99
+ }
100
+ syncActiveFromUrl() {
101
+ const pathname = window.location.pathname;
102
+ const match = this.navItems.find((item) => {
103
+ if (!item.url) {
104
+ return false;
105
+ }
106
+ // Absolute URL — exact match
107
+ if (item.url.startsWith('/')) {
108
+ return pathname === item.url;
109
+ }
110
+ // Relative URL — match against the end of the pathname
111
+ return pathname.endsWith('/' + item.url);
112
+ });
113
+ if (match) {
114
+ this.activeId = match.id;
115
+ }
84
116
  }
85
117
  render() {
86
118
  return html `
@@ -1 +1 @@
1
- {"version":3,"file":"screen-nav.js","sourceRoot":"","sources":["../src/screen-nav.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAc5D;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEI,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,UAAU;IAApC;;QA8FL;;WAEG;QAEH,UAAK,GAAG,EAAE,CAAC;QAEX;;WAEG;QAEH,aAAQ,GAAG,EAAE,CAAC;QAEd;;WAEG;QAEH,aAAQ,GAAsB,EAAE,CAAC;QAEjC;;WAEG;QAEH,aAAQ,GAAG,EAAE,CAAC;IAkEhB,CAAC;IAhEC;;;;;;;;;;;;;;OAcG;IACK,kBAAkB,CAAC,CAAQ,EAAE,IAAqB;QACxD,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,gBAAgB,EAAE;YACjD,MAAM,EAAE,EAAE,IAAI,EAAE;YAChB,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAE7B,uEAAuE;QACvE,IAAI,QAAQ,CAAC,gBAAgB,EAAE,CAAC;YAC9B,CAAC,CAAC,cAAc,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IAEQ,MAAM;QACb,OAAO,IAAI,CAAA;;UAEL,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;;;gBAGX,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAA,qCAAqC,IAAI,CAAC,QAAQ,QAAQ,CAAC,CAAC,CAAC,OAAO;+CACzD,IAAI,CAAC,KAAK;;;SAGhD,CAAC,CAAC,CAAC,OAAO;;;cAGL,IAAI,CAAC,QAAQ,CAAC,GAAG,CACjB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAA;;oCAEQ,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE;yBAC9D,IAAI,CAAC,GAAG,IAAI,GAAG;2BACb,CAAC,CAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE,IAAI,CAAC;;oBAErD,IAAI,CAAC,KAAK;;eAEf,CACF;;;;;;;;;KASR,CAAC;IACJ,CAAC;;AApLe,kBAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2F3B,AA3FqB,CA2FpB;AAMF;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;0CAChB;AAMX;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;6CACb;AAMd;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;6CACO;AAMjC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;6CACb;AApHH,WAAW;IADvB,aAAa,CAAC,eAAe,CAAC;GAClB,WAAW,CAsLvB"}
1
+ {"version":3,"file":"screen-nav.js","sourceRoot":"","sources":["../src/screen-nav.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kodaris/krubble-app-components",
3
- "version": "1.0.39",
3
+ "version": "1.0.40",
4
4
  "description": "Krubble Application Components - Smart components with business logic",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",