@gcsa/console-vue 0.1.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 (557) hide show
  1. package/dist/components/ConsoleHeader.vue.d.ts +18 -0
  2. package/dist/components/ConsoleHeader.vue.js +37 -0
  3. package/dist/components/ConsoleHeader.vue.js.map +1 -0
  4. package/dist/components/ConsoleHeader2.vue.js +5 -0
  5. package/dist/components/ConsoleHeader2.vue.js.map +1 -0
  6. package/dist/components/ConsolePage.vue.d.ts +18 -0
  7. package/dist/components/ConsolePage.vue.js +31 -0
  8. package/dist/components/ConsolePage.vue.js.map +1 -0
  9. package/dist/components/ConsolePage2.vue.js +5 -0
  10. package/dist/components/ConsolePage2.vue.js.map +1 -0
  11. package/dist/components/ConsoleShell.vue.d.ts +40 -0
  12. package/dist/components/ConsoleShell.vue.js +166 -0
  13. package/dist/components/ConsoleShell.vue.js.map +1 -0
  14. package/dist/components/ConsoleShell2.vue.js +5 -0
  15. package/dist/components/ConsoleShell2.vue.js.map +1 -0
  16. package/dist/components/ConsoleSidebar.vue.d.ts +13 -0
  17. package/dist/components/ConsoleSidebar.vue.js +52 -0
  18. package/dist/components/ConsoleSidebar.vue.js.map +1 -0
  19. package/dist/components/ConsoleSidebar2.vue.js +5 -0
  20. package/dist/components/ConsoleSidebar2.vue.js.map +1 -0
  21. package/dist/components/GcsaAlert.vue.d.ts +20 -0
  22. package/dist/components/GcsaAlert.vue.js +32 -0
  23. package/dist/components/GcsaAlert.vue.js.map +1 -0
  24. package/dist/components/GcsaAlert2.vue.js +5 -0
  25. package/dist/components/GcsaAlert2.vue.js.map +1 -0
  26. package/dist/components/GcsaAutoComplete.vue.d.ts +17 -0
  27. package/dist/components/GcsaAutoComplete.vue.js +136 -0
  28. package/dist/components/GcsaAutoComplete.vue.js.map +1 -0
  29. package/dist/components/GcsaAutoComplete2.vue.js +5 -0
  30. package/dist/components/GcsaAutoComplete2.vue.js.map +1 -0
  31. package/dist/components/GcsaAvatar.vue.d.ts +21 -0
  32. package/dist/components/GcsaAvatar.vue.js +23 -0
  33. package/dist/components/GcsaAvatar.vue.js.map +1 -0
  34. package/dist/components/GcsaAvatar2.vue.js +5 -0
  35. package/dist/components/GcsaAvatar2.vue.js.map +1 -0
  36. package/dist/components/GcsaBadge.vue.d.ts +20 -0
  37. package/dist/components/GcsaBadge.vue.js +20 -0
  38. package/dist/components/GcsaBadge.vue.js.map +1 -0
  39. package/dist/components/GcsaBadge2.vue.js +5 -0
  40. package/dist/components/GcsaBadge2.vue.js.map +1 -0
  41. package/dist/components/GcsaBrandMark.vue.d.ts +3 -0
  42. package/dist/components/GcsaBrandMark.vue.js +30 -0
  43. package/dist/components/GcsaBrandMark.vue.js.map +1 -0
  44. package/dist/components/GcsaBrandMark2.vue.js +5 -0
  45. package/dist/components/GcsaBrandMark2.vue.js.map +1 -0
  46. package/dist/components/GcsaBreadcrumb.vue.d.ts +3 -0
  47. package/dist/components/GcsaBreadcrumb.vue.js +37 -0
  48. package/dist/components/GcsaBreadcrumb.vue.js.map +1 -0
  49. package/dist/components/GcsaBreadcrumb2.vue.js +5 -0
  50. package/dist/components/GcsaBreadcrumb2.vue.js.map +1 -0
  51. package/dist/components/GcsaButton.vue.d.ts +23 -0
  52. package/dist/components/GcsaButton.vue.js +34 -0
  53. package/dist/components/GcsaButton.vue.js.map +1 -0
  54. package/dist/components/GcsaButton2.vue.js +5 -0
  55. package/dist/components/GcsaButton2.vue.js.map +1 -0
  56. package/dist/components/GcsaCalendar.vue.d.ts +11 -0
  57. package/dist/components/GcsaCalendar.vue.js +154 -0
  58. package/dist/components/GcsaCalendar.vue.js.map +1 -0
  59. package/dist/components/GcsaCalendar2.vue.js +5 -0
  60. package/dist/components/GcsaCalendar2.vue.js.map +1 -0
  61. package/dist/components/GcsaCard.vue.d.ts +19 -0
  62. package/dist/components/GcsaCard.vue.js +32 -0
  63. package/dist/components/GcsaCard.vue.js.map +1 -0
  64. package/dist/components/GcsaCard2.vue.js +5 -0
  65. package/dist/components/GcsaCard2.vue.js.map +1 -0
  66. package/dist/components/GcsaCascader.vue.d.ts +15 -0
  67. package/dist/components/GcsaCascader.vue.js +114 -0
  68. package/dist/components/GcsaCascader.vue.js.map +1 -0
  69. package/dist/components/GcsaCascader2.vue.js +5 -0
  70. package/dist/components/GcsaCascader2.vue.js.map +1 -0
  71. package/dist/components/GcsaChatPanel.vue.d.ts +61 -0
  72. package/dist/components/GcsaChatPanel.vue.js +291 -0
  73. package/dist/components/GcsaChatPanel.vue.js.map +1 -0
  74. package/dist/components/GcsaChatPanel2.vue.js +5 -0
  75. package/dist/components/GcsaChatPanel2.vue.js.map +1 -0
  76. package/dist/components/GcsaCheckbox.vue.d.ts +22 -0
  77. package/dist/components/GcsaCheckbox.vue.js +71 -0
  78. package/dist/components/GcsaCheckbox.vue.js.map +1 -0
  79. package/dist/components/GcsaCheckbox2.vue.js +5 -0
  80. package/dist/components/GcsaCheckbox2.vue.js.map +1 -0
  81. package/dist/components/GcsaCollapse.vue.d.ts +31 -0
  82. package/dist/components/GcsaCollapse.vue.js +71 -0
  83. package/dist/components/GcsaCollapse.vue.js.map +1 -0
  84. package/dist/components/GcsaCollapse2.vue.js +5 -0
  85. package/dist/components/GcsaCollapse2.vue.js.map +1 -0
  86. package/dist/components/GcsaConfigProvider.vue.d.ts +23 -0
  87. package/dist/components/GcsaConfigProvider.vue.js +103 -0
  88. package/dist/components/GcsaConfigProvider.vue.js.map +1 -0
  89. package/dist/components/GcsaConfigProvider2.vue.js +5 -0
  90. package/dist/components/GcsaConfigProvider2.vue.js.map +1 -0
  91. package/dist/components/GcsaDataTable.vue.d.ts +84 -0
  92. package/dist/components/GcsaDataTable.vue.js +1020 -0
  93. package/dist/components/GcsaDataTable.vue.js.map +1 -0
  94. package/dist/components/GcsaDataTable2.vue.js +5 -0
  95. package/dist/components/GcsaDataTable2.vue.js.map +1 -0
  96. package/dist/components/GcsaDatePicker.vue.d.ts +10 -0
  97. package/dist/components/GcsaDatePicker.vue.js +319 -0
  98. package/dist/components/GcsaDatePicker.vue.js.map +1 -0
  99. package/dist/components/GcsaDatePicker2.vue.js +5 -0
  100. package/dist/components/GcsaDatePicker2.vue.js.map +1 -0
  101. package/dist/components/GcsaDateRangeMonthPanel.vue.d.ts +3 -0
  102. package/dist/components/GcsaDateRangeMonthPanel.vue.js +110 -0
  103. package/dist/components/GcsaDateRangeMonthPanel.vue.js.map +1 -0
  104. package/dist/components/GcsaDateRangeMonthPanel2.vue.js +5 -0
  105. package/dist/components/GcsaDateRangeMonthPanel2.vue.js.map +1 -0
  106. package/dist/components/GcsaDateRangePicker.vue.d.ts +10 -0
  107. package/dist/components/GcsaDateRangePicker.vue.js +252 -0
  108. package/dist/components/GcsaDateRangePicker.vue.js.map +1 -0
  109. package/dist/components/GcsaDateRangePicker2.vue.js +5 -0
  110. package/dist/components/GcsaDateRangePicker2.vue.js.map +1 -0
  111. package/dist/components/GcsaDateTimePicker.vue.d.ts +11 -0
  112. package/dist/components/GcsaDateTimePicker.vue.js +360 -0
  113. package/dist/components/GcsaDateTimePicker.vue.js.map +1 -0
  114. package/dist/components/GcsaDateTimePicker2.vue.js +5 -0
  115. package/dist/components/GcsaDateTimePicker2.vue.js.map +1 -0
  116. package/dist/components/GcsaDescriptions.vue.d.ts +3 -0
  117. package/dist/components/GcsaDescriptions.vue.js +23 -0
  118. package/dist/components/GcsaDescriptions.vue.js.map +1 -0
  119. package/dist/components/GcsaDescriptions2.vue.js +5 -0
  120. package/dist/components/GcsaDescriptions2.vue.js.map +1 -0
  121. package/dist/components/GcsaDivider.vue.d.ts +3 -0
  122. package/dist/components/GcsaDivider.vue.js +15 -0
  123. package/dist/components/GcsaDivider.vue.js.map +1 -0
  124. package/dist/components/GcsaDivider2.vue.js +5 -0
  125. package/dist/components/GcsaDivider2.vue.js.map +1 -0
  126. package/dist/components/GcsaDrawer.vue.d.ts +30 -0
  127. package/dist/components/GcsaDrawer.vue.js +115 -0
  128. package/dist/components/GcsaDrawer.vue.js.map +1 -0
  129. package/dist/components/GcsaDrawer2.vue.js +5 -0
  130. package/dist/components/GcsaDrawer2.vue.js.map +1 -0
  131. package/dist/components/GcsaDropdown.vue.d.ts +26 -0
  132. package/dist/components/GcsaDropdown.vue.js +108 -0
  133. package/dist/components/GcsaDropdown.vue.js.map +1 -0
  134. package/dist/components/GcsaDropdown2.vue.js +5 -0
  135. package/dist/components/GcsaDropdown2.vue.js.map +1 -0
  136. package/dist/components/GcsaEmpty.vue.d.ts +19 -0
  137. package/dist/components/GcsaEmpty.vue.js +39 -0
  138. package/dist/components/GcsaEmpty.vue.js.map +1 -0
  139. package/dist/components/GcsaEmpty2.vue.js +5 -0
  140. package/dist/components/GcsaEmpty2.vue.js.map +1 -0
  141. package/dist/components/GcsaField.vue.d.ts +18 -0
  142. package/dist/components/GcsaField.vue.js +73 -0
  143. package/dist/components/GcsaField.vue.js.map +1 -0
  144. package/dist/components/GcsaField2.vue.js +5 -0
  145. package/dist/components/GcsaField2.vue.js.map +1 -0
  146. package/dist/components/GcsaForm.vue.d.ts +32 -0
  147. package/dist/components/GcsaForm.vue.js +77 -0
  148. package/dist/components/GcsaForm.vue.js.map +1 -0
  149. package/dist/components/GcsaForm2.vue.js +5 -0
  150. package/dist/components/GcsaForm2.vue.js.map +1 -0
  151. package/dist/components/GcsaFormField.vue.d.ts +39 -0
  152. package/dist/components/GcsaFormField.vue.js +54 -0
  153. package/dist/components/GcsaFormField.vue.js.map +1 -0
  154. package/dist/components/GcsaFormField2.vue.js +5 -0
  155. package/dist/components/GcsaFormField2.vue.js.map +1 -0
  156. package/dist/components/GcsaIcon.vue.d.ts +5 -0
  157. package/dist/components/GcsaIcon.vue.js +21 -0
  158. package/dist/components/GcsaIcon.vue.js.map +1 -0
  159. package/dist/components/GcsaIcon2.vue.js +5 -0
  160. package/dist/components/GcsaIcon2.vue.js.map +1 -0
  161. package/dist/components/GcsaImagePreview.vue.d.ts +9 -0
  162. package/dist/components/GcsaImagePreview.vue.js +64 -0
  163. package/dist/components/GcsaImagePreview.vue.js.map +1 -0
  164. package/dist/components/GcsaImagePreview2.vue.js +5 -0
  165. package/dist/components/GcsaImagePreview2.vue.js.map +1 -0
  166. package/dist/components/GcsaInput.vue.d.ts +19 -0
  167. package/dist/components/GcsaInput.vue.js +67 -0
  168. package/dist/components/GcsaInput.vue.js.map +1 -0
  169. package/dist/components/GcsaInput2.vue.js +5 -0
  170. package/dist/components/GcsaInput2.vue.js.map +1 -0
  171. package/dist/components/GcsaInputGroup.vue.d.ts +22 -0
  172. package/dist/components/GcsaInputGroup.vue.js +38 -0
  173. package/dist/components/GcsaInputGroup.vue.js.map +1 -0
  174. package/dist/components/GcsaInputGroup2.vue.js +5 -0
  175. package/dist/components/GcsaInputGroup2.vue.js.map +1 -0
  176. package/dist/components/GcsaInputNumber.vue.d.ts +13 -0
  177. package/dist/components/GcsaInputNumber.vue.js +135 -0
  178. package/dist/components/GcsaInputNumber.vue.js.map +1 -0
  179. package/dist/components/GcsaInputNumber2.vue.js +5 -0
  180. package/dist/components/GcsaInputNumber2.vue.js.map +1 -0
  181. package/dist/components/GcsaLoadingMask.vue.d.ts +3 -0
  182. package/dist/components/GcsaLoadingMask.vue.js +47 -0
  183. package/dist/components/GcsaLoadingMask.vue.js.map +1 -0
  184. package/dist/components/GcsaLoadingMask2.vue.js +5 -0
  185. package/dist/components/GcsaLoadingMask2.vue.js.map +1 -0
  186. package/dist/components/GcsaMarkdownRenderer.vue.d.ts +7 -0
  187. package/dist/components/GcsaMarkdownRenderer.vue.js +35 -0
  188. package/dist/components/GcsaMarkdownRenderer.vue.js.map +1 -0
  189. package/dist/components/GcsaMarkdownRenderer2.vue.js +5 -0
  190. package/dist/components/GcsaMarkdownRenderer2.vue.js.map +1 -0
  191. package/dist/components/GcsaMenu.vue.d.ts +14 -0
  192. package/dist/components/GcsaMenu.vue.js +63 -0
  193. package/dist/components/GcsaMenu.vue.js.map +1 -0
  194. package/dist/components/GcsaMenu2.vue.js +5 -0
  195. package/dist/components/GcsaMenu2.vue.js.map +1 -0
  196. package/dist/components/GcsaMenuNodes.vue.d.ts +9 -0
  197. package/dist/components/GcsaMenuNodes.vue.js +306 -0
  198. package/dist/components/GcsaMenuNodes.vue.js.map +1 -0
  199. package/dist/components/GcsaMenuNodes2.vue.js +5 -0
  200. package/dist/components/GcsaMenuNodes2.vue.js.map +1 -0
  201. package/dist/components/GcsaModal.vue.d.ts +26 -0
  202. package/dist/components/GcsaModal.vue.js +127 -0
  203. package/dist/components/GcsaModal.vue.js.map +1 -0
  204. package/dist/components/GcsaModal2.vue.js +5 -0
  205. package/dist/components/GcsaModal2.vue.js.map +1 -0
  206. package/dist/components/GcsaMultiSelect.vue.d.ts +16 -0
  207. package/dist/components/GcsaMultiSelect.vue.js +235 -0
  208. package/dist/components/GcsaMultiSelect.vue.js.map +1 -0
  209. package/dist/components/GcsaMultiSelect2.vue.js +5 -0
  210. package/dist/components/GcsaMultiSelect2.vue.js.map +1 -0
  211. package/dist/components/GcsaPagination.vue.d.ts +15 -0
  212. package/dist/components/GcsaPagination.vue.js +119 -0
  213. package/dist/components/GcsaPagination.vue.js.map +1 -0
  214. package/dist/components/GcsaPagination2.vue.js +5 -0
  215. package/dist/components/GcsaPagination2.vue.js.map +1 -0
  216. package/dist/components/GcsaPopconfirm.vue.d.ts +29 -0
  217. package/dist/components/GcsaPopconfirm.vue.js +133 -0
  218. package/dist/components/GcsaPopconfirm.vue.js.map +1 -0
  219. package/dist/components/GcsaPopconfirm2.vue.js +5 -0
  220. package/dist/components/GcsaPopconfirm2.vue.js.map +1 -0
  221. package/dist/components/GcsaPopover.vue.d.ts +21 -0
  222. package/dist/components/GcsaPopover.vue.js +138 -0
  223. package/dist/components/GcsaPopover.vue.js.map +1 -0
  224. package/dist/components/GcsaPopover2.vue.js +5 -0
  225. package/dist/components/GcsaPopover2.vue.js.map +1 -0
  226. package/dist/components/GcsaPortal.vue.d.ts +21 -0
  227. package/dist/components/GcsaPortal.vue.js +32 -0
  228. package/dist/components/GcsaPortal.vue.js.map +1 -0
  229. package/dist/components/GcsaPortal2.vue.js +5 -0
  230. package/dist/components/GcsaPortal2.vue.js.map +1 -0
  231. package/dist/components/GcsaProgress.vue.d.ts +5 -0
  232. package/dist/components/GcsaProgress.vue.js +26 -0
  233. package/dist/components/GcsaProgress.vue.js.map +1 -0
  234. package/dist/components/GcsaProgress2.vue.js +5 -0
  235. package/dist/components/GcsaProgress2.vue.js.map +1 -0
  236. package/dist/components/GcsaRadioGroup.vue.d.ts +9 -0
  237. package/dist/components/GcsaRadioGroup.vue.js +61 -0
  238. package/dist/components/GcsaRadioGroup.vue.js.map +1 -0
  239. package/dist/components/GcsaRadioGroup2.vue.js +5 -0
  240. package/dist/components/GcsaRadioGroup2.vue.js.map +1 -0
  241. package/dist/components/GcsaResult.vue.d.ts +19 -0
  242. package/dist/components/GcsaResult.vue.js +37 -0
  243. package/dist/components/GcsaResult.vue.js.map +1 -0
  244. package/dist/components/GcsaResult2.vue.js +5 -0
  245. package/dist/components/GcsaResult2.vue.js.map +1 -0
  246. package/dist/components/GcsaRow.vue.d.ts +20 -0
  247. package/dist/components/GcsaRow.vue.js +19 -0
  248. package/dist/components/GcsaRow.vue.js.map +1 -0
  249. package/dist/components/GcsaRow2.vue.js +5 -0
  250. package/dist/components/GcsaRow2.vue.js.map +1 -0
  251. package/dist/components/GcsaSelect.vue.d.ts +15 -0
  252. package/dist/components/GcsaSelect.vue.js +183 -0
  253. package/dist/components/GcsaSelect.vue.js.map +1 -0
  254. package/dist/components/GcsaSelect2.vue.js +5 -0
  255. package/dist/components/GcsaSelect2.vue.js.map +1 -0
  256. package/dist/components/GcsaSkeleton.vue.d.ts +6 -0
  257. package/dist/components/GcsaSkeleton.vue.js +20 -0
  258. package/dist/components/GcsaSkeleton.vue.js.map +1 -0
  259. package/dist/components/GcsaSkeleton2.vue.js +5 -0
  260. package/dist/components/GcsaSkeleton2.vue.js.map +1 -0
  261. package/dist/components/GcsaSpace.vue.d.ts +18 -0
  262. package/dist/components/GcsaSpace.vue.js +19 -0
  263. package/dist/components/GcsaSpace.vue.js.map +1 -0
  264. package/dist/components/GcsaSpace2.vue.js +5 -0
  265. package/dist/components/GcsaSpace2.vue.js.map +1 -0
  266. package/dist/components/GcsaSpin.vue.d.ts +20 -0
  267. package/dist/components/GcsaSpin.vue.js +29 -0
  268. package/dist/components/GcsaSpin.vue.js.map +1 -0
  269. package/dist/components/GcsaSpin2.vue.js +5 -0
  270. package/dist/components/GcsaSpin2.vue.js.map +1 -0
  271. package/dist/components/GcsaStatistic.vue.d.ts +18 -0
  272. package/dist/components/GcsaStatistic.vue.js +23 -0
  273. package/dist/components/GcsaStatistic.vue.js.map +1 -0
  274. package/dist/components/GcsaStatistic2.vue.js +5 -0
  275. package/dist/components/GcsaStatistic2.vue.js.map +1 -0
  276. package/dist/components/GcsaSteps.vue.d.ts +14 -0
  277. package/dist/components/GcsaSteps.vue.js +77 -0
  278. package/dist/components/GcsaSteps.vue.js.map +1 -0
  279. package/dist/components/GcsaSteps2.vue.js +5 -0
  280. package/dist/components/GcsaSteps2.vue.js.map +1 -0
  281. package/dist/components/GcsaSwitch.vue.d.ts +22 -0
  282. package/dist/components/GcsaSwitch.vue.js +52 -0
  283. package/dist/components/GcsaSwitch.vue.js.map +1 -0
  284. package/dist/components/GcsaSwitch2.vue.js +5 -0
  285. package/dist/components/GcsaSwitch2.vue.js.map +1 -0
  286. package/dist/components/GcsaTabs.vue.d.ts +22 -0
  287. package/dist/components/GcsaTabs.vue.js +61 -0
  288. package/dist/components/GcsaTabs.vue.js.map +1 -0
  289. package/dist/components/GcsaTabs2.vue.js +5 -0
  290. package/dist/components/GcsaTabs2.vue.js.map +1 -0
  291. package/dist/components/GcsaTag.vue.d.ts +18 -0
  292. package/dist/components/GcsaTag.vue.js +19 -0
  293. package/dist/components/GcsaTag.vue.js.map +1 -0
  294. package/dist/components/GcsaTag2.vue.js +5 -0
  295. package/dist/components/GcsaTag2.vue.js.map +1 -0
  296. package/dist/components/GcsaTextarea.vue.d.ts +18 -0
  297. package/dist/components/GcsaTextarea.vue.js +66 -0
  298. package/dist/components/GcsaTextarea.vue.js.map +1 -0
  299. package/dist/components/GcsaTextarea2.vue.js +5 -0
  300. package/dist/components/GcsaTextarea2.vue.js.map +1 -0
  301. package/dist/components/GcsaTimePicker.vue.d.ts +17 -0
  302. package/dist/components/GcsaTimePicker.vue.js +264 -0
  303. package/dist/components/GcsaTimePicker.vue.js.map +1 -0
  304. package/dist/components/GcsaTimePicker2.vue.js +5 -0
  305. package/dist/components/GcsaTimePicker2.vue.js.map +1 -0
  306. package/dist/components/GcsaTimeline.vue.d.ts +3 -0
  307. package/dist/components/GcsaTimeline.vue.js +41 -0
  308. package/dist/components/GcsaTimeline.vue.js.map +1 -0
  309. package/dist/components/GcsaTimeline2.vue.js +5 -0
  310. package/dist/components/GcsaTimeline2.vue.js.map +1 -0
  311. package/dist/components/GcsaToastStack.vue.d.ts +3 -0
  312. package/dist/components/GcsaToastStack.vue.js +96 -0
  313. package/dist/components/GcsaToastStack.vue.js.map +1 -0
  314. package/dist/components/GcsaToastStack2.vue.js +5 -0
  315. package/dist/components/GcsaToastStack2.vue.js.map +1 -0
  316. package/dist/components/GcsaTooltip.vue.d.ts +28 -0
  317. package/dist/components/GcsaTooltip.vue.js +102 -0
  318. package/dist/components/GcsaTooltip.vue.js.map +1 -0
  319. package/dist/components/GcsaTooltip2.vue.js +5 -0
  320. package/dist/components/GcsaTooltip2.vue.js.map +1 -0
  321. package/dist/components/GcsaTransfer.vue.d.ts +12 -0
  322. package/dist/components/GcsaTransfer.vue.js +139 -0
  323. package/dist/components/GcsaTransfer.vue.js.map +1 -0
  324. package/dist/components/GcsaTransfer2.vue.js +5 -0
  325. package/dist/components/GcsaTransfer2.vue.js.map +1 -0
  326. package/dist/components/GcsaTree.vue.d.ts +14 -0
  327. package/dist/components/GcsaTree.vue.js +76 -0
  328. package/dist/components/GcsaTree.vue.js.map +1 -0
  329. package/dist/components/GcsaTree2.vue.js +5 -0
  330. package/dist/components/GcsaTree2.vue.js.map +1 -0
  331. package/dist/components/GcsaTypography.vue.d.ts +21 -0
  332. package/dist/components/GcsaTypography.vue.js +21 -0
  333. package/dist/components/GcsaTypography.vue.js.map +1 -0
  334. package/dist/components/GcsaTypography2.vue.js +5 -0
  335. package/dist/components/GcsaTypography2.vue.js.map +1 -0
  336. package/dist/components/GcsaUpload.vue.d.ts +26 -0
  337. package/dist/components/GcsaUpload.vue.js +160 -0
  338. package/dist/components/GcsaUpload.vue.js.map +1 -0
  339. package/dist/components/GcsaUpload2.vue.js +5 -0
  340. package/dist/components/GcsaUpload2.vue.js.map +1 -0
  341. package/dist/components/gcsaDataTableTypes.d.ts +18 -0
  342. package/dist/composables/gcsaFormTypes.d.ts +9 -0
  343. package/dist/composables/useDocumentThemeSync.d.ts +3 -0
  344. package/dist/composables/useDocumentThemeSync.js +7 -0
  345. package/dist/composables/useDocumentThemeSync.js.map +1 -0
  346. package/dist/composables/useGcsaComponentSize.d.ts +7 -0
  347. package/dist/composables/useGcsaComponentSize.js +26 -0
  348. package/dist/composables/useGcsaComponentSize.js.map +1 -0
  349. package/dist/composables/useGcsaFormField.d.ts +26 -0
  350. package/dist/composables/useGcsaFormField.js +47 -0
  351. package/dist/composables/useGcsaFormField.js.map +1 -0
  352. package/dist/composables/useGcsaFormSchema.d.ts +3 -0
  353. package/dist/composables/useGcsaFormSchema.js +7 -0
  354. package/dist/composables/useGcsaFormSchema.js.map +1 -0
  355. package/dist/composables/useGcsaLocale.d.ts +5 -0
  356. package/dist/composables/useGcsaLocale.js +17 -0
  357. package/dist/composables/useGcsaLocale.js.map +1 -0
  358. package/dist/composables/useGcsaMessage.d.ts +2 -0
  359. package/dist/composables/useGcsaMessage.js +12 -0
  360. package/dist/composables/useGcsaMessage.js.map +1 -0
  361. package/dist/composables/useGcsaPopupZIndex.d.ts +6 -0
  362. package/dist/composables/useGcsaPopupZIndex.js +16 -0
  363. package/dist/composables/useGcsaPopupZIndex.js.map +1 -0
  364. package/dist/composables/useGcsaTextCount.d.ts +17 -0
  365. package/dist/composables/useGcsaTextCount.js +21 -0
  366. package/dist/composables/useGcsaTextCount.js.map +1 -0
  367. package/dist/composables/useGcsaTheme.d.ts +3 -0
  368. package/dist/composables/useGcsaTheme.js +11 -0
  369. package/dist/composables/useGcsaTheme.js.map +1 -0
  370. package/dist/composables/useGcsaZIndex.d.ts +10 -0
  371. package/dist/composables/useGcsaZIndex.js +44 -0
  372. package/dist/composables/useGcsaZIndex.js.map +1 -0
  373. package/dist/composables/useMessage.d.ts +7 -0
  374. package/dist/composables/useMessage.js +5 -0
  375. package/dist/composables/useMessage.js.map +1 -0
  376. package/dist/composables/usePreserveScrollOnFocus.d.ts +4 -0
  377. package/dist/composables/usePreserveScrollOnFocus.js +86 -0
  378. package/dist/composables/usePreserveScrollOnFocus.js.map +1 -0
  379. package/dist/icons/iconNames.d.ts +7 -0
  380. package/dist/icons/iconNames.js +24 -0
  381. package/dist/icons/iconNames.js.map +1 -0
  382. package/dist/icons/index.d.ts +2 -0
  383. package/dist/icons/registry.d.ts +3 -0
  384. package/dist/icons/registry.js +58 -0
  385. package/dist/icons/registry.js.map +1 -0
  386. package/dist/icons/svg/alert.svg.js +9 -0
  387. package/dist/icons/svg/alert.svg.js.map +1 -0
  388. package/dist/icons/svg/assets.svg.js +9 -0
  389. package/dist/icons/svg/assets.svg.js.map +1 -0
  390. package/dist/icons/svg/chat.svg.js +8 -0
  391. package/dist/icons/svg/chat.svg.js.map +1 -0
  392. package/dist/icons/svg/check.svg.js +8 -0
  393. package/dist/icons/svg/check.svg.js.map +1 -0
  394. package/dist/icons/svg/chevron-down.svg.js +8 -0
  395. package/dist/icons/svg/chevron-down.svg.js.map +1 -0
  396. package/dist/icons/svg/chevron-left.svg.js +8 -0
  397. package/dist/icons/svg/chevron-left.svg.js.map +1 -0
  398. package/dist/icons/svg/chevron-right.svg.js +8 -0
  399. package/dist/icons/svg/chevron-right.svg.js.map +1 -0
  400. package/dist/icons/svg/chevron-up.svg.js +8 -0
  401. package/dist/icons/svg/chevron-up.svg.js.map +1 -0
  402. package/dist/icons/svg/close.svg.js +6 -0
  403. package/dist/icons/svg/close.svg.js.map +1 -0
  404. package/dist/icons/svg/dashboard.svg.js +8 -0
  405. package/dist/icons/svg/dashboard.svg.js.map +1 -0
  406. package/dist/icons/svg/menu.svg.js +8 -0
  407. package/dist/icons/svg/menu.svg.js.map +1 -0
  408. package/dist/icons/svg/plus.svg.js +6 -0
  409. package/dist/icons/svg/plus.svg.js.map +1 -0
  410. package/dist/icons/svg/result-empty.svg.js +6 -0
  411. package/dist/icons/svg/result-empty.svg.js.map +1 -0
  412. package/dist/icons/svg/settings.svg.js +8 -0
  413. package/dist/icons/svg/settings.svg.js.map +1 -0
  414. package/dist/icons/svg/users.svg.js +11 -0
  415. package/dist/icons/svg/users.svg.js.map +1 -0
  416. package/dist/index.d.ts +87 -0
  417. package/dist/index.js +172 -0
  418. package/dist/index.js.map +1 -0
  419. package/dist/loading/directive.d.ts +5 -0
  420. package/dist/loading/directive.js +57 -0
  421. package/dist/loading/directive.js.map +1 -0
  422. package/dist/loading/index.d.ts +7 -0
  423. package/dist/loading/index.js +14 -0
  424. package/dist/loading/index.js.map +1 -0
  425. package/dist/loading/service.d.ts +28 -0
  426. package/dist/loading/service.js +106 -0
  427. package/dist/loading/service.js.map +1 -0
  428. package/dist/resolver.d.ts +16 -0
  429. package/dist/resolver.js +16 -0
  430. package/dist/resolver.js.map +1 -0
  431. package/dist/style.css +8028 -0
  432. package/dist/types/componentProps.d.ts +565 -0
  433. package/dist/types/index.d.ts +2 -0
  434. package/dist/types/shared.d.ts +42 -0
  435. package/dist/utils/gcsaDateValue.d.ts +24 -0
  436. package/dist/utils/gcsaDateValue.js +60 -0
  437. package/dist/utils/gcsaDateValue.js.map +1 -0
  438. package/dist/utils/gcsaTableColumns.d.ts +19 -0
  439. package/dist/utils/gcsaTableColumns.js +50 -0
  440. package/dist/utils/gcsaTableColumns.js.map +1 -0
  441. package/dist/utils/zodValidators.d.ts +21 -0
  442. package/dist/utils/zodValidators.js +35 -0
  443. package/dist/utils/zodValidators.js.map +1 -0
  444. package/package.json +67 -0
  445. package/src/components/ConsoleHeader.vue +22 -0
  446. package/src/components/ConsolePage.vue +17 -0
  447. package/src/components/ConsoleShell.vue +206 -0
  448. package/src/components/ConsoleSidebar.vue +61 -0
  449. package/src/components/GcsaAlert.vue +25 -0
  450. package/src/components/GcsaAutoComplete.vue +165 -0
  451. package/src/components/GcsaAvatar.vue +19 -0
  452. package/src/components/GcsaBadge.vue +16 -0
  453. package/src/components/GcsaBrandMark.vue +20 -0
  454. package/src/components/GcsaBreadcrumb.vue +20 -0
  455. package/src/components/GcsaButton.vue +32 -0
  456. package/src/components/GcsaCalendar.vue +39 -0
  457. package/src/components/GcsaCard.vue +20 -0
  458. package/src/components/GcsaCascader.vue +84 -0
  459. package/src/components/GcsaChatPanel.vue +249 -0
  460. package/src/components/GcsaCheckbox.vue +45 -0
  461. package/src/components/GcsaCollapse.vue +51 -0
  462. package/src/components/GcsaConfigProvider.vue +147 -0
  463. package/src/components/GcsaDataTable.vue +1183 -0
  464. package/src/components/GcsaDatePicker.vue +232 -0
  465. package/src/components/GcsaDateRangeMonthPanel.vue +66 -0
  466. package/src/components/GcsaDateRangePicker.vue +208 -0
  467. package/src/components/GcsaDateTimePicker.vue +379 -0
  468. package/src/components/GcsaDescriptions.vue +16 -0
  469. package/src/components/GcsaDivider.vue +11 -0
  470. package/src/components/GcsaDrawer.vue +97 -0
  471. package/src/components/GcsaDropdown.vue +84 -0
  472. package/src/components/GcsaEmpty.vue +28 -0
  473. package/src/components/GcsaField.vue +27 -0
  474. package/src/components/GcsaForm.vue +70 -0
  475. package/src/components/GcsaFormField.vue +53 -0
  476. package/src/components/GcsaIcon.vue +24 -0
  477. package/src/components/GcsaImagePreview.vue +28 -0
  478. package/src/components/GcsaInput.vue +80 -0
  479. package/src/components/GcsaInputGroup.vue +37 -0
  480. package/src/components/GcsaInputNumber.vue +165 -0
  481. package/src/components/GcsaLoadingMask.vue +49 -0
  482. package/src/components/GcsaMarkdownRenderer.vue +49 -0
  483. package/src/components/GcsaMenu.vue +86 -0
  484. package/src/components/GcsaMenuNodes.vue +226 -0
  485. package/src/components/GcsaModal.vue +106 -0
  486. package/src/components/GcsaMultiSelect.vue +197 -0
  487. package/src/components/GcsaPagination.vue +147 -0
  488. package/src/components/GcsaPopconfirm.vue +93 -0
  489. package/src/components/GcsaPopover.vue +121 -0
  490. package/src/components/GcsaPortal.vue +41 -0
  491. package/src/components/GcsaProgress.vue +16 -0
  492. package/src/components/GcsaRadioGroup.vue +45 -0
  493. package/src/components/GcsaResult.vue +23 -0
  494. package/src/components/GcsaRow.vue +16 -0
  495. package/src/components/GcsaSelect.vue +154 -0
  496. package/src/components/GcsaSkeleton.vue +21 -0
  497. package/src/components/GcsaSpace.vue +13 -0
  498. package/src/components/GcsaSpin.vue +25 -0
  499. package/src/components/GcsaStatistic.vue +16 -0
  500. package/src/components/GcsaSteps.vue +30 -0
  501. package/src/components/GcsaSwitch.vue +38 -0
  502. package/src/components/GcsaTabs.vue +55 -0
  503. package/src/components/GcsaTag.vue +13 -0
  504. package/src/components/GcsaTextarea.vue +77 -0
  505. package/src/components/GcsaTimePicker.vue +306 -0
  506. package/src/components/GcsaTimeline.vue +17 -0
  507. package/src/components/GcsaToastStack.vue +45 -0
  508. package/src/components/GcsaTooltip.vue +79 -0
  509. package/src/components/GcsaTransfer.vue +50 -0
  510. package/src/components/GcsaTree.vue +56 -0
  511. package/src/components/GcsaTypography.vue +28 -0
  512. package/src/components/GcsaUpload.vue +154 -0
  513. package/src/components/gcsaDataTableTypes.ts +18 -0
  514. package/src/composables/gcsaFormTypes.ts +30 -0
  515. package/src/composables/useDocumentThemeSync.ts +6 -0
  516. package/src/composables/useGcsaComponentSize.ts +30 -0
  517. package/src/composables/useGcsaFormField.ts +49 -0
  518. package/src/composables/useGcsaFormSchema.ts +6 -0
  519. package/src/composables/useGcsaLocale.ts +18 -0
  520. package/src/composables/useGcsaMessage.ts +10 -0
  521. package/src/composables/useGcsaPopupZIndex.ts +24 -0
  522. package/src/composables/useGcsaTextCount.ts +48 -0
  523. package/src/composables/useGcsaTheme.ts +9 -0
  524. package/src/composables/useGcsaZIndex.ts +62 -0
  525. package/src/composables/useMessage.ts +9 -0
  526. package/src/composables/usePreserveScrollOnFocus.ts +153 -0
  527. package/src/icons/iconNames.ts +27 -0
  528. package/src/icons/index.ts +8 -0
  529. package/src/icons/registry.ts +43 -0
  530. package/src/icons/svg/alert.svg +4 -0
  531. package/src/icons/svg/assets.svg +4 -0
  532. package/src/icons/svg/chat.svg +3 -0
  533. package/src/icons/svg/check.svg +3 -0
  534. package/src/icons/svg/chevron-down.svg +3 -0
  535. package/src/icons/svg/chevron-left.svg +3 -0
  536. package/src/icons/svg/chevron-right.svg +3 -0
  537. package/src/icons/svg/chevron-up.svg +3 -0
  538. package/src/icons/svg/close.svg +1 -0
  539. package/src/icons/svg/dashboard.svg +3 -0
  540. package/src/icons/svg/menu.svg +3 -0
  541. package/src/icons/svg/plus.svg +1 -0
  542. package/src/icons/svg/result-empty.svg +1 -0
  543. package/src/icons/svg/settings.svg +3 -0
  544. package/src/icons/svg/users.svg +6 -0
  545. package/src/index.ts +193 -0
  546. package/src/loading/directive.ts +104 -0
  547. package/src/loading/index.ts +19 -0
  548. package/src/loading/service.ts +216 -0
  549. package/src/resolver.ts +22 -0
  550. package/src/tanstack-table.d.ts +7 -0
  551. package/src/types/componentProps.ts +692 -0
  552. package/src/types/index.ts +2 -0
  553. package/src/types/shared.ts +55 -0
  554. package/src/utils/gcsaDateValue.ts +98 -0
  555. package/src/utils/gcsaTableColumns.ts +92 -0
  556. package/src/utils/zodValidators.ts +45 -0
  557. package/src/vite-env.d.ts +7 -0
