@govtechsg/sgds-web-component 3.0.0-rc.6 → 3.0.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 (382) hide show
  1. package/Masthead/index.js +2 -2
  2. package/README.md +2 -2
  3. package/base/button.js +1 -1
  4. package/base/card-element.d.ts +0 -3
  5. package/base/card-element.js +0 -3
  6. package/base/card-element.js.map +1 -1
  7. package/base/card.js +1 -1
  8. package/base/sgds-element2.js +1 -1
  9. package/components/Accordion/accordion-item.js +1 -1
  10. package/components/Accordion/accordion.js +1 -1
  11. package/components/Accordion/index.umd.js +137 -145
  12. package/components/Accordion/index.umd.js.map +1 -1
  13. package/components/Accordion/sgds-accordion-item.js +1 -5
  14. package/components/Accordion/sgds-accordion-item.js.map +1 -1
  15. package/components/Accordion/sgds-accordion.js +1 -6
  16. package/components/Accordion/sgds-accordion.js.map +1 -1
  17. package/components/Alert/alert.js +1 -1
  18. package/components/Alert/index.umd.js +3 -3
  19. package/components/Badge/badge.js +1 -1
  20. package/components/Badge/index.umd.js +3 -3
  21. package/components/Breadcrumb/breadcrumb-item.js +1 -1
  22. package/components/Breadcrumb/index.umd.js +19 -7
  23. package/components/Breadcrumb/index.umd.js.map +1 -1
  24. package/components/Button/button.js +1 -1
  25. package/components/Button/index.umd.js +3 -3
  26. package/components/Card/card.js +1 -1
  27. package/components/Card/index.umd.js +6 -9
  28. package/components/Card/index.umd.js.map +1 -1
  29. package/components/Card/sgds-card.d.ts +3 -3
  30. package/components/Card/sgds-card.js +3 -3
  31. package/components/Card/sgds-card.js.map +1 -1
  32. package/components/Checkbox/checkbox.js +1 -1
  33. package/components/Checkbox/index.umd.js +3 -3
  34. package/components/ComboBox/combo-box-item2.js +1 -1
  35. package/components/ComboBox/combo-box.js +1 -1
  36. package/components/ComboBox/index.umd.js +14 -9
  37. package/components/ComboBox/index.umd.js.map +1 -1
  38. package/components/ComboBox/sgds-combo-box.d.ts +6 -1
  39. package/components/ComboBox/sgds-combo-box.js +6 -1
  40. package/components/ComboBox/sgds-combo-box.js.map +1 -1
  41. package/components/Datepicker/datepicker-calendar2.js +1 -1
  42. package/components/Datepicker/datepicker.js +1 -1
  43. package/components/Datepicker/index.umd.js +9 -9
  44. package/components/DescriptionList/description-list-group.js +1 -1
  45. package/components/DescriptionList/description-list.js +1 -1
  46. package/components/DescriptionList/index.umd.js +18 -20
  47. package/components/DescriptionList/index.umd.js.map +1 -1
  48. package/components/DescriptionList/sgds-description-list-group.d.ts +1 -1
  49. package/components/DescriptionList/sgds-description-list-group.js +11 -11
  50. package/components/DescriptionList/sgds-description-list-group.js.map +1 -1
  51. package/components/DescriptionList/sgds-description-list.js +4 -6
  52. package/components/DescriptionList/sgds-description-list.js.map +1 -1
  53. package/components/Divider/divider.js +1 -1
  54. package/components/Divider/index.umd.js +2 -2
  55. package/components/Drawer/drawer.js +1 -1
  56. package/components/Drawer/index.umd.js +31 -136
  57. package/components/Drawer/index.umd.js.map +1 -1
  58. package/components/Drawer/sgds-drawer.d.ts +3 -32
  59. package/components/Drawer/sgds-drawer.js +16 -73
  60. package/components/Drawer/sgds-drawer.js.map +1 -1
  61. package/components/Dropdown/dropdown-item.js +1 -1
  62. package/components/Dropdown/dropdown-menu.js +1 -1
  63. package/components/Dropdown/index.umd.js +3 -3
  64. package/components/Dropdown/index.umd.js.map +1 -1
  65. package/components/Dropdown/sgds-dropdown-item.d.ts +2 -1
  66. package/components/Dropdown/sgds-dropdown-item.js.map +1 -1
  67. package/components/FileUpload/file-upload.js +1 -1
  68. package/components/FileUpload/index.umd.js +8 -8
  69. package/components/FileUpload/index.umd.js.map +1 -1
  70. package/components/FileUpload/sgds-file-upload.js +2 -2
  71. package/components/FileUpload/sgds-file-upload.js.map +1 -1
  72. package/components/Footer/footer-item.js +1 -1
  73. package/components/Footer/footer.js +1 -1
  74. package/components/Footer/index.umd.js +3 -3
  75. package/components/Icon/index.umd.js +1 -1
  76. package/components/IconButton/index.umd.js +2 -2
  77. package/components/IconList/index.umd.js +1 -1
  78. package/components/Input/index.umd.js +4 -4
  79. package/components/Input/input.js +1 -1
  80. package/components/Link/index.umd.js +15 -3
  81. package/components/Link/index.umd.js.map +1 -1
  82. package/components/Link/link.js +1 -1
  83. package/components/Link/sgds-link.d.ts +2 -1
  84. package/components/Link/sgds-link.js +13 -1
  85. package/components/Link/sgds-link.js.map +1 -1
  86. package/components/Mainnav/index.umd.js +74 -93
  87. package/components/Mainnav/index.umd.js.map +1 -1
  88. package/components/Mainnav/mainnav-dropdown.js +1 -1
  89. package/components/Mainnav/mainnav-item.js +1 -1
  90. package/components/Mainnav/mainnav.js +1 -1
  91. package/components/Mainnav/sgds-mainnav-dropdown.d.ts +1 -4
  92. package/components/Mainnav/sgds-mainnav-dropdown.js +24 -37
  93. package/components/Mainnav/sgds-mainnav-dropdown.js.map +1 -1
  94. package/components/Mainnav/sgds-mainnav-item.d.ts +9 -2
  95. package/components/Mainnav/sgds-mainnav-item.js +58 -3
  96. package/components/Mainnav/sgds-mainnav-item.js.map +1 -1
  97. package/components/Mainnav/sgds-mainnav.js +7 -6
  98. package/components/Mainnav/sgds-mainnav.js.map +1 -1
  99. package/components/Masthead/index.umd.js +2 -2
  100. package/components/Masthead/masthead.js +1 -1
  101. package/components/Modal/index.umd.js +3 -3
  102. package/components/Modal/modal.js +1 -1
  103. package/components/Pagination/index.umd.js +4 -4
  104. package/components/Pagination/pagination.js +1 -1
  105. package/components/ProgressBar/index.umd.js +3 -3
  106. package/components/ProgressBar/index.umd.js.map +1 -1
  107. package/components/ProgressBar/progress-bar.js +1 -1
  108. package/components/ProgressBar/sgds-progress-bar.d.ts +1 -1
  109. package/components/ProgressBar/sgds-progress-bar.js +1 -1
  110. package/components/ProgressBar/sgds-progress-bar.js.map +1 -1
  111. package/components/QuantityToggle/index.umd.js +5 -10
  112. package/components/QuantityToggle/index.umd.js.map +1 -1
  113. package/components/QuantityToggle/sgds-quantity-toggle.d.ts +0 -2
  114. package/components/QuantityToggle/sgds-quantity-toggle.js +0 -5
  115. package/components/QuantityToggle/sgds-quantity-toggle.js.map +1 -1
  116. package/components/Radio/index.umd.js +3 -3
  117. package/components/Radio/radio.js +1 -1
  118. package/components/Sidenav/index.umd.js +40 -44
  119. package/components/Sidenav/index.umd.js.map +1 -1
  120. package/components/Sidenav/sgds-sidenav-item.d.ts +14 -16
  121. package/components/Sidenav/sgds-sidenav-item.js +39 -43
  122. package/components/Sidenav/sgds-sidenav-item.js.map +1 -1
  123. package/components/Sidenav/sidenav-item.js +1 -1
  124. package/components/Sidenav/sidenav-link.js +1 -1
  125. package/components/Skeleton/index.umd.js +2 -2
  126. package/components/Skeleton/skeleton.js +1 -1
  127. package/components/Spinner/index.umd.js +2 -2
  128. package/components/Spinner/spinner.js +1 -1
  129. package/components/Stepper/index.umd.js +2 -2
  130. package/components/Stepper/stepper.js +1 -1
  131. package/components/Switch/index.umd.js +2 -2
  132. package/components/Switch/switch.js +1 -1
  133. package/components/Tab/index.umd.js +2 -2
  134. package/components/Tab/tab.js +1 -1
  135. package/components/Table/index.umd.js +63 -205
  136. package/components/Table/index.umd.js.map +1 -1
  137. package/components/Table/sgds-table.d.ts +12 -55
  138. package/components/Table/sgds-table.js +59 -201
  139. package/components/Table/sgds-table.js.map +1 -1
  140. package/components/Table/table.js +1 -1
  141. package/components/TableOfContents/index.d.ts +6 -0
  142. package/components/TableOfContents/index.js +4 -0
  143. package/components/TableOfContents/index.js.map +1 -0
  144. package/components/TableOfContents/index.umd.js +3995 -0
  145. package/components/TableOfContents/index.umd.js.map +1 -0
  146. package/components/TableOfContents/sgds-table-of-contents.d.ts +13 -0
  147. package/components/TableOfContents/sgds-table-of-contents.js +25 -0
  148. package/components/TableOfContents/sgds-table-of-contents.js.map +1 -0
  149. package/components/TableOfContents/table-of-contents.js +6 -0
  150. package/components/TableOfContents/table-of-contents.js.map +1 -0
  151. package/components/Textarea/index.umd.js +3 -3
  152. package/components/Textarea/textarea.js +1 -1
  153. package/components/Toast/index.umd.js +3 -3
  154. package/components/Toast/toast.js +1 -1
  155. package/components/Tooltip/index.umd.js +2 -2
  156. package/components/Tooltip/tooltip.js +1 -1
  157. package/components/index.d.ts +1 -1
  158. package/components/index.js +1 -1
  159. package/components/index.umd.js +2694 -3016
  160. package/components/index.umd.js.map +1 -1
  161. package/css/grid.css +110 -0
  162. package/css/reboot.css +7 -7
  163. package/css/sgds.css +1 -0
  164. package/index.d.ts +1 -1
  165. package/index.js +1 -1
  166. package/index.umd.js +2949 -3271
  167. package/index.umd.js.map +1 -1
  168. package/internals/CloseButton/close-button.js +1 -1
  169. package/internals/OverflowMenu/overflow-menu.js +1 -1
  170. package/package.json +1 -1
  171. package/react/base/button.cjs.js +1 -1
  172. package/react/base/button.js +1 -1
  173. package/react/base/card-element.cjs.js +0 -3
  174. package/react/base/card-element.cjs.js.map +1 -1
  175. package/react/base/card-element.js +0 -3
  176. package/react/base/card-element.js.map +1 -1
  177. package/react/base/card.cjs.js +1 -1
  178. package/react/base/card.js +1 -1
  179. package/react/base/sgds-element.cjs2.js +1 -1
  180. package/react/base/sgds-element2.js +1 -1
  181. package/react/components/Accordion/accordion-item.cjs.js +1 -1
  182. package/react/components/Accordion/accordion-item.js +1 -1
  183. package/react/components/Accordion/accordion.cjs.js +1 -1
  184. package/react/components/Accordion/accordion.js +1 -1
  185. package/react/components/Accordion/sgds-accordion-item.cjs.js +1 -5
  186. package/react/components/Accordion/sgds-accordion-item.cjs.js.map +1 -1
  187. package/react/components/Accordion/sgds-accordion-item.js +1 -5
  188. package/react/components/Accordion/sgds-accordion-item.js.map +1 -1
  189. package/react/components/Accordion/sgds-accordion.cjs.js +1 -6
  190. package/react/components/Accordion/sgds-accordion.cjs.js.map +1 -1
  191. package/react/components/Accordion/sgds-accordion.js +1 -6
  192. package/react/components/Accordion/sgds-accordion.js.map +1 -1
  193. package/react/components/Alert/alert.cjs.js +1 -1
  194. package/react/components/Alert/alert.js +1 -1
  195. package/react/components/Badge/badge.cjs.js +1 -1
  196. package/react/components/Badge/badge.js +1 -1
  197. package/react/components/Breadcrumb/breadcrumb-item.cjs.js +1 -1
  198. package/react/components/Breadcrumb/breadcrumb-item.js +1 -1
  199. package/react/components/Button/button.cjs.js +1 -1
  200. package/react/components/Button/button.js +1 -1
  201. package/react/components/Card/card.cjs.js +1 -1
  202. package/react/components/Card/card.js +1 -1
  203. package/react/components/Card/sgds-card.cjs.js +3 -3
  204. package/react/components/Card/sgds-card.cjs.js.map +1 -1
  205. package/react/components/Card/sgds-card.js +3 -3
  206. package/react/components/Card/sgds-card.js.map +1 -1
  207. package/react/components/Checkbox/checkbox.cjs.js +1 -1
  208. package/react/components/Checkbox/checkbox.js +1 -1
  209. package/react/components/ComboBox/combo-box-item.cjs2.js +1 -1
  210. package/react/components/ComboBox/combo-box-item2.js +1 -1
  211. package/react/components/ComboBox/combo-box.cjs.js +1 -1
  212. package/react/components/ComboBox/combo-box.js +1 -1
  213. package/react/components/ComboBox/sgds-combo-box.cjs.js +6 -1
  214. package/react/components/ComboBox/sgds-combo-box.cjs.js.map +1 -1
  215. package/react/components/ComboBox/sgds-combo-box.js +6 -1
  216. package/react/components/ComboBox/sgds-combo-box.js.map +1 -1
  217. package/react/components/Datepicker/datepicker-calendar.cjs2.js +1 -1
  218. package/react/components/Datepicker/datepicker-calendar2.js +1 -1
  219. package/react/components/Datepicker/datepicker.cjs.js +1 -1
  220. package/react/components/Datepicker/datepicker.js +1 -1
  221. package/react/components/DescriptionList/description-list-group.cjs.js +1 -1
  222. package/react/components/DescriptionList/description-list-group.js +1 -1
  223. package/react/components/DescriptionList/description-list.cjs.js +1 -1
  224. package/react/components/DescriptionList/description-list.js +1 -1
  225. package/react/components/DescriptionList/sgds-description-list-group.cjs.js +11 -11
  226. package/react/components/DescriptionList/sgds-description-list-group.cjs.js.map +1 -1
  227. package/react/components/DescriptionList/sgds-description-list-group.js +11 -11
  228. package/react/components/DescriptionList/sgds-description-list-group.js.map +1 -1
  229. package/react/components/DescriptionList/sgds-description-list.cjs.js +4 -6
  230. package/react/components/DescriptionList/sgds-description-list.cjs.js.map +1 -1
  231. package/react/components/DescriptionList/sgds-description-list.js +4 -6
  232. package/react/components/DescriptionList/sgds-description-list.js.map +1 -1
  233. package/react/components/Divider/divider.cjs.js +1 -1
  234. package/react/components/Divider/divider.js +1 -1
  235. package/react/components/Drawer/drawer.cjs.js +1 -1
  236. package/react/components/Drawer/drawer.js +1 -1
  237. package/react/components/Drawer/sgds-drawer.cjs.js +15 -72
  238. package/react/components/Drawer/sgds-drawer.cjs.js.map +1 -1
  239. package/react/components/Drawer/sgds-drawer.js +16 -73
  240. package/react/components/Drawer/sgds-drawer.js.map +1 -1
  241. package/react/components/Dropdown/dropdown-item.cjs.js +1 -1
  242. package/react/components/Dropdown/dropdown-item.js +1 -1
  243. package/react/components/Dropdown/dropdown-menu.cjs.js +1 -1
  244. package/react/components/Dropdown/dropdown-menu.js +1 -1
  245. package/react/components/Dropdown/sgds-dropdown-item.cjs.js.map +1 -1
  246. package/react/components/Dropdown/sgds-dropdown-item.js.map +1 -1
  247. package/react/components/FileUpload/file-upload.cjs.js +1 -1
  248. package/react/components/FileUpload/file-upload.js +1 -1
  249. package/react/components/FileUpload/sgds-file-upload.cjs.js +2 -2
  250. package/react/components/FileUpload/sgds-file-upload.cjs.js.map +1 -1
  251. package/react/components/FileUpload/sgds-file-upload.js +2 -2
  252. package/react/components/FileUpload/sgds-file-upload.js.map +1 -1
  253. package/react/components/Footer/footer-item.cjs.js +1 -1
  254. package/react/components/Footer/footer-item.js +1 -1
  255. package/react/components/Footer/footer.cjs.js +1 -1
  256. package/react/components/Footer/footer.js +1 -1
  257. package/react/components/Input/input.cjs.js +1 -1
  258. package/react/components/Input/input.js +1 -1
  259. package/react/components/Link/link.cjs.js +1 -1
  260. package/react/components/Link/link.js +1 -1
  261. package/react/components/Link/sgds-link.cjs.js +13 -1
  262. package/react/components/Link/sgds-link.cjs.js.map +1 -1
  263. package/react/components/Link/sgds-link.js +13 -1
  264. package/react/components/Link/sgds-link.js.map +1 -1
  265. package/react/components/Mainnav/mainnav-dropdown.cjs.js +1 -1
  266. package/react/components/Mainnav/mainnav-dropdown.js +1 -1
  267. package/react/components/Mainnav/mainnav-item.cjs.js +1 -1
  268. package/react/components/Mainnav/mainnav-item.js +1 -1
  269. package/react/components/Mainnav/mainnav.cjs.js +1 -1
  270. package/react/components/Mainnav/mainnav.js +1 -1
  271. package/react/components/Mainnav/sgds-mainnav-dropdown.cjs.js +23 -36
  272. package/react/components/Mainnav/sgds-mainnav-dropdown.cjs.js.map +1 -1
  273. package/react/components/Mainnav/sgds-mainnav-dropdown.js +24 -37
  274. package/react/components/Mainnav/sgds-mainnav-dropdown.js.map +1 -1
  275. package/react/components/Mainnav/sgds-mainnav-item.cjs.js +58 -3
  276. package/react/components/Mainnav/sgds-mainnav-item.cjs.js.map +1 -1
  277. package/react/components/Mainnav/sgds-mainnav-item.js +58 -3
  278. package/react/components/Mainnav/sgds-mainnav-item.js.map +1 -1
  279. package/react/components/Mainnav/sgds-mainnav.cjs.js +7 -6
  280. package/react/components/Mainnav/sgds-mainnav.cjs.js.map +1 -1
  281. package/react/components/Mainnav/sgds-mainnav.js +7 -6
  282. package/react/components/Mainnav/sgds-mainnav.js.map +1 -1
  283. package/react/components/Masthead/masthead.cjs.js +1 -1
  284. package/react/components/Masthead/masthead.js +1 -1
  285. package/react/components/Modal/modal.cjs.js +1 -1
  286. package/react/components/Modal/modal.js +1 -1
  287. package/react/components/Pagination/pagination.cjs.js +1 -1
  288. package/react/components/Pagination/pagination.js +1 -1
  289. package/react/components/ProgressBar/progress-bar.cjs.js +1 -1
  290. package/react/components/ProgressBar/progress-bar.js +1 -1
  291. package/react/components/ProgressBar/sgds-progress-bar.cjs.js +1 -1
  292. package/react/components/ProgressBar/sgds-progress-bar.cjs.js.map +1 -1
  293. package/react/components/ProgressBar/sgds-progress-bar.js +1 -1
  294. package/react/components/ProgressBar/sgds-progress-bar.js.map +1 -1
  295. package/react/components/QuantityToggle/sgds-quantity-toggle.cjs.js +0 -5
  296. package/react/components/QuantityToggle/sgds-quantity-toggle.cjs.js.map +1 -1
  297. package/react/components/QuantityToggle/sgds-quantity-toggle.js +0 -5
  298. package/react/components/QuantityToggle/sgds-quantity-toggle.js.map +1 -1
  299. package/react/components/Radio/radio.cjs.js +1 -1
  300. package/react/components/Radio/radio.js +1 -1
  301. package/react/components/Sidenav/sgds-sidenav-item.cjs.js +37 -41
  302. package/react/components/Sidenav/sgds-sidenav-item.cjs.js.map +1 -1
  303. package/react/components/Sidenav/sgds-sidenav-item.js +39 -43
  304. package/react/components/Sidenav/sgds-sidenav-item.js.map +1 -1
  305. package/react/components/Sidenav/sidenav-item.cjs.js +1 -1
  306. package/react/components/Sidenav/sidenav-item.js +1 -1
  307. package/react/components/Sidenav/sidenav-link.cjs.js +1 -1
  308. package/react/components/Sidenav/sidenav-link.js +1 -1
  309. package/react/components/Skeleton/skeleton.cjs.js +1 -1
  310. package/react/components/Skeleton/skeleton.js +1 -1
  311. package/react/components/Spinner/spinner.cjs.js +1 -1
  312. package/react/components/Spinner/spinner.js +1 -1
  313. package/react/components/Stepper/stepper.cjs.js +1 -1
  314. package/react/components/Stepper/stepper.js +1 -1
  315. package/react/components/Switch/switch.cjs.js +1 -1
  316. package/react/components/Switch/switch.js +1 -1
  317. package/react/components/Tab/tab.cjs.js +1 -1
  318. package/react/components/Tab/tab.js +1 -1
  319. package/react/components/Table/sgds-table.cjs.js +59 -201
  320. package/react/components/Table/sgds-table.cjs.js.map +1 -1
  321. package/react/components/Table/sgds-table.js +59 -201
  322. package/react/components/Table/sgds-table.js.map +1 -1
  323. package/react/components/Table/table.cjs.js +1 -1
  324. package/react/components/Table/table.js +1 -1
  325. package/react/components/TableOfContents/sgds-table-of-contents.cjs.js +31 -0
  326. package/react/components/TableOfContents/sgds-table-of-contents.cjs.js.map +1 -0
  327. package/react/components/TableOfContents/sgds-table-of-contents.js +26 -0
  328. package/react/components/TableOfContents/sgds-table-of-contents.js.map +1 -0
  329. package/react/components/TableOfContents/table-of-contents.cjs.js +11 -0
  330. package/react/components/TableOfContents/table-of-contents.cjs.js.map +1 -0
  331. package/react/components/TableOfContents/table-of-contents.js +7 -0
  332. package/react/components/TableOfContents/table-of-contents.js.map +1 -0
  333. package/react/components/Textarea/textarea.cjs.js +1 -1
  334. package/react/components/Textarea/textarea.js +1 -1
  335. package/react/components/Toast/toast.cjs.js +1 -1
  336. package/react/components/Toast/toast.js +1 -1
  337. package/react/components/Tooltip/tooltip.cjs.js +1 -1
  338. package/react/components/Tooltip/tooltip.js +1 -1
  339. package/react/index.cjs.js +94 -94
  340. package/react/index.d.ts +1 -1
  341. package/react/index.js +1 -1
  342. package/react/internals/CloseButton/close-button.cjs.js +1 -1
  343. package/react/internals/CloseButton/close-button.js +1 -1
  344. package/react/internals/OverflowMenu/overflow-menu.cjs.js +1 -1
  345. package/react/internals/OverflowMenu/overflow-menu.js +1 -1
  346. package/react/styles/feedback.cjs.js +1 -1
  347. package/react/styles/feedback.js +1 -1
  348. package/react/{action-card → table-of-contents}/index.cjs.js +5 -7
  349. package/react/table-of-contents/index.cjs.js.map +1 -0
  350. package/react/{action-card → table-of-contents}/index.js +5 -7
  351. package/react/table-of-contents/index.js.map +1 -0
  352. package/styles/feedback.js +1 -1
  353. package/themes/day.css +113 -105
  354. package/themes/night.css +117 -109
  355. package/themes/root.css +92 -85
  356. package/base/link-element.js +0 -55
  357. package/base/link-element.js.map +0 -1
  358. package/components/ActionCard/action-card.js +0 -6
  359. package/components/ActionCard/action-card.js.map +0 -1
  360. package/components/ActionCard/index.d.ts +0 -6
  361. package/components/ActionCard/index.js +0 -5
  362. package/components/ActionCard/index.js.map +0 -1
  363. package/components/ActionCard/index.umd.js +0 -5860
  364. package/components/ActionCard/index.umd.js.map +0 -1
  365. package/components/ActionCard/sgds-action-card.d.ts +0 -54
  366. package/components/ActionCard/sgds-action-card.js +0 -148
  367. package/components/ActionCard/sgds-action-card.js.map +0 -1
  368. package/react/action-card/index.cjs.js.map +0 -1
  369. package/react/action-card/index.js.map +0 -1
  370. package/react/base/link-element.cjs.js +0 -60
  371. package/react/base/link-element.cjs.js.map +0 -1
  372. package/react/base/link-element.js +0 -56
  373. package/react/base/link-element.js.map +0 -1
  374. package/react/components/ActionCard/action-card.cjs.js +0 -11
  375. package/react/components/ActionCard/action-card.cjs.js.map +0 -1
  376. package/react/components/ActionCard/action-card.js +0 -7
  377. package/react/components/ActionCard/action-card.js.map +0 -1
  378. package/react/components/ActionCard/sgds-action-card.cjs.js +0 -154
  379. package/react/components/ActionCard/sgds-action-card.cjs.js.map +0 -1
  380. package/react/components/ActionCard/sgds-action-card.js +0 -149
  381. package/react/components/ActionCard/sgds-action-card.js.map +0 -1
  382. /package/react/{action-card → table-of-contents}/index.d.ts +0 -0
