@esri/calcite-components 5.2.0-next.99 → 5.2.1-next.0

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 (202) hide show
  1. package/README.md +1 -1
  2. package/dist/cdn/{UBVNE3FR.js → 26432722.js} +1 -1
  3. package/dist/cdn/{C2QTVMRZ.js → 2OVSYJAH.js} +1 -1
  4. package/dist/cdn/{CNEQCIJB.js → 2U77MGGA.js} +1 -1
  5. package/dist/cdn/{FLUGGEF5.js → 334JQBPO.js} +1 -1
  6. package/dist/cdn/{HZ2KFK3C.js → 33GDXJUX.js} +1 -1
  7. package/dist/cdn/{BPYFGYV6.js → 346YZ7VY.js} +1 -1
  8. package/dist/cdn/{SX33HSBC.js → 3B7QPJAS.js} +1 -1
  9. package/dist/cdn/3LM2LYNU.js +2 -0
  10. package/dist/cdn/3M6UKCCZ.js +2 -0
  11. package/dist/cdn/{GST32DAL.js → 3PTLQPY2.js} +1 -1
  12. package/dist/cdn/{ZKJVOU5M.js → 3U3X7DLG.js} +1 -1
  13. package/dist/cdn/{BANKSP32.js → 3VUB4NDR.js} +1 -1
  14. package/dist/cdn/{MW42632J.js → 3WMWTT7B.js} +1 -1
  15. package/dist/cdn/{4ZQAGLEN.js → 3ZHTQAFF.js} +1 -1
  16. package/dist/cdn/{OMZBU3IU.js → 3ZWBXTN2.js} +1 -1
  17. package/dist/cdn/{RVZ6FKKI.js → 42EK35NT.js} +1 -1
  18. package/dist/cdn/{DOVDZVPJ.js → 4AD2R7R5.js} +1 -1
  19. package/dist/cdn/{263AU5BP.js → 4DOP2ASQ.js} +1 -1
  20. package/dist/cdn/{XXWNYX3N.js → 4GNETAHI.js} +1 -1
  21. package/dist/cdn/{JAYFX3Q2.js → 56TWON4B.js} +1 -1
  22. package/dist/cdn/{MWXZ2MTK.js → 56XHFT5Y.js} +1 -1
  23. package/dist/cdn/{JFWDUC4M.js → 5HWWM56V.js} +1 -1
  24. package/dist/cdn/{73HUIP6T.js → 5NG5BQPF.js} +1 -1
  25. package/dist/cdn/{4HAPFKXF.js → 5RN2OKGO.js} +1 -1
  26. package/dist/cdn/{3Q2QX2LR.js → 6RUY5LCM.js} +1 -1
  27. package/dist/cdn/{5UAOUCGT.js → 6XRDQELB.js} +1 -1
  28. package/dist/cdn/{GDFZZ5E5.js → 72IWCFRM.js} +1 -1
  29. package/dist/cdn/{ETTFRHP7.js → 772CBSF6.js} +1 -1
  30. package/dist/cdn/{2TZMS7HF.js → 775IYAS6.js} +1 -1
  31. package/dist/cdn/{DS4P2F36.js → 7CDECM5P.js} +1 -1
  32. package/dist/cdn/{662PF6RJ.js → 7F5EEUNN.js} +1 -1
  33. package/dist/cdn/7HUVP2XV.js +2 -0
  34. package/dist/cdn/{J7CPCGSH.js → 7LYFIBL7.js} +1 -1
  35. package/dist/cdn/{NT5YKL2Y.js → 7PTYPMMV.js} +1 -1
  36. package/dist/cdn/A453LDV3.js +2 -0
  37. package/dist/cdn/{BRCQSLJQ.js → ADY7PQCS.js} +1 -1
  38. package/dist/cdn/{6ZPCDJMS.js → ADYGXA2N.js} +1 -1
  39. package/dist/cdn/ALZDXZUC.js +2 -0
  40. package/dist/cdn/{QYD7C2FO.js → B6OGNK6U.js} +1 -1
  41. package/dist/cdn/{44XJ3KOL.js → BMAI46HX.js} +1 -1
  42. package/dist/cdn/BOXFB3MP.js +2 -0
  43. package/dist/cdn/BOZAHMWY.js +2 -0
  44. package/dist/cdn/{CZX4YKQD.js → BQJ7QAYE.js} +1 -1
  45. package/dist/cdn/{52VPEAZH.js → C32EZMZW.js} +1 -1
  46. package/dist/cdn/C7LNM3HL.js +2 -0
  47. package/dist/cdn/{UKC7IODK.js → CDL5BNMN.js} +1 -1
  48. package/dist/cdn/{RXMQKTJR.js → CGH75CRF.js} +1 -1
  49. package/dist/cdn/{VFG4QJAL.js → CIYHSKF7.js} +1 -1
  50. package/dist/cdn/{BWNRKMS3.js → CTOCYTTR.js} +1 -1
  51. package/dist/cdn/{RJD35A5I.js → CTU5B3KC.js} +1 -1
  52. package/dist/cdn/{O2MNYT36.js → D4LLO72M.js} +1 -1
  53. package/dist/cdn/{REPXCTLA.js → D5HDV7HK.js} +1 -1
  54. package/dist/cdn/{ZEMJW5ZS.js → D7TWWF44.js} +1 -1
  55. package/dist/cdn/{RF3IKZ6O.js → DAP2VPDF.js} +1 -1
  56. package/dist/cdn/DHIYO6UH.js +2 -0
  57. package/dist/cdn/{DUNEDDAA.js → DJ65KHTT.js} +1 -1
  58. package/dist/cdn/{7FW2RVVH.js → DJD3CC5A.js} +1 -1
  59. package/dist/cdn/{3ANAA5WY.js → DJYRMK2C.js} +1 -1
  60. package/dist/cdn/{ILBDCXZZ.js → DL6SAQV4.js} +1 -1
  61. package/dist/cdn/{W4GTBLDU.js → DUDIVZGQ.js} +1 -1
  62. package/dist/cdn/{CSEY77KQ.js → EDXHLHEK.js} +1 -1
  63. package/dist/cdn/{D3AIPJFM.js → EIN7DQT3.js} +1 -1
  64. package/dist/cdn/{LCOU5YFI.js → EPJ7IFKU.js} +1 -1
  65. package/dist/cdn/{EOMTBPAM.js → EPKTJSSB.js} +1 -1
  66. package/dist/cdn/{X5QYKRNO.js → ERCK54DE.js} +1 -1
  67. package/dist/cdn/{SAZM37N6.js → FK326MY2.js} +1 -1
  68. package/dist/cdn/{YK6HNEMU.js → FNUTZYME.js} +1 -1
  69. package/dist/cdn/{BDRS3Y7M.js → FX5TGPAH.js} +1 -1
  70. package/dist/cdn/{XDANG4JV.js → FY7WEDQN.js} +1 -1
  71. package/dist/cdn/{M4XG6CGT.js → GMW5MPTM.js} +1 -1
  72. package/dist/cdn/GPD7HV23.js +2 -0
  73. package/dist/cdn/{QMRRNFHH.js → GZB75XBH.js} +1 -1
  74. package/dist/cdn/{IWH5NWUU.js → H7MGP25S.js} +1 -1
  75. package/dist/cdn/{Y6NAKDFA.js → HLIFWDQP.js} +1 -1
  76. package/dist/cdn/{RYMSHLIL.js → HZD5H23F.js} +1 -1
  77. package/dist/cdn/{TJBZHXEN.js → IJCFTYMJ.js} +1 -1
  78. package/dist/cdn/{PQ32Y6ZL.js → IOW5Z3SU.js} +1 -1
  79. package/dist/cdn/{DA4JUDJU.js → IWJQSMI4.js} +1 -1
  80. package/dist/cdn/{IHEH67LY.js → IYBRY24I.js} +1 -1
  81. package/dist/cdn/{I64YUHND.js → J6B5W6HH.js} +1 -1
  82. package/dist/cdn/{MTE46QCF.js → JI6NSKEV.js} +1 -1
  83. package/dist/cdn/{Y5J3BTH5.js → JJBJM2OJ.js} +1 -1
  84. package/dist/cdn/{RF2E4GRH.js → JNAEVEX5.js} +1 -1
  85. package/dist/cdn/{VW7FW6X2.js → JREPH2VL.js} +1 -1
  86. package/dist/cdn/{F2L2ICEF.js → K5XFENR7.js} +1 -1
  87. package/dist/cdn/{ELUBDVXJ.js → KCZJNER5.js} +1 -1
  88. package/dist/cdn/{J2FCKTAY.js → KQ4OCUO5.js} +1 -1
  89. package/dist/cdn/{Q2QSOF52.js → KSEF3TLS.js} +1 -1
  90. package/dist/cdn/{SHDRKD4O.js → KT6KY52P.js} +1 -1
  91. package/dist/cdn/{RCMSIMRP.js → KWN4MM3A.js} +1 -1
  92. package/dist/cdn/{HKZCFBV6.js → L7HFUK3G.js} +1 -1
  93. package/dist/cdn/{U53QKA4H.js → LIVPCPCA.js} +1 -1
  94. package/dist/cdn/{OZ4ROR63.js → MYUTWQWX.js} +1 -1
  95. package/dist/cdn/N6YOEFSV.js +2 -0
  96. package/dist/cdn/{Y6WHZAVU.js → N7N4MLB5.js} +1 -1
  97. package/dist/cdn/{5IFCTQIP.js → NDMUDXOZ.js} +1 -1
  98. package/dist/cdn/{QHYM366B.js → OJF5T5XY.js} +1 -1
  99. package/dist/cdn/{4SNLHQMJ.js → OW3U6T5J.js} +1 -1
  100. package/dist/cdn/{TPNBE2KI.js → OZOFR2GG.js} +1 -1
  101. package/dist/cdn/{DS7YC5ST.js → P6COGUMV.js} +1 -1
  102. package/dist/cdn/{A7S6MND4.js → PENOU5TN.js} +1 -1
  103. package/dist/cdn/{SC5XD7BD.js → PK2LDDBD.js} +1 -1
  104. package/dist/cdn/{3EL6KHB5.js → PMNFYSIR.js} +1 -1
  105. package/dist/cdn/{XZAMAONP.js → Q7WVCTBI.js} +1 -1
  106. package/dist/cdn/{2CNPC3OB.js → Q7Y5B4LB.js} +1 -1
  107. package/dist/cdn/{W3AEBEFX.js → QN6HNGLX.js} +1 -1
  108. package/dist/cdn/{5GISDVW5.js → QY7SDLEE.js} +1 -1
  109. package/dist/cdn/{WBHWBQHC.js → QYPTOYKS.js} +1 -1
  110. package/dist/cdn/{WFDVIUN7.js → RBPNU6ST.js} +1 -1
  111. package/dist/cdn/{JPDFANDQ.js → RCYZC42B.js} +1 -1
  112. package/dist/cdn/{PCI32ZDN.js → RDQHRWAK.js} +1 -1
  113. package/dist/cdn/{VB7JSUGB.js → RLUYZW3I.js} +1 -1
  114. package/dist/cdn/{4EHMEDLA.js → RW3VK62K.js} +1 -1
  115. package/dist/cdn/{UTSMZR73.js → RZRNVNLI.js} +1 -1
  116. package/dist/cdn/S4RYGITQ.js +2 -0
  117. package/dist/cdn/{TEOM4B4H.js → SAJGDBME.js} +1 -1
  118. package/dist/cdn/{44TFJRAK.js → SDPL45JE.js} +1 -1
  119. package/dist/cdn/{NAAFIXAF.js → SHV2W3BT.js} +1 -1
  120. package/dist/cdn/{N7LHYCP2.js → SKIVG43Z.js} +1 -1
  121. package/dist/cdn/{ZW6MT5KC.js → SR3EXOYY.js} +1 -1
  122. package/dist/cdn/{EES3BYY6.js → SU6QY5JA.js} +1 -1
  123. package/dist/cdn/{G5STALAI.js → SXAKRLPD.js} +1 -1
  124. package/dist/cdn/{KAVQKU3G.js → TBASJIIB.js} +1 -1
  125. package/dist/cdn/{7TYZDEGX.js → THP73LXL.js} +1 -1
  126. package/dist/cdn/{4VWHZFWR.js → TMJ22U5Z.js} +1 -1
  127. package/dist/cdn/TRBOVZT3.js +2 -0
  128. package/dist/cdn/{FRBCEYOV.js → UDQVMJ3S.js} +1 -1
  129. package/dist/cdn/{QQJJAYFU.js → UHIKZXRW.js} +1 -1
  130. package/dist/cdn/{GBRMQ3Q7.js → UV7KRWJF.js} +1 -1
  131. package/dist/cdn/UVCV5QVD.js +2 -0
  132. package/dist/cdn/{LQXCFNQS.js → UW77EV26.js} +1 -1
  133. package/dist/cdn/{ZL33K4C6.js → V5PEJNTB.js} +1 -1
  134. package/dist/cdn/{WDWHQGW6.js → VNA3UADR.js} +1 -1
  135. package/dist/cdn/VRVEOLT7.js +2 -0
  136. package/dist/cdn/{7FGFRTEF.js → VVVZYRRF.js} +1 -1
  137. package/dist/cdn/{WL3SJO7Q.js → WGPN42CN.js} +1 -1
  138. package/dist/cdn/{C65CLC4T.js → WI4ZFF5B.js} +1 -1
  139. package/dist/cdn/{V4PS7I6J.js → X6P74FM4.js} +1 -1
  140. package/dist/cdn/{3VHU2XEB.js → XYYLHYLL.js} +1 -1
  141. package/dist/cdn/{U6EJO5OV.js → YPAZP7GT.js} +1 -1
  142. package/dist/cdn/{ZKQDDLKK.js → YUHXCHM2.js} +1 -1
  143. package/dist/cdn/{HOOKFRJ5.js → ZJNPO53J.js} +1 -1
  144. package/dist/cdn/{BAXRS5AA.js → ZJU6M5HF.js} +1 -1
  145. package/dist/cdn/{TWOJRSW4.js → ZLBIDSOY.js} +1 -1
  146. package/dist/cdn/{ZYDS4IYB.js → ZNTPEW2R.js} +1 -1
  147. package/dist/cdn/{ZMIPEDSX.js → ZPUQDWIV.js} +1 -1
  148. package/dist/cdn/{J4ESZ24C.js → ZU3ZHGYC.js} +1 -1
  149. package/dist/cdn/index.js +2 -2
  150. package/dist/cdn/main.css +2 -2
  151. package/dist/chunks/dom.js +7 -1
  152. package/dist/chunks/resources25.js +0 -1
  153. package/dist/chunks/runtime.js +4 -4
  154. package/dist/chunks/useInlineEdit.js +16 -3
  155. package/dist/components/calcite-action/customElement.d.ts +0 -4
  156. package/dist/components/calcite-action-bar/customElement.js +0 -6
  157. package/dist/components/calcite-block-group/customElement.d.ts +4 -4
  158. package/dist/components/calcite-date-picker/customElement.js +9 -6
  159. package/dist/components/calcite-input/customElement.d.ts +18 -16
  160. package/dist/components/calcite-input/customElement.js +9 -4
  161. package/dist/components/calcite-input-number/customElement.d.ts +18 -16
  162. package/dist/components/calcite-input-number/customElement.js +8 -4
  163. package/dist/components/calcite-input-text/customElement.d.ts +18 -16
  164. package/dist/components/calcite-input-text/customElement.js +8 -4
  165. package/dist/components/calcite-input-time-zone/customElement.d.ts +2 -0
  166. package/dist/components/calcite-input-time-zone/customElement.js +2 -2
  167. package/dist/components/calcite-loader/customElement.js +2 -1
  168. package/dist/components/calcite-menu-item/customElement.js +1 -1
  169. package/dist/components/calcite-shell/customElement.js +3 -56
  170. package/dist/components/calcite-shell-panel/customElement.d.ts +0 -2
  171. package/dist/components/calcite-shell-panel/customElement.js +13 -88
  172. package/dist/components/calcite-slider/customElement.js +1 -1
  173. package/dist/components/calcite-text/customElement.d.ts +19 -0
  174. package/dist/components/calcite-text/customElement.js +174 -0
  175. package/dist/components/calcite-text/index.d.ts +1 -0
  176. package/dist/components/calcite-text/index.js +1 -0
  177. package/dist/docs/api.json +1 -1
  178. package/dist/docs/docs.json +1 -1
  179. package/dist/docs/vscode.css-custom-data.json +1 -1
  180. package/dist/docs/vscode.html-custom-data.json +1 -1
  181. package/dist/docs/web-types.json +1 -1
  182. package/dist/index.d.ts +4 -0
  183. package/dist/loader.js +3 -2
  184. package/dist/types/lumina.d.ts +7 -2
  185. package/dist/types/preact.d.ts +8 -2
  186. package/dist/types/react.d.ts +9 -2
  187. package/dist/types/stencil.d.ts +7 -2
  188. package/package.json +8 -8
  189. package/dist/cdn/2AZPDNN5.js +0 -2
  190. package/dist/cdn/2WGPIXZA.js +0 -2
  191. package/dist/cdn/CGZCRVLV.js +0 -2
  192. package/dist/cdn/EFKVMB36.js +0 -2
  193. package/dist/cdn/FAAQEW6G.js +0 -2
  194. package/dist/cdn/MOTVD3GS.js +0 -2
  195. package/dist/cdn/OORHTUDV.js +0 -2
  196. package/dist/cdn/QHQOBCL5.js +0 -2
  197. package/dist/cdn/SIBUXQXU.js +0 -2
  198. package/dist/cdn/SYTC5OFS.js +0 -2
  199. package/dist/cdn/UK4JBUQZ.js +0 -2
  200. package/dist/cdn/WTI76WPS.js +0 -2
  201. package/dist/cdn/ZEYKF5ZX.js +0 -2
  202. package/dist/cdn/ZLGAOOX7.js +0 -2
