@esri/calcite-components 5.2.0-next.98 → 5.2.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/{NJWHTLO4.js → 27NSJ3NC.js} +1 -1
  3. package/dist/cdn/{CB7LBQT3.js → 2MIERRJC.js} +1 -1
  4. package/dist/cdn/{OA2F2QZD.js → 2UCFIX3M.js} +1 -1
  5. package/dist/cdn/{ZFHUWYTE.js → 2VDNYLFE.js} +1 -1
  6. package/dist/cdn/{G2Q54OVF.js → 37KAQ4EV.js} +1 -1
  7. package/dist/cdn/{CFKBHINS.js → 3TUYJ6X4.js} +1 -1
  8. package/dist/cdn/{57UKXRWQ.js → 3UUFTFPC.js} +1 -1
  9. package/dist/cdn/{LMOFSYY3.js → 4CKWPATT.js} +1 -1
  10. package/dist/cdn/{VM4MUEFU.js → 4WU5FTJY.js} +1 -1
  11. package/dist/cdn/{NMMOB5LN.js → 53AO6SIJ.js} +1 -1
  12. package/dist/cdn/{HJJVHKD6.js → 5FTRHJ6W.js} +1 -1
  13. package/dist/cdn/{YU7CZHUG.js → 5GN63MWE.js} +1 -1
  14. package/dist/cdn/{4V62T27S.js → 5JRUTA2A.js} +1 -1
  15. package/dist/cdn/{OZJZY4BD.js → 5OCUJ4C5.js} +1 -1
  16. package/dist/cdn/{5YPGNRBF.js → 5QO2P6GI.js} +1 -1
  17. package/dist/cdn/{HBLFGSL3.js → 5VAMNX3B.js} +1 -1
  18. package/dist/cdn/{2A5EX3YM.js → 62CIR36Q.js} +1 -1
  19. package/dist/cdn/{WUJB2SSD.js → 6CH35SN4.js} +1 -1
  20. package/dist/cdn/6RLYKZIV.js +2 -0
  21. package/dist/cdn/{ITDPHRH5.js → 6S64CJRZ.js} +1 -1
  22. package/dist/cdn/{2EXBSJGA.js → 6SQTT7Z6.js} +1 -1
  23. package/dist/cdn/{AYHKYWGP.js → 6WFEQ2Z6.js} +1 -1
  24. package/dist/cdn/{AWUEMKOH.js → 6XZQRE5F.js} +1 -1
  25. package/dist/cdn/{7RXDF3B4.js → 6ZBREHXS.js} +1 -1
  26. package/dist/cdn/{5BCBG6T5.js → 6ZSIHUKO.js} +1 -1
  27. package/dist/cdn/{X4KWJUYD.js → 75HPA4BR.js} +1 -1
  28. package/dist/cdn/{4PNLKRIY.js → 7LERFY2L.js} +1 -1
  29. package/dist/cdn/{PPQE4UKN.js → 7M4TWHXM.js} +1 -1
  30. package/dist/cdn/{CKCFQ6II.js → 7RILCHYN.js} +1 -1
  31. package/dist/cdn/{QUK7RWWJ.js → 7WFGQILO.js} +1 -1
  32. package/dist/cdn/7Y3Z7SXE.js +2 -0
  33. package/dist/cdn/{CKTA5V2U.js → AJLFAFPK.js} +1 -1
  34. package/dist/cdn/{DOXK3WVW.js → ATYPU7K3.js} +1 -1
  35. package/dist/cdn/{QHNHQQ43.js → AYQOJ3VX.js} +1 -1
  36. package/dist/cdn/{VDEW2F53.js → AYXAUSXM.js} +1 -1
  37. package/dist/cdn/{JSRTYZXJ.js → BIM2GIKZ.js} +1 -1
  38. package/dist/cdn/{MI4AXTIU.js → BR6IQ4MI.js} +1 -1
  39. package/dist/cdn/{FPSKFROG.js → BSJMRW26.js} +1 -1
  40. package/dist/cdn/{X6HFIETC.js → BSPW6SRO.js} +1 -1
  41. package/dist/cdn/BSXWJ5BI.js +2 -0
  42. package/dist/cdn/{LUEXTAYW.js → BXVKMQL6.js} +1 -1
  43. package/dist/cdn/{3ITKAZS7.js → CJ4MNQVH.js} +1 -1
  44. package/dist/cdn/{6HDX4I2O.js → CW6MPKMI.js} +1 -1
  45. package/dist/cdn/{HA7WV73Y.js → CYK6CXXC.js} +1 -1
  46. package/dist/cdn/{XFLBLAHI.js → D37DWI2Z.js} +1 -1
  47. package/dist/cdn/{XLKHDOUY.js → DAALP2LM.js} +1 -1
  48. package/dist/cdn/{BKM63VLU.js → DIPELQOB.js} +1 -1
  49. package/dist/cdn/{7FW2RVVH.js → DJD3CC5A.js} +1 -1
  50. package/dist/cdn/{2E2PBGN5.js → DNIMYOKJ.js} +1 -1
  51. package/dist/cdn/{Q5E5RICU.js → DNKKEOPE.js} +1 -1
  52. package/dist/cdn/DP22R3BB.js +2 -0
  53. package/dist/cdn/{ZBFAZKHY.js → DPWIAZNN.js} +1 -1
  54. package/dist/cdn/{7IJLLQ2G.js → DQSSRRNX.js} +1 -1
  55. package/dist/cdn/{TLMYIVKK.js → DW7QYPEX.js} +1 -1
  56. package/dist/cdn/{NALY4WMJ.js → DWAKXY4G.js} +1 -1
  57. package/dist/cdn/{WGZQFFFM.js → EK2LCVRD.js} +1 -1
  58. package/dist/cdn/{SQWOPX56.js → ESSQB6HQ.js} +1 -1
  59. package/dist/cdn/{W2N7KP7H.js → EV7CXLZP.js} +1 -1
  60. package/dist/cdn/{LE7S5GRA.js → F4BSY6FM.js} +1 -1
  61. package/dist/cdn/F4LZH6AB.js +2 -0
  62. package/dist/cdn/{K72CW4S6.js → F5CQDWX2.js} +1 -1
  63. package/dist/cdn/{B3T24ZHP.js → FFLFQAV5.js} +1 -1
  64. package/dist/cdn/{TLR7DOKY.js → FHPQEV63.js} +1 -1
  65. package/dist/cdn/{SAZM37N6.js → FK326MY2.js} +1 -1
  66. package/dist/cdn/{QI6TVR6G.js → FSIDJITI.js} +1 -1
  67. package/dist/cdn/{5PKFTEHJ.js → FVZC57ZX.js} +1 -1
  68. package/dist/cdn/{2MHBNQCR.js → GJPJPHKT.js} +1 -1
  69. package/dist/cdn/{M4XG6CGT.js → GMW5MPTM.js} +1 -1
  70. package/dist/cdn/H4T7RAVN.js +2 -0
  71. package/dist/cdn/{K7RYCT4K.js → HCL47WJY.js} +1 -1
  72. package/dist/cdn/{A6SEPWPY.js → HJPEJE7P.js} +1 -1
  73. package/dist/cdn/HJUXNTJR.js +2 -0
  74. package/dist/cdn/{DA4UVFQR.js → HTW6CG6E.js} +1 -1
  75. package/dist/cdn/IEN3AQC5.js +2 -0
  76. package/dist/cdn/{WPATJNZ7.js → IEYQVHI3.js} +1 -1
  77. package/dist/cdn/{JNQMA57X.js → II7BF275.js} +1 -1
  78. package/dist/cdn/{4UEORAFN.js → JFBY7PPK.js} +1 -1
  79. package/dist/cdn/{6UI2URVJ.js → JKXNTLXS.js} +1 -1
  80. package/dist/cdn/{6DNLGK7K.js → JMZJWX72.js} +1 -1
  81. package/dist/cdn/{GWBODXKQ.js → JQ42CGMU.js} +1 -1
  82. package/dist/cdn/{WXRLJFNC.js → JSHH55OX.js} +1 -1
  83. package/dist/cdn/{KCTATKXI.js → JSKNOXYE.js} +1 -1
  84. package/dist/cdn/{3QYGMMT2.js → JSMMI2WT.js} +1 -1
  85. package/dist/cdn/{PRBWW5WZ.js → JXSD5O3H.js} +1 -1
  86. package/dist/cdn/{DYHN6V7Z.js → JZVY5BQ6.js} +1 -1
  87. package/dist/cdn/{I4I35OHJ.js → KCUJMVAV.js} +1 -1
  88. package/dist/cdn/{ULVMDWHR.js → KD7QIPOS.js} +1 -1
  89. package/dist/cdn/{JXIE2WQV.js → KRRJDCT6.js} +1 -1
  90. package/dist/cdn/{SBVPQLA5.js → LMOL22ZO.js} +1 -1
  91. package/dist/cdn/{FRSFEJRE.js → LPAYXBBN.js} +1 -1
  92. package/dist/cdn/{3GDX3KTW.js → M4RTUV4L.js} +1 -1
  93. package/dist/cdn/{Z6EYZM7Z.js → ML6YDT4P.js} +1 -1
  94. package/dist/cdn/{OKQZGS4D.js → NI2VVIMS.js} +1 -1
  95. package/dist/cdn/{3ZOULS76.js → NJE6XK5W.js} +1 -1
  96. package/dist/cdn/{LQIFYPWQ.js → NKWC4TEA.js} +1 -1
  97. package/dist/cdn/{C3DHEC4X.js → NOQO2PQ7.js} +1 -1
  98. package/dist/cdn/{5BIZBF5D.js → O55BBUQF.js} +1 -1
  99. package/dist/cdn/{2SGYAQUW.js → O6RLADGU.js} +1 -1
  100. package/dist/cdn/{3NE4PTY3.js → OFRX34HV.js} +1 -1
  101. package/dist/cdn/{L5NETQTN.js → OX26NF6A.js} +1 -1
  102. package/dist/cdn/{PLU3WUOM.js → P27HDJGR.js} +1 -1
  103. package/dist/cdn/{PKTVVOP3.js → P5SRIE25.js} +1 -1
  104. package/dist/cdn/{PGJKAA2N.js → PNKRVLX2.js} +1 -1
  105. package/dist/cdn/{7ZUNRI4T.js → PSCSNJ2D.js} +1 -1
  106. package/dist/cdn/{HAC57DOQ.js → QLI75LJG.js} +1 -1
  107. package/dist/cdn/QXAMCDUL.js +2 -0
  108. package/dist/cdn/{N7T6A3FA.js → RDVEB6BQ.js} +1 -1
  109. package/dist/cdn/{OVS4YSHC.js → REFFSBJH.js} +1 -1
  110. package/dist/cdn/{ETUHG3UR.js → RHEMSAUF.js} +1 -1
  111. package/dist/cdn/{BF4LNFAC.js → RIJMRODS.js} +1 -1
  112. package/dist/cdn/RLOJO2TT.js +2 -0
  113. package/dist/cdn/{HVA7XLPC.js → RZ6D42K5.js} +1 -1
  114. package/dist/cdn/{CLVHKFCN.js → S7DRNDQJ.js} +1 -1
  115. package/dist/cdn/{NXKY46RO.js → STAXE4JE.js} +1 -1
  116. package/dist/cdn/{OXIOZB4M.js → SVJWD2WC.js} +1 -1
  117. package/dist/cdn/{3YWF45H3.js → T3HKGRXT.js} +1 -1
  118. package/dist/cdn/{6T3JYCE5.js → T3N6MMSQ.js} +1 -1
  119. package/dist/cdn/{Y7VLGG73.js → TA36XBRX.js} +1 -1
  120. package/dist/cdn/TA3K6AKE.js +2 -0
  121. package/dist/cdn/{3LX33BGW.js → TAMVMNFJ.js} +1 -1
  122. package/dist/cdn/{4M3BJPBE.js → TCKL6JAB.js} +1 -1
  123. package/dist/cdn/{BYUICW6E.js → TYUFR52E.js} +1 -1
  124. package/dist/cdn/UND3EP47.js +2 -0
  125. package/dist/cdn/{2DTAUFUC.js → VBELHK2X.js} +1 -1
  126. package/dist/cdn/{BX27HCWA.js → VDFLDPGU.js} +1 -1
  127. package/dist/cdn/{Q2FE3QD4.js → VKP4VTXS.js} +1 -1
  128. package/dist/cdn/{GKEPBWTN.js → VMROXW3U.js} +1 -1
  129. package/dist/cdn/VRVEOLT7.js +2 -0
  130. package/dist/cdn/{FBTGOPHV.js → WITMH6FB.js} +1 -1
  131. package/dist/cdn/{VEKDLLAG.js → WJ2UOL5B.js} +1 -1
  132. package/dist/cdn/WONWNOVG.js +2 -0
  133. package/dist/cdn/{NQDGLOGS.js → WP2M7UMA.js} +1 -1
  134. package/dist/cdn/{Y7O7L2AF.js → WZNFNYAK.js} +1 -1
  135. package/dist/cdn/{IYEYKXGV.js → X6J6LR4T.js} +1 -1
  136. package/dist/cdn/{OXGMPMR6.js → XTMSYMTJ.js} +1 -1
  137. package/dist/cdn/{G77L5WDE.js → XVP6M4SS.js} +1 -1
  138. package/dist/cdn/{AXHGEDD6.js → XZXOYNWT.js} +1 -1
  139. package/dist/cdn/{3VQZ4HSN.js → Y4RR6IVL.js} +1 -1
  140. package/dist/cdn/{LPVJSAHY.js → YCZHRWNN.js} +1 -1
  141. package/dist/cdn/{CXOWPK5R.js → YQ3WTV7H.js} +1 -1
  142. package/dist/cdn/YVBFSYBI.js +2 -0
  143. package/dist/cdn/{OGBUWUBX.js → ZDYDBL4C.js} +1 -1
  144. package/dist/cdn/{C7WYI3QO.js → ZHO4PNKX.js} +1 -1
  145. package/dist/cdn/{CLKNOKXZ.js → ZQ5L5OTW.js} +1 -1
  146. package/dist/cdn/{QXZ2IFQT.js → ZSQ2QCED.js} +1 -1
  147. package/dist/cdn/{PPJFM27T.js → ZV4QR6RK.js} +1 -1
  148. package/dist/cdn/{DF5PO5NR.js → ZXOMX3F4.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/customElement.d.ts +2 -2
  158. package/dist/components/calcite-block-group/customElement.d.ts +4 -4
  159. package/dist/components/calcite-date-picker/customElement.js +9 -6
  160. package/dist/components/calcite-input/customElement.d.ts +18 -16
  161. package/dist/components/calcite-input/customElement.js +9 -4
  162. package/dist/components/calcite-input-number/customElement.d.ts +18 -16
  163. package/dist/components/calcite-input-number/customElement.js +8 -4
  164. package/dist/components/calcite-input-text/customElement.d.ts +18 -16
  165. package/dist/components/calcite-input-text/customElement.js +8 -4
  166. package/dist/components/calcite-input-time-zone/customElement.d.ts +2 -0
  167. package/dist/components/calcite-input-time-zone/customElement.js +2 -2
  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 +6 -6
  189. package/dist/cdn/2HJPXQ5B.js +0 -2
  190. package/dist/cdn/5BCQFAP3.js +0 -2
  191. package/dist/cdn/5PHZOWLI.js +0 -2
  192. package/dist/cdn/6LJTJXNN.js +0 -2
  193. package/dist/cdn/7MXBNMS4.js +0 -2
  194. package/dist/cdn/BMMFKBDT.js +0 -2
  195. package/dist/cdn/EFKVMB36.js +0 -2
  196. package/dist/cdn/K6RS2D4V.js +0 -2
  197. package/dist/cdn/KKDHUZ5G.js +0 -2
  198. package/dist/cdn/MOBH63VI.js +0 -2
  199. package/dist/cdn/RRVVRS2A.js +0 -2
  200. package/dist/cdn/U7C73IJV.js +0 -2
  201. package/dist/cdn/W3FCMULY.js +0 -2
  202. package/dist/cdn/Y5J5HU47.js +0 -2
@@ -0,0 +1,174 @@
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
+ import { c as customElement } from "../../chunks/runtime.js";
3
+ import { LitElement, safeClassMap } from "@arcgis/lumina";
4
+ import { createRef, ref } from "lit/directives/ref.js";
5
+ import { D as getAssignedTextNodesFromSlotEl, k as getTextWidth, E as slotChangeGetTextContent } from "../../chunks/dom.js";
6
+ import { c as createObserver, u as updateRefObserver } from "../../chunks/observers.js";
7
+ import { css, html } from "lit";
8
+ const styles = css`:host{display:block;overflow-wrap:break-word;overflow:hidden;white-space:normal}:host([truncate-position=end]){text-overflow:ellipsis;white-space:nowrap}:host([truncate-position=middle]){white-space:nowrap}.text-container{overflow:inherit;text-overflow:inherit}:host([truncate-position=middle]:not([max-lines])) slot{display:none}:host(:not([truncate-position=middle])) .middle-truncated-text,:host([max-lines]) .middle-truncated-text{display:none}:host([max-lines]) .text-container{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:var(--calcite-internal-text-max-lines, none);white-space:normal}:host([hidden]){display:none}[hidden]{display:none}.assistive-text{position:absolute;inline-size:1px;block-size:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}`;
9
+ const ELLIPSIS_CHAR = "…";
10
+ const CSS = {
11
+ middleTruncatedText: "middle-truncated-text",
12
+ textContainer: "text-container",
13
+ assistiveText: "assistive-text"
14
+ };
15
+ class Text extends LitElement {
16
+ constructor() {
17
+ super(...arguments);
18
+ this.assistiveTextSpanRef = createRef();
19
+ this.defaultSlotRef = createRef();
20
+ this.middleTruncatedSpanRef = createRef();
21
+ this.mutationObserver = createObserver("mutation", (mutations) => {
22
+ const assignedTextNodes = getAssignedTextNodesFromSlotEl(this.defaultSlotRef.value);
23
+ if (mutations.some(({ target }) => assignedTextNodes.includes(target))) {
24
+ this.setValue(assignedTextNodes.map((node) => node.textContent).join("").trim());
25
+ }
26
+ });
27
+ this.resizeObserver = createObserver("resize", () => {
28
+ this.handleTruncation();
29
+ });
30
+ this.renderedText = "";
31
+ }
32
+ static {
33
+ this.properties = { maxLines: [11, {}, { type: Number, reflect: true }], truncatePosition: [3, {}, { reflect: true }] };
34
+ }
35
+ static {
36
+ this.styles = styles;
37
+ }
38
+ connectedCallback() {
39
+ super.connectedCallback();
40
+ this.mutationObserver?.observe(this.el, {
41
+ characterData: true,
42
+ subtree: true
43
+ });
44
+ }
45
+ willUpdate(changes) {
46
+ if (changes.has("maxLines") && this.hasUpdated) {
47
+ if (!this.maxLines) {
48
+ this.clearTooltipTitle();
49
+ }
50
+ this.updateMaxLinesToken();
51
+ }
52
+ }
53
+ updated(changes) {
54
+ if (changes.has("truncatePosition") && !this.maxLines) {
55
+ this.handleTruncatePositionChange(changes.get("truncatePosition"));
56
+ }
57
+ }
58
+ disconnectedCallback() {
59
+ super.disconnectedCallback();
60
+ this.resizeObserver?.disconnect();
61
+ this.mutationObserver?.disconnect();
62
+ }
63
+ clearTooltipTitle() {
64
+ this.textContainerEl.title = "";
65
+ }
66
+ getTruncatedText(text, maxWidth, font, letterSpacing) {
67
+ let startIndex = 0;
68
+ let endIndex = text.length;
69
+ const truncatedString = (index) => {
70
+ const leftCount = Math.ceil(index / 2);
71
+ const rightCount = Math.floor(index / 2);
72
+ return text.slice(0, leftCount) + ELLIPSIS_CHAR + text.slice(text.length - rightCount);
73
+ };
74
+ while (startIndex < endIndex) {
75
+ const mid = Math.ceil((startIndex + endIndex) / 2);
76
+ const optimalText = truncatedString(mid);
77
+ if (getTextWidth(optimalText, font, letterSpacing) <= maxWidth) {
78
+ startIndex = mid;
79
+ } else {
80
+ endIndex = mid - 1;
81
+ }
82
+ }
83
+ const optimalIndex = Math.max(0, startIndex);
84
+ if (optimalIndex <= 1) {
85
+ return ELLIPSIS_CHAR;
86
+ }
87
+ return truncatedString(optimalIndex);
88
+ }
89
+ handleDefaultSlotChange(event) {
90
+ this.setValue(slotChangeGetTextContent(event));
91
+ }
92
+ setValue(value) {
93
+ this.value = value;
94
+ this.renderedText = value;
95
+ this.handleTruncation();
96
+ }
97
+ handleTruncation() {
98
+ if (!this.textContainerEl) {
99
+ return;
100
+ }
101
+ const { truncatePosition, maxLines } = this;
102
+ if (this.isTruncatePositionMiddle()) {
103
+ this.truncateMiddleText();
104
+ this.assistiveTextSpanRef.value.textContent = this.value || "";
105
+ } else if (truncatePosition === "end" || maxLines && maxLines >= 1) {
106
+ this.syncTooltipState();
107
+ }
108
+ }
109
+ hasOverflow() {
110
+ return this.textContainerEl.scrollWidth > this.textContainerEl.clientWidth || this.textContainerEl.scrollHeight > this.textContainerEl.clientHeight;
111
+ }
112
+ syncTooltipState() {
113
+ if (this.hasOverflow()) {
114
+ this.setTooltipTitle();
115
+ } else {
116
+ this.clearTooltipTitle();
117
+ }
118
+ }
119
+ handleTruncatePositionChange(oldValue) {
120
+ const newValue = this.truncatePosition;
121
+ if (oldValue && !newValue) {
122
+ this.clearTooltipTitle();
123
+ } else {
124
+ this.handleTruncation();
125
+ }
126
+ }
127
+ setTooltipTitle() {
128
+ this.textContainerEl.title = this.value || "";
129
+ }
130
+ setMiddleTruncatedText(value) {
131
+ const middleTruncatedTextEl = this.middleTruncatedSpanRef.value;
132
+ if (!middleTruncatedTextEl) {
133
+ return;
134
+ }
135
+ middleTruncatedTextEl.textContent = value || "";
136
+ }
137
+ truncateMiddleText() {
138
+ requestAnimationFrame(() => {
139
+ if (!this.textContainerEl || !this.textContainerEl.clientWidth || this.maxLines || this.truncatePosition !== "middle") {
140
+ return;
141
+ }
142
+ const clientWidth = this.textContainerEl.clientWidth;
143
+ const computedStyle = getComputedStyle(this.el);
144
+ const font = computedStyle.font || `${computedStyle.fontSize} ${computedStyle.fontFamily}`;
145
+ const textWidth = getTextWidth(this.value, font, computedStyle.letterSpacing);
146
+ if (textWidth <= clientWidth) {
147
+ this.setMiddleTruncatedText(this.value);
148
+ this.clearTooltipTitle();
149
+ } else {
150
+ const middleTruncatedText = this.getTruncatedText(this.renderedText, clientWidth, font, computedStyle.letterSpacing);
151
+ this.setMiddleTruncatedText(middleTruncatedText);
152
+ this.setTooltipTitle();
153
+ }
154
+ });
155
+ }
156
+ updateMaxLinesToken() {
157
+ this.textContainerEl?.style.setProperty("--calcite-internal-text-max-lines", this.maxLines?.toString() || null);
158
+ }
159
+ setTextContainerRef(el) {
160
+ updateRefObserver(this.resizeObserver, this.textContainerEl, el);
161
+ this.textContainerEl = el;
162
+ this.updateMaxLinesToken();
163
+ }
164
+ isTruncatePositionMiddle() {
165
+ return this.truncatePosition === "middle" && !this.maxLines;
166
+ }
167
+ render() {
168
+ return html`<div class=${safeClassMap(CSS.textContainer)} ${ref(this.setTextContainerRef)}><slot @slotchange=${this.handleDefaultSlotChange} ${ref(this.defaultSlotRef)}></slot><span aria-hidden=true class=${safeClassMap(CSS.middleTruncatedText)} ${ref(this.middleTruncatedSpanRef)}></span>${this.isTruncatePositionMiddle() && html`<span aria-live=polite class=${safeClassMap(CSS.assistiveText)} ${ref(this.assistiveTextSpanRef)}></span>` || ""}</div>`;
169
+ }
170
+ }
171
+ customElement("calcite-text", Text);
172
+ export {
173
+ Text
174
+ };
@@ -0,0 +1 @@
1
+ export * from "./customElement.js";
@@ -0,0 +1 @@
1
+ export * from "./customElement.js";