@@ -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{--drawer-padding:var(--sgds-spacer-4);--drawer-size:35rem;--drawer-bg:var(--sgds-body-bg);--drawer-button-gap:var(--sgds-spacer-2);display:contents}.drawer{height:100%;inset-inline-start:0;overflow:hidden;pointer-events:none;top:0;width:100%}.drawer-fixed{position:fixed;z-index:1055}.drawer-panel{background-color:var(--drawer-bg);box-shadow:0 2px 8px hsla(240,4%,46%,.12);display:flex;flex-direction:column;max-height:100%;max-width:100%;overflow:auto;pointer-events:all;position:absolute;z-index:2}.drawer-panel:focus{outline:none}.drawer-top .drawer-panel{bottom:auto;height:var(--drawer-size);inset-inline-end:auto;inset-inline-start:0;top:0;width:100%}.drawer-end .drawer-panel{bottom:auto;height:100%;inset-inline-end:0;inset-inline-start:auto;top:0;width:var(--drawer-size)}.drawer-bottom .drawer-panel{bottom:0;height:var(--drawer-size);inset-inline-end:auto;inset-inline-start:0;top:auto;width:100%}.drawer-start .drawer-panel{bottom:auto;height:100%;inset-inline-end:auto;inset-inline-start:0;top:0;width:var(--drawer-size)}.drawer-header{display:flex;padding:var(--drawer-padding)}.drawer-title{flex:1 1 auto;font:inherit;font-size:calc(1.275rem + .3vw);line-height:1.33;margin:0}.drawer-header-actions{cursor:pointer;display:flex;flex-shrink:0;flex-wrap:wrap;gap:var(--drawer-button-gap);justify-content:end;padding:0 var(--drawer-padding)}.drawer-header-actions .drawer-close{align-self:center;display:flex;flex:0 0 auto}.drawer-body{-webkit-overflow-scrolling:touch;display:block;flex:1 1 auto;overflow:auto}.drawer-body,.drawer-footer{padding:var(--drawer-padding)}.drawer-footer{text-align:right}.drawer-footer ::slotted(sgds-button:not(:last-of-type)){margin-inline-end:var(--drawer-button-gap)}.drawer:not(.drawer-has-footer) .drawer-footer{display:none}.drawer-overlay{background-color:rgba(0,0,0,.5);bottom:0;display:block;left:0;pointer-events:all;position:fixed;right:0;top:0}.drawer-contained .drawer-overlay{display:none}`;
8
+ var css_248z = lit.css`:host{display:contents}.drawer{height:100%;inset-inline-start:0;overflow:hidden;pointer-events:none;top:0;width:100%}.drawer-fixed{position:fixed;z-index:1100}.drawer-panel{background-color:var(--sgds-surface-default);display:flex;flex-direction:column;gap:var(--sgds-gap-2-xl);max-height:100%;max-width:100%;overflow:auto;padding:var(--sgds-padding-4-xl) var(--sgds-padding-3-xl);pointer-events:all;position:absolute;z-index:2}.drawer-panel:focus{outline:none}.drawer-top .drawer-panel{bottom:auto;height:var(--sgds-dimension-512);inset-inline-end:auto;inset-inline-start:0;top:0;width:100%}.drawer-end .drawer-panel{bottom:auto;height:100%;inset-inline-end:0;inset-inline-start:auto;top:0;width:var(--sgds-dimension-512)}.drawer-bottom .drawer-panel{bottom:0;height:var(--sgds-dimension-512);inset-inline-end:auto;inset-inline-start:0;top:auto;width:100%}.drawer-start .drawer-panel{bottom:auto;height:100%;inset-inline-end:auto;inset-inline-start:0;top:0;width:var(--sgds-dimension-512)}.drawer-header{display:flex;flex-direction:column;gap:var(--sgds-gap-sm)}slot[name=title]::slotted(*){--sgds-margin-2-xs:var(--sgds-margin-none);--sgds-font-size-6:var(--sgds-font-size-4);color:var(--sgds-color-default)!important;font-size:var(--sgds-font-size-6,var(--sgds-font-size-4));margin-bottom:var(--sgds-margin-2-xs,var(--sgds-margin-none))}slot[name=description]::slotted(*){--sgds-paragraph-spacing-xl:var(--sgds-margin-none);color:var(--sgds-color-subtle);margin-bottom:var(--sgds-paragraph-spacing-xl,var(--sgds-margin-none))}sgds-close-button{position:absolute;right:32px;top:32px}.drawer-body{-webkit-overflow-scrolling:touch;display:block;flex:1 1 auto;overflow:auto}.drawer-overlay{background-color:var(--sgds-bg-overlay);bottom:0;display:block;left:0;pointer-events:all;position:fixed;right:0;top:0}.drawer-contained .drawer-overlay{display:none}@media screen and (max-width:768px){.drawer-panel{padding:var(--sgds-padding-3-xl) var(--sgds-padding-lg)}sgds-close-button{right:20px;top:20px}}`;
9
9
 
10
10
  exports["default"] = css_248z;
11
11
  //# sourceMappingURL=drawer.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{--drawer-padding:var(--sgds-spacer-4);--drawer-size:35rem;--drawer-bg:var(--sgds-body-bg);--drawer-button-gap:var(--sgds-spacer-2);display:contents}.drawer{height:100%;inset-inline-start:0;overflow:hidden;pointer-events:none;top:0;width:100%}.drawer-fixed{position:fixed;z-index:1055}.drawer-panel{background-color:var(--drawer-bg);box-shadow:0 2px 8px hsla(240,4%,46%,.12);display:flex;flex-direction:column;max-height:100%;max-width:100%;overflow:auto;pointer-events:all;position:absolute;z-index:2}.drawer-panel:focus{outline:none}.drawer-top .drawer-panel{bottom:auto;height:var(--drawer-size);inset-inline-end:auto;inset-inline-start:0;top:0;width:100%}.drawer-end .drawer-panel{bottom:auto;height:100%;inset-inline-end:0;inset-inline-start:auto;top:0;width:var(--drawer-size)}.drawer-bottom .drawer-panel{bottom:0;height:var(--drawer-size);inset-inline-end:auto;inset-inline-start:0;top:auto;width:100%}.drawer-start .drawer-panel{bottom:auto;height:100%;inset-inline-end:auto;inset-inline-start:0;top:0;width:var(--drawer-size)}.drawer-header{display:flex;padding:var(--drawer-padding)}.drawer-title{flex:1 1 auto;font:inherit;font-size:calc(1.275rem + .3vw);line-height:1.33;margin:0}.drawer-header-actions{cursor:pointer;display:flex;flex-shrink:0;flex-wrap:wrap;gap:var(--drawer-button-gap);justify-content:end;padding:0 var(--drawer-padding)}.drawer-header-actions .drawer-close{align-self:center;display:flex;flex:0 0 auto}.drawer-body{-webkit-overflow-scrolling:touch;display:block;flex:1 1 auto;overflow:auto}.drawer-body,.drawer-footer{padding:var(--drawer-padding)}.drawer-footer{text-align:right}.drawer-footer ::slotted(sgds-button:not(:last-of-type)){margin-inline-end:var(--drawer-button-gap)}.drawer:not(.drawer-has-footer) .drawer-footer{display:none}.drawer-overlay{background-color:rgba(0,0,0,.5);bottom:0;display:block;left:0;pointer-events:all;position:fixed;right:0;top:0}.drawer-contained .drawer-overlay{display:none}`;
