@kosmeo-ui/react 0.2.0 → 1.0.1

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 (345) hide show
  1. package/README.md +3 -1
  2. package/dist/components/buttons/button/styles.css +43 -43
  3. package/dist/components/buttons/rowActions/index.d.ts.map +1 -1
  4. package/dist/components/buttons/rowActions/index.js +2 -1
  5. package/dist/components/buttons/rowActions/index.js.map +1 -1
  6. package/dist/components/data-display/addressBlock/styles.css +2 -2
  7. package/dist/components/data-display/colorSwatch/index.d.ts +1 -1
  8. package/dist/components/data-display/colorSwatch/index.d.ts.map +1 -1
  9. package/dist/components/data-display/colorSwatch/index.js +1 -1
  10. package/dist/components/data-display/colorSwatch/index.js.map +1 -1
  11. package/dist/components/data-display/colorSwatch/styles.css +1 -1
  12. package/dist/components/data-display/dataTable/index.d.ts.map +1 -1
  13. package/dist/components/data-display/dataTable/index.js +7 -3
  14. package/dist/components/data-display/dataTable/index.js.map +1 -1
  15. package/dist/components/data-display/dataTable/styles.css +3 -2
  16. package/dist/components/data-display/dataTable/utils/parseDataKey.d.ts +8 -1
  17. package/dist/components/data-display/dataTable/utils/parseDataKey.d.ts.map +1 -1
  18. package/dist/components/data-display/dataTable/utils/parseDataKey.js +13 -41
  19. package/dist/components/data-display/dataTable/utils/parseDataKey.js.map +1 -1
  20. package/dist/components/data-display/imagePreview/styles.css +2 -2
  21. package/dist/components/data-display/infiniteScroll/filters/index.d.ts +4 -0
  22. package/dist/components/data-display/infiniteScroll/filters/index.d.ts.map +1 -1
  23. package/dist/components/data-display/infiniteScroll/filters/index.js +12 -2
  24. package/dist/components/data-display/infiniteScroll/filters/index.js.map +1 -1
  25. package/dist/components/data-display/infiniteScroll/filters/listFilter.d.ts.map +1 -1
  26. package/dist/components/data-display/infiniteScroll/filters/listFilter.js +1 -1
  27. package/dist/components/data-display/infiniteScroll/filters/listFilter.js.map +1 -1
  28. package/dist/components/data-display/infiniteScroll/filters/rangeFilter.d.ts +6 -0
  29. package/dist/components/data-display/infiniteScroll/filters/rangeFilter.d.ts.map +1 -1
  30. package/dist/components/data-display/infiniteScroll/filters/rangeFilter.js +55 -46
  31. package/dist/components/data-display/infiniteScroll/filters/rangeFilter.js.map +1 -1
  32. package/dist/components/data-display/infiniteScroll/filters/selectFilter.d.ts.map +1 -1
  33. package/dist/components/data-display/infiniteScroll/filters/selectFilter.js +3 -5
  34. package/dist/components/data-display/infiniteScroll/filters/selectFilter.js.map +1 -1
  35. package/dist/components/data-display/infiniteScroll/filters/styles.css +30 -1
  36. package/dist/components/data-display/infiniteScroll/header/limit.d.ts.map +1 -1
  37. package/dist/components/data-display/infiniteScroll/header/limit.js +1 -1
  38. package/dist/components/data-display/infiniteScroll/header/limit.js.map +1 -1
  39. package/dist/components/data-display/infiniteScroll/header/sortBy.d.ts.map +1 -1
  40. package/dist/components/data-display/infiniteScroll/header/sortBy.js +1 -1
  41. package/dist/components/data-display/infiniteScroll/header/sortBy.js.map +1 -1
  42. package/dist/components/data-display/infiniteScroll/header/sortDirection.d.ts.map +1 -1
  43. package/dist/components/data-display/infiniteScroll/header/sortDirection.js +1 -1
  44. package/dist/components/data-display/infiniteScroll/header/sortDirection.js.map +1 -1
  45. package/dist/components/data-display/infiniteScroll/index.d.ts +8 -0
  46. package/dist/components/data-display/infiniteScroll/index.d.ts.map +1 -1
  47. package/dist/components/data-display/infiniteScroll/index.js +41 -23
  48. package/dist/components/data-display/infiniteScroll/index.js.map +1 -1
  49. package/dist/components/data-display/infiniteScroll/styles.css +2 -2
  50. package/dist/components/data-display/infiniteScroll/tags/index.d.ts.map +1 -1
  51. package/dist/components/data-display/infiniteScroll/tags/index.js +6 -5
  52. package/dist/components/data-display/infiniteScroll/tags/index.js.map +1 -1
  53. package/dist/components/data-display/infiniteScroll/tags/listFilterTag.d.ts.map +1 -1
  54. package/dist/components/data-display/infiniteScroll/tags/listFilterTag.js +6 -6
  55. package/dist/components/data-display/infiniteScroll/tags/listFilterTag.js.map +1 -1
  56. package/dist/components/data-display/infiniteScroll/tags/rangeFilterTag.d.ts.map +1 -1
  57. package/dist/components/data-display/infiniteScroll/tags/rangeFilterTag.js +3 -5
  58. package/dist/components/data-display/infiniteScroll/tags/rangeFilterTag.js.map +1 -1
  59. package/dist/components/data-display/infiniteScroll/utils/generateQueryString.d.ts +6 -0
  60. package/dist/components/data-display/infiniteScroll/utils/generateQueryString.d.ts.map +1 -1
  61. package/dist/components/data-display/infiniteScroll/utils/generateQueryString.js +24 -12
  62. package/dist/components/data-display/infiniteScroll/utils/generateQueryString.js.map +1 -1
  63. package/dist/components/data-display/infiniteScroll/utils/hasPendingChanges.d.ts +11 -1
  64. package/dist/components/data-display/infiniteScroll/utils/hasPendingChanges.d.ts.map +1 -1
  65. package/dist/components/data-display/infiniteScroll/utils/hasPendingChanges.js +37 -18
  66. package/dist/components/data-display/infiniteScroll/utils/hasPendingChanges.js.map +1 -1
  67. package/dist/components/data-display/listCard/styles.css +3 -3
  68. package/dist/components/data-display/listRow/styles.css +2 -2
  69. package/dist/components/data-display/recoveryCodeGrid/styles.css +3 -3
  70. package/dist/components/data-display/secretDisplay/styles.css +4 -4
  71. package/dist/components/data-display/statCard/styles.css +12 -12
  72. package/dist/components/data-display/summaryRow/styles.css +4 -4
  73. package/dist/components/data-display/table/index.d.ts.map +1 -1
  74. package/dist/components/data-display/table/index.js +2 -2
  75. package/dist/components/data-display/table/index.js.map +1 -1
  76. package/dist/components/data-display/table/styles.css +10 -10
  77. package/dist/components/data-display/tableFilters/index.d.ts +30 -0
  78. package/dist/components/data-display/tableFilters/index.d.ts.map +1 -0
  79. package/dist/components/data-display/tableFilters/index.js +67 -0
  80. package/dist/components/data-display/tableFilters/index.js.map +1 -0
  81. package/dist/components/data-display/tagCard/index.d.ts.map +1 -1
  82. package/dist/components/data-display/tagCard/index.js +1 -1
  83. package/dist/components/data-display/tagCard/index.js.map +1 -1
  84. package/dist/components/data-display/tagCard/styles.css +1 -1
  85. package/dist/components/feedback/alert/styles.css +15 -15
  86. package/dist/components/feedback/badge/index.d.ts.map +1 -1
  87. package/dist/components/feedback/badge/index.js +14 -8
  88. package/dist/components/feedback/badge/index.js.map +1 -1
  89. package/dist/components/feedback/badge/styles.css +44 -46
  90. package/dist/components/feedback/emptyState/styles.css +2 -2
  91. package/dist/components/feedback/loadingOverlay/styles.css +1 -1
  92. package/dist/components/feedback/progressBar/styles.css +11 -11
  93. package/dist/components/feedback/spinner/styles.css +14 -11
  94. package/dist/components/feedback/tooltip/styles.css +9 -7
  95. package/dist/components/forms/detailField/styles.css +1 -1
  96. package/dist/components/forms/fieldShell/index.d.ts +3 -1
  97. package/dist/components/forms/fieldShell/index.d.ts.map +1 -1
  98. package/dist/components/forms/fieldShell/index.js +1 -1
  99. package/dist/components/forms/fieldShell/index.js.map +1 -1
  100. package/dist/components/forms/fieldShell/styles.css +5 -5
  101. package/dist/components/forms/form/styles.css +6 -6
  102. package/dist/components/forms/formActions/styles.css +4 -4
  103. package/dist/components/forms/formGrid/styles.css +32 -0
  104. package/dist/components/forms/infoRow/styles.css +2 -2
  105. package/dist/components/forms/optionsGroup/index.d.ts +3 -1
  106. package/dist/components/forms/optionsGroup/index.d.ts.map +1 -1
  107. package/dist/components/forms/optionsGroup/index.js +5 -1
  108. package/dist/components/forms/optionsGroup/index.js.map +1 -1
  109. package/dist/components/forms/optionsGroup/styles.css +1 -1
  110. package/dist/components/forms/requiredAsterisk/index.d.ts.map +1 -1
  111. package/dist/components/forms/requiredAsterisk/index.js +3 -2
  112. package/dist/components/forms/requiredAsterisk/index.js.map +1 -1
  113. package/dist/components/forms/requiredAsterisk/styles.css +1 -1
  114. package/dist/components/index.d.ts +2 -0
  115. package/dist/components/index.d.ts.map +1 -1
  116. package/dist/components/index.js +1 -0
  117. package/dist/components/index.js.map +1 -1
  118. package/dist/components/inputs/checkbox/index.d.ts.map +1 -1
  119. package/dist/components/inputs/checkbox/index.js +3 -1
  120. package/dist/components/inputs/checkbox/index.js.map +1 -1
  121. package/dist/components/inputs/checkbox/styles.css +4 -4
  122. package/dist/components/inputs/colorPicker/index.d.ts.map +1 -1
  123. package/dist/components/inputs/colorPicker/index.js +3 -1
  124. package/dist/components/inputs/colorPicker/index.js.map +1 -1
  125. package/dist/components/inputs/colorPicker/styles.css +3 -3
  126. package/dist/components/inputs/dateInput/index.d.ts +3 -3
  127. package/dist/components/inputs/dateInput/index.d.ts.map +1 -1
  128. package/dist/components/inputs/dateInput/index.js +2 -2
  129. package/dist/components/inputs/dateInput/index.js.map +1 -1
  130. package/dist/components/inputs/dateInput/styles.css +5 -5
  131. package/dist/components/inputs/dateInput/utils.d.ts +0 -1
  132. package/dist/components/inputs/dateInput/utils.d.ts.map +1 -1
  133. package/dist/components/inputs/dateInput/utils.js +13 -8
  134. package/dist/components/inputs/dateInput/utils.js.map +1 -1
  135. package/dist/components/inputs/dropdown/index.js +1 -1
  136. package/dist/components/inputs/dropdown/index.js.map +1 -1
  137. package/dist/components/inputs/dropdown/styles.css +2 -2
  138. package/dist/components/inputs/dropdownArrowButton/styles.css +7 -5
  139. package/dist/components/inputs/fileDropZone/index.d.ts.map +1 -1
  140. package/dist/components/inputs/fileDropZone/index.js +3 -2
  141. package/dist/components/inputs/fileDropZone/index.js.map +1 -1
  142. package/dist/components/inputs/fileDropZone/styles.css +12 -12
  143. package/dist/components/inputs/fileUpload/index.d.ts.map +1 -1
  144. package/dist/components/inputs/fileUpload/index.js +11 -6
  145. package/dist/components/inputs/fileUpload/index.js.map +1 -1
  146. package/dist/components/inputs/fileUpload/styles.css +9 -9
  147. package/dist/components/inputs/input/index.d.ts +12 -0
  148. package/dist/components/inputs/input/index.d.ts.map +1 -1
  149. package/dist/components/inputs/input/index.js +4 -3
  150. package/dist/components/inputs/input/index.js.map +1 -1
  151. package/dist/components/inputs/input/styles.css +28 -28
  152. package/dist/components/inputs/languageSelect/index.d.ts.map +1 -1
  153. package/dist/components/inputs/languageSelect/index.js +15 -4
  154. package/dist/components/inputs/languageSelect/index.js.map +1 -1
  155. package/dist/components/inputs/multiSelect/dropDown.d.ts +7 -0
  156. package/dist/components/inputs/multiSelect/dropDown.d.ts.map +1 -1
  157. package/dist/components/inputs/multiSelect/dropDown.js +19 -12
  158. package/dist/components/inputs/multiSelect/dropDown.js.map +1 -1
  159. package/dist/components/inputs/multiSelect/index.d.ts.map +1 -1
  160. package/dist/components/inputs/multiSelect/index.js +49 -13
  161. package/dist/components/inputs/multiSelect/index.js.map +1 -1
  162. package/dist/components/inputs/multiSelect/styles.css +51 -43
  163. package/dist/components/inputs/multiSelect/utils.d.ts +7 -0
  164. package/dist/components/inputs/multiSelect/utils.d.ts.map +1 -0
  165. package/dist/components/inputs/multiSelect/utils.js +18 -0
  166. package/dist/components/inputs/multiSelect/utils.js.map +1 -0
  167. package/dist/components/inputs/phoneInput/index.d.ts.map +1 -1
  168. package/dist/components/inputs/phoneInput/index.js +11 -3
  169. package/dist/components/inputs/phoneInput/index.js.map +1 -1
  170. package/dist/components/inputs/phoneInput/styles.css +13 -13
  171. package/dist/components/inputs/radioGroup/index.d.ts.map +1 -1
  172. package/dist/components/inputs/radioGroup/index.js +1 -1
  173. package/dist/components/inputs/radioGroup/index.js.map +1 -1
  174. package/dist/components/inputs/richTextEditor/index.d.ts.map +1 -1
  175. package/dist/components/inputs/richTextEditor/index.js +21 -22
  176. package/dist/components/inputs/richTextEditor/index.js.map +1 -1
  177. package/dist/components/inputs/richTextEditor/styles.css +24 -24
  178. package/dist/components/inputs/searchList/index.d.ts +4 -1
  179. package/dist/components/inputs/searchList/index.d.ts.map +1 -1
  180. package/dist/components/inputs/searchList/index.js +46 -31
  181. package/dist/components/inputs/searchList/index.js.map +1 -1
  182. package/dist/components/inputs/searchList/styles.css +22 -22
  183. package/dist/components/inputs/searchSelect/index.d.ts.map +1 -1
  184. package/dist/components/inputs/searchSelect/index.js +8 -2
  185. package/dist/components/inputs/searchSelect/index.js.map +1 -1
  186. package/dist/components/inputs/select/index.js +3 -2
  187. package/dist/components/inputs/select/index.js.map +1 -1
  188. package/dist/components/inputs/select/styles.css +93 -15
  189. package/dist/components/inputs/switch/index.d.ts.map +1 -1
  190. package/dist/components/inputs/switch/index.js +3 -1
  191. package/dist/components/inputs/switch/index.js.map +1 -1
  192. package/dist/components/inputs/switch/styles.css +5 -5
  193. package/dist/components/inputs/textArea/index.d.ts.map +1 -1
  194. package/dist/components/inputs/textArea/index.js +3 -2
  195. package/dist/components/inputs/textArea/index.js.map +1 -1
  196. package/dist/components/inputs/textArea/styles.css +11 -11
  197. package/dist/components/inputs/typeahead/index.d.ts.map +1 -1
  198. package/dist/components/inputs/typeahead/index.js +21 -6
  199. package/dist/components/inputs/typeahead/index.js.map +1 -1
  200. package/dist/components/inputs/typeahead/styles.css +13 -13
  201. package/dist/components/layout/authPage/styles.css +6 -6
  202. package/dist/components/layout/borderedSection/styles.css +3 -3
  203. package/dist/components/layout/card/styles.css +31 -31
  204. package/dist/components/layout/col/styles.css +1 -1
  205. package/dist/components/layout/page/styles.css +25 -5
  206. package/dist/components/layout/sectionHeader/styles.css +3 -3
  207. package/dist/components/navigation/breadcrumbs/styles.css +7 -7
  208. package/dist/components/navigation/pagination/styles.css +15 -15
  209. package/dist/components/navigation/sidebar/styles.css +6 -6
  210. package/dist/components/navigation/stepper/styles.css +14 -14
  211. package/dist/components/navigation/tabButton/styles.css +59 -59
  212. package/dist/components/navigation/tabs/styles.css +5 -5
  213. package/dist/components/overlays/modal/index.d.ts +1 -1
  214. package/dist/components/overlays/modal/index.d.ts.map +1 -1
  215. package/dist/components/overlays/modal/index.js +3 -2
  216. package/dist/components/overlays/modal/index.js.map +1 -1
  217. package/dist/components/overlays/modal/styles.css +19 -19
  218. package/dist/hooks/useInfinite.d.ts +3 -1
  219. package/dist/hooks/useInfinite.d.ts.map +1 -1
  220. package/dist/hooks/useInfinite.js +4 -2
  221. package/dist/hooks/useInfinite.js.map +1 -1
  222. package/dist/hooks/useInfiniteArchivableCursor.d.ts +1 -1
  223. package/dist/hooks/useInfiniteArchivableCursor.d.ts.map +1 -1
  224. package/dist/hooks/useInfiniteArchivableCursor.js +11 -4
  225. package/dist/hooks/useInfiniteArchivableCursor.js.map +1 -1
  226. package/dist/hooks/useInfiniteCursor.d.ts +1 -1
  227. package/dist/hooks/useInfiniteCursor.d.ts.map +1 -1
  228. package/dist/hooks/useInfiniteCursor.js +11 -4
  229. package/dist/hooks/useInfiniteCursor.js.map +1 -1
  230. package/dist/hooks/useListKeyboard.d.ts.map +1 -1
  231. package/dist/hooks/useListKeyboard.js +4 -0
  232. package/dist/hooks/useListKeyboard.js.map +1 -1
  233. package/dist/styles.css +142 -127
  234. package/package.json +15 -4
  235. package/src/components/buttons/button/styles.css +43 -43
  236. package/src/components/buttons/rowActions/index.tsx +6 -1
  237. package/src/components/data-display/addressBlock/styles.css +2 -2
  238. package/src/components/data-display/colorSwatch/index.tsx +2 -2
  239. package/src/components/data-display/colorSwatch/styles.css +1 -1
  240. package/src/components/data-display/dataTable/index.tsx +6 -3
  241. package/src/components/data-display/dataTable/styles.css +3 -2
  242. package/src/components/data-display/dataTable/utils/parseDataKey.ts +18 -36
  243. package/src/components/data-display/imagePreview/styles.css +2 -2
  244. package/src/components/data-display/infiniteScroll/filters/index.tsx +18 -1
  245. package/src/components/data-display/infiniteScroll/filters/listFilter.tsx +1 -0
  246. package/src/components/data-display/infiniteScroll/filters/rangeFilter.tsx +77 -33
  247. package/src/components/data-display/infiniteScroll/filters/selectFilter.tsx +11 -17
  248. package/src/components/data-display/infiniteScroll/filters/styles.css +30 -1
  249. package/src/components/data-display/infiniteScroll/header/limit.tsx +1 -0
  250. package/src/components/data-display/infiniteScroll/header/sortBy.tsx +1 -0
  251. package/src/components/data-display/infiniteScroll/header/sortDirection.tsx +1 -0
  252. package/src/components/data-display/infiniteScroll/index.tsx +75 -29
  253. package/src/components/data-display/infiniteScroll/styles.css +2 -2
  254. package/src/components/data-display/infiniteScroll/tags/index.tsx +6 -5
  255. package/src/components/data-display/infiniteScroll/tags/listFilterTag.tsx +20 -13
  256. package/src/components/data-display/infiniteScroll/tags/rangeFilterTag.tsx +4 -3
  257. package/src/components/data-display/infiniteScroll/utils/generateQueryString.ts +28 -13
  258. package/src/components/data-display/infiniteScroll/utils/hasPendingChanges.ts +48 -16
  259. package/src/components/data-display/listCard/styles.css +3 -3
  260. package/src/components/data-display/listRow/styles.css +2 -2
  261. package/src/components/data-display/recoveryCodeGrid/styles.css +3 -3
  262. package/src/components/data-display/secretDisplay/styles.css +4 -4
  263. package/src/components/data-display/statCard/styles.css +12 -12
  264. package/src/components/data-display/summaryRow/styles.css +4 -4
  265. package/src/components/data-display/table/index.tsx +2 -2
  266. package/src/components/data-display/table/styles.css +10 -10
  267. package/src/components/data-display/tableFilters/index.tsx +147 -0
  268. package/src/components/data-display/tagCard/index.tsx +3 -2
  269. package/src/components/data-display/tagCard/styles.css +1 -1
  270. package/src/components/feedback/alert/styles.css +15 -15
  271. package/src/components/feedback/badge/index.tsx +36 -16
  272. package/src/components/feedback/badge/styles.css +44 -46
  273. package/src/components/feedback/emptyState/styles.css +2 -2
  274. package/src/components/feedback/loadingOverlay/styles.css +1 -1
  275. package/src/components/feedback/progressBar/styles.css +11 -11
  276. package/src/components/feedback/spinner/styles.css +14 -11
  277. package/src/components/feedback/tooltip/styles.css +9 -7
  278. package/src/components/forms/detailField/styles.css +1 -1
  279. package/src/components/forms/fieldShell/index.tsx +4 -1
  280. package/src/components/forms/fieldShell/styles.css +5 -5
  281. package/src/components/forms/form/styles.css +6 -6
  282. package/src/components/forms/formActions/styles.css +4 -4
  283. package/src/components/forms/formGrid/styles.css +32 -0
  284. package/src/components/forms/infoRow/styles.css +2 -2
  285. package/src/components/forms/optionsGroup/index.tsx +31 -12
  286. package/src/components/forms/optionsGroup/styles.css +1 -1
  287. package/src/components/forms/requiredAsterisk/index.tsx +5 -1
  288. package/src/components/forms/requiredAsterisk/styles.css +1 -1
  289. package/src/components/index.ts +2 -0
  290. package/src/components/inputs/checkbox/index.tsx +3 -2
  291. package/src/components/inputs/checkbox/styles.css +4 -4
  292. package/src/components/inputs/colorPicker/index.tsx +5 -2
  293. package/src/components/inputs/colorPicker/styles.css +3 -3
  294. package/src/components/inputs/dateInput/index.tsx +4 -5
  295. package/src/components/inputs/dateInput/styles.css +5 -5
  296. package/src/components/inputs/dateInput/utils.ts +12 -8
  297. package/src/components/inputs/dropdown/index.tsx +1 -1
  298. package/src/components/inputs/dropdown/styles.css +2 -2
  299. package/src/components/inputs/dropdownArrowButton/styles.css +7 -5
  300. package/src/components/inputs/fileDropZone/index.tsx +4 -3
  301. package/src/components/inputs/fileDropZone/styles.css +12 -12
  302. package/src/components/inputs/fileUpload/index.tsx +33 -23
  303. package/src/components/inputs/fileUpload/styles.css +9 -9
  304. package/src/components/inputs/input/index.tsx +21 -3
  305. package/src/components/inputs/input/styles.css +28 -28
  306. package/src/components/inputs/languageSelect/index.tsx +19 -4
  307. package/src/components/inputs/multiSelect/dropDown.tsx +83 -35
  308. package/src/components/inputs/multiSelect/index.tsx +87 -30
  309. package/src/components/inputs/multiSelect/styles.css +51 -43
  310. package/src/components/inputs/multiSelect/utils.ts +18 -0
  311. package/src/components/inputs/phoneInput/index.tsx +10 -2
  312. package/src/components/inputs/phoneInput/styles.css +13 -13
  313. package/src/components/inputs/radioGroup/index.tsx +2 -1
  314. package/src/components/inputs/richTextEditor/index.tsx +42 -44
  315. package/src/components/inputs/richTextEditor/styles.css +24 -24
  316. package/src/components/inputs/searchList/index.tsx +121 -109
  317. package/src/components/inputs/searchList/styles.css +22 -22
  318. package/src/components/inputs/searchSelect/index.tsx +8 -2
  319. package/src/components/inputs/select/index.tsx +3 -3
  320. package/src/components/inputs/select/styles.css +93 -15
  321. package/src/components/inputs/switch/index.tsx +3 -2
  322. package/src/components/inputs/switch/styles.css +5 -5
  323. package/src/components/inputs/textArea/index.tsx +3 -3
  324. package/src/components/inputs/textArea/styles.css +11 -11
  325. package/src/components/inputs/typeahead/index.tsx +84 -54
  326. package/src/components/inputs/typeahead/styles.css +13 -13
  327. package/src/components/layout/authPage/styles.css +6 -6
  328. package/src/components/layout/borderedSection/styles.css +3 -3
  329. package/src/components/layout/card/styles.css +31 -31
  330. package/src/components/layout/col/styles.css +1 -1
  331. package/src/components/layout/page/styles.css +25 -5
  332. package/src/components/layout/sectionHeader/styles.css +3 -3
  333. package/src/components/navigation/breadcrumbs/styles.css +7 -7
  334. package/src/components/navigation/pagination/styles.css +15 -15
  335. package/src/components/navigation/sidebar/styles.css +6 -6
  336. package/src/components/navigation/stepper/styles.css +14 -14
  337. package/src/components/navigation/tabButton/styles.css +59 -59
  338. package/src/components/navigation/tabs/styles.css +5 -5
  339. package/src/components/overlays/modal/index.tsx +14 -2
  340. package/src/components/overlays/modal/styles.css +19 -19
  341. package/src/hooks/useInfinite.ts +7 -3
  342. package/src/hooks/useInfiniteArchivableCursor.ts +11 -4
  343. package/src/hooks/useInfiniteCursor.ts +11 -4
  344. package/src/hooks/useListKeyboard.ts +4 -0
  345. package/src/styles.css +142 -127
