@groupteknology/vuno 1.0.0 → 2.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 (437) hide show
  1. package/README.md +53 -27
  2. package/dist/module.d.mts +14 -2
  3. package/dist/module.json +1 -1
  4. package/dist/module.mjs +80 -13
  5. package/dist/runtime/app/assets/css/dialog.css +1 -0
  6. package/dist/runtime/app/assets/css/main.css +1 -0
  7. package/dist/runtime/app/assets/css/stylesheet.css +1 -0
  8. package/dist/runtime/app/assets/css/theme.css +1 -0
  9. package/dist/runtime/app/assets/css/tokens.css +1 -0
  10. package/dist/runtime/app/components/Alert/Alert.d.vue.ts +20 -0
  11. package/dist/runtime/app/components/Alert/Alert.theme.d.ts +13 -0
  12. package/dist/runtime/app/components/Alert/Alert.theme.js +13 -0
  13. package/dist/runtime/app/components/Alert/Alert.vue +59 -0
  14. package/dist/runtime/app/components/Alert/Alert.vue.d.ts +20 -0
  15. package/dist/runtime/app/components/App/App.d.vue.ts +52 -0
  16. package/dist/runtime/app/components/App/App.vue +150 -0
  17. package/dist/runtime/app/components/App/App.vue.d.ts +52 -0
  18. package/dist/runtime/app/components/App/internal/Overlay/Overlay.d.vue.ts +7 -0
  19. package/dist/runtime/app/components/App/internal/Overlay/Overlay.vue +39 -0
  20. package/dist/runtime/app/components/App/internal/Overlay/Overlay.vue.d.ts +7 -0
  21. package/dist/runtime/app/components/App/internal/OverlayItem/OverlayItem.d.vue.ts +8 -0
  22. package/dist/runtime/app/components/App/internal/OverlayItem/OverlayItem.vue +19 -0
  23. package/dist/runtime/app/components/App/internal/OverlayItem/OverlayItem.vue.d.ts +8 -0
  24. package/dist/runtime/app/components/App/internal/Toast/Toast.d.vue.ts +11 -0
  25. package/dist/runtime/app/components/App/internal/Toast/Toast.theme.d.ts +13 -0
  26. package/dist/runtime/app/components/App/internal/Toast/Toast.theme.js +18 -0
  27. package/dist/runtime/app/components/App/internal/Toast/Toast.vue +64 -0
  28. package/dist/runtime/app/components/App/internal/Toast/Toast.vue.d.ts +11 -0
  29. package/dist/runtime/app/components/App/internal/Toaster/Toaster.d.vue.ts +11 -0
  30. package/dist/runtime/app/components/App/internal/Toaster/Toaster.theme.d.ts +15 -0
  31. package/dist/runtime/app/components/App/internal/Toaster/Toaster.theme.js +16 -0
  32. package/dist/runtime/app/components/App/internal/Toaster/Toaster.vue +100 -0
  33. package/dist/runtime/app/components/App/internal/Toaster/Toaster.vue.d.ts +11 -0
  34. package/dist/runtime/app/components/Avatar/Avatar.d.vue.ts +27 -0
  35. package/dist/runtime/app/components/Avatar/Avatar.theme.d.ts +30 -0
  36. package/dist/runtime/app/components/Avatar/Avatar.theme.js +22 -0
  37. package/dist/runtime/app/components/Avatar/Avatar.vue +51 -0
  38. package/dist/runtime/app/components/Avatar/Avatar.vue.d.ts +27 -0
  39. package/dist/runtime/app/components/Badge/Badge.d.vue.ts +40 -0
  40. package/dist/runtime/app/components/Badge/Badge.theme.d.ts +40 -0
  41. package/dist/runtime/app/components/Badge/Badge.theme.js +22 -0
  42. package/dist/runtime/app/components/Badge/Badge.vue +28 -0
  43. package/dist/runtime/app/components/Badge/Badge.vue.d.ts +40 -0
  44. package/dist/runtime/app/components/Button/Button.d.vue.ts +49 -0
  45. package/dist/runtime/app/components/Button/Button.theme.d.ts +88 -0
  46. package/dist/runtime/app/components/Button/Button.theme.js +59 -0
  47. package/dist/runtime/app/components/Button/Button.vue +78 -0
  48. package/dist/runtime/app/components/Button/Button.vue.d.ts +49 -0
  49. package/dist/runtime/app/components/Card/Card.d.vue.ts +94 -0
  50. package/dist/runtime/app/components/Card/Card.theme.d.ts +57 -0
  51. package/dist/runtime/app/components/Card/Card.theme.js +62 -0
  52. package/dist/runtime/app/components/Card/Card.vue +45 -0
  53. package/dist/runtime/app/components/Card/Card.vue.d.ts +94 -0
  54. package/dist/runtime/app/components/Code/Code.d.vue.ts +19 -0
  55. package/dist/runtime/app/components/Code/Code.theme.d.ts +11 -0
  56. package/dist/runtime/app/components/Code/Code.theme.js +12 -0
  57. package/dist/runtime/app/components/Code/Code.vue +109 -0
  58. package/dist/runtime/app/components/Code/Code.vue.d.ts +19 -0
  59. package/dist/runtime/app/components/Confirm/Confirm.d.vue.ts +35 -0
  60. package/dist/runtime/app/components/Confirm/Confirm.theme.d.ts +12 -0
  61. package/dist/runtime/app/components/Confirm/Confirm.theme.js +13 -0
  62. package/dist/runtime/app/components/Confirm/Confirm.vue +83 -0
  63. package/dist/runtime/app/components/Confirm/Confirm.vue.d.ts +35 -0
  64. package/dist/runtime/app/components/Container/Container.d.vue.ts +42 -0
  65. package/dist/runtime/app/components/Container/Container.theme.d.ts +53 -0
  66. package/dist/runtime/app/components/Container/Container.theme.js +31 -0
  67. package/dist/runtime/app/components/Container/Container.vue +20 -0
  68. package/dist/runtime/app/components/Container/Container.vue.d.ts +42 -0
  69. package/dist/runtime/app/components/ControlGroup/ControlGroup.d.vue.ts +26 -0
  70. package/dist/runtime/app/components/ControlGroup/ControlGroup.theme.d.ts +16 -0
  71. package/dist/runtime/app/components/ControlGroup/ControlGroup.theme.js +13 -0
  72. package/dist/runtime/app/components/ControlGroup/ControlGroup.vue +26 -0
  73. package/dist/runtime/app/components/ControlGroup/ControlGroup.vue.d.ts +26 -0
  74. package/dist/runtime/app/components/FieldArray/FieldArray.d.vue.ts +13 -0
  75. package/dist/runtime/app/components/FieldArray/FieldArray.theme.d.ts +12 -0
  76. package/dist/runtime/app/components/FieldArray/FieldArray.theme.js +13 -0
  77. package/dist/runtime/app/components/FieldArray/FieldArray.vue +173 -0
  78. package/dist/runtime/app/components/FieldArray/FieldArray.vue.d.ts +13 -0
  79. package/dist/runtime/app/components/FieldCheckbox/FieldCheckbox.d.vue.ts +13 -0
  80. package/dist/runtime/app/components/FieldCheckbox/FieldCheckbox.theme.d.ts +5 -0
  81. package/dist/runtime/app/components/FieldCheckbox/FieldCheckbox.theme.js +2 -0
  82. package/dist/runtime/app/components/FieldCheckbox/FieldCheckbox.vue +39 -0
  83. package/dist/runtime/app/components/FieldCheckbox/FieldCheckbox.vue.d.ts +13 -0
  84. package/dist/runtime/app/components/FieldCheckbox/internal/Checkbox/Checkbox.d.vue.ts +40 -0
  85. package/dist/runtime/app/components/FieldCheckbox/internal/Checkbox/Checkbox.theme.d.ts +30 -0
  86. package/dist/runtime/app/components/FieldCheckbox/internal/Checkbox/Checkbox.theme.js +10 -0
  87. package/dist/runtime/app/components/FieldCheckbox/internal/Checkbox/Checkbox.vue +40 -0
  88. package/dist/runtime/app/components/FieldCheckbox/internal/Checkbox/Checkbox.vue.d.ts +40 -0
  89. package/dist/runtime/app/components/FieldColor/FieldColor.d.vue.ts +13 -0
  90. package/dist/runtime/app/components/FieldColor/FieldColor.theme.d.ts +27 -0
  91. package/dist/runtime/app/components/FieldColor/FieldColor.theme.js +18 -0
  92. package/dist/runtime/app/components/FieldColor/FieldColor.vue +88 -0
  93. package/dist/runtime/app/components/FieldColor/FieldColor.vue.d.ts +13 -0
  94. package/dist/runtime/app/components/FieldCurrency/FieldCurrency.d.vue.ts +13 -0
  95. package/dist/runtime/app/components/FieldCurrency/FieldCurrency.theme.d.ts +5 -0
  96. package/dist/runtime/app/components/FieldCurrency/FieldCurrency.theme.js +2 -0
  97. package/dist/runtime/app/components/FieldCurrency/FieldCurrency.vue +51 -0
  98. package/dist/runtime/app/components/FieldCurrency/FieldCurrency.vue.d.ts +13 -0
  99. package/dist/runtime/app/components/FieldFile/FieldFile.d.vue.ts +26 -0
  100. package/dist/runtime/app/components/FieldFile/FieldFile.theme.d.ts +5 -0
  101. package/dist/runtime/app/components/FieldFile/FieldFile.theme.js +2 -0
  102. package/dist/runtime/app/components/FieldFile/FieldFile.vue +99 -0
  103. package/dist/runtime/app/components/FieldFile/FieldFile.vue.d.ts +26 -0
  104. package/dist/runtime/app/components/FieldFile/internal/FileUpload/FileUpload.d.vue.ts +66 -0
  105. package/dist/runtime/app/components/FieldFile/internal/FileUpload/FileUpload.theme.d.ts +88 -0
  106. package/dist/runtime/app/components/FieldFile/internal/FileUpload/FileUpload.theme.js +55 -0
  107. package/dist/runtime/app/components/FieldFile/internal/FileUpload/FileUpload.vue +187 -0
  108. package/dist/runtime/app/components/FieldFile/internal/FileUpload/FileUpload.vue.d.ts +66 -0
  109. package/dist/runtime/app/components/FieldInput/FieldInput.d.vue.ts +24 -0
  110. package/dist/runtime/app/components/FieldInput/FieldInput.theme.d.ts +5 -0
  111. package/dist/runtime/app/components/FieldInput/FieldInput.theme.js +2 -0
  112. package/dist/runtime/app/components/FieldInput/FieldInput.vue +61 -0
  113. package/dist/runtime/app/components/FieldInput/FieldInput.vue.d.ts +24 -0
  114. package/dist/runtime/app/components/FieldNumber/FieldNumber.d.vue.ts +13 -0
  115. package/dist/runtime/app/components/FieldNumber/FieldNumber.theme.d.ts +5 -0
  116. package/dist/runtime/app/components/FieldNumber/FieldNumber.theme.js +2 -0
  117. package/dist/runtime/app/components/FieldNumber/FieldNumber.vue +47 -0
  118. package/dist/runtime/app/components/FieldNumber/FieldNumber.vue.d.ts +13 -0
  119. package/dist/runtime/app/components/FieldPassword/FieldPassword.d.vue.ts +13 -0
  120. package/dist/runtime/app/components/FieldPassword/FieldPassword.theme.d.ts +5 -0
  121. package/dist/runtime/app/components/FieldPassword/FieldPassword.theme.js +2 -0
  122. package/dist/runtime/app/components/FieldPassword/FieldPassword.vue +62 -0
  123. package/dist/runtime/app/components/FieldPassword/FieldPassword.vue.d.ts +13 -0
  124. package/dist/runtime/app/components/FieldRadio/FieldRadio.d.vue.ts +13 -0
  125. package/dist/runtime/app/components/FieldRadio/FieldRadio.theme.d.ts +5 -0
  126. package/dist/runtime/app/components/FieldRadio/FieldRadio.theme.js +2 -0
  127. package/dist/runtime/app/components/FieldRadio/FieldRadio.vue +41 -0
  128. package/dist/runtime/app/components/FieldRadio/FieldRadio.vue.d.ts +13 -0
  129. package/dist/runtime/app/components/FieldRadio/internal/RadioGroup/RadioGroup.d.vue.ts +32 -0
  130. package/dist/runtime/app/components/FieldRadio/internal/RadioGroup/RadioGroup.theme.d.ts +54 -0
  131. package/dist/runtime/app/components/FieldRadio/internal/RadioGroup/RadioGroup.theme.js +31 -0
  132. package/dist/runtime/app/components/FieldRadio/internal/RadioGroup/RadioGroup.vue +80 -0
  133. package/dist/runtime/app/components/FieldRadio/internal/RadioGroup/RadioGroup.vue.d.ts +32 -0
  134. package/dist/runtime/app/components/FieldSearch/FieldSearch.d.vue.ts +17 -0
  135. package/dist/runtime/app/components/FieldSearch/FieldSearch.theme.d.ts +6 -0
  136. package/dist/runtime/app/components/FieldSearch/FieldSearch.theme.js +7 -0
  137. package/dist/runtime/app/components/FieldSearch/FieldSearch.vue +74 -0
  138. package/dist/runtime/app/components/FieldSearch/FieldSearch.vue.d.ts +17 -0
  139. package/dist/runtime/app/components/FieldSelect/FieldSelect.d.vue.ts +13 -0
  140. package/dist/runtime/app/components/FieldSelect/FieldSelect.theme.d.ts +5 -0
  141. package/dist/runtime/app/components/FieldSelect/FieldSelect.theme.js +2 -0
  142. package/dist/runtime/app/components/FieldSelect/FieldSelect.vue +45 -0
  143. package/dist/runtime/app/components/FieldSelect/FieldSelect.vue.d.ts +13 -0
  144. package/dist/runtime/app/components/FieldSelect/internal/Select/Select.d.vue.ts +97 -0
  145. package/dist/runtime/app/components/FieldSelect/internal/Select/Select.theme.d.ts +36 -0
  146. package/dist/runtime/app/components/FieldSelect/internal/Select/Select.theme.js +49 -0
  147. package/dist/runtime/app/components/FieldSelect/internal/Select/Select.vue +196 -0
  148. package/dist/runtime/app/components/FieldSelect/internal/Select/Select.vue.d.ts +97 -0
  149. package/dist/runtime/app/components/FieldSelect/internal/Select/option.d.ts +25 -0
  150. package/dist/runtime/app/components/FieldSelect/internal/Select/option.js +6 -0
  151. package/dist/runtime/app/components/FieldSelect/internal/Select/useVunoSelectState.d.ts +30 -0
  152. package/dist/runtime/app/components/FieldSelect/internal/Select/useVunoSelectState.js +142 -0
  153. package/dist/runtime/app/components/FieldSlug/FieldSlug.d.vue.ts +13 -0
  154. package/dist/runtime/app/components/FieldSlug/FieldSlug.theme.d.ts +5 -0
  155. package/dist/runtime/app/components/FieldSlug/FieldSlug.theme.js +2 -0
  156. package/dist/runtime/app/components/FieldSlug/FieldSlug.vue +113 -0
  157. package/dist/runtime/app/components/FieldSlug/FieldSlug.vue.d.ts +13 -0
  158. package/dist/runtime/app/components/FieldSwitch/FieldSwitch.d.vue.ts +13 -0
  159. package/dist/runtime/app/components/FieldSwitch/FieldSwitch.theme.d.ts +5 -0
  160. package/dist/runtime/app/components/FieldSwitch/FieldSwitch.theme.js +2 -0
  161. package/dist/runtime/app/components/FieldSwitch/FieldSwitch.vue +37 -0
  162. package/dist/runtime/app/components/FieldSwitch/FieldSwitch.vue.d.ts +13 -0
  163. package/dist/runtime/app/components/FieldSwitch/internal/Switch/Switch.d.vue.ts +26 -0
  164. package/dist/runtime/app/components/FieldSwitch/internal/Switch/Switch.theme.d.ts +39 -0
  165. package/dist/runtime/app/components/FieldSwitch/internal/Switch/Switch.theme.js +20 -0
  166. package/dist/runtime/app/components/FieldSwitch/internal/Switch/Switch.vue +46 -0
  167. package/dist/runtime/app/components/FieldSwitch/internal/Switch/Switch.vue.d.ts +26 -0
  168. package/dist/runtime/app/components/FieldTags/FieldTags.d.vue.ts +13 -0
  169. package/dist/runtime/app/components/FieldTags/FieldTags.theme.d.ts +5 -0
  170. package/dist/runtime/app/components/FieldTags/FieldTags.theme.js +2 -0
  171. package/dist/runtime/app/components/FieldTags/FieldTags.vue +41 -0
  172. package/dist/runtime/app/components/FieldTags/FieldTags.vue.d.ts +13 -0
  173. package/dist/runtime/app/components/FieldTags/internal/TagsInput/TagsInput.d.vue.ts +26 -0
  174. package/dist/runtime/app/components/FieldTags/internal/TagsInput/TagsInput.theme.d.ts +34 -0
  175. package/dist/runtime/app/components/FieldTags/internal/TagsInput/TagsInput.theme.js +20 -0
  176. package/dist/runtime/app/components/FieldTags/internal/TagsInput/TagsInput.vue +97 -0
  177. package/dist/runtime/app/components/FieldTags/internal/TagsInput/TagsInput.vue.d.ts +26 -0
  178. package/dist/runtime/app/components/FieldTextarea/FieldTextarea.d.vue.ts +26 -0
  179. package/dist/runtime/app/components/FieldTextarea/FieldTextarea.theme.d.ts +5 -0
  180. package/dist/runtime/app/components/FieldTextarea/FieldTextarea.theme.js +2 -0
  181. package/dist/runtime/app/components/FieldTextarea/FieldTextarea.vue +45 -0
  182. package/dist/runtime/app/components/FieldTextarea/FieldTextarea.vue.d.ts +26 -0
  183. package/dist/runtime/app/components/FieldTextarea/internal/Textarea/Textarea.d.vue.ts +34 -0
  184. package/dist/runtime/app/components/FieldTextarea/internal/Textarea/Textarea.theme.d.ts +36 -0
  185. package/dist/runtime/app/components/FieldTextarea/internal/Textarea/Textarea.theme.js +37 -0
  186. package/dist/runtime/app/components/FieldTextarea/internal/Textarea/Textarea.vue +43 -0
  187. package/dist/runtime/app/components/FieldTextarea/internal/Textarea/Textarea.vue.d.ts +34 -0
  188. package/dist/runtime/app/components/Form/Form.d.vue.ts +52 -0
  189. package/dist/runtime/app/components/Form/Form.theme.d.ts +9 -0
  190. package/dist/runtime/app/components/Form/Form.theme.js +10 -0
  191. package/dist/runtime/app/components/Form/Form.vue +129 -0
  192. package/dist/runtime/app/components/Form/Form.vue.d.ts +52 -0
  193. package/dist/runtime/app/components/Form/internal/FormFieldRenderer/FormFieldRenderer.d.vue.ts +7 -0
  194. package/dist/runtime/app/components/Form/internal/FormFieldRenderer/FormFieldRenderer.vue +67 -0
  195. package/dist/runtime/app/components/Form/internal/FormFieldRenderer/FormFieldRenderer.vue.d.ts +7 -0
  196. package/dist/runtime/app/components/Form/internal/grid.d.ts +9 -0
  197. package/dist/runtime/app/components/Form/internal/grid.js +91 -0
  198. package/dist/runtime/app/components/Form/internal/standard-schema.d.ts +29 -0
  199. package/dist/runtime/app/components/Form/internal/standard-schema.js +15 -0
  200. package/dist/runtime/app/components/Form/internal/useVunoFormState.d.ts +43 -0
  201. package/dist/runtime/app/components/Form/internal/useVunoFormState.js +81 -0
  202. package/dist/runtime/app/components/FormField/FormField.d.vue.ts +35 -0
  203. package/dist/runtime/app/components/FormField/FormField.theme.d.ts +62 -0
  204. package/dist/runtime/app/components/FormField/FormField.theme.js +28 -0
  205. package/dist/runtime/app/components/FormField/FormField.vue +124 -0
  206. package/dist/runtime/app/components/FormField/FormField.vue.d.ts +35 -0
  207. package/dist/runtime/app/components/FormModal/FormModal.d.vue.ts +63 -0
  208. package/dist/runtime/app/components/FormModal/FormModal.theme.d.ts +8 -0
  209. package/dist/runtime/app/components/FormModal/FormModal.theme.js +9 -0
  210. package/dist/runtime/app/components/FormModal/FormModal.vue +95 -0
  211. package/dist/runtime/app/components/FormModal/FormModal.vue.d.ts +63 -0
  212. package/dist/runtime/app/components/FormSection/FormSection.d.vue.ts +15 -0
  213. package/dist/runtime/app/components/FormSection/FormSection.theme.d.ts +12 -0
  214. package/dist/runtime/app/components/FormSection/FormSection.theme.js +14 -0
  215. package/dist/runtime/app/components/FormSection/FormSection.vue +45 -0
  216. package/dist/runtime/app/components/FormSection/FormSection.vue.d.ts +15 -0
  217. package/dist/runtime/app/components/Icon/Icon.d.vue.ts +6 -0
  218. package/dist/runtime/app/components/Icon/Icon.vue +32 -0
  219. package/dist/runtime/app/components/Icon/Icon.vue.d.ts +6 -0
  220. package/dist/runtime/app/components/Menu/Menu.d.vue.ts +36 -0
  221. package/dist/runtime/app/components/Menu/Menu.theme.d.ts +17 -0
  222. package/dist/runtime/app/components/Menu/Menu.theme.js +20 -0
  223. package/dist/runtime/app/components/Menu/Menu.vue +182 -0
  224. package/dist/runtime/app/components/Menu/Menu.vue.d.ts +36 -0
  225. package/dist/runtime/app/components/Modal/Modal.d.vue.ts +43 -0
  226. package/dist/runtime/app/components/Modal/Modal.theme.d.ts +59 -0
  227. package/dist/runtime/app/components/Modal/Modal.theme.js +47 -0
  228. package/dist/runtime/app/components/Modal/Modal.vue +215 -0
  229. package/dist/runtime/app/components/Modal/Modal.vue.d.ts +43 -0
  230. package/dist/runtime/app/components/Navbar/Navbar.d.vue.ts +45 -0
  231. package/dist/runtime/app/components/Navbar/Navbar.theme.d.ts +31 -0
  232. package/dist/runtime/app/components/Navbar/Navbar.theme.js +32 -0
  233. package/dist/runtime/app/components/Navbar/Navbar.vue +47 -0
  234. package/dist/runtime/app/components/Navbar/Navbar.vue.d.ts +45 -0
  235. package/dist/runtime/app/components/NavigationList/NavigationList.d.vue.ts +38 -0
  236. package/dist/runtime/app/components/NavigationList/NavigationList.theme.d.ts +32 -0
  237. package/dist/runtime/app/components/NavigationList/NavigationList.theme.js +35 -0
  238. package/dist/runtime/app/components/NavigationList/NavigationList.vue +187 -0
  239. package/dist/runtime/app/components/NavigationList/NavigationList.vue.d.ts +38 -0
  240. package/dist/runtime/app/components/NavigationMenu/NavigationMenu.d.vue.ts +31 -0
  241. package/dist/runtime/app/components/NavigationMenu/NavigationMenu.theme.d.ts +26 -0
  242. package/dist/runtime/app/components/NavigationMenu/NavigationMenu.theme.js +27 -0
  243. package/dist/runtime/app/components/NavigationMenu/NavigationMenu.vue +236 -0
  244. package/dist/runtime/app/components/NavigationMenu/NavigationMenu.vue.d.ts +31 -0
  245. package/dist/runtime/app/components/NavigationToc/NavigationToc.d.vue.ts +14 -0
  246. package/dist/runtime/app/components/NavigationToc/NavigationToc.theme.d.ts +9 -0
  247. package/dist/runtime/app/components/NavigationToc/NavigationToc.theme.js +10 -0
  248. package/dist/runtime/app/components/NavigationToc/NavigationToc.vue +81 -0
  249. package/dist/runtime/app/components/NavigationToc/NavigationToc.vue.d.ts +14 -0
  250. package/dist/runtime/app/components/Page/Page.d.vue.ts +40 -0
  251. package/dist/runtime/app/components/Page/Page.theme.d.ts +32 -0
  252. package/dist/runtime/app/components/Page/Page.theme.js +31 -0
  253. package/dist/runtime/app/components/Page/Page.vue +132 -0
  254. package/dist/runtime/app/components/Page/Page.vue.d.ts +40 -0
  255. package/dist/runtime/app/components/Pagination/Pagination.d.vue.ts +33 -0
  256. package/dist/runtime/app/components/Pagination/Pagination.theme.d.ts +13 -0
  257. package/dist/runtime/app/components/Pagination/Pagination.theme.js +14 -0
  258. package/dist/runtime/app/components/Pagination/Pagination.vue +129 -0
  259. package/dist/runtime/app/components/Pagination/Pagination.vue.d.ts +33 -0
  260. package/dist/runtime/app/components/Slideover/Slideover.d.vue.ts +43 -0
  261. package/dist/runtime/app/components/Slideover/Slideover.theme.d.ts +35 -0
  262. package/dist/runtime/app/components/Slideover/Slideover.theme.js +24 -0
  263. package/dist/runtime/app/components/Slideover/Slideover.vue +58 -0
  264. package/dist/runtime/app/components/Slideover/Slideover.vue.d.ts +43 -0
  265. package/dist/runtime/app/components/State/State.d.vue.ts +14 -0
  266. package/dist/runtime/app/components/State/State.theme.d.ts +19 -0
  267. package/dist/runtime/app/components/State/State.theme.js +26 -0
  268. package/dist/runtime/app/components/State/State.vue +66 -0
  269. package/dist/runtime/app/components/State/State.vue.d.ts +14 -0
  270. package/dist/runtime/app/components/Table/Table.d.vue.ts +80 -0
  271. package/dist/runtime/app/components/Table/Table.theme.d.ts +50 -0
  272. package/dist/runtime/app/components/Table/Table.theme.js +64 -0
  273. package/dist/runtime/app/components/Table/Table.vue +483 -0
  274. package/dist/runtime/app/components/Table/Table.vue.d.ts +80 -0
  275. package/dist/runtime/app/components/Table/internal/CellBadge/CellBadge.d.vue.ts +5 -0
  276. package/dist/runtime/app/components/Table/internal/CellBadge/CellBadge.vue +26 -0
  277. package/dist/runtime/app/components/Table/internal/CellBadge/CellBadge.vue.d.ts +5 -0
  278. package/dist/runtime/app/components/Table/internal/CellBoolean/CellBoolean.d.vue.ts +5 -0
  279. package/dist/runtime/app/components/Table/internal/CellBoolean/CellBoolean.theme.d.ts +21 -0
  280. package/dist/runtime/app/components/Table/internal/CellBoolean/CellBoolean.theme.js +11 -0
  281. package/dist/runtime/app/components/Table/internal/CellBoolean/CellBoolean.vue +32 -0
  282. package/dist/runtime/app/components/Table/internal/CellBoolean/CellBoolean.vue.d.ts +5 -0
  283. package/dist/runtime/app/components/Table/internal/CellCurrency/CellCurrency.d.vue.ts +5 -0
  284. package/dist/runtime/app/components/Table/internal/CellCurrency/CellCurrency.theme.d.ts +5 -0
  285. package/dist/runtime/app/components/Table/internal/CellCurrency/CellCurrency.theme.js +4 -0
  286. package/dist/runtime/app/components/Table/internal/CellCurrency/CellCurrency.vue +16 -0
  287. package/dist/runtime/app/components/Table/internal/CellCurrency/CellCurrency.vue.d.ts +5 -0
  288. package/dist/runtime/app/components/Table/internal/CellDate/CellDate.d.vue.ts +5 -0
  289. package/dist/runtime/app/components/Table/internal/CellDate/CellDate.theme.d.ts +5 -0
  290. package/dist/runtime/app/components/Table/internal/CellDate/CellDate.theme.js +4 -0
  291. package/dist/runtime/app/components/Table/internal/CellDate/CellDate.vue +21 -0
  292. package/dist/runtime/app/components/Table/internal/CellDate/CellDate.vue.d.ts +5 -0
  293. package/dist/runtime/app/components/Table/internal/CellImage/CellImage.d.vue.ts +5 -0
  294. package/dist/runtime/app/components/Table/internal/CellImage/CellImage.vue +24 -0
  295. package/dist/runtime/app/components/Table/internal/CellImage/CellImage.vue.d.ts +5 -0
  296. package/dist/runtime/app/components/Table/internal/CellNumber/CellNumber.d.vue.ts +5 -0
  297. package/dist/runtime/app/components/Table/internal/CellNumber/CellNumber.theme.d.ts +5 -0
  298. package/dist/runtime/app/components/Table/internal/CellNumber/CellNumber.theme.js +4 -0
  299. package/dist/runtime/app/components/Table/internal/CellNumber/CellNumber.vue +17 -0
  300. package/dist/runtime/app/components/Table/internal/CellNumber/CellNumber.vue.d.ts +5 -0
  301. package/dist/runtime/app/components/Table/internal/CellText/CellText.d.vue.ts +5 -0
  302. package/dist/runtime/app/components/Table/internal/CellText/CellText.theme.d.ts +13 -0
  303. package/dist/runtime/app/components/Table/internal/CellText/CellText.theme.js +11 -0
  304. package/dist/runtime/app/components/Table/internal/CellText/CellText.vue +16 -0
  305. package/dist/runtime/app/components/Table/internal/CellText/CellText.vue.d.ts +5 -0
  306. package/dist/runtime/app/components/Table/internal/TableCell/TableCell.d.vue.ts +22 -0
  307. package/dist/runtime/app/components/Table/internal/TableCell/TableCell.vue +48 -0
  308. package/dist/runtime/app/components/Table/internal/TableCell/TableCell.vue.d.ts +22 -0
  309. package/dist/runtime/app/components/Table/internal/column.d.ts +9 -0
  310. package/dist/runtime/app/components/Table/internal/column.js +5 -0
  311. package/dist/runtime/app/components/Table/internal/query.d.ts +18 -0
  312. package/dist/runtime/app/components/Table/internal/query.js +8 -0
  313. package/dist/runtime/app/components/Table/internal/selection.d.ts +29 -0
  314. package/dist/runtime/app/components/Table/internal/selection.js +10 -0
  315. package/dist/runtime/app/components/Table/internal/useVunoTable.d.ts +93 -0
  316. package/dist/runtime/app/components/Table/internal/useVunoTable.js +153 -0
  317. package/dist/runtime/app/components/Table/internal/useVunoTableSelection.d.ts +21 -0
  318. package/dist/runtime/app/components/Table/internal/useVunoTableSelection.js +29 -0
  319. package/dist/runtime/app/components/Tabs/Tabs.d.vue.ts +49 -0
  320. package/dist/runtime/app/components/Tabs/Tabs.theme.d.ts +32 -0
  321. package/dist/runtime/app/components/Tabs/Tabs.theme.js +23 -0
  322. package/dist/runtime/app/components/Tabs/Tabs.vue +119 -0
  323. package/dist/runtime/app/components/Tabs/Tabs.vue.d.ts +49 -0
  324. package/dist/runtime/app/components/Tooltip/Tooltip.d.vue.ts +40 -0
  325. package/dist/runtime/app/components/Tooltip/Tooltip.theme.d.ts +12 -0
  326. package/dist/runtime/app/components/Tooltip/Tooltip.theme.js +13 -0
  327. package/dist/runtime/app/components/Tooltip/Tooltip.vue +139 -0
  328. package/dist/runtime/app/components/Tooltip/Tooltip.vue.d.ts +40 -0
  329. package/dist/runtime/app/components/internal/ControlShell/ControlShell.d.vue.ts +41 -0
  330. package/dist/runtime/app/components/internal/ControlShell/ControlShell.theme.d.ts +50 -0
  331. package/dist/runtime/app/components/internal/ControlShell/ControlShell.theme.js +38 -0
  332. package/dist/runtime/app/components/internal/ControlShell/ControlShell.vue +33 -0
  333. package/dist/runtime/app/components/internal/ControlShell/ControlShell.vue.d.ts +41 -0
  334. package/dist/runtime/app/components/internal/FieldShell/FieldShell.d.vue.ts +23 -0
  335. package/dist/runtime/app/components/internal/FieldShell/FieldShell.vue +63 -0
  336. package/dist/runtime/app/components/internal/FieldShell/FieldShell.vue.d.ts +23 -0
  337. package/dist/runtime/app/components/internal/Input/Input.d.vue.ts +52 -0
  338. package/dist/runtime/app/components/internal/Input/Input.theme.d.ts +30 -0
  339. package/dist/runtime/app/components/internal/Input/Input.theme.js +21 -0
  340. package/dist/runtime/app/components/internal/Input/Input.vue +66 -0
  341. package/dist/runtime/app/components/internal/Input/Input.vue.d.ts +52 -0
  342. package/dist/runtime/app/components/internal/NumberInput/NumberInput.d.vue.ts +36 -0
  343. package/dist/runtime/app/components/internal/NumberInput/NumberInput.theme.d.ts +31 -0
  344. package/dist/runtime/app/components/internal/NumberInput/NumberInput.theme.js +26 -0
  345. package/dist/runtime/app/components/internal/NumberInput/NumberInput.vue +221 -0
  346. package/dist/runtime/app/components/internal/NumberInput/NumberInput.vue.d.ts +36 -0
  347. package/dist/runtime/app/components/internal/NumberInput/number.d.ts +42 -0
  348. package/dist/runtime/app/components/internal/NumberInput/number.js +64 -0
  349. package/dist/runtime/app/composables/defineShortcuts.d.ts +19 -0
  350. package/dist/runtime/app/composables/defineShortcuts.js +68 -0
  351. package/dist/runtime/app/composables/internal/useVunoAnchor.d.ts +45 -0
  352. package/dist/runtime/app/composables/internal/useVunoAnchor.js +35 -0
  353. package/dist/runtime/app/composables/internal/useVunoControlGroup.d.ts +17 -0
  354. package/dist/runtime/app/composables/internal/useVunoControlGroup.js +18 -0
  355. package/dist/runtime/app/composables/internal/useVunoPortal.d.ts +18 -0
  356. package/dist/runtime/app/composables/internal/useVunoPortal.js +12 -0
  357. package/dist/runtime/app/composables/useConfirm.d.ts +15 -0
  358. package/dist/runtime/app/composables/useConfirm.js +5 -0
  359. package/dist/runtime/app/composables/useContext.d.ts +11 -0
  360. package/dist/runtime/app/composables/useContext.js +9 -0
  361. package/dist/runtime/app/composables/useCrud.d.ts +23 -0
  362. package/dist/runtime/app/composables/useCrud.js +153 -0
  363. package/dist/runtime/app/composables/useField.d.ts +10 -0
  364. package/dist/runtime/app/composables/useField.js +42 -0
  365. package/dist/runtime/app/composables/useForm.d.ts +5 -0
  366. package/dist/runtime/app/composables/useForm.js +9 -0
  367. package/dist/runtime/app/composables/useModal.d.ts +21 -0
  368. package/dist/runtime/app/composables/useModal.js +24 -0
  369. package/dist/runtime/app/composables/useOverlay.d.ts +22 -0
  370. package/dist/runtime/app/composables/useOverlay.js +10 -0
  371. package/dist/runtime/app/composables/useTableQuery.d.ts +10 -0
  372. package/dist/runtime/app/composables/useTableQuery.js +126 -0
  373. package/dist/runtime/app/composables/useTheme.d.ts +31 -0
  374. package/dist/runtime/app/composables/useTheme.js +29 -0
  375. package/dist/runtime/app/composables/useToast.d.ts +28 -0
  376. package/dist/runtime/app/composables/useToast.js +13 -0
  377. package/dist/runtime/app/internal/keys.d.ts +43 -0
  378. package/dist/runtime/app/internal/keys.js +8 -0
  379. package/dist/runtime/app/internal/slots.d.ts +22 -0
  380. package/dist/runtime/app/internal/slots.js +24 -0
  381. package/dist/runtime/app/plugins/vue-query.d.ts +8 -0
  382. package/dist/runtime/app/plugins/vue-query.js +13 -0
  383. package/dist/runtime/app/theme/icons.d.ts +2 -0
  384. package/dist/runtime/app/theme/icons.js +43 -0
  385. package/dist/runtime/app/theme/index.d.ts +1168 -0
  386. package/dist/runtime/app/theme/index.js +120 -0
  387. package/dist/runtime/app/theme/messages.d.ts +2 -0
  388. package/dist/runtime/app/theme/messages.js +70 -0
  389. package/dist/runtime/app/theme/shared.d.ts +42 -0
  390. package/dist/runtime/app/theme/shared.js +24 -0
  391. package/dist/runtime/app/types/alert.d.ts +13 -0
  392. package/dist/runtime/app/types/alert.js +0 -0
  393. package/dist/runtime/app/types/app-config.d.ts +8 -0
  394. package/dist/runtime/app/types/app-config.js +1 -0
  395. package/dist/runtime/app/types/app.d.ts +83 -0
  396. package/dist/runtime/app/types/app.js +0 -0
  397. package/dist/runtime/app/types/base.d.ts +78 -0
  398. package/dist/runtime/app/types/base.js +0 -0
  399. package/dist/runtime/app/types/confirm.d.ts +19 -0
  400. package/dist/runtime/app/types/confirm.js +0 -0
  401. package/dist/runtime/app/types/crud.d.ts +108 -0
  402. package/dist/runtime/app/types/crud.js +0 -0
  403. package/dist/runtime/app/types/field-type.d.ts +4 -0
  404. package/dist/runtime/app/types/field-type.js +0 -0
  405. package/dist/runtime/app/types/field.d.ts +233 -0
  406. package/dist/runtime/app/types/field.js +0 -0
  407. package/dist/runtime/app/types/form.d.ts +67 -0
  408. package/dist/runtime/app/types/form.js +0 -0
  409. package/dist/runtime/app/types/index.d.ts +16 -0
  410. package/dist/runtime/app/types/index.js +1 -0
  411. package/dist/runtime/app/types/page.d.ts +61 -0
  412. package/dist/runtime/app/types/page.js +0 -0
  413. package/dist/runtime/app/types/responsive.d.ts +8 -0
  414. package/dist/runtime/app/types/responsive.js +0 -0
  415. package/dist/runtime/app/types/shortcuts.d.ts +44 -0
  416. package/dist/runtime/app/types/shortcuts.js +0 -0
  417. package/dist/runtime/app/types/slots.d.ts +30 -0
  418. package/dist/runtime/app/types/slots.js +0 -0
  419. package/dist/runtime/app/types/state.d.ts +35 -0
  420. package/dist/runtime/app/types/state.js +0 -0
  421. package/dist/runtime/app/types/table.d.ts +287 -0
  422. package/dist/runtime/app/types/table.js +0 -0
  423. package/dist/runtime/app/types/theme.d.ts +251 -0
  424. package/dist/runtime/app/types/theme.js +0 -0
  425. package/dist/runtime/app/utils/format.d.ts +18 -0
  426. package/dist/runtime/app/utils/format.js +36 -0
  427. package/dist/runtime/app/utils/pagination.d.ts +41 -0
  428. package/dist/runtime/app/utils/pagination.js +32 -0
  429. package/dist/runtime/app/utils/path.d.ts +16 -0
  430. package/dist/runtime/app/utils/path.js +76 -0
  431. package/dist/runtime/app/utils/query-key.d.ts +20 -0
  432. package/dist/runtime/app/utils/query-key.js +7 -0
  433. package/dist/runtime/app/utils/theme.d.ts +44 -0
  434. package/dist/runtime/app/utils/theme.js +43 -0
  435. package/dist/types.d.mts +3 -11
  436. package/package.json +18 -3
  437. package/dist/module.d.cts +0 -2
