@govtechsg/sgds-web-component 2.0.0 → 2.1.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 (724) hide show
  1. package/Masthead/index.js +21 -23
  2. package/README.md +1 -1
  3. package/base/card-element.cjs.js +1 -0
  4. package/base/card-element.cjs.js.map +1 -1
  5. package/base/card-element.js +1 -0
  6. package/base/card-element.js.map +1 -1
  7. package/base/card.cjs.js +1 -0
  8. package/base/card.cjs.js.map +1 -1
  9. package/base/card.js +1 -0
  10. package/base/card.js.map +1 -1
  11. package/base/dropdown-element.cjs.js +1 -0
  12. package/base/dropdown-element.cjs.js.map +1 -1
  13. package/base/dropdown-element.js +1 -0
  14. package/base/dropdown-element.js.map +1 -1
  15. package/base/dropdown-list-element.cjs.js +1 -0
  16. package/base/dropdown-list-element.cjs.js.map +1 -1
  17. package/base/dropdown-list-element.js +1 -0
  18. package/base/dropdown-list-element.js.map +1 -1
  19. package/base/form-check-element.cjs.js +1 -0
  20. package/base/form-check-element.cjs.js.map +1 -1
  21. package/base/form-check-element.js +1 -0
  22. package/base/form-check-element.js.map +1 -1
  23. package/base/link-element.cjs.js +1 -0
  24. package/base/link-element.cjs.js.map +1 -1
  25. package/base/link-element.js +1 -0
  26. package/base/link-element.js.map +1 -1
  27. package/base/sgds-element.cjs.js +1 -0
  28. package/base/sgds-element.cjs.js.map +1 -1
  29. package/base/sgds-element.cjs2.js +2 -1
  30. package/base/sgds-element.cjs2.js.map +1 -1
  31. package/base/sgds-element.js +1 -0
  32. package/base/sgds-element.js.map +1 -1
  33. package/base/sgds-element2.js +2 -1
  34. package/base/sgds-element2.js.map +1 -1
  35. package/components/Accordion/accordion-item.cjs.js +1 -0
  36. package/components/Accordion/accordion-item.cjs.js.map +1 -1
  37. package/components/Accordion/accordion-item.js +1 -0
  38. package/components/Accordion/accordion-item.js.map +1 -1
  39. package/components/Accordion/accordion.cjs.js +1 -0
  40. package/components/Accordion/accordion.cjs.js.map +1 -1
  41. package/components/Accordion/accordion.js +1 -0
  42. package/components/Accordion/accordion.js.map +1 -1
  43. package/components/Accordion/index.umd.js +1 -1
  44. package/components/Accordion/sgds-accordion-item.cjs.js +1 -0
  45. package/components/Accordion/sgds-accordion-item.cjs.js.map +1 -1
  46. package/components/Accordion/sgds-accordion-item.js +1 -0
  47. package/components/Accordion/sgds-accordion-item.js.map +1 -1
  48. package/components/Accordion/sgds-accordion.cjs.js +1 -0
  49. package/components/Accordion/sgds-accordion.cjs.js.map +1 -1
  50. package/components/Accordion/sgds-accordion.js +1 -0
  51. package/components/Accordion/sgds-accordion.js.map +1 -1
  52. package/components/ActionCard/action-card.cjs.js +1 -0
  53. package/components/ActionCard/action-card.cjs.js.map +1 -1
  54. package/components/ActionCard/action-card.js +1 -0
  55. package/components/ActionCard/action-card.js.map +1 -1
  56. package/components/ActionCard/index.umd.js +1 -1
  57. package/components/ActionCard/sgds-action-card.cjs.js +1 -0
  58. package/components/ActionCard/sgds-action-card.cjs.js.map +1 -1
  59. package/components/ActionCard/sgds-action-card.js +1 -0
  60. package/components/ActionCard/sgds-action-card.js.map +1 -1
  61. package/components/Alert/alert-link.cjs.js +1 -0
  62. package/components/Alert/alert-link.cjs.js.map +1 -1
  63. package/components/Alert/alert-link.js +1 -0
  64. package/components/Alert/alert-link.js.map +1 -1
  65. package/components/Alert/alert.cjs.js +1 -0
  66. package/components/Alert/alert.cjs.js.map +1 -1
  67. package/components/Alert/alert.js +1 -0
  68. package/components/Alert/alert.js.map +1 -1
  69. package/components/Alert/index.umd.js +1 -1
  70. package/components/Alert/sgds-alert-heading.cjs.js +1 -0
  71. package/components/Alert/sgds-alert-heading.cjs.js.map +1 -1
  72. package/components/Alert/sgds-alert-heading.js +1 -0
  73. package/components/Alert/sgds-alert-heading.js.map +1 -1
  74. package/components/Alert/sgds-alert-link.cjs.js +1 -0
  75. package/components/Alert/sgds-alert-link.cjs.js.map +1 -1
  76. package/components/Alert/sgds-alert-link.js +1 -0
  77. package/components/Alert/sgds-alert-link.js.map +1 -1
  78. package/components/Alert/sgds-alert.cjs.js +1 -0
  79. package/components/Alert/sgds-alert.cjs.js.map +1 -1
  80. package/components/Alert/sgds-alert.js +1 -0
  81. package/components/Alert/sgds-alert.js.map +1 -1
  82. package/components/Badge/badge.cjs.js +1 -0
  83. package/components/Badge/badge.cjs.js.map +1 -1
  84. package/components/Badge/badge.js +1 -0
  85. package/components/Badge/badge.js.map +1 -1
  86. package/components/Badge/index.umd.js +1 -1
  87. package/components/Badge/sgds-badge.cjs.js +1 -0
  88. package/components/Badge/sgds-badge.cjs.js.map +1 -1
  89. package/components/Badge/sgds-badge.js +1 -0
  90. package/components/Badge/sgds-badge.js.map +1 -1
  91. package/components/Breadcrumb/breadcrumb-item.cjs.js +1 -0
  92. package/components/Breadcrumb/breadcrumb-item.cjs.js.map +1 -1
  93. package/components/Breadcrumb/breadcrumb-item.js +1 -0
  94. package/components/Breadcrumb/breadcrumb-item.js.map +1 -1
  95. package/components/Breadcrumb/breadcrumb.cjs.js +1 -0
  96. package/components/Breadcrumb/breadcrumb.cjs.js.map +1 -1
  97. package/components/Breadcrumb/breadcrumb.js +1 -0
  98. package/components/Breadcrumb/breadcrumb.js.map +1 -1
  99. package/components/Breadcrumb/index.umd.js +1 -1
  100. package/components/Breadcrumb/sgds-breadcrumb-item.cjs.js +1 -0
  101. package/components/Breadcrumb/sgds-breadcrumb-item.cjs.js.map +1 -1
  102. package/components/Breadcrumb/sgds-breadcrumb-item.js +1 -0
  103. package/components/Breadcrumb/sgds-breadcrumb-item.js.map +1 -1
  104. package/components/Breadcrumb/sgds-breadcrumb.cjs.js +1 -0
  105. package/components/Breadcrumb/sgds-breadcrumb.cjs.js.map +1 -1
  106. package/components/Breadcrumb/sgds-breadcrumb.js +1 -0
  107. package/components/Breadcrumb/sgds-breadcrumb.js.map +1 -1
  108. package/components/Button/button.cjs.js +1 -0
  109. package/components/Button/button.cjs.js.map +1 -1
  110. package/components/Button/button.js +1 -0
  111. package/components/Button/button.js.map +1 -1
  112. package/components/Button/index.umd.js +1 -1
  113. package/components/Button/sgds-button.cjs.js +1 -0
  114. package/components/Button/sgds-button.cjs.js.map +1 -1
  115. package/components/Button/sgds-button.js +1 -0
  116. package/components/Button/sgds-button.js.map +1 -1
  117. package/components/Card/card.cjs.js +1 -0
  118. package/components/Card/card.cjs.js.map +1 -1
  119. package/components/Card/card.js +1 -0
  120. package/components/Card/card.js.map +1 -1
  121. package/components/Card/index.umd.js +1 -1
  122. package/components/Card/sgds-card.cjs.js +1 -0
  123. package/components/Card/sgds-card.cjs.js.map +1 -1
  124. package/components/Card/sgds-card.js +1 -0
  125. package/components/Card/sgds-card.js.map +1 -1
  126. package/components/Checkbox/checkbox.cjs.js +1 -0
  127. package/components/Checkbox/checkbox.cjs.js.map +1 -1
  128. package/components/Checkbox/checkbox.js +1 -0
  129. package/components/Checkbox/checkbox.js.map +1 -1
  130. package/components/Checkbox/index.umd.js +1 -1
  131. package/components/Checkbox/sgds-checkbox.cjs.js +1 -0
  132. package/components/Checkbox/sgds-checkbox.cjs.js.map +1 -1
  133. package/components/Checkbox/sgds-checkbox.js +1 -0
  134. package/components/Checkbox/sgds-checkbox.js.map +1 -1
  135. package/components/ComboBox/combo-box.cjs.js +1 -0
  136. package/components/ComboBox/combo-box.cjs.js.map +1 -1
  137. package/components/ComboBox/combo-box.js +1 -0
  138. package/components/ComboBox/combo-box.js.map +1 -1
  139. package/components/ComboBox/index.umd.js +1 -1
  140. package/components/ComboBox/sgds-combo-box.cjs.js +1 -0
  141. package/components/ComboBox/sgds-combo-box.cjs.js.map +1 -1
  142. package/components/ComboBox/sgds-combo-box.js +1 -0
  143. package/components/ComboBox/sgds-combo-box.js.map +1 -1
  144. package/components/Datepicker/datepicker-calendar.cjs.js +1 -0
  145. package/components/Datepicker/datepicker-calendar.cjs.js.map +1 -1
  146. package/components/Datepicker/datepicker-calendar.cjs2.js +1 -0
  147. package/components/Datepicker/datepicker-calendar.cjs2.js.map +1 -1
  148. package/components/Datepicker/datepicker-calendar.js +1 -0
  149. package/components/Datepicker/datepicker-calendar.js.map +1 -1
  150. package/components/Datepicker/datepicker-calendar2.js +1 -0
  151. package/components/Datepicker/datepicker-calendar2.js.map +1 -1
  152. package/components/Datepicker/datepicker-header.cjs.js +1 -0
  153. package/components/Datepicker/datepicker-header.cjs.js.map +1 -1
  154. package/components/Datepicker/datepicker-header.cjs2.js +1 -0
  155. package/components/Datepicker/datepicker-header.cjs2.js.map +1 -1
  156. package/components/Datepicker/datepicker-header.js +1 -0
  157. package/components/Datepicker/datepicker-header.js.map +1 -1
  158. package/components/Datepicker/datepicker-header2.js +1 -0
  159. package/components/Datepicker/datepicker-header2.js.map +1 -1
  160. package/components/Datepicker/datepicker-input.cjs.js +1 -0
  161. package/components/Datepicker/datepicker-input.cjs.js.map +1 -1
  162. package/components/Datepicker/datepicker-input.cjs2.js +1 -0
  163. package/components/Datepicker/datepicker-input.cjs2.js.map +1 -1
  164. package/components/Datepicker/datepicker-input.js +1 -0
  165. package/components/Datepicker/datepicker-input.js.map +1 -1
  166. package/components/Datepicker/datepicker-input2.js +1 -0
  167. package/components/Datepicker/datepicker-input2.js.map +1 -1
  168. package/components/Datepicker/datepicker.cjs.js +1 -0
  169. package/components/Datepicker/datepicker.cjs.js.map +1 -1
  170. package/components/Datepicker/datepicker.js +1 -0
  171. package/components/Datepicker/datepicker.js.map +1 -1
  172. package/components/Datepicker/index.umd.js +1 -1
  173. package/components/Datepicker/sgds-datepicker.cjs.js +1 -0
  174. package/components/Datepicker/sgds-datepicker.cjs.js.map +1 -1
  175. package/components/Datepicker/sgds-datepicker.js +1 -0
  176. package/components/Datepicker/sgds-datepicker.js.map +1 -1
  177. package/components/Drawer/drawer.cjs.js +1 -0
  178. package/components/Drawer/drawer.cjs.js.map +1 -1
  179. package/components/Drawer/drawer.js +1 -0
  180. package/components/Drawer/drawer.js.map +1 -1
  181. package/components/Drawer/index.umd.js +1 -1
  182. package/components/Drawer/sgds-drawer.cjs.js +1 -0
  183. package/components/Drawer/sgds-drawer.cjs.js.map +1 -1
  184. package/components/Drawer/sgds-drawer.js +1 -0
  185. package/components/Drawer/sgds-drawer.js.map +1 -1
  186. package/components/Dropdown/dropdown.cjs.js +1 -0
  187. package/components/Dropdown/dropdown.cjs.js.map +1 -1
  188. package/components/Dropdown/dropdown.js +1 -0
  189. package/components/Dropdown/dropdown.js.map +1 -1
  190. package/components/Dropdown/index.umd.js +1 -1
  191. package/components/Dropdown/sgds-dropdown-item.cjs.js +1 -0
  192. package/components/Dropdown/sgds-dropdown-item.cjs.js.map +1 -1
  193. package/components/Dropdown/sgds-dropdown-item.js +1 -0
  194. package/components/Dropdown/sgds-dropdown-item.js.map +1 -1
  195. package/components/Dropdown/sgds-dropdown.cjs.js +1 -0
  196. package/components/Dropdown/sgds-dropdown.cjs.js.map +1 -1
  197. package/components/Dropdown/sgds-dropdown.js +1 -0
  198. package/components/Dropdown/sgds-dropdown.js.map +1 -1
  199. package/components/FileUpload/file-upload.cjs.js +1 -0
  200. package/components/FileUpload/file-upload.cjs.js.map +1 -1
  201. package/components/FileUpload/file-upload.js +1 -0
  202. package/components/FileUpload/file-upload.js.map +1 -1
  203. package/components/FileUpload/index.umd.js +1 -1
  204. package/components/FileUpload/sgds-file-upload.cjs.js +1 -0
  205. package/components/FileUpload/sgds-file-upload.cjs.js.map +1 -1
  206. package/components/FileUpload/sgds-file-upload.js +1 -0
  207. package/components/FileUpload/sgds-file-upload.js.map +1 -1
  208. package/components/Footer/footer.cjs.js +1 -0
  209. package/components/Footer/footer.cjs.js.map +1 -1
  210. package/components/Footer/footer.js +1 -0
  211. package/components/Footer/footer.js.map +1 -1
  212. package/components/Footer/index.umd.js +1 -1
  213. package/components/Footer/sgds-footer.cjs.js +1 -0
  214. package/components/Footer/sgds-footer.cjs.js.map +1 -1
  215. package/components/Footer/sgds-footer.js +1 -0
  216. package/components/Footer/sgds-footer.js.map +1 -1
  217. package/components/Input/index.umd.js +1 -1
  218. package/components/Input/input.cjs.js +1 -0
  219. package/components/Input/input.cjs.js.map +1 -1
  220. package/components/Input/input.js +1 -0
  221. package/components/Input/input.js.map +1 -1
  222. package/components/Input/sgds-input.cjs.js +1 -0
  223. package/components/Input/sgds-input.cjs.js.map +1 -1
  224. package/components/Input/sgds-input.js +1 -0
  225. package/components/Input/sgds-input.js.map +1 -1
  226. package/components/Mainnav/index.umd.js +1 -1
  227. package/components/Mainnav/mainnav-dropdown.cjs.js +1 -0
  228. package/components/Mainnav/mainnav-dropdown.cjs.js.map +1 -1
  229. package/components/Mainnav/mainnav-dropdown.js +1 -0
  230. package/components/Mainnav/mainnav-dropdown.js.map +1 -1
  231. package/components/Mainnav/mainnav-item.cjs.js +1 -0
  232. package/components/Mainnav/mainnav-item.cjs.js.map +1 -1
  233. package/components/Mainnav/mainnav-item.js +1 -0
  234. package/components/Mainnav/mainnav-item.js.map +1 -1
  235. package/components/Mainnav/mainnav.cjs.js +1 -0
  236. package/components/Mainnav/mainnav.cjs.js.map +1 -1
  237. package/components/Mainnav/mainnav.js +1 -0
  238. package/components/Mainnav/mainnav.js.map +1 -1
  239. package/components/Mainnav/sgds-mainnav-dropdown.cjs.js +1 -0
  240. package/components/Mainnav/sgds-mainnav-dropdown.cjs.js.map +1 -1
  241. package/components/Mainnav/sgds-mainnav-dropdown.js +1 -0
  242. package/components/Mainnav/sgds-mainnav-dropdown.js.map +1 -1
  243. package/components/Mainnav/sgds-mainnav-item.cjs.js +1 -0
  244. package/components/Mainnav/sgds-mainnav-item.cjs.js.map +1 -1
  245. package/components/Mainnav/sgds-mainnav-item.js +1 -0
  246. package/components/Mainnav/sgds-mainnav-item.js.map +1 -1
  247. package/components/Mainnav/sgds-mainnav.cjs.js +1 -0
  248. package/components/Mainnav/sgds-mainnav.cjs.js.map +1 -1
  249. package/components/Mainnav/sgds-mainnav.js +1 -0
  250. package/components/Mainnav/sgds-mainnav.js.map +1 -1
  251. package/components/Masthead/index.umd.js +21 -23
  252. package/components/Masthead/index.umd.js.map +1 -1
  253. package/components/Masthead/masthead.cjs.js +2 -2
  254. package/components/Masthead/masthead.js +2 -2
  255. package/components/Masthead/sgds-masthead.cjs.js +20 -20
  256. package/components/Masthead/sgds-masthead.cjs.js.map +1 -1
  257. package/components/Masthead/sgds-masthead.js +20 -20
  258. package/components/Masthead/sgds-masthead.js.map +1 -1
  259. package/components/Modal/index.umd.js +1 -1
  260. package/components/Modal/modal.cjs.js +1 -0
  261. package/components/Modal/modal.cjs.js.map +1 -1
  262. package/components/Modal/modal.js +1 -0
  263. package/components/Modal/modal.js.map +1 -1
  264. package/components/Modal/sgds-modal.cjs.js +1 -0
  265. package/components/Modal/sgds-modal.cjs.js.map +1 -1
  266. package/components/Modal/sgds-modal.js +1 -0
  267. package/components/Modal/sgds-modal.js.map +1 -1
  268. package/components/Pagination/index.umd.js +1 -1
  269. package/components/Pagination/pagination.cjs.js +1 -0
  270. package/components/Pagination/pagination.cjs.js.map +1 -1
  271. package/components/Pagination/pagination.js +1 -0
  272. package/components/Pagination/pagination.js.map +1 -1
  273. package/components/Pagination/sgds-pagination.cjs.js +1 -0
  274. package/components/Pagination/sgds-pagination.cjs.js.map +1 -1
  275. package/components/Pagination/sgds-pagination.js +1 -0
  276. package/components/Pagination/sgds-pagination.js.map +1 -1
  277. package/components/Progress/index.umd.js +1 -1
  278. package/components/Progress/progress-bar.cjs.js +1 -0
  279. package/components/Progress/progress-bar.cjs.js.map +1 -1
  280. package/components/Progress/progress-bar.js +1 -0
  281. package/components/Progress/progress-bar.js.map +1 -1
  282. package/components/Progress/progress.cjs.js +1 -0
  283. package/components/Progress/progress.cjs.js.map +1 -1
  284. package/components/Progress/progress.js +1 -0
  285. package/components/Progress/progress.js.map +1 -1
  286. package/components/Progress/sgds-progress-bar.cjs.js +1 -0
  287. package/components/Progress/sgds-progress-bar.cjs.js.map +1 -1
  288. package/components/Progress/sgds-progress-bar.js +1 -0
  289. package/components/Progress/sgds-progress-bar.js.map +1 -1
  290. package/components/Progress/sgds-progress.cjs.js +1 -0
  291. package/components/Progress/sgds-progress.cjs.js.map +1 -1
  292. package/components/Progress/sgds-progress.js +1 -0
  293. package/components/Progress/sgds-progress.js.map +1 -1
  294. package/components/QuantityToggle/index.umd.js +1 -1
  295. package/components/QuantityToggle/quantity-toggle.cjs.js +1 -0
  296. package/components/QuantityToggle/quantity-toggle.cjs.js.map +1 -1
  297. package/components/QuantityToggle/quantity-toggle.js +1 -0
  298. package/components/QuantityToggle/quantity-toggle.js.map +1 -1
  299. package/components/QuantityToggle/sgds-quantity-toggle.cjs.js +1 -0
  300. package/components/QuantityToggle/sgds-quantity-toggle.cjs.js.map +1 -1
  301. package/components/QuantityToggle/sgds-quantity-toggle.js +1 -0
  302. package/components/QuantityToggle/sgds-quantity-toggle.js.map +1 -1
  303. package/components/Radio/index.umd.js +1 -1
  304. package/components/Radio/radio-group.cjs.js +1 -0
  305. package/components/Radio/radio-group.cjs.js.map +1 -1
  306. package/components/Radio/radio-group.js +1 -0
  307. package/components/Radio/radio-group.js.map +1 -1
  308. package/components/Radio/radio.cjs.js +1 -0
  309. package/components/Radio/radio.cjs.js.map +1 -1
  310. package/components/Radio/radio.js +1 -0
  311. package/components/Radio/radio.js.map +1 -1
  312. package/components/Radio/sgds-radio-group.cjs.js +1 -0
  313. package/components/Radio/sgds-radio-group.cjs.js.map +1 -1
  314. package/components/Radio/sgds-radio-group.js +1 -0
  315. package/components/Radio/sgds-radio-group.js.map +1 -1
  316. package/components/Radio/sgds-radio.cjs.js +1 -0
  317. package/components/Radio/sgds-radio.cjs.js.map +1 -1
  318. package/components/Radio/sgds-radio.js +1 -0
  319. package/components/Radio/sgds-radio.js.map +1 -1
  320. package/components/Sidenav/index.umd.js +1 -1
  321. package/components/Sidenav/sgds-sidenav-item.cjs.js +1 -0
  322. package/components/Sidenav/sgds-sidenav-item.cjs.js.map +1 -1
  323. package/components/Sidenav/sgds-sidenav-item.js +1 -0
  324. package/components/Sidenav/sgds-sidenav-item.js.map +1 -1
  325. package/components/Sidenav/sgds-sidenav-link.cjs.js +1 -0
  326. package/components/Sidenav/sgds-sidenav-link.cjs.js.map +1 -1
  327. package/components/Sidenav/sgds-sidenav-link.js +1 -0
  328. package/components/Sidenav/sgds-sidenav-link.js.map +1 -1
  329. package/components/Sidenav/sgds-sidenav.cjs.js +1 -0
  330. package/components/Sidenav/sgds-sidenav.cjs.js.map +1 -1
  331. package/components/Sidenav/sgds-sidenav.js +1 -0
  332. package/components/Sidenav/sgds-sidenav.js.map +1 -1
  333. package/components/Sidenav/sidenav-item.cjs.js +1 -0
  334. package/components/Sidenav/sidenav-item.cjs.js.map +1 -1
  335. package/components/Sidenav/sidenav-item.js +1 -0
  336. package/components/Sidenav/sidenav-item.js.map +1 -1
  337. package/components/Sidenav/sidenav-link.cjs.js +1 -0
  338. package/components/Sidenav/sidenav-link.cjs.js.map +1 -1
  339. package/components/Sidenav/sidenav-link.js +1 -0
  340. package/components/Sidenav/sidenav-link.js.map +1 -1
  341. package/components/Sidenav/sidenav.cjs.js +1 -0
  342. package/components/Sidenav/sidenav.cjs.js.map +1 -1
  343. package/components/Sidenav/sidenav.js +1 -0
  344. package/components/Sidenav/sidenav.js.map +1 -1
  345. package/components/Spinner/index.umd.js +1 -1
  346. package/components/Spinner/sgds-spinner.cjs.js +1 -0
  347. package/components/Spinner/sgds-spinner.cjs.js.map +1 -1
  348. package/components/Spinner/sgds-spinner.js +1 -0
  349. package/components/Spinner/sgds-spinner.js.map +1 -1
  350. package/components/Spinner/spinner.cjs.js +1 -0
  351. package/components/Spinner/spinner.cjs.js.map +1 -1
  352. package/components/Spinner/spinner.js +1 -0
  353. package/components/Spinner/spinner.js.map +1 -1
  354. package/components/Stepper/index.umd.js +1 -1
  355. package/components/Stepper/sgds-stepper.cjs.js +1 -0
  356. package/components/Stepper/sgds-stepper.cjs.js.map +1 -1
  357. package/components/Stepper/sgds-stepper.js +1 -0
  358. package/components/Stepper/sgds-stepper.js.map +1 -1
  359. package/components/Stepper/stepper.cjs.js +1 -0
  360. package/components/Stepper/stepper.cjs.js.map +1 -1
  361. package/components/Stepper/stepper.js +1 -0
  362. package/components/Stepper/stepper.js.map +1 -1
  363. package/components/Tab/index.umd.js +1 -1
  364. package/components/Tab/sgds-tab-group.cjs.js +1 -0
  365. package/components/Tab/sgds-tab-group.cjs.js.map +1 -1
  366. package/components/Tab/sgds-tab-group.js +1 -0
  367. package/components/Tab/sgds-tab-group.js.map +1 -1
  368. package/components/Tab/sgds-tab-panel.cjs.js +1 -0
  369. package/components/Tab/sgds-tab-panel.cjs.js.map +1 -1
  370. package/components/Tab/sgds-tab-panel.js +1 -0
  371. package/components/Tab/sgds-tab-panel.js.map +1 -1
  372. package/components/Tab/sgds-tab.cjs.js +1 -0
  373. package/components/Tab/sgds-tab.cjs.js.map +1 -1
  374. package/components/Tab/sgds-tab.js +1 -0
  375. package/components/Tab/sgds-tab.js.map +1 -1
  376. package/components/Tab/tab-group.cjs.js +1 -0
  377. package/components/Tab/tab-group.cjs.js.map +1 -1
  378. package/components/Tab/tab-group.js +1 -0
  379. package/components/Tab/tab-group.js.map +1 -1
  380. package/components/Tab/tab-panel.cjs.js +1 -0
  381. package/components/Tab/tab-panel.cjs.js.map +1 -1
  382. package/components/Tab/tab-panel.js +1 -0
  383. package/components/Tab/tab-panel.js.map +1 -1
  384. package/components/Tab/tab.cjs.js +1 -0
  385. package/components/Tab/tab.cjs.js.map +1 -1
  386. package/components/Tab/tab.js +1 -0
  387. package/components/Tab/tab.js.map +1 -1
  388. package/components/Table/index.umd.js +1 -1
  389. package/components/Table/sgds-table.cjs.js +1 -0
  390. package/components/Table/sgds-table.cjs.js.map +1 -1
  391. package/components/Table/sgds-table.js +1 -0
  392. package/components/Table/sgds-table.js.map +1 -1
  393. package/components/Table/table.cjs.js +1 -0
  394. package/components/Table/table.cjs.js.map +1 -1
  395. package/components/Table/table.js +1 -0
  396. package/components/Table/table.js.map +1 -1
  397. package/components/Textarea/index.umd.js +1 -1
  398. package/components/Textarea/sgds-textarea.cjs.js +1 -0
  399. package/components/Textarea/sgds-textarea.cjs.js.map +1 -1
  400. package/components/Textarea/sgds-textarea.js +1 -0
  401. package/components/Textarea/sgds-textarea.js.map +1 -1
  402. package/components/Textarea/textarea.cjs.js +1 -0
  403. package/components/Textarea/textarea.cjs.js.map +1 -1
  404. package/components/Textarea/textarea.js +1 -0
  405. package/components/Textarea/textarea.js.map +1 -1
  406. package/components/Toast/index.umd.js +1 -1
  407. package/components/Toast/sgds-toast-container.cjs.js +1 -0
  408. package/components/Toast/sgds-toast-container.cjs.js.map +1 -1
  409. package/components/Toast/sgds-toast-container.js +1 -0
  410. package/components/Toast/sgds-toast-container.js.map +1 -1
  411. package/components/Toast/sgds-toast.cjs.js +1 -0
  412. package/components/Toast/sgds-toast.cjs.js.map +1 -1
  413. package/components/Toast/sgds-toast.js +1 -0
  414. package/components/Toast/sgds-toast.js.map +1 -1
  415. package/components/Toast/toast-container.cjs.js +1 -0
  416. package/components/Toast/toast-container.cjs.js.map +1 -1
  417. package/components/Toast/toast-container.js +1 -0
  418. package/components/Toast/toast-container.js.map +1 -1
  419. package/components/Toast/toast.cjs.js +1 -0
  420. package/components/Toast/toast.cjs.js.map +1 -1
  421. package/components/Toast/toast.js +1 -0
  422. package/components/Toast/toast.js.map +1 -1
  423. package/components/Tooltip/index.umd.js +1 -1
  424. package/components/Tooltip/sgds-tooltip.cjs.js +1 -0
  425. package/components/Tooltip/sgds-tooltip.cjs.js.map +1 -1
  426. package/components/Tooltip/sgds-tooltip.js +1 -0
  427. package/components/Tooltip/sgds-tooltip.js.map +1 -1
  428. package/components/Tooltip/tooltip.cjs.js +1 -0
  429. package/components/Tooltip/tooltip.cjs.js.map +1 -1
  430. package/components/Tooltip/tooltip.js +1 -0
  431. package/components/Tooltip/tooltip.js.map +1 -1
  432. package/components/index.umd.js +21 -23
  433. package/components/index.umd.js.map +1 -1
  434. package/index.umd.js +21 -23
  435. package/index.umd.js.map +1 -1
  436. package/internals/CloseButton/close-button.cjs.js +1 -0
  437. package/internals/CloseButton/close-button.cjs.js.map +1 -1
  438. package/internals/CloseButton/close-button.js +1 -0
  439. package/internals/CloseButton/close-button.js.map +1 -1
  440. package/internals/CloseButton/sgds-close-button.cjs.js +1 -0
  441. package/internals/CloseButton/sgds-close-button.cjs.js.map +1 -1
  442. package/internals/CloseButton/sgds-close-button.js +1 -0
  443. package/internals/CloseButton/sgds-close-button.js.map +1 -1
  444. package/package.json +1 -1
  445. package/react/accordion/index.cjs.js +1 -0
  446. package/react/accordion/index.cjs.js.map +1 -1
  447. package/react/accordion/index.js +1 -0
  448. package/react/accordion/index.js.map +1 -1
  449. package/react/accordion-item/index.cjs.js +1 -0
  450. package/react/accordion-item/index.cjs.js.map +1 -1
  451. package/react/accordion-item/index.js +1 -0
  452. package/react/accordion-item/index.js.map +1 -1
  453. package/react/action-card/index.cjs.js +1 -0
  454. package/react/action-card/index.cjs.js.map +1 -1
  455. package/react/action-card/index.js +1 -0
  456. package/react/action-card/index.js.map +1 -1
  457. package/react/alert/index.cjs.js +1 -0
  458. package/react/alert/index.cjs.js.map +1 -1
  459. package/react/alert/index.js +1 -0
  460. package/react/alert/index.js.map +1 -1
  461. package/react/alert-heading/index.cjs.js +1 -0
  462. package/react/alert-heading/index.cjs.js.map +1 -1
  463. package/react/alert-heading/index.js +1 -0
  464. package/react/alert-heading/index.js.map +1 -1
  465. package/react/alert-link/index.cjs.js +1 -0
  466. package/react/alert-link/index.cjs.js.map +1 -1
  467. package/react/alert-link/index.js +1 -0
  468. package/react/alert-link/index.js.map +1 -1
  469. package/react/badge/index.cjs.js +1 -0
  470. package/react/badge/index.cjs.js.map +1 -1
  471. package/react/badge/index.js +1 -0
  472. package/react/badge/index.js.map +1 -1
  473. package/react/breadcrumb/index.cjs.js +1 -0
  474. package/react/breadcrumb/index.cjs.js.map +1 -1
  475. package/react/breadcrumb/index.js +1 -0
  476. package/react/breadcrumb/index.js.map +1 -1
  477. package/react/breadcrumb-item/index.cjs.js +1 -0
  478. package/react/breadcrumb-item/index.cjs.js.map +1 -1
  479. package/react/breadcrumb-item/index.js +1 -0
  480. package/react/breadcrumb-item/index.js.map +1 -1
  481. package/react/button/index.cjs.js +1 -0
  482. package/react/button/index.cjs.js.map +1 -1
  483. package/react/button/index.js +1 -0
  484. package/react/button/index.js.map +1 -1
  485. package/react/card/index.cjs.js +1 -0
  486. package/react/card/index.cjs.js.map +1 -1
  487. package/react/card/index.js +1 -0
  488. package/react/card/index.js.map +1 -1
  489. package/react/checkbox/index.cjs.js +1 -0
  490. package/react/checkbox/index.cjs.js.map +1 -1
  491. package/react/checkbox/index.js +1 -0
  492. package/react/checkbox/index.js.map +1 -1
  493. package/react/combo-box/index.cjs.js +1 -0
  494. package/react/combo-box/index.cjs.js.map +1 -1
  495. package/react/combo-box/index.js +1 -0
  496. package/react/combo-box/index.js.map +1 -1
  497. package/react/datepicker/index.cjs.js +1 -0
  498. package/react/datepicker/index.cjs.js.map +1 -1
  499. package/react/datepicker/index.js +1 -0
  500. package/react/datepicker/index.js.map +1 -1
  501. package/react/drawer/index.cjs.js +1 -0
  502. package/react/drawer/index.cjs.js.map +1 -1
  503. package/react/drawer/index.js +1 -0
  504. package/react/drawer/index.js.map +1 -1
  505. package/react/dropdown/index.cjs.js +1 -0
  506. package/react/dropdown/index.cjs.js.map +1 -1
  507. package/react/dropdown/index.js +1 -0
  508. package/react/dropdown/index.js.map +1 -1
  509. package/react/dropdown-item/index.cjs.js +1 -0
  510. package/react/dropdown-item/index.cjs.js.map +1 -1
  511. package/react/dropdown-item/index.js +1 -0
  512. package/react/dropdown-item/index.js.map +1 -1
  513. package/react/file-upload/index.cjs.js +1 -0
  514. package/react/file-upload/index.cjs.js.map +1 -1
  515. package/react/file-upload/index.js +1 -0
  516. package/react/file-upload/index.js.map +1 -1
  517. package/react/footer/index.cjs.js +1 -0
  518. package/react/footer/index.cjs.js.map +1 -1
  519. package/react/footer/index.js +1 -0
  520. package/react/footer/index.js.map +1 -1
  521. package/react/index.cjs.js +1 -0
  522. package/react/index.cjs.js.map +1 -1
  523. package/react/index.js +1 -0
  524. package/react/index.js.map +1 -1
  525. package/react/input/index.cjs.js +1 -0
  526. package/react/input/index.cjs.js.map +1 -1
  527. package/react/input/index.js +1 -0
  528. package/react/input/index.js.map +1 -1
  529. package/react/mainnav/index.cjs.js +1 -0
  530. package/react/mainnav/index.cjs.js.map +1 -1
  531. package/react/mainnav/index.js +1 -0
  532. package/react/mainnav/index.js.map +1 -1
  533. package/react/mainnav-dropdown/index.cjs.js +1 -0
  534. package/react/mainnav-dropdown/index.cjs.js.map +1 -1
  535. package/react/mainnav-dropdown/index.js +1 -0
  536. package/react/mainnav-dropdown/index.js.map +1 -1
  537. package/react/mainnav-item/index.cjs.js +1 -0
  538. package/react/mainnav-item/index.cjs.js.map +1 -1
  539. package/react/mainnav-item/index.js +1 -0
  540. package/react/mainnav-item/index.js.map +1 -1
  541. package/react/masthead/index.cjs.js +1 -0
  542. package/react/masthead/index.cjs.js.map +1 -1
  543. package/react/masthead/index.js +1 -0
  544. package/react/masthead/index.js.map +1 -1
  545. package/react/modal/index.cjs.js +1 -0
  546. package/react/modal/index.cjs.js.map +1 -1
  547. package/react/modal/index.js +1 -0
  548. package/react/modal/index.js.map +1 -1
  549. package/react/pagination/index.cjs.js +1 -0
  550. package/react/pagination/index.cjs.js.map +1 -1
  551. package/react/pagination/index.js +1 -0
  552. package/react/pagination/index.js.map +1 -1
  553. package/react/progress/index.cjs.js +1 -0
  554. package/react/progress/index.cjs.js.map +1 -1
  555. package/react/progress/index.js +1 -0
  556. package/react/progress/index.js.map +1 -1
  557. package/react/progress-bar/index.cjs.js +1 -0
  558. package/react/progress-bar/index.cjs.js.map +1 -1
  559. package/react/progress-bar/index.js +1 -0
  560. package/react/progress-bar/index.js.map +1 -1
  561. package/react/quantity-toggle/index.cjs.js +1 -0
  562. package/react/quantity-toggle/index.cjs.js.map +1 -1
  563. package/react/quantity-toggle/index.js +1 -0
  564. package/react/quantity-toggle/index.js.map +1 -1
  565. package/react/radio/index.cjs.js +1 -0
  566. package/react/radio/index.cjs.js.map +1 -1
  567. package/react/radio/index.js +1 -0
  568. package/react/radio/index.js.map +1 -1
  569. package/react/radio-group/index.cjs.js +1 -0
  570. package/react/radio-group/index.cjs.js.map +1 -1
  571. package/react/radio-group/index.js +1 -0
  572. package/react/radio-group/index.js.map +1 -1
  573. package/react/sidenav/index.cjs.js +1 -0
  574. package/react/sidenav/index.cjs.js.map +1 -1
  575. package/react/sidenav/index.js +1 -0
  576. package/react/sidenav/index.js.map +1 -1
  577. package/react/sidenav-item/index.cjs.js +1 -0
  578. package/react/sidenav-item/index.cjs.js.map +1 -1
  579. package/react/sidenav-item/index.js +1 -0
  580. package/react/sidenav-item/index.js.map +1 -1
  581. package/react/sidenav-link/index.cjs.js +1 -0
  582. package/react/sidenav-link/index.cjs.js.map +1 -1
  583. package/react/sidenav-link/index.js +1 -0
  584. package/react/sidenav-link/index.js.map +1 -1
  585. package/react/spinner/index.cjs.js +1 -0
  586. package/react/spinner/index.cjs.js.map +1 -1
  587. package/react/spinner/index.js +1 -0
  588. package/react/spinner/index.js.map +1 -1
  589. package/react/stepper/index.cjs.js +1 -0
  590. package/react/stepper/index.cjs.js.map +1 -1
  591. package/react/stepper/index.js +1 -0
  592. package/react/stepper/index.js.map +1 -1
  593. package/react/tab/index.cjs.js +1 -0
  594. package/react/tab/index.cjs.js.map +1 -1
  595. package/react/tab/index.js +1 -0
  596. package/react/tab/index.js.map +1 -1
  597. package/react/tab-group/index.cjs.js +1 -0
  598. package/react/tab-group/index.cjs.js.map +1 -1
  599. package/react/tab-group/index.js +1 -0
  600. package/react/tab-group/index.js.map +1 -1
  601. package/react/tab-panel/index.cjs.js +1 -0
  602. package/react/tab-panel/index.cjs.js.map +1 -1
  603. package/react/tab-panel/index.js +1 -0
  604. package/react/tab-panel/index.js.map +1 -1
  605. package/react/table/index.cjs.js +1 -0
  606. package/react/table/index.cjs.js.map +1 -1
  607. package/react/table/index.js +1 -0
  608. package/react/table/index.js.map +1 -1
  609. package/react/textarea/index.cjs.js +1 -0
  610. package/react/textarea/index.cjs.js.map +1 -1
  611. package/react/textarea/index.js +1 -0
  612. package/react/textarea/index.js.map +1 -1
  613. package/react/toast/index.cjs.js +1 -0
  614. package/react/toast/index.cjs.js.map +1 -1
  615. package/react/toast/index.js +1 -0
  616. package/react/toast/index.js.map +1 -1
  617. package/react/toast-container/index.cjs.js +1 -0
  618. package/react/toast-container/index.cjs.js.map +1 -1
  619. package/react/toast-container/index.js +1 -0
  620. package/react/toast-container/index.js.map +1 -1
  621. package/react/tooltip/index.cjs.js +1 -0
  622. package/react/tooltip/index.cjs.js.map +1 -1
  623. package/react/tooltip/index.js +1 -0
  624. package/react/tooltip/index.js.map +1 -1
  625. package/styles/anchor.cjs.js +1 -0
  626. package/styles/anchor.cjs.js.map +1 -1
  627. package/styles/anchor.js +1 -0
  628. package/styles/anchor.js.map +1 -1
  629. package/styles/bg-variants.cjs.js +1 -0
  630. package/styles/bg-variants.cjs.js.map +1 -1
  631. package/styles/bg-variants.js +1 -0
  632. package/styles/bg-variants.js.map +1 -1
  633. package/styles/border-variants.cjs.js +1 -0
  634. package/styles/border-variants.cjs.js.map +1 -1
  635. package/styles/border-variants.js +1 -0
  636. package/styles/border-variants.js.map +1 -1
  637. package/styles/feedback.cjs.js +1 -0
  638. package/styles/feedback.cjs.js.map +1 -1
  639. package/styles/feedback.js +1 -0
  640. package/styles/feedback.js.map +1 -1
  641. package/styles/form-hint.cjs.js +1 -0
  642. package/styles/form-hint.cjs.js.map +1 -1
  643. package/styles/form-hint.js +1 -0
  644. package/styles/form-hint.js.map +1 -1
  645. package/styles/form-label.cjs.js +1 -0
  646. package/styles/form-label.cjs.js.map +1 -1
  647. package/styles/form-label.js +1 -0
  648. package/styles/form-label.js.map +1 -1
  649. package/styles/header-class.cjs.js +1 -0
  650. package/styles/header-class.cjs.js.map +1 -1
  651. package/styles/header-class.js +1 -0
  652. package/styles/header-class.js.map +1 -1
  653. package/styles/paragraph.cjs.js +1 -0
  654. package/styles/paragraph.cjs.js.map +1 -1
  655. package/styles/paragraph.js +1 -0
  656. package/styles/paragraph.js.map +1 -1
  657. package/styles/svg.cjs.js +1 -0
  658. package/styles/svg.cjs.js.map +1 -1
  659. package/styles/svg.js +1 -0
  660. package/styles/svg.js.map +1 -1
  661. package/styles/text-variants.cjs.js +1 -0
  662. package/styles/text-variants.cjs.js.map +1 -1
  663. package/styles/text-variants.js +1 -0
  664. package/styles/text-variants.js.map +1 -1
  665. package/utils/animate.cjs.js +1 -0
  666. package/utils/animate.cjs.js.map +1 -1
  667. package/utils/animate.js +1 -0
  668. package/utils/animate.js.map +1 -1
  669. package/utils/animation-registry.cjs.js +1 -0
  670. package/utils/animation-registry.cjs.js.map +1 -1
  671. package/utils/animation-registry.js +1 -0
  672. package/utils/animation-registry.js.map +1 -1
  673. package/utils/breakpoints.cjs.js +1 -0
  674. package/utils/breakpoints.cjs.js.map +1 -1
  675. package/utils/breakpoints.js +1 -0
  676. package/utils/breakpoints.js.map +1 -1
  677. package/utils/defaultvalue.cjs.js +1 -0
  678. package/utils/defaultvalue.cjs.js.map +1 -1
  679. package/utils/defaultvalue.js +1 -0
  680. package/utils/defaultvalue.js.map +1 -1
  681. package/utils/event.cjs.js +1 -0
  682. package/utils/event.cjs.js.map +1 -1
  683. package/utils/event.js +1 -0
  684. package/utils/event.js.map +1 -1
  685. package/utils/form.cjs.js +1 -0
  686. package/utils/form.cjs.js.map +1 -1
  687. package/utils/form.js +1 -0
  688. package/utils/form.js.map +1 -1
  689. package/utils/generateId.cjs.js +1 -0
  690. package/utils/generateId.cjs.js.map +1 -1
  691. package/utils/generateId.js +1 -0
  692. package/utils/generateId.js.map +1 -1
  693. package/utils/mergeDeep.cjs.js +1 -0
  694. package/utils/mergeDeep.cjs.js.map +1 -1
  695. package/utils/mergeDeep.js +1 -0
  696. package/utils/mergeDeep.js.map +1 -1
  697. package/utils/modal.cjs.js +1 -0
  698. package/utils/modal.cjs.js.map +1 -1
  699. package/utils/modal.js +1 -0
  700. package/utils/modal.js.map +1 -1
  701. package/utils/object.cjs.js +1 -0
  702. package/utils/object.cjs.js.map +1 -1
  703. package/utils/object.js +1 -0
  704. package/utils/object.js.map +1 -1
  705. package/utils/scroll.cjs.js +1 -0
  706. package/utils/scroll.cjs.js.map +1 -1
  707. package/utils/scroll.js +1 -0
  708. package/utils/scroll.js.map +1 -1
  709. package/utils/slot.cjs.js +1 -0
  710. package/utils/slot.cjs.js.map +1 -1
  711. package/utils/slot.js +1 -0
  712. package/utils/slot.js.map +1 -1
  713. package/utils/tabbable.cjs.js +1 -0
  714. package/utils/tabbable.cjs.js.map +1 -1
  715. package/utils/tabbable.js +1 -0
  716. package/utils/tabbable.js.map +1 -1
  717. package/utils/time.cjs.js +1 -0
  718. package/utils/time.cjs.js.map +1 -1
  719. package/utils/time.js +1 -0
  720. package/utils/time.js.map +1 -1
  721. package/utils/watch.cjs.js +1 -0
  722. package/utils/watch.cjs.js.map +1 -1
  723. package/utils/watch.js +1 -0
  724. package/utils/watch.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"sgds-tab-group.cjs.js","sources":["../../../src/components/Tab/sgds-tab-group.ts"],"sourcesContent":["import { html } 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 { SgdsTab } from \"./sgds-tab\";\nimport { SgdsTabPanel } from \"./sgds-tab-panel\";\nimport tabGroupStyle from \"./tab-group.css\";\n/**\n * @summary Tab Group organizes content into a container with the syncing of tab and their corresponding panels.\n * Each tab must be slotted into the nav slot and its `panel` must refer to a tab panel of the same name.\n *\n * @slot default - The slot for `sgds-tab-panel`\n * @slot nav - The slot for `sgds-tab`\n *\n * @event sgds-tab-show Emitted when a tab and its panels are shown\n * @event sgds-tab-hide Emitted when a tab and its panels are hidden.\n *\n * @csspart body - The container wrapping the default slot where all `sgds-tab-panel`s are slotted.\n * @csspart nav - The container wrapping the default slot where all `sgds-tab`s are slotted.\n *\n */\nexport class SgdsTabGroup extends SgdsElement {\n static styles = [...SgdsElement.styles, tabGroupStyle];\n /**@internal */\n @query(\".tab-group\") tabGroup: HTMLElement;\n /**@internal */\n @query(\".tab-group__body\") body: HTMLSlotElement;\n /**@internal */\n @query(\".tab-group__nav\") nav: HTMLElement;\n /**@internal */\n private activeTab?: SgdsTab;\n /**@internal */\n private mutationObserver: MutationObserver;\n /**@internal */\n private resizeObserver: ResizeObserver;\n /**@internal */\n private tabs: SgdsTab[] = [];\n /**@internal */\n private panels: SgdsTabPanel[] = [];\n /** The variant types of tabs. Controls the visual stylesof all `sgds-tabs` in its slot. It also dynamically changes the slots of `sgds-tab` */\n @property({ reflect: true, attribute: true }) variant: \"tabs-basic-toggle\" | \"tabs-info-toggle\";\n\n connectedCallback() {\n const whenAllDefined = Promise.all([\n customElements.whenDefined(\"sgds-tab\"),\n customElements.whenDefined(\"sgds-tab-panel\")\n ]);\n super.connectedCallback();\n this.resizeObserver = new ResizeObserver(() => {\n return;\n });\n\n this.mutationObserver = new MutationObserver(mutations => {\n // Update aria labels when the DOM changes\n if (mutations.some(m => ![\"aria-labelledby\", \"aria-controls\"].includes(m.attributeName))) {\n setTimeout(() => this.setAriaLabels());\n }\n\n // Sync tabs when disabled states change\n if (mutations.some(m => m.attributeName === \"disabled\")) {\n this.syncTabsAndPanels();\n }\n });\n\n this.updateComplete.then(() => {\n this.syncTabsAndPanels();\n this.mutationObserver.observe(this, { attributes: true, childList: true, subtree: true });\n this.resizeObserver.observe(this.nav);\n whenAllDefined.then(() => {\n // Set initial tab state when the tabs first become visible\n const intersectionObserver = new IntersectionObserver((entries, observer) => {\n if (entries[0].intersectionRatio > 0) {\n this.setAriaLabels();\n // this.setTabVariant();\n this.setActiveTab(this.getActiveTab() ?? this.tabs[0], { emitEvents: false });\n observer.unobserve(entries[0].target);\n }\n });\n intersectionObserver.observe(this.tabGroup);\n });\n });\n }\n\n disconnectedCallback() {\n this.mutationObserver.disconnect();\n this.resizeObserver.unobserve(this.nav);\n }\n\n /** Shows the specified tab panel. */\n public show(panel: string) {\n const tab = this.tabs.find(el => el.panel === panel);\n\n if (tab) {\n this.setActiveTab(tab);\n }\n }\n /** @internal */\n private getAllTabs(options: { includeDisabled: boolean } = { includeDisabled: true }) {\n const slot = this.shadowRoot.querySelector<HTMLSlotElement>('slot[name=\"nav\"]');\n\n return [...(slot.assignedElements() as SgdsTab[])].filter(el => {\n return options.includeDisabled\n ? el.tagName.toLowerCase() === \"sgds-tab\"\n : el.tagName.toLowerCase() === \"sgds-tab\" && !el.disabled;\n });\n }\n /** @internal */\n private getAllPanels() {\n return [...this.body.assignedElements()].filter(el => el.tagName.toLowerCase() === \"sgds-tab-panel\") as [\n SgdsTabPanel\n ];\n }\n /** @internal */\n private getActiveTab() {\n return this.tabs.find(el => el.active);\n }\n /** @internal */\n private handleClick(event: MouseEvent) {\n const target = event.target as HTMLElement;\n const tab = target.closest(\"sgds-tab\") as SgdsTab;\n const tabGroup = tab?.closest(\"sgds-tab-group\");\n\n // Ensure the target tab is in this tab group\n if (tabGroup !== this) {\n return;\n }\n\n if (tab !== null) {\n this.setActiveTab(tab);\n }\n }\n /** @internal */\n private handleKeyDown(event: KeyboardEvent) {\n const target = event.target as HTMLElement;\n const tab = target.closest(\"sgds-tab\") as SgdsTab;\n const tabGroup = tab?.closest(\"sgds-tab-group\");\n\n // Ensure the target tab is in this tab group\n if (tabGroup !== this) {\n return;\n }\n\n // Activate a tab\n if ([\"Enter\", \" \"].includes(event.key)) {\n if (tab !== null) {\n this.setActiveTab(tab);\n event.preventDefault();\n }\n }\n\n // Move focus left or right\n if ([\"ArrowLeft\", \"ArrowRight\", \"ArrowUp\", \"ArrowDown\", \"Home\", \"End\"].includes(event.key)) {\n const activeEl = this.tabs.find(t => t.matches(\":focus\"));\n\n if (activeEl?.tagName.toLowerCase() === \"sgds-tab\") {\n let index = this.tabs.indexOf(activeEl);\n\n if (event.key === \"Home\") {\n index = 0;\n } else if (event.key === \"End\") {\n index = this.tabs.length - 1;\n } else if (event.key === \"ArrowUp\" || event.key === \"ArrowLeft\") {\n index--;\n } else if (event.key === \"ArrowDown\" || event.key === \"ArrowRight\") {\n index++;\n }\n\n if (index < 0) {\n index = this.tabs.length - 1;\n }\n\n if (index > this.tabs.length - 1) {\n index = 0;\n }\n\n this.tabs[index].focus({ preventScroll: true });\n\n this.setActiveTab(this.tabs[index] /** , { scrollBehavior: \"smooth\" }*/);\n\n event.preventDefault();\n }\n }\n }\n /** @internal */\n private setActiveTab(tab: SgdsTab, options?: { emitEvents?: boolean }) {\n options = {\n emitEvents: true,\n ...options\n };\n\n if (tab !== this.activeTab && !tab.disabled) {\n const previousTab = this.activeTab;\n this.activeTab = tab;\n\n // Sync active tab and panel\n this.tabs.map(el => (el.active = el === this.activeTab));\n this.panels.map(el => (el.active = el.name === this.activeTab?.panel));\n\n // Emit events\n if (options.emitEvents) {\n if (previousTab) {\n this.emit(\"sgds-tab-hide\", { detail: { name: previousTab.panel } });\n }\n\n this.emit(\"sgds-tab-show\", { detail: { name: this.activeTab.panel } });\n }\n }\n }\n /** @internal */\n private setAriaLabels() {\n // Link each tab with its corresponding panel\n this.tabs.forEach(tab => {\n const panel = this.panels.find(el => el.name === tab.panel);\n if (panel) {\n tab.setAttribute(\"aria-controls\", panel.getAttribute(\"id\"));\n panel.setAttribute(\"aria-labelledby\", tab.getAttribute(\"id\"));\n }\n });\n }\n\n // This stores tabs and panels so we can refer to a cache instead of calling querySelectorAll() multiple times.\n /** @internal */\n private syncTabsAndPanels() {\n this.tabs = this.getAllTabs({ includeDisabled: false });\n this.panels = this.getAllPanels();\n }\n\n render() {\n return html`\n <div\n class=\"tab-group\"\n @click=${this.handleClick}\n @keydown=${this.handleKeyDown}\n variant=${ifDefined(this.variant)}\n >\n <div part=\"nav\" class=\"tab-group__nav\" role=\"tablist\">\n <slot\n name=\"nav\"\n class=${classMap({\n sgds: true,\n \"nav-tabs\": true,\n nav: true\n })}\n variant=${ifDefined(this.variant)}\n @slotchange=${this.syncTabsAndPanels}\n ></slot>\n </div>\n <div part=\"body\">\n <slot class=\"tab-group__body\" @slotchange=${this.syncTabsAndPanels}></slot>\n </div>\n </div>\n `;\n }\n}\n\nexport default SgdsTabGroup;\n"],"names":["SgdsElement","html","ifDefined","classMap","tabGroupStyle","__decorate","query","property"],"mappings":"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"}
