@kosmeo-ui/react 0.1.1 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (418) hide show
  1. package/README.md +3 -1
  2. package/dist/components/buttons/button/index.d.ts +2 -0
  3. package/dist/components/buttons/button/index.d.ts.map +1 -1
  4. package/dist/components/buttons/button/index.js +2 -2
  5. package/dist/components/buttons/button/index.js.map +1 -1
  6. package/dist/components/buttons/button/styles.css +45 -43
  7. package/dist/components/buttons/rowActions/index.d.ts.map +1 -1
  8. package/dist/components/buttons/rowActions/index.js +2 -1
  9. package/dist/components/buttons/rowActions/index.js.map +1 -1
  10. package/dist/components/buttons/rowActions/styles.css +7 -0
  11. package/dist/components/data-display/addressBlock/styles.css +2 -4
  12. package/dist/components/data-display/colorSwatch/index.d.ts +1 -1
  13. package/dist/components/data-display/colorSwatch/index.d.ts.map +1 -1
  14. package/dist/components/data-display/colorSwatch/index.js +1 -1
  15. package/dist/components/data-display/colorSwatch/index.js.map +1 -1
  16. package/dist/components/data-display/colorSwatch/styles.css +1 -1
  17. package/dist/components/data-display/dataTable/index.d.ts.map +1 -1
  18. package/dist/components/data-display/dataTable/index.js +7 -3
  19. package/dist/components/data-display/dataTable/index.js.map +1 -1
  20. package/dist/components/data-display/dataTable/styles.css +18 -2
  21. package/dist/components/data-display/dataTable/utils/parseDataKey.d.ts +8 -1
  22. package/dist/components/data-display/dataTable/utils/parseDataKey.d.ts.map +1 -1
  23. package/dist/components/data-display/dataTable/utils/parseDataKey.js +13 -41
  24. package/dist/components/data-display/dataTable/utils/parseDataKey.js.map +1 -1
  25. package/dist/components/data-display/imagePreview/styles.css +2 -2
  26. package/dist/components/data-display/infiniteScroll/filters/index.d.ts +4 -0
  27. package/dist/components/data-display/infiniteScroll/filters/index.d.ts.map +1 -1
  28. package/dist/components/data-display/infiniteScroll/filters/index.js +12 -2
  29. package/dist/components/data-display/infiniteScroll/filters/index.js.map +1 -1
  30. package/dist/components/data-display/infiniteScroll/filters/listFilter.d.ts.map +1 -1
  31. package/dist/components/data-display/infiniteScroll/filters/listFilter.js +1 -1
  32. package/dist/components/data-display/infiniteScroll/filters/listFilter.js.map +1 -1
  33. package/dist/components/data-display/infiniteScroll/filters/rangeFilter.d.ts +6 -0
  34. package/dist/components/data-display/infiniteScroll/filters/rangeFilter.d.ts.map +1 -1
  35. package/dist/components/data-display/infiniteScroll/filters/rangeFilter.js +55 -46
  36. package/dist/components/data-display/infiniteScroll/filters/rangeFilter.js.map +1 -1
  37. package/dist/components/data-display/infiniteScroll/filters/searchFilter.d.ts.map +1 -1
  38. package/dist/components/data-display/infiniteScroll/filters/searchFilter.js +4 -35
  39. package/dist/components/data-display/infiniteScroll/filters/searchFilter.js.map +1 -1
  40. package/dist/components/data-display/infiniteScroll/filters/selectFilter.d.ts.map +1 -1
  41. package/dist/components/data-display/infiniteScroll/filters/selectFilter.js +3 -5
  42. package/dist/components/data-display/infiniteScroll/filters/selectFilter.js.map +1 -1
  43. package/dist/components/data-display/infiniteScroll/filters/styles.css +34 -1
  44. package/dist/components/data-display/infiniteScroll/header/deleteButton.d.ts.map +1 -1
  45. package/dist/components/data-display/infiniteScroll/header/deleteButton.js +1 -1
  46. package/dist/components/data-display/infiniteScroll/header/deleteButton.js.map +1 -1
  47. package/dist/components/data-display/infiniteScroll/header/index.d.ts.map +1 -1
  48. package/dist/components/data-display/infiniteScroll/header/index.js +1 -1
  49. package/dist/components/data-display/infiniteScroll/header/index.js.map +1 -1
  50. package/dist/components/data-display/infiniteScroll/header/limit.d.ts.map +1 -1
  51. package/dist/components/data-display/infiniteScroll/header/limit.js +1 -1
  52. package/dist/components/data-display/infiniteScroll/header/limit.js.map +1 -1
  53. package/dist/components/data-display/infiniteScroll/header/sortBy.d.ts.map +1 -1
  54. package/dist/components/data-display/infiniteScroll/header/sortBy.js +1 -1
  55. package/dist/components/data-display/infiniteScroll/header/sortBy.js.map +1 -1
  56. package/dist/components/data-display/infiniteScroll/header/sortDirection.d.ts.map +1 -1
  57. package/dist/components/data-display/infiniteScroll/header/sortDirection.js +1 -1
  58. package/dist/components/data-display/infiniteScroll/header/sortDirection.js.map +1 -1
  59. package/dist/components/data-display/infiniteScroll/index.d.ts +8 -0
  60. package/dist/components/data-display/infiniteScroll/index.d.ts.map +1 -1
  61. package/dist/components/data-display/infiniteScroll/index.js +41 -23
  62. package/dist/components/data-display/infiniteScroll/index.js.map +1 -1
  63. package/dist/components/data-display/infiniteScroll/styles.css +2 -2
  64. package/dist/components/data-display/infiniteScroll/table/index.d.ts.map +1 -1
  65. package/dist/components/data-display/infiniteScroll/table/index.js +2 -2
  66. package/dist/components/data-display/infiniteScroll/table/index.js.map +1 -1
  67. package/dist/components/data-display/infiniteScroll/tags/index.d.ts.map +1 -1
  68. package/dist/components/data-display/infiniteScroll/tags/index.js +7 -11
  69. package/dist/components/data-display/infiniteScroll/tags/index.js.map +1 -1
  70. package/dist/components/data-display/infiniteScroll/tags/listFilterTag.d.ts.map +1 -1
  71. package/dist/components/data-display/infiniteScroll/tags/listFilterTag.js +8 -8
  72. package/dist/components/data-display/infiniteScroll/tags/listFilterTag.js.map +1 -1
  73. package/dist/components/data-display/infiniteScroll/tags/rangeFilterTag.d.ts.map +1 -1
  74. package/dist/components/data-display/infiniteScroll/tags/rangeFilterTag.js +6 -18
  75. package/dist/components/data-display/infiniteScroll/tags/rangeFilterTag.js.map +1 -1
  76. package/dist/components/data-display/infiniteScroll/tags/selectFilterTag.d.ts.map +1 -1
  77. package/dist/components/data-display/infiniteScroll/tags/selectFilterTag.js +3 -5
  78. package/dist/components/data-display/infiniteScroll/tags/selectFilterTag.js.map +1 -1
  79. package/dist/components/data-display/infiniteScroll/tags/styles.css +1 -29
  80. package/dist/components/data-display/infiniteScroll/utils/generateQueryString.d.ts +6 -0
  81. package/dist/components/data-display/infiniteScroll/utils/generateQueryString.d.ts.map +1 -1
  82. package/dist/components/data-display/infiniteScroll/utils/generateQueryString.js +24 -12
  83. package/dist/components/data-display/infiniteScroll/utils/generateQueryString.js.map +1 -1
  84. package/dist/components/data-display/infiniteScroll/utils/hasPendingChanges.d.ts +11 -1
  85. package/dist/components/data-display/infiniteScroll/utils/hasPendingChanges.d.ts.map +1 -1
  86. package/dist/components/data-display/infiniteScroll/utils/hasPendingChanges.js +37 -18
  87. package/dist/components/data-display/infiniteScroll/utils/hasPendingChanges.js.map +1 -1
  88. package/dist/components/data-display/listCard/styles.css +3 -3
  89. package/dist/components/data-display/listRow/styles.css +2 -2
  90. package/dist/components/data-display/recoveryCodeGrid/styles.css +3 -4
  91. package/dist/components/data-display/secretDisplay/styles.css +4 -4
  92. package/dist/components/data-display/statCard/styles.css +12 -12
  93. package/dist/components/data-display/summaryRow/styles.css +4 -4
  94. package/dist/components/data-display/table/index.d.ts.map +1 -1
  95. package/dist/components/data-display/table/index.js +2 -2
  96. package/dist/components/data-display/table/index.js.map +1 -1
  97. package/dist/components/data-display/table/styles.css +22 -11
  98. package/dist/components/data-display/tableFilters/index.d.ts +30 -0
  99. package/dist/components/data-display/tableFilters/index.d.ts.map +1 -0
  100. package/dist/components/data-display/tableFilters/index.js +67 -0
  101. package/dist/components/data-display/tableFilters/index.js.map +1 -0
  102. package/dist/components/data-display/tagCard/index.d.ts.map +1 -1
  103. package/dist/components/data-display/tagCard/index.js +1 -1
  104. package/dist/components/data-display/tagCard/index.js.map +1 -1
  105. package/dist/components/data-display/tagCard/styles.css +1 -1
  106. package/dist/components/feedback/alert/styles.css +15 -15
  107. package/dist/components/feedback/badge/index.d.ts.map +1 -1
  108. package/dist/components/feedback/badge/index.js +14 -8
  109. package/dist/components/feedback/badge/index.js.map +1 -1
  110. package/dist/components/feedback/badge/styles.css +45 -45
  111. package/dist/components/feedback/emptyState/styles.css +2 -4
  112. package/dist/components/feedback/loadingOverlay/styles.css +1 -1
  113. package/dist/components/feedback/progressBar/index.d.ts.map +1 -1
  114. package/dist/components/feedback/progressBar/index.js +7 -2
  115. package/dist/components/feedback/progressBar/index.js.map +1 -1
  116. package/dist/components/feedback/progressBar/styles.css +25 -16
  117. package/dist/components/feedback/spinner/styles.css +14 -24
  118. package/dist/components/feedback/tooltip/styles.css +9 -7
  119. package/dist/components/forms/detailField/styles.css +1 -1
  120. package/dist/components/forms/fieldShell/index.d.ts +3 -1
  121. package/dist/components/forms/fieldShell/index.d.ts.map +1 -1
  122. package/dist/components/forms/fieldShell/index.js +1 -1
  123. package/dist/components/forms/fieldShell/index.js.map +1 -1
  124. package/dist/components/forms/fieldShell/styles.css +5 -5
  125. package/dist/components/forms/form/styles.css +6 -6
  126. package/dist/components/forms/formActions/styles.css +4 -4
  127. package/dist/components/forms/formGrid/styles.css +32 -0
  128. package/dist/components/forms/infoRow/styles.css +2 -3
  129. package/dist/components/forms/optionsGroup/index.d.ts +3 -1
  130. package/dist/components/forms/optionsGroup/index.d.ts.map +1 -1
  131. package/dist/components/forms/optionsGroup/index.js +5 -1
  132. package/dist/components/forms/optionsGroup/index.js.map +1 -1
  133. package/dist/components/forms/optionsGroup/styles.css +1 -1
  134. package/dist/components/forms/requiredAsterisk/index.d.ts.map +1 -1
  135. package/dist/components/forms/requiredAsterisk/index.js +3 -2
  136. package/dist/components/forms/requiredAsterisk/index.js.map +1 -1
  137. package/dist/components/forms/requiredAsterisk/styles.css +1 -1
  138. package/dist/components/index.d.ts +4 -0
  139. package/dist/components/index.d.ts.map +1 -1
  140. package/dist/components/index.js +2 -0
  141. package/dist/components/index.js.map +1 -1
  142. package/dist/components/inputs/checkbox/index.d.ts +6 -1
  143. package/dist/components/inputs/checkbox/index.d.ts.map +1 -1
  144. package/dist/components/inputs/checkbox/index.js +12 -3
  145. package/dist/components/inputs/checkbox/index.js.map +1 -1
  146. package/dist/components/inputs/checkbox/styles.css +11 -3
  147. package/dist/components/inputs/colorPicker/index.d.ts.map +1 -1
  148. package/dist/components/inputs/colorPicker/index.js +3 -1
  149. package/dist/components/inputs/colorPicker/index.js.map +1 -1
  150. package/dist/components/inputs/colorPicker/styles.css +3 -3
  151. package/dist/components/inputs/dateInput/index.d.ts +6 -6
  152. package/dist/components/inputs/dateInput/index.d.ts.map +1 -1
  153. package/dist/components/inputs/dateInput/index.js +15 -5
  154. package/dist/components/inputs/dateInput/index.js.map +1 -1
  155. package/dist/components/inputs/dateInput/styles.css +5 -5
  156. package/dist/components/inputs/dateInput/utils.d.ts +0 -1
  157. package/dist/components/inputs/dateInput/utils.d.ts.map +1 -1
  158. package/dist/components/inputs/dateInput/utils.js +13 -8
  159. package/dist/components/inputs/dateInput/utils.js.map +1 -1
  160. package/dist/components/inputs/dropdown/index.d.ts +2 -0
  161. package/dist/components/inputs/dropdown/index.d.ts.map +1 -1
  162. package/dist/components/inputs/dropdown/index.js +2 -2
  163. package/dist/components/inputs/dropdown/index.js.map +1 -1
  164. package/dist/components/inputs/dropdown/styles.css +2 -2
  165. package/dist/components/inputs/dropdownArrowButton/index.d.ts.map +1 -1
  166. package/dist/components/inputs/dropdownArrowButton/index.js +1 -1
  167. package/dist/components/inputs/dropdownArrowButton/index.js.map +1 -1
  168. package/dist/components/inputs/dropdownArrowButton/styles.css +7 -5
  169. package/dist/components/inputs/fileDropZone/index.d.ts.map +1 -1
  170. package/dist/components/inputs/fileDropZone/index.js +3 -2
  171. package/dist/components/inputs/fileDropZone/index.js.map +1 -1
  172. package/dist/components/inputs/fileDropZone/styles.css +12 -12
  173. package/dist/components/inputs/fileUpload/index.d.ts.map +1 -1
  174. package/dist/components/inputs/fileUpload/index.js +11 -6
  175. package/dist/components/inputs/fileUpload/index.js.map +1 -1
  176. package/dist/components/inputs/fileUpload/styles.css +9 -9
  177. package/dist/components/inputs/input/index.d.ts +17 -1
  178. package/dist/components/inputs/input/index.d.ts.map +1 -1
  179. package/dist/components/inputs/input/index.js +27 -5
  180. package/dist/components/inputs/input/index.js.map +1 -1
  181. package/dist/components/inputs/input/styles.css +68 -24
  182. package/dist/components/inputs/languageSelect/index.d.ts.map +1 -1
  183. package/dist/components/inputs/languageSelect/index.js +15 -4
  184. package/dist/components/inputs/languageSelect/index.js.map +1 -1
  185. package/dist/components/inputs/multiSelect/dropDown.d.ts +7 -0
  186. package/dist/components/inputs/multiSelect/dropDown.d.ts.map +1 -1
  187. package/dist/components/inputs/multiSelect/dropDown.js +19 -12
  188. package/dist/components/inputs/multiSelect/dropDown.js.map +1 -1
  189. package/dist/components/inputs/multiSelect/index.d.ts.map +1 -1
  190. package/dist/components/inputs/multiSelect/index.js +49 -13
  191. package/dist/components/inputs/multiSelect/index.js.map +1 -1
  192. package/dist/components/inputs/multiSelect/styles.css +51 -43
  193. package/dist/components/inputs/multiSelect/utils.d.ts +7 -0
  194. package/dist/components/inputs/multiSelect/utils.d.ts.map +1 -0
  195. package/dist/components/inputs/multiSelect/utils.js +18 -0
  196. package/dist/components/inputs/multiSelect/utils.js.map +1 -0
  197. package/dist/components/inputs/phoneInput/index.d.ts.map +1 -1
  198. package/dist/components/inputs/phoneInput/index.js +11 -3
  199. package/dist/components/inputs/phoneInput/index.js.map +1 -1
  200. package/dist/components/inputs/phoneInput/styles.css +13 -13
  201. package/dist/components/inputs/radioGroup/index.d.ts.map +1 -1
  202. package/dist/components/inputs/radioGroup/index.js +1 -1
  203. package/dist/components/inputs/radioGroup/index.js.map +1 -1
  204. package/dist/components/inputs/richTextEditor/index.d.ts.map +1 -1
  205. package/dist/components/inputs/richTextEditor/index.js +30 -20
  206. package/dist/components/inputs/richTextEditor/index.js.map +1 -1
  207. package/dist/components/inputs/richTextEditor/styles.css +24 -24
  208. package/dist/components/inputs/searchList/index.d.ts +4 -1
  209. package/dist/components/inputs/searchList/index.d.ts.map +1 -1
  210. package/dist/components/inputs/searchList/index.js +46 -31
  211. package/dist/components/inputs/searchList/index.js.map +1 -1
  212. package/dist/components/inputs/searchList/styles.css +22 -22
  213. package/dist/components/inputs/searchSelect/index.d.ts.map +1 -1
  214. package/dist/components/inputs/searchSelect/index.js +8 -2
  215. package/dist/components/inputs/searchSelect/index.js.map +1 -1
  216. package/dist/components/inputs/select/index.js +3 -2
  217. package/dist/components/inputs/select/index.js.map +1 -1
  218. package/dist/components/inputs/select/styles.css +93 -15
  219. package/dist/components/inputs/switch/index.d.ts.map +1 -1
  220. package/dist/components/inputs/switch/index.js +3 -1
  221. package/dist/components/inputs/switch/index.js.map +1 -1
  222. package/dist/components/inputs/switch/styles.css +5 -5
  223. package/dist/components/inputs/textArea/index.d.ts.map +1 -1
  224. package/dist/components/inputs/textArea/index.js +3 -2
  225. package/dist/components/inputs/textArea/index.js.map +1 -1
  226. package/dist/components/inputs/textArea/styles.css +11 -11
  227. package/dist/components/inputs/typeahead/index.d.ts.map +1 -1
  228. package/dist/components/inputs/typeahead/index.js +21 -6
  229. package/dist/components/inputs/typeahead/index.js.map +1 -1
  230. package/dist/components/inputs/typeahead/styles.css +13 -13
  231. package/dist/components/layout/authPage/styles.css +6 -6
  232. package/dist/components/layout/borderedSection/index.d.ts +3 -1
  233. package/dist/components/layout/borderedSection/index.d.ts.map +1 -1
  234. package/dist/components/layout/borderedSection/index.js +2 -2
  235. package/dist/components/layout/borderedSection/index.js.map +1 -1
  236. package/dist/components/layout/borderedSection/styles.css +3 -3
  237. package/dist/components/layout/card/styles.css +53 -31
  238. package/dist/components/layout/col/styles.css +1 -1
  239. package/dist/components/layout/page/styles.css +25 -5
  240. package/dist/components/layout/sectionHeader/styles.css +3 -4
  241. package/dist/components/navigation/breadcrumbs/styles.css +7 -7
  242. package/dist/components/navigation/pagination/index.d.ts +23 -0
  243. package/dist/components/navigation/pagination/index.d.ts.map +1 -0
  244. package/dist/components/navigation/pagination/index.js +29 -0
  245. package/dist/components/navigation/pagination/index.js.map +1 -0
  246. package/dist/components/navigation/pagination/styles.css +113 -0
  247. package/dist/components/navigation/pagination/utils.d.ts +9 -0
  248. package/dist/components/navigation/pagination/utils.d.ts.map +1 -0
  249. package/dist/components/navigation/pagination/utils.js +25 -0
  250. package/dist/components/navigation/pagination/utils.js.map +1 -0
  251. package/dist/components/navigation/sidebar/styles.css +13 -5
  252. package/dist/components/navigation/stepper/styles.css +14 -14
  253. package/dist/components/navigation/tabButton/styles.css +59 -59
  254. package/dist/components/navigation/tabs/styles.css +5 -5
  255. package/dist/components/overlays/confirmationModal/index.d.ts +5 -0
  256. package/dist/components/overlays/confirmationModal/index.d.ts.map +1 -1
  257. package/dist/components/overlays/confirmationModal/index.js +23 -4
  258. package/dist/components/overlays/confirmationModal/index.js.map +1 -1
  259. package/dist/components/overlays/confirmationModal/styles.css +3 -0
  260. package/dist/components/overlays/modal/index.d.ts +2 -0
  261. package/dist/components/overlays/modal/index.d.ts.map +1 -1
  262. package/dist/components/overlays/modal/index.js +13 -4
  263. package/dist/components/overlays/modal/index.js.map +1 -1
  264. package/dist/components/overlays/modal/styles.css +19 -19
  265. package/dist/hooks/index.d.ts +1 -0
  266. package/dist/hooks/index.d.ts.map +1 -1
  267. package/dist/hooks/index.js +1 -0
  268. package/dist/hooks/index.js.map +1 -1
  269. package/dist/hooks/useInfinite.d.ts +3 -1
  270. package/dist/hooks/useInfinite.d.ts.map +1 -1
  271. package/dist/hooks/useInfinite.js +4 -2
  272. package/dist/hooks/useInfinite.js.map +1 -1
  273. package/dist/hooks/useInfiniteArchivableCursor.d.ts +1 -1
  274. package/dist/hooks/useInfiniteArchivableCursor.d.ts.map +1 -1
  275. package/dist/hooks/useInfiniteArchivableCursor.js +11 -4
  276. package/dist/hooks/useInfiniteArchivableCursor.js.map +1 -1
  277. package/dist/hooks/useInfiniteCursor.d.ts +1 -1
  278. package/dist/hooks/useInfiniteCursor.d.ts.map +1 -1
  279. package/dist/hooks/useInfiniteCursor.js +11 -4
  280. package/dist/hooks/useInfiniteCursor.js.map +1 -1
  281. package/dist/hooks/usePaginated.d.ts +43 -0
  282. package/dist/hooks/usePaginated.d.ts.map +1 -0
  283. package/dist/hooks/usePaginated.js +60 -0
  284. package/dist/hooks/usePaginated.js.map +1 -0
  285. package/dist/styles.css +161 -123
  286. package/package.json +15 -4
  287. package/src/components/buttons/button/index.tsx +14 -5
  288. package/src/components/buttons/button/styles.css +45 -43
  289. package/src/components/buttons/rowActions/index.tsx +6 -1
  290. package/src/components/buttons/rowActions/styles.css +7 -0
  291. package/src/components/data-display/addressBlock/styles.css +2 -4
  292. package/src/components/data-display/colorSwatch/index.tsx +2 -2
  293. package/src/components/data-display/colorSwatch/styles.css +1 -1
  294. package/src/components/data-display/dataTable/index.tsx +6 -3
  295. package/src/components/data-display/dataTable/styles.css +18 -2
  296. package/src/components/data-display/dataTable/utils/parseDataKey.ts +18 -36
  297. package/src/components/data-display/imagePreview/styles.css +2 -2
  298. package/src/components/data-display/infiniteScroll/filters/index.tsx +18 -1
  299. package/src/components/data-display/infiniteScroll/filters/listFilter.tsx +1 -0
  300. package/src/components/data-display/infiniteScroll/filters/rangeFilter.tsx +77 -33
  301. package/src/components/data-display/infiniteScroll/filters/searchFilter.tsx +16 -65
  302. package/src/components/data-display/infiniteScroll/filters/selectFilter.tsx +11 -17
  303. package/src/components/data-display/infiniteScroll/filters/styles.css +34 -1
  304. package/src/components/data-display/infiniteScroll/header/deleteButton.tsx +1 -0
  305. package/src/components/data-display/infiniteScroll/header/index.tsx +4 -0
  306. package/src/components/data-display/infiniteScroll/header/limit.tsx +1 -0
  307. package/src/components/data-display/infiniteScroll/header/sortBy.tsx +1 -0
  308. package/src/components/data-display/infiniteScroll/header/sortDirection.tsx +1 -0
  309. package/src/components/data-display/infiniteScroll/index.tsx +75 -29
  310. package/src/components/data-display/infiniteScroll/styles.css +2 -2
  311. package/src/components/data-display/infiniteScroll/table/index.tsx +2 -0
  312. package/src/components/data-display/infiniteScroll/tags/index.tsx +7 -16
  313. package/src/components/data-display/infiniteScroll/tags/listFilterTag.tsx +31 -28
  314. package/src/components/data-display/infiniteScroll/tags/rangeFilterTag.tsx +8 -25
  315. package/src/components/data-display/infiniteScroll/tags/selectFilterTag.tsx +4 -11
  316. package/src/components/data-display/infiniteScroll/tags/styles.css +1 -29
  317. package/src/components/data-display/infiniteScroll/utils/generateQueryString.ts +28 -13
  318. package/src/components/data-display/infiniteScroll/utils/hasPendingChanges.ts +48 -16
  319. package/src/components/data-display/listCard/styles.css +3 -3
  320. package/src/components/data-display/listRow/styles.css +2 -2
  321. package/src/components/data-display/recoveryCodeGrid/styles.css +3 -4
  322. package/src/components/data-display/secretDisplay/styles.css +4 -4
  323. package/src/components/data-display/statCard/styles.css +12 -12
  324. package/src/components/data-display/summaryRow/styles.css +4 -4
  325. package/src/components/data-display/table/index.tsx +2 -2
  326. package/src/components/data-display/table/styles.css +22 -11
  327. package/src/components/data-display/tableFilters/index.tsx +147 -0
  328. package/src/components/data-display/tagCard/index.tsx +7 -4
  329. package/src/components/data-display/tagCard/styles.css +1 -1
  330. package/src/components/feedback/alert/styles.css +15 -15
  331. package/src/components/feedback/badge/index.tsx +36 -16
  332. package/src/components/feedback/badge/styles.css +45 -45
  333. package/src/components/feedback/emptyState/styles.css +2 -4
  334. package/src/components/feedback/loadingOverlay/styles.css +1 -1
  335. package/src/components/feedback/progressBar/index.tsx +14 -8
  336. package/src/components/feedback/progressBar/styles.css +25 -16
  337. package/src/components/feedback/spinner/styles.css +14 -24
  338. package/src/components/feedback/tooltip/styles.css +9 -7
  339. package/src/components/forms/detailField/styles.css +1 -1
  340. package/src/components/forms/fieldShell/index.tsx +4 -1
  341. package/src/components/forms/fieldShell/styles.css +5 -5
  342. package/src/components/forms/form/styles.css +6 -6
  343. package/src/components/forms/formActions/styles.css +4 -4
  344. package/src/components/forms/formGrid/styles.css +32 -0
  345. package/src/components/forms/infoRow/styles.css +2 -3
  346. package/src/components/forms/optionsGroup/index.tsx +31 -12
  347. package/src/components/forms/optionsGroup/styles.css +1 -1
  348. package/src/components/forms/requiredAsterisk/index.tsx +5 -1
  349. package/src/components/forms/requiredAsterisk/styles.css +1 -1
  350. package/src/components/index.ts +4 -0
  351. package/src/components/inputs/checkbox/index.tsx +27 -6
  352. package/src/components/inputs/checkbox/styles.css +11 -3
  353. package/src/components/inputs/colorPicker/index.tsx +5 -2
  354. package/src/components/inputs/colorPicker/styles.css +3 -3
  355. package/src/components/inputs/dateInput/index.tsx +17 -9
  356. package/src/components/inputs/dateInput/styles.css +5 -5
  357. package/src/components/inputs/dateInput/utils.ts +12 -8
  358. package/src/components/inputs/dropdown/index.tsx +5 -1
  359. package/src/components/inputs/dropdown/styles.css +2 -2
  360. package/src/components/inputs/dropdownArrowButton/index.tsx +1 -0
  361. package/src/components/inputs/dropdownArrowButton/styles.css +7 -5
  362. package/src/components/inputs/fileDropZone/index.tsx +4 -3
  363. package/src/components/inputs/fileDropZone/styles.css +12 -12
  364. package/src/components/inputs/fileUpload/index.tsx +33 -23
  365. package/src/components/inputs/fileUpload/styles.css +9 -9
  366. package/src/components/inputs/input/index.tsx +67 -6
  367. package/src/components/inputs/input/styles.css +68 -24
  368. package/src/components/inputs/languageSelect/index.tsx +19 -4
  369. package/src/components/inputs/multiSelect/dropDown.tsx +83 -35
  370. package/src/components/inputs/multiSelect/index.tsx +87 -29
  371. package/src/components/inputs/multiSelect/styles.css +51 -43
  372. package/src/components/inputs/multiSelect/utils.ts +18 -0
  373. package/src/components/inputs/phoneInput/index.tsx +16 -4
  374. package/src/components/inputs/phoneInput/styles.css +13 -13
  375. package/src/components/inputs/radioGroup/index.tsx +2 -1
  376. package/src/components/inputs/richTextEditor/index.tsx +59 -37
  377. package/src/components/inputs/richTextEditor/styles.css +24 -24
  378. package/src/components/inputs/searchList/index.tsx +121 -109
  379. package/src/components/inputs/searchList/styles.css +22 -22
  380. package/src/components/inputs/searchSelect/index.tsx +8 -2
  381. package/src/components/inputs/select/index.tsx +3 -3
  382. package/src/components/inputs/select/styles.css +93 -15
  383. package/src/components/inputs/switch/index.tsx +3 -2
  384. package/src/components/inputs/switch/styles.css +5 -5
  385. package/src/components/inputs/textArea/index.tsx +3 -3
  386. package/src/components/inputs/textArea/styles.css +11 -11
  387. package/src/components/inputs/typeahead/index.tsx +84 -54
  388. package/src/components/inputs/typeahead/styles.css +13 -13
  389. package/src/components/layout/authPage/styles.css +6 -6
  390. package/src/components/layout/borderedSection/index.tsx +4 -1
  391. package/src/components/layout/borderedSection/styles.css +3 -3
  392. package/src/components/layout/card/styles.css +53 -31
  393. package/src/components/layout/col/styles.css +1 -1
  394. package/src/components/layout/page/styles.css +25 -5
  395. package/src/components/layout/sectionHeader/styles.css +3 -4
  396. package/src/components/navigation/breadcrumbs/styles.css +7 -7
  397. package/src/components/navigation/pagination/index.tsx +134 -0
  398. package/src/components/navigation/pagination/styles.css +113 -0
  399. package/src/components/navigation/pagination/utils.ts +32 -0
  400. package/src/components/navigation/sidebar/styles.css +13 -5
  401. package/src/components/navigation/stepper/styles.css +14 -14
  402. package/src/components/navigation/tabButton/styles.css +59 -59
  403. package/src/components/navigation/tabs/styles.css +5 -5
  404. package/src/components/overlays/confirmationModal/index.tsx +37 -1
  405. package/src/components/overlays/confirmationModal/styles.css +3 -0
  406. package/src/components/overlays/modal/index.tsx +23 -4
  407. package/src/components/overlays/modal/styles.css +19 -19
  408. package/src/hooks/index.ts +4 -0
  409. package/src/hooks/useInfinite.ts +7 -3
  410. package/src/hooks/useInfiniteArchivableCursor.ts +11 -4
  411. package/src/hooks/useInfiniteCursor.ts +11 -4
  412. package/src/hooks/usePaginated.ts +123 -0
  413. package/src/styles.css +161 -123
  414. package/dist/components/data-display/infiniteScroll/tags/searchFilterTag.d.ts +0 -10
  415. package/dist/components/data-display/infiniteScroll/tags/searchFilterTag.d.ts.map +0 -1
  416. package/dist/components/data-display/infiniteScroll/tags/searchFilterTag.js +0 -22
  417. package/dist/components/data-display/infiniteScroll/tags/searchFilterTag.js.map +0 -1
  418. package/src/components/data-display/infiniteScroll/tags/searchFilterTag.tsx +0 -41
