@govtechsg/sgds-web-component 3.2.0-rc.1 → 3.2.0-rc.2

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 (453) hide show
  1. package/components/Badge/badge.js +1 -1
  2. package/components/Badge/index.umd.js +4526 -197
  3. package/components/Badge/index.umd.js.map +1 -1
  4. package/components/Badge/sgds-badge.js +64 -30
  5. package/components/Badge/sgds-badge.js.map +1 -1
  6. package/components/ComboBox/index.umd.js +1314 -173
  7. package/components/ComboBox/index.umd.js.map +1 -1
  8. package/components/Datepicker/index.umd.js +33 -6
  9. package/components/Datepicker/index.umd.js.map +1 -1
  10. package/components/DescriptionList/index.umd.js.map +1 -1
  11. package/components/Input/index.umd.js +33 -6
  12. package/components/Input/index.umd.js.map +1 -1
  13. package/components/Input/input.js +1 -1
  14. package/components/Input/sgds-input.js +32 -5
  15. package/components/Input/sgds-input.js.map +1 -1
  16. package/components/Modal/index.umd.js.map +1 -1
  17. package/components/QuantityToggle/index.umd.js +33 -6
  18. package/components/QuantityToggle/index.umd.js.map +1 -1
  19. package/components/Switch/index.umd.js.map +1 -1
  20. package/components/Table/index.umd.js.map +1 -1
  21. package/components/Tooltip/index.umd.js +1 -1
  22. package/components/Tooltip/tooltip.js +1 -1
  23. package/components/index.umd.js +19127 -19051
  24. package/components/index.umd.js.map +1 -1
  25. package/index.umd.js +18708 -18632
  26. package/index.umd.js.map +1 -1
  27. package/package.json +1 -1
  28. package/react/components/Badge/badge.cjs.js +1 -1
  29. package/react/components/Badge/badge.js +1 -1
  30. package/react/components/Badge/sgds-badge.cjs.js +63 -29
  31. package/react/components/Badge/sgds-badge.cjs.js.map +1 -1
  32. package/react/components/Badge/sgds-badge.js +64 -30
  33. package/react/components/Badge/sgds-badge.js.map +1 -1
  34. package/react/components/Input/input.cjs.js +1 -1
  35. package/react/components/Input/input.js +1 -1
  36. package/react/components/Input/sgds-input.cjs.js +32 -5
  37. package/react/components/Input/sgds-input.cjs.js.map +1 -1
  38. package/react/components/Input/sgds-input.js +32 -5
  39. package/react/components/Input/sgds-input.js.map +1 -1
  40. package/react/components/Tooltip/tooltip.cjs.js +1 -1
  41. package/react/components/Tooltip/tooltip.js +1 -1
  42. package/react/utils/slot.cjs.js +18 -0
  43. package/react/utils/slot.cjs.js.map +1 -1
  44. package/react/utils/slot.js +18 -1
  45. package/react/utils/slot.js.map +1 -1
  46. package/scripts/figma/sync-figma-to-tokens/__tests__/write-tokens-to-css-var.test.d.ts +1 -0
  47. package/scripts/figma/sync-figma-to-tokens/color.d.ts +8 -0
  48. package/scripts/figma/sync-figma-to-tokens/figma_api.d.ts +8 -0
  49. package/scripts/figma/sync-figma-to-tokens/sync-figma-to-tokens.d.ts +1 -0
  50. package/scripts/figma/sync-figma-to-tokens/token_export.d.ts +5 -0
  51. package/scripts/figma/sync-figma-to-tokens/token_types.d.ts +52 -0
  52. package/scripts/figma/sync-figma-to-tokens/utils.d.ts +3 -0
  53. package/scripts/figma/sync-figma-to-tokens/write-tokens-to-css-var.d.ts +8 -0
  54. package/{components → src/components}/Badge/sgds-badge.d.ts +9 -0
  55. package/{components → src/components}/Input/sgds-input.d.ts +5 -1
  56. package/utils/slot.js +18 -1
  57. package/utils/slot.js.map +1 -1
  58. /package/{base → src/base}/button-element.d.ts +0 -0
  59. /package/{base → src/base}/card-element.d.ts +0 -0
  60. /package/{base → src/base}/dropdown-element.d.ts +0 -0
  61. /package/{base → src/base}/dropdown-list-element.d.ts +0 -0
  62. /package/{base → src/base}/form-control-element.d.ts +0 -0
  63. /package/{base → src/base}/link-element.d.ts +0 -0
  64. /package/{base → src/base}/select-element.d.ts +0 -0
  65. /package/{base → src/base}/sgds-element.d.ts +0 -0
  66. /package/{components → src/components}/Accordion/index.d.ts +0 -0
  67. /package/{components → src/components}/Accordion/sgds-accordion-item.d.ts +0 -0
  68. /package/{components → src/components}/Accordion/sgds-accordion.d.ts +0 -0
  69. /package/{components → src/components}/Alert/index.d.ts +0 -0
  70. /package/{components → src/components}/Alert/sgds-alert-link.d.ts +0 -0
  71. /package/{components → src/components}/Alert/sgds-alert.d.ts +0 -0
  72. /package/{components → src/components}/Badge/index.d.ts +0 -0
  73. /package/{components → src/components}/Breadcrumb/index.d.ts +0 -0
  74. /package/{components → src/components}/Breadcrumb/sgds-breadcrumb-item.d.ts +0 -0
  75. /package/{components → src/components}/Breadcrumb/sgds-breadcrumb.d.ts +0 -0
  76. /package/{components → src/components}/Button/index.d.ts +0 -0
  77. /package/{components → src/components}/Button/sgds-button.d.ts +0 -0
  78. /package/{components → src/components}/Card/index.d.ts +0 -0
  79. /package/{components → src/components}/Card/sgds-card.d.ts +0 -0
  80. /package/{components → src/components}/Card/types.d.ts +0 -0
  81. /package/{components → src/components}/Checkbox/index.d.ts +0 -0
  82. /package/{components → src/components}/Checkbox/sgds-checkbox-group.d.ts +0 -0
  83. /package/{components → src/components}/Checkbox/sgds-checkbox.d.ts +0 -0
  84. /package/{components → src/components}/ComboBox/combo-box-item.d.ts +0 -0
  85. /package/{components → src/components}/ComboBox/index.d.ts +0 -0
  86. /package/{components → src/components}/ComboBox/sgds-combo-box.d.ts +0 -0
  87. /package/{components → src/components}/Datepicker/datepicker-calendar.d.ts +0 -0
  88. /package/{components → src/components}/Datepicker/datepicker-header.d.ts +0 -0
  89. /package/{components → src/components}/Datepicker/datepicker-input.d.ts +0 -0
  90. /package/{components → src/components}/Datepicker/index.d.ts +0 -0
  91. /package/{components → src/components}/Datepicker/sgds-datepicker.d.ts +0 -0
  92. /package/{components → src/components}/Datepicker/types.d.ts +0 -0
  93. /package/{components → src/components}/DescriptionList/index.d.ts +0 -0
  94. /package/{components → src/components}/DescriptionList/sgds-description-list-group.d.ts +0 -0
  95. /package/{components → src/components}/DescriptionList/sgds-description-list.d.ts +0 -0
  96. /package/{components → src/components}/Divider/index.d.ts +0 -0
  97. /package/{components → src/components}/Divider/sgds-divider.d.ts +0 -0
  98. /package/{components → src/components}/Drawer/index.d.ts +0 -0
  99. /package/{components → src/components}/Drawer/sgds-drawer.d.ts +0 -0
  100. /package/{components → src/components}/Dropdown/index.d.ts +0 -0
  101. /package/{components → src/components}/Dropdown/sgds-dropdown-item.d.ts +0 -0
  102. /package/{components → src/components}/Dropdown/sgds-dropdown.d.ts +0 -0
  103. /package/{components → src/components}/FileUpload/index.d.ts +0 -0
  104. /package/{components → src/components}/FileUpload/sgds-file-upload.d.ts +0 -0
  105. /package/{components → src/components}/Footer/index.d.ts +0 -0
  106. /package/{components → src/components}/Footer/sgds-footer-item.d.ts +0 -0
  107. /package/{components → src/components}/Footer/sgds-footer.d.ts +0 -0
  108. /package/{components → src/components}/Icon/icon-registry.d.ts +0 -0
  109. /package/{components → src/components}/Icon/icons/archive.d.ts +0 -0
  110. /package/{components → src/components}/Icon/icons/arrow-bar-down.d.ts +0 -0
  111. /package/{components → src/components}/Icon/icons/arrow-bar-left.d.ts +0 -0
  112. /package/{components → src/components}/Icon/icons/arrow-bar-right.d.ts +0 -0
  113. /package/{components → src/components}/Icon/icons/arrow-bar-up.d.ts +0 -0
  114. /package/{components → src/components}/Icon/icons/arrow-circle-down.d.ts +0 -0
  115. /package/{components → src/components}/Icon/icons/arrow-circle-left.d.ts +0 -0
  116. /package/{components → src/components}/Icon/icons/arrow-circle-right.d.ts +0 -0
  117. /package/{components → src/components}/Icon/icons/arrow-circle-up.d.ts +0 -0
  118. /package/{components → src/components}/Icon/icons/arrow-clockwise.d.ts +0 -0
  119. /package/{components → src/components}/Icon/icons/arrow-down.d.ts +0 -0
  120. /package/{components → src/components}/Icon/icons/arrow-left.d.ts +0 -0
  121. /package/{components → src/components}/Icon/icons/arrow-repeat.d.ts +0 -0
  122. /package/{components → src/components}/Icon/icons/arrow-right.d.ts +0 -0
  123. /package/{components → src/components}/Icon/icons/arrow-square-down.d.ts +0 -0
  124. /package/{components → src/components}/Icon/icons/arrow-square-left.d.ts +0 -0
  125. /package/{components → src/components}/Icon/icons/arrow-square-right.d.ts +0 -0
  126. /package/{components → src/components}/Icon/icons/arrow-square-up.d.ts +0 -0
  127. /package/{components → src/components}/Icon/icons/arrow-up.d.ts +0 -0
  128. /package/{components → src/components}/Icon/icons/bank-fill.d.ts +0 -0
  129. /package/{components → src/components}/Icon/icons/bell-slash.d.ts +0 -0
  130. /package/{components → src/components}/Icon/icons/bell.d.ts +0 -0
  131. /package/{components → src/components}/Icon/icons/bi-funnel.d.ts +0 -0
  132. /package/{components → src/components}/Icon/icons/bookmark-fill.d.ts +0 -0
  133. /package/{components → src/components}/Icon/icons/bookmark.d.ts +0 -0
  134. /package/{components → src/components}/Icon/icons/box-arrow-up-right.d.ts +0 -0
  135. /package/{components → src/components}/Icon/icons/box-seam.d.ts +0 -0
  136. /package/{components → src/components}/Icon/icons/building.d.ts +0 -0
  137. /package/{components → src/components}/Icon/icons/bus.d.ts +0 -0
  138. /package/{components → src/components}/Icon/icons/calculator.d.ts +0 -0
  139. /package/{components → src/components}/Icon/icons/calendar-check.d.ts +0 -0
  140. /package/{components → src/components}/Icon/icons/calendar-x.d.ts +0 -0
  141. /package/{components → src/components}/Icon/icons/calendar.d.ts +0 -0
  142. /package/{components → src/components}/Icon/icons/camera.d.ts +0 -0
  143. /package/{components → src/components}/Icon/icons/car.d.ts +0 -0
  144. /package/{components → src/components}/Icon/icons/chat-dots.d.ts +0 -0
  145. /package/{components → src/components}/Icon/icons/chat-left-text.d.ts +0 -0
  146. /package/{components → src/components}/Icon/icons/chat.d.ts +0 -0
  147. /package/{components → src/components}/Icon/icons/check-circle-fill.d.ts +0 -0
  148. /package/{components → src/components}/Icon/icons/check-circle.d.ts +0 -0
  149. /package/{components → src/components}/Icon/icons/check.d.ts +0 -0
  150. /package/{components → src/components}/Icon/icons/chevron-down.d.ts +0 -0
  151. /package/{components → src/components}/Icon/icons/chevron-left.d.ts +0 -0
  152. /package/{components → src/components}/Icon/icons/chevron-right.d.ts +0 -0
  153. /package/{components → src/components}/Icon/icons/chevron-selector-vertical.d.ts +0 -0
  154. /package/{components → src/components}/Icon/icons/chevron-up.d.ts +0 -0
  155. /package/{components → src/components}/Icon/icons/clock.d.ts +0 -0
  156. /package/{components → src/components}/Icon/icons/cloud-check.d.ts +0 -0
  157. /package/{components → src/components}/Icon/icons/cloud-download.d.ts +0 -0
  158. /package/{components → src/components}/Icon/icons/cloud-upload.d.ts +0 -0
  159. /package/{components → src/components}/Icon/icons/cloud.d.ts +0 -0
  160. /package/{components → src/components}/Icon/icons/compass.d.ts +0 -0
  161. /package/{components → src/components}/Icon/icons/cross.d.ts +0 -0
  162. /package/{components → src/components}/Icon/icons/cursor-fill.d.ts +0 -0
  163. /package/{components → src/components}/Icon/icons/cursor.d.ts +0 -0
  164. /package/{components → src/components}/Icon/icons/dash-circle.d.ts +0 -0
  165. /package/{components → src/components}/Icon/icons/dash-square.d.ts +0 -0
  166. /package/{components → src/components}/Icon/icons/dash.d.ts +0 -0
  167. /package/{components → src/components}/Icon/icons/download.d.ts +0 -0
  168. /package/{components → src/components}/Icon/icons/edit.d.ts +0 -0
  169. /package/{components → src/components}/Icon/icons/exclamation-circle-fill.d.ts +0 -0
  170. /package/{components → src/components}/Icon/icons/exclamation-circle.d.ts +0 -0
  171. /package/{components → src/components}/Icon/icons/exclamation-triangle-fill.d.ts +0 -0
  172. /package/{components → src/components}/Icon/icons/exclamation-triangle.d.ts +0 -0
  173. /package/{components → src/components}/Icon/icons/exclamation.d.ts +0 -0
  174. /package/{components → src/components}/Icon/icons/eye-fill.d.ts +0 -0
  175. /package/{components → src/components}/Icon/icons/eye-slash-fill.d.ts +0 -0
  176. /package/{components → src/components}/Icon/icons/eye-slash.d.ts +0 -0
  177. /package/{components → src/components}/Icon/icons/eye.d.ts +0 -0
  178. /package/{components → src/components}/Icon/icons/facebook.d.ts +0 -0
  179. /package/{components → src/components}/Icon/icons/file-earmark-text.d.ts +0 -0
  180. /package/{components → src/components}/Icon/icons/file-pdf.d.ts +0 -0
  181. /package/{components → src/components}/Icon/icons/file-plus.d.ts +0 -0
  182. /package/{components → src/components}/Icon/icons/file-text.d.ts +0 -0
  183. /package/{components → src/components}/Icon/icons/file.d.ts +0 -0
  184. /package/{components → src/components}/Icon/icons/files.d.ts +0 -0
  185. /package/{components → src/components}/Icon/icons/folder-check.d.ts +0 -0
  186. /package/{components → src/components}/Icon/icons/folder-minus.d.ts +0 -0
  187. /package/{components → src/components}/Icon/icons/folder-plus.d.ts +0 -0
  188. /package/{components → src/components}/Icon/icons/folder.d.ts +0 -0
  189. /package/{components → src/components}/Icon/icons/gear.d.ts +0 -0
  190. /package/{components → src/components}/Icon/icons/geo-alt.d.ts +0 -0
  191. /package/{components → src/components}/Icon/icons/geo-fill.d.ts +0 -0
  192. /package/{components → src/components}/Icon/icons/geo.d.ts +0 -0
  193. /package/{components → src/components}/Icon/icons/globe-alt.d.ts +0 -0
  194. /package/{components → src/components}/Icon/icons/globe.d.ts +0 -0
  195. /package/{components → src/components}/Icon/icons/google.d.ts +0 -0
  196. /package/{components → src/components}/Icon/icons/grid-fill.d.ts +0 -0
  197. /package/{components → src/components}/Icon/icons/hand-thumbs-down.d.ts +0 -0
  198. /package/{components → src/components}/Icon/icons/hand-thumbs-up.d.ts +0 -0
  199. /package/{components → src/components}/Icon/icons/hard-drive.d.ts +0 -0
  200. /package/{components → src/components}/Icon/icons/heart.d.ts +0 -0
  201. /package/{components → src/components}/Icon/icons/house-door.d.ts +0 -0
  202. /package/{components → src/components}/Icon/icons/house.d.ts +0 -0
  203. /package/{components → src/components}/Icon/icons/image.d.ts +0 -0
  204. /package/{components → src/components}/Icon/icons/in-box.d.ts +0 -0
  205. /package/{components → src/components}/Icon/icons/info-circle-fill.d.ts +0 -0
  206. /package/{components → src/components}/Icon/icons/info-circle.d.ts +0 -0
  207. /package/{components → src/components}/Icon/icons/instagram.d.ts +0 -0
  208. /package/{components → src/components}/Icon/icons/laptop.d.ts +0 -0
  209. /package/{components → src/components}/Icon/icons/layers.d.ts +0 -0
  210. /package/{components → src/components}/Icon/icons/layout-text-window-reverse.d.ts +0 -0
  211. /package/{components → src/components}/Icon/icons/layout-text-window.d.ts +0 -0
  212. /package/{components → src/components}/Icon/icons/layout.d.ts +0 -0
  213. /package/{components → src/components}/Icon/icons/lightbulb.d.ts +0 -0
  214. /package/{components → src/components}/Icon/icons/link.d.ts +0 -0
  215. /package/{components → src/components}/Icon/icons/linkedin.d.ts +0 -0
  216. /package/{components → src/components}/Icon/icons/list.d.ts +0 -0
  217. /package/{components → src/components}/Icon/icons/lock-fill.d.ts +0 -0
  218. /package/{components → src/components}/Icon/icons/lock.d.ts +0 -0
  219. /package/{components → src/components}/Icon/icons/login.d.ts +0 -0
  220. /package/{components → src/components}/Icon/icons/logout.d.ts +0 -0
  221. /package/{components → src/components}/Icon/icons/luggage.d.ts +0 -0
  222. /package/{components → src/components}/Icon/icons/mail.d.ts +0 -0
  223. /package/{components → src/components}/Icon/icons/map.d.ts +0 -0
  224. /package/{components → src/components}/Icon/icons/menu.d.ts +0 -0
  225. /package/{components → src/components}/Icon/icons/microphone.d.ts +0 -0
  226. /package/{components → src/components}/Icon/icons/monitor.d.ts +0 -0
  227. /package/{components → src/components}/Icon/icons/paperclip.d.ts +0 -0
  228. /package/{components → src/components}/Icon/icons/passport.d.ts +0 -0
  229. /package/{components → src/components}/Icon/icons/pencil.d.ts +0 -0
  230. /package/{components → src/components}/Icon/icons/pending-circle.d.ts +0 -0
  231. /package/{components → src/components}/Icon/icons/person-dash.d.ts +0 -0
  232. /package/{components → src/components}/Icon/icons/person-plus.d.ts +0 -0
  233. /package/{components → src/components}/Icon/icons/person-x.d.ts +0 -0
  234. /package/{components → src/components}/Icon/icons/person.d.ts +0 -0
  235. /package/{components → src/components}/Icon/icons/phone.d.ts +0 -0
  236. /package/{components → src/components}/Icon/icons/pin-map-fill.d.ts +0 -0
  237. /package/{components → src/components}/Icon/icons/pin.d.ts +0 -0
  238. /package/{components → src/components}/Icon/icons/placeholder.d.ts +0 -0
  239. /package/{components → src/components}/Icon/icons/plane.d.ts +0 -0
  240. /package/{components → src/components}/Icon/icons/plus-circle.d.ts +0 -0
  241. /package/{components → src/components}/Icon/icons/plus-square.d.ts +0 -0
  242. /package/{components → src/components}/Icon/icons/plus.d.ts +0 -0
  243. /package/{components → src/components}/Icon/icons/printer.d.ts +0 -0
  244. /package/{components → src/components}/Icon/icons/question-circle.d.ts +0 -0
  245. /package/{components → src/components}/Icon/icons/rocket.d.ts +0 -0
  246. /package/{components → src/components}/Icon/icons/save.d.ts +0 -0
  247. /package/{components → src/components}/Icon/icons/search.d.ts +0 -0
  248. /package/{components → src/components}/Icon/icons/send.d.ts +0 -0
  249. /package/{components → src/components}/Icon/icons/sg-crest.d.ts +0 -0
  250. /package/{components → src/components}/Icon/icons/share.d.ts +0 -0
  251. /package/{components → src/components}/Icon/icons/slash-circle.d.ts +0 -0
  252. /package/{components → src/components}/Icon/icons/sliders.d.ts +0 -0
  253. /package/{components → src/components}/Icon/icons/speedometer.d.ts +0 -0
  254. /package/{components → src/components}/Icon/icons/star-fill.d.ts +0 -0
  255. /package/{components → src/components}/Icon/icons/star.d.ts +0 -0
  256. /package/{components → src/components}/Icon/icons/stoplights.d.ts +0 -0
  257. /package/{components → src/components}/Icon/icons/switch-horizontal.d.ts +0 -0
  258. /package/{components → src/components}/Icon/icons/switch-vertical.d.ts +0 -0
  259. /package/{components → src/components}/Icon/icons/tablet.d.ts +0 -0
  260. /package/{components → src/components}/Icon/icons/telephone.d.ts +0 -0
  261. /package/{components → src/components}/Icon/icons/three-dots-vertical.d.ts +0 -0
  262. /package/{components → src/components}/Icon/icons/three-dots.d.ts +0 -0
  263. /package/{components → src/components}/Icon/icons/ticket.d.ts +0 -0
  264. /package/{components → src/components}/Icon/icons/toggle-off.d.ts +0 -0
  265. /package/{components → src/components}/Icon/icons/toggle-on.d.ts +0 -0
  266. /package/{components → src/components}/Icon/icons/train.d.ts +0 -0
  267. /package/{components → src/components}/Icon/icons/translate.d.ts +0 -0
  268. /package/{components → src/components}/Icon/icons/trash.d.ts +0 -0
  269. /package/{components → src/components}/Icon/icons/truck.d.ts +0 -0
  270. /package/{components → src/components}/Icon/icons/twitter-x.d.ts +0 -0
  271. /package/{components → src/components}/Icon/icons/unlock.d.ts +0 -0
  272. /package/{components → src/components}/Icon/icons/upload.d.ts +0 -0
  273. /package/{components → src/components}/Icon/icons/user-circle.d.ts +0 -0
  274. /package/{components → src/components}/Icon/icons/user-square.d.ts +0 -0
  275. /package/{components → src/components}/Icon/icons/users.d.ts +0 -0
  276. /package/{components → src/components}/Icon/icons/video-recorder.d.ts +0 -0
  277. /package/{components → src/components}/Icon/icons/volume-max.d.ts +0 -0
  278. /package/{components → src/components}/Icon/icons/volume-x.d.ts +0 -0
  279. /package/{components → src/components}/Icon/icons/window-dash.d.ts +0 -0
  280. /package/{components → src/components}/Icon/icons/window-desktop.d.ts +0 -0
  281. /package/{components → src/components}/Icon/icons/window-dock.d.ts +0 -0
  282. /package/{components → src/components}/Icon/icons/window-fullscreen.d.ts +0 -0
  283. /package/{components → src/components}/Icon/icons/window-plus.d.ts +0 -0
  284. /package/{components → src/components}/Icon/icons/window-sidebar.d.ts +0 -0
  285. /package/{components → src/components}/Icon/icons/window-split.d.ts +0 -0
  286. /package/{components → src/components}/Icon/icons/window-stack.d.ts +0 -0
  287. /package/{components → src/components}/Icon/icons/window-x.d.ts +0 -0
  288. /package/{components → src/components}/Icon/icons/window.d.ts +0 -0
  289. /package/{components → src/components}/Icon/icons/xcircle-fill.d.ts +0 -0
  290. /package/{components → src/components}/Icon/icons/xcircle.d.ts +0 -0
  291. /package/{components → src/components}/Icon/icons/youtube.d.ts +0 -0
  292. /package/{components → src/components}/Icon/icons/zoom-in.d.ts +0 -0
  293. /package/{components → src/components}/Icon/icons/zoom-out.d.ts +0 -0
  294. /package/{components → src/components}/Icon/index.d.ts +0 -0
  295. /package/{components → src/components}/Icon/sgds-icon.d.ts +0 -0
  296. /package/{components → src/components}/IconButton/index.d.ts +0 -0
  297. /package/{components → src/components}/IconButton/sgds-icon-button.d.ts +0 -0
  298. /package/{components → src/components}/IconCard/index.d.ts +0 -0
  299. /package/{components → src/components}/IconCard/sgds-icon-card.d.ts +0 -0
  300. /package/{components → src/components}/IconList/index.d.ts +0 -0
  301. /package/{components → src/components}/IconList/sgds-icon-list.d.ts +0 -0
  302. /package/{components → src/components}/ImageCard/index.d.ts +0 -0
  303. /package/{components → src/components}/ImageCard/sgds-image-card.d.ts +0 -0
  304. /package/{components → src/components}/Input/index.d.ts +0 -0
  305. /package/{components → src/components}/Link/index.d.ts +0 -0
  306. /package/{components → src/components}/Link/sgds-link.d.ts +0 -0
  307. /package/{components → src/components}/Mainnav/index.d.ts +0 -0
  308. /package/{components → src/components}/Mainnav/mainnav-context.d.ts +0 -0
  309. /package/{components → src/components}/Mainnav/sgds-mainnav-dropdown.d.ts +0 -0
  310. /package/{components → src/components}/Mainnav/sgds-mainnav-item.d.ts +0 -0
  311. /package/{components → src/components}/Mainnav/sgds-mainnav.d.ts +0 -0
  312. /package/{components → src/components}/Masthead/index.d.ts +0 -0
  313. /package/{components → src/components}/Masthead/sgds-masthead.d.ts +0 -0
  314. /package/{components → src/components}/Modal/index.d.ts +0 -0
  315. /package/{components → src/components}/Modal/sgds-modal.d.ts +0 -0
  316. /package/{components → src/components}/OverflowMenu/index.d.ts +0 -0
  317. /package/{components → src/components}/OverflowMenu/sgds-overflow-menu.d.ts +0 -0
  318. /package/{components → src/components}/Pagination/index.d.ts +0 -0
  319. /package/{components → src/components}/Pagination/sgds-pagination.d.ts +0 -0
  320. /package/{components → src/components}/ProgressBar/index.d.ts +0 -0
  321. /package/{components → src/components}/ProgressBar/sgds-progress-bar.d.ts +0 -0
  322. /package/{components → src/components}/QuantityToggle/index.d.ts +0 -0
  323. /package/{components → src/components}/QuantityToggle/sgds-quantity-toggle.d.ts +0 -0
  324. /package/{components → src/components}/Radio/index.d.ts +0 -0
  325. /package/{components → src/components}/Radio/sgds-radio-group.d.ts +0 -0
  326. /package/{components → src/components}/Radio/sgds-radio.d.ts +0 -0
  327. /package/{components → src/components}/Select/index.d.ts +0 -0
  328. /package/{components → src/components}/Select/select-item.d.ts +0 -0
  329. /package/{components → src/components}/Select/sgds-select.d.ts +0 -0
  330. /package/{components → src/components}/Sidenav/index.d.ts +0 -0
  331. /package/{components → src/components}/Sidenav/sgds-sidenav-item.d.ts +0 -0
  332. /package/{components → src/components}/Sidenav/sgds-sidenav-link.d.ts +0 -0
  333. /package/{components → src/components}/Sidenav/sgds-sidenav.d.ts +0 -0
  334. /package/{components → src/components}/Skeleton/index.d.ts +0 -0
  335. /package/{components → src/components}/Skeleton/sgds-skeleton.d.ts +0 -0
  336. /package/{components → src/components}/Spinner/index.d.ts +0 -0
  337. /package/{components → src/components}/Spinner/sgds-spinner.d.ts +0 -0
  338. /package/{components → src/components}/Stepper/index.d.ts +0 -0
  339. /package/{components → src/components}/Stepper/sgds-stepper.d.ts +0 -0
  340. /package/{components → src/components}/Subnav/index.d.ts +0 -0
  341. /package/{components → src/components}/Subnav/sgds-subnav-item.d.ts +0 -0
  342. /package/{components → src/components}/Subnav/sgds-subnav.d.ts +0 -0
  343. /package/{components → src/components}/Switch/index.d.ts +0 -0
  344. /package/{components → src/components}/Switch/sgds-switch.d.ts +0 -0
  345. /package/{components → src/components}/Tab/index.d.ts +0 -0
  346. /package/{components → src/components}/Tab/sgds-tab-group.d.ts +0 -0
  347. /package/{components → src/components}/Tab/sgds-tab-panel.d.ts +0 -0
  348. /package/{components → src/components}/Tab/sgds-tab.d.ts +0 -0
  349. /package/{components → src/components}/Table/index.d.ts +0 -0
  350. /package/{components → src/components}/Table/sgds-table-cell.d.ts +0 -0
  351. /package/{components → src/components}/Table/sgds-table-head.d.ts +0 -0
  352. /package/{components → src/components}/Table/sgds-table-row.d.ts +0 -0
  353. /package/{components → src/components}/Table/sgds-table.d.ts +0 -0
  354. /package/{components → src/components}/TableOfContents/index.d.ts +0 -0
  355. /package/{components → src/components}/TableOfContents/sgds-table-of-contents.d.ts +0 -0
  356. /package/{components → src/components}/Textarea/index.d.ts +0 -0
  357. /package/{components → src/components}/Textarea/sgds-textarea.d.ts +0 -0
  358. /package/{components → src/components}/ThumbnailCard/index.d.ts +0 -0
  359. /package/{components → src/components}/ThumbnailCard/sgds-thumbnail-card.d.ts +0 -0
  360. /package/{components → src/components}/Toast/index.d.ts +0 -0
  361. /package/{components → src/components}/Toast/sgds-toast-container.d.ts +0 -0
  362. /package/{components → src/components}/Toast/sgds-toast.d.ts +0 -0
  363. /package/{components → src/components}/Tooltip/index.d.ts +0 -0
  364. /package/{components → src/components}/Tooltip/sgds-tooltip.d.ts +0 -0
  365. /package/{components → src/components}/index.d.ts +0 -0
  366. /package/{index.d.ts → src/index.d.ts} +0 -0
  367. /package/{internals → src/internals}/CloseButton/index.d.ts +0 -0
  368. /package/{internals → src/internals}/CloseButton/sgds-close-button.d.ts +0 -0
  369. /package/{react → src/react}/accordion/index.d.ts +0 -0
  370. /package/{react → src/react}/accordion-item/index.d.ts +0 -0
  371. /package/{react → src/react}/alert/index.d.ts +0 -0
  372. /package/{react → src/react}/alert-link/index.d.ts +0 -0
  373. /package/{react → src/react}/badge/index.d.ts +0 -0
  374. /package/{react → src/react}/breadcrumb/index.d.ts +0 -0
  375. /package/{react → src/react}/breadcrumb-item/index.d.ts +0 -0
  376. /package/{react → src/react}/button/index.d.ts +0 -0
  377. /package/{react → src/react}/card/index.d.ts +0 -0
  378. /package/{react → src/react}/checkbox/index.d.ts +0 -0
  379. /package/{react → src/react}/checkbox-group/index.d.ts +0 -0
  380. /package/{react → src/react}/combo-box/index.d.ts +0 -0
  381. /package/{react → src/react}/datepicker/index.d.ts +0 -0
  382. /package/{react → src/react}/description-list/index.d.ts +0 -0
  383. /package/{react → src/react}/description-list-group/index.d.ts +0 -0
  384. /package/{react → src/react}/divider/index.d.ts +0 -0
  385. /package/{react → src/react}/drawer/index.d.ts +0 -0
  386. /package/{react → src/react}/dropdown/index.d.ts +0 -0
  387. /package/{react → src/react}/dropdown-item/index.d.ts +0 -0
  388. /package/{react → src/react}/file-upload/index.d.ts +0 -0
  389. /package/{react → src/react}/footer/index.d.ts +0 -0
  390. /package/{react → src/react}/footer-item/index.d.ts +0 -0
  391. /package/{react → src/react}/icon/index.d.ts +0 -0
  392. /package/{react → src/react}/icon-button/index.d.ts +0 -0
  393. /package/{react → src/react}/icon-card/index.d.ts +0 -0
  394. /package/{react → src/react}/icon-list/index.d.ts +0 -0
  395. /package/{react → src/react}/image-card/index.d.ts +0 -0
  396. /package/{react → src/react}/index.d.ts +0 -0
  397. /package/{react → src/react}/input/index.d.ts +0 -0
  398. /package/{react → src/react}/link/index.d.ts +0 -0
  399. /package/{react → src/react}/mainnav/index.d.ts +0 -0
  400. /package/{react → src/react}/mainnav-dropdown/index.d.ts +0 -0
  401. /package/{react → src/react}/mainnav-item/index.d.ts +0 -0
  402. /package/{react → src/react}/masthead/index.d.ts +0 -0
  403. /package/{react → src/react}/modal/index.d.ts +0 -0
  404. /package/{react → src/react}/overflow-menu/index.d.ts +0 -0
  405. /package/{react → src/react}/pagination/index.d.ts +0 -0
  406. /package/{react → src/react}/progress-bar/index.d.ts +0 -0
  407. /package/{react → src/react}/quantity-toggle/index.d.ts +0 -0
  408. /package/{react → src/react}/radio/index.d.ts +0 -0
  409. /package/{react → src/react}/radio-group/index.d.ts +0 -0
  410. /package/{react → src/react}/select/index.d.ts +0 -0
  411. /package/{react → src/react}/sidenav/index.d.ts +0 -0
  412. /package/{react → src/react}/sidenav-item/index.d.ts +0 -0
  413. /package/{react → src/react}/sidenav-link/index.d.ts +0 -0
  414. /package/{react → src/react}/skeleton/index.d.ts +0 -0
  415. /package/{react → src/react}/spinner/index.d.ts +0 -0
  416. /package/{react → src/react}/stepper/index.d.ts +0 -0
  417. /package/{react → src/react}/subnav/index.d.ts +0 -0
  418. /package/{react → src/react}/subnav-item/index.d.ts +0 -0
  419. /package/{react → src/react}/switch/index.d.ts +0 -0
  420. /package/{react → src/react}/tab/index.d.ts +0 -0
  421. /package/{react → src/react}/tab-group/index.d.ts +0 -0
  422. /package/{react → src/react}/tab-panel/index.d.ts +0 -0
  423. /package/{react → src/react}/table/index.d.ts +0 -0
  424. /package/{react → src/react}/table-cell/index.d.ts +0 -0
  425. /package/{react → src/react}/table-head/index.d.ts +0 -0
  426. /package/{react → src/react}/table-of-contents/index.d.ts +0 -0
  427. /package/{react → src/react}/table-row/index.d.ts +0 -0
  428. /package/{react → src/react}/textarea/index.d.ts +0 -0
  429. /package/{react → src/react}/thumbnail-card/index.d.ts +0 -0
  430. /package/{react → src/react}/toast/index.d.ts +0 -0
  431. /package/{react → src/react}/toast-container/index.d.ts +0 -0
  432. /package/{react → src/react}/tooltip/index.d.ts +0 -0
  433. /package/{utils → src/utils}/animate.d.ts +0 -0
  434. /package/{utils → src/utils}/animation-registry.d.ts +0 -0
  435. /package/{utils → src/utils}/breakpoints.d.ts +0 -0
  436. /package/{utils → src/utils}/ce-registry.d.ts +0 -0
  437. /package/{utils → src/utils}/defaultvalue.d.ts +0 -0
  438. /package/{utils → src/utils}/event.d.ts +0 -0
  439. /package/{utils → src/utils}/formSubmitController.d.ts +0 -0
  440. /package/{utils → src/utils}/generateCustomElementName.d.ts +0 -0
  441. /package/{utils → src/utils}/generateId.d.ts +0 -0
  442. /package/{utils → src/utils}/inputValidationController.d.ts +0 -0
  443. /package/{utils → src/utils}/mergeDeep.d.ts +0 -0
  444. /package/{utils → src/utils}/modal.d.ts +0 -0
  445. /package/{utils → src/utils}/object.d.ts +0 -0
  446. /package/{utils → src/utils}/offset.d.ts +0 -0
  447. /package/{utils → src/utils}/scroll.d.ts +0 -0
  448. /package/{utils → src/utils}/slot.d.ts +0 -0
  449. /package/{utils → src/utils}/tabbable.d.ts +0 -0
  450. /package/{utils → src/utils}/test.d.ts +0 -0
  451. /package/{utils → src/utils}/time.d.ts +0 -0
  452. /package/{utils → src/utils}/validatorMixin.d.ts +0 -0
  453. /package/{utils → src/utils}/watch.d.ts +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@govtechsg/sgds-web-component",
