@govtechsg/sgds-web-component 3.2.0 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (514) hide show
  1. package/Masthead/index.js +46 -15
  2. package/components/Badge/badge.js +1 -1
  3. package/components/Badge/index.umd.js +4532 -197
  4. package/components/Badge/index.umd.js.map +1 -1
  5. package/components/Badge/sgds-badge.js +70 -30
  6. package/components/Badge/sgds-badge.js.map +1 -1
  7. package/components/Breadcrumb/index.umd.js +3 -3
  8. package/components/Breadcrumb/index.umd.js.map +1 -1
  9. package/components/Card/index.umd.js +2 -2
  10. package/components/Card/index.umd.js.map +1 -1
  11. package/components/ComboBox/combo-box-item2.js +1 -1
  12. package/components/ComboBox/index.umd.js +1321 -174
  13. package/components/ComboBox/index.umd.js.map +1 -1
  14. package/components/Datepicker/index.umd.js +61 -17
  15. package/components/Datepicker/index.umd.js.map +1 -1
  16. package/components/Datepicker/sgds-datepicker.js +29 -11
  17. package/components/Datepicker/sgds-datepicker.js.map +1 -1
  18. package/components/DescriptionList/index.umd.js.map +1 -1
  19. package/components/Dropdown/dropdown-item.js +1 -1
  20. package/components/Dropdown/index.umd.js +1 -1
  21. package/components/IconList/icon-list.js +1 -1
  22. package/components/IconList/index.umd.js +1 -1
  23. package/components/Input/index.umd.js +33 -6
  24. package/components/Input/index.umd.js.map +1 -1
  25. package/components/Input/input.js +1 -1
  26. package/components/Input/sgds-input.js +32 -5
  27. package/components/Input/sgds-input.js.map +1 -1
  28. package/components/Link/index.umd.js +2 -2
  29. package/components/Link/index.umd.js.map +1 -1
  30. package/components/Link/link.js +1 -1
  31. package/components/Link/sgds-link.js +1 -1
  32. package/components/Link/sgds-link.js.map +1 -1
  33. package/components/Mainnav/index.umd.js +4 -4
  34. package/components/Mainnav/index.umd.js.map +1 -1
  35. package/components/Mainnav/mainnav-item.js +1 -1
  36. package/components/Mainnav/mainnav.js +1 -1
  37. package/components/Mainnav/sgds-mainnav.js +1 -1
  38. package/components/Mainnav/sgds-mainnav.js.map +1 -1
  39. package/components/Masthead/index.umd.js +46 -15
  40. package/components/Masthead/index.umd.js.map +1 -1
  41. package/components/Masthead/masthead.js +1 -1
  42. package/components/Masthead/sgds-masthead.js +45 -14
  43. package/components/Masthead/sgds-masthead.js.map +1 -1
  44. package/components/Modal/index.umd.js.map +1 -1
  45. package/components/QuantityToggle/index.umd.js +33 -6
  46. package/components/QuantityToggle/index.umd.js.map +1 -1
  47. package/components/Select/index.umd.js +1 -1
  48. package/components/Select/select-item2.js +1 -1
  49. package/components/Subnav/index.umd.js +1 -1
  50. package/components/Subnav/subnav.js +1 -1
  51. package/components/Switch/index.umd.js.map +1 -1
  52. package/components/Table/index.umd.js.map +1 -1
  53. package/components/Tooltip/index.umd.js +1 -1
  54. package/components/Tooltip/tooltip.js +1 -1
  55. package/components/index.umd.js +18901 -18771
  56. package/components/index.umd.js.map +1 -1
  57. package/css/reboot.css +0 -1
  58. package/index.umd.js +18885 -18755
  59. package/index.umd.js.map +1 -1
  60. package/package.json +1 -1
  61. package/react/components/Badge/badge.cjs.js +1 -1
  62. package/react/components/Badge/badge.js +1 -1
  63. package/react/components/Badge/sgds-badge.cjs.js +69 -29
  64. package/react/components/Badge/sgds-badge.cjs.js.map +1 -1
  65. package/react/components/Badge/sgds-badge.js +70 -30
  66. package/react/components/Badge/sgds-badge.js.map +1 -1
  67. package/react/components/ComboBox/combo-box-item.cjs2.js +1 -1
  68. package/react/components/ComboBox/combo-box-item2.js +1 -1
  69. package/react/components/Datepicker/sgds-datepicker.cjs.js +29 -11
  70. package/react/components/Datepicker/sgds-datepicker.cjs.js.map +1 -1
  71. package/react/components/Datepicker/sgds-datepicker.js +29 -11
  72. package/react/components/Datepicker/sgds-datepicker.js.map +1 -1
  73. package/react/components/Dropdown/dropdown-item.cjs.js +1 -1
  74. package/react/components/Dropdown/dropdown-item.js +1 -1
  75. package/react/components/IconList/icon-list.cjs.js +1 -1
  76. package/react/components/IconList/icon-list.js +1 -1
  77. package/react/components/Input/input.cjs.js +1 -1
  78. package/react/components/Input/input.js +1 -1
  79. package/react/components/Input/sgds-input.cjs.js +32 -5
  80. package/react/components/Input/sgds-input.cjs.js.map +1 -1
  81. package/react/components/Input/sgds-input.js +32 -5
  82. package/react/components/Input/sgds-input.js.map +1 -1
  83. package/react/components/Link/link.cjs.js +1 -1
  84. package/react/components/Link/link.js +1 -1
  85. package/react/components/Link/sgds-link.cjs.js +1 -1
  86. package/react/components/Link/sgds-link.cjs.js.map +1 -1
  87. package/react/components/Link/sgds-link.js +1 -1
  88. package/react/components/Link/sgds-link.js.map +1 -1
  89. package/react/components/Mainnav/mainnav-item.cjs.js +1 -1
  90. package/react/components/Mainnav/mainnav-item.js +1 -1
  91. package/react/components/Mainnav/mainnav.cjs.js +1 -1
  92. package/react/components/Mainnav/mainnav.js +1 -1
  93. package/react/components/Mainnav/sgds-mainnav.cjs.js +1 -1
  94. package/react/components/Mainnav/sgds-mainnav.cjs.js.map +1 -1
  95. package/react/components/Mainnav/sgds-mainnav.js +1 -1
  96. package/react/components/Mainnav/sgds-mainnav.js.map +1 -1
  97. package/react/components/Masthead/masthead.cjs.js +1 -1
  98. package/react/components/Masthead/masthead.js +1 -1
  99. package/react/components/Masthead/sgds-masthead.cjs.js +45 -14
  100. package/react/components/Masthead/sgds-masthead.cjs.js.map +1 -1
  101. package/react/components/Masthead/sgds-masthead.js +45 -14
  102. package/react/components/Masthead/sgds-masthead.js.map +1 -1
  103. package/react/components/Select/select-item.cjs2.js +1 -1
  104. package/react/components/Select/select-item2.js +1 -1
  105. package/react/components/Subnav/subnav.cjs.js +1 -1
  106. package/react/components/Subnav/subnav.js +1 -1
  107. package/react/components/Tooltip/tooltip.cjs.js +1 -1
  108. package/react/components/Tooltip/tooltip.js +1 -1
  109. package/react/index.cjs.js +8 -8
  110. package/react/index.js +1 -1
  111. package/react/utils/slot.cjs.js +18 -0
  112. package/react/utils/slot.cjs.js.map +1 -1
  113. package/react/utils/slot.js +18 -1
  114. package/react/utils/slot.js.map +1 -1
  115. package/scripts/figma/sync-figma-to-tokens/__tests__/write-tokens-to-css-var.test.d.ts +0 -0
  116. package/scripts/figma/sync-figma-to-tokens/color.d.ts +8 -0
  117. package/scripts/figma/sync-figma-to-tokens/figma_api.d.ts +8 -0
  118. package/scripts/figma/sync-figma-to-tokens/sync-figma-to-tokens.d.ts +1 -0
  119. package/scripts/figma/sync-figma-to-tokens/token_export.d.ts +5 -0
  120. package/scripts/figma/sync-figma-to-tokens/token_types.d.ts +52 -0
  121. package/scripts/figma/sync-figma-to-tokens/utils.d.ts +3 -0
  122. package/scripts/figma/sync-figma-to-tokens/write-tokens-to-css-var.d.ts +8 -0
  123. package/{components → src/components}/Badge/sgds-badge.d.ts +11 -0
  124. package/{components → src/components}/Datepicker/sgds-datepicker.d.ts +13 -3
  125. package/{components → src/components}/Input/sgds-input.d.ts +5 -1
  126. package/{components → src/components}/Link/sgds-link.d.ts +2 -2
  127. package/themes/day.css +1 -0
  128. package/themes/night.css +1 -0
  129. package/themes/root.css +2 -0
  130. package/utils/slot.js +18 -1
  131. package/utils/slot.js.map +1 -1
  132. package/{base → src/base}/button-element.d.ts +0 -0
  133. package/{base → src/base}/card-element.d.ts +0 -0
  134. package/{base → src/base}/dropdown-element.d.ts +0 -0
  135. package/{base → src/base}/dropdown-list-element.d.ts +0 -0
  136. package/{base → src/base}/form-control-element.d.ts +0 -0
  137. package/{base → src/base}/link-element.d.ts +0 -0
  138. package/{base → src/base}/select-element.d.ts +0 -0
  139. package/{base → src/base}/sgds-element.d.ts +0 -0
  140. package/{components → src/components}/Accordion/index.d.ts +0 -0
  141. package/{components → src/components}/Accordion/sgds-accordion-item.d.ts +0 -0
  142. package/{components → src/components}/Accordion/sgds-accordion.d.ts +0 -0
  143. package/{components → src/components}/Alert/index.d.ts +0 -0
  144. package/{components → src/components}/Alert/sgds-alert-link.d.ts +0 -0
  145. package/{components → src/components}/Alert/sgds-alert.d.ts +0 -0
  146. package/{components → src/components}/Badge/index.d.ts +0 -0
  147. package/{components → src/components}/Breadcrumb/index.d.ts +0 -0
  148. package/{components → src/components}/Breadcrumb/sgds-breadcrumb-item.d.ts +0 -0
  149. package/{components → src/components}/Breadcrumb/sgds-breadcrumb.d.ts +0 -0
  150. package/{components → src/components}/Button/index.d.ts +0 -0
  151. package/{components → src/components}/Button/sgds-button.d.ts +0 -0
  152. package/{components → src/components}/Card/index.d.ts +0 -0
  153. package/{components → src/components}/Card/sgds-card.d.ts +0 -0
  154. package/{components → src/components}/Checkbox/index.d.ts +0 -0
  155. package/{components → src/components}/Checkbox/sgds-checkbox-group.d.ts +0 -0
  156. package/{components → src/components}/Checkbox/sgds-checkbox.d.ts +0 -0
  157. package/{components → src/components}/ComboBox/combo-box-item.d.ts +0 -0
  158. package/{components → src/components}/ComboBox/index.d.ts +0 -0
  159. package/{components → src/components}/ComboBox/sgds-combo-box.d.ts +0 -0
  160. package/{components → src/components}/Datepicker/datepicker-calendar.d.ts +0 -0
  161. package/{components → src/components}/Datepicker/datepicker-header.d.ts +0 -0
  162. package/{components → src/components}/Datepicker/datepicker-input.d.ts +0 -0
  163. package/{components → src/components}/Datepicker/index.d.ts +0 -0
  164. package/{components → src/components}/Datepicker/types.d.ts +0 -0
  165. package/{components → src/components}/DescriptionList/index.d.ts +0 -0
  166. package/{components → src/components}/DescriptionList/sgds-description-list-group.d.ts +0 -0
  167. package/{components → src/components}/DescriptionList/sgds-description-list.d.ts +0 -0
  168. package/{components → src/components}/Divider/index.d.ts +0 -0
  169. package/{components → src/components}/Divider/sgds-divider.d.ts +0 -0
  170. package/{components → src/components}/Drawer/index.d.ts +0 -0
  171. package/{components → src/components}/Drawer/sgds-drawer.d.ts +0 -0
  172. package/{components → src/components}/Dropdown/index.d.ts +0 -0
  173. package/{components → src/components}/Dropdown/sgds-dropdown-item.d.ts +0 -0
  174. package/{components → src/components}/Dropdown/sgds-dropdown.d.ts +0 -0
  175. package/{components → src/components}/FileUpload/index.d.ts +0 -0
  176. package/{components → src/components}/FileUpload/sgds-file-upload.d.ts +0 -0
  177. package/{components → src/components}/Footer/index.d.ts +0 -0
  178. package/{components → src/components}/Footer/sgds-footer-item.d.ts +0 -0
  179. package/{components → src/components}/Footer/sgds-footer.d.ts +0 -0
  180. package/{components → src/components}/Icon/icon-registry.d.ts +0 -0
  181. package/{components → src/components}/Icon/icons/archive.d.ts +0 -0
  182. package/{components → src/components}/Icon/icons/arrow-bar-down.d.ts +0 -0
  183. package/{components → src/components}/Icon/icons/arrow-bar-left.d.ts +0 -0
  184. package/{components → src/components}/Icon/icons/arrow-bar-right.d.ts +0 -0
  185. package/{components → src/components}/Icon/icons/arrow-bar-up.d.ts +0 -0
  186. package/{components → src/components}/Icon/icons/arrow-circle-down.d.ts +0 -0
  187. package/{components → src/components}/Icon/icons/arrow-circle-left.d.ts +0 -0
  188. package/{components → src/components}/Icon/icons/arrow-circle-right.d.ts +0 -0
  189. package/{components → src/components}/Icon/icons/arrow-circle-up.d.ts +0 -0
  190. package/{components → src/components}/Icon/icons/arrow-clockwise.d.ts +0 -0
  191. package/{components → src/components}/Icon/icons/arrow-down.d.ts +0 -0
  192. package/{components → src/components}/Icon/icons/arrow-left.d.ts +0 -0
  193. package/{components → src/components}/Icon/icons/arrow-repeat.d.ts +0 -0
  194. package/{components → src/components}/Icon/icons/arrow-right.d.ts +0 -0
  195. package/{components → src/components}/Icon/icons/arrow-square-down.d.ts +0 -0
  196. package/{components → src/components}/Icon/icons/arrow-square-left.d.ts +0 -0
  197. package/{components → src/components}/Icon/icons/arrow-square-right.d.ts +0 -0
  198. package/{components → src/components}/Icon/icons/arrow-square-up.d.ts +0 -0
  199. package/{components → src/components}/Icon/icons/arrow-up.d.ts +0 -0
  200. package/{components → src/components}/Icon/icons/bank-fill.d.ts +0 -0
  201. package/{components → src/components}/Icon/icons/bell-slash.d.ts +0 -0
  202. package/{components → src/components}/Icon/icons/bell.d.ts +0 -0
  203. package/{components → src/components}/Icon/icons/bi-funnel.d.ts +0 -0
  204. package/{components → src/components}/Icon/icons/bookmark-fill.d.ts +0 -0
  205. package/{components → src/components}/Icon/icons/bookmark.d.ts +0 -0
  206. package/{components → src/components}/Icon/icons/box-arrow-up-right.d.ts +0 -0
  207. package/{components → src/components}/Icon/icons/box-seam.d.ts +0 -0
  208. package/{components → src/components}/Icon/icons/building.d.ts +0 -0
  209. package/{components → src/components}/Icon/icons/bus.d.ts +0 -0
  210. package/{components → src/components}/Icon/icons/calculator.d.ts +0 -0
  211. package/{components → src/components}/Icon/icons/calendar-check.d.ts +0 -0
  212. package/{components → src/components}/Icon/icons/calendar-x.d.ts +0 -0
  213. package/{components → src/components}/Icon/icons/calendar.d.ts +0 -0
  214. package/{components → src/components}/Icon/icons/camera.d.ts +0 -0
  215. package/{components → src/components}/Icon/icons/car.d.ts +0 -0
  216. package/{components → src/components}/Icon/icons/chat-dots.d.ts +0 -0
  217. package/{components → src/components}/Icon/icons/chat-left-text.d.ts +0 -0
  218. package/{components → src/components}/Icon/icons/chat.d.ts +0 -0
  219. package/{components → src/components}/Icon/icons/check-circle-fill.d.ts +0 -0
  220. package/{components → src/components}/Icon/icons/check-circle.d.ts +0 -0
  221. package/{components → src/components}/Icon/icons/check.d.ts +0 -0
  222. package/{components → src/components}/Icon/icons/chevron-down.d.ts +0 -0
  223. package/{components → src/components}/Icon/icons/chevron-left.d.ts +0 -0
  224. package/{components → src/components}/Icon/icons/chevron-right.d.ts +0 -0
  225. package/{components → src/components}/Icon/icons/chevron-selector-vertical.d.ts +0 -0
  226. package/{components → src/components}/Icon/icons/chevron-up.d.ts +0 -0
  227. package/{components → src/components}/Icon/icons/clock.d.ts +0 -0
  228. package/{components → src/components}/Icon/icons/cloud-check.d.ts +0 -0
  229. package/{components → src/components}/Icon/icons/cloud-download.d.ts +0 -0
  230. package/{components → src/components}/Icon/icons/cloud-upload.d.ts +0 -0
  231. package/{components → src/components}/Icon/icons/cloud.d.ts +0 -0
  232. package/{components → src/components}/Icon/icons/compass.d.ts +0 -0
  233. package/{components → src/components}/Icon/icons/cross.d.ts +0 -0
  234. package/{components → src/components}/Icon/icons/cursor-fill.d.ts +0 -0
  235. package/{components → src/components}/Icon/icons/cursor.d.ts +0 -0
  236. package/{components → src/components}/Icon/icons/dash-circle.d.ts +0 -0
  237. package/{components → src/components}/Icon/icons/dash-square.d.ts +0 -0
  238. package/{components → src/components}/Icon/icons/dash.d.ts +0 -0
  239. package/{components → src/components}/Icon/icons/download.d.ts +0 -0
  240. package/{components → src/components}/Icon/icons/edit.d.ts +0 -0
  241. package/{components → src/components}/Icon/icons/exclamation-circle-fill.d.ts +0 -0
  242. package/{components → src/components}/Icon/icons/exclamation-circle.d.ts +0 -0
  243. package/{components → src/components}/Icon/icons/exclamation-triangle-fill.d.ts +0 -0
  244. package/{components → src/components}/Icon/icons/exclamation-triangle.d.ts +0 -0
  245. package/{components → src/components}/Icon/icons/exclamation.d.ts +0 -0
  246. package/{components → src/components}/Icon/icons/eye-fill.d.ts +0 -0
  247. package/{components → src/components}/Icon/icons/eye-slash-fill.d.ts +0 -0
  248. package/{components → src/components}/Icon/icons/eye-slash.d.ts +0 -0
  249. package/{components → src/components}/Icon/icons/eye.d.ts +0 -0
  250. package/{components → src/components}/Icon/icons/facebook.d.ts +0 -0
  251. package/{components → src/components}/Icon/icons/file-earmark-text.d.ts +0 -0
  252. package/{components → src/components}/Icon/icons/file-pdf.d.ts +0 -0
  253. package/{components → src/components}/Icon/icons/file-plus.d.ts +0 -0
  254. package/{components → src/components}/Icon/icons/file-text.d.ts +0 -0
  255. package/{components → src/components}/Icon/icons/file.d.ts +0 -0
  256. package/{components → src/components}/Icon/icons/files.d.ts +0 -0
  257. package/{components → src/components}/Icon/icons/folder-check.d.ts +0 -0
  258. package/{components → src/components}/Icon/icons/folder-minus.d.ts +0 -0
  259. package/{components → src/components}/Icon/icons/folder-plus.d.ts +0 -0
  260. package/{components → src/components}/Icon/icons/folder.d.ts +0 -0
  261. package/{components → src/components}/Icon/icons/gear.d.ts +0 -0
  262. package/{components → src/components}/Icon/icons/geo-alt.d.ts +0 -0
  263. package/{components → src/components}/Icon/icons/geo-fill.d.ts +0 -0
  264. package/{components → src/components}/Icon/icons/geo.d.ts +0 -0
  265. package/{components → src/components}/Icon/icons/globe-alt.d.ts +0 -0
  266. package/{components → src/components}/Icon/icons/globe.d.ts +0 -0
  267. package/{components → src/components}/Icon/icons/google.d.ts +0 -0
  268. package/{components → src/components}/Icon/icons/grid-fill.d.ts +0 -0
  269. package/{components → src/components}/Icon/icons/hand-thumbs-down.d.ts +0 -0
  270. package/{components → src/components}/Icon/icons/hand-thumbs-up.d.ts +0 -0
  271. package/{components → src/components}/Icon/icons/hard-drive.d.ts +0 -0
  272. package/{components → src/components}/Icon/icons/heart.d.ts +0 -0
  273. package/{components → src/components}/Icon/icons/house-door.d.ts +0 -0
  274. package/{components → src/components}/Icon/icons/house.d.ts +0 -0
  275. package/{components → src/components}/Icon/icons/image.d.ts +0 -0
  276. package/{components → src/components}/Icon/icons/in-box.d.ts +0 -0
  277. package/{components → src/components}/Icon/icons/info-circle-fill.d.ts +0 -0
  278. package/{components → src/components}/Icon/icons/info-circle.d.ts +0 -0
  279. package/{components → src/components}/Icon/icons/instagram.d.ts +0 -0
  280. package/{components → src/components}/Icon/icons/laptop.d.ts +0 -0
  281. package/{components → src/components}/Icon/icons/layers.d.ts +0 -0
  282. package/{components → src/components}/Icon/icons/layout-text-window-reverse.d.ts +0 -0
  283. package/{components → src/components}/Icon/icons/layout-text-window.d.ts +0 -0
  284. package/{components → src/components}/Icon/icons/layout.d.ts +0 -0
  285. package/{components → src/components}/Icon/icons/lightbulb.d.ts +0 -0
  286. package/{components → src/components}/Icon/icons/link.d.ts +0 -0
  287. package/{components → src/components}/Icon/icons/linkedin.d.ts +0 -0
  288. package/{components → src/components}/Icon/icons/list.d.ts +0 -0
  289. package/{components → src/components}/Icon/icons/lock-fill.d.ts +0 -0
  290. package/{components → src/components}/Icon/icons/lock.d.ts +0 -0
  291. package/{components → src/components}/Icon/icons/login.d.ts +0 -0
  292. package/{components → src/components}/Icon/icons/logout.d.ts +0 -0
  293. package/{components → src/components}/Icon/icons/luggage.d.ts +0 -0
  294. package/{components → src/components}/Icon/icons/mail.d.ts +0 -0
  295. package/{components → src/components}/Icon/icons/map.d.ts +0 -0
  296. package/{components → src/components}/Icon/icons/menu.d.ts +0 -0
  297. package/{components → src/components}/Icon/icons/microphone.d.ts +0 -0
  298. package/{components → src/components}/Icon/icons/monitor.d.ts +0 -0
  299. package/{components → src/components}/Icon/icons/paperclip.d.ts +0 -0
  300. package/{components → src/components}/Icon/icons/passport.d.ts +0 -0
  301. package/{components → src/components}/Icon/icons/pencil.d.ts +0 -0
  302. package/{components → src/components}/Icon/icons/pending-circle.d.ts +0 -0
  303. package/{components → src/components}/Icon/icons/person-dash.d.ts +0 -0
  304. package/{components → src/components}/Icon/icons/person-plus.d.ts +0 -0
  305. package/{components → src/components}/Icon/icons/person-x.d.ts +0 -0
  306. package/{components → src/components}/Icon/icons/person.d.ts +0 -0
  307. package/{components → src/components}/Icon/icons/phone.d.ts +0 -0
  308. package/{components → src/components}/Icon/icons/pin-map-fill.d.ts +0 -0
  309. package/{components → src/components}/Icon/icons/pin.d.ts +0 -0
  310. package/{components → src/components}/Icon/icons/placeholder.d.ts +0 -0
  311. package/{components → src/components}/Icon/icons/plane.d.ts +0 -0
  312. package/{components → src/components}/Icon/icons/plus-circle.d.ts +0 -0
  313. package/{components → src/components}/Icon/icons/plus-square.d.ts +0 -0
  314. package/{components → src/components}/Icon/icons/plus.d.ts +0 -0
  315. package/{components → src/components}/Icon/icons/printer.d.ts +0 -0
  316. package/{components → src/components}/Icon/icons/question-circle.d.ts +0 -0
  317. package/{components → src/components}/Icon/icons/rocket.d.ts +0 -0
  318. package/{components → src/components}/Icon/icons/save.d.ts +0 -0
  319. package/{components → src/components}/Icon/icons/search.d.ts +0 -0
  320. package/{components → src/components}/Icon/icons/send.d.ts +0 -0
  321. package/{components → src/components}/Icon/icons/sg-crest.d.ts +0 -0
  322. package/{components → src/components}/Icon/icons/share.d.ts +0 -0
  323. package/{components → src/components}/Icon/icons/slash-circle.d.ts +0 -0
  324. package/{components → src/components}/Icon/icons/sliders.d.ts +0 -0
  325. package/{components → src/components}/Icon/icons/speedometer.d.ts +0 -0
  326. package/{components → src/components}/Icon/icons/star-fill.d.ts +0 -0
  327. package/{components → src/components}/Icon/icons/star.d.ts +0 -0
  328. package/{components → src/components}/Icon/icons/stoplights.d.ts +0 -0
  329. package/{components → src/components}/Icon/icons/switch-horizontal.d.ts +0 -0
  330. package/{components → src/components}/Icon/icons/switch-vertical.d.ts +0 -0
  331. package/{components → src/components}/Icon/icons/tablet.d.ts +0 -0
  332. package/{components → src/components}/Icon/icons/telephone.d.ts +0 -0
  333. package/{components → src/components}/Icon/icons/three-dots-vertical.d.ts +0 -0
  334. package/{components → src/components}/Icon/icons/three-dots.d.ts +0 -0
  335. package/{components → src/components}/Icon/icons/ticket.d.ts +0 -0
  336. package/{components → src/components}/Icon/icons/toggle-off.d.ts +0 -0
  337. package/{components → src/components}/Icon/icons/toggle-on.d.ts +0 -0
  338. package/{components → src/components}/Icon/icons/train.d.ts +0 -0
  339. package/{components → src/components}/Icon/icons/translate.d.ts +0 -0
  340. package/{components → src/components}/Icon/icons/trash.d.ts +0 -0
  341. package/{components → src/components}/Icon/icons/truck.d.ts +0 -0
  342. package/{components → src/components}/Icon/icons/twitter-x.d.ts +0 -0
  343. package/{components → src/components}/Icon/icons/unlock.d.ts +0 -0
  344. package/{components → src/components}/Icon/icons/upload.d.ts +0 -0
  345. package/{components → src/components}/Icon/icons/user-circle.d.ts +0 -0
  346. package/{components → src/components}/Icon/icons/user-square.d.ts +0 -0
  347. package/{components → src/components}/Icon/icons/users.d.ts +0 -0
  348. package/{components → src/components}/Icon/icons/video-recorder.d.ts +0 -0
  349. package/{components → src/components}/Icon/icons/volume-max.d.ts +0 -0
  350. package/{components → src/components}/Icon/icons/volume-x.d.ts +0 -0
  351. package/{components → src/components}/Icon/icons/window-dash.d.ts +0 -0
  352. package/{components → src/components}/Icon/icons/window-desktop.d.ts +0 -0
  353. package/{components → src/components}/Icon/icons/window-dock.d.ts +0 -0
  354. package/{components → src/components}/Icon/icons/window-fullscreen.d.ts +0 -0
  355. package/{components → src/components}/Icon/icons/window-plus.d.ts +0 -0
  356. package/{components → src/components}/Icon/icons/window-sidebar.d.ts +0 -0
  357. package/{components → src/components}/Icon/icons/window-split.d.ts +0 -0
  358. package/{components → src/components}/Icon/icons/window-stack.d.ts +0 -0
  359. package/{components → src/components}/Icon/icons/window-x.d.ts +0 -0
  360. package/{components → src/components}/Icon/icons/window.d.ts +0 -0
  361. package/{components → src/components}/Icon/icons/xcircle-fill.d.ts +0 -0
  362. package/{components → src/components}/Icon/icons/xcircle.d.ts +0 -0
  363. package/{components → src/components}/Icon/icons/youtube.d.ts +0 -0
  364. package/{components → src/components}/Icon/icons/zoom-in.d.ts +0 -0
  365. package/{components → src/components}/Icon/icons/zoom-out.d.ts +0 -0
  366. package/{components → src/components}/Icon/index.d.ts +0 -0
  367. package/{components → src/components}/Icon/sgds-icon.d.ts +0 -0
  368. package/{components → src/components}/IconButton/index.d.ts +0 -0
  369. package/{components → src/components}/IconButton/sgds-icon-button.d.ts +0 -0
  370. package/{components → src/components}/IconList/index.d.ts +0 -0
  371. package/{components → src/components}/IconList/sgds-icon-list.d.ts +0 -0
  372. package/{components → src/components}/Input/index.d.ts +0 -0
  373. package/{components → src/components}/Link/index.d.ts +0 -0
  374. package/{components → src/components}/Mainnav/index.d.ts +0 -0
  375. package/{components → src/components}/Mainnav/mainnav-context.d.ts +0 -0
  376. package/{components → src/components}/Mainnav/sgds-mainnav-dropdown.d.ts +0 -0
  377. package/{components → src/components}/Mainnav/sgds-mainnav-item.d.ts +0 -0
  378. package/{components → src/components}/Mainnav/sgds-mainnav.d.ts +0 -0
  379. package/{components → src/components}/Masthead/index.d.ts +0 -0
  380. package/{components → src/components}/Masthead/sgds-masthead.d.ts +0 -0
  381. package/{components → src/components}/Modal/index.d.ts +0 -0
  382. package/{components → src/components}/Modal/sgds-modal.d.ts +0 -0
  383. package/{components → src/components}/Pagination/index.d.ts +0 -0
  384. package/{components → src/components}/Pagination/sgds-pagination.d.ts +0 -0
  385. package/{components → src/components}/ProgressBar/index.d.ts +0 -0
  386. package/{components → src/components}/ProgressBar/sgds-progress-bar.d.ts +0 -0
  387. package/{components → src/components}/QuantityToggle/index.d.ts +0 -0
  388. package/{components → src/components}/QuantityToggle/sgds-quantity-toggle.d.ts +0 -0
  389. package/{components → src/components}/Radio/index.d.ts +0 -0
  390. package/{components → src/components}/Radio/sgds-radio-group.d.ts +0 -0
  391. package/{components → src/components}/Radio/sgds-radio.d.ts +0 -0
  392. package/{components → src/components}/Select/index.d.ts +0 -0
  393. package/{components → src/components}/Select/select-item.d.ts +0 -0
  394. package/{components → src/components}/Select/sgds-select.d.ts +0 -0
  395. package/{components → src/components}/Sidenav/index.d.ts +0 -0
  396. package/{components → src/components}/Sidenav/sgds-sidenav-item.d.ts +0 -0
  397. package/{components → src/components}/Sidenav/sgds-sidenav-link.d.ts +0 -0
  398. package/{components → src/components}/Sidenav/sgds-sidenav.d.ts +0 -0
  399. package/{components → src/components}/Skeleton/index.d.ts +0 -0
  400. package/{components → src/components}/Skeleton/sgds-skeleton.d.ts +0 -0
  401. package/{components → src/components}/Spinner/index.d.ts +0 -0
  402. package/{components → src/components}/Spinner/sgds-spinner.d.ts +0 -0
  403. package/{components → src/components}/Stepper/index.d.ts +0 -0
  404. package/{components → src/components}/Stepper/sgds-stepper.d.ts +0 -0
  405. package/{components → src/components}/Subnav/index.d.ts +0 -0
  406. package/{components → src/components}/Subnav/sgds-subnav-item.d.ts +0 -0
  407. package/{components → src/components}/Subnav/sgds-subnav.d.ts +0 -0
  408. package/{components → src/components}/Switch/index.d.ts +0 -0
  409. package/{components → src/components}/Switch/sgds-switch.d.ts +0 -0
  410. package/{components → src/components}/Tab/index.d.ts +0 -0
  411. package/{components → src/components}/Tab/sgds-tab-group.d.ts +0 -0
  412. package/{components → src/components}/Tab/sgds-tab-panel.d.ts +0 -0
  413. package/{components → src/components}/Tab/sgds-tab.d.ts +0 -0
  414. package/{components → src/components}/Table/index.d.ts +0 -0
  415. package/{components → src/components}/Table/sgds-table-cell.d.ts +0 -0
  416. package/{components → src/components}/Table/sgds-table-head.d.ts +0 -0
  417. package/{components → src/components}/Table/sgds-table-row.d.ts +0 -0
  418. package/{components → src/components}/Table/sgds-table.d.ts +0 -0
  419. package/{components → src/components}/TableOfContents/index.d.ts +0 -0
  420. package/{components → src/components}/TableOfContents/sgds-table-of-contents.d.ts +0 -0
  421. package/{components → src/components}/Textarea/index.d.ts +0 -0
  422. package/{components → src/components}/Textarea/sgds-textarea.d.ts +0 -0
  423. package/{components → src/components}/Toast/index.d.ts +0 -0
  424. package/{components → src/components}/Toast/sgds-toast-container.d.ts +0 -0
  425. package/{components → src/components}/Toast/sgds-toast.d.ts +0 -0
  426. package/{components → src/components}/Tooltip/index.d.ts +0 -0
  427. package/{components → src/components}/Tooltip/sgds-tooltip.d.ts +0 -0
  428. package/{components → src/components}/index.d.ts +0 -0
  429. package/{index.d.ts → src/index.d.ts} +0 -0
  430. package/{internals → src/internals}/CloseButton/index.d.ts +0 -0
  431. package/{internals → src/internals}/CloseButton/sgds-close-button.d.ts +0 -0
  432. package/{internals → src/internals}/OverflowMenu/index.d.ts +0 -0
  433. package/{internals → src/internals}/OverflowMenu/sgds-overflow-menu.d.ts +0 -0
  434. package/{react → src/react}/accordion/index.d.ts +0 -0
  435. package/{react → src/react}/accordion-item/index.d.ts +0 -0
  436. package/{react → src/react}/alert/index.d.ts +0 -0
  437. package/{react → src/react}/alert-link/index.d.ts +0 -0
  438. package/{react → src/react}/badge/index.d.ts +0 -0
  439. package/{react → src/react}/breadcrumb/index.d.ts +0 -0
  440. package/{react → src/react}/breadcrumb-item/index.d.ts +0 -0
  441. package/{react → src/react}/button/index.d.ts +0 -0
  442. package/{react → src/react}/card/index.d.ts +0 -0
  443. package/{react → src/react}/checkbox/index.d.ts +0 -0
  444. package/{react → src/react}/checkbox-group/index.d.ts +0 -0
  445. package/{react → src/react}/combo-box/index.d.ts +0 -0
  446. package/{react → src/react}/datepicker/index.d.ts +0 -0
  447. package/{react → src/react}/description-list/index.d.ts +0 -0
  448. package/{react → src/react}/description-list-group/index.d.ts +0 -0
  449. package/{react → src/react}/divider/index.d.ts +0 -0
  450. package/{react → src/react}/drawer/index.d.ts +0 -0
  451. package/{react → src/react}/dropdown/index.d.ts +0 -0
  452. package/{react → src/react}/dropdown-item/index.d.ts +0 -0
  453. package/{react → src/react}/file-upload/index.d.ts +0 -0
  454. package/{react → src/react}/footer/index.d.ts +0 -0
  455. package/{react → src/react}/footer-item/index.d.ts +0 -0
  456. package/{react → src/react}/icon/index.d.ts +0 -0
  457. package/{react → src/react}/icon-button/index.d.ts +0 -0
  458. package/{react → src/react}/icon-list/index.d.ts +0 -0
  459. package/{react → src/react}/index.d.ts +1 -1
  460. /package/{react → src/react}/input/index.d.ts +0 -0
  461. /package/{react → src/react}/link/index.d.ts +0 -0
  462. /package/{react → src/react}/mainnav/index.d.ts +0 -0
  463. /package/{react → src/react}/mainnav-dropdown/index.d.ts +0 -0
  464. /package/{react → src/react}/mainnav-item/index.d.ts +0 -0
  465. /package/{react → src/react}/masthead/index.d.ts +0 -0
  466. /package/{react → src/react}/modal/index.d.ts +0 -0
  467. /package/{react → src/react}/pagination/index.d.ts +0 -0
  468. /package/{react → src/react}/progress-bar/index.d.ts +0 -0
  469. /package/{react → src/react}/quantity-toggle/index.d.ts +0 -0
  470. /package/{react → src/react}/radio/index.d.ts +0 -0
  471. /package/{react → src/react}/radio-group/index.d.ts +0 -0
  472. /package/{react → src/react}/select/index.d.ts +0 -0
  473. /package/{react → src/react}/sidenav/index.d.ts +0 -0
  474. /package/{react → src/react}/sidenav-item/index.d.ts +0 -0
  475. /package/{react → src/react}/sidenav-link/index.d.ts +0 -0
  476. /package/{react → src/react}/skeleton/index.d.ts +0 -0
  477. /package/{react → src/react}/spinner/index.d.ts +0 -0
  478. /package/{react → src/react}/stepper/index.d.ts +0 -0
  479. /package/{react → src/react}/subnav/index.d.ts +0 -0
  480. /package/{react → src/react}/subnav-item/index.d.ts +0 -0
  481. /package/{react → src/react}/switch/index.d.ts +0 -0
  482. /package/{react → src/react}/tab/index.d.ts +0 -0
  483. /package/{react → src/react}/tab-group/index.d.ts +0 -0
  484. /package/{react → src/react}/tab-panel/index.d.ts +0 -0
  485. /package/{react → src/react}/table/index.d.ts +0 -0
  486. /package/{react → src/react}/table-cell/index.d.ts +0 -0
  487. /package/{react → src/react}/table-head/index.d.ts +0 -0
  488. /package/{react → src/react}/table-of-contents/index.d.ts +0 -0
  489. /package/{react → src/react}/table-row/index.d.ts +0 -0
  490. /package/{react → src/react}/textarea/index.d.ts +0 -0
  491. /package/{react → src/react}/toast/index.d.ts +0 -0
  492. /package/{react → src/react}/toast-container/index.d.ts +0 -0
  493. /package/{react → src/react}/tooltip/index.d.ts +0 -0
  494. /package/{utils → src/utils}/animate.d.ts +0 -0
  495. /package/{utils → src/utils}/animation-registry.d.ts +0 -0
  496. /package/{utils → src/utils}/breakpoints.d.ts +0 -0
  497. /package/{utils → src/utils}/ce-registry.d.ts +0 -0
  498. /package/{utils → src/utils}/defaultvalue.d.ts +0 -0
  499. /package/{utils → src/utils}/event.d.ts +0 -0
  500. /package/{utils → src/utils}/formSubmitController.d.ts +0 -0
  501. /package/{utils → src/utils}/generateCustomElementName.d.ts +0 -0
  502. /package/{utils → src/utils}/generateId.d.ts +0 -0
  503. /package/{utils → src/utils}/inputValidationController.d.ts +0 -0
  504. /package/{utils → src/utils}/mergeDeep.d.ts +0 -0
  505. /package/{utils → src/utils}/modal.d.ts +0 -0
  506. /package/{utils → src/utils}/object.d.ts +0 -0
  507. /package/{utils → src/utils}/offset.d.ts +0 -0
  508. /package/{utils → src/utils}/scroll.d.ts +0 -0
  509. /package/{utils → src/utils}/slot.d.ts +0 -0
  510. /package/{utils → src/utils}/tabbable.d.ts +0 -0
  511. /package/{utils → src/utils}/test.d.ts +0 -0
  512. /package/{utils → src/utils}/time.d.ts +0 -0
  513. /package/{utils → src/utils}/validatorMixin.d.ts +0 -0
  514. /package/{utils → src/utils}/watch.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"sgds-datepicker.cjs.js","sources":["../../../../src/components/Datepicker/sgds-datepicker.ts"],"sourcesContent":["import { format, parse } from \"date-fns\";\nimport { html } from \"lit\";\nimport { property, query, queryAsync, state } from \"lit/decorators.js\";\nimport { live } from \"lit/directives/live.js\";\nimport { ref } from \"lit/directives/ref.js\";\nimport { DropdownElement } from \"../../base/dropdown-element\";\nimport { type SgdsFormControl } from \"../../utils/formSubmitController\";\nimport { DATE_PATTERNS, setTimeToNoon } from \"../../utils/time\";\nimport { watch } from \"../../utils/watch\";\nimport { SgdsButton } from \"../Button/sgds-button\";\nimport dropdownMenuStyle from \"../Dropdown/dropdown-menu.css\";\nimport { DatepickerCalendar } from \"./datepicker-calendar\";\nimport { DatepickerHeader } from \"./datepicker-header\";\nimport DatepickerInput from \"./datepicker-input\";\nimport datepickerStyle from \"./datepicker.css\";\nimport { ViewEnum } from \"./types\";\nimport SgdsIconButton from \"../IconButton/sgds-icon-button\";\nimport { SgdsFormValidatorMixin } from \"../../utils/validatorMixin\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\n\nexport type DateFormat = \"MM/DD/YYYY\" | \"DD/MM/YYYY\" | \"YYYY/MM/DD\";\n\n/**\n * @summary The `DatePicker` Component is built using `Dropdown`, `Input` and `Button` components. By default, the Calendar points to today's date and input has no value. Users can either pick dates from the calendar or type dates through the input\n *\n * @event sgds-change-date - Emitted when the state of datepicker's input changes during first load, close button reset click & date click. Date values can be accessed via event.target.value\n *\n * @description displayDate sets the month, year views of the calendar while focusedDate follows the focus which also directly changes\n * displayDate on certain occasions. Example, when keyboard moves up to the next month, it updates displayDate which then affect the current\n * date view of the calendar\n */\nexport class SgdsDatepicker extends SgdsFormValidatorMixin(DropdownElement) implements SgdsFormControl {\n static styles = [...DropdownElement.styles, dropdownMenuStyle, datepickerStyle];\n /**@internal */\n static dependencies = {\n \"sgds-datepicker-input\": DatepickerInput,\n \"sgds-datepicker-calendar\": DatepickerCalendar,\n \"sgds-datepicker-header\": DatepickerHeader,\n \"sgds-button\": SgdsButton,\n \"sgds-icon-button\": SgdsIconButton\n };\n\n /** When true, adds required attribute to input element */\n @property({ type: Boolean, reflect: true }) required = false;\n /**The datepicker input's name attribute */\n @property({ reflect: true }) name: string;\n /** When true, adds disabled attribute to input and button element */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /** The initial value of DatePicker on first load for single & range mode as array of string. eg.'[\"22/12/2023\"]' for single & '[\"22/12/2023\",\"25/12/2023\"]' for range respectively */\n @property({ type: Array, reflect: true }) initialValue: string[] = [];\n\n private dateFormat = \"DD/MM/YYYY\";\n\n /** ISO date string to set the lowest allowable date value. e.g. \"2016-05-19T12:00:00.000Z\" */\n @property({ type: String }) minDate = \"\";\n\n /** ISO date string to set the highest allowable date value. e.g. \"2016-05-19T12:00:00.000Z\" */\n @property({ type: String }) maxDate = \"\";\n\n /** Changes DatePicker to single date selection or range date selection */\n @property({ type: String, reflect: true }) mode: \"single\" | \"range\" = \"single\";\n\n /**Feedback text for error state when date input is invalid */\n @property({ type: String, reflect: true }) invalidFeedback: string;\n\n /** Allows invalidFeedback and invalid styles to be visible with the input */\n @property({ type: Boolean, reflect: true }) hasFeedback = false;\n\n /** The datepicker input's label */\n @property({ reflect: true }) label = \"\";\n\n /** The datepicker input's hint text below the label */\n @property({ reflect: true }) hintText = \"\";\n\n /** Controls auto-flipping of menu */\n @property({ type: Boolean, reflect: true, state: false })\n noFlip = false;\n\n /** The drop position of menu relative to the toggle button */\n @property({ type: String, reflect: true, state: false })\n drop: \"up\" | \"down\" = \"down\";\n\n /** Provides the date context for Calendar to present the appropriate view. Defaults to today's date */\n @property({ attribute: false }) displayDate: Date;\n /**@internal */\n @state() value = \"\";\n /**@internal */\n @state() invalid = false;\n\n @state()\n private view: ViewEnum = \"days\";\n\n @state() private selectedDateRange: Date[] = [];\n\n @state() private focusedDate: Date;\n\n @state() private focusedTabIndex = 3;\n\n private isValueEmpty() {\n return this.value === \"\" || this.value === \"DD/MM/YYYY\" || this.value === \"DD/MM/YYYY - DD/MM/YYYY\";\n }\n\n private initialDisplayDate: Date = new Date();\n\n @queryAsync(\"sgds-datepicker-calendar\")\n private calendar: Promise<DatepickerCalendar>;\n\n @queryAsync(\"sgds-datepicker-input\")\n private datepickerInputAsync: Promise<DatepickerInput>;\n\n @query(\"sgds-datepicker-input\")\n private datepickerInput: DatepickerInput;\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 /**\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 async connectedCallback() {\n super.connectedCallback();\n this.modifierOpt = [\n {\n name: \"offset\",\n options: {\n offset: [0, 8]\n }\n }\n ];\n this.addEventListener(\"sgds-view\", this._handleViewChanged);\n this.addEventListener(\"sgds-change-calendar\", this._handleDateChanged);\n this.addEventListener(\"sgds-update-focus\", this._handleFocusDateChanged);\n this.addEventListener(\"sgds-selectmonth\", this._handleSelectMonth);\n this.addEventListener(\"sgds-selectyear\", this._handleSelectYear);\n this.addEventListener(\"sgds-selectdates\", this._handleSelectDatesAndClose);\n this.addEventListener(\"sgds-selectdates-input\", this._handleSelectDatesInput);\n this.addEventListener(\"sgds-empty-input\", this._handleEmptyInput);\n this.addEventListener(\"keydown\", this._handleTab);\n this.addEventListener(\"sgds-hide\", this._handleCloseMenu);\n this.addEventListener(\"sgds-show\", this._handleOpenMenu);\n this.addEventListener(\"blur\", this._mixinCheckValidity);\n this.initialDisplayDate = this.displayDate || new Date();\n if (this.initialValue && this.initialValue.length > 0) {\n // Validate initialValue against the dateFormat regex\n const dateFormatRegex = new RegExp(this._getDateFormatRegex());\n // const startDateString = this.initialValue[0];\n const invalidDates = this.initialValue.filter(v => !dateFormatRegex.test(v));\n if (invalidDates.length > 0) {\n return console.error(\"Invalid date format in initialValue:\", invalidDates);\n } else {\n const initialSelectedDates = this.initialValue.map(v =>\n setTimeToNoon(parse(v, DATE_PATTERNS[this.dateFormat].fnsPattern, new Date()))\n );\n this._handleSelectDates(initialSelectedDates);\n }\n } else {\n this.displayDate = this.initialDisplayDate;\n }\n }\n\n async firstUpdated() {\n super.firstUpdated();\n if (this.menuIsOpen) {\n const input = await this.datepickerInputAsync;\n this.showMenu();\n const cal = await this.calendar;\n cal.focusOnCalendar(input);\n }\n }\n\n /** @internal */\n private _getDateFormatRegex(): string {\n // validate date strings and adhere to the specified date format\n return (\n this.dateFormat\n // Replace any special characters with their escaped version using \"\\\\$&\"\n .replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\")\n // Replace 'MM' with '\\\\d{2}', which matches two digits representing the month (e.g., 01, 12)\n .replace(\"MM\", \"\\\\d{2}\")\n // Replace 'DD' with '\\\\d{2}', which matches two digits representing the day (e.g., 01, 31)\n .replace(\"DD\", \"\\\\d{2}\")\n // Replace 'YYYY' with '\\\\d{4}', which matches four digits representing the year (e.g., 2021)\n .replace(\"YYYY\", \"\\\\d{4}\")\n // Replace '/' with '\\\\/', which matches the forward slash character\n .replace(\"/\", \"\\\\/\")\n );\n }\n private _handleTab(event: KeyboardEvent) {\n if (!this.menuIsOpen) {\n return;\n }\n const tabIndexArray = Array(4);\n if (event.shiftKey && event.key === \"Tab\") {\n event.preventDefault();\n this.focusedTabIndex = (this.focusedTabIndex - 1 + tabIndexArray.length) % tabIndexArray.length;\n } else if (event.key === \"Tab\") {\n event.preventDefault();\n this.focusedTabIndex = (this.focusedTabIndex + 1 + tabIndexArray.length) % tabIndexArray.length;\n }\n }\n\n @watch(\"value\")\n _handleValueChange() {\n this.emit(\"sgds-change-date\");\n }\n\n private async _handleCloseMenu() {\n //return focus to input when menu closes\n const input = await this.datepickerInputAsync;\n input.focus();\n\n if (this.selectedDateRange.length === 0) {\n this.displayDate = this.initialDisplayDate;\n } else {\n const selectedDatesLength = this.selectedDateRange.length;\n this.displayDate = this.selectedDateRange[selectedDatesLength - 1];\n const calendar = await this.calendar;\n calendar._updateFocusedDate();\n }\n }\n private async _handleOpenMenu() {\n const cal = await this.calendar;\n const input = await this.datepickerInputAsync;\n cal.focusOnCalendar(input);\n }\n\n private _makeInputValueString = (startDate: Date, endDate: Date, dateFormat: string) => {\n if (!startDate && !endDate) return this.value;\n const formatDate = (date: Date) => format(date, DATE_PATTERNS[dateFormat].fnsPattern);\n switch (this.mode) {\n case \"single\": {\n if (startDate) {\n this.value = formatDate(startDate);\n }\n break;\n }\n case \"range\": {\n if (startDate && endDate) {\n this.value = `${formatDate(startDate)} - ${formatDate(endDate)}`;\n }\n if (startDate && !endDate) {\n this.value = `${formatDate(startDate)} - ${this.dateFormat}`;\n }\n break;\n }\n }\n return this.value;\n };\n private _handleSelectDatesInput(event: CustomEvent<Date[]>) {\n this._handleSelectDates(event.detail);\n }\n private async _handleSelectDates(newSelectedDates: Date[]) {\n newSelectedDates.sort((a: Date, b: Date) => a.getTime() - b.getTime());\n this.displayDate = newSelectedDates[0];\n this.focusedDate = newSelectedDates[0];\n this.selectedDateRange = newSelectedDates;\n // Get the formattedDate value for the selected dates\n const formattedDate = this._makeInputValueString(\n this.selectedDateRange[0],\n this.selectedDateRange[1],\n this.dateFormat\n );\n\n // Set formattedDate value as the new value for sgds-input\n this.value = formattedDate;\n const input = await this.datepickerInputAsync;\n input.updateMaskValue();\n this._manageInternalsValid();\n }\n\n private async _handleSelectDatesAndClose(event: CustomEvent<Date[]>) {\n await this._handleSelectDates(event.detail);\n\n if (this.mode === \"range\" && this.selectedDateRange.length === 2) {\n this.hideMenu();\n } else if (this.mode === \"single\" && this.selectedDateRange.length === 1) {\n this.hideMenu();\n }\n }\n\n /** update latest view state from datepicker-header */\n private _handleViewChanged(event: CustomEvent<string>) {\n this.view = event.detail as ViewEnum;\n }\n\n private _handleDateChanged(event: CustomEvent<Date>) {\n this.displayDate = event.detail;\n }\n private _handleFocusDateChanged(event: CustomEvent<Date>) {\n this.focusedDate = event.detail;\n }\n\n private _handleSelectMonth(event: CustomEvent<Date>) {\n this.displayDate = event.detail;\n }\n\n private _handleSelectYear(event: CustomEvent<Date>) {\n this.displayDate = event.detail;\n }\n private async _handleInvalidInput() {\n this.selectedDateRange = [];\n this.displayDate = this.initialDisplayDate;\n this.invalid = true;\n this._manageInternalsBadInput();\n }\n private async _handleEmptyInput() {\n this._manageEmptyInput();\n }\n private async _resetDatepicker() {\n this.displayDate = this.initialDisplayDate;\n this.selectedDateRange = [];\n this.value = \"\";\n this.view = \"days\";\n const input = await this.datepickerInputAsync;\n input.setInvalid(false);\n input.destroyInputMask();\n await input.applyInputMask();\n\n this._mixinResetValidity(input);\n if (this.isValueEmpty() && this.required) {\n this._handleEmptyInput();\n }\n }\n\n private _manageInternalsBadInput() {\n this._mixinSetValidity(\n {\n badInput: true\n },\n \"Invalid date input\",\n this.datepickerInput\n );\n }\n /**\n * Even though element internals handles the required constraint validation. This custom one is still needed as\n * datepicker input has a special case where the default input mask \"DD/MM/YYYY\" means an empty input.\n * However, the required constraint validation sees \"DD/MM/YYYY\" as a non-empty input.\n */\n private _manageEmptyInput() {\n this._mixinSetValidity(\n {\n valueMissing: true\n },\n \"Please fill in this field\",\n this.datepickerInput\n );\n }\n\n /**\n * Called when a valid date is entered via input or selected by calendar\n * 1. sets validity state to valid\n * 2. updates invalid prop\n * 3. sets the form value of datepicker\n */\n private _manageInternalsValid() {\n this._mixinSetValidity({});\n this.invalid = this.datepickerInput.invalid = false;\n this._mixinSetFormValue();\n }\n\n /**\n * Handles the form \"reset\" event\n */\n private async _mixinResetFormControl() {\n this._resetDatepicker();\n }\n private async _handleInputMaskChange(e: CustomEvent) {\n this.value = e.detail;\n\n if (this.isValueEmpty()) {\n this._resetDatepicker();\n }\n }\n\n private _dialogAriaLabels = {\n days: \"Choose date\",\n months: \"Choose month\",\n years: \"Choose year\"\n };\n\n render() {\n return html`\n <div class=\"datepicker-container\">\n <sgds-datepicker-input\n .value=${live(this.value)}\n ?required=${this.required}\n ?disabled=${this.disabled}\n placeholder=${this.mode === \"single\" ? \"DD/MM/YYYY\" : \"DD/MM/YYYY - DD/MM/YYYY\"}\n mode=${this.mode}\n invalidFeedback=${ifDefined(this.invalidFeedback ? this.invalidFeedback : this._mixinGetValidationMessage())}\n @sgds-mask-input-change=${this._handleInputMaskChange}\n @sgds-invalid-input=${this._handleInvalidInput}\n minDate=${this.minDate}\n maxDate=${this.maxDate}\n label=${this.label}\n hintText=${this.hintText}\n name=${this.name}\n ?invalid=${this.invalid}\n hasFeedback=${ifDefined(this.hasFeedback ? \"both\" : undefined)}\n >\n </sgds-datepicker-input>\n <sgds-icon-button\n ${ref(this.myDropdown)}\n role=\"button\"\n class=${classMap({\n \"calendar-btn\": true,\n \"with-hint-text\": this.hintText || this.invalid,\n \"with-label\": this.label\n })}\n aria-expanded=\"${this.menuIsOpen}\"\n aria-haspopup=\"dialog\"\n aria-controls=${this.dropdownMenuId}\n @click=${() => this.toggleMenu()}\n ariaLabel=${this.menuIsOpen ? \"Close Calendar\" : \"Open Calendar\"}\n ?disabled=${this.disabled}\n variant=\"outline\"\n name=\"calendar\"\n >\n </sgds-icon-button>\n <ul\n id=${this.dropdownMenuId}\n class=\"sgds datepicker dropdown-menu\"\n role=\"dialog\"\n aria-label=${this._dialogAriaLabels[this.view]}\n @click=${(event: MouseEvent) => event.stopPropagation()}\n >\n <sgds-datepicker-header\n .view=${this.view}\n .displayDate=${this.displayDate}\n .focusedDate=${this.focusedDate}\n .selectedDate=${this.selectedDateRange}\n .focusedTabIndex=${this.focusedTabIndex}\n ></sgds-datepicker-header>\n <sgds-datepicker-calendar\n .show=${this.menuIsOpen}\n .view=${this.view}\n .displayDate=${this.displayDate}\n .mode=${this.mode}\n minDate=${this.minDate}\n maxDate=${this.maxDate}\n .selectedDate=${this.selectedDateRange}\n .focusedTabIndex=${this.focusedTabIndex}\n ></sgds-datepicker-calendar>\n </ul>\n </div>\n `;\n }\n}\n\nexport default SgdsDatepicker;\n"],"names":["SgdsFormValidatorMixin","DropdownElement","format","DATE_PATTERNS","setTimeToNoon","parse","html","live","ifDefined","ref","classMap","dropdownMenuStyle","datepickerStyle","DatepickerInput","DatepickerCalendar","DatepickerHeader","SgdsButton","SgdsIconButton","__decorate","property","state","queryAsync","query","watch"],"mappings":"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"}
