@iamproperty/components 7.1.0--beta7 → 7.2.1--beta1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (382) hide show
  1. package/assets/css/components/actionbar.component.css +1 -0
  2. package/assets/css/components/actionbar.component.css.map +1 -0
  3. package/assets/css/components/actionbar.global.css +1 -1
  4. package/assets/css/components/actionbar.global.css.map +1 -1
  5. package/assets/css/components/address-lookup.css +1 -1
  6. package/assets/css/components/address-lookup.css.map +1 -1
  7. package/assets/css/components/barchart.component.css +1 -1
  8. package/assets/css/components/barchart.component.css.map +1 -1
  9. package/assets/css/components/bento-grid.component.css +1 -0
  10. package/assets/css/components/bento-grid.component.css.map +1 -0
  11. package/assets/css/components/card.component.css +1 -1
  12. package/assets/css/components/card.component.css.map +1 -1
  13. package/assets/css/components/carousel.component.css +1 -1
  14. package/assets/css/components/carousel.component.css.map +1 -1
  15. package/assets/css/components/carousel.config.css +1 -1
  16. package/assets/css/components/carousel.config.css.map +1 -1
  17. package/assets/css/components/charts.config.css +1 -1
  18. package/assets/css/components/charts.config.css.map +1 -1
  19. package/assets/css/components/charts.css +1 -1
  20. package/assets/css/components/charts.css.map +1 -1
  21. package/assets/css/components/charts.module.css +1 -1
  22. package/assets/css/components/charts.module.css.map +1 -1
  23. package/assets/css/components/collapsible-side.css +1 -1
  24. package/assets/css/components/collapsible-side.css.map +1 -1
  25. package/assets/css/components/doughnutchart.component.css +1 -0
  26. package/assets/css/components/doughnutchart.component.css.map +1 -0
  27. package/assets/css/components/fileupload.css.map +1 -1
  28. package/assets/css/components/header.css.map +1 -1
  29. package/assets/css/components/inline-edit.preload.css +1 -1
  30. package/assets/css/components/inline-edit.preload.css.map +1 -1
  31. package/assets/css/components/marketing.css.map +1 -1
  32. package/assets/css/components/menu.component.css +1 -0
  33. package/assets/css/components/menu.component.css.map +1 -0
  34. package/assets/css/components/menu.css +1 -0
  35. package/assets/css/components/menu.css.map +1 -0
  36. package/assets/css/components/multi-step.component.css.map +1 -1
  37. package/assets/css/components/multiselect.preload.css +1 -1
  38. package/assets/css/components/multiselect.preload.css.map +1 -1
  39. package/assets/css/components/nav.component.css +1 -0
  40. package/assets/css/components/nav.component.css.map +1 -0
  41. package/assets/css/components/nav.docs.css.map +1 -1
  42. package/assets/css/components/nav.global.css.map +1 -1
  43. package/assets/css/components/nav.old.css +1 -1
  44. package/assets/css/components/nav.old.css.map +1 -1
  45. package/assets/css/components/nav.preload.css +1 -1
  46. package/assets/css/components/nav.preload.css.map +1 -1
  47. package/assets/css/components/notification.css +1 -1
  48. package/assets/css/components/notification.css.map +1 -1
  49. package/assets/css/components/pagination.css +1 -1
  50. package/assets/css/components/pagination.css.map +1 -1
  51. package/assets/css/components/property-searchbar.css.map +1 -1
  52. package/assets/css/components/slider.css +1 -1
  53. package/assets/css/components/slider.css.map +1 -1
  54. package/assets/css/components/snapshot.css.map +1 -1
  55. package/assets/css/components/stepper.css.map +1 -1
  56. package/assets/css/components/table-basic.component.css +1 -0
  57. package/assets/css/components/table-basic.component.css.map +1 -0
  58. package/assets/css/components/table-basic.global.css +1 -0
  59. package/assets/css/components/table-basic.global.css.map +1 -0
  60. package/assets/css/components/table.component.css +1 -0
  61. package/assets/css/components/table.component.css.map +1 -0
  62. package/assets/css/components/table.global.css +1 -1
  63. package/assets/css/components/table.global.css.map +1 -1
  64. package/assets/css/components/tabs.component.css +1 -0
  65. package/assets/css/components/tabs.component.css.map +1 -0
  66. package/assets/css/components/tabs.config.css +1 -0
  67. package/assets/css/components/tabs.config.css.map +1 -0
  68. package/assets/css/components/tabs.css +1 -1
  69. package/assets/css/components/tabs.css.map +1 -1
  70. package/assets/css/components/testimonial.css.map +1 -1
  71. package/assets/css/components/timeline.css.map +1 -1
  72. package/assets/css/core.min.css +1 -1
  73. package/assets/css/core.min.css.map +1 -1
  74. package/assets/css/mobile-core.min.css +1 -0
  75. package/assets/css/mobile-core.min.css.map +1 -0
  76. package/assets/css/mobile.min.css +1 -0
  77. package/assets/css/mobile.min.css.map +1 -0
  78. package/assets/css/style.min.css +1 -1
  79. package/assets/css/style.min.css.map +1 -1
  80. package/assets/js/components/_global.js +0 -1
  81. package/assets/js/components/accordion/accordion.component.min.js +1 -1
  82. package/assets/js/components/accordion/accordion.component.min.js.map +1 -1
  83. package/assets/js/components/actionbar/actionbar.component.js +86 -8
  84. package/assets/js/components/actionbar/actionbar.component.min.js +19 -6
  85. package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
  86. package/assets/js/components/address-lookup/address-lookup.component.js +17 -18
  87. package/assets/js/components/address-lookup/address-lookup.component.min.js +5 -5
  88. package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
  89. package/assets/js/components/applied-filters/applied-filters.component.js +0 -1
  90. package/assets/js/components/applied-filters/applied-filters.component.min.js +4 -4
  91. package/assets/js/components/applied-filters/applied-filters.component.min.js.map +1 -1
  92. package/assets/js/components/barchart/barchart.component.js +2 -3
  93. package/assets/js/components/barchart/barchart.component.min.js +8 -4
  94. package/assets/js/components/barchart/barchart.component.min.js.map +1 -1
  95. package/assets/js/components/bento-grid/bento-grid.component.js +50 -0
  96. package/assets/js/components/bento-grid/bento-grid.component.min.js +15 -0
  97. package/assets/js/components/bento-grid/bento-grid.component.min.js.map +1 -0
  98. package/assets/js/components/card/card.component.js +10 -13
  99. package/assets/js/components/card/card.component.min.js +7 -7
  100. package/assets/js/components/card/card.component.min.js.map +1 -1
  101. package/assets/js/components/carousel/carousel.component.js +4 -5
  102. package/assets/js/components/carousel/carousel.component.min.js +4 -4
  103. package/assets/js/components/carousel/carousel.component.min.js.map +1 -1
  104. package/assets/js/components/chart/chart.component.js +1 -5
  105. package/assets/js/components/collapsible-side/collapsible-side.component.js +4 -5
  106. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +4 -4
  107. package/assets/js/components/collapsible-side/collapsible-side.component.min.js.map +1 -1
  108. package/assets/js/components/doughnutchart/doughnutchart.component.js +70 -0
  109. package/assets/js/components/doughnutchart/doughnutchart.component.min.js +25 -0
  110. package/assets/js/components/doughnutchart/doughnutchart.component.min.js.map +1 -0
  111. package/assets/js/components/fileupload/fileupload.component.js +2 -3
  112. package/assets/js/components/fileupload/fileupload.component.min.js +6 -6
  113. package/assets/js/components/fileupload/fileupload.component.min.js.map +1 -1
  114. package/assets/js/components/filter-card/filter-card.component.js +3 -4
  115. package/assets/js/components/filter-card/filter-card.component.min.js +4 -4
  116. package/assets/js/components/filter-card/filter-card.component.min.js.map +1 -1
  117. package/assets/js/components/filterlist/filterlist.component.js +0 -1
  118. package/assets/js/components/filterlist/filterlist.component.min.js +3 -3
  119. package/assets/js/components/filterlist/filterlist.component.min.js.map +1 -1
  120. package/assets/js/components/header/header.component.js +0 -1
  121. package/assets/js/components/header/header.component.min.js +1 -1
  122. package/assets/js/components/header/header.component.min.js.map +1 -1
  123. package/assets/js/components/inline-edit/inline-edit.component.js +7 -8
  124. package/assets/js/components/inline-edit/inline-edit.component.min.js +4 -4
  125. package/assets/js/components/inline-edit/inline-edit.component.min.js.map +1 -1
  126. package/assets/js/components/marketing/marketing.component.js +0 -1
  127. package/assets/js/components/marketing/marketing.component.min.js +1 -1
  128. package/assets/js/components/marketing/marketing.component.min.js.map +1 -1
  129. package/assets/js/components/menu/menu.component.js +200 -0
  130. package/assets/js/components/menu/menu.component.min.js +77 -0
  131. package/assets/js/components/menu/menu.component.min.js.map +1 -0
  132. package/assets/js/components/multi-step/multi-step.component.js +10 -10
  133. package/assets/js/components/multi-step/multi-step.component.min.js +13 -0
  134. package/assets/js/components/multi-step/multi-step.component.min.js.map +1 -0
  135. package/assets/js/components/multiselect/multiselect.component.js +10 -10
  136. package/assets/js/components/multiselect/multiselect.component.min.js +3 -3
  137. package/assets/js/components/multiselect/multiselect.component.min.js.map +1 -1
  138. package/assets/js/components/nav/nav.component.js +7 -7
  139. package/assets/js/components/nav/nav.component.min.js +7 -7
  140. package/assets/js/components/nav/nav.component.min.js.map +1 -1
  141. package/assets/js/components/notification/notification.component.js +3 -3
  142. package/assets/js/components/notification/notification.component.min.js +4 -4
  143. package/assets/js/components/notification/notification.component.min.js.map +1 -1
  144. package/assets/js/components/pagination/pagination.component.js +14 -8
  145. package/assets/js/components/pagination/pagination.component.min.js +5 -5
  146. package/assets/js/components/pagination/pagination.component.min.js.map +1 -1
  147. package/assets/js/components/record-card/record-card.component.js +6 -8
  148. package/assets/js/components/record-card/record-card.component.min.js +4 -4
  149. package/assets/js/components/record-card/record-card.component.min.js.map +1 -1
  150. package/assets/js/components/search/search.component.js +9 -6
  151. package/assets/js/components/search/search.component.min.js +8 -5
  152. package/assets/js/components/search/search.component.min.js.map +1 -1
  153. package/assets/js/components/slider/slider.component.js +8 -8
  154. package/assets/js/components/slider/slider.component.min.js +5 -5
  155. package/assets/js/components/slider/slider.component.min.js.map +1 -1
  156. package/assets/js/components/table/table.component.js +36 -200
  157. package/assets/js/components/table/table.component.min.js +13 -23
  158. package/assets/js/components/table/table.component.min.js.map +1 -1
  159. package/assets/js/components/table-ajax/table-ajax.component.js +46 -0
  160. package/assets/js/components/table-ajax/table-ajax.component.min.js +22 -0
  161. package/assets/js/components/table-ajax/table-ajax.component.min.js.map +1 -0
  162. package/assets/js/components/table-basic/table-basic.component.js +46 -0
  163. package/assets/js/components/table-basic/table-basic.component.min.js +22 -0
  164. package/assets/js/components/table-basic/table-basic.component.min.js.map +1 -0
  165. package/assets/js/components/table-no-submit/table-no-submit.component.js +77 -0
  166. package/assets/js/components/table-no-submit/table-no-submit.component.min.js +22 -0
  167. package/assets/js/components/table-no-submit/table-no-submit.component.min.js.map +1 -0
  168. package/assets/js/components/table-submit/table-submit.component.js +55 -0
  169. package/assets/js/components/table-submit/table-submit.component.min.js +22 -0
  170. package/assets/js/components/table-submit/table-submit.component.min.js.map +1 -0
  171. package/assets/js/components/tabs/tabs.component.js +3 -2
  172. package/assets/js/components/tabs/tabs.component.min.js +6 -4
  173. package/assets/js/components/tabs/tabs.component.min.js.map +1 -1
  174. package/assets/js/components/video-card/video-card.component.js +4 -3
  175. package/assets/js/components/video-card/video-card.component.min.js +3 -3
  176. package/assets/js/components/video-card/video-card.component.min.js.map +1 -1
  177. package/assets/js/modules/applied-filters.js +8 -9
  178. package/assets/js/modules/carousel.js +9 -10
  179. package/assets/js/modules/chart.js +5 -3
  180. package/assets/js/modules/chart.module.js +108 -1
  181. package/assets/js/modules/dialogs.js +6 -7
  182. package/assets/js/modules/drawer.js +1 -2
  183. package/assets/js/modules/dynamicEvents.js +7 -8
  184. package/assets/js/modules/fileupload.js +7 -7
  185. package/assets/js/modules/filterlist.js +3 -4
  186. package/assets/js/modules/form.js +12 -13
  187. package/assets/js/modules/helpers.js +7 -5
  188. package/assets/js/modules/inputs.js +6 -9
  189. package/assets/js/modules/nav.js +3 -4
  190. package/assets/js/modules/notification.js +2 -3
  191. package/assets/js/modules/orderablelist.js +0 -1
  192. package/assets/js/modules/table.js +604 -317
  193. package/assets/js/modules/tabs.js +46 -19
  194. package/assets/js/scripts.bundle.js +3 -3
  195. package/assets/js/scripts.bundle.js.map +1 -1
  196. package/assets/js/scripts.bundle.min.js +2 -2
  197. package/assets/js/scripts.bundle.min.js.map +1 -1
  198. package/assets/js/scripts.js +71 -6
  199. package/assets/js/tests/card.spec.js +14 -0
  200. package/assets/js/tests/carousel.spec.js +60 -0
  201. package/assets/js/tests/chart.spec.js +7 -5
  202. package/assets/js/tests/fileupload.spec.js +22 -0
  203. package/assets/js/tests/multistep.spec.js +68 -0
  204. package/assets/js/tests/table.spec.js +0 -31
  205. package/assets/sass/_bs_grid.scss +4 -1
  206. package/assets/sass/_components.scss +326 -100
  207. package/assets/sass/_corefiles.scss +42 -18
  208. package/assets/sass/_elements.scss +98 -18
  209. package/assets/sass/_example.scss +61 -0
  210. package/assets/sass/_func.scss +5 -13
  211. package/assets/sass/_functions/bs_utilities.scss +43 -39
  212. package/assets/sass/_functions/functions.scss +66 -52
  213. package/assets/sass/_functions/mixins.scss +84 -100
  214. package/assets/sass/_functions/utility-mixins.scss +56 -44
  215. package/assets/sass/_functions/variables.scss +90 -1659
  216. package/assets/sass/_functions/variables_old.scss +1701 -0
  217. package/assets/sass/_grid.scss +19 -5
  218. package/assets/sass/_tests/func.spec.scss +1 -37
  219. package/assets/sass/_tests/mixins.spec.scss +1 -77
  220. package/assets/sass/_tests/typography.spec.scss +1 -1
  221. package/assets/sass/_utilities.scss +15 -5
  222. package/assets/sass/_utility-mixins.scss +6 -1
  223. package/assets/sass/components/{actionbar.scss → actionbar.component.scss} +83 -16
  224. package/assets/sass/components/actionbar.global.scss +12 -68
  225. package/assets/sass/components/address-lookup.scss +6 -0
  226. package/assets/sass/components/barchart.component.scss +7 -20
  227. package/assets/sass/components/bento-grid.component.scss +91 -0
  228. package/assets/sass/components/carousel.config.scss +64 -58
  229. package/assets/sass/components/charts.config.scss +73 -67
  230. package/assets/sass/components/charts.module.scss +128 -97
  231. package/assets/sass/components/charts.scss +43 -42
  232. package/assets/sass/components/collapsible-side.scss +29 -27
  233. package/assets/sass/components/doughnutchart.component.scss +205 -0
  234. package/assets/sass/components/fileupload.scss +4 -3
  235. package/assets/sass/components/header.scss +5 -5
  236. package/assets/sass/components/inline-edit.preload.scss +108 -102
  237. package/assets/sass/components/menu.component.scss +101 -0
  238. package/assets/sass/components/menu.scss +21 -0
  239. package/assets/sass/components/multi-step.component.scss +5 -3
  240. package/assets/sass/components/multiselect.preload.scss +36 -30
  241. package/assets/sass/components/{nav.scss → nav.component.scss} +41 -21
  242. package/assets/sass/components/nav.docs.scss +1 -1
  243. package/assets/sass/components/nav.global.scss +13 -11
  244. package/assets/sass/components/nav.old.scss +21 -24
  245. package/assets/sass/components/nav.preload.scss +40 -34
  246. package/assets/sass/components/notification.scss +9 -5
  247. package/assets/sass/components/pagination.scss +7 -0
  248. package/assets/sass/components/property-searchbar.scss +7 -7
  249. package/assets/sass/components/slider.scss +2 -0
  250. package/assets/sass/components/snapshot.scss +2 -2
  251. package/assets/sass/components/stepper.scss +7 -7
  252. package/assets/sass/components/{table.scss → table-basic.component.scss} +25 -68
  253. package/assets/sass/components/table-basic.global.scss +355 -0
  254. package/assets/sass/components/table.component.scss +40 -0
  255. package/assets/sass/components/table.global.scss +215 -418
  256. package/assets/sass/components/tabs.component.scss +5 -0
  257. package/assets/sass/components/tabs.config.scss +27 -0
  258. package/assets/sass/components/tabs.scss +40 -4
  259. package/assets/sass/components/testimonial.scss +7 -7
  260. package/assets/sass/components/timeline.scss +1 -1
  261. package/assets/sass/core.scss +13 -4
  262. package/assets/sass/elements/admin-panel.scss +199 -185
  263. package/assets/sass/elements/badge-tag.scss +87 -81
  264. package/assets/sass/elements/brand.scss +67 -61
  265. package/assets/sass/elements/buttons--action.scss +55 -0
  266. package/assets/sass/elements/buttons--compact.scss +135 -0
  267. package/assets/sass/elements/buttons--global.scss +323 -0
  268. package/assets/sass/elements/buttons--secondary.scss +24 -0
  269. package/assets/sass/elements/buttons--tertiary.scss +57 -0
  270. package/assets/sass/elements/buttons.scss +29 -503
  271. package/assets/sass/elements/container.scss +157 -151
  272. package/assets/sass/elements/details.scss +147 -138
  273. package/assets/sass/elements/dialog.scss +36 -30
  274. package/assets/sass/elements/forms.scss +1061 -1047
  275. package/assets/sass/elements/icons.scss +23 -17
  276. package/assets/sass/elements/links.scss +131 -116
  277. package/assets/sass/elements/lists.scss +270 -264
  278. package/assets/sass/elements/media.scss +19 -13
  279. package/assets/sass/elements/modal.scss +336 -330
  280. package/assets/sass/elements/popover.scss +163 -152
  281. package/assets/sass/elements/progress.scss +173 -162
  282. package/assets/sass/elements/table.element.scss +116 -108
  283. package/assets/sass/elements/tooltips.scss +87 -80
  284. package/assets/sass/elements/type.scss +172 -160
  285. package/assets/sass/email.scss +0 -1
  286. package/assets/sass/error.scss +15 -13
  287. package/assets/sass/foundations/reboot.scss +176 -170
  288. package/assets/sass/foundations/root.scss +136 -125
  289. package/assets/sass/helpers/max-height.scss +2 -2
  290. package/assets/sass/main.scss +14 -6
  291. package/assets/sass/mobile-core.scss +14 -0
  292. package/assets/sass/mobile.scss +16 -0
  293. package/assets/sass/templates/auth.scss +88 -83
  294. package/assets/sass/templates/form.scss +68 -59
  295. package/assets/ts/components/_global.ts +2 -3
  296. package/assets/ts/components/actionbar/actionbar.component.ts +94 -2
  297. package/assets/ts/components/address-lookup/address-lookup.component.ts +21 -22
  298. package/assets/ts/components/applied-filters/applied-filters.component.ts +1 -2
  299. package/assets/ts/components/barchart/barchart.component.ts +3 -5
  300. package/assets/ts/components/bento-grid/README.md +31 -0
  301. package/assets/ts/components/bento-grid/bento-grid.component.ts +67 -0
  302. package/assets/ts/components/card/card.component.ts +13 -16
  303. package/assets/ts/components/carousel/carousel.component.ts +5 -7
  304. package/assets/ts/components/chart/chart.component.ts +4 -9
  305. package/assets/ts/components/collapsible-side/collapsible-side.component.ts +5 -6
  306. package/assets/ts/components/doughnutchart/doughnutchart.component.ts +85 -0
  307. package/assets/ts/components/fileupload/fileupload.component.ts +5 -6
  308. package/assets/ts/components/filter-card/filter-card.component.ts +4 -5
  309. package/assets/ts/components/filterlist/filterlist.component.ts +1 -2
  310. package/assets/ts/components/header/header.component.ts +1 -3
  311. package/assets/ts/components/inline-edit/inline-edit.component.ts +8 -11
  312. package/assets/ts/components/marketing/marketing.component.ts +1 -3
  313. package/assets/ts/components/menu/menu.component.ts +222 -0
  314. package/assets/ts/components/multi-step/multi-step.component.ts +19 -23
  315. package/assets/ts/components/multiselect/multiselect.component.ts +13 -14
  316. package/assets/ts/components/nav/nav.component.ts +8 -9
  317. package/assets/ts/components/notification/notification.component.ts +3 -3
  318. package/assets/ts/components/pagination/pagination.component.ts +24 -12
  319. package/assets/ts/components/record-card/record-card.component.ts +9 -11
  320. package/assets/ts/components/search/search.component.ts +12 -9
  321. package/assets/ts/components/slider/slider.component.ts +9 -10
  322. package/assets/ts/components/table/table.component.ts +50 -247
  323. package/assets/ts/components/table-ajax/table-ajax.component.ts +64 -0
  324. package/assets/ts/components/table-basic/README.md +40 -0
  325. package/assets/ts/components/table-basic/table-basic.component.ts +56 -0
  326. package/assets/ts/components/table-no-submit/table-no-submit.component.ts +134 -0
  327. package/assets/ts/components/table-submit/table-submit.component.ts +64 -0
  328. package/assets/ts/components/tabs/tabs.component.ts +4 -3
  329. package/assets/ts/components/video-card/video-card.component.ts +13 -12
  330. package/assets/ts/modules/applied-filters.ts +10 -11
  331. package/assets/ts/modules/card.module.ts +1 -1
  332. package/assets/ts/modules/carousel.ts +13 -15
  333. package/assets/ts/modules/chart.module.ts +152 -19
  334. package/assets/ts/modules/chart.ts +26 -24
  335. package/assets/ts/modules/dialogs.ts +10 -13
  336. package/assets/ts/modules/drawer.ts +1 -2
  337. package/assets/ts/modules/dynamicEvents.ts +12 -14
  338. package/assets/ts/modules/fileupload.ts +10 -10
  339. package/assets/ts/modules/filterlist.ts +6 -7
  340. package/assets/ts/modules/form.ts +16 -17
  341. package/assets/ts/modules/helpers.ts +24 -21
  342. package/assets/ts/modules/inputs.ts +15 -18
  343. package/assets/ts/modules/nav.ts +4 -5
  344. package/assets/ts/modules/notification.ts +7 -8
  345. package/assets/ts/modules/orderablelist.ts +3 -4
  346. package/assets/ts/modules/pagination.ts +1 -1
  347. package/assets/ts/modules/table.ts +726 -356
  348. package/assets/ts/modules/tabs.ts +59 -20
  349. package/assets/ts/scripts.ts +72 -6
  350. package/assets/ts/tests/card.spec.ts +19 -0
  351. package/assets/ts/tests/carousel.spec.ts +66 -0
  352. package/assets/ts/tests/chart.spec.ts +9 -6
  353. package/assets/ts/tests/fileupload.spec.ts +30 -0
  354. package/assets/ts/tests/multistep.spec.ts +78 -0
  355. package/assets/ts/tests/table.spec.ts +0 -38
  356. package/dist/components.es.js +1260 -1063
  357. package/dist/components.umd.js +468 -198
  358. package/package.json +44 -49
  359. package/src/components/BentoGrid/BentoGrid.vue +20 -0
  360. package/src/components/DoughnutChart/DoughnutChart.vue +23 -0
  361. package/src/components/FileUpload/FileUpload.vue +4 -1
  362. package/src/components/Menu/Menu.vue +22 -0
  363. package/src/components/Table/TableAjax.vue +34 -0
  364. package/src/components/Table/TableBasic.vue +34 -0
  365. package/src/components/Table/TableNoSubmit.vue +34 -0
  366. package/src/components/Table/TableSubmit.vue +34 -0
  367. package/src/components/Tabs/Tabs.vue +0 -4
  368. package/src/index.js +25 -19
  369. package/assets/css/components/actionbar.css +0 -1
  370. package/assets/css/components/actionbar.css.map +0 -1
  371. package/assets/css/components/nav.css +0 -1
  372. package/assets/css/components/nav.css.map +0 -1
  373. package/assets/css/components/table.css +0 -1
  374. package/assets/css/components/table.css.map +0 -1
  375. package/assets/js/components.bundle.js +0 -5
  376. package/assets/js/components.bundle.js.map +0 -1
  377. package/assets/js/components.js +0 -57
  378. package/assets/js/modules/file-upload.js +0 -32
  379. package/assets/ts/components.ts +0 -62
  380. package/assets/ts/modules/file-upload.ts +0 -52
  381. package/dist/style.css +0 -1
  382. package/src/components/Table/Table.spec.js +0 -47