@@ -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
  }
@@ -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,7 +72,7 @@
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 */
@@ -116,67 +116,67 @@
116
116
 
117
117
  /* Color Variants */
118
118
  .k-card-primary {
119
- border-color: var(--primary-color);
119
+ border-color: var(--k-primary-color);
120
120
  }
121
121
 
122
122
  .k-card-primary.k-card-hoverable:hover {
123
- border-color: var(--primary-color-hover);
123
+ border-color: var(--k-primary-color-hover);
124
124
  box-shadow:
125
- 0 0.9375rem 1.875rem var(--shadow-color-hover),
126
- 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);
127
127
  }
128
128
 
129
129
  .k-card-secondary {
130
- border-color: var(--secondary-color);
130
+ border-color: var(--k-secondary-color);
131
131
  }
132
132
 
133
133
  .k-card-secondary.k-card-hoverable:hover {
134
- border-color: var(--secondary-color-hover);
134
+ border-color: var(--k-secondary-color-hover);
135
135
  box-shadow:
136
- 0 0.9375rem 1.875rem var(--shadow-color-hover),
137
- 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);
138
138
  }
139
139
 
140
140
  .k-card-light {
141
- border-color: var(--light-color);
141
+ border-color: var(--k-light-color);
142
142
  }
143
143
 