@@ -12,19 +12,31 @@ const InlineEditControls = ({ cancelEditingLabel, confirmChangesLabel, inlineEdi
12
12
  html`<calcite-action .ariaLabel=${confirmChangesLabel} class=${safeClassMap(CSS.confirmChanges)} .disabled=${loading} icon=check .loading=${loading} @click=${onConfirmChanges} .scale=${scale} .text=${confirmChangesLabel} title=${confirmChangesLabel ?? nothing} type=button></calcite-action>`,
13
13
  html`<calcite-action .ariaLabel=${cancelEditingLabel} class=${safeClassMap(CSS.cancelEditing)} .disabled=${loading} icon=x @click=${onCancelEditing} .scale=${scale} .text=${cancelEditingLabel} title=${cancelEditingLabel ?? nothing} type=button></calcite-action>`
14
14
  ] || ""}</div>`;
15
+ const INLINE_EDIT_ACTIVATION_SOURCE = {
16
+ editButton: "edit-button",
17
+ input: "input"
18
+ };
15
19
  class UseInlineEdit {
16
20
  constructor(options) {
17
21
  this.options = options;
18
22
  this.valuePriorToEditing = "";
19
23
  }
20
- enable() {
21
- this.valuePriorToEditing = this.options.getValue();
24
+ enable(source = INLINE_EDIT_ACTIVATION_SOURCE.input) {
25
+ this.captureValuePriorToEditing();
22
26
  this.options.setInlineEditing(true);
23
27
  requestAnimationFrame(() => {
24
- this.options.setFocus();
28
+ this.options.setFocus(source);
25
29
  });
26
30
  this.options.emitEnableEditingChange();
27
31
  }
32
+ setCaretPosition(input, source) {
33
+ if (source === INLINE_EDIT_ACTIVATION_SOURCE.editButton && input && input.selectionStart !== null) {
34
+ input.setSelectionRange(input.value.length, input.value.length);
35
+ }
36
+ }
37
+ captureValuePriorToEditing() {
38
+ this.valuePriorToEditing = this.options.getValue();
39
+ }
28
40
  disable() {
29
41
  this.options.setInlineEditing(false);
30
42
  }
@@ -61,5 +73,6 @@ export {
61
73
  CSS as C,
62
74
  InlineEditControls as I,
63
75
  UseInlineEdit as U,
76
+ INLINE_EDIT_ACTIVATION_SOURCE as a,
64
77
  inlineEditConverter as i
65
78
  };
@@ -73,10 +73,6 @@ export abstract class Action extends LitElement {
73
73
  /**
74
74
  * Specifies the appearance of the component.
75
75
  *
76
- * @deprecated
77
- * in v5.0.0, removal target v7.0.0 - No longer necessary for `"transparent"`.
78
- *
79
- * For a `"solid"` appearance, use the component's background color tokens instead.
80
76
  * @default "transparent"
81
77
  */
82
78
  accessor appearance: Extract<"solid" | "transparent", Appearance>;
@@ -190,12 +190,6 @@ class ActionBar extends LitElement {
190
190
  return;
191
191
  }
192
192
  const { width, height } = entry.contentRect;
193
- const axis = this.layout === "horizontal" ? "width" : "height";
194
- const size = axis === "width" ? width : height;
195
- if (this.lastOverflowAxisSize?.axis === axis && this.lastOverflowAxisSize.size === size) {
196
- return;
197
- }
198
- this.lastOverflowAxisSize = { axis, size };
199
193
  this.resize({ width, height });
200
194
  };
201
195
  this.resizeObserver = createObserver("resize", (entries) => this.resizeHandlerEntries(entries));
@@ -22,13 +22,13 @@ export abstract class BlockGroup extends LitElement {
22
22
  */
23
23
  accessor dragEnabled: boolean;
24
24
  /**
25
- * Specifies the selection mode of the component, where:
25
+ * Specifies the expansion mode of the component, where:
26
26
  *
27
- * `"multiple"` allows any number of selections,
27
+ * `"multiple"` allows any number of `calcite-block`s to be expanded,
28
28
  *
29
- * `"single"` allows only one selection, and
29
+ * `"single"` allows only one `calcite-block` to be expanded, and
30
30
  *
31
- * `"single-persist"` allows one selection and prevents de-selection.
31
+ * `"single-persist"` allows one `calcite-block` to be expanded and prevents collapsing.
32
32
  *
33
33
  * @default "multiple"
34
34
  */
@@ -3,7 +3,7 @@ import { l as logger, c as customElement } from "../../chunks/runtime.js";
3
3
  import { css, isServer, html } from "lit";
4
4
  import { isEqual } from "es-toolkit";
5
5
  import { LitElement, createEvent, safeClassMap } from "@arcgis/lumina";
6
- import { d as dateFromISO, a as dateToISO, n as nextMonth, p as prevMonth, k as getDaysDiff, b as dateFromRange, s as sameDate, j as getFirstValidDateInMonth, i as inRange } from "../../chunks/date.js";
6
+ import { d as dateFromISO, a as dateToISO, n as nextMonth, p as prevMonth, k as getDaysDiff, b as dateFromRange, s as sameDate, j as getFirstValidDateInMonth, i as inRange, h as hasSameMonthAndYear } from "../../chunks/date.js";
7
7
  import { n as numberStringFormatter, g as getDateTimeFormat } from "../../chunks/locale.js";
8
8
  import { u as useT9n } from "../../chunks/useT9n.js";
9
9
  import { u as useFocusable } from "../../chunks/useFocusable.js";
@@ -380,12 +380,15 @@ class DatePicker extends LitElement {
380
380
  this.activeStartDate = this.getActiveDate(startDate, this.minAsDate, this.maxAsDate);
381
381
  this.activeEndDate = this.getActiveEndDate(endDate, this.minAsDate, this.maxAsDate);
382
382
  if (sameDate(this.activeStartDate, this.activeEndDate)) {
383
- const previousMonthActiveDate = getFirstValidDateInMonth(this.activeEndDate ? prevMonth(this.activeEndDate) : void 0, this.minAsDate, this.maxAsDate);
384
- const nextMonthActiveDate = this.activeEndDate ? nextMonth(this.activeEndDate) : void 0;
385
- if (inRange(previousMonthActiveDate, this.minAsDate, this.maxAsDate)) {
386
- this.activeStartDate = previousMonthActiveDate;
387
- } else if (inRange(nextMonthActiveDate, this.minAsDate, this.maxAsDate)) {
383
+ const nextMonthDate = this.activeEndDate ? nextMonth(this.activeEndDate) : void 0;
384
+ const nextMonthActiveDate = inRange(nextMonthDate, this.minAsDate, this.maxAsDate) ? nextMonthDate : getFirstValidDateInMonth(nextMonthDate, this.minAsDate, this.maxAsDate);
385
+ if (hasSameMonthAndYear(nextMonthActiveDate, nextMonthDate) && inRange(nextMonthActiveDate, this.minAsDate, this.maxAsDate)) {
388
386
  this.activeEndDate = nextMonthActiveDate;
387
+ } else if (this.calendars === 2) {
388
+ const previousMonthActiveDate = getFirstValidDateInMonth(this.activeStartDate ? prevMonth(this.activeStartDate) : void 0, this.minAsDate, this.maxAsDate);
389
+ if (inRange(previousMonthActiveDate, this.minAsDate, this.maxAsDate)) {
390
+ this.activeStartDate = previousMonthActiveDate;
391
+ }
389
392
  }
390
393
  }
391
394
  }
@@ -45,21 +45,21 @@ export interface DeclareCssProperties {
45
45
  "--calcite-input-loading-background-color": "*";
46
46
  /** When `loading`, specifies the fill color of the component's `loading` element. */
47
47
  "--calcite-input-loading-fill-color": "*";
48
- /** When `inline-edit` is enabled, specifies the background color of the component, its inline edit elements and slotted `calcite-action` wrappers, when hovered. */
48
+ /** When `inlineEdit` is defined and `inlineEditing` is not set, specifies the component's background color when hovered. */
49
49
  "--calcite-input-inline-edit-background-color-hover": "*";
50
- /** When `inline-edit` is enabled, specifies the background color of the component's inline edit controls. */
50
+ /** When `inlineEdit` is defined, specifies the background color of the component's editing controls. */
51
51
  "--calcite-input-inline-edit-control-background-color": "*";
52
- /** When `inline-edit` is enabled, specifies the background color of the component's inline edit controls, when hovered. */
52
+ /** When `inlineEdit` is defined, specifies the background color of the component's editing controls when hovered. */
53
53
  "--calcite-input-inline-edit-control-background-color-hover": "*";
54
- /** When `inline-edit` is enabled, specifies the background color of the component's inline edit controls, when pressed. */
54
+ /** When `inlineEdit` is defined, specifies the background color of the component's editing controls when pressed. */
55
55
  "--calcite-input-inline-edit-control-background-color-press": "*";
56
- /** When `inline-edit` is enabled, specifies the corner radius of the component's inline edit controls. */
56
+ /** When `inlineEdit` is defined, specifies the corner radius of the component's editing controls. */
57
57
  "--calcite-input-inline-edit-control-corner-radius": "*";
58
- /** When `inline-edit` is enabled, specifies the loader color of the component's inline edit controls. */
58
+ /** When `inlineEdit` is `true`, specifies the loader color of the component's confirm control. */
59
59
  "--calcite-input-inline-edit-control-loader-color": "*";
60
- /** When `inline-edit` is enabled, specifies the text color of the component's inline edit controls. */
60
+ /** When `inlineEdit` is defined, specifies the text color of the component's editing controls. */
61
61
  "--calcite-input-inline-edit-control-text-color": "*";
62
- /** When `inline-edit` is enabled, specifies the text color of the component's inline edit controls, when pressed or hovered. */
62
+ /** When `inlineEdit` is defined, specifies the text color of the component's editing controls when pressed or hovered. */
63
63
  "--calcite-input-inline-edit-control-text-color-press": "*";
64
64
  }
65
65
  }
@@ -125,18 +125,20 @@ export abstract class Input extends LitElement {
125
125
  */
126
126
  accessor iconFlipRtl: boolean;
127
127
  /**
128
- * Enables built-in inline editing. Set to `"controls-disabled"` to hide save and cancel controls.
128
+ * Enables inline editing. When not editing, the component displays without a border.
129
+ * When `true`, edits must be saved or cancelled via controls.
130
+ * When `"controls-disabled"` is specified, edits are saved on blur.
129
131
  *
130
132
  * @default false
131
133
  */
132
134
  accessor inlineEdit: boolean | "controls-disabled";
133
135
  /**
134
- * When `true`, the component displays its inline editing mode.
136
+ * When `true` and `inlineEdit` is defined, the component is editable.
135
137
  *
136
138
  * @default false
137
139
  */
138
140
  accessor inlineEditing: boolean;
139
- /** Specifies an optional callback to be executed when saving inline editing changes, inline edit controls must be present */
141
+ /** When `inlineEdit` is `true`, specifies a callback to be run when changes are saved. */
140
142
  accessor inlineEditingBeforeConfirm: (() => Promise<void>) | undefined;
141
143
  /** Specifies an accessible label for the component. */
142
144
  accessor label: string | undefined;
@@ -292,15 +294,15 @@ export abstract class Input extends LitElement {
292
294
  * @see [MDN - focus(options)](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus#options)
293
295
  */
294
296
  setFocus(options?: FocusOptions): Promise<void>;
295
- /** Fires each time a new `value` is typed and committed. */
297
+ /** Fires each time a new `value` is committed. */
296
298
  readonly calciteInputChange: import("@arcgis/lumina").TargetedEvent<this, void>;
297
- /** Fires when built-in inline editing is cancelled. */
299
+ /** When `inlineEdit` is defined, fires when editing is cancelled. */
298
300
  readonly calciteInputInlineEditingCancel: import("@arcgis/lumina").TargetedEvent<this, void>;
299
- /** Fires when built-in inline editing is enabled or disabled. */
301
+ /** When `inlineEdit` is defined, fires when `inlineEditing` is enabled or disabled. */
300
302
  readonly calciteInputInlineEditingChange: import("@arcgis/lumina").TargetedEvent<this, void>;
301
- /** Fires after built-in inline editing confirmation completes. */
303
+ /** When `inlineEdit` is `true`, fires after editing is confirmed. */
302
304
  readonly calciteInputInlineEditingConfirm: import("@arcgis/lumina").TargetedEvent<this, void>;
303
- /** Fires each time a new `value` is typed. */
305
+ /** When `inlineEdit` is `false`, fires each time a new `value` is typed. */
304
306
  readonly calciteInputInput: import("@arcgis/lumina").TargetedEvent<this, void>;
305
307
  readonly "@eventTypes": {
306
308
  calciteInputChange: Input["calciteInputChange"]["detail"];
@@ -13,7 +13,7 @@ import { i as isValidNumber, B as BigDecimal, n as numberStringFormatter, p as p
13
13
  import { u as useLabel } from "../../chunks/useLabel.js";
14
14
  import { g as getIconScale } from "../../chunks/component.js";
15
15
  import { I as InternalLabel } from "../../chunks/InternalLabel.js";
16
- import { U as UseInlineEdit, i as inlineEditConverter, C as CSS$1, I as InlineEditControls } from "../../chunks/useInlineEdit.js";
16
+ import { U as UseInlineEdit, i as inlineEditConverter, C as CSS$1, I as InlineEditControls, a as INLINE_EDIT_ACTIVATION_SOURCE } from "../../chunks/useInlineEdit.js";
17
17
  import { V as Validation } from "../../chunks/Validation.js";
18
18
  import { u as useT9n } from "../../chunks/useT9n.js";
19
19
  import { u as useFocusable } from "../../chunks/useFocusable.js";
@@ -94,8 +94,10 @@ class Input extends LitElement {
94
94
  this.restoreInlineEditingValue(value);
95
95
  },
96
96
  commitValue: () => this.commitInlineEditingValue(),
97
- setFocus: () => {
98
- void this.setFocus();
97
+ setFocus: async (source) => {
98
+ await this.setFocus();
99
+ const input = this.type === "number" ? this.childNumberRef.value : this.childRef.value;
100
+ this.inlineEditManager.setCaretPosition(input, source);
99
101
  },
100
102
  emitCancel: () => {
101
103
  this.calciteInputInlineEditingCancel.emit();
@@ -213,6 +215,9 @@ class Input extends LitElement {
213
215
  }
214
216
  }
215
217
  willUpdate(changes) {
218
+ if (changes.has("inlineEditing") && this.inlineEditing) {
219
+ this.inlineEditManager.captureValuePriorToEditing();
220
+ }
216
221
  if (changes.has("max")) {
217
222
  this.maxString = this.max?.toString() ?? void 0;
218
223
  }
@@ -695,7 +700,7 @@ class Input extends LitElement {
695
700
  [CSS_UTILITY.rtl]: dir === "rtl",
696
701
  [CSS.hasSuffix]: this.suffixText,
697
702
  [CSS.hasPrefix]: this.prefixText
698
- })} ${ref(this.inputWrapperRef)}><div class=${safeClassMap(CSS.wrapper)}>${this.loading ? loader : null}${this.type === "number" && this.numberButtonType === "horizontal" && !this.readOnly ? numberButtonsHorizontalDown : null}${this.prefixText ? prefixText : null}${this.requestedIcon ? iconEl : null}${localeNumberInput}${childEl}${this.isClearable ? clearButton : null}${this.suffixText ? suffixText : null}${this.type === "number" && this.numberButtonType === "horizontal" && !this.readOnly ? numberButtonsHorizontalUp : null}${this.type === "number" && this.numberButtonType === "vertical" && !this.readOnly ? numberButtonsVertical : null}</div>${this.selfManagedInlineEdit && html`<div class=${safeClassMap(CSS.inlineEdit)}>${InlineEditControls({ cancelEditingLabel: this.messages.cancelInlineEditing, confirmChangesLabel: this.messages.confirmInlineEditingChanges, enableEditingButtonRef: this.enableInlineEditingButtonRef, enableEditingLabel: this.messages.enableInlineEditing, inlineEditing: this.inlineEditing, loading: this.inlineEditingLoading, onCancelEditing: this.inlineEditCancelEditingHandler, onConfirmChanges: this.inlineEditConfirmChangesHandler, onEnableEditing: () => this.inlineEditManager.enable(), scale: this.scale, showControls: this.inlineEditing && !this.inlineEditControlsDisabled })}</div>` || ""}<div class=${safeClassMap(CSS.actionWrapper)} ${ref(this.actionWrapperRef)}><slot name=${SLOTS.action}></slot></div></div>${this.validationMessage && this.status === "invalid" ? Validation({ icon: this.validationIcon, id: IDS.validationMessage, message: this.validationMessage, scale: this.scale, status: this.status }) : null}` });
703
+ })} ${ref(this.inputWrapperRef)}><div class=${safeClassMap(CSS.wrapper)}>${this.loading ? loader : null}${this.type === "number" && this.numberButtonType === "horizontal" && !this.readOnly ? numberButtonsHorizontalDown : null}${this.prefixText ? prefixText : null}${this.requestedIcon ? iconEl : null}${localeNumberInput}${childEl}${this.isClearable ? clearButton : null}${this.suffixText ? suffixText : null}${this.type === "number" && this.numberButtonType === "horizontal" && !this.readOnly ? numberButtonsHorizontalUp : null}${this.type === "number" && this.numberButtonType === "vertical" && !this.readOnly ? numberButtonsVertical : null}</div>${this.selfManagedInlineEdit && html`<div class=${safeClassMap(CSS.inlineEdit)}>${InlineEditControls({ cancelEditingLabel: this.messages.cancelInlineEditing, confirmChangesLabel: this.messages.confirmInlineEditingChanges, enableEditingButtonRef: this.enableInlineEditingButtonRef, enableEditingLabel: this.messages.enableInlineEditing, inlineEditing: this.inlineEditing, loading: this.inlineEditingLoading, onCancelEditing: this.inlineEditCancelEditingHandler, onConfirmChanges: this.inlineEditConfirmChangesHandler, onEnableEditing: () => this.inlineEditManager.enable(INLINE_EDIT_ACTIVATION_SOURCE.editButton), scale: this.scale, showControls: this.inlineEditing && !this.inlineEditControlsDisabled })}</div>` || ""}<div class=${safeClassMap(CSS.actionWrapper)} ${ref(this.actionWrapperRef)}><slot name=${SLOTS.action}></slot></div></div>${this.validationMessage && this.status === "invalid" ? Validation({ icon: this.validationIcon, id: IDS.validationMessage, message: this.validationMessage, scale: this.scale, status: this.status }) : null}` });
699
704
  }
700
705
  }
701
706
  customElement("calcite-input", Input);
@@ -47,21 +47,21 @@ export interface DeclareCssProperties {
47
47
  "--calcite-input-suffix-size": "*";
48
48
  /** When `suffixText` is provided, specifies the text color of the component's suffix element. */
49
49
  "--calcite-input-suffix-text-color": "*";
50
- /** When `inline-edit` is enabled, specifies the background color of the component, its inline edit elements and slotted `calcite-action` wrappers, when hovered. */
50
+ /** When `inlineEdit` is defined and `inlineEditing` is not set, specifies the component's background color when hovered. */
51
51
  "--calcite-input-number-inline-edit-background-color-hover": "*";
52
- /** When `inline-edit` is enabled, specifies the background color of the component's inline edit controls. */
52
+ /** When `inlineEdit` is defined, specifies the background color of the component's editing controls. */
53
53
  "--calcite-input-number-inline-edit-control-background-color": "*";
54
- /** When `inline-edit` is enabled, specifies the background color of the component's inline edit controls, when hovered. */
54
+ /** When `inlineEdit` is defined, specifies the background color of the component's editing controls when hovered. */
55
55
  "--calcite-input-number-inline-edit-control-background-color-hover": "*";
56
- /** When `inline-edit` is enabled, specifies the background color of the component's inline edit controls, when pressed. */
56
+ /** When `inlineEdit` is defined, specifies the background color of the component's editing controls when pressed. */
57
57
  "--calcite-input-number-inline-edit-control-background-color-press": "*";
58
- /** When `inline-edit` is enabled, specifies the corner radius of the component's inline edit controls. */
58
+ /** When `inlineEdit` is defined, specifies the corner radius of the component's editing controls. */
59
59
  "--calcite-input-number-inline-edit-control-corner-radius": "*";
60
- /** When `inline-edit` is enabled, specifies the loader color of the component's inline edit controls. */
60
+ /** When `inlineEdit` is `true`, specifies the loader color of the component's confirm control. */
61
61
  "--calcite-input-number-inline-edit-control-loader-color": "*";
62
- /** When `inline-edit` is enabled, specifies the text color of the component's inline edit controls. */
62
+ /** When `inlineEdit` is defined, specifies the text color of the component's editing controls. */
63
63
  "--calcite-input-number-inline-edit-control-text-color": "*";
64
- /** When `inline-edit` is enabled, specifies the text color of the component's inline edit controls, when pressed or hovered. */
64
+ /** When `inlineEdit` is defined, specifies the text color of the component's editing controls when pressed or hovered. */
65
65
  "--calcite-input-number-inline-edit-control-text-color-press": "*";
66
66
  }
67
67
  }
@@ -118,18 +118,20 @@ export abstract class InputNumber extends LitElement {
118
118
  */
119
119
  accessor iconFlipRtl: boolean;
120
120
  /**
121
- * Enables built-in inline editing. Set to `"controls-disabled"` to hide save and cancel controls.
121
+ * Enables inline editing. When not editing, the component displays without a border.
122
+ * When `true`, edits must be saved or cancelled via controls.
123
+ * When `"controls-disabled"` is specified, edits are saved on blur.
122
124
  *
123
125
  * @default false
124
126
  */
125
127
  accessor inlineEdit: boolean | "controls-disabled";
126
128
  /**
127
- * When `true`, the component displays its inline editing mode.
129
+ * When `true` and `inlineEdit` is defined, the component is editable.
128
130
  *
129
131
  * @default false
130
132
  */
131
133
  accessor inlineEditing: boolean;
132
- /** Specifies an optional callback to be executed when saving inline editing changes, inline editing controls must be present */
134
+ /** When `inlineEdit` is `true`, specifies a callback to be run when changes are saved. */
133
135
  accessor inlineEditingBeforeConfirm: (() => Promise<void>) | undefined;
134
136
  /**
135
137
  * When `true`, restricts the component to integer numbers only and disables exponential notation.
@@ -269,15 +271,15 @@ export abstract class InputNumber extends LitElement {
269
271
  * @see [MDN - focus(options)](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus#options)
270
272
  */
271
273
  setFocus(options?: FocusOptions): Promise<void>;
272
- /** Fires each time a new `value` is typed and committed. */
274
+ /** Fires each time a new `value` is committed. */
273
275
  readonly calciteInputNumberChange: import("@arcgis/lumina").TargetedEvent<this, void>;
274
- /** Fires when built-in inline editing is cancelled. */
276
+ /** When `inlineEdit` is defined, fires when editing is cancelled. */
275
277
  readonly calciteInputNumberInlineEditingCancel: import("@arcgis/lumina").TargetedEvent<this, void>;
276
- /** Fires when built-in inline editing is enabled or disabled. */
278
+ /** When `inlineEdit` is defined, fires when `inlineEditing` is enabled or disabled. */
277
279
  readonly calciteInputNumberInlineEditingChange: import("@arcgis/lumina").TargetedEvent<this, void>;
278
- /** Fires after built-in inline editing confirmation completes. */
280
+ /** When `inlineEdit` is `true`, fires after editing is confirmed. */
279
281
  readonly calciteInputNumberInlineEditingConfirm: import("@arcgis/lumina").TargetedEvent<this, void>;
280
- /** Fires each time a new `value` is typed. */
282
+ /** When `inlineEdit` is `false`, fires each time a new `value` is typed. */
281
283
  readonly calciteInputNumberInput: import("@arcgis/lumina").TargetedEvent<this, void>;
282
284
  readonly "@eventTypes": {
283
285
  calciteInputNumberChange: InputNumber["calciteInputNumberChange"]["detail"];
@@ -14,7 +14,7 @@ import { i as isValidNumber, n as numberStringFormatter, B as BigDecimal, p as p
14
14
  import { g as getIconScale } from "../../chunks/component.js";
15
15
  import { C as ClearButton } from "../../chunks/ClearButton.js";
16
16
  import { I as InternalLabel } from "../../chunks/InternalLabel.js";
17
- import { U as UseInlineEdit, i as inlineEditConverter, C as CSS$1, I as InlineEditControls } from "../../chunks/useInlineEdit.js";
17
+ import { U as UseInlineEdit, i as inlineEditConverter, C as CSS$1, I as InlineEditControls, a as INLINE_EDIT_ACTIVATION_SOURCE } from "../../chunks/useInlineEdit.js";
18
18
  import { V as Validation } from "../../chunks/Validation.js";
19
19
  import { u as useT9n } from "../../chunks/useT9n.js";
20
20
  import { u as useFocusable } from "../../chunks/useFocusable.js";
@@ -85,8 +85,9 @@ class InputNumber extends LitElement {
85
85
  this.restoreInlineEditingValue(value);
86
86
  },
87
87
  commitValue: () => this.commitInlineEditingValue(),
88
- setFocus: () => {
89
- void this.setFocus();
88
+ setFocus: async (source) => {
89
+ await this.setFocus();
90
+ this.inlineEditManager.setCaretPosition(this.childNumberRef.value, source);
90
91
  },
91
92
  emitCancel: () => {
92
93
  this.calciteInputNumberInlineEditingCancel.emit();
@@ -200,6 +201,9 @@ class InputNumber extends LitElement {
200
201
  }
201
202
  }
202
203
  willUpdate(changes) {
204
+ if (changes.has("inlineEditing") && this.inlineEditing) {
205
+ this.inlineEditManager.captureValuePriorToEditing();
206
+ }
203
207
  if (changes.has("max")) {
204
208
  this.maxString = this.max?.toString() || void 0;
205
209
  }
@@ -661,7 +665,7 @@ class InputNumber extends LitElement {
661
665
  [CSS.hasSuffix]: this.suffixText,
662
666
  [CSS.hasPrefix]: this.prefixText,
663
667
  [CSS.clearable]: this.isClearable
664
- })} ${ref(this.inputWrapperRef)}><div class=${safeClassMap(CSS.wrapper)}>${this.loading ? loader : null}${this.numberButtonType === "horizontal" && !this.readOnly ? numberButtonsHorizontalDown : null}${this.prefixText ? prefixText : null}${this.requestedIcon ? iconEl : null}${childEl}${this.isClearable ? clearButton : null}${this.suffixText ? suffixText : null}${this.numberButtonType === "horizontal" && !this.readOnly ? numberButtonsHorizontalUp : null}${this.numberButtonType === "vertical" && !this.readOnly ? numberButtonsVertical : null}</div>${this.selfManagedInlineEdit && html`<div class=${safeClassMap(CSS.inlineEdit)}>${InlineEditControls({ cancelEditingLabel: this.messages.cancelInlineEditing, confirmChangesLabel: this.messages.confirmInlineEditingChanges, enableEditingButtonRef: this.enableInlineEditingButtonRef, enableEditingLabel: this.messages.enableInlineEditing, inlineEditing: this.inlineEditing, loading: this.inlineEditingLoading, onCancelEditing: this.inlineEditCancelEditingHandler, onConfirmChanges: this.inlineEditConfirmChangesHandler, onEnableEditing: () => this.inlineEditManager.enable(), scale: this.scale, showControls: this.inlineEditing && !this.inlineEditControlsDisabled })}</div>` || ""}<div class=${safeClassMap(CSS.actionWrapper)} ${ref(this.actionWrapperRef)}><slot name=${SLOTS.action}></slot></div></div>${this.validationMessage && this.status === "invalid" ? Validation({ icon: this.validationIcon, id: IDS.validationMessage, message: this.validationMessage, scale: this.scale, status: this.status }) : null}` });
668
+ })} ${ref(this.inputWrapperRef)}><div class=${safeClassMap(CSS.wrapper)}>${this.loading ? loader : null}${this.numberButtonType === "horizontal" && !this.readOnly ? numberButtonsHorizontalDown : null}${this.prefixText ? prefixText : null}${this.requestedIcon ? iconEl : null}${childEl}${this.isClearable ? clearButton : null}${this.suffixText ? suffixText : null}${this.numberButtonType === "horizontal" && !this.readOnly ? numberButtonsHorizontalUp : null}${this.numberButtonType === "vertical" && !this.readOnly ? numberButtonsVertical : null}</div>${this.selfManagedInlineEdit && html`<div class=${safeClassMap(CSS.inlineEdit)}>${InlineEditControls({ cancelEditingLabel: this.messages.cancelInlineEditing, confirmChangesLabel: this.messages.confirmInlineEditingChanges, enableEditingButtonRef: this.enableInlineEditingButtonRef, enableEditingLabel: this.messages.enableInlineEditing, inlineEditing: this.inlineEditing, loading: this.inlineEditingLoading, onCancelEditing: this.inlineEditCancelEditingHandler, onConfirmChanges: this.inlineEditConfirmChangesHandler, onEnableEditing: () => this.inlineEditManager.enable(INLINE_EDIT_ACTIVATION_SOURCE.editButton), scale: this.scale, showControls: this.inlineEditing && !this.inlineEditControlsDisabled })}</div>` || ""}<div class=${safeClassMap(CSS.actionWrapper)} ${ref(this.actionWrapperRef)}><slot name=${SLOTS.action}></slot></div></div>${this.validationMessage && this.status === "invalid" ? Validation({ icon: this.validationIcon, id: IDS.validationMessage, message: this.validationMessage, scale: this.scale, status: this.status }) : null}` });
665
669
  }
666
670
  }
667
671
  customElement("calcite-input-number", InputNumber);
@@ -21,21 +21,21 @@ export interface DeclareCssProperties {
21
21
  "--calcite-input-loading-background-color": "*";
22
22
  /** When `loading`, specifies the fill color of the component`s `loading` element. */