3
- "version": "3.2.0-rc.1",
3
+ "version": "3.2.0-rc.2",
4
4
  "description": "",
5
5
  "main": "./index.umd.js",
6
6
  "module": "./index.js",
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
6
  var lit = require('lit');
7
7
 
8
- var css_248z = lit.css`:host{display:inline-flex}:host([variant=success]) .badge{background-color:var(--sgds-success-surface-default)}:host([variant=danger]) .badge{background-color:var(--sgds-danger-surface-default)}:host([variant=warning]) .badge{background-color:var(--sgds-warning-surface-default);color:var(--sgds-color-fixed-dark)}:host([variant=neutral]) .badge{background-color:var(--sgds-neutral-surface-default)}:host([variant=success][outlined]) .badge{background-color:var(--sgds-success-surface-muted);border:var(--sgds-border-width-1) solid var(--sgds-success-border-color-default)}:host([variant=danger][outlined]) .badge{background-color:var(--sgds-danger-surface-muted);border:var(--sgds-border-width-1) solid var(--sgds-danger-border-color-default)}:host([variant=warning][outlined]) .badge{background-color:var(--sgds-warning-surface-muted);border:var(--sgds-border-width-1) solid var(--sgds-warning-border-color-default)}:host([variant=neutral][outlined]) .badge{background-color:var(--sgds-neutral-surface-muted);border:var(--sgds-border-width-1) solid var(--sgds-neutral-border-color-default)}.badge{align-items:center;background-color:var(--sgds-primary-surface-default);border:var(--sgds-border-width-1) solid var(--sgds-border-color-transparent);border-radius:var(--sgds-border-radius-sm);color:var(--sgds-color-fixed-light);display:inline-flex;font-size:var(--sgds-font-size-1);height:var(--sgds-dimension-24);justify-content:center;min-width:var(--sgds-dimension-24);padding:var(--sgds-padding-none) var(--sgds-padding-2-xs)}.badge.outlined{background-color:var(--sgds-primary-surface-muted);border:var(--sgds-border-width-1) solid var(--sgds-primary-border-color-default);color:var(--sgds-color-fixed-dark)}.badge-label{line-height:var(--sgds-line-height-min);padding:var(--sgds-padding-none) var(--sgds-padding-2-xs)}.badge-dismissible{padding-right:0}.badge-dimissible sgds-close-button{--sgds-close-btn-border-radius:var(--sgds-border-radius-sm)}slot::slotted(*){font-size:14px;font-weight:400}`;
8
+ var css_248z = lit.css`:host{cursor:default;display:inline-flex;max-width:100%}:host([variant=success]) .badge{background-color:var(--sgds-success-surface-default)}:host([variant=danger]) .badge{background-color:var(--sgds-danger-surface-default)}:host([variant=warning]) .badge{background-color:var(--sgds-warning-surface-default);color:var(--sgds-color-fixed-dark)}:host([variant=neutral]) .badge{background-color:var(--sgds-neutral-surface-default)}:host([variant=success][outlined]) .badge{background-color:var(--sgds-success-surface-muted);border:var(--sgds-border-width-1) solid var(--sgds-success-border-color-default)}:host([variant=danger][outlined]) .badge{background-color:var(--sgds-danger-surface-muted);border:var(--sgds-border-width-1) solid var(--sgds-danger-border-color-default)}:host([variant=warning][outlined]) .badge{background-color:var(--sgds-warning-surface-muted);border:var(--sgds-border-width-1) solid var(--sgds-warning-border-color-default)}:host([variant=neutral][outlined]) .badge{background-color:var(--sgds-neutral-surface-muted);border:var(--sgds-border-width-1) solid var(--sgds-neutral-border-color-default)}sgds-tooltip{display:block;max-width:100%}.badge{align-items:center;background-color:var(--sgds-primary-surface-default);border:var(--sgds-border-width-1) solid var(--sgds-border-color-transparent);border-radius:var(--sgds-border-radius-sm);color:var(--sgds-color-fixed-light);display:inline-flex;font-size:var(--sgds-font-size-1);height:var(--sgds-dimension-24,24px);justify-content:center;max-width:100%;min-width:var(--sgds-dimension-24);padding:var(--sgds-padding-none) var(--sgds-padding-2-xs)}.badge.outlined{background-color:var(--sgds-primary-surface-muted);border:var(--sgds-border-width-1) solid var(--sgds-primary-border-color-default);color:var(--sgds-color-fixed-dark)}.badge-label{line-height:var(--sgds-line-height-min);padding:var(--sgds-padding-none) var(--sgds-padding-2-xs)}.badge-dismissible{padding-right:0}.badge-dimissible sgds-close-button{--sgds-close-btn-border-radius:var(--sgds-border-radius-sm)}.badge.truncated .badge-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}slot::slotted(*){font-size:14px;font-weight:400}`;
9
9
 