144
144
  .k-card-light.k-card-hoverable:hover {
145
- border-color: var(--light-color-hover);
145
+ border-color: var(--k-light-color-hover);
146
146
  box-shadow:
147
- 0 0.9375rem 1.875rem var(--shadow-color-hover),
148
- 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);
149
149
  }
150
150
 
151
151
  .k-card-danger {
152
- border-color: var(--danger-color);
152
+ border-color: var(--k-danger-color);
153
153
  }
154
154
 
155
155
  .k-card-danger.k-card-hoverable:hover {
156
- border-color: var(--danger-color-hover);
156
+ border-color: var(--k-danger-color-hover);
157
157
  box-shadow:
158
- 0 0.9375rem 1.875rem var(--shadow-color-hover),
159
- 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);
160
160
  }
161
161
 
162
162
  .k-card-warning {
163
- border-color: var(--warning-color);
163
+ border-color: var(--k-warning-color);
164
164
  }
165
165
 
166
166
  .k-card-warning.k-card-hoverable:hover {
167
- border-color: var(--warning-color-hover);
167
+ border-color: var(--k-warning-color-hover);
168
168
  box-shadow:
169
- 0 0.9375rem 1.875rem var(--shadow-color-hover),
170
- 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);
171
171
  }
172
172
 
173
173
  .k-card-success {
174
- border-color: var(--success-color);
174
+ border-color: var(--k-success-color);
175
175
  }
176
176
 
177
177
  .k-card-success.k-card-hoverable:hover {
178
- border-color: var(--success-color-hover);
178
+ border-color: var(--k-success-color-hover);
179
179
  box-shadow:
180
- 0 0.9375rem 1.875rem var(--shadow-color-hover),
181
- 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);
182
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
  }
@@ -11,13 +11,13 @@
11
11
 
12
12
  .k-section-header-divider {
13
13
  padding-bottom: 1rem;
14
- border-bottom: 0.0625rem solid var(--border-color);
14
+ border-bottom: 0.0625rem solid var(--k-border-color);
15
15
  margin-bottom: 1.5rem;
16
16
  }
17
17
 
18
18
  .k-section-header-preface {
19
19
  font-size: 0.875rem;
20
- color: var(--text-color-secondary);
20
+ color: var(--k-text-color-secondary);
21
21
  }
22
22
 
23
23
  .k-section-header-row {
@@ -82,7 +82,7 @@
82
82
 
83
83
  .k-section-header-subtitle {
84
84
  font-size: 0.8125rem;
85
- color: var(--text-color-secondary);
85
+ color: var(--k-text-color-secondary);
86
86
  }
87
87
 
88
88
  .k-section-header-badges {