1
+ {"version":3,"file":"sgds-tab-group.cjs.js","sources":["../../../src/components/Tab/sgds-tab-group.ts"],"sourcesContent":["import { html } 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 { SgdsTab } from \"./sgds-tab\";\nimport { SgdsTabPanel } from \"./sgds-tab-panel\";\nimport tabGroupStyle from \"./tab-group.css\";\n/**\n * @summary Tab Group organizes content into a container with the syncing of tab and their corresponding panels.\n * Each tab must be slotted into the nav slot and its `panel` must refer to a tab panel of the same name.\n *\n * @slot default - The slot for `sgds-tab-panel`\n * @slot nav - The slot for `sgds-tab`\n *\n * @event sgds-tab-show Emitted when a tab and its panels are shown\n * @event sgds-tab-hide Emitted when a tab and its panels are hidden.\n *\n * @csspart body - The container wrapping the default slot where all `sgds-tab-panel`s are slotted.\n * @csspart nav - The container wrapping the default slot where all `sgds-tab`s are slotted.\n *\n */\nexport class SgdsTabGroup extends SgdsElement {\n static styles = [...SgdsElement.styles, tabGroupStyle];\n /**@internal */\n @query(\".tab-group\") tabGroup: HTMLElement;\n /**@internal */\n @query(\".tab-group__body\") body: HTMLSlotElement;\n /**@internal */\n @query(\".tab-group__nav\") nav: HTMLElement;\n /**@internal */\n private activeTab?: SgdsTab;\n /**@internal */\n private mutationObserver: MutationObserver;\n /**@internal */\n private resizeObserver: ResizeObserver;\n /**@internal */\n private tabs: SgdsTab[] = [];\n /**@internal */\n private panels: SgdsTabPanel[] = [];\n /** The variant types of tabs. Controls the visual stylesof all `sgds-tabs` in its slot. It also dynamically changes the slots of `sgds-tab` */\n @property({ reflect: true, attribute: true }) variant: \"tabs-basic-toggle\" | \"tabs-info-toggle\";\n\n connectedCallback() {\n const whenAllDefined = Promise.all([\n customElements.whenDefined(\"sgds-tab\"),\n customElements.whenDefined(\"sgds-tab-panel\")\n ]);\n super.connectedCallback();\n this.resizeObserver = new ResizeObserver(() => {\n return;\n });\n\n this.mutationObserver = new MutationObserver(mutations => {\n // Update aria labels when the DOM changes\n if (mutations.some(m => ![\"aria-labelledby\", \"aria-controls\"].includes(m.attributeName))) {\n setTimeout(() => this.setAriaLabels());\n }\n\n // Sync tabs when disabled states change\n if (mutations.some(m => m.attributeName === \"disabled\")) {\n this.syncTabsAndPanels();\n }\n });\n\n this.updateComplete.then(() => {\n this.syncTabsAndPanels();\n this.mutationObserver.observe(this, { attributes: true, childList: true, subtree: true });\n this.resizeObserver.observe(this.nav);\n whenAllDefined.then(() => {\n // Set initial tab state when the tabs first become visible\n const intersectionObserver = new IntersectionObserver((entries, observer) => {\n if (entries[0].intersectionRatio > 0) {\n this.setAriaLabels();\n // this.setTabVariant();\n this.setActiveTab(this.getActiveTab() ?? this.tabs[0], { emitEvents: false });\n observer.unobserve(entries[0].target);\n }\n });\n intersectionObserver.observe(this.tabGroup);\n });\n });\n }\n\n disconnectedCallback() {\n this.mutationObserver.disconnect();\n this.resizeObserver.unobserve(this.nav);\n }\n\n /** Shows the specified tab panel. */\n public show(panel: string) {\n const tab = this.tabs.find(el => el.panel === panel);\n\n if (tab) {\n this.setActiveTab(tab);\n }\n }\n /** @internal */\n private getAllTabs(options: { includeDisabled: boolean } = { includeDisabled: true }) {\n const slot = this.shadowRoot.querySelector<HTMLSlotElement>('slot[name=\"nav\"]');\n\n return [...(slot.assignedElements() as SgdsTab[])].filter(el => {\n return options.includeDisabled\n ? el.tagName.toLowerCase() === \"sgds-tab\"\n : el.tagName.toLowerCase() === \"sgds-tab\" && !el.disabled;\n });\n }\n /** @internal */\n private getAllPanels() {\n return [...this.body.assignedElements()].filter(el => el.tagName.toLowerCase() === \"sgds-tab-panel\") as [\n SgdsTabPanel\n ];\n }\n /** @internal */\n private getActiveTab() {\n return this.tabs.find(el => el.active);\n }\n /** @internal */\n private handleClick(event: MouseEvent) {\n const target = event.target as HTMLElement;\n const tab = target.closest(\"sgds-tab\") as SgdsTab;\n const tabGroup = tab?.closest(\"sgds-tab-group\");\n\n // Ensure the target tab is in this tab group\n if (tabGroup !== this) {\n return;\n }\n\n if (tab !== null) {\n this.setActiveTab(tab);\n }\n }\n /** @internal */\n private handleKeyDown(event: KeyboardEvent) {\n const target = event.target as HTMLElement;\n const tab = target.closest(\"sgds-tab\") as SgdsTab;\n const tabGroup = tab?.closest(\"sgds-tab-group\");\n\n // Ensure the target tab is in this tab group\n if (tabGroup !== this) {\n return;\n }\n\n // Activate a tab\n if ([\"Enter\", \" \"].includes(event.key)) {\n if (tab !== null) {\n this.setActiveTab(tab);\n event.preventDefault();\n }\n }\n\n // Move focus left or right\n if ([\"ArrowLeft\", \"ArrowRight\", \"ArrowUp\", \"ArrowDown\", \"Home\", \"End\"].includes(event.key)) {\n const activeEl = this.tabs.find(t => t.matches(\":focus\"));\n\n if (activeEl?.tagName.toLowerCase() === \"sgds-tab\") {\n let index = this.tabs.indexOf(activeEl);\n\n if (event.key === \"Home\") {\n index = 0;\n } else if (event.key === \"End\") {\n index = this.tabs.length - 1;\n } else if (event.key === \"ArrowUp\" || event.key === \"ArrowLeft\") {\n index--;\n } else if (event.key === \"ArrowDown\" || event.key === \"ArrowRight\") {\n index++;\n }\n\n if (index < 0) {\n index = this.tabs.length - 1;\n }\n\n if (index > this.tabs.length - 1) {\n index = 0;\n }\n\n this.tabs[index].focus({ preventScroll: true });\n\n this.setActiveTab(this.tabs[index] /** , { scrollBehavior: \"smooth\" }*/);\n\n event.preventDefault();\n }\n }\n }\n /** @internal */\n private setActiveTab(tab: SgdsTab, options?: { emitEvents?: boolean }) {\n options = {\n emitEvents: true,\n ...options\n };\n\n if (tab !== this.activeTab && !tab.disabled) {\n const previousTab = this.activeTab;\n this.activeTab = tab;\n\n // Sync active tab and panel\n this.tabs.map(el => (el.active = el === this.activeTab));\n this.panels.map(el => (el.active = el.name === this.activeTab?.panel));\n\n // Emit events\n if (options.emitEvents) {\n if (previousTab) {\n this.emit(\"sgds-tab-hide\", { detail: { name: previousTab.panel } });\n }\n\n this.emit(\"sgds-tab-show\", { detail: { name: this.activeTab.panel } });\n }\n }\n }\n /** @internal */\n private setAriaLabels() {\n // Link each tab with its corresponding panel\n this.tabs.forEach(tab => {\n const panel = this.panels.find(el => el.name === tab.panel);\n if (panel) {\n tab.setAttribute(\"aria-controls\", panel.getAttribute(\"id\"));\n panel.setAttribute(\"aria-labelledby\", tab.getAttribute(\"id\"));\n }\n });\n }\n\n // This stores tabs and panels so we can refer to a cache instead of calling querySelectorAll() multiple times.\n /** @internal */\n private syncTabsAndPanels() {\n this.tabs = this.getAllTabs({ includeDisabled: false });\n this.panels = this.getAllPanels();\n }\n\n render() {\n return html`\n <div\n class=\"tab-group\"\n @click=${this.handleClick}\n @keydown=${this.handleKeyDown}\n variant=${ifDefined(this.variant)}\n >\n <div part=\"nav\" class=\"tab-group__nav\" role=\"tablist\">\n <slot\n name=\"nav\"\n class=${classMap({\n sgds: true,\n \"nav-tabs\": true,\n nav: true\n })}\n variant=${ifDefined(this.variant)}\n @slotchange=${this.syncTabsAndPanels}\n ></slot>\n </div>\n <div part=\"body\">\n <slot class=\"tab-group__body\" @slotchange=${this.syncTabsAndPanels}></slot>\n </div>\n </div>\n `;\n }\n}\n\nexport default SgdsTabGroup;\n"],"names":["SgdsElement","html","ifDefined","classMap","tabGroupStyle","__decorate","query","property"],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { __decorate } from 'tslib';
2
3
  import { html } from 'lit';
3
4
  import { query, property } from 'lit/decorators.js';
@@ -1 +1 @@
1
- {"version":3,"file":"sgds-tab-group.js","sources":["../../../src/components/Tab/sgds-tab-group.ts"],"sourcesContent":["import { html } 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 { SgdsTab } from \"./sgds-tab\";\nimport { SgdsTabPanel } from \"./sgds-tab-panel\";\nimport tabGroupStyle from \"./tab-group.css\";\n/**\n * @summary Tab Group organizes content into a container with the syncing of tab and their corresponding panels.\n * Each tab must be slotted into the nav slot and its `panel` must refer to a tab panel of the same name.\n *\n * @slot default - The slot for `sgds-tab-panel`\n * @slot nav - The slot for `sgds-tab`\n *\n * @event sgds-tab-show Emitted when a tab and its panels are shown\n * @event sgds-tab-hide Emitted when a tab and its panels are hidden.\n *\n * @csspart body - The container wrapping the default slot where all `sgds-tab-panel`s are slotted.\n * @csspart nav - The container wrapping the default slot where all `sgds-tab`s are slotted.\n *\n */\nexport class SgdsTabGroup extends SgdsElement {\n static styles = [...SgdsElement.styles, tabGroupStyle];\n /**@internal */\n @query(\".tab-group\") tabGroup: HTMLElement;\n /**@internal */\n @query(\".tab-group__body\") body: HTMLSlotElement;\n /**@internal */\n @query(\".tab-group__nav\") nav: HTMLElement;\n /**@internal */\n private activeTab?: SgdsTab;\n /**@internal */\n private mutationObserver: MutationObserver;\n /**@internal */\n private resizeObserver: ResizeObserver;\n /**@internal */\n private tabs: SgdsTab[] = [];\n /**@internal */\n private panels: SgdsTabPanel[] = [];\n /** The variant types of tabs. Controls the visual stylesof all `sgds-tabs` in its slot. It also dynamically changes the slots of `sgds-tab` */\n @property({ reflect: true, attribute: true }) variant: \"tabs-basic-toggle\" | \"tabs-info-toggle\";\n\n connectedCallback() {\n const whenAllDefined = Promise.all([\n customElements.whenDefined(\"sgds-tab\"),\n customElements.whenDefined(\"sgds-tab-panel\")\n ]);\n super.connectedCallback();\n this.resizeObserver = new ResizeObserver(() => {\n return;\n });\n\n this.mutationObserver = new MutationObserver(mutations => {\n // Update aria labels when the DOM changes\n if (mutations.some(m => ![\"aria-labelledby\", \"aria-controls\"].includes(m.attributeName))) {\n setTimeout(() => this.setAriaLabels());\n }\n\n // Sync tabs when disabled states change\n if (mutations.some(m => m.attributeName === \"disabled\")) {\n this.syncTabsAndPanels();\n }\n });\n\n this.updateComplete.then(() => {\n this.syncTabsAndPanels();\n this.mutationObserver.observe(this, { attributes: true, childList: true, subtree: true });\n this.resizeObserver.observe(this.nav);\n whenAllDefined.then(() => {\n // Set initial tab state when the tabs first become visible\n const intersectionObserver = new IntersectionObserver((entries, observer) => {\n if (entries[0].intersectionRatio > 0) {\n this.setAriaLabels();\n // this.setTabVariant();\n this.setActiveTab(this.getActiveTab() ?? this.tabs[0], { emitEvents: false });\n observer.unobserve(entries[0].target);\n }\n });\n intersectionObserver.observe(this.tabGroup);\n });\n });\n }\n\n disconnectedCallback() {\n this.mutationObserver.disconnect();\n this.resizeObserver.unobserve(this.nav);\n }\n\n /** Shows the specified tab panel. */\n public show(panel: string) {\n const tab = this.tabs.find(el => el.panel === panel);\n\n if (tab) {\n this.setActiveTab(tab);\n }\n }\n /** @internal */\n private getAllTabs(options: { includeDisabled: boolean } = { includeDisabled: true }) {\n const slot = this.shadowRoot.querySelector<HTMLSlotElement>('slot[name=\"nav\"]');\n\n return [...(slot.assignedElements() as SgdsTab[])].filter(el => {\n return options.includeDisabled\n ? el.tagName.toLowerCase() === \"sgds-tab\"\n : el.tagName.toLowerCase() === \"sgds-tab\" && !el.disabled;\n });\n }\n /** @internal */\n private getAllPanels() {\n return [...this.body.assignedElements()].filter(el => el.tagName.toLowerCase() === \"sgds-tab-panel\") as [\n SgdsTabPanel\n ];\n }\n /** @internal */\n private getActiveTab() {\n return this.tabs.find(el => el.active);\n }\n /** @internal */\n private handleClick(event: MouseEvent) {\n const target = event.target as HTMLElement;\n const tab = target.closest(\"sgds-tab\") as SgdsTab;\n const tabGroup = tab?.closest(\"sgds-tab-group\");\n\n // Ensure the target tab is in this tab group\n if (tabGroup !== this) {\n return;\n }\n\n if (tab !== null) {\n this.setActiveTab(tab);\n }\n }\n /** @internal */\n private handleKeyDown(event: KeyboardEvent) {\n const target = event.target as HTMLElement;\n const tab = target.closest(\"sgds-tab\") as SgdsTab;\n const tabGroup = tab?.closest(\"sgds-tab-group\");\n\n // Ensure the target tab is in this tab group\n if (tabGroup !== this) {\n return;\n }\n\n // Activate a tab\n if ([\"Enter\", \" \"].includes(event.key)) {\n if (tab !== null) {\n this.setActiveTab(tab);\n event.preventDefault();\n }\n }\n\n // Move focus left or right\n if ([\"ArrowLeft\", \"ArrowRight\", \"ArrowUp\", \"ArrowDown\", \"Home\", \"End\"].includes(event.key)) {\n const activeEl = this.tabs.find(t => t.matches(\":focus\"));\n\n if (activeEl?.tagName.toLowerCase() === \"sgds-tab\") {\n let index = this.tabs.indexOf(activeEl);\n\n if (event.key === \"Home\") {\n index = 0;\n } else if (event.key === \"End\") {\n index = this.tabs.length - 1;\n } else if (event.key === \"ArrowUp\" || event.key === \"ArrowLeft\") {\n index--;\n } else if (event.key === \"ArrowDown\" || event.key === \"ArrowRight\") {\n index++;\n }\n\n if (index < 0) {\n index = this.tabs.length - 1;\n }\n\n if (index > this.tabs.length - 1) {\n index = 0;\n }\n\n this.tabs[index].focus({ preventScroll: true });\n\n this.setActiveTab(this.tabs[index] /** , { scrollBehavior: \"smooth\" }*/);\n\n event.preventDefault();\n }\n }\n }\n /** @internal */\n private setActiveTab(tab: SgdsTab, options?: { emitEvents?: boolean }) {\n options = {\n emitEvents: true,\n ...options\n };\n\n if (tab !== this.activeTab && !tab.disabled) {\n const previousTab = this.activeTab;\n this.activeTab = tab;\n\n // Sync active tab and panel\n this.tabs.map(el => (el.active = el === this.activeTab));\n this.panels.map(el => (el.active = el.name === this.activeTab?.panel));\n\n // Emit events\n if (options.emitEvents) {\n if (previousTab) {\n this.emit(\"sgds-tab-hide\", { detail: { name: previousTab.panel } });\n }\n\n this.emit(\"sgds-tab-show\", { detail: { name: this.activeTab.panel } });\n }\n }\n }\n /** @internal */\n private setAriaLabels() {\n // Link each tab with its corresponding panel\n this.tabs.forEach(tab => {\n const panel = this.panels.find(el => el.name === tab.panel);\n if (panel) {\n tab.setAttribute(\"aria-controls\", panel.getAttribute(\"id\"));\n panel.setAttribute(\"aria-labelledby\", tab.getAttribute(\"id\"));\n }\n });\n }\n\n // This stores tabs and panels so we can refer to a cache instead of calling querySelectorAll() multiple times.\n /** @internal */\n private syncTabsAndPanels() {\n this.tabs = this.getAllTabs({ includeDisabled: false });\n this.panels = this.getAllPanels();\n }\n\n render() {\n return html`\n <div\n class=\"tab-group\"\n @click=${this.handleClick}\n @keydown=${this.handleKeyDown}\n variant=${ifDefined(this.variant)}\n >\n <div part=\"nav\" class=\"tab-group__nav\" role=\"tablist\">\n <slot\n name=\"nav\"\n class=${classMap({\n sgds: true,\n \"nav-tabs\": true,\n nav: true\n })}\n variant=${ifDefined(this.variant)}\n @slotchange=${this.syncTabsAndPanels}\n ></slot>\n </div>\n <div part=\"body\">\n <slot class=\"tab-group__body\" @slotchange=${this.syncTabsAndPanels}></slot>\n </div>\n </div>\n `;\n }\n}\n\nexport default SgdsTabGroup;\n"],"names":["tabGroupStyle"],"mappings":"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"}
1
+ {"version":3,"file":"sgds-tab-group.js","sources":["../../../src/components/Tab/sgds-tab-group.ts"],"sourcesContent":["import { html } 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 { SgdsTab } from \"./sgds-tab\";\nimport { SgdsTabPanel } from \"./sgds-tab-panel\";\nimport tabGroupStyle from \"./tab-group.css\";\n/**\n * @summary Tab Group organizes content into a container with the syncing of tab and their corresponding panels.\n * Each tab must be slotted into the nav slot and its `panel` must refer to a tab panel of the same name.\n *\n * @slot default - The slot for `sgds-tab-panel`\n * @slot nav - The slot for `sgds-tab`\n *\n * @event sgds-tab-show Emitted when a tab and its panels are shown\n * @event sgds-tab-hide Emitted when a tab and its panels are hidden.\n *\n * @csspart body - The container wrapping the default slot where all `sgds-tab-panel`s are slotted.\n * @csspart nav - The container wrapping the default slot where all `sgds-tab`s are slotted.\n *\n */\nexport class SgdsTabGroup extends SgdsElement {\n static styles = [...SgdsElement.styles, tabGroupStyle];\n /**@internal */\n @query(\".tab-group\") tabGroup: HTMLElement;\n /**@internal */\n @query(\".tab-group__body\") body: HTMLSlotElement;\n /**@internal */\n @query(\".tab-group__nav\") nav: HTMLElement;\n /**@internal */\n private activeTab?: SgdsTab;\n /**@internal */\n private mutationObserver: MutationObserver;\n /**@internal */\n private resizeObserver: ResizeObserver;\n /**@internal */\n private tabs: SgdsTab[] = [];\n /**@internal */\n private panels: SgdsTabPanel[] = [];\n /** The variant types of tabs. Controls the visual stylesof all `sgds-tabs` in its slot. It also dynamically changes the slots of `sgds-tab` */\n @property({ reflect: true, attribute: true }) variant: \"tabs-basic-toggle\" | \"tabs-info-toggle\";\n\n connectedCallback() {\n const whenAllDefined = Promise.all([\n customElements.whenDefined(\"sgds-tab\"),\n customElements.whenDefined(\"sgds-tab-panel\")\n ]);\n super.connectedCallback();\n this.resizeObserver = new ResizeObserver(() => {\n return;\n });\n\n this.mutationObserver = new MutationObserver(mutations => {\n // Update aria labels when the DOM changes\n if (mutations.some(m => ![\"aria-labelledby\", \"aria-controls\"].includes(m.attributeName))) {\n setTimeout(() => this.setAriaLabels());\n }\n\n // Sync tabs when disabled states change\n if (mutations.some(m => m.attributeName === \"disabled\")) {\n this.syncTabsAndPanels();\n }\n });\n\n this.updateComplete.then(() => {\n this.syncTabsAndPanels();\n this.mutationObserver.observe(this, { attributes: true, childList: true, subtree: true });\n this.resizeObserver.observe(this.nav);\n whenAllDefined.then(() => {\n // Set initial tab state when the tabs first become visible\n const intersectionObserver = new IntersectionObserver((entries, observer) => {\n if (entries[0].intersectionRatio > 0) {\n this.setAriaLabels();\n // this.setTabVariant();\n this.setActiveTab(this.getActiveTab() ?? this.tabs[0], { emitEvents: false });\n observer.unobserve(entries[0].target);\n }\n });\n intersectionObserver.observe(this.tabGroup);\n });\n });\n }\n\n disconnectedCallback() {\n this.mutationObserver.disconnect();\n this.resizeObserver.unobserve(this.nav);\n }\n\n /** Shows the specified tab panel. */\n public show(panel: string) {\n const tab = this.tabs.find(el => el.panel === panel);\n\n if (tab) {\n this.setActiveTab(tab);\n }\n }\n /** @internal */\n private getAllTabs(options: { includeDisabled: boolean } = { includeDisabled: true }) {\n const slot = this.shadowRoot.querySelector<HTMLSlotElement>('slot[name=\"nav\"]');\n\n return [...(slot.assignedElements() as SgdsTab[])].filter(el => {\n return options.includeDisabled\n ? el.tagName.toLowerCase() === \"sgds-tab\"\n : el.tagName.toLowerCase() === \"sgds-tab\" && !el.disabled;\n });\n }\n /** @internal */\n private getAllPanels() {\n return [...this.body.assignedElements()].filter(el => el.tagName.toLowerCase() === \"sgds-tab-panel\") as [\n SgdsTabPanel\n ];\n }\n /** @internal */\n private getActiveTab() {\n return this.tabs.find(el => el.active);\n }\n /** @internal */\n private handleClick(event: MouseEvent) {\n const target = event.target as HTMLElement;\n const tab = target.closest(\"sgds-tab\") as SgdsTab;\n const tabGroup = tab?.closest(\"sgds-tab-group\");\n\n // Ensure the target tab is in this tab group\n if (tabGroup !== this) {\n return;\n }\n\n if (tab !== null) {\n this.setActiveTab(tab);\n }\n }\n /** @internal */\n private handleKeyDown(event: KeyboardEvent) {\n const target = event.target as HTMLElement;\n const tab = target.closest(\"sgds-tab\") as SgdsTab;\n const tabGroup = tab?.closest(\"sgds-tab-group\");\n\n // Ensure the target tab is in this tab group\n if (tabGroup !== this) {\n return;\n }\n\n // Activate a tab\n if ([\"Enter\", \" \"].includes(event.key)) {\n if (tab !== null) {\n this.setActiveTab(tab);\n event.preventDefault();\n }\n }\n\n // Move focus left or right\n if ([\"ArrowLeft\", \"ArrowRight\", \"ArrowUp\", \"ArrowDown\", \"Home\", \"End\"].includes(event.key)) {\n const activeEl = this.tabs.find(t => t.matches(\":focus\"));\n\n if (activeEl?.tagName.toLowerCase() === \"sgds-tab\") {\n let index = this.tabs.indexOf(activeEl);\n\n if (event.key === \"Home\") {\n index = 0;\n } else if (event.key === \"End\") {\n index = this.tabs.length - 1;\n } else if (event.key === \"ArrowUp\" || event.key === \"ArrowLeft\") {\n index--;\n } else if (event.key === \"ArrowDown\" || event.key === \"ArrowRight\") {\n index++;\n }\n\n if (index < 0) {\n index = this.tabs.length - 1;\n }\n\n if (index > this.tabs.length - 1) {\n index = 0;\n }\n\n this.tabs[index].focus({ preventScroll: true });\n\n this.setActiveTab(this.tabs[index] /** , { scrollBehavior: \"smooth\" }*/);\n\n event.preventDefault();\n }\n }\n }\n /** @internal */\n private setActiveTab(tab: SgdsTab, options?: { emitEvents?: boolean }) {\n options = {\n emitEvents: true,\n ...options\n };\n\n if (tab !== this.activeTab && !tab.disabled) {\n const previousTab = this.activeTab;\n this.activeTab = tab;\n\n // Sync active tab and panel\n this.tabs.map(el => (el.active = el === this.activeTab));\n this.panels.map(el => (el.active = el.name === this.activeTab?.panel));\n\n // Emit events\n if (options.emitEvents) {\n if (previousTab) {\n this.emit(\"sgds-tab-hide\", { detail: { name: previousTab.panel } });\n }\n\n this.emit(\"sgds-tab-show\", { detail: { name: this.activeTab.panel } });\n }\n }\n }\n /** @internal */\n private setAriaLabels() {\n // Link each tab with its corresponding panel\n this.tabs.forEach(tab => {\n const panel = this.panels.find(el => el.name === tab.panel);\n if (panel) {\n tab.setAttribute(\"aria-controls\", panel.getAttribute(\"id\"));\n panel.setAttribute(\"aria-labelledby\", tab.getAttribute(\"id\"));\n }\n });\n }\n\n // This stores tabs and panels so we can refer to a cache instead of calling querySelectorAll() multiple times.\n /** @internal */\n private syncTabsAndPanels() {\n this.tabs = this.getAllTabs({ includeDisabled: false });\n this.panels = this.getAllPanels();\n }\n\n render() {\n return html`\n <div\n class=\"tab-group\"\n @click=${this.handleClick}\n @keydown=${this.handleKeyDown}\n variant=${ifDefined(this.variant)}\n >\n <div part=\"nav\" class=\"tab-group__nav\" role=\"tablist\">\n <slot\n name=\"nav\"\n class=${classMap({\n sgds: true,\n \"nav-tabs\": true,\n nav: true\n })}\n variant=${ifDefined(this.variant)}\n @slotchange=${this.syncTabsAndPanels}\n ></slot>\n </div>\n <div part=\"body\">\n <slot class=\"tab-group__body\" @slotchange=${this.syncTabsAndPanels}></slot>\n </div>\n </div>\n `;\n }\n}\n\nexport default SgdsTabGroup;\n"],"names":["tabGroupStyle"],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  'use strict';
2
3
 
3
4
  Object.defineProperty(exports, '__esModule', { value: true });
@@ -1 +1 @@
1
- {"version":3,"file":"sgds-tab-panel.cjs.js","sources":["../../../src/components/Tab/sgds-tab-panel.ts"],"sourcesContent":["import { LitElement, html } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { watch } from \"../../utils/watch\";\nimport tabPanelStyles from \"./tab-panel.css\";\n\nlet id = 0;\n\n/**\n * @summary Tab panels are used inside tab groups to display tabbed content.\n * @slot - The tab panel's content.\n *\n * @csspart base - The component's base wrapper.\n *\n * @cssproperty --tab-panel-padding-y - The y-axis padding of tab panel.\n *\n */\nexport class SgdsTabPanel extends LitElement {\n static styles = tabPanelStyles;\n /**@internal */\n private readonly attrId = ++id;\n /**@internal */\n private readonly componentId = `sgds-tab-panel-${this.attrId}`;\n /** The tab panel's name. */\n @property({ reflect: true }) name = \"\";\n\n /** When true, the tab panel will be shown. When used with tab-group, this property is already being managed */\n @property({ type: Boolean, reflect: true }) active = false;\n\n connectedCallback() {\n super.connectedCallback();\n this.id = this.id.length > 0 ? this.id : this.componentId;\n this.setAttribute(\"role\", \"tabpanel\");\n }\n\n @watch(\"active\")\n handleActiveChange() {\n this.setAttribute(\"aria-hidden\", this.active ? \"false\" : \"true\");\n }\n\n render() {\n return html`\n <slot\n part=\"base\"\n class=${classMap({\n \"tab-panel\": true,\n \"tab-panel--active\": this.active\n })}\n ></slot>\n `;\n }\n}\n\nexport default SgdsTabPanel;\n"],"names":["LitElement","html","classMap","tabPanelStyles","__decorate","property","watch"],"mappings":";;;;;;;;;;;AAMA,IAAI,EAAE,GAAG,CAAC,CAAC;AAEX;;;;;;;;AAQG;AACG,MAAO,YAAa,SAAQA,cAAU,CAAA;AAA5C,IAAA,WAAA,GAAA;;;QAGmB,IAAM,CAAA,MAAA,GAAG,EAAE,EAAE,CAAC;;AAEd,QAAA,IAAA,CAAA,WAAW,GAAG,CAAkB,eAAA,EAAA,IAAI,CAAC,MAAM,EAAE,CAAC;;QAElC,IAAI,CAAA,IAAA,GAAG,EAAE,CAAC;;QAGK,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;KAwB5D;IAtBC,iBAAiB,GAAA;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;AAC1D,QAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;KACvC;IAGD,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC,CAAC;KAClE;IAED,MAAM,GAAA;AACJ,QAAA,OAAOC,QAAI,CAAA,CAAA;;;AAGC,cAAA,EAAAC,oBAAQ,CAAC;AACf,YAAA,WAAW,EAAE,IAAI;YACjB,mBAAmB,EAAE,IAAI,CAAC,MAAM;SACjC,CAAC,CAAA;;KAEL,CAAC;KACH;;AAhCM,YAAM,CAAA,MAAA,GAAGC,mBAAH,CAAkB;AAMFC,gBAAA,CAAA;AAA5B,IAAAC,sBAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAAW,CAAA,EAAA,YAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAGKD,gBAAA,CAAA;IAA3CC,sBAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAAgB,CAAA,EAAA,YAAA,CAAA,SAAA,EAAA,QAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAS3DD,gBAAA,CAAA;IADCE,WAAK,CAAC,QAAQ,CAAC;AAGf,CAAA,EAAA,YAAA,CAAA,SAAA,EAAA,oBAAA,EAAA,IAAA,CAAA;;;;;"}
1
+ {"version":3,"file":"sgds-tab-panel.cjs.js","sources":["../../../src/components/Tab/sgds-tab-panel.ts"],"sourcesContent":["import { LitElement, html } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { watch } from \"../../utils/watch\";\nimport tabPanelStyles from \"./tab-panel.css\";\n\nlet id = 0;\n\n/**\n * @summary Tab panels are used inside tab groups to display tabbed content.\n * @slot - The tab panel's content.\n *\n * @csspart base - The component's base wrapper.\n *\n * @cssproperty --tab-panel-padding-y - The y-axis padding of tab panel.\n *\n */\nexport class SgdsTabPanel extends LitElement {\n static styles = tabPanelStyles;\n /**@internal */\n private readonly attrId = ++id;\n /**@internal */\n private readonly componentId = `sgds-tab-panel-${this.attrId}`;\n /** The tab panel's name. */\n @property({ reflect: true }) name = \"\";\n\n /** When true, the tab panel will be shown. When used with tab-group, this property is already being managed */\n @property({ type: Boolean, reflect: true }) active = false;\n\n connectedCallback() {\n super.connectedCallback();\n this.id = this.id.length > 0 ? this.id : this.componentId;\n this.setAttribute(\"role\", \"tabpanel\");\n }\n\n @watch(\"active\")\n handleActiveChange() {\n this.setAttribute(\"aria-hidden\", this.active ? \"false\" : \"true\");\n }\n\n render() {\n return html`\n <slot\n part=\"base\"\n class=${classMap({\n \"tab-panel\": true,\n \"tab-panel--active\": this.active\n })}\n ></slot>\n `;\n }\n}\n\nexport default SgdsTabPanel;\n"],"names":["LitElement","html","classMap","tabPanelStyles","__decorate","property","watch"],"mappings":";;;;;;;;;;;;AAMA,IAAI,EAAE,GAAG,CAAC,CAAC;AAEX;;;;;;;;AAQG;AACG,MAAO,YAAa,SAAQA,cAAU,CAAA;AAA5C,IAAA,WAAA,GAAA;;;QAGmB,IAAM,CAAA,MAAA,GAAG,EAAE,EAAE,CAAC;;AAEd,QAAA,IAAA,CAAA,WAAW,GAAG,CAAkB,eAAA,EAAA,IAAI,CAAC,MAAM,EAAE,CAAC;;QAElC,IAAI,CAAA,IAAA,GAAG,EAAE,CAAC;;QAGK,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;KAwB5D;IAtBC,iBAAiB,GAAA;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;AAC1D,QAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;KACvC;IAGD,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC,CAAC;KAClE;IAED,MAAM,GAAA;AACJ,QAAA,OAAOC,QAAI,CAAA,CAAA;;;AAGC,cAAA,EAAAC,oBAAQ,CAAC;AACf,YAAA,WAAW,EAAE,IAAI;YACjB,mBAAmB,EAAE,IAAI,CAAC,MAAM;SACjC,CAAC,CAAA;;KAEL,CAAC;KACH;;AAhCM,YAAM,CAAA,MAAA,GAAGC,mBAAH,CAAkB;AAMFC,gBAAA,CAAA;AAA5B,IAAAC,sBAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAAW,CAAA,EAAA,YAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAGKD,gBAAA,CAAA;IAA3CC,sBAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAAgB,CAAA,EAAA,YAAA,CAAA,SAAA,EAAA,QAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAS3DD,gBAAA,CAAA;IADCE,WAAK,CAAC,QAAQ,CAAC;AAGf,CAAA,EAAA,YAAA,CAAA,SAAA,EAAA,oBAAA,EAAA,IAAA,CAAA;;;;;"}
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { __decorate } from 'tslib';
2
3
  import { LitElement, html } from 'lit';
3
4
  import { property } from 'lit/decorators.js';
@@ -1 +1 @@
1
- {"version":3,"file":"sgds-tab-panel.js","sources":["../../../src/components/Tab/sgds-tab-panel.ts"],"sourcesContent":["import { LitElement, html } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { watch } from \"../../utils/watch\";\nimport tabPanelStyles from \"./tab-panel.css\";\n\nlet id = 0;\n\n/**\n * @summary Tab panels are used inside tab groups to display tabbed content.\n * @slot - The tab panel's content.\n *\n * @csspart base - The component's base wrapper.\n *\n * @cssproperty --tab-panel-padding-y - The y-axis padding of tab panel.\n *\n */\nexport class SgdsTabPanel extends LitElement {\n static styles = tabPanelStyles;\n /**@internal */\n private readonly attrId = ++id;\n /**@internal */\n private readonly componentId = `sgds-tab-panel-${this.attrId}`;\n /** The tab panel's name. */\n @property({ reflect: true }) name = \"\";\n\n /** When true, the tab panel will be shown. When used with tab-group, this property is already being managed */\n @property({ type: Boolean, reflect: true }) active = false;\n\n connectedCallback() {\n super.connectedCallback();\n this.id = this.id.length > 0 ? this.id : this.componentId;\n this.setAttribute(\"role\", \"tabpanel\");\n }\n\n @watch(\"active\")\n handleActiveChange() {\n this.setAttribute(\"aria-hidden\", this.active ? \"false\" : \"true\");\n }\n\n render() {\n return html`\n <slot\n part=\"base\"\n class=${classMap({\n \"tab-panel\": true,\n \"tab-panel--active\": this.active\n })}\n ></slot>\n `;\n }\n}\n\nexport default SgdsTabPanel;\n"],"names":["tabPanelStyles"],"mappings":";;;;;;;AAMA,IAAI,EAAE,GAAG,CAAC,CAAC;AAEX;;;;;;;;AAQG;AACG,MAAO,YAAa,SAAQ,UAAU,CAAA;AAA5C,IAAA,WAAA,GAAA;;;QAGmB,IAAM,CAAA,MAAA,GAAG,EAAE,EAAE,CAAC;;AAEd,QAAA,IAAA,CAAA,WAAW,GAAG,CAAkB,eAAA,EAAA,IAAI,CAAC,MAAM,EAAE,CAAC;;QAElC,IAAI,CAAA,IAAA,GAAG,EAAE,CAAC;;QAGK,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;KAwB5D;IAtBC,iBAAiB,GAAA;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;AAC1D,QAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;KACvC;IAGD,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC,CAAC;KAClE;IAED,MAAM,GAAA;AACJ,QAAA,OAAO,IAAI,CAAA,CAAA;;;AAGC,cAAA,EAAA,QAAQ,CAAC;AACf,YAAA,WAAW,EAAE,IAAI;YACjB,mBAAmB,EAAE,IAAI,CAAC,MAAM;SACjC,CAAC,CAAA;;KAEL,CAAC;KACH;;AAhCM,YAAM,CAAA,MAAA,GAAGA,QAAH,CAAkB;AAMF,UAAA,CAAA;AAA5B,IAAA,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAAW,CAAA,EAAA,YAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAGK,UAAA,CAAA;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAAgB,CAAA,EAAA,YAAA,CAAA,SAAA,EAAA,QAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAS3D,UAAA,CAAA;IADC,KAAK,CAAC,QAAQ,CAAC;AAGf,CAAA,EAAA,YAAA,CAAA,SAAA,EAAA,oBAAA,EAAA,IAAA,CAAA;;;;"}
1
+ {"version":3,"file":"sgds-tab-panel.js","sources":["../../../src/components/Tab/sgds-tab-panel.ts"],"sourcesContent":["import { LitElement, html } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { watch } from \"../../utils/watch\";\nimport tabPanelStyles from \"./tab-panel.css\";\n\nlet id = 0;\n\n/**\n * @summary Tab panels are used inside tab groups to display tabbed content.\n * @slot - The tab panel's content.\n *\n * @csspart base - The component's base wrapper.\n *\n * @cssproperty --tab-panel-padding-y - The y-axis padding of tab panel.\n *\n */\nexport class SgdsTabPanel extends LitElement {\n static styles = tabPanelStyles;\n /**@internal */\n private readonly attrId = ++id;\n /**@internal */\n private readonly componentId = `sgds-tab-panel-${this.attrId}`;\n /** The tab panel's name. */\n @property({ reflect: true }) name = \"\";\n\n /** When true, the tab panel will be shown. When used with tab-group, this property is already being managed */\n @property({ type: Boolean, reflect: true }) active = false;\n\n connectedCallback() {\n super.connectedCallback();\n this.id = this.id.length > 0 ? this.id : this.componentId;\n this.setAttribute(\"role\", \"tabpanel\");\n }\n\n @watch(\"active\")\n handleActiveChange() {\n this.setAttribute(\"aria-hidden\", this.active ? \"false\" : \"true\");\n }\n\n render() {\n return html`\n <slot\n part=\"base\"\n class=${classMap({\n \"tab-panel\": true,\n \"tab-panel--active\": this.active\n })}\n ></slot>\n `;\n }\n}\n\nexport default SgdsTabPanel;\n"],"names":["tabPanelStyles"],"mappings":";;;;;;;;AAMA,IAAI,EAAE,GAAG,CAAC,CAAC;AAEX;;;;;;;;AAQG;AACG,MAAO,YAAa,SAAQ,UAAU,CAAA;AAA5C,IAAA,WAAA,GAAA;;;QAGmB,IAAM,CAAA,MAAA,GAAG,EAAE,EAAE,CAAC;;AAEd,QAAA,IAAA,CAAA,WAAW,GAAG,CAAkB,eAAA,EAAA,IAAI,CAAC,MAAM,EAAE,CAAC;;QAElC,IAAI,CAAA,IAAA,GAAG,EAAE,CAAC;;QAGK,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;KAwB5D;IAtBC,iBAAiB,GAAA;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;AAC1D,QAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;KACvC;IAGD,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC,CAAC;KAClE;IAED,MAAM,GAAA;AACJ,QAAA,OAAO,IAAI,CAAA,CAAA;;;AAGC,cAAA,EAAA,QAAQ,CAAC;AACf,YAAA,WAAW,EAAE,IAAI;YACjB,mBAAmB,EAAE,IAAI,CAAC,MAAM;SACjC,CAAC,CAAA;;KAEL,CAAC;KACH;;AAhCM,YAAM,CAAA,MAAA,GAAGA,QAAH,CAAkB;AAMF,UAAA,CAAA;AAA5B,IAAA,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAAW,CAAA,EAAA,YAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAGK,UAAA,CAAA;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAAgB,CAAA,EAAA,YAAA,CAAA,SAAA,EAAA,QAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAS3D,UAAA,CAAA;IADC,KAAK,CAAC,QAAQ,CAAC;AAGf,CAAA,EAAA,YAAA,CAAA,SAAA,EAAA,oBAAA,EAAA,IAAA,CAAA;;;;"}
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  'use strict';
2
3
 
3
4
  Object.defineProperty(exports, '__esModule', { value: true });
@@ -1 +1 @@
1
- {"version":3,"file":"sgds-tab.cjs.js","sources":["../../../src/components/Tab/sgds-tab.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 { watch } from \"../../utils/watch\";\nimport tabStyle from \"./tab.css\";\n\nlet id = 0;\n/**\n * @summary Tabs are used within tab group to activate the tab panels\n *\n * @slot default - The content of the tab. This is available when variant attribute of `sgds-tab-group` is not specified or when it is `tabs-basic-toggle`\n *\n * @slot icon - The slot to place svg icons. This is only available when variant attribute of `sgds-tab-group` is `tabs-info-toggle`\n * @slot count - The slot for count. This is only available when variant attribute of `sgds-tab-group` is `tabs-info-toggle`\n * @slot label - The slot for label of tab. This is only available when variant attribute of `sgds-tab-group` is `tabs-info-toggle`\n *\n * @csspart base - The base wrapper of tab\n *\n *\n */\nexport class SgdsTab extends SgdsElement {\n static styles = [tabStyle];\n /**@internal */\n @query(\".nav-item\") tab: HTMLElement;\n /**@internal */\n private readonly attrId = ++id;\n /**@internal */\n private readonly componentId = `sgds-tab-${this.attrId}`;\n\n /** The name of the tab panel this tab is associated with. The panel must be located in the same tab group. */\n @property({ reflect: true }) panel = \"\";\n\n /** Draws the tab in an active state. When used with tab group, this state is already managed. Use it to set the initial active tab on first load of page */\n @property({ type: Boolean, reflect: true }) active = false;\n\n /** Disables the tab and prevents selection. */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n connectedCallback() {\n super.connectedCallback();\n this.setAttribute(\"role\", \"tab\");\n }\n\n /** Sets focus to the tab. */\n public focus(options?: FocusOptions) {\n this.tab.focus(options);\n }\n\n /** Removes focus from the tab. */\n public blur() {\n this.tab.blur();\n }\n /**@internal */\n @watch(\"active\")\n handleActiveChange() {\n this.setAttribute(\"aria-selected\", this.active ? \"true\" : \"false\");\n }\n /**@internal */\n @watch(\"disabled\")\n handleDisabledChange() {\n this.setAttribute(\"aria-disabled\", this.disabled ? \"true\" : \"false\");\n if (this.disabled) this.active = false;\n }\n\n render() {\n // If the user didn't provide an ID, we'll set one so we can link tabs and tab panels with aria labels\n this.id = this.id.length > 0 ? this.id : this.componentId;\n const parentVariantAttr = this.closest(\"sgds-tab-group\").getAttribute(\"variant\");\n const tabsInfo = html`\n <div class=\"tabs-info-label\">\n <div><slot name=\"icon\"></slot></div>\n <div><slot name=\"label\"></slot></div>\n </div>\n <div class=\"tabs-info-count\"><slot name=\"count\"></slot></div>\n `;\n return html`\n <ul class=\"list-unstyled\">\n <li part=\"base\" class=\"nav-item\" tabindex=${this.disabled ? \"-1\" : \"0\"}>\n <div\n class=\"${classMap({\n \"nav-link\": true,\n [`${parentVariantAttr}`]: parentVariantAttr,\n active: this.active,\n disabled: this.disabled\n })}\"\n >\n ${parentVariantAttr === \"tabs-info-toggle\" ? tabsInfo : html`<slot></slot>`}\n </div>\n </li>\n </ul>\n `;\n }\n}\n\nexport default SgdsTab;\n"],"names":["SgdsElement","html","classMap","tabStyle","__decorate","query","property","watch"],"mappings":"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"}
1
+ {"version":3,"file":"sgds-tab.cjs.js","sources":["../../../src/components/Tab/sgds-tab.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 { watch } from \"../../utils/watch\";\nimport tabStyle from \"./tab.css\";\n\nlet id = 0;\n/**\n * @summary Tabs are used within tab group to activate the tab panels\n *\n * @slot default - The content of the tab. This is available when variant attribute of `sgds-tab-group` is not specified or when it is `tabs-basic-toggle`\n *\n * @slot icon - The slot to place svg icons. This is only available when variant attribute of `sgds-tab-group` is `tabs-info-toggle`\n * @slot count - The slot for count. This is only available when variant attribute of `sgds-tab-group` is `tabs-info-toggle`\n * @slot label - The slot for label of tab. This is only available when variant attribute of `sgds-tab-group` is `tabs-info-toggle`\n *\n * @csspart base - The base wrapper of tab\n *\n *\n */\nexport class SgdsTab extends SgdsElement {\n static styles = [tabStyle];\n /**@internal */\n @query(\".nav-item\") tab: HTMLElement;\n /**@internal */\n private readonly attrId = ++id;\n /**@internal */\n private readonly componentId = `sgds-tab-${this.attrId}`;\n\n /** The name of the tab panel this tab is associated with. The panel must be located in the same tab group. */\n @property({ reflect: true }) panel = \"\";\n\n /** Draws the tab in an active state. When used with tab group, this state is already managed. Use it to set the initial active tab on first load of page */\n @property({ type: Boolean, reflect: true }) active = false;\n\n /** Disables the tab and prevents selection. */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n connectedCallback() {\n super.connectedCallback();\n this.setAttribute(\"role\", \"tab\");\n }\n\n /** Sets focus to the tab. */\n public focus(options?: FocusOptions) {\n this.tab.focus(options);\n }\n\n /** Removes focus from the tab. */\n public blur() {\n this.tab.blur();\n }\n /**@internal */\n @watch(\"active\")\n handleActiveChange() {\n this.setAttribute(\"aria-selected\", this.active ? \"true\" : \"false\");\n }\n /**@internal */\n @watch(\"disabled\")\n handleDisabledChange() {\n this.setAttribute(\"aria-disabled\", this.disabled ? \"true\" : \"false\");\n if (this.disabled) this.active = false;\n }\n\n render() {\n // If the user didn't provide an ID, we'll set one so we can link tabs and tab panels with aria labels\n this.id = this.id.length > 0 ? this.id : this.componentId;\n const parentVariantAttr = this.closest(\"sgds-tab-group\").getAttribute(\"variant\");\n const tabsInfo = html`\n <div class=\"tabs-info-label\">\n <div><slot name=\"icon\"></slot></div>\n <div><slot name=\"label\"></slot></div>\n </div>\n <div class=\"tabs-info-count\"><slot name=\"count\"></slot></div>\n `;\n return html`\n <ul class=\"list-unstyled\">\n <li part=\"base\" class=\"nav-item\" tabindex=${this.disabled ? \"-1\" : \"0\"}>\n <div\n class=\"${classMap({\n \"nav-link\": true,\n [`${parentVariantAttr}`]: parentVariantAttr,\n active: this.active,\n disabled: this.disabled\n })}\"\n >\n ${parentVariantAttr === \"tabs-info-toggle\" ? tabsInfo : html`<slot></slot>`}\n </div>\n </li>\n </ul>\n `;\n }\n}\n\nexport default SgdsTab;\n"],"names":["SgdsElement","html","classMap","tabStyle","__decorate","query","property","watch"],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { __decorate } from 'tslib';
2
3
  import { html } from 'lit';
3
4
  import { query, property } from 'lit/decorators.js';
@@ -1 +1 @@
1
- {"version":3,"file":"sgds-tab.js","sources":["../../../src/components/Tab/sgds-tab.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 { watch } from \"../../utils/watch\";\nimport tabStyle from \"./tab.css\";\n\nlet id = 0;\n/**\n * @summary Tabs are used within tab group to activate the tab panels\n *\n * @slot default - The content of the tab. This is available when variant attribute of `sgds-tab-group` is not specified or when it is `tabs-basic-toggle`\n *\n * @slot icon - The slot to place svg icons. This is only available when variant attribute of `sgds-tab-group` is `tabs-info-toggle`\n * @slot count - The slot for count. This is only available when variant attribute of `sgds-tab-group` is `tabs-info-toggle`\n * @slot label - The slot for label of tab. This is only available when variant attribute of `sgds-tab-group` is `tabs-info-toggle`\n *\n * @csspart base - The base wrapper of tab\n *\n *\n */\nexport class SgdsTab extends SgdsElement {\n static styles = [tabStyle];\n /**@internal */\n @query(\".nav-item\") tab: HTMLElement;\n /**@internal */\n private readonly attrId = ++id;\n /**@internal */\n private readonly componentId = `sgds-tab-${this.attrId}`;\n\n /** The name of the tab panel this tab is associated with. The panel must be located in the same tab group. */\n @property({ reflect: true }) panel = \"\";\n\n /** Draws the tab in an active state. When used with tab group, this state is already managed. Use it to set the initial active tab on first load of page */\n @property({ type: Boolean, reflect: true }) active = false;\n\n /** Disables the tab and prevents selection. */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n connectedCallback() {\n super.connectedCallback();\n this.setAttribute(\"role\", \"tab\");\n }\n\n /** Sets focus to the tab. */\n public focus(options?: FocusOptions) {\n this.tab.focus(options);\n }\n\n /** Removes focus from the tab. */\n public blur() {\n this.tab.blur();\n }\n /**@internal */\n @watch(\"active\")\n handleActiveChange() {\n this.setAttribute(\"aria-selected\", this.active ? \"true\" : \"false\");\n }\n /**@internal */\n @watch(\"disabled\")\n handleDisabledChange() {\n this.setAttribute(\"aria-disabled\", this.disabled ? \"true\" : \"false\");\n if (this.disabled) this.active = false;\n }\n\n render() {\n // If the user didn't provide an ID, we'll set one so we can link tabs and tab panels with aria labels\n this.id = this.id.length > 0 ? this.id : this.componentId;\n const parentVariantAttr = this.closest(\"sgds-tab-group\").getAttribute(\"variant\");\n const tabsInfo = html`\n <div class=\"tabs-info-label\">\n <div><slot name=\"icon\"></slot></div>\n <div><slot name=\"label\"></slot></div>\n </div>\n <div class=\"tabs-info-count\"><slot name=\"count\"></slot></div>\n `;\n return html`\n <ul class=\"list-unstyled\">\n <li part=\"base\" class=\"nav-item\" tabindex=${this.disabled ? \"-1\" : \"0\"}>\n <div\n class=\"${classMap({\n \"nav-link\": true,\n [`${parentVariantAttr}`]: parentVariantAttr,\n active: this.active,\n disabled: this.disabled\n })}\"\n >\n ${parentVariantAttr === \"tabs-info-toggle\" ? tabsInfo : html`<slot></slot>`}\n </div>\n </li>\n </ul>\n `;\n }\n}\n\nexport default SgdsTab;\n"],"names":["tabStyle"],"mappings":"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"}
1
+ {"version":3,"file":"sgds-tab.js","sources":["../../../src/components/Tab/sgds-tab.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 { watch } from \"../../utils/watch\";\nimport tabStyle from \"./tab.css\";\n\nlet id = 0;\n/**\n * @summary Tabs are used within tab group to activate the tab panels\n *\n * @slot default - The content of the tab. This is available when variant attribute of `sgds-tab-group` is not specified or when it is `tabs-basic-toggle`\n *\n * @slot icon - The slot to place svg icons. This is only available when variant attribute of `sgds-tab-group` is `tabs-info-toggle`\n * @slot count - The slot for count. This is only available when variant attribute of `sgds-tab-group` is `tabs-info-toggle`\n * @slot label - The slot for label of tab. This is only available when variant attribute of `sgds-tab-group` is `tabs-info-toggle`\n *\n * @csspart base - The base wrapper of tab\n *\n *\n */\nexport class SgdsTab extends SgdsElement {\n static styles = [tabStyle];\n /**@internal */\n @query(\".nav-item\") tab: HTMLElement;\n /**@internal */\n private readonly attrId = ++id;\n /**@internal */\n private readonly componentId = `sgds-tab-${this.attrId}`;\n\n /** The name of the tab panel this tab is associated with. The panel must be located in the same tab group. */\n @property({ reflect: true }) panel = \"\";\n\n /** Draws the tab in an active state. When used with tab group, this state is already managed. Use it to set the initial active tab on first load of page */\n @property({ type: Boolean, reflect: true }) active = false;\n\n /** Disables the tab and prevents selection. */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n connectedCallback() {\n super.connectedCallback();\n this.setAttribute(\"role\", \"tab\");\n }\n\n /** Sets focus to the tab. */\n public focus(options?: FocusOptions) {\n this.tab.focus(options);\n }\n\n /** Removes focus from the tab. */\n public blur() {\n this.tab.blur();\n }\n /**@internal */\n @watch(\"active\")\n handleActiveChange() {\n this.setAttribute(\"aria-selected\", this.active ? \"true\" : \"false\");\n }\n /**@internal */\n @watch(\"disabled\")\n handleDisabledChange() {\n this.setAttribute(\"aria-disabled\", this.disabled ? \"true\" : \"false\");\n if (this.disabled) this.active = false;\n }\n\n render() {\n // If the user didn't provide an ID, we'll set one so we can link tabs and tab panels with aria labels\n this.id = this.id.length > 0 ? this.id : this.componentId;\n const parentVariantAttr = this.closest(\"sgds-tab-group\").getAttribute(\"variant\");\n const tabsInfo = html`\n <div class=\"tabs-info-label\">\n <div><slot name=\"icon\"></slot></div>\n <div><slot name=\"label\"></slot></div>\n </div>\n <div class=\"tabs-info-count\"><slot name=\"count\"></slot></div>\n `;\n return html`\n <ul class=\"list-unstyled\">\n <li part=\"base\" class=\"nav-item\" tabindex=${this.disabled ? \"-1\" : \"0\"}>\n <div\n class=\"${classMap({\n \"nav-link\": true,\n [`${parentVariantAttr}`]: parentVariantAttr,\n active: this.active,\n disabled: this.disabled\n })}\"\n >\n ${parentVariantAttr === \"tabs-info-toggle\" ? tabsInfo : html`<slot></slot>`}\n </div>\n </li>\n </ul>\n `;\n }\n}\n\nexport default SgdsTab;\n"],"names":["tabStyle"],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  'use strict';
2
3
 
3
4
  Object.defineProperty(exports, '__esModule', { value: true });
@@ -1 +1 @@
1
- {"version":3,"file":"tab-group.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
1
+ {"version":3,"file":"tab-group.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { css } from 'lit';
2
3
 
3
4
  var css_248z = css`.nav{display:flex;flex-wrap:wrap;list-style:none;margin-bottom:0;padding-left:0}.nav-tabs{border-bottom:none;gap:2rem}.sgds.nav-tabs[variant=tabs-basic-toggle]{gap:0}slot[name=nav][variant=tabs-basic-toggle]::slotted(sgds-tab){margin-left:-2px}`;
@@ -1 +1 @@
1
- {"version":3,"file":"tab-group.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
1
+ {"version":3,"file":"tab-group.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  'use strict';
2
3
 
3
4
  Object.defineProperty(exports, '__esModule', { value: true });
@@ -1 +1 @@
1
- {"version":3,"file":"tab-panel.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
1
+ {"version":3,"file":"tab-panel.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { css } from 'lit';
2
3
 
3
4
  var css_248z = css`:host{--tab-panel-padding-y:1rem;display:block}.tab-panel{display:block;padding:var(--tab-panel-padding-y) 0}.tab-panel:not(.tab-panel--active){display:none}`;
@@ -1 +1 @@
1
- {"version":3,"file":"tab-panel.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
1
+ {"version":3,"file":"tab-panel.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  'use strict';
2
3
 
3
4
  Object.defineProperty(exports, '__esModule', { value: true });
@@ -1 +1 @@
1
- {"version":3,"file":"tab.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
1
+ {"version":3,"file":"tab.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { css } from 'lit';
2
3
 
3
4
  var css_248z = css`:host{display:inline-block}ul{margin-bottom:1rem;margin-top:0;padding-left:0}.list-unstyled{list-style:none}.nav-link{color:var(--sgds-body-color);cursor:pointer;display:block;padding:.5rem 1rem;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link.tabs-info-toggle{background-color:var(--sgds-body-bg);border:1px solid var(--sgds-gray-400);border-radius:.3125rem;min-width:11.875rem;padding:.75rem}.nav-link:not(.disabled).tabs-info-toggle.active,.nav-link:not(.disabled).tabs-info-toggle:hover{border-color:var(--sgds-primary);color:var(--sgds-primary);font-weight:700}.nav-link.tabs-info-toggle .tabs-info-label{display:flex;justify-content:space-between;text-align:right}.nav-link.tabs-info-toggle .tabs-info-count{text-align:right}.nav-link.tabs-basic-toggle{background-color:var(--sgds-body-bg);border:1px solid var(--sgds-gray-400);border-radius:0;padding:.5rem 1.5rem}.nav-link.tabs-basic-toggle slot{align-items:center;display:flex;gap:1rem}.nav-link:not(.disabled).tabs-basic-toggle.active,.nav-link:not(.disabled).tabs-basic-toggle:hover{background-color:var(--sgds-info);color:var(--sgds-white)}.nav-link.disabled{background-color:var(--sgds-gray-200);border-color:var(--sgds-gray-400);color:var(--sgds-gray-400);cursor:not-allowed}.nav-link:not(.tabs-basic-toggle):not(.tabs-info-toggle){background-color:transparent;border:none;padding-left:0;padding-right:0;padding-top:0}.nav-link:not(.disabled):not(.tabs-basic-toggle):not(.tabs-info-toggle).active,.nav-link:not(.disabled):not(.tabs-basic-toggle):not(.tabs-info-toggle):hover{background-color:transparent;border-bottom:.125rem solid var(--sgds-info);font-weight:700}.nav-link:not(.tabs-basic-toggle):not(.tabs-info-toggle).disabled{background-color:var(--sgds-gray-200);background-color:transparent;border-color:var(--sgds-gray-400);color:var(--sgds-gray-400);cursor:not-allowed}`;
@@ -1 +1 @@
1
- {"version":3,"file":"tab.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
1
+ {"version":3,"file":"tab.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
@@ -3068,7 +3068,7 @@
3068
3068
  */
3069
3069
  const classMap = directive(ClassMapDirective);
3070
3070
 
3071
- var css_248z$1 = css`:host{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0);background-color:var(--sgds-body-bg);color:var(--sgds-body-color);font-family:var(--sgds-body-font-family);font-size:var(--sgds-body-font-size);font-weight:var(--sgds-body-font-weight);line-height:var(--sgds-body-line-height);margin:0;text-align:var(--sgds-body-text-align);*,: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}}`;
3071
+ var css_248z$1 = css`:host{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0);background-color:var(--sgds-body-bg);color:var(--sgds-body-color);font-family:var(--sgds-body-font-family);font-size:var(--sgds-body-font-size);font-weight:var(--sgds-body-font-weight);line-height:var(--sgds-body-line-height);margin:0;text-align:var(--sgds-body-text-align)}:host *,:host :after,:host :before{box-sizing:border-box}:host :disabled{cursor:not-allowed}@media (prefers-reduced-motion:no-preference){:host :root{scroll-behavior:smooth}}:host ::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}:host ::slotted(a){color:var(--sgds-link);text-decoration:var(--sgds-link-decoration)}:host ::slotted(a:hover){color:var(--sgds-link-hover-color)}:host ::slotted(svg){vertical-align:middle}`;
3072
3072
 
3073
3073
  /**
3074
3074
  * @cssprop --sgds-{stateColor} - State colors in hexadecimal value
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  'use strict';
2
3
 
3
4
  Object.defineProperty(exports, '__esModule', { value: true });
@@ -1 +1 @@
1
- {"version":3,"file":"sgds-table.cjs.js","sources":["../../../src/components/Table/sgds-table.ts"],"sourcesContent":["import { html } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport SgdsElement from \"../../base/sgds-element\";\nimport tableStyle from \"./table.css\";\n/**\n * @summary The use of a table is to organise a collections of data into readable rows\n *\n * @cssproperty --table-bg - Table's background color\n * @cssproperty --table-accent-bg - Table's accent background color\n * @cssproperty --table-striped-color - Text color for striped table\n * @cssproperty --table-striped-bg - Background color for striped table\n * @cssproperty --table-active-color - Active text color for hovered row\n * @cssproperty --table-active-bg - Active background color for hovered row\n * @cssproperty --table-hover-color - Hovered text color for hover table\n * @cssproperty --table-hover-bg - Hovered background color for hover table\n */\n\nexport class SgdsTable extends SgdsElement {\n static styles = [...SgdsElement.styles, tableStyle];\n\n /**\n * Adds zebra-striping using striped to table row within the <tbody>\n */\n @property({ type: Boolean, reflect: true }) striped = false;\n\n /**\n * Add borders to all sides of table and cells\n */\n @property({ type: Boolean, reflect: true }) bordered = false;\n\n /**\n * Remove all borders to table and cells\n */\n @property({ type: Boolean, reflect: true }) borderless = false;\n\n /**\n * Add hoverable state on table rows\n */\n @property({ type: Boolean, reflect: true }) hover = false;\n\n /**\n * Add <code>.table-sm</code> to make table more compact\n */\n @property({ type: String, reflect: true }) size: string;\n\n /**\n * Use contextual classes to add colors to table\n */\n @property({ type: String, reflect: true }) variant: string;\n\n /**\n * Sorting on a column is enabled by adding the sort property. The sorting algorithm is based on javascript array.sort() method. In ascending order from bottom, alphabets come first, followed by numbers, and then symbols. Similarly, in descending order from bottom, symbols come first, followed by numbers, and then alphabets.\n */\n @property({ type: Boolean, reflect: true }) sort = false;\n\n /**\n * When removableSort is present, the third click removes the sorting from the column.\n */\n @property({ type: Boolean, reflect: true }) removableSort = false;\n\n /**\n * Use responsive=\"sm\", responsive=\"md\" , responsive=\"lg\", or responsive=\"xl\" as needed to create responsive tables up to a particular breakpoint. From that breakpoint and up, the table will behave normally and not scroll horizontally. Use reponsive=\"always\" to let table be always responsive\n */\n @property({ type: String, reflect: true }) responsive: \"sm\" | \"md\" | \"lg\" | \"xl\" | \"always\";\n\n /**\n * Populate header cells using Arrays\n */\n @property({ type: Array }) tableHeaders: string[] = [];\n\n /**\n * Populate data cells using Arrays\n */\n @property({ type: Array }) tableData: Array<(string | number)[]> = [];\n\n /** @internal */\n @state() sortColumn: number | null = null;\n\n /** @internal */\n @state() sortAsc = true;\n\n //TODO aria-sort\n\n /** @internal */\n @state() activeColumn: number | null = null;\n\n /** @internal */\n @state() sortClickCount = 0;\n\n /** @internal */\n @state() clickCount = 0;\n\n /** @internal */\n @state() originalTableData: Array<(string | number)[]> = [];\n\n connectedCallback() {\n super.connectedCallback();\n this.originalTableData = [...this.tableData];\n }\n\n handleHeaderClick(columnIndex: number) {\n if (this.sort) {\n if (this.sortColumn === columnIndex) {\n this.sortAsc = !this.sortAsc;\n } else {\n this.sortColumn = columnIndex;\n this.sortAsc = true;\n }\n\n this.tableData = [...this.tableData].sort((a, b) => {\n const aValue = a[columnIndex];\n const bValue = b[columnIndex];\n\n if (typeof aValue === \"string\" && typeof bValue === \"string\") {\n return this.sortAsc ? aValue.localeCompare(bValue) : bValue.localeCompare(aValue);\n } else {\n return this.sortAsc ? (aValue as number) - (bValue as number) : (bValue as number) - (aValue as number);\n }\n });\n\n // update the active column\n if (this.activeColumn === columnIndex) {\n this.clickCount++;\n if (this.clickCount === 3 && this.removableSort) {\n this.activeColumn = null;\n this.clickCount = 0;\n this.tableData = [...this.originalTableData];\n }\n } else {\n this.activeColumn = columnIndex;\n this.clickCount = 1;\n }\n\n // add the .active class to the clicked header cell\n const thElements = this.shadowRoot?.querySelectorAll(\"th\");\n thElements.forEach((thElement, index) => {\n if (index === columnIndex) {\n thElement.classList.add(\"active\");\n } else {\n thElement.classList.remove(\"active\");\n }\n });\n }\n }\n\n getIcon(columnIndex: number) {\n if (this.activeColumn !== columnIndex) {\n return html`<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-arrow-down-up ms-2 align-self-center\"\n viewBox=\"0 0 16 16\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M11.5 15a.5.5 0 0 0 .5-.5V2.707l3.146 3.147a.5.5 0 0 0 .708-.708l-4-4a.5.5 0 0 0-.708 0l-4 4a.5.5 0 1 0 .708.708L11 2.707V14.5a.5.5 0 0 0 .5.5zm-7-14a.5.5 0 0 1 .5.5v11.793l3.146-3.147a.5.5 0 0 1 .708.708l-4 4a.5.5 0 0 1-.708 0l-4-4a.5.5 0 0 1 .708-.708L4 13.293V1.5a.5.5 0 0 1 .5-.5z\"\n />\n </svg>`;\n } else {\n return this.sortAsc\n ? html`<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-sort-up-alt ms-2 align-self-center\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M3.5 13.5a.5.5 0 0 1-1 0V4.707L1.354 5.854a.5.5 0 1 1-.708-.708l2-1.999.007-.007a.498.498 0 0 1 .7.006l2 2a.5.5 0 1 1-.707.708L3.5 4.707V13.5zm4-9.5a.5.5 0 0 1 0-1h1a.5.5 0 0 1 0 1h-1zm0 3a.5.5 0 0 1 0-1h3a.5.5 0 0 1 0 1h-3zm0 3a.5.5 0 0 1 0-1h5a.5.5 0 0 1 0 1h-5zM7 12.5a.5.5 0 0 0 .5.5h7a.5.5 0 0 0 0-1h-7a.5.5 0 0 0-.5.5z\"\n />\n </svg>`\n : html`<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-sort-down ms-2 align-self-center\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M3.5 2.5a.5.5 0 0 0-1 0v8.793l-1.146-1.147a.5.5 0 0 0-.708.708l2 1.999.007.007a.497.497 0 0 0 .7-.006l2-2a.5.5 0 0 0-.707-.708L3.5 11.293V2.5zm3.5 1a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7a.5.5 0 0 1-.5-.5zM7.5 6a.5.5 0 0 0 0 1h5a.5.5 0 0 0 0-1h-5zm0 3a.5.5 0 0 0 0 1h3a.5.5 0 0 0 0-1h-3zm0 3a.5.5 0 0 0 0 1h1a.5.5 0 0 0 0-1h-1z\"\n />\n </svg>`;\n }\n }\n\n render() {\n return html`\n <div\n class=${classMap({\n \"table-responsive\": this.responsive === \"always\",\n \"table-responsive-sm\": this.responsive === \"sm\",\n \"table-responsive-md\": this.responsive === \"md\",\n \"table-responsive-lg\": this.responsive === \"lg\",\n \"table-responsive-xl\": this.responsive === \"xl\"\n })}\n tabindex=\"0\"\n >\n <table\n class=\"table sgds ${classMap({\n [`table-striped`]: this.striped,\n [`table-bordered`]: this.bordered,\n [`table-borderless`]: this.borderless,\n [`table-hover`]: this.hover,\n [`table-${this.size}`]: this.size,\n [`table-${this.variant}`]: this.variant\n })}\"\n >\n <thead>\n <tr>\n ${this.tableHeaders.map(\n (header: string, index: number) => html`\n <th\n class=\"${classMap({\n \"sortable-header\": this.sort,\n active: this.activeColumn === index\n })}\"\n @click=${() => this.handleHeaderClick(index)}\n //TODO aria-sort \n >\n ${header} ${this.sort ? this.getIcon(index) : null}\n </th>\n `\n )}\n </tr>\n </thead>\n <tbody>\n ${this.tableData.map(\n row => html`\n <tr>\n ${row.map((cell: string) => html`<td>${cell}</td>`)}\n </tr>\n `\n )}\n </tbody>\n </table>\n </div>\n `;\n }\n}\n\nexport default SgdsTable;\n"],"names":["SgdsElement","html","classMap","tableStyle","__decorate","property","state"],"mappings":"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"}
1
+ {"version":3,"file":"sgds-table.cjs.js","sources":["../../../src/components/Table/sgds-table.ts"],"sourcesContent":["import { html } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport SgdsElement from \"../../base/sgds-element\";\nimport tableStyle from \"./table.css\";\n/**\n * @summary The use of a table is to organise a collections of data into readable rows\n *\n * @cssproperty --table-bg - Table's background color\n * @cssproperty --table-accent-bg - Table's accent background color\n * @cssproperty --table-striped-color - Text color for striped table\n * @cssproperty --table-striped-bg - Background color for striped table\n * @cssproperty --table-active-color - Active text color for hovered row\n * @cssproperty --table-active-bg - Active background color for hovered row\n * @cssproperty --table-hover-color - Hovered text color for hover table\n * @cssproperty --table-hover-bg - Hovered background color for hover table\n */\n\nexport class SgdsTable extends SgdsElement {\n static styles = [...SgdsElement.styles, tableStyle];\n\n /**\n * Adds zebra-striping using striped to table row within the <tbody>\n */\n @property({ type: Boolean, reflect: true }) striped = false;\n\n /**\n * Add borders to all sides of table and cells\n */\n @property({ type: Boolean, reflect: true }) bordered = false;\n\n /**\n * Remove all borders to table and cells\n */\n @property({ type: Boolean, reflect: true }) borderless = false;\n\n /**\n * Add hoverable state on table rows\n */\n @property({ type: Boolean, reflect: true }) hover = false;\n\n /**\n * Add <code>.table-sm</code> to make table more compact\n */\n @property({ type: String, reflect: true }) size: string;\n\n /**\n * Use contextual classes to add colors to table\n */\n @property({ type: String, reflect: true }) variant: string;\n\n /**\n * Sorting on a column is enabled by adding the sort property. The sorting algorithm is based on javascript array.sort() method. In ascending order from bottom, alphabets come first, followed by numbers, and then symbols. Similarly, in descending order from bottom, symbols come first, followed by numbers, and then alphabets.\n */\n @property({ type: Boolean, reflect: true }) sort = false;\n\n /**\n * When removableSort is present, the third click removes the sorting from the column.\n */\n @property({ type: Boolean, reflect: true }) removableSort = false;\n\n /**\n * Use responsive=\"sm\", responsive=\"md\" , responsive=\"lg\", or responsive=\"xl\" as needed to create responsive tables up to a particular breakpoint. From that breakpoint and up, the table will behave normally and not scroll horizontally. Use reponsive=\"always\" to let table be always responsive\n */\n @property({ type: String, reflect: true }) responsive: \"sm\" | \"md\" | \"lg\" | \"xl\" | \"always\";\n\n /**\n * Populate header cells using Arrays\n */\n @property({ type: Array }) tableHeaders: string[] = [];\n\n /**\n * Populate data cells using Arrays\n */\n @property({ type: Array }) tableData: Array<(string | number)[]> = [];\n\n /** @internal */\n @state() sortColumn: number | null = null;\n\n /** @internal */\n @state() sortAsc = true;\n\n //TODO aria-sort\n\n /** @internal */\n @state() activeColumn: number | null = null;\n\n /** @internal */\n @state() sortClickCount = 0;\n\n /** @internal */\n @state() clickCount = 0;\n\n /** @internal */\n @state() originalTableData: Array<(string | number)[]> = [];\n\n connectedCallback() {\n super.connectedCallback();\n this.originalTableData = [...this.tableData];\n }\n\n handleHeaderClick(columnIndex: number) {\n if (this.sort) {\n if (this.sortColumn === columnIndex) {\n this.sortAsc = !this.sortAsc;\n } else {\n this.sortColumn = columnIndex;\n this.sortAsc = true;\n }\n\n this.tableData = [...this.tableData].sort((a, b) => {\n const aValue = a[columnIndex];\n const bValue = b[columnIndex];\n\n if (typeof aValue === \"string\" && typeof bValue === \"string\") {\n return this.sortAsc ? aValue.localeCompare(bValue) : bValue.localeCompare(aValue);\n } else {\n return this.sortAsc ? (aValue as number) - (bValue as number) : (bValue as number) - (aValue as number);\n }\n });\n\n // update the active column\n if (this.activeColumn === columnIndex) {\n this.clickCount++;\n if (this.clickCount === 3 && this.removableSort) {\n this.activeColumn = null;\n this.clickCount = 0;\n this.tableData = [...this.originalTableData];\n }\n } else {\n this.activeColumn = columnIndex;\n this.clickCount = 1;\n }\n\n // add the .active class to the clicked header cell\n const thElements = this.shadowRoot?.querySelectorAll(\"th\");\n thElements.forEach((thElement, index) => {\n if (index === columnIndex) {\n thElement.classList.add(\"active\");\n } else {\n thElement.classList.remove(\"active\");\n }\n });\n }\n }\n\n getIcon(columnIndex: number) {\n if (this.activeColumn !== columnIndex) {\n return html`<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-arrow-down-up ms-2 align-self-center\"\n viewBox=\"0 0 16 16\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M11.5 15a.5.5 0 0 0 .5-.5V2.707l3.146 3.147a.5.5 0 0 0 .708-.708l-4-4a.5.5 0 0 0-.708 0l-4 4a.5.5 0 1 0 .708.708L11 2.707V14.5a.5.5 0 0 0 .5.5zm-7-14a.5.5 0 0 1 .5.5v11.793l3.146-3.147a.5.5 0 0 1 .708.708l-4 4a.5.5 0 0 1-.708 0l-4-4a.5.5 0 0 1 .708-.708L4 13.293V1.5a.5.5 0 0 1 .5-.5z\"\n />\n </svg>`;\n } else {\n return this.sortAsc\n ? html`<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-sort-up-alt ms-2 align-self-center\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M3.5 13.5a.5.5 0 0 1-1 0V4.707L1.354 5.854a.5.5 0 1 1-.708-.708l2-1.999.007-.007a.498.498 0 0 1 .7.006l2 2a.5.5 0 1 1-.707.708L3.5 4.707V13.5zm4-9.5a.5.5 0 0 1 0-1h1a.5.5 0 0 1 0 1h-1zm0 3a.5.5 0 0 1 0-1h3a.5.5 0 0 1 0 1h-3zm0 3a.5.5 0 0 1 0-1h5a.5.5 0 0 1 0 1h-5zM7 12.5a.5.5 0 0 0 .5.5h7a.5.5 0 0 0 0-1h-7a.5.5 0 0 0-.5.5z\"\n />\n </svg>`\n : html`<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-sort-down ms-2 align-self-center\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M3.5 2.5a.5.5 0 0 0-1 0v8.793l-1.146-1.147a.5.5 0 0 0-.708.708l2 1.999.007.007a.497.497 0 0 0 .7-.006l2-2a.5.5 0 0 0-.707-.708L3.5 11.293V2.5zm3.5 1a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7a.5.5 0 0 1-.5-.5zM7.5 6a.5.5 0 0 0 0 1h5a.5.5 0 0 0 0-1h-5zm0 3a.5.5 0 0 0 0 1h3a.5.5 0 0 0 0-1h-3zm0 3a.5.5 0 0 0 0 1h1a.5.5 0 0 0 0-1h-1z\"\n />\n </svg>`;\n }\n }\n\n render() {\n return html`\n <div\n class=${classMap({\n \"table-responsive\": this.responsive === \"always\",\n \"table-responsive-sm\": this.responsive === \"sm\",\n \"table-responsive-md\": this.responsive === \"md\",\n \"table-responsive-lg\": this.responsive === \"lg\",\n \"table-responsive-xl\": this.responsive === \"xl\"\n })}\n tabindex=\"0\"\n >\n <table\n class=\"table sgds ${classMap({\n [`table-striped`]: this.striped,\n [`table-bordered`]: this.bordered,\n [`table-borderless`]: this.borderless,\n [`table-hover`]: this.hover,\n [`table-${this.size}`]: this.size,\n [`table-${this.variant}`]: this.variant\n })}\"\n >\n <thead>\n <tr>\n ${this.tableHeaders.map(\n (header: string, index: number) => html`\n <th\n class=\"${classMap({\n \"sortable-header\": this.sort,\n active: this.activeColumn === index\n })}\"\n @click=${() => this.handleHeaderClick(index)}\n //TODO aria-sort \n >\n ${header} ${this.sort ? this.getIcon(index) : null}\n </th>\n `\n )}\n </tr>\n </thead>\n <tbody>\n ${this.tableData.map(\n row => html`\n <tr>\n ${row.map((cell: string) => html`<td>${cell}</td>`)}\n </tr>\n `\n )}\n </tbody>\n </table>\n </div>\n `;\n }\n}\n\nexport default SgdsTable;\n"],"names":["SgdsElement","html","classMap","tableStyle","__decorate","property","state"],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { __decorate } from 'tslib';
2
3
  import { html } from 'lit';
3
4
  import { property, state } from 'lit/decorators.js';
@@ -1 +1 @@
1
- {"version":3,"file":"sgds-table.js","sources":["../../../src/components/Table/sgds-table.ts"],"sourcesContent":["import { html } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport SgdsElement from \"../../base/sgds-element\";\nimport tableStyle from \"./table.css\";\n/**\n * @summary The use of a table is to organise a collections of data into readable rows\n *\n * @cssproperty --table-bg - Table's background color\n * @cssproperty --table-accent-bg - Table's accent background color\n * @cssproperty --table-striped-color - Text color for striped table\n * @cssproperty --table-striped-bg - Background color for striped table\n * @cssproperty --table-active-color - Active text color for hovered row\n * @cssproperty --table-active-bg - Active background color for hovered row\n * @cssproperty --table-hover-color - Hovered text color for hover table\n * @cssproperty --table-hover-bg - Hovered background color for hover table\n */\n\nexport class SgdsTable extends SgdsElement {\n static styles = [...SgdsElement.styles, tableStyle];\n\n /**\n * Adds zebra-striping using striped to table row within the <tbody>\n */\n @property({ type: Boolean, reflect: true }) striped = false;\n\n /**\n * Add borders to all sides of table and cells\n */\n @property({ type: Boolean, reflect: true }) bordered = false;\n\n /**\n * Remove all borders to table and cells\n */\n @property({ type: Boolean, reflect: true }) borderless = false;\n\n /**\n * Add hoverable state on table rows\n */\n @property({ type: Boolean, reflect: true }) hover = false;\n\n /**\n * Add <code>.table-sm</code> to make table more compact\n */\n @property({ type: String, reflect: true }) size: string;\n\n /**\n * Use contextual classes to add colors to table\n */\n @property({ type: String, reflect: true }) variant: string;\n\n /**\n * Sorting on a column is enabled by adding the sort property. The sorting algorithm is based on javascript array.sort() method. In ascending order from bottom, alphabets come first, followed by numbers, and then symbols. Similarly, in descending order from bottom, symbols come first, followed by numbers, and then alphabets.\n */\n @property({ type: Boolean, reflect: true }) sort = false;\n\n /**\n * When removableSort is present, the third click removes the sorting from the column.\n */\n @property({ type: Boolean, reflect: true }) removableSort = false;\n\n /**\n * Use responsive=\"sm\", responsive=\"md\" , responsive=\"lg\", or responsive=\"xl\" as needed to create responsive tables up to a particular breakpoint. From that breakpoint and up, the table will behave normally and not scroll horizontally. Use reponsive=\"always\" to let table be always responsive\n */\n @property({ type: String, reflect: true }) responsive: \"sm\" | \"md\" | \"lg\" | \"xl\" | \"always\";\n\n /**\n * Populate header cells using Arrays\n */\n @property({ type: Array }) tableHeaders: string[] = [];\n\n /**\n * Populate data cells using Arrays\n */\n @property({ type: Array }) tableData: Array<(string | number)[]> = [];\n\n /** @internal */\n @state() sortColumn: number | null = null;\n\n /** @internal */\n @state() sortAsc = true;\n\n //TODO aria-sort\n\n /** @internal */\n @state() activeColumn: number | null = null;\n\n /** @internal */\n @state() sortClickCount = 0;\n\n /** @internal */\n @state() clickCount = 0;\n\n /** @internal */\n @state() originalTableData: Array<(string | number)[]> = [];\n\n connectedCallback() {\n super.connectedCallback();\n this.originalTableData = [...this.tableData];\n }\n\n handleHeaderClick(columnIndex: number) {\n if (this.sort) {\n if (this.sortColumn === columnIndex) {\n this.sortAsc = !this.sortAsc;\n } else {\n this.sortColumn = columnIndex;\n this.sortAsc = true;\n }\n\n this.tableData = [...this.tableData].sort((a, b) => {\n const aValue = a[columnIndex];\n const bValue = b[columnIndex];\n\n if (typeof aValue === \"string\" && typeof bValue === \"string\") {\n return this.sortAsc ? aValue.localeCompare(bValue) : bValue.localeCompare(aValue);\n } else {\n return this.sortAsc ? (aValue as number) - (bValue as number) : (bValue as number) - (aValue as number);\n }\n });\n\n // update the active column\n if (this.activeColumn === columnIndex) {\n this.clickCount++;\n if (this.clickCount === 3 && this.removableSort) {\n this.activeColumn = null;\n this.clickCount = 0;\n this.tableData = [...this.originalTableData];\n }\n } else {\n this.activeColumn = columnIndex;\n this.clickCount = 1;\n }\n\n // add the .active class to the clicked header cell\n const thElements = this.shadowRoot?.querySelectorAll(\"th\");\n thElements.forEach((thElement, index) => {\n if (index === columnIndex) {\n thElement.classList.add(\"active\");\n } else {\n thElement.classList.remove(\"active\");\n }\n });\n }\n }\n\n getIcon(columnIndex: number) {\n if (this.activeColumn !== columnIndex) {\n return html`<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-arrow-down-up ms-2 align-self-center\"\n viewBox=\"0 0 16 16\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M11.5 15a.5.5 0 0 0 .5-.5V2.707l3.146 3.147a.5.5 0 0 0 .708-.708l-4-4a.5.5 0 0 0-.708 0l-4 4a.5.5 0 1 0 .708.708L11 2.707V14.5a.5.5 0 0 0 .5.5zm-7-14a.5.5 0 0 1 .5.5v11.793l3.146-3.147a.5.5 0 0 1 .708.708l-4 4a.5.5 0 0 1-.708 0l-4-4a.5.5 0 0 1 .708-.708L4 13.293V1.5a.5.5 0 0 1 .5-.5z\"\n />\n </svg>`;\n } else {\n return this.sortAsc\n ? html`<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-sort-up-alt ms-2 align-self-center\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M3.5 13.5a.5.5 0 0 1-1 0V4.707L1.354 5.854a.5.5 0 1 1-.708-.708l2-1.999.007-.007a.498.498 0 0 1 .7.006l2 2a.5.5 0 1 1-.707.708L3.5 4.707V13.5zm4-9.5a.5.5 0 0 1 0-1h1a.5.5 0 0 1 0 1h-1zm0 3a.5.5 0 0 1 0-1h3a.5.5 0 0 1 0 1h-3zm0 3a.5.5 0 0 1 0-1h5a.5.5 0 0 1 0 1h-5zM7 12.5a.5.5 0 0 0 .5.5h7a.5.5 0 0 0 0-1h-7a.5.5 0 0 0-.5.5z\"\n />\n </svg>`\n : html`<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-sort-down ms-2 align-self-center\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M3.5 2.5a.5.5 0 0 0-1 0v8.793l-1.146-1.147a.5.5 0 0 0-.708.708l2 1.999.007.007a.497.497 0 0 0 .7-.006l2-2a.5.5 0 0 0-.707-.708L3.5 11.293V2.5zm3.5 1a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7a.5.5 0 0 1-.5-.5zM7.5 6a.5.5 0 0 0 0 1h5a.5.5 0 0 0 0-1h-5zm0 3a.5.5 0 0 0 0 1h3a.5.5 0 0 0 0-1h-3zm0 3a.5.5 0 0 0 0 1h1a.5.5 0 0 0 0-1h-1z\"\n />\n </svg>`;\n }\n }\n\n render() {\n return html`\n <div\n class=${classMap({\n \"table-responsive\": this.responsive === \"always\",\n \"table-responsive-sm\": this.responsive === \"sm\",\n \"table-responsive-md\": this.responsive === \"md\",\n \"table-responsive-lg\": this.responsive === \"lg\",\n \"table-responsive-xl\": this.responsive === \"xl\"\n })}\n tabindex=\"0\"\n >\n <table\n class=\"table sgds ${classMap({\n [`table-striped`]: this.striped,\n [`table-bordered`]: this.bordered,\n [`table-borderless`]: this.borderless,\n [`table-hover`]: this.hover,\n [`table-${this.size}`]: this.size,\n [`table-${this.variant}`]: this.variant\n })}\"\n >\n <thead>\n <tr>\n ${this.tableHeaders.map(\n (header: string, index: number) => html`\n <th\n class=\"${classMap({\n \"sortable-header\": this.sort,\n active: this.activeColumn === index\n })}\"\n @click=${() => this.handleHeaderClick(index)}\n //TODO aria-sort \n >\n ${header} ${this.sort ? this.getIcon(index) : null}\n </th>\n `\n )}\n </tr>\n </thead>\n <tbody>\n ${this.tableData.map(\n row => html`\n <tr>\n ${row.map((cell: string) => html`<td>${cell}</td>`)}\n </tr>\n `\n )}\n </tbody>\n </table>\n </div>\n `;\n }\n}\n\nexport default SgdsTable;\n"],"names":["tableStyle"],"mappings":"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"}
1
+ {"version":3,"file":"sgds-table.js","sources":["../../../src/components/Table/sgds-table.ts"],"sourcesContent":["import { html } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport SgdsElement from \"../../base/sgds-element\";\nimport tableStyle from \"./table.css\";\n/**\n * @summary The use of a table is to organise a collections of data into readable rows\n *\n * @cssproperty --table-bg - Table's background color\n * @cssproperty --table-accent-bg - Table's accent background color\n * @cssproperty --table-striped-color - Text color for striped table\n * @cssproperty --table-striped-bg - Background color for striped table\n * @cssproperty --table-active-color - Active text color for hovered row\n * @cssproperty --table-active-bg - Active background color for hovered row\n * @cssproperty --table-hover-color - Hovered text color for hover table\n * @cssproperty --table-hover-bg - Hovered background color for hover table\n */\n\nexport class SgdsTable extends SgdsElement {\n static styles = [...SgdsElement.styles, tableStyle];\n\n /**\n * Adds zebra-striping using striped to table row within the <tbody>\n */\n @property({ type: Boolean, reflect: true }) striped = false;\n\n /**\n * Add borders to all sides of table and cells\n */\n @property({ type: Boolean, reflect: true }) bordered = false;\n\n /**\n * Remove all borders to table and cells\n */\n @property({ type: Boolean, reflect: true }) borderless = false;\n\n /**\n * Add hoverable state on table rows\n */\n @property({ type: Boolean, reflect: true }) hover = false;\n\n /**\n * Add <code>.table-sm</code> to make table more compact\n */\n @property({ type: String, reflect: true }) size: string;\n\n /**\n * Use contextual classes to add colors to table\n */\n @property({ type: String, reflect: true }) variant: string;\n\n /**\n * Sorting on a column is enabled by adding the sort property. The sorting algorithm is based on javascript array.sort() method. In ascending order from bottom, alphabets come first, followed by numbers, and then symbols. Similarly, in descending order from bottom, symbols come first, followed by numbers, and then alphabets.\n */\n @property({ type: Boolean, reflect: true }) sort = false;\n\n /**\n * When removableSort is present, the third click removes the sorting from the column.\n */\n @property({ type: Boolean, reflect: true }) removableSort = false;\n\n /**\n * Use responsive=\"sm\", responsive=\"md\" , responsive=\"lg\", or responsive=\"xl\" as needed to create responsive tables up to a particular breakpoint. From that breakpoint and up, the table will behave normally and not scroll horizontally. Use reponsive=\"always\" to let table be always responsive\n */\n @property({ type: String, reflect: true }) responsive: \"sm\" | \"md\" | \"lg\" | \"xl\" | \"always\";\n\n /**\n * Populate header cells using Arrays\n */\n @property({ type: Array }) tableHeaders: string[] = [];\n\n /**\n * Populate data cells using Arrays\n */\n @property({ type: Array }) tableData: Array<(string | number)[]> = [];\n\n /** @internal */\n @state() sortColumn: number | null = null;\n\n /** @internal */\n @state() sortAsc = true;\n\n //TODO aria-sort\n\n /** @internal */\n @state() activeColumn: number | null = null;\n\n /** @internal */\n @state() sortClickCount = 0;\n\n /** @internal */\n @state() clickCount = 0;\n\n /** @internal */\n @state() originalTableData: Array<(string | number)[]> = [];\n\n connectedCallback() {\n super.connectedCallback();\n this.originalTableData = [...this.tableData];\n }\n\n handleHeaderClick(columnIndex: number) {\n if (this.sort) {\n if (this.sortColumn === columnIndex) {\n this.sortAsc = !this.sortAsc;\n } else {\n this.sortColumn = columnIndex;\n this.sortAsc = true;\n }\n\n this.tableData = [...this.tableData].sort((a, b) => {\n const aValue = a[columnIndex];\n const bValue = b[columnIndex];\n\n if (typeof aValue === \"string\" && typeof bValue === \"string\") {\n return this.sortAsc ? aValue.localeCompare(bValue) : bValue.localeCompare(aValue);\n } else {\n return this.sortAsc ? (aValue as number) - (bValue as number) : (bValue as number) - (aValue as number);\n }\n });\n\n // update the active column\n if (this.activeColumn === columnIndex) {\n this.clickCount++;\n if (this.clickCount === 3 && this.removableSort) {\n this.activeColumn = null;\n this.clickCount = 0;\n this.tableData = [...this.originalTableData];\n }\n } else {\n this.activeColumn = columnIndex;\n this.clickCount = 1;\n }\n\n // add the .active class to the clicked header cell\n const thElements = this.shadowRoot?.querySelectorAll(\"th\");\n thElements.forEach((thElement, index) => {\n if (index === columnIndex) {\n thElement.classList.add(\"active\");\n } else {\n thElement.classList.remove(\"active\");\n }\n });\n }\n }\n\n getIcon(columnIndex: number) {\n if (this.activeColumn !== columnIndex) {\n return html`<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-arrow-down-up ms-2 align-self-center\"\n viewBox=\"0 0 16 16\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M11.5 15a.5.5 0 0 0 .5-.5V2.707l3.146 3.147a.5.5 0 0 0 .708-.708l-4-4a.5.5 0 0 0-.708 0l-4 4a.5.5 0 1 0 .708.708L11 2.707V14.5a.5.5 0 0 0 .5.5zm-7-14a.5.5 0 0 1 .5.5v11.793l3.146-3.147a.5.5 0 0 1 .708.708l-4 4a.5.5 0 0 1-.708 0l-4-4a.5.5 0 0 1 .708-.708L4 13.293V1.5a.5.5 0 0 1 .5-.5z\"\n />\n </svg>`;\n } else {\n return this.sortAsc\n ? html`<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-sort-up-alt ms-2 align-self-center\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M3.5 13.5a.5.5 0 0 1-1 0V4.707L1.354 5.854a.5.5 0 1 1-.708-.708l2-1.999.007-.007a.498.498 0 0 1 .7.006l2 2a.5.5 0 1 1-.707.708L3.5 4.707V13.5zm4-9.5a.5.5 0 0 1 0-1h1a.5.5 0 0 1 0 1h-1zm0 3a.5.5 0 0 1 0-1h3a.5.5 0 0 1 0 1h-3zm0 3a.5.5 0 0 1 0-1h5a.5.5 0 0 1 0 1h-5zM7 12.5a.5.5 0 0 0 .5.5h7a.5.5 0 0 0 0-1h-7a.5.5 0 0 0-.5.5z\"\n />\n </svg>`\n : html`<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-sort-down ms-2 align-self-center\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M3.5 2.5a.5.5 0 0 0-1 0v8.793l-1.146-1.147a.5.5 0 0 0-.708.708l2 1.999.007.007a.497.497 0 0 0 .7-.006l2-2a.5.5 0 0 0-.707-.708L3.5 11.293V2.5zm3.5 1a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7a.5.5 0 0 1-.5-.5zM7.5 6a.5.5 0 0 0 0 1h5a.5.5 0 0 0 0-1h-5zm0 3a.5.5 0 0 0 0 1h3a.5.5 0 0 0 0-1h-3zm0 3a.5.5 0 0 0 0 1h1a.5.5 0 0 0 0-1h-1z\"\n />\n </svg>`;\n }\n }\n\n render() {\n return html`\n <div\n class=${classMap({\n \"table-responsive\": this.responsive === \"always\",\n \"table-responsive-sm\": this.responsive === \"sm\",\n \"table-responsive-md\": this.responsive === \"md\",\n \"table-responsive-lg\": this.responsive === \"lg\",\n \"table-responsive-xl\": this.responsive === \"xl\"\n })}\n tabindex=\"0\"\n >\n <table\n class=\"table sgds ${classMap({\n [`table-striped`]: this.striped,\n [`table-bordered`]: this.bordered,\n [`table-borderless`]: this.borderless,\n [`table-hover`]: this.hover,\n [`table-${this.size}`]: this.size,\n [`table-${this.variant}`]: this.variant\n })}\"\n >\n <thead>\n <tr>\n ${this.tableHeaders.map(\n (header: string, index: number) => html`\n <th\n class=\"${classMap({\n \"sortable-header\": this.sort,\n active: this.activeColumn === index\n })}\"\n @click=${() => this.handleHeaderClick(index)}\n //TODO aria-sort \n >\n ${header} ${this.sort ? this.getIcon(index) : null}\n </th>\n `\n )}\n </tr>\n </thead>\n <tbody>\n ${this.tableData.map(\n row => html`\n <tr>\n ${row.map((cell: string) => html`<td>${cell}</td>`)}\n </tr>\n `\n )}\n </tbody>\n </table>\n </div>\n `;\n }\n}\n\nexport default SgdsTable;\n"],"names":["tableStyle"],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  'use strict';
2
3
 
3
4
  Object.defineProperty(exports, '__esModule', { value: true });
@@ -1 +1 @@
1
- {"version":3,"file":"table.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
1
+ {"version":3,"file":"table.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}