@lax-wp/design-system 0.13.33 → 0.13.35

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.
Files changed (169) hide show
  1. package/dist/components/button/Button.cjs.js +5 -5
  2. package/dist/components/button/Button.cjs.js.map +1 -1
  3. package/dist/components/button/Button.es.js +18 -18
  4. package/dist/components/button/Button.es.js.map +1 -1
  5. package/dist/components/button/IconButton.cjs.js +1 -1
  6. package/dist/components/button/IconButton.cjs.js.map +1 -1
  7. package/dist/components/button/IconButton.es.js +8 -8
  8. package/dist/components/button/IconButton.es.js.map +1 -1
  9. package/dist/components/buttons/option-button/OptionButton.cjs.js +1 -1
  10. package/dist/components/buttons/option-button/OptionButton.cjs.js.map +1 -1
  11. package/dist/components/buttons/option-button/OptionButton.es.js +1 -1
  12. package/dist/components/buttons/option-button/OptionButton.es.js.map +1 -1
  13. package/dist/components/data-display/comparison/components/Header.cjs.js +1 -1
  14. package/dist/components/data-display/comparison/components/Header.cjs.js.map +1 -1
  15. package/dist/components/data-display/comparison/components/Header.es.js +13 -13
  16. package/dist/components/data-display/comparison/components/Header.es.js.map +1 -1
  17. package/dist/components/data-display/infinite-table/body/cell/CheckboxCell.cjs.js +1 -1
  18. package/dist/components/data-display/infinite-table/body/cell/CheckboxCell.cjs.js.map +1 -1
  19. package/dist/components/data-display/infinite-table/body/cell/CheckboxCell.es.js +23 -23
  20. package/dist/components/data-display/infinite-table/body/cell/CheckboxCell.es.js.map +1 -1
  21. package/dist/components/data-display/infinite-table/body/cell/DataCell.cjs.js +1 -1
  22. package/dist/components/data-display/infinite-table/body/cell/DataCell.cjs.js.map +1 -1
  23. package/dist/components/data-display/infinite-table/body/cell/DataCell.es.js +1 -1
  24. package/dist/components/data-display/infinite-table/body/cell/DataCell.es.js.map +1 -1
  25. package/dist/components/data-display/infinite-table/body/rows/index.cjs.js +1 -1
  26. package/dist/components/data-display/infinite-table/body/rows/index.cjs.js.map +1 -1
  27. package/dist/components/data-display/infinite-table/body/rows/index.es.js +104 -101
  28. package/dist/components/data-display/infinite-table/body/rows/index.es.js.map +1 -1
  29. package/dist/components/data-display/infinite-table/constants.cjs.js +1 -1
  30. package/dist/components/data-display/infinite-table/constants.cjs.js.map +1 -1
  31. package/dist/components/data-display/infinite-table/constants.d.ts +6 -0
  32. package/dist/components/data-display/infinite-table/constants.es.js +17 -16
  33. package/dist/components/data-display/infinite-table/constants.es.js.map +1 -1
  34. package/dist/components/data-display/infinite-table/head/CheckAll.cjs.js +1 -1
  35. package/dist/components/data-display/infinite-table/head/CheckAll.cjs.js.map +1 -1
  36. package/dist/components/data-display/infinite-table/head/CheckAll.es.js +4 -4
  37. package/dist/components/data-display/infinite-table/head/CheckAll.es.js.map +1 -1
  38. package/dist/components/data-display/infinite-table/head/index.cjs.js +1 -1
  39. package/dist/components/data-display/infinite-table/head/index.cjs.js.map +1 -1
  40. package/dist/components/data-display/infinite-table/head/index.es.js +5 -5
  41. package/dist/components/data-display/infinite-table/head/index.es.js.map +1 -1
  42. package/dist/components/data-display/infinite-table/index.cjs.js +1 -1
  43. package/dist/components/data-display/infinite-table/index.cjs.js.map +1 -1
  44. package/dist/components/data-display/infinite-table/index.es.js +188 -187
  45. package/dist/components/data-display/infinite-table/index.es.js.map +1 -1
  46. package/dist/components/data-display/infinite-table/useRowHeight.cjs.js +2 -0
  47. package/dist/components/data-display/infinite-table/useRowHeight.cjs.js.map +1 -0
  48. package/dist/components/data-display/infinite-table/useRowHeight.d.ts +15 -0
  49. package/dist/components/data-display/infinite-table/useRowHeight.es.js +24 -0
  50. package/dist/components/data-display/infinite-table/useRowHeight.es.js.map +1 -0
  51. package/dist/components/data-display/tag/Tag.cjs.js +1 -1
  52. package/dist/components/data-display/tag/Tag.cjs.js.map +1 -1
  53. package/dist/components/data-display/tag/Tag.es.js +11 -9
  54. package/dist/components/data-display/tag/Tag.es.js.map +1 -1
  55. package/dist/components/floating-bar/FloatingBar.cjs.js +1 -1
  56. package/dist/components/floating-bar/FloatingBar.cjs.js.map +1 -1
  57. package/dist/components/floating-bar/FloatingBar.es.js +9 -9
  58. package/dist/components/floating-bar/FloatingBar.es.js.map +1 -1
  59. package/dist/components/forms/base-input-field/BaseInputField.cjs.js +2 -2
  60. package/dist/components/forms/base-input-field/BaseInputField.cjs.js.map +1 -1
  61. package/dist/components/forms/base-input-field/BaseInputField.es.js +40 -42
  62. package/dist/components/forms/base-input-field/BaseInputField.es.js.map +1 -1
  63. package/dist/components/forms/creatable-select/CreatableSelect.cjs.js +1 -1
  64. package/dist/components/forms/creatable-select/CreatableSelect.cjs.js.map +1 -1
  65. package/dist/components/forms/creatable-select/CreatableSelect.es.js +14 -15
  66. package/dist/components/forms/creatable-select/CreatableSelect.es.js.map +1 -1
  67. package/dist/components/forms/currency-input/CurrencyInputField.cjs.js +1 -1
  68. package/dist/components/forms/currency-input/CurrencyInputField.cjs.js.map +1 -1
  69. package/dist/components/forms/currency-input/CurrencyInputField.es.js +57 -65
  70. package/dist/components/forms/currency-input/CurrencyInputField.es.js.map +1 -1
  71. package/dist/components/forms/date-time-field/DateTimeField.cjs.js +1 -1
  72. package/dist/components/forms/date-time-field/DateTimeField.cjs.js.map +1 -1
  73. package/dist/components/forms/date-time-field/DateTimeField.es.js +33 -33
  74. package/dist/components/forms/date-time-field/DateTimeField.es.js.map +1 -1
  75. package/dist/components/forms/debounce-input/DebounceInputField.cjs.js +1 -1
  76. package/dist/components/forms/debounce-input/DebounceInputField.cjs.js.map +1 -1
  77. package/dist/components/forms/debounce-input/DebounceInputField.es.js +2 -2
  78. package/dist/components/forms/debounce-input/DebounceInputField.es.js.map +1 -1
  79. package/dist/components/forms/dynamic-data-input/DynamicDataInput.cjs.js +1 -1
  80. package/dist/components/forms/dynamic-data-input/DynamicDataInput.cjs.js.map +1 -1
  81. package/dist/components/forms/dynamic-data-input/DynamicDataInput.es.js +7 -7
  82. package/dist/components/forms/dynamic-data-input/DynamicDataInput.es.js.map +1 -1
  83. package/dist/components/forms/dynamic-data-input/DynamicDataInputField.cjs.js +1 -1
  84. package/dist/components/forms/dynamic-data-input/DynamicDataInputField.cjs.js.map +1 -1
  85. package/dist/components/forms/dynamic-data-input/DynamicDataInputField.es.js +17 -19
  86. package/dist/components/forms/dynamic-data-input/DynamicDataInputField.es.js.map +1 -1
  87. package/dist/components/forms/field-options/Item.cjs.js +1 -1
  88. package/dist/components/forms/field-options/Item.cjs.js.map +1 -1
  89. package/dist/components/forms/field-options/Item.es.js +5 -5
  90. package/dist/components/forms/field-options/Item.es.js.map +1 -1
  91. package/dist/components/forms/formula-input/FormulaInput.cjs.js +1 -1
  92. package/dist/components/forms/formula-input/FormulaInput.cjs.js.map +1 -1
  93. package/dist/components/forms/formula-input/FormulaInput.es.js +10 -10
  94. package/dist/components/forms/formula-input/FormulaInput.es.js.map +1 -1
  95. package/dist/components/forms/icon-picker/IconPicker.cjs.js +1 -1
  96. package/dist/components/forms/icon-picker/IconPicker.cjs.js.map +1 -1
  97. package/dist/components/forms/icon-picker/IconPicker.es.js +42 -57
  98. package/dist/components/forms/icon-picker/IconPicker.es.js.map +1 -1
  99. package/dist/components/forms/input-field/InputField.cjs.js.map +1 -1
  100. package/dist/components/forms/input-field/InputField.es.js.map +1 -1
  101. package/dist/components/forms/master-data-input/MasterDataInputField.cjs.js +1 -1
  102. package/dist/components/forms/master-data-input/MasterDataInputField.cjs.js.map +1 -1
  103. package/dist/components/forms/master-data-input/MasterDataInputField.es.js +54 -60
  104. package/dist/components/forms/master-data-input/MasterDataInputField.es.js.map +1 -1
  105. package/dist/components/forms/md-input/RichMarkdownInput.cjs.js +3 -3
  106. package/dist/components/forms/md-input/RichMarkdownInput.cjs.js.map +1 -1
  107. package/dist/components/forms/md-input/RichMarkdownInput.es.js +63 -63
  108. package/dist/components/forms/md-input/RichMarkdownInput.es.js.map +1 -1
  109. package/dist/components/forms/number-input-field/NumberInputField.cjs.js +1 -1
  110. package/dist/components/forms/number-input-field/NumberInputField.cjs.js.map +1 -1
  111. package/dist/components/forms/number-input-field/NumberInputField.es.js +5 -5
  112. package/dist/components/forms/number-input-field/NumberInputField.es.js.map +1 -1
  113. package/dist/components/forms/percentage-input/PercentageInputField.cjs.js +2 -2
  114. package/dist/components/forms/percentage-input/PercentageInputField.cjs.js.map +1 -1
  115. package/dist/components/forms/percentage-input/PercentageInputField.es.js +20 -20
  116. package/dist/components/forms/percentage-input/PercentageInputField.es.js.map +1 -1
  117. package/dist/components/forms/search-bar/SearchBar.cjs.js +1 -1
  118. package/dist/components/forms/search-bar/SearchBar.cjs.js.map +1 -1
  119. package/dist/components/forms/search-bar/SearchBar.es.js +16 -16
  120. package/dist/components/forms/search-bar/SearchBar.es.js.map +1 -1
  121. package/dist/components/forms/select-field/SelectField.cjs.js +2 -2
  122. package/dist/components/forms/select-field/SelectField.cjs.js.map +1 -1
  123. package/dist/components/forms/select-field/SelectField.d.ts +4 -0
  124. package/dist/components/forms/select-field/SelectField.es.js +202 -203
  125. package/dist/components/forms/select-field/SelectField.es.js.map +1 -1
  126. package/dist/components/forms/text-area-field/TextAreaField.cjs.js +1 -1
  127. package/dist/components/forms/text-area-field/TextAreaField.cjs.js.map +1 -1
  128. package/dist/components/forms/text-area-field/TextAreaField.es.js +14 -14
  129. package/dist/components/forms/text-area-field/TextAreaField.es.js.map +1 -1
  130. package/dist/components/forms/toggle/Toggle.cjs.js +1 -1
  131. package/dist/components/forms/toggle/Toggle.cjs.js.map +1 -1
  132. package/dist/components/forms/toggle/Toggle.es.js +65 -59
  133. package/dist/components/forms/toggle/Toggle.es.js.map +1 -1
  134. package/dist/components/navigation/accordion/Accordion.cjs.js +1 -1
  135. package/dist/components/navigation/accordion/Accordion.cjs.js.map +1 -1
  136. package/dist/components/navigation/accordion/Accordion.es.js +5 -5
  137. package/dist/components/navigation/accordion/Accordion.es.js.map +1 -1
  138. package/dist/components/navigation/stepper/Stepper.cjs.js +1 -1
  139. package/dist/components/navigation/stepper/Stepper.cjs.js.map +1 -1
  140. package/dist/components/navigation/stepper/Stepper.es.js +1 -1
  141. package/dist/components/navigation/stepper/Stepper.es.js.map +1 -1
  142. package/dist/components/navigation/tabs/TabOptions.cjs.js +1 -1
  143. package/dist/components/navigation/tabs/TabOptions.cjs.js.map +1 -1
  144. package/dist/components/navigation/tabs/TabOptions.es.js +15 -15
  145. package/dist/components/navigation/tabs/TabOptions.es.js.map +1 -1
  146. package/dist/components/navigation/tabs/TabSwitch.cjs.js +1 -1
  147. package/dist/components/navigation/tabs/TabSwitch.cjs.js.map +1 -1
  148. package/dist/components/navigation/tabs/TabSwitch.es.js +7 -7
  149. package/dist/components/navigation/tabs/TabSwitch.es.js.map +1 -1
  150. package/dist/components/navigation/tabs/Tabs.cjs.js +1 -1
  151. package/dist/components/navigation/tabs/Tabs.cjs.js.map +1 -1
  152. package/dist/components/navigation/tabs/Tabs.es.js +1 -1
  153. package/dist/components/navigation/tabs/Tabs.es.js.map +1 -1
  154. package/dist/components/tooltip/Tooltip.cjs.js +1 -1
  155. package/dist/components/tooltip/Tooltip.cjs.js.map +1 -1
  156. package/dist/components/tooltip/Tooltip.es.js +19 -19
  157. package/dist/components/tooltip/Tooltip.es.js.map +1 -1
  158. package/dist/components/user-avatar/UserAvatar.cjs.js +1 -1
  159. package/dist/components/user-avatar/UserAvatar.cjs.js.map +1 -1
  160. package/dist/components/user-avatar/UserAvatar.d.ts +1 -1
  161. package/dist/components/user-avatar/UserAvatar.es.js +40 -38
  162. package/dist/components/user-avatar/UserAvatar.es.js.map +1 -1
  163. package/dist/components/user-avatar/constants.cjs.js +1 -1
  164. package/dist/components/user-avatar/constants.cjs.js.map +1 -1
  165. package/dist/components/user-avatar/constants.d.ts +1 -0
  166. package/dist/components/user-avatar/constants.es.js +10 -9
  167. package/dist/components/user-avatar/constants.es.js.map +1 -1
  168. package/dist/design-system.css +1 -1
  169. package/package.json +2 -3
