@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
@@ -8,19 +8,19 @@
8
8
  margin-bottom: 0.1rem;
9
9
  font-size: 0.875rem;
10
10
  font-weight: 500;
11
- color: var(--text-color);
11
+ color: var(--k-text-color);
12
12
  }
13
13
 
14
14
  .k-multiselect {
15
- border: 0.0625rem solid var(--border-color);
15
+ border: 0.0625rem solid var(--k-border-color);
16
16
  border-radius: 0.375rem;
17
- color: var(--text-color);
17
+ color: var(--k-text-color);
18
18
  width: 100%;
19
19
  box-sizing: border-box;
20
20
  transition:
21
21
  border-color 0.2s ease-in-out,
22
22
  box-shadow 0.2s ease-in-out;
23
- background-color: var(--background-color-light);
23
+ background-color: var(--k-background-color-light);
24
24
  cursor: pointer;
25
25
  display: flex;
26
26
  align-items: flex-start;
@@ -31,39 +31,39 @@
31
31
 
32
32
  /* Size variants */
33
33
  .k-multiselect-sm {
34
- font-size: var(--text-size-sm);
34
+ font-size: var(--k-text-size-sm);
35
35
  padding: 0.5rem 2.5rem 0.5rem 0.75rem;
36
36
  }
37
37
 
38
38
  .k-multiselect-md {
39
- font-size: var(--text-size-md);
39
+ font-size: var(--k-text-size-md);
40
40
  padding: 0.625rem 2.75rem 0.625rem 1rem;
41
41
  }
42
42
 
43
43
  .k-multiselect-lg {
44
- font-size: var(--text-size-lg);
44
+ font-size: var(--k-text-size-lg);
45
45
  padding: 0.75rem 3rem 0.75rem 1.25rem;
46
46
  }
47
47
 
48
48
  /* States */
49
49
  .k-multiselect:hover:not(.k-multiselect-disabled) {
50
- border-color: var(--primary-color);
50
+ border-color: var(--k-primary-color);
51
51
  }
52
52
 
53
53
  .k-multiselect:focus {
54
54
  outline: none;
55
- border-color: var(--border-color-active);
56
- box-shadow: 0 0 0 0.1875rem var(--border-shadow-color-active);
55
+ border-color: var(--k-border-color-active);
56
+ box-shadow: 0 0 0 0.1875rem var(--k-border-shadow-color-active);
57
57
  }
58
58
 
59
59
  .k-multiselect-open {
60
- border-color: var(--border-color-active);
61
- box-shadow: 0 0 0 0.1875rem var(--border-shadow-color-active);
60
+ border-color: var(--k-border-color-active);
61
+ box-shadow: 0 0 0 0.1875rem var(--k-border-shadow-color-active);
62
62
  }
63
63
 
64
64
  .k-multiselect-disabled {
65
- background-color: var(--disabled-bg);
66
- color: var(--disabled-text);
65
+ background-color: var(--k-background-color-disabled);
66
+ color: var(--k-text-color-disabled);
67
67
  cursor: not-allowed;
68
68
  opacity: 0.6;
69
69
  }
@@ -75,7 +75,7 @@
75
75
  }
76
76
 
77
77
  .k-multiselect-placeholder {
78
- color: var(--text-color-secondary);
78
+ color: var(--k-text-color-secondary);
79
79
  opacity: 0.7;
80
80
  }
81
81
 
@@ -93,31 +93,31 @@
93
93
 
94
94
  /* Fixed height for 5 items based on size */
95
95
  .k-multiselect-sm .k-multiselect-selected-items {
96
- max-height: calc(5 * (var(--text-size-sm) + 1.15rem));
96
+ max-height: calc(5 * (var(--k-text-size-sm) + 1.15rem));
97
97
  }
98
98
 
99
99
  .k-multiselect-md .k-multiselect-selected-items {
100
- max-height: calc(5 * (var(--text-size-md) + 1.5rem));
100
+ max-height: calc(5 * (var(--k-text-size-md) + 1.5rem));
101
101
  }
102
102
 
103
103
  .k-multiselect-lg .k-multiselect-selected-items {
104
- max-height: calc(5 * (var(--text-size-lg) + 1.8rem));
104
+ max-height: calc(5 * (var(--k-text-size-lg) + 1.8rem));
105
105
  }
106
106
 
107
107
  .k-multiselect-selected-item {
108
108
  display: flex;
109
109
  align-items: center;
110
110
  justify-content: space-between;
111
- background-color: var(--background-color-dark);
111
+ background-color: var(--k-background-color-dark);
112
112
  border-radius: 0.25rem;
113
113
  }
114
114
 
115
115
  .k-multiselect-selected-item:hover {
116
- background-color: var(--background-color-hover);
116
+ background-color: var(--k-background-color-hover);
117
117
  }
118
118
 
119
119
  .k-multiselect-selected-item-label {
120
- color: var(--text-color);
120
+ color: var(--k-text-color);
121
121
  flex: 1;
122
122
  text-align: left;
123
123
  }
@@ -125,17 +125,17 @@
125
125
  /* Size variants for selected items */