@@ -1,375 +1,108 @@
1
1
  @use '../_func.scss' as *;
2
2
 
3
- // #region Container type
4
- *:has(> iam-table) {
5
- container-type: inline-size;
6
- }
7
- // #endregion
3
+ $darkMode: 'true' !default;
8
4
 
9
- // #region Basic table stuff
10
- iam-table {
11
- --hover-background: var(--colour-light);
12
- --row-bg: var(--colour-canvas-2);
13
- thead tr {
14
- background: var(--row-bg);
15
- }
16
- tbody tr {
17
- background: var(--row-bg);
5
+ @use './table-basic.global.scss' with (
6
+ $darkMode: $darkMode
7
+ );
18
8
 
19
- &:is(:hover, :focus-within, .hover) {
20
- --bg-colour-rgb: 238, 238, 238;
21
- --row-bg: var(--hover-background);
22
- background: var(--row-bg);
23
- }
24
- }
9
+ $selector: 'iam-table, iam-table-basic, iam-table-no-submit, iam-table-submit';
25
10
 
26
- &[data-expandable] [data-expand-button][aria-expanded] {
27
- background-color: transparent;
11
+ // #region Tables are only stacked on mobile
12
+ :is(#{$selector}):not(.table--fullwidth).table--cta {
13
+ @container (width < 23.4375em) {
14
+ tbody tr td:last-child {
15
+ display: block !important;
16
+ }
28
17
  }
29
18
  }
30
19
  // #endregion
31
20
 
32
- // #region Tables are only stacked on mobile
33
- @container (width < 23.4375em) {
34
- iam-table:not(.table--fullwidth) {
35
- thead {
36
- display: none;
37
- }
38
-
39
- tbody {
40
- display: block;
41
- overflow: visible;
42
-
43
- tr td:first-child {
44
- padding-top: 0;
45
- }
46
- }
47
-
48
- tr {
49
- display: block;
50
- position: relative;
51
- border: none;
52
- background: var(--row-bg);
53
- padding: var(--wrapper-padding);
54
- box-shadow: 0px 6px 12px rgba(0, 0, 0, 0.11);
55
- border-radius: rem(8);
56
- height: auto;
57
-
58
- & + tr {
59
- margin-top: rem(32);
60
- }
61
-
62
- &:is(:hover, :focus, .hover) {
63
- --row-bg: var(--colour-canvas-2);
64
- }
65
- }
66
-
67
- :is(td, th) {
68
- display: block;
69
- @include var(border-color, --colour-border);
70
-
71
- padding-right: 0;
72
-
73
- &:nth-child(1) {
74
- border-top: none;
75
- }
76
-
77
- &[data-label]:not([data-label='']):before {
78
- content: attr(data-label);
79
- color: var(--colour-heading);
80
- padding: 0 0 rem(6) 0;
81
- margin-bottom: 0;
82
- display: block;
83
- font-weight: bold;
84
- }
85
- }
86
-
87
- td:first-child::after {
88
- top: 1.75rem !important;
89
- }
90
-
91
- td::after {
92
- top: 2.5rem;
93
- }
94
-
95
- .td--fixed {
96
- padding-right: 50%;
97
- }
98
-
99
- tbody tr td:not(:first-child) {
100
- border-top: var(--border-width) solid currentColor;
101
- border-color: var(--colour-border) !important;
102
- }
103
-
104
- tr:not([data-view='full']) td p {
105
- display: -webkit-box;
106
- -webkit-box-orient: vertical;
107
- -webkit-line-clamp: 2;
108
- overflow: hidden;
109
- }
21
+ // #region As part of the iam-table component
110
22
 
111
- td:has([data-expand-button]) {
112
- height: 0;
113
- padding: 0;
114
- position: relative;
115
- }
116
- td:has([data-expand-button]) + td {
117
- border-top: none !important;
118
- padding-top: 0 !important;
119
- }
120
- [data-expand-button] {
121
- top: 0;
122
- right: 0;
123
- background: transparent !important;
124
- border: none;
125
- position: absolute;
126
- overflow: hidden;
127
- --compact-size: #{rem(32)};
128
-
129
- &:before {
130
- font-family: 'Font Awesome 6 Pro';
131
- content: '\f055';
132
- font-weight: 300 !important;
133
- font-size: rem(28);
134
- line-height: var(--compact-size) !important;
135
- }
136
-
137
- &[aria-expanded] {
138
- &:before {
139
- content: '\f056';
140
- font-weight: 900 !important;
141
- }
142
- }
143
- }
144
-
145
- .dialog__wrapper:not([slot='overflow']) {
146
- margin-top: -0.5rem;
147
- margin-left: -1rem;
148
- z-index: 10;
149
- }
150
- }
151
-
152
- iam-table:not(.table--fullwidth) tbody tr:not([data-view='full']) {
153
- td:not(.td--fixed) + td:not(.td--fixed) + td + td {
154
- display: none;
155
- }
23
+ :is(#{$selector}) iam-actionbar {
24
+ margin: 0 1.5rem 1rem 1.5rem;
25
+
26
+ @container (width < 23.4375em) {
27
+ box-shadow: 0px 6px 12px rgba(0, 0, 0, 0.11);
28
+ border-radius: 0.5rem;
156
29
  }
30
+ }
31
+ :is(#{$selector}).table--fullwidth:has(iam-actionbar) {
32
+ padding-top: 0;
33
+ }
34
+ :is(#{$selector}).table--fullwidth iam-actionbar {
35
+ margin: -2rem -2rem 2rem -2rem;
36
+ box-shadow: none;
37
+ border-radius: 0;
38
+ }
157
39
 
158
- iam-table.table--cta:not(.table--fullwidth) tr td:not(:first-child):last-child {
159
- display: block !important;
160
- position: static;
161
- width: 100%;
162
- min-width: 100%;
163
- margin-left: 0;
164
- padding-left: 0;
165
- text-align: left;
166
- min-height: 0;
40
+ :is(#{$selector}).table--fullwidth iam-actionbar:has(+ table input:checked) {
41
+ margin: -2rem -2rem 2rem -2rem;
42
+ box-shadow: none;
43
+ border-radius: 0;
167
44
 
168
- &:after {
169
- display: none;
170
- }
45
+ @include light-mode($darkMode) {
46
+ background-color: #e6eaec;
171
47
  }
172
48
  }
173
- // #endregion
174
-
175
- // #region CTA column
176
- @container (width > 23.4375em) {
177
- iam-table.table--cta:not(.table--loading):has(tr:first-child td:first-child:last-child) {
178
- padding-right: calc(var(--wrapper-padding) + 1.5rem);
179
- }
180
49
 
181
- iam-table.table--cta:not(.table--loading):not(:has(tr:first-child td:first-child:last-child)) {
182
- tr > th:nth-last-child(2),
183
- tr > td:nth-last-child(2) {
184
- padding-right: var(--cta-width);
185
- }
186
-
187
- tr > *:not(:first-child):last-child {
188
- position: absolute;
189
- left: calc(100% - var(--cta-width));
190
- top: auto;
191
- background: transparent;
192
- width: var(--cta-width);
193
- min-height: calc(var(--row-height) - 2px);
194
- text-align: right;
195
- background: linear-gradient(90deg, transparent 0%, var(--row-bg) 1.25rem);
196
- cursor: default;
197
- padding-bottom: 0;
198
-
199
- a {
200
- white-space: nowrap;
201
- padding-right: 0.2rem;
202
- padding-bottom: 0;
203
- }
204
- }
50
+ // Actionbar
51
+ .actionbar__sticky-wrapper {
52
+ container-type: inline-size;
205
53
 
206
- tbody tr:hover > *:not(:first-child):last-child {
207
- background: linear-gradient(90deg, transparent 0%, var(--row-bg) 1.25rem);
208
- }
54
+ @include media-breakpoint-up(sm, $mobileOnly) {
55
+ padding: 0 !important;
209
56
  }
210
57
  }
211
- // #endregion
212
-
213
- // #region Max height tables
214
- iam-table:is(.mh-sm, .mh-md, .mh-lg):not(.table--cta) {
215
- position: relative;
216
58
 
217
- thead {
59
+ @container (width < 23.4375em) {
60
+ :is(#{$selector}):is(.actionbar__sticky-wrapper) > .actionbar__sticky {
61
+ display: block;
218
62
  position: sticky;
219
- top: 0;
220
63
  left: 0;
221
- z-index: 1;
222
- background-color: var(--row-bg);
64
+ top: calc(var(--sticky-padding) + #{rem(16)});
65
+ z-index: var(--index-menu);
66
+ pointer-events: none;
223
67
 
224
- &:before {
68
+ &:after {
225
69
  content: '';
226
- position: absolute;
227
- bottom: 0;
228
- left: 0;
70
+ display: block;
229
71
  width: 100%;
230
- height: 2px;
231
- background: var(--colour-primary);
72
+ height: calc(100vh - #{rem(68 + 24 + 16)});
73
+ pointer-events: none;
232
74
  }
233
- }
234
- tbody {
235
- position: relative;
236
75
 
237
- tr:first-child td {
238
- border-top: 0;
239
- }
240
- tr:last-child td {
241
- border-bottom: 0;
76
+ & + * {
77
+ margin-top: calc(-100vh - -6.75rem);
242
78
  }
243
79
  }
244
- }
245
- //#endregion
246
-
247
- // #region Statuses
248
- table {
249
- .hide-status:after {
250
- display: none;
251
- }
252
-
253
- :not(.hide-status):is(
254
- [data-content='low'],
255
- [data-content='medium'],
256
- [data-content='high'],
257
- [data-content='unknown'],
258
- [data-content='due'],
259
- [data-content='overdue'],
260
- [data-content='incomplete'],
261
- [data-content='requires approval'],
262
- [data-content='upcoming'],
263
- [data-content='approval required'],
264
- [data-content='warning'],
265
- [data-content='verified'],
266
- [data-content='not started'],
267
- [data-content='to do'],
268
- [data-content='on track'],
269
- [data-content='completed'],
270
- [data-content='complete'],
271
- .alert-status:not([data-content='0']):not([data-content='']):not(:empty)
272
- ) {
273
- position: relative;
274
- padding-left: 1.5rem;
275
-
276
- &::before {
277
- margin-left: -1.5rem !important;
278
- }
279
-
280
- &:after {
281
- font-family: 'Font Awesome 6 Pro';
282
- position: absolute;
283
- top: 1rem;
284
- left: 0;
285
- font-size: rem(16);
286
- line-height: 1;
287
- height: rem(16);
288
- width: rem(16);
289
- display: inline-block;
290
- }
291
- }
292
-
293
- [data-content='high']:after {
294
- content: '\f325';
295
- font-weight: normal;
296
- color: var(--colour-danger);
297
- }
298
-
299
- [data-content='medium']:after {
300
- content: '\f7a4';
301
- font-weight: normal;
302
- color: var(--colour-warning);
303
- }
304
80
 
305
- [data-content='low']:after {
306
- content: '\e404';
307
- font-weight: normal;
308
- color: var(--colour-complete);
81
+ :is(#{$selector}):is(.actionbar__sticky) > iam-actionbar {
82
+ pointer-events: all !important;
83
+ display: block;
84
+ border: none;
85
+ background: var(--colour-canvas-2);
86
+ //box-shadow: 0px 6px 12px rgba(0, 0, 0, 0.11);
87
+ border-radius: 0.5rem;
88
+ margin-bottom: rem(24);
309
89
  }
310
-
311
- [data-content='unknown']:after {
312
- content: '\e404';
313
- font-weight: normal;
314
- color: var(--colour-muted);
315
- }
316
-
317
- :is([data-content='overdue'], [data-content='due'], [data-content='incomplete']):after {
318
- content: '\f024';
319
- color: var(--colour-danger);
320
- }
321
-
322
- :is([data-content='not started'], [data-content='to do'], [data-content='on track']):after {
323
- content: '\f024';
324
- color: var(--colour-muted);
325
- }
326
-
327
- :is(
328
- [data-content='requires approval'],
329
- [data-content='approval required'],
330
- [data-content='action required'],
331
- [data-content='upcoming']
332
- ):after {
333
- content: '\f024';
334
- color: var(--colour-warning);
335
- }
336
-
337
- :is([data-content='warning']):after {
338
- content: '\f071';
339
- color: var(--colour-warning);
340
- }
341
-
342
- :is(
343
- [data-content='manually verified'],
344
- [data-content='verified'],
345
- [data-content='completed'],
346
- [data-content='complete']
347
- ):after {
348
- content: '\f00c';
349
- font-weight: normal;
350
- color: var(--colour-complete);
351
- }
352
-
353
- .alert-status:not([data-content='0']):not([data-content='']):not(:empty):after {
354
- content: '\f0f3';
355
- color: var(--colour-primary);
356
- }
357
- }
358
- // #endregion
359
-
360
- // #region filters
361
- iam-table .table--filtered tbody tr:not(.filtered--show) {
362
- display: none !important;
363
90
  }
364
91
 
365
- iam-table table:not(.table--filtered):not(.table--ajax) tbody tr:nth-child(15) ~ tr {
366
- display: none;
92
+ @include container-up(sm) {
93
+ :is(#{$selector}).table--fullwidth iam-actionbar,
94
+ :is(#{$selector}) iam-actionbar {
95
+ margin-left: -2rem;
96
+ margin-right: -2rem;
97
+ margin-top: -2rem;
98
+ margin-bottom: 2rem;
99
+ }
367
100
  }
368
101
  // #endregion
369
102
 
370
103
  // #region Table with actionbar
371
104
 
372
- iam-table {
105
+ :is(#{$selector}) {
373
106
  input:is([type='radio'], [type='checkbox']) + label:not(.radio--tick) {
374
107
  padding-left: 0 !important;
375
108
  margin: 0 !important;
@@ -378,6 +111,7 @@ iam-table {
378
111
  &:after {
379
112
  top: 0.75rem !important;
380
113
  left: 0.25rem !important;
114
+ --border-radius: 0.25rem;
381
115
  }
382
116
  }
383
117
 
@@ -401,15 +135,18 @@ iam-table {
401
135
  }
402
136
  }
403
137
 
404
- tr:has([type='checkbox']:checked) {
138
+ tr:has([type='checkbox']:hover, [type='checkbox']:focus) {
139
+ --row-bg: #eeeeee;
140
+ }
141
+ tr:has([type='checkbox']:hover:checked, [type='checkbox']:focus:checked, [type='checkbox']:checked) {
405
142
  --row-bg: #e0e0e0;
406
143
  }
407
144
  }
408
145
 
409
146
  @container (width < 23.4375em) {
410
- iam-table:has([slot='before']) {
147
+ :is(#{$selector}) {
411
148
  iam-actionbar {
412
- @include light-mode() {
149
+ @include light-mode($darkMode) {
413
150
  background-color: #e6eaec;
414
151
  }
415
152
  }
@@ -418,7 +155,7 @@ iam-table {
418
155
  }
419
156
  }
420
157
 
421
- iam-table {
158
+ :is(#{$selector}) {
422
159
  input:is([type='radio'], [type='checkbox']) + label:not(.radio--tick) {
423
160
  padding-left: 0 !important;
424
161
  margin: 0 !important;
@@ -445,28 +182,21 @@ iam-table {
445
182
  // #endregion
446
183
 
447
184
  // #region Expandable tables
448
- iam-table.table--fullwidth:not([data-expandable]) {
449
- th.expand-button-heading {
450
- display: none;
185
+ :is(#{$selector})[data-expandable] {
186
+ td:has([data-expand-button]),
187
+ .expand-button-heading {
188
+ display: table-cell;
451
189
  }
452
- td:has([data-expand-button]) {
453
- display: none;
454
- }
455
- }
456
190
 
457
- @container (width > 23.4375em) {
458
- iam-table:not([data-expandable]) {
459
- th.expand-button-heading {
460
- display: none;
461
- }
462
- td.td--expand {
463
- display: none;
464
- }
465
- }
466
-
467
- iam-table[data-expandable] {
191
+ @mixin fullwidthexpand() {
468
192
  [data-expand-button] {
469
- margin: 0;
193
+ margin: 0.25rem 0 0 0;
194
+
195
+ &:not(:hover, :focus) {
196
+ background-color: transparent;
197
+ border-color: transparent;
198
+ }
199
+
470
200
  &:before {
471
201
  font-family: 'Font Awesome 6 Pro';
472
202
  content: '\f078';
@@ -489,32 +219,36 @@ iam-table.table--fullwidth:not([data-expandable]) {
489
219
  -webkit-box-orient: vertical;
490
220
  -webkit-line-clamp: 2;
491
221
  overflow: hidden;
222
+ min-width: 10rem;
492
223
  }
493
224
  }
225
+
226
+ &.table--fullwidth {
227
+ @include fullwidthexpand();
228
+ }
229
+
230
+ @container (width > 23.4375em) {
231
+ @include fullwidthexpand();
232
+ }
494
233
  }
495
234
  // #endregion
496
235
 
497
236
  // #region fixed columns
498
- @container (width < 23.4375em) {
499
- iam-table:not(.table--fullwidth) {
500
- .td--fixed + td:not(.td--fixed) {
501
- border-top: none;
237
+ :is(#{$selector}):not(.table--fullwidth) {
238
+ @container (width < 23.4375em) {
239
+ tr {
240
+ position: relative;
241
+ }
242
+ .td--fixed + .td--fixed {
243
+ border: none;
502
244
  }
503
245
  }
504
246
  }
505
- @container (width > 23.4375em) {
506
- iam-table {
507
- --width-adjust: 0px;
508
-
509
- &:has([type='checkbox']) {
510
- --width-adjust: -1rem;
511
- }
512
247
 
248
+ :is(#{$selector}) {
249
+ @container (width > 23.4375em) {
513
250
  .th--fixed {
514
- min-width: calc(rem(48 + 24) + var(--width-adjust));
515
- position: absolute;
516
- padding: 0;
517
-
251
+ /*
518
252
  &:after {
519
253
  top: auto;
520
254
  left: 0;
@@ -524,93 +258,156 @@ iam-table.table--fullwidth:not([data-expandable]) {
524
258
  height: calc(var(--row-height) - 2px);
525
259
  background: linear-gradient(90deg, var(--row-bg) calc(100% - 1.5rem), transparent 100%);
526
260
  }
261
+ */
527
262
  }
528
263
 
264
+ .th--fixed,
529
265
  .td--fixed {
530
- position: absolute;
531
266
  position: absolute;
532
267
  left: auto;
533
268
  top: auto;
534
269
  z-index: 3;
535
- padding: rem(4) 0 0 0;
536
- min-width: rem(48 + 24);
270
+ padding: 0 0 0 0;
271
+ min-width: rem(48 + 6);
537
272
  height: calc(var(--row-height) - 2px);
538
273
  text-align: left;
539
- background: linear-gradient(90deg, var(--row-bg) calc(100% - 1.5rem), transparent 100%);
274
+ background: var(--row-bg);
540
275
 
541
276
  &:has([open]) {
542
277
  z-index: 4;
543
278
  }
544
279
  }
545
280
 
546
- tr {
547
- &:has(.td--fixed) {
548
- height: 3.5rem;
549
- }
550
-
551
- &:is(:hover, :focus) .td--fixed {
552
- background: linear-gradient(90deg, var(--row-bg) calc(100% - 1.5rem), transparent 100%);
553
- }
281
+ .th--fixed:has(+ th:not(.th--fixed)),
282
+ .td--fixed:has(+ td:not(.td--fixed)) {
554
283
 
555
- &:has([data-expand-button]) {
556
- height: calc(rem(74) - 2px);
557
- }
284
+ background: linear-gradient(90deg, var(--row-bg) calc(100% - 1rem), transparent 100%);
558
285
  }
559
286
 
560
287
  .th--fixed + th:not(.th--fixed),
561
288
  .td--fixed + td:not(.td--fixed) {
562
- padding-left: calc(rem(48 + 24) + var(--width-adjust));
289
+ padding-left: calc(rem(48 + 6));
563
290
  }
564
291
 
565
- .th--fixed:not(.expand-button-heading) + .th--fixed + th:not(.th--fixed),
566
- .td--fixed:not(.td--expand) + .td--fixed + td:not(.td--fixed) {
567
- padding-left: calc(rem(48 + 4 + 48 + 24) + var(--width-adjust));
292
+ .th--fixed + .th--fixed,
293
+ .td--fixed + .td--fixed {
294
+ left: rem(48);
568
295
  }
569
296
 
570
- &[data-expandable] .th--fixed + .th--fixed + th:not(.th--fixed),
571
- &[data-expandable] .td--fixed + .td--fixed + td:not(.td--fixed) {
572
- padding-left: calc(rem(48 + 4 + 48 + 24) + var(--width-adjust));
297
+ .th--fixed + .th--fixed + th:not(.th--fixed),
298
+ .td--fixed + .td--fixed + td:not(.td--fixed) {
299
+ padding-left: calc(rem(48 + 48 + 6));
573
300
  }
574
301
 
575
- .th--fixed + .th--fixed,
576
- .td--fixed + .td--fixed {
577
- padding-left: calc(rem(48 + 4) + var(--width-adjust));
578
- min-width: calc(rem(48 + 4 + 48 + 24) + var(--width-adjust));
579
- }
580
302
 
581
- .th--fixed:has(+ .th--fixed),
582
- .td--fixed:has(+ .td--fixed) {
583
- min-width: calc(rem(48 + 4) + var(--width-adjust));
584
- z-index: 5;
303
+ .th--fixed + .th--fixed + .th--fixed,
304
+ .td--fixed + .td--fixed + .td--fixed {
305
+ left: rem(48 + 48);
585
306
  }
586
307
 
308
+ .th--fixed + .th--fixed + .th--fixed + th:not(.th--fixed),
309
+ .td--fixed + .td--fixed + .td--fixed + td:not(.td--fixed) {
310
+ padding-left: calc(rem(48 + 48 + 48 + 6));
311
+ }
312
+
587
313
  .dialog__wrapper {
588
314
  z-index: 10;
589
315
  }
590
316
  .dialog__wrapper:has([open]) {
591
317
  z-index: 20;
592
318
  }
319
+ }
320
+ }
321
+ // #endregion
322
+
323
+ // #region
324
+ :is(#{$selector})td:has(.dialog__wrapper) {
325
+ padding-top: 0.25rem;
326
+ }
327
+
328
+ // #endregion
329
+
330
+ // #region sort by column header
593
331
 
594
- &[data-expandable] input:is([type='radio'], [type='checkbox']) + label:before,
595
- &[data-expandable] input:is([type='radio'], [type='checkbox']) + label:after {
596
- left: 1.25rem !important;
332
+ $icon-sort: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d='M182.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L128 370.7 128 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-96 96zm352-333.3c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L448 141.3 448 448c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-306.7-41.4 41.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0l96 96z'/></svg>");
333
+
334
+ $icon-sort-asc: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'><!--!Font Awesome Pro 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc.--><path d='M209.4 39.4C204.8 34.7 198.6 32 192 32s-12.8 2.7-17.4 7.4l-168 176c-9.2 9.6-8.8 24.8 .8 33.9s24.8 8.8 33.9-.8L168 115.9 168 456c0 13.3 10.7 24 24 24s24-10.7 24-24l0-340.1L342.6 248.6c9.2 9.6 24.3 9.9 33.9 .8s9.9-24.3 .8-33.9l-168-176z'/></svg>");
335
+
336
+ $icon-sort-desc: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'><!--!Font Awesome Pro 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc.--><path d='M174.6 472.6c4.5 4.7 10.8 7.4 17.4 7.4s12.8-2.7 17.4-7.4l168-176c9.2-9.6 8.8-24.8-.8-33.9s-24.8-8.8-33.9 .8L216 396.1 216 56c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 340.1L41.4 263.4c-9.2-9.6-24.3-9.9-33.9-.8s-9.9 24.3-.8 33.9l168 176z'/></svg>");
337
+
338
+ @mixin column-sort {
339
+ th[data-sort] {
340
+ background-repeat: no-repeat;
341
+ background-size: 1rem 1rem;
342
+ background-position: calc(100% - 0.5rem) 50%;
343
+ padding-top: 0.75rem;
344
+ cursor: pointer;
345
+
346
+ &:hover {
347
+ background-color: var(--colour-light);
348
+ background-image: #{escape-svg($icon-sort)};
597
349
  }
598
350
  }
599
351
 
600
- iam-table:not([data-expandable]) {
601
- th.expand-button-heading + th {
602
- padding-left: 0 !important;
603
- }
604
- td.td--expand + td {
605
- padding-left: 0 !important;
606
- }
352
+ &:has(th[data-sort]) :is(th, td) {
353
+ padding-left: 0.25rem;
354
+ }
607
355
 
608
- th.expand-button-heading + .th--fixed {
609
- min-width: calc(rem(48 + 24) + var(--width-adjust)) !important;
610
- }
611
- td.td--expand + .td--fixed {
612
- min-width: calc(rem(48 + 24) + var(--width-adjust)) !important;
356
+ th[data-sort][data-order-by='asc'] {
357
+ background-image: #{escape-svg($icon-sort-asc)};
358
+ }
359
+ th[data-sort][data-order-by='desc'] {
360
+ background-image: #{escape-svg($icon-sort-desc)};
361
+ }
362
+ }
363
+
364
+ :is(#{$selector}) {
365
+ &.table--fullwidth {
366
+ @include column-sort;
367
+ }
368
+
369
+ @container (width >= 32em) {
370
+ @include column-sort;
371
+ }
372
+ }
373
+
374
+ // #endregion
375
+
376
+ // #region hide columns
377
+ @for $i from 1 through 30 {
378
+ :is(#{$selector}) [data-hide-col#{$i}] + table :is(thead, tbody) :is(th, td):nth-child(#{$i}) {
379
+ display: none;
380
+ }
381
+ }
382
+ // #endregion
383
+
384
+ // #region filters
385
+ :is(#{$selector}) .table--filtered tbody tr:not(.filtered--show) {
386
+ display: none !important;
387
+ }
388
+
389
+ :is(#{$selector}) table:not(.table--filtered):not(.table--ajax) tbody tr:nth-child(15) ~ tr {
390
+ //display: none;
391
+ }
392
+ // #endregion
393
+
394
+ // #region max height tables
395
+
396
+
397
+ iam-table-basic:is(.mh-lg,.mh-md,.mh-sm) {
398
+
399
+ thead {
400
+ position: sticky;
401
+ top: 0;
402
+ z-index: 9999;
403
+
404
+ tr {
405
+
406
+ background: var(--row-bg);
407
+ background: linear-gradient(0deg,var(--colour-primary) 2px, var(--row-bg) 2px);
408
+ border: none;
613
409
  }
614
410
  }
615
411
  }
412
+
616
413
  // #endregion