@wssto2/vue-core 0.2.0 → 0.3.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 (265) hide show
  1. package/README.md +33 -0
  2. package/dist/AccessGate.vue_vue_type_script_setup_true_lang-DKX3PH2n.js +22 -0
  3. package/dist/AccountMenuItem.vue_vue_type_script_setup_true_lang-DIGqTLwd.js +76 -0
  4. package/dist/ActionRow.vue_vue_type_script_setup_true_lang-B7Lpfkf6.js +45 -0
  5. package/dist/Activity-DviO0VQ8.js +156 -0
  6. package/dist/{AdaptivePageShell.vue_vue_type_script_setup_true_lang-CeKK8_g5.js → AdaptivePageShell.vue_vue_type_script_setup_true_lang-CvAnzdc1.js} +48 -47
  7. package/dist/{AlertDialog.vue_vue_type_script_setup_true_lang-e4hzkzg3.js → AlertDialog.vue_vue_type_script_setup_true_lang-CJsMUIUg.js} +1 -1
  8. package/dist/{AsyncSection.vue_vue_type_script_setup_true_lang-CWLB3xsR.js → AsyncSection.vue_vue_type_script_setup_true_lang-CCtthMRd.js} +4 -4
  9. package/dist/{Banner.vue_vue_type_script_setup_true_lang-n_wGPIIu.js → Banner.vue_vue_type_script_setup_true_lang-Cib_YYpr.js} +1 -1
  10. package/dist/{BottomDock.vue_vue_type_script_setup_true_lang-DhlMnPC2.js → BottomDock.vue_vue_type_script_setup_true_lang-CjN7xYEr.js} +1 -1
  11. package/dist/{Button.vue_vue_type_script_setup_true_lang-B1eZgLae.js → Button.vue_vue_type_script_setup_true_lang-CYil8h9z.js} +1 -1
  12. package/dist/Changes-DlT5mN9G.js +129 -0
  13. package/dist/CollectionPage.vue_vue_type_script_setup_true_lang-CXILftEc.js +1481 -0
  14. package/dist/DataTable.vue_vue_type_script_setup_true_lang-DSYgS9lC.js +52 -0
  15. package/dist/DateField.vue_vue_type_script_setup_true_lang-DMVjNsaM.js +1099 -0
  16. package/dist/{DiscardChangesModal.vue_vue_type_script_setup_true_lang-DyhYHRyz.js → DiscardChangesModal.vue_vue_type_script_setup_true_lang-Cb3xJI1x.js} +1 -1
  17. package/dist/{EmptyState.vue_vue_type_script_setup_true_lang-BeGpHMUP.js → EmptyState.vue_vue_type_script_setup_true_lang-C2ZYIT9F.js} +1 -1
  18. package/dist/FormErrors.vue_vue_type_script_setup_true_lang-DVgNBQ8p.js +276 -0
  19. package/dist/FormGroup.vue_vue_type_script_setup_true_lang-0mfG8TkU.js +136 -0
  20. package/dist/FormView.vue_vue_type_script_setup_true_lang-Bz2m3AtF.js +38 -0
  21. package/dist/General-BD-Hcz0a.js +145 -0
  22. package/dist/{Icon.vue_vue_type_script_lang-DtC4_mkz.js → Icon.vue_vue_type_script_lang-VvcV2Bzo.js} +46 -33
  23. package/dist/{IconTile.vue_vue_type_script_setup_true_lang-Csfv6Sel.js → IconTile.vue_vue_type_script_setup_true_lang-D7QgnUyN.js} +1 -1
  24. package/dist/KeyValue.vue_vue_type_script_setup_true_lang-wcZcvnow.js +35 -0
  25. package/dist/{LeaveGuardRoot.vue_vue_type_script_setup_true_lang-CvwoT1JF.js → LeaveGuardRoot.vue_vue_type_script_setup_true_lang-C2udmeEA.js} +2 -2
  26. package/dist/{Menu.vue_vue_type_script_setup_true_lang-CrMj6KPD.js → Menu.vue_vue_type_script_setup_true_lang-BNAjx9tj.js} +61 -57
  27. package/dist/{Modal.vue_vue_type_script_setup_true_lang-BQZM49gC.js → Modal.vue_vue_type_script_setup_true_lang-D7SwVPpL.js} +4 -4
  28. package/dist/NewRolePage-Dla4YnMs.js +42 -0
  29. package/dist/NoAccess.vue_vue_type_script_setup_true_lang-8m9cNptR.js +31 -0
  30. package/dist/NumberField.vue_vue_type_script_setup_true_lang-CYRg7Kfg.js +113 -0
  31. package/dist/OtpInput.vue_vue_type_script_setup_true_lang-gp4FfWAH.js +95 -0
  32. package/dist/PageBar.vue_vue_type_script_setup_true_lang-Cfr5xsJx.js +47 -0
  33. package/dist/{Panel.vue_vue_type_script_setup_true_lang-BQmv3cLb.js → Panel.vue_vue_type_script_setup_true_lang-BCRxRK4D.js} +1 -1
  34. package/dist/{PhotoViewer.vue_vue_type_script_setup_true_lang-ElDizaW2.js → PhotoViewer.vue_vue_type_script_setup_true_lang-B3Q4dhqJ.js} +1 -1
  35. package/dist/Popover.vue_vue_type_script_setup_true_lang-Dx-tDhNE.js +125 -0
  36. package/dist/ProfilePage-OJMQ8cr8.js +691 -0
  37. package/dist/{ProgressTrack.vue_vue_type_script_setup_true_lang-1DDaNs2W.js → ProgressTrack.vue_vue_type_script_setup_true_lang-B6Prw9hi.js} +2 -2
  38. package/dist/RecordHeader.vue_vue_type_script_setup_true_lang-DKsaKlAq.js +64 -0
  39. package/dist/ResourcePage.vue_vue_type_script_setup_true_lang-CJcKa9SW.js +173 -0
  40. package/dist/RoleEditor.vue_vue_type_script_setup_true_lang-DuEPOmjI.js +299 -0
  41. package/dist/RolePage-bZzv_E4l.js +315 -0
  42. package/dist/RolesPage-BniZv0nB.js +115 -0
  43. package/dist/SectionIntro.vue_vue_type_script_setup_true_lang-CZtPrmXD.js +23 -0
  44. package/dist/SectionList.vue_vue_type_script_setup_true_lang-BKP_bge8.js +148 -0
  45. package/dist/SectionNavigator.vue_vue_type_script_setup_true_lang-BgGEGxSI.js +314 -0
  46. package/dist/SegmentedField.vue_vue_type_script_setup_true_lang-BZ9UdgA1.js +58 -0
  47. package/dist/SelectField.vue_vue_type_script_setup_true_lang-BiGaEKBQ.js +422 -0
  48. package/dist/SessionList.vue_vue_type_script_setup_true_lang-DUQpr7gb.js +111 -0
  49. package/dist/Sessions-Co5-xdeb.js +96 -0
  50. package/dist/Sheet.vue_vue_type_script_setup_true_lang-bHYzx7-J.js +142 -0
  51. package/dist/SignIn-BWwFbxki.js +140 -0
  52. package/dist/SignInPage-FnLtoi2q.js +60 -0
  53. package/dist/SignInTable.vue_vue_type_script_setup_true_lang-Dnx3T_42.js +79 -0
  54. package/dist/SignIns-3UcI64_h.js +66 -0
  55. package/dist/SwipeActions.vue_vue_type_script_setup_true_lang-4I8m27ol.js +93 -0
  56. package/dist/Tabs.vue_vue_type_script_setup_true_lang-BeGaydRr.js +155 -0
  57. package/dist/TextField.vue_vue_type_script_setup_true_lang-C_FMf3Vc.js +269 -0
  58. package/dist/TextareaField.vue_vue_type_script_setup_true_lang-CU3KTKIJ.js +127 -0
  59. package/dist/{Timestamp.vue_vue_type_script_setup_true_lang-CSY_mMm1.js → Timestamp.vue_vue_type_script_setup_true_lang-1RJGKxbD.js} +1 -1
  60. package/dist/UserRecord-Ci8HfwbX.js +267 -0
  61. package/dist/UsersList-vEJ-cgkT.js +155 -0
  62. package/dist/ViewTabs.vue_vue_type_script_setup_true_lang-ByqTU2JT.js +28 -0
  63. package/dist/access/AddRoleDialog.vue.d.ts +19 -0
  64. package/dist/access/BindingRow.vue.d.ts +19 -0
  65. package/dist/access/EffectiveAccess.vue.d.ts +12 -0
  66. package/dist/access/NewRolePage.vue.d.ts +2 -0
  67. package/dist/access/PermissionTree.vue.d.ts +13 -0
  68. package/dist/access/PersonAccess.vue.d.ts +21 -0
  69. package/dist/access/ReplaceRoleDialog.vue.d.ts +17 -0
  70. package/dist/access/RoleCompareDialog.vue.d.ts +14 -0
  71. package/dist/access/RoleEditor.vue.d.ts +28 -0
  72. package/dist/access/RolePage.vue.d.ts +2 -0
  73. package/dist/access/RolesPage.vue.d.ts +2 -0
  74. package/dist/access/api.d.ts +26 -0
  75. package/dist/access/catalogue.d.ts +64 -0
  76. package/dist/access/context.d.ts +20 -0
  77. package/dist/access/effective.d.ts +42 -0
  78. package/dist/access/feature.d.ts +27 -0
  79. package/dist/access/index.d.ts +13 -0
  80. package/dist/access/index.js +15 -0
  81. package/dist/access/labels.d.ts +35 -0
  82. package/dist/access/refusals.d.ts +6 -0
  83. package/dist/access/routes.d.ts +45 -0
  84. package/dist/access/scopes.d.ts +20 -0
  85. package/dist/app/contributions.d.ts +1 -1
  86. package/dist/app/feature.d.ts +8 -0
  87. package/dist/app/index.js +259 -296
  88. package/dist/bottomDock-BZEiOPYZ.js +12 -0
  89. package/dist/button/Button.vue.d.ts +3 -3
  90. package/dist/button/index.js +1 -1
  91. package/dist/chrome-BS3xJcad.js +93 -0
  92. package/dist/client/client.d.ts +13 -0
  93. package/dist/client/index.d.ts +3 -1
  94. package/dist/client/index.js +19 -138
  95. package/dist/client/route.d.ts +59 -0
  96. package/dist/client-Bw0aM5Gu.js +147 -0
  97. package/dist/closeOverlays-CjVsIrpL.js +8 -0
  98. package/dist/collection/http.d.ts +4 -2
  99. package/dist/collection/index.js +74 -2428
  100. package/dist/content/index.js +37 -66
  101. package/dist/contributions-CDDg3fKp.js +26 -0
  102. package/dist/controls/DateButton.vue.d.ts +1 -1
  103. package/dist/controls/PopupButton.vue.d.ts +1 -1
  104. package/dist/controls/index.js +11 -10
  105. package/dist/defineRoutes-BGAdiIrt.js +19 -0
  106. package/dist/{describeError-l5T9b8Uv.js → describeError-Ctga6GcS.js} +1 -1
  107. package/dist/environment-Dva-SG8D.js +6 -0
  108. package/dist/{error-Bb_dr_Ay.js → error-CD7x0Jrz.js} +2 -2
  109. package/dist/feature-DdUAfyi4.js +25 -0
  110. package/dist/fieldMessages-C3Rpbktw.js +25 -0
  111. package/dist/form/CheckboxField.vue.d.ts +1 -1
  112. package/dist/form/CommandDialog.vue.d.ts +1 -1
  113. package/dist/form/DateField.vue.d.ts +1 -1
  114. package/dist/form/DateTimeField.vue.d.ts +1 -1
  115. package/dist/form/EditorPage.vue.d.ts +1 -1
  116. package/dist/form/Field.vue.d.ts +1 -1
  117. package/dist/form/FileField.vue.d.ts +1 -1
  118. package/dist/form/FormGroup.vue.d.ts +1 -1
  119. package/dist/form/FormGroupButton.vue.d.ts +1 -1
  120. package/dist/form/FormRow.vue.d.ts +1 -1
  121. package/dist/form/I18nField.vue.d.ts +3 -3
  122. package/dist/form/MoneyField.vue.d.ts +1 -1
  123. package/dist/form/MonthYearField.vue.d.ts +1 -1
  124. package/dist/form/NumberCell.vue.d.ts +1 -1
  125. package/dist/form/NumberField.vue.d.ts +2 -2
  126. package/dist/form/OtpInput.vue.d.ts +2 -2
  127. package/dist/form/PhotoField.vue.d.ts +1 -1
  128. package/dist/form/SwitchField.vue.d.ts +1 -1
  129. package/dist/form/TextField.vue.d.ts +3 -3
  130. package/dist/form/TextareaField.vue.d.ts +3 -3
  131. package/dist/form/TimeField.vue.d.ts +1 -1
  132. package/dist/form/date/DatePickerSheet.vue.d.ts +1 -1
  133. package/dist/form/date/MonthYearPanel.vue.d.ts +1 -1
  134. package/dist/form/index.js +1262 -3430
  135. package/dist/guards-Cd1V28oG.js +51 -0
  136. package/dist/http-DGGSKWvU.js +193 -0
  137. package/dist/i18n/index.d.ts +281 -0
  138. package/dist/i18n/index.js +50 -50
  139. package/dist/icon/core.d.ts +13 -0
  140. package/dist/icon/index.js +1 -1
  141. package/dist/identity/ImpersonationBanner.vue.d.ts +2 -0
  142. package/dist/identity/LocaleSync.vue.d.ts +2 -0
  143. package/dist/identity/SessionExpiry.vue.d.ts +2 -0
  144. package/dist/identity/SignInAsButton.vue.d.ts +15 -0
  145. package/dist/identity/SignInPage.vue.d.ts +2 -0
  146. package/dist/identity/context.d.ts +7 -0
  147. package/dist/identity/feature.d.ts +16 -0
  148. package/dist/identity/fieldMessages.d.ts +15 -0
  149. package/dist/identity/index.d.ts +16 -0
  150. package/dist/identity/index.js +18 -0
  151. package/dist/identity/profile/DetailsPanel.vue.d.ts +11 -0
  152. package/dist/identity/profile/EmailChangeDialog.vue.d.ts +14 -0
  153. package/dist/identity/profile/EmailPanel.vue.d.ts +11 -0
  154. package/dist/identity/profile/PanelActions.vue.d.ts +17 -0
  155. package/dist/identity/profile/PasswordPanel.vue.d.ts +2 -0
  156. package/dist/identity/profile/ProfileMenuItem.vue.d.ts +2 -0
  157. package/dist/identity/profile/ProfilePage.vue.d.ts +2 -0
  158. package/dist/identity/profile/SessionsPanel.vue.d.ts +2 -0
  159. package/dist/identity/profile/SignInsPanel.vue.d.ts +2 -0
  160. package/dist/identity/profile/VerifyCode.vue.d.ts +49 -0
  161. package/dist/identity/profile/routes.d.ts +13 -0
  162. package/dist/identity/session.d.ts +30 -0
  163. package/dist/identity/shared/ActionRow.vue.d.ts +20 -0
  164. package/dist/identity/shared/ChangeFeed.vue.d.ts +11 -0
  165. package/dist/identity/shared/PageBar.vue.d.ts +12 -0
  166. package/dist/identity/shared/SectionIntro.vue.d.ts +16 -0
  167. package/dist/identity/shared/SessionList.vue.d.ts +19 -0
  168. package/dist/identity/shared/SignInTable.vue.d.ts +11 -0
  169. package/dist/identity/shared/ViewTabs.vue.d.ts +23 -0
  170. package/dist/identity/shared/signInEvents.d.ts +9 -0
  171. package/dist/identity/signIn.d.ts +27 -0
  172. package/dist/identity/useSignInForm.d.ts +20 -0
  173. package/dist/identity/user.d.ts +6 -0
  174. package/dist/identity/users/DeactivateDialog.vue.d.ts +18 -0
  175. package/dist/identity/users/NewUserDialog.vue.d.ts +9 -0
  176. package/dist/identity/users/SetPasswordDialog.vue.d.ts +16 -0
  177. package/dist/identity/users/UserRecord.vue.d.ts +2 -0
  178. package/dist/identity/users/UsersList.vue.d.ts +2 -0
  179. package/dist/identity/users/access.d.ts +4 -0
  180. package/dist/identity/users/context.d.ts +9 -0
  181. package/dist/identity/users/feature.d.ts +34 -0
  182. package/dist/identity/users/languages.d.ts +4 -0
  183. package/dist/identity/users/list.d.ts +8 -0
  184. package/dist/identity/users/person.d.ts +26 -0
  185. package/dist/identity/users/personSections.d.ts +22 -0
  186. package/dist/identity/users/routes.d.ts +22 -0
  187. package/dist/identity/users/sections/Activity.vue.d.ts +2 -0
  188. package/dist/identity/users/sections/Changes.vue.d.ts +2 -0
  189. package/dist/identity/users/sections/General.vue.d.ts +2 -0
  190. package/dist/identity/users/sections/Sessions.vue.d.ts +2 -0
  191. package/dist/identity/users/sections/SignIn.vue.d.ts +2 -0
  192. package/dist/identity/users/sections/SignIns.vue.d.ts +2 -0
  193. package/dist/identity/users/status.d.ts +4 -0
  194. package/dist/index-B2dbYZR9.js +706 -0
  195. package/dist/index-BAcl44SC.js +459 -0
  196. package/dist/index.d.ts +1 -1
  197. package/dist/index.js +1 -1
  198. package/dist/internal/languageName.d.ts +2 -0
  199. package/dist/keepAlive-WYQGRhuz.js +48 -0
  200. package/dist/languageName-CItV_SOv.js +11 -0
  201. package/dist/languages-BShG9LpE.js +10 -0
  202. package/dist/leaveGuard-Cc8yeLxM.js +72 -0
  203. package/dist/modal/Modal.vue.d.ts +1 -1
  204. package/dist/modal/index.js +5 -5
  205. package/dist/modules/access/entities.d.ts +112 -0
  206. package/dist/modules/access/routes.d.ts +67 -0
  207. package/dist/modules/access/schemas.d.ts +73 -0
  208. package/dist/modules/identity/entities.d.ts +150 -0
  209. package/dist/modules/identity/routes.d.ts +118 -0
  210. package/dist/modules/identity/schemas.d.ts +145 -0
  211. package/dist/{navigation-B33ikiCS.js → navigation-BPWa63ge.js} +21 -20
  212. package/dist/neighbors-D0WRBxXI.js +86 -0
  213. package/dist/{options-DAkBtYkI.js → options-BXkMR63B.js} +51 -52
  214. package/dist/overlay/AlertDialog.vue.d.ts +3 -3
  215. package/dist/overlay/Popover.vue.d.ts +1 -1
  216. package/dist/overlay/closeOverlays.d.ts +7 -0
  217. package/dist/overlay/index.js +21 -20
  218. package/dist/page/AdaptivePageShell.vue.d.ts +2 -2
  219. package/dist/page/ResourceHeader.vue.d.ts +2 -2
  220. package/dist/page/index.js +99 -457
  221. package/dist/phone/PhoneField.vue.d.ts +2 -2
  222. package/dist/phone/index.js +2 -2
  223. package/dist/platform/index.d.ts +2 -2
  224. package/dist/platform/index.js +73 -90
  225. package/dist/platform/platform.d.ts +2 -2
  226. package/dist/platform/session.d.ts +22 -1
  227. package/dist/platform-hunMqFdB.js +255 -0
  228. package/dist/resource/index.js +8 -248
  229. package/dist/routeResource-DstM0hvf.js +82 -0
  230. package/dist/router/guards.d.ts +7 -1
  231. package/dist/router/index.js +23 -37
  232. package/dist/router/navigation.d.ts +1 -1
  233. package/dist/rowLayout-BI7a3Kom.js +603 -0
  234. package/dist/sectionIndex-BS0ic5W7.js +86 -0
  235. package/dist/{sections-LtxV5Mtk.js → sections-BEqW1dOc.js} +1 -1
  236. package/dist/shell/AccountMenuItem.vue.d.ts +1 -1
  237. package/dist/shell/BackofficeShell.vue.d.ts +2 -2
  238. package/dist/shell/NavigationList.vue.d.ts +1 -1
  239. package/dist/shell/ShellBrand.vue.d.ts +1 -1
  240. package/dist/shell/backofficeShell.d.ts +1 -1
  241. package/dist/shell/identity.d.ts +1 -1
  242. package/dist/shell/index.js +507 -575
  243. package/dist/state/ProgressTrack.vue.d.ts +1 -1
  244. package/dist/state/index.js +59 -92
  245. package/dist/status-C9aXR-Jb.js +33 -0
  246. package/dist/styles.css +1 -1
  247. package/dist/suggestions-BJAqOj4c.js +138 -0
  248. package/dist/testing/index.js +1 -1
  249. package/dist/toast-D9Z5To38.js +13 -0
  250. package/dist/useCommand-BgRwnYlV.js +135 -0
  251. package/dist/useLoad-CYRVx6HW.js +39 -0
  252. package/dist/useResourceForm-Bgc9jMcu.js +52 -0
  253. package/dist/useSaveChrome-chi6D3HY.js +25 -0
  254. package/dist/useSheetDrag-OsD6Eb6I.js +72 -0
  255. package/package.json +22 -5
  256. package/dist/NoAccess.vue_vue_type_script_setup_true_lang-OKW8pKYU.js +0 -78
  257. package/dist/SectionList.vue_vue_type_script_setup_true_lang-L9ita_Kx.js +0 -230
  258. package/dist/SelectField.vue_vue_type_script_setup_true_lang-DZTrU8NJ.js +0 -661
  259. package/dist/Sheet.vue_vue_type_script_setup_true_lang-CtkJ-4e3.js +0 -210
  260. package/dist/SwipeActions.vue_vue_type_script_setup_true_lang-CGTuEnTv.js +0 -243
  261. package/dist/chrome-D9pwD6iS.js +0 -101
  262. package/dist/environment-D3nozt9a.js +0 -75
  263. package/dist/feature-DyDtyMLU.js +0 -47
  264. package/dist/platform-jqlKVJ2e.js +0 -244
  265. package/dist/toast-DvrHQ6Ag.js +0 -131