@@ -15,7 +15,7 @@
15
15
  .k-switch-label {
16
16
  font-size: 0.875rem;
17
17
  font-weight: 500;
18
- color: var(--text-color);
18
+ color: var(--k-text-color);
19
19
  cursor: pointer;
20
20
  user-select: none;
21
21
  }
@@ -23,13 +23,13 @@
23
23
  .k-switch-track {
24
24
  position: relative;
25
25
  border-radius: 999px;
26
- background-color: var(--border-color);
26
+ background-color: var(--k-border-color);
27
27
  cursor: pointer;
28
28
  transition: background-color 0.2s ease-in-out;
29
29
  }
30
30
 
31
31
  .k-switch-track.k-switch-on {
32
- background-color: var(--success-color);
32
+ background-color: var(--k-success-color);
33
33
  }
34
34
 
35
35
  /* Size: md (default) */
@@ -70,7 +70,7 @@
70
70
  .k-switch-thumb {
71
71
  position: absolute;
72
72
  border-radius: 50%;
73
- background-color: var(--background-color-light);
73
+ background-color: var(--k-background-color-light);
74
74
  transition: transform 0.2s ease-in-out;
75
75
  pointer-events: none;
76
76
  }
@@ -101,7 +101,7 @@
101
101
 
102
102
  .k-switch-disabled + .k-switch-label,