4
+ var css_248z = css`:host{display:contents}.drawer{height:100%;inset-inline-start:0;overflow:hidden;pointer-events:none;top:0;width:100%}.drawer-fixed{position:fixed;z-index:1100}.drawer-panel{background-color:var(--sgds-surface-default);display:flex;flex-direction:column;gap:var(--sgds-gap-2-xl);max-height:100%;max-width:100%;overflow:auto;padding:var(--sgds-padding-4-xl) var(--sgds-padding-3-xl);pointer-events:all;position:absolute;z-index:2}.drawer-panel:focus{outline:none}.drawer-top .drawer-panel{bottom:auto;height:var(--sgds-dimension-512);inset-inline-end:auto;inset-inline-start:0;top:0;width:100%}.drawer-end .drawer-panel{bottom:auto;height:100%;inset-inline-end:0;inset-inline-start:auto;top:0;width:var(--sgds-dimension-512)}.drawer-bottom .drawer-panel{bottom:0;height:var(--sgds-dimension-512);inset-inline-end:auto;inset-inline-start:0;top:auto;width:100%}.drawer-start .drawer-panel{bottom:auto;height:100%;inset-inline-end:auto;inset-inline-start:0;top:0;width:var(--sgds-dimension-512)}.drawer-header{display:flex;flex-direction:column;gap:var(--sgds-gap-sm)}slot[name=title]::slotted(*){--sgds-margin-2-xs:var(--sgds-margin-none);--sgds-font-size-6:var(--sgds-font-size-4);color:var(--sgds-color-default)!important;font-size:var(--sgds-font-size-6,var(--sgds-font-size-4));margin-bottom:var(--sgds-margin-2-xs,var(--sgds-margin-none))}slot[name=description]::slotted(*){--sgds-paragraph-spacing-xl:var(--sgds-margin-none);color:var(--sgds-color-subtle);margin-bottom:var(--sgds-paragraph-spacing-xl,var(--sgds-margin-none))}sgds-close-button{position:absolute;right:32px;top:32px}.drawer-body{-webkit-overflow-scrolling:touch;display:block;flex:1 1 auto;overflow:auto}.drawer-overlay{background-color:var(--sgds-bg-overlay);bottom:0;display:block;left:0;pointer-events:all;position:fixed;right:0;top:0}.drawer-contained .drawer-overlay{display:none}@media screen and (max-width:768px){.drawer-panel{padding:var(--sgds-padding-3-xl) var(--sgds-padding-lg)}sgds-close-button{right:20px;top:20px}}`;
5
5
 