1
+ {"version":3,"file":"sgds-datepicker.cjs.js","sources":["../../../../src/components/Datepicker/sgds-datepicker.ts"],"sourcesContent":["import { format, parse } from \"date-fns\";\nimport { html } from \"lit\";\nimport { property, query, queryAsync, state } from \"lit/decorators.js\";\nimport { live } from \"lit/directives/live.js\";\nimport { ref } from \"lit/directives/ref.js\";\nimport { DropdownElement } from \"../../base/dropdown-element\";\nimport { type SgdsFormControl } from \"../../utils/formSubmitController\";\nimport { DATE_PATTERNS, setTimeToNoon } from \"../../utils/time\";\nimport { watch } from \"../../utils/watch\";\nimport { SgdsButton } from \"../Button/sgds-button\";\nimport dropdownMenuStyle from \"../Dropdown/dropdown-menu.css\";\nimport { DatepickerCalendar } from \"./datepicker-calendar\";\nimport { DatepickerHeader } from \"./datepicker-header\";\nimport DatepickerInput from \"./datepicker-input\";\nimport datepickerStyle from \"./datepicker.css\";\nimport { ViewEnum } from \"./types\";\nimport SgdsIconButton from \"../IconButton/sgds-icon-button\";\nimport { SgdsFormValidatorMixin } from \"../../utils/validatorMixin\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { defaultValue } from \"../../utils/defaultvalue\";\n\nexport type DateFormat = \"MM/DD/YYYY\" | \"DD/MM/YYYY\" | \"YYYY/MM/DD\";\n\n/**\n * @summary The `DatePicker` Component is built using `Dropdown`, `Input` and `Button` components. By default, the Calendar points to today's date and input has no value. Users can either pick dates from the calendar or type dates through the input\n *\n * @event sgds-change-date - Emitted when the state of datepicker's input changes during first load, close button reset click & date click. Date values can be accessed via event.target.value\n *\n * @description displayDate sets the month, year views of the calendar while focusedDate follows the focus which also directly changes\n * displayDate on certain occasions. Example, when keyboard moves up to the next month, it updates displayDate which then affect the current\n * date view of the calendar\n */\nexport class SgdsDatepicker extends SgdsFormValidatorMixin(DropdownElement) implements SgdsFormControl {\n static styles = [...DropdownElement.styles, dropdownMenuStyle, datepickerStyle];\n /**@internal */\n static dependencies = {\n \"sgds-datepicker-input\": DatepickerInput,\n \"sgds-datepicker-calendar\": DatepickerCalendar,\n \"sgds-datepicker-header\": DatepickerHeader,\n \"sgds-button\": SgdsButton,\n \"sgds-icon-button\": SgdsIconButton\n };\n\n /** When true, adds required attribute to input element */\n @property({ type: Boolean, reflect: true }) required = false;\n /**The datepicker input's name attribute */\n @property({ reflect: true }) name: string;\n /** When true, adds disabled attribute to input and button element */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /** Sets the initial value of the datepicker. Replaces deprecated `initialValue`.\n * Pass in dates in this format `dd/mm/yyyy` for single mode and `dd/mm/yyyy - dd/mm/yyyy` for range mode\n * For example, `value=\"22/12/2023\"` for single mode or `value=\"22/12/2023 - 25/12/2023\"` for range mode\n */\n @property({ type: String, reflect: true }) value = \"\";\n\n /**\n * @deprecated since v3.1.1 in favour of `value`.\n * The initial value of DatePicker on first load for single &\n * range mode as array of string. eg.'[\"22/12/2023\"]' for single &\n * '[\"22/12/2023\",\"25/12/2023\"]' for range respectively\n * */\n @property({ type: Array, reflect: true }) initialValue: string[] = [];\n\n private dateFormat = \"DD/MM/YYYY\";\n\n /** ISO date string to set the lowest allowable date value. e.g. \"2016-05-19T12:00:00.000Z\" */\n @property({ type: String }) minDate = \"\";\n\n /** ISO date string to set the highest allowable date value. e.g. \"2016-05-19T12:00:00.000Z\" */\n @property({ type: String }) maxDate = \"\";\n\n /** Changes DatePicker to single date selection or range date selection */\n @property({ type: String, reflect: true }) mode: \"single\" | \"range\" = \"single\";\n\n /**Feedback text for error state when date input is invalid */\n @property({ type: String, reflect: true }) invalidFeedback: string;\n\n /** Allows invalidFeedback and invalid styles to be visible with the input */\n @property({ type: Boolean, reflect: true }) hasFeedback = false;\n\n /** The datepicker input's label */\n @property({ reflect: true }) label = \"\";\n\n /** The datepicker input's hint text below the label */\n @property({ reflect: true }) hintText = \"\";\n\n /** Controls auto-flipping of menu */\n @property({ type: Boolean, reflect: true, state: false })\n noFlip = false;\n\n /** The drop position of menu relative to the toggle button */\n @property({ type: String, reflect: true, state: false })\n drop: \"up\" | \"down\" = \"down\";\n\n /** Provides the date context for Calendar to present the appropriate view. Defaults to today's date */\n @property({ attribute: false }) displayDate: Date;\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 /**@internal */\n @state() invalid = false;\n\n @state()\n private view: ViewEnum = \"days\";\n\n @state() private selectedDateRange: Date[] = [];\n\n @state() private focusedDate: Date;\n\n @state() private focusedTabIndex = 3;\n\n private isValueEmpty() {\n return this.value === \"\" || this.value === \"DD/MM/YYYY\" || this.value === \"DD/MM/YYYY - DD/MM/YYYY\";\n }\n\n private initialDisplayDate: Date = new Date();\n\n @queryAsync(\"sgds-datepicker-calendar\")\n private calendar: Promise<DatepickerCalendar>;\n\n @queryAsync(\"sgds-datepicker-input\")\n private datepickerInputAsync: Promise<DatepickerInput>;\n\n @query(\"sgds-datepicker-input\")\n private datepickerInput: DatepickerInput;\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 /**\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 async connectedCallback() {\n super.connectedCallback();\n this.modifierOpt = [\n {\n name: \"offset\",\n options: {\n offset: [0, 8]\n }\n }\n ];\n this.addEventListener(\"sgds-view\", this._handleViewChanged);\n this.addEventListener(\"sgds-change-calendar\", this._handleDateChanged);\n this.addEventListener(\"sgds-update-focus\", this._handleFocusDateChanged);\n this.addEventListener(\"sgds-selectmonth\", this._handleSelectMonth);\n this.addEventListener(\"sgds-selectyear\", this._handleSelectYear);\n this.addEventListener(\"sgds-selectdates\", this._handleSelectDatesAndClose);\n this.addEventListener(\"sgds-selectdates-input\", this._handleSelectDatesInput);\n this.addEventListener(\"sgds-empty-input\", this._handleEmptyInput);\n this.addEventListener(\"keydown\", this._handleTab);\n this.addEventListener(\"sgds-hide\", this._handleCloseMenu);\n this.addEventListener(\"sgds-show\", this._handleOpenMenu);\n this.addEventListener(\"blur\", this._mixinCheckValidity);\n\n this.initialValue = this.value ? this.value.split(\" - \").map(v => v.trim()) : this.initialValue;\n this.initialDisplayDate = this.displayDate || new Date();\n if (this.initialValue && this.initialValue.length > 0) {\n // Validate initialValue against the dateFormat regex\n const dateFormatRegex = new RegExp(this._getDateFormatRegex());\n // const startDateString = this.initialValue[0];\n const invalidDates = this.initialValue.filter(v => !dateFormatRegex.test(v));\n if (invalidDates.length > 0) {\n return console.error(\"Invalid date format in initialValue:\", invalidDates);\n } else {\n const initialSelectedDates = this.initialValue.map(v =>\n setTimeToNoon(parse(v, DATE_PATTERNS[this.dateFormat].fnsPattern, new Date()))\n );\n this._handleSelectDates(initialSelectedDates);\n }\n } else {\n this.displayDate = this.initialDisplayDate;\n }\n }\n\n async firstUpdated() {\n super.firstUpdated();\n if (this.menuIsOpen) {\n const input = await this.datepickerInputAsync;\n this.showMenu();\n const cal = await this.calendar;\n cal.focusOnCalendar(input);\n }\n }\n\n /** @internal */\n private _getDateFormatRegex(): string {\n // validate date strings and adhere to the specified date format\n return (\n this.dateFormat\n // Replace any special characters with their escaped version using \"\\\\$&\"\n .replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\")\n // Replace 'MM' with '\\\\d{2}', which matches two digits representing the month (e.g., 01, 12)\n .replace(\"MM\", \"\\\\d{2}\")\n // Replace 'DD' with '\\\\d{2}', which matches two digits representing the day (e.g., 01, 31)\n .replace(\"DD\", \"\\\\d{2}\")\n // Replace 'YYYY' with '\\\\d{4}', which matches four digits representing the year (e.g., 2021)\n .replace(\"YYYY\", \"\\\\d{4}\")\n // Replace '/' with '\\\\/', which matches the forward slash character\n .replace(\"/\", \"\\\\/\")\n );\n }\n private _handleTab(event: KeyboardEvent) {\n if (!this.menuIsOpen) {\n return;\n }\n const tabIndexArray = Array(4);\n if (event.shiftKey && event.key === \"Tab\") {\n event.preventDefault();\n this.focusedTabIndex = (this.focusedTabIndex - 1 + tabIndexArray.length) % tabIndexArray.length;\n } else if (event.key === \"Tab\") {\n event.preventDefault();\n this.focusedTabIndex = (this.focusedTabIndex + 1 + tabIndexArray.length) % tabIndexArray.length;\n }\n }\n\n @watch(\"value\", { waitUntilFirstUpdate: true })\n _handleValueChange() {\n this.emit(\"sgds-change-date\");\n }\n\n private async _handleCloseMenu() {\n //return focus to input when menu closes\n const input = await this.datepickerInputAsync;\n input.focus();\n\n if (this.selectedDateRange.length === 0) {\n this.displayDate = this.initialDisplayDate;\n } else {\n const selectedDatesLength = this.selectedDateRange.length;\n this.displayDate = this.selectedDateRange[selectedDatesLength - 1];\n const calendar = await this.calendar;\n calendar._updateFocusedDate();\n }\n }\n private async _handleOpenMenu() {\n const cal = await this.calendar;\n const input = await this.datepickerInputAsync;\n cal.focusOnCalendar(input);\n }\n\n private _makeInputValueString = (startDate: Date, endDate: Date, dateFormat: string) => {\n if (!startDate && !endDate) return this.value;\n const formatDate = (date: Date) => format(date, DATE_PATTERNS[dateFormat].fnsPattern);\n switch (this.mode) {\n case \"single\": {\n if (startDate) {\n this.value = formatDate(startDate);\n }\n break;\n }\n case \"range\": {\n if (startDate && endDate) {\n this.value = `${formatDate(startDate)} - ${formatDate(endDate)}`;\n }\n if (startDate && !endDate) {\n this.value = `${formatDate(startDate)} - ${this.dateFormat}`;\n }\n break;\n }\n }\n return this.value;\n };\n private _handleSelectDatesInput(event: CustomEvent<Date[]>) {\n this._handleSelectDates(event.detail);\n }\n private async _handleSelectDates(newSelectedDates: Date[]) {\n newSelectedDates.sort((a: Date, b: Date) => a.getTime() - b.getTime());\n this.displayDate = newSelectedDates[0];\n this.focusedDate = newSelectedDates[0];\n this.selectedDateRange = newSelectedDates;\n // Get the formattedDate value for the selected dates\n const formattedDate = this._makeInputValueString(\n this.selectedDateRange[0],\n this.selectedDateRange[1],\n this.dateFormat\n );\n\n // Set formattedDate value as the new value for sgds-input\n this.value = formattedDate;\n const input = await this.datepickerInputAsync;\n input.updateMaskValue();\n this._manageInternalsValid();\n }\n\n private async _handleSelectDatesAndClose(event: CustomEvent<Date[]>) {\n await this._handleSelectDates(event.detail);\n\n if (this.mode === \"range\" && this.selectedDateRange.length === 2) {\n this.hideMenu();\n } else if (this.mode === \"single\" && this.selectedDateRange.length === 1) {\n this.hideMenu();\n }\n }\n\n /** update latest view state from datepicker-header */\n private _handleViewChanged(event: CustomEvent<string>) {\n this.view = event.detail as ViewEnum;\n }\n\n private _handleDateChanged(event: CustomEvent<Date>) {\n this.displayDate = event.detail;\n }\n private _handleFocusDateChanged(event: CustomEvent<Date>) {\n this.focusedDate = event.detail;\n }\n\n private _handleSelectMonth(event: CustomEvent<Date>) {\n this.displayDate = event.detail;\n }\n\n private _handleSelectYear(event: CustomEvent<Date>) {\n this.displayDate = event.detail;\n }\n private async _handleInvalidInput() {\n this.selectedDateRange = [];\n this.displayDate = this.initialDisplayDate;\n this.invalid = true;\n this._manageInternalsBadInput();\n }\n private async _handleEmptyInput() {\n if (this.required) {\n this._manageEmptyInput();\n }\n return;\n }\n private async _resetDatepicker(resetValue = \"\") {\n this.displayDate = this.initialDisplayDate;\n this.selectedDateRange = [];\n this.value = resetValue;\n this.view = \"days\";\n const input = await this.datepickerInputAsync;\n input.setInvalid(false);\n input.destroyInputMask();\n await input.applyInputMask();\n\n this._mixinResetValidity(input);\n if (this.isValueEmpty()) {\n this._handleEmptyInput();\n }\n }\n\n private _manageInternalsBadInput() {\n this._mixinSetValidity(\n {\n badInput: true\n },\n \"Invalid date input\",\n this.datepickerInput\n );\n }\n /**\n * Even though element internals handles the required constraint validation. This custom one is still needed as\n * datepicker input has a special case where the default input mask \"DD/MM/YYYY\" means an empty input.\n * However, the required constraint validation sees \"DD/MM/YYYY\" as a non-empty input.\n */\n private _manageEmptyInput() {\n this._mixinSetValidity(\n {\n valueMissing: true\n },\n \"Please fill in this field\",\n this.datepickerInput\n );\n }\n\n /**\n * Called when a valid date is entered via input or selected by calendar\n * 1. sets validity state to valid\n * 2. updates invalid prop\n * 3. sets the form value of datepicker\n */\n private _manageInternalsValid() {\n this._mixinSetValidity({});\n this.invalid = this.datepickerInput.invalid = false;\n this._mixinSetFormValue();\n }\n\n /**\n * Handles the form \"reset\" event\n */\n private async _mixinResetFormControl() {\n this._resetDatepicker(this.defaultValue);\n }\n private async _handleInputMaskChange(e: CustomEvent) {\n this.value = e.detail;\n\n if (this.isValueEmpty()) {\n this._resetDatepicker();\n }\n }\n\n private _dialogAriaLabels = {\n days: \"Choose date\",\n months: \"Choose month\",\n years: \"Choose year\"\n };\n\n render() {\n return html`\n <div class=\"datepicker-container\">\n <sgds-datepicker-input\n .value=${live(this.value)}\n ?required=${this.required}\n ?disabled=${this.disabled}\n placeholder=${this.mode === \"single\" ? \"DD/MM/YYYY\" : \"DD/MM/YYYY - DD/MM/YYYY\"}\n mode=${this.mode}\n invalidFeedback=${ifDefined(this.invalidFeedback ? this.invalidFeedback : this._mixinGetValidationMessage())}\n @sgds-mask-input-change=${this._handleInputMaskChange}\n @sgds-invalid-input=${this._handleInvalidInput}\n minDate=${this.minDate}\n maxDate=${this.maxDate}\n label=${this.label}\n hintText=${this.hintText}\n name=${this.name}\n ?invalid=${this.invalid}\n hasFeedback=${ifDefined(this.hasFeedback ? \"both\" : undefined)}\n >\n </sgds-datepicker-input>\n <sgds-icon-button\n ${ref(this.myDropdown)}\n role=\"button\"\n class=${classMap({\n \"calendar-btn\": true,\n \"with-hint-text\": this.hintText || this.invalid,\n \"with-label\": this.label\n })}\n aria-expanded=\"${this.menuIsOpen}\"\n aria-haspopup=\"dialog\"\n aria-controls=${this.dropdownMenuId}\n @click=${() => this.toggleMenu()}\n ariaLabel=${this.menuIsOpen ? \"Close Calendar\" : \"Open Calendar\"}\n ?disabled=${this.disabled}\n variant=\"outline\"\n name=\"calendar\"\n >\n </sgds-icon-button>\n <ul\n id=${this.dropdownMenuId}\n class=\"sgds datepicker dropdown-menu\"\n role=\"dialog\"\n aria-label=${this._dialogAriaLabels[this.view]}\n @click=${(event: MouseEvent) => event.stopPropagation()}\n >\n <sgds-datepicker-header\n .view=${this.view}\n .displayDate=${this.displayDate}\n .focusedDate=${this.focusedDate}\n .selectedDate=${this.selectedDateRange}\n .focusedTabIndex=${this.focusedTabIndex}\n ></sgds-datepicker-header>\n <sgds-datepicker-calendar\n .show=${this.menuIsOpen}\n .view=${this.view}\n .displayDate=${this.displayDate}\n .mode=${this.mode}\n minDate=${this.minDate}\n maxDate=${this.maxDate}\n .selectedDate=${this.selectedDateRange}\n .focusedTabIndex=${this.focusedTabIndex}\n ></sgds-datepicker-calendar>\n </ul>\n </div>\n `;\n }\n}\n\nexport default SgdsDatepicker;\n"],"names":["SgdsFormValidatorMixin","DropdownElement","format","DATE_PATTERNS","setTimeToNoon","parse","html","live","ifDefined","ref","classMap","dropdownMenuStyle","datepickerStyle","DatepickerInput","DatepickerCalendar","DatepickerHeader","SgdsButton","SgdsIconButton","__decorate","property","defaultValue","state","queryAsync","query","watch"],"mappings":"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"}
@@ -18,6 +18,7 @@ import { SgdsIconButton } from '../IconButton/sgds-icon-button.js';
18
18
  import { SgdsFormValidatorMixin } from '../../utils/validatorMixin.js';
