@scania/tegel 1.42.0 → 1.43.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 (355) hide show
  1. package/dist/cjs/loader.cjs.js +1 -1
  2. package/dist/cjs/tds-accordion.cjs.entry.js +2 -2
  3. package/dist/cjs/tds-block.cjs.entry.js +1 -1
  4. package/dist/cjs/tds-body-cell.cjs.entry.js +4 -3
  5. package/dist/cjs/tds-button_2.cjs.entry.js +7 -5
  6. package/dist/cjs/tds-card.cjs.entry.js +2 -2
  7. package/dist/cjs/tds-checkbox.cjs.entry.js +5 -4
  8. package/dist/cjs/tds-core-header-item_2.cjs.entry.js +9 -5
  9. package/dist/cjs/tds-datetime.cjs.entry.js +8 -5
  10. package/dist/cjs/tds-dropdown_2.cjs.entry.js +49 -31
  11. package/dist/cjs/tds-folder-tabs.cjs.entry.js +10 -3
  12. package/dist/cjs/tds-footer-group.cjs.entry.js +6 -5
  13. package/dist/cjs/tds-footer-item.cjs.entry.js +6 -2
  14. package/dist/cjs/tds-footer.cjs.entry.js +2 -2
  15. package/dist/cjs/tds-header-brand-symbol.cjs.entry.js +2 -2
  16. package/dist/cjs/tds-header-cell.cjs.entry.js +10 -5
  17. package/dist/cjs/tds-header-dropdown-list.cjs.entry.js +5 -3
  18. package/dist/cjs/tds-header-dropdown.cjs.entry.js +7 -5
  19. package/dist/cjs/tds-header-launcher.cjs.entry.js +8 -4
  20. package/dist/cjs/tds-header.cjs.entry.js +8 -6
  21. package/dist/cjs/tds-icon.cjs.entry.js +1 -2
  22. package/dist/cjs/tds-inline-tabs.cjs.entry.js +10 -3
  23. package/dist/cjs/tds-message.cjs.entry.js +2 -2
  24. package/dist/cjs/tds-modal.cjs.entry.js +5 -4
  25. package/dist/cjs/tds-navigation-tabs.cjs.entry.js +12 -5
  26. package/dist/cjs/tds-popover-canvas.cjs.entry.js +4 -4
  27. package/dist/cjs/tds-popover-core.cjs.entry.js +10 -8
  28. package/dist/cjs/tds-popover-menu.cjs.entry.js +4 -4
  29. package/dist/cjs/tds-radio-button.cjs.entry.js +4 -1
  30. package/dist/cjs/tds-side-menu-collapse-button.cjs.entry.js +5 -4
  31. package/dist/cjs/tds-side-menu-dropdown-list-item.cjs.entry.js +13 -9
  32. package/dist/cjs/tds-side-menu-dropdown-list.cjs.entry.js +3 -3
  33. package/dist/cjs/tds-side-menu-dropdown.cjs.entry.js +5 -4
  34. package/dist/cjs/tds-side-menu-item.cjs.entry.js +15 -9
  35. package/dist/cjs/tds-side-menu.cjs.entry.js +12 -9
  36. package/dist/cjs/tds-slider.cjs.entry.js +26 -16
  37. package/dist/cjs/tds-step.cjs.entry.js +3 -1
  38. package/dist/cjs/tds-table-body-input-wrapper.cjs.entry.js +1 -1
  39. package/dist/cjs/tds-table-body-row-expandable.cjs.entry.js +17 -10
  40. package/dist/cjs/tds-table-body-row.cjs.entry.js +8 -5
  41. package/dist/cjs/tds-table-body.cjs.entry.js +9 -5
  42. package/dist/cjs/tds-table-footer.cjs.entry.js +15 -8
  43. package/dist/cjs/tds-table-header-input-wrapper.cjs.entry.js +1 -1
  44. package/dist/cjs/tds-table-header.cjs.entry.js +24 -18
  45. package/dist/cjs/tds-table-toolbar.cjs.entry.js +6 -4
  46. package/dist/cjs/tds-table.cjs.entry.js +14 -12
  47. package/dist/cjs/tds-text-field.cjs.entry.js +47 -21
  48. package/dist/cjs/tds-textarea.cjs.entry.js +5 -4
  49. package/dist/cjs/tds-toggle.cjs.entry.js +5 -4
  50. package/dist/cjs/tds-tooltip.cjs.entry.js +6 -10
  51. package/dist/cjs/tegel.cjs.js +1 -1
  52. package/dist/collection/components/accordion/accordion.js +4 -4
  53. package/dist/collection/components/block/block.js +3 -3
  54. package/dist/collection/components/button/button.js +9 -7
  55. package/dist/collection/components/card/card.js +4 -4
  56. package/dist/collection/components/checkbox/checkbox.js +6 -5
  57. package/dist/collection/components/chip/chip.js +1 -1
  58. package/dist/collection/components/datetime/datetime.js +10 -7
  59. package/dist/collection/components/dropdown/dropdown-option/dropdown-option.js +9 -6
  60. package/dist/collection/components/dropdown/dropdown.js +44 -31
  61. package/dist/collection/components/footer/footer-group/footer-group.js +6 -5
  62. package/dist/collection/components/footer/footer-item/footer-item.js +6 -2
  63. package/dist/collection/components/footer/footer.js +4 -4
  64. package/dist/collection/components/header/header-brand-symbol/header-brand-symbol.js +2 -2
  65. package/dist/collection/components/header/header-dropdown/header-dropdown.js +7 -5
  66. package/dist/collection/components/header/header-dropdown-list/header-dropdown-list.js +5 -3
  67. package/dist/collection/components/header/header-item/header-item.js +9 -5
  68. package/dist/collection/components/header/header-launcher/header-launcher.js +8 -4
  69. package/dist/collection/components/header/header.js +8 -6
  70. package/dist/collection/components/icon/icon.js +3 -4
  71. package/dist/collection/components/message/message.js +4 -4
  72. package/dist/collection/components/modal/modal.js +8 -7
  73. package/dist/collection/components/popover-canvas/popover-canvas.js +9 -9
  74. package/dist/collection/components/popover-core/popover-core.js +20 -23
  75. package/dist/collection/components/popover-menu/popover-menu.js +9 -9
  76. package/dist/collection/components/radio-button/radio-button.js +4 -1
  77. package/dist/collection/components/side-menu/side-menu-collapse-button/side-menu-collapse-button.js +5 -4
  78. package/dist/collection/components/side-menu/side-menu-dropdown/side-menu-dropdown.js +5 -4
  79. package/dist/collection/components/side-menu/side-menu-dropdown-list/side-menu-dropdown-list.js +3 -3
  80. package/dist/collection/components/side-menu/side-menu-dropdown-list-item/side-menu-dropdown-list-item.js +13 -9
  81. package/dist/collection/components/side-menu/side-menu-item/side-menu-item.js +15 -9
  82. package/dist/collection/components/side-menu/side-menu.js +12 -9
  83. package/dist/collection/components/slider/slider.js +26 -16
  84. package/dist/collection/components/stepper/step/step.js +3 -1
  85. package/dist/collection/components/table/table/table.js +36 -18
  86. package/dist/collection/components/table/table-body/table-body.js +9 -5
  87. package/dist/collection/components/table/table-body-cell/table-body-cell.js +7 -6
  88. package/dist/collection/components/table/table-body-input-wrapper/table-body-input-wrapper.js +1 -1
  89. package/dist/collection/components/table/table-body-row/table-body-row.js +13 -10
  90. package/dist/collection/components/table/table-body-row-expandable/table-body-row-expandable.js +23 -16
  91. package/dist/collection/components/table/table-footer/table-footer.js +20 -13
  92. package/dist/collection/components/table/table-header/table-header.js +27 -21
  93. package/dist/collection/components/table/table-header-cell/table-header-cell.js +22 -17
  94. package/dist/collection/components/table/table-header-input-wrapper/table-header-input-wrapper.js +1 -1
  95. package/dist/collection/components/table/table-toolbar/table-toolbar.js +8 -6
  96. package/dist/collection/components/tabs/folder-tabs/folder-tabs.js +12 -5
  97. package/dist/collection/components/tabs/inline-tabs/inline-tabs.js +10 -3
  98. package/dist/collection/components/tabs/navigation-tabs/navigation-tabs.js +12 -5
  99. package/dist/collection/components/text-field/text-field.css +8 -0
  100. package/dist/collection/components/text-field/text-field.js +97 -22
  101. package/dist/collection/components/textarea/textarea.js +7 -6
  102. package/dist/collection/components/toggle/toggle.js +5 -4
  103. package/dist/collection/components/tooltip/tooltip.js +9 -13
  104. package/dist/collection/tegel-light/components/tl-dropdown/_dropdownKeyboard.js +190 -0
  105. package/dist/collection/tegel-light/components/tl-dropdown/_dropdownScripts.js +304 -0
  106. package/dist/collection/utils/appendHiddenInput.js +6 -4
  107. package/dist/components/{p-d10d21bd.js → p-0d286c19.js} +2 -2
  108. package/dist/components/{p-63552d0e.js → p-415fafb3.js} +5 -5
  109. package/dist/components/{p-3308d5fa.js → p-6fd2b339.js} +10 -8
  110. package/dist/components/{p-c62b61fe.js → p-799470b1.js} +7 -5
  111. package/dist/components/{p-3a7e4d0d.js → p-81499e0f.js} +52 -24
  112. package/dist/components/{p-44f5b5e1.js → p-91803ba5.js} +5 -4
  113. package/dist/components/{p-04a014cf.js → p-ad376f70.js} +7 -11
  114. package/dist/components/{p-6ef207b2.js → p-d9cffacb.js} +11 -8
  115. package/dist/components/{p-9336db16.js → p-da11a695.js} +5 -3
  116. package/dist/components/{p-1dafdc8c.js → p-e0ccf8e6.js} +15 -9
  117. package/dist/components/{p-5ea0ae00.js → p-e52a9953.js} +41 -26
  118. package/dist/components/{p-7c3348eb.js → p-ead6727f.js} +9 -5
  119. package/dist/components/{p-f7d94947.js → p-edc838a0.js} +1 -2
  120. package/dist/components/tds-accordion-item.js +1 -1
  121. package/dist/components/tds-accordion.js +2 -2
  122. package/dist/components/tds-banner.js +1 -1
  123. package/dist/components/tds-block.js +1 -1
  124. package/dist/components/tds-body-cell.js +5 -4
  125. package/dist/components/tds-button.js +1 -1
  126. package/dist/components/tds-card.js +4 -4
  127. package/dist/components/tds-checkbox.js +1 -1
  128. package/dist/components/tds-datetime.js +9 -6
  129. package/dist/components/tds-dropdown-option.js +1 -1
  130. package/dist/components/tds-dropdown.js +1 -1
  131. package/dist/components/tds-folder-tabs.js +11 -4
  132. package/dist/components/tds-footer-group.js +7 -6
  133. package/dist/components/tds-footer-item.js +6 -2
  134. package/dist/components/tds-footer.js +2 -2
  135. package/dist/components/tds-header-brand-symbol.js +3 -3
  136. package/dist/components/tds-header-cell.js +11 -6
  137. package/dist/components/tds-header-dropdown-list.js +1 -1
  138. package/dist/components/tds-header-dropdown.js +11 -9
  139. package/dist/components/tds-header-hamburger.js +2 -2
  140. package/dist/components/tds-header-item.js +1 -1
  141. package/dist/components/tds-header-launcher-button.js +1 -1
  142. package/dist/components/tds-header-launcher-list.js +1 -1
  143. package/dist/components/tds-header-launcher.js +13 -9
  144. package/dist/components/tds-header.js +8 -6
  145. package/dist/components/tds-icon.js +1 -1
  146. package/dist/components/tds-inline-tabs.js +11 -4
  147. package/dist/components/tds-message.js +3 -3
  148. package/dist/components/tds-modal.js +6 -5
  149. package/dist/components/tds-navigation-tabs.js +13 -6
  150. package/dist/components/tds-popover-canvas.js +1 -1
  151. package/dist/components/tds-popover-core.js +1 -1
  152. package/dist/components/tds-popover-menu.js +5 -5
  153. package/dist/components/tds-radio-button.js +4 -1
  154. package/dist/components/tds-side-menu-close-button.js +1 -1
  155. package/dist/components/tds-side-menu-collapse-button.js +6 -5
  156. package/dist/components/tds-side-menu-dropdown-list-item.js +13 -9
  157. package/dist/components/tds-side-menu-dropdown-list.js +3 -3
  158. package/dist/components/tds-side-menu-dropdown.js +7 -6
  159. package/dist/components/tds-side-menu-item.js +1 -1
  160. package/dist/components/tds-side-menu.js +12 -9
  161. package/dist/components/tds-slider.js +30 -20
  162. package/dist/components/tds-step.js +4 -2
  163. package/dist/components/tds-table-body-input-wrapper.js +2 -2
  164. package/dist/components/tds-table-body-row-expandable.js +17 -10
  165. package/dist/components/tds-table-body-row.js +9 -6
  166. package/dist/components/tds-table-body.js +9 -5
  167. package/dist/components/tds-table-footer.js +19 -12
  168. package/dist/components/tds-table-header-input-wrapper.js +2 -2
  169. package/dist/components/tds-table-header.js +25 -19
  170. package/dist/components/tds-table-toolbar.js +7 -5
  171. package/dist/components/tds-table.js +14 -12
  172. package/dist/components/tds-text-field.js +1 -1
  173. package/dist/components/tds-textarea.js +8 -7
  174. package/dist/components/tds-toast.js +1 -1
  175. package/dist/components/tds-toggle.js +5 -4
  176. package/dist/components/tds-tooltip.js +1 -1
  177. package/dist/esm/loader.js +1 -1
  178. package/dist/esm/tds-accordion.entry.js +2 -2
  179. package/dist/esm/tds-block.entry.js +1 -1
  180. package/dist/esm/tds-body-cell.entry.js +4 -3
  181. package/dist/esm/tds-button_2.entry.js +7 -5
  182. package/dist/esm/tds-card.entry.js +2 -2
  183. package/dist/esm/tds-checkbox.entry.js +5 -4
  184. package/dist/esm/tds-core-header-item_2.entry.js +9 -5
  185. package/dist/esm/tds-datetime.entry.js +8 -5
  186. package/dist/esm/tds-dropdown_2.entry.js +49 -31
  187. package/dist/esm/tds-folder-tabs.entry.js +10 -3
  188. package/dist/esm/tds-footer-group.entry.js +6 -5
  189. package/dist/esm/tds-footer-item.entry.js +6 -2
  190. package/dist/esm/tds-footer.entry.js +2 -2
  191. package/dist/esm/tds-header-brand-symbol.entry.js +2 -2
  192. package/dist/esm/tds-header-cell.entry.js +10 -5
  193. package/dist/esm/tds-header-dropdown-list.entry.js +5 -3
  194. package/dist/esm/tds-header-dropdown.entry.js +7 -5
  195. package/dist/esm/tds-header-launcher.entry.js +8 -4
  196. package/dist/esm/tds-header.entry.js +8 -6
  197. package/dist/esm/tds-icon.entry.js +1 -2
  198. package/dist/esm/tds-inline-tabs.entry.js +10 -3
  199. package/dist/esm/tds-message.entry.js +2 -2
  200. package/dist/esm/tds-modal.entry.js +5 -4
  201. package/dist/esm/tds-navigation-tabs.entry.js +12 -5
  202. package/dist/esm/tds-popover-canvas.entry.js +4 -4
  203. package/dist/esm/tds-popover-core.entry.js +10 -8
  204. package/dist/esm/tds-popover-menu.entry.js +4 -4
  205. package/dist/esm/tds-radio-button.entry.js +4 -1
  206. package/dist/esm/tds-side-menu-collapse-button.entry.js +5 -4
  207. package/dist/esm/tds-side-menu-dropdown-list-item.entry.js +13 -9
  208. package/dist/esm/tds-side-menu-dropdown-list.entry.js +3 -3
  209. package/dist/esm/tds-side-menu-dropdown.entry.js +5 -4
  210. package/dist/esm/tds-side-menu-item.entry.js +15 -9
  211. package/dist/esm/tds-side-menu.entry.js +12 -9
  212. package/dist/esm/tds-slider.entry.js +26 -16
  213. package/dist/esm/tds-step.entry.js +3 -1
  214. package/dist/esm/tds-table-body-input-wrapper.entry.js +1 -1
  215. package/dist/esm/tds-table-body-row-expandable.entry.js +17 -10
  216. package/dist/esm/tds-table-body-row.entry.js +8 -5
  217. package/dist/esm/tds-table-body.entry.js +9 -5
  218. package/dist/esm/tds-table-footer.entry.js +15 -8
  219. package/dist/esm/tds-table-header-input-wrapper.entry.js +1 -1
  220. package/dist/esm/tds-table-header.entry.js +24 -18
  221. package/dist/esm/tds-table-toolbar.entry.js +6 -4
  222. package/dist/esm/tds-table.entry.js +14 -12
  223. package/dist/esm/tds-text-field.entry.js +47 -21
  224. package/dist/esm/tds-textarea.entry.js +5 -4
  225. package/dist/esm/tds-toggle.entry.js +5 -4
  226. package/dist/esm/tds-tooltip.entry.js +6 -10
  227. package/dist/esm/tegel.js +1 -1
  228. package/dist/tegel/p-08c16b2f.entry.js +1 -0
  229. package/dist/tegel/p-0b37e91a.entry.js +1 -0
  230. package/dist/tegel/p-0ef32f0f.entry.js +1 -0
  231. package/dist/tegel/p-1e1a87c1.entry.js +1 -0
  232. package/dist/tegel/p-2268af7f.entry.js +1 -0
  233. package/dist/tegel/p-226d0290.entry.js +1 -0
  234. package/dist/tegel/p-252a7d3f.entry.js +1 -0
  235. package/dist/tegel/p-25473962.entry.js +1 -0
  236. package/dist/tegel/{p-650b98bf.entry.js → p-27369d6a.entry.js} +1 -1
  237. package/dist/tegel/p-3ef04672.entry.js +1 -0
  238. package/dist/tegel/p-40d99d7d.entry.js +1 -0
  239. package/dist/tegel/{p-28f85555.entry.js → p-40fa0f5b.entry.js} +1 -1
  240. package/dist/tegel/p-4e15f31d.entry.js +1 -0
  241. package/dist/tegel/p-57c08d0d.entry.js +1 -0
  242. package/dist/tegel/p-58ac68f3.entry.js +1 -0
  243. package/dist/tegel/p-6a472310.entry.js +1 -0
  244. package/dist/tegel/p-70836598.entry.js +1 -0
  245. package/dist/tegel/p-7104b955.entry.js +1 -0
  246. package/dist/tegel/p-781b2939.entry.js +1 -0
  247. package/dist/tegel/p-894e7e11.entry.js +1 -0
  248. package/dist/tegel/p-942f8c6f.entry.js +1 -0
  249. package/dist/tegel/p-98eff725.entry.js +1 -0
  250. package/dist/tegel/p-9b06bd5f.entry.js +1 -0
  251. package/dist/tegel/p-9bcb8b2d.entry.js +1 -0
  252. package/dist/tegel/p-9c56b031.entry.js +1 -0
  253. package/dist/tegel/p-a20a54ef.entry.js +1 -0
  254. package/dist/tegel/p-a2b2092a.entry.js +1 -0
  255. package/dist/tegel/p-a334b517.entry.js +1 -0
  256. package/dist/tegel/p-a60ed3de.entry.js +1 -0
  257. package/dist/tegel/p-a6dca188.entry.js +1 -0
  258. package/dist/tegel/{p-464469fe.entry.js → p-a912035b.entry.js} +1 -1
  259. package/dist/tegel/p-b218db70.entry.js +1 -0
  260. package/dist/tegel/p-b3b13975.entry.js +1 -0
  261. package/dist/tegel/{p-987f8f0f.entry.js → p-b9afb39e.entry.js} +1 -1
  262. package/dist/tegel/p-bb8c2a36.entry.js +1 -0
  263. package/dist/tegel/p-bee9e9d1.entry.js +1 -0
  264. package/dist/tegel/{p-f31f56fe.entry.js → p-c5694dd6.entry.js} +1 -1
  265. package/dist/tegel/{p-57a28f62.entry.js → p-ca068263.entry.js} +1 -1
  266. package/dist/tegel/{p-eb91e33b.entry.js → p-cda2e4b2.entry.js} +1 -1
  267. package/dist/tegel/p-d501a665.entry.js +1 -0
  268. package/dist/tegel/{p-f2318c88.entry.js → p-da38aa9a.entry.js} +1 -1
  269. package/dist/tegel/p-dda1ac69.entry.js +1 -0
  270. package/dist/tegel/p-e29fa563.entry.js +1 -0
  271. package/dist/tegel/p-ed66ef30.entry.js +1 -0
  272. package/dist/tegel/p-f602b3a1.entry.js +1 -0
  273. package/dist/tegel/p-f922308f.entry.js +1 -0
  274. package/dist/tegel/p-fb300776.entry.js +1 -0
  275. package/dist/tegel/p-fd22d1ca.entry.js +1 -0
  276. package/dist/tegel/{p-c6968db1.entry.js → p-fe4335ca.entry.js} +1 -1
  277. package/dist/tegel/tegel.esm.js +1 -1
  278. package/dist/types/components/accordion/accordion.d.ts +1 -1
  279. package/dist/types/components/block/block.d.ts +1 -1
  280. package/dist/types/components/button/button.d.ts +1 -1
  281. package/dist/types/components/card/card.d.ts +1 -1
  282. package/dist/types/components/datetime/datetime.d.ts +2 -2
  283. package/dist/types/components/dropdown/dropdown.d.ts +5 -5
  284. package/dist/types/components/footer/footer.d.ts +1 -1
  285. package/dist/types/components/icon/icon.d.ts +1 -1
  286. package/dist/types/components/message/message.d.ts +1 -1
  287. package/dist/types/components/modal/modal.d.ts +1 -1
  288. package/dist/types/components/popover-canvas/popover-canvas.d.ts +2 -2
  289. package/dist/types/components/popover-core/popover-core.d.ts +4 -4
  290. package/dist/types/components/popover-menu/popover-menu.d.ts +2 -2
  291. package/dist/types/components/slider/slider-stories-setup.d.ts +1 -1
  292. package/dist/types/components/table/table/table.d.ts +6 -3
  293. package/dist/types/components/table/table-body/table-body.d.ts +3 -3
  294. package/dist/types/components/table/table-body-cell/table-body-cell.d.ts +8 -5
  295. package/dist/types/components/table/table-body-input-wrapper/table-body-input-wrapper.d.ts +1 -1
  296. package/dist/types/components/table/table-body-row/table-body-row.d.ts +5 -5
  297. package/dist/types/components/table/table-body-row-expandable/table-body-row-expandable.d.ts +7 -7
  298. package/dist/types/components/table/table-footer/table-footer.d.ts +4 -4
  299. package/dist/types/components/table/table-header/table-header.d.ts +5 -5
  300. package/dist/types/components/table/table-header-cell/table-header-cell.d.ts +8 -8
  301. package/dist/types/components/table/table-header-input-wrapper/table-header-input-wrapper.d.ts +1 -1
  302. package/dist/types/components/table/table-toolbar/table-toolbar.d.ts +4 -4
  303. package/dist/types/components/tabs/folder-tabs/folder-tabs.d.ts +1 -1
  304. package/dist/types/components/text-field/text-field.d.ts +13 -2
  305. package/dist/types/components/textarea/textarea.d.ts +2 -2
  306. package/dist/types/components/tooltip/tooltip.d.ts +1 -1
  307. package/dist/types/components.d.ts +102 -81
  308. package/dist/types/tegel-light/components/tl-dropdown/_dropdownKeyboard.d.ts +1 -0
  309. package/dist/types/tegel-light/components/tl-dropdown/_dropdownScripts.d.ts +4 -0
  310. package/dist/types/types/Attributes.d.ts +1 -1
  311. package/dist/types/utils/findNextFocusableElement.d.ts +1 -1
  312. package/dist/types/utils/findPreviousFocusableElement.d.ts +1 -1
  313. package/dist/types/utils/getNextNestedChildOfSiblingsMatching.d.ts +1 -1
  314. package/dist/types/utils/getPreviousNestedChildOfSiblingsMatching.d.ts +1 -1
  315. package/package.json +1 -1
  316. package/dist/tegel/p-0672ddfc.entry.js +0 -1
  317. package/dist/tegel/p-08ad6a21.entry.js +0 -1
  318. package/dist/tegel/p-08f63e5d.entry.js +0 -1
  319. package/dist/tegel/p-09cd056c.entry.js +0 -1
  320. package/dist/tegel/p-0c9a51d9.entry.js +0 -1
  321. package/dist/tegel/p-0cfe8671.entry.js +0 -1
  322. package/dist/tegel/p-0e772ad7.entry.js +0 -1
  323. package/dist/tegel/p-17bc1e49.entry.js +0 -1
  324. package/dist/tegel/p-1859156f.entry.js +0 -1
  325. package/dist/tegel/p-1f4267a8.entry.js +0 -1
  326. package/dist/tegel/p-24a76927.entry.js +0 -1
  327. package/dist/tegel/p-354d3986.entry.js +0 -1
  328. package/dist/tegel/p-379df59b.entry.js +0 -1
  329. package/dist/tegel/p-3c97cb45.entry.js +0 -1
  330. package/dist/tegel/p-3e6d65ee.entry.js +0 -1
  331. package/dist/tegel/p-445fa788.entry.js +0 -1
  332. package/dist/tegel/p-51a17707.entry.js +0 -1
  333. package/dist/tegel/p-52689019.entry.js +0 -1
  334. package/dist/tegel/p-6b340718.entry.js +0 -1
  335. package/dist/tegel/p-72006dd7.entry.js +0 -1
  336. package/dist/tegel/p-743d4f07.entry.js +0 -1
  337. package/dist/tegel/p-77cfb0ef.entry.js +0 -1
  338. package/dist/tegel/p-7887bdbb.entry.js +0 -1
  339. package/dist/tegel/p-7b598e60.entry.js +0 -1
  340. package/dist/tegel/p-7ef50e7f.entry.js +0 -1
  341. package/dist/tegel/p-8c2695af.entry.js +0 -1
  342. package/dist/tegel/p-9b635e01.entry.js +0 -1
  343. package/dist/tegel/p-9f187848.entry.js +0 -1
  344. package/dist/tegel/p-9fdc8fa5.entry.js +0 -1
  345. package/dist/tegel/p-a090bd2f.entry.js +0 -1
  346. package/dist/tegel/p-a56436c8.entry.js +0 -1
  347. package/dist/tegel/p-b210d23c.entry.js +0 -1
  348. package/dist/tegel/p-c0cbc9f5.entry.js +0 -1
  349. package/dist/tegel/p-cf717912.entry.js +0 -1
  350. package/dist/tegel/p-cfd7ed1a.entry.js +0 -1
  351. package/dist/tegel/p-d1d45942.entry.js +0 -1
  352. package/dist/tegel/p-d7cdbc4e.entry.js +0 -1
  353. package/dist/tegel/p-e5b796e7.entry.js +0 -1
  354. package/dist/tegel/p-f3c32d4d.entry.js +0 -1
  355. package/dist/tegel/p-fd15ced7.entry.js +0 -1
