@govtechsg/sgds-web-component 3.0.0-rc.0 → 3.0.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (491) hide show
  1. package/Masthead/index.js +1 -1
  2. package/README.md +5 -5
  3. package/base/button.js +1 -1
  4. package/base/form-control-element.d.ts +4 -11
  5. package/base/form-control-element.js +13 -23
  6. package/base/form-control-element.js.map +1 -1
  7. package/components/Accordion/accordion-item.js +1 -1
  8. package/components/Accordion/index.umd.js +7 -19
  9. package/components/Accordion/index.umd.js.map +1 -1
  10. package/components/Accordion/sgds-accordion-item.d.ts +3 -7
  11. package/components/Accordion/sgds-accordion-item.js +6 -18
  12. package/components/Accordion/sgds-accordion-item.js.map +1 -1
  13. package/components/ActionCard/index.umd.js +407 -329
  14. package/components/ActionCard/index.umd.js.map +1 -1
  15. package/components/Alert/alert.js +1 -1
  16. package/components/Alert/index.umd.js +553 -485
  17. package/components/Alert/index.umd.js.map +1 -1
  18. package/components/Alert/sgds-alert.d.ts +2 -2
  19. package/components/Alert/sgds-alert.js +6 -13
  20. package/components/Alert/sgds-alert.js.map +1 -1
  21. package/components/Badge/badge.js +1 -1
  22. package/components/Badge/index.umd.js +9 -10
  23. package/components/Badge/index.umd.js.map +1 -1
  24. package/components/Badge/sgds-badge.d.ts +4 -5
  25. package/components/Badge/sgds-badge.js +6 -7
  26. package/components/Badge/sgds-badge.js.map +1 -1
  27. package/components/Button/index.umd.js +8 -81
  28. package/components/Button/index.umd.js.map +1 -1
  29. package/components/Button/sgds-button.js +1 -1
  30. package/components/Button/sgds-button.js.map +1 -1
  31. package/components/Checkbox/checkbox.js +1 -1
  32. package/components/Checkbox/index.umd.js +541 -475
  33. package/components/Checkbox/index.umd.js.map +1 -1
  34. package/components/Checkbox/sgds-checkbox-group.d.ts +7 -1
  35. package/components/Checkbox/sgds-checkbox-group.js +15 -4
  36. package/components/Checkbox/sgds-checkbox-group.js.map +1 -1
  37. package/components/Checkbox/sgds-checkbox.d.ts +30 -21
  38. package/components/Checkbox/sgds-checkbox.js +77 -60
  39. package/components/Checkbox/sgds-checkbox.js.map +1 -1
  40. package/components/ComboBox/index.umd.js +385 -216
  41. package/components/ComboBox/index.umd.js.map +1 -1
  42. package/components/Datepicker/datepicker-input.d.ts +4 -2
  43. package/components/Datepicker/datepicker-input.js +24 -7
  44. package/components/Datepicker/datepicker-input.js.map +1 -1
  45. package/components/Datepicker/index.umd.js +433 -244
  46. package/components/Datepicker/index.umd.js.map +1 -1
  47. package/components/Datepicker/sgds-datepicker.d.ts +1 -1
  48. package/components/Datepicker/sgds-datepicker.js.map +1 -1
  49. package/components/Drawer/index.umd.js +2 -2
  50. package/components/Drawer/index.umd.js.map +1 -1
  51. package/components/Dropdown/index.umd.js +8 -81
  52. package/components/Dropdown/index.umd.js.map +1 -1
  53. package/components/FileUpload/file-upload.js +1 -1
  54. package/components/FileUpload/index.umd.js +579 -272
  55. package/components/FileUpload/index.umd.js.map +1 -1
  56. package/components/FileUpload/sgds-file-upload.d.ts +42 -30
  57. package/components/FileUpload/sgds-file-upload.js +147 -103
  58. package/components/FileUpload/sgds-file-upload.js.map +1 -1
  59. package/components/Footer/footer-item.js +6 -0
  60. package/components/Footer/footer-item.js.map +1 -0
  61. package/components/Footer/footer.js +1 -1
  62. package/components/Footer/index.d.ts +2 -0
  63. package/components/Footer/index.js +2 -0
  64. package/components/Footer/index.js.map +1 -1
  65. package/components/Footer/index.umd.js +93 -94
  66. package/components/Footer/index.umd.js.map +1 -1
  67. package/components/Footer/sgds-footer-item.d.ts +13 -0
  68. package/components/Footer/sgds-footer-item.js +27 -0
  69. package/components/Footer/sgds-footer-item.js.map +1 -0
  70. package/components/Footer/sgds-footer.d.ts +9 -30
  71. package/components/Footer/sgds-footer.js +65 -90
  72. package/components/Footer/sgds-footer.js.map +1 -1
  73. package/components/Icon/icon.js +6 -0
  74. package/components/Icon/icon.js.map +1 -0
  75. package/components/Icon/index.d.ts +6 -0
  76. package/components/Icon/index.js +4 -0
  77. package/components/Icon/index.js.map +1 -0
  78. package/components/Icon/index.umd.js +4389 -0
  79. package/components/Icon/index.umd.js.map +1 -0
  80. package/components/Icon/sgds-icon.d.ts +21 -0
  81. package/components/Icon/sgds-icon.js +64 -0
  82. package/components/Icon/sgds-icon.js.map +1 -0
  83. package/components/IconButton/icon-button.js +1 -1
  84. package/components/IconButton/index.umd.js +6 -9
  85. package/components/IconButton/index.umd.js.map +1 -1
  86. package/components/IconButton/sgds-icon-button.d.ts +2 -2
  87. package/components/IconButton/sgds-icon-button.js +4 -9
  88. package/components/IconButton/sgds-icon-button.js.map +1 -1
  89. package/components/Input/index.umd.js +1734 -1376
  90. package/components/Input/index.umd.js.map +1 -1
  91. package/components/Input/sgds-input.d.ts +41 -21
  92. package/components/Input/sgds-input.js +103 -66
  93. package/components/Input/sgds-input.js.map +1 -1
  94. package/components/Masthead/index.umd.js +1 -1
  95. package/components/Masthead/masthead.js +1 -1
  96. package/components/Modal/index.umd.js +2 -2
  97. package/components/Modal/index.umd.js.map +1 -1
  98. package/components/QuantityToggle/index.umd.js +894 -316
  99. package/components/QuantityToggle/index.umd.js.map +1 -1
  100. package/components/QuantityToggle/sgds-quantity-toggle.d.ts +42 -15
  101. package/components/QuantityToggle/sgds-quantity-toggle.js +129 -62
  102. package/components/QuantityToggle/sgds-quantity-toggle.js.map +1 -1
  103. package/components/Radio/index.umd.js +516 -203
  104. package/components/Radio/index.umd.js.map +1 -1
  105. package/components/Radio/sgds-radio-group.d.ts +38 -27
  106. package/components/Radio/sgds-radio-group.js +100 -84
  107. package/components/Radio/sgds-radio-group.js.map +1 -1
  108. package/components/Radio/sgds-radio.js +1 -1
  109. package/components/Radio/sgds-radio.js.map +1 -1
  110. package/components/Stepper/index.umd.js +2 -1
  111. package/components/Stepper/index.umd.js.map +1 -1
  112. package/components/Stepper/sgds-stepper.d.ts +1 -0
  113. package/components/Stepper/sgds-stepper.js +1 -0
  114. package/components/Stepper/sgds-stepper.js.map +1 -1
  115. package/components/Stepper/stepper.js +1 -1
  116. package/components/Switch/index.umd.js +21 -321
  117. package/components/Switch/index.umd.js.map +1 -1
  118. package/components/Switch/sgds-switch.js +1 -2
  119. package/components/Switch/sgds-switch.js.map +1 -1
  120. package/components/Textarea/index.umd.js +1554 -1336
  121. package/components/Textarea/index.umd.js.map +1 -1
  122. package/components/Textarea/sgds-textarea.d.ts +33 -22
  123. package/components/Textarea/sgds-textarea.js +78 -75
  124. package/components/Textarea/sgds-textarea.js.map +1 -1
  125. package/components/Textarea/textarea.js +1 -1
  126. package/components/Toast/index.umd.js +9 -21
  127. package/components/Toast/index.umd.js.map +1 -1
  128. package/components/Toast/sgds-toast.d.ts +2 -1
  129. package/components/Toast/sgds-toast.js +6 -18
  130. package/components/Toast/sgds-toast.js.map +1 -1
  131. package/components/Toast/toast.js +1 -1
  132. package/components/Tooltip/index.umd.js +14 -14
  133. package/components/Tooltip/index.umd.js.map +1 -1
  134. package/components/Tooltip/sgds-tooltip.d.ts +4 -7
  135. package/components/Tooltip/sgds-tooltip.js +14 -14
  136. package/components/Tooltip/sgds-tooltip.js.map +1 -1
  137. package/components/index.d.ts +1 -0
  138. package/components/index.js +1 -0
  139. package/components/index.js.map +1 -1
  140. package/components/index.umd.js +1320 -1126
  141. package/components/index.umd.js.map +1 -1
  142. package/css/reboot.css +39 -6
  143. package/css/sgds.css +0 -2
  144. package/icons/arrow-bar-down.svg +3 -0
  145. package/icons/arrow-bar-left.svg +3 -0
  146. package/icons/arrow-bar-right.svg +3 -0
  147. package/icons/arrow-bar-up.svg +3 -0
  148. package/icons/arrow-clockwise.svg +3 -0
  149. package/icons/arrow-down.svg +3 -0
  150. package/icons/arrow-left.svg +3 -0
  151. package/icons/arrow-repeat.svg +3 -0
  152. package/icons/arrow-right.svg +3 -0
  153. package/icons/arrow-up.svg +3 -0
  154. package/icons/bank-fill.svg +3 -0
  155. package/icons/bell-slash.svg +3 -0
  156. package/icons/bell.svg +3 -0
  157. package/icons/bi-funnel.svg +3 -0
  158. package/icons/bookmark-fill.svg +3 -0
  159. package/icons/bookmark.svg +3 -0
  160. package/icons/box-arrow-up-right.svg +3 -0
  161. package/icons/box-seam.svg +3 -0
  162. package/icons/building.svg +3 -0
  163. package/icons/calculator.svg +3 -0
  164. package/icons/calendar-check.svg +4 -0
  165. package/icons/calendar-x.svg +4 -0
  166. package/icons/calendar.svg +3 -0
  167. package/icons/camera.svg +3 -0
  168. package/icons/chat-left-text.svg +3 -0
  169. package/icons/check-circle-fill.svg +3 -0
  170. package/icons/check-circle.svg +3 -0
  171. package/icons/check.svg +3 -0
  172. package/icons/chevron-down.svg +3 -0
  173. package/icons/chevron-left.svg +3 -0
  174. package/icons/chevron-right.svg +3 -0
  175. package/icons/chevron-up .svg +3 -0
  176. package/icons/clock.svg +4 -0
  177. package/icons/cloud-check.svg +4 -0
  178. package/icons/cloud-download.svg +3 -0
  179. package/icons/cloud-upload.svg +3 -0
  180. package/icons/cloud.svg +3 -0
  181. package/icons/compass.svg +4 -0
  182. package/icons/cross.svg +3 -0
  183. package/icons/cursor-fill.svg +3 -0
  184. package/icons/cursor.svg +3 -0
  185. package/icons/dash-circle.svg +3 -0
  186. package/icons/dash-square.svg +3 -0
  187. package/icons/dash.svg +3 -0
  188. package/icons/download.svg +3 -0
  189. package/icons/exclamation-circle-fill.svg +3 -0
  190. package/icons/exclamation-circle.svg +4 -0
  191. package/icons/exclamation-triangle-fill.svg +3 -0
  192. package/icons/exclamation-triangle.svg +4 -0
  193. package/icons/exclamation.svg +4 -0
  194. package/icons/eye-fill.svg +3 -0
  195. package/icons/eye-slash-fill.svg +4 -0
  196. package/icons/eye-slash.svg +3 -0
  197. package/icons/eye.svg +3 -0
  198. package/icons/facebook.svg +3 -0
  199. package/icons/file-earmark-text.svg +3 -0
  200. package/icons/file-pdf.svg +4 -0
  201. package/icons/file-plus.svg +4 -0
  202. package/icons/file-text.svg +3 -0
  203. package/icons/file.svg +3 -0
  204. package/icons/files.svg +4 -0
  205. package/icons/folder-check.svg +4 -0
  206. package/icons/folder-minus.svg +4 -0
  207. package/icons/folder-plus.svg +4 -0
  208. package/icons/folder.svg +3 -0
  209. package/icons/gear.svg +3 -0
  210. package/icons/geo-alt.svg +4 -0
  211. package/icons/geo-fill.svg +4 -0
  212. package/icons/geo.svg +4 -0
  213. package/icons/google.svg +3 -0
  214. package/icons/grid-fill.svg +3 -0
  215. package/icons/hand-thumbs-down.svg +3 -0
  216. package/icons/hand-thumbs-up.svg +3 -0
  217. package/icons/hdd.svg +3 -0
  218. package/icons/house-door.svg +3 -0
  219. package/icons/house.svg +3 -0
  220. package/icons/image.svg +3 -0
  221. package/icons/inbox.svg +3 -0
  222. package/icons/info-circle-fill.svg +3 -0
  223. package/icons/info-circle.svg +4 -0
  224. package/icons/instagram.svg +3 -0
  225. package/icons/layers.svg +3 -0
  226. package/icons/layout-text-window-reverse.svg +3 -0
  227. package/icons/layout-text-window.svg +3 -0
  228. package/icons/layout.svg +3 -0
  229. package/icons/link.svg +3 -0
  230. package/icons/linkedin.svg +3 -0
  231. package/icons/list.svg +3 -0
  232. package/icons/lock-fill.svg +3 -0
  233. package/icons/lock.svg +3 -0
  234. package/icons/mail.svg +3 -0
  235. package/icons/map.svg +3 -0
  236. package/icons/paperclip.svg +3 -0
  237. package/icons/pencil.svg +3 -0
  238. package/icons/pending-circle.svg +3 -0
  239. package/icons/person-dash.svg +3 -0
  240. package/icons/person-plus.svg +3 -0
  241. package/icons/person-x.svg +3 -0
  242. package/icons/person.svg +3 -0
  243. package/icons/pin-map-fill.svg +3 -0
  244. package/icons/pin.svg +3 -0
  245. package/icons/placeholder.svg +3 -0
  246. package/icons/plus-circle.svg +3 -0
  247. package/icons/plus-square.svg +3 -0
  248. package/icons/plus.svg +3 -0
  249. package/icons/printer.svg +3 -0
  250. package/icons/question-circle.svg +4 -0
  251. package/icons/save.svg +3 -0
  252. package/icons/search.svg +3 -0
  253. package/icons/share.svg +3 -0
  254. package/icons/slash-circle.svg +3 -0
  255. package/icons/sliders.svg +3 -0
  256. package/icons/speedometer.svg +3 -0
  257. package/icons/star-fill.svg +3 -0
  258. package/icons/star.svg +3 -0
  259. package/icons/stoplights.svg +4 -0
  260. package/icons/telephone.svg +3 -0
  261. package/icons/three-dots-vertical.svg +3 -0
  262. package/icons/three-dots.svg +3 -0
  263. package/icons/toggle-off.svg +3 -0
  264. package/icons/toggle-on.svg +3 -0
  265. package/icons/trash.svg +3 -0
  266. package/icons/twitter-x.svg +3 -0
  267. package/icons/unlock.svg +3 -0
  268. package/icons/upload.svg +3 -0
  269. package/icons/window-dash.svg +4 -0
  270. package/icons/window-desktop.svg +4 -0
  271. package/icons/window-dock.svg +4 -0
  272. package/icons/window-fullscreen.svg +3 -0
  273. package/icons/window-plus.svg +4 -0
  274. package/icons/window-sidebar.svg +3 -0
  275. package/icons/window-split.svg +3 -0
  276. package/icons/window-stack.svg +3 -0
  277. package/icons/window-x.svg +4 -0
  278. package/icons/window.svg +3 -0
  279. package/icons/x-circle-fill.svg +3 -0
  280. package/icons/x-circle.svg +3 -0
  281. package/icons/youtube.svg +3 -0
  282. package/icons/zoom-in.svg +3 -0
  283. package/icons/zoom-out.svg +3 -0
  284. package/index.d.ts +1 -0
  285. package/index.js +1 -0
  286. package/index.js.map +1 -1
  287. package/index.umd.js +1340 -1121
  288. package/index.umd.js.map +1 -1
  289. package/internals/CloseButton/close-button.js +1 -1
  290. package/internals/CloseButton/sgds-close-button.js +1 -1
  291. package/internals/CloseButton/sgds-close-button.js.map +1 -1
  292. package/package.json +1 -1
  293. package/react/base/button.cjs.js +1 -1
  294. package/react/base/button.js +1 -1
  295. package/react/base/form-control-element.cjs.js +13 -23
  296. package/react/base/form-control-element.cjs.js.map +1 -1
  297. package/react/base/form-control-element.js +13 -23
  298. package/react/base/form-control-element.js.map +1 -1
  299. package/react/checkbox/index.cjs.js +2 -0
  300. package/react/checkbox/index.cjs.js.map +1 -1
  301. package/react/checkbox/index.d.ts +2 -0
  302. package/react/checkbox/index.js +2 -0
  303. package/react/checkbox/index.js.map +1 -1
  304. package/react/components/Accordion/accordion-item.cjs.js +1 -1
  305. package/react/components/Accordion/accordion-item.js +1 -1
  306. package/react/components/Accordion/sgds-accordion-item.cjs.js +6 -18
  307. package/react/components/Accordion/sgds-accordion-item.cjs.js.map +1 -1
  308. package/react/components/Accordion/sgds-accordion-item.js +6 -18
  309. package/react/components/Accordion/sgds-accordion-item.js.map +1 -1
  310. package/react/components/Alert/alert.cjs.js +1 -1
  311. package/react/components/Alert/alert.js +1 -1
  312. package/react/components/Alert/sgds-alert.cjs.js +5 -12
  313. package/react/components/Alert/sgds-alert.cjs.js.map +1 -1
  314. package/react/components/Alert/sgds-alert.js +6 -13
  315. package/react/components/Alert/sgds-alert.js.map +1 -1
  316. package/react/components/Badge/badge.cjs.js +1 -1
  317. package/react/components/Badge/badge.js +1 -1
  318. package/react/components/Badge/sgds-badge.cjs.js +6 -7
  319. package/react/components/Badge/sgds-badge.cjs.js.map +1 -1
  320. package/react/components/Badge/sgds-badge.js +6 -7
  321. package/react/components/Badge/sgds-badge.js.map +1 -1
  322. package/react/components/Button/sgds-button.cjs.js +2 -2
  323. package/react/components/Button/sgds-button.cjs.js.map +1 -1
  324. package/react/components/Button/sgds-button.js +1 -1
  325. package/react/components/Button/sgds-button.js.map +1 -1
  326. package/react/components/Checkbox/checkbox.cjs.js +1 -1
  327. package/react/components/Checkbox/checkbox.js +1 -1
  328. package/react/components/Checkbox/sgds-checkbox-group.cjs.js +15 -4
  329. package/react/components/Checkbox/sgds-checkbox-group.cjs.js.map +1 -1
  330. package/react/components/Checkbox/sgds-checkbox-group.js +15 -4
  331. package/react/components/Checkbox/sgds-checkbox-group.js.map +1 -1
  332. package/react/components/Checkbox/sgds-checkbox.cjs.js +77 -60
  333. package/react/components/Checkbox/sgds-checkbox.cjs.js.map +1 -1
  334. package/react/components/Checkbox/sgds-checkbox.js +77 -60
  335. package/react/components/Checkbox/sgds-checkbox.js.map +1 -1
  336. package/react/components/Datepicker/datepicker-input.cjs.js +24 -7
  337. package/react/components/Datepicker/datepicker-input.cjs.js.map +1 -1
  338. package/react/components/Datepicker/datepicker-input.js +24 -7
  339. package/react/components/Datepicker/datepicker-input.js.map +1 -1
  340. package/react/components/Datepicker/sgds-datepicker.cjs.js.map +1 -1
  341. package/react/components/Datepicker/sgds-datepicker.js.map +1 -1
  342. package/react/components/FileUpload/file-upload.cjs.js +1 -1
  343. package/react/components/FileUpload/file-upload.js +1 -1
  344. package/react/components/FileUpload/sgds-file-upload.cjs.js +145 -101
  345. package/react/components/FileUpload/sgds-file-upload.cjs.js.map +1 -1
  346. package/react/components/FileUpload/sgds-file-upload.js +147 -103
  347. package/react/components/FileUpload/sgds-file-upload.js.map +1 -1
  348. package/react/components/Footer/footer-item.cjs.js +11 -0
  349. package/react/components/Footer/footer-item.cjs.js.map +1 -0
  350. package/react/components/Footer/footer-item.js +7 -0
  351. package/react/components/Footer/footer-item.js.map +1 -0
  352. package/react/components/Footer/footer.cjs.js +1 -1
  353. package/react/components/Footer/footer.js +1 -1
  354. package/react/components/Footer/sgds-footer-item.cjs.js +33 -0
  355. package/react/components/Footer/sgds-footer-item.cjs.js.map +1 -0
  356. package/react/components/Footer/sgds-footer-item.js +28 -0
  357. package/react/components/Footer/sgds-footer-item.js.map +1 -0
  358. package/react/components/Footer/sgds-footer.cjs.js +65 -90
  359. package/react/components/Footer/sgds-footer.cjs.js.map +1 -1
  360. package/react/components/Footer/sgds-footer.js +65 -90
  361. package/react/components/Footer/sgds-footer.js.map +1 -1
  362. package/react/components/Icon/icon.cjs.js +11 -0
  363. package/react/components/Icon/icon.cjs.js.map +1 -0
  364. package/react/components/Icon/icon.js +7 -0
  365. package/react/components/Icon/icon.js.map +1 -0
  366. package/react/components/Icon/sgds-icon.cjs.js +70 -0
  367. package/react/components/Icon/sgds-icon.cjs.js.map +1 -0
  368. package/react/components/Icon/sgds-icon.js +65 -0
  369. package/react/components/Icon/sgds-icon.js.map +1 -0
  370. package/react/components/IconButton/icon-button.cjs.js +1 -1
  371. package/react/components/IconButton/icon-button.js +1 -1
  372. package/react/components/IconButton/sgds-icon-button.cjs.js +4 -9
  373. package/react/components/IconButton/sgds-icon-button.cjs.js.map +1 -1
  374. package/react/components/IconButton/sgds-icon-button.js +4 -9
  375. package/react/components/IconButton/sgds-icon-button.js.map +1 -1
  376. package/react/components/Input/sgds-input.cjs.js +101 -64
  377. package/react/components/Input/sgds-input.cjs.js.map +1 -1
  378. package/react/components/Input/sgds-input.js +103 -66
  379. package/react/components/Input/sgds-input.js.map +1 -1
  380. package/react/components/Masthead/masthead.cjs.js +1 -1
  381. package/react/components/Masthead/masthead.js +1 -1
  382. package/react/components/QuantityToggle/sgds-quantity-toggle.cjs.js +128 -61
  383. package/react/components/QuantityToggle/sgds-quantity-toggle.cjs.js.map +1 -1
  384. package/react/components/QuantityToggle/sgds-quantity-toggle.js +129 -62
  385. package/react/components/QuantityToggle/sgds-quantity-toggle.js.map +1 -1
  386. package/react/components/Radio/sgds-radio-group.cjs.js +99 -83
  387. package/react/components/Radio/sgds-radio-group.cjs.js.map +1 -1
  388. package/react/components/Radio/sgds-radio-group.js +100 -84
  389. package/react/components/Radio/sgds-radio-group.js.map +1 -1
  390. package/react/components/Radio/sgds-radio.cjs.js +1 -1
  391. package/react/components/Radio/sgds-radio.cjs.js.map +1 -1
  392. package/react/components/Radio/sgds-radio.js +1 -1
  393. package/react/components/Radio/sgds-radio.js.map +1 -1
  394. package/react/components/Stepper/sgds-stepper.cjs.js +1 -0
  395. package/react/components/Stepper/sgds-stepper.cjs.js.map +1 -1
  396. package/react/components/Stepper/sgds-stepper.js +1 -0
  397. package/react/components/Stepper/sgds-stepper.js.map +1 -1
  398. package/react/components/Stepper/stepper.cjs.js +1 -1
  399. package/react/components/Stepper/stepper.js +1 -1
  400. package/react/components/Switch/sgds-switch.cjs.js +1 -2
  401. package/react/components/Switch/sgds-switch.cjs.js.map +1 -1
  402. package/react/components/Switch/sgds-switch.js +1 -2
  403. package/react/components/Switch/sgds-switch.js.map +1 -1
  404. package/react/components/Textarea/sgds-textarea.cjs.js +76 -73
  405. package/react/components/Textarea/sgds-textarea.cjs.js.map +1 -1
  406. package/react/components/Textarea/sgds-textarea.js +78 -75
  407. package/react/components/Textarea/sgds-textarea.js.map +1 -1
  408. package/react/components/Textarea/textarea.cjs.js +1 -1
  409. package/react/components/Textarea/textarea.js +1 -1
  410. package/react/components/Toast/sgds-toast.cjs.js +6 -18
  411. package/react/components/Toast/sgds-toast.cjs.js.map +1 -1
  412. package/react/components/Toast/sgds-toast.js +6 -18
  413. package/react/components/Toast/sgds-toast.js.map +1 -1
  414. package/react/components/Toast/toast.cjs.js +1 -1
  415. package/react/components/Toast/toast.js +1 -1
  416. package/react/components/Tooltip/sgds-tooltip.cjs.js +14 -14
  417. package/react/components/Tooltip/sgds-tooltip.cjs.js.map +1 -1
  418. package/react/components/Tooltip/sgds-tooltip.js +14 -14
  419. package/react/components/Tooltip/sgds-tooltip.js.map +1 -1
  420. package/react/footer-item/index.cjs.js +39 -0
  421. package/react/footer-item/index.cjs.js.map +1 -0
  422. package/react/footer-item/index.d.ts +3 -0
  423. package/react/footer-item/index.js +15 -0
  424. package/react/footer-item/index.js.map +1 -0
  425. package/react/icon/index.cjs.js +42 -0
  426. package/react/icon/index.cjs.js.map +1 -0
  427. package/react/icon/index.d.ts +6 -0
  428. package/react/icon/index.js +18 -0
  429. package/react/icon/index.js.map +1 -0
  430. package/react/index.cjs.js +64 -60
  431. package/react/index.cjs.js.map +1 -1
  432. package/react/index.d.ts +2 -0
  433. package/react/index.js +2 -0
  434. package/react/index.js.map +1 -1
  435. package/react/input/index.cjs.js +3 -1
  436. package/react/input/index.cjs.js.map +1 -1
  437. package/react/input/index.d.ts +2 -0
  438. package/react/input/index.js +3 -1
  439. package/react/input/index.js.map +1 -1
  440. package/react/internals/CloseButton/close-button.cjs.js +1 -1
  441. package/react/internals/CloseButton/close-button.js +1 -1
  442. package/react/internals/CloseButton/sgds-close-button.cjs.js +1 -1
  443. package/react/internals/CloseButton/sgds-close-button.cjs.js.map +1 -1
  444. package/react/internals/CloseButton/sgds-close-button.js +1 -1
  445. package/react/internals/CloseButton/sgds-close-button.js.map +1 -1
  446. package/react/styles/form-hint.cjs.js +1 -1
  447. package/react/styles/form-hint.js +1 -1
  448. package/react/styles/form-label.cjs.js +1 -1
  449. package/react/styles/form-label.js +1 -1
  450. package/react/utils/formSubmitController.cjs.js +64 -0
  451. package/react/utils/formSubmitController.cjs.js.map +1 -0
  452. package/react/utils/formSubmitController.js +60 -0
  453. package/react/utils/formSubmitController.js.map +1 -0
  454. package/react/utils/inputValidationController.cjs.js +130 -0
  455. package/react/utils/inputValidationController.cjs.js.map +1 -0
  456. package/react/utils/inputValidationController.js +126 -0
  457. package/react/utils/inputValidationController.js.map +1 -0
  458. package/react/utils/validatorMixin.cjs.js +108 -0
  459. package/react/utils/validatorMixin.cjs.js.map +1 -0
  460. package/react/utils/validatorMixin.js +104 -0
  461. package/react/utils/validatorMixin.js.map +1 -0
  462. package/styles/form-hint.js +1 -1
  463. package/styles/form-label.js +1 -1
  464. package/themes/day.css +1 -1
  465. package/themes/night.css +3 -2
  466. package/themes/root.css +2 -0
  467. package/utils/{form.d.ts → formSubmitController.d.ts} +10 -20
  468. package/utils/formSubmitController.js +59 -0
  469. package/utils/formSubmitController.js.map +1 -0
  470. package/utils/inputValidationController.d.ts +70 -0
  471. package/utils/inputValidationController.js +125 -0
  472. package/utils/inputValidationController.js.map +1 -0
  473. package/utils/validatorMixin.d.ts +24 -0
  474. package/utils/validatorMixin.js +103 -0
  475. package/utils/validatorMixin.js.map +1 -0
  476. package/base/form-check-element.d.ts +0 -50
  477. package/base/form-check-element.js +0 -169
  478. package/base/form-check-element.js.map +0 -1
  479. package/css/body.css +0 -28
  480. package/css/caption.css +0 -7
  481. package/css/label.css +0 -28
  482. package/react/base/form-check-element.cjs.js +0 -175
  483. package/react/base/form-check-element.cjs.js.map +0 -1
  484. package/react/base/form-check-element.js +0 -170
  485. package/react/base/form-check-element.js.map +0 -1
  486. package/react/utils/form.cjs.js +0 -137
  487. package/react/utils/form.cjs.js.map +0 -1
  488. package/react/utils/form.js +0 -133
  489. package/react/utils/form.js.map +0 -1
  490. package/utils/form.js +0 -132
  491. package/utils/form.js.map +0 -1
