@kiva/kv-components 7.6.3 → 8.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 (336) hide show
  1. package/.eslintignore +5 -0
  2. package/.github/copilot-instructions.md +11 -0
  3. package/AGENTS.md +184 -0
  4. package/CLAUDE.md +11 -0
  5. package/GEMINI.md +11 -0
  6. package/dist/index.d.ts +3 -0
  7. package/dist/index.js +236 -216
  8. package/dist/utils/Alea.d.ts +9 -0
  9. package/dist/utils/Alea.js +23 -23
  10. package/dist/utils/arrayUtils.d.ts +3 -0
  11. package/dist/utils/arrayUtils.js +1 -1
  12. package/dist/utils/attrs.d.ts +6 -0
  13. package/dist/utils/carousels.d.ts +21 -0
  14. package/dist/utils/comparators.d.ts +3 -0
  15. package/dist/utils/comparators.js +20 -6
  16. package/dist/utils/debounce.d.ts +1 -0
  17. package/dist/utils/debounce.js +4 -4
  18. package/dist/utils/event.d.ts +1 -0
  19. package/dist/utils/event.js +7 -0
  20. package/dist/utils/expander.d.ts +14 -0
  21. package/dist/utils/imageUtils.d.ts +11 -0
  22. package/dist/utils/imageUtils.js +12 -12
  23. package/dist/utils/index.d.ts +21 -0
  24. package/dist/utils/loanCard.d.ts +35 -0
  25. package/dist/utils/loanCard.js +2 -2
  26. package/dist/utils/loanSearch/queryParamUtils.d.ts +1 -0
  27. package/dist/utils/loanUtils.d.ts +11 -0
  28. package/dist/utils/loanUtils.js +56 -53
  29. package/dist/utils/mapUtils.d.ts +5 -0
  30. package/dist/utils/markMatches.d.ts +1 -0
  31. package/dist/utils/paramCase.d.ts +1 -0
  32. package/dist/utils/printing.d.ts +2 -0
  33. package/dist/utils/scrollLock.d.ts +4 -0
  34. package/dist/utils/themeUtils.d.ts +12 -0
  35. package/dist/utils/throttle.d.ts +1 -0
  36. package/dist/utils/throttle.js +4 -4
  37. package/dist/utils/touchEvents.d.ts +3 -0
  38. package/dist/utils/touchEvents.js +9 -9
  39. package/dist/utils/treemap.d.ts +16 -0
  40. package/dist/utils/treemap.js +1 -1
  41. package/dist/vue/KvAccordionItem.js +28 -82
  42. package/dist/vue/KvAccordionItem.vue.d.ts +107 -0
  43. package/dist/vue/KvAccordionItem2.js +60 -0
  44. package/dist/vue/KvActivityRow.js +11 -22
  45. package/dist/vue/KvActivityRow.vue.d.ts +66 -0
  46. package/dist/vue/KvActivityRow2.js +16 -0
  47. package/dist/vue/KvAtbModal.css +1 -1
  48. package/dist/vue/KvAtbModal.js +68 -248
  49. package/dist/vue/KvAtbModal.vue.d.ts +359 -0
  50. package/dist/vue/KvAtbModal2.js +186 -0
  51. package/dist/vue/KvBorrowerImage.js +17 -118
  52. package/dist/vue/KvBorrowerImage.vue.d.ts +62 -0
  53. package/dist/vue/KvBorrowerImage2.js +106 -0
  54. package/dist/vue/KvButton.js +20 -164
  55. package/dist/vue/KvButton.vue.d.ts +94 -0
  56. package/dist/vue/KvButton2.js +149 -0
  57. package/dist/vue/KvCardFrame.js +12 -74
  58. package/dist/vue/KvCardFrame.vue.d.ts +86 -0
  59. package/dist/vue/KvCardFrame2.js +67 -0
  60. package/dist/vue/KvCarousel.css +1 -1
  61. package/dist/vue/KvCarousel.js +55 -192
  62. package/dist/vue/KvCarousel.vue.d.ts +135 -0
  63. package/dist/vue/KvCarousel2.js +142 -0
  64. package/dist/vue/KvCartModal.css +1 -1
  65. package/dist/vue/KvCartModal.js +31 -131
  66. package/dist/vue/KvCartModal.vue.d.ts +163 -0
  67. package/dist/vue/KvCartModal2.js +106 -0
  68. package/dist/vue/KvCartPill.js +12 -51
  69. package/dist/vue/KvCartPill.vue.d.ts +52 -0
  70. package/dist/vue/KvCartPill2.js +45 -0
  71. package/dist/vue/KvCheckbox.css +1 -1
  72. package/dist/vue/KvCheckbox.js +30 -126
  73. package/dist/vue/KvCheckbox.vue.d.ts +90 -0
  74. package/dist/vue/KvCheckbox2.js +102 -0
  75. package/dist/vue/KvCheckoutReceipt.css +1 -1
  76. package/dist/vue/KvCheckoutReceipt.js +120 -199
  77. package/dist/vue/KvCheckoutReceipt.vue.d.ts +164 -0
  78. package/dist/vue/KvCheckoutReceipt2.js +85 -0
  79. package/dist/vue/KvChip.js +12 -29
  80. package/dist/vue/KvChip.vue.d.ts +22 -0
  81. package/dist/vue/KvChip2.js +22 -0
  82. package/dist/vue/KvClassicLoanCard.css +1 -1
  83. package/dist/vue/KvClassicLoanCard.js +83 -351
  84. package/dist/vue/KvClassicLoanCard.vue.d.ts +2120 -0
  85. package/dist/vue/KvClassicLoanCard2.js +281 -0
  86. package/dist/vue/KvCommentsAdd.css +1 -1
  87. package/dist/vue/KvCommentsAdd.js +34 -81
  88. package/dist/vue/KvCommentsAdd.vue.d.ts +296 -0
  89. package/dist/vue/KvCommentsAdd2.js +57 -0
  90. package/dist/vue/KvCommentsContainer.js +15 -66
  91. package/dist/vue/KvCommentsContainer.vue.d.ts +954 -0
  92. package/dist/vue/KvCommentsContainer2.js +58 -0
  93. package/dist/vue/KvCommentsHeartButton.css +1 -1
  94. package/dist/vue/KvCommentsHeartButton.js +12 -51
  95. package/dist/vue/KvCommentsHeartButton.vue.d.ts +42 -0
  96. package/dist/vue/KvCommentsHeartButton2.js +44 -0
  97. package/dist/vue/KvCommentsList.js +9 -51
  98. package/dist/vue/KvCommentsList.vue.d.ts +619 -0
  99. package/dist/vue/KvCommentsList2.js +46 -0
  100. package/dist/vue/KvCommentsListItem.js +62 -186
  101. package/dist/vue/KvCommentsListItem.vue.d.ts +571 -0
  102. package/dist/vue/KvCommentsListItem2.js +135 -0
  103. package/dist/vue/KvCommentsReplyButton.css +1 -1
  104. package/dist/vue/KvCommentsReplyButton.js +8 -17
  105. package/dist/vue/KvCommentsReplyButton.vue.d.ts +98 -0
  106. package/dist/vue/KvCommentsReplyButton2.js +13 -0
  107. package/dist/vue/KvCompactLoanCard.css +1 -1
  108. package/dist/vue/KvCompactLoanCard.js +71 -327
  109. package/dist/vue/KvCompactLoanCard.vue.d.ts +1272 -0
  110. package/dist/vue/KvCompactLoanCard2.js +269 -0
  111. package/dist/vue/KvContentfulImg.js +51 -164
  112. package/dist/vue/KvContentfulImg.vue.d.ts +107 -0
  113. package/dist/vue/KvContentfulImg2.js +119 -0
  114. package/dist/vue/KvCountdownTimer.js +8 -28
  115. package/dist/vue/KvCountdownTimer.vue.d.ts +15 -0
  116. package/dist/vue/KvCountdownTimer2.js +26 -0
  117. package/dist/vue/KvDatePicker.js +21 -101
  118. package/dist/vue/KvDatePicker.vue.d.ts +58 -0
  119. package/dist/vue/KvDatePicker2.js +86 -0
  120. package/dist/vue/KvExpandable.js +9 -56
  121. package/dist/vue/KvExpandable.vue.d.ts +53 -0
  122. package/dist/vue/KvExpandable2.js +52 -0
  123. package/dist/vue/KvExpandableQuestion.js +23 -82
  124. package/dist/vue/KvExpandableQuestion.vue.d.ts +124 -0
  125. package/dist/vue/KvExpandableQuestion2.js +65 -0
  126. package/dist/vue/KvFlag.css +1 -1
  127. package/dist/vue/KvFlag.js +16 -617
  128. package/dist/vue/KvFlag.vue.d.ts +66 -0
  129. package/dist/vue/KvFlag2.js +606 -0
  130. package/dist/vue/KvGrid.js +7 -18
  131. package/dist/vue/KvGrid.vue.d.ts +14 -0
  132. package/dist/vue/KvGrid2.js +15 -0
  133. package/dist/vue/KvIconBag.js +12 -18
  134. package/dist/vue/KvIconBag.vue.d.ts +14 -0
  135. package/dist/vue/KvIconBag2.js +11 -0
  136. package/dist/vue/KvImpactDashboardHeader.vue.d.ts +17 -0
  137. package/dist/vue/KvImpactVerticalSelector.js +31 -110
  138. package/dist/vue/KvImpactVerticalSelector.vue.d.ts +278 -0
  139. package/dist/vue/KvImpactVerticalSelector2.js +85 -0
  140. package/dist/vue/KvInlineActivityCard.js +15 -44
  141. package/dist/vue/KvInlineActivityCard.vue.d.ts +71 -0
  142. package/dist/vue/KvInlineActivityCard2.js +35 -0
  143. package/dist/vue/KvInlineActivityFeed.css +1 -1
  144. package/dist/vue/KvInlineActivityFeed.js +11 -23
  145. package/dist/vue/KvInlineActivityFeed.vue.d.ts +85 -0
  146. package/dist/vue/KvInlineActivityFeed2.js +17 -0
  147. package/dist/vue/KvIntroductionLoanCard.css +1 -1
  148. package/dist/vue/KvIntroductionLoanCard.js +111 -309
  149. package/dist/vue/KvIntroductionLoanCard.vue.d.ts +617 -0
  150. package/dist/vue/KvIntroductionLoanCard2.js +209 -0
  151. package/dist/vue/KvLendAmountButton.js +9 -53
  152. package/dist/vue/KvLendAmountButton.vue.d.ts +140 -0
  153. package/dist/vue/KvLendAmountButton2.js +48 -0
  154. package/dist/vue/KvLendCta.css +1 -1
  155. package/dist/vue/KvLendCta.js +150 -530
  156. package/dist/vue/KvLendCta.vue.d.ts +583 -0
  157. package/dist/vue/KvLendCta2.js +387 -0
  158. package/dist/vue/KvLightbox.js +37 -148
  159. package/dist/vue/KvLightbox.vue.d.ts +77 -0
  160. package/dist/vue/KvLightbox2.js +117 -0
  161. package/dist/vue/KvLineGraph.js +25 -58
  162. package/dist/vue/KvLineGraph.vue.d.ts +35 -0
  163. package/dist/vue/KvLineGraph2.js +39 -0
  164. package/dist/vue/KvLoadingPlaceholder.vue.d.ts +2 -0
  165. package/dist/vue/KvLoadingSpinner.js +9 -34
  166. package/dist/vue/KvLoadingSpinner.vue.d.ts +27 -0
  167. package/dist/vue/KvLoadingSpinner2.js +29 -0
  168. package/dist/vue/KvLoanActivities.css +1 -1
  169. package/dist/vue/KvLoanActivities.js +37 -179
  170. package/dist/vue/KvLoanActivities.vue.d.ts +853 -0
  171. package/dist/vue/KvLoanActivities2.js +151 -0
  172. package/dist/vue/KvLoanBookmark.js +14 -40
  173. package/dist/vue/KvLoanBookmark.vue.d.ts +32 -0
  174. package/dist/vue/KvLoanBookmark2.js +32 -0
  175. package/dist/vue/KvLoanCallouts.css +1 -1
  176. package/dist/vue/KvLoanCallouts.js +10 -17
  177. package/dist/vue/KvLoanCallouts.vue.d.ts +18 -0
  178. package/dist/vue/KvLoanCallouts2.js +12 -0
  179. package/dist/vue/KvLoanInfoCard.js +20 -19
  180. package/dist/vue/KvLoanProgressGroup.css +1 -1
  181. package/dist/vue/KvLoanProgressGroup.js +18 -57
  182. package/dist/vue/KvLoanProgressGroup.vue.d.ts +108 -0
  183. package/dist/vue/KvLoanProgressGroup2.js +44 -0
  184. package/dist/vue/KvLoanTag.js +15 -103
  185. package/dist/vue/KvLoanTag.vue.d.ts +46 -0
  186. package/dist/vue/KvLoanTag2.js +94 -0
  187. package/dist/vue/KvLoanTeamPick.vue.d.ts +2 -0
  188. package/dist/vue/KvLoanUse.js +12 -100
  189. package/dist/vue/KvLoanUse.vue.d.ts +120 -0
  190. package/dist/vue/KvLoanUse2.js +95 -0
  191. package/dist/vue/KvLogo.vue.d.ts +2 -0
  192. package/dist/vue/KvMap.js +13 -381
  193. package/dist/vue/KvMap.vue.d.ts +213 -0
  194. package/dist/vue/KvMap2.js +376 -0
  195. package/dist/vue/KvMaterialIcon.js +10 -20
  196. package/dist/vue/KvMaterialIcon.vue.d.ts +14 -0
  197. package/dist/vue/KvMaterialIcon2.js +15 -0
  198. package/dist/vue/KvPageContainer.js +9 -8
  199. package/dist/vue/KvPageContainer.vue.d.ts +2 -0
  200. package/dist/vue/KvPageContainer2.js +4 -0
  201. package/dist/vue/KvPagination.js +38 -138
  202. package/dist/vue/KvPagination.vue.d.ts +107 -0
  203. package/dist/vue/KvPagination2.js +105 -0
  204. package/dist/vue/KvPieChart.css +1 -1
  205. package/dist/vue/KvPieChart.js +49 -128
  206. package/dist/vue/KvPieChart.vue.d.ts +47 -0
  207. package/dist/vue/KvPieChart2.js +85 -0
  208. package/dist/vue/KvPill.js +9 -19
  209. package/dist/vue/KvPill.vue.d.ts +23 -0
  210. package/dist/vue/KvPill2.js +15 -0
  211. package/dist/vue/KvPopper.js +14 -122
  212. package/dist/vue/KvPopper.vue.d.ts +80 -0
  213. package/dist/vue/KvPopper2.js +113 -0
  214. package/dist/vue/KvProgressBar.js +17 -112
  215. package/dist/vue/KvProgressBar.vue.d.ts +70 -0
  216. package/dist/vue/KvProgressBar2.js +101 -0
  217. package/dist/vue/KvPulsingDot.css +1 -1
  218. package/dist/vue/KvPulsingDot.js +11 -25
  219. package/dist/vue/KvPulsingDot.vue.d.ts +23 -0
  220. package/dist/vue/KvPulsingDot2.js +19 -0
  221. package/dist/vue/KvRadio.js +23 -106
  222. package/dist/vue/KvRadio.vue.d.ts +62 -0
  223. package/dist/vue/KvRadio2.js +89 -0
  224. package/dist/vue/KvSecondaryNav.css +1 -1
  225. package/dist/vue/KvSecondaryNav.js +46 -122
  226. package/dist/vue/KvSecondaryNav.vue.d.ts +117 -0
  227. package/dist/vue/KvSecondaryNav2.js +82 -0
  228. package/dist/vue/KvSelect.css +1 -1
  229. package/dist/vue/KvSelect.js +18 -78
  230. package/dist/vue/KvSelect.vue.d.ts +58 -0
  231. package/dist/vue/KvSelect2.js +66 -0
  232. package/dist/vue/KvSideSheet.js +44 -262
  233. package/dist/vue/KvSideSheet.vue.d.ts +136 -0
  234. package/dist/vue/KvSideSheet2.js +224 -0
  235. package/dist/vue/KvSwitch.js +23 -76
  236. package/dist/vue/KvSwitch.vue.d.ts +34 -0
  237. package/dist/vue/KvSwitch2.js +59 -0
  238. package/dist/vue/KvTab.js +15 -57
  239. package/dist/vue/KvTab.vue.d.ts +34 -0
  240. package/dist/vue/KvTab2.js +48 -0
  241. package/dist/vue/KvTabPanel.js +14 -36
  242. package/dist/vue/KvTabPanel.vue.d.ts +14 -0
  243. package/dist/vue/KvTabPanel2.js +28 -0
  244. package/dist/vue/KvTabs.js +21 -75
  245. package/dist/vue/KvTabs.vue.d.ts +22 -0
  246. package/dist/vue/KvTabs2.js +60 -0
  247. package/dist/vue/KvTextInput.js +28 -148
  248. package/dist/vue/KvTextInput.vue.d.ts +105 -0
  249. package/dist/vue/KvTextInput2.js +126 -0
  250. package/dist/vue/KvTextLink.js +13 -76
  251. package/dist/vue/KvTextLink.vue.d.ts +64 -0
  252. package/dist/vue/KvTextLink2.js +68 -0
  253. package/dist/vue/KvThemeProvider.js +8 -59
  254. package/dist/vue/KvThemeProvider.vue.d.ts +23 -0
  255. package/dist/vue/KvThemeProvider2.js +55 -0
  256. package/dist/vue/KvToast.js +32 -69
  257. package/dist/vue/KvToast.vue.d.ts +31 -0
  258. package/dist/vue/KvToast2.js +43 -0
  259. package/dist/vue/KvTooltip.css +1 -1
  260. package/dist/vue/KvTooltip.js +27 -123
  261. package/dist/vue/KvTooltip.vue.d.ts +2 -0
  262. package/dist/vue/KvTooltip2.js +103 -0
  263. package/dist/vue/KvTreeMapChart.css +1 -1
  264. package/dist/vue/KvTreeMapChart.js +28 -156
  265. package/dist/vue/KvTreeMapChart.vue.d.ts +60 -0
  266. package/dist/vue/KvTreeMapChart2.js +133 -0
  267. package/dist/vue/KvUserAvatar.js +28 -110
  268. package/dist/vue/KvUserAvatar.vue.d.ts +55 -0
  269. package/dist/vue/KvUserAvatar2.js +88 -0
  270. package/dist/vue/KvUtilityMenu.js +19 -95
  271. package/dist/vue/KvUtilityMenu.vue.d.ts +104 -0
  272. package/dist/vue/KvUtilityMenu2.js +81 -0
  273. package/dist/vue/KvVerticalCarousel.js +40 -137
  274. package/dist/vue/KvVerticalCarousel.vue.d.ts +90 -0
  275. package/dist/vue/KvVerticalCarousel2.js +103 -0
  276. package/dist/vue/KvVotingCard.css +1 -1
  277. package/dist/vue/KvVotingCard.js +31 -88
  278. package/dist/vue/KvVotingCard.vue.d.ts +249 -0
  279. package/dist/vue/KvVotingCard2.js +63 -0
  280. package/dist/vue/KvVotingCardV2.js +35 -90
  281. package/dist/vue/KvVotingCardV2.vue.d.ts +308 -0
  282. package/dist/vue/KvVotingCardV22.js +61 -0
  283. package/dist/vue/KvWideLoanCard.css +1 -1
  284. package/dist/vue/KvWideLoanCard.js +66 -274
  285. package/dist/vue/KvWideLoanCard.vue.d.ts +1191 -0
  286. package/dist/vue/KvWideLoanCard2.js +220 -0
  287. package/dist/vue/KvWwwHeader/KvHeaderAboutMenu.js +34 -38
  288. package/dist/vue/KvWwwHeader/KvHeaderAboutMenu.vue.d.ts +20 -0
  289. package/dist/vue/KvWwwHeader/KvHeaderAboutMenu2.js +9 -0
  290. package/dist/vue/KvWwwHeader/KvHeaderDropdownLink.js +20 -83
  291. package/dist/vue/KvWwwHeader/KvHeaderDropdownLink.vue.d.ts +91 -0
  292. package/dist/vue/KvWwwHeader/KvHeaderDropdownLink2.js +69 -0
  293. package/dist/vue/KvWwwHeader/KvHeaderLinkBar.css +1 -1
  294. package/dist/vue/KvWwwHeader/KvHeaderLinkBar.js +77 -248
  295. package/dist/vue/KvWwwHeader/KvHeaderLinkBar.vue.d.ts +1071 -0
  296. package/dist/vue/KvWwwHeader/KvHeaderLinkBar2.js +178 -0
  297. package/dist/vue/KvWwwHeader/KvHeaderLogo.js +8 -12
  298. package/dist/vue/KvWwwHeader/KvHeaderLogo.vue.d.ts +4 -0
  299. package/dist/vue/KvWwwHeader/KvHeaderLogo2.js +9 -0
  300. package/dist/vue/KvWwwHeader/KvHeaderMenuLink.vue.d.ts +17 -0
  301. package/dist/vue/KvWwwHeader/KvHeaderMobileMenu.css +1 -1
  302. package/dist/vue/KvWwwHeader/KvHeaderMobileMenu.js +37 -91
  303. package/dist/vue/KvWwwHeader/KvHeaderMobileMenu.vue.d.ts +162 -0
  304. package/dist/vue/KvWwwHeader/KvHeaderMobileMenu2.js +59 -0
  305. package/dist/vue/KvWwwHeader/KvHeaderMyKivaMenu.js +36 -58
  306. package/dist/vue/KvWwwHeader/KvHeaderMyKivaMenu.vue.d.ts +59 -0
  307. package/dist/vue/KvWwwHeader/KvHeaderMyKivaMenu2.js +27 -0
  308. package/dist/vue/KvWwwHeader/KvHeaderTakeActionMenu.js +20 -24
  309. package/dist/vue/KvWwwHeader/KvHeaderTakeActionMenu.vue.d.ts +20 -0
  310. package/dist/vue/KvWwwHeader/KvHeaderTakeActionMenu2.js +9 -0
  311. package/dist/vue/KvWwwHeader/LendMenu/KvLendListMenu.css +1 -1
  312. package/dist/vue/KvWwwHeader/LendMenu/KvLendListMenu.js +105 -181
  313. package/dist/vue/KvWwwHeader/LendMenu/KvLendListMenu.vue.d.ts +319 -0
  314. package/dist/vue/KvWwwHeader/LendMenu/KvLendListMenu2.js +82 -0
  315. package/dist/vue/KvWwwHeader/LendMenu/KvLendMegaMenu.css +1 -1
  316. package/dist/vue/KvWwwHeader/LendMenu/KvLendMegaMenu.js +93 -173
  317. package/dist/vue/KvWwwHeader/LendMenu/KvLendMegaMenu.vue.d.ts +166 -0
  318. package/dist/vue/KvWwwHeader/LendMenu/KvLendMegaMenu2.js +86 -0
  319. package/dist/vue/KvWwwHeader/LendMenu/KvLendMenu.js +17 -157
  320. package/dist/vue/KvWwwHeader/LendMenu/KvLendMenu.vue.d.ts +506 -0
  321. package/dist/vue/KvWwwHeader/LendMenu/KvLendMenu2.js +145 -0
  322. package/dist/vue/KvWwwHeader/LendMenu/KvLendMenuCountryList.css +1 -1
  323. package/dist/vue/KvWwwHeader/LendMenu/KvLendMenuCountryList.js +11 -18
  324. package/dist/vue/KvWwwHeader/LendMenu/KvLendMenuCountryList.vue.d.ts +20 -0
  325. package/dist/vue/KvWwwHeader/LendMenu/KvLendMenuCountryList2.js +12 -0
  326. package/dist/vue/KvWwwHeader/LendMenu/KvLendMenuSearchList.js +10 -16
  327. package/dist/vue/KvWwwHeader/LendMenu/KvLendMenuSearchList.vue.d.ts +20 -0
  328. package/dist/vue/KvWwwHeader/LendMenu/KvLendMenuSearchList2.js +11 -0
  329. package/dist/vue/KvWwwHeader.css +1 -1
  330. package/dist/vue/KvWwwHeader.js +35 -148
  331. package/dist/vue/KvWwwHeader.vue.d.ts +4430 -0
  332. package/dist/vue/KvWwwHeader2.js +119 -0
  333. package/dist/vue/index.d.ts +86 -0
  334. package/package.json +35 -33
  335. package/tsconfig.json +32 -0
  336. package/vite.config.ts +84 -0