10
10
  exports["default"] = css_248z;
11
11
  //# sourceMappingURL=badge.cjs.js.map
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import { css } from 'lit';
3
3
 
4
- var css_248z = css`:host{display:inline-flex}:host([variant=success]) .badge{background-color:var(--sgds-success-surface-default)}:host([variant=danger]) .badge{background-color:var(--sgds-danger-surface-default)}:host([variant=warning]) .badge{background-color:var(--sgds-warning-surface-default);color:var(--sgds-color-fixed-dark)}:host([variant=neutral]) .badge{background-color:var(--sgds-neutral-surface-default)}:host([variant=success][outlined]) .badge{background-color:var(--sgds-success-surface-muted);border:var(--sgds-border-width-1) solid var(--sgds-success-border-color-default)}:host([variant=danger][outlined]) .badge{background-color:var(--sgds-danger-surface-muted);border:var(--sgds-border-width-1) solid var(--sgds-danger-border-color-default)}:host([variant=warning][outlined]) .badge{background-color:var(--sgds-warning-surface-muted);border:var(--sgds-border-width-1) solid var(--sgds-warning-border-color-default)}:host([variant=neutral][outlined]) .badge{background-color:var(--sgds-neutral-surface-muted);border:var(--sgds-border-width-1) solid var(--sgds-neutral-border-color-default)}.badge{align-items:center;background-color:var(--sgds-primary-surface-default);border:var(--sgds-border-width-1) solid var(--sgds-border-color-transparent);border-radius:var(--sgds-border-radius-sm);color:var(--sgds-color-fixed-light);display:inline-flex;font-size:var(--sgds-font-size-1);height:var(--sgds-dimension-24);justify-content:center;min-width:var(--sgds-dimension-24);padding:var(--sgds-padding-none) var(--sgds-padding-2-xs)}.badge.outlined{background-color:var(--sgds-primary-surface-muted);border:var(--sgds-border-width-1) solid var(--sgds-primary-border-color-default);color:var(--sgds-color-fixed-dark)}.badge-label{line-height:var(--sgds-line-height-min);padding:var(--sgds-padding-none) var(--sgds-padding-2-xs)}.badge-dismissible{padding-right:0}.badge-dimissible sgds-close-button{--sgds-close-btn-border-radius:var(--sgds-border-radius-sm)}slot::slotted(*){font-size:14px;font-weight:400}`;
4
+ var css_248z = css`:host{cursor:default;display:inline-flex;max-width:100%}:host([variant=success]) .badge{background-color:var(--sgds-success-surface-default)}:host([variant=danger]) .badge{background-color:var(--sgds-danger-surface-default)}:host([variant=warning]) .badge{background-color:var(--sgds-warning-surface-default);color:var(--sgds-color-fixed-dark)}:host([variant=neutral]) .badge{background-color:var(--sgds-neutral-surface-default)}:host([variant=success][outlined]) .badge{background-color:var(--sgds-success-surface-muted);border:var(--sgds-border-width-1) solid var(--sgds-success-border-color-default)}:host([variant=danger][outlined]) .badge{background-color:var(--sgds-danger-surface-muted);border:var(--sgds-border-width-1) solid var(--sgds-danger-border-color-default)}:host([variant=warning][outlined]) .badge{background-color:var(--sgds-warning-surface-muted);border:var(--sgds-border-width-1) solid var(--sgds-warning-border-color-default)}:host([variant=neutral][outlined]) .badge{background-color:var(--sgds-neutral-surface-muted);border:var(--sgds-border-width-1) solid var(--sgds-neutral-border-color-default)}sgds-tooltip{display:block;max-width:100%}.badge{align-items:center;background-color:var(--sgds-primary-surface-default);border:var(--sgds-border-width-1) solid var(--sgds-border-color-transparent);border-radius:var(--sgds-border-radius-sm);color:var(--sgds-color-fixed-light);display:inline-flex;font-size:var(--sgds-font-size-1);height:var(--sgds-dimension-24,24px);justify-content:center;max-width:100%;min-width:var(--sgds-dimension-24);padding:var(--sgds-padding-none) var(--sgds-padding-2-xs)}.badge.outlined{background-color:var(--sgds-primary-surface-muted);border:var(--sgds-border-width-1) solid var(--sgds-primary-border-color-default);color:var(--sgds-color-fixed-dark)}.badge-label{line-height:var(--sgds-line-height-min);padding:var(--sgds-padding-none) var(--sgds-padding-2-xs)}.badge-dismissible{padding-right:0}.badge-dimissible sgds-close-button{--sgds-close-btn-border-radius:var(--sgds-border-radius-sm)}.badge.truncated .badge-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}slot::slotted(*){font-size:14px;font-weight:400}`;
5
5
 