@@ -4075,7 +4075,7 @@
4075
4075
  (globalThis.litIssuedWarnings ??= new Set());
4076
4076
  }
4077
4077
 
4078
- var css_248z$1 = css`:host{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0);color:var(--sgds-body-color);font-family:var(--sgds-font-family-brand);font-size:var(--sgds-font-size-2);font-weight:var(--sgds-font-weight-regular);line-height:var(--sgds-line-height-heading);margin:0;*,:after,:before{box-sizing:border-box}:disabled{cursor:not-allowed}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}::slotted(a[target=_blank]):after{background-color:currentColor;content:"/";display:inline-block;margin:0 .125rem;-webkit-mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-box-arrow-up-right"><path fill-rule="evenodd" d="M8.636 3.5a.5.5 0 0 0-.5-.5H1.5A1.5 1.5 0 0 0 0 4.5v10A1.5 1.5 0 0 0 1.5 16h10a1.5 1.5 0 0 0 1.5-1.5V7.864a.5.5 0 0 0-1 0V14.5a.5.5 0 0 1-.5.5h-10a.5.5 0 0 1-.5-.5v-10a.5.5 0 0 1 .5-.5h6.636a.5.5 0 0 0 .5-.5z"/><path fill-rule="evenodd" d="M16 .5a.5.5 0 0 0-.5-.5h-5a.5.5 0 0 0 0 1h3.793L6.146 9.146a.5.5 0 1 0 .708.708L15 1.707V5.5a.5.5 0 0 0 1 0v-5z"/></svg>');mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-box-arrow-up-right"><path fill-rule="evenodd" d="M8.636 3.5a.5.5 0 0 0-.5-.5H1.5A1.5 1.5 0 0 0 0 4.5v10A1.5 1.5 0 0 0 1.5 16h10a1.5 1.5 0 0 0 1.5-1.5V7.864a.5.5 0 0 0-1 0V14.5a.5.5 0 0 1-.5.5h-10a.5.5 0 0 1-.5-.5v-10a.5.5 0 0 1 .5-.5h6.636a.5.5 0 0 0 .5-.5z"/><path fill-rule="evenodd" d="M16 .5a.5.5 0 0 0-.5-.5h-5a.5.5 0 0 0 0 1h3.793L6.146 9.146a.5.5 0 1 0 .708.708L15 1.707V5.5a.5.5 0 0 0 1 0v-5z"/></svg>');-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;mask-size:73%;-webkit-mask-size:73%;padding:0 .45em}::slotted(a){color:var(--sgds-link);text-decoration:var(--sgds-link-decoration)}::slotted(a:hover){color:var(--sgds-link-hover-color)}::slotted(svg){vertical-align:middle}}`;
4078
+ var css_248z$2 = css`:host{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0);color:var(--sgds-body-color);font-family:var(--sgds-font-family-brand);font-size:var(--sgds-font-size-2);font-weight:var(--sgds-font-weight-regular);line-height:var(--sgds-line-height-heading);margin:0;*,:after,:before{box-sizing:border-box}:disabled{cursor:not-allowed}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}::slotted(a[target=_blank]):after{background-color:currentColor;content:"/";display:inline-block;margin:0 .125rem;-webkit-mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-box-arrow-up-right"><path fill-rule="evenodd" d="M8.636 3.5a.5.5 0 0 0-.5-.5H1.5A1.5 1.5 0 0 0 0 4.5v10A1.5 1.5 0 0 0 1.5 16h10a1.5 1.5 0 0 0 1.5-1.5V7.864a.5.5 0 0 0-1 0V14.5a.5.5 0 0 1-.5.5h-10a.5.5 0 0 1-.5-.5v-10a.5.5 0 0 1 .5-.5h6.636a.5.5 0 0 0 .5-.5z"/><path fill-rule="evenodd" d="M16 .5a.5.5 0 0 0-.5-.5h-5a.5.5 0 0 0 0 1h3.793L6.146 9.146a.5.5 0 1 0 .708.708L15 1.707V5.5a.5.5 0 0 0 1 0v-5z"/></svg>');mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-box-arrow-up-right"><path fill-rule="evenodd" d="M8.636 3.5a.5.5 0 0 0-.5-.5H1.5A1.5 1.5 0 0 0 0 4.5v10A1.5 1.5 0 0 0 1.5 16h10a1.5 1.5 0 0 0 1.5-1.5V7.864a.5.5 0 0 0-1 0V14.5a.5.5 0 0 1-.5.5h-10a.5.5 0 0 1-.5-.5v-10a.5.5 0 0 1 .5-.5h6.636a.5.5 0 0 0 .5-.5z"/><path fill-rule="evenodd" d="M16 .5a.5.5 0 0 0-.5-.5h-5a.5.5 0 0 0 0 1h3.793L6.146 9.146a.5.5 0 1 0 .708.708L15 1.707V5.5a.5.5 0 0 0 1 0v-5z"/></svg>');-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;mask-size:73%;-webkit-mask-size:73%;padding:0 .45em}::slotted(a){color:var(--sgds-link);text-decoration:var(--sgds-link-decoration)}::slotted(a:hover){color:var(--sgds-link-hover-color)}::slotted(svg){vertical-align:middle}}`;
4079
4079
 
