jupiter-dynamic-forms 1.19.2 → 1.19.4

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/dist/index.mjs CHANGED
@@ -4641,7 +4641,7 @@ JupiterFormField.styles = css`
4641
4641
  100% { box-shadow: 0 0 0 0px transparent; background-color: transparent; }
4642
4642
  }
4643
4643
  :host(.concept-highlight) {
4644
- animation: concept-highlight-pulse 5s ease-out forwards;
4644
+ animation: concept-highlight-pulse 10s ease-out forwards;
4645
4645
  }
4646
4646
  `;
4647
4647
  __decorateClass$6([
@@ -5219,6 +5219,16 @@ JupiterConceptTree.styles = css`
5219
5219
  opacity: 1;
5220
5220
  }
5221
5221
 
5222
+ @keyframes concept-row-highlight-pulse {
5223
+ 0% { background-color: #fef9c3; box-shadow: inset 0 3px 0 -1px #fbbf24, inset 0 -3px 0 -1px #fbbf24; }
5224
+ 60% { background-color: #fef9c3; box-shadow: inset 0 3px 0 -1px #fbbf24, inset 0 -3px 0 -1px #fbbf24; }
5225
+ 100% { background-color: transparent; box-shadow: none; }
5226
+ }
5227
+ :host(.concept-highlight) .concept-name-cell,
5228
+ :host(.concept-highlight) .field-cell {
5229
+ animation: concept-row-highlight-pulse 10s ease-out forwards;
5230
+ }
5231
+
5222
5232
  `;
5223
5233
  __decorateClass$5([
5224
5234
  n2({ type: Object })
@@ -12786,7 +12796,7 @@ let JupiterDynamicForm = class extends LitElement {
12786
12796
  })) == null ? void 0 : _a.id;
12787
12797
  }
12788
12798
  async scrollToConcept(conceptName, dimensions, match) {
12789
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;
12799
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;
12790
12800
  console.log(`[scrollToConcept] ▶ START conceptName=${conceptName} value=${match == null ? void 0 : match.value} dims=${JSON.stringify(dimensions)}`);
12791
12801
  let targetSection = null;
12792
12802
  let targetConcept = null;
@@ -12840,6 +12850,7 @@ let JupiterDynamicForm = class extends LitElement {
12840
12850
  targetColumnId = ((_b = columns[0]) == null ? void 0 : _b.id) ?? null;
12841
12851
  }
12842
12852
  console.log(`[scrollToConcept] targetColumnId=${targetColumnId} hasValueMatch=${hasValueMatch} targetValue=${targetValue}`);
12853
+ this._conceptSearchText = conceptName.includes(":") ? conceptName.split(":").pop() : conceptName;
12843
12854
  this.requestUpdate();
12844
12855
  await this.updateComplete;
12845
12856
  await new Promise((resolve) => setTimeout(resolve, 300));
@@ -12960,13 +12971,40 @@ let JupiterDynamicForm = class extends LitElement {
12960
12971
  return;
12961
12972
  }
12962
12973
  console.log(`[scrollToConcept] ✅ HIGHLIGHTING conceptId=${targetFieldEl.conceptId} columnId=${targetFieldEl.columnId} value=${targetFieldEl.value}`);
12963
- targetFieldEl.scrollIntoView({ behavior: "smooth", block: "center" });
12964
- targetFieldEl.classList.add("concept-highlight");
12965
- const focusTarget = (_k = targetFieldEl.shadowRoot) == null ? void 0 : _k.querySelector(
12974
+ const fieldRect = targetFieldEl.getBoundingClientRect();
12975
+ const root = this.shadowRoot;
12976
+ const potentialContainer = root ? root.querySelector(".side-panel-content") ?? root.querySelector(".form-container") : null;
12977
+ const scrollContainer = potentialContainer && potentialContainer.scrollHeight > potentialContainer.clientHeight ? potentialContainer : null;
12978
+ if (scrollContainer) {
12979
+ const containerRect = scrollContainer.getBoundingClientRect();
12980
+ const targetScrollTop = Math.max(
12981
+ 0,
12982
+ fieldRect.top - containerRect.top + scrollContainer.scrollTop - scrollContainer.clientHeight / 2 + fieldRect.height / 2
12983
+ );
12984
+ scrollContainer.scrollTo({ top: targetScrollTop, behavior: "smooth" });
12985
+ } else {
12986
+ targetFieldEl.scrollIntoView({ behavior: "smooth", block: "center" });
12987
+ }
12988
+ const tableContainer = (_k = targetSectionEl == null ? void 0 : targetSectionEl.shadowRoot) == null ? void 0 : _k.querySelector(".table-container");
12989
+ if (tableContainer && tableContainer.scrollWidth > tableContainer.clientWidth) {
12990
+ const tableRect = tableContainer.getBoundingClientRect();
12991
+ const targetScrollLeft = Math.max(
12992
+ 0,
12993
+ fieldRect.left - tableRect.left + tableContainer.scrollLeft - tableContainer.clientWidth / 2 + fieldRect.width / 2
12994
+ );
12995
+ tableContainer.scrollTo({ left: targetScrollLeft, behavior: "smooth" });
12996
+ }
12997
+ const rootNode = targetFieldEl.getRootNode();
12998
+ const rowHost = rootNode instanceof ShadowRoot ? rootNode.host : null;
12999
+ const highlightEl = rowHost ?? targetFieldEl;
13000
+ highlightEl.classList.add("concept-highlight");
13001
+ const focusTarget = (_l = targetFieldEl.shadowRoot) == null ? void 0 : _l.querySelector(
12966
13002
  'input:not([type="hidden"]), select, textarea, button, [tabindex]:not([tabindex="-1"])'
12967
13003
  );
12968
- focusTarget == null ? void 0 : focusTarget.focus({ preventScroll: true });
12969
- setTimeout(() => targetFieldEl.classList.remove("concept-highlight"), 5e3);
13004
+ if (focusTarget) {
13005
+ setTimeout(() => focusTarget.focus({ preventScroll: true }), 450);
13006
+ }
13007
+ setTimeout(() => highlightEl.classList.remove("concept-highlight"), 1e4);
12970
13008
  }
12971
13009
  render() {
12972
13010
  var _a;