6
6
  export { css_248z as default };
7
7
  //# sourceMappingURL=badge.js.map
@@ -7,13 +7,16 @@ var tslib = require('tslib');
7
7
  var lit = require('lit');
8
8
  var decorators_js = require('lit/decorators.js');
9
9
  var classMap_js = require('lit/directives/class-map.js');
10
- var sgdsElement = require('../../base/sgds-element.cjs.js');
11
- var sgdsCloseButton = require('../../internals/CloseButton/sgds-close-button.cjs.js');
12
10
  var watch = require('../../utils/watch.cjs.js');
13
11
  var badge = require('./badge.cjs.js');
12
+ var sgdsElement = require('../../base/sgds-element.cjs.js');
13
+ var sgdsTooltip = require('../Tooltip/sgds-tooltip.cjs.js');
14
+ var sgdsCloseButton = require('../../internals/CloseButton/sgds-close-button.cjs.js');
15
+ var slot = require('../../utils/slot.cjs.js');
14
16
 
15
17
  /**
16
18
  * @summary Badges can be used to highlight important bits of information such as labels, notifications & status.
19
+ * When the text exceeds the width, it will be truncated with a tooltip that will be displayed on hover.
17
20
  *
18
21
  * @slot default - slot for badge
19
22
  * @slot icon - The slot for icon to the left of the badge text
@@ -34,6 +37,8 @@ class SgdsBadge extends sgdsElement["default"] {
34
37
  this.outlined = false;
35
38
  /** Manually set the dismissible state of the button to `false` */
36
39
  this.dismissible = false;
40
+ this.truncated = false;
41
+ this.text = "";
37
42
  }
38
43
  /** Closes the badge */
39
44
  close() {
@@ -60,41 +65,61 @@ class SgdsBadge extends sgdsElement["default"] {
60
65
  this.emit("sgds-after-hide");
61
66
  }
62
67
  }
63
- render() {
64
- return (this.dismissible && this.show) || !this.dismissible
65
- ? lit.html `
66
- <div
67
- class="
68
+ /**@internal */
69
+ _handleTruncation() {
70
+ // checking of text height if its exceeding parent, it needs to be truncated
71
+ const badge = this.shadowRoot.querySelector(".badge");
72
+ const badgeLabel = this.shadowRoot.querySelector(".badge-label");
73
+ if (badge && badgeLabel) {
74
+ const labelHeight = badgeLabel.getBoundingClientRect().height;
75
+ const badgeHeight = badge.getBoundingClientRect().height;
76
+ this.truncated = labelHeight > badgeHeight;
77
+ }
78
+ }
79
+ _handleLabelSlotChange(e) {
80
+ this.text = slot.getTextContent(e.target);
81
+ return;
82
+ }
83
+ _renderContent() {
84
+ return lit.html `<div
85
+ class="
68
86
  ${classMap_js.classMap({
69
- [`badge-dismissible`]: this.dismissible,
70
- badge: true,
71
- outlined: this.outlined
72
- })}
73
- "
74
- aria-hidden=${this.show ? "false" : "true"}
75
- >
76
- ${!this.dismissible ? lit.html `<slot name="icon"></slot>` : lit.nothing}
77
- <span class="badge-label">
78
- <slot></slot>
79
- </span>
87
+ [`badge-dismissible`]: this.dismissible,
88
+ badge: true,
89
+ outlined: this.outlined,
90
+ truncated: this.truncated
91
+ })}"
92
+ aria-hidden=${this.show ? "false" : "true"}
93
+ >
94
+ ${!this.dismissible ? lit.html `<slot name="icon"></slot>` : lit.nothing}
95
+
96
+ <span class="badge-label">
97
+ <slot @slotchange=${this._handleLabelSlotChange}></slot>
98
+ </span>
80
99
 
81
- ${this.dismissible
82
- ? lit.html `<sgds-close-button
83
- size="sm"
84
- aria-label="close the badge"
85
- @click=${this.close}
86
- variant=${this.outlined ? "dark" : "light"}
87
- ></sgds-close-button>`
88
- : lit.nothing}
89
- </div>
90
- `
100
+ ${this.dismissible
101
+ ? lit.html `<sgds-close-button
102
+ size="sm"
103
+ aria-label="close the badge"
104
+ @click=${this.close}
105
+ variant=${this.outlined ? "dark" : "light"}
106
+ ></sgds-close-button>`
107
+ : lit.nothing}
108
+ </div>`;
109
+ }
110
+ render() {
111
+ return (this.dismissible && this.show) || !this.dismissible
112
+ ? this.truncated
113
+ ? lit.html `<sgds-tooltip content=${this.text}>${this._renderContent()}</sgds-tooltip>`
114
+ : this._renderContent()
91
115
  : lit.nothing;
92
116
  }
93
117
  }
94
118
  SgdsBadge.styles = [...sgdsElement["default"].styles, badge["default"]];
95
119
  /**@internal */
96
120
  SgdsBadge.dependencies = {
97
- "sgds-close-button": sgdsCloseButton.SgdsCloseButton
121
+ "sgds-close-button": sgdsCloseButton.SgdsCloseButton,
122
+ "sgds-tooltip": sgdsTooltip.SgdsTooltip
98
123
  };
