@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
@@ -13,7 +13,7 @@
13
13
  padding: 0 0.5rem 0 0;
14
14
  margin: 0;
15
15
  cursor: pointer;
16
- color: var(--text-color);
16
+ color: var(--k-text-color);
17
17
  font: inherit;
18
18
  }
19
19
 
@@ -29,12 +29,12 @@
29
29
 
30
30
  .k-phone-input-dial {
31
31
  font-variant-numeric: tabular-nums;
32
- color: var(--text-color-secondary, var(--text-color));
32
+ color: var(--k-text-color-secondary, var(--k-text-color));
33
33
  }
34
34
 
35
35
  .k-phone-input-caret {
36
36
  font-size: 0.75em;
37
- color: var(--text-color-secondary, var(--text-color));
37
+ color: var(--k-text-color-secondary, var(--k-text-color));
38
38
  }
39
39
 
40
40
  .k-phone-input-panel {
@@ -43,10 +43,10 @@
43
43
  left: -0.5rem;
44
44
  width: 18rem;
45
45
  max-height: 20rem;
46
- background-color: var(--background-color);
47
- border: 1px solid var(--border-color);
46
+ background-color: var(--k-background-color);
47
+ border: 1px solid var(--k-border-color);
48
48
  border-radius: 0.5rem;
49
- box-shadow: 0 0.375rem 1.25rem var(--shadow-color);
49
+ box-shadow: 0 0.375rem 1.25rem var(--k-shadow-color);
50
50
  z-index: 100;
51
51
  display: flex;
52
52
  flex-direction: column;
@@ -58,8 +58,8 @@
58
58
  align-items: center;
59
59
  gap: 0.5rem;
60
60
  padding: 0.5rem 0.75rem;
61
- border-bottom: 1px solid var(--border-color);
62
- color: var(--text-color-secondary, var(--text-color));
61
+ border-bottom: 1px solid var(--k-border-color);
62
+ color: var(--k-text-color-secondary, var(--k-text-color));
63
63
  }
64
64
 
65
65
  .k-phone-input-search input {
@@ -67,7 +67,7 @@
67
67
  border: none;
68
68
  outline: none;
69
69
  background: transparent;
70
- color: var(--text-color);
70
+ color: var(--k-text-color);
71
71
  font: inherit;
72
72
  }
73
73
 
@@ -88,19 +88,19 @@
88
88
  background: transparent;
89
89
  border: none;
90
90
  cursor: pointer;
91
- color: var(--text-color);
91
+ color: var(--k-text-color);
92
92
  font: inherit;
93
93
  text-align: left;
94
94
  }
95
95
 
96
96
  .k-phone-input-option:hover,
97
97
  .k-phone-input-option:focus-visible {
98
- background-color: var(--hover-color, var(--border-color));
98
+ background-color: var(--k-background-color-hover);
99
99
  outline: none;
100
100
  }
101
101
 
102
102
  .k-phone-input-option.selected {
103
- background-color: var(--hover-color, var(--border-color));
103
+ background-color: var(--k-background-color-hover);
104
104
  }
105
105
 