6
6
  export { css_248z as default };
7
7
  //# sourceMappingURL=drawer.js.map
@@ -7,13 +7,11 @@ var tslib = require('tslib');
7
7
  var lit = require('lit');
8
8
  var decorators_js = require('lit/decorators.js');
9
9
  var classMap_js = require('lit/directives/class-map.js');
10
- var ifDefined_js = require('lit/directives/if-defined.js');
11
10
  var sgdsElement = require('../../base/sgds-element.cjs.js');
12
11
  var animate = require('../../utils/animate.cjs.js');
13
12
  var animationRegistry = require('../../utils/animation-registry.cjs.js');
14
13
  var event = require('../../utils/event.cjs.js');
15
14
  var scroll = require('../../utils/scroll.cjs.js');
16
- var slot = require('../../utils/slot.cjs.js');
17
15
  var watch = require('../../utils/watch.cjs.js');
18
16
  var drawer = require('./drawer.cjs.js');
19
17
  var sgdsCloseButton = require('../../internals/CloseButton/sgds-close-button.cjs.js');
@@ -21,10 +19,9 @@ var sgdsCloseButton = require('../../internals/CloseButton/sgds-close-button.cjs
21
19
  /**
22
20
  * @summary Drawers slide in from a container to expose additional options and information.
23
21
  *
24
- * @slot - The drawer's main content.
25
- * @slot label - The drawer's label. Alternatively, you can use the `label` attribute.
26
- * @slot header-actions - Optional actions to add to the header.
27
- * @slot footer - The drawer's footer, usually one or more buttons representing various options.
22
+ * @slot default - The drawer's main content
23
+ * @slot title - The title of the drawer
24
+ * @slot description - The description of the drawer
28
25
  *
29
26
  * @event sgds-show - Emitted when the drawer opens.
30
27
  * @event sgds-after-show - Emitted after the drawer opens and all animations are complete.
@@ -37,38 +34,15 @@ var sgdsCloseButton = require('../../internals/CloseButton/sgds-close-button.cjs
37
34
  * `event.preventDefault()` will keep the drawer open. Avoid using this unless closing the drawer will result in
38
35
  * destructive behavior such as data loss.
39
36
  *
40
- * @csspart base - The component's base wrapper.
41
- * @csspart overlay - The overlay that covers the screen behind the drawer.
42
- * @csspart panel - The drawer's panel (where the drawer and its content are rendered).
43
- * @csspart header - The drawer's header. This element wraps the title and header actions.
44
- * @csspart header-actions - Optional actions to add to the header.
45
- * @csspart title - The drawer's title.
46
- * @csspart close-button - The close button.
47
- * @csspart body - The drawer's body.
48
- * @csspart footer - The drawer's footer.
49
- *
50
- * @cssproperty --drawer-size - The preferred size of the drawer. This will be applied to the drawer's width or height
51
- * depending on its `placement`. Note that the drawer will shrink to accommodate smaller screens.
52
- * @cssproperty --drawer-padding - The amount of padding to use for the header, body and footer
53
- * @cssproperty --drawer-bg - The drawer's background color.
54
- * @cssproperty --drawer-button-gap - The drawer's flex gap between buttons.
55
- *
56
37
  */
57
38
  class SgdsDrawer extends sgdsElement["default"] {
58
39
  constructor() {
59
40
  super(...arguments);
60
- /** @internal */
61
- this.hasSlotController = new slot.HasSlotController(this, "footer");
62
41
  /**
63
42
  * Indicates whether or not the drawer is open. You can toggle this attribute to show and hide the drawer, or you can
64
43
  * use the `show()` and `hide()` methods and this attribute will reflect the drawer's open state.
65
44
  */
66
45
  this.open = false;
67
- /**
68
- * The drawer's label as displayed in the header. You should always include a relevant label even when using
69
- * `noHeader`, as it is required for proper accessibility. If you need to display HTML, use the `label` slot instead.
70
- */
71
- this.label = "";
72
46
  /** The direction from which the drawer will open. */
73
47
  this.placement = "end";
74
48
  /**
@@ -76,11 +50,6 @@ class SgdsDrawer extends sgdsElement["default"] {
76
50
  * its parent element, set this attribute and add `position: relative` to the parent.
77
51
  */
78
52
  this.contained = false;
79
- /**
80
- * Removes the header. This will also remove the default close button, so please ensure you provide an easy,
81
- * accessible way for users to dismiss the drawer.
82
- */
83
- this.noHeader = false;
84
53
  this.handleDocumentKeyDown = (event) => {
85
54
  if (this.open && !this.contained && event.key === "Escape") {
86
55
  event.stopPropagation();
@@ -229,7 +198,6 @@ class SgdsDrawer extends sgdsElement["default"] {
229
198
  render() {
230
199
  return lit.html `
231
200
  <div
232
- part="base"
233
201
  class=${classMap_js.classMap({
234
202
  drawer: true,
235
203
  "drawer-open": this.open,
@@ -238,47 +206,28 @@ class SgdsDrawer extends sgdsElement["default"] {
238
206
  "drawer-bottom": this.placement === "bottom",
239
207
  "drawer-start": this.placement === "start",
240
208
  "drawer-contained": this.contained,
241
- "drawer-fixed": !this.contained,
242
- "drawer-has-footer": this.hasSlotController.test("footer")
209
+ "drawer-fixed": !this.contained
243
210
  })}
244
211
  >
245
- <div part="overlay" class="drawer-overlay" @click=${() => this.requestClose("overlay")} tabindex="-1"></div>
212
+ <div class="drawer-overlay" @click=${() => this.requestClose("overlay")} tabindex="-1"></div>
246
213
 
247
214
  <div
248
- part="panel"
249
215
  class="drawer-panel"
250
216
  role="dialog"
251
217
  aria-modal="true"
252
218
  aria-hidden=${this.open ? "false" : "true"}
253
- aria-label=${ifDefined_js.ifDefined(this.noHeader ? this.label : undefined)}
254
- aria-labelledby=${ifDefined_js.ifDefined(!this.noHeader ? "title" : undefined)}
255
219
  tabindex="0"
256
220
  >
257
- ${!this.noHeader
258
- ? lit.html `
259
- <header part="header" class="drawer-header">
260
- <h2 part="title" class="drawer-title" id="title">
261
- <!-- If there's no label, use an invisible character to prevent the header from collapsing -->
262
- <slot name="label"> ${this.label.length > 0 ? this.label : String.fromCharCode(65279)} </slot>
263
- </h2>
264
- <div part="header-actions" class="drawer-header-actions">
265
- <slot name="header-actions"></slot>
266
- <sgds-close-button
267
- part="close-button"
268
- class="drawer-close"
269
- aria-label="close drawer"
270
- @click="${() => this.requestClose("close-button")}"
271
- ></sgds-close-button>
272
- </div>
273
- </header>
274
- `
275
- : lit.nothing}
276
-
277
- <slot part="body" class="drawer-body"></slot>
278
-
279
- <footer part="footer" class="drawer-footer">
280
- <slot name="footer"></slot>
281
- </footer>
221
+ <header class="drawer-header">
222
+ <slot name="title"></slot>
223
+ <slot name="description"></slot>
224
+ <sgds-close-button
225
+ class="drawer-close"
226
+ aria-label="close drawer"
227
+ @click="${() => this.requestClose("close-button")}"
228
+ ></sgds-close-button>
229
+ </header>
230
+ <slot class="drawer-body"></slot>
282
231
  </div>
283
232
  </div>
284
233
  `;
@@ -301,18 +250,12 @@ tslib.__decorate([
301
250
  tslib.__decorate([
302
251
  decorators_js.property({ type: Boolean, reflect: true })
303
252
  ], SgdsDrawer.prototype, "open", void 0);
304
- tslib.__decorate([
305
- decorators_js.property({ type: String, reflect: true })
306
- ], SgdsDrawer.prototype, "label", void 0);
307
253
  tslib.__decorate([
308
254
  decorators_js.property({ type: String, reflect: true })
309
255
  ], SgdsDrawer.prototype, "placement", void 0);
310
256
  tslib.__decorate([
311
257
  decorators_js.property({ type: Boolean, reflect: true })
312
258
  ], SgdsDrawer.prototype, "contained", void 0);
313
- tslib.__decorate([
314
- decorators_js.property({ type: Boolean, reflect: true })
315
- ], SgdsDrawer.prototype, "noHeader", void 0);
316
259
  tslib.__decorate([
317
260
  watch.watch("open", { waitUntilFirstUpdate: true })
318
261
  ], SgdsDrawer.prototype, "handleOpenChange", null);
@@ -1 +1 @@
1
- {"version":3,"file":"sgds-drawer.cjs.js","sources":["../../../../src/components/Drawer/sgds-drawer.ts"],"sourcesContent":["import { html, nothing } from \"lit\";\nimport { property, query } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport SgdsElement from \"../../base/sgds-element\";\nimport { animateTo, stopAnimations } from \"../../utils/animate.js\";\nimport { getAnimation, setDefaultAnimation } from \"../../utils/animation-registry.js\";\nimport { waitForEvent } from \"../../utils/event.js\";\nimport { lockBodyScrolling, unlockBodyScrolling } from \"../../utils/scroll.js\";\nimport { HasSlotController } from \"../../utils/slot.js\";\nimport { watch } from \"../../utils/watch.js\";\nimport drawerStyles from \"./drawer.css\";\nimport SgdsCloseButton from \"../../internals/CloseButton/sgds-close-button\";\n\n/**\n * @summary Drawers slide in from a container to expose additional options and information.\n *\n * @slot - The drawer's main content.\n * @slot label - The drawer's label. Alternatively, you can use the `label` attribute.\n * @slot header-actions - Optional actions to add to the header.\n * @slot footer - The drawer's footer, usually one or more buttons representing various options.\n *\n * @event sgds-show - Emitted when the drawer opens.\n * @event sgds-after-show - Emitted after the drawer opens and all animations are complete.\n * @event sgds-hide - Emitted when the drawer closes.\n * @event sgds-after-hide - Emitted after the drawer closes and all animations are complete.\n * @event sgds-initial-focus - Emitted when the drawer opens and is ready to receive focus. Calling\n * `event.preventDefault()` will prevent focusing and allow you to set it on a different element, such as an input.\n * @event {{ source: 'close-button' | 'keyboard' | 'overlay' }} sgds-request-close - Emitted when the user attempts to\n * close the drawer by clicking the close button, clicking the overlay, or pressing escape. Calling\n * `event.preventDefault()` will keep the drawer open. Avoid using this unless closing the drawer will result in\n * destructive behavior such as data loss.\n *\n * @csspart base - The component's base wrapper.\n * @csspart overlay - The overlay that covers the screen behind the drawer.\n * @csspart panel - The drawer's panel (where the drawer and its content are rendered).\n * @csspart header - The drawer's header. This element wraps the title and header actions.\n * @csspart header-actions - Optional actions to add to the header.\n * @csspart title - The drawer's title.\n * @csspart close-button - The close button.\n * @csspart body - The drawer's body.\n * @csspart footer - The drawer's footer.\n *\n * @cssproperty --drawer-size - The preferred size of the drawer. This will be applied to the drawer's width or height\n * depending on its `placement`. Note that the drawer will shrink to accommodate smaller screens.\n * @cssproperty --drawer-padding - The amount of padding to use for the header, body and footer\n * @cssproperty --drawer-bg - The drawer's background color.\n * @cssproperty --drawer-button-gap - The drawer's flex gap between buttons.\n *\n */\nexport class SgdsDrawer extends SgdsElement {\n static styles = [...SgdsElement.styles, drawerStyles];\n /**@internal */\n static dependencies = {\n \"sgds-close-button\": SgdsCloseButton\n };\n /** @internal */\n private readonly hasSlotController = new HasSlotController(this, \"footer\");\n /** @internal */\n private originalTrigger: HTMLElement | null;\n /** @internal */\n @query(\".drawer\") drawer: HTMLElement;\n /** @internal */\n @query(\".drawer-panel\") panel: HTMLElement;\n /** @internal */\n @query(\".drawer-overlay\") overlay: HTMLElement;\n\n /**\n * Indicates whether or not the drawer is open. You can toggle this attribute to show and hide the drawer, or you can\n * use the `show()` and `hide()` methods and this attribute will reflect the drawer's open state.\n */\n @property({ type: Boolean, reflect: true }) open = false;\n\n /**\n * The drawer's label as displayed in the header. You should always include a relevant label even when using\n * `noHeader`, as it is required for proper accessibility. If you need to display HTML, use the `label` slot instead.\n */\n @property({ type: String, reflect: true }) label = \"\";\n\n /** The direction from which the drawer will open. */\n @property({ type: String, reflect: true }) placement: \"top\" | \"end\" | \"bottom\" | \"start\" = \"end\";\n\n /**\n * By default, the drawer slides out of its containing block (usually the viewport). To make the drawer slide out of\n * its parent element, set this attribute and add `position: relative` to the parent.\n */\n @property({ type: Boolean, reflect: true }) contained = false;\n\n /**\n * Removes the header. This will also remove the default close button, so please ensure you provide an easy,\n * accessible way for users to dismiss the drawer.\n */\n @property({ type: Boolean, reflect: true }) noHeader = false;\n\n firstUpdated() {\n this.drawer.hidden = !this.open;\n\n if (this.open) {\n this.addOpenListeners();\n\n if (!this.contained) {\n lockBodyScrolling(this);\n }\n }\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n unlockBodyScrolling(this);\n }\n\n private uppercaseFirstLetter(string: string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n }\n\n private requestClose(source: \"close-button\" | \"keyboard\" | \"overlay\") {\n const slRequestClose = this.emit(\"sgds-request-close\", {\n cancelable: true,\n detail: { source }\n });\n\n if (slRequestClose.defaultPrevented) {\n const animation = getAnimation(this, \"drawer.denyClose\");\n animateTo(this.panel, animation.keyframes, animation.options);\n return;\n }\n\n this.hide();\n }\n\n private addOpenListeners() {\n document.addEventListener(\"keydown\", this.handleDocumentKeyDown);\n }\n\n private removeOpenListeners() {\n document.removeEventListener(\"keydown\", this.handleDocumentKeyDown);\n }\n\n private handleDocumentKeyDown = (event: KeyboardEvent) => {\n if (this.open && !this.contained && event.key === \"Escape\") {\n event.stopPropagation();\n this.requestClose(\"keyboard\");\n }\n };\n\n @watch(\"open\", { waitUntilFirstUpdate: true })\n async handleOpenChange() {\n if (this.open) {\n // Show\n this.emit(\"sgds-show\");\n this.addOpenListeners();\n this.originalTrigger = document.activeElement as HTMLElement;\n\n // Lock body scrolling only if the drawer isn't contained\n if (!this.contained) {\n lockBodyScrolling(this);\n }\n\n // When the drawer is shown, Safari will attempt to set focus on whatever element has autofocus. This causes the\n // drawer's animation to jitter, so we'll temporarily remove the attribute, call `focus({ preventScroll: true })`\n // ourselves, and add the attribute back afterwards.\n //\n // Related: https://github.com/shoelace-style/shoelace/issues/693\n //\n const autoFocusTarget = this.querySelector(\"[autofocus]\");\n if (autoFocusTarget) {\n autoFocusTarget.removeAttribute(\"autofocus\");\n }\n\n await Promise.all([stopAnimations(this.drawer), stopAnimations(this.overlay)]);\n this.drawer.hidden = false;\n\n // Set initial focus\n requestAnimationFrame(() => {\n const slInitialFocus = this.emit(\"sgds-initial-focus\", { cancelable: true });\n\n if (!slInitialFocus.defaultPrevented) {\n // Set focus to the autofocus target and restore the attribute\n if (autoFocusTarget) {\n (autoFocusTarget as HTMLInputElement).focus({ preventScroll: true });\n } else {\n this.panel.focus({ preventScroll: true });\n }\n }\n\n // Restore the autofocus attribute\n if (autoFocusTarget) {\n autoFocusTarget.setAttribute(\"autofocus\", \"\");\n }\n });\n\n const panelAnimation = getAnimation(this, `drawer.show${this.uppercaseFirstLetter(this.placement)}`);\n const overlayAnimation = getAnimation(this, \"drawer.overlay.show\");\n await Promise.all([\n animateTo(this.panel, panelAnimation.keyframes, panelAnimation.options),\n animateTo(this.overlay, overlayAnimation.keyframes, overlayAnimation.options)\n ]);\n\n this.emit(\"sgds-after-show\");\n } else {\n // Hide\n this.emit(\"sgds-hide\");\n this.removeOpenListeners();\n\n if (!this.contained) {\n unlockBodyScrolling(this);\n }\n\n await Promise.all([stopAnimations(this.drawer), stopAnimations(this.overlay)]);\n const panelAnimation = getAnimation(this, `drawer.hide${this.uppercaseFirstLetter(this.placement)}`);\n const overlayAnimation = getAnimation(this, \"drawer.overlay.hide\");\n\n // Animate the overlay and the panel at the same time. Because animation durations might be different, we need to\n // hide each one individually when the animation finishes, otherwise the first one that finishes will reappear\n // unexpectedly. We'll unhide them after all animations have completed.\n await Promise.all([\n animateTo(this.overlay, overlayAnimation.keyframes, overlayAnimation.options).then(() => {\n this.overlay.hidden = true;\n }),\n animateTo(this.panel, panelAnimation.keyframes, panelAnimation.options).then(() => {\n this.panel.hidden = true;\n })\n ]);\n\n this.drawer.hidden = true;\n\n // Now that the dialog is hidden, restore the overlay and panel for next time\n this.overlay.hidden = false;\n this.panel.hidden = false;\n\n // Restore focus to the original trigger\n const trigger = this.originalTrigger;\n if (typeof trigger?.focus === \"function\") {\n setTimeout(() => trigger.focus());\n }\n\n this.emit(\"sgds-after-hide\");\n }\n }\n\n @watch(\"contained\", { waitUntilFirstUpdate: true })\n handleNoModalChange() {\n if (this.open && !this.contained) {\n lockBodyScrolling(this);\n }\n\n if (this.open && this.contained) {\n unlockBodyScrolling(this);\n }\n }\n\n /** Shows the drawer. */\n public async show() {\n if (this.open) {\n return undefined;\n }\n\n this.open = true;\n return waitForEvent(this, \"sgds-after-show\");\n }\n\n /** Hides the drawer */\n public async hide() {\n if (!this.open) {\n return undefined;\n }\n\n this.open = false;\n return waitForEvent(this, \"sgds-after-hide\");\n }\n\n render() {\n return html`\n <div\n part=\"base\"\n class=${classMap({\n drawer: true,\n \"drawer-open\": this.open,\n \"drawer-top\": this.placement === \"top\",\n \"drawer-end\": this.placement === \"end\",\n \"drawer-bottom\": this.placement === \"bottom\",\n \"drawer-start\": this.placement === \"start\",\n \"drawer-contained\": this.contained,\n \"drawer-fixed\": !this.contained,\n \"drawer-has-footer\": this.hasSlotController.test(\"footer\")\n })}\n >\n <div part=\"overlay\" class=\"drawer-overlay\" @click=${() => this.requestClose(\"overlay\")} tabindex=\"-1\"></div>\n\n <div\n part=\"panel\"\n class=\"drawer-panel\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-hidden=${this.open ? \"false\" : \"true\"}\n aria-label=${ifDefined(this.noHeader ? this.label : undefined)}\n aria-labelledby=${ifDefined(!this.noHeader ? \"title\" : undefined)}\n tabindex=\"0\"\n >\n ${!this.noHeader\n ? html`\n <header part=\"header\" class=\"drawer-header\">\n <h2 part=\"title\" class=\"drawer-title\" id=\"title\">\n <!-- If there's no label, use an invisible character to prevent the header from collapsing -->\n <slot name=\"label\"> ${this.label.length > 0 ? this.label : String.fromCharCode(65279)} </slot>\n </h2>\n <div part=\"header-actions\" class=\"drawer-header-actions\">\n <slot name=\"header-actions\"></slot>\n <sgds-close-button\n part=\"close-button\"\n class=\"drawer-close\"\n aria-label=\"close drawer\"\n @click=\"${() => this.requestClose(\"close-button\")}\"\n ></sgds-close-button>\n </div>\n </header>\n `\n : nothing}\n\n <slot part=\"body\" class=\"drawer-body\"></slot>\n\n <footer part=\"footer\" class=\"drawer-footer\">\n <slot name=\"footer\"></slot>\n </footer>\n </div>\n </div>\n `;\n }\n}\n\n// Top\nsetDefaultAnimation(\"drawer.showTop\", {\n keyframes: [\n { opacity: 0, translate: \"0 -100%\" },\n { opacity: 1, translate: \"0 0\" }\n ],\n options: { duration: 250, easing: \"ease\" }\n});\n\nsetDefaultAnimation(\"drawer.hideTop\", {\n keyframes: [\n { opacity: 1, translate: \"0 0\" },\n { opacity: 0, translate: \"0 -100%\" }\n ],\n options: { duration: 250, easing: \"ease\" }\n});\n\n// End\nsetDefaultAnimation(\"drawer.showEnd\", {\n keyframes: [\n { opacity: 0, translate: \"100%\" },\n { opacity: 1, translate: \"0\" }\n ],\n rtlKeyframes: [\n { opacity: 0, translate: \"-100%\" },\n { opacity: 1, translate: \"0\" }\n ],\n options: { duration: 250, easing: \"ease\" }\n});\n\nsetDefaultAnimation(\"drawer.hideEnd\", {\n keyframes: [\n { opacity: 1, translate: \"0\" },\n { opacity: 0, translate: \"100%\" }\n ],\n rtlKeyframes: [\n { opacity: 1, translate: \"0\" },\n { opacity: 0, translate: \"-100%\" }\n ],\n options: { duration: 250, easing: \"ease\" }\n});\n\n// Bottom\nsetDefaultAnimation(\"drawer.showBottom\", {\n keyframes: [\n { opacity: 0, translate: \"0 100%\" },\n { opacity: 1, translate: \"0 0\" }\n ],\n options: { duration: 250, easing: \"ease\" }\n});\n\nsetDefaultAnimation(\"drawer.hideBottom\", {\n keyframes: [\n { opacity: 1, translate: \"0 0\" },\n { opacity: 0, translate: \"0 100%\" }\n ],\n options: { duration: 250, easing: \"ease\" }\n});\n\n// Start\nsetDefaultAnimation(\"drawer.showStart\", {\n keyframes: [\n { opacity: 0, translate: \"-100%\" },\n { opacity: 1, translate: \"0\" }\n ],\n rtlKeyframes: [\n { opacity: 0, translate: \"100%\" },\n { opacity: 1, translate: \"0\" }\n ],\n options: { duration: 250, easing: \"ease\" }\n});\n\nsetDefaultAnimation(\"drawer.hideStart\", {\n keyframes: [\n { opacity: 1, translate: \"0\" },\n { opacity: 0, translate: \"-100%\" }\n ],\n rtlKeyframes: [\n { opacity: 1, translate: \"0\" },\n { opacity: 0, translate: \"100%\" }\n ],\n options: { duration: 250, easing: \"ease\" }\n});\n\n// Deny close\nsetDefaultAnimation(\"drawer.denyClose\", {\n keyframes: [{ scale: 1 }, { scale: 1.01 }, { scale: 1 }],\n options: { duration: 250 }\n});\n\n// Overlay\nsetDefaultAnimation(\"drawer.overlay.show\", {\n keyframes: [{ opacity: 0 }, { opacity: 1 }],\n options: { duration: 250 }\n});\n\nsetDefaultAnimation(\"drawer.overlay.hide\", {\n keyframes: [{ opacity: 1 }, { opacity: 0 }],\n options: { duration: 250 }\n});\n\nexport default SgdsDrawer;\n"],"names":["SgdsElement","HasSlotController","lockBodyScrolling","unlockBodyScrolling","getAnimation","animateTo","stopAnimations","waitForEvent","html","classMap","ifDefined","nothing","drawerStyles","SgdsCloseButton","__decorate","query","property","watch","setDefaultAnimation"],"mappings":"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"}
1
+ {"version":3,"file":"sgds-drawer.cjs.js","sources":["../../../../src/components/Drawer/sgds-drawer.ts"],"sourcesContent":["import { html } from \"lit\";\nimport { property, query } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport SgdsElement from \"../../base/sgds-element\";\nimport { animateTo, stopAnimations } from \"../../utils/animate.js\";\nimport { getAnimation, setDefaultAnimation } from \"../../utils/animation-registry.js\";\nimport { waitForEvent } from \"../../utils/event.js\";\nimport { lockBodyScrolling, unlockBodyScrolling } from \"../../utils/scroll.js\";\nimport { watch } from \"../../utils/watch.js\";\nimport drawerStyles from \"./drawer.css\";\nimport SgdsCloseButton from \"../../internals/CloseButton/sgds-close-button\";\n\n/**\n * @summary Drawers slide in from a container to expose additional options and information.\n *\n * @slot default - The drawer's main content\n * @slot title - The title of the drawer\n * @slot description - The description of the drawer\n *\n * @event sgds-show - Emitted when the drawer opens.\n * @event sgds-after-show - Emitted after the drawer opens and all animations are complete.\n * @event sgds-hide - Emitted when the drawer closes.\n * @event sgds-after-hide - Emitted after the drawer closes and all animations are complete.\n * @event sgds-initial-focus - Emitted when the drawer opens and is ready to receive focus. Calling\n * `event.preventDefault()` will prevent focusing and allow you to set it on a different element, such as an input.\n * @event {{ source: 'close-button' | 'keyboard' | 'overlay' }} sgds-request-close - Emitted when the user attempts to\n * close the drawer by clicking the close button, clicking the overlay, or pressing escape. Calling\n * `event.preventDefault()` will keep the drawer open. Avoid using this unless closing the drawer will result in\n * destructive behavior such as data loss.\n *\n */\nexport class SgdsDrawer extends SgdsElement {\n static styles = [...SgdsElement.styles, drawerStyles];\n /**@internal */\n static dependencies = {\n \"sgds-close-button\": SgdsCloseButton\n };\n\n /** @internal */\n private originalTrigger: HTMLElement | null;\n /** @internal */\n @query(\".drawer\") drawer: HTMLElement;\n /** @internal */\n @query(\".drawer-panel\") panel: HTMLElement;\n /** @internal */\n @query(\".drawer-overlay\") overlay: HTMLElement;\n\n /**\n * Indicates whether or not the drawer is open. You can toggle this attribute to show and hide the drawer, or you can\n * use the `show()` and `hide()` methods and this attribute will reflect the drawer's open state.\n */\n @property({ type: Boolean, reflect: true }) open = false;\n\n /** The direction from which the drawer will open. */\n @property({ type: String, reflect: true }) placement: \"top\" | \"end\" | \"bottom\" | \"start\" = \"end\";\n\n /**\n * By default, the drawer slides out of its containing block (usually the viewport). To make the drawer slide out of\n * its parent element, set this attribute and add `position: relative` to the parent.\n */\n @property({ type: Boolean, reflect: true }) contained = false;\n\n firstUpdated() {\n this.drawer.hidden = !this.open;\n\n if (this.open) {\n this.addOpenListeners();\n\n if (!this.contained) {\n lockBodyScrolling(this);\n }\n }\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n unlockBodyScrolling(this);\n }\n\n private uppercaseFirstLetter(string: string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n }\n\n private requestClose(source: \"close-button\" | \"keyboard\" | \"overlay\") {\n const slRequestClose = this.emit(\"sgds-request-close\", {\n cancelable: true,\n detail: { source }\n });\n\n if (slRequestClose.defaultPrevented) {\n const animation = getAnimation(this, \"drawer.denyClose\");\n animateTo(this.panel, animation.keyframes, animation.options);\n return;\n }\n\n this.hide();\n }\n\n private addOpenListeners() {\n document.addEventListener(\"keydown\", this.handleDocumentKeyDown);\n }\n\n private removeOpenListeners() {\n document.removeEventListener(\"keydown\", this.handleDocumentKeyDown);\n }\n\n private handleDocumentKeyDown = (event: KeyboardEvent) => {\n if (this.open && !this.contained && event.key === \"Escape\") {\n event.stopPropagation();\n this.requestClose(\"keyboard\");\n }\n };\n\n @watch(\"open\", { waitUntilFirstUpdate: true })\n async handleOpenChange() {\n if (this.open) {\n // Show\n this.emit(\"sgds-show\");\n this.addOpenListeners();\n this.originalTrigger = document.activeElement as HTMLElement;\n\n // Lock body scrolling only if the drawer isn't contained\n if (!this.contained) {\n lockBodyScrolling(this);\n }\n\n // When the drawer is shown, Safari will attempt to set focus on whatever element has autofocus. This causes the\n // drawer's animation to jitter, so we'll temporarily remove the attribute, call `focus({ preventScroll: true })`\n // ourselves, and add the attribute back afterwards.\n //\n // Related: https://github.com/shoelace-style/shoelace/issues/693\n //\n const autoFocusTarget = this.querySelector(\"[autofocus]\");\n if (autoFocusTarget) {\n autoFocusTarget.removeAttribute(\"autofocus\");\n }\n\n await Promise.all([stopAnimations(this.drawer), stopAnimations(this.overlay)]);\n this.drawer.hidden = false;\n\n // Set initial focus\n requestAnimationFrame(() => {\n const slInitialFocus = this.emit(\"sgds-initial-focus\", { cancelable: true });\n\n if (!slInitialFocus.defaultPrevented) {\n // Set focus to the autofocus target and restore the attribute\n if (autoFocusTarget) {\n (autoFocusTarget as HTMLInputElement).focus({ preventScroll: true });\n } else {\n this.panel.focus({ preventScroll: true });\n }\n }\n\n // Restore the autofocus attribute\n if (autoFocusTarget) {\n autoFocusTarget.setAttribute(\"autofocus\", \"\");\n }\n });\n\n const panelAnimation = getAnimation(this, `drawer.show${this.uppercaseFirstLetter(this.placement)}`);\n const overlayAnimation = getAnimation(this, \"drawer.overlay.show\");\n await Promise.all([\n animateTo(this.panel, panelAnimation.keyframes, panelAnimation.options),\n animateTo(this.overlay, overlayAnimation.keyframes, overlayAnimation.options)\n ]);\n\n this.emit(\"sgds-after-show\");\n } else {\n // Hide\n this.emit(\"sgds-hide\");\n this.removeOpenListeners();\n\n if (!this.contained) {\n unlockBodyScrolling(this);\n }\n\n await Promise.all([stopAnimations(this.drawer), stopAnimations(this.overlay)]);\n const panelAnimation = getAnimation(this, `drawer.hide${this.uppercaseFirstLetter(this.placement)}`);\n const overlayAnimation = getAnimation(this, \"drawer.overlay.hide\");\n\n // Animate the overlay and the panel at the same time. Because animation durations might be different, we need to\n // hide each one individually when the animation finishes, otherwise the first one that finishes will reappear\n // unexpectedly. We'll unhide them after all animations have completed.\n await Promise.all([\n animateTo(this.overlay, overlayAnimation.keyframes, overlayAnimation.options).then(() => {\n this.overlay.hidden = true;\n }),\n animateTo(this.panel, panelAnimation.keyframes, panelAnimation.options).then(() => {\n this.panel.hidden = true;\n })\n ]);\n\n this.drawer.hidden = true;\n\n // Now that the dialog is hidden, restore the overlay and panel for next time\n this.overlay.hidden = false;\n this.panel.hidden = false;\n\n // Restore focus to the original trigger\n const trigger = this.originalTrigger;\n if (typeof trigger?.focus === \"function\") {\n setTimeout(() => trigger.focus());\n }\n\n this.emit(\"sgds-after-hide\");\n }\n }\n\n @watch(\"contained\", { waitUntilFirstUpdate: true })\n handleNoModalChange() {\n if (this.open && !this.contained) {\n lockBodyScrolling(this);\n }\n\n if (this.open && this.contained) {\n unlockBodyScrolling(this);\n }\n }\n\n /** Shows the drawer. */\n public async show() {\n if (this.open) {\n return undefined;\n }\n\n this.open = true;\n return waitForEvent(this, \"sgds-after-show\");\n }\n\n /** Hides the drawer */\n public async hide() {\n if (!this.open) {\n return undefined;\n }\n\n this.open = false;\n return waitForEvent(this, \"sgds-after-hide\");\n }\n\n render() {\n return html`\n <div\n class=${classMap({\n drawer: true,\n \"drawer-open\": this.open,\n \"drawer-top\": this.placement === \"top\",\n \"drawer-end\": this.placement === \"end\",\n \"drawer-bottom\": this.placement === \"bottom\",\n \"drawer-start\": this.placement === \"start\",\n \"drawer-contained\": this.contained,\n \"drawer-fixed\": !this.contained\n })}\n >\n <div class=\"drawer-overlay\" @click=${() => this.requestClose(\"overlay\")} tabindex=\"-1\"></div>\n\n <div\n class=\"drawer-panel\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-hidden=${this.open ? \"false\" : \"true\"}\n tabindex=\"0\"\n >\n <header class=\"drawer-header\">\n <slot name=\"title\"></slot>\n <slot name=\"description\"></slot>\n <sgds-close-button\n class=\"drawer-close\"\n aria-label=\"close drawer\"\n @click=\"${() => this.requestClose(\"close-button\")}\"\n ></sgds-close-button>\n </header>\n <slot class=\"drawer-body\"></slot>\n </div>\n </div>\n `;\n }\n}\n\n// Top\nsetDefaultAnimation(\"drawer.showTop\", {\n keyframes: [\n { opacity: 0, translate: \"0 -100%\" },\n { opacity: 1, translate: \"0 0\" }\n ],\n options: { duration: 250, easing: \"ease\" }\n});\n\nsetDefaultAnimation(\"drawer.hideTop\", {\n keyframes: [\n { opacity: 1, translate: \"0 0\" },\n { opacity: 0, translate: \"0 -100%\" }\n ],\n options: { duration: 250, easing: \"ease\" }\n});\n\n// End\nsetDefaultAnimation(\"drawer.showEnd\", {\n keyframes: [\n { opacity: 0, translate: \"100%\" },\n { opacity: 1, translate: \"0\" }\n ],\n rtlKeyframes: [\n { opacity: 0, translate: \"-100%\" },\n { opacity: 1, translate: \"0\" }\n ],\n options: { duration: 250, easing: \"ease\" }\n});\n\nsetDefaultAnimation(\"drawer.hideEnd\", {\n keyframes: [\n { opacity: 1, translate: \"0\" },\n { opacity: 0, translate: \"100%\" }\n ],\n rtlKeyframes: [\n { opacity: 1, translate: \"0\" },\n { opacity: 0, translate: \"-100%\" }\n ],\n options: { duration: 250, easing: \"ease\" }\n});\n\n// Bottom\nsetDefaultAnimation(\"drawer.showBottom\", {\n keyframes: [\n { opacity: 0, translate: \"0 100%\" },\n { opacity: 1, translate: \"0 0\" }\n ],\n options: { duration: 250, easing: \"ease\" }\n});\n\nsetDefaultAnimation(\"drawer.hideBottom\", {\n keyframes: [\n { opacity: 1, translate: \"0 0\" },\n { opacity: 0, translate: \"0 100%\" }\n ],\n options: { duration: 250, easing: \"ease\" }\n});\n\n// Start\nsetDefaultAnimation(\"drawer.showStart\", {\n keyframes: [\n { opacity: 0, translate: \"-100%\" },\n { opacity: 1, translate: \"0\" }\n ],\n rtlKeyframes: [\n { opacity: 0, translate: \"100%\" },\n { opacity: 1, translate: \"0\" }\n ],\n options: { duration: 250, easing: \"ease\" }\n});\n\nsetDefaultAnimation(\"drawer.hideStart\", {\n keyframes: [\n { opacity: 1, translate: \"0\" },\n { opacity: 0, translate: \"-100%\" }\n ],\n rtlKeyframes: [\n { opacity: 1, translate: \"0\" },\n { opacity: 0, translate: \"100%\" }\n ],\n options: { duration: 250, easing: \"ease\" }\n});\n\n// Deny close\nsetDefaultAnimation(\"drawer.denyClose\", {\n keyframes: [{ scale: 1 }, { scale: 1.01 }, { scale: 1 }],\n options: { duration: 250 }\n});\n\n// Overlay\nsetDefaultAnimation(\"drawer.overlay.show\", {\n keyframes: [{ opacity: 0 }, { opacity: 1 }],\n options: { duration: 250 }\n});\n\nsetDefaultAnimation(\"drawer.overlay.hide\", {\n keyframes: [{ opacity: 1 }, { opacity: 0 }],\n options: { duration: 250 }\n});\n\nexport default SgdsDrawer;\n"],"names":["SgdsElement","lockBodyScrolling","unlockBodyScrolling","getAnimation","animateTo","stopAnimations","waitForEvent","html","classMap","drawerStyles","SgdsCloseButton","__decorate","query","property","watch","setDefaultAnimation"],"mappings":"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"}
@@ -1,15 +1,13 @@
1
1
  'use client';
2
2
  import { __decorate } from 'tslib';
3
- import { html, nothing } from 'lit';
3
+ import { html } from 'lit';
4
4
  import { query, property } from 'lit/decorators.js';
5
5
  import { classMap } from 'lit/directives/class-map.js';
6
- import { ifDefined } from 'lit/directives/if-defined.js';
7
6
  import SgdsElement from '../../base/sgds-element.js';
8
7
  import { animateTo, stopAnimations } from '../../utils/animate.js';
9
8
  import { setDefaultAnimation, getAnimation } from '../../utils/animation-registry.js';
10
9
  import { waitForEvent } from '../../utils/event.js';
11
10
  import { lockBodyScrolling, unlockBodyScrolling } from '../../utils/scroll.js';
12
- import { HasSlotController } from '../../utils/slot.js';
13
11
  import { watch } from '../../utils/watch.js';
14
12
  import css_248z from './drawer.js';
15
13
  import { SgdsCloseButton } from '../../internals/CloseButton/sgds-close-button.js';
@@ -17,10 +15,9 @@ import { SgdsCloseButton } from '../../internals/CloseButton/sgds-close-button.j
17
15
  /**
18
16
  * @summary Drawers slide in from a container to expose additional options and information.
19
17
  *
20
- * @slot - The drawer's main content.
21
- * @slot label - The drawer's label. Alternatively, you can use the `label` attribute.
22
- * @slot header-actions - Optional actions to add to the header.
23
- * @slot footer - The drawer's footer, usually one or more buttons representing various options.
18
+ * @slot default - The drawer's main content
19
+ * @slot title - The title of the drawer
20
+ * @slot description - The description of the drawer
24
21
  *
25
22
  * @event sgds-show - Emitted when the drawer opens.
26
23
  * @event sgds-after-show - Emitted after the drawer opens and all animations are complete.
@@ -33,38 +30,15 @@ import { SgdsCloseButton } from '../../internals/CloseButton/sgds-close-button.j
33
30
  * `event.preventDefault()` will keep the drawer open. Avoid using this unless closing the drawer will result in
34
31
  * destructive behavior such as data loss.
35
32
  *
36
- * @csspart base - The component's base wrapper.
37
- * @csspart overlay - The overlay that covers the screen behind the drawer.
38
- * @csspart panel - The drawer's panel (where the drawer and its content are rendered).
39
- * @csspart header - The drawer's header. This element wraps the title and header actions.
40
- * @csspart header-actions - Optional actions to add to the header.
41
- * @csspart title - The drawer's title.
42
- * @csspart close-button - The close button.
43
- * @csspart body - The drawer's body.
44
- * @csspart footer - The drawer's footer.
45
- *
46
- * @cssproperty --drawer-size - The preferred size of the drawer. This will be applied to the drawer's width or height
47
- * depending on its `placement`. Note that the drawer will shrink to accommodate smaller screens.
48
- * @cssproperty --drawer-padding - The amount of padding to use for the header, body and footer
49
- * @cssproperty --drawer-bg - The drawer's background color.
50
- * @cssproperty --drawer-button-gap - The drawer's flex gap between buttons.
51
- *
52
33
  */
53
34
  class SgdsDrawer extends SgdsElement {
54
35
  constructor() {
55
36
  super(...arguments);
56
- /** @internal */
57
- this.hasSlotController = new HasSlotController(this, "footer");
58
37
  /**
59
38
  * Indicates whether or not the drawer is open. You can toggle this attribute to show and hide the drawer, or you can
60
39
  * use the `show()` and `hide()` methods and this attribute will reflect the drawer's open state.
61
40
  */
62
41
  this.open = false;
63
- /**
64
- * The drawer's label as displayed in the header. You should always include a relevant label even when using
65
- * `noHeader`, as it is required for proper accessibility. If you need to display HTML, use the `label` slot instead.
66
- */
67
- this.label = "";
68
42
  /** The direction from which the drawer will open. */
69
43
  this.placement = "end";
70
44
  /**
@@ -72,11 +46,6 @@ class SgdsDrawer extends SgdsElement {
72
46
  * its parent element, set this attribute and add `position: relative` to the parent.
73
47
  */
74
48
  this.contained = false;
75
- /**
76
- * Removes the header. This will also remove the default close button, so please ensure you provide an easy,
77
- * accessible way for users to dismiss the drawer.
78
- */
79
- this.noHeader = false;
80
49
  this.handleDocumentKeyDown = (event) => {
81
50
  if (this.open && !this.contained && event.key === "Escape") {
82
51
  event.stopPropagation();
@@ -225,7 +194,6 @@ class SgdsDrawer extends SgdsElement {
225
194
  render() {
226
195
  return html `
227
196
  <div
228
- part="base"
229
197
  class=${classMap({
230
198
  drawer: true,
231
199
  "drawer-open": this.open,
@@ -234,47 +202,28 @@ class SgdsDrawer extends SgdsElement {
234
202
  "drawer-bottom": this.placement === "bottom",
235
203
  "drawer-start": this.placement === "start",
236
204
  "drawer-contained": this.contained,
237
- "drawer-fixed": !this.contained,
238
- "drawer-has-footer": this.hasSlotController.test("footer")
205
+ "drawer-fixed": !this.contained
239
206
  })}
240
207
  >
241
- <div part="overlay" class="drawer-overlay" @click=${() => this.requestClose("overlay")} tabindex="-1"></div>
208
+ <div class="drawer-overlay" @click=${() => this.requestClose("overlay")} tabindex="-1"></div>
242
209
 
243
210
  <div
244
- part="panel"
245
211
  class="drawer-panel"
246
212
  role="dialog"
247
213
  aria-modal="true"
248
214
  aria-hidden=${this.open ? "false" : "true"}
249
- aria-label=${ifDefined(this.noHeader ? this.label : undefined)}
250
- aria-labelledby=${ifDefined(!this.noHeader ? "title" : undefined)}
251
215
  tabindex="0"
252
216
  >
253
- ${!this.noHeader
254
- ? html `
255
- <header part="header" class="drawer-header">
256
- <h2 part="title" class="drawer-title" id="title">
257
- <!-- If there's no label, use an invisible character to prevent the header from collapsing -->
258
- <slot name="label"> ${this.label.length > 0 ? this.label : String.fromCharCode(65279)} </slot>
259
- </h2>
260
- <div part="header-actions" class="drawer-header-actions">
261
- <slot name="header-actions"></slot>
262
- <sgds-close-button
263
- part="close-button"
264
- class="drawer-close"
265
- aria-label="close drawer"
266
- @click="${() => this.requestClose("close-button")}"
267
- ></sgds-close-button>
268
- </div>
269
- </header>
270
- `
271
- : nothing}
272
-
273
- <slot part="body" class="drawer-body"></slot>
274
-
275
- <footer part="footer" class="drawer-footer">
276
- <slot name="footer"></slot>
277
- </footer>
217
+ <header class="drawer-header">
218
+ <slot name="title"></slot>
219
+ <slot name="description"></slot>
220
+ <sgds-close-button
221
+ class="drawer-close"
222
+ aria-label="close drawer"
223
+ @click="${() => this.requestClose("close-button")}"
224
+ ></sgds-close-button>
225
+ </header>
226
+ <slot class="drawer-body"></slot>
278
227
  </div>
279
228
  </div>
280
229
  `;
@@ -297,18 +246,12 @@ __decorate([
297
246
  __decorate([
298
247
  property({ type: Boolean, reflect: true })
299
248
  ], SgdsDrawer.prototype, "open", void 0);
300
- __decorate([
301
- property({ type: String, reflect: true })
302
- ], SgdsDrawer.prototype, "label", void 0);
303
249
  __decorate([
304
250
  property({ type: String, reflect: true })
305
251
  ], SgdsDrawer.prototype, "placement", void 0);
306
252
  __decorate([
307
253
  property({ type: Boolean, reflect: true })
308
254
  ], SgdsDrawer.prototype, "contained", void 0);
309
- __decorate([
310
- property({ type: Boolean, reflect: true })
311
- ], SgdsDrawer.prototype, "noHeader", void 0);
312
255
  __decorate([
313
256
  watch("open", { waitUntilFirstUpdate: true })
314
257
  ], SgdsDrawer.prototype, "handleOpenChange", null);