126
126
  .k-multiselect-sm .k-multiselect-selected-item {
127
127
  padding: 0.25rem 0.5rem;
128
- font-size: var(--text-size-sm);
128
+ font-size: var(--k-text-size-sm);
129
129
  }
130
130
 
131
131
  .k-multiselect-md .k-multiselect-selected-item {
132
132
  padding: 0.375rem 0.625rem;
133
- font-size: var(--text-size-md);
133
+ font-size: var(--k-text-size-md);
134
134
  }
135
135
 
136
136
  .k-multiselect-lg .k-multiselect-selected-item {
137
137
  padding: 0.5rem 0.75rem;
138
- font-size: var(--text-size-lg);
138
+ font-size: var(--k-text-size-lg);
139
139
  }
140
140
 
141
141
  .k-multiselect-selected-item-remove {
@@ -143,7 +143,7 @@
143
143
  border: none;
144
144
  padding: 0;
145
145
  cursor: pointer;
146
- color: var(--text-color);
146
+ color: var(--k-text-color);
147
147
  transition: color 0.2s ease-in-out;
148
148
  display: flex;
149
149
  align-items: center;
@@ -153,19 +153,19 @@
153
153
 
154
154
  /* Size variants for remove button */
155
155
  .k-multiselect-sm .k-multiselect-selected-item-remove {
156
- font-size: calc(var(--text-size-sm) * 0.85);
156
+ font-size: calc(var(--k-text-size-sm) * 0.85);
157
157
  }
158
158
 
159
159
  .k-multiselect-md .k-multiselect-selected-item-remove {
160
- font-size: calc(var(--text-size-md) * 0.85);
160
+ font-size: calc(var(--k-text-size-md) * 0.85);
161
161
  }
162
162
 
163
163
  .k-multiselect-lg .k-multiselect-selected-item-remove {
164
- font-size: calc(var(--text-size-lg) * 0.85);
164
+ font-size: calc(var(--k-text-size-lg) * 0.85);
165
165
  }
166
166
 
167
167
  .k-multiselect-selected-item-remove:hover {
168
- color: var(--danger-color);
168
+ color: var(--k-danger-color-text);
169
169
  }
170
170
 
171
171
  /* Dropdown */
@@ -175,12 +175,12 @@
175
175
  left: 0;
176
176
  right: 0;
177
177
  margin-top: 0.25rem;
178
- background-color: var(--background-color-light);
179
- border: 0.0625rem solid var(--border-color);
178
+ background-color: var(--k-background-color-light);
179
+ border: 0.0625rem solid var(--k-border-color);
180
180
  border-radius: 0.375rem;
181
181
  box-shadow:
182
- 0 0.25rem 0.375rem -0.0625rem var(--shadow-color),
183
- 0 0.125rem 0.25rem -0.125rem var(--shadow-color);
182
+ 0 0.25rem 0.375rem -0.0625rem var(--k-shadow-color),
183
+ 0 0.125rem 0.25rem -0.125rem var(--k-shadow-color);
184
184
  z-index: 1000;
185
185
  max-height: 20rem;
186
186
  display: flex;
@@ -190,16 +190,19 @@
190
190
  /* Search input */
191
191
  .k-multiselect-search-container {
192
192
  padding: 0.5rem;
193
- border-bottom: 0.0625rem solid var(--border-color);
193
+ border-bottom: 0.0625rem solid var(--k-border-color);
194
194
  display: flex;
195
195
  gap: 0.5rem;
196
196
  align-items: center;
197
197
  }
198
198
 
199
199
  /* Bulk actions */
200
+ /* Buttons allow min-width: 0, so without this the search input squeezes them
201
+ down to their padding and the icons render a few pixels wide. */
200
202
  .k-multiselect-bulk-actions {
201
203
  display: flex;
202
204
  gap: 0.25rem;
205
+ flex-shrink: 0;
203
206
  }
204
207
 
205
208
  /* Options list */
@@ -221,31 +224,31 @@
221
224
  }
222
225
 
223
226
  .k-multiselect-option-sm {
224
- font-size: var(--text-size-sm);
227
+ font-size: var(--k-text-size-sm);
225
228
  padding: 0.375rem 0.75rem;
226
229
  }
227
230
 
228
231
  .k-multiselect-option-md {
229
- font-size: var(--text-size-md);
232
+ font-size: var(--k-text-size-md);
230
233
  padding: 0.5rem 1rem;
231
234
  }
232
235
 
233
236
  .k-multiselect-option-lg {
234
- font-size: var(--text-size-lg);
237
+ font-size: var(--k-text-size-lg);
235
238
  padding: 0.625rem 1.25rem;
236
239
  }
237
240
 
238
241
  .k-multiselect-option:hover {
239
- background-color: var(--background-color-dark);
242
+ background-color: var(--k-background-color-dark);
240
243
  }
241
244
 
242
245
  .k-multiselect-option-selected {
243
- background-color: var(--background-color-dark);
244
- color: var(--text-color);
246
+ background-color: var(--k-background-color-dark);
247
+ color: var(--k-text-color);
245
248
  }
246
249
 
247
250
  .k-multiselect-option-selected:hover {
248
- background-color: var(--background-color-hover);
251
+ background-color: var(--k-background-color-hover);
249
252
  }
250
253
 