4080
4080
  /**
4081
4081
  * @cssprop --sgds-{stateColor} - State colors in hexadecimal value
@@ -4093,44 +4093,26 @@
4093
4093
  return event;
4094
4094
  }
4095
4095
  }
4096
- SgdsElement.styles = [css_248z$1];
4096
+ SgdsElement.styles = [css_248z$2];
4097
4097
 
4098
- var css_248z = css`*,:after,:before{box-sizing:border-box}.sgds.footer .footer-header .title{color:var(--sgds-heading-color);font-size:calc(1.275rem + .3vw);font-weight:700;line-height:1.2;margin-bottom:.5rem;margin-top:0}@media (min-width:1200px){.sgds.footer .footer-header .title{font-size:1.5rem}}.sgds.footer .footer-header .title{line-height:1.33}.container-fluid{margin-left:auto;margin-right:auto;padding-left:var(--sgds-gutter-x,1.5rem);padding-right:var(--sgds-gutter-x,1.5rem);width:100%}.row{--sgds-gutter-x:1.5rem;--sgds-gutter-y:0;display:flex;flex-wrap:wrap;margin-left:calc(var(--sgds-gutter-x)*-.5);margin-right:calc(var(--sgds-gutter-x)*-.5);margin-top:calc(var(--sgds-gutter-y)*-1)}.row>*{flex-shrink:0;margin-top:var(--sgds-gutter-y);max-width:100%;padding-left:calc(var(--sgds-gutter-x)*.5);padding-right:calc(var(--sgds-gutter-x)*.5);width:100%}.col{flex:1 0 0%}@media (min-width:768px){.col-md-4{flex:0 0 auto;width:33.33333333%}}@media (min-width:1400px){.col-xxl-2{flex:0 0 auto;width:16.66666667%}}.sgds.footer .footer-contact-links ul,.sgds.footer .footer-items ul,.sgds.footer .footer-mandatory-links ul{margin:0;padding:0}.sgds.footer .footer-contact-links ul li,.sgds.footer .footer-items ul li,.sgds.footer .footer-mandatory-links ul li{font-size:1rem;line-height:1.5;list-style-type:none}.sgds.footer .footer-contact-links ul li+li,.sgds.footer .footer-items ul li+li,.sgds.footer .footer-mandatory-links ul li+li{margin-top:1rem}.sgds.footer .footer-contact-links ul li a,.sgds.footer .footer-items ul li a,.sgds.footer .footer-mandatory-links ul li a{color:#d0d5dd;text-decoration:none}.sgds.footer,.sgds.footer .footer-contact-links ul li a:hover,.sgds.footer .footer-items ul li a:hover,.sgds.footer .footer-mandatory-links ul li a:hover{color:#f7f7f7}.sgds.footer{height:auto}.sgds.footer .footer-top{background-color:#111;padding:3rem 0 1.5rem}.sgds.footer .footer-header{margin-bottom:1.5rem}.sgds.footer .footer-header .title{margin-bottom:1rem}.sgds.footer .footer-header .description{color:#d0d5dd}@media (max-width:575.98px){.sgds.footer .footer-items>div[class*=col]+div[class*=col]{margin-top:2rem}}.sgds.footer .footer-items .title{font-weight:700}.sgds.footer .footer-items .links{margin-top:1rem}.sgds.footer .footer-contact-links{margin-top:2rem}@media (min-width:992px){.sgds.footer .footer-contact-links ul li{display:inline-block}.sgds.footer .footer-contact-links ul li+li{margin-left:1rem}}.sgds.footer .footer-bottom{background-color:#111;padding:1.5rem 0}@media (min-width:992px){.sgds.footer .footer-mandatory-links ul li{display:inline-block}.sgds.footer .footer-mandatory-links ul li+li{margin-left:1rem}}@media (max-width:991.98px){.sgds.footer .footer-copyrights{margin-top:1rem}}.d-flex{display:flex!important}.text-end{text-align:right!important}@media (min-width:992px){.justify-content-lg-end{justify-content:flex-end!important}}`;
4098
+ var css_248z$1 = css`.footer{container:footer/inline-size;height:auto}.footer-top{background-color:var(--sgds-default-bg-emphasis);border-bottom:var(--sgds-border-width-1) solid var(--sgds-default-border-color);gap:var(--sgds-gap-md);padding:var(--sgds-padding-xl) var(--sgds-padding-2-xl)}.footer-header,.footer-top{display:flex;flex-direction:column}.footer-header{gap:var(--sgds-gap-xs);margin:var(--sgds-margin-3-xs) 0}slot[name=title]::slotted(*){--sgds-header-color:var(--sgds-default-color-inverse);--sgds-font-size-6:var(--sgds-font-size-5);--sgds-margin-2-xs:var(--sgds-margin-none);--sgds-line-height-heading:var(--sgds-line-height-body);color:var(--sgds-header-color,--sgds-default-color-inverse);font-size:var(--sgds-font-size-6,--sgds-font-size-5);font-weight:var(--sgds-font-weight-bold);letter-spacing:var(--sgds-letter-spacing-tight);line-height:var(--sgds-line-height-heading,--sgds-line-height-body);margin-bottom:var(--sgds-margin-2-xs,--sgds-margin-none);margin-top:var(--sgds-margin-none)}slot[name=description]::slotted(*){--sgds-font-size-2:var(--sgds-font-size-3);--sgds-paragraph-spacing-xl:var(--sgds-margin-none);color:var(--sgds-default-color-muted);font-size:var(--sgds-font-size-2,--sgds-font-size-3);margin-bottom:var(--sgds-paragraph-spacing-xl,--sgds-margin-none);margin-top:var(--sgds-margin-none)}.footer-items{display:grid;gap:var(--sgds-gap-md) var(--sgds-gap-lg);grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.footer ul{margin:0;padding:0}.footer ul li{list-style-type:none}.footer-mandatory-links ul li a{color:var(--sgds-default-color-muted);text-decoration:none}.footer-mandatory-links ul li a:focus,.footer-mandatory-links ul li a:hover{color:var(--sgds-default-color-inverse)}.footer-mandatory-links ul li a:focus,.footer-mandatory-links ul li a:focus-visible{box-shadow:var(--sgds-box-shadow-focus);outline:0}.footer-bottom{background-color:var(--sgds-default-bg-emphasis);display:flex;flex-direction:column;gap:var(--sgds-gap-md);padding:var(--sgds-padding-xl) var(--sgds-padding-2-xl)}.social-media{display:flex;gap:var(--sgds-gap-sm)}slot[name=social-media]::slotted(a){--sgds-link-color:light-dark(var(--sgds-gray-000),var(--sgds-gray-900));--sgds-body-color:light-dark(var(--sgds-gray-000),var(--sgds-gray-900));color:var(--sgds-body-color,--sgds-link-color);display:inline-flex}slot[name=social-media]::slotted(a:hover){--sgds-link-color-emphasis:light-dark(var(--sgds-gray-000),var(--sgds-gray-900));color:var(--sgds-link-color-emphasis)}slot[name=social-media]::slotted(a:focus),slot[name=social-media]::slotted(a:focus-visible){--sgds-link-color-emphasis:light-dark(var(--sgds-gray-000),var(--sgds-gray-900));box-shadow:var(--sgds-box-shadow-focus);color:var(--sgds-link-color-emphasis);outline:0}.footer-mandatory-links{display:flex;flex-wrap:wrap;gap:var(--sgds-gap-xl) var(--sgds-gap-lg);justify-content:space-between}.footer-mandatory-links ul{display:flex;flex-wrap:wrap;gap:var(--sgds-gap-xs) var(--sgds-gap-xl)}.footer-copyrights{color:var(--sgds-default-color-muted)}@container footer (max-width: 711px){.footer-bottom,.footer-top{padding:var(--sgds-padding-lg)}.footer-top{gap:var(--sgds-gap-lg)}.footer-mandatory-links,.footer-mandatory-links ul{flex-direction:column}}`;
4099
4099
 
4100
4100
  /**
4101
4101
  * @summary The footer contains supporting information for your service at the bottom of your website. All .gov.sg digital services shall contain a Global Footer Bar across all pages. The Global Footer Bar should include the name of the digital service, contact information, a privacy statement and the terms of use.
4102
4102
  *
4103
- * @csspart footer-top - The component's footer-top section container.
4104
- * @csspart footer-bottom - The component's footer-bottom section container.
4103
+ * @slot title - The slot for title
4104
+ * @slot description - The slot for description
4105
+ * @slot items - The slot for the list of footer items
4106
+ * @slot social-media - The slot for the list of social media with icons
4105
4107
  *
4106
- * @cssproperty footer-top - The component's footer-top section container.
4107
- * @cssproperty footer-bottom - The component's footer-bottom section container.
4108
4108
  */