23
23
  "--calcite-input-loading-fill-color": "*";
24
- /** When `inline-edit` is enabled, specifies the background color of the component, its inline edit elements and slotted `calcite-action` wrappers, when hovered. */
24
+ /** When `inlineEdit` is defined and `inlineEditing` is not set, specifies the component's background color when hovered. */
25
25
  "--calcite-input-text-inline-edit-background-color-hover": "*";
26
- /** When `inline-edit` is enabled, specifies the background color of the component's inline edit controls. */
26
+ /** When `inlineEdit` is defined, specifies the background color of the component's editing controls. */
27
27
  "--calcite-input-text-inline-edit-control-background-color": "*";
28
- /** When `inline-edit` is enabled, specifies the background color of the component's inline edit controls, when hovered. */
28
+ /** When `inlineEdit` is defined, specifies the background color of the component's editing controls when hovered. */
29
29
  "--calcite-input-text-inline-edit-control-background-color-hover": "*";
30
- /** When `inline-edit` is enabled, specifies the background color of the component's inline edit controls, when pressed. */
30
+ /** When `inlineEdit` is defined, specifies the background color of the component's editing controls when pressed. */
31
31
  "--calcite-input-text-inline-edit-control-background-color-press": "*";
32
- /** When `inline-edit` is enabled, specifies the corner radius of the component's inline edit controls. */
32
+ /** When `inlineEdit` is defined, specifies the corner radius of the component's editing controls. */
33
33
  "--calcite-input-text-inline-edit-control-corner-radius": "*";