103
103
  .k-switch-label:has(~ .k-switch-track.k-switch-disabled) {
104
- color: var(--text-color-disabled);
104
+ color: var(--k-text-color-disabled);
105
105
  cursor: not-allowed;
106
106
  }
107
107
 
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
 
3
3
  import FieldShell from "../../forms/fieldShell/index.js";
4
+ import { useEffect, useId, useRef } from "react";
4
5
  import { PropsWithSize } from "../../types.js";
5
- import { useEffect, useRef } from "react";
6
6
  import "./styles.css";
7
7
 
8
8
  interface TextAreaProps extends PropsWithSize {
@@ -57,8 +57,8 @@ const TextArea = (props: TextAreaProps) => {
57
57
  const textareaRef = useRef<HTMLTextAreaElement>(null);
58
58
  const internalRef = props.ref || textareaRef;
59
59
 
60
- const inputId =
61
- props.id || `input-${Math.random().toString(36).substring(2, 9)}`;
60
+ const generatedId = useId();
61
+ const inputId = props.id || `input-${generatedId}`;
62
62
 
63
63
  const adjustHeight = () => {
64
64
  if (!autoExpand) return;
@@ -1,8 +1,8 @@
1
1
  .k-textarea {
2
- background-color: var(--background-color-light);
3
- border: 0.0625rem solid var(--border-color);
2
+ background-color: var(--k-background-color-light);
3
+ border: 0.0625rem solid var(--k-border-color);
4
4
  border-radius: 0.375rem;
5
- color: var(--text-color);
5
+ color: var(--k-text-color);
6
6
  width: 100%;
7
7
  box-sizing: border-box;
8
8
  transition:
@@ -14,34 +14,34 @@
14
14
  }
15
15
 
16
16
  .k-textarea-sm {
17
- font-size: var(--text-size-sm);
17
+ font-size: var(--k-text-size-sm);
18
18
  padding: 0.5rem 0.75rem;
19
19
  }
20
20
 
21
21
  .k-textarea-md {
22
- font-size: var(--text-size-md);
22
+ font-size: var(--k-text-size-md);
23
23
  padding: 0.625rem 1rem;
24
24
  }
25
25
 
26
26
  .k-textarea-lg {
27
- font-size: var(--text-size-lg);
27
+ font-size: var(--k-text-size-lg);
28
28
  padding: 0.75rem 1.25rem;
29
29
  }
30
30
 
31
31
  .k-textarea::placeholder {
32
- color: var(--text-color-secondary);
32
+ color: var(--k-text-color-secondary);
33
33
  opacity: 0.7;
34
34
  }
35
35
 
36
36
  .k-textarea:focus {
37
37
  outline: none;
38
- border-color: var(--border-color-active);
39
- box-shadow: 0 0 0 0.1875rem var(--border-shadow-color-active);
38
+ border-color: var(--k-border-color-active);
39
+ box-shadow: 0 0 0 0.1875rem var(--k-border-shadow-color-active);
40
40
  }
41
41
 
42
42
  .k-textarea:disabled {
43
- background-color: var(--bg-color-disabled);
44
- color: var(--text-color-disabled);
43
+ background-color: var(--k-background-color-disabled);
44
+ color: var(--k-text-color-disabled);
45
45
  cursor: not-allowed;
46
46
  opacity: 0.6;
47
47
  resize: none;
@@ -1,10 +1,10 @@
1
1
  "use client";
2
2
 
3
3
  import useFloatingPosition from "../../../hooks/useFloatingPosition.js";
4
+ import { useEffect, useId, useRef, useState, ReactNode } from "react";
4
5
  import useScrollIntoView from "../../../hooks/useScrollIntoView.js";
5
6
  import useListKeyboard from "../../../hooks/useListKeyboard.js";
6
7
  import useOutsideClick from "../../../hooks/useOutsideClick.js";
7
- import { useEffect, useRef, useState, ReactNode } from "react";
8
8
  import Portal from "../../overlays/portal/index.js";
9
9
  import { PropsWithSize } from "../../types.js";
10
10
  import Input from "../input/index.js";
@@ -111,6 +111,8 @@ const Typeahead = <T,>(props: TypeaheadProps<T>) => {
111
111
  const isSelectingOption = useRef(false);
112
112
  const observerRef = useRef<IntersectionObserver | null>(null);
113
113
  const listRef = useRef<HTMLUListElement>(null);
114
+ const listboxId = `${useId()}-listbox`;
115
+ const optionId = (index: number) => `${listboxId}-option-${index}`;
114
116
  const { anchorRef: inputWrapperRef, position: dropdownPos } =
115
117
  useFloatingPosition({ isOpen });
116
118
 
@@ -198,6 +200,9 @@ const Typeahead = <T,>(props: TypeaheadProps<T>) => {
198
200
  displayCount,
199
201
  filteredOptions.length,
200
202
  displayedOptions,
203
+ // The list mounts a render after opening, once it has a position; without
204
+ // this, nothing else may change then and the observer never attaches.
205
+ !!dropdownPos,
201
206
  ]);
202
207
 
203
208
  const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {
@@ -284,62 +289,78 @@ const Typeahead = <T,>(props: TypeaheadProps<T>) => {
284
289
  // Reset the refs array before each render
285
290
  optionRefs.current = [];
286
291
 
287
- const dropdownList =
288
- isOpen && dropdownPos ? (
289
- <ul
290
- ref={listRef}
291
- className={`k-typeahead-options-list k-typeahead-options-list-portal ${
292
- longDropDown
293
- ? "k-typeahead-options-list-large"
294
- : "k-typeahead-options-list-small"
295
- }`}
296
- style={{
297
- position: "fixed",
298
- top: dropdownPos.top,
299
- left: dropdownPos.left,
300
- width: dropdownPos.width,
301
- }}
302
- >
303
- {displayedOptions.length > 0 ? (
304
- <>
305
- {displayedOptions.map((option, index) => (
292
+ const hasOptions = displayedOptions.length > 0;
293
+ const showList = isOpen && !!dropdownPos;
294
+ const dropdownList = showList ? (
295
+ <ul
296
+ ref={listRef}
297
+ // With no options the popup only holds a status message.
298
+ {...(hasOptions
299
+ ? {
300
+ id: listboxId,
301
+ role: "listbox",
302
+ "aria-label": props.label ?? props.placeholder,
303
+ }
304
+ : { role: "presentation" })}
305
+ className={`k-typeahead-options-list k-typeahead-options-list-portal ${
306
+ longDropDown
307
+ ? "k-typeahead-options-list-large"
308
+ : "k-typeahead-options-list-small"
309
+ }`}
310
+ style={{
311
+ position: "fixed",
312
+ top: dropdownPos.top,
313
+ left: dropdownPos.left,
314
+ width: dropdownPos.width,
315
+ }}
316
+ >
317
+ {hasOptions ? (
318
+ <>
319
+ {displayedOptions.map((option, index) => (
320
+ <li
321
+ ref={(el) => {
322
+ optionRefs.current[index] = el;
323
+ }}
324
+ key={index}
325
+ id={optionId(index)}
326
+ role="option"
327
+ aria-selected={index === highlightedIndex}
328
+ className={`k-typeahead-option k-typeahead-option-${size} ${
329
+ index === highlightedIndex
330
+ ? "k-typeahead-option-highlighted"
331
+ : ""
332
+ }`}
333
+ onMouseDown={(e) => {
334
+ e.preventDefault();
335
+ handleOptionClick(option, e);
336
+ }}
337
+ onMouseOver={() => setHighlightedIndex(index)}
338
+ >
339
+ {getOptionContent(option)}
340
+ </li>
341
+ ))}
342
+ {props.lazyLoad &&
343
+ displayedOptions.length < filteredOptions.length && (
306
344
  <li
307
- ref={(el) => {
308
- optionRefs.current[index] = el;
309
- }}
310
- key={index}
311
- className={`k-typeahead-option k-typeahead-option-${size} ${
312
- index === highlightedIndex
313
- ? "k-typeahead-option-highlighted"
314
- : ""
315
- }`}
316
- onMouseDown={(e) => {
317
- e.preventDefault();
318
- handleOptionClick(option, e);
319
- }}
320
- onMouseOver={() => setHighlightedIndex(index)}
345
+ className="k-typeahead-sentinel k-typeahead-loading"
346
+ aria-hidden="true"
321
347
  >
322
- {getOptionContent(option)}
348
+ Loading more...
323
349
  </li>
324
- ))}
325
- {props.lazyLoad &&
326
- displayedOptions.length < filteredOptions.length && (
327
- <li className="k-typeahead-sentinel k-typeahead-loading">
328
- Loading more...
329
- </li>
330
- )}
331
- </>
332
- ) : (
333
- <li
334
- className={`k-typeahead-no-results-item k-typeahead-option-${size}`}
335
- >
336
- {props.options.length === 0
337
- ? "No options available"
338
- : "No matches found"}
339
- </li>
340
- )}
341
- </ul>
342
- ) : null;
350
+ )}
351
+ </>
352
+ ) : (
353
+ <li
354
+ role="status"
355
+ className={`k-typeahead-no-results-item k-typeahead-option-${size}`}
356
+ >
357
+ {props.options.length === 0
358
+ ? "No options available"
359
+ : "No matches found"}
360
+ </li>
361
+ )}
362
+ </ul>
363
+ ) : null;
343
364
 
344
365
  return (
345
366
  <div className={`k-typeahead-dropdown-container`} ref={dropdownRef}>
@@ -358,6 +379,15 @@ const Typeahead = <T,>(props: TypeaheadProps<T>) => {
358
379
  isOpen={isOpen}
359
380
  disabled={disabled}
360
381
  dropDown={true}
382
+ role="combobox"
383
+ aria-autocomplete="list"
384
+ aria-expanded={showList}
385
+ aria-controls={showList && hasOptions ? listboxId : undefined}
386
+ aria-activedescendant={
387
+ showList && highlightedIndex > -1
388
+ ? optionId(highlightedIndex)
389
+ : undefined
390
+ }
361
391
  />
362
392
  </div>
363
393
  <Portal>{dropdownList}</Portal>
@@ -19,8 +19,8 @@
19
19
 
20
20
  .k-typeahead-options-list-portal {
21
21
  z-index: 10000;
22
- background-color: var(--background-color-light);
23
- border: 0.0625rem solid var(--border-color);
22
+ background-color: var(--k-background-color-light);
23
+ border: 0.0625rem solid var(--k-border-color);
24
24
  border-top: none;
25
25
  border-radius: 0 0 0.25rem 0.25rem;
26
26
  overflow-y: auto;
@@ -28,8 +28,8 @@
28
28
  padding: 0;
29
29
  margin: 0;
30
30
  box-shadow:
31
- 0 0.25rem 0.375rem -0.0625rem var(--shadow-color),
32
- 0 0.125rem 0.25rem -0.125rem var(--shadow-color);
31
+ 0 0.25rem 0.375rem -0.0625rem var(--k-shadow-color),
32
+ 0 0.125rem 0.25rem -0.125rem var(--k-shadow-color);
33
33
  }
34
34
 
35
35
  .k-typeahead-options-list-large {
@@ -43,44 +43,44 @@
43
43
  .k-typeahead-option {
44
44
  cursor: pointer;
45
45
  text-align: left;
46
- color: var(--text-color);
46
+ color: var(--k-text-color);
47
47
  }
48
48
 
49
49
  .k-typeahead-option:hover,
50
50
  .k-typeahead-option:focus {
51
- background-color: var(--background-color-dark);
51
+ background-color: var(--k-background-color-dark);
52
52
  }
53
53
 
54
54
  .k-typeahead-no-results-item {
55
55
  text-align: center;
56
- color: var(--text-color-secondary);
56
+ color: var(--k-text-color-secondary);
57
57
  font-style: italic;
58
58
  }
59
59
 
60
60
  .k-typeahead-option-sm {
61
- font-size: var(--text-size-sm);
61
+ font-size: var(--k-text-size-sm);
62
62
  padding: 0.5rem 0.75rem;
63
63
  }
64
64
 
65
65
  .k-typeahead-option-md {
66
- font-size: var(--text-size-md);
66
+ font-size: var(--k-text-size-md);
67
67
  padding: 0.75rem 1rem;
68
68
  }
69
69
 
70
70
  .k-typeahead-option-lg {
71
- font-size: var(--text-size-lg);
71
+ font-size: var(--k-text-size-lg);
72
72
  padding: 1rem 1.25rem;
73
73
  }
74
74
 
75
75
  .k-typeahead-option-highlighted {
76
- background-color: var(--background-color-dark);
76
+ background-color: var(--k-background-color-dark);
77
77
  cursor: pointer;
78
78
  }
79
79
 
80
80
  .k-typeahead-loading {
81
81
  text-align: center;
82
- color: var(--text-color-secondary);
82
+ color: var(--k-text-color-secondary);
83
83
  font-style: italic;
84
84
  padding: 0.75rem 1rem;
85
- font-size: var(--text-size-sm);
85
+ font-size: var(--k-text-size-sm);
86
86
  }
@@ -6,15 +6,15 @@
6
6
  justify-content: center;
7
7
  gap: 1rem;
8
8
  padding: 2rem 1rem;
9
- background-color: var(--background-color);
9
+ background-color: var(--k-background-color);
10
10
  }
11
11
 
12
12
  .k-auth-page-card {
13
13
  width: 100%;
14
- background: var(--background-color);
15
- border: 0.0625rem solid var(--border-color);
14
+ background: var(--k-background-color);
15
+ border: 0.0625rem solid var(--k-border-color);
16
16
  border-radius: 0.75rem;
17
- box-shadow: 0 0.3125rem 0.9375rem var(--shadow-color);
17
+ box-shadow: 0 0.3125rem 0.9375rem var(--k-shadow-color);
18
18
  padding: 2rem;
19
19
  display: flex;
20
20
  flex-direction: column;
@@ -45,7 +45,7 @@
45
45
  .k-auth-page-subtitle {
46
46
  margin: 0;
47
47
  font-size: 0.875rem;
48
- color: var(--text-color);
48
+ color: var(--k-text-color);
49
49
  opacity: 0.75;
50
50
  }
51
51
 
@@ -57,7 +57,7 @@
57
57
 
58
58
  .k-auth-page-footer {
59
59
  font-size: 0.875rem;
60
- color: var(--text-color);
60
+ color: var(--k-text-color);
61
61
  opacity: 0.75;
62
62
  text-align: center;
63
63
  }
@@ -7,6 +7,8 @@ export interface BorderedSectionProps {
7
7
  children: ReactNode;
8
8
  /** Optional title shown above the body. */
9
9
  title?: ReactNode;
10
+ /** Heading element for the title, to fit the page's heading outline. Defaults to `h3`. Looks the same at every level. */
11
+ as?: "h2" | "h3" | "h4";
10
12
  /** Right-aligned actions in the title row. Implies a title row even when `title` is empty. */
11
13
  actions?: ReactNode;
12
14
  /** Body layout. `"stack"` (default) stacks children; `"row"` lays them out as a horizontal flex strip. */
@@ -20,6 +22,7 @@ export interface BorderedSectionProps {
20
22
  const BorderedSection = ({
21
23
  children,
22
24
  title,
25
+ as: Heading = "h3",
23
26
  actions,
24
27
  layout = "stack",
25
28
  gap,
@@ -40,7 +43,7 @@ const BorderedSection = ({
40
43
  {showHeader && (
41
44
  <div className="k-bordered-section-header">
42
45
  {title !== undefined && (
43
- <h3 className="k-bordered-section-title">{title}</h3>
46
+ <Heading className="k-bordered-section-title">{title}</Heading>
44
47
  )}
45
48
  {actions !== undefined && (
46
49
  <div className="k-bordered-section-actions">{actions}</div>
@@ -1,9 +1,9 @@
1
1
  .k-bordered-section {
2
- border: 1px solid var(--border-color);
2
+ border: 1px solid var(--k-border-color);
3
3
  border-radius: 6px;
4
4
  padding: 1rem;
5
- background: var(--background-color-light);
6
- box-shadow: 0 1px 3px var(--shadow-color);
5
+ background: var(--k-background-color-light);
6
+ box-shadow: 0 1px 3px var(--k-shadow-color);
7
7
  }
8
8
 
9
9
  .k-bordered-section-layout-row {
@@ -1,9 +1,9 @@
1
1
  /* Card Component Styles */
2
2
  .k-card {
3
- background: var(--background-color);
3
+ background: var(--k-background-color);
4
4
  border-radius: 0.9375rem;
5
5
  transition: all 0.3s ease;
6
- border: 0.0625rem solid var(--border-color);
6
+ border: 0.0625rem solid var(--k-border-color);
7
7
  }
8
8
 
9
9
  .k-card-align-left {
@@ -15,12 +15,12 @@
15
15
  }
16
16
 
17
17
  .k-card-hoverable {
18
- box-shadow: 0 0.3125rem 0.9375rem var(--shadow-color);
18
+ box-shadow: 0 0.3125rem 0.9375rem var(--k-shadow-color);
19
19
  }
20
20
 
21
21
  .k-card-hoverable:hover {
22
22
  transform: translateY(-0.3125rem);
23
- box-shadow: 0 0.9375rem 1.875rem var(--shadow-color-hover);
23
+ box-shadow: 0 0.9375rem 1.875rem var(--k-shadow-color-hover);
24
24
  }
25
25
 
26
26
  .k-card-header {
@@ -29,7 +29,7 @@
29
29
  gap: 0.5rem;
30
30
  padding-bottom: 0.75rem;
31
31
  margin-bottom: 1rem;
32
- border-bottom: 0.0625rem solid var(--border-color);
32
+ border-bottom: 0.0625rem solid var(--k-border-color);
33
33
  }
34
34
 
35
35
  .k-card-header-row {
@@ -58,7 +58,7 @@
58
58
 
59
59
  .k-card-progress-label {
60
60
  font-size: 0.8125rem;
61
- color: var(--text-color);
61
+ color: var(--k-text-color);
62
62
  opacity: 0.7;
63
63
  }
64
64
 
@@ -72,12 +72,34 @@
72
72
  gap: 0.5rem;
73
73
  padding-top: 0.75rem;
74
74
  margin-top: 1rem;
75
- border-top: 0.0625rem solid var(--border-color);
75
+ border-top: 0.0625rem solid var(--k-border-color);
76
76
  }
77
77
 
78
78
  /* Padding Variants */
79
+ /* Edge-to-edge content (tables, images): clip it to the rounded corners, and
80
+ give the header and footer their own padding instead. */
79
81
  .k-card-padding-none {
80
82
  padding: 0;
83
+ overflow: hidden;
84
+ }
85
+
86
+ .k-card-padding-none .k-card-header {
87
+ padding: 0.75rem 1rem;
88
+ margin-bottom: 0;
89
+ }
90
+
91
+ .k-card-padding-none .k-card-footer {
92
+ padding: 0.75rem 1rem;
93
+ margin-top: 0;
94
+ }
95
+
96
+ /* The card already draws the outer edge and the line under the header. */
97
+ .k-card-padding-none .k-card-body > .k-table {
98
+ border: none;
99
+ }
100
+
101
+ .k-card-padding-none .k-card-body > .k-table thead th {
102
+ border-top: none;
81
103
  }
82
104
 
83
105
  .k-card-padding-small {
@@ -94,67 +116,67 @@
94
116
 
95
117
  /* Color Variants */
96
118
  .k-card-primary {
97
- border-color: var(--primary-color);
119
+ border-color: var(--k-primary-color);
98
120
  }
99
121
 
100
122
  .k-card-primary.k-card-hoverable:hover {
101
- border-color: var(--primary-color-hover);
123
+ border-color: var(--k-primary-color-hover);
102
124
  box-shadow:
103
- 0 0.9375rem 1.875rem var(--shadow-color-hover),
104
- 0 0 0 0.0625rem var(--primary-color);
125
+ 0 0.9375rem 1.875rem var(--k-shadow-color-hover),
126
+ 0 0 0 0.0625rem var(--k-primary-color);
105
127
  }
106
128
 
107
129
  .k-card-secondary {
108
- border-color: var(--secondary-color);
130
+ border-color: var(--k-secondary-color);
109
131
  }
110
132
 
111
133
  .k-card-secondary.k-card-hoverable:hover {
112
- border-color: var(--secondary-color-hover);
134
+ border-color: var(--k-secondary-color-hover);
113
135
  box-shadow:
114
- 0 0.9375rem 1.875rem var(--shadow-color-hover),
115
- 0 0 0 0.0625rem var(--secondary-color);
136
+ 0 0.9375rem 1.875rem var(--k-shadow-color-hover),
137
+ 0 0 0 0.0625rem var(--k-secondary-color);
116
138
  }
117
139
 
118
140
  .k-card-light {
119
- border-color: var(--light-color);
141
+ border-color: var(--k-light-color);
120
142
  }
121
143
 
122
144
  .k-card-light.k-card-hoverable:hover {
123
- border-color: var(--light-color-hover);
145
+ border-color: var(--k-light-color-hover);
124
146
  box-shadow:
125
- 0 0.9375rem 1.875rem var(--shadow-color-hover),
126
- 0 0 0 0.0625rem var(--light-color);
147
+ 0 0.9375rem 1.875rem var(--k-shadow-color-hover),
148
+ 0 0 0 0.0625rem var(--k-light-color);
127
149
  }
128
150
 
129
151
  .k-card-danger {
130
- border-color: var(--danger-color);
152
+ border-color: var(--k-danger-color);
131
153
  }
132
154
 
133
155
  .k-card-danger.k-card-hoverable:hover {
134
- border-color: var(--danger-color-hover);
156
+ border-color: var(--k-danger-color-hover);
135
157
  box-shadow:
136
- 0 0.9375rem 1.875rem var(--shadow-color-hover),
137
- 0 0 0 0.0625rem var(--danger-color);
158
+ 0 0.9375rem 1.875rem var(--k-shadow-color-hover),
159
+ 0 0 0 0.0625rem var(--k-danger-color);
138
160
  }
139
161
 
140
162
  .k-card-warning {
141
- border-color: var(--warning-color);
163
+ border-color: var(--k-warning-color);
142
164
  }
143
165
 
144
166
  .k-card-warning.k-card-hoverable:hover {
145
- border-color: var(--warning-color-hover);
167
+ border-color: var(--k-warning-color-hover);
146
168
  box-shadow:
147
- 0 0.9375rem 1.875rem var(--shadow-color-hover),
148
- 0 0 0 0.0625rem var(--warning-color);
169
+ 0 0.9375rem 1.875rem var(--k-shadow-color-hover),
170
+ 0 0 0 0.0625rem var(--k-warning-color);
149
171
  }
150
172
 
151
173
  .k-card-success {
152
- border-color: var(--success-color);
174
+ border-color: var(--k-success-color);
153
175
  }
154
176
 
155
177
  .k-card-success.k-card-hoverable:hover {
156
- border-color: var(--success-color-hover);
178
+ border-color: var(--k-success-color-hover);
157
179
  box-shadow:
158
- 0 0.9375rem 1.875rem var(--shadow-color-hover),
159
- 0 0 0 0.0625rem var(--success-color);
180
+ 0 0.9375rem 1.875rem var(--k-shadow-color-hover),
181
+ 0 0 0 0.0625rem var(--k-success-color);
160
182
  }
@@ -23,5 +23,5 @@
23
23
  .k-col-divider-solid-top {
24
24
  margin-top: 0.5rem;
25
25
  padding-top: 0.5rem;
26
- border-top: 1px solid var(--border-color);
26
+ border-top: 1px solid var(--k-border-color);
27
27
  }
@@ -1,8 +1,11 @@
1
1
  .k-page {
2
+ --k-page-padding: 0px;
3
+ --k-page-gap: 0px;
2
4
  display: flex;
3
5
  flex-direction: column;
4
6
  width: 100%;
5
7
  box-sizing: border-box;
8
+ gap: var(--k-page-gap);
6
9
  }
7
10
 
8
11
  .k-page-fill {
@@ -11,15 +14,32 @@
11
14
  }
12
15
 
13
16
  .k-page-padded {
14
- padding: 1.5rem;
17
+ --k-page-padding: 1.5rem;
18
+ padding: var(--k-page-padding);
19
+ }
20
+
21
+ /* A fill page has a fixed height, so content taller than it spills past the
22
+ bottom padding and ends flush with the view. A spacer after the content
23
+ stands in for that padding: it follows the content when it overflows, so
24
+ the scroll area still ends with the space. Its margin cancels the gap
25
+ before it; it keeps a real height, as an empty box adds no scroll area. */
26
+ .k-page-fill.k-page-padded {
27
+ padding-bottom: 0;
28
+ }
29
+
30
+ .k-page-fill.k-page-padded::after {
31
+ content: "";
32
+ flex: none;
33
+ height: var(--k-page-padding);
34
+ margin-top: calc(-1 * var(--k-page-gap));
15
35
  }
16
36
 
17
37
  .k-page-gap-sm {
18
- gap: 0.75rem;
38
+ --k-page-gap: 0.75rem;
19
39
  }
20
40
 
21
41
  .k-page-gap-md {
22
- gap: 1.5rem;
42
+ --k-page-gap: 1.5rem;
23
43
  }
24
44
 
25
45
  .k-page-max-narrow {
@@ -45,9 +65,9 @@
45
65
 
46
66
  @media (max-width: 640px) {
47
67
  .k-page-padded {
48
- padding: 1rem;
68
+ --k-page-padding: 1rem;
49
69
  }
50
70
  .k-page-gap-md {
51
- gap: 1rem;
71
+ --k-page-gap: 1rem;
52
72
  }
53
73
  }