4109
4109
  class SgdsFooter extends SgdsElement {
4110
4110
  constructor() {
4111
4111
  super(...arguments);
4112
- /**
4113
- * Sets title of SgdsFooter
4114
- */
4115
- this.title = "";
4116
- /**
4117
- * Sets description of SgdsFooter
4118
- */
4119
- this.description = "";
4120
4112
  /**
4121
4113
  * Sets copyrightLiner of SgdsFooter
4122
4114
  */
4123
4115
  this.copyrightLiner = "Government of Singapore";
4124
- /**
4125
- * Array of type
4126
- *
4127
- * `interface ColumnLinks { title: string; links : Links[] } interface Links { href: string; label: string; }`
4128
- */
4129
- this.links = [];
4130
- /**
4131
- * String date for last updated date
4132
- */
4133
- this.lastUpdatedDate = "";
4134
4116
  /**
4135
4117
  * href link for contacts
4136
4118
  */
@@ -4139,6 +4121,10 @@
4139
4121
  * href link for feedback
4140
4122
  */
4141
4123
  this.feedbackHref = "#";
4124
+ /**
4125
+ * href link for faq
4126
+ */
4127
+ this.faqHref = "#";
4142
4128
  /**
4143
4129
  * href link for privacy statement
4144
4130
  */
@@ -4148,94 +4134,83 @@
4148
4134
  */
4149
4135
  this.termsOfUseHref = "#";
4150
4136
  }
4137
+ firstUpdated() {
4138
+ const socialMediaSlot = this.shadowRoot.querySelector("slot[name='social-media']");
4139
+ const footerTitleSlot = this.shadowRoot.querySelector("slot[name='title']");
4140
+ const footerDescriptionSlot = this.shadowRoot.querySelector("slot[name='description']");
4141
+ const footerItemsSlot = this.shadowRoot.querySelector("slot[name='items']");
4142
+ const socialMediaChildNodes = socialMediaSlot.assignedNodes({ flatten: true });
4143
+ const footerTitleChildNodes = footerTitleSlot.assignedNodes({ flatten: true });
4144
+ const footerDescriptionChildNodes = footerDescriptionSlot.assignedNodes({ flatten: true });
4145
+ const footerItemsChildNodes = footerItemsSlot.assignedNodes({ flatten: true });
4146
+ if (socialMediaChildNodes.length === 0) {
4147
+ const socialMediaContainer = this.shadowRoot.querySelector(".social-media");
4148
+ socialMediaContainer.style.display = "none";
4149
+ }
4150
+ if (footerTitleChildNodes.length === 0 && footerDescriptionChildNodes.length === 0) {
4151
+ const footerHeaderContainer = this.shadowRoot.querySelector(".footer-header");
4152
+ footerHeaderContainer.style.display = "none";
4153
+ }
4154
+ if (footerItemsChildNodes.length === 0) {
4155
+ const footerItemsContainer = this.shadowRoot.querySelector(".footer-items");
4156
+ footerItemsContainer.style.display = "none";
4157
+ }
4158
+ if (footerTitleChildNodes.length === 0 &&
4159
+ footerDescriptionChildNodes.length === 0 &&
4160
+ footerItemsChildNodes.length === 0) {
4161
+ const footerTopContainer = this.shadowRoot.querySelector(".footer-top");
4162
+ footerTopContainer.style.display = "none";
4163
+ }
4164
+ }
4151
4165
  render() {
4152
- // if description is defined
4153
- const hasDescription = html ` <div class="description">${this.description}</div>`;
4154
4166
  return html `
4155
- <footer class="sgds footer">
4156
- <section class="footer-top" part="footer-top">
4157
- <div class="container-fluid">
4158
- <div class="row footer-header">
4159
- <div class="col col-lg-6 col-md-12">
4160
- <div class="title">${this.title ? this.title : "Footer title"}</div>
4161
- ${this.description ? hasDescription : undefined}
4162
- </div>
4163
- </div>
4164
- <div class="row footer-items">
4165
- ${this.links.map((item) => html `
4166
- <div class="col-xxl-2 col-md-4 mb-3">
4167
- <div class="title">${item.title}</div>
4168
- <ul class="links">
4169
- ${item.links.map((link) => html ` <li><a href=${link.href}>${link.label}</a></li> `)}
4170
- </ul>
4171
- </div>
4172
- `)}
4173
- </div>
4174
- <div class="row footer-contact-links">
4175
- <div class="col">
4176
- <div class="d-flex justify-content-lg-end">
4177
- <ul>
4178
- <li><a href=${this.contactHref}>Contact</a></li>
4179
- <li><a href=${this.feedbackHref}>Feedback</a></li>
4180
- </ul>
4181
- </div>
4182
- </div>
4183
- </div>
4167
+ <footer class="footer">
4168
+ <section class="footer-top">
4169
+ <div class="footer-header">
4170
+ <slot name="title"></slot>
4171
+ <slot name="description"></slot>
4172
+ </div>
4173
+ <div class="footer-items">
4174
+ <slot name="items"></slot>
4184
4175
  </div>
4185
4176
  </section>
4186
- <section class="footer-bottom" part="footer-bottom">
4187
- <div class="container-fluid">
4188
- <div class="row footer-mandatory-links">
4189
- <div class="col">
4190
- <ul>
4191
- <li>
4192
- <a href="https://tech.gov.sg/report_vulnerability" target="_blank" rel="noopener noreferrer"
4193
- >Report Vulnerability</a
4194
- >
4195
- </li>
4196
- <li><a href=${this.privacyHref}>Privacy Statement</a></li>
4197
- <li><a href=${this.termsOfUseHref}>Terms of use</a></li>
4198
- </ul>
4199
- </div>
4200
- </div>
4201
- <div class="row footer-copyrights">
4202
- <div class="col">
4203
- <div class="d-flex justify-content-lg-end text-end">
4204
- © ${new Date().getFullYear()} ${this.copyrightLiner}<br />
4205
- Last Updated ${this.lastUpdatedDate}
4206
- </div>
4207
- </div>
4208
- </div>
4177
+ <section class="footer-bottom">
4178
+ <div class="social-media">
4179
+ <slot name="social-media"></slot>
4180
+ </div>
4181
+ <div class="footer-mandatory-links">
4182
+ <ul>
4183
+ <li><a href=${this.contactHref}>Contact</a></li>
4184
+ <li><a href=${this.feedbackHref}>Feedback</a></li>
4185
+ <li><a href=${this.faqHref}>FAQ</a></li>
4186
+ <li>
4187
+ <a href="https://tech.gov.sg/report_vulnerability" target="_blank" rel="noopener noreferrer">
4188
+ Report Vulnerability
4189
+ </a>
4190
+ </li>
4191
+ <li><a href=${this.privacyHref}>Privacy Statement</a></li>
4192
+ <li><a href=${this.termsOfUseHref}>Terms of use</a></li>
4193
+ </ul>
4194
+ <div class="footer-copyrights">© ${new Date().getFullYear()}, ${this.copyrightLiner}</div>
4209
4195
  </div>
4210
4196
  </section>
4211
4197
  </footer>
4212
4198
  `;
4213
4199
  }
4214
4200
  }