34
- /** When `inline-edit` is enabled, specifies the loader color of the component's inline edit controls. */
34
+ /** When `inlineEdit` is `true`, specifies the loader color of the component's confirm control. */
35
35
  "--calcite-input-text-inline-edit-control-loader-color": "*";
36
- /** When `inline-edit` is enabled, specifies the text color of the component's inline edit controls. */
36
+ /** When `inlineEdit` is defined, specifies the text color of the component's editing controls. */
37
37
  "--calcite-input-text-inline-edit-control-text-color": "*";
38
- /** When `inline-edit` is enabled, specifies the text color of the component's inline edit controls, when pressed or hovered. */
38
+ /** When `inlineEdit` is defined, specifies the text color of the component's editing controls when pressed or hovered. */
39
39
  "--calcite-input-text-inline-edit-control-text-color-press": "*";
40
40
  /** When `prefixText` is provided, specifies the width of the component's prefix element. */
41
41
  "--calcite-input-prefix-size-x": "*";
@@ -108,18 +108,20 @@ export abstract class InputText extends LitElement {
108
108
  */
109
109
  accessor iconFlipRtl: boolean;
110
110
  /**
111
- * Enables built-in inline editing. Set to `"controls-disabled"` to hide save and cancel controls.
111
+ * Enables inline editing. When not editing, the component displays without a border.
112
+ * When `true`, edits must be saved or cancelled via controls.
113
+ * When `"controls-disabled"` is specified, edits are saved on blur.
112
114
  *
113
115
  * @default false
114
116
  */
115
117
  accessor inlineEdit: boolean | "controls-disabled";
116
118
  /**
117
- * When `true`, the component displays its inline editing mode.
119
+ * When `true` and `inlineEdit` is defined, the component is editable.
118
120
  *
119
121
  * @default false
120
122
  */
121
123
  accessor inlineEditing: boolean;
122
- /** Specifies an optional callback to be executed when saving inline editing changes, inline edit controls must be present */
124
+ /** When `inlineEdit` is `true`, specifies a callback to be run when changes are saved. */
123
125
  accessor inlineEditingBeforeConfirm: (() => Promise<void>) | undefined;
124
126
  /** Specifies an accessible label for the component. */
125
127
  accessor label: string | undefined;
@@ -231,15 +233,15 @@ export abstract class InputText extends LitElement {
231
233
  * @see [MDN - focus(options)](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus#options)
232
234
  */
233
235
  setFocus(options?: FocusOptions): Promise<void>;
234
- /** Fires each time a new `value` is typed and committed. */
236
+ /** Fires each time a new `value` is committed. */
235
237
  readonly calciteInputTextChange: import("@arcgis/lumina").TargetedEvent<this, void>;
236
- /** Fires when built-in inline editing is cancelled. */
238
+ /** When `inlineEdit` is defined, fires when editing is cancelled. */
237
239
  readonly calciteInputTextInlineEditingCancel: import("@arcgis/lumina").TargetedEvent<this, void>;
238
- /** Fires when built-in inline editing is enabled or disabled. */
240
+ /** When `inlineEdit` is defined, fires when `inlineEditing` is enabled or disabled. */
239
241
  readonly calciteInputTextInlineEditingChange: import("@arcgis/lumina").TargetedEvent<this, void>;
240
- /** Fires after built-in inline editing confirmation completes. */
242
+ /** When `inlineEdit` is `true`, fires after editing is confirmed. */
241
243
  readonly calciteInputTextInlineEditingConfirm: import("@arcgis/lumina").TargetedEvent<this, void>;
242
- /** Fires each time a new `value` is typed. */
244
+ /** When `inlineEdit` is `false`, fires each time a new `value` is typed. */
243
245
  readonly calciteInputTextInput: import("@arcgis/lumina").TargetedEvent<this, void>;
244
246
  readonly "@eventTypes": {
245
247
  calciteInputTextChange: InputText["calciteInputTextChange"]["detail"];
@@ -12,7 +12,7 @@ import { u as useLabel } from "../../chunks/useLabel.js";
12
12
  import { g as getIconScale } from "../../chunks/component.js";
13
13
  import { C as ClearButton } from "../../chunks/ClearButton.js";
14
14
  import { I as InternalLabel } from "../../chunks/InternalLabel.js";
15
- import { U as UseInlineEdit, i as inlineEditConverter, C as CSS$1, I as InlineEditControls } from "../../chunks/useInlineEdit.js";
15
+ import { U as UseInlineEdit, i as inlineEditConverter, C as CSS$1, I as InlineEditControls, a as INLINE_EDIT_ACTIVATION_SOURCE } from "../../chunks/useInlineEdit.js";
16
16
  import { V as Validation } from "../../chunks/Validation.js";
17
17
  import { u as useT9n } from "../../chunks/useT9n.js";
18
18
  import { u as useFocusable } from "../../chunks/useFocusable.js";
@@ -70,8 +70,9 @@ class InputText extends LitElement {
70
70
  this.restoreInlineEditingValue(value);
71
71
  },
72
72
  commitValue: () => this.commitInlineEditingValue(),
73
- setFocus: () => {
74
- void this.setFocus();
73
+ setFocus: async (source) => {
74
+ await this.setFocus();
75
+ this.inlineEditManager.setCaretPosition(this.childRef.value, source);
75
76
  },
76
77
  emitCancel: () => {
77
78
  this.calciteInputTextInlineEditingCancel.emit();
@@ -163,6 +164,9 @@ class InputText extends LitElement {
163
164
  this.setPreviousValue(this.value);
164
165
  }
165
166
  willUpdate(changes) {
167
+ if (changes.has("inlineEditing") && this.inlineEditing) {
168
+ this.inlineEditManager.captureValuePriorToEditing();
169
+ }
166
170
  if (changes.has("icon")) {
167
171
  this.requestedIcon = setRequestedIcon({}, this.icon, "text");
168
172
  }
@@ -392,7 +396,7 @@ class InputText extends LitElement {
392
396
  [CSS.clearable]: this.isClearable,
393
397
  [CSS.hasSuffix]: this.suffixText,
394
398
  [CSS.hasPrefix]: this.prefixText
395
- })} ${ref(this.inputWrapperRef)}><div class=${safeClassMap(CSS.wrapper)}>${this.loading ? loader : null}${this.prefixText ? prefixText : null}${this.requestedIcon ? iconEl : null}${childEl}${this.isClearable ? clearButton : null}${this.suffixText ? suffixText : null}</div>${this.selfManagedInlineEdit && html`<div class=${safeClassMap(CSS.inlineEdit)}>${InlineEditControls({ cancelEditingLabel: this.messages.cancelInlineEditing, confirmChangesLabel: this.messages.confirmInlineEditingChanges, enableEditingButtonRef: this.enableInlineEditingButtonRef, enableEditingLabel: this.messages.enableInlineEditing, inlineEditing: this.inlineEditing, loading: this.inlineEditingLoading, onCancelEditing: this.inlineEditCancelEditingHandler, onConfirmChanges: this.inlineEditConfirmChangesHandler, onEnableEditing: () => this.inlineEditManager.enable(), scale: this.scale, showControls: this.inlineEditing && !this.inlineEditControlsDisabled })}</div>` || ""}<div class=${safeClassMap(CSS.actionWrapper)} ${ref(this.actionWrapperRef)}><slot name=${SLOTS.action}></slot></div></div>${this.validationMessage && this.status === "invalid" ? Validation({ icon: this.validationIcon, id: IDS.validationMessage, message: this.validationMessage, scale: this.scale, status: this.status }) : null}` });
399
+ })} ${ref(this.inputWrapperRef)}><div class=${safeClassMap(CSS.wrapper)}>${this.loading ? loader : null}${this.prefixText ? prefixText : null}${this.requestedIcon ? iconEl : null}${childEl}${this.isClearable ? clearButton : null}${this.suffixText ? suffixText : null}</div>${this.selfManagedInlineEdit && html`<div class=${safeClassMap(CSS.inlineEdit)}>${InlineEditControls({ cancelEditingLabel: this.messages.cancelInlineEditing, confirmChangesLabel: this.messages.confirmInlineEditingChanges, enableEditingButtonRef: this.enableInlineEditingButtonRef, enableEditingLabel: this.messages.enableInlineEditing, inlineEditing: this.inlineEditing, loading: this.inlineEditingLoading, onCancelEditing: this.inlineEditCancelEditingHandler, onConfirmChanges: this.inlineEditConfirmChangesHandler, onEnableEditing: () => this.inlineEditManager.enable(INLINE_EDIT_ACTIVATION_SOURCE.editButton), scale: this.scale, showControls: this.inlineEditing && !this.inlineEditControlsDisabled })}</div>` || ""}<div class=${safeClassMap(CSS.actionWrapper)} ${ref(this.actionWrapperRef)}><slot name=${SLOTS.action}></slot></div></div>${this.validationMessage && this.status === "invalid" ? Validation({ icon: this.validationIcon, id: IDS.validationMessage, message: this.validationMessage, scale: this.scale, status: this.status }) : null}` });
396
400
  }
397
401
  }
398
402
  customElement("calcite-input-text", InputText);
@@ -30,6 +30,8 @@ export abstract class InputTimeZone extends LitElement {
30
30
  accessor disabled: boolean;
31
31
  /** Specifies the `id` of the component's associated form. When not set, the component is associated with its ancestor form element, if one exists. */
32
32
  accessor form: string | undefined;
33
+ /** Specifies an accessible label for the component. */
34
+ accessor label: string | undefined;
33
35
  /** Specifies the component's label text. */
34
36
  accessor labelText: string | undefined;
35
37
  /**
@@ -233,7 +233,7 @@ class InputTimeZone extends LitElement {
233
233
  useLabel(this);
234
234
  }
235
235
  static {
236
- this.properties = { selectedTimeZoneItem: [16, {}, { state: true }], timeZoneItems: [16, {}, { state: true }], clearable: [7, {}, { reflect: true, type: Boolean }], disabled: [7, {}, { reflect: true, type: Boolean }], form: [3, {}, { reflect: true }], labelText: 1, maxItems: [11, {}, { reflect: true, type: Number }], messageOverrides: [0, {}, { attribute: false }], mode: [3, {}, { reflect: true }], name: [3, {}, { reflect: true }], offsetStyle: [3, {}, { reflect: true }], open: [7, {}, { reflect: true, type: Boolean }], overlayPositioning: [3, {}, { reflect: true }], placeholder: 1, readOnly: [7, {}, { reflect: true, type: Boolean }], referenceDate: 1, required: [7, {}, { reflect: true, type: Boolean }], scale: [3, {}, { reflect: true }], status: [3, {}, { reflect: true }], topLayerDisabled: [7, {}, { reflect: true, type: Boolean }], validationIcon: [3, { converter: stringOrBoolean }, { reflect: true }], validationMessage: 1, validity: [32, {}, { readOnly: true, attribute: false }], value: 1 };
236
+ this.properties = { selectedTimeZoneItem: [16, {}, { state: true }], timeZoneItems: [16, {}, { state: true }], clearable: [7, {}, { reflect: true, type: Boolean }], disabled: [7, {}, { reflect: true, type: Boolean }], form: [3, {}, { reflect: true }], label: 1, labelText: 1, maxItems: [11, {}, { reflect: true, type: Number }], messageOverrides: [0, {}, { attribute: false }], mode: [3, {}, { reflect: true }], name: [3, {}, { reflect: true }], offsetStyle: [3, {}, { reflect: true }], open: [7, {}, { reflect: true, type: Boolean }], overlayPositioning: [3, {}, { reflect: true }], placeholder: 1, readOnly: [7, {}, { reflect: true, type: Boolean }], referenceDate: 1, required: [7, {}, { reflect: true, type: Boolean }], scale: [3, {}, { reflect: true }], status: [3, {}, { reflect: true }], topLayerDisabled: [7, {}, { reflect: true, type: Boolean }], validationIcon: [3, { converter: stringOrBoolean }, { reflect: true }], validationMessage: 1, validity: [32, {}, { readOnly: true, attribute: false }], value: 1 };
237
237
  }
238
238
  static {
239
239
  this.formAssociated = true;
@@ -404,7 +404,7 @@ class InputTimeZone extends LitElement {
404
404
  return !metadata.country || open || !selected ? label : getSelectedRegionTimeZoneLabel(label, metadata.country, this.messages);
405
405
  }
406
406
  render() {
407
- return this.interactiveContainer({ disabled: this.disabled, children: html`<calcite-combobox .clearDisabled=${!this.clearable} .disabled=${this.disabled} .label=${this.messages.chooseTimeZone} .labelText=${this.labelText} lang=${this.messages._lang ?? nothing} .maxItems=${this.maxItems} @calciteComboboxBeforeClose=${this.onComboboxBeforeClose} @calciteComboboxBeforeOpen=${this.onComboboxBeforeOpen} @calciteComboboxChange=${this.onComboboxChange} @calciteComboboxClose=${this.onComboboxClose} @calciteComboboxOpen=${this.onComboboxOpen} .overlayPositioning=${this.overlayPositioning} .placeholder=${this.placeholder || this.messages[`${this.mode}Placeholder`]} placeholder-icon=search .readOnly=${this.readOnly} .required=${this.required} .scale=${this.scale} .selectionMode=${this.clearable ? "single" : "single-persist"} .status=${this.status} .topLayerDisabled=${this.topLayerDisabled} .validationIcon=${this.validationIcon} .validationMessage=${this.validationMessage} ${ref(this.comboboxRef)}>${this.renderItems()}<slot name=${SLOTS.labelContent} slot=${SLOTS$1.labelContent}></slot></calcite-combobox>` });
407
+ return this.interactiveContainer({ disabled: this.disabled, children: html`<calcite-combobox .clearDisabled=${!this.clearable} .disabled=${this.disabled} .label=${this.label || this.messages.chooseTimeZone} .labelText=${this.labelText} lang=${this.messages._lang ?? nothing} .maxItems=${this.maxItems} @calciteComboboxBeforeClose=${this.onComboboxBeforeClose} @calciteComboboxBeforeOpen=${this.onComboboxBeforeOpen} @calciteComboboxChange=${this.onComboboxChange} @calciteComboboxClose=${this.onComboboxClose} @calciteComboboxOpen=${this.onComboboxOpen} .overlayPositioning=${this.overlayPositioning} .placeholder=${this.placeholder || this.messages[`${this.mode}Placeholder`]} placeholder-icon=search .readOnly=${this.readOnly} .required=${this.required} .scale=${this.scale} .selectionMode=${this.clearable ? "single" : "single-persist"} .status=${this.status} .topLayerDisabled=${this.topLayerDisabled} .validationIcon=${this.validationIcon} .validationMessage=${this.validationMessage} ${ref(this.comboboxRef)}>${this.renderItems()}<slot name=${SLOTS.labelContent} slot=${SLOTS$1.labelContent}></slot></calcite-combobox>` });
408
408
  }
409
409
  renderItems() {
410
410
  if (this.mode === "region") {
@@ -80,6 +80,7 @@ class Loader extends LitElement {
80
80
  const { el, inline, label, text, type, value } = this;
81
81
  const id = el.id || guid();
82
82
  const isDeterminate = type !== "indeterminate";
83
+ const hasValueLabel = type === "determinate-value";
83
84
  const valueNow = Math.floor(value);
84
85
  this.el.ariaLabel = label;
85
86
  this.el.ariaValueMax = isDeterminate ? "100" : null;
@@ -87,7 +88,7 @@ class Loader extends LitElement {
87
88
  this.el.ariaValueNow = isDeterminate ? valueNow.toString() : null;
88
89
  setAttribute(this.el, "id", id);
89
90
  this.el.role = "progressbar";
90
- return html`<div class=${safeClassMap(CSS.rings)}>${this.renderRing("track")}${this.renderRing("progress")}${!inline && isDeterminate && html`<div class=${safeClassMap(CSS.percentage)}>${this.formatValue()}</div>` || ""}</div>${!inline && text && html`<div class=${safeClassMap(CSS.text)}>${text}</div>` || ""}`;
91
+ return html`<div class=${safeClassMap(CSS.rings)}>${this.renderRing("track")}${this.renderRing("progress")}${!inline && hasValueLabel && html`<div class=${safeClassMap(CSS.percentage)}>${this.formatValue()}</div>` || ""}</div>${!inline && text && html`<div class=${safeClassMap(CSS.text)}>${text}</div>` || ""}`;
91
92
  }
92
93
  renderRing(type) {
93
94
  const { inline, scale, value } = this;