@@ -0,0 +1,155 @@
1
+ import { defineComponent as B, useModel as M, useId as z, inject as K, useTemplateRef as I, computed as S, openBlock as o, createElementBlock as l, createElementVNode as f, Fragment as T, renderList as V, normalizeClass as r, unref as c, createTextVNode as j, toDisplayString as m, createCommentVNode as u, createBlock as h, renderSlot as R, mergeModels as D } from "vue";
2
+ import { routerKey as q, routeLocationKey as F } from "vue-router";
3
+ import { _ as y } from "./Icon.vue_vue_type_script_lang-VvcV2Bzo.js";
4
+ import { u as G } from "./mediaQuery-CygcXmFW.js";
5
+ const H = ["aria-label"], P = ["aria-label"], J = ["id", "aria-selected", "tabindex", "aria-controls", "data-tab", "onClick", "onKeydown"], O = {
6
+ key: 0,
7
+ class: "text-footnote font-normal tabular-nums"
8
+ }, Q = ["aria-label"], U = ["aria-label"], W = ["id", "aria-selected", "tabindex", "aria-controls", "data-tab", "onClick", "onKeydown"], X = ["id", "aria-labelledby"], ne = /* @__PURE__ */ B({
9
+ __name: "Tabs",
10
+ props: /* @__PURE__ */ D({
11
+ tabs: {},
12
+ presentation: { default: "segmented" },
13
+ alignment: { default: "start" },
14
+ stretch: { type: Boolean, default: !1 },
15
+ label: { default: void 0 }
16
+ }, {
17
+ modelValue: {},
18
+ modelModifiers: {}
19
+ }),
20
+ emits: ["update:modelValue"],
21
+ setup(x) {
22
+ const t = x, w = M(x, "modelValue"), d = z(), k = K(q, null), E = K(F, null);
23
+ function _() {
24
+ if (!k) throw new Error("Tabs: a tab has `to`, but no router is installed in the app.");
25
+ return k;
26
+ }
27
+ const L = G(), p = I("list"), N = S(() => t.presentation === "scope" && L.value);
28
+ function a(n) {
29
+ return n.to !== void 0 ? _().resolve(n.to).name === E?.name : n.value === w.value;
30
+ }
31
+ const $ = S(() => t.tabs.find(a)), b = (n) => `${d}-tab-${String(n.value)}`;
32
+ function v(n) {
33
+ n.to !== void 0 ? _().push(n.to) : w.value = n.value;
34
+ }
35
+ function C(n, g) {
36
+ const e = t.tabs.length - 1, i = { ArrowRight: g + 1, ArrowLeft: g - 1, Home: 0, End: e }[n.key];
37
+ if (i === void 0) return;
38
+ n.preventDefault();
39
+ const s = t.tabs[(i + t.tabs.length) % t.tabs.length];
40
+ s && (v(s), p.value?.querySelector(`[data-tab="${String(s.value)}"]`)?.focus());
41
+ }
42
+ const A = { start: "justify-start", center: "justify-center", end: "justify-end" };
43
+ return (n, g) => (o(), l("div", null, [
44
+ N.value ? (o(), l("nav", {
45
+ key: 0,
46
+ ref_key: "list",
47
+ ref: p,
48
+ class: "-mx-1 overflow-x-auto overflow-y-hidden",
49
+ "aria-label": t.label
50
+ }, [
51
+ f("ul", {
52
+ class: "flex gap-2 p-1",
53
+ role: "tablist",
54
+ "aria-label": t.label
55
+ }, [
56
+ (o(!0), l(T, null, V(t.tabs, (e, i) => (o(), l("li", {
57
+ key: e.value,
58
+ role: "presentation",
59
+ class: "shrink-0"
60
+ }, [
61
+ f("button", {
62
+ id: b(e),
63
+ type: "button",
64
+ role: "tab",
65
+ "aria-selected": a(e),
66
+ tabindex: a(e) ? 0 : -1,
67
+ "aria-controls": `${c(d)}-panel`,
68
+ "data-tab": String(e.value),
69
+ class: r(["flex min-h-[2.125rem] cursor-pointer items-center gap-1.5 whitespace-nowrap rounded-full px-3.5 text-subheadline font-semibold transition-colors duration-motion-fast focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-border-focus", a(e) ? "bg-tint text-content-on-tint" : "bg-surface-cell text-content-strong shadow-group active:bg-fill"]),
70
+ onClick: (s) => v(e),
71
+ onKeydown: (s) => C(s, i)
72
+ }, [
73
+ j(m(e.shortLabel ?? e.label) + " ", 1),
74
+ e.badge ? (o(), l("span", O, m(e.badge), 1)) : u("", !0),
75
+ e.warning ? (o(), h(c(y), {
76
+ key: 1,
77
+ name: "alertTriangle",
78
+ size: 14,
79
+ label: e.warning
80
+ }, null, 8, ["label"])) : u("", !0)
81
+ ], 42, J)
82
+ ]))), 128))
83
+ ], 8, P)
84
+ ], 8, H)) : (o(), l("nav", {
85
+ key: 1,
86
+ ref_key: "list",
87
+ ref: p,
88
+ "aria-label": t.label,
89
+ class: r([
90
+ t.presentation === "scope" ? "" : "overflow-y-hidden overflow-x-auto whitespace-nowrap",
91
+ t.presentation === "plain" ? "" : "rounded-control bg-fill p-0.5"
92
+ ])
93
+ }, [
94
+ f("ul", {
95
+ class: r(["flex gap-0.5", t.presentation === "scope" ? "flex-wrap whitespace-nowrap" : "", A[t.alignment]]),
96
+ role: "tablist",
97
+ "aria-label": t.label
98
+ }, [
99
+ (o(!0), l(T, null, V(t.tabs, (e, i) => (o(), l("li", {
100
+ key: e.value,
101
+ role: "presentation",
102
+ class: r({ "flex flex-1": t.stretch })
103
+ }, [
104
+ f("button", {
105
+ id: b(e),
106
+ type: "button",
107
+ role: "tab",
108
+ "aria-selected": a(e),
109
+ tabindex: a(e) ? 0 : -1,
110
+ "aria-controls": `${c(d)}-panel`,
111
+ "data-tab": String(e.value),
112
+ class: r([
113
+ "flex min-h-8 cursor-pointer items-center justify-center rounded-control px-3.5 py-1 text-subheadline transition-colors duration-motion-fast ease-motion-standard focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-border-focus",
114
+ a(e) ? "bg-segment-selected font-semibold text-content-strong shadow-sm" : "font-medium text-content hover:text-content-strong",
115
+ t.stretch ? "flex-1" : ""
116
+ ]),
117
+ onClick: (s) => v(e),
118
+ onKeydown: (s) => C(s, i)
119
+ }, [
120
+ e.icon ? (o(), h(c(y), {
121
+ key: 0,
122
+ name: e.icon,
123
+ class: r(["mr-2", a(e) ? "text-content-link" : ""])
124
+ }, null, 8, ["name", "class"])) : u("", !0),
125
+ j(" " + m(e.label) + " ", 1),
126
+ e.badge ? (o(), l("span", {
127
+ key: 1,
128
+ class: r(["ml-2 block min-w-[1.125rem] rounded-full px-1.5 text-center text-caption font-semibold tabular-nums", a(e) ? "bg-tint-soft text-content-link" : "bg-surface-cell text-content-muted"])
129
+ }, m(e.badge), 3)) : u("", !0),
130
+ e.warning ? (o(), h(c(y), {
131
+ key: 2,
132
+ name: "alertTriangle",
133
+ size: 16,
134
+ label: e.warning,
135
+ class: "ml-2 text-status-warning-content"
136
+ }, null, 8, ["label"])) : u("", !0)
137
+ ], 42, W)
138
+ ], 2))), 128))
139
+ ], 10, U)
140
+ ], 10, Q)),
141
+ n.$slots.default ? (o(), l("div", {
142
+ key: 2,
143
+ id: `${c(d)}-panel`,
144
+ role: "tabpanel",
145
+ "aria-labelledby": $.value ? b($.value) : void 0,
146
+ class: "mt-4"
147
+ }, [
148
+ R(n.$slots, "default")
149
+ ], 8, X)) : u("", !0)
150
+ ]));
151
+ }
152
+ });
153
+ export {
154
+ ne as _
155
+ };
@@ -0,0 +1,269 @@
1
+ import { defineComponent as H, useTemplateRef as P, computed as x, watch as Y, nextTick as Z, openBlock as n, createElementBlock as i, withModifiers as ee, normalizeStyle as te, unref as s, createElementVNode as m, toDisplayString as r, createCommentVNode as d, Fragment as E, renderList as oe, normalizeClass as q, createBlock as z, createTextVNode as F, useModel as se, ref as ne, mergeProps as ae, withCtx as ie, withDirectives as le, vModelDynamic as re, mergeModels as I, mergeDefaults as ce } from "vue";
2
+ import { useI18n as K } from "vue-i18n";
3
+ import { b as ue } from "./controlSurface-t7OEFESJ.js";
4
+ import { a as de, g as pe, _ as me, f as fe, b as he } from "./options-BXkMR63B.js";
5
+ import { _ as ve } from "./Icon.vue_vue_type_script_lang-VvcV2Bzo.js";
6
+ import { u as ge } from "./anchored-Cj4--8dT.js";
7
+ import { l as O, m as xe, u as ye, c as be } from "./suggestions-BJAqOj4c.js";
8
+ const _e = ["id", "aria-busy"], ke = { class: "min-h-0 flex-1 overflow-y-auto p-1.5" }, we = {
9
+ key: 0,
10
+ class: "px-2.5 pb-1 pt-1.5 text-caption font-semibold uppercase text-content-disabled",
11
+ role: "presentation"
12
+ }, $e = ["id", "aria-selected", "aria-disabled", "onMouseenter", "onClick"], Me = { class: "min-w-0 flex-1" }, qe = { class: "block truncate text-body text-content-strong" }, Le = {
13
+ key: 0,
14
+ class: "font-semibold"
15
+ }, Be = {
16
+ key: 0,
17
+ class: "block truncate text-footnote text-content-muted"
18
+ }, Ce = {
19
+ key: 2,
20
+ class: "px-3 py-2 text-footnote text-content-muted",
21
+ role: "status"
22
+ }, Se = {
23
+ key: 3,
24
+ class: "px-3 py-2 text-footnote text-content-destructive",
25
+ role: "alert"
26
+ }, De = {
27
+ key: 4,
28
+ class: "px-3 py-2 text-footnote text-content-muted"
29
+ }, Ve = {
30
+ key: 0,
31
+ class: "mx-1.5 mb-1.5 mt-0.5 border-t border-border-separator px-2.5 pb-0.5 pt-2 text-caption text-content-muted compact:hidden",
32
+ "aria-hidden": "true"
33
+ }, Ee = /* @__PURE__ */ H({
34
+ __name: "SuggestionList",
35
+ props: {
36
+ id: {},
37
+ anchor: {},
38
+ open: { type: Boolean },
39
+ items: {},
40
+ highlighted: {},
41
+ query: {},
42
+ status: {},
43
+ recent: { type: Boolean },
44
+ emptyMessage: { type: Boolean },
45
+ hint: {}
46
+ },
47
+ emits: ["pick", "hover"],
48
+ setup(w, { emit: L }) {
49
+ const o = w, t = L, { t: c } = K(), b = P("panel"), _ = x(() => O(o.open, o.items.length, o.status, o.emptyMessage)), k = x(() => o.status === "loading"), f = (h) => xe(h.label, o.query), { style: B } = ge(b, {
50
+ reference: () => o.anchor,
51
+ placement: () => "bottom-start",
52
+ offset: 4,
53
+ padding: 8,
54
+ fit: (h, v) => {
55
+ h.style.width = `${o.anchor?.offsetWidth ?? 0}px`, h.style.maxHeight = `${Math.max(120, Math.min(320, v.height))}px`;
56
+ }
57
+ });
58
+ return Y(() => o.highlighted, () => void Z(() => b.value?.querySelector("[aria-selected='true']")?.scrollIntoView?.({ block: "nearest" }))), (h, v) => _.value ? (n(), i("div", {
59
+ key: 0,
60
+ id: `${o.id}-list`,
61
+ ref_key: "panel",
62
+ ref: b,
63
+ role: "listbox",
64
+ "aria-busy": k.value || void 0,
65
+ style: te(s(B)),
66
+ "data-test": "suggestion-list",
67
+ class: "z-1000 flex flex-col overflow-hidden rounded-menu bg-surface-overlay shadow-float",
68
+ onMousedown: v[0] || (v[0] = ee(() => {
69
+ }, ["prevent"]))
70
+ }, [
71
+ m("div", ke, [
72
+ o.recent ? (n(), i("p", we, r(s(c)("core.form.suggestions.recent")), 1)) : d("", !0),
73
+ o.items.length > 0 ? (n(!0), i(E, { key: 1 }, oe(o.items, (a, g) => (n(), i("div", {
74
+ id: `${o.id}-option-${g}`,
75
+ key: String(a.value),
76
+ role: "option",
77
+ "aria-selected": g === o.highlighted,
78
+ "aria-disabled": a.disabled || void 0,
79
+ "data-test": "suggestion-option",
80
+ class: q(["flex cursor-pointer items-center gap-2.5 rounded-control px-2.5 py-2", [g === o.highlighted ? "bg-tint-soft" : "hover:bg-fill", a.disabled ? "cursor-not-allowed opacity-45" : "", k.value ? "opacity-60" : ""]]),
81
+ onMouseenter: (l) => t("hover", g),
82
+ onClick: (l) => !a.disabled && t("pick", a)
83
+ }, [
84
+ o.recent ? (n(), z(s(ve), {
85
+ key: 0,
86
+ name: "history",
87
+ size: 16,
88
+ class: "shrink-0 text-content-disabled"
89
+ })) : d("", !0),
90
+ m("span", Me, [
91
+ m("span", qe, [
92
+ o.recent ? (n(), i(E, { key: 0 }, [
93
+ F(r(a.label), 1)
94
+ ], 64)) : (n(), i(E, { key: 1 }, [
95
+ F(r(f(a).before), 1),
96
+ f(a).match ? (n(), i("strong", Le, r(f(a).match), 1)) : d("", !0),
97
+ F(r(f(a).after), 1)
98
+ ], 64))
99
+ ]),
100
+ a.description ? (n(), i("span", Be, r(a.description), 1)) : d("", !0)
101
+ ])
102
+ ], 42, $e))), 128)) : o.status === "loading" ? (n(), i("p", Ce, r(s(c)("core.form.select.loading")), 1)) : o.status === "failed" ? (n(), i("p", Se, r(s(c)("core.form.select.failed")), 1)) : (n(), i("p", De, r(s(c)("core.form.select.no_matches")), 1))
103
+ ]),
104
+ o.hint && o.items.length > 0 ? (n(), i("p", Ve, r(o.hint), 1)) : d("", !0)
105
+ ], 44, _e)) : d("", !0);
106
+ }
107
+ }), Fe = {
108
+ key: 0,
109
+ class: "shrink-0 text-footnote text-content-muted"
110
+ }, Pe = { class: "relative min-w-0 flex-1" }, ze = ["id", "type", "name", "placeholder", "maxlength", "autocomplete", "disabled", "required", "aria-required", "aria-invalid", "aria-describedby", "role", "aria-autocomplete", "aria-expanded", "aria-controls", "aria-activedescendant"], Ae = { class: "invisible" }, Ne = { class: "text-content-disabled" }, Re = {
111
+ key: 1,
112
+ class: "shrink-0 text-footnote text-content-muted"
113
+ }, Ue = /* @__PURE__ */ H({
114
+ __name: "TextField",
115
+ props: /* @__PURE__ */ I(/* @__PURE__ */ ce({
116
+ label: {},
117
+ hint: {},
118
+ error: {},
119
+ required: { type: Boolean },
120
+ editable: { type: Boolean },
121
+ disabled: { type: Boolean },
122
+ lockedReason: {},
123
+ presentation: {},
124
+ name: {},
125
+ type: {},
126
+ placeholder: {},
127
+ maxLength: {},
128
+ autocomplete: {},
129
+ mono: { type: Boolean },
130
+ prefix: {},
131
+ suffix: {},
132
+ width: {},
133
+ suggestions: { type: [Array, Function] },
134
+ suggestionsMinLength: {},
135
+ suggestionsDebounce: {},
136
+ suggestionsLimit: {},
137
+ recents: {}
138
+ }, {
139
+ ...he,
140
+ type: "text",
141
+ placeholder: void 0,
142
+ maxLength: void 0,
143
+ autocomplete: void 0,
144
+ mono: !1,
145
+ prefix: void 0,
146
+ suffix: void 0,
147
+ width: "md",
148
+ suggestions: void 0,
149
+ suggestionsMinLength: 2,
150
+ suggestionsDebounce: 300,
151
+ suggestionsLimit: 8,
152
+ recents: void 0
153
+ }), {
154
+ modelValue: { default: "" },
155
+ modelModifiers: {}
156
+ }),
157
+ emits: /* @__PURE__ */ I(["picked"], ["update:modelValue"]),
158
+ setup(w, { expose: L, emit: o }) {
159
+ const t = w, c = se(w, "modelValue"), b = o, _ = P("input"), k = P("anchor"), f = !!de(), B = pe("text", () => t.error ? "error" : t.disabled ? "locked" : "rest"), h = x(() => f ? ue(t.width) : "w-full"), { t: v } = K(), a = (e) => typeof e == "string" ? { value: e, label: e } : { value: e.text, label: e.text, ...e.detail !== void 0 ? { description: e.detail } : {} }, g = x(() => {
160
+ const e = t.suggestions;
161
+ if (e)
162
+ return typeof e == "function" ? async (p, y) => (await e(p, y)).map(a) : e.map(a);
163
+ }), l = x(() => g.value !== void 0), u = ye({
164
+ source: () => g.value,
165
+ minLength: () => t.suggestionsMinLength,
166
+ debounce: () => t.suggestionsDebounce,
167
+ limit: () => t.suggestionsLimit,
168
+ listAllWhenEmpty: !1,
169
+ recents: () => t.recents
170
+ }), { items: C, open: S, status: A, highlighted: N, showingRecent: R } = u, T = ne(!0), D = () => {
171
+ const e = _.value;
172
+ T.value = !e || e.selectionStart === e.value.length && e.selectionEnd === e.value.length;
173
+ }, $ = x(() => l.value && S.value && !R.value && T.value && u.current.value ? be(c.value, u.current.value.label) : ""), W = x(() => O(S.value, C.value.length, A.value, !1));
174
+ function G(e) {
175
+ D(), l.value && u.ask(e.target.value);
176
+ }
177
+ function V(e) {
178
+ c.value = e.value, u.remember(e), u.close(), b("picked", { text: e.value, ...e.description !== void 0 ? { detail: e.description } : {} });
179
+ }
180
+ function U() {
181
+ l.value && c.value === "" && u.show("");
182
+ }
183
+ function j() {
184
+ const e = u.current.value;
185
+ return !$.value || !e ? !1 : (V(e), !0);
186
+ }
187
+ const J = (e) => {
188
+ l.value && u.keydown(e, { pick: V, enterNeedsMove: !0, complete: j });
189
+ };
190
+ return L({ focus: () => _.value?.focus() }), (e, p) => (n(), z(me, ae(s(fe)(t), {
191
+ value: c.value,
192
+ prefix: t.prefix,
193
+ suffix: t.suffix,
194
+ "value-style": t.mono ? "mono" : void 0
195
+ }), {
196
+ default: ie(({ id: y, describedby: Q, invalid: X }) => [
197
+ m("div", {
198
+ ref_key: "anchor",
199
+ ref: k,
200
+ class: q(["flex items-center gap-1.5", [s(B), h.value]])
201
+ }, [
202
+ t.prefix ? (n(), i("span", Fe, r(t.prefix), 1)) : d("", !0),
203
+ m("div", Pe, [
204
+ le(m("input", {
205
+ id: y,
206
+ ref_key: "input",
207
+ ref: _,
208
+ "onUpdate:modelValue": p[0] || (p[0] = (M) => c.value = M),
209
+ type: t.type,
210
+ name: t.name,
211
+ placeholder: t.placeholder,
212
+ maxlength: t.maxLength,
213
+ autocomplete: l.value ? "off" : t.autocomplete,
214
+ disabled: t.disabled,
215
+ required: t.required,
216
+ "aria-required": t.required || void 0,
217
+ "aria-invalid": X || void 0,
218
+ "aria-describedby": Q,
219
+ role: l.value ? "combobox" : void 0,
220
+ "aria-autocomplete": l.value ? "both" : void 0,
221
+ "aria-expanded": l.value ? W.value : void 0,
222
+ "aria-controls": l.value ? `${y}-list` : void 0,
223
+ "aria-activedescendant": l.value && W.value && s(C).length > 0 ? `${y}-option-${s(N)}` : void 0,
224
+ class: q(["block w-full min-w-0 border-0 bg-transparent px-0 py-1 text-body text-content-strong placeholder:text-content-disabled focus:outline-none focus:ring-0 disabled:cursor-not-allowed", [t.mono ? "font-mono" : "", f && !l.value ? "compact:text-right" : ""]]),
225
+ onInput: G,
226
+ onKeyup: D,
227
+ onClick: D,
228
+ onKeydown: J,
229
+ onFocus: U,
230
+ onBlur: p[1] || (p[1] = (M) => s(u).close())
231
+ }, null, 42, ze), [
232
+ [re, c.value]
233
+ ]),
234
+ $.value ? (n(), i("span", {
235
+ key: 0,
236
+ "aria-hidden": "true",
237
+ class: q(["pointer-events-none absolute inset-0 flex items-center overflow-hidden whitespace-pre py-1 text-body", t.mono ? "font-mono" : ""]),
238
+ "data-test": "completion"
239
+ }, [
240
+ m("span", Ae, r(c.value), 1),
241
+ m("span", Ne, r($.value), 1)
242
+ ], 2)) : d("", !0)
243
+ ]),
244
+ t.suffix ? (n(), i("span", Re, r(t.suffix), 1)) : d("", !0)
245
+ ], 2),
246
+ l.value ? (n(), z(Ee, {
247
+ key: 0,
248
+ id: y,
249
+ anchor: k.value,
250
+ open: s(S),
251
+ items: s(C),
252
+ highlighted: s(N),
253
+ query: c.value,
254
+ status: s(A),
255
+ recent: s(R),
256
+ "empty-message": !1,
257
+ hint: $.value ? s(v)("core.form.suggestions.keys_complete") : s(v)("core.form.suggestions.keys_pick"),
258
+ onPick: V,
259
+ onHover: p[2] || (p[2] = (M) => s(u).highlight(M))
260
+ }, null, 8, ["id", "anchor", "open", "items", "highlighted", "query", "status", "recent", "hint"])) : d("", !0)
261
+ ]),
262
+ _: 1
263
+ }, 16, ["value", "prefix", "suffix", "value-style"]));
264
+ }
265
+ });
266
+ export {
267
+ Ue as _,
268
+ Ee as a
269
+ };
@@ -0,0 +1,127 @@
1
+ import { defineComponent as y, useModel as g, computed as d, openBlock as v, createBlock as x, mergeProps as _, unref as i, withCtx as k, createElementVNode as t, renderSlot as F, normalizeClass as c, normalizeStyle as R, toDisplayString as B, mergeModels as V, mergeDefaults as q, useTemplateRef as P, withDirectives as T, vModelText as I, createElementBlock as N, createCommentVNode as j } from "vue";
2
+ import { useI18n as G } from "vue-i18n";
3
+ import { u as z, _ as C, f as S, b as $, a as U, g as Z } from "./options-BXkMR63B.js";
4
+ import { u as A } from "./mediaQuery-CygcXmFW.js";
5
+ const H = { class: "flex items-center gap-2" }, J = ["id", "aria-checked", "aria-label", "aria-describedby", "aria-invalid", "disabled"], K = { class: "sr-only" }, ae = /* @__PURE__ */ y({
6
+ __name: "SwitchField",
7
+ props: /* @__PURE__ */ V(/* @__PURE__ */ q({
8
+ label: {},
9
+ hint: {},
10
+ error: {},
11
+ required: { type: Boolean },
12
+ editable: { type: Boolean },
13
+ disabled: { type: Boolean },
14
+ lockedReason: {},
15
+ presentation: {},
16
+ name: {},
17
+ size: {}
18
+ }, { ...$, size: "md" }), {
19
+ modelValue: { type: Boolean, default: !1 },
20
+ modelModifiers: {}
21
+ }),
22
+ emits: ["update:modelValue"],
23
+ setup(l) {
24
+ const a = l, e = g(l, "modelValue"), { t: o } = G(), { editable: n } = z(a), u = {
25
+ sm: { "--switch-w": "1.75rem", "--switch-h": "1rem" },
26
+ md: { "--switch-w": "var(--app-switch-width)", "--switch-h": "var(--app-switch-height)" },
27
+ lg: { "--switch-w": "3.1875rem", "--switch-h": "1.9375rem" }
28
+ }, m = d(() => u[a.size]);
29
+ function p() {
30
+ !a.disabled && n.value && (e.value = !e.value);
31
+ }
32
+ return (s, r) => (v(), x(C, _(i(S)(a), {
33
+ value: e.value,
34
+ "row-layout": "setting"
35
+ }), {
36
+ default: k(({ id: h, describedby: f, invalid: b }) => [
37
+ t("div", H, [
38
+ F(s.$slots, "before"),
39
+ t("button", {
40
+ id: h,
41
+ type: "button",
42
+ role: "switch",
43
+ "aria-checked": e.value,
44
+ "aria-label": a.label,
45
+ "aria-describedby": f,
46
+ "aria-invalid": b || void 0,
47
+ disabled: a.disabled,
48
+ style: R(m.value),
49
+ class: c(["hit-target relative inline-flex h-(--switch-h) w-(--switch-w) shrink-0 cursor-pointer rounded-full transition-colors duration-motion-fast ease-motion-standard focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-border-focus disabled:cursor-not-allowed disabled:opacity-45", e.value ? "bg-control-on" : "bg-fill-strong"]),
50
+ onClick: p
51
+ }, [
52
+ t("span", {
53
+ class: c(["pointer-events-none absolute left-0.5 top-0.5 size-[calc(var(--switch-h)-0.25rem)] rounded-full bg-white shadow-knob transition-transform duration-motion-normal ease-motion-standard", e.value ? "translate-x-[calc(var(--switch-w)-var(--switch-h))]" : ""])
54
+ }, null, 2),
55
+ t("span", K, B(e.value ? i(o)("core.form.yes") : i(o)("core.form.no")), 1)
56
+ ], 14, J)
57
+ ])
58
+ ]),
59
+ _: 3
60
+ }, 16, ["value"]));
61
+ }
62
+ }), O = ["id", "name", "rows", "placeholder", "maxlength", "autocomplete", "disabled", "required", "aria-required", "aria-invalid", "aria-describedby"], Q = {
63
+ key: 0,
64
+ class: "mt-1 self-end text-footnote tabular-nums text-content-muted"
65
+ }, oe = /* @__PURE__ */ y({
66
+ __name: "TextareaField",
67
+ props: /* @__PURE__ */ V(/* @__PURE__ */ q({
68
+ label: {},
69
+ hint: {},
70
+ error: {},
71
+ required: { type: Boolean },
72
+ editable: { type: Boolean },
73
+ disabled: { type: Boolean },
74
+ lockedReason: {},
75
+ presentation: {},
76
+ name: {},
77
+ placeholder: {},
78
+ maxLength: {},
79
+ rows: {},
80
+ autocomplete: {},
81
+ stacked: { type: Boolean }
82
+ }, { ...$, placeholder: void 0, maxLength: void 0, rows: 3, autocomplete: void 0, stacked: !1 }), {
83
+ modelValue: { default: "" },
84
+ modelModifiers: {}
85
+ }),
86
+ emits: ["update:modelValue"],
87
+ setup(l, { expose: a }) {
88
+ const e = l, o = g(l, "modelValue"), n = P("area"), u = !!U(), m = A(), { editable: p } = z(e), s = d(() => u && !e.stacked && !m.value && p.value && !!e.label), r = d(() => e.maxLength ? `${o.value.length} / ${e.maxLength}` : void 0), h = d(() => s.value && r.value ? [e.hint, r.value].filter(Boolean).join(" · ") : e.hint), f = Z("area", () => e.error ? "error" : e.disabled ? "locked" : "rest");
89
+ return a({ focus: () => n.value?.focus() }), (b, w) => (v(), x(C, _({ ...i(S)(e), hint: h.value }, {
90
+ value: o.value,
91
+ "row-layout": s.value ? "entry" : "stacked",
92
+ "row-label-align": "top"
93
+ }), {
94
+ default: k(({ id: M, describedby: L, invalid: D }) => [
95
+ t("div", {
96
+ class: c(["w-full", i(f)])
97
+ }, [
98
+ T(t("textarea", {
99
+ id: M,
100
+ ref_key: "area",
101
+ ref: n,
102
+ "onUpdate:modelValue": w[0] || (w[0] = (E) => o.value = E),
103
+ name: e.name,
104
+ rows: e.rows,
105
+ placeholder: e.placeholder,
106
+ maxlength: e.maxLength,
107
+ autocomplete: e.autocomplete,
108
+ disabled: e.disabled,
109
+ required: e.required,
110
+ "aria-required": e.required || void 0,
111
+ "aria-invalid": D || void 0,
112
+ "aria-describedby": L,
113
+ class: c(["block w-full border-0 bg-transparent px-0 py-1 text-body text-content-strong placeholder:text-content-disabled focus:outline-none focus:ring-0 disabled:cursor-not-allowed", e.disabled ? "resize-none" : "resize-y"])
114
+ }, null, 10, O), [
115
+ [I, o.value]
116
+ ])
117
+ ], 2),
118
+ !s.value && r.value ? (v(), N("p", Q, B(r.value), 1)) : j("", !0)
119
+ ]),
120
+ _: 1
121
+ }, 16, ["value", "row-layout"]));
122
+ }
123
+ });
124
+ export {
125
+ ae as _,
126
+ oe as a
127
+ };
@@ -1,7 +1,7 @@
1
1
  import { defineComponent as p, computed as a, openBlock as n, createElementBlock as s, createVNode as v, unref as r, createTextVNode as _, toDisplayString as c } from "vue";
2
2
  import { useI18n as f } from "vue-i18n";
3
3
  import { u as x, t as y } from "./format-B8mJm946.js";
4
- import { _ as T } from "./Icon.vue_vue_type_script_lang-DtC4_mkz.js";
4
+ import { _ as T } from "./Icon.vue_vue_type_script_lang-VvcV2Bzo.js";
5
5
  const g = ["datetime"], k = {
6
6
  key: 1,
7
7
  class: "text-xs text-content-muted"