251
254
  .k-multiselect-option-label {
@@ -253,13 +256,18 @@
253
256
  }
254
257
 
255
258
  .k-multiselect-check {
256
- color: var(--text-color);
259
+ color: var(--k-text-color);
257
260
  font-size: 0.875rem;
258
261
  }
259
262
 
260
263
  .k-multiselect-no-results {
261
264
  text-align: center;
262
- color: var(--text-color-secondary);
265
+ color: var(--k-text-color-secondary);
263
266
  font-style: italic;
264
267
  padding: 1rem;
265
268
  }
269
+
270
+ .k-multiselect-option-highlighted {
271
+ background-color: var(--k-background-color-hover);
272
+ box-shadow: inset 0 0 0 0.125rem var(--k-border-color-active);
273
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Stable React keys for a list of items: an item's `value` field when it has
3
+ * one, otherwise its label. Repeats get an occurrence suffix so keys stay
4
+ * unique.
5
+ */
6
+ export declare const itemKeys: <T>(items: T[], labelKey: keyof T) => string[];
7
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/components/inputs/multiSelect/utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,UAAU,MAAM,CAAC,KAAG,MAAM,EAYjE,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Stable React keys for a list of items: an item's `value` field when it has
3
+ * one, otherwise its label. Repeats get an occurrence suffix so keys stay
4
+ * unique.
5
+ */
6
+ export const itemKeys = (items, labelKey) => {
7
+ const seen = new Map();
8
+ return items.map((item) => {
9
+ const id = typeof item === "object" && item !== null && "value" in item
10
+ ? item.value
11
+ : item[labelKey];
12
+ const base = String(id);
13
+ const count = seen.get(base) ?? 0;
14
+ seen.set(base, count + 1);
15
+ return count === 0 ? base : `${base}#${count}`;
16
+ });
17
+ };
18
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/components/inputs/multiSelect/utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAI,KAAU,EAAE,QAAiB,EAAY,EAAE;IACrE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;IACvC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACxB,MAAM,EAAE,GACN,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,IAAI;YAC1D,CAAC,CAAE,IAA2B,CAAC,KAAK;YACpC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrB,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAC1B,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,EAAE,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/inputs/phoneInput/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAwC,MAAM,OAAO,CAAC;AAGxE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,cAAc,CAAC;AACtB,OAAO,EAEL,WAAW,EAIZ,MAAM,mBAAmB,CAAC;AAE3B,UAAU,eAAgB,SAAQ,aAAa;IAC7C,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,mEAAmE;IACnE,cAAc,CAAC,EAAE,WAAW,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IACnD,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;CACrD;AA2BD,QAAA,MAAM,UAAU,GAAI,OAAO,eAAe,gCA6KzC,CAAC;AAEF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/inputs/phoneInput/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAwC,MAAM,OAAO,CAAC;AAGxE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,cAAc,CAAC;AACtB,OAAO,EAEL,WAAW,EAIZ,MAAM,mBAAmB,CAAC;AAE3B,UAAU,eAAgB,SAAQ,aAAa;IAC7C,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,mEAAmE;IACnE,cAAc,CAAC,EAAE,WAAW,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IACnD,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;CACrD;AA2BD,QAAA,MAAM,UAAU,GAAI,OAAO,eAAe,gCAyLzC,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -38,6 +38,7 @@ const PhoneInput = (props) => {
38
38
  useEffect(() => {
39
39
  if (value === lastEmittedRef.current)
40
40
  return;
41
+ lastEmittedRef.current = value;
41
42
  if (!value) {
42
43
  setDisplay("");
43
44
  return;
@@ -47,6 +48,9 @@ const PhoneInput = (props) => {
47
48
  setCountry(parsed.country);
48
49
  setDisplay(parsed.formatNational());
49
50
  }
51
+ else if (parsed) {
52
+ setDisplay(parsed.formatNational());
53
+ }
50
54
  else {
51
55
  const formatter = new AsYouType(country);
52
56
  setDisplay(formatter.input(value));
@@ -76,13 +80,17 @@ const PhoneInput = (props) => {
76
80
  const formatter = new AsYouType(country);
77
81
  const formatted = formatter.input(raw);
78
82
  const nationalDigits = formatter.getNationalNumber();
83
+ const nextCountry = formatter.getCountry() ?? country;
84
+ setCountry(nextCountry);
79
85
  setDisplay(formatted);
80
- emit(nationalDigits, country);
86
+ emit(nationalDigits, nextCountry);
81
87
  };
82
88
  const handleCountrySelect = (cc) => {
83
89
  setCountry(cc);
84
90
  setPickerOpen(false);
85
- const digits = display.replace(/\D/g, "");
91
+ const current = new AsYouType(country);
92
+ current.input(display);
93
+ const digits = current.getNationalNumber();
86
94
  if (digits) {
87
95
  const formatter = new AsYouType(cc);
88
96
  const formatted = formatter.input(digits);
@@ -113,7 +121,7 @@ const PhoneInput = (props) => {
113
121
  dial.includes(q.replace(/^\+/, "")));
114
122
  });
115
123
  }, [orderedCountries, search]);
116
- const prefix = (_jsxs("div", { ref: pickerRef, className: "k-phone-input-picker", children: [_jsxs("button", { type: "button", className: "k-phone-input-picker-trigger", onClick: () => !disabled && setPickerOpen((o) => !o), disabled: disabled, "aria-label": `Country: ${countryName(country)}`, "aria-expanded": pickerOpen, children: [_jsx("span", { className: "k-phone-input-flag", children: flagEmoji(country) }), _jsxs("span", { className: "k-phone-input-dial", children: ["+", getCountryCallingCode(country)] }), _jsx(FontAwesomeIcon, { icon: faCaretDown, className: "k-phone-input-caret" })] }), pickerOpen && (_jsxs("div", { className: "k-phone-input-panel", children: [_jsxs("div", { className: "k-phone-input-search", children: [_jsx(FontAwesomeIcon, { icon: faSearch }), _jsx("input", { ref: searchRef, type: "text", value: search, onChange: (e) => setSearch(e.target.value), placeholder: "Search country or code" })] }), _jsxs("ul", { className: "k-phone-input-list", role: "listbox", children: [filteredCountries.map((cc) => (_jsx("li", { children: _jsxs("button", { type: "button", className: `k-phone-input-option ${cc === country ? "selected" : ""}`, onClick: () => handleCountrySelect(cc), role: "option", "aria-selected": cc === country, children: [_jsx("span", { className: "k-phone-input-flag", children: flagEmoji(cc) }), _jsx("span", { className: "k-phone-input-name", children: countryName(cc) }), _jsxs("span", { className: "k-phone-input-dial", children: ["+", getCountryCallingCode(cc)] })] }) }, cc))), filteredCountries.length === 0 && (_jsx("li", { className: "k-phone-input-empty", children: "No matches" }))] })] }))] }));
124
+ const prefix = (_jsxs("div", { ref: pickerRef, className: "k-phone-input-picker", children: [_jsxs("button", { type: "button", className: "k-phone-input-picker-trigger", onClick: () => !disabled && setPickerOpen((o) => !o), disabled: disabled, "aria-label": `+${getCountryCallingCode(country)} ${countryName(country)}, change country`, "aria-expanded": pickerOpen, children: [_jsx("span", { className: "k-phone-input-flag", "aria-hidden": "true", children: flagEmoji(country) }), _jsxs("span", { className: "k-phone-input-dial", children: ["+", getCountryCallingCode(country)] }), _jsx(FontAwesomeIcon, { icon: faCaretDown, className: "k-phone-input-caret" })] }), pickerOpen && (_jsxs("div", { className: "k-phone-input-panel", children: [_jsxs("div", { className: "k-phone-input-search", children: [_jsx(FontAwesomeIcon, { icon: faSearch }), _jsx("input", { ref: searchRef, type: "text", value: search, onChange: (e) => setSearch(e.target.value), placeholder: "Search country or code", "aria-label": "Search country or code" })] }), _jsxs("ul", { className: "k-phone-input-list", role: "listbox", children: [filteredCountries.map((cc) => (_jsx("li", { children: _jsxs("button", { type: "button", className: `k-phone-input-option ${cc === country ? "selected" : ""}`, onClick: () => handleCountrySelect(cc), role: "option", "aria-selected": cc === country, children: [_jsx("span", { className: "k-phone-input-flag", children: flagEmoji(cc) }), _jsx("span", { className: "k-phone-input-name", children: countryName(cc) }), _jsxs("span", { className: "k-phone-input-dial", children: ["+", getCountryCallingCode(cc)] })] }) }, cc))), filteredCountries.length === 0 && (_jsx("li", { className: "k-phone-input-empty", children: "No matches" }))] })] }))] }));
117
125
  return (_jsx(Input, { ...restProps, size: size, type: "tel", value: display, onChange: handleInputChange, disabled: disabled, placeholder: placeholder ?? "(555) 555-5555", prefix: prefix, autoComplete: "tel-national" }));
118
126
  };
119
127
  export default PhoneInput;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/inputs/phoneInput/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAa,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,eAAe,MAAM,mCAAmC,CAAC;AAEhE,OAAO,KAAK,MAAM,mBAAmB,CAAC;AACtC,OAAO,cAAc,CAAC;AACtB,OAAO,EACL,SAAS,EAET,YAAY,EACZ,qBAAqB,EACrB,0BAA0B,GAC3B,MAAM,mBAAmB,CAAC;AAqB3B,MAAM,SAAS,GAAkB;IAC/B,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;CACL,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,EAAe,EAAU,EAAE,CAC5C,EAAE;KACC,WAAW,EAAE;KACb,KAAK,CAAC,EAAE,CAAC;KACT,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;KAC1D,IAAI,CAAC,EAAE,CAAC,CAAC;AAEd,MAAM,WAAW,GACf,OAAO,IAAI,KAAK,WAAW,IAAI,cAAc,IAAI,IAAI;IACnD,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IACnD,CAAC,CAAC,IAAI,CAAC;AAEX,MAAM,WAAW,GAAG,CAAC,EAAe,EAAU,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;AAE3E,MAAM,UAAU,GAAG,CAAC,KAAsB,EAAE,EAAE;IAC5C,MAAM,EACJ,KAAK,GAAG,EAAE,EACV,QAAQ,EACR,cAAc,GAAG,IAAI,EACrB,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,GAAG,SAAS,EACb,GAAG,KAAK,CAAC;IAEV,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAc,cAAc,CAAC,CAAC;IACpE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC,CAAC;IACnD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEzC,MAAM,SAAS,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAC;IACjD,MAAM,cAAc,GAAG,MAAM,CAAS,EAAE,CAAC,CAAC;IAE1C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,KAAK,KAAK,cAAc,CAAC,OAAO;YAAE,OAAO;QAC7C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,UAAU,CAAC,EAAE,CAAC,CAAC;YACf,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAG,0BAA0B,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC3B,UAAU,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;YACzC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QACrC,CAAC;IACH,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;IAErB,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,UAAU,EAAE,CAAC;YACf,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,EAAE,CAAC,CAAC;QAChB,CAAC;IACH,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,eAAe,CAAC,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IAEzD,MAAM,IAAI,GAAG,CAAC,cAAsB,EAAE,WAAwB,EAAE,EAAE;QAChE,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,cAAc,CAAC,OAAO,GAAG,EAAE,CAAC;YAC5B,QAAQ,CAAC,EAAE,CAAC,CAAC;YACb,OAAO;QACT,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,qBAAqB,CAAC,WAAW,CAAC,GAAG,cAAc,EAAE,CAAC;QACvE,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC;QAC9B,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,CAAC,CAAsC,EAAE,EAAE;QACnE,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAC3B,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,cAAc,GAAG,SAAS,CAAC,iBAAiB,EAAE,CAAC;QACrD,UAAU,CAAC,SAAS,CAAC,CAAC;QACtB,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IAChC,CAAC,CAAC;IAEF,MAAM,mBAAmB,GAAG,CAAC,EAAe,EAAE,EAAE;QAC9C,UAAU,CAAC,EAAE,CAAC,CAAC;QACf,aAAa,CAAC,KAAK,CAAC,CAAC;QACrB,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC1C,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;YACpC,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC1C,UAAU,CAAC,SAAS,CAAC,CAAC;YACtB,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,EAAE,EAAE,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACf,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,OAAO,CAAgB,GAAG,EAAE;QACnD,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,GAAG;aACb,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aAC7B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IAChE,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,EAAE;QACrC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACtC,IAAI,CAAC,CAAC;YAAE,OAAO,gBAAgB,CAAC;QAChC,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE;YACpC,MAAM,IAAI,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YAC3C,MAAM,IAAI,GAAG,qBAAqB,CAAC,EAAE,CAAC,CAAC;YACvC,OAAO,CACL,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAChB,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC5B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CACpC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC;IAE/B,MAAM,MAAM,GAAG,CACb,eAAK,GAAG,EAAE,SAAS,EAAE,SAAS,EAAC,sBAAsB,aACnD,kBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,8BAA8B,EACxC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EACpD,QAAQ,EAAE,QAAQ,gBACN,YAAY,WAAW,CAAC,OAAO,CAAC,EAAE,mBAC/B,UAAU,aAEzB,eAAM,SAAS,EAAC,oBAAoB,YAAE,SAAS,CAAC,OAAO,CAAC,GAAQ,EAChE,gBAAM,SAAS,EAAC,oBAAoB,kBAChC,qBAAqB,CAAC,OAAO,CAAC,IAC3B,EACP,KAAC,eAAe,IAAC,IAAI,EAAE,WAAW,EAAE,SAAS,EAAC,qBAAqB,GAAG,IAC/D,EACR,UAAU,IAAI,CACb,eAAK,SAAS,EAAC,qBAAqB,aAClC,eAAK,SAAS,EAAC,sBAAsB,aACnC,KAAC,eAAe,IAAC,IAAI,EAAE,QAAQ,GAAI,EACnC,gBACE,GAAG,EAAE,SAAS,EACd,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC1C,WAAW,EAAC,wBAAwB,GACpC,IACE,EACN,cAAI,SAAS,EAAC,oBAAoB,EAAC,IAAI,EAAC,SAAS,aAC9C,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAC7B,uBACE,kBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,wBACT,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAChC,EAAE,EACF,OAAO,EAAE,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,CAAC,EACtC,IAAI,EAAC,QAAQ,mBACE,EAAE,KAAK,OAAO,aAE7B,eAAM,SAAS,EAAC,oBAAoB,YAAE,SAAS,CAAC,EAAE,CAAC,GAAQ,EAC3D,eAAM,SAAS,EAAC,oBAAoB,YAAE,WAAW,CAAC,EAAE,CAAC,GAAQ,EAC7D,gBAAM,SAAS,EAAC,oBAAoB,kBAChC,qBAAqB,CAAC,EAAE,CAAC,IACtB,IACA,IAfF,EAAE,CAgBN,CACN,CAAC,EACD,iBAAiB,CAAC,MAAM,KAAK,CAAC,IAAI,CACjC,aAAI,SAAS,EAAC,qBAAqB,2BAAgB,CACpD,IACE,IACD,CACP,IACG,CACP,CAAC;IAEF,OAAO,CACL,KAAC,KAAK,OACA,SAAS,EACb,IAAI,EAAE,IAAI,EACV,IAAI,EAAC,KAAK,EACV,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,iBAAiB,EAC3B,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,IAAI,gBAAgB,EAC5C,MAAM,EAAE,MAAM,EACd,YAAY,EAAC,cAAc,GAC3B,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/inputs/phoneInput/index.tsx"],"names":[],"mappings":"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"}
@@ -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
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/inputs/radioGroup/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,MAAM;IACrC,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,EAAE,SAAS,CAAC;CAClB;AAED,UAAU,eAAe,CAAC,CAAC,GAAG,MAAM;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1B,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,QAAA,MAAM,UAAU,GAAI,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,OAAO,eAAe,CAAC,CAAC,CAAC,gCAoBvE,CAAC;AAEF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/inputs/radioGroup/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,MAAM;IACrC,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,EAAE,SAAS,CAAC;CAClB;AAED,UAAU,eAAe,CAAC,CAAC,GAAG,MAAM;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1B,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,QAAA,MAAM,UAAU,GAAI,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,OAAO,eAAe,CAAC,CAAC,CAAC,gCAqBvE,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -3,7 +3,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import OptionsGroup from "../../forms/optionsGroup/index.js";
4
4
  const RadioGroup = (props) => {
5
5
  const { disabled = false, required = false } = props;
6
- return (_jsx(OptionsGroup, { label: props.label, required: required, children: props.options.map((option, index) => (_jsxs("label", { className: "k-options-group-option", children: [_jsx("input", { type: "radio", name: props.name, value: String(option.value), checked: props.value === option.value, onChange: () => props.onChange(option.value), disabled: disabled }), option.label] }, index))) }));
6
+ return (_jsx(OptionsGroup, { label: props.label, required: required, role: "radiogroup", children: props.options.map((option, index) => (_jsxs("label", { className: "k-options-group-option", children: [_jsx("input", { type: "radio", name: props.name, value: String(option.value), checked: props.value === option.value, onChange: () => props.onChange(option.value), disabled: disabled, required: required }), option.label] }, index))) }));
7
7
  };
8
8
  export default RadioGroup;
9
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/inputs/radioGroup/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,YAAY,MAAM,mCAAmC,CAAC;AAkB7D,MAAM,UAAU,GAAG,CAA4B,KAAyB,EAAE,EAAE;IAC1E,MAAM,EAAE,QAAQ,GAAG,KAAK,EAAE,QAAQ,GAAG,KAAK,EAAE,GAAG,KAAK,CAAC;IAErD,OAAO,CACL,KAAC,YAAY,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,YACjD,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CACpC,iBAAmB,SAAS,EAAC,wBAAwB,aACnD,gBACE,IAAI,EAAC,OAAO,EACZ,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAC3B,OAAO,EAAE,KAAK,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,EACrC,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAC5C,QAAQ,EAAE,QAAQ,GAClB,EACD,MAAM,CAAC,KAAK,KATH,KAAK,CAUT,CACT,CAAC,GACW,CAChB,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/inputs/radioGroup/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,YAAY,MAAM,mCAAmC,CAAC;AAkB7D,MAAM,UAAU,GAAG,CAA4B,KAAyB,EAAE,EAAE;IAC1E,MAAM,EAAE,QAAQ,GAAG,KAAK,EAAE,QAAQ,GAAG,KAAK,EAAE,GAAG,KAAK,CAAC;IAErD,OAAO,CACL,KAAC,YAAY,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAC,YAAY,YACpE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CACpC,iBAAmB,SAAS,EAAC,wBAAwB,aACnD,gBACE,IAAI,EAAC,OAAO,EACZ,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAC3B,OAAO,EAAE,KAAK,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,EACrC,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAC5C,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,GAClB,EACD,MAAM,CAAC,KAAK,KAVH,KAAK,CAWT,CACT,CAAC,GACW,CAChB,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/inputs/richTextEditor/index.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAG/C,OAAO,cAAc,CAAC;AAWtB,UAAU,mBAAoB,SAAQ,aAAa;IACjD;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAC9C,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8EAA8E;IAC9E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4FAA4F;IAC5F,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,qDAAqD;IACrD,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,QAAA,MAAM,cAAc,GAAI,OAAO,mBAAmB,gCAyNjD,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/inputs/richTextEditor/index.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,cAAc,CAAC;AAWtB,UAAU,mBAAoB,SAAQ,aAAa;IACjD;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAC9C,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8EAA8E;IAC9E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4FAA4F;IAC5F,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,qDAAqD;IACrD,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,QAAA,MAAM,cAAc,GAAI,OAAO,mBAAmB,gCA+OjD,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -4,9 +4,9 @@ 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 StarterKit from "@tiptap/starter-kit";
9
- import { useState, useEffect } from "react";
10
10
  import "./styles.css";
11
11
  import { faUnderline, faTextSlash, faItalic, faListUl, faListOl, faBold, faCode, } from "@fortawesome/free-solid-svg-icons";
12
12
  const RichTextEditor = (props) => {
@@ -14,7 +14,9 @@ const RichTextEditor = (props) => {
14
14
  const [showHtml, setShowHtml] = useState(false);
15
15
  const [charCount, setCharCount] = useState(0);
16
16
  const [isInitialized, setIsInitialized] = useState(false);
17
- const fieldId = props.id || `richtext-${Math.random().toString(36).substring(2, 9)}`;
17
+ const generatedId = useId();
18
+ const fieldId = props.id || `richtext-${generatedId}`;
19
+ const labelId = `${fieldId}-label`;
18
20
  const cleanHtml = (html) => {
19
21
  // Remove trailing empty <p></p> tags
20
22
  let cleanedHtml = html.replace(/(<p><\/p>)+$/g, "");
@@ -30,6 +32,10 @@ const RichTextEditor = (props) => {
30
32
  return cleanedHtml;
31
33
  };
32
34
  const editor = useEditor({
35
+ // TipTap would create the editor during render outside Next.js but after
36
+ // mount inside it (warning in dev). Always after mount, so `editor` starts
37
+ // null everywhere and the null handling below has one code path.
38
+ immediatelyRender: false,
33
39
  extensions: [
34
40
  StarterKit,
35
41
  Placeholder.configure({
@@ -37,6 +43,15 @@ const RichTextEditor = (props) => {
37
43
  }),
38
44
  ],
39
45
  content: props.value,
46
+ editorProps: {
47
+ attributes: {
48
+ "aria-multiline": "true",
49
+ ...(props.required ? { "aria-required": "true" } : {}),
50
+ ...(props.label
51
+ ? { "aria-labelledby": labelId }
52
+ : { "aria-label": props.placeholder ?? "Rich text editor" }),
53
+ },
54
+ },
40
55
  editable: !disabled,
41
56
  autofocus: props.autofocus,
42
57
  onUpdate: ({ editor }) => {
@@ -53,16 +68,15 @@ const RichTextEditor = (props) => {
53
68
  });
54
69
  const editorState = useEditorState({
55
70
  editor,
56
- selector: ({ editor }) => {
57
- return {
58
- isBold: editor.isActive("bold"),
59
- isItalic: editor.isActive("italic"),
60
- isUnderlined: editor.isActive("underline"),
61
- isBulletedList: editor.isActive("bulletList"),
62
- isNumberedList: editor.isActive("orderedList"),
63
- };
64
- },
71
+ selector: ({ editor }) => ({
72
+ isBold: editor?.isActive("bold") ?? false,
73
+ isItalic: editor?.isActive("italic") ?? false,
74
+ isUnderlined: editor?.isActive("underline") ?? false,
75
+ isBulletedList: editor?.isActive("bulletList") ?? false,
76
+ isNumberedList: editor?.isActive("orderedList") ?? false,
77
+ }),
65
78
  });
79
+ const toolbarDisabled = !editor || showHtml || disabled;
66
80
  useEffect(() => {
67
81
  if (editor) {
68
82
  editor.setEditable(!disabled);
@@ -80,27 +94,23 @@ const RichTextEditor = (props) => {
80
94
  const cleanedCurrent = cleanHtml(currentHtml) || "";
81
95
  const cleanedNew = cleanHtml(newValue) || "";
82
96
  if (cleanedCurrent !== cleanedNew) {
83
- // Temporarily mark as not initialized to prevent onChange from firing
84
- // during external content sync
85
- setIsInitialized(false);
86
- editor.commands.setContent(newValue);
87
- // Re-enable after a short delay to allow content to settle
88
- setTimeout(() => setIsInitialized(true), 0);
97
+ // An outside value isn't an edit, so don't echo it back to onChange.
98
+ editor.commands.setContent(newValue, { emitUpdate: false });
89
99
  }
90
100
  const textContent = editor.state.doc.textContent;
91
101
  setCharCount(textContent.length);
92
102
  }
93
103
  }, [props.value, editor]);
94
- return (_jsxs("div", { className: `k-richtext-container k-richtext-container-${size}`, children: [props.label && (_jsxs("div", { className: "k-richtext-label-wrapper", children: [_jsxs("label", { htmlFor: fieldId, className: "k-richtext-label", children: [props.label, props.required && _jsx(MandatoryAsterisk, {})] }), props.showCharCount && (_jsx("span", { className: "k-richtext-char-count", children: charCount }))] })), _jsxs("div", { id: fieldId, className: `k-editor-wrapper ${disabled ? "k-editor-wrapper-disabled" : ""}`, children: [_jsxs("div", { className: "k-editor-toolbar", children: [_jsx(Tooltip, { content: "Bold", position: "top", children: _jsx(IconButton, { icon: faBold, size: size, variant: editorState.isBold ? "primary" : "secondary", onClick: () => editor.chain().focus().toggleBold().run(), disabled: showHtml || disabled }) }), _jsx(Tooltip, { content: "Italic", position: "top", children: _jsx(IconButton, { icon: faItalic, size: size, variant: editorState.isItalic ? "primary" : "secondary", onClick: () => editor.chain().focus().toggleItalic().run(), disabled: showHtml || disabled }) }), _jsx(Tooltip, { content: "Underline", position: "top", children: _jsx(IconButton, { icon: faUnderline, size: size, variant: editorState.isUnderlined ? "primary" : "secondary", onClick: () => editor.chain().focus().toggleUnderline().run(), disabled: showHtml || disabled }) }), _jsx("div", { className: "k-toolbar-separator" }), _jsx(Tooltip, { content: "Bullet List", position: "top", children: _jsx(IconButton, { icon: faListUl, size: size, variant: editorState.isBulletedList ? "primary" : "secondary", onClick: () => editor.chain().focus().toggleBulletList().run(), disabled: showHtml || disabled }) }), _jsx(Tooltip, { content: "Numbered List", position: "top", children: _jsx(IconButton, { icon: faListOl, size: size, variant: editorState.isNumberedList ? "primary" : "secondary", onClick: () => editor.chain().focus().toggleOrderedList().run(), disabled: showHtml || disabled }) }), _jsx("div", { className: "k-toolbar-separator" }), _jsx(Tooltip, { content: "Clear Formatting", position: "top", children: _jsx(IconButton, { icon: faTextSlash, size: size, variant: "secondary", onClick: () => {
104
+ return (_jsxs("div", { className: `k-richtext-container k-richtext-container-${size}`, children: [props.label && (_jsxs("div", { className: "k-richtext-label-wrapper", children: [_jsxs("label", { id: labelId, className: "k-richtext-label", children: [props.label, props.required && _jsx(MandatoryAsterisk, {})] }), props.showCharCount && (_jsx("span", { className: "k-richtext-char-count", children: charCount }))] })), _jsxs("div", { id: fieldId, className: `k-editor-wrapper ${disabled ? "k-editor-wrapper-disabled" : ""}`, children: [_jsxs("div", { className: "k-editor-toolbar", children: [_jsx(Tooltip, { content: "Bold", position: "top", children: _jsx(IconButton, { icon: faBold, "aria-label": "Bold", "aria-pressed": editorState?.isBold, size: size, variant: editorState?.isBold ? "primary" : "secondary", onClick: () => editor?.chain().focus().toggleBold().run(), disabled: toolbarDisabled }) }), _jsx(Tooltip, { content: "Italic", position: "top", children: _jsx(IconButton, { icon: faItalic, "aria-label": "Italic", "aria-pressed": editorState?.isItalic, size: size, variant: editorState?.isItalic ? "primary" : "secondary", onClick: () => editor?.chain().focus().toggleItalic().run(), disabled: toolbarDisabled }) }), _jsx(Tooltip, { content: "Underline", position: "top", children: _jsx(IconButton, { icon: faUnderline, "aria-label": "Underline", "aria-pressed": editorState?.isUnderlined, size: size, variant: editorState?.isUnderlined ? "primary" : "secondary", onClick: () => editor?.chain().focus().toggleUnderline().run(), disabled: toolbarDisabled }) }), _jsx("div", { className: "k-toolbar-separator" }), _jsx(Tooltip, { content: "Bullet List", position: "top", children: _jsx(IconButton, { icon: faListUl, "aria-label": "Bullet list", "aria-pressed": editorState?.isBulletedList, size: size, variant: editorState?.isBulletedList ? "primary" : "secondary", onClick: () => editor?.chain().focus().toggleBulletList().run(), disabled: toolbarDisabled }) }), _jsx(Tooltip, { content: "Numbered List", position: "top", children: _jsx(IconButton, { icon: faListOl, "aria-label": "Numbered list", "aria-pressed": editorState?.isNumberedList, size: size, variant: editorState?.isNumberedList ? "primary" : "secondary", onClick: () => editor?.chain().focus().toggleOrderedList().run(), disabled: toolbarDisabled }) }), _jsx("div", { className: "k-toolbar-separator" }), _jsx(Tooltip, { content: "Clear Formatting", position: "top", children: _jsx(IconButton, { icon: faTextSlash, "aria-label": "Clear formatting", size: size, variant: "secondary", onClick: () => {
95
105
  editor
96
- .chain()
106
+ ?.chain()
97
107
  .focus()
98
108
  .selectAll()
99
109
  .clearNodes()
100
110
  .unsetAllMarks()
101
111
  .setTextSelection(0)
102
112
  .run();
103
- }, disabled: showHtml || disabled }) }), _jsx("div", { className: "k-toolbar-separator" }), _jsx(Tooltip, { content: showHtml ? "Show Editor" : "Show HTML", position: "top", children: _jsx(IconButton, { icon: faCode, size: size, variant: showHtml ? "primary" : "secondary", onClick: () => setShowHtml(!showHtml), disabled: disabled }) })] }), showHtml && editor ? (_jsx("pre", { className: "k-html-section", children: (() => {
113
+ }, disabled: toolbarDisabled }) }), _jsx("div", { className: "k-toolbar-separator" }), _jsx(Tooltip, { content: showHtml ? "Show Editor" : "Show HTML", position: "top", children: _jsx(IconButton, { icon: faCode, "aria-label": showHtml ? "Show editor" : "Show HTML", size: size, variant: showHtml ? "primary" : "secondary", onClick: () => setShowHtml(!showHtml), disabled: !editor || disabled }) })] }), showHtml && editor ? (_jsx("pre", { className: "k-html-section", children: (() => {
104
114
  const cleaned = cleanHtml(editor?.getHTML());
105
115
  return cleaned
106
116
  ? cleaned