106
106
  .k-phone-input-name {
@@ -112,7 +112,7 @@
112
112
 
113
113
  .k-phone-input-empty {
114
114
  padding: 0.75rem;
115
- color: var(--text-color-secondary, var(--text-color));
115
+ color: var(--k-text-color-secondary, var(--k-text-color));
116
116
  text-align: center;
117
117
  font-size: 0.875rem;
118
118
  }
@@ -22,7 +22,7 @@ const RadioGroup = <T extends string = string>(props: RadioGroupProps<T>) => {
22
22
  const { disabled = false, required = false } = props;
23
23
 
24
24
  return (
25
- <OptionsGroup label={props.label} required={required}>
25
+ <OptionsGroup label={props.label} required={required} role="radiogroup">
26
26
  {props.options.map((option, index) => (
27
27
  <label key={index} className="k-options-group-option">
28
28
  <input
@@ -32,6 +32,7 @@ const RadioGroup = <T extends string = string>(props: RadioGroupProps<T>) => {
32
32
  checked={props.value === option.value}
33
33
  onChange={() => props.onChange(option.value)}
34
34
  disabled={disabled}
35
+ required={required}
35
36
  />
36
37
  {option.label}
37
38
  </label>
@@ -4,10 +4,10 @@ import { useEditor, EditorContent, useEditorState } from "@tiptap/react";
4
4
  import MandatoryAsterisk from "../../forms/requiredAsterisk/index.js";
5
5
  import IconButton from "../../buttons/iconButton/index.js";
6
6
  import Tooltip from "../../feedback/tooltip/index.js";
7
+ import { useState, useEffect, useId } from "react";
7
8
  import { Placeholder } from "@tiptap/extensions";
8
9
  import { PropsWithSize } from "../../types.js";
9
10
  import StarterKit from "@tiptap/starter-kit";
10
- import { useState, useEffect } from "react";
11
11
  import "./styles.css";
12
12
  import {
13
13
  faUnderline,
@@ -50,11 +50,8 @@ const RichTextEditor = (props: RichTextEditorProps) => {
50
50
  const [charCount, setCharCount] = useState(0);
51
51
  const [isInitialized, setIsInitialized] = useState(false);
52
52
 
53
- // Stable across renders: the editor reads labelId once, when it's created.
54
- const [generatedId] = useState(
55
- () => `richtext-${Math.random().toString(36).substring(2, 9)}`
56
- );
57
- const fieldId = props.id || generatedId;
53
+ const generatedId = useId();
54
+ const fieldId = props.id || `richtext-${generatedId}`;
58
55
  const labelId = `${fieldId}-label`;
59
56
 
60
57
  const cleanHtml = (html: string): string | undefined => {
@@ -76,6 +73,10 @@ const RichTextEditor = (props: RichTextEditorProps) => {
76
73
  };
77
74
 
78
75
  const editor = useEditor({
76
+ // TipTap would create the editor during render outside Next.js but after
77
+ // mount inside it (warning in dev). Always after mount, so `editor` starts
78
+ // null everywhere and the null handling below has one code path.
79
+ immediatelyRender: false,
79
80
  extensions: [
80
81
  StarterKit,
81
82
  Placeholder.configure({
@@ -86,6 +87,7 @@ const RichTextEditor = (props: RichTextEditorProps) => {
86
87
  editorProps: {
87
88
  attributes: {
88
89
  "aria-multiline": "true",
90
+ ...(props.required ? { "aria-required": "true" } : {}),
89
91
  ...(props.label
90
92
  ? { "aria-labelledby": labelId }
91
93
  : { "aria-label": props.placeholder ?? "Rich text editor" }),
@@ -110,17 +112,17 @@ const RichTextEditor = (props: RichTextEditorProps) => {
110
112
 
111
113
  const editorState = useEditorState({
112
114
  editor,
113
- selector: ({ editor }) => {
114
- return {
115
- isBold: editor.isActive("bold"),
116
- isItalic: editor.isActive("italic"),
117
- isUnderlined: editor.isActive("underline"),
118
- isBulletedList: editor.isActive("bulletList"),
119
- isNumberedList: editor.isActive("orderedList"),
120
- };
121
- },
115
+ selector: ({ editor }) => ({
116
+ isBold: editor?.isActive("bold") ?? false,
117
+ isItalic: editor?.isActive("italic") ?? false,
118
+ isUnderlined: editor?.isActive("underline") ?? false,
119
+ isBulletedList: editor?.isActive("bulletList") ?? false,
120
+ isNumberedList: editor?.isActive("orderedList") ?? false,
121
+ }),
122
122
  });
123
123
 
124
+ const toolbarDisabled = !editor || showHtml || disabled;
125
+
124
126
  useEffect(() => {
125
127
  if (editor) {
126
128
  editor.setEditable(!disabled);
@@ -141,12 +143,8 @@ const RichTextEditor = (props: RichTextEditorProps) => {
141
143
  const cleanedNew = cleanHtml(newValue) || "";
142
144
 
143
145
  if (cleanedCurrent !== cleanedNew) {
144
- // Temporarily mark as not initialized to prevent onChange from firing
145
- // during external content sync
146
- setIsInitialized(false);
147
- editor.commands.setContent(newValue);
148
- // Re-enable after a short delay to allow content to settle
149
- setTimeout(() => setIsInitialized(true), 0);
146
+ // An outside value isn't an edit, so don't echo it back to onChange.
147
+ editor.commands.setContent(newValue, { emitUpdate: false });
150
148
  }
151
149
 
152
150
  const textContent = editor.state.doc.textContent;
@@ -178,33 +176,33 @@ const RichTextEditor = (props: RichTextEditorProps) => {
178
176
  <IconButton
179
177
  icon={faBold}
180
178
  aria-label="Bold"
181
- aria-pressed={editorState.isBold}
179
+ aria-pressed={editorState?.isBold}
182
180
  size={size}
183
- variant={editorState.isBold ? "primary" : "secondary"}
184
- onClick={() => editor.chain().focus().toggleBold().run()}
185
- disabled={showHtml || disabled}
181
+ variant={editorState?.isBold ? "primary" : "secondary"}
182
+ onClick={() => editor?.chain().focus().toggleBold().run()}
183
+ disabled={toolbarDisabled}
186
184
  />
187
185
  </Tooltip>
188
186
  <Tooltip content="Italic" position="top">
189
187
  <IconButton
190
188
  icon={faItalic}
191
189
  aria-label="Italic"
192
- aria-pressed={editorState.isItalic}
190
+ aria-pressed={editorState?.isItalic}
193
191
  size={size}
194
- variant={editorState.isItalic ? "primary" : "secondary"}
195
- onClick={() => editor.chain().focus().toggleItalic().run()}
196
- disabled={showHtml || disabled}
192
+ variant={editorState?.isItalic ? "primary" : "secondary"}
193
+ onClick={() => editor?.chain().focus().toggleItalic().run()}
194
+ disabled={toolbarDisabled}
197
195
  />
198
196
  </Tooltip>
199
197
  <Tooltip content="Underline" position="top">
200
198
  <IconButton
201
199
  icon={faUnderline}
202
200
  aria-label="Underline"
203
- aria-pressed={editorState.isUnderlined}
201
+ aria-pressed={editorState?.isUnderlined}
204
202
  size={size}
205
- variant={editorState.isUnderlined ? "primary" : "secondary"}
206
- onClick={() => editor.chain().focus().toggleUnderline().run()}
207
- disabled={showHtml || disabled}
203
+ variant={editorState?.isUnderlined ? "primary" : "secondary"}
204
+ onClick={() => editor?.chain().focus().toggleUnderline().run()}
205
+ disabled={toolbarDisabled}
208
206
  />
209
207
  </Tooltip>
210
208
  <div className="k-toolbar-separator"></div>
@@ -212,22 +210,22 @@ const RichTextEditor = (props: RichTextEditorProps) => {
212
210
  <IconButton
213
211
  icon={faListUl}
214
212
  aria-label="Bullet list"
215
- aria-pressed={editorState.isBulletedList}
213
+ aria-pressed={editorState?.isBulletedList}
216
214
  size={size}
217
- variant={editorState.isBulletedList ? "primary" : "secondary"}
218
- onClick={() => editor.chain().focus().toggleBulletList().run()}
219
- disabled={showHtml || disabled}
215
+ variant={editorState?.isBulletedList ? "primary" : "secondary"}
216
+ onClick={() => editor?.chain().focus().toggleBulletList().run()}
217
+ disabled={toolbarDisabled}
220
218
  />
221
219
  </Tooltip>
222
220
  <Tooltip content="Numbered List" position="top">
223
221
  <IconButton
224
222
  icon={faListOl}
225
223
  aria-label="Numbered list"
226
- aria-pressed={editorState.isNumberedList}
224
+ aria-pressed={editorState?.isNumberedList}
227
225
  size={size}
228
- variant={editorState.isNumberedList ? "primary" : "secondary"}
229
- onClick={() => editor.chain().focus().toggleOrderedList().run()}
230
- disabled={showHtml || disabled}
226
+ variant={editorState?.isNumberedList ? "primary" : "secondary"}
227
+ onClick={() => editor?.chain().focus().toggleOrderedList().run()}
228
+ disabled={toolbarDisabled}
231
229
  />
232
230
  </Tooltip>
233
231
  <div className="k-toolbar-separator"></div>
@@ -239,7 +237,7 @@ const RichTextEditor = (props: RichTextEditorProps) => {
239
237
  variant="secondary"
240
238
  onClick={() => {
241
239
  editor
242
- .chain()
240
+ ?.chain()
243
241
  .focus()
244
242
  .selectAll()
245
243
  .clearNodes()
@@ -247,7 +245,7 @@ const RichTextEditor = (props: RichTextEditorProps) => {
247
245
  .setTextSelection(0)
248
246
  .run();
249
247
  }}
250
- disabled={showHtml || disabled}
248
+ disabled={toolbarDisabled}
251
249
  />
252
250
  </Tooltip>
253
251
  <div className="k-toolbar-separator"></div>
@@ -261,7 +259,7 @@ const RichTextEditor = (props: RichTextEditorProps) => {
261
259
  size={size}
262
260
  variant={showHtml ? "primary" : "secondary"}
263
261
  onClick={() => setShowHtml(!showHtml)}
264
- disabled={disabled}
262
+ disabled={!editor || disabled}
265
263
  />
266
264
  </Tooltip>
267
265
  </div>
@@ -12,13 +12,13 @@
12
12
 
13
13
  .k-richtext-label {
14
14
  display: block;
15
- font-size: var(--text-size-sm);
15
+ font-size: var(--k-text-size-sm);
16
16
  font-weight: 500;
17
- color: var(--text-color);
17
+ color: var(--k-text-color);
18
18
  }
19
19
 
20
20
  .k-editor-wrapper .tiptap {
21
- color: var(--text-color);
21
+ color: var(--k-text-color);
22
22
  min-width: 100%;
23
23
  width: 100%;
24
24
  box-sizing: border-box;
@@ -31,12 +31,12 @@
31
31
  resize: both;
32
32
  overflow-y: auto;
33
33
  padding: 0.625rem 1rem;
34
- font-size: var(--text-size-md);
35
- background-color: var(--background-color-light);
34
+ font-size: var(--k-text-size-md);
35
+ background-color: var(--k-background-color-light);
36
36
  }
37
37
 
38
38
  .k-editor-wrapper p.is-editor-empty:first-child::before {
39
- color: var(--text-color-secondary);
39
+ color: var(--k-text-color-secondary);
40
40
  opacity: 0.7;
41
41
  content: attr(data-placeholder);
42
42
  float: left;
@@ -46,8 +46,8 @@
46
46
 
47
47
  .k-editor-wrapper .tiptap:focus {
48
48
  outline: none;
49
- border-color: var(--border-color-active);
50
- box-shadow: 0 0 0 0.1875rem var(--border-shadow-color-active);
49
+ border-color: var(--k-border-color-active);
50
+ box-shadow: 0 0 0 0.1875rem var(--k-border-shadow-color-active);
51
51
  }
52
52
  .k-editor-wrapper .tiptap p {
53
53
  margin: 0 0 0.5rem 0;
@@ -71,26 +71,26 @@
71
71
  display: flex;
72
72
  gap: 0.25rem;
73
73
  padding: 0.5rem;
74
- background-color: var(--background-color-dark);
75
- border-bottom: 0.0625rem solid var(--border-color);
74
+ background-color: var(--k-background-color-dark);
75
+ border-bottom: 0.0625rem solid var(--k-border-color);
76
76
  border-radius: 0.375rem 0.375rem 0 0;
77
77
  }
78
78
 
79
79
  .k-editor-wrapper {
80
80
  position: relative;
81
- border: 0.0625rem solid var(--border-color);
81
+ border: 0.0625rem solid var(--k-border-color);
82
82
  border-radius: 0.375rem;
83
83
  }
84
84
 
85
85
  .k-toolbar-separator {
86
- border-left: 1px solid var(--border-color);
86
+ border-left: 1px solid var(--k-border-color);
87
87
  height: 1.5rem;
88
88
  margin: 0 0.5rem;
89
89
  align-self: center;
90
90
  }
91
91
 
92
92
  .k-html-section {
93
- background: var(--background-color-dark);
93
+ background: var(--k-background-color-dark);
94
94
  padding: 1rem;
95
95
  border-radius: 0 0 0.375rem 0.375rem;
96
96
  overflow: auto;
@@ -100,8 +100,8 @@
100
100
  min-width: 100%;
101
101
  min-height: 30rem;
102
102
  max-height: fit-content;
103
- font-size: var(--text-size-md);
104
- color: var(--text-color);
103
+ font-size: var(--k-text-size-md);
104
+ color: var(--k-text-color);
105
105
  white-space: pre-wrap;
106
106
  }
107
107
 
@@ -110,7 +110,7 @@
110
110
  min-height: 25rem;
111
111
  max-height: fit-content;
112
112
  padding: 0.5rem 0.75rem;
113
- font-size: var(--text-size-sm);
113
+ font-size: var(--k-text-size-sm);
114
114
  }
115
115
 
116
116
  .k-richtext-container-sm .k-html-section {
@@ -118,7 +118,7 @@
118
118
  min-height: 25rem;
119
119
  max-height: fit-content;
120
120
  padding: 0.75rem;
121
- font-size: var(--text-size-sm);
121
+ font-size: var(--k-text-size-sm);
122
122
  }
123
123
 
124
124
  .k-richtext-container-sm .k-editor-toolbar {
@@ -135,7 +135,7 @@
135
135
  min-height: 35rem;
136
136
  max-height: fit-content;
137
137
  padding: 0.75rem 1.25rem;
138
- font-size: var(--text-size-lg);
138
+ font-size: var(--k-text-size-lg);
139
139
  }
140
140
 
141
141
  .k-richtext-container-lg .k-html-section {
@@ -143,7 +143,7 @@
143
143
  min-height: 35rem;
144
144
  max-height: fit-content;
145
145
  padding: 1.25rem;
146
- font-size: var(--text-size-lg);
146
+ font-size: var(--k-text-size-lg);
147
147
  }
148
148
 
149
149
  .k-richtext-container-lg .k-editor-toolbar {
@@ -162,23 +162,23 @@
162
162
  }
163
163
 
164
164
  .k-editor-wrapper-disabled .tiptap {
165
- background-color: var(--background-color-light);
165
+ background-color: var(--k-background-color-light);
166
166
  cursor: not-allowed;
167
167
  }
168
168
 
169
169
  .k-editor-wrapper-disabled .k-editor-toolbar {
170
- background-color: var(--background-color-light);
170
+ background-color: var(--k-background-color-light);
171
171
  }
172
172
 
173
173
  .k-editor-wrapper-disabled .k-html-section {
174
- background-color: var(--background-color-light);
174
+ background-color: var(--k-background-color-light);
175
175
  cursor: not-allowed;
176
176
  }
177
177
 
178
178
  .k-richtext-char-count {
179
179
  font-weight: 500;
180
- font-size: var(--text-size-sm);
181
- color: var(--text-color-secondary);
180
+ font-size: var(--k-text-size-sm);
181
+ color: var(--k-text-color-secondary);
182
182
  margin-left: 0.5rem;
183
183
  margin-right: 0.5rem;
184
184
  }