19
19
  import { ifDefined } from 'lit/directives/if-defined.js';
20
20
  import { classMap } from 'lit/directives/class-map.js';
21
+ import { defaultValue } from '../../utils/defaultvalue.js';
21
22
 
22
23
  /**
23
24
  * @summary The `DatePicker` Component is built using `Dropdown`, `Input` and `Button` components. By default, the Calendar points to today's date and input has no value. Users can either pick dates from the calendar or type dates through the input
@@ -35,7 +36,17 @@ class SgdsDatepicker extends SgdsFormValidatorMixin(DropdownElement) {
35
36
  this.required = false;
36
37
  /** When true, adds disabled attribute to input and button element */
37
38
  this.disabled = false;
38
- /** The initial value of DatePicker on first load for single & range mode as array of string. eg.'["22/12/2023"]' for single & '["22/12/2023","25/12/2023"]' for range respectively */
39
+ /** Sets the initial value of the datepicker. Replaces deprecated `initialValue`.
40
+ * Pass in dates in this format `dd/mm/yyyy` for single mode and `dd/mm/yyyy - dd/mm/yyyy` for range mode
41
+ * For example, `value="22/12/2023"` for single mode or `value="22/12/2023 - 25/12/2023"` for range mode
42
+ */
43
+ this.value = "";
44
+ /**
45
+ * @deprecated since v3.1.1 in favour of `value`.
46
+ * The initial value of DatePicker on first load for single &
47
+ * range mode as array of string. eg.'["22/12/2023"]' for single &
48
+ * '["22/12/2023","25/12/2023"]' for range respectively
49
+ * */
39
50
  this.initialValue = [];