4215
- SgdsFooter.styles = [...SgdsElement.styles, css_248z];
4216
- __decorate([
4217
- property({ type: String })
4218
- ], SgdsFooter.prototype, "title", void 0);
4219
- __decorate([
4220
- property({ type: String })
4221
- ], SgdsFooter.prototype, "description", void 0);
4201
+ SgdsFooter.styles = [...SgdsElement.styles, css_248z$1];
4222
4202
  __decorate([
4223
4203
  property({ type: String })
4224
4204
  ], SgdsFooter.prototype, "copyrightLiner", void 0);
4225
- __decorate([
4226
- property({
4227
- type: Array
4228
- })
4229
- ], SgdsFooter.prototype, "links", void 0);
4230
- __decorate([
4231
- property({ type: String })
4232
- ], SgdsFooter.prototype, "lastUpdatedDate", void 0);
4233
4205
  __decorate([
4234
4206
  property({ type: String })
4235
4207
  ], SgdsFooter.prototype, "contactHref", void 0);
4236
4208
  __decorate([
4237
4209
  property({ type: String })
4238
4210
  ], SgdsFooter.prototype, "feedbackHref", void 0);
4211
+ __decorate([
4212
+ property({ type: String })
4213
+ ], SgdsFooter.prototype, "faqHref", void 0);
4239
4214
  __decorate([
4240
4215
  property({ type: String })
4241
4216
  ], SgdsFooter.prototype, "privacyHref", void 0);