@@ -0,0 +1,249 @@
1
+ <template>
2
+ <section class="gcsa-chat gcsa-ui-surface">
3
+ <Transition name="gcsa-chat-toast">
4
+ <div
5
+ v-if="copyToast"
6
+ class="gcsa-chat__toast gcsa-toast"
7
+ :class="`gcsa-toast--${copyToast.type}`"
8
+ role="status"
9
+ >
10
+ <span class="gcsa-toast__icon" aria-hidden="true">
11
+ <svg v-if="copyToast.type === 'success'" width="14" height="14" viewBox="0 0 24 24" fill="none">
12
+ <path d="M20 6 9 17l-5-5" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
13
+ </svg>
14
+ <svg v-else width="14" height="14" viewBox="0 0 24 24" fill="none">
15
+ <path d="M15 9l-6 6M9 9l6 6" stroke="currentColor" stroke-width="2" stroke-linecap="round" />
16
+ <circle cx="12" cy="12" r="9" stroke="currentColor" stroke-width="1.75" />
17
+ </svg>
18
+ </span>
19
+ <span class="gcsa-toast__content">{{ copyToast.text }}</span>
20
+ </div>
21
+ </Transition>
22
+
23
+ <header v-if="$slots.header" class="gcsa-chat__header">
24
+ <slot name="header" />
25
+ </header>
26
+
27
+ <div ref="listRef" class="gcsa-chat__messages">
28
+ <div v-if="!messages.length" class="gcsa-chat__empty">
29
+ <slot name="empty">{{ resolvedEmptyText }}</slot>
30
+ </div>
31
+
32
+ <template v-for="(message, index) in messages" :key="message.id">
33
+ <slot name="message" :message="message" :index="index">
34
+ <article
35
+ class="gcsa-chat__message"
36
+ :class="[
37
+ `gcsa-chat__message--${message.role}`,
38
+ {
39
+ 'gcsa-chat__message--system-ready': message.systemReady,
40
+ 'gcsa-chat__message--error': message.error || message.status === 'error',
41
+ 'gcsa-chat__message--streaming': message.status === 'streaming'
42
+ }
43
+ ]"
44
+ >
45
+ <div
46
+ v-if="showAvatars && message.role !== 'system'"
47
+ class="gcsa-chat__avatar"
48
+ :class="`gcsa-chat__avatar--${message.role}`"
49
+ >
50
+ <slot name="avatar" :message="message" :index="index">
51
+ <GcsaAvatar :text="avatarLabel(message)" />
52
+ </slot>
53
+ </div>
54
+
55
+ <div class="gcsa-chat__message-body">
56
+ <div
57
+ class="gcsa-chat__bubble"
58
+ :class="[
59
+ `gcsa-chat__bubble--${message.role}`,
60
+ { 'gcsa-chat__bubble--rich': useMarkdown(message) }
61
+ ]"
62
+ >
63
+ <slot name="message-content" :message="message" :index="index">
64
+ <GcsaMarkdownRenderer
65
+ v-if="useMarkdown(message)"
66
+ :content="message.content"
67
+ />
68
+ <p v-else class="gcsa-chat__plain">{{ message.content }}</p>
69
+ <span
70
+ v-if="message.status === 'streaming'"
71
+ class="gcsa-chat__cursor"
72
+ aria-hidden="true"
73
+ >{{ streamingCursor }}</span>
74
+ </slot>
75
+
76
+ <div
77
+ v-if="copyable && message.role === 'assistant' && message.content"
78
+ class="gcsa-chat__bubble-actions"
79
+ >
80
+ <slot name="message-actions" :message="message" :index="index">
81
+ <button
82
+ type="button"
83
+ class="gcsa-chat__action-btn"
84
+ :title="resolvedCopyLabel"
85
+ :aria-label="resolvedCopyLabel"
86
+ @click.stop="copyMessage(message)"
87
+ >
88
+ <svg width="14" height="14" viewBox="0 0 24 24" fill="none" aria-hidden="true">
89
+ <rect x="9" y="9" width="13" height="13" rx="2" stroke="currentColor" stroke-width="1.5" />
90
+ <path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" stroke="currentColor" stroke-width="1.5" />
91
+ </svg>
92
+ </button>
93
+ </slot>
94
+ </div>
95
+ </div>
96
+
97
+ <footer
98
+ v-if="showTimestamp && message.role !== 'system'"
99
+ class="gcsa-chat__meta"
100
+ >
101
+ <slot name="message-footer" :message="message" :index="index">
102
+ <time v-if="formatTime(message.createdAt)" :datetime="timeIso(message.createdAt)">
103
+ {{ formatTime(message.createdAt) }}
104
+ </time>
105
+ </slot>
106
+ </footer>
107
+ </div>
108
+ </article>
109
+ </slot>
110
+ </template>
111
+ </div>
112
+
113
+ <slot name="composer">
114
+ <div class="gcsa-chat__composer">
115
+ <slot name="composer-prefix" />
116
+ <textarea
117
+ v-model="draft"
118
+ class="gcsa-textarea gcsa-chat__input"
119
+ :placeholder="resolvedPlaceholder"
120
+ :disabled="disabled || loading"
121
+ rows="1"
122
+ @keydown.enter.exact.prevent="submit"
123
+ />
124
+ <slot name="composer-actions">
125
+ <GcsaButton :disabled="!draft.trim() || loading || disabled" @click="submit">
126
+ {{ loading ? resolvedSendingLabel : resolvedSendLabel }}
127
+ </GcsaButton>
128
+ </slot>
129
+ </div>
130
+ </slot>
131
+ </section>
132
+ </template>
133
+
134
+ <script setup lang="ts">
135
+ import { computed, inject, nextTick, onUnmounted, ref, watch } from 'vue';
136
+ import type { GcsaChatMessage, GcsaChatMessageRole } from '@gcsa/console-core';
137
+ import {
138
+ copyGcsaText,
139
+ formatGcsaChatTime,
140
+ gcsaChatAvatarLabel,
141
+ shouldRenderGcsaChatMarkdown
142
+ } from '@gcsa/console-core';
143
+ import { GCSA_MESSAGE_KEY } from '../composables/useMessage';
144
+ import type { GcsaChatPanelProps } from '../types/componentProps';
145
+ import GcsaAvatar from './GcsaAvatar.vue';
146
+ import GcsaButton from './GcsaButton.vue';
147
+ import GcsaMarkdownRenderer from './GcsaMarkdownRenderer.vue';
148
+ import { useGcsaLocaleMessages } from '../composables/useGcsaLocale';
149
+
150
+ defineOptions({ name: 'GcsaChatPanel' });
151
+
152
+ const props = withDefaults(
153
+ defineProps<GcsaChatPanelProps>(),
154
+ {
155
+ loading: false,
156
+ disabled: false,
157
+ renderMarkdown: 'assistant',
158
+ showTimestamp: true,
159
+ showAvatars: true,
160
+ copyable: true,
161
+ streamingCursor: '▍'
162
+ }
163
+ );
164
+
165
+ const localeMessages = useGcsaLocaleMessages();
166
+ const resolvedPlaceholder = computed(() => props.placeholder ?? localeMessages.value.chatPlaceholder);
167
+ const resolvedSendLabel = computed(() => props.sendLabel ?? localeMessages.value.chatSend);
168
+ const resolvedSendingLabel = computed(() => props.sendingLabel ?? localeMessages.value.chatSending);
169
+ const resolvedEmptyText = computed(() => props.emptyText ?? localeMessages.value.chatEmpty);
170
+ const resolvedCopyLabel = computed(() => props.copyLabel ?? localeMessages.value.chatCopy);
171
+ const resolvedCopySuccessLabel = computed(() => props.copySuccessLabel ?? localeMessages.value.chatCopySuccess);
172
+ const resolvedCopyErrorLabel = computed(() => props.copyErrorLabel ?? localeMessages.value.chatCopyError);
173
+
174
+ const emit = defineEmits<{
175
+ send: [content: string];
176
+ copy: [message: GcsaChatMessage];
177
+ }>();
178
+
179
+ const draft = ref('');
180
+ const listRef = ref<HTMLElement | null>(null);
181
+ const copyToast = ref<{ text: string; type: 'success' | 'error' } | null>(null);
182
+ const messageApi = inject(GCSA_MESSAGE_KEY, null);
183
+ let copyToastTimer: ReturnType<typeof setTimeout> | null = null;
184
+
185
+ function useMarkdown(message: GcsaChatMessage) {
186
+ return shouldRenderGcsaChatMarkdown(message, props.renderMarkdown);
187
+ }
188
+
189
+ function avatarLabel(message: GcsaChatMessage) {
190
+ return gcsaChatAvatarLabel(message, props.avatarLabels);
191
+ }
192
+
193
+ function formatTime(value?: string | number | Date) {
194
+ return formatGcsaChatTime(value);
195
+ }
196
+
197
+ function timeIso(value?: string | number | Date) {
198
+ if (value == null || value === '') return undefined;
199
+ const date = value instanceof Date ? value : new Date(value);
200
+ if (Number.isNaN(date.getTime())) return undefined;
201
+ return date.toISOString();
202
+ }
203
+
204
+ function submit() {
205
+ const content = draft.value.trim();
206
+ if (!content || props.loading || props.disabled) return;
207
+ emit('send', content);
208
+ draft.value = '';
209
+ }
210
+
211
+ async function copyMessage(message: GcsaChatMessage) {
212
+ const ok = await copyGcsaText(message.content);
213
+ emit('copy', message);
214
+ showCopyFeedback(ok ? resolvedCopySuccessLabel.value : resolvedCopyErrorLabel.value, ok ? 'success' : 'error');
215
+ }
216
+
217
+ function showCopyFeedback(text: string, tone: 'success' | 'error' = 'success') {
218
+ if (messageApi) {
219
+ messageApi[tone](text);
220
+ return;
221
+ }
222
+
223
+ copyToast.value = { text, type: tone };
224
+ if (copyToastTimer) clearTimeout(copyToastTimer);
225
+ copyToastTimer = setTimeout(() => {
226
+ copyToast.value = null;
227
+ copyToastTimer = null;
228
+ }, 2000);
229
+ }
230
+
231
+ onUnmounted(() => {
232
+ if (copyToastTimer) clearTimeout(copyToastTimer);
233
+ });
234
+
235
+ async function scrollToBottom() {
236
+ await nextTick();
237
+ if (listRef.value) {
238
+ listRef.value.scrollTop = listRef.value.scrollHeight;
239
+ }
240
+ }
241
+
242
+ watch(
243
+ () => {
244
+ const last = props.messages[props.messages.length - 1];
245
+ return [props.messages.length, last?.content, last?.status] as const;
246
+ },
247
+ scrollToBottom
248
+ );
249
+ </script>
@@ -0,0 +1,45 @@
1
+ <template>
2
+ <Checkbox.Root
3
+ :checked="modelValue"
4
+ :disabled="disabled"
5
+ :aria-label="ariaLabel"
6
+ class="gcsa-checkbox gcsa-focus-ring"
7
+ @checked-change="onChange"
8
+ >
9
+ <Checkbox.Control class="gcsa-checkbox__box">
10
+ <Checkbox.Indicator class="gcsa-checkbox__indicator">
11
+ <svg viewBox="0 0 12 12" width="10" height="10" aria-hidden="true">
12
+ <path
13
+ d="M2 6.2L4.8 9 10 3.2"
14
+ fill="none"
15
+ stroke="currentColor"
16
+ stroke-width="1.8"
17
+ stroke-linecap="round"
18
+ stroke-linejoin="round"
19
+ />
20
+ </svg>
21
+ </Checkbox.Indicator>
22
+ </Checkbox.Control>
23
+ <Checkbox.Label v-if="label || $slots.default" class="gcsa-checkbox__label">
24
+ <slot>{{ label }}</slot>
25
+ </Checkbox.Label>
26
+ <Checkbox.HiddenInput />
27
+ </Checkbox.Root>
28
+ </template>
29
+
30
+ <script setup lang="ts">
31
+ import { Checkbox } from '@ark-ui/vue/checkbox';
32
+ import type { GcsaCheckboxProps } from '../types/componentProps';
33
+
34
+ defineOptions({ name: 'GcsaCheckbox' });
35
+
36
+ defineProps<GcsaCheckboxProps>();
37
+
38
+ const emit = defineEmits<{
39
+ 'update:modelValue': [value: boolean];
40
+ }>();
41
+
42
+ function onChange(details: { checked: boolean | 'indeterminate' }) {
43
+ emit('update:modelValue', details.checked === true);
44
+ }
45
+ </script>
@@ -0,0 +1,51 @@
1
+ <template>
2
+ <div class="gcsa-collapse" :class="{ 'gcsa-collapse--bordered': bordered }">
3
+ <section v-for="item in items" :key="item.key" class="gcsa-collapse__item" :data-open="isOpen(item.key) || undefined">
4
+ <button type="button" class="gcsa-collapse__trigger gcsa-focus-ring" :disabled="item.disabled" :aria-expanded="isOpen(item.key)" :aria-controls="`gcsa-collapse-${item.key}`" @click="toggle(item.key)">
5
+ <span class="gcsa-collapse__indicator" aria-hidden="true">{{ isOpen(item.key) ? '−' : '+' }}</span>
6
+ <span class="gcsa-collapse__title">{{ item.title }}</span>
7
+ <slot name="extra" :item="item" />
8
+ </button>
9
+ <div v-show="isOpen(item.key)" :id="`gcsa-collapse-${item.key}`" class="gcsa-collapse__content" role="region">
10
+ <slot :name="`content-${item.key}`" :item="item">{{ item.content }}</slot>
11
+ </div>
12
+ </section>
13
+ </div>
14
+ </template>
15
+
16
+ <script setup lang="ts">
17
+ import { computed, ref, watch } from 'vue';
18
+ import type { GcsaCollapseProps } from '../types/componentProps';
19
+
20
+ const props = withDefaults(defineProps<GcsaCollapseProps>(), { modelValue: undefined, accordion: false, bordered: true, defaultOpenKeys: () => [] });
21
+
22
+ const emit = defineEmits<{ 'update:modelValue': [keys: string[]] }>();
23
+
24
+ const uncontrolledOpen = ref<string[]>([...props.defaultOpenKeys]);
25
+
26
+ watch(
27
+ () => props.defaultOpenKeys,
28
+ (keys) => {
29
+ if (props.modelValue === undefined) {
30
+ uncontrolledOpen.value = [...keys];
31
+ }
32
+ }
33
+ );
34
+
35
+ const openKeys = computed(() => props.modelValue ?? uncontrolledOpen.value);
36
+
37
+ function isOpen(key: string) { return openKeys.value.includes(key); }
38
+
39
+ function toggle(key: string) {
40
+ if (props.items.find(item => item.key === key)?.disabled) return;
41
+ const next = isOpen(key)
42
+ ? openKeys.value.filter(value => value !== key)
43
+ : props.accordion ? [key] : [...openKeys.value, key];
44
+
45
+ if (props.modelValue === undefined) {
46
+ uncontrolledOpen.value = next;
47
+ }
48
+
49
+ emit('update:modelValue', next);
50
+ }
51
+ </script>
@@ -0,0 +1,147 @@
1
+ <template>
2
+ <div class="gcsa-console-root" :data-gcsa-theme="theme">
3
+ <slot />
4
+ <Teleport to="body">
5
+ <div
6
+ class="gcsa-portal-scope gcsa-toast-portal"
7
+ :data-gcsa-theme="props.theme"
8
+ :style="toastPortalStyle"
9
+ >
10
+ <GcsaToastStack :toasts="toasts" />
11
+ </div>
12
+ </Teleport>
13
+ </div>
14
+ </template>
15
+
16
+ <script setup lang="ts">
17
+ import { computed, inject, onMounted, onUnmounted, provide, ref, watch } from 'vue';
18
+ import type { GcsaConsoleTheme, GcsaConsoleLocale, GcsaComponentSize } from '@gcsa/console-core';
19
+ import type { GcsaConfigProviderProps } from '../types/componentProps';
20
+ import type { GcsaMessageType } from '@gcsa/console-core';
21
+ import { GCSA_MESSAGE_DURATION_MS } from '@gcsa/console-core';
22
+ import GcsaToastStack from './GcsaToastStack.vue';
23
+ import { GCSA_MESSAGE_KEY, type GcsaMessageApi } from '../composables/useMessage';
24
+ import { GCSA_LOCALE_KEY } from '../composables/useGcsaLocale';
25
+ import { GCSA_THEME_KEY } from '../composables/useGcsaTheme';
26
+ import { GCSA_RESTORE_DOCUMENT_THEME_KEY } from '../composables/useDocumentThemeSync';
27
+ import { GCSA_Z_INDEX_KEY, provideGcsaZIndex, readToastZIndex, type GcsaZIndexApi } from '../composables/useGcsaZIndex';
28
+ import {
29
+ GCSA_COMPONENT_SIZE_KEY,
30
+ provideGcsaComponentSize
31
+ } from '../composables/useGcsaComponentSize';
32
+
33
+ defineOptions({ name: 'GcsaConfigProvider' });
34
+
35
+ const GCSA_CONFIG_PROVIDER_KEY = Symbol('gcsa-config-provider');
36
+
37
+ const props = withDefaults(
38
+ defineProps<GcsaConfigProviderProps>(),
39
+ { theme: 'dark', locale: 'zh-CN', syncDocument: true }
40
+ );
41
+
42
+ const parentSize = inject(GCSA_COMPONENT_SIZE_KEY, null);
43
+ const resolvedSize = computed(
44
+ () => props.size ?? parentSize?.value ?? ('md' as GcsaComponentSize)
45
+ );
46
+ provideGcsaComponentSize(resolvedSize);
47
+
48
+ const parentProvider = inject(GCSA_CONFIG_PROVIDER_KEY, false);
49
+ const restoreDocumentTheme = inject(GCSA_RESTORE_DOCUMENT_THEME_KEY, null);
50
+
51
+ function shouldSyncDocument() {
52
+ return !parentProvider && props.syncDocument;
53
+ }
54
+
55
+ const toasts = ref<Array<{ id: number; message: string; type: GcsaMessageType }>>([]);
56
+ const toastZIndex = ref<number>(readToastZIndex());
57
+ let id = 0;
58
+ const MAX_TOASTS = 4;
59
+
60
+ const zIndexApi: GcsaZIndexApi = !parentProvider
61
+ ? provideGcsaZIndex()
62
+ : inject(GCSA_Z_INDEX_KEY, null) ?? provideGcsaZIndex();
63
+
64
+ if (parentProvider) {
65
+ provide(GCSA_Z_INDEX_KEY, zIndexApi);
66
+ }
67
+
68
+ const api: GcsaMessageApi = {
69
+ success(message: string) {
70
+ push(message, 'success');
71
+ },
72
+ error(message: string) {
73
+ push(message, 'error');
74
+ },
75
+ info(message: string) {
76
+ push(message, 'info');
77
+ }
78
+ };
79
+
80
+ function claimToastZIndex() {
81
+ // Toast 使用独立浮层,不与 Modal / Select 共用动态栈
82
+ return readToastZIndex();
83
+ }
84
+
85
+ const toastPortalStyle = computed(() => ({ zIndex: toastZIndex.value }));
86
+
87
+ function refreshToastZIndex() {
88
+ toastZIndex.value = claimToastZIndex();
89
+ }
90
+
91
+ function push(message: string, type: GcsaMessageType) {
92
+ refreshToastZIndex();
93
+ const current = ++id;
94
+ toasts.value = [...toasts.value, { id: current, message, type }].slice(-MAX_TOASTS);
95
+ setTimeout(() => {
96
+ toasts.value = toasts.value.filter(t => t.id !== current);
97
+ }, GCSA_MESSAGE_DURATION_MS);
98
+ }
99
+
100
+ function syncDocumentTheme(theme: GcsaConsoleTheme) {
101
+ if (!shouldSyncDocument() || typeof document === 'undefined') return;
102
+ document.documentElement.setAttribute('data-gcsa-theme', theme);
103
+ }
104
+
105
+ function clearDocumentTheme() {
106
+ if (parentProvider || typeof document === 'undefined') return;
107
+ if (restoreDocumentTheme) {
108
+ restoreDocumentTheme();
109
+ return;
110
+ }
111
+ document.documentElement.removeAttribute('data-gcsa-theme');
112
+ }
113
+
114
+ onMounted(() => {
115
+ syncDocumentTheme(props.theme);
116
+ refreshToastZIndex();
117
+ });
118
+
119
+ watch(
120
+ () => props.theme,
121
+ theme => {
122
+ syncDocumentTheme(theme);
123
+ }
124
+ );
125
+
126
+ watch(
127
+ () => props.syncDocument,
128
+ sync => {
129
+ if (sync) {
130
+ syncDocumentTheme(props.theme);
131
+ } else {
132
+ clearDocumentTheme();
133
+ }
134
+ }
135
+ );
136
+
137
+ onUnmounted(() => {
138
+ if (shouldSyncDocument()) {
139
+ clearDocumentTheme();
140
+ }
141
+ });
142
+
143
+ provide(GCSA_CONFIG_PROVIDER_KEY, true);
144
+ provide(GCSA_MESSAGE_KEY, api);
145
+ provide(GCSA_THEME_KEY, computed(() => props.theme));
146
+ provide(GCSA_LOCALE_KEY, computed(() => props.locale));
147
+ </script>