40
51
  this.dateFormat = "DD/MM/YYYY";
41
52
  /** ISO date string to set the lowest allowable date value. e.g. "2016-05-19T12:00:00.000Z" */
@@ -54,8 +65,8 @@ class SgdsDatepicker extends SgdsFormValidatorMixin(DropdownElement) {
54
65
  this.noFlip = false;
55
66
  /** The drop position of menu relative to the toggle button */
56
67
  this.drop = "down";
57
- /**@internal */
58
- this.value = "";
68
+ /**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. */
69
+ this.defaultValue = "";
59
70
  /**@internal */
60
71
  this.invalid = false;
61
72
  this.view = "days";
@@ -141,6 +152,7 @@ class SgdsDatepicker extends SgdsFormValidatorMixin(DropdownElement) {
141
152
  this.addEventListener("sgds-hide", this._handleCloseMenu);
142
153
  this.addEventListener("sgds-show", this._handleOpenMenu);
143
154
  this.addEventListener("blur", this._mixinCheckValidity);
155
+ this.initialValue = this.value ? this.value.split(" - ").map(v => v.trim()) : this.initialValue;
144
156
  this.initialDisplayDate = this.displayDate || new Date();
145
157
  if (this.initialValue && this.initialValue.length > 0) {
146
158
  // Validate initialValue against the dateFormat regex
@@ -267,19 +279,22 @@ class SgdsDatepicker extends SgdsFormValidatorMixin(DropdownElement) {
267
279
  this._manageInternalsBadInput();
268
280
  }
269
281
  async _handleEmptyInput() {
270
- this._manageEmptyInput();
282
+ if (this.required) {
283
+ this._manageEmptyInput();
284
+ }
285
+ return;
271
286
  }
272
- async _resetDatepicker() {
287
+ async _resetDatepicker(resetValue = "") {
273
288
  this.displayDate = this.initialDisplayDate;
274
289
  this.selectedDateRange = [];
275
- this.value = "";
290
+ this.value = resetValue;
276
291
  this.view = "days";
277
292
  const input = await this.datepickerInputAsync;
278
293
  input.setInvalid(false);
279
294
  input.destroyInputMask();
280
295
  await input.applyInputMask();
281
296
  this._mixinResetValidity(input);
282
- if (this.isValueEmpty() && this.required) {
297
+ if (this.isValueEmpty()) {
283
298
  this._handleEmptyInput();
284
299
  }
285
300
  }
@@ -313,7 +328,7 @@ class SgdsDatepicker extends SgdsFormValidatorMixin(DropdownElement) {
313
328
  * Handles the form "reset" event
314
329
  */
315
330
  async _mixinResetFormControl() {
316
- this._resetDatepicker();
331
+ this._resetDatepicker(this.defaultValue);
317
332
  }
318
333
  async _handleInputMaskChange(e) {
319
334
  this.value = e.detail;
@@ -407,6 +422,9 @@ __decorate([
407
422
  __decorate([
408
423
  property({ type: Boolean, reflect: true })
409
424
  ], SgdsDatepicker.prototype, "disabled", void 0);
425
+ __decorate([
426
+ property({ type: String, reflect: true })
427
+ ], SgdsDatepicker.prototype, "value", void 0);
410
428
  __decorate([
411
429
  property({ type: Array, reflect: true })
412
430
  ], SgdsDatepicker.prototype, "initialValue", void 0);
@@ -441,8 +459,8 @@ __decorate([
441
459
  property({ attribute: false })
442
460
  ], SgdsDatepicker.prototype, "displayDate", void 0);
443
461
  __decorate([
444
- state()
445
- ], SgdsDatepicker.prototype, "value", void 0);
462
+ defaultValue()
463
+ ], SgdsDatepicker.prototype, "defaultValue", void 0);
446
464
  __decorate([
447
465
  state()
448
466
  ], SgdsDatepicker.prototype, "invalid", void 0);
@@ -468,7 +486,7 @@ __decorate([
468
486
  query("sgds-datepicker-input")
469
487
  ], SgdsDatepicker.prototype, "datepickerInput", void 0);
470
488
  __decorate([
471
- watch("value")
489
+ watch("value", { waitUntilFirstUpdate: true })
472
490
  ], SgdsDatepicker.prototype, "_handleValueChange", null);
473
491
 
474
492
  export { SgdsDatepicker, SgdsDatepicker as default };
@@ -1 +1 @@
1
- {"version":3,"file":"sgds-datepicker.js","sources":["../../../../src/components/Datepicker/sgds-datepicker.ts"],"sourcesContent":["import { format, parse } from \"date-fns\";\nimport { html } from \"lit\";\nimport { property, query, queryAsync, state } from \"lit/decorators.js\";\nimport { live } from \"lit/directives/live.js\";\nimport { ref } from \"lit/directives/ref.js\";\nimport { DropdownElement } from \"../../base/dropdown-element\";\nimport { type SgdsFormControl } from \"../../utils/formSubmitController\";\nimport { DATE_PATTERNS, setTimeToNoon } from \"../../utils/time\";\nimport { watch } from \"../../utils/watch\";\nimport { SgdsButton } from \"../Button/sgds-button\";\nimport dropdownMenuStyle from \"../Dropdown/dropdown-menu.css\";\nimport { DatepickerCalendar } from \"./datepicker-calendar\";\nimport { DatepickerHeader } from \"./datepicker-header\";\nimport DatepickerInput from \"./datepicker-input\";\nimport datepickerStyle from \"./datepicker.css\";\nimport { ViewEnum } from \"./types\";\nimport SgdsIconButton from \"../IconButton/sgds-icon-button\";\nimport { SgdsFormValidatorMixin } from \"../../utils/validatorMixin\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\n\nexport type DateFormat = \"MM/DD/YYYY\" | \"DD/MM/YYYY\" | \"YYYY/MM/DD\";\n\n/**\n * @summary The `DatePicker` Component is built using `Dropdown`, `Input` and `Button` components. By default, the Calendar points to today's date and input has no value. Users can either pick dates from the calendar or type dates through the input\n *\n * @event sgds-change-date - Emitted when the state of datepicker's input changes during first load, close button reset click & date click. Date values can be accessed via event.target.value\n *\n * @description displayDate sets the month, year views of the calendar while focusedDate follows the focus which also directly changes\n * displayDate on certain occasions. Example, when keyboard moves up to the next month, it updates displayDate which then affect the current\n * date view of the calendar\n */\nexport class SgdsDatepicker extends SgdsFormValidatorMixin(DropdownElement) implements SgdsFormControl {\n static styles = [...DropdownElement.styles, dropdownMenuStyle, datepickerStyle];\n /**@internal */\n static dependencies = {\n \"sgds-datepicker-input\": DatepickerInput,\n \"sgds-datepicker-calendar\": DatepickerCalendar,\n \"sgds-datepicker-header\": DatepickerHeader,\n \"sgds-button\": SgdsButton,\n \"sgds-icon-button\": SgdsIconButton\n };\n\n /** When true, adds required attribute to input element */\n @property({ type: Boolean, reflect: true }) required = false;\n /**The datepicker input's name attribute */\n @property({ reflect: true }) name: string;\n /** When true, adds disabled attribute to input and button element */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /** The initial value of DatePicker on first load for single & range mode as array of string. eg.'[\"22/12/2023\"]' for single & '[\"22/12/2023\",\"25/12/2023\"]' for range respectively */\n @property({ type: Array, reflect: true }) initialValue: string[] = [];\n\n private dateFormat = \"DD/MM/YYYY\";\n\n /** ISO date string to set the lowest allowable date value. e.g. \"2016-05-19T12:00:00.000Z\" */\n @property({ type: String }) minDate = \"\";\n\n /** ISO date string to set the highest allowable date value. e.g. \"2016-05-19T12:00:00.000Z\" */\n @property({ type: String }) maxDate = \"\";\n\n /** Changes DatePicker to single date selection or range date selection */\n @property({ type: String, reflect: true }) mode: \"single\" | \"range\" = \"single\";\n\n /**Feedback text for error state when date input is invalid */\n @property({ type: String, reflect: true }) invalidFeedback: string;\n\n /** Allows invalidFeedback and invalid styles to be visible with the input */\n @property({ type: Boolean, reflect: true }) hasFeedback = false;\n\n /** The datepicker input's label */\n @property({ reflect: true }) label = \"\";\n\n /** The datepicker input's hint text below the label */\n @property({ reflect: true }) hintText = \"\";\n\n /** Controls auto-flipping of menu */\n @property({ type: Boolean, reflect: true, state: false })\n noFlip = false;\n\n /** The drop position of menu relative to the toggle button */\n @property({ type: String, reflect: true, state: false })\n drop: \"up\" | \"down\" = \"down\";\n\n /** Provides the date context for Calendar to present the appropriate view. Defaults to today's date */\n @property({ attribute: false }) displayDate: Date;\n /**@internal */\n @state() value = \"\";\n /**@internal */\n @state() invalid = false;\n\n @state()\n private view: ViewEnum = \"days\";\n\n @state() private selectedDateRange: Date[] = [];\n\n @state() private focusedDate: Date;\n\n @state() private focusedTabIndex = 3;\n\n private isValueEmpty() {\n return this.value === \"\" || this.value === \"DD/MM/YYYY\" || this.value === \"DD/MM/YYYY - DD/MM/YYYY\";\n }\n\n private initialDisplayDate: Date = new Date();\n\n @queryAsync(\"sgds-datepicker-calendar\")\n private calendar: Promise<DatepickerCalendar>;\n\n @queryAsync(\"sgds-datepicker-input\")\n private datepickerInputAsync: Promise<DatepickerInput>;\n\n @query(\"sgds-datepicker-input\")\n private datepickerInput: DatepickerInput;\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 /**\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 async connectedCallback() {\n super.connectedCallback();\n this.modifierOpt = [\n {\n name: \"offset\",\n options: {\n offset: [0, 8]\n }\n }\n ];\n this.addEventListener(\"sgds-view\", this._handleViewChanged);\n this.addEventListener(\"sgds-change-calendar\", this._handleDateChanged);\n this.addEventListener(\"sgds-update-focus\", this._handleFocusDateChanged);\n this.addEventListener(\"sgds-selectmonth\", this._handleSelectMonth);\n this.addEventListener(\"sgds-selectyear\", this._handleSelectYear);\n this.addEventListener(\"sgds-selectdates\", this._handleSelectDatesAndClose);\n this.addEventListener(\"sgds-selectdates-input\", this._handleSelectDatesInput);\n this.addEventListener(\"sgds-empty-input\", this._handleEmptyInput);\n this.addEventListener(\"keydown\", this._handleTab);\n this.addEventListener(\"sgds-hide\", this._handleCloseMenu);\n this.addEventListener(\"sgds-show\", this._handleOpenMenu);\n this.addEventListener(\"blur\", this._mixinCheckValidity);\n this.initialDisplayDate = this.displayDate || new Date();\n if (this.initialValue && this.initialValue.length > 0) {\n // Validate initialValue against the dateFormat regex\n const dateFormatRegex = new RegExp(this._getDateFormatRegex());\n // const startDateString = this.initialValue[0];\n const invalidDates = this.initialValue.filter(v => !dateFormatRegex.test(v));\n if (invalidDates.length > 0) {\n return console.error(\"Invalid date format in initialValue:\", invalidDates);\n } else {\n const initialSelectedDates = this.initialValue.map(v =>\n setTimeToNoon(parse(v, DATE_PATTERNS[this.dateFormat].fnsPattern, new Date()))\n );\n this._handleSelectDates(initialSelectedDates);\n }\n } else {\n this.displayDate = this.initialDisplayDate;\n }\n }\n\n async firstUpdated() {\n super.firstUpdated();\n if (this.menuIsOpen) {\n const input = await this.datepickerInputAsync;\n this.showMenu();\n const cal = await this.calendar;\n cal.focusOnCalendar(input);\n }\n }\n\n /** @internal */\n private _getDateFormatRegex(): string {\n // validate date strings and adhere to the specified date format\n return (\n this.dateFormat\n // Replace any special characters with their escaped version using \"\\\\$&\"\n .replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\")\n // Replace 'MM' with '\\\\d{2}', which matches two digits representing the month (e.g., 01, 12)\n .replace(\"MM\", \"\\\\d{2}\")\n // Replace 'DD' with '\\\\d{2}', which matches two digits representing the day (e.g., 01, 31)\n .replace(\"DD\", \"\\\\d{2}\")\n // Replace 'YYYY' with '\\\\d{4}', which matches four digits representing the year (e.g., 2021)\n .replace(\"YYYY\", \"\\\\d{4}\")\n // Replace '/' with '\\\\/', which matches the forward slash character\n .replace(\"/\", \"\\\\/\")\n );\n }\n private _handleTab(event: KeyboardEvent) {\n if (!this.menuIsOpen) {\n return;\n }\n const tabIndexArray = Array(4);\n if (event.shiftKey && event.key === \"Tab\") {\n event.preventDefault();\n this.focusedTabIndex = (this.focusedTabIndex - 1 + tabIndexArray.length) % tabIndexArray.length;\n } else if (event.key === \"Tab\") {\n event.preventDefault();\n this.focusedTabIndex = (this.focusedTabIndex + 1 + tabIndexArray.length) % tabIndexArray.length;\n }\n }\n\n @watch(\"value\")\n _handleValueChange() {\n this.emit(\"sgds-change-date\");\n }\n\n private async _handleCloseMenu() {\n //return focus to input when menu closes\n const input = await this.datepickerInputAsync;\n input.focus();\n\n if (this.selectedDateRange.length === 0) {\n this.displayDate = this.initialDisplayDate;\n } else {\n const selectedDatesLength = this.selectedDateRange.length;\n this.displayDate = this.selectedDateRange[selectedDatesLength - 1];\n const calendar = await this.calendar;\n calendar._updateFocusedDate();\n }\n }\n private async _handleOpenMenu() {\n const cal = await this.calendar;\n const input = await this.datepickerInputAsync;\n cal.focusOnCalendar(input);\n }\n\n private _makeInputValueString = (startDate: Date, endDate: Date, dateFormat: string) => {\n if (!startDate && !endDate) return this.value;\n const formatDate = (date: Date) => format(date, DATE_PATTERNS[dateFormat].fnsPattern);\n switch (this.mode) {\n case \"single\": {\n if (startDate) {\n this.value = formatDate(startDate);\n }\n break;\n }\n case \"range\": {\n if (startDate && endDate) {\n this.value = `${formatDate(startDate)} - ${formatDate(endDate)}`;\n }\n if (startDate && !endDate) {\n this.value = `${formatDate(startDate)} - ${this.dateFormat}`;\n }\n break;\n }\n }\n return this.value;\n };\n private _handleSelectDatesInput(event: CustomEvent<Date[]>) {\n this._handleSelectDates(event.detail);\n }\n private async _handleSelectDates(newSelectedDates: Date[]) {\n newSelectedDates.sort((a: Date, b: Date) => a.getTime() - b.getTime());\n this.displayDate = newSelectedDates[0];\n this.focusedDate = newSelectedDates[0];\n this.selectedDateRange = newSelectedDates;\n // Get the formattedDate value for the selected dates\n const formattedDate = this._makeInputValueString(\n this.selectedDateRange[0],\n this.selectedDateRange[1],\n this.dateFormat\n );\n\n // Set formattedDate value as the new value for sgds-input\n this.value = formattedDate;\n const input = await this.datepickerInputAsync;\n input.updateMaskValue();\n this._manageInternalsValid();\n }\n\n private async _handleSelectDatesAndClose(event: CustomEvent<Date[]>) {\n await this._handleSelectDates(event.detail);\n\n if (this.mode === \"range\" && this.selectedDateRange.length === 2) {\n this.hideMenu();\n } else if (this.mode === \"single\" && this.selectedDateRange.length === 1) {\n this.hideMenu();\n }\n }\n\n /** update latest view state from datepicker-header */\n private _handleViewChanged(event: CustomEvent<string>) {\n this.view = event.detail as ViewEnum;\n }\n\n private _handleDateChanged(event: CustomEvent<Date>) {\n this.displayDate = event.detail;\n }\n private _handleFocusDateChanged(event: CustomEvent<Date>) {\n this.focusedDate = event.detail;\n }\n\n private _handleSelectMonth(event: CustomEvent<Date>) {\n this.displayDate = event.detail;\n }\n\n private _handleSelectYear(event: CustomEvent<Date>) {\n this.displayDate = event.detail;\n }\n private async _handleInvalidInput() {\n this.selectedDateRange = [];\n this.displayDate = this.initialDisplayDate;\n this.invalid = true;\n this._manageInternalsBadInput();\n }\n private async _handleEmptyInput() {\n this._manageEmptyInput();\n }\n private async _resetDatepicker() {\n this.displayDate = this.initialDisplayDate;\n this.selectedDateRange = [];\n this.value = \"\";\n this.view = \"days\";\n const input = await this.datepickerInputAsync;\n input.setInvalid(false);\n input.destroyInputMask();\n await input.applyInputMask();\n\n this._mixinResetValidity(input);\n if (this.isValueEmpty() && this.required) {\n this._handleEmptyInput();\n }\n }\n\n private _manageInternalsBadInput() {\n this._mixinSetValidity(\n {\n badInput: true\n },\n \"Invalid date input\",\n this.datepickerInput\n );\n }\n /**\n * Even though element internals handles the required constraint validation. This custom one is still needed as\n * datepicker input has a special case where the default input mask \"DD/MM/YYYY\" means an empty input.\n * However, the required constraint validation sees \"DD/MM/YYYY\" as a non-empty input.\n */\n private _manageEmptyInput() {\n this._mixinSetValidity(\n {\n valueMissing: true\n },\n \"Please fill in this field\",\n this.datepickerInput\n );\n }\n\n /**\n * Called when a valid date is entered via input or selected by calendar\n * 1. sets validity state to valid\n * 2. updates invalid prop\n * 3. sets the form value of datepicker\n */\n private _manageInternalsValid() {\n this._mixinSetValidity({});\n this.invalid = this.datepickerInput.invalid = false;\n this._mixinSetFormValue();\n }\n\n /**\n * Handles the form \"reset\" event\n */\n private async _mixinResetFormControl() {\n this._resetDatepicker();\n }\n private async _handleInputMaskChange(e: CustomEvent) {\n this.value = e.detail;\n\n if (this.isValueEmpty()) {\n this._resetDatepicker();\n }\n }\n\n private _dialogAriaLabels = {\n days: \"Choose date\",\n months: \"Choose month\",\n years: \"Choose year\"\n };\n\n render() {\n return html`\n <div class=\"datepicker-container\">\n <sgds-datepicker-input\n .value=${live(this.value)}\n ?required=${this.required}\n ?disabled=${this.disabled}\n placeholder=${this.mode === \"single\" ? \"DD/MM/YYYY\" : \"DD/MM/YYYY - DD/MM/YYYY\"}\n mode=${this.mode}\n invalidFeedback=${ifDefined(this.invalidFeedback ? this.invalidFeedback : this._mixinGetValidationMessage())}\n @sgds-mask-input-change=${this._handleInputMaskChange}\n @sgds-invalid-input=${this._handleInvalidInput}\n minDate=${this.minDate}\n maxDate=${this.maxDate}\n label=${this.label}\n hintText=${this.hintText}\n name=${this.name}\n ?invalid=${this.invalid}\n hasFeedback=${ifDefined(this.hasFeedback ? \"both\" : undefined)}\n >\n </sgds-datepicker-input>\n <sgds-icon-button\n ${ref(this.myDropdown)}\n role=\"button\"\n class=${classMap({\n \"calendar-btn\": true,\n \"with-hint-text\": this.hintText || this.invalid,\n \"with-label\": this.label\n })}\n aria-expanded=\"${this.menuIsOpen}\"\n aria-haspopup=\"dialog\"\n aria-controls=${this.dropdownMenuId}\n @click=${() => this.toggleMenu()}\n ariaLabel=${this.menuIsOpen ? \"Close Calendar\" : \"Open Calendar\"}\n ?disabled=${this.disabled}\n variant=\"outline\"\n name=\"calendar\"\n >\n </sgds-icon-button>\n <ul\n id=${this.dropdownMenuId}\n class=\"sgds datepicker dropdown-menu\"\n role=\"dialog\"\n aria-label=${this._dialogAriaLabels[this.view]}\n @click=${(event: MouseEvent) => event.stopPropagation()}\n >\n <sgds-datepicker-header\n .view=${this.view}\n .displayDate=${this.displayDate}\n .focusedDate=${this.focusedDate}\n .selectedDate=${this.selectedDateRange}\n .focusedTabIndex=${this.focusedTabIndex}\n ></sgds-datepicker-header>\n <sgds-datepicker-calendar\n .show=${this.menuIsOpen}\n .view=${this.view}\n .displayDate=${this.displayDate}\n .mode=${this.mode}\n minDate=${this.minDate}\n maxDate=${this.maxDate}\n .selectedDate=${this.selectedDateRange}\n .focusedTabIndex=${this.focusedTabIndex}\n ></sgds-datepicker-calendar>\n </ul>\n </div>\n `;\n }\n}\n\nexport default SgdsDatepicker;\n"],"names":["dropdownMenuStyle","datepickerStyle"],"mappings":"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"}
1
+ {"version":3,"file":"sgds-datepicker.js","sources":["../../../../src/components/Datepicker/sgds-datepicker.ts"],"sourcesContent":["import { format, parse } from \"date-fns\";\nimport { html } from \"lit\";\nimport { property, query, queryAsync, state } from \"lit/decorators.js\";\nimport { live } from \"lit/directives/live.js\";\nimport { ref } from \"lit/directives/ref.js\";\nimport { DropdownElement } from \"../../base/dropdown-element\";\nimport { type SgdsFormControl } from \"../../utils/formSubmitController\";\nimport { DATE_PATTERNS, setTimeToNoon } from \"../../utils/time\";\nimport { watch } from \"../../utils/watch\";\nimport { SgdsButton } from \"../Button/sgds-button\";\nimport dropdownMenuStyle from \"../Dropdown/dropdown-menu.css\";\nimport { DatepickerCalendar } from \"./datepicker-calendar\";\nimport { DatepickerHeader } from \"./datepicker-header\";\nimport DatepickerInput from \"./datepicker-input\";\nimport datepickerStyle from \"./datepicker.css\";\nimport { ViewEnum } from \"./types\";\nimport SgdsIconButton from \"../IconButton/sgds-icon-button\";\nimport { SgdsFormValidatorMixin } from \"../../utils/validatorMixin\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { defaultValue } from \"../../utils/defaultvalue\";\n\nexport type DateFormat = \"MM/DD/YYYY\" | \"DD/MM/YYYY\" | \"YYYY/MM/DD\";\n\n/**\n * @summary The `DatePicker` Component is built using `Dropdown`, `Input` and `Button` components. By default, the Calendar points to today's date and input has no value. Users can either pick dates from the calendar or type dates through the input\n *\n * @event sgds-change-date - Emitted when the state of datepicker's input changes during first load, close button reset click & date click. Date values can be accessed via event.target.value\n *\n * @description displayDate sets the month, year views of the calendar while focusedDate follows the focus which also directly changes\n * displayDate on certain occasions. Example, when keyboard moves up to the next month, it updates displayDate which then affect the current\n * date view of the calendar\n */\nexport class SgdsDatepicker extends SgdsFormValidatorMixin(DropdownElement) implements SgdsFormControl {\n static styles = [...DropdownElement.styles, dropdownMenuStyle, datepickerStyle];\n /**@internal */\n static dependencies = {\n \"sgds-datepicker-input\": DatepickerInput,\n \"sgds-datepicker-calendar\": DatepickerCalendar,\n \"sgds-datepicker-header\": DatepickerHeader,\n \"sgds-button\": SgdsButton,\n \"sgds-icon-button\": SgdsIconButton\n };\n\n /** When true, adds required attribute to input element */\n @property({ type: Boolean, reflect: true }) required = false;\n /**The datepicker input's name attribute */\n @property({ reflect: true }) name: string;\n /** When true, adds disabled attribute to input and button element */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /** Sets the initial value of the datepicker. Replaces deprecated `initialValue`.\n * Pass in dates in this format `dd/mm/yyyy` for single mode and `dd/mm/yyyy - dd/mm/yyyy` for range mode\n * For example, `value=\"22/12/2023\"` for single mode or `value=\"22/12/2023 - 25/12/2023\"` for range mode\n */\n @property({ type: String, reflect: true }) value = \"\";\n\n /**\n * @deprecated since v3.1.1 in favour of `value`.\n * The initial value of DatePicker on first load for single &\n * range mode as array of string. eg.'[\"22/12/2023\"]' for single &\n * '[\"22/12/2023\",\"25/12/2023\"]' for range respectively\n * */\n @property({ type: Array, reflect: true }) initialValue: string[] = [];\n\n private dateFormat = \"DD/MM/YYYY\";\n\n /** ISO date string to set the lowest allowable date value. e.g. \"2016-05-19T12:00:00.000Z\" */\n @property({ type: String }) minDate = \"\";\n\n /** ISO date string to set the highest allowable date value. e.g. \"2016-05-19T12:00:00.000Z\" */\n @property({ type: String }) maxDate = \"\";\n\n /** Changes DatePicker to single date selection or range date selection */\n @property({ type: String, reflect: true }) mode: \"single\" | \"range\" = \"single\";\n\n /**Feedback text for error state when date input is invalid */\n @property({ type: String, reflect: true }) invalidFeedback: string;\n\n /** Allows invalidFeedback and invalid styles to be visible with the input */\n @property({ type: Boolean, reflect: true }) hasFeedback = false;\n\n /** The datepicker input's label */\n @property({ reflect: true }) label = \"\";\n\n /** The datepicker input's hint text below the label */\n @property({ reflect: true }) hintText = \"\";\n\n /** Controls auto-flipping of menu */\n @property({ type: Boolean, reflect: true, state: false })\n noFlip = false;\n\n /** The drop position of menu relative to the toggle button */\n @property({ type: String, reflect: true, state: false })\n drop: \"up\" | \"down\" = \"down\";\n\n /** Provides the date context for Calendar to present the appropriate view. Defaults to today's date */\n @property({ attribute: false }) displayDate: Date;\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 /**@internal */\n @state() invalid = false;\n\n @state()\n private view: ViewEnum = \"days\";\n\n @state() private selectedDateRange: Date[] = [];\n\n @state() private focusedDate: Date;\n\n @state() private focusedTabIndex = 3;\n\n private isValueEmpty() {\n return this.value === \"\" || this.value === \"DD/MM/YYYY\" || this.value === \"DD/MM/YYYY - DD/MM/YYYY\";\n }\n\n private initialDisplayDate: Date = new Date();\n\n @queryAsync(\"sgds-datepicker-calendar\")\n private calendar: Promise<DatepickerCalendar>;\n\n @queryAsync(\"sgds-datepicker-input\")\n private datepickerInputAsync: Promise<DatepickerInput>;\n\n @query(\"sgds-datepicker-input\")\n private datepickerInput: DatepickerInput;\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 /**\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 async connectedCallback() {\n super.connectedCallback();\n this.modifierOpt = [\n {\n name: \"offset\",\n options: {\n offset: [0, 8]\n }\n }\n ];\n this.addEventListener(\"sgds-view\", this._handleViewChanged);\n this.addEventListener(\"sgds-change-calendar\", this._handleDateChanged);\n this.addEventListener(\"sgds-update-focus\", this._handleFocusDateChanged);\n this.addEventListener(\"sgds-selectmonth\", this._handleSelectMonth);\n this.addEventListener(\"sgds-selectyear\", this._handleSelectYear);\n this.addEventListener(\"sgds-selectdates\", this._handleSelectDatesAndClose);\n this.addEventListener(\"sgds-selectdates-input\", this._handleSelectDatesInput);\n this.addEventListener(\"sgds-empty-input\", this._handleEmptyInput);\n this.addEventListener(\"keydown\", this._handleTab);\n this.addEventListener(\"sgds-hide\", this._handleCloseMenu);\n this.addEventListener(\"sgds-show\", this._handleOpenMenu);\n this.addEventListener(\"blur\", this._mixinCheckValidity);\n\n this.initialValue = this.value ? this.value.split(\" - \").map(v => v.trim()) : this.initialValue;\n this.initialDisplayDate = this.displayDate || new Date();\n if (this.initialValue && this.initialValue.length > 0) {\n // Validate initialValue against the dateFormat regex\n const dateFormatRegex = new RegExp(this._getDateFormatRegex());\n // const startDateString = this.initialValue[0];\n const invalidDates = this.initialValue.filter(v => !dateFormatRegex.test(v));\n if (invalidDates.length > 0) {\n return console.error(\"Invalid date format in initialValue:\", invalidDates);\n } else {\n const initialSelectedDates = this.initialValue.map(v =>\n setTimeToNoon(parse(v, DATE_PATTERNS[this.dateFormat].fnsPattern, new Date()))\n );\n this._handleSelectDates(initialSelectedDates);\n }\n } else {\n this.displayDate = this.initialDisplayDate;\n }\n }\n\n async firstUpdated() {\n super.firstUpdated();\n if (this.menuIsOpen) {\n const input = await this.datepickerInputAsync;\n this.showMenu();\n const cal = await this.calendar;\n cal.focusOnCalendar(input);\n }\n }\n\n /** @internal */\n private _getDateFormatRegex(): string {\n // validate date strings and adhere to the specified date format\n return (\n this.dateFormat\n // Replace any special characters with their escaped version using \"\\\\$&\"\n .replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\")\n // Replace 'MM' with '\\\\d{2}', which matches two digits representing the month (e.g., 01, 12)\n .replace(\"MM\", \"\\\\d{2}\")\n // Replace 'DD' with '\\\\d{2}', which matches two digits representing the day (e.g., 01, 31)\n .replace(\"DD\", \"\\\\d{2}\")\n // Replace 'YYYY' with '\\\\d{4}', which matches four digits representing the year (e.g., 2021)\n .replace(\"YYYY\", \"\\\\d{4}\")\n // Replace '/' with '\\\\/', which matches the forward slash character\n .replace(\"/\", \"\\\\/\")\n );\n }\n private _handleTab(event: KeyboardEvent) {\n if (!this.menuIsOpen) {\n return;\n }\n const tabIndexArray = Array(4);\n if (event.shiftKey && event.key === \"Tab\") {\n event.preventDefault();\n this.focusedTabIndex = (this.focusedTabIndex - 1 + tabIndexArray.length) % tabIndexArray.length;\n } else if (event.key === \"Tab\") {\n event.preventDefault();\n this.focusedTabIndex = (this.focusedTabIndex + 1 + tabIndexArray.length) % tabIndexArray.length;\n }\n }\n\n @watch(\"value\", { waitUntilFirstUpdate: true })\n _handleValueChange() {\n this.emit(\"sgds-change-date\");\n }\n\n private async _handleCloseMenu() {\n //return focus to input when menu closes\n const input = await this.datepickerInputAsync;\n input.focus();\n\n if (this.selectedDateRange.length === 0) {\n this.displayDate = this.initialDisplayDate;\n } else {\n const selectedDatesLength = this.selectedDateRange.length;\n this.displayDate = this.selectedDateRange[selectedDatesLength - 1];\n const calendar = await this.calendar;\n calendar._updateFocusedDate();\n }\n }\n private async _handleOpenMenu() {\n const cal = await this.calendar;\n const input = await this.datepickerInputAsync;\n cal.focusOnCalendar(input);\n }\n\n private _makeInputValueString = (startDate: Date, endDate: Date, dateFormat: string) => {\n if (!startDate && !endDate) return this.value;\n const formatDate = (date: Date) => format(date, DATE_PATTERNS[dateFormat].fnsPattern);\n switch (this.mode) {\n case \"single\": {\n if (startDate) {\n this.value = formatDate(startDate);\n }\n break;\n }\n case \"range\": {\n if (startDate && endDate) {\n this.value = `${formatDate(startDate)} - ${formatDate(endDate)}`;\n }\n if (startDate && !endDate) {\n this.value = `${formatDate(startDate)} - ${this.dateFormat}`;\n }\n break;\n }\n }\n return this.value;\n };\n private _handleSelectDatesInput(event: CustomEvent<Date[]>) {\n this._handleSelectDates(event.detail);\n }\n private async _handleSelectDates(newSelectedDates: Date[]) {\n newSelectedDates.sort((a: Date, b: Date) => a.getTime() - b.getTime());\n this.displayDate = newSelectedDates[0];\n this.focusedDate = newSelectedDates[0];\n this.selectedDateRange = newSelectedDates;\n // Get the formattedDate value for the selected dates\n const formattedDate = this._makeInputValueString(\n this.selectedDateRange[0],\n this.selectedDateRange[1],\n this.dateFormat\n );\n\n // Set formattedDate value as the new value for sgds-input\n this.value = formattedDate;\n const input = await this.datepickerInputAsync;\n input.updateMaskValue();\n this._manageInternalsValid();\n }\n\n private async _handleSelectDatesAndClose(event: CustomEvent<Date[]>) {\n await this._handleSelectDates(event.detail);\n\n if (this.mode === \"range\" && this.selectedDateRange.length === 2) {\n this.hideMenu();\n } else if (this.mode === \"single\" && this.selectedDateRange.length === 1) {\n this.hideMenu();\n }\n }\n\n /** update latest view state from datepicker-header */\n private _handleViewChanged(event: CustomEvent<string>) {\n this.view = event.detail as ViewEnum;\n }\n\n private _handleDateChanged(event: CustomEvent<Date>) {\n this.displayDate = event.detail;\n }\n private _handleFocusDateChanged(event: CustomEvent<Date>) {\n this.focusedDate = event.detail;\n }\n\n private _handleSelectMonth(event: CustomEvent<Date>) {\n this.displayDate = event.detail;\n }\n\n private _handleSelectYear(event: CustomEvent<Date>) {\n this.displayDate = event.detail;\n }\n private async _handleInvalidInput() {\n this.selectedDateRange = [];\n this.displayDate = this.initialDisplayDate;\n this.invalid = true;\n this._manageInternalsBadInput();\n }\n private async _handleEmptyInput() {\n if (this.required) {\n this._manageEmptyInput();\n }\n return;\n }\n private async _resetDatepicker(resetValue = \"\") {\n this.displayDate = this.initialDisplayDate;\n this.selectedDateRange = [];\n this.value = resetValue;\n this.view = \"days\";\n const input = await this.datepickerInputAsync;\n input.setInvalid(false);\n input.destroyInputMask();\n await input.applyInputMask();\n\n this._mixinResetValidity(input);\n if (this.isValueEmpty()) {\n this._handleEmptyInput();\n }\n }\n\n private _manageInternalsBadInput() {\n this._mixinSetValidity(\n {\n badInput: true\n },\n \"Invalid date input\",\n this.datepickerInput\n );\n }\n /**\n * Even though element internals handles the required constraint validation. This custom one is still needed as\n * datepicker input has a special case where the default input mask \"DD/MM/YYYY\" means an empty input.\n * However, the required constraint validation sees \"DD/MM/YYYY\" as a non-empty input.\n */\n private _manageEmptyInput() {\n this._mixinSetValidity(\n {\n valueMissing: true\n },\n \"Please fill in this field\",\n this.datepickerInput\n );\n }\n\n /**\n * Called when a valid date is entered via input or selected by calendar\n * 1. sets validity state to valid\n * 2. updates invalid prop\n * 3. sets the form value of datepicker\n */\n private _manageInternalsValid() {\n this._mixinSetValidity({});\n this.invalid = this.datepickerInput.invalid = false;\n this._mixinSetFormValue();\n }\n\n /**\n * Handles the form \"reset\" event\n */\n private async _mixinResetFormControl() {\n this._resetDatepicker(this.defaultValue);\n }\n private async _handleInputMaskChange(e: CustomEvent) {\n this.value = e.detail;\n\n if (this.isValueEmpty()) {\n this._resetDatepicker();\n }\n }\n\n private _dialogAriaLabels = {\n days: \"Choose date\",\n months: \"Choose month\",\n years: \"Choose year\"\n };\n\n render() {\n return html`\n <div class=\"datepicker-container\">\n <sgds-datepicker-input\n .value=${live(this.value)}\n ?required=${this.required}\n ?disabled=${this.disabled}\n placeholder=${this.mode === \"single\" ? \"DD/MM/YYYY\" : \"DD/MM/YYYY - DD/MM/YYYY\"}\n mode=${this.mode}\n invalidFeedback=${ifDefined(this.invalidFeedback ? this.invalidFeedback : this._mixinGetValidationMessage())}\n @sgds-mask-input-change=${this._handleInputMaskChange}\n @sgds-invalid-input=${this._handleInvalidInput}\n minDate=${this.minDate}\n maxDate=${this.maxDate}\n label=${this.label}\n hintText=${this.hintText}\n name=${this.name}\n ?invalid=${this.invalid}\n hasFeedback=${ifDefined(this.hasFeedback ? \"both\" : undefined)}\n >\n </sgds-datepicker-input>\n <sgds-icon-button\n ${ref(this.myDropdown)}\n role=\"button\"\n class=${classMap({\n \"calendar-btn\": true,\n \"with-hint-text\": this.hintText || this.invalid,\n \"with-label\": this.label\n })}\n aria-expanded=\"${this.menuIsOpen}\"\n aria-haspopup=\"dialog\"\n aria-controls=${this.dropdownMenuId}\n @click=${() => this.toggleMenu()}\n ariaLabel=${this.menuIsOpen ? \"Close Calendar\" : \"Open Calendar\"}\n ?disabled=${this.disabled}\n variant=\"outline\"\n name=\"calendar\"\n >\n </sgds-icon-button>\n <ul\n id=${this.dropdownMenuId}\n class=\"sgds datepicker dropdown-menu\"\n role=\"dialog\"\n aria-label=${this._dialogAriaLabels[this.view]}\n @click=${(event: MouseEvent) => event.stopPropagation()}\n >\n <sgds-datepicker-header\n .view=${this.view}\n .displayDate=${this.displayDate}\n .focusedDate=${this.focusedDate}\n .selectedDate=${this.selectedDateRange}\n .focusedTabIndex=${this.focusedTabIndex}\n ></sgds-datepicker-header>\n <sgds-datepicker-calendar\n .show=${this.menuIsOpen}\n .view=${this.view}\n .displayDate=${this.displayDate}\n .mode=${this.mode}\n minDate=${this.minDate}\n maxDate=${this.maxDate}\n .selectedDate=${this.selectedDateRange}\n .focusedTabIndex=${this.focusedTabIndex}\n ></sgds-datepicker-calendar>\n </ul>\n </div>\n `;\n }\n}\n\nexport default SgdsDatepicker;\n"],"names":["dropdownMenuStyle","datepickerStyle"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAwBA;;;;;;;;AAQG;MACU,cAAe,SAAQ,sBAAsB,CAAC,eAAe,CAAC,CAAA;AAA3E,IAAA,WAAA,GAAA;;;QAY8C,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;;QAIjB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAE7D;;;AAGG;QACwC,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;AAEtD;;;;;AAKK;QACqC,IAAY,CAAA,YAAA,GAAa,EAAE,CAAC;QAE9D,IAAU,CAAA,UAAA,GAAG,YAAY,CAAC;;QAGN,IAAO,CAAA,OAAA,GAAG,EAAE,CAAC;;QAGb,IAAO,CAAA,OAAA,GAAG,EAAE,CAAC;;QAGE,IAAI,CAAA,IAAA,GAAuB,QAAQ,CAAC;;QAMnC,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;;QAGnC,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;;QAGX,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAC;;QAI3C,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;;QAIf,IAAI,CAAA,IAAA,GAAkB,MAAM,CAAC;;QAO7B,IAAY,CAAA,YAAA,GAAG,EAAE,CAAC;;QAGT,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;QAGjB,IAAI,CAAA,IAAA,GAAa,MAAM,CAAC;QAEf,IAAiB,CAAA,iBAAA,GAAW,EAAE,CAAC;QAI/B,IAAe,CAAA,eAAA,GAAG,CAAC,CAAC;AAM7B,QAAA,IAAA,CAAA,kBAAkB,GAAS,IAAI,IAAI,EAAE,CAAC;QAkJtC,IAAqB,CAAA,qBAAA,GAAG,CAAC,SAAe,EAAE,OAAa,EAAE,UAAkB,KAAI;AACrF,YAAA,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO;gBAAE,OAAO,IAAI,CAAC,KAAK,CAAC;AAC9C,YAAA,MAAM,UAAU,GAAG,CAAC,IAAU,KAAK,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC;AACtF,YAAA,QAAQ,IAAI,CAAC,IAAI;gBACf,KAAK,QAAQ,EAAE;oBACb,IAAI,SAAS,EAAE;AACb,wBAAA,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;qBACpC;oBACD,MAAM;iBACP;gBACD,KAAK,OAAO,EAAE;AACZ,oBAAA,IAAI,SAAS,IAAI,OAAO,EAAE;AACxB,wBAAA,IAAI,CAAC,KAAK,GAAG,CAAA,EAAG,UAAU,CAAC,SAAS,CAAC,CAAA,GAAA,EAAM,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;qBAClE;AACD,oBAAA,IAAI,SAAS,IAAI,CAAC,OAAO,EAAE;AACzB,wBAAA,IAAI,CAAC,KAAK,GAAG,CAAA,EAAG,UAAU,CAAC,SAAS,CAAC,CAAM,GAAA,EAAA,IAAI,CAAC,UAAU,EAAE,CAAC;qBAC9D;oBACD,MAAM;iBACP;aACF;YACD,OAAO,IAAI,CAAC,KAAK,CAAC;AACpB,SAAC,CAAC;AAkIM,QAAA,IAAA,CAAA,iBAAiB,GAAG;AAC1B,YAAA,IAAI,EAAE,aAAa;AACnB,YAAA,MAAM,EAAE,cAAc;AACtB,YAAA,KAAK,EAAE,aAAa;SACrB,CAAC;KAqEH;IAtXS,YAAY,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,KAAK,KAAK,EAAE,IAAI,IAAI,CAAC,KAAK,KAAK,YAAY,IAAI,IAAI,CAAC,KAAK,KAAK,yBAAyB,CAAC;KACrG;AAYD;;;AAGG;IACI,cAAc,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,oBAAoB,EAAE,CAAC;KACpC;AACD;;AAEG;IACI,aAAa,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,mBAAmB,EAAE,CAAC;KACnC;AAED;;AAEG;AACH,IAAA,IAAW,QAAQ,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC;KACjC;AACD;;AAEG;AACH,IAAA,IAAW,iBAAiB,GAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,0BAA0B,EAAE,CAAC;KAC1C;AAED,IAAA,MAAM,iBAAiB,GAAA;QACrB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG;AACjB,YAAA;AACE,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,OAAO,EAAE;AACP,oBAAA,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACf,iBAAA;AACF,aAAA;SACF,CAAC;QACF,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC5D,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACvE,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACzE,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACnE,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACjE,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAC3E,IAAI,CAAC,gBAAgB,CAAC,wBAAwB,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAC9E,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAClE,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC1D,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QACzD,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;AAExD,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;QAChG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,IAAI,EAAE,CAAC;AACzD,QAAA,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;;YAErD,MAAM,eAAe,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;;YAE/D,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7E,YAAA,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC3B,OAAO,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,YAAY,CAAC,CAAC;aAC5E;iBAAM;AACL,gBAAA,MAAM,oBAAoB,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAClD,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,CAC/E,CAAC;AACF,gBAAA,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;aAC/C;SACF;aAAM;AACL,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC;SAC5C;KACF;AAED,IAAA,MAAM,YAAY,GAAA;QAChB,KAAK,CAAC,YAAY,EAAE,CAAC;AACrB,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC;YAC9C,IAAI,CAAC,QAAQ,EAAE,CAAC;AAChB,YAAA,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC;AAChC,YAAA,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;SAC5B;KACF;;IAGO,mBAAmB,GAAA;;QAEzB,QACE,IAAI,CAAC,UAAU;;AAEZ,aAAA,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC;;AAEtC,aAAA,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;;AAEvB,aAAA,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;;AAEvB,aAAA,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC;;AAEzB,aAAA,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,EACtB;KACH;AACO,IAAA,UAAU,CAAC,KAAoB,EAAA;AACrC,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,OAAO;SACR;AACD,QAAA,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,EAAE;YACzC,KAAK,CAAC,cAAc,EAAE,CAAC;AACvB,YAAA,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,GAAG,aAAa,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC;SACjG;AAAM,aAAA,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,EAAE;YAC9B,KAAK,CAAC,cAAc,EAAE,CAAC;AACvB,YAAA,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,GAAG,aAAa,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC;SACjG;KACF;IAGD,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;KAC/B;AAEO,IAAA,MAAM,gBAAgB,GAAA;;AAE5B,QAAA,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC;QAC9C,KAAK,CAAC,KAAK,EAAE,CAAC;QAEd,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE;AACvC,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC;SAC5C;aAAM;AACL,YAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;YAC1D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC;AACnE,YAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC;YACrC,QAAQ,CAAC,kBAAkB,EAAE,CAAC;SAC/B;KACF;AACO,IAAA,MAAM,eAAe,GAAA;AAC3B,QAAA,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC;AAChC,QAAA,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC;AAC9C,QAAA,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;KAC5B;AAwBO,IAAA,uBAAuB,CAAC,KAA0B,EAAA;AACxD,QAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;KACvC;IACO,MAAM,kBAAkB,CAAC,gBAAwB,EAAA;QACvD,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAO,EAAE,CAAO,KAAK,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AACvE,QAAA,IAAI,CAAC,WAAW,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;AACvC,QAAA,IAAI,CAAC,WAAW,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;AACvC,QAAA,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;;QAE1C,MAAM,aAAa,GAAG,IAAI,CAAC,qBAAqB,CAC9C,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,EACzB,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,EACzB,IAAI,CAAC,UAAU,CAChB,CAAC;;AAGF,QAAA,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC;AAC3B,QAAA,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC;QAC9C,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;IAEO,MAAM,0BAA0B,CAAC,KAA0B,EAAA;QACjE,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAE5C,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE;YAChE,IAAI,CAAC,QAAQ,EAAE,CAAC;SACjB;AAAM,aAAA,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE;YACxE,IAAI,CAAC,QAAQ,EAAE,CAAC;SACjB;KACF;;AAGO,IAAA,kBAAkB,CAAC,KAA0B,EAAA;AACnD,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,MAAkB,CAAC;KACtC;AAEO,IAAA,kBAAkB,CAAC,KAAwB,EAAA;AACjD,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;KACjC;AACO,IAAA,uBAAuB,CAAC,KAAwB,EAAA;AACtD,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;KACjC;AAEO,IAAA,kBAAkB,CAAC,KAAwB,EAAA;AACjD,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;KACjC;AAEO,IAAA,iBAAiB,CAAC,KAAwB,EAAA;AAChD,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;KACjC;AACO,IAAA,MAAM,mBAAmB,GAAA;AAC/B,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;AAC5B,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC;AAC3C,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,wBAAwB,EAAE,CAAC;KACjC;AACO,IAAA,MAAM,iBAAiB,GAAA;AAC7B,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC1B;QACD,OAAO;KACR;AACO,IAAA,MAAM,gBAAgB,CAAC,UAAU,GAAG,EAAE,EAAA;AAC5C,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC;AAC3C,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;AAC5B,QAAA,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;AACxB,QAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;AACnB,QAAA,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC;AAC9C,QAAA,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACxB,KAAK,CAAC,gBAAgB,EAAE,CAAC;AACzB,QAAA,MAAM,KAAK,CAAC,cAAc,EAAE,CAAC;AAE7B,QAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAChC,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;YACvB,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC1B;KACF;IAEO,wBAAwB,GAAA;QAC9B,IAAI,CAAC,iBAAiB,CACpB;AACE,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA,EACD,oBAAoB,EACpB,IAAI,CAAC,eAAe,CACrB,CAAC;KACH;AACD;;;;AAIG;IACK,iBAAiB,GAAA;QACvB,IAAI,CAAC,iBAAiB,CACpB;AACE,YAAA,YAAY,EAAE,IAAI;AACnB,SAAA,EACD,2BAA2B,EAC3B,IAAI,CAAC,eAAe,CACrB,CAAC;KACH;AAED;;;;;AAKG;IACK,qBAAqB,GAAA;AAC3B,QAAA,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,GAAG,KAAK,CAAC;QACpD,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;AAED;;AAEG;AACK,IAAA,MAAM,sBAAsB,GAAA;AAClC,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KAC1C;IACO,MAAM,sBAAsB,CAAC,CAAc,EAAA;AACjD,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC;AAEtB,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;YACvB,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACzB;KACF;IAQD,MAAM,GAAA;AACJ,QAAA,OAAO,IAAI,CAAA,CAAA;;;AAGI,iBAAA,EAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AACb,oBAAA,EAAA,IAAI,CAAC,QAAQ,CAAA;AACb,oBAAA,EAAA,IAAI,CAAC,QAAQ,CAAA;wBACX,IAAI,CAAC,IAAI,KAAK,QAAQ,GAAG,YAAY,GAAG,yBAAyB,CAAA;AACxE,eAAA,EAAA,IAAI,CAAC,IAAI,CAAA;AACE,0BAAA,EAAA,SAAS,CAAC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,0BAA0B,EAAE,CAAC,CAAA;AAClF,kCAAA,EAAA,IAAI,CAAC,sBAAsB,CAAA;AAC/B,8BAAA,EAAA,IAAI,CAAC,mBAAmB,CAAA;AACpC,kBAAA,EAAA,IAAI,CAAC,OAAO,CAAA;AACZ,kBAAA,EAAA,IAAI,CAAC,OAAO,CAAA;AACd,gBAAA,EAAA,IAAI,CAAC,KAAK,CAAA;AACP,mBAAA,EAAA,IAAI,CAAC,QAAQ,CAAA;AACjB,eAAA,EAAA,IAAI,CAAC,IAAI,CAAA;AACL,mBAAA,EAAA,IAAI,CAAC,OAAO,CAAA;AACT,sBAAA,EAAA,SAAS,CAAC,IAAI,CAAC,WAAW,GAAG,MAAM,GAAG,SAAS,CAAC,CAAA;;;;AAI5D,UAAA,EAAA,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;;AAEd,gBAAA,EAAA,QAAQ,CAAC;AACf,YAAA,cAAc,EAAE,IAAI;AACpB,YAAA,gBAAgB,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO;YAC/C,YAAY,EAAE,IAAI,CAAC,KAAK;SACzB,CAAC,CAAA;AACe,yBAAA,EAAA,IAAI,CAAC,UAAU,CAAA;;AAEhB,wBAAA,EAAA,IAAI,CAAC,cAAc,CAAA;AAC1B,iBAAA,EAAA,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;sBACpB,IAAI,CAAC,UAAU,GAAG,gBAAgB,GAAG,eAAe,CAAA;AACpD,oBAAA,EAAA,IAAI,CAAC,QAAQ,CAAA;;;;;;AAMpB,aAAA,EAAA,IAAI,CAAC,cAAc,CAAA;;;AAGX,qBAAA,EAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACrC,iBAAA,EAAA,CAAC,KAAiB,KAAK,KAAK,CAAC,eAAe,EAAE,CAAA;;;AAG7C,kBAAA,EAAA,IAAI,CAAC,IAAI,CAAA;AACF,yBAAA,EAAA,IAAI,CAAC,WAAW,CAAA;AAChB,yBAAA,EAAA,IAAI,CAAC,WAAW,CAAA;AACf,0BAAA,EAAA,IAAI,CAAC,iBAAiB,CAAA;AACnB,6BAAA,EAAA,IAAI,CAAC,eAAe,CAAA;;;AAG/B,kBAAA,EAAA,IAAI,CAAC,UAAU,CAAA;AACf,kBAAA,EAAA,IAAI,CAAC,IAAI,CAAA;AACF,yBAAA,EAAA,IAAI,CAAC,WAAW,CAAA;AACvB,kBAAA,EAAA,IAAI,CAAC,IAAI,CAAA;AACP,oBAAA,EAAA,IAAI,CAAC,OAAO,CAAA;AACZ,oBAAA,EAAA,IAAI,CAAC,OAAO,CAAA;AACN,0BAAA,EAAA,IAAI,CAAC,iBAAiB,CAAA;AACnB,6BAAA,EAAA,IAAI,CAAC,eAAe,CAAA;;;;KAI9C,CAAC;KACH;;AAtcM,cAAA,CAAA,MAAM,GAAG,CAAC,GAAG,eAAe,CAAC,MAAM,EAAEA,QAAiB,EAAEC,UAAe,CAAjE,CAAmE;AAChF;AACO,cAAA,CAAA,YAAY,GAAG;AACpB,IAAA,uBAAuB,EAAE,eAAe;AACxC,IAAA,0BAA0B,EAAE,kBAAkB;AAC9C,IAAA,wBAAwB,EAAE,gBAAgB;AAC1C,IAAA,aAAa,EAAE,UAAU;AACzB,IAAA,kBAAkB,EAAE,cAAc;AACnC,CANkB,CAMjB;AAG0C,UAAA,CAAA;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAAkB,CAAA,EAAA,cAAA,CAAA,SAAA,EAAA,UAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAEhC,UAAA,CAAA;AAA5B,IAAA,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAAc,CAAA,EAAA,cAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAEE,UAAA,CAAA;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAAkB,CAAA,EAAA,cAAA,CAAA,SAAA,EAAA,UAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAMlB,UAAA,CAAA;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAAY,CAAA,EAAA,cAAA,CAAA,SAAA,EAAA,OAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAQZ,UAAA,CAAA;IAAzC,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAA6B,CAAA,EAAA,cAAA,CAAA,SAAA,EAAA,cAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAK1C,UAAA,CAAA;AAA3B,IAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAAc,CAAA,EAAA,cAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAGb,UAAA,CAAA;AAA3B,IAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAAc,CAAA,EAAA,cAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAGE,UAAA,CAAA;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAAqC,CAAA,EAAA,cAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAGpC,UAAA,CAAA;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAAyB,CAAA,EAAA,cAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAGvB,UAAA,CAAA;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAAqB,CAAA,EAAA,cAAA,CAAA,SAAA,EAAA,aAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAGnC,UAAA,CAAA;AAA5B,IAAA,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAAY,CAAA,EAAA,cAAA,CAAA,SAAA,EAAA,OAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAGX,UAAA,CAAA;AAA5B,IAAA,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAAe,CAAA,EAAA,cAAA,CAAA,SAAA,EAAA,UAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAI3C,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC1C,CAAA,EAAA,cAAA,CAAA,SAAA,EAAA,QAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAIf,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC3B,CAAA,EAAA,cAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAGG,UAAA,CAAA;AAA/B,IAAA,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAAmB,CAAA,EAAA,cAAA,CAAA,SAAA,EAAA,aAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAIlD,UAAA,CAAA;AADC,IAAA,YAAY,EAAE;AACG,CAAA,EAAA,cAAA,CAAA,SAAA,EAAA,cAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAGT,UAAA,CAAA;AAAR,IAAA,KAAK,EAAE;AAAiB,CAAA,EAAA,cAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAGjB,UAAA,CAAA;AADP,IAAA,KAAK,EAAE;AACwB,CAAA,EAAA,cAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAEf,UAAA,CAAA;AAAhB,IAAA,KAAK,EAAE;AAAwC,CAAA,EAAA,cAAA,CAAA,SAAA,EAAA,mBAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAE/B,UAAA,CAAA;AAAhB,IAAA,KAAK,EAAE;AAA2B,CAAA,EAAA,cAAA,CAAA,SAAA,EAAA,aAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAElB,UAAA,CAAA;AAAhB,IAAA,KAAK,EAAE;AAA6B,CAAA,EAAA,cAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAS7B,UAAA,CAAA;IADP,UAAU,CAAC,0BAA0B,CAAC;AACO,CAAA,EAAA,cAAA,CAAA,SAAA,EAAA,UAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAGtC,UAAA,CAAA;IADP,UAAU,CAAC,uBAAuB,CAAC;AACmB,CAAA,EAAA,cAAA,CAAA,SAAA,EAAA,sBAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAG/C,UAAA,CAAA;IADP,KAAK,CAAC,uBAAuB,CAAC;AACU,CAAA,EAAA,cAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAiHzC,UAAA,CAAA;IADC,KAAK,CAAC,OAAO,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC;AAG9C,CAAA,EAAA,cAAA,CAAA,SAAA,EAAA,oBAAA,EAAA,IAAA,CAAA;;;;"}
@@ -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`.dropdown-item{align-items:center;background-color:var(--sgds-bg-transparent);clear:both;color:var(--sgds-color-default);cursor:pointer;display:flex;gap:var(--sgds-gap-sm);padding:var(--sgds-padding-sm) var(--sgds-padding-lg);text-align:inherit;white-space:nowrap}.dropdown-item:not(.nav-link):hover{background-color:var(--sgds-bg-translucent-subtle)}.dropdown-item:not(.nav-link):focus,.dropdown-item:not(.nav-link):focus-visible{background-color:var(--sgds-bg-translucent-subtle);box-shadow:inset var(--sgds-form-box-shadow-focus);outline:0}.dropdown-item:not(.nav-link).active{background-color:var(--sgds-bg-translucent-subtle);color:var(--sgds-primary-color-default);text-decoration:none}.dropdown-item.disabled,.dropdown-item:disabled{opacity:var(--sgds-opacity-50);pointer-events:none}::slotted(*){color:inherit!important;display:flex;gap:var(--sgds-gap-sm);text-decoration:none!important}.nav-link{gap:var(--sgds-gap-xs);padding:var(--sgds-padding-sm) var(--sgds-mainnav-padding-x)}.nav-link:hover{color:var(--sgds-primary-color-default)}.nav-link:focus,.nav-link:focus-visible{outline:0}.nav-link:focus-visible{box-shadow:var(--sgds-box-shadow-focus) inset;color:var(--sgds-primary-color-default)}.nav-link.active{background-color:var(--sgds-bg-translucent-subtle);color:var(--sgds-primary-color-default)}`;
8
+ var css_248z = lit.css`.dropdown-item{align-items:center;background-color:var(--sgds-bg-transparent);clear:both;color:var(--sgds-color-default);cursor:pointer;display:flex;gap:var(--sgds-gap-sm);padding:var(--sgds-padding-sm) var(--sgds-padding-lg);text-align:inherit}.dropdown-item:not(.nav-link):hover{background-color:var(--sgds-bg-translucent-subtle)}.dropdown-item:not(.nav-link):focus,.dropdown-item:not(.nav-link):focus-visible{background-color:var(--sgds-bg-translucent-subtle);box-shadow:inset var(--sgds-form-box-shadow-focus);outline:0}.dropdown-item:not(.nav-link).active{background-color:var(--sgds-bg-translucent-subtle);color:var(--sgds-primary-color-default);text-decoration:none}.dropdown-item.disabled,.dropdown-item:disabled{opacity:var(--sgds-opacity-50);pointer-events:none}::slotted(*){color:inherit!important;display:flex;gap:var(--sgds-gap-sm);text-decoration:none!important}.nav-link{gap:var(--sgds-gap-xs);padding:var(--sgds-padding-sm) var(--sgds-mainnav-padding-x)}.nav-link:hover{color:var(--sgds-primary-color-default)}.nav-link:focus,.nav-link:focus-visible{outline:0}.nav-link:focus-visible{box-shadow:var(--sgds-box-shadow-focus) inset;color:var(--sgds-primary-color-default)}.nav-link.active{background-color:var(--sgds-bg-translucent-subtle);color:var(--sgds-primary-color-default)}`;
9
9
 
10
10
  exports["default"] = css_248z;
11
11
  //# sourceMappingURL=dropdown-item.cjs.js.map
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import { css } from 'lit';
3
3
 
4
- var css_248z = css`.dropdown-item{align-items:center;background-color:var(--sgds-bg-transparent);clear:both;color:var(--sgds-color-default);cursor:pointer;display:flex;gap:var(--sgds-gap-sm);padding:var(--sgds-padding-sm) var(--sgds-padding-lg);text-align:inherit;white-space:nowrap}.dropdown-item:not(.nav-link):hover{background-color:var(--sgds-bg-translucent-subtle)}.dropdown-item:not(.nav-link):focus,.dropdown-item:not(.nav-link):focus-visible{background-color:var(--sgds-bg-translucent-subtle);box-shadow:inset var(--sgds-form-box-shadow-focus);outline:0}.dropdown-item:not(.nav-link).active{background-color:var(--sgds-bg-translucent-subtle);color:var(--sgds-primary-color-default);text-decoration:none}.dropdown-item.disabled,.dropdown-item:disabled{opacity:var(--sgds-opacity-50);pointer-events:none}::slotted(*){color:inherit!important;display:flex;gap:var(--sgds-gap-sm);text-decoration:none!important}.nav-link{gap:var(--sgds-gap-xs);padding:var(--sgds-padding-sm) var(--sgds-mainnav-padding-x)}.nav-link:hover{color:var(--sgds-primary-color-default)}.nav-link:focus,.nav-link:focus-visible{outline:0}.nav-link:focus-visible{box-shadow:var(--sgds-box-shadow-focus) inset;color:var(--sgds-primary-color-default)}.nav-link.active{background-color:var(--sgds-bg-translucent-subtle);color:var(--sgds-primary-color-default)}`;
4
+ var css_248z = css`.dropdown-item{align-items:center;background-color:var(--sgds-bg-transparent);clear:both;color:var(--sgds-color-default);cursor:pointer;display:flex;gap:var(--sgds-gap-sm);padding:var(--sgds-padding-sm) var(--sgds-padding-lg);text-align:inherit}.dropdown-item:not(.nav-link):hover{background-color:var(--sgds-bg-translucent-subtle)}.dropdown-item:not(.nav-link):focus,.dropdown-item:not(.nav-link):focus-visible{background-color:var(--sgds-bg-translucent-subtle);box-shadow:inset var(--sgds-form-box-shadow-focus);outline:0}.dropdown-item:not(.nav-link).active{background-color:var(--sgds-bg-translucent-subtle);color:var(--sgds-primary-color-default);text-decoration:none}.dropdown-item.disabled,.dropdown-item:disabled{opacity:var(--sgds-opacity-50);pointer-events:none}::slotted(*){color:inherit!important;display:flex;gap:var(--sgds-gap-sm);text-decoration:none!important}.nav-link{gap:var(--sgds-gap-xs);padding:var(--sgds-padding-sm) var(--sgds-mainnav-padding-x)}.nav-link:hover{color:var(--sgds-primary-color-default)}.nav-link:focus,.nav-link:focus-visible{outline:0}.nav-link:focus-visible{box-shadow:var(--sgds-box-shadow-focus) inset;color:var(--sgds-primary-color-default)}.nav-link.active{background-color:var(--sgds-bg-translucent-subtle);color:var(--sgds-primary-color-default)}`;
5
5
 
6
6
  export { css_248z as default };
7
7
  //# sourceMappingURL=dropdown-item.js.map
@@ -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`slot{display:flex;flex-direction:column;gap:var(--sgds-gap-xs)}slot::slotted(*){align-items:center;display:flex;gap:var(--sgds-gap-xs)}.sm{font-size:var(--sgds-font-size-1)}.lg{font-size:var(--sgds-font-size-3)}`;
8
+ var css_248z = lit.css`slot{display:flex;flex-direction:column;gap:var(--sgds-gap-xs)}slot::slotted(*){align-items:flex-start;display:flex;gap:var(--sgds-gap-xs)}.sm{font-size:var(--sgds-font-size-1)}.lg{font-size:var(--sgds-font-size-3)}`;
9
9
 
10
10
  exports["default"] = css_248z;
11
11
  //# sourceMappingURL=icon-list.cjs.js.map
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import { css } from 'lit';
3
3
 
4
- var css_248z = css`slot{display:flex;flex-direction:column;gap:var(--sgds-gap-xs)}slot::slotted(*){align-items:center;display:flex;gap:var(--sgds-gap-xs)}.sm{font-size:var(--sgds-font-size-1)}.lg{font-size:var(--sgds-font-size-3)}`;
4
+ var css_248z = css`slot{display:flex;flex-direction:column;gap:var(--sgds-gap-xs)}slot::slotted(*){align-items:flex-start;display:flex;gap:var(--sgds-gap-xs)}.sm{font-size:var(--sgds-font-size-1)}.lg{font-size:var(--sgds-font-size-3)}`;
5
5
 
6
6
  export { css_248z as default };
7
7
  //# sourceMappingURL=icon-list.js.map
@@ -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{border-color:var(--sgds-border-color-muted)}.form-control-group:not(.disabled):not(.is-invalid):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{border-color:var(--sgds-border-color-muted)}.form-control-group:not(.disabled):not(.is-invalid):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);