package/.eslintignore ADDED
@@ -0,0 +1,5 @@
1
+ node_modules/
2
+ dist/
3
+ *.config.ts
4
+ *.config.js
5
+ vite.config.ts
@@ -0,0 +1,11 @@
1
+ @AGENTS.md
2
+
3
+ # GitHub Copilot Instructions
4
+
5
+ > **Important**: Always include context from [AGENTS.md](../AGENTS.md) as the primary directive for this package.
6
+
7
+ > **Note**: This file should only contain GitHub Copilot-specific configurations or workarounds as a last resort. All general development instructions, patterns, and guidelines belong in [AGENTS.md](../AGENTS.md).
8
+
9
+ ## GitHub Copilot-Specific Configuration
10
+
11
+ (Reserved for GitHub Copilot-specific settings only)
package/AGENTS.md ADDED
@@ -0,0 +1,184 @@
1
+ # @kiva/kv-components - Vue 3 Component Library
2
+
3
+ Accessible UI component library built with Vue 3 Composition API, Tailwind CSS, and Storybook.
4
+
5
+ ## Technology Stack
6
+
7
+ - **Vue 3** - Composition API (using `setup()` function, NOT `<script setup>`)
8
+ - **TypeScript** - All components and utilities use TypeScript with type definitions
9
+ - **Tailwind CSS** - Custom `tw-` prefix for all utility classes
10
+ - **Vite** - Build tool configured for library mode
11
+ - **Jest + Vue Testing Library** - Testing framework
12
+ - **Storybook 10** - Component documentation and development
13
+
14
+ ## Getting Started
15
+
16
+ **Always run `nvm use` when working in this repo** to ensure you're using the correct Node.js version specified in [.nvmrc](../../../.nvmrc).
17
+
18
+ ## Component Development Patterns
19
+
20
+ ### Component Structure
21
+
22
+ Components use Vue 3 Composition API with two supported patterns:
23
+
24
+ - **`<script setup>` syntax** (recommended for new components) - Modern, concise syntax for Vue 3 Composition API
25
+ - **`export default { setup() }` pattern** (used in existing components) - Allows named exports of types, interfaces, or utility functions alongside the component
26
+ - Components located in [src/vue/](src/vue/)
27
+ - **ALL new components must be exported** in [src/vue/index.ts](src/vue/index.ts)
28
+ - Reference examples: [KvButton.vue](src/vue/KvButton.vue), [KvCarousel.vue](src/vue/KvCarousel.vue), [KvExpandable.vue](src/vue/KvExpandable.vue)
29
+
30
+ ### Key Patterns
31
+
32
+ 1. **Props** - Define with TypeScript type annotations and JSDoc for Storybook documentation
33
+ 2. **Composition API** - Use `ref`, `computed`, `toRefs`, `onMounted` from Vue
34
+ 3. **Utilities** - See [attrs.ts](src/utils/attrs.ts) for splitting attrs/listeners
35
+ 4. **Slots** - Provide flexible content projection
36
+ 5. **v-model** - Use `modelValue` prop and `update:modelValue` emit for Vue 3
37
+ 6. **Accessibility** - ARIA labels, semantic HTML, keyboard navigation required
38
+
39
+ ## Styling Guidelines
40
+
41
+ ### Tailwind CSS
42
+
43
+ - **Prefix**: ALL Tailwind classes use `tw-` prefix (e.g., `tw-bg-primary`, `tw-text-h1`)
44
+ - **Design tokens**: Import from [@kiva/kv-tokens](../kv-tokens/) package
45
+ - **Theme system**: Use [KvThemeProvider.vue](src/vue/KvThemeProvider.vue) for light/dark mode
46
+ - **Config**: See [tailwind.config.js](tailwind.config.js)
47
+
48
+ ### Icons
49
+
50
+ - Use Material Design Icons from `@mdi/js`
51
+ - Import paths like `import { mdiChevronRight } from '@mdi/js'`
52
+ - Render with [KvMaterialIcon.vue](src/vue/KvMaterialIcon.vue) component
53
+
54
+ ## Code Quality Standards
55
+
56
+ ### ESLint Configuration
57
+
58
+ See [.eslintrc.cjs](.eslintrc.cjs) for full rules:
59
+
60
+ - **Indentation**: Tabs (NOT spaces)
61
+ - **Max line length**: 120 characters
62
+ - **Vue rules**: Vue 3 recommended + no self-closing HTML elements
63
+ - **TypeScript**: Uses `@typescript-eslint/parser` and `@vue/eslint-config-typescript`
64
+ - **Path aliases**: Use `#components`, `#utils`, `#fixtures` imports
65
+ - **File extensions**: Import resolver configured for `.ts`, `.js`, `.json`, `.vue`
66
+
67
+ ### File Naming Conventions
68
+
69
+ - Components: `KvComponentName.vue` (PascalCase in [src/vue/](src/vue/) with `<script lang="ts">`)
70
+ - Utilities: `utilityName.ts` (camelCase in [src/utils/](src/utils/))
71
+ - Tests: `ComponentName.spec.js` or `ComponentName.spec.ts` (in [tests/unit/specs/components/](tests/unit/specs/components/))
72
+ - Stories: `ComponentName.stories.js` or `ComponentName.stories.ts` (in [src/vue/stories/](src/vue/stories/))
73
+
74
+ ## Testing Requirements
75
+
76
+ ### Test Framework
77
+
78
+ - **Jest** configured in [jest.config.cjs](jest.config.cjs)
79
+ - **Vue Testing Library** for component testing
80
+ - **jest-axe** for automated accessibility testing (MANDATORY)
81
+ - **Test files**: Supports both `.spec.js` and `.spec.ts` extensions
82
+
83
+ ### Test Pattern
84
+
85
+ Reference [tests/unit/specs/components/KvButton.spec.js](tests/unit/specs/components/KvButton.spec.js) for structure:
86
+
87
+ 1. Import component, `render`, `fireEvent` from `@testing-library/vue`
88
+ 2. Import `axe` from `jest-axe`
89
+ 3. Write accessibility test with `toHaveNoViolations()` matcher
90
+ 4. Test user interactions with `fireEvent`
91
+ 5. Test props, slots, and emitted events
92
+ 6. Use [tests/fixtures/](tests/fixtures/) for mock data as needed
93
+
94
+ ### Running Tests
95
+
96
+ ```bash
97
+ npm run test # Runs lint + jest
98
+ npm run lint # ESLint check
99
+ ```
100
+
101
+ ## Storybook Development
102
+
103
+ ### Configuration
104
+
105
+ - **Version**: 10.1.10
106
+ - **Config**: [src/vue/.storybook/main.js](src/vue/.storybook/main.js)
107
+ - **Addons**: a11y, docs, links
108
+ - **Port**: 6006
109
+
110
+ ### Story Format (CSF)
111
+
112
+ Reference [src/vue/stories/KvButton.stories.js](src/vue/stories/KvButton.stories.js) for structure:
113
+
114
+ 1. Export default object with `title`, `component`, `argTypes`
115
+ 2. Create `Template` function returning component setup
116
+ 3. Export story variations binding Template
117
+ 4. Configure `args` for each variation
118
+ 5. Stories can be written in JavaScript or TypeScript (`.stories.js` or `.stories.ts`)
119
+
120
+ ### JSDoc for Storybook
121
+
122
+ Document props, slots, and events with JSDoc in component files for auto-documentation in Storybook Docs.
123
+
124
+ ### Running Storybook
125
+
126
+ ```bash
127
+ npm run storybook # Start dev server on :6006
128
+ npm run build-storybook # Build static Storybook
129
+ ```
130
+
131
+ ## Build System
132
+
133
+ ### Vite Configuration
134
+
135
+ See [vite.config.ts](vite.config.ts):
136
+
137
+ - **Library mode** with ES modules output
138
+ - **No bundling** - preserves file structure
139
+ - **CSS code splitting** - separate CSS per component
140
+ - Custom plugin [@kiva/vite-plugin-vue-lib-css](../vite-plugin-vue-lib-css/)
141
+
142
+ ### Build Scripts
143
+
144
+ ```bash
145
+ npm run prebuild # Copy flag assets
146
+ npm run build # Vite library build
147
+ ```
148
+
149
+ ## Component Creation Workflow
150
+
151
+ 1. Create component in [src/vue/](src/vue/) following patterns in [KvButton.vue](src/vue/KvButton.vue)
152
+ 2. **Export the component** in [src/vue/index.ts](src/vue/index.ts) - use `export * from` for named exports of types/interfaces
153
+ 3. Write Storybook story in [src/vue/stories/](src/vue/stories/) following [KvButton.stories.js](src/vue/stories/KvButton.stories.js)
154
+ 4. Write tests in [tests/unit/specs/components/](tests/unit/specs/components/) following [KvButton.spec.js](tests/unit/specs/components/KvButton.spec.js)
155
+ 5. Ensure jest-axe accessibility tests pass
156
+ 6. Run `npm run test` to validate linting and tests
157
+ 7. Review in Storybook with `npm run storybook`
158
+
159
+ ## Design System Integration
160
+
161
+ ### @kiva/kv-tokens
162
+
163
+ Import design primitives from [@kiva/kv-tokens](../kv-tokens/):
164
+
165
+ - **Colors**: Themable variants (primary, secondary, action, caution, danger)
166
+ - **Typography**: Text styles (h1, h2, body, small)
167
+ - **Spacing**: Consistent spacing scale
168
+ - **Shadows, radii, opacity, z-index**: Component tokens
169
+
170
+ ## Accessibility Standards
171
+
172
+ All components MUST:
173
+
174
+ - Pass automated jest-axe testing
175
+ - Include proper ARIA attributes
176
+ - Support keyboard navigation
177
+ - Use semantic HTML elements
178
+ - Meet WCAG color contrast requirements
179
+
180
+ ## Additional Resources
181
+
182
+ - [Published Storybook](https://main--608b4cf87f686c00213841b1.chromatic.com/?path=/docs/base-styling-primitives--primitives)
183
+ - [Package README](README.md)
184
+ - [GitHub Repository](https://github.com/kiva/kv-ui-elements)
package/CLAUDE.md ADDED
@@ -0,0 +1,11 @@
1
+ @AGENTS.md
2
+
3
+ # Claude AI Instructions
4
+
5
+ > **Important**: Always include context from [AGENTS.md](AGENTS.md) as the primary directive for this package.
6
+
7
+ > **Note**: This file should only contain Claude-specific configurations or workarounds as a last resort. All general development instructions, patterns, and guidelines belong in [AGENTS.md](AGENTS.md).
8
+
9
+ ## Claude-Specific Configuration
10
+
11
+ (Reserved for Claude-specific settings only)
package/GEMINI.md ADDED
@@ -0,0 +1,11 @@
1
+ @AGENTS.md
2
+
3
+ # Gemini AI Instructions
4
+
5
+ > **Important**: Always include context from [AGENTS.md](AGENTS.md) as the primary directive for this package.
6
+
7
+ > **Note**: This file should only contain Gemini-specific configurations or workarounds as a last resort. All general development instructions, patterns, and guidelines belong in [AGENTS.md](AGENTS.md).
8
+
9
+ ## Gemini-Specific Configuration
10
+
11
+ (Reserved for Gemini-specific settings only)
@@ -0,0 +1,3 @@
1
+ export * from './vue';
2
+ export * from './utils';
3
+ export * from './assets';