@@ -4243,7 +4218,31 @@
4243
4218
  property({ type: String })
4244
4219
  ], SgdsFooter.prototype, "termsOfUseHref", void 0);
4245
4220
 
4221
+ var css_248z = css`.footer-item{margin-bottom:var(--sgds-margin-3-xs)}.footer-item,.links{display:flex;flex-direction:column;gap:var(--sgds-gap-xs)}slot[name=title]::slotted(*){--sgds-paragraph-spacing-xl:var(--sgds-margin-none);--sgds-font-weight-regular:var(--sgds-font-weight-semibold);color:var(--sgds-default-color-inverse);font-weight:var(--sgds-font-weight-regular,--sgds-font-weight-semibold);margin:var(--sgds-paragraph-spacing-xl,--sgds-margin-none)}.links{margin:0;padding:0}.links slot::slotted(a){--sgds-link-color:var(--sgds-default-color-muted);color:var(--sgds-link-color,--sgds-default-color-muted);text-decoration:none!important;width:fit-content}.links slot::slotted(a:focus),.links slot::slotted(a:focus-visible),slot::slotted(a:hover){--sgds-link-color-emphasis:var(--sgds-default-color-inverse);color:var(--sgds-link-color-emphasis,--sgds-default-color-inverse)}.links slot::slotted(a:focus),.links slot::slotted(a:focus-visible){box-shadow:var(--sgds-box-shadow-focus);outline:0}`;
4222
+
4223
+ /**
4224
+ * @summary The footer item component organizes links under a clear, descriptive title within the footer. It helps users easily navigate to related resources or information, ensuring clarity and accessibility.
4225
+ *
4226
+ * @slot default - The slot for the list of link items
4227
+ * @slot title - The slot for the title of the list of items
4228
+ *
4229
+ */
4230
+ class SgdsFooterItem extends SgdsElement {
4231
+ render() {
4232
+ return html `
4233
+ <div class="footer-item">
4234
+ <slot name="title"></slot>
4235
+ <div class="links">
4236
+ <slot></slot>
4237
+ </div>
4238
+ </div>
4239
+ `;
4240
+ }
4241
+ }
4242
+ SgdsFooterItem.styles = [...SgdsElement.styles, css_248z];
4243
+
4246
4244
  customElements.define("sgds-footer", SgdsFooter);
4245
+ customElements.define("sgds-footer-item", SgdsFooterItem);
4247
4246
 
4248
4247
  }));
4249
4248
  //# sourceMappingURL=index.umd.js.map