@@ -0,0 +1,52 @@
1
+ import { type Component } from 'vue';
2
+ import type { VunoAlertRequest, VunoConfirmRequest, VunoNotifyRequest } from '#vuno/types/app';
3
+ /**
4
+ * Raíz del módulo: provee el contexto global, aloja los overlays y la pila
5
+ * de notificaciones.
6
+ *
7
+ * Monta directamente todo lo que necesitan las piezas del módulo.
8
+ */
9
+ type Props = {
10
+ /**
11
+ * Dirección de lectura.
12
+ *
13
+ * Se provee a los componentes que la necesitan —hoy solo las
14
+ * pestañas, para invertir sus flechas— y se pone además en el
15
+ * elemento, que es de donde la lee el navegador para el texto y
16
+ * para las propiedades lógicas del CSS.
17
+ */
18
+ dir?: 'ltr' | 'rtl';
19
+ };
20
+ /**
21
+ * Monta un componente y espera a que emita `close`.
22
+ *
23
+ * Cerrar con Escape o pulsando fuera cuenta como cerrar sin resultado: un
24
+ * `update:open` en falso resuelve igual, porque si no la promesa se quedaría
25
+ * esperando para siempre a un diálogo que ya no está en pantalla.
26
+ */
27
+ declare function open<TResult = unknown>(component: Component, props?: Record<string, unknown>): Promise<TResult | undefined>;
28
+ declare function closeAll(): void;
29
+ declare function dismiss(id: number): void;
30
+ declare function notify(request: VunoNotifyRequest): number;
31
+ declare var __VLS_1: {};
32
+ type __VLS_Slots = {} & {
33
+ default?: (props: typeof __VLS_1) => any;
34
+ };
35
+ declare const __VLS_base: import("vue").DefineComponent<Props, {
36
+ alert: (request: VunoAlertRequest) => Promise<void>;
37
+ closeAll: typeof closeAll;
38
+ confirm: (request: VunoConfirmRequest) => Promise<boolean>;
39
+ dismiss: typeof dismiss;
40
+ notify: typeof notify;
41
+ open: typeof open;
42
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
43
+ dir: "ltr" | "rtl";
44
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
45
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
46
+ declare const _default: typeof __VLS_export;
47
+ export default _default;
48
+ type __VLS_WithSlots<T, S> = T & {
49
+ new (): {
50
+ $slots: S;
51
+ };
52
+ };
@@ -0,0 +1,7 @@
1
+ import type { VunoOverlayEntry } from '#vuno/types/app';
2
+ type Props = {
3
+ overlays: readonly VunoOverlayEntry[];
4
+ };
5
+ declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
6
+ declare const _default: typeof __VLS_export;
7
+ export default _default;
@@ -0,0 +1,39 @@
1
+ <script setup>
2
+ import { computed } from "vue";
3
+ import OverlayItem from "#vuno/components/App/internal/OverlayItem/OverlayItem.vue";
4
+ defineOptions({ name: "VunoOverlay" });
5
+ const props = defineProps({
6
+ overlays: { type: Array, required: true }
7
+ });
8
+ const topmost = computed(() => {
9
+ for (let index = props.overlays.length - 1; index >= 0; index -= 1) {
10
+ if (props.overlays[index]?.open) return index;
11
+ }
12
+ return -1;
13
+ });
14
+ const isTopmost = (index) => index === topmost.value;
15
+ </script>
16
+
17
+ <template>
18
+ <!--
19
+ Los overlays globales se pintan aquí y no donde se pidieron. Un diálogo
20
+ montado dentro de la pantalla que lo abre desaparece con ella —al navegar,
21
+ al cerrarse un modal que lo contenía— y su promesa se queda sin resolver.
22
+
23
+ No hay escalera de z-index, y no por olvido: se escribió una y resultó
24
+ inútil. Los diálogos de vuno son `<dialog>` nativos, que viven en la capa
25
+ superior del navegador y se apilan por orden de apertura, por encima de
26
+ cualquier z-index. Mientras todo sea nativo, el apilado ya es correcto;
27
+ en cuanto se mezcla con algo que no lo sea, ningún z-index lo arregla,
28
+ porque la capa superior siempre gana.
29
+
30
+ Tampoco lleva contenedor propio: cada diálogo se sale del flujo por su
31
+ cuenta, así que un elemento aquí solo añadiría un nodo vacío.
32
+ -->
33
+ <OverlayItem
34
+ v-for="(entry, index) in props.overlays"
35
+ :key="entry.id"
36
+ :behind="!isTopmost(index)"
37
+ :entry="entry"
38
+ />
39
+ </template>
@@ -0,0 +1,7 @@
1
+ import type { VunoOverlayEntry } from '#vuno/types/app';
2
+ type Props = {
3
+ overlays: readonly VunoOverlayEntry[];
4
+ };
5
+ declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
6
+ declare const _default: typeof __VLS_export;
7
+ export default _default;
@@ -0,0 +1,8 @@
1
+ import type { VunoOverlayEntry } from '#vuno/types/app';
2
+ type Props = {
3
+ behind: boolean;
4
+ entry: VunoOverlayEntry;
5
+ };
6
+ declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
7
+ declare const _default: typeof __VLS_export;
8
+ export default _default;
@@ -0,0 +1,19 @@
1
+ <script setup>
2
+ import { provide } from "vue";
3
+ import { vunoOverlayBehindInjectionKey } from "#vuno/internal/keys";
4
+ defineOptions({ name: "VunoOverlayItem" });
5
+ const props = defineProps({
6
+ behind: { type: Boolean, required: true },
7
+ entry: { type: Object, required: true }
8
+ });
9
+ provide(vunoOverlayBehindInjectionKey, () => props.behind);
10
+ </script>
11
+
12
+ <template>
13
+ <component
14
+ :is="props.entry.component"
15
+ v-bind="props.entry.props"
16
+ :open="props.entry.open"
17
+ v-on="props.entry.listeners"
18
+ />
19
+ </template>
@@ -0,0 +1,8 @@
1
+ import type { VunoOverlayEntry } from '#vuno/types/app';
2
+ type Props = {
3
+ behind: boolean;
4
+ entry: VunoOverlayEntry;
5
+ };
6
+ declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
7
+ declare const _default: typeof __VLS_export;
8
+ export default _default;
@@ -0,0 +1,11 @@
1
+ import type { VunoNotification } from '#vuno/types/app';
2
+ type Props = {
3
+ notification: VunoNotification;
4
+ };
5
+ declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
6
+ dismiss: () => any;
7
+ }, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
8
+ onDismiss?: (() => any) | undefined;
9
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
10
+ declare const _default: typeof __VLS_export;
11
+ export default _default;
@@ -0,0 +1,13 @@
1
+ /** El apilado lo añade `Overlay`; aquí solo lo que sea del proyecto. */
2
+ export declare const toastTheme: Record<"toast", {
3
+ readonly slots: {
4
+ readonly body: "min-w-0 flex-1";
5
+ readonly description: "mt-1 text-sm text-vuno-muted";
6
+ readonly icon: "mt-0.5 size-5 shrink-0 text-(--vuno-accent)";
7
+ readonly root: "flex w-full items-start gap-3 rounded-sm bg-vuno-surface-1 p-3 shadow-lg ring ring-(--vuno-accent)/25";
8
+ readonly title: "text-sm font-medium text-vuno-strong";
9
+ };
10
+ readonly variants: {
11
+ readonly color: Record<import("../../../../types/base.js").VunoColor, Record<"root", string>>;
12
+ };
13
+ }>;
@@ -0,0 +1,18 @@
1
+ import { accentByColor } from "#vuno/theme/shared";
2
+ import { defineTheme } from "#vuno/utils/theme";
3
+ export const toastTheme = defineTheme("toast", {
4
+ slots: {
5
+ body: "min-w-0 flex-1",
6
+ description: "mt-1 text-sm text-vuno-muted",
7
+ /*
8
+ * La tarjeta declara el acento para que el icono lo herede y el
9
+ * anillo diferencie el estado sin teñir toda la superficie. Un
10
+ * nombre compuesto como `text-${color}` no serviría: Tailwind no
11
+ * genera una clase que nunca aparece literal en el código.
12
+ */
13
+ icon: "mt-0.5 size-5 shrink-0 text-(--vuno-accent)",
14
+ root: "flex w-full items-start gap-3 rounded-sm bg-vuno-surface-1 p-3 shadow-lg ring ring-(--vuno-accent)/25",
15
+ title: "text-sm font-medium text-vuno-strong"
16
+ },
17
+ variants: { color: accentByColor("root") }
18
+ });
@@ -0,0 +1,64 @@
1
+ <script setup>
2
+ import { computed } from "vue";
3
+ import { useIcons, useMessages, useTheme } from "#vuno/composables/useTheme";
4
+ import Button from "#vuno/components/Button/Button.vue";
5
+ import Icon from "#vuno/components/Icon/Icon.vue";
6
+ defineOptions({ name: "VunoToast" });
7
+ const props = defineProps({
8
+ notification: { type: Object, required: true }
9
+ });
10
+ const emit = defineEmits(["dismiss"]);
11
+ const icons = useIcons();
12
+ const messages = useMessages();
13
+ const ui = useTheme("toast", void 0, () => ({ color: props.notification.color ?? "neutral" }));
14
+ const defaultIcons = {
15
+ error: icons.value.notifyError,
16
+ info: icons.value.notifyInfo,
17
+ neutral: icons.value.notifyInfo,
18
+ success: icons.value.notifySuccess,
19
+ warning: icons.value.notifyWarning
20
+ };
21
+ const icon = computed(() => props.notification.icon ?? defaultIcons[props.notification.color]);
22
+ </script>
23
+
24
+ <template>
25
+ <!--
26
+ **Sin semántica de zona en vivo, y a propósito.**
27
+
28
+ Esto es la tarjeta; quien anuncia es `Toaster.vue`, que tiene dos
29
+ regiones permanentes y es el único que sabe cuándo llega un aviso. Si
30
+ además lo anunciara la tarjeta, un aviso normal se oiría **dos veces**, y
31
+ un anuncio duplicado es peor que uno tardío: quien lo oye no sabe si han
32
+ pasado dos cosas.
33
+
34
+ El hueco que deja: un `<VToast>` suelto, fuera del toaster, no se anuncia
35
+ solo. Queda dicho aquí y en su ficha para que sea un hueco conocido y no
36
+ un defecto futuro.
37
+ -->
38
+ <div :class="ui.root">
39
+ <Icon
40
+ :class="ui.icon"
41
+ :name="icon"
42
+ />
43
+
44
+ <div :class="ui.body">
45
+ <p :class="ui.title">{{ props.notification.title }}</p>
46
+
47
+ <p
48
+ v-if="props.notification.description"
49
+ :class="ui.description"
50
+ >
51
+ {{ props.notification.description }}
52
+ </p>
53
+ </div>
54
+
55
+ <Button
56
+ :aria-label="messages.close"
57
+ color="neutral"
58
+ :icon="icons.close"
59
+ size="xs"
60
+ variant="ghost"
61
+ @click="emit('dismiss')"
62
+ />
63
+ </div>
64
+ </template>
@@ -0,0 +1,11 @@
1
+ import type { VunoNotification } from '#vuno/types/app';
2
+ type Props = {
3
+ notification: VunoNotification;
4
+ };
5
+ declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
6
+ dismiss: () => any;
7
+ }, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
8
+ onDismiss?: (() => any) | undefined;
9
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
10
+ declare const _default: typeof __VLS_export;
11
+ export default _default;
@@ -0,0 +1,11 @@
1
+ import type { VunoNotification } from '#vuno/types/app';
2
+ type Props = {
3
+ notifications: VunoNotification[];
4
+ };
5
+ declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
6
+ dismiss: (id: number) => any;
7
+ }, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
8
+ onDismiss?: ((id: number) => any) | undefined;
9
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
10
+ declare const _default: typeof __VLS_export;
11
+ export default _default;
@@ -0,0 +1,15 @@
1
+ export declare const toasterTheme: Record<"toaster", {
2
+ readonly slots: {
3
+ /** Entra deslizando desde la derecha; sale encogiendo. */
4
+ readonly enterActive: "transition duration-200 ease-out";
5
+ readonly enterFrom: "translate-x-4 opacity-0";
6
+ readonly item: "pointer-events-auto";
7
+ readonly leaveActive: "absolute inset-x-0 transition duration-150 ease-in";
8
+ readonly leaveTo: "translate-x-4 opacity-0";
9
+ readonly list: "flex flex-col gap-2";
10
+ /** Sin esto, al cerrar una de en medio las de abajo dan un salto. */
11
+ readonly move: "transition-transform duration-200 ease-out";
12
+ /** Fijo arriba a la derecha; en móvil ocupa el ancho con margen. */
13
+ readonly root: "pointer-events-none fixed inset-x-4 top-4 z-100 flex flex-col gap-2 sm:left-auto sm:w-96";
14
+ };
15
+ }>;
@@ -0,0 +1,16 @@
1
+ import { defineTheme } from "#vuno/utils/theme";
2
+ export const toasterTheme = defineTheme("toaster", {
3
+ slots: {
4
+ /** Entra deslizando desde la derecha; sale encogiendo. */
5
+ enterActive: "transition duration-200 ease-out",
6
+ enterFrom: "translate-x-4 opacity-0",
7
+ item: "pointer-events-auto",
8
+ leaveActive: "absolute inset-x-0 transition duration-150 ease-in",
9
+ leaveTo: "translate-x-4 opacity-0",
10
+ list: "flex flex-col gap-2",
11
+ /** Sin esto, al cerrar una de en medio las de abajo dan un salto. */
12
+ move: "transition-transform duration-200 ease-out",
13
+ /** Fijo arriba a la derecha; en móvil ocupa el ancho con margen. */
14
+ root: "pointer-events-none fixed inset-x-4 top-4 z-100 flex flex-col gap-2 sm:left-auto sm:w-96"
15
+ }
16
+ });
@@ -0,0 +1,100 @@
1
+ <script setup>
2
+ import { nextTick, ref, watch } from "vue";
3
+ import { useTheme } from "#vuno/composables/useTheme";
4
+ import Toast from "#vuno/components/App/internal/Toast/Toast.vue";
5
+ defineOptions({ name: "VunoToaster" });
6
+ const props = defineProps({
7
+ notifications: { type: Array, required: true }
8
+ });
9
+ const emit = defineEmits(["dismiss"]);
10
+ const ui = useTheme("toaster");
11
+ const assertive = ref("");
12
+ const polite = ref("");
13
+ const announced = /* @__PURE__ */ new Set();
14
+ const owners = { assertive: null, polite: null };
15
+ async function announce(region, text) {
16
+ region.value = "";
17
+ await nextTick();
18
+ region.value = text;
19
+ }
20
+ watch(
21
+ () => props.notifications,
22
+ (list) => {
23
+ for (const notification of list) {
24
+ if (announced.has(notification.id)) continue;
25
+ announced.add(notification.id);
26
+ const text = [notification.title, notification.description].filter(Boolean).join(". ");
27
+ const tone = notification.color === "error" ? "assertive" : "polite";
28
+ owners[tone] = notification.id;
29
+ void announce(tone === "assertive" ? assertive : polite, text);
30
+ }
31
+ for (const id of announced) if (!list.some((notification) => notification.id === id)) announced.delete(id);
32
+ for (const tone of ["assertive", "polite"]) {
33
+ if (owners[tone] === null || list.some((notification) => notification.id === owners[tone])) continue;
34
+ owners[tone] = null;
35
+ (tone === "assertive" ? assertive : polite).value = "";
36
+ }
37
+ },
38
+ { deep: true, immediate: true }
39
+ );
40
+ </script>
41
+
42
+ <template>
43
+ <!--
44
+ La pila se porta a `body` para que no la recorte ningún `overflow` ni la
45
+ reordene ningún contexto de apilamiento de la pantalla que la abrió.
46
+
47
+ `pointer-events-none` en el contenedor y `auto` en cada aviso: si no, una
48
+ franja invisible a lo alto de la pantalla se come los clics de lo que hay
49
+ detrás aunque no haya ninguna notificación.
50
+ -->
51
+ <Teleport to="body">
52
+ <div :class="ui.root">
53
+ <!--
54
+ Las dos regiones, permanentes y solo para el lector. Un fallo se
55
+ anuncia de inmediato y lo demás espera a que termine la frase en
56
+ curso: interrumpir por un «guardado» es ruido. Son dos y no una
57
+ porque la urgencia es del aviso, y `aria-live` no se puede cambiar
58
+ sobre la marcha sin perder el anuncio.
59
+ -->
60
+ <div
61
+ aria-live="polite"
62
+ class="sr-only"
63
+ data-test="toaster-polite"
64
+ >
65
+ {{ polite }}
66
+ </div>
67
+
68
+ <div
69
+ aria-live="assertive"
70
+ class="sr-only"
71
+ data-test="toaster-assertive"
72
+ >
73
+ {{ assertive }}
74
+ </div>
75
+
76
+ <!--
77
+ `TransitionGroup` y no `Transition`: hay varias a la vez y al
78
+ quitar una de en medio las de abajo tienen que subir. `move`
79
+ anima justo eso, que si no da un salto.
80
+ -->
81
+ <TransitionGroup
82
+ :class="ui.list"
83
+ :enterActiveClass="ui.enterActive"
84
+ :enterFromClass="ui.enterFrom"
85
+ :leaveActiveClass="ui.leaveActive"
86
+ :leaveToClass="ui.leaveTo"
87
+ :moveClass="ui.move"
88
+ tag="div"
89
+ >
90
+ <Toast
91
+ v-for="notification in props.notifications"
92
+ :key="notification.id"
93
+ :class="ui.item"
94
+ :notification="notification"
95
+ @dismiss="emit('dismiss', notification.id)"
96
+ />
97
+ </TransitionGroup>
98
+ </div>
99
+ </Teleport>
100
+ </template>
@@ -0,0 +1,11 @@
1
+ import type { VunoNotification } from '#vuno/types/app';
2
+ type Props = {
3
+ notifications: VunoNotification[];
4
+ };
5
+ declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
6
+ dismiss: (id: number) => any;
7
+ }, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
8
+ onDismiss?: ((id: number) => any) | undefined;
9
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
10
+ declare const _default: typeof __VLS_export;
11
+ export default _default;
@@ -0,0 +1,27 @@
1
+ import type { VunoRadius, VunoSize } from '#vuno/types/base';
2
+ import type { VunoUi } from '#vuno/types/slots';
3
+ /**
4
+ * La imagen redonda de una fila: una foto de producto, un logotipo, una
5
+ * persona.
6
+ *
7
+ * El `alt` no es decoración: en un listado, la alternativa útil es el nombre
8
+ * de la fila, y de ahí salen también las iniciales cuando no hay imagen que
9
+ * enseñar.
10
+ */
11
+ type Props = {
12
+ alt?: string;
13
+ /** La curvatura. Sin valor, la que traiga el tema. */
14
+ radius?: VunoRadius;
15
+ size?: VunoSize;
16
+ src?: string;
17
+ ui?: VunoUi<'avatar'>;
18
+ };
19
+ declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
20
+ radius: VunoRadius;
21
+ size: VunoSize;
22
+ alt: string;
23
+ ui: VunoUi<"avatar">;
24
+ src: string;
25
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
26
+ declare const _default: typeof __VLS_export;
27
+ export default _default;
@@ -0,0 +1,30 @@
1
+ export declare const avatarTheme: Record<"avatar", {
2
+ /**
3
+ * La escala es la de Nuxt UI y no una propia, para que `size: 'sm'` siga
4
+ * midiendo los mismos 28 px que hoy en la columna de imagen.
5
+ */
6
+ readonly slots: {
7
+ readonly image: "size-full rounded-[inherit] object-cover";
8
+ readonly root: "inline-flex shrink-0 items-center justify-center rounded-sm bg-vuno-surface-1 align-middle font-medium text-vuno-muted select-none";
9
+ };
10
+ readonly variants: {
11
+ readonly radius: Record<import("../../types/base.js").VunoRadius, Record<"root", string>>;
12
+ readonly size: {
13
+ readonly xs: {
14
+ readonly root: "size-6 text-xs";
15
+ };
16
+ readonly sm: {
17
+ readonly root: "size-7 text-sm";
18
+ };
19
+ readonly md: {
20
+ readonly root: "size-8 text-sm";
21
+ };
22
+ readonly lg: {
23
+ readonly root: "size-9 text-sm";
24
+ };
25
+ readonly xl: {
26
+ readonly root: "size-10 text-base";
27
+ };
28
+ };
29
+ };
30
+ }>;
@@ -0,0 +1,22 @@
1
+ import { radiusByStep } from "#vuno/theme/shared";
2
+ import { defineTheme } from "#vuno/utils/theme";
3
+ export const avatarTheme = defineTheme("avatar", {
4
+ /**
5
+ * La escala es la de Nuxt UI y no una propia, para que `size: 'sm'` siga
6
+ * midiendo los mismos 28 px que hoy en la columna de imagen.
7
+ */
8
+ slots: {
9
+ image: "size-full rounded-[inherit] object-cover",
10
+ root: "inline-flex shrink-0 items-center justify-center rounded-sm bg-vuno-surface-1 align-middle font-medium text-vuno-muted select-none"
11
+ },
12
+ variants: {
13
+ radius: radiusByStep("root"),
14
+ size: {
15
+ xs: { root: "size-6 text-xs" },
16
+ sm: { root: "size-7 text-sm" },
17
+ md: { root: "size-8 text-sm" },
18
+ lg: { root: "size-9 text-sm" },
19
+ xl: { root: "size-10 text-base" }
20
+ }
21
+ }
22
+ });
@@ -0,0 +1,51 @@
1
+ <script setup>
2
+ import { computed, ref, watch } from "vue";
3
+ import { useTheme } from "#vuno/composables/useTheme";
4
+ defineOptions({ name: "VunoAvatar" });
5
+ const props = defineProps({
6
+ alt: { type: String, required: false, default: "" },
7
+ radius: { type: String, required: false, default: void 0 },
8
+ size: { type: String, required: false, default: "md" },
9
+ src: { type: String, required: false, default: void 0 },
10
+ ui: { type: Object, required: false, default: void 0 }
11
+ });
12
+ const ui = useTheme(
13
+ "avatar",
14
+ () => props.ui,
15
+ () => ({ radius: props.radius, size: props.size })
16
+ );
17
+ const failed = ref(false);
18
+ const showImage = computed(() => Boolean(props.src) && !failed.value);
19
+ const initials = computed(
20
+ () => props.alt.split(/\s+/).filter(Boolean).slice(0, 2).map((word) => [...word][0]?.toLocaleUpperCase() ?? "").join("")
21
+ );
22
+ watch(
23
+ () => props.src,
24
+ () => {
25
+ failed.value = false;
26
+ }
27
+ );
28
+ </script>
29
+
30
+ <template>
31
+ <span :class="ui.root">
32
+ <img
33
+ v-if="showImage"
34
+ :alt="props.alt"
35
+ :class="ui.image"
36
+ :src="props.src"
37
+ @error="failed = true"
38
+ />
39
+
40
+ <!--
41
+ Sin imagen, las iniciales son decoración: el nombre de la fila ya
42
+ está escrito en la columna de al lado, y anunciarlo aquí otra vez
43
+ —peor, deletreado— solo alarga la lectura de cada fila.
44
+ -->
45
+ <span
46
+ v-else
47
+ aria-hidden="true"
48
+ >{{ initials }}</span
49
+ >
50
+ </span>
51
+ </template>
@@ -0,0 +1,27 @@
1
+ import type { VunoRadius, VunoSize } from '#vuno/types/base';
2
+ import type { VunoUi } from '#vuno/types/slots';
3
+ /**
4
+ * La imagen redonda de una fila: una foto de producto, un logotipo, una
5
+ * persona.
6
+ *
7
+ * El `alt` no es decoración: en un listado, la alternativa útil es el nombre
8
+ * de la fila, y de ahí salen también las iniciales cuando no hay imagen que
9
+ * enseñar.
10
+ */
11
+ type Props = {
12
+ alt?: string;
13
+ /** La curvatura. Sin valor, la que traiga el tema. */
14
+ radius?: VunoRadius;
15
+ size?: VunoSize;
16
+ src?: string;
17
+ ui?: VunoUi<'avatar'>;
18
+ };
19
+ declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
20
+ radius: VunoRadius;
21
+ size: VunoSize;
22
+ alt: string;
23
+ ui: VunoUi<"avatar">;
24
+ src: string;
25
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
26
+ declare const _default: typeof __VLS_export;
27
+ export default _default;
@@ -0,0 +1,40 @@
1
+ import type { VunoColor, VunoRadius, VunoSize } from '#vuno/types/base';
2
+ import type { VunoUi } from '#vuno/types/slots';
3
+ /**
4
+ * Una etiqueta de estado: el estado de una fila, el contador de filtros
5
+ * activos, el resumen de un filtro puesto.
6
+ *
7
+ * No es un botón ni lleva acción propia. Cuando algo dentro sí la lleva
8
+ * —la cruz que quita un filtro— va en el slot, para que el elemento que se
9
+ * pulsa sea ese y no la etiqueta entera.
10
+ */
11
+ type VunoBadgeVariant = 'outline' | 'soft' | 'solid' | 'subtle';
12
+ type Props = {
13
+ color?: VunoColor;
14
+ label?: string;
15
+ /** La curvatura. Sin valor, la que traiga el tema. */
16
+ radius?: VunoRadius;
17
+ size?: VunoSize;
18
+ ui?: VunoUi<'badge'>;
19
+ variant?: VunoBadgeVariant;
20
+ };
21
+ declare var __VLS_1: {};
22
+ type __VLS_Slots = {} & {
23
+ default?: (props: typeof __VLS_1) => any;
24
+ };
25
+ declare const __VLS_base: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
26
+ color: VunoColor;
27
+ radius: VunoRadius;
28
+ size: VunoSize;
29
+ variant: VunoBadgeVariant;
30
+ label: string;
31
+ ui: VunoUi<"badge">;
32
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
33
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
34
+ declare const _default: typeof __VLS_export;
35
+ export default _default;
36
+ type __VLS_WithSlots<T, S> = T & {
37
+ new (): {
38
+ $slots: S;
39
+ };
40
+ };