99
124
  tslib.__decorate([
100
125
  decorators_js.property({ type: Boolean, reflect: true })
@@ -108,9 +133,18 @@ tslib.__decorate([
108
133
  tslib.__decorate([
109
134
  decorators_js.property({ type: Boolean, reflect: true })
110
135
  ], SgdsBadge.prototype, "dismissible", void 0);
136
+ tslib.__decorate([
137
+ decorators_js.state()
138
+ ], SgdsBadge.prototype, "truncated", void 0);
139
+ tslib.__decorate([
140
+ decorators_js.state()
141
+ ], SgdsBadge.prototype, "text", void 0);
111
142
  tslib.__decorate([
112
143
  watch.watch("show")
113
144
  ], SgdsBadge.prototype, "_handleShowChange", null);
145
+ tslib.__decorate([
146
+ watch.watch("text")
147
+ ], SgdsBadge.prototype, "_handleTruncation", null);
114
148
 
115
149
  exports.SgdsBadge = SgdsBadge;
116
150
  exports["default"] = SgdsBadge;
@@ -1 +1 @@
1
- {"version":3,"file":"sgds-badge.cjs.js","sources":["../../../../src/components/Badge/sgds-badge.ts"],"sourcesContent":["import { html, nothing } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport SgdsElement from \"../../base/sgds-element\";\nimport SgdsCloseButton from \"../../internals/CloseButton/sgds-close-button\";\nimport { watch } from \"../../utils/watch\";\nimport badgeStyle from \"./badge.css\";\nexport type BadgeVariant = \"info\" | \"success\" | \"danger\" | \"warning\" | \"neutral\";\n\n/**\n * @summary Badges can be used to highlight important bits of information such as labels, notifications & status.\n *\n * @slot default - slot for badge\n * @slot icon - The slot for icon to the left of the badge text\n *\n * @event sgds-show - Emitted when the badge appears.\n * @event sgds-hide - Emitted when the badge is starting to close but has not closed.\n * @event sgds-after-show - Emitted after the badge has appeared\n * @event sgds-after-hide - Emitted after the badge has closed\n */\nexport class SgdsBadge extends SgdsElement {\n static styles = [...SgdsElement.styles, badgeStyle];\n\n /**@internal */\n static dependencies = {\n \"sgds-close-button\": SgdsCloseButton\n };\n\n /** Controls the appearance of the dismissible badge. This prop only applies when dismissible is true */\n @property({ type: Boolean, reflect: true }) show = false;\n\n /** One or more button variant combinations buttons may be one of a variety of visual variants such as: `info`, `success`, `danger`, `warning`, 'neutral' */\n @property({ reflect: true }) variant: BadgeVariant = \"info\";\n\n /** Manually set the outlined state to false */\n @property({ type: Boolean, reflect: true }) outlined = false;\n\n /** Manually set the dismissible state of the button to `false` */\n @property({ type: Boolean, reflect: true }) dismissible = false;\n\n /** Closes the badge */\n public close() {\n this.show = false;\n }\n /**@internal */\n @watch(\"show\")\n _handleShowChange() {\n if (this.show) {\n const sgdsShow = this.emit(\"sgds-show\", { cancelable: true });\n if (sgdsShow.defaultPrevented) {\n this.show = false;\n return;\n }\n // animations if any go here\n\n this.emit(\"sgds-after-show\");\n } else {\n const sgdsHide = this.emit(\"sgds-hide\", { cancelable: true });\n if (sgdsHide.defaultPrevented) {\n this.show = true;\n return;\n }\n // animations if any go here\n\n this.emit(\"sgds-after-hide\");\n }\n }\n\n render() {\n return (this.dismissible && this.show) || !this.dismissible\n ? html`\n <div\n class=\" \n ${classMap({\n [`badge-dismissible`]: this.dismissible,\n badge: true,\n outlined: this.outlined\n })}\n \"\n aria-hidden=${this.show ? \"false\" : \"true\"}\n >\n ${!this.dismissible ? html`<slot name=\"icon\"></slot>` : nothing}\n <span class=\"badge-label\">\n <slot></slot>\n </span>\n\n ${this.dismissible\n ? html`<sgds-close-button\n size=\"sm\"\n aria-label=\"close the badge\"\n @click=${this.close}\n variant=${this.outlined ? \"dark\" : \"light\"}\n ></sgds-close-button>`\n : nothing}\n </div>\n `\n : nothing;\n }\n}\n\nexport default SgdsBadge;\n"],"names":["SgdsElement","html","classMap","nothing","badgeStyle","SgdsCloseButton","__decorate","property","watch"],"mappings":"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"}
1
+ {"version":3,"file":"sgds-badge.cjs.js","sources":["../../../../src/components/Badge/sgds-badge.ts"],"sourcesContent":["import { html, nothing } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\n\nimport { watch } from \"../../utils/watch\";\nimport badgeStyle from \"./badge.css\";\n\nimport SgdsElement from \"../../base/sgds-element\";\nimport SgdsTooltip from \"../Tooltip/sgds-tooltip\";\nimport SgdsCloseButton from \"../../internals/CloseButton/sgds-close-button\";\n\nimport { getTextContent } from \"../../utils/slot\";\n\nexport type BadgeVariant = \"info\" | \"success\" | \"danger\" | \"warning\" | \"neutral\";\n\n/**\n * @summary Badges can be used to highlight important bits of information such as labels, notifications & status.\n * When the text exceeds the width, it will be truncated with a tooltip that will be displayed on hover.\n *\n * @slot default - slot for badge\n * @slot icon - The slot for icon to the left of the badge text\n *\n * @event sgds-show - Emitted when the badge appears.\n * @event sgds-hide - Emitted when the badge is starting to close but has not closed.\n * @event sgds-after-show - Emitted after the badge has appeared\n * @event sgds-after-hide - Emitted after the badge has closed\n */\nexport class SgdsBadge extends SgdsElement {\n static styles = [...SgdsElement.styles, badgeStyle];\n\n /**@internal */\n static dependencies = {\n \"sgds-close-button\": SgdsCloseButton,\n \"sgds-tooltip\": SgdsTooltip\n };\n\n /** Controls the appearance of the dismissible badge. This prop only applies when dismissible is true */\n @property({ type: Boolean, reflect: true }) show = false;\n\n /** One or more button variant combinations buttons may be one of a variety of visual variants such as: `info`, `success`, `danger`, `warning`, 'neutral' */\n @property({ reflect: true }) variant: BadgeVariant = \"info\";\n\n /** Manually set the outlined state to false */\n @property({ type: Boolean, reflect: true }) outlined = false;\n\n /** Manually set the dismissible state of the button to `false` */\n @property({ type: Boolean, reflect: true }) dismissible = false;\n\n @state() private truncated = false;\n @state() private text = \"\";\n\n /** Closes the badge */\n public close() {\n this.show = false;\n }\n\n /**@internal */\n @watch(\"show\")\n _handleShowChange() {\n if (this.show) {\n const sgdsShow = this.emit(\"sgds-show\", { cancelable: true });\n if (sgdsShow.defaultPrevented) {\n this.show = false;\n return;\n }\n // animations if any go here\n\n this.emit(\"sgds-after-show\");\n } else {\n const sgdsHide = this.emit(\"sgds-hide\", { cancelable: true });\n if (sgdsHide.defaultPrevented) {\n this.show = true;\n return;\n }\n // animations if any go here\n\n this.emit(\"sgds-after-hide\");\n }\n }\n\n /**@internal */\n @watch(\"text\")\n _handleTruncation() {\n // checking of text height if its exceeding parent, it needs to be truncated\n const badge = this.shadowRoot.querySelector(\".badge\");\n const badgeLabel = this.shadowRoot.querySelector(\".badge-label\");\n\n if (badge && badgeLabel) {\n const labelHeight = badgeLabel.getBoundingClientRect().height;\n const badgeHeight = badge.getBoundingClientRect().height;\n\n this.truncated = labelHeight > badgeHeight;\n }\n }\n\n _handleLabelSlotChange(e: Event) {\n this.text = getTextContent(e.target as HTMLSlotElement);\n return;\n }\n\n _renderContent() {\n return html`<div\n class=\" \n ${classMap({\n [`badge-dismissible`]: this.dismissible,\n badge: true,\n outlined: this.outlined,\n truncated: this.truncated\n })}\"\n aria-hidden=${this.show ? \"false\" : \"true\"}\n >\n ${!this.dismissible ? html`<slot name=\"icon\"></slot>` : nothing}\n\n <span class=\"badge-label\">\n <slot @slotchange=${this._handleLabelSlotChange}></slot>\n </span>\n\n ${this.dismissible\n ? html`<sgds-close-button\n size=\"sm\"\n aria-label=\"close the badge\"\n @click=${this.close}\n variant=${this.outlined ? \"dark\" : \"light\"}\n ></sgds-close-button>`\n : nothing}\n </div>`;\n }\n\n render() {\n return (this.dismissible && this.show) || !this.dismissible\n ? this.truncated\n ? html`<sgds-tooltip content=${this.text}>${this._renderContent()}</sgds-tooltip>`\n : this._renderContent()\n : nothing;\n }\n}\n\nexport default SgdsBadge;\n"],"names":["SgdsElement","getTextContent","html","classMap","nothing","badgeStyle","SgdsCloseButton","SgdsTooltip","__decorate","property","state","watch"],"mappings":"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"}
@@ -1,15 +1,18 @@
1
1
  'use client';
2
2
  import { __decorate } from 'tslib';
3
3
  import { html, nothing } from 'lit';
4
- import { property } from 'lit/decorators.js';
4
+ import { property, state } from 'lit/decorators.js';
5
5
  import { classMap } from 'lit/directives/class-map.js';
6
- import SgdsElement from '../../base/sgds-element.js';
7
- import { SgdsCloseButton } from '../../internals/CloseButton/sgds-close-button.js';
8
6
  import { watch } from '../../utils/watch.js';
9
7
  import css_248z from './badge.js';
8
+ import SgdsElement from '../../base/sgds-element.js';
9
+ import { SgdsTooltip } from '../Tooltip/sgds-tooltip.js';
10
+ import { SgdsCloseButton } from '../../internals/CloseButton/sgds-close-button.js';
11
+ import { getTextContent } from '../../utils/slot.js';
10
12
 
11
13
  /**
12
14
  * @summary Badges can be used to highlight important bits of information such as labels, notifications & status.
15
+ * When the text exceeds the width, it will be truncated with a tooltip that will be displayed on hover.
13
16
  *
14
17
  * @slot default - slot for badge
15
18
  * @slot icon - The slot for icon to the left of the badge text
@@ -30,6 +33,8 @@ class SgdsBadge extends SgdsElement {
30
33
  this.outlined = false;
31
34
  /** Manually set the dismissible state of the button to `false` */
32
35
  this.dismissible = false;
36
+ this.truncated = false;
37
+ this.text = "";
33
38
  }
34
39
  /** Closes the badge */
35
40
  close() {
@@ -56,41 +61,61 @@ class SgdsBadge extends SgdsElement {
56
61
  this.emit("sgds-after-hide");
57
62
  }
58
63
  }
59
- render() {
60
- return (this.dismissible && this.show) || !this.dismissible
61
- ? html `
62
- <div
63
- class="
64
+ /**@internal */
65
+ _handleTruncation() {
66
+ // checking of text height if its exceeding parent, it needs to be truncated
67
+ const badge = this.shadowRoot.querySelector(".badge");
68
+ const badgeLabel = this.shadowRoot.querySelector(".badge-label");
69
+ if (badge && badgeLabel) {
70
+ const labelHeight = badgeLabel.getBoundingClientRect().height;
71
+ const badgeHeight = badge.getBoundingClientRect().height;
72
+ this.truncated = labelHeight > badgeHeight;
73
+ }
74
+ }
75
+ _handleLabelSlotChange(e) {
76
+ this.text = getTextContent(e.target);
77
+ return;
78
+ }
79
+ _renderContent() {
80
+ return html `<div
81
+ class="
64
82
  ${classMap({
65
- [`badge-dismissible`]: this.dismissible,
66
- badge: true,
67
- outlined: this.outlined
68
- })}
69
- "
70
- aria-hidden=${this.show ? "false" : "true"}
71
- >
72
- ${!this.dismissible ? html `<slot name="icon"></slot>` : nothing}
73
- <span class="badge-label">
74
- <slot></slot>
75
- </span>
83
+ [`badge-dismissible`]: this.dismissible,
84
+ badge: true,
85
+ outlined: this.outlined,
86
+ truncated: this.truncated
87
+ })}"
88
+ aria-hidden=${this.show ? "false" : "true"}
89
+ >
90
+ ${!this.dismissible ? html `<slot name="icon"></slot>` : nothing}
91
+
92
+ <span class="badge-label">
93
+ <slot @slotchange=${this._handleLabelSlotChange}></slot>
94
+ </span>
76
95
 
77
- ${this.dismissible
78
- ? html `<sgds-close-button
79
- size="sm"
80
- aria-label="close the badge"
81
- @click=${this.close}
82
- variant=${this.outlined ? "dark" : "light"}
83
- ></sgds-close-button>`
84
- : nothing}
85
- </div>
86
- `
96
+ ${this.dismissible
97
+ ? html `<sgds-close-button
98
+ size="sm"
99
+ aria-label="close the badge"
100
+ @click=${this.close}
101
+ variant=${this.outlined ? "dark" : "light"}
102
+ ></sgds-close-button>`
103
+ : nothing}
104
+ </div>`;
105
+ }
106
+ render() {
107
+ return (this.dismissible && this.show) || !this.dismissible
108
+ ? this.truncated
109
+ ? html `<sgds-tooltip content=${this.text}>${this._renderContent()}</sgds-tooltip>`
110
+ : this._renderContent()
87
111
  : nothing;
88
112
  }
89
113
  }
90
114
  SgdsBadge.styles = [...SgdsElement.styles, css_248z];
91
115
  /**@internal */
92
116
  SgdsBadge.dependencies = {
93
- "sgds-close-button": SgdsCloseButton
117
+ "sgds-close-button": SgdsCloseButton,
118
+ "sgds-tooltip": SgdsTooltip
94
119
  };