@@ -124,7 +124,7 @@ const Ge = "MM/DD/YYYY", z = "MM/DD/YYYY - hh:mm A", Ye = "YYYY-MM-DD", pe = "YY
124
124
  }, Ie) => {
125
125
  const { t: Ce } = Ne(), w = !!(R && E?.color), re = P === "modified" && !D && !w, ne = P === "deleted" && !D && !w, oe = P === "success" && !D && !w, [k, q] = V(!1), [le, g] = V(null), [ae, K] = V(
126
126
  null
127
- ), [H, ie] = V(!1), i = J || (o ? z : Ge), a = $?.id || `date-picker-${tt()}`, y = X(null), I = X(!1);
127
+ ), [H, se] = V(!1), s = J || (o ? z : Ge), a = $?.id || `date-picker-${tt()}`, y = X(null), I = X(!1);
128
128
  Me("paste", (e) => {
129
129
  document.activeElement?.id === a && (e.preventDefault(), navigator.clipboard.readText().then((t) => {
130
130
  const r = F(t, o);
@@ -146,15 +146,15 @@ const Ge = "MM/DD/YYYY", z = "MM/DD/YYYY - hh:mm A", Ye = "YYYY-MM-DD", pe = "YY
146
146
  withTime: o
147
147
  });
148
148
  else if (e) {
149
- const s = l(e);
150
- s.isValid() && (t = s.format(i));
149
+ const i = l(e);
150
+ i.isValid() && (t = i.format(s));
151
151
  }
152
152
  x({
153
153
  key: G,
154
154
  value: t
155
155
  });
156
156
  },
157
- [x, G, _, o, i]
157
+ [x, G, _, o, s]
158
158
  ), Ve = Y(() => {
159
159
  const e = document.getElementsByClassName(
160
160
  "ant-picker-footer"
@@ -167,16 +167,16 @@ const Ge = "MM/DD/YYYY", z = "MM/DD/YYYY - hh:mm A", Ye = "YYYY-MM-DD", pe = "YY
167
167
  if (M(e ? e.format(t) : null), e) {
168
168
  const r = document.getElementById(a);
169
169
  if (r) {
170
- const s = new CustomEvent("pilot-date-change", {
170
+ const i = new CustomEvent("pilot-date-change", {
171
171
  bubbles: !0,
172
172
  detail: {
173
173
  selector: `#${a}`,
174
- value: e.format ? e.format(i) : e,
174
+ value: e.format ? e.format(s) : e,
175
175
  type: "date-change",
176
176
  elementId: a
177
177
  }
178
178
  });
179
- r.dispatchEvent(s);
179
+ r.dispatchEvent(i);
180
180
  }
181
181
  }
182
182
  return;
@@ -187,23 +187,23 @@ const Ge = "MM/DD/YYYY", z = "MM/DD/YYYY - hh:mm A", Ye = "YYYY-MM-DD", pe = "YY
187
187
  M(t);
188
188
  const r = document.getElementById(a);
189
189
  if (r) {
190
- const s = new CustomEvent("pilot-date-change", {
190
+ const i = new CustomEvent("pilot-date-change", {
191
191
  bubbles: !0,
192
192
  detail: {
193
193
  selector: `#${a}`,
194
- value: e.format(i),
194
+ value: e.format(s),
195
195
  type: "date-change",
196
196
  elementId: a
197
197
  }
198
198
  });
199
- r.dispatchEvent(s);
199
+ r.dispatchEvent(i);
200
200
  }
201
201
  }
202
202
  } else
203
203
  M(null);
204
204
  },
205
- [h, M, o, a, i]
206
- ), se = Y(
205
+ [h, M, o, a, s]
206
+ ), ie = Y(
207
207
  (e) => {
208
208
  if (!e) return null;
209
209
  if (!h)
@@ -211,7 +211,7 @@ const Ge = "MM/DD/YYYY", z = "MM/DD/YYYY - hh:mm A", Ye = "YYYY-MM-DD", pe = "YY
211
211
  const t = l(e);
212
212
  if (t.isValid())
213
213
  return t;
214
- const r = l(e, i);
214
+ const r = l(e, s);
215
215
  return r.isValid() ? r : null;
216
216
  } catch {
217
217
  return null;
@@ -227,42 +227,42 @@ const Ge = "MM/DD/YYYY", z = "MM/DD/YYYY - hh:mm A", Ye = "YYYY-MM-DD", pe = "YY
227
227
  return l(t).isValid() ? t : null;
228
228
  }
229
229
  },
230
- [h, i, o]
230
+ [h, s, o]
231
231
  ), T = Y(
232
232
  (e) => {
233
233
  if (e?.isValid() || e === null) {
234
234
  g(e);
235
235
  const t = o ? pe : Ye, r = h ? e?.toISOString() : e ? e.format(t) : "";
236
236
  if (M(r || null), e?.isValid()) {
237
- const s = document.getElementById(a);
238
- if (s) {
237
+ const i = document.getElementById(a);
238
+ if (i) {
239
239
  const U = new CustomEvent("pilot-date-change", {
240
240
  bubbles: !0,
241
241
  detail: {
242
242
  selector: `#${a}`,
243
- value: e.format(i),
243
+ value: e.format(s),
244
244
  type: "date-change",
245
245
  elementId: a
246
246
  }
247
247
  });
248
- s.dispatchEvent(U);
248
+ i.dispatchEvent(U);
249
249
  }
250
250
  }
251
251
  }
252
252
  },
253
- [h, i, M, a, o]
253
+ [h, s, M, a, o]
254
254
  );
255
255
  A(() => {
256
- g(se(m));
257
- }, [m, se]), A(() => {
256
+ g(ie(m));
257
+ }, [m, ie]), A(() => {
258
258
  ae && K(null);
259
259
  }, [ae]), A(() => {
260
260
  const e = document.getElementById(a);
261
261
  if (!e) return;
262
262
  const t = (r) => {
263
- const { value: s, type: U } = r.detail;
264
- if (U === "date-playback" && s) {
265
- const C = F(s, o);
263
+ const { value: i, type: U } = r.detail;
264
+ if (U === "date-playback" && i) {
265
+ const C = F(i, o);
266
266
  C && C.isValid() && (g(C), S(C), setTimeout(() => {
267
267
  const Z = e.querySelector("input");
268
268
  if (Z && (Z.focus(), setTimeout(() => {
@@ -292,7 +292,7 @@ const Ge = "MM/DD/YYYY", z = "MM/DD/YYYY - hh:mm A", Ye = "YYYY-MM-DD", pe = "YY
292
292
  t
293
293
  );
294
294
  };
295
- }, [a, i, S, o]);
295
+ }, [a, s, S, o]);
296
296
  const ce = Y((e) => {
297
297
  if (e.key === De.ENTER && !H) {
298
298
  e.preventDefault(), e.stopPropagation();
@@ -304,10 +304,10 @@ const Ge = "MM/DD/YYYY", z = "MM/DD/YYYY - hh:mm A", Ye = "YYYY-MM-DD", pe = "YY
304
304
  }
305
305
  }, [H]), me = Y((e) => {
306
306
  if (e && I.current) {
307
- I.current = !1, ie(!1);
307
+ I.current = !1, se(!1);
308
308
  return;
309
309
  }
310
- ie(e), e || (I.current = !0, requestAnimationFrame(() => {
310
+ se(e), e || (I.current = !0, requestAnimationFrame(() => {
311
311
  y.current?.focus(), requestAnimationFrame(() => {
312
312
  I.current = !1;
313
313
  });
@@ -319,8 +319,8 @@ const Ge = "MM/DD/YYYY", z = "MM/DD/YYYY - hh:mm A", Ye = "YYYY-MM-DD", pe = "YY
319
319
  ...$,
320
320
  showTime: o,
321
321
  open: H,
322
- format: i,
323
- placeholder: i === z ? "MM/DD/YYYY hh:mm" : i,
322
+ format: s,
323
+ placeholder: s === z ? "MM/DD/YYYY hh:mm" : s,
324
324
  value: le,
325
325
  needConfirm: !1,
326
326
  onChange: (e) => {
@@ -373,7 +373,7 @@ const Ge = "MM/DD/YYYY", z = "MM/DD/YYYY - hh:mm A", Ye = "YYYY-MM-DD", pe = "YY
373
373
  ),
374
374
  ye && !fe(L) && /* @__PURE__ */ n(Ke, {}),
375
375
  /* @__PURE__ */ n(qe, { labels: Ee }),
376
- Q && /* @__PURE__ */ n(de, { placement: "top", title: Q, children: /* @__PURE__ */ n("div", { className: "cursor-pointer", children: /* @__PURE__ */ n(Ue, {}) }) }),
376
+ Q && /* @__PURE__ */ n(de, { placement: "top", title: Q, children: /* @__PURE__ */ n("div", { className: "cursor-pointer", children: /* @__PURE__ */ n(Ue, { className: "w-icon-sm h-icon-sm" }) }) }),
377
377
  ee
378
378
  ] }),
379
379
  /* @__PURE__ */ f("div", { className: "flex items-center gap-1 justify-self-end", children: [
@@ -438,10 +438,10 @@ const Ge = "MM/DD/YYYY", z = "MM/DD/YYYY - hh:mm A", Ye = "YYYY-MM-DD", pe = "YY
438
438
  ...$,
439
439
  showTime: o ? { use12Hours: !0 } : !1,
440
440
  open: H,
441
- format: i,
442
- placeholder: i === z ? "MM/DD/YYYY - HH:MM" : i,
441
+ format: s,
442
+ placeholder: s === z ? "MM/DD/YYYY - HH:MM" : s,
443
443
  className: B(
444
- "w-full h-8 text-inter font-medium dark:text-black-300",
444
+ "w-full h-8 text-sm font-medium dark:text-black-300",
445
445
  D && "border-red-400",
446
446
  R && E?.color && `bg-${E.color}-50 border-${E.color}-300`,
447
447
  ne && "!border-[var(--Error-200,#FECACA)] !bg-[var(--Error-50,#FEF2F2)] !text-[#475467]",
@@ -1 +1 @@
1
- {"version":3,"file":"DateTimeField.es.js","sources":["../../../../src/components/forms/date-time-field/DateTimeField.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Tooltip as AntTooltip } from \"antd\";\nimport { DatePicker, type DatePickerProps } from \"antd\";\nimport cn from \"classnames\";\nimport { useTranslation } from 'react-i18next';\nimport dayjs, { Dayjs } from \"dayjs\";\nimport customParseFormat from \"dayjs/plugin/customParseFormat\";\nimport localeData from \"dayjs/plugin/localeData\";\nimport utc from \"dayjs/plugin/utc\";\nimport weekday from \"dayjs/plugin/weekday\";\nimport { forwardRef, useCallback, useEffect, useRef, useState } from \"react\";\nimport { Typography } from \"../../data-display/typography/Typography\";\nimport { Label } from \"../../data-display/label/Label\";\nimport type { LabelType } from \"../../data-display/label/Label\";\nimport { AIExtractedIndicator } from \"../../icons/AIExtractedIndicator\";\nimport { AIStarIcon } from \"../../icons/AIStarIcon\";\nimport { HelpIcon } from \"../../icons/HelpIcon\";\nimport Tooltip from \"../../tooltip/Tooltip\";\nimport { BoltOutlined, NoteAddOutlined } from \"@mui/icons-material\";\nimport { InputLabel } from \"../shared/InputLabel\";\nimport {\n getConfidenceScoreBadgeClass,\n getConfidenceScoreBadgeColor,\n getConfidenceScoreBadgeFill,\n getConfidenceScoreBadgeTextColor,\n shouldShowConfidenceScore,\n} from \"../../../utils/confidenceScoreUtils\";\n\n/**\n * Confidence score type\n */\nexport type ConfidenceScoreType = \"low\" | \"medium\" | \"high\";\n\n/** Visual emphasis for the date picker surface (background + border) */\nexport type DateTimeFieldEmphasis = \"default\" | \"modified\" | \"deleted\" | \"success\";\n\nexport type SourceMetaBBox = {\n b: number;\n l: number;\n r: number;\n t: number;\n};\n\nexport type SourceMetaItem = {\n bbox: SourceMetaBBox;\n confidence_score?: number;\n is_primary?: boolean;\n match_score?: number;\n match_type?: string;\n page_height: number;\n page_width: number;\n source_page: number;\n source_text?: string;\n};\n\ndayjs.extend(utc);\ndayjs.extend(customParseFormat);\ndayjs.extend(weekday);\ndayjs.extend(localeData);\n\n// Date format constants\nexport const UNIVERSAL_DATE_FORMAT = \"MM/DD/YYYY\";\nexport const UNIVERSAL_DATETIME_FORMAT = \"MM/DD/YYYY - hh:mm A\";\n\n// ISO-like format for internal value storage (parseable by new Date() and dayjs)\nconst ISO_DATE_FORMAT = \"YYYY-MM-DD\";\nconst ISO_DATETIME_FORMAT = \"YYYY-MM-DDTHH:mm:ss\";\n\n// Keyboard keys constant\nconst KEYBOARD_KEYS = {\n ENTER: \"Enter\",\n} as const;\n\nconst FLEXIBLE_DATE_FORMATS = [\n \"MM/DD/YYYY\",\n \"M/DD/YYYY\",\n \"MM/D/YYYY\",\n \"M/D/YYYY\",\n\n \"MM/DD/YY\",\n \"M/DD/YY\",\n \"MM/D/YY\",\n \"M/D/YY\",\n\n \"YYYY-MM-DD\",\n \"YYYY-MM-DDTHH:mm:ss.SSSZ\",\n \"YYYY-MM-DDTHH:mm:ssZ\",\n];\n\nconst FLEXIBLE_DATETIME_FORMATS = [\n \"MM/DD/YYYY - hh:mm A\",\n \"M/DD/YYYY - hh:mm A\",\n \"MM/D/YYYY - hh:mm A\",\n \"M/D/YYYY - hh:mm A\",\n \"MM/DD/YYYY hh:mm A\",\n \"M/DD/YYYY hh:mm A\",\n \"MM/D/YYYY hh:mm A\",\n \"M/D/YYYY hh:mm A\",\n \"MM/DD/YYYY HH:mm\",\n \"M/DD/YYYY HH:mm\",\n \"MM/D/YYYY HH:mm\",\n \"M/D/YYYY HH:mm\",\n\n \"MM/DD/YY - hh:mm A\",\n \"M/DD/YY - hh:mm A\",\n \"MM/D/YY - hh:mm A\",\n \"M/D/YY - hh:mm A\",\n \"MM/DD/YY hh:mm A\",\n \"M/DD/YY hh:mm A\",\n \"MM/D/YY hh:mm A\",\n \"M/D/YY hh:mm A\",\n \"MM/DD/YY HH:mm\",\n \"M/DD/YY HH:mm\",\n \"MM/D/YY HH:mm\",\n \"M/D/YY HH:mm\",\n\n ...FLEXIBLE_DATE_FORMATS,\n\n \"YYYY-MM-DDTHH:mm:ss.SSSZ\",\n \"YYYY-MM-DDTHH:mm:ssZ\",\n];\n\n/**\n * Generate a short UUID\n */\nconst generateShortUUID = (): string => {\n return Math.random().toString(36).substring(2, 9);\n};\n\n/**\n * Try to parse a date string using multiple flexible formats\n * Handles single-digit months/days and 2-digit years\n */\nconst tryParseFlexibleDate = (\n dateStr: string,\n withTime: boolean = false\n): Dayjs | null => {\n if (!dateStr) return null;\n\n const formats = withTime ? FLEXIBLE_DATETIME_FORMATS : FLEXIBLE_DATE_FORMATS;\n\n // First try with explicit formats\n for (const format of formats) {\n const parsed = dayjs(dateStr, format, true); // strict mode\n if (parsed.isValid()) {\n return parsed;\n }\n }\n\n // Fallback to dayjs default parsing (handles ISO strings, etc.)\n const defaultParsed = dayjs(dateStr);\n if (defaultParsed.isValid()) {\n return defaultParsed;\n }\n\n return null;\n};\n\n/**\n * Risk details interface\n */\nexport interface RiskDetails {\n color?: string;\n description?: string;\n hexBgColor?: string;\n hexBorderColor?: string;\n [key: string]: any;\n}\n\n/**\n * Risk details card component props - generic to allow consumer-specific risk types\n */\nexport interface RiskDetailsCardProps<T = any> {\n riskDetails: T;\n maxWidth?: string;\n showAllRisksSuggestions?: boolean;\n}\n\n/**\n * Props for the DateTimeField component\n */\nexport interface DateTimeFieldProps\n extends Omit<DatePickerProps, \"onChange\" | \"value\"> {\n /** The label text to display above the date picker */\n label?: string;\n /** Current value of the date picker (ISO string or formatted date string) */\n value?: string;\n /** Additional CSS classes for the wrapper */\n className?: string;\n /** Whether the field is required */\n required?: boolean;\n /** Whether the required indicator shows as conditional (yellow instead of red) */\n isRequiredConditional?: boolean;\n /** Error message to display */\n errorMessage?: string;\n /** Whether the date picker is disabled */\n disabled?: boolean;\n /** Callback function called when date changes */\n handleOnChange: (value: string | null) => void;\n /** Whether to use simple mode (minimal styling) */\n simpleMode?: boolean;\n /** Whether to show time picker */\n showTime?: boolean;\n /** Custom date format */\n dateFormat?: string;\n /** Tooltip text for the help icon */\n tooltip?: string;\n /** Tags to display with the label */\n tags?: (string | LabelType)[];\n /** Whether to preserve original case in the label */\n originalCase?: boolean;\n /** Whether the value was AI extracted */\n isAiExtracted?: boolean;\n /** Confidence percentage shown as a badge */\n confidenceScore?: number;\n /** Confidence classification for badge styling */\n confidenceType?: ConfidenceScoreType;\n /** Optional tooltip content for confidence badge */\n confidenceTooltip?: React.ReactNode;\n /** Source meta for confidence score */\n sourceMeta?: SourceMetaItem[];\n /** Handler fired when confidence score badge is clicked */\n onConfidenceScoreClick?: (sourceMeta: SourceMetaItem[]) => void;\n /** Whether this is a GTN (Global Term Name) field */\n isGTN?: boolean;\n /** GTN name for the field */\n gtnName?: any;\n /** Whether to allow timezone conversion */\n allowTimezoneConversion?: boolean;\n /** Whether to allow copying */\n allowCopy?: boolean;\n /** Unique identifier for the date picker */\n id: string;\n /** Date picker type */\n picker?: \"date\" | \"week\" | \"month\" | \"quarter\" | \"year\";\n /** Whether popup should render inside parent element */\n shouldPopOnParent?: boolean;\n /** Custom inline styles for the input */\n inputStyle?: React.CSSProperties;\n /** Additional CSS classes for the label */\n labelClassName?: string;\n /** Optional extra content in the label row (e.g. actions, badges) */\n labelExtra?: React.ReactNode;\n /** Input surface style: `'modified'` — Warning-50/Warning-200; `'deleted'` — Error-50/Error-200; `'success'` — Success-50/Success-200. */\n inputEmphasis?: DateTimeFieldEmphasis;\n /** Whether this is a live field */\n isLiveField?: boolean;\n /** Risk details data */\n riskDetails?: RiskDetails;\n /** Whether risk analysis is open */\n isRiskAnalysisOpen?: boolean;\n /** Custom risk details card component */\n RiskDetailsCard?: React.ComponentType<RiskDetailsCardProps<any>>;\n /** Handler for adding GTN to document */\n onAddGTNToDocument?: (keyValuePair: { key: string; value: string }) => void;\n /** Custom format date function for GTN values */\n formatDateForGTN?: (\n value: string,\n options: { skipTimezone: boolean; withTime: boolean }\n ) => string;\n}\n\n/**\n * Hook to add event listeners\n */\nconst useEventListener = <K extends keyof DocumentEventMap>(\n eventName: K,\n handler: (event: DocumentEventMap[K]) => void\n) => {\n const savedHandler = useRef(handler);\n\n useEffect(() => {\n savedHandler.current = handler;\n }, [handler]);\n\n useEffect(() => {\n const eventListener = (event: DocumentEventMap[K]) =>\n savedHandler.current(event);\n document.addEventListener(eventName, eventListener);\n return () => {\n document.removeEventListener(eventName, eventListener);\n };\n }, [eventName]);\n};\n\n/**\n * DateTimeField component - A feature-rich date/time picker with support for\n * GTN integration, risk analysis, AI extraction indicators, and more.\n *\n * @example\n * ```tsx\n * // Basic usage\n * <DateTimeField\n * id=\"start-date\"\n * label=\"Start Date\"\n * value={startDate}\n * handleOnChange={(date) => setStartDate(date)}\n * />\n *\n * // With time picker\n * <DateTimeField\n * id=\"event-datetime\"\n * label=\"Event Date & Time\"\n * value={eventDateTime}\n * handleOnChange={(date) => setEventDateTime(date)}\n * showTime={true}\n * />\n *\n * // With GTN integration\n * <DateTimeField\n * id=\"contract-date\"\n * label=\"Contract Date\"\n * value={contractDate}\n * handleOnChange={(date) => setContractDate(date)}\n * isGTN={true}\n * gtnName=\"contract_date\"\n * onAddGTNToDocument={(kv) => dispatch(setVariableValueToEditor(kv))}\n * />\n * ```\n */\nexport const DateTimeField = forwardRef<HTMLDivElement, DateTimeFieldProps>(\n (\n {\n label,\n value,\n required,\n isRequiredConditional = false,\n disabled,\n className = undefined,\n errorMessage,\n handleOnChange,\n showTime = true,\n tags,\n needConfirm = false,\n simpleMode,\n originalCase = false,\n dateFormat = undefined,\n tooltip,\n isAiExtracted = false,\n confidenceScore,\n confidenceType = \"high\",\n confidenceTooltip,\n sourceMeta = [],\n onConfidenceScoreClick,\n isGTN = false,\n gtnName = null,\n shouldPopOnParent = false,\n allowTimezoneConversion = true,\n inputStyle,\n labelClassName,\n isLiveField = false,\n labelExtra,\n inputEmphasis = \"default\",\n riskDetails,\n isRiskAnalysisOpen = false,\n RiskDetailsCard,\n onAddGTNToDocument,\n formatDateForGTN,\n ...props\n },\n ref\n ) => {\n const { t } = useTranslation();\n\n /*** Emphasis skins ***/\n const showRiskSkin = Boolean(isRiskAnalysisOpen && riskDetails?.color);\n const emphasisModifiedSkin =\n inputEmphasis === \"modified\" && !errorMessage && !showRiskSkin;\n const emphasisDeletedSkin =\n inputEmphasis === \"deleted\" && !errorMessage && !showRiskSkin;\n const emphasisSuccessSkin =\n inputEmphasis === \"success\" && !errorMessage && !showRiskSkin;\n\n /*** States ***/\n const [isHovered, setIsHovered] = useState(false);\n const [tempDate, setTempDate] = useState<Dayjs | null>(null);\n const [lastUpdatedValue, setLastUpdatedValue] = useState<string | null>(\n null\n );\n const [isPickerOpen, setIsPickerOpen] = useState(false);\n\n /*** Constants ***/\n const finalDateFormat = dateFormat\n ? dateFormat\n : showTime\n ? UNIVERSAL_DATETIME_FORMAT\n : UNIVERSAL_DATE_FORMAT;\n const ID = props?.id || `date-picker-${generateShortUUID()}`;\n\n /*** Refs ***/\n const datePickerRef = useRef<any>(null);\n const suppressNextOpenRef = useRef(false);\n\n /*** Event Listeners ***/\n useEventListener(\"paste\", (e: ClipboardEvent) => {\n if (document.activeElement?.id === ID) {\n e.preventDefault();\n navigator.clipboard.readText().then((text) => {\n const date = tryParseFlexibleDate(text, showTime);\n if (date) {\n setDateIfValid(date);\n }\n });\n }\n });\n\n useEventListener(\"keydown\", (e: KeyboardEvent) => {\n if (\n e.key === KEYBOARD_KEYS.ENTER &&\n document.activeElement instanceof HTMLInputElement &&\n document.activeElement.id === ID\n ) {\n const date = tryParseFlexibleDate(document?.activeElement?.value, showTime);\n if (date) {\n setDateIfValid(date);\n }\n }\n });\n\n /*** Handlers ***/\n const handleAddGTNToDocument = useCallback(\n (_value: string | undefined) => {\n if (!onAddGTNToDocument) return;\n\n let formattedValue = _value || \"\";\n if (formatDateForGTN && _value) {\n formattedValue = formatDateForGTN(_value, {\n skipTimezone: true,\n withTime: showTime,\n });\n } else if (_value) {\n // Default formatting if no custom formatter provided\n const parsed = dayjs(_value);\n if (parsed.isValid()) {\n formattedValue = parsed.format(finalDateFormat);\n }\n }\n\n const keyValuePair = {\n key: gtnName,\n value: formattedValue,\n };\n\n onAddGTNToDocument(keyValuePair);\n },\n [onAddGTNToDocument, gtnName, formatDateForGTN, showTime, finalDateFormat]\n );\n\n const handleHidePickerFooter = useCallback(() => {\n const pickerFooter = document.getElementsByClassName(\n \"ant-picker-footer\"\n )[0] as HTMLElement;\n if (pickerFooter) {\n pickerFooter.style.display = \"none\";\n }\n }, []);\n\n const handleDateChange = useCallback(\n (date: Dayjs | null) => {\n if (!allowTimezoneConversion) {\n // Use ISO-like format for value storage (parseable by new Date() and dayjs)\n const isoFormat = showTime ? ISO_DATETIME_FORMAT : ISO_DATE_FORMAT;\n handleOnChange(date ? date.format(isoFormat) : null);\n // Dispatch custom pilot event for recording\n if (date) {\n const element = document.getElementById(ID);\n if (element) {\n const pilotEvent = new CustomEvent(\"pilot-date-change\", {\n bubbles: true,\n detail: {\n selector: `#${ID}`,\n value: date.format ? date.format(finalDateFormat) : date,\n type: \"date-change\",\n elementId: ID,\n },\n });\n element.dispatchEvent(pilotEvent);\n }\n }\n return;\n }\n if (date) {\n let utcDate;\n if (showTime) {\n utcDate = dayjs(date).utc().toISOString();\n } else {\n utcDate = dayjs(date)\n .utc()\n .add(dayjs(date).utcOffset(), \"minute\")\n .startOf(\"day\")\n .toISOString();\n }\n if (utcDate) {\n handleOnChange(utcDate);\n // Dispatch custom pilot event for recording\n const element = document.getElementById(ID);\n if (element) {\n const pilotEvent = new CustomEvent(\"pilot-date-change\", {\n bubbles: true,\n detail: {\n selector: `#${ID}`,\n value: date.format(finalDateFormat),\n type: \"date-change\",\n elementId: ID,\n },\n });\n element.dispatchEvent(pilotEvent);\n }\n }\n } else {\n handleOnChange(null);\n }\n },\n [allowTimezoneConversion, handleOnChange, showTime, ID, finalDateFormat]\n );\n\n const parseDate = useCallback(\n (str: any): Dayjs | null => {\n if (!str) return null;\n if (!allowTimezoneConversion) {\n try {\n // First try default dayjs parsing (handles ISO formats like \"YYYY-MM-DDTHH:mm:ss\")\n const defaultParsed = dayjs(str);\n if (defaultParsed.isValid()) {\n return defaultParsed;\n }\n // Then try parsing with display format for backward compatibility\n const parsed = dayjs(str, finalDateFormat);\n return parsed.isValid() ? parsed : null;\n } catch {\n return null;\n }\n }\n if (showTime) {\n // For time values, parse directly to preserve the local time\n const parsed = dayjs(str);\n return dayjs(parsed).isValid() ? parsed : null;\n } else {\n if (str?.toString()?.includes(\"Z\")) {\n const parsed = dayjs.utc(str);\n return dayjs(parsed).isValid() ? parsed : null;\n } else {\n const parsed = dayjs(str);\n return dayjs(parsed).isValid() ? parsed : null;\n }\n }\n },\n [allowTimezoneConversion, finalDateFormat, showTime]\n );\n\n const setDateIfValid = useCallback(\n (date: Dayjs | null) => {\n if (date?.isValid() || date === null) {\n setTempDate(date);\n // Use ISO-like format when not converting timezone (parseable by new Date() and dayjs)\n const isoFormat = showTime ? ISO_DATETIME_FORMAT : ISO_DATE_FORMAT;\n const formattedValue = allowTimezoneConversion\n ? date?.toISOString()\n : date\n ? date.format(isoFormat)\n : \"\";\n handleOnChange(formattedValue || null);\n\n // Dispatch custom pilot event for recording\n if (date?.isValid()) {\n const element = document.getElementById(ID);\n if (element) {\n const pilotEvent = new CustomEvent(\"pilot-date-change\", {\n bubbles: true,\n detail: {\n selector: `#${ID}`,\n value: date.format(finalDateFormat),\n type: \"date-change\",\n elementId: ID,\n },\n });\n element.dispatchEvent(pilotEvent);\n }\n }\n }\n },\n [allowTimezoneConversion, finalDateFormat, handleOnChange, ID, showTime]\n );\n\n /*** Effects ***/\n useEffect(() => {\n setTempDate(parseDate(value));\n }, [value, parseDate]);\n\n useEffect(() => {\n if (lastUpdatedValue) {\n setLastUpdatedValue(null);\n }\n }, [lastUpdatedValue]);\n\n // Listen for pilot playback events\n useEffect(() => {\n const element = document.getElementById(ID);\n if (!element) return;\n\n const handlePilotPlayback = (e: CustomEvent) => {\n const { value: playbackValue, type } = e.detail;\n if (type === \"date-playback\" && playbackValue) {\n const parsedDate = tryParseFlexibleDate(playbackValue, showTime);\n if (parsedDate && parsedDate.isValid()) {\n setTempDate(parsedDate);\n handleDateChange(parsedDate);\n\n setTimeout(() => {\n const pickerInput = element.querySelector(\"input\");\n if (pickerInput) {\n (pickerInput as HTMLInputElement).focus();\n setTimeout(() => {\n (pickerInput as HTMLInputElement).blur();\n }, 10);\n }\n\n if (datePickerRef.current) {\n try {\n const pickerInstance = datePickerRef.current as any;\n if (typeof pickerInstance.blur === \"function\") {\n pickerInstance.blur();\n }\n } catch {\n // Ignore errors\n }\n }\n\n setTimeout(() => {\n const openDropdowns = document.querySelectorAll(\n \".ant-picker-dropdown:not(.ant-picker-dropdown-hidden)\"\n );\n openDropdowns.forEach((dropdown) => {\n if (dropdown instanceof HTMLElement) {\n dropdown.style.display = \"none\";\n dropdown.classList.add(\"ant-picker-dropdown-hidden\");\n }\n });\n }, 50);\n }, 50);\n }\n }\n };\n\n element.addEventListener(\n \"pilot-date-playback\",\n handlePilotPlayback as EventListener\n );\n\n return () => {\n element.removeEventListener(\n \"pilot-date-playback\",\n handlePilotPlayback as EventListener\n );\n };\n }, [ID, finalDateFormat, handleDateChange, showTime]);\n\n const handleKeyDownCapture = useCallback((e: React.KeyboardEvent) => {\n if (e.key === KEYBOARD_KEYS.ENTER && !isPickerOpen) {\n e.preventDefault();\n e.stopPropagation();\n\n const form = (e.target as HTMLElement).closest('form');\n if (form) {\n const submitBtn = form.querySelector<HTMLButtonElement>('button[type=\"submit\"]');\n if (submitBtn) {\n submitBtn.click();\n } else {\n form.requestSubmit();\n }\n }\n }\n }, [isPickerOpen]);\n\n const handleOpenChange = useCallback((nextOpen: boolean) => {\n if (nextOpen && suppressNextOpenRef.current) {\n suppressNextOpenRef.current = false;\n setIsPickerOpen(false);\n return;\n }\n\n setIsPickerOpen(nextOpen);\n if (!nextOpen) {\n suppressNextOpenRef.current = true;\n requestAnimationFrame(() => {\n datePickerRef.current?.focus();\n requestAnimationFrame(() => {\n suppressNextOpenRef.current = false;\n });\n });\n }\n }, []);\n\n /*** Render ***/\n if (simpleMode) {\n return (\n <div onKeyDownCapture={handleKeyDownCapture}>\n <DatePicker\n {...props}\n showTime={showTime}\n open={isPickerOpen}\n format={finalDateFormat}\n placeholder={\n finalDateFormat === UNIVERSAL_DATETIME_FORMAT\n ? \"MM/DD/YYYY hh:mm\"\n : finalDateFormat\n }\n value={tempDate}\n needConfirm={false}\n onChange={(date) => {\n setTempDate(date);\n handleDateChange(date);\n setLastUpdatedValue(date?.toISOString() || null);\n }}\n className={className}\n showNow={false}\n onFocus={handleHidePickerFooter}\n onOpenChange={handleOpenChange}\n onBlur={(e) => {\n const inputValue = (e.target as HTMLInputElement).value;\n if (inputValue) {\n const parsedDate = tryParseFlexibleDate(inputValue, showTime);\n if (parsedDate) {\n setDateIfValid(parsedDate);\n }\n }\n }}\n ref={datePickerRef}\n disabled={disabled}\n id={ID}\n />\n </div>\n );\n }\n\n return (\n <div\n ref={ref}\n className={cn(\n \"flex gap-0.5 relative\",\n isHovered && isGTN\n ? \"border rounded-lg border-primary-100 bg-primary-50 p-1\"\n : \"\"\n )}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n >\n {isGTN && !isHovered ? (\n <div className=\"w-1 h-1 bg-primary-600 rounded-full animate-blink mt-1.5\" />\n ) : null}\n <div className={`w-full flex flex-col font-inter ${className || \"\"}`} onKeyDownCapture={handleKeyDownCapture}>\n {(label || labelExtra) ? (\n <label\n className={`mb-1 text-xs font-medium text-gray-600 inline-flex items-center gap-1 ${!originalCase ? \"capitalize\" : \"\"} ${\n labelClassName || \"\"\n }`}\n >\n <div className=\"grid w-full grid-cols-[minmax(0,1fr)_auto] items-start gap-x-1\">\n <div className=\"inline-flex min-w-0 items-center gap-1 flex-wrap\">\n {(label || required || isRequiredConditional) && (\n <InputLabel label={label || \"\"} required={required || false} isRequiredConditional={isRequiredConditional || false} />\n )}\n {isLiveField && (\n <BoltOutlined\n sx={{\n fontSize: 16,\n color: \"var(--color-primary-600)\",\n rotate: \"15deg\",\n }}\n />\n )}\n {isAiExtracted && !shouldShowConfidenceScore(confidenceScore) && <AIExtractedIndicator />}\n <Label labels={tags} />\n {tooltip && (\n <Tooltip placement=\"top\" title={tooltip}>\n <div className=\"cursor-pointer\">\n <HelpIcon />\n </div>\n </Tooltip>\n )}\n {labelExtra}\n </div>\n\n <div className=\"flex items-center gap-1 justify-self-end\">\n {(shouldShowConfidenceScore(confidenceScore) && confidenceType) ? (\n <Tooltip\n placement=\"top-end\"\n title={confidenceTooltip ?? \"\"}\n hideTooltip={confidenceTooltip === undefined || confidenceTooltip === null}\n className=\"cursor-pointer\"\n >\n <div\n className={cn(\n \"inline-flex min-w-[50px] items-center gap-1 rounded-md px-1 py-0.5\",\n getConfidenceScoreBadgeClass(confidenceType)\n )}\n onClick={() => onConfidenceScoreClick?.(sourceMeta)}\n >\n <AIStarIcon\n size={12}\n fill={getConfidenceScoreBadgeColor(confidenceType)}\n fillSecondary={getConfidenceScoreBadgeFill(confidenceType)}\n />\n <span className={cn(\"text-xs font-medium leading-4\", getConfidenceScoreBadgeTextColor(confidenceType))}>\n {confidenceScore}%\n </span>\n </div>\n </Tooltip>\n ) : null}\n {isGTN && isHovered && onAddGTNToDocument ? (\n <button\n id=\"btn-date-field-add-to-document\"\n className=\"cursor-pointer\"\n onClick={() => handleAddGTNToDocument(value)}\n type=\"button\"\n >\n <AntTooltip placement=\"top\" title={t(\"Add to document\")}>\n <NoteAddOutlined\n className=\"text-primary-600\"\n sx={{\n fontSize: 16,\n }}\n />\n </AntTooltip>\n </button>\n ) : null}\n </div>\n </div>\n </label>\n ) : null}\n <DatePicker\n {...props}\n showTime={showTime ? { use12Hours: true } : false}\n open={isPickerOpen}\n format={finalDateFormat}\n placeholder={\n finalDateFormat === UNIVERSAL_DATETIME_FORMAT\n ? \"MM/DD/YYYY - HH:MM\"\n : finalDateFormat\n }\n className={cn(\n \"w-full h-8 text-inter font-medium dark:text-black-300\",\n errorMessage && \"border-red-400\",\n isRiskAnalysisOpen && riskDetails?.color && `bg-${riskDetails.color}-50 border-${riskDetails.color}-300`,\n emphasisDeletedSkin && \"!border-[var(--Error-200,#FECACA)] !bg-[var(--Error-50,#FEF2F2)] !text-[#475467]\",\n emphasisModifiedSkin && \"!border-[var(--Warning-200,#FEDF89)] !bg-[var(--Warning-50,#FFFAEB)]\",\n emphasisSuccessSkin && \"!border-[var(--Success-200,#BBF7D0)] !bg-[var(--Success-50,#F0FDF4)] !text-[#101828]\",\n )}\n styles={{\n root: {\n ...inputStyle,\n borderRadius: \"7px\",\n ...(emphasisDeletedSkin && {\n borderColor: \"var(--Error-200, #FECACA)\",\n backgroundColor: \"var(--Error-50, #FEF2F2)\",\n color: \"#475467\",\n }),\n ...(emphasisModifiedSkin && {\n borderColor: \"var(--Warning-200, #FEDF89)\",\n backgroundColor: \"var(--Warning-50, #FFFAEB)\",\n }),\n ...(emphasisSuccessSkin && {\n borderColor: \"var(--Success-200, #BBF7D0)\",\n backgroundColor: \"var(--Success-50, #F0FDF4)\",\n color: \"#101828\",\n }),\n },\n }}\n showNow={false}\n value={tempDate}\n onChange={(date) => {\n setTempDate(date);\n handleDateChange(date);\n setLastUpdatedValue(date?.toISOString() || null);\n }}\n onBlur={(e) => {\n const inputValue = (e.target as HTMLInputElement).value;\n if (inputValue) {\n const parsedDate = tryParseFlexibleDate(inputValue, showTime);\n if (parsedDate) {\n setTempDate(parsedDate);\n handleDateChange(parsedDate);\n }\n }\n }}\n needConfirm={needConfirm}\n ref={datePickerRef}\n disabled={disabled}\n inputReadOnly={false}\n onOpenChange={handleOpenChange}\n getPopupContainer={\n shouldPopOnParent\n ? (trigger) => trigger.parentElement as HTMLElement\n : () => document.body\n }\n id={ID}\n autoComplete=\"off\"\n />\n {errorMessage && (\n <Typography\n className=\"text-error-500 mt-1\"\n appearance=\"custom\"\n size=\"extra-small\"\n variant=\"medium\"\n >\n {errorMessage}\n </Typography>\n )}\n </div>\n\n {isHovered && riskDetails && isRiskAnalysisOpen && RiskDetailsCard && (\n <div\n role=\"tooltip\"\n tabIndex={0}\n className=\"absolute left-0 right-0 top-[95%] mt-1 z-50 bg-white dark:bg-black-600 rounded-xl\"\n onClick={(e) => e.stopPropagation()}\n onMouseDown={(e) => e.preventDefault()}\n onKeyDown={(e) => {\n if (e.key === \"Escape\") {\n setIsHovered(false);\n }\n }}\n >\n <RiskDetailsCard riskDetails={riskDetails} />\n </div>\n )}\n </div>\n );\n }\n);\n\nDateTimeField.displayName = \"DateTimeField\";\n\n"],"names":["dayjs","utc","customParseFormat","weekday","localeData","UNIVERSAL_DATE_FORMAT","UNIVERSAL_DATETIME_FORMAT","ISO_DATE_FORMAT","ISO_DATETIME_FORMAT","KEYBOARD_KEYS","FLEXIBLE_DATE_FORMATS","FLEXIBLE_DATETIME_FORMATS","generateShortUUID","tryParseFlexibleDate","dateStr","withTime","formats","format","parsed","defaultParsed","useEventListener","eventName","handler","savedHandler","useRef","useEffect","eventListener","event","DateTimeField","forwardRef","label","value","required","isRequiredConditional","disabled","className","errorMessage","handleOnChange","showTime","tags","needConfirm","simpleMode","originalCase","dateFormat","tooltip","isAiExtracted","confidenceScore","confidenceType","confidenceTooltip","sourceMeta","onConfidenceScoreClick","isGTN","gtnName","shouldPopOnParent","allowTimezoneConversion","inputStyle","labelClassName","isLiveField","labelExtra","inputEmphasis","riskDetails","isRiskAnalysisOpen","RiskDetailsCard","onAddGTNToDocument","formatDateForGTN","props","ref","t","useTranslation","showRiskSkin","emphasisModifiedSkin","emphasisDeletedSkin","emphasisSuccessSkin","isHovered","setIsHovered","useState","tempDate","setTempDate","lastUpdatedValue","setLastUpdatedValue","isPickerOpen","setIsPickerOpen","finalDateFormat","ID","datePickerRef","suppressNextOpenRef","text","date","setDateIfValid","handleAddGTNToDocument","useCallback","_value","formattedValue","handleHidePickerFooter","pickerFooter","handleDateChange","isoFormat","element","pilotEvent","utcDate","parseDate","str","handlePilotPlayback","e","playbackValue","type","parsedDate","pickerInput","pickerInstance","dropdown","handleKeyDownCapture","form","submitBtn","handleOpenChange","nextOpen","jsx","DatePicker","inputValue","jsxs","cn","InputLabel","BoltOutlined","shouldShowConfidenceScore","AIExtractedIndicator","Label","Tooltip","HelpIcon","getConfidenceScoreBadgeClass","AIStarIcon","getConfidenceScoreBadgeColor","getConfidenceScoreBadgeFill","getConfidenceScoreBadgeTextColor","AntTooltip","NoteAddOutlined","trigger","Typography"],"mappings":"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"}
1
+ {"version":3,"file":"DateTimeField.es.js","sources":["../../../../src/components/forms/date-time-field/DateTimeField.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Tooltip as AntTooltip } from \"antd\";\nimport { DatePicker, type DatePickerProps } from \"antd\";\nimport cn from \"classnames\";\nimport { useTranslation } from 'react-i18next';\nimport dayjs, { Dayjs } from \"dayjs\";\nimport customParseFormat from \"dayjs/plugin/customParseFormat\";\nimport localeData from \"dayjs/plugin/localeData\";\nimport utc from \"dayjs/plugin/utc\";\nimport weekday from \"dayjs/plugin/weekday\";\nimport { forwardRef, useCallback, useEffect, useRef, useState } from \"react\";\nimport { Typography } from \"../../data-display/typography/Typography\";\nimport { Label } from \"../../data-display/label/Label\";\nimport type { LabelType } from \"../../data-display/label/Label\";\nimport { AIExtractedIndicator } from \"../../icons/AIExtractedIndicator\";\nimport { AIStarIcon } from \"../../icons/AIStarIcon\";\nimport { HelpIcon } from \"../../icons/HelpIcon\";\nimport Tooltip from \"../../tooltip/Tooltip\";\nimport { BoltOutlined, NoteAddOutlined } from \"@mui/icons-material\";\nimport { InputLabel } from \"../shared/InputLabel\";\nimport {\n getConfidenceScoreBadgeClass,\n getConfidenceScoreBadgeColor,\n getConfidenceScoreBadgeFill,\n getConfidenceScoreBadgeTextColor,\n shouldShowConfidenceScore,\n} from \"../../../utils/confidenceScoreUtils\";\n\n/**\n * Confidence score type\n */\nexport type ConfidenceScoreType = \"low\" | \"medium\" | \"high\";\n\n/** Visual emphasis for the date picker surface (background + border) */\nexport type DateTimeFieldEmphasis = \"default\" | \"modified\" | \"deleted\" | \"success\";\n\nexport type SourceMetaBBox = {\n b: number;\n l: number;\n r: number;\n t: number;\n};\n\nexport type SourceMetaItem = {\n bbox: SourceMetaBBox;\n confidence_score?: number;\n is_primary?: boolean;\n match_score?: number;\n match_type?: string;\n page_height: number;\n page_width: number;\n source_page: number;\n source_text?: string;\n};\n\ndayjs.extend(utc);\ndayjs.extend(customParseFormat);\ndayjs.extend(weekday);\ndayjs.extend(localeData);\n\n// Date format constants\nexport const UNIVERSAL_DATE_FORMAT = \"MM/DD/YYYY\";\nexport const UNIVERSAL_DATETIME_FORMAT = \"MM/DD/YYYY - hh:mm A\";\n\n// ISO-like format for internal value storage (parseable by new Date() and dayjs)\nconst ISO_DATE_FORMAT = \"YYYY-MM-DD\";\nconst ISO_DATETIME_FORMAT = \"YYYY-MM-DDTHH:mm:ss\";\n\n// Keyboard keys constant\nconst KEYBOARD_KEYS = {\n ENTER: \"Enter\",\n} as const;\n\nconst FLEXIBLE_DATE_FORMATS = [\n \"MM/DD/YYYY\",\n \"M/DD/YYYY\",\n \"MM/D/YYYY\",\n \"M/D/YYYY\",\n\n \"MM/DD/YY\",\n \"M/DD/YY\",\n \"MM/D/YY\",\n \"M/D/YY\",\n\n \"YYYY-MM-DD\",\n \"YYYY-MM-DDTHH:mm:ss.SSSZ\",\n \"YYYY-MM-DDTHH:mm:ssZ\",\n];\n\nconst FLEXIBLE_DATETIME_FORMATS = [\n \"MM/DD/YYYY - hh:mm A\",\n \"M/DD/YYYY - hh:mm A\",\n \"MM/D/YYYY - hh:mm A\",\n \"M/D/YYYY - hh:mm A\",\n \"MM/DD/YYYY hh:mm A\",\n \"M/DD/YYYY hh:mm A\",\n \"MM/D/YYYY hh:mm A\",\n \"M/D/YYYY hh:mm A\",\n \"MM/DD/YYYY HH:mm\",\n \"M/DD/YYYY HH:mm\",\n \"MM/D/YYYY HH:mm\",\n \"M/D/YYYY HH:mm\",\n\n \"MM/DD/YY - hh:mm A\",\n \"M/DD/YY - hh:mm A\",\n \"MM/D/YY - hh:mm A\",\n \"M/D/YY - hh:mm A\",\n \"MM/DD/YY hh:mm A\",\n \"M/DD/YY hh:mm A\",\n \"MM/D/YY hh:mm A\",\n \"M/D/YY hh:mm A\",\n \"MM/DD/YY HH:mm\",\n \"M/DD/YY HH:mm\",\n \"MM/D/YY HH:mm\",\n \"M/D/YY HH:mm\",\n\n ...FLEXIBLE_DATE_FORMATS,\n\n \"YYYY-MM-DDTHH:mm:ss.SSSZ\",\n \"YYYY-MM-DDTHH:mm:ssZ\",\n];\n\n/**\n * Generate a short UUID\n */\nconst generateShortUUID = (): string => {\n return Math.random().toString(36).substring(2, 9);\n};\n\n/**\n * Try to parse a date string using multiple flexible formats\n * Handles single-digit months/days and 2-digit years\n */\nconst tryParseFlexibleDate = (\n dateStr: string,\n withTime: boolean = false\n): Dayjs | null => {\n if (!dateStr) return null;\n\n const formats = withTime ? FLEXIBLE_DATETIME_FORMATS : FLEXIBLE_DATE_FORMATS;\n\n // First try with explicit formats\n for (const format of formats) {\n const parsed = dayjs(dateStr, format, true); // strict mode\n if (parsed.isValid()) {\n return parsed;\n }\n }\n\n // Fallback to dayjs default parsing (handles ISO strings, etc.)\n const defaultParsed = dayjs(dateStr);\n if (defaultParsed.isValid()) {\n return defaultParsed;\n }\n\n return null;\n};\n\n/**\n * Risk details interface\n */\nexport interface RiskDetails {\n color?: string;\n description?: string;\n hexBgColor?: string;\n hexBorderColor?: string;\n [key: string]: any;\n}\n\n/**\n * Risk details card component props - generic to allow consumer-specific risk types\n */\nexport interface RiskDetailsCardProps<T = any> {\n riskDetails: T;\n maxWidth?: string;\n showAllRisksSuggestions?: boolean;\n}\n\n/**\n * Props for the DateTimeField component\n */\nexport interface DateTimeFieldProps\n extends Omit<DatePickerProps, \"onChange\" | \"value\"> {\n /** The label text to display above the date picker */\n label?: string;\n /** Current value of the date picker (ISO string or formatted date string) */\n value?: string;\n /** Additional CSS classes for the wrapper */\n className?: string;\n /** Whether the field is required */\n required?: boolean;\n /** Whether the required indicator shows as conditional (yellow instead of red) */\n isRequiredConditional?: boolean;\n /** Error message to display */\n errorMessage?: string;\n /** Whether the date picker is disabled */\n disabled?: boolean;\n /** Callback function called when date changes */\n handleOnChange: (value: string | null) => void;\n /** Whether to use simple mode (minimal styling) */\n simpleMode?: boolean;\n /** Whether to show time picker */\n showTime?: boolean;\n /** Custom date format */\n dateFormat?: string;\n /** Tooltip text for the help icon */\n tooltip?: string;\n /** Tags to display with the label */\n tags?: (string | LabelType)[];\n /** Whether to preserve original case in the label */\n originalCase?: boolean;\n /** Whether the value was AI extracted */\n isAiExtracted?: boolean;\n /** Confidence percentage shown as a badge */\n confidenceScore?: number;\n /** Confidence classification for badge styling */\n confidenceType?: ConfidenceScoreType;\n /** Optional tooltip content for confidence badge */\n confidenceTooltip?: React.ReactNode;\n /** Source meta for confidence score */\n sourceMeta?: SourceMetaItem[];\n /** Handler fired when confidence score badge is clicked */\n onConfidenceScoreClick?: (sourceMeta: SourceMetaItem[]) => void;\n /** Whether this is a GTN (Global Term Name) field */\n isGTN?: boolean;\n /** GTN name for the field */\n gtnName?: any;\n /** Whether to allow timezone conversion */\n allowTimezoneConversion?: boolean;\n /** Whether to allow copying */\n allowCopy?: boolean;\n /** Unique identifier for the date picker */\n id: string;\n /** Date picker type */\n picker?: \"date\" | \"week\" | \"month\" | \"quarter\" | \"year\";\n /** Whether popup should render inside parent element */\n shouldPopOnParent?: boolean;\n /** Custom inline styles for the input */\n inputStyle?: React.CSSProperties;\n /** Additional CSS classes for the label */\n labelClassName?: string;\n /** Optional extra content in the label row (e.g. actions, badges) */\n labelExtra?: React.ReactNode;\n /** Input surface style: `'modified'` — Warning-50/Warning-200; `'deleted'` — Error-50/Error-200; `'success'` — Success-50/Success-200. */\n inputEmphasis?: DateTimeFieldEmphasis;\n /** Whether this is a live field */\n isLiveField?: boolean;\n /** Risk details data */\n riskDetails?: RiskDetails;\n /** Whether risk analysis is open */\n isRiskAnalysisOpen?: boolean;\n /** Custom risk details card component */\n RiskDetailsCard?: React.ComponentType<RiskDetailsCardProps<any>>;\n /** Handler for adding GTN to document */\n onAddGTNToDocument?: (keyValuePair: { key: string; value: string }) => void;\n /** Custom format date function for GTN values */\n formatDateForGTN?: (\n value: string,\n options: { skipTimezone: boolean; withTime: boolean }\n ) => string;\n}\n\n/**\n * Hook to add event listeners\n */\nconst useEventListener = <K extends keyof DocumentEventMap>(\n eventName: K,\n handler: (event: DocumentEventMap[K]) => void\n) => {\n const savedHandler = useRef(handler);\n\n useEffect(() => {\n savedHandler.current = handler;\n }, [handler]);\n\n useEffect(() => {\n const eventListener = (event: DocumentEventMap[K]) =>\n savedHandler.current(event);\n document.addEventListener(eventName, eventListener);\n return () => {\n document.removeEventListener(eventName, eventListener);\n };\n }, [eventName]);\n};\n\n/**\n * DateTimeField component - A feature-rich date/time picker with support for\n * GTN integration, risk analysis, AI extraction indicators, and more.\n *\n * @example\n * ```tsx\n * // Basic usage\n * <DateTimeField\n * id=\"start-date\"\n * label=\"Start Date\"\n * value={startDate}\n * handleOnChange={(date) => setStartDate(date)}\n * />\n *\n * // With time picker\n * <DateTimeField\n * id=\"event-datetime\"\n * label=\"Event Date & Time\"\n * value={eventDateTime}\n * handleOnChange={(date) => setEventDateTime(date)}\n * showTime={true}\n * />\n *\n * // With GTN integration\n * <DateTimeField\n * id=\"contract-date\"\n * label=\"Contract Date\"\n * value={contractDate}\n * handleOnChange={(date) => setContractDate(date)}\n * isGTN={true}\n * gtnName=\"contract_date\"\n * onAddGTNToDocument={(kv) => dispatch(setVariableValueToEditor(kv))}\n * />\n * ```\n */\nexport const DateTimeField = forwardRef<HTMLDivElement, DateTimeFieldProps>(\n (\n {\n label,\n value,\n required,\n isRequiredConditional = false,\n disabled,\n className = undefined,\n errorMessage,\n handleOnChange,\n showTime = true,\n tags,\n needConfirm = false,\n simpleMode,\n originalCase = false,\n dateFormat = undefined,\n tooltip,\n isAiExtracted = false,\n confidenceScore,\n confidenceType = \"high\",\n confidenceTooltip,\n sourceMeta = [],\n onConfidenceScoreClick,\n isGTN = false,\n gtnName = null,\n shouldPopOnParent = false,\n allowTimezoneConversion = true,\n inputStyle,\n labelClassName,\n isLiveField = false,\n labelExtra,\n inputEmphasis = \"default\",\n riskDetails,\n isRiskAnalysisOpen = false,\n RiskDetailsCard,\n onAddGTNToDocument,\n formatDateForGTN,\n ...props\n },\n ref\n ) => {\n const { t } = useTranslation();\n\n /*** Emphasis skins ***/\n const showRiskSkin = Boolean(isRiskAnalysisOpen && riskDetails?.color);\n const emphasisModifiedSkin =\n inputEmphasis === \"modified\" && !errorMessage && !showRiskSkin;\n const emphasisDeletedSkin =\n inputEmphasis === \"deleted\" && !errorMessage && !showRiskSkin;\n const emphasisSuccessSkin =\n inputEmphasis === \"success\" && !errorMessage && !showRiskSkin;\n\n /*** States ***/\n const [isHovered, setIsHovered] = useState(false);\n const [tempDate, setTempDate] = useState<Dayjs | null>(null);\n const [lastUpdatedValue, setLastUpdatedValue] = useState<string | null>(\n null\n );\n const [isPickerOpen, setIsPickerOpen] = useState(false);\n\n /*** Constants ***/\n const finalDateFormat = dateFormat\n ? dateFormat\n : showTime\n ? UNIVERSAL_DATETIME_FORMAT\n : UNIVERSAL_DATE_FORMAT;\n const ID = props?.id || `date-picker-${generateShortUUID()}`;\n\n /*** Refs ***/\n const datePickerRef = useRef<any>(null);\n const suppressNextOpenRef = useRef(false);\n\n /*** Event Listeners ***/\n useEventListener(\"paste\", (e: ClipboardEvent) => {\n if (document.activeElement?.id === ID) {\n e.preventDefault();\n navigator.clipboard.readText().then((text) => {\n const date = tryParseFlexibleDate(text, showTime);\n if (date) {\n setDateIfValid(date);\n }\n });\n }\n });\n\n useEventListener(\"keydown\", (e: KeyboardEvent) => {\n if (\n e.key === KEYBOARD_KEYS.ENTER &&\n document.activeElement instanceof HTMLInputElement &&\n document.activeElement.id === ID\n ) {\n const date = tryParseFlexibleDate(document?.activeElement?.value, showTime);\n if (date) {\n setDateIfValid(date);\n }\n }\n });\n\n /*** Handlers ***/\n const handleAddGTNToDocument = useCallback(\n (_value: string | undefined) => {\n if (!onAddGTNToDocument) return;\n\n let formattedValue = _value || \"\";\n if (formatDateForGTN && _value) {\n formattedValue = formatDateForGTN(_value, {\n skipTimezone: true,\n withTime: showTime,\n });\n } else if (_value) {\n // Default formatting if no custom formatter provided\n const parsed = dayjs(_value);\n if (parsed.isValid()) {\n formattedValue = parsed.format(finalDateFormat);\n }\n }\n\n const keyValuePair = {\n key: gtnName,\n value: formattedValue,\n };\n\n onAddGTNToDocument(keyValuePair);\n },\n [onAddGTNToDocument, gtnName, formatDateForGTN, showTime, finalDateFormat]\n );\n\n const handleHidePickerFooter = useCallback(() => {\n const pickerFooter = document.getElementsByClassName(\n \"ant-picker-footer\"\n )[0] as HTMLElement;\n if (pickerFooter) {\n pickerFooter.style.display = \"none\";\n }\n }, []);\n\n const handleDateChange = useCallback(\n (date: Dayjs | null) => {\n if (!allowTimezoneConversion) {\n // Use ISO-like format for value storage (parseable by new Date() and dayjs)\n const isoFormat = showTime ? ISO_DATETIME_FORMAT : ISO_DATE_FORMAT;\n handleOnChange(date ? date.format(isoFormat) : null);\n // Dispatch custom pilot event for recording\n if (date) {\n const element = document.getElementById(ID);\n if (element) {\n const pilotEvent = new CustomEvent(\"pilot-date-change\", {\n bubbles: true,\n detail: {\n selector: `#${ID}`,\n value: date.format ? date.format(finalDateFormat) : date,\n type: \"date-change\",\n elementId: ID,\n },\n });\n element.dispatchEvent(pilotEvent);\n }\n }\n return;\n }\n if (date) {\n let utcDate;\n if (showTime) {\n utcDate = dayjs(date).utc().toISOString();\n } else {\n utcDate = dayjs(date)\n .utc()\n .add(dayjs(date).utcOffset(), \"minute\")\n .startOf(\"day\")\n .toISOString();\n }\n if (utcDate) {\n handleOnChange(utcDate);\n // Dispatch custom pilot event for recording\n const element = document.getElementById(ID);\n if (element) {\n const pilotEvent = new CustomEvent(\"pilot-date-change\", {\n bubbles: true,\n detail: {\n selector: `#${ID}`,\n value: date.format(finalDateFormat),\n type: \"date-change\",\n elementId: ID,\n },\n });\n element.dispatchEvent(pilotEvent);\n }\n }\n } else {\n handleOnChange(null);\n }\n },\n [allowTimezoneConversion, handleOnChange, showTime, ID, finalDateFormat]\n );\n\n const parseDate = useCallback(\n (str: any): Dayjs | null => {\n if (!str) return null;\n if (!allowTimezoneConversion) {\n try {\n // First try default dayjs parsing (handles ISO formats like \"YYYY-MM-DDTHH:mm:ss\")\n const defaultParsed = dayjs(str);\n if (defaultParsed.isValid()) {\n return defaultParsed;\n }\n // Then try parsing with display format for backward compatibility\n const parsed = dayjs(str, finalDateFormat);\n return parsed.isValid() ? parsed : null;\n } catch {\n return null;\n }\n }\n if (showTime) {\n // For time values, parse directly to preserve the local time\n const parsed = dayjs(str);\n return dayjs(parsed).isValid() ? parsed : null;\n } else {\n if (str?.toString()?.includes(\"Z\")) {\n const parsed = dayjs.utc(str);\n return dayjs(parsed).isValid() ? parsed : null;\n } else {\n const parsed = dayjs(str);\n return dayjs(parsed).isValid() ? parsed : null;\n }\n }\n },\n [allowTimezoneConversion, finalDateFormat, showTime]\n );\n\n const setDateIfValid = useCallback(\n (date: Dayjs | null) => {\n if (date?.isValid() || date === null) {\n setTempDate(date);\n // Use ISO-like format when not converting timezone (parseable by new Date() and dayjs)\n const isoFormat = showTime ? ISO_DATETIME_FORMAT : ISO_DATE_FORMAT;\n const formattedValue = allowTimezoneConversion\n ? date?.toISOString()\n : date\n ? date.format(isoFormat)\n : \"\";\n handleOnChange(formattedValue || null);\n\n // Dispatch custom pilot event for recording\n if (date?.isValid()) {\n const element = document.getElementById(ID);\n if (element) {\n const pilotEvent = new CustomEvent(\"pilot-date-change\", {\n bubbles: true,\n detail: {\n selector: `#${ID}`,\n value: date.format(finalDateFormat),\n type: \"date-change\",\n elementId: ID,\n },\n });\n element.dispatchEvent(pilotEvent);\n }\n }\n }\n },\n [allowTimezoneConversion, finalDateFormat, handleOnChange, ID, showTime]\n );\n\n /*** Effects ***/\n useEffect(() => {\n setTempDate(parseDate(value));\n }, [value, parseDate]);\n\n useEffect(() => {\n if (lastUpdatedValue) {\n setLastUpdatedValue(null);\n }\n }, [lastUpdatedValue]);\n\n // Listen for pilot playback events\n useEffect(() => {\n const element = document.getElementById(ID);\n if (!element) return;\n\n const handlePilotPlayback = (e: CustomEvent) => {\n const { value: playbackValue, type } = e.detail;\n if (type === \"date-playback\" && playbackValue) {\n const parsedDate = tryParseFlexibleDate(playbackValue, showTime);\n if (parsedDate && parsedDate.isValid()) {\n setTempDate(parsedDate);\n handleDateChange(parsedDate);\n\n setTimeout(() => {\n const pickerInput = element.querySelector(\"input\");\n if (pickerInput) {\n (pickerInput as HTMLInputElement).focus();\n setTimeout(() => {\n (pickerInput as HTMLInputElement).blur();\n }, 10);\n }\n\n if (datePickerRef.current) {\n try {\n const pickerInstance = datePickerRef.current as any;\n if (typeof pickerInstance.blur === \"function\") {\n pickerInstance.blur();\n }\n } catch {\n // Ignore errors\n }\n }\n\n setTimeout(() => {\n const openDropdowns = document.querySelectorAll(\n \".ant-picker-dropdown:not(.ant-picker-dropdown-hidden)\"\n );\n openDropdowns.forEach((dropdown) => {\n if (dropdown instanceof HTMLElement) {\n dropdown.style.display = \"none\";\n dropdown.classList.add(\"ant-picker-dropdown-hidden\");\n }\n });\n }, 50);\n }, 50);\n }\n }\n };\n\n element.addEventListener(\n \"pilot-date-playback\",\n handlePilotPlayback as EventListener\n );\n\n return () => {\n element.removeEventListener(\n \"pilot-date-playback\",\n handlePilotPlayback as EventListener\n );\n };\n }, [ID, finalDateFormat, handleDateChange, showTime]);\n\n const handleKeyDownCapture = useCallback((e: React.KeyboardEvent) => {\n if (e.key === KEYBOARD_KEYS.ENTER && !isPickerOpen) {\n e.preventDefault();\n e.stopPropagation();\n\n const form = (e.target as HTMLElement).closest('form');\n if (form) {\n const submitBtn = form.querySelector<HTMLButtonElement>('button[type=\"submit\"]');\n if (submitBtn) {\n submitBtn.click();\n } else {\n form.requestSubmit();\n }\n }\n }\n }, [isPickerOpen]);\n\n const handleOpenChange = useCallback((nextOpen: boolean) => {\n if (nextOpen && suppressNextOpenRef.current) {\n suppressNextOpenRef.current = false;\n setIsPickerOpen(false);\n return;\n }\n\n setIsPickerOpen(nextOpen);\n if (!nextOpen) {\n suppressNextOpenRef.current = true;\n requestAnimationFrame(() => {\n datePickerRef.current?.focus();\n requestAnimationFrame(() => {\n suppressNextOpenRef.current = false;\n });\n });\n }\n }, []);\n\n /*** Render ***/\n if (simpleMode) {\n return (\n <div onKeyDownCapture={handleKeyDownCapture}>\n <DatePicker\n {...props}\n showTime={showTime}\n open={isPickerOpen}\n format={finalDateFormat}\n placeholder={\n finalDateFormat === UNIVERSAL_DATETIME_FORMAT\n ? \"MM/DD/YYYY hh:mm\"\n : finalDateFormat\n }\n value={tempDate}\n needConfirm={false}\n onChange={(date) => {\n setTempDate(date);\n handleDateChange(date);\n setLastUpdatedValue(date?.toISOString() || null);\n }}\n className={className}\n showNow={false}\n onFocus={handleHidePickerFooter}\n onOpenChange={handleOpenChange}\n onBlur={(e) => {\n const inputValue = (e.target as HTMLInputElement).value;\n if (inputValue) {\n const parsedDate = tryParseFlexibleDate(inputValue, showTime);\n if (parsedDate) {\n setDateIfValid(parsedDate);\n }\n }\n }}\n ref={datePickerRef}\n disabled={disabled}\n id={ID}\n />\n </div>\n );\n }\n\n return (\n <div\n ref={ref}\n className={cn(\n \"flex gap-0.5 relative\",\n isHovered && isGTN\n ? \"border rounded-lg border-primary-100 bg-primary-50 p-1\"\n : \"\"\n )}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n >\n {isGTN && !isHovered ? (\n <div className=\"w-1 h-1 bg-primary-600 rounded-full animate-blink mt-1.5\" />\n ) : null}\n <div className={`w-full flex flex-col font-inter ${className || \"\"}`} onKeyDownCapture={handleKeyDownCapture}>\n {(label || labelExtra) ? (\n <label\n className={`mb-1 text-xs font-medium text-gray-600 inline-flex items-center gap-1 ${!originalCase ? \"capitalize\" : \"\"} ${\n labelClassName || \"\"\n }`}\n >\n <div className=\"grid w-full grid-cols-[minmax(0,1fr)_auto] items-start gap-x-1\">\n <div className=\"inline-flex min-w-0 items-center gap-1 flex-wrap\">\n {(label || required || isRequiredConditional) && (\n <InputLabel label={label || \"\"} required={required || false} isRequiredConditional={isRequiredConditional || false} />\n )}\n {isLiveField && (\n <BoltOutlined\n sx={{\n fontSize: 16,\n color: \"var(--color-primary-600)\",\n rotate: \"15deg\",\n }}\n />\n )}\n {isAiExtracted && !shouldShowConfidenceScore(confidenceScore) && <AIExtractedIndicator />}\n <Label labels={tags} />\n {tooltip && (\n <Tooltip placement=\"top\" title={tooltip}>\n <div className=\"cursor-pointer\">\n <HelpIcon className=\"w-icon-sm h-icon-sm\" />\n </div>\n </Tooltip>\n )}\n {labelExtra}\n </div>\n\n <div className=\"flex items-center gap-1 justify-self-end\">\n {(shouldShowConfidenceScore(confidenceScore) && confidenceType) ? (\n <Tooltip\n placement=\"top-end\"\n title={confidenceTooltip ?? \"\"}\n hideTooltip={confidenceTooltip === undefined || confidenceTooltip === null}\n className=\"cursor-pointer\"\n >\n <div\n className={cn(\n \"inline-flex min-w-[50px] items-center gap-1 rounded-md px-1 py-0.5\",\n getConfidenceScoreBadgeClass(confidenceType)\n )}\n onClick={() => onConfidenceScoreClick?.(sourceMeta)}\n >\n <AIStarIcon\n size={12}\n fill={getConfidenceScoreBadgeColor(confidenceType)}\n fillSecondary={getConfidenceScoreBadgeFill(confidenceType)}\n />\n <span className={cn(\"text-xs font-medium leading-4\", getConfidenceScoreBadgeTextColor(confidenceType))}>\n {confidenceScore}%\n </span>\n </div>\n </Tooltip>\n ) : null}\n {isGTN && isHovered && onAddGTNToDocument ? (\n <button\n id=\"btn-date-field-add-to-document\"\n className=\"cursor-pointer\"\n onClick={() => handleAddGTNToDocument(value)}\n type=\"button\"\n >\n <AntTooltip placement=\"top\" title={t(\"Add to document\")}>\n <NoteAddOutlined\n className=\"text-primary-600\"\n sx={{\n fontSize: 16,\n }}\n />\n </AntTooltip>\n </button>\n ) : null}\n </div>\n </div>\n </label>\n ) : null}\n <DatePicker\n {...props}\n showTime={showTime ? { use12Hours: true } : false}\n open={isPickerOpen}\n format={finalDateFormat}\n placeholder={\n finalDateFormat === UNIVERSAL_DATETIME_FORMAT\n ? \"MM/DD/YYYY - HH:MM\"\n : finalDateFormat\n }\n className={cn(\n \"w-full h-8 text-sm font-medium dark:text-black-300\",\n errorMessage && \"border-red-400\",\n isRiskAnalysisOpen && riskDetails?.color && `bg-${riskDetails.color}-50 border-${riskDetails.color}-300`,\n emphasisDeletedSkin && \"!border-[var(--Error-200,#FECACA)] !bg-[var(--Error-50,#FEF2F2)] !text-[#475467]\",\n emphasisModifiedSkin && \"!border-[var(--Warning-200,#FEDF89)] !bg-[var(--Warning-50,#FFFAEB)]\",\n emphasisSuccessSkin && \"!border-[var(--Success-200,#BBF7D0)] !bg-[var(--Success-50,#F0FDF4)] !text-[#101828]\",\n )}\n styles={{\n root: {\n ...inputStyle,\n borderRadius: \"7px\",\n ...(emphasisDeletedSkin && {\n borderColor: \"var(--Error-200, #FECACA)\",\n backgroundColor: \"var(--Error-50, #FEF2F2)\",\n color: \"#475467\",\n }),\n ...(emphasisModifiedSkin && {\n borderColor: \"var(--Warning-200, #FEDF89)\",\n backgroundColor: \"var(--Warning-50, #FFFAEB)\",\n }),\n ...(emphasisSuccessSkin && {\n borderColor: \"var(--Success-200, #BBF7D0)\",\n backgroundColor: \"var(--Success-50, #F0FDF4)\",\n color: \"#101828\",\n }),\n },\n }}\n showNow={false}\n value={tempDate}\n onChange={(date) => {\n setTempDate(date);\n handleDateChange(date);\n setLastUpdatedValue(date?.toISOString() || null);\n }}\n onBlur={(e) => {\n const inputValue = (e.target as HTMLInputElement).value;\n if (inputValue) {\n const parsedDate = tryParseFlexibleDate(inputValue, showTime);\n if (parsedDate) {\n setTempDate(parsedDate);\n handleDateChange(parsedDate);\n }\n }\n }}\n needConfirm={needConfirm}\n ref={datePickerRef}\n disabled={disabled}\n inputReadOnly={false}\n onOpenChange={handleOpenChange}\n getPopupContainer={\n shouldPopOnParent\n ? (trigger) => trigger.parentElement as HTMLElement\n : () => document.body\n }\n id={ID}\n autoComplete=\"off\"\n />\n {errorMessage && (\n <Typography\n className=\"text-error-500 mt-1\"\n appearance=\"custom\"\n size=\"extra-small\"\n variant=\"medium\"\n >\n {errorMessage}\n </Typography>\n )}\n </div>\n\n {isHovered && riskDetails && isRiskAnalysisOpen && RiskDetailsCard && (\n <div\n role=\"tooltip\"\n tabIndex={0}\n className=\"absolute left-0 right-0 top-[95%] mt-1 z-50 bg-white dark:bg-black-600 rounded-xl\"\n onClick={(e) => e.stopPropagation()}\n onMouseDown={(e) => e.preventDefault()}\n onKeyDown={(e) => {\n if (e.key === \"Escape\") {\n setIsHovered(false);\n }\n }}\n >\n <RiskDetailsCard riskDetails={riskDetails} />\n </div>\n )}\n </div>\n );\n }\n);\n\nDateTimeField.displayName = \"DateTimeField\";\n\n"],"names":["dayjs","utc","customParseFormat","weekday","localeData","UNIVERSAL_DATE_FORMAT","UNIVERSAL_DATETIME_FORMAT","ISO_DATE_FORMAT","ISO_DATETIME_FORMAT","KEYBOARD_KEYS","FLEXIBLE_DATE_FORMATS","FLEXIBLE_DATETIME_FORMATS","generateShortUUID","tryParseFlexibleDate","dateStr","withTime","formats","format","parsed","defaultParsed","useEventListener","eventName","handler","savedHandler","useRef","useEffect","eventListener","event","DateTimeField","forwardRef","label","value","required","isRequiredConditional","disabled","className","errorMessage","handleOnChange","showTime","tags","needConfirm","simpleMode","originalCase","dateFormat","tooltip","isAiExtracted","confidenceScore","confidenceType","confidenceTooltip","sourceMeta","onConfidenceScoreClick","isGTN","gtnName","shouldPopOnParent","allowTimezoneConversion","inputStyle","labelClassName","isLiveField","labelExtra","inputEmphasis","riskDetails","isRiskAnalysisOpen","RiskDetailsCard","onAddGTNToDocument","formatDateForGTN","props","ref","t","useTranslation","showRiskSkin","emphasisModifiedSkin","emphasisDeletedSkin","emphasisSuccessSkin","isHovered","setIsHovered","useState","tempDate","setTempDate","lastUpdatedValue","setLastUpdatedValue","isPickerOpen","setIsPickerOpen","finalDateFormat","ID","datePickerRef","suppressNextOpenRef","text","date","setDateIfValid","handleAddGTNToDocument","useCallback","_value","formattedValue","handleHidePickerFooter","pickerFooter","handleDateChange","isoFormat","element","pilotEvent","utcDate","parseDate","str","handlePilotPlayback","e","playbackValue","type","parsedDate","pickerInput","pickerInstance","dropdown","handleKeyDownCapture","form","submitBtn","handleOpenChange","nextOpen","jsx","DatePicker","inputValue","jsxs","cn","InputLabel","BoltOutlined","shouldShowConfidenceScore","AIExtractedIndicator","Label","Tooltip","HelpIcon","getConfidenceScoreBadgeClass","AIStarIcon","getConfidenceScoreBadgeColor","getConfidenceScoreBadgeFill","getConfidenceScoreBadgeTextColor","AntTooltip","NoteAddOutlined","trigger","Typography"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),k=require("react"),d=require("../../../_virtual/index.cjs.js"),g=require("react-debounce-input"),u=require("framer-motion"),j=require("../../data-display/label/Label.cjs.js"),D=require("../../data-display/typography/Typography.cjs.js"),S=require("../shared/InputLabel.cjs.js"),b=({id:i,label:n,onChange:p,errorMessage:r,required:s,bg:x,tags:m,color:f,debounceTimeout:y=0,className:F,isDarkMode:q,labelExtra:l,inputEmphasis:c="default",...v})=>{const{inputRef:w,..._}=v,a=c==="modified"&&!r,t=c==="deleted"&&!r,o=c==="success"&&!r;return e.jsxs("div",{className:d("flex flex-col",F),children:[(n||l)&&e.jsx("label",{htmlFor:i,className:"block mb-1 text-xs font-medium leading-[18px] text-neutral-600 dark:text-black-300 font-inter capitalize",children:e.jsxs("div",{className:"flex items-center justify-between gap-1",children:[e.jsxs("div",{className:"inline-flex items-center gap-1 flex-wrap",children:[e.jsx(S.InputLabel,{label:n||"",required:s||!1}),e.jsx(j.Label,{labels:m})]}),l]})}),e.jsx("label",{className:"relative block h-8",children:k.createElement(g.DebounceInput,{..._,debounceTimeout:y,id:i,key:i,required:s,className:d("border",r?"!border-error-300":t?"border-[var(--Error-200,#FECACA)]":a?"border-[var(--Warning-200,#FEDF89)]":o?"border-[var(--Success-200,#BBF7D0)]":"border-neutral-200 dark:border-black-600",t?"!bg-[var(--Error-50,#FEF2F2)] !text-[#475467] disabled:!opacity-100":a?"!bg-[var(--Warning-50,#FFFAEB)] disabled:!opacity-100 disabled:!bg-[var(--Warning-50,#FFFAEB)]":o?"!bg-[var(--Success-50,#F0FDF4)] !text-[#101828] disabled:!opacity-100":"dark:bg-black-700",x,f,!t&&!a&&!o&&"text-neutral-900 dark:text-neutral-100","text-[14px] rounded-md","focus:outline-none focus:ring-0",t?"focus:border-[var(--Error-200,#FECACA)] focus:shadow-[0_0_0_2px_rgba(254,202,202,0.45)]":a?"focus:border-[var(--Warning-200,#FEDF89)] focus:shadow-[0_0_0_2px_rgba(254,223,137,0.45)]":o?"focus:border-[var(--Success-200,#BBF7D0)] focus:shadow-[0_0_0_2px_rgba(187,247,208,0.45)]":"focus:border-[var(--color-primary-600)] dark:focus:border-[var(--color-primary-400)] focus:shadow-[0_0_0_1.5px_var(--color-primary-100)] dark:focus:shadow-[0_0_0_1.5px_var(--color-primary-950)]","block w-full h-8 px-3 py-1.5 font-inter font-medium","disabled:opacity-70 disabled:!bg-neutral-50 dark:disabled:!bg-black-800"),onChange:h=>{p(h.target.value)},autoComplete:"off"})}),e.jsx(u.AnimatePresence,{children:r&&e.jsx(u.motion.div,{initial:{opacity:0,y:-5},animate:{opacity:1,y:0},exit:{opacity:0,y:-5},transition:{duration:.15},children:e.jsx(D.Typography,{className:"pt-1 text-error-500",appearance:"custom",size:"extra-small",variant:"medium",children:r})})})]})};b.displayName="DebounceInputField";exports.DebounceInputField=b;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),k=require("react"),d=require("../../../_virtual/index.cjs.js"),g=require("react-debounce-input"),u=require("framer-motion"),j=require("../../data-display/label/Label.cjs.js"),D=require("../../data-display/typography/Typography.cjs.js"),S=require("../shared/InputLabel.cjs.js"),b=({id:i,label:c,onChange:p,errorMessage:r,required:n,bg:m,tags:x,color:f,debounceTimeout:y=0,className:F,isDarkMode:q,labelExtra:l,inputEmphasis:s="default",...v})=>{const{inputRef:w,..._}=v,a=s==="modified"&&!r,t=s==="deleted"&&!r,o=s==="success"&&!r;return e.jsxs("div",{className:d("flex flex-col",F),children:[(c||l)&&e.jsx("label",{htmlFor:i,className:"block mb-1 text-xs font-medium leading-4 text-neutral-600 dark:text-black-300 font-inter capitalize",children:e.jsxs("div",{className:"flex items-center justify-between gap-1",children:[e.jsxs("div",{className:"inline-flex items-center gap-1 flex-wrap",children:[e.jsx(S.InputLabel,{label:c||"",required:n||!1}),e.jsx(j.Label,{labels:x})]}),l]})}),e.jsx("label",{className:"relative block h-8",children:k.createElement(g.DebounceInput,{..._,debounceTimeout:y,id:i,key:i,required:n,className:d("border",r?"!border-error-300":t?"border-[var(--Error-200,#FECACA)]":a?"border-[var(--Warning-200,#FEDF89)]":o?"border-[var(--Success-200,#BBF7D0)]":"border-neutral-200 dark:border-black-600",t?"!bg-[var(--Error-50,#FEF2F2)] !text-[#475467] disabled:!opacity-100":a?"!bg-[var(--Warning-50,#FFFAEB)] disabled:!opacity-100 disabled:!bg-[var(--Warning-50,#FFFAEB)]":o?"!bg-[var(--Success-50,#F0FDF4)] !text-[#101828] disabled:!opacity-100":"dark:bg-black-700",m,f,!t&&!a&&!o&&"text-neutral-900 dark:text-neutral-100","text-sm rounded-md","focus:outline-none focus:ring-0",t?"focus:border-[var(--Error-200,#FECACA)] focus:shadow-[0_0_0_2px_rgba(254,202,202,0.45)]":a?"focus:border-[var(--Warning-200,#FEDF89)] focus:shadow-[0_0_0_2px_rgba(254,223,137,0.45)]":o?"focus:border-[var(--Success-200,#BBF7D0)] focus:shadow-[0_0_0_2px_rgba(187,247,208,0.45)]":"focus:border-[var(--color-primary-600)] dark:focus:border-[var(--color-primary-400)] focus:shadow-[0_0_0_1.5px_var(--color-primary-100)] dark:focus:shadow-[0_0_0_1.5px_var(--color-primary-950)]","block w-full h-8 px-3 py-1.5 font-inter font-medium","disabled:opacity-70 disabled:!bg-neutral-50 dark:disabled:!bg-black-800"),onChange:h=>{p(h.target.value)},autoComplete:"off"})}),e.jsx(u.AnimatePresence,{children:r&&e.jsx(u.motion.div,{initial:{opacity:0,y:-5},animate:{opacity:1,y:0},exit:{opacity:0,y:-5},transition:{duration:.15},children:e.jsx(D.Typography,{className:"pt-1 text-error-500",appearance:"custom",size:"extra-small",variant:"medium",children:r})})})]})};b.displayName="DebounceInputField";exports.DebounceInputField=b;
2
2
  //# sourceMappingURL=DebounceInputField.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DebounceInputField.cjs.js","sources":["../../../../src/components/forms/debounce-input/DebounceInputField.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport cn from \"classnames\";\nimport { DebounceInput } from \"react-debounce-input\";\nimport { AnimatePresence, motion } from \"framer-motion\";\nimport type { ReactNode } from \"react\";\n\nimport { Label } from \"../../data-display/label/Label\";\nimport type { LabelType } from \"../../data-display/label/Label\";\nimport { Typography } from \"../../data-display/typography/Typography\";\nimport type { ComponentProps } from \"react\";\nimport { InputLabel } from \"../shared/InputLabel\";\n\n/**\n * Props for the DebounceInputField component\n * Drop-in replacement matching the lax-web-portal API\n */\nexport type DebounceInputFieldProps = Omit<ComponentProps<typeof DebounceInput>, 'onChange'> & {\n /** Current value of the input */\n value: string;\n /** Callback function called when the input value changes (debounced) */\n onChange(data: any): void;\n /** Error message to display */\n errorMessage?: string;\n /** Default value for the input */\n defaultValue?: string;\n /** Whether the input is disabled */\n disabled?: boolean;\n /** Maximum value for number inputs */\n max?: number;\n /** Minimum value for number inputs */\n min?: number;\n /** Whether the field is required */\n required?: boolean;\n /** Background color class */\n bg?: string;\n /** Tags to display with the label */\n tags?: (string | LabelType)[];\n /** Text color class */\n color?: string;\n /** Unique identifier for the input */\n id: string;\n /** Label text for the input */\n label?: string;\n /** Input type (text, email, password, number, etc.) */\n type?: string;\n /** Placeholder text */\n placeholder?: string;\n /** Debounce timeout in milliseconds */\n debounceTimeout?: number;\n /** Additional CSS classes */\n className?: string;\n /** Whether dark mode is enabled (optional - uses CSS dark: classes if not provided) */\n isDarkMode?: boolean;\n /** Optional extra content in the label row (e.g. actions, badges) */\n labelExtra?: ReactNode;\n /** Input surface style: `'modified'` — Warning colors; `'deleted'` — Error colors, text #475467; `'success'` — Success colors, text #101828. */\n inputEmphasis?: \"default\" | \"modified\" | \"deleted\" | \"success\";\n};\n\n/**\n * A debounced input field component that delays onChange calls until the user stops typing.\n * This is a drop-in replacement for the lax-web-portal DebounceInputField component.\n *\n * @example\n * ```tsx\n * <DebounceInputField\n * id=\"search\"\n * label=\"Search\"\n * value={searchTerm}\n * onChange={(value) => setSearchTerm(value)}\n * debounceTimeout={300}\n * placeholder=\"Type to search...\"\n * errorMessage=\"\"\n * />\n * ```\n */\nexport const DebounceInputField = ({\n id,\n label,\n onChange,\n errorMessage,\n required,\n bg,\n tags,\n color,\n debounceTimeout = 0,\n className,\n isDarkMode: _isDarkMode,\n labelExtra,\n inputEmphasis = \"default\",\n ...props\n}: DebounceInputFieldProps) => {\n const { inputRef: _inputRef, ...rest } = props;\n const emphasisModifiedSkin = inputEmphasis === \"modified\" && !errorMessage;\n const emphasisDeletedSkin = inputEmphasis === \"deleted\" && !errorMessage;\n const emphasisSuccessSkin = inputEmphasis === \"success\" && !errorMessage;\n return (\n <div className={cn(\"flex flex-col\", className)}>\n {(label || labelExtra) && (\n <label\n htmlFor={id}\n className=\"block mb-1 text-xs font-medium leading-[18px] text-neutral-600 dark:text-black-300 font-inter capitalize\"\n >\n <div className=\"flex items-center justify-between gap-1\">\n <div className=\"inline-flex items-center gap-1 flex-wrap\">\n <InputLabel label={label || \"\"} required={required || false} />\n <Label labels={tags} />\n </div>\n {labelExtra}\n </div>\n </label>\n )}\n <label className=\"relative block h-8\">\n <DebounceInput\n {...rest}\n debounceTimeout={debounceTimeout}\n id={id}\n key={id}\n required={required}\n className={cn(\n \"border\",\n errorMessage ? \"!border-error-300\" :\n emphasisDeletedSkin ? \"border-[var(--Error-200,#FECACA)]\" :\n emphasisModifiedSkin ? \"border-[var(--Warning-200,#FEDF89)]\" :\n emphasisSuccessSkin ? \"border-[var(--Success-200,#BBF7D0)]\" :\n \"border-neutral-200 dark:border-black-600\",\n emphasisDeletedSkin ? \"!bg-[var(--Error-50,#FEF2F2)] !text-[#475467] disabled:!opacity-100\" :\n emphasisModifiedSkin ? \"!bg-[var(--Warning-50,#FFFAEB)] disabled:!opacity-100 disabled:!bg-[var(--Warning-50,#FFFAEB)]\" :\n emphasisSuccessSkin ? \"!bg-[var(--Success-50,#F0FDF4)] !text-[#101828] disabled:!opacity-100\" :\n \"dark:bg-black-700\",\n bg,\n color,\n !emphasisDeletedSkin && !emphasisModifiedSkin && !emphasisSuccessSkin && \"text-neutral-900 dark:text-neutral-100\",\n \"text-[14px] rounded-md\",\n \"focus:outline-none focus:ring-0\",\n emphasisDeletedSkin ? \"focus:border-[var(--Error-200,#FECACA)] focus:shadow-[0_0_0_2px_rgba(254,202,202,0.45)]\" :\n emphasisModifiedSkin ? \"focus:border-[var(--Warning-200,#FEDF89)] focus:shadow-[0_0_0_2px_rgba(254,223,137,0.45)]\" :\n emphasisSuccessSkin ? \"focus:border-[var(--Success-200,#BBF7D0)] focus:shadow-[0_0_0_2px_rgba(187,247,208,0.45)]\" :\n \"focus:border-[var(--color-primary-600)] dark:focus:border-[var(--color-primary-400)] focus:shadow-[0_0_0_1.5px_var(--color-primary-100)] dark:focus:shadow-[0_0_0_1.5px_var(--color-primary-950)]\",\n \"block w-full h-8 px-3 py-1.5 font-inter font-medium\",\n \"disabled:opacity-70 disabled:!bg-neutral-50 dark:disabled:!bg-black-800\"\n )}\n onChange={(e: React.ChangeEvent<HTMLInputElement>) => {\n onChange(e.target.value);\n }}\n autoComplete=\"off\"\n />\n </label>\n <AnimatePresence>\n {errorMessage && (\n <motion.div\n initial={{ opacity: 0, y: -5 }}\n animate={{ opacity: 1, y: 0 }}\n exit={{ opacity: 0, y: -5 }}\n transition={{ duration: 0.15 }}\n >\n <Typography\n className=\"pt-1 text-error-500\"\n appearance=\"custom\"\n size=\"extra-small\"\n variant=\"medium\"\n >\n {errorMessage}\n </Typography>\n </motion.div>\n )}\n </AnimatePresence>\n </div>\n );\n};\n\nDebounceInputField.displayName = \"DebounceInputField\";\n"],"names":["DebounceInputField","id","label","onChange","errorMessage","required","bg","tags","color","debounceTimeout","className","_isDarkMode","labelExtra","inputEmphasis","props","_inputRef","rest","emphasisModifiedSkin","emphasisDeletedSkin","emphasisSuccessSkin","cn","jsx","jsxs","InputLabel","Label","createElement","DebounceInput","e","AnimatePresence","motion","Typography"],"mappings":"0YA4EaA,EAAqB,CAAC,CACjC,GAAAC,EACA,MAAAC,EACA,SAAAC,EACA,aAAAC,EACA,SAAAC,EACA,GAAAC,EACA,KAAAC,EACA,MAAAC,EACA,gBAAAC,EAAkB,EAClB,UAAAC,EACA,WAAYC,EACZ,WAAAC,EACA,cAAAC,EAAgB,UAChB,GAAGC,CACL,IAA+B,CAC7B,KAAM,CAAE,SAAUC,EAAW,GAAGC,GAASF,EACnCG,EAAuBJ,IAAkB,YAAc,CAACT,EACxDc,EAAsBL,IAAkB,WAAa,CAACT,EACtDe,EAAsBN,IAAkB,WAAa,CAACT,EAC5D,cACG,MAAA,CAAI,UAAWgB,EAAG,gBAAiBV,CAAS,EACzC,SAAA,EAAAR,GAASU,IACTS,EAAAA,IAAC,QAAA,CACC,QAASpB,EACT,UAAU,2GAEV,SAAAqB,EAAAA,KAAC,MAAA,CAAI,UAAU,0CACb,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,2CACb,SAAA,CAAAD,MAACE,EAAAA,YAAW,MAAOrB,GAAS,GAAI,SAAUG,GAAY,GAAO,EAC7DgB,EAAAA,IAACG,EAAAA,MAAA,CAAM,OAAQjB,CAAA,CAAM,CAAA,EACvB,EACCK,CAAA,CAAA,CACH,CAAA,CAAA,EAGJS,EAAAA,IAAC,QAAA,CAAM,UAAU,qBACf,SAAAI,EAAAA,cAACC,EAAAA,cAAA,CACE,GAAGV,EACJ,gBAAAP,EACA,GAAAR,EACA,IAAKA,EACL,SAAAI,EACA,UAAWe,EACT,SACAhB,EAAe,oBACfc,EAAsB,oCACtBD,EAAuB,sCACvBE,EAAsB,sCACtB,2CACAD,EAAsB,sEACtBD,EAAuB,iGACvBE,EAAsB,wEACtB,oBACAb,EACAE,EACA,CAACU,GAAuB,CAACD,GAAwB,CAACE,GAAuB,yCACzE,yBACA,kCACAD,EAAsB,0FACtBD,EAAuB,4FACvBE,EAAsB,4FACtB,oMACA,sDACA,yEAAA,EAEF,SAAWQ,GAA2C,CACpDxB,EAASwB,EAAE,OAAO,KAAK,CACzB,EACA,aAAa,KAAA,CAAA,EAEjB,EACAN,EAAAA,IAACO,EAAAA,iBACE,SAAAxB,GACCiB,EAAAA,IAACQ,EAAAA,OAAO,IAAP,CACC,QAAS,CAAE,QAAS,EAAG,EAAG,EAAA,EAC1B,QAAS,CAAE,QAAS,EAAG,EAAG,CAAA,EAC1B,KAAM,CAAE,QAAS,EAAG,EAAG,EAAA,EACvB,WAAY,CAAE,SAAU,GAAA,EAExB,SAAAR,EAAAA,IAACS,EAAAA,WAAA,CACC,UAAU,sBACV,WAAW,SACX,KAAK,cACL,QAAQ,SAEP,SAAA1B,CAAA,CAAA,CACH,CAAA,CACF,CAEJ,CAAA,EACF,CAEJ,EAEAJ,EAAmB,YAAc"}
1
+ {"version":3,"file":"DebounceInputField.cjs.js","sources":["../../../../src/components/forms/debounce-input/DebounceInputField.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport cn from \"classnames\";\nimport { DebounceInput } from \"react-debounce-input\";\nimport { AnimatePresence, motion } from \"framer-motion\";\nimport type { ReactNode } from \"react\";\n\nimport { Label } from \"../../data-display/label/Label\";\nimport type { LabelType } from \"../../data-display/label/Label\";\nimport { Typography } from \"../../data-display/typography/Typography\";\nimport type { ComponentProps } from \"react\";\nimport { InputLabel } from \"../shared/InputLabel\";\n\n/**\n * Props for the DebounceInputField component\n * Drop-in replacement matching the lax-web-portal API\n */\nexport type DebounceInputFieldProps = Omit<ComponentProps<typeof DebounceInput>, 'onChange'> & {\n /** Current value of the input */\n value: string;\n /** Callback function called when the input value changes (debounced) */\n onChange(data: any): void;\n /** Error message to display */\n errorMessage?: string;\n /** Default value for the input */\n defaultValue?: string;\n /** Whether the input is disabled */\n disabled?: boolean;\n /** Maximum value for number inputs */\n max?: number;\n /** Minimum value for number inputs */\n min?: number;\n /** Whether the field is required */\n required?: boolean;\n /** Background color class */\n bg?: string;\n /** Tags to display with the label */\n tags?: (string | LabelType)[];\n /** Text color class */\n color?: string;\n /** Unique identifier for the input */\n id: string;\n /** Label text for the input */\n label?: string;\n /** Input type (text, email, password, number, etc.) */\n type?: string;\n /** Placeholder text */\n placeholder?: string;\n /** Debounce timeout in milliseconds */\n debounceTimeout?: number;\n /** Additional CSS classes */\n className?: string;\n /** Whether dark mode is enabled (optional - uses CSS dark: classes if not provided) */\n isDarkMode?: boolean;\n /** Optional extra content in the label row (e.g. actions, badges) */\n labelExtra?: ReactNode;\n /** Input surface style: `'modified'` — Warning colors; `'deleted'` — Error colors, text #475467; `'success'` — Success colors, text #101828. */\n inputEmphasis?: \"default\" | \"modified\" | \"deleted\" | \"success\";\n};\n\n/**\n * A debounced input field component that delays onChange calls until the user stops typing.\n * This is a drop-in replacement for the lax-web-portal DebounceInputField component.\n *\n * @example\n * ```tsx\n * <DebounceInputField\n * id=\"search\"\n * label=\"Search\"\n * value={searchTerm}\n * onChange={(value) => setSearchTerm(value)}\n * debounceTimeout={300}\n * placeholder=\"Type to search...\"\n * errorMessage=\"\"\n * />\n * ```\n */\nexport const DebounceInputField = ({\n id,\n label,\n onChange,\n errorMessage,\n required,\n bg,\n tags,\n color,\n debounceTimeout = 0,\n className,\n isDarkMode: _isDarkMode,\n labelExtra,\n inputEmphasis = \"default\",\n ...props\n}: DebounceInputFieldProps) => {\n const { inputRef: _inputRef, ...rest } = props;\n const emphasisModifiedSkin = inputEmphasis === \"modified\" && !errorMessage;\n const emphasisDeletedSkin = inputEmphasis === \"deleted\" && !errorMessage;\n const emphasisSuccessSkin = inputEmphasis === \"success\" && !errorMessage;\n return (\n <div className={cn(\"flex flex-col\", className)}>\n {(label || labelExtra) && (\n <label\n htmlFor={id}\n className=\"block mb-1 text-xs font-medium leading-4 text-neutral-600 dark:text-black-300 font-inter capitalize\"\n >\n <div className=\"flex items-center justify-between gap-1\">\n <div className=\"inline-flex items-center gap-1 flex-wrap\">\n <InputLabel label={label || \"\"} required={required || false} />\n <Label labels={tags} />\n </div>\n {labelExtra}\n </div>\n </label>\n )}\n <label className=\"relative block h-8\">\n <DebounceInput\n {...rest}\n debounceTimeout={debounceTimeout}\n id={id}\n key={id}\n required={required}\n className={cn(\n \"border\",\n errorMessage ? \"!border-error-300\" :\n emphasisDeletedSkin ? \"border-[var(--Error-200,#FECACA)]\" :\n emphasisModifiedSkin ? \"border-[var(--Warning-200,#FEDF89)]\" :\n emphasisSuccessSkin ? \"border-[var(--Success-200,#BBF7D0)]\" :\n \"border-neutral-200 dark:border-black-600\",\n emphasisDeletedSkin ? \"!bg-[var(--Error-50,#FEF2F2)] !text-[#475467] disabled:!opacity-100\" :\n emphasisModifiedSkin ? \"!bg-[var(--Warning-50,#FFFAEB)] disabled:!opacity-100 disabled:!bg-[var(--Warning-50,#FFFAEB)]\" :\n emphasisSuccessSkin ? \"!bg-[var(--Success-50,#F0FDF4)] !text-[#101828] disabled:!opacity-100\" :\n \"dark:bg-black-700\",\n bg,\n color,\n !emphasisDeletedSkin && !emphasisModifiedSkin && !emphasisSuccessSkin && \"text-neutral-900 dark:text-neutral-100\",\n \"text-sm rounded-md\",\n \"focus:outline-none focus:ring-0\",\n emphasisDeletedSkin ? \"focus:border-[var(--Error-200,#FECACA)] focus:shadow-[0_0_0_2px_rgba(254,202,202,0.45)]\" :\n emphasisModifiedSkin ? \"focus:border-[var(--Warning-200,#FEDF89)] focus:shadow-[0_0_0_2px_rgba(254,223,137,0.45)]\" :\n emphasisSuccessSkin ? \"focus:border-[var(--Success-200,#BBF7D0)] focus:shadow-[0_0_0_2px_rgba(187,247,208,0.45)]\" :\n \"focus:border-[var(--color-primary-600)] dark:focus:border-[var(--color-primary-400)] focus:shadow-[0_0_0_1.5px_var(--color-primary-100)] dark:focus:shadow-[0_0_0_1.5px_var(--color-primary-950)]\",\n \"block w-full h-8 px-3 py-1.5 font-inter font-medium\",\n \"disabled:opacity-70 disabled:!bg-neutral-50 dark:disabled:!bg-black-800\"\n )}\n onChange={(e: React.ChangeEvent<HTMLInputElement>) => {\n onChange(e.target.value);\n }}\n autoComplete=\"off\"\n />\n </label>\n <AnimatePresence>\n {errorMessage && (\n <motion.div\n initial={{ opacity: 0, y: -5 }}\n animate={{ opacity: 1, y: 0 }}\n exit={{ opacity: 0, y: -5 }}\n transition={{ duration: 0.15 }}\n >\n <Typography\n className=\"pt-1 text-error-500\"\n appearance=\"custom\"\n size=\"extra-small\"\n variant=\"medium\"\n >\n {errorMessage}\n </Typography>\n </motion.div>\n )}\n </AnimatePresence>\n </div>\n );\n};\n\nDebounceInputField.displayName = \"DebounceInputField\";\n"],"names":["DebounceInputField","id","label","onChange","errorMessage","required","bg","tags","color","debounceTimeout","className","_isDarkMode","labelExtra","inputEmphasis","props","_inputRef","rest","emphasisModifiedSkin","emphasisDeletedSkin","emphasisSuccessSkin","cn","jsx","jsxs","InputLabel","Label","createElement","DebounceInput","e","AnimatePresence","motion","Typography"],"mappings":"0YA4EaA,EAAqB,CAAC,CACjC,GAAAC,EACA,MAAAC,EACA,SAAAC,EACA,aAAAC,EACA,SAAAC,EACA,GAAAC,EACA,KAAAC,EACA,MAAAC,EACA,gBAAAC,EAAkB,EAClB,UAAAC,EACA,WAAYC,EACZ,WAAAC,EACA,cAAAC,EAAgB,UAChB,GAAGC,CACL,IAA+B,CAC7B,KAAM,CAAE,SAAUC,EAAW,GAAGC,GAASF,EACnCG,EAAuBJ,IAAkB,YAAc,CAACT,EACxDc,EAAsBL,IAAkB,WAAa,CAACT,EACtDe,EAAsBN,IAAkB,WAAa,CAACT,EAC5D,cACG,MAAA,CAAI,UAAWgB,EAAG,gBAAiBV,CAAS,EACzC,SAAA,EAAAR,GAASU,IACTS,EAAAA,IAAC,QAAA,CACC,QAASpB,EACT,UAAU,sGAEV,SAAAqB,EAAAA,KAAC,MAAA,CAAI,UAAU,0CACb,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,2CACb,SAAA,CAAAD,MAACE,EAAAA,YAAW,MAAOrB,GAAS,GAAI,SAAUG,GAAY,GAAO,EAC7DgB,EAAAA,IAACG,EAAAA,MAAA,CAAM,OAAQjB,CAAA,CAAM,CAAA,EACvB,EACCK,CAAA,CAAA,CACH,CAAA,CAAA,EAGJS,EAAAA,IAAC,QAAA,CAAM,UAAU,qBACf,SAAAI,EAAAA,cAACC,EAAAA,cAAA,CACE,GAAGV,EACJ,gBAAAP,EACA,GAAAR,EACA,IAAKA,EACL,SAAAI,EACA,UAAWe,EACT,SACAhB,EAAe,oBACfc,EAAsB,oCACtBD,EAAuB,sCACvBE,EAAsB,sCACtB,2CACAD,EAAsB,sEACtBD,EAAuB,iGACvBE,EAAsB,wEACtB,oBACAb,EACAE,EACA,CAACU,GAAuB,CAACD,GAAwB,CAACE,GAAuB,yCACzE,qBACA,kCACAD,EAAsB,0FACtBD,EAAuB,4FACvBE,EAAsB,4FACtB,oMACA,sDACA,yEAAA,EAEF,SAAWQ,GAA2C,CACpDxB,EAASwB,EAAE,OAAO,KAAK,CACzB,EACA,aAAa,KAAA,CAAA,EAEjB,EACAN,EAAAA,IAACO,EAAAA,iBACE,SAAAxB,GACCiB,EAAAA,IAACQ,EAAAA,OAAO,IAAP,CACC,QAAS,CAAE,QAAS,EAAG,EAAG,EAAA,EAC1B,QAAS,CAAE,QAAS,EAAG,EAAG,CAAA,EAC1B,KAAM,CAAE,QAAS,EAAG,EAAG,EAAA,EACvB,WAAY,CAAE,SAAU,GAAA,EAExB,SAAAR,EAAAA,IAACS,EAAAA,WAAA,CACC,UAAU,sBACV,WAAW,SACX,KAAK,cACL,QAAQ,SAEP,SAAA1B,CAAA,CAAA,CACH,CAAA,CACF,CAEJ,CAAA,EACF,CAEJ,EAEAJ,EAAmB,YAAc"}
@@ -28,7 +28,7 @@ const A = ({
28
28
  "label",
29
29
  {
30
30
  htmlFor: i,
31
- className: "block mb-1 text-xs font-medium leading-[18px] text-neutral-600 dark:text-black-300 font-inter capitalize",
31
+ className: "block mb-1 text-xs font-medium leading-4 text-neutral-600 dark:text-black-300 font-inter capitalize",
32
32
  children: /* @__PURE__ */ l("div", { className: "flex items-center justify-between gap-1", children: [
33
33
  /* @__PURE__ */ l("div", { className: "inline-flex items-center gap-1 flex-wrap", children: [
34
34
  /* @__PURE__ */ e(N, { label: d || "", required: n || !1 }),
@@ -53,7 +53,7 @@ const A = ({
53
53
  p,
54
54
  f,
55
55
  !o && !a && !t && "text-neutral-900 dark:text-neutral-100",
56
- "text-[14px] rounded-md",
56
+ "text-sm rounded-md",
57
57
  "focus:outline-none focus:ring-0",
58
58
  o ? "focus:border-[var(--Error-200,#FECACA)] focus:shadow-[0_0_0_2px_rgba(254,202,202,0.45)]" : a ? "focus:border-[var(--Warning-200,#FEDF89)] focus:shadow-[0_0_0_2px_rgba(254,223,137,0.45)]" : t ? "focus:border-[var(--Success-200,#BBF7D0)] focus:shadow-[0_0_0_2px_rgba(187,247,208,0.45)]" : "focus:border-[var(--color-primary-600)] dark:focus:border-[var(--color-primary-400)] focus:shadow-[0_0_0_1.5px_var(--color-primary-100)] dark:focus:shadow-[0_0_0_1.5px_var(--color-primary-950)]",
59
59
  "block w-full h-8 px-3 py-1.5 font-inter font-medium",
@@ -1 +1 @@
1
- {"version":3,"file":"DebounceInputField.es.js","sources":["../../../../src/components/forms/debounce-input/DebounceInputField.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport cn from \"classnames\";\nimport { DebounceInput } from \"react-debounce-input\";\nimport { AnimatePresence, motion } from \"framer-motion\";\nimport type { ReactNode } from \"react\";\n\nimport { Label } from \"../../data-display/label/Label\";\nimport type { LabelType } from \"../../data-display/label/Label\";\nimport { Typography } from \"../../data-display/typography/Typography\";\nimport type { ComponentProps } from \"react\";\nimport { InputLabel } from \"../shared/InputLabel\";\n\n/**\n * Props for the DebounceInputField component\n * Drop-in replacement matching the lax-web-portal API\n */\nexport type DebounceInputFieldProps = Omit<ComponentProps<typeof DebounceInput>, 'onChange'> & {\n /** Current value of the input */\n value: string;\n /** Callback function called when the input value changes (debounced) */\n onChange(data: any): void;\n /** Error message to display */\n errorMessage?: string;\n /** Default value for the input */\n defaultValue?: string;\n /** Whether the input is disabled */\n disabled?: boolean;\n /** Maximum value for number inputs */\n max?: number;\n /** Minimum value for number inputs */\n min?: number;\n /** Whether the field is required */\n required?: boolean;\n /** Background color class */\n bg?: string;\n /** Tags to display with the label */\n tags?: (string | LabelType)[];\n /** Text color class */\n color?: string;\n /** Unique identifier for the input */\n id: string;\n /** Label text for the input */\n label?: string;\n /** Input type (text, email, password, number, etc.) */\n type?: string;\n /** Placeholder text */\n placeholder?: string;\n /** Debounce timeout in milliseconds */\n debounceTimeout?: number;\n /** Additional CSS classes */\n className?: string;\n /** Whether dark mode is enabled (optional - uses CSS dark: classes if not provided) */\n isDarkMode?: boolean;\n /** Optional extra content in the label row (e.g. actions, badges) */\n labelExtra?: ReactNode;\n /** Input surface style: `'modified'` — Warning colors; `'deleted'` — Error colors, text #475467; `'success'` — Success colors, text #101828. */\n inputEmphasis?: \"default\" | \"modified\" | \"deleted\" | \"success\";\n};\n\n/**\n * A debounced input field component that delays onChange calls until the user stops typing.\n * This is a drop-in replacement for the lax-web-portal DebounceInputField component.\n *\n * @example\n * ```tsx\n * <DebounceInputField\n * id=\"search\"\n * label=\"Search\"\n * value={searchTerm}\n * onChange={(value) => setSearchTerm(value)}\n * debounceTimeout={300}\n * placeholder=\"Type to search...\"\n * errorMessage=\"\"\n * />\n * ```\n */\nexport const DebounceInputField = ({\n id,\n label,\n onChange,\n errorMessage,\n required,\n bg,\n tags,\n color,\n debounceTimeout = 0,\n className,\n isDarkMode: _isDarkMode,\n labelExtra,\n inputEmphasis = \"default\",\n ...props\n}: DebounceInputFieldProps) => {\n const { inputRef: _inputRef, ...rest } = props;\n const emphasisModifiedSkin = inputEmphasis === \"modified\" && !errorMessage;\n const emphasisDeletedSkin = inputEmphasis === \"deleted\" && !errorMessage;\n const emphasisSuccessSkin = inputEmphasis === \"success\" && !errorMessage;\n return (\n <div className={cn(\"flex flex-col\", className)}>\n {(label || labelExtra) && (\n <label\n htmlFor={id}\n className=\"block mb-1 text-xs font-medium leading-[18px] text-neutral-600 dark:text-black-300 font-inter capitalize\"\n >\n <div className=\"flex items-center justify-between gap-1\">\n <div className=\"inline-flex items-center gap-1 flex-wrap\">\n <InputLabel label={label || \"\"} required={required || false} />\n <Label labels={tags} />\n </div>\n {labelExtra}\n </div>\n </label>\n )}\n <label className=\"relative block h-8\">\n <DebounceInput\n {...rest}\n debounceTimeout={debounceTimeout}\n id={id}\n key={id}\n required={required}\n className={cn(\n \"border\",\n errorMessage ? \"!border-error-300\" :\n emphasisDeletedSkin ? \"border-[var(--Error-200,#FECACA)]\" :\n emphasisModifiedSkin ? \"border-[var(--Warning-200,#FEDF89)]\" :\n emphasisSuccessSkin ? \"border-[var(--Success-200,#BBF7D0)]\" :\n \"border-neutral-200 dark:border-black-600\",\n emphasisDeletedSkin ? \"!bg-[var(--Error-50,#FEF2F2)] !text-[#475467] disabled:!opacity-100\" :\n emphasisModifiedSkin ? \"!bg-[var(--Warning-50,#FFFAEB)] disabled:!opacity-100 disabled:!bg-[var(--Warning-50,#FFFAEB)]\" :\n emphasisSuccessSkin ? \"!bg-[var(--Success-50,#F0FDF4)] !text-[#101828] disabled:!opacity-100\" :\n \"dark:bg-black-700\",\n bg,\n color,\n !emphasisDeletedSkin && !emphasisModifiedSkin && !emphasisSuccessSkin && \"text-neutral-900 dark:text-neutral-100\",\n \"text-[14px] rounded-md\",\n \"focus:outline-none focus:ring-0\",\n emphasisDeletedSkin ? \"focus:border-[var(--Error-200,#FECACA)] focus:shadow-[0_0_0_2px_rgba(254,202,202,0.45)]\" :\n emphasisModifiedSkin ? \"focus:border-[var(--Warning-200,#FEDF89)] focus:shadow-[0_0_0_2px_rgba(254,223,137,0.45)]\" :\n emphasisSuccessSkin ? \"focus:border-[var(--Success-200,#BBF7D0)] focus:shadow-[0_0_0_2px_rgba(187,247,208,0.45)]\" :\n \"focus:border-[var(--color-primary-600)] dark:focus:border-[var(--color-primary-400)] focus:shadow-[0_0_0_1.5px_var(--color-primary-100)] dark:focus:shadow-[0_0_0_1.5px_var(--color-primary-950)]\",\n \"block w-full h-8 px-3 py-1.5 font-inter font-medium\",\n \"disabled:opacity-70 disabled:!bg-neutral-50 dark:disabled:!bg-black-800\"\n )}\n onChange={(e: React.ChangeEvent<HTMLInputElement>) => {\n onChange(e.target.value);\n }}\n autoComplete=\"off\"\n />\n </label>\n <AnimatePresence>\n {errorMessage && (\n <motion.div\n initial={{ opacity: 0, y: -5 }}\n animate={{ opacity: 1, y: 0 }}\n exit={{ opacity: 0, y: -5 }}\n transition={{ duration: 0.15 }}\n >\n <Typography\n className=\"pt-1 text-error-500\"\n appearance=\"custom\"\n size=\"extra-small\"\n variant=\"medium\"\n >\n {errorMessage}\n </Typography>\n </motion.div>\n )}\n </AnimatePresence>\n </div>\n );\n};\n\nDebounceInputField.displayName = \"DebounceInputField\";\n"],"names":["DebounceInputField","id","label","onChange","errorMessage","required","bg","tags","color","debounceTimeout","className","_isDarkMode","labelExtra","inputEmphasis","props","_inputRef","rest","emphasisModifiedSkin","emphasisDeletedSkin","emphasisSuccessSkin","cn","jsx","jsxs","InputLabel","Label","createElement","DebounceInput","e","AnimatePresence","motion","Typography"],"mappings":";;;;;;;;AA4EO,MAAMA,IAAqB,CAAC;AAAA,EACjC,IAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,cAAAC;AAAA,EACA,UAAAC;AAAA,EACA,IAAAC;AAAA,EACA,MAAAC;AAAA,EACA,OAAAC;AAAA,EACA,iBAAAC,IAAkB;AAAA,EAClB,WAAAC;AAAA,EACA,YAAYC;AAAA,EACZ,YAAAC;AAAA,EACA,eAAAC,IAAgB;AAAA,EAChB,GAAGC;AACL,MAA+B;AAC7B,QAAM,EAAE,UAAUC,GAAW,GAAGC,MAASF,GACnCG,IAAuBJ,MAAkB,cAAc,CAACT,GACxDc,IAAsBL,MAAkB,aAAa,CAACT,GACtDe,IAAsBN,MAAkB,aAAa,CAACT;AAC5D,2BACG,OAAA,EAAI,WAAWgB,EAAG,iBAAiBV,CAAS,GACzC,UAAA;AAAA,KAAAR,KAASU,MACT,gBAAAS;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,SAASpB;AAAA,QACT,WAAU;AAAA,QAEV,UAAA,gBAAAqB,EAAC,OAAA,EAAI,WAAU,2CACb,UAAA;AAAA,UAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,4CACb,UAAA;AAAA,YAAA,gBAAAD,EAACE,KAAW,OAAOrB,KAAS,IAAI,UAAUG,KAAY,IAAO;AAAA,YAC7D,gBAAAgB,EAACG,GAAA,EAAM,QAAQjB,EAAA,CAAM;AAAA,UAAA,GACvB;AAAA,UACCK;AAAA,QAAA,EAAA,CACH;AAAA,MAAA;AAAA,IAAA;AAAA,IAGJ,gBAAAS,EAAC,SAAA,EAAM,WAAU,sBACf,UAAA,gBAAAI;AAAA,MAACC;AAAA,MAAA;AAAA,QACE,GAAGV;AAAA,QACJ,iBAAAP;AAAA,QACA,IAAAR;AAAA,QACA,KAAKA;AAAA,QACL,UAAAI;AAAA,QACA,WAAWe;AAAA,UACT;AAAA,UACAhB,IAAe,sBACfc,IAAsB,sCACtBD,IAAuB,wCACvBE,IAAsB,wCACtB;AAAA,UACAD,IAAsB,wEACtBD,IAAuB,mGACvBE,IAAsB,0EACtB;AAAA,UACAb;AAAA,UACAE;AAAA,UACA,CAACU,KAAuB,CAACD,KAAwB,CAACE,KAAuB;AAAA,UACzE;AAAA,UACA;AAAA,UACAD,IAAsB,4FACtBD,IAAuB,8FACvBE,IAAsB,8FACtB;AAAA,UACA;AAAA,UACA;AAAA,QAAA;AAAA,QAEF,UAAU,CAACQ,MAA2C;AACpD,UAAAxB,EAASwB,EAAE,OAAO,KAAK;AAAA,QACzB;AAAA,QACA,cAAa;AAAA,MAAA;AAAA,IAAA,GAEjB;AAAA,IACA,gBAAAN,EAACO,KACE,UAAAxB,KACC,gBAAAiB;AAAA,MAACQ,EAAO;AAAA,MAAP;AAAA,QACC,SAAS,EAAE,SAAS,GAAG,GAAG,GAAA;AAAA,QAC1B,SAAS,EAAE,SAAS,GAAG,GAAG,EAAA;AAAA,QAC1B,MAAM,EAAE,SAAS,GAAG,GAAG,GAAA;AAAA,QACvB,YAAY,EAAE,UAAU,KAAA;AAAA,QAExB,UAAA,gBAAAR;AAAA,UAACS;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,YAAW;AAAA,YACX,MAAK;AAAA,YACL,SAAQ;AAAA,YAEP,UAAA1B;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAAA,EACF,CAEJ;AAAA,EAAA,GACF;AAEJ;AAEAJ,EAAmB,cAAc;"}
1
+ {"version":3,"file":"DebounceInputField.es.js","sources":["../../../../src/components/forms/debounce-input/DebounceInputField.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport cn from \"classnames\";\nimport { DebounceInput } from \"react-debounce-input\";\nimport { AnimatePresence, motion } from \"framer-motion\";\nimport type { ReactNode } from \"react\";\n\nimport { Label } from \"../../data-display/label/Label\";\nimport type { LabelType } from \"../../data-display/label/Label\";\nimport { Typography } from \"../../data-display/typography/Typography\";\nimport type { ComponentProps } from \"react\";\nimport { InputLabel } from \"../shared/InputLabel\";\n\n/**\n * Props for the DebounceInputField component\n * Drop-in replacement matching the lax-web-portal API\n */\nexport type DebounceInputFieldProps = Omit<ComponentProps<typeof DebounceInput>, 'onChange'> & {\n /** Current value of the input */\n value: string;\n /** Callback function called when the input value changes (debounced) */\n onChange(data: any): void;\n /** Error message to display */\n errorMessage?: string;\n /** Default value for the input */\n defaultValue?: string;\n /** Whether the input is disabled */\n disabled?: boolean;\n /** Maximum value for number inputs */\n max?: number;\n /** Minimum value for number inputs */\n min?: number;\n /** Whether the field is required */\n required?: boolean;\n /** Background color class */\n bg?: string;\n /** Tags to display with the label */\n tags?: (string | LabelType)[];\n /** Text color class */\n color?: string;\n /** Unique identifier for the input */\n id: string;\n /** Label text for the input */\n label?: string;\n /** Input type (text, email, password, number, etc.) */\n type?: string;\n /** Placeholder text */\n placeholder?: string;\n /** Debounce timeout in milliseconds */\n debounceTimeout?: number;\n /** Additional CSS classes */\n className?: string;\n /** Whether dark mode is enabled (optional - uses CSS dark: classes if not provided) */\n isDarkMode?: boolean;\n /** Optional extra content in the label row (e.g. actions, badges) */\n labelExtra?: ReactNode;\n /** Input surface style: `'modified'` — Warning colors; `'deleted'` — Error colors, text #475467; `'success'` — Success colors, text #101828. */\n inputEmphasis?: \"default\" | \"modified\" | \"deleted\" | \"success\";\n};\n\n/**\n * A debounced input field component that delays onChange calls until the user stops typing.\n * This is a drop-in replacement for the lax-web-portal DebounceInputField component.\n *\n * @example\n * ```tsx\n * <DebounceInputField\n * id=\"search\"\n * label=\"Search\"\n * value={searchTerm}\n * onChange={(value) => setSearchTerm(value)}\n * debounceTimeout={300}\n * placeholder=\"Type to search...\"\n * errorMessage=\"\"\n * />\n * ```\n */\nexport const DebounceInputField = ({\n id,\n label,\n onChange,\n errorMessage,\n required,\n bg,\n tags,\n color,\n debounceTimeout = 0,\n className,\n isDarkMode: _isDarkMode,\n labelExtra,\n inputEmphasis = \"default\",\n ...props\n}: DebounceInputFieldProps) => {\n const { inputRef: _inputRef, ...rest } = props;\n const emphasisModifiedSkin = inputEmphasis === \"modified\" && !errorMessage;\n const emphasisDeletedSkin = inputEmphasis === \"deleted\" && !errorMessage;\n const emphasisSuccessSkin = inputEmphasis === \"success\" && !errorMessage;\n return (\n <div className={cn(\"flex flex-col\", className)}>\n {(label || labelExtra) && (\n <label\n htmlFor={id}\n className=\"block mb-1 text-xs font-medium leading-4 text-neutral-600 dark:text-black-300 font-inter capitalize\"\n >\n <div className=\"flex items-center justify-between gap-1\">\n <div className=\"inline-flex items-center gap-1 flex-wrap\">\n <InputLabel label={label || \"\"} required={required || false} />\n <Label labels={tags} />\n </div>\n {labelExtra}\n </div>\n </label>\n )}\n <label className=\"relative block h-8\">\n <DebounceInput\n {...rest}\n debounceTimeout={debounceTimeout}\n id={id}\n key={id}\n required={required}\n className={cn(\n \"border\",\n errorMessage ? \"!border-error-300\" :\n emphasisDeletedSkin ? \"border-[var(--Error-200,#FECACA)]\" :\n emphasisModifiedSkin ? \"border-[var(--Warning-200,#FEDF89)]\" :\n emphasisSuccessSkin ? \"border-[var(--Success-200,#BBF7D0)]\" :\n \"border-neutral-200 dark:border-black-600\",\n emphasisDeletedSkin ? \"!bg-[var(--Error-50,#FEF2F2)] !text-[#475467] disabled:!opacity-100\" :\n emphasisModifiedSkin ? \"!bg-[var(--Warning-50,#FFFAEB)] disabled:!opacity-100 disabled:!bg-[var(--Warning-50,#FFFAEB)]\" :\n emphasisSuccessSkin ? \"!bg-[var(--Success-50,#F0FDF4)] !text-[#101828] disabled:!opacity-100\" :\n \"dark:bg-black-700\",\n bg,\n color,\n !emphasisDeletedSkin && !emphasisModifiedSkin && !emphasisSuccessSkin && \"text-neutral-900 dark:text-neutral-100\",\n \"text-sm rounded-md\",\n \"focus:outline-none focus:ring-0\",\n emphasisDeletedSkin ? \"focus:border-[var(--Error-200,#FECACA)] focus:shadow-[0_0_0_2px_rgba(254,202,202,0.45)]\" :\n emphasisModifiedSkin ? \"focus:border-[var(--Warning-200,#FEDF89)] focus:shadow-[0_0_0_2px_rgba(254,223,137,0.45)]\" :\n emphasisSuccessSkin ? \"focus:border-[var(--Success-200,#BBF7D0)] focus:shadow-[0_0_0_2px_rgba(187,247,208,0.45)]\" :\n \"focus:border-[var(--color-primary-600)] dark:focus:border-[var(--color-primary-400)] focus:shadow-[0_0_0_1.5px_var(--color-primary-100)] dark:focus:shadow-[0_0_0_1.5px_var(--color-primary-950)]\",\n \"block w-full h-8 px-3 py-1.5 font-inter font-medium\",\n \"disabled:opacity-70 disabled:!bg-neutral-50 dark:disabled:!bg-black-800\"\n )}\n onChange={(e: React.ChangeEvent<HTMLInputElement>) => {\n onChange(e.target.value);\n }}\n autoComplete=\"off\"\n />\n </label>\n <AnimatePresence>\n {errorMessage && (\n <motion.div\n initial={{ opacity: 0, y: -5 }}\n animate={{ opacity: 1, y: 0 }}\n exit={{ opacity: 0, y: -5 }}\n transition={{ duration: 0.15 }}\n >\n <Typography\n className=\"pt-1 text-error-500\"\n appearance=\"custom\"\n size=\"extra-small\"\n variant=\"medium\"\n >\n {errorMessage}\n </Typography>\n </motion.div>\n )}\n </AnimatePresence>\n </div>\n );\n};\n\nDebounceInputField.displayName = \"DebounceInputField\";\n"],"names":["DebounceInputField","id","label","onChange","errorMessage","required","bg","tags","color","debounceTimeout","className","_isDarkMode","labelExtra","inputEmphasis","props","_inputRef","rest","emphasisModifiedSkin","emphasisDeletedSkin","emphasisSuccessSkin","cn","jsx","jsxs","InputLabel","Label","createElement","DebounceInput","e","AnimatePresence","motion","Typography"],"mappings":";;;;;;;;AA4EO,MAAMA,IAAqB,CAAC;AAAA,EACjC,IAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,cAAAC;AAAA,EACA,UAAAC;AAAA,EACA,IAAAC;AAAA,EACA,MAAAC;AAAA,EACA,OAAAC;AAAA,EACA,iBAAAC,IAAkB;AAAA,EAClB,WAAAC;AAAA,EACA,YAAYC;AAAA,EACZ,YAAAC;AAAA,EACA,eAAAC,IAAgB;AAAA,EAChB,GAAGC;AACL,MAA+B;AAC7B,QAAM,EAAE,UAAUC,GAAW,GAAGC,MAASF,GACnCG,IAAuBJ,MAAkB,cAAc,CAACT,GACxDc,IAAsBL,MAAkB,aAAa,CAACT,GACtDe,IAAsBN,MAAkB,aAAa,CAACT;AAC5D,2BACG,OAAA,EAAI,WAAWgB,EAAG,iBAAiBV,CAAS,GACzC,UAAA;AAAA,KAAAR,KAASU,MACT,gBAAAS;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,SAASpB;AAAA,QACT,WAAU;AAAA,QAEV,UAAA,gBAAAqB,EAAC,OAAA,EAAI,WAAU,2CACb,UAAA;AAAA,UAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,4CACb,UAAA;AAAA,YAAA,gBAAAD,EAACE,KAAW,OAAOrB,KAAS,IAAI,UAAUG,KAAY,IAAO;AAAA,YAC7D,gBAAAgB,EAACG,GAAA,EAAM,QAAQjB,EAAA,CAAM;AAAA,UAAA,GACvB;AAAA,UACCK;AAAA,QAAA,EAAA,CACH;AAAA,MAAA;AAAA,IAAA;AAAA,IAGJ,gBAAAS,EAAC,SAAA,EAAM,WAAU,sBACf,UAAA,gBAAAI;AAAA,MAACC;AAAA,MAAA;AAAA,QACE,GAAGV;AAAA,QACJ,iBAAAP;AAAA,QACA,IAAAR;AAAA,QACA,KAAKA;AAAA,QACL,UAAAI;AAAA,QACA,WAAWe;AAAA,UACT;AAAA,UACAhB,IAAe,sBACfc,IAAsB,sCACtBD,IAAuB,wCACvBE,IAAsB,wCACtB;AAAA,UACAD,IAAsB,wEACtBD,IAAuB,mGACvBE,IAAsB,0EACtB;AAAA,UACAb;AAAA,UACAE;AAAA,UACA,CAACU,KAAuB,CAACD,KAAwB,CAACE,KAAuB;AAAA,UACzE;AAAA,UACA;AAAA,UACAD,IAAsB,4FACtBD,IAAuB,8FACvBE,IAAsB,8FACtB;AAAA,UACA;AAAA,UACA;AAAA,QAAA;AAAA,QAEF,UAAU,CAACQ,MAA2C;AACpD,UAAAxB,EAASwB,EAAE,OAAO,KAAK;AAAA,QACzB;AAAA,QACA,cAAa;AAAA,MAAA;AAAA,IAAA,GAEjB;AAAA,IACA,gBAAAN,EAACO,KACE,UAAAxB,KACC,gBAAAiB;AAAA,MAACQ,EAAO;AAAA,MAAP;AAAA,QACC,SAAS,EAAE,SAAS,GAAG,GAAG,GAAA;AAAA,QAC1B,SAAS,EAAE,SAAS,GAAG,GAAG,EAAA;AAAA,QAC1B,MAAM,EAAE,SAAS,GAAG,GAAG,GAAA;AAAA,QACvB,YAAY,EAAE,UAAU,KAAA;AAAA,QAExB,UAAA,gBAAAR;AAAA,UAACS;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,YAAW;AAAA,YACX,MAAK;AAAA,YACL,SAAQ;AAAA,YAEP,UAAA1B;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAAA,EACF,CAEJ;AAAA,EAAA,GACF;AAEJ;AAEAJ,EAAmB,cAAc;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),r=require("../../../_virtual/index.cjs.js"),n=require("react"),H=require("../../data-display/typography/Typography.cjs.js"),Y=require("../../data-display/label/Label.cjs.js"),$=require("../../data-display/dynamic-data-modal/DynamicDataModal.cjs.js"),O=require("../../icons/AIExtractedIndicator.cjs.js"),P=require("../../icons/AIStarIcon.cjs.js"),U=require("../../icons/HelpIcon.cjs.js"),I=require("../../icons/EditIcon.cjs.js"),S=require("../../tooltip/Tooltip.cjs.js"),G=require("../shared/InputLabel.cjs.js"),t=require("../../../utils/confidenceScoreUtils.cjs.js"),N=k=>{const{id:q,label:D="",type:i="text",placeholder:f="",value:c,onChange:s,originalCase:v=!1,errorMessage:d="",required:m,bg:M,tags:w,index:E,className:T,tooltip:b="",simpleMode:A,inputFieldClassName:B,isAiExtracted:F=!1,confidenceScore:u,confidenceType:a="high",confidenceTooltip:p,sourceMeta:L=[],onConfidenceScoreClick:R,disabled:g=!1,...h}=k,[x,j]=n.useState(null),[y,V]=n.useState(!1),C=n.useRef(null);n.useEffect(()=>{j(null)},[E]),n.useEffect(()=>{x!==null&&s(x)},[x,s]);const o=()=>{V(!y)},z=l=>{j(l),o()};return e.jsxs(e.Fragment,{children:[A?e.jsxs("div",{className:"relative w-full h-full",children:[e.jsx("input",{type:i,placeholder:f,className:B,onChange:l=>{s(l.target.value)},ref:C,value:c?"{DYNAMIC}":"",disabled:!0,...h}),e.jsx("button",{id:"btn-dynamic-data-input-edit",onClick:o,className:r("absolute inset-y-0 right-0 flex items-center px-4 focus:border-transparent border-l",g?"cursor-not-allowed":""),disabled:g,type:"button",children:e.jsx(I.EditIcon,{})})]}):e.jsxs("div",{className:r("flex flex-col w-full",T),children:[e.jsxs("label",{htmlFor:"text",className:`mb-1 text-black-300 dark:text-black-300 inline-flex items-center gap-1 flex-wrap ${v?"":"capitalize"}`,children:[e.jsx(G.InputLabel,{label:D||"",required:m||!1}),F&&!t.shouldShowConfidenceScore(u)&&e.jsx(O.AIExtractedIndicator,{}),e.jsx(Y.Label,{labels:w}),b&&e.jsx(S,{placement:"top",title:b,children:e.jsx("div",{className:"cursor-pointer",children:e.jsx(U.HelpIcon,{})})}),t.shouldShowConfidenceScore(u)&&a?e.jsx(S,{placement:"top-end",title:p??"",hideTooltip:p==null,className:"cursor-pointer",children:e.jsxs("div",{className:r("inline-flex min-w-[50px] items-center gap-1 rounded-md px-1 py-0.5",t.getConfidenceScoreBadgeClass(a)),onClick:()=>R?.(L),children:[e.jsx(P.AIStarIcon,{size:12,fill:t.getConfidenceScoreBadgeColor(a),fillSecondary:t.getConfidenceScoreBadgeFill(a)}),e.jsxs("span",{className:r("text-xs font-medium leading-4",t.getConfidenceScoreBadgeTextColor(a)),children:[u,"%"]})]})}):null]}),e.jsxs("label",{className:"relative block",children:[e.jsx("input",{type:i,id:q,required:m,placeholder:f,className:r("border",d?"border-red-300 focus:border-red-300":"border-gray-300 dark:border-black-600 focus:border-blue-500 dark:focus:border-primary-400",M,"text-sm rounded-lg block w-full p-2.5 font-inter font-medium",i==="currency"?"pl-8":"","bg-white dark:bg-black-600 text-gray-900 dark:text-black-200"),onChange:l=>{s(l.target.value)},ref:C,value:c?"{DYNAMIC}":"",disabled:!0,autoComplete:"off",...h}),e.jsx("button",{onClick:o,className:"absolute inset-y-0 right-0 flex items-center px-4 focus:border-transparent border-l",type:"button",children:e.jsx(I.EditIcon,{})})]}),d&&e.jsx(H.Typography,{className:"text-error-500 mt-1 ",appearance:"custom",size:"extra-small",variant:"medium",children:d})]}),e.jsx($.DynamicDataModal,{isVisible:y,onChange:z,onClose:o,defaultValue:c})]})};N.displayName="DynamicDataInput";exports.DynamicDataInput=N;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),r=require("../../../_virtual/index.cjs.js"),n=require("react"),H=require("../../data-display/typography/Typography.cjs.js"),Y=require("../../data-display/label/Label.cjs.js"),$=require("../../data-display/dynamic-data-modal/DynamicDataModal.cjs.js"),O=require("../../icons/AIExtractedIndicator.cjs.js"),P=require("../../icons/AIStarIcon.cjs.js"),U=require("../../icons/HelpIcon.cjs.js"),I=require("../../icons/EditIcon.cjs.js"),S=require("../../tooltip/Tooltip.cjs.js"),G=require("../shared/InputLabel.cjs.js"),t=require("../../../utils/confidenceScoreUtils.cjs.js"),N=k=>{const{id:q,label:D="",type:i="text",placeholder:m="",value:c,onChange:s,originalCase:v=!1,errorMessage:d="",required:f,bg:M,tags:w,index:E,className:T,tooltip:b="",simpleMode:A,inputFieldClassName:B,isAiExtracted:F=!1,confidenceScore:u,confidenceType:a="high",confidenceTooltip:p,sourceMeta:L=[],onConfidenceScoreClick:R,disabled:g=!1,...h}=k,[x,j]=n.useState(null),[y,V]=n.useState(!1),C=n.useRef(null);n.useEffect(()=>{j(null)},[E]),n.useEffect(()=>{x!==null&&s(x)},[x,s]);const o=()=>{V(!y)},z=l=>{j(l),o()};return e.jsxs(e.Fragment,{children:[A?e.jsxs("div",{className:"relative w-full h-full",children:[e.jsx("input",{type:i,placeholder:m,className:B,onChange:l=>{s(l.target.value)},ref:C,value:c?"{DYNAMIC}":"",disabled:!0,...h}),e.jsx("button",{id:"btn-dynamic-data-input-edit",onClick:o,className:r("absolute inset-y-0 right-0 flex items-center px-4 focus:border-transparent border-l",g?"cursor-not-allowed":""),disabled:g,type:"button",children:e.jsx(I.EditIcon,{})})]}):e.jsxs("div",{className:r("flex flex-col w-full",T),children:[e.jsxs("label",{htmlFor:"text",className:`mb-1 text-black-300 dark:text-black-300 inline-flex items-center gap-1 flex-wrap ${v?"":"capitalize"}`,children:[e.jsx(G.InputLabel,{label:D||"",required:f||!1}),F&&!t.shouldShowConfidenceScore(u)&&e.jsx(O.AIExtractedIndicator,{}),e.jsx(Y.Label,{labels:w}),b&&e.jsx(S,{placement:"top",title:b,children:e.jsx("div",{className:"cursor-pointer",children:e.jsx(U.HelpIcon,{className:"w-icon-sm h-icon-sm"})})}),t.shouldShowConfidenceScore(u)&&a?e.jsx(S,{placement:"top-end",title:p??"",hideTooltip:p==null,className:"cursor-pointer",children:e.jsxs("div",{className:r("inline-flex min-w-[50px] items-center gap-1 rounded-md px-1 py-0.5",t.getConfidenceScoreBadgeClass(a)),onClick:()=>R?.(L),children:[e.jsx(P.AIStarIcon,{size:12,fill:t.getConfidenceScoreBadgeColor(a),fillSecondary:t.getConfidenceScoreBadgeFill(a)}),e.jsxs("span",{className:r("text-xs font-medium leading-4",t.getConfidenceScoreBadgeTextColor(a)),children:[u,"%"]})]})}):null]}),e.jsxs("label",{className:"relative block",children:[e.jsx("input",{type:i,id:q,required:f,placeholder:m,className:r("border",d?"border-red-300 focus:border-red-300":"border-gray-300 dark:border-black-600 focus:border-blue-500 dark:focus:border-primary-400",M,"text-sm rounded-lg block w-full p-2.5 font-inter font-medium",i==="currency"?"pl-8":"","bg-white dark:bg-black-600 text-gray-900 dark:text-black-200"),onChange:l=>{s(l.target.value)},ref:C,value:c?"{DYNAMIC}":"",disabled:!0,autoComplete:"off",...h}),e.jsx("button",{onClick:o,className:"absolute inset-y-0 right-0 flex items-center px-4 focus:border-transparent border-l",type:"button",children:e.jsx(I.EditIcon,{})})]}),d&&e.jsx(H.Typography,{className:"text-error-500 mt-1 ",appearance:"custom",size:"extra-small",variant:"medium",children:d})]}),e.jsx($.DynamicDataModal,{isVisible:y,onChange:z,onClose:o,defaultValue:c})]})};N.displayName="DynamicDataInput";exports.DynamicDataInput=N;
2
2
  //# sourceMappingURL=DynamicDataInput.cjs.js.map