@@ -14,6 +14,7 @@ export class TdsTextField {
14
14
  this.label = '';
15
15
  this.min = undefined;
16
16
  this.max = undefined;
17
+ this.step = undefined;
17
18
  this.helper = undefined;
18
19
  this.placeholder = '';
19
20
  this.value = '';
@@ -30,38 +31,61 @@ export class TdsTextField {
30
31
  this.tdsAriaLabel = undefined;
31
32
  this.required = false;
32
33
  this.autocomplete = 'off';
34
+ this.hideNumberArrows = false;
33
35
  this.focusInput = false;
34
36
  }
35
37
  handleChange(event) {
36
38
  this.tdsChange.emit(event);
37
39
  }
38
- // Data input event in value prop
40
+ /** Data input event in value prop */
39
41
  handleInput(event) {
40
42
  const inputEl = event.target;
41
- let { value } = inputEl;
42
- // Custom handling of number inputs when min/max are set
43
- if (this.type === 'number') {
44
- const numericValue = Number(value);
45
- if (this.min !== undefined && numericValue < Number(this.min)) {
46
- value = String(this.min);
47
- }
48
- if (this.max !== undefined && numericValue > Number(this.max)) {
49
- value = String(this.max);
50
- }
51
- inputEl.value = value;
52
- }
43
+ const { value } = inputEl;
53
44
  this.value = value;
54
45
  this.tdsInput.emit(event);
55
46
  }
56
47
  /** Set the input as focus when clicking the whole Text Field with suffix/prefix */
57
48
  handleFocus(event) {
58
- this.textInput.focus();
49
+ var _a;
50
+ (_a = this.textInput) === null || _a === void 0 ? void 0 : _a.focus();
59
51
  this.focusInput = true;
60
52
  this.tdsFocus.emit(event);
61
53
  }
62
54
  /** Set the input as focus when clicking the whole Text Field with suffix/prefix */
63
55
  handleBlur(event) {
64
56
  this.focusInput = false;
57
+ /** Custom handling of number inputs when min/max are set */
58
+ if (this.type === 'number' && this.textInput) {
59
+ const numericValue = this.textInput.valueAsNumber;
60
+ const minNum = this.min !== undefined ? Number(this.min) : undefined;
61
+ const maxNum = this.max !== undefined ? Number(this.max) : undefined;
62
+ if (minNum !== undefined && maxNum !== undefined && minNum > maxNum) {
63
+ console.warn('tds-text-field: min value is greater than max value');
64
+ return;
65
+ }
66
+ if (!isNaN(numericValue)) {
67
+ const originalValue = this.textInput.value;
68
+ let clampedValue = originalValue;
69
+ let clampReason = null;
70
+ if (minNum !== undefined && numericValue < minNum) {
71
+ clampedValue = String(this.min);
72
+ clampReason = 'min';
73
+ }
74
+ if (maxNum !== undefined && numericValue > maxNum) {
75
+ clampedValue = String(this.max);
76
+ clampReason = 'max';
77
+ }
78
+ if (clampedValue !== originalValue && clampReason) {
79
+ this.textInput.value = clampedValue;
80
+ this.value = clampedValue;
81
+ this.tdsError.emit({
82
+ originalValue,
83
+ clampedValue,
84
+ reason: clampReason,
85
+ });
86
+ }
87
+ }
88
+ }
65
89
  this.tdsBlur.emit(event);
66
90
  }
67
91
  /** Method to handle focus */
@@ -74,7 +98,7 @@ export class TdsTextField {
74
98
  var _a;
75
99
  const usesPrefixSlot = hasSlot('prefix', this.host);
76
100
  const usesSuffixSlot = hasSlot('suffix', this.host);
77
- return (h("div", { key: '3a072497874b410339fc3368f49b9048fdcc6641', class: {
101
+ return (h("div", { key: 'c21d4167ad64e9cc08c309e658ddb6a0c431114f', class: {
78
102
  'form-text-field': true,
79
103
  'form-text-field-nomin': this.noMinWidth,
80
104
  'text-field-focus': this.focusInput && !this.disabled,
@@ -92,19 +116,20 @@ export class TdsTextField {
92
116
  'form-text-field-sm': this.size === 'sm',
93
117
  'form-text-field-error': this.state === 'error',
94
118
  'form-text-field-success': this.state === 'success',
95
- } }, this.labelPosition === 'outside' && (h("div", { key: '190b617811d0993b85b3df6951a41678bc51879e', class: "text-field-label-outside" }, h("label", { key: '6e5099cc43259b790d83d3f127e85463e58c9ac2', htmlFor: `text-field-input-element-${this.uuid}` }, this.label))), h("div", { key: 'd5064e04015238d38a70b09c9eba4cbbb1da19cb', onClick: () => this.textInput.focus(), class: "text-field-container" }, usesPrefixSlot && (h("div", { key: '69af0c24b21e3edda262749538cc9775c501e115', class: {
119
+ } }, this.labelPosition === 'outside' && (h("div", { key: 'fbe7ed68a33cefacab1c2afc7d9b810a59368dfc', class: "text-field-label-outside" }, h("label", { key: 'a9b988004bf788b3b58ee54f8c131b0f2014214e', htmlFor: `text-field-input-element-${this.uuid}` }, this.label))), h("div", { key: '10a1bd036b8fc91b0c1fb77121a0d02fd547eb2a', onClick: () => { var _a; return (_a = this.textInput) === null || _a === void 0 ? void 0 : _a.focus(); }, class: "text-field-container" }, usesPrefixSlot && (h("div", { key: '8b9838012fa8b4ad60d11bb3aa554cab7a12448c', class: {
96
120
  'text-field-slot-wrap-prefix': true,
97
121
  'text-field-error': this.state === 'error',
98
122
  'text-field-success': this.state === 'success',
99
123
  'text-field-default': this.state === 'default',
100
- } }, h("slot", { key: 'f397647f1458b1d132080cb15b92be60e2942459', name: "prefix" }))), h("div", { key: '33674576cce732cc66e7ca830669b7535aea7f00', class: "text-field-input-container" }, h("input", { key: 'a27eca3e8862b099475fd46c2182f86d7d110533', ref: (inputEl) => {
124
+ } }, h("slot", { key: 'a460a94a247dfc5430b4f112466328161b4b628c', name: "prefix" }))), h("div", { key: '5a52dff30872f28cd021ca30224cf2527bf94e93', class: "text-field-input-container" }, h("input", { key: 'a6521a8748aed06230cbff2fe617fe7325e3370d', ref: (inputEl) => {
101
125
  this.textInput = inputEl;
102
126
  }, class: {
103
127
  'text-field-input': true,
104
128
  'text-field-input-sm': this.size === 'sm',
105
129
  'text-field-input-md': this.size === 'md',
106
130
  'text-field-input-lg': this.size === 'lg',
107
- }, type: this.type, disabled: this.disabled, readonly: this.disabled ? false : this.readOnly, placeholder: this.placeholder, value: this.value, autofocus: this.autofocus, maxlength: this.maxLength, name: this.name, min: this.min, max: this.max, onInput: (event) => this.handleInput(event), onChange: (event) => this.handleChange(event), onFocus: (event) => {
131
+ 'text-field-input-no-arrows': this.hideNumberArrows,
132
+ }, type: this.type, disabled: this.disabled, readonly: this.disabled ? false : this.readOnly, placeholder: this.placeholder, value: this.value, autofocus: this.autofocus, maxlength: this.maxLength, name: this.name, min: this.min, max: this.max, step: this.step, onInput: (event) => this.handleInput(event), onChange: (event) => this.handleChange(event), onFocus: (event) => {
108
133
  if (!this.readOnly) {
109
134
  this.handleFocus(event);
110
135
  }
@@ -112,13 +137,13 @@ export class TdsTextField {
112
137
  if (!this.readOnly) {
113
138
  this.handleBlur(event);
114
139
  }
115
- }, "aria-invalid": getAriaInvalid(this.host, this.state), "aria-label": this.tdsAriaLabel ? this.tdsAriaLabel : this.label, "aria-describedby": `text-field-helper-element-${this.uuid}`, "aria-readonly": this.readOnly, id: `text-field-input-element-${this.uuid}`, required: this.required, autocomplete: this.autocomplete }), this.labelPosition === 'inside' && this.size !== 'sm' && (h("label", { key: '7671a287273c976a1ad73032020838d6c4cedab0', class: "text-field-label-inside", htmlFor: `text-field-input-element-${this.uuid}` }, this.label))), usesSuffixSlot && (h("div", { key: '19a93786e8647aa1d2e5b9a9b80c71c250330d8d', class: {
140
+ }, "aria-invalid": getAriaInvalid(this.host, this.state), "aria-label": this.tdsAriaLabel ? this.tdsAriaLabel : this.label, "aria-describedby": `text-field-helper-element-${this.uuid}`, "aria-readonly": this.readOnly, id: `text-field-input-element-${this.uuid}`, required: this.required, autocomplete: this.autocomplete }), this.labelPosition === 'inside' && this.size !== 'sm' && (h("label", { key: '00f576ec1301e1200901f905db09b91710ccf8a5', class: "text-field-label-inside", htmlFor: `text-field-input-element-${this.uuid}` }, this.label))), usesSuffixSlot && (h("div", { key: '8b877f09aa33689d7027d10bdc4d45a22f4c7aba', class: {
116
141
  'text-field-slot-wrap-suffix': true,
117
142
  'text-field-error': this.state === 'error',
118
143
  'text-field-success': this.state === 'success',
119
144
  'text-field-default': this.state === 'default',
120
145
  'tds-u-display-none': this.readOnly,
121
- } }, h("slot", { key: 'dd76e5bb941bc791caa395206be040319e00a708', name: "suffix" }))), this.readOnly && !this.hideReadOnlyIcon && (h("span", { key: '2ba57774f40412b9a337ef7bf47ce65bcf44a704', class: "text-field-icon__readonly" }, h("tds-tooltip", { key: 'bfb0f704470e77f9ce6e11fe3d01af3dd8569015', placement: "top-end", text: "This field is non-editable", selector: "#readonly-tooltip" }), h("tds-icon", { key: '28ded9080cb2abfe6a06b284af3807584f4dda02', id: "readonly-tooltip", name: "edit_inactive", size: "20px" })))), h("div", { key: '636205c9e69b3a2602ea0b8817a585e5cd4e16b2', "aria-live": "assertive" }, (this.helper || this.maxLength > 0) && (h("div", { key: '4ece49df31864f53d0fadc3709cd06d34da6830a', class: "text-field-helper", id: `text-field-helper-element-${this.uuid}` }, this.state === 'error' && (h("div", { key: 'ba1e7f916ebbfa6775b46febed47e4bf55af9fd3', class: "text-field-helper-error-state" }, !this.readOnly && h("tds-icon", { key: '45eb885352b32dd3483a1c01f4dbaa49fcfda8ba', name: "error", size: "16px" }), this.helper)), this.state !== 'error' && this.helper, !this.readOnly && this.maxLength > 0 && (h("span", { key: '9934f078456a0af683b0d1f8a997c5484e58868c', class: {
146
+ } }, h("slot", { key: '8a402f382de2dfca84ca46c06950969e6ca65bdb', name: "suffix" }))), this.readOnly && !this.hideReadOnlyIcon && (h("span", { key: '5eb925b1c30e12d8c79fc91b2787291dc4879229', class: "text-field-icon__readonly" }, h("tds-tooltip", { key: 'c307715a372fc0692a60d6f39ce8a01b736c5004', placement: "top-end", text: "This field is non-editable", selector: "#readonly-tooltip" }), h("tds-icon", { key: 'd225ef53660d5e8dad524c0c26e119e1f951ed63', id: "readonly-tooltip", name: "edit_inactive", size: "20px" })))), h("div", { key: '0bb80262383ca9359951a45fca67bcb3b51c2001', "aria-live": "assertive" }, (this.helper || this.maxLength > 0) && (h("div", { key: '519c53c3875642ff9d544839b13ace336a15ff10', class: "text-field-helper", id: `text-field-helper-element-${this.uuid}` }, this.state === 'error' && (h("div", { key: '14fc9f23b453244bac24d79a5b46014f240b5397', class: "text-field-helper-error-state" }, !this.readOnly && h("tds-icon", { key: 'd87add5b27ba5d0c794259194f79695b86a6b3cc', name: "error", size: "16px" }), this.helper)), this.state !== 'error' && this.helper, !this.readOnly && this.maxLength > 0 && (h("span", { key: '355fac5a30bb91b1ae08d6bde1900a575f3594b9', class: {
122
147
  'text-field-textcounter-divider': true,
123
148
  'text-field-textcounter-disabled': this.disabled,
124
149
  } }, this.value === null ? 0 : (_a = this.value) === null || _a === void 0 ? void 0 : _a.length, " / ", this.maxLength)))))));
@@ -225,6 +250,23 @@ export class TdsTextField {
225
250
  "attribute": "max",
226
251
  "reflect": false
227
252
  },
253
+ "step": {
254
+ "type": "any",
255
+ "mutable": false,
256
+ "complexType": {
257
+ "original": "string | number",
258
+ "resolved": "number | string",
259
+ "references": {}
260
+ },
261
+ "required": false,
262
+ "optional": false,
263
+ "docs": {
264
+ "tags": [],
265
+ "text": "Step value for input type number"
266
+ },
267
+ "attribute": "step",
268
+ "reflect": false
269
+ },
228
270
  "helper": {
229
271
  "type": "string",
230
272
  "mutable": false,
@@ -354,8 +396,8 @@ export class TdsTextField {
354
396
  "type": "string",
355
397
  "mutable": false,
356
398
  "complexType": {
357
- "original": "'primary' | 'secondary'",
358
- "resolved": "\"primary\" | \"secondary\"",
399
+ "original": "'primary' | 'secondary' | null",
400
+ "resolved": "\"primary\" | \"secondary\" | null",
359
401
  "references": {}
360
402
  },
361
403
  "required": false,
@@ -509,6 +551,24 @@ export class TdsTextField {
509
551
  "attribute": "autocomplete",
510
552
  "reflect": false,
511
553
  "defaultValue": "'off'"
554
+ },
555
+ "hideNumberArrows": {
556
+ "type": "boolean",
557
+ "mutable": false,
558
+ "complexType": {
559
+ "original": "boolean",
560
+ "resolved": "boolean",
561
+ "references": {}
562
+ },
563
+ "required": false,
564
+ "optional": false,
565
+ "docs": {
566
+ "tags": [],
567
+ "text": "Hides the native arrows on number input type"
568
+ },
569
+ "attribute": "hide-number-arrows",
570
+ "reflect": false,
571
+ "defaultValue": "false"
512
572
  }
513
573
  };
514
574
  }
@@ -593,6 +653,21 @@ export class TdsTextField {
593
653
  }
594
654
  }
595
655
  }
656
+ }, {
657
+ "method": "tdsError",
658
+ "name": "tdsError",
659
+ "bubbles": true,
660
+ "cancelable": false,
661
+ "composed": true,
662
+ "docs": {
663
+ "tags": [],
664
+ "text": "Error event for the Text Field - emitted when value is clamped to min/max"
665
+ },
666
+ "complexType": {
667
+ "original": "{ originalValue: string; clampedValue: string; reason: 'min' | 'max' }",
668
+ "resolved": "{ originalValue: string; clampedValue: string; reason: \"max\" | \"min\"; }",
669
+ "references": {}
670
+ }
596
671
  }];
597
672
  }
598
673
  static get methods() {
@@ -39,7 +39,8 @@ export class TdsTextarea {
39
39
  }
40
40
  /* Set the input as focus when clicking the whole textarea with suffix/prefix */
41
41
  handleFocus(event) {
42
- this.textEl.focus();
42
+ var _a;
43
+ (_a = this.textEl) === null || _a === void 0 ? void 0 : _a.focus();
43
44
  this.focusInput = true;
44
45
  this.tdsFocus.emit(event);
45
46
  }
@@ -61,7 +62,7 @@ export class TdsTextarea {
61
62
  }
62
63
  render() {
63
64
  var _a;
64
- return (h("div", { key: '0e1e8c392e63be0a7e1724f3351e4859eb6501a7', class: {
65
+ return (h("div", { key: 'ab345d2f34e48367b2040556b9b3a6564add939d', class: {
65
66
  'textarea-container': true,
66
67
  'textarea-label-inside': this.labelPosition === 'inside',
67
68
  'textarea-focus': this.focusInput,
@@ -71,7 +72,7 @@ export class TdsTextarea {
71
72
  'textarea-data': this.value !== '',
72
73
  [`textarea-${this.state}`]: this.state === 'error' || this.state === 'success',
73
74
  'no-min-width': this.noMinWidth,
74
- } }, this.labelPosition !== 'no-label' && (h("label", { key: '674206c9897b2e6f8ed4742e4bf4b9db5740a302', htmlFor: `textarea-element-${this.uuid}`, class: 'textarea-label' }, this.label)), h("div", { key: '808b87787dbdb3386bdf528051eb7ab991259e30', class: "textarea-wrapper" }, h("textarea", { key: 'bb9871a2b0f4d88ac150fb8b550c2d5001b9cc2d', id: `textarea-element-${this.uuid}`, class: 'textarea-input', ref: (inputEl) => {
75
+ } }, this.labelPosition !== 'no-label' && (h("label", { key: 'c8290eb384aff2b8a8d7c2495b69167066e76415', htmlFor: `textarea-element-${this.uuid}`, class: 'textarea-label' }, this.label)), h("div", { key: '43cd7476de0402a1aab5eaf2d930678422aaf40e', class: "textarea-wrapper" }, h("textarea", { key: '265bd91d6cb4ca7009d0bc60f3db15c0e6bb47bc', id: `textarea-element-${this.uuid}`, class: 'textarea-input', ref: (inputEl) => {
75
76
  this.textEl = inputEl;
76
77
  }, disabled: this.disabled, readonly: !this.disabled && this.readOnly, placeholder: this.placeholder, value: this.value, name: this.name, autofocus: this.autofocus, maxlength: this.maxLength, cols: this.cols, rows: this.rows, onFocus: (event) => {
77
78
  if (!this.readOnly) {
@@ -81,7 +82,7 @@ export class TdsTextarea {
81
82
  if (!this.readOnly) {
82
83
  this.handleBlur(event);
83
84
  }
84
- }, onInput: (event) => this.handleInput(event), onChange: (event) => this.handleChange(event), "aria-invalid": getAriaInvalid(this.host, this.state), "aria-readonly": this.readOnly ? 'true' : 'false', "aria-label": this.tdsAriaLabel ? this.tdsAriaLabel : this.label, "aria-describedby": `textarea-helper-element-${this.uuid}` }), h("span", { key: 'f9fc9c3136ec57b6f0becd8602c6353f0c8848dd', class: "textarea-resizer-icon" }, h("svg", { key: '8b7f6fe75e111c7d4de27a1a6d30c430cd136753', width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: 'f5857808dfc21333fc8d95c38c0a8e69823a6229', "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M11.8536 0.853553C12.0488 0.658291 12.0488 0.341709 11.8536 0.146447C11.6583 -0.0488155 11.3417 -0.0488155 11.1464 0.146447L0.146447 11.1464C-0.0488155 11.3417 -0.0488155 11.6583 0.146447 11.8536C0.341709 12.0488 0.658291 12.0488 0.853553 11.8536L11.8536 0.853553ZM11.8536 4.64645C12.0488 4.84171 12.0488 5.15829 11.8536 5.35355L5.35355 11.8536C5.15829 12.0488 4.84171 12.0488 4.64645 11.8536C4.45118 11.6583 4.45118 11.3417 4.64645 11.1464L11.1464 4.64645C11.3417 4.45118 11.6583 4.45118 11.8536 4.64645ZM11.8536 8.64645C12.0488 8.84171 12.0488 9.15829 11.8536 9.35355L9.35355 11.8536C9.15829 12.0488 8.84171 12.0488 8.64645 11.8536C8.45118 11.6583 8.45118 11.3417 8.64645 11.1464L11.1464 8.64645C11.3417 8.45118 11.6583 8.45118 11.8536 8.64645Z", fill: "currentColor" }))), !this.disabled && !this.hideReadOnlyIcon && this.readOnly && (h("span", { key: 'df897e9b418dc4b7a2fefc152f0f850278695211', class: "textarea-icon__readonly" }, h("tds-tooltip", { key: 'd350ce47947ccd11fea39f06b5ae6e7cdba84ca9', placement: "top-end", text: "This field is non-editable", selector: "#readonly-tooltip" }), h("tds-icon", { key: '327fd5153c188dcc171d6cbed2727716148157b1', id: "readonly-tooltip", name: "edit_inactive", svgTitle: "inactive" })))), h("span", { key: '5625f2580ce1724b5462e00c8024fb7b9c3f3107', class: 'textarea-helper', "aria-live": "assertive", id: `textarea-helper-element-${this.uuid}` }, this.state === 'error' && this.helper && !this.readOnly && (h("tds-icon", { key: '2873a82b45675d1e09a07de357386b0ea83ed054', name: "error", size: "16px" })), this.helper), this.maxLength > 0 && (h("div", { key: '0a54c37e440f4740e373943bfd48001e8f8f39e6', class: 'textarea-textcounter' }, this.value === null ? 0 : (_a = this.value) === null || _a === void 0 ? void 0 : _a.length, h("span", { key: '53f25f455440e8383bd1dabba20cce266fe78074', class: "textfield-textcounter-divider" }, " / "), " ", this.maxLength))));
85
+ }, onInput: (event) => this.handleInput(event), onChange: (event) => this.handleChange(event), "aria-invalid": getAriaInvalid(this.host, this.state), "aria-readonly": this.readOnly ? 'true' : 'false', "aria-label": this.tdsAriaLabel ? this.tdsAriaLabel : this.label, "aria-describedby": `textarea-helper-element-${this.uuid}` }), h("span", { key: '682632eb45587ee86e48fa7dd42946d97db7da13', class: "textarea-resizer-icon" }, h("svg", { key: '7631ef268be5ec867452ba449f769e45c099d574', width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: 'ba27459f776dc0d6a6d0570420e4610ee08d6b9e', "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M11.8536 0.853553C12.0488 0.658291 12.0488 0.341709 11.8536 0.146447C11.6583 -0.0488155 11.3417 -0.0488155 11.1464 0.146447L0.146447 11.1464C-0.0488155 11.3417 -0.0488155 11.6583 0.146447 11.8536C0.341709 12.0488 0.658291 12.0488 0.853553 11.8536L11.8536 0.853553ZM11.8536 4.64645C12.0488 4.84171 12.0488 5.15829 11.8536 5.35355L5.35355 11.8536C5.15829 12.0488 4.84171 12.0488 4.64645 11.8536C4.45118 11.6583 4.45118 11.3417 4.64645 11.1464L11.1464 4.64645C11.3417 4.45118 11.6583 4.45118 11.8536 4.64645ZM11.8536 8.64645C12.0488 8.84171 12.0488 9.15829 11.8536 9.35355L9.35355 11.8536C9.15829 12.0488 8.84171 12.0488 8.64645 11.8536C8.45118 11.6583 8.45118 11.3417 8.64645 11.1464L11.1464 8.64645C11.3417 8.45118 11.6583 8.45118 11.8536 8.64645Z", fill: "currentColor" }))), !this.disabled && !this.hideReadOnlyIcon && this.readOnly && (h("span", { key: '34f0c79ee333e2e0b0e27dc63d4be1e93b7fc6e4', class: "textarea-icon__readonly" }, h("tds-tooltip", { key: '0aa6ad6c681f5abe6ba19a28f80125d002543fc4', placement: "top-end", text: "This field is non-editable", selector: "#readonly-tooltip" }), h("tds-icon", { key: '780fe72cff253212d79820c29a701258c55da508', id: "readonly-tooltip", name: "edit_inactive", svgTitle: "inactive" })))), h("span", { key: '657766f8f89e07aaac65daece6fc1162b925986a', class: 'textarea-helper', "aria-live": "assertive", id: `textarea-helper-element-${this.uuid}` }, this.state === 'error' && this.helper && !this.readOnly && (h("tds-icon", { key: 'ce5e472fb172d53cb45e9dab4c317fb38dbd05eb', name: "error", size: "16px" })), this.helper), this.maxLength > 0 && (h("div", { key: '919a5471cfad225cefe6c30e88f782cdfc913b2f', class: 'textarea-textcounter' }, this.value === null ? 0 : (_a = this.value) === null || _a === void 0 ? void 0 : _a.length, h("span", { key: '338ef9cdac06151d4fd092208764e3812c2d4f01', class: "textfield-textcounter-divider" }, " / "), " ", this.maxLength))));
85
86
  }
86
87
  static get is() { return "tds-textarea"; }
87
88
  static get encapsulation() { return "scoped"; }
@@ -331,8 +332,8 @@ export class TdsTextarea {
331
332
  "type": "string",
332
333
  "mutable": false,
333
334
  "complexType": {
334
- "original": "'primary' | 'secondary'",
335
- "resolved": "\"primary\" | \"secondary\"",
335
+ "original": "'primary' | 'secondary' | null",
336
+ "resolved": "\"primary\" | \"secondary\" | null",
336
337
  "references": {}
337
338
  },
338
339
  "required": false,
@@ -39,12 +39,13 @@ export class TdsToggle {
39
39
  this.labelSlot = this.host.querySelector("[slot='label']");
40
40
  }
41
41
  render() {
42
- return (h("div", { key: 'c3317c42904e33fd2936aa01ce064f87d33786e3', class: "tds-toggle" }, this.headline && (h("div", { key: '9c2280058b2fbc09e0663dc5e92d4d3dd413cc83', class: {
42
+ return (h("div", { key: 'ee3157ccfc7cc20e4cc0ea94d18ef18206aad346', class: "tds-toggle" }, this.headline && (h("div", { key: 'bb0b6242312d2b93aedca8b30060dced738ad418', class: {
43
43
  'toggle-headline': true,
44
44
  'disabled': this.disabled,
45
- } }, this.headline)), h("input", { key: 'b5e5cfee5c3115c1039e816bbd6f7751cf6a5f6c', ref: (inputEl) => {
46
- this.inputElement = inputEl;
47
- }, "aria-label": this.tdsAriaLabel, "aria-describedby": this.host.getAttribute('aria-describedby'), "aria-labelledby": this.host.getAttribute('aria-labelledby'), "aria-checked": this.checked, "aria-required": this.required, onChange: () => this.handleToggle(), class: `${this.size}`, checked: this.checked, disabled: this.disabled, required: this.required, type: "checkbox", name: this.name, id: this.toggleId, role: "switch" }), this.labelSlot && (h("label", { key: '9eedb6f2c2a0494e2b59f392764c27b143dcecee', class: { disabled: this.disabled }, htmlFor: this.toggleId }, h("slot", { key: '11346fe1d7f4ea0da665b153ae25af9e084a0602', name: "label" })))));
45
+ } }, this.headline)), h("input", { key: 'ff36441c8064df09ee5f09239472250211182725', ref: (inputEl) => {
46
+ if (inputEl)
47
+ this.inputElement = inputEl;
48
+ }, "aria-label": this.tdsAriaLabel, "aria-describedby": this.host.getAttribute('aria-describedby'), "aria-labelledby": this.host.getAttribute('aria-labelledby'), "aria-checked": this.checked, "aria-required": this.required, onChange: () => this.handleToggle(), class: `${this.size}`, checked: this.checked, disabled: this.disabled, required: this.required, type: "checkbox", name: this.name, id: this.toggleId, role: "switch" }), this.labelSlot && (h("label", { key: '67a2179e0c1252fb5d4dc9d9e5ade990bec58cbc', class: { disabled: this.disabled }, htmlFor: this.toggleId }, h("slot", { key: 'ec8080b6080cffecbc83fb9080c55031a8d0a1e7', name: "label" })))));
48
49
  }
49
50
  static get is() { return "tds-toggle"; }
50
51
  static get encapsulation() { return "scoped"; }
@@ -29,7 +29,7 @@ export class TdsTooltip {
29
29
  },
30
30
  },
31
31
  ];
32
- this.inheritedAttributes = [];
32
+ this.inheritedAttributes = {};
33
33
  this.text = '';
34
34
  this.selector = undefined;
35
35
  this.referenceEl = undefined;
@@ -58,20 +58,16 @@ export class TdsTooltip {
58
58
  }
59
59
  render() {
60
60
  var _a;
61
- return (h(Host, { key: '69ced518e10ea5d65da8266257d7f7bba5db3f63', role: "tooltip", "aria-describedby": this.tdsAriaDescribedby, "aria-label": this.text }, h("tds-popover-core", Object.assign({ key: '9511b6fb5dcd5a270de5b6f9b50b40271b4f5030' }, this.inheritedAttributes, { class: {
61
+ return (h(Host, { key: '2b72a1988aa57732d9295a33a43e8baf117e7e17', role: "tooltip", "aria-describedby": this.tdsAriaDescribedby, "aria-label": this.text }, h("tds-popover-core", Object.assign({ key: '449a74bcead02452d6bd7f443cfbfd8ef29071a1' }, this.inheritedAttributes, { class: {
62
62
  'tds-tooltip': true,
63
63
  [`tds-tooltip-${this.border}`]: true,
64
64
  [(_a = this.inheritedAttributes.class) !== null && _a !== void 0 ? _a : '']: true,
65
- 'tds-tooltip-show': this.show,
66
- }, selector: this.selector, referenceEl: this.referenceEl, trigger: this.determineTrigger(), modifiers: this.popperjsExtraModifiers, offsetSkidding: this.offsetSkidding, offsetDistance: this.offsetDistance, show: this.show, placement: this.placement, autoHide: false,
67
- // @ts-ignore
68
- onInternalTdsShow: () => {
65
+ 'tds-tooltip-show': !!this.show,
66
+ }, selector: this.selector, referenceEl: this.referenceEl, trigger: this.determineTrigger(), modifiers: this.popperjsExtraModifiers, offsetSkidding: this.offsetSkidding, offsetDistance: this.offsetDistance, show: this.show, placement: this.placement, autoHide: false, onInternalTdsShow: () => {
69
67
  this.show = true;
70
- },
71
- // @ts-ignore
72
- onInternalTdsClose: () => {
68
+ }, onInternalTdsClose: () => {
73
69
  this.show = false;
74
- }, defaultShow: this.defaultShow }), this.text, h("slot", { key: '8fb6467b2d1fa2ce6a70a171966ff245f8205b55' }))));
70
+ }, defaultShow: this.defaultShow }), this.text, h("slot", { key: 'c232d55352f3e827c16630c69df138ba687486b4' }))));
75
71
  }
76
72
  static get is() { return "tds-tooltip"; }
77
73
  static get encapsulation() { return "scoped"; }
@@ -127,7 +123,7 @@ export class TdsTooltip {
127
123
  "mutable": false,
128
124
  "complexType": {
129
125
  "original": "HTMLElement | null",
130
- "resolved": "HTMLElement",
126
+ "resolved": "HTMLElement | null | undefined",
131
127
  "references": {
132
128
  "HTMLElement": {
133
129
  "location": "global",
@@ -200,8 +196,8 @@ export class TdsTooltip {
200
196
  "type": "boolean",
201
197
  "mutable": true,
202
198
  "complexType": {
203
- "original": "boolean",
204
- "resolved": "boolean",
199
+ "original": "boolean | null",
200
+ "resolved": "boolean | null",
205
201
  "references": {}
206
202
  },
207
203
  "required": false,
@@ -0,0 +1,190 @@
1
+ // ============================================================================
2
+ // Dropdown Keyboard Navigation
3
+ // Handles arrow keys, Enter, Space, Tab, and Escape for all dropdown variants
4
+ // ============================================================================
5
+ let initialized = false;
6
+ export function initDropdownKeyboard() {
7
+ if (initialized)
8
+ return;
9
+ initialized = true;
10
+ // ============================================================================
11
+ // Handler for when dropdown list is open
12
+ // ============================================================================
13
+ const handleOpenListKeydown = (e) => {
14
+ const openTrigger = document.querySelector('.tl-dropdown__button[aria-expanded="true"], .tl-dropdown__input[aria-expanded="true"]');
15
+ if (!openTrigger)
16
+ return;
17
+ const root = openTrigger.closest('.tl-dropdown');
18
+ const openList = root === null || root === void 0 ? void 0 : root.querySelector('.tl-dropdown__list');
19
+ if (!openList)
20
+ return;
21
+ const isDropUp = root === null || root === void 0 ? void 0 : root.classList.contains('tl-dropdown--dropup');
22
+ const isMultiSelect = openList.getAttribute('aria-multiselectable') === 'true';
23
+ const isFilterDropdown = !!(root === null || root === void 0 ? void 0 : root.querySelector('.tl-dropdown__input'));
24
+ const options = Array.from(openList.querySelectorAll('.tl-dropdown__option')).filter((option) => {
25
+ const el = option;
26
+ return (!el.classList.contains('tl-dropdown__option--disabled') &&
27
+ !el.classList.contains('tl-dropdown__option--no-result') &&
28
+ el.style.display !== 'none');
29
+ });
30
+ if (!options.length)
31
+ return;
32
+ const { activeElement } = document;
33
+ const currentIndex = options.findIndex((option) => option === activeElement);
34
+ const focusOption = (index) => {
35
+ if (index < 0 || index >= options.length)
36
+ return;
37
+ options[index].focus();
38
+ };
39
+ if (e.key === 'ArrowDown' || e.key === 'ArrowUp') {
40
+ e.preventDefault();
41
+ if (isFilterDropdown && activeElement === openTrigger) {
42
+ const isArrowDown = e.key === 'ArrowDown';
43
+ const firstIndex = isArrowDown
44
+ ? isDropUp
45
+ ? options.length - 1
46
+ : 0
47
+ : isDropUp
48
+ ? 0
49
+ : options.length - 1;
50
+ focusOption(firstIndex);
51
+ return;
52
+ }
53
+ const direction = e.key === 'ArrowDown' ? 1 : -1;
54
+ let nextIndex = currentIndex;
55
+ if (currentIndex === -1) {
56
+ const isArrowDown = e.key === 'ArrowDown';
57
+ nextIndex = isArrowDown
58
+ ? isDropUp
59
+ ? options.length - 1
60
+ : 0
61
+ : isDropUp
62
+ ? 0
63
+ : options.length - 1;
64
+ }
65
+ else {
66
+ nextIndex = currentIndex + (isDropUp ? -direction : direction);
67
+ }
68
+ if (nextIndex >= options.length)
69
+ nextIndex = 0;
70
+ if (nextIndex < 0)
71
+ nextIndex = options.length - 1;
72
+ focusOption(nextIndex);
73
+ return;
74
+ }
75
+ if (e.key === 'Enter' || e.key === ' ') {
76
+ const focusedOption = options[currentIndex];
77
+ if (!focusedOption)
78
+ return;
79
+ if (isMultiSelect)
80
+ return;
81
+ e.preventDefault();
82
+ focusedOption.click();
83
+ if (openTrigger)
84
+ openTrigger.setAttribute('aria-expanded', 'false');
85
+ if (!isFilterDropdown) {
86
+ openTrigger === null || openTrigger === void 0 ? void 0 : openTrigger.focus();
87
+ }
88
+ return;
89
+ }
90
+ if (e.key === 'Tab') {
91
+ if (isFilterDropdown) {
92
+ const inputWrapper = openTrigger.parentElement;
93
+ const clearButton = inputWrapper === null || inputWrapper === void 0 ? void 0 : inputWrapper.querySelector('.tl-dropdown__input-clear');
94
+ const clearButtonTabindex = clearButton === null || clearButton === void 0 ? void 0 : clearButton.getAttribute('tabindex');
95
+ const canFocusClearButton = clearButton && clearButtonTabindex === '0';
96
+ if (currentIndex >= 0) {
97
+ if (!e.shiftKey && canFocusClearButton) {
98
+ e.preventDefault();
99
+ clearButton === null || clearButton === void 0 ? void 0 : clearButton.focus();
100
+ return;
101
+ }
102
+ return;
103
+ }
104
+ return;
105
+ }
106
+ e.preventDefault();
107
+ const movingForward = isDropUp ? e.shiftKey : !e.shiftKey;
108
+ const nextIndex = movingForward ? currentIndex + 1 : currentIndex - 1;
109
+ if (nextIndex >= options.length || nextIndex < 0) {
110
+ if (openTrigger)
111
+ openTrigger.setAttribute('aria-expanded', 'false');
112
+ openTrigger === null || openTrigger === void 0 ? void 0 : openTrigger.focus();
113
+ return;
114
+ }
115
+ focusOption(nextIndex);
116
+ return;
117
+ }
118
+ if (e.key === 'Escape') {
119
+ e.preventDefault();
120
+ if (openTrigger)
121
+ openTrigger.setAttribute('aria-expanded', 'false');
122
+ openTrigger === null || openTrigger === void 0 ? void 0 : openTrigger.focus();
123
+ }
124
+ };
125
+ const handleTriggerKeydown = (e) => {
126
+ var _a;
127
+ const trigger = (_a = e.target) === null || _a === void 0 ? void 0 : _a.closest('.tl-dropdown__button, .tl-dropdown__input');
128
+ if (!trigger)
129
+ return;
130
+ const root = trigger.closest('.tl-dropdown');
131
+ const list = root === null || root === void 0 ? void 0 : root.querySelector('.tl-dropdown__list');
132
+ if (!list)
133
+ return;
134
+ const isDropUp = root === null || root === void 0 ? void 0 : root.classList.contains('tl-dropdown--dropup');
135
+ const isOpen = trigger.getAttribute('aria-expanded') === 'true';
136
+ const options = Array.from(list.querySelectorAll('.tl-dropdown__option')).filter((option) => {
137
+ const el = option;
138
+ return !el.classList.contains('tl-dropdown__option--disabled') && el.style.display !== 'none';
139
+ });
140
+ if (!options.length)
141
+ return;
142
+ if ((e.key === 'ArrowDown' || e.key === 'ArrowUp') && !isOpen) {
143
+ e.preventDefault();
144
+ trigger.setAttribute('aria-expanded', 'true');
145
+ const firstIndex = isDropUp ? options.length - 1 : 0;
146
+ options[firstIndex].focus();
147
+ }
148
+ };
149
+ const handleClearButtonKeydown = (e) => {
150
+ const target = e.target;
151
+ if (!target.classList.contains('tl-dropdown__input-clear'))
152
+ return;
153
+ if (e.key === 'Enter' || e.key === ' ') {
154
+ e.preventDefault();
155
+ e.stopPropagation();
156
+ target.click();
157
+ }
158
+ if (e.key === 'Tab' && e.shiftKey) {
159
+ const root = target.closest('.tl-dropdown');
160
+ const list = root === null || root === void 0 ? void 0 : root.querySelector('.tl-dropdown__list');
161
+ if (list) {
162
+ const options = Array.from(list.querySelectorAll('.tl-dropdown__option')).filter((option) => {
163
+ const el = option;
164
+ return (!el.classList.contains('tl-dropdown__option--disabled') &&
165
+ !el.classList.contains('tl-dropdown__option--no-result') &&
166
+ el.style.display !== 'none');
167
+ });
168
+ if (options.length > 0) {
169
+ e.preventDefault();
170
+ options[options.length - 1].focus();
171
+ }
172
+ }
173
+ }
174
+ };
175
+ const handleClearButtonFocus = (e) => {
176
+ var _a;
177
+ const target = e.target;
178
+ if (!target.classList.contains('tl-dropdown__input-clear'))
179
+ return;
180
+ const input = (_a = target
181
+ .closest('.tl-dropdown__input-wrapper')) === null || _a === void 0 ? void 0 : _a.querySelector('.tl-dropdown__input');
182
+ if (input) {
183
+ input.setAttribute('aria-expanded', 'true');
184
+ }
185
+ };
186
+ document.addEventListener('keydown', handleOpenListKeydown);
187
+ document.addEventListener('keydown', handleTriggerKeydown);
188
+ document.addEventListener('keydown', handleClearButtonKeydown);
189
+ document.addEventListener('focus', handleClearButtonFocus, true);
190
+ }