95
120
  __decorate([
96
121
  property({ type: Boolean, reflect: true })
@@ -104,9 +129,18 @@ __decorate([
104
129
  __decorate([
105
130
  property({ type: Boolean, reflect: true })
106
131
  ], SgdsBadge.prototype, "dismissible", void 0);
132
+ __decorate([
133
+ state()
134
+ ], SgdsBadge.prototype, "truncated", void 0);
135
+ __decorate([
136
+ state()
137
+ ], SgdsBadge.prototype, "text", void 0);
107
138
  __decorate([
108
139
  watch("show")
109
140
  ], SgdsBadge.prototype, "_handleShowChange", null);
141
+ __decorate([
142
+ watch("text")
143
+ ], SgdsBadge.prototype, "_handleTruncation", null);
110
144
 
111
145
  export { SgdsBadge, SgdsBadge as default };
112
146
  //# sourceMappingURL=sgds-badge.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sgds-badge.js","sources":["../../../../src/components/Badge/sgds-badge.ts"],"sourcesContent":["import { html, nothing } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport SgdsElement from \"../../base/sgds-element\";\nimport SgdsCloseButton from \"../../internals/CloseButton/sgds-close-button\";\nimport { watch } from \"../../utils/watch\";\nimport badgeStyle from \"./badge.css\";\nexport type BadgeVariant = \"info\" | \"success\" | \"danger\" | \"warning\" | \"neutral\";\n\n/**\n * @summary Badges can be used to highlight important bits of information such as labels, notifications & status.\n *\n * @slot default - slot for badge\n * @slot icon - The slot for icon to the left of the badge text\n *\n * @event sgds-show - Emitted when the badge appears.\n * @event sgds-hide - Emitted when the badge is starting to close but has not closed.\n * @event sgds-after-show - Emitted after the badge has appeared\n * @event sgds-after-hide - Emitted after the badge has closed\n */\nexport class SgdsBadge extends SgdsElement {\n static styles = [...SgdsElement.styles, badgeStyle];\n\n /**@internal */\n static dependencies = {\n \"sgds-close-button\": SgdsCloseButton\n };\n\n /** Controls the appearance of the dismissible badge. This prop only applies when dismissible is true */\n @property({ type: Boolean, reflect: true }) show = false;\n\n /** One or more button variant combinations buttons may be one of a variety of visual variants such as: `info`, `success`, `danger`, `warning`, 'neutral' */\n @property({ reflect: true }) variant: BadgeVariant = \"info\";\n\n /** Manually set the outlined state to false */\n @property({ type: Boolean, reflect: true }) outlined = false;\n\n /** Manually set the dismissible state of the button to `false` */\n @property({ type: Boolean, reflect: true }) dismissible = false;\n\n /** Closes the badge */\n public close() {\n this.show = false;\n }\n /**@internal */\n @watch(\"show\")\n _handleShowChange() {\n if (this.show) {\n const sgdsShow = this.emit(\"sgds-show\", { cancelable: true });\n if (sgdsShow.defaultPrevented) {\n this.show = false;\n return;\n }\n // animations if any go here\n\n this.emit(\"sgds-after-show\");\n } else {\n const sgdsHide = this.emit(\"sgds-hide\", { cancelable: true });\n if (sgdsHide.defaultPrevented) {\n this.show = true;\n return;\n }\n // animations if any go here\n\n this.emit(\"sgds-after-hide\");\n }\n }\n\n render() {\n return (this.dismissible && this.show) || !this.dismissible\n ? html`\n <div\n class=\" \n ${classMap({\n [`badge-dismissible`]: this.dismissible,\n badge: true,\n outlined: this.outlined\n })}\n \"\n aria-hidden=${this.show ? \"false\" : \"true\"}\n >\n ${!this.dismissible ? html`<slot name=\"icon\"></slot>` : nothing}\n <span class=\"badge-label\">\n <slot></slot>\n </span>\n\n ${this.dismissible\n ? html`<sgds-close-button\n size=\"sm\"\n aria-label=\"close the badge\"\n @click=${this.close}\n variant=${this.outlined ? \"dark\" : \"light\"}\n ></sgds-close-button>`\n : nothing}\n </div>\n `\n : nothing;\n }\n}\n\nexport default SgdsBadge;\n"],"names":["badgeStyle"],"mappings":"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"}
1
+ {"version":3,"file":"sgds-badge.js","sources":["../../../../src/components/Badge/sgds-badge.ts"],"sourcesContent":["import { html, nothing } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\n\nimport { watch } from \"../../utils/watch\";\nimport badgeStyle from \"./badge.css\";\n\nimport SgdsElement from \"../../base/sgds-element\";\nimport SgdsTooltip from \"../Tooltip/sgds-tooltip\";\nimport SgdsCloseButton from \"../../internals/CloseButton/sgds-close-button\";\n\nimport { getTextContent } from \"../../utils/slot\";\n\nexport type BadgeVariant = \"info\" | \"success\" | \"danger\" | \"warning\" | \"neutral\";\n\n/**\n * @summary Badges can be used to highlight important bits of information such as labels, notifications & status.\n * When the text exceeds the width, it will be truncated with a tooltip that will be displayed on hover.\n *\n * @slot default - slot for badge\n * @slot icon - The slot for icon to the left of the badge text\n *\n * @event sgds-show - Emitted when the badge appears.\n * @event sgds-hide - Emitted when the badge is starting to close but has not closed.\n * @event sgds-after-show - Emitted after the badge has appeared\n * @event sgds-after-hide - Emitted after the badge has closed\n */\nexport class SgdsBadge extends SgdsElement {\n static styles = [...SgdsElement.styles, badgeStyle];\n\n /**@internal */\n static dependencies = {\n \"sgds-close-button\": SgdsCloseButton,\n \"sgds-tooltip\": SgdsTooltip\n };\n\n /** Controls the appearance of the dismissible badge. This prop only applies when dismissible is true */\n @property({ type: Boolean, reflect: true }) show = false;\n\n /** One or more button variant combinations buttons may be one of a variety of visual variants such as: `info`, `success`, `danger`, `warning`, 'neutral' */\n @property({ reflect: true }) variant: BadgeVariant = \"info\";\n\n /** Manually set the outlined state to false */\n @property({ type: Boolean, reflect: true }) outlined = false;\n\n /** Manually set the dismissible state of the button to `false` */\n @property({ type: Boolean, reflect: true }) dismissible = false;\n\n @state() private truncated = false;\n @state() private text = \"\";\n\n /** Closes the badge */\n public close() {\n this.show = false;\n }\n\n /**@internal */\n @watch(\"show\")\n _handleShowChange() {\n if (this.show) {\n const sgdsShow = this.emit(\"sgds-show\", { cancelable: true });\n if (sgdsShow.defaultPrevented) {\n this.show = false;\n return;\n }\n // animations if any go here\n\n this.emit(\"sgds-after-show\");\n } else {\n const sgdsHide = this.emit(\"sgds-hide\", { cancelable: true });\n if (sgdsHide.defaultPrevented) {\n this.show = true;\n return;\n }\n // animations if any go here\n\n this.emit(\"sgds-after-hide\");\n }\n }\n\n /**@internal */\n @watch(\"text\")\n _handleTruncation() {\n // checking of text height if its exceeding parent, it needs to be truncated\n const badge = this.shadowRoot.querySelector(\".badge\");\n const badgeLabel = this.shadowRoot.querySelector(\".badge-label\");\n\n if (badge && badgeLabel) {\n const labelHeight = badgeLabel.getBoundingClientRect().height;\n const badgeHeight = badge.getBoundingClientRect().height;\n\n this.truncated = labelHeight > badgeHeight;\n }\n }\n\n _handleLabelSlotChange(e: Event) {\n this.text = getTextContent(e.target as HTMLSlotElement);\n return;\n }\n\n _renderContent() {\n return html`<div\n class=\" \n ${classMap({\n [`badge-dismissible`]: this.dismissible,\n badge: true,\n outlined: this.outlined,\n truncated: this.truncated\n })}\"\n aria-hidden=${this.show ? \"false\" : \"true\"}\n >\n ${!this.dismissible ? html`<slot name=\"icon\"></slot>` : nothing}\n\n <span class=\"badge-label\">\n <slot @slotchange=${this._handleLabelSlotChange}></slot>\n </span>\n\n ${this.dismissible\n ? html`<sgds-close-button\n size=\"sm\"\n aria-label=\"close the badge\"\n @click=${this.close}\n variant=${this.outlined ? \"dark\" : \"light\"}\n ></sgds-close-button>`\n : nothing}\n </div>`;\n }\n\n render() {\n return (this.dismissible && this.show) || !this.dismissible\n ? this.truncated\n ? html`<sgds-tooltip content=${this.text}>${this._renderContent()}</sgds-tooltip>`\n : this._renderContent()\n : nothing;\n }\n}\n\nexport default SgdsBadge;\n"],"names":["badgeStyle"],"mappings":"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"}
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
6
  var lit = require('lit');
7
7
 
8
- var css_248z = lit.css`:host{--input-border-radius:var(--sgds-form-border-radius-md)}.form-control-container{display:flex;flex-direction:column;gap:var(--sgds-form-gap-md)}.form-control-container.disabled{opacity:var(--sgds-opacity-50)}.form-control-group{align-items:center;background-color:var(--sgds-form-surface-default);border:var(--sgds-form-border-width-default) solid var(--sgds-border-color-default);border-radius:var(--input-border-radius);display:flex;gap:var(--sgds-form-gap-md);height:var(--sgds-dimension-48);justify-content:center;min-width:var(--sgds-dimension-256);padding:0 var(--sgds-form-padding-x);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:-webkit-fill-available;width:-moz-available}.form-control{appearance:none;background-clip:padding-box;background:none;border:none;color:var(--sgds-form-color-default);display:block;flex-grow:1;font-size:var(--sgds-font-size-2);line-height:var(--sgds-line-height-body);outline:none;padding:0}.form-control-group>.form-control:focus{z-index:3}@media (prefers-reduced-motion:reduce){.form-control-group{transition:none}}.form-control-group.readonly{background-color:var(--sgds-form-surface-raised)}.form-control-group:not(.disabled):not(.is-invalid):not(.readonly):hover{border:var(--sgds-form-border-width-thick) solid var(--sgds-border-color-emphasis)}.form-control-group:not(.disabled):not(.is-invalid):focus,.form-control-group:not(.disabled):not(.is-invalid):focus-within{border:var(--sgds-form-border-width-thick) solid var(--sgds-border-color-emphasis);box-shadow:var(--sgds-form-box-shadow-focus);outline:0}.form-control-group.is-invalid{border:var(--sgds-form-border-width-thick) solid var(--sgds-form-danger-border-color-default)}.form-control-group.disabled{background-color:var(--sgds-form-surface-muted)}:host(.quantity-toggle) input::-webkit-inner-spin-button{appearance:none;margin:0}:host(.quantity-toggle) input{text-align:center}.form-control-prefix,.form-control-suffix{color:var(--sgds-form-color-subtle);display:flex;flex-wrap:wrap;gap:var(--sgds-gap-xs)}.form-control-group.quantity-toggle{padding:0}`;
8
+ var css_248z = lit.css`:host{--input-border-radius:var(--sgds-form-border-radius-md)}.form-control-container{display:flex;flex-direction:column;gap:var(--sgds-form-gap-md)}.form-control-container.disabled{opacity:var(--sgds-opacity-50)}.form-control-group{align-items:center;background-color:var(--sgds-form-surface-default);border:var(--sgds-form-border-width-default) solid var(--sgds-border-color-default);border-radius:var(--input-border-radius);display:flex;gap:var(--sgds-form-gap-md);height:var(--sgds-dimension-48);justify-content:center;min-width:var(--sgds-dimension-256);padding:0 var(--sgds-form-padding-x);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:-webkit-fill-available;width:-moz-available}.form-control{appearance:none;background-clip:padding-box;background:none;border:none;color:var(--sgds-form-color-default);display:block;flex-grow:1;font-size:var(--sgds-font-size-2);line-height:var(--sgds-line-height-body);outline:none;padding:0}.form-control-group>.form-control:focus{z-index:3}@media (prefers-reduced-motion:reduce){.form-control-group{transition:none}}.form-control-group.readonly{background-color:var(--sgds-form-surface-raised)}.form-control-group:not(.disabled):not(.is-invalid):not(.readonly):hover{border:var(--sgds-form-border-width-thick) solid var(--sgds-border-color-emphasis)}.form-control-group:not(.disabled):not(.is-invalid):focus,.form-control-group:not(.disabled):not(.is-invalid):focus-within{border:var(--sgds-form-border-width-thick) solid var(--sgds-border-color-emphasis);box-shadow:var(--sgds-form-box-shadow-focus);outline:0}.form-control-group.is-invalid{border:var(--sgds-form-border-width-thick) solid var(--sgds-form-danger-border-color-default)}.form-control-group.disabled{background-color:var(--sgds-form-surface-muted)}:host(.quantity-toggle) input::-webkit-inner-spin-button{appearance:none;margin:0}:host(.quantity-toggle) input{text-align:center}.form-control-prefix,.form-control-suffix{color:var(--sgds-form-color-subtle);display:flex;flex-wrap:wrap;gap:var(--sgds-gap-xs)}.form-control-group.quantity-toggle{padding:0}sgds-icon[role=button]{cursor:pointer}sgds-icon[role=button]:focus,sgds-icon[role=button]:focus-visible{box-shadow:var(--sgds-box-shadow-focus);outline:none}.form-control-row{align-items:center;display:flex;gap:var(--sgds-gap-sm)}`;
9
9
 
10
10
  exports["default"] = css_248z;
11
11
  //# sourceMappingURL=input.cjs.js.map
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import { css } from 'lit';
3
3
 
4
- var css_248z = css`:host{--input-border-radius:var(--sgds-form-border-radius-md)}.form-control-container{display:flex;flex-direction:column;gap:var(--sgds-form-gap-md)}.form-control-container.disabled{opacity:var(--sgds-opacity-50)}.form-control-group{align-items:center;background-color:var(--sgds-form-surface-default);border:var(--sgds-form-border-width-default) solid var(--sgds-border-color-default);border-radius:var(--input-border-radius);display:flex;gap:var(--sgds-form-gap-md);height:var(--sgds-dimension-48);justify-content:center;min-width:var(--sgds-dimension-256);padding:0 var(--sgds-form-padding-x);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:-webkit-fill-available;width:-moz-available}.form-control{appearance:none;background-clip:padding-box;background:none;border:none;color:var(--sgds-form-color-default);display:block;flex-grow:1;font-size:var(--sgds-font-size-2);line-height:var(--sgds-line-height-body);outline:none;padding:0}.form-control-group>.form-control:focus{z-index:3}@media (prefers-reduced-motion:reduce){.form-control-group{transition:none}}.form-control-group.readonly{background-color:var(--sgds-form-surface-raised)}.form-control-group:not(.disabled):not(.is-invalid):not(.readonly):hover{border:var(--sgds-form-border-width-thick) solid var(--sgds-border-color-emphasis)}.form-control-group:not(.disabled):not(.is-invalid):focus,.form-control-group:not(.disabled):not(.is-invalid):focus-within{border:var(--sgds-form-border-width-thick) solid var(--sgds-border-color-emphasis);box-shadow:var(--sgds-form-box-shadow-focus);outline:0}.form-control-group.is-invalid{border:var(--sgds-form-border-width-thick) solid var(--sgds-form-danger-border-color-default)}.form-control-group.disabled{background-color:var(--sgds-form-surface-muted)}:host(.quantity-toggle) input::-webkit-inner-spin-button{appearance:none;margin:0}:host(.quantity-toggle) input{text-align:center}.form-control-prefix,.form-control-suffix{color:var(--sgds-form-color-subtle);display:flex;flex-wrap:wrap;gap:var(--sgds-gap-xs)}.form-control-group.quantity-toggle{padding:0}`;
4
+ var css_248z = css`:host{--input-border-radius:var(--sgds-form-border-radius-md)}.form-control-container{display:flex;flex-direction:column;gap:var(--sgds-form-gap-md)}.form-control-container.disabled{opacity:var(--sgds-opacity-50)}.form-control-group{align-items:center;background-color:var(--sgds-form-surface-default);border:var(--sgds-form-border-width-default) solid var(--sgds-border-color-default);border-radius:var(--input-border-radius);display:flex;gap:var(--sgds-form-gap-md);height:var(--sgds-dimension-48);justify-content:center;min-width:var(--sgds-dimension-256);padding:0 var(--sgds-form-padding-x);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:-webkit-fill-available;width:-moz-available}.form-control{appearance:none;background-clip:padding-box;background:none;border:none;color:var(--sgds-form-color-default);display:block;flex-grow:1;font-size:var(--sgds-font-size-2);line-height:var(--sgds-line-height-body);outline:none;padding:0}.form-control-group>.form-control:focus{z-index:3}@media (prefers-reduced-motion:reduce){.form-control-group{transition:none}}.form-control-group.readonly{background-color:var(--sgds-form-surface-raised)}.form-control-group:not(.disabled):not(.is-invalid):not(.readonly):hover{border:var(--sgds-form-border-width-thick) solid var(--sgds-border-color-emphasis)}.form-control-group:not(.disabled):not(.is-invalid):focus,.form-control-group:not(.disabled):not(.is-invalid):focus-within{border:var(--sgds-form-border-width-thick) solid var(--sgds-border-color-emphasis);box-shadow:var(--sgds-form-box-shadow-focus);outline:0}.form-control-group.is-invalid{border:var(--sgds-form-border-width-thick) solid var(--sgds-form-danger-border-color-default)}.form-control-group.disabled{background-color:var(--sgds-form-surface-muted)}:host(.quantity-toggle) input::-webkit-inner-spin-button{appearance:none;margin:0}:host(.quantity-toggle) input{text-align:center}.form-control-prefix,.form-control-suffix{color:var(--sgds-form-color-subtle);display:flex;flex-wrap:wrap;gap:var(--sgds-gap-xs)}.form-control-group.quantity-toggle{padding:0}sgds-icon[role=button]{cursor:pointer}sgds-icon[role=button]:focus,sgds-icon[role=button]:focus-visible{box-shadow:var(--sgds-box-shadow-focus);outline:none}.form-control-row{align-items:center;display:flex;gap:var(--sgds-gap-sm)}`;
5
5
 
6
6
  export { css_248z as default };
7
7
  //# sourceMappingURL=input.js.map
@@ -23,7 +23,8 @@ var sgdsIcon = require('../Icon/sgds-icon.cjs.js');
23
23
  * @summary Text inputs allow your users to enter letters, numbers and symbols on a single line.
24
24
  *
25
25
  * @slot icon - The slot for leading icon of text input
26
- *
26
+ * @slot trailing-icon - The slot for trailing icon of text input. When present, it overrides valid icon and loading spinner rendered when valid prop or loading prop are true
27
+ * @slot action - The slot for call to action of the text input. It is recommended to use sgds-icon-button within this slot
27
28
  * @event sgds-change - Emitted when an alteration to the control's value is committed by the user.
28
29
  * @event sgds-input - Emitted when the control receives input and its value changes.
29
30
  * @event sgds-focus - Emitted when input is in focus.
@@ -53,6 +54,7 @@ class SgdsInput extends validatorMixin.SgdsFormValidatorMixin(formControlElement
53
54
  /**The input's value attribute. */
54
55
  this.value = "";
55
56
  this._isTouched = false;
57
+ this._showPassword = false;
56
58
  }
57
59
  /** Sets focus on the input. */
58
60
  focus(options) {
@@ -145,7 +147,7 @@ class SgdsInput extends validatorMixin.SgdsFormValidatorMixin(formControlElement
145
147
  ${this.prefix ? staticHtml_js.html `<span class="form-control-prefix">${this.prefix}</span>` : lit.nothing}
146
148
  <input
147
149
  class="form-control"
148
- type=${this.type}
150
+ type=${this._inputType()}
149
151
  id=${this._controlId}
150
152
  name=${ifDefined_js.ifDefined(this.name)}
151
153
  placeholder=${ifDefined_js.ifDefined(this.placeholder)}
@@ -171,12 +173,29 @@ class SgdsInput extends validatorMixin.SgdsFormValidatorMixin(formControlElement
171
173
  ? `${this._controlId}-invalid`
172
174
  : ""}"
173
175
  />
174
- ${this.loading ? staticHtml_js.html `<sgds-spinner size="sm"></sgds-spinner>` : lit.nothing}
175
- ${this.valid ? staticHtml_js.html `<sgds-icon name="check-circle-fill" class="valid-icon"></sgds-icon>` : lit.nothing}
176
+ ${this.type === "password" ? this._renderPasswordToggle() : lit.nothing}
176
177
  ${this.suffix ? staticHtml_js.html `<span class="form-control-suffix">${this.suffix}</span>` : lit.nothing}
178
+ <slot name="trailing-icon">
179
+ ${this.loading ? staticHtml_js.html `<sgds-spinner size="sm"></sgds-spinner>` : lit.nothing}
180
+ ${this.valid ? staticHtml_js.html `<sgds-icon name="check-circle-fill" class="valid-icon"></sgds-icon>` : lit.nothing}
181
+ </slot>
177
182
  </div>
178
183
  `;
179
184
  }
185
+ _renderPasswordToggle() {
186
+ return staticHtml_js.html `<sgds-icon
187
+ tabIndex="0"
188
+ role="button"
189
+ name=${this._showPassword ? "eye-slash-fill" : "eye-fill"}
190
+ @click=${() => (this._showPassword = !this._showPassword)}
191
+ ></sgds-icon>`;
192
+ }
193
+ _inputType() {
194
+ if (this.type === "password" && this._showPassword) {
195
+ return "text";
196
+ }
197
+ return this.type;
198
+ }
180
199
  _renderFeedback() {
181
200
  const wantFeedbackText = this.hasFeedback === "both" || this.hasFeedback === "text";
182
201
  return this.invalid && wantFeedbackText
@@ -213,7 +232,12 @@ class SgdsInput extends validatorMixin.SgdsFormValidatorMixin(formControlElement
213
232
  disabled: this.disabled
214
233
  })}"
215
234
  >
216
- ${this._renderLabel()} ${this._renderInput()} ${this._renderFeedback()}
235
+ ${this._renderLabel()}
236
+ <div class="form-control-row">
237
+ ${this._renderInput()}
238
+ <slot name="action"></slot>
239
+ </div>
240
+ ${this._renderFeedback()}
217
241
  </div>
218
242
  `;
219
243
  }
@@ -284,6 +308,9 @@ tslib.__decorate([
284
308
  tslib.__decorate([
285
309
  decorators_js.state()
286
310
  ], SgdsInput.prototype, "_isTouched", void 0);
311
+ tslib.__decorate([
312
+ decorators_js.state()
313
+ ], SgdsInput.prototype, "_showPassword", void 0);
287
314
  tslib.__decorate([
288
315
  watch.watch("_isTouched", { waitUntilFirstUpdate: true })
289
316
  ], SgdsInput.prototype, "_handleIsTouched", null);
@@ -1 +1 @@
1
- {"version":3,"file":"sgds-input.cjs.js","sources":["../../../../src/components/Input/sgds-input.ts"],"sourcesContent":["import { nothing } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport { live } from \"lit/directives/live.js\";\nimport { html } from \"lit/static-html.js\";\nimport FormControlElement from \"../../base/form-control-element\";\nimport formPlaceholderStyles from \"../../styles/form-placeholder.css\";\nimport { defaultValue } from \"../../utils/defaultvalue\";\nimport type { SgdsFormControl } from \"../../utils/formSubmitController\";\nimport { SgdsFormValidatorMixin } from \"../../utils/validatorMixin\";\nimport { watch } from \"../../utils/watch\";\nimport { SgdsSpinner } from \"../Spinner/sgds-spinner\";\nimport inputStyle from \"./input.css\";\nimport SgdsIcon from \"../Icon/sgds-icon\";\n/**\n * @summary Text inputs allow your users to enter letters, numbers and symbols on a single line.\n *\n * @slot icon - The slot for leading icon of text input\n *\n * @event sgds-change - Emitted when an alteration to the control's value is committed by the user.\n * @event sgds-input - Emitted when the control receives input and its value changes.\n * @event sgds-focus - Emitted when input is in focus.\n * @event sgds-blur - Emitted when input is not in focus.\n * @event sgds-invalid - Emitted when input is invalid\n * @event sgds-valid - Emitted when input is valid\n *\n */\nexport class SgdsInput extends SgdsFormValidatorMixin(FormControlElement) implements SgdsFormControl {\n static styles = [...FormControlElement.styles, formPlaceholderStyles, inputStyle];\n /** @internal */\n static dependencies = {\n \"sgds-spinner\": SgdsSpinner,\n \"sgds-icon\": SgdsIcon\n };\n\n @property({ reflect: true }) type: \"email\" | \"number\" | \"password\" | \"search\" | \"tel\" | \"text\" | \"time\" | \"url\" =\n \"text\";\n\n /** The prefix of the input */\n @property({ type: String }) prefix: string;\n\n /** The suffix of the input */\n @property({ type: String }) suffix: string;\n\n /** Sets the minimum length of the input */\n @property({ type: Number, reflect: true }) minlength: number;\n\n /** Sets the maximum length of the input */\n @property({ type: Number, reflect: true }) maxlength: number;\n\n /** The input's minimum value. Only applies number input types. */\n @property() min: number;\n\n /** The input's maximum value. Only applies number input types. */\n @property() max: number;\n\n /** The input's placeholder text. */\n @property({ type: String, reflect: true }) placeholder = \"placeholder\";\n\n /** A pattern to validate input against. */\n @property({ type: String }) pattern: string;\n\n /** Autofocus the input */\n @property({ type: Boolean, reflect: true }) autofocus = false;\n\n /** Makes the input readonly. */\n @property({ type: Boolean, reflect: true }) readonly = false;\n\n /**\n * Specifies the granularity that the value must adhere to, or the special value `any` which means no stepping is\n * implied, allowing any numeric value. Only applies to number input types.\n */\n @property() step: number | \"any\";\n\n /** Allows invalidFeedback, invalid and valid styles to be visible with the input */\n @property({ type: String, reflect: true }) hasFeedback: \"style\" | \"text\" | \"both\";\n\n /**Feedback text for error state when validated */\n @property({ type: String, reflect: true }) invalidFeedback: string;\n\n /**Gets or sets the default value used to reset this element. The initial value corresponds to the one originally specified in the HTML that created this element. */\n @defaultValue()\n defaultValue = \"\";\n\n /** Marks the component as valid. */\n @property({ type: Boolean, reflect: true }) valid = false;\n\n /** Marks the component as loading. */\n @property({ type: Boolean, reflect: true }) loading = false;\n\n /** Makes the input a required field. */\n @property({ type: Boolean, reflect: true }) required = false;\n\n /**The input's value attribute. */\n @property({ reflect: true }) value = \"\";\n\n @state() protected _isTouched = false;\n\n /** Sets focus on the input. */\n public focus(options?: FocusOptions) {\n this.input.focus(options);\n }\n /** Sets blur on the input. */\n public blur() {\n this.input.blur();\n }\n\n /**\n * Checks for validity. Under the hood, HTMLFormElement's reportValidity method calls this method to check for component's validity state\n * Note that the native error popup is prevented for SGDS form components by default. Instead the validation message shows up in the feedback container of SgdsInput\n */\n public reportValidity(): boolean {\n return this._mixinReportValidity();\n }\n /**\n * Checks for validity without any native error popup message\n */\n public checkValidity(): boolean {\n return this._mixinCheckValidity();\n }\n /**\n * Checks for validity without any native error popup message\n */\n public setValidity(flags?: ValidityStateFlags, message?: string, anchor?: HTMLElement): void {\n return this._mixinSetValidity(flags, message, anchor);\n }\n\n /**\n * Returns the ValidityState object\n */\n public get validity(): ValidityState {\n return this._mixinGetValidity();\n }\n /**\n * Returns the validation message based on the ValidityState\n */\n public get validationMessage() {\n return this._mixinGetValidationMessage();\n }\n\n protected _handleFocus() {\n this.emit(\"sgds-focus\");\n }\n\n protected _handleBlur() {\n const sgdsBlur = this.emit(\"sgds-blur\", { cancelable: true });\n this.setInvalid(!this._mixinCheckValidity());\n if (sgdsBlur.defaultPrevented) return;\n\n this._isTouched = true;\n }\n private _handleClick() {\n this.focus();\n }\n\n protected _handleChange(e: Event) {\n this.value = this.input.value;\n const sgdsChange = this.emit(\"sgds-change\", { cancelable: true });\n if (sgdsChange.defaultPrevented) return;\n\n super._mixinHandleChange(e);\n }\n protected _handleInputChange(e: Event) {\n this.value = this.input.value;\n const sgdsInput = this.emit(\"sgds-input\", { cancelable: true });\n\n if (sgdsInput.defaultPrevented) return;\n super._mixinHandleInputChange(e);\n }\n /** @internal */\n @watch(\"_isTouched\", { waitUntilFirstUpdate: true })\n _handleIsTouched() {\n if (this._isTouched) {\n this.setInvalid(!this._mixinCheckValidity());\n }\n }\n @watch(\"disabled\", { waitUntilFirstUpdate: true })\n _handleDisabledChange() {\n // Disabled form controls are always valid, so we need to recheck validity when the state changes\n this.setInvalid(false);\n }\n\n protected _renderInput() {\n const wantFeedbackStyle = this.hasFeedback === \"both\" || this.hasFeedback === \"style\";\n return html`\n <div\n class=\"form-control-group ${classMap({\n disabled: this.disabled,\n readonly: this.readonly,\n \"is-invalid\": this.invalid && wantFeedbackStyle\n })}\"\n @click=${this._handleClick}\n >\n <slot name=\"icon\"></slot>\n ${this.prefix ? html`<span class=\"form-control-prefix\">${this.prefix}</span>` : nothing}\n <input\n class=\"form-control\"\n type=${this.type}\n id=${this._controlId}\n name=${ifDefined(this.name)}\n placeholder=${ifDefined(this.placeholder)}\n aria-invalid=${this.invalid ? \"true\" : \"false\"}\n pattern=${ifDefined(this.pattern)}\n ?autofocus=${this.autofocus}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n ?required=${this.required}\n .value=${live(this.value)}\n minlength=${ifDefined(this.minlength)}\n maxlength=${ifDefined(this.maxlength)}\n min=${ifDefined(this.min)}\n max=${ifDefined(this.max)}\n step=${ifDefined(this.step as number)}\n @input=${(e: Event) => this._handleInputChange(e)}\n @change=${(e: Event) => this._handleChange(e)}\n @invalid=${() => this.setInvalid(true)}\n @focus=${this._handleFocus}\n @blur=${this._handleBlur}\n aria-describedby=${ifDefined(this.invalid && this.hasFeedback ? `${this._controlId}-invalid` : undefined)}\n aria-labelledby=\"${this._labelId} ${this._controlId}Help ${this.invalid && this.hasFeedback\n ? `${this._controlId}-invalid`\n : \"\"}\"\n />\n ${this.loading ? html`<sgds-spinner size=\"sm\"></sgds-spinner>` : nothing}\n ${this.valid ? html`<sgds-icon name=\"check-circle-fill\" class=\"valid-icon\"></sgds-icon>` : nothing}\n ${this.suffix ? html`<span class=\"form-control-suffix\">${this.suffix}</span>` : nothing}\n </div>\n `;\n }\n protected _renderFeedback() {\n const wantFeedbackText = this.hasFeedback === \"both\" || this.hasFeedback === \"text\";\n return this.invalid && wantFeedbackText\n ? html` <div class=\"invalid-feedback-container\">\n <sgds-icon name=\"exclamation-circle-fill\" size=\"md\"></sgds-icon>\n <div id=\"${this._controlId}-invalid\" class=\"invalid-feedback\">\n ${this.invalidFeedback ? this.invalidFeedback : this.input.validationMessage}\n </div>\n </div>`\n : html`${this._renderHintText()}`;\n }\n protected _renderLabel() {\n const labelTemplate = html`\n <label\n for=${this._controlId}\n id=${this._labelId}\n class=${classMap({\n \"form-label\": true,\n required: this.required\n })}\n >${this.label}</label\n >\n `;\n return this.label && labelTemplate;\n }\n protected _renderHintText() {\n const hintTextTemplate = html` <div id=\"${this._controlId}Help\" class=\"form-text\">${this.hintText}</div> `;\n return this.hintText && hintTextTemplate;\n }\n render() {\n return html`\n <div\n class=\"form-control-container ${classMap({\n disabled: this.disabled\n })}\"\n >\n ${this._renderLabel()} ${this._renderInput()} ${this._renderFeedback()}\n </div>\n `;\n }\n}\n\nexport default SgdsInput;\n"],"names":["SgdsFormValidatorMixin","FormControlElement","html","classMap","nothing","ifDefined","live","formPlaceholderStyles","inputStyle","SgdsSpinner","SgdsIcon","__decorate","property","defaultValue","state","watch"],"mappings":"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"}
1
+ {"version":3,"file":"sgds-input.cjs.js","sources":["../../../../src/components/Input/sgds-input.ts"],"sourcesContent":["import { nothing } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport { live } from \"lit/directives/live.js\";\nimport { html } from \"lit/static-html.js\";\nimport FormControlElement from \"../../base/form-control-element\";\nimport formPlaceholderStyles from \"../../styles/form-placeholder.css\";\nimport { defaultValue } from \"../../utils/defaultvalue\";\nimport type { SgdsFormControl } from \"../../utils/formSubmitController\";\nimport { SgdsFormValidatorMixin } from \"../../utils/validatorMixin\";\nimport { watch } from \"../../utils/watch\";\nimport { SgdsSpinner } from \"../Spinner/sgds-spinner\";\nimport inputStyle from \"./input.css\";\nimport SgdsIcon from \"../Icon/sgds-icon\";\n/**\n * @summary Text inputs allow your users to enter letters, numbers and symbols on a single line.\n *\n * @slot icon - The slot for leading icon of text input\n * @slot trailing-icon - The slot for trailing icon of text input. When present, it overrides valid icon and loading spinner rendered when valid prop or loading prop are true\n * @slot action - The slot for call to action of the text input. It is recommended to use sgds-icon-button within this slot\n * @event sgds-change - Emitted when an alteration to the control's value is committed by the user.\n * @event sgds-input - Emitted when the control receives input and its value changes.\n * @event sgds-focus - Emitted when input is in focus.\n * @event sgds-blur - Emitted when input is not in focus.\n * @event sgds-invalid - Emitted when input is invalid\n * @event sgds-valid - Emitted when input is valid\n *\n */\nexport class SgdsInput extends SgdsFormValidatorMixin(FormControlElement) implements SgdsFormControl {\n static styles = [...FormControlElement.styles, formPlaceholderStyles, inputStyle];\n /** @internal */\n static dependencies = {\n \"sgds-spinner\": SgdsSpinner,\n \"sgds-icon\": SgdsIcon\n };\n\n @property({ reflect: true }) type: \"email\" | \"number\" | \"password\" | \"search\" | \"tel\" | \"text\" | \"time\" | \"url\" =\n \"text\";\n\n /** The prefix of the input */\n @property({ type: String }) prefix: string;\n\n /** The suffix of the input */\n @property({ type: String }) suffix: string;\n\n /** Sets the minimum length of the input */\n @property({ type: Number, reflect: true }) minlength: number;\n\n /** Sets the maximum length of the input */\n @property({ type: Number, reflect: true }) maxlength: number;\n\n /** The input's minimum value. Only applies number input types. */\n @property() min: number;\n\n /** The input's maximum value. Only applies number input types. */\n @property() max: number;\n\n /** The input's placeholder text. */\n @property({ type: String, reflect: true }) placeholder = \"placeholder\";\n\n /** A pattern to validate input against. */\n @property({ type: String }) pattern: string;\n\n /** Autofocus the input */\n @property({ type: Boolean, reflect: true }) autofocus = false;\n\n /** Makes the input readonly. */\n @property({ type: Boolean, reflect: true }) readonly = false;\n\n /**\n * Specifies the granularity that the value must adhere to, or the special value `any` which means no stepping is\n * implied, allowing any numeric value. Only applies to number input types.\n */\n @property() step: number | \"any\";\n\n /** Allows invalidFeedback, invalid and valid styles to be visible with the input */\n @property({ type: String, reflect: true }) hasFeedback: \"style\" | \"text\" | \"both\";\n\n /**Feedback text for error state when validated */\n @property({ type: String, reflect: true }) invalidFeedback: string;\n\n /**Gets or sets the default value used to reset this element. The initial value corresponds to the one originally specified in the HTML that created this element. */\n @defaultValue()\n defaultValue = \"\";\n\n /** Marks the component as valid. */\n @property({ type: Boolean, reflect: true }) valid = false;\n\n /** Marks the component as loading. */\n @property({ type: Boolean, reflect: true }) loading = false;\n\n /** Makes the input a required field. */\n @property({ type: Boolean, reflect: true }) required = false;\n\n /**The input's value attribute. */\n @property({ reflect: true }) value = \"\";\n\n @state() protected _isTouched = false;\n\n @state() private _showPassword = false;\n\n /** Sets focus on the input. */\n public focus(options?: FocusOptions) {\n this.input.focus(options);\n }\n /** Sets blur on the input. */\n public blur() {\n this.input.blur();\n }\n\n /**\n * Checks for validity. Under the hood, HTMLFormElement's reportValidity method calls this method to check for component's validity state\n * Note that the native error popup is prevented for SGDS form components by default. Instead the validation message shows up in the feedback container of SgdsInput\n */\n public reportValidity(): boolean {\n return this._mixinReportValidity();\n }\n /**\n * Checks for validity without any native error popup message\n */\n public checkValidity(): boolean {\n return this._mixinCheckValidity();\n }\n /**\n * Checks for validity without any native error popup message\n */\n public setValidity(flags?: ValidityStateFlags, message?: string, anchor?: HTMLElement): void {\n return this._mixinSetValidity(flags, message, anchor);\n }\n\n /**\n * Returns the ValidityState object\n */\n public get validity(): ValidityState {\n return this._mixinGetValidity();\n }\n /**\n * Returns the validation message based on the ValidityState\n */\n public get validationMessage() {\n return this._mixinGetValidationMessage();\n }\n\n protected _handleFocus() {\n this.emit(\"sgds-focus\");\n }\n\n protected _handleBlur() {\n const sgdsBlur = this.emit(\"sgds-blur\", { cancelable: true });\n this.setInvalid(!this._mixinCheckValidity());\n if (sgdsBlur.defaultPrevented) return;\n\n this._isTouched = true;\n }\n private _handleClick() {\n this.focus();\n }\n\n protected _handleChange(e: Event) {\n this.value = this.input.value;\n const sgdsChange = this.emit(\"sgds-change\", { cancelable: true });\n if (sgdsChange.defaultPrevented) return;\n\n super._mixinHandleChange(e);\n }\n protected _handleInputChange(e: Event) {\n this.value = this.input.value;\n const sgdsInput = this.emit(\"sgds-input\", { cancelable: true });\n\n if (sgdsInput.defaultPrevented) return;\n super._mixinHandleInputChange(e);\n }\n /** @internal */\n @watch(\"_isTouched\", { waitUntilFirstUpdate: true })\n _handleIsTouched() {\n if (this._isTouched) {\n this.setInvalid(!this._mixinCheckValidity());\n }\n }\n @watch(\"disabled\", { waitUntilFirstUpdate: true })\n _handleDisabledChange() {\n // Disabled form controls are always valid, so we need to recheck validity when the state changes\n this.setInvalid(false);\n }\n\n protected _renderInput() {\n const wantFeedbackStyle = this.hasFeedback === \"both\" || this.hasFeedback === \"style\";\n return html`\n <div\n class=\"form-control-group ${classMap({\n disabled: this.disabled,\n readonly: this.readonly,\n \"is-invalid\": this.invalid && wantFeedbackStyle\n })}\"\n @click=${this._handleClick}\n >\n <slot name=\"icon\"></slot>\n ${this.prefix ? html`<span class=\"form-control-prefix\">${this.prefix}</span>` : nothing}\n <input\n class=\"form-control\"\n type=${this._inputType()}\n id=${this._controlId}\n name=${ifDefined(this.name)}\n placeholder=${ifDefined(this.placeholder)}\n aria-invalid=${this.invalid ? \"true\" : \"false\"}\n pattern=${ifDefined(this.pattern)}\n ?autofocus=${this.autofocus}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n ?required=${this.required}\n .value=${live(this.value)}\n minlength=${ifDefined(this.minlength)}\n maxlength=${ifDefined(this.maxlength)}\n min=${ifDefined(this.min)}\n max=${ifDefined(this.max)}\n step=${ifDefined(this.step as number)}\n @input=${(e: Event) => this._handleInputChange(e)}\n @change=${(e: Event) => this._handleChange(e)}\n @invalid=${() => this.setInvalid(true)}\n @focus=${this._handleFocus}\n @blur=${this._handleBlur}\n aria-describedby=${ifDefined(this.invalid && this.hasFeedback ? `${this._controlId}-invalid` : undefined)}\n aria-labelledby=\"${this._labelId} ${this._controlId}Help ${this.invalid && this.hasFeedback\n ? `${this._controlId}-invalid`\n : \"\"}\"\n />\n ${this.type === \"password\" ? this._renderPasswordToggle() : nothing}\n ${this.suffix ? html`<span class=\"form-control-suffix\">${this.suffix}</span>` : nothing}\n <slot name=\"trailing-icon\">\n ${this.loading ? html`<sgds-spinner size=\"sm\"></sgds-spinner>` : nothing}\n ${this.valid ? html`<sgds-icon name=\"check-circle-fill\" class=\"valid-icon\"></sgds-icon>` : nothing}\n </slot>\n </div>\n `;\n }\n protected _renderPasswordToggle() {\n return html`<sgds-icon\n tabIndex=\"0\"\n role=\"button\"\n name=${this._showPassword ? \"eye-slash-fill\" : \"eye-fill\"}\n @click=${() => (this._showPassword = !this._showPassword)}\n ></sgds-icon>`;\n }\n protected _inputType() {\n if (this.type === \"password\" && this._showPassword) {\n return \"text\";\n }\n return this.type;\n }\n protected _renderFeedback() {\n const wantFeedbackText = this.hasFeedback === \"both\" || this.hasFeedback === \"text\";\n return this.invalid && wantFeedbackText\n ? html` <div class=\"invalid-feedback-container\">\n <sgds-icon name=\"exclamation-circle-fill\" size=\"md\"></sgds-icon>\n <div id=\"${this._controlId}-invalid\" class=\"invalid-feedback\">\n ${this.invalidFeedback ? this.invalidFeedback : this.input.validationMessage}\n </div>\n </div>`\n : html`${this._renderHintText()}`;\n }\n protected _renderLabel() {\n const labelTemplate = html`\n <label\n for=${this._controlId}\n id=${this._labelId}\n class=${classMap({\n \"form-label\": true,\n required: this.required\n })}\n >${this.label}</label\n >\n `;\n return this.label && labelTemplate;\n }\n protected _renderHintText() {\n const hintTextTemplate = html` <div id=\"${this._controlId}Help\" class=\"form-text\">${this.hintText}</div> `;\n return this.hintText && hintTextTemplate;\n }\n render() {\n return html`\n <div\n class=\"form-control-container ${classMap({\n disabled: this.disabled\n })}\"\n >\n ${this._renderLabel()}\n <div class=\"form-control-row\">\n ${this._renderInput()}\n <slot name=\"action\"></slot>\n </div>\n ${this._renderFeedback()}\n </div>\n `;\n }\n}\n\nexport default SgdsInput;\n"],"names":["SgdsFormValidatorMixin","FormControlElement","html","classMap","nothing","ifDefined","live","formPlaceholderStyles","inputStyle","SgdsSpinner","SgdsIcon","__decorate","property","defaultValue","state","watch"],"mappings":"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"}