@vue-skuilder/standalone-ui 0.1.36 → 0.1.39

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 (28) hide show
  1. package/dist/assets/{TagViewer-DYPKSc3Z.js → TagViewer-DWCg4zms.js} +2 -2
  2. package/dist/assets/{TagViewer-DYPKSc3Z.js.map → TagViewer-DWCg4zms.js.map} +1 -1
  3. package/dist/assets/{common-ui.es-DfgaTZ4z.js → common-ui.es-DQVvqecz.js} +4 -4
  4. package/dist/assets/{common-ui.es-DfgaTZ4z.js.map → common-ui.es-DQVvqecz.js.map} +1 -1
  5. package/dist/assets/common-ui.es-MTBOuJcA.js +1 -0
  6. package/dist/assets/{dist-BcZ1gsNX.js → dist-D0Pw05KO.js} +5 -5
  7. package/dist/assets/{dist-BcZ1gsNX.js.map → dist-D0Pw05KO.js.map} +1 -1
  8. package/dist/assets/{index-e8XolFvR.js → index-CgJHLYRy.js} +5 -5
  9. package/dist/assets/index-CgJHLYRy.js.map +1 -0
  10. package/dist/index.html +3 -3
  11. package/dist-lib/assets/index.css +1 -1
  12. package/dist-lib/questions.cjs.js +4 -4
  13. package/dist-lib/questions.cjs.js.map +1 -1
  14. package/dist-lib/questions.mjs +48617 -3997
  15. package/dist-lib/questions.mjs.map +1 -1
  16. package/package.json +6 -6
  17. package/dist/assets/common-ui.es-3rfUYt9S.js +0 -1
  18. package/dist/assets/index-e8XolFvR.js.map +0 -1
  19. package/dist-lib/MarkdownRenderer-DoVbFpA6-BjR5e6Al.js +0 -10808
  20. package/dist-lib/MarkdownRenderer-DoVbFpA6-BjR5e6Al.js.map +0 -1
  21. package/dist-lib/assets/common-ui.css +0 -1
  22. package/dist-lib/common-ui.es-B8Tew0sr.js +0 -11868
  23. package/dist-lib/common-ui.es-B8Tew0sr.js.map +0 -1
  24. package/dist-lib/common-ui.es-Be_EI6up.js +0 -5
  25. package/dist-lib/dist-BP0_sJdJ.js +0 -15456
  26. package/dist-lib/dist-BP0_sJdJ.js.map +0 -1
  27. package/dist-lib/moment-BW3a6Jo4.js +0 -5934
  28. package/dist-lib/moment-BW3a6Jo4.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"mappings":"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AAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,iBAAkB,EAClB,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EAC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O,OACP,IAAK,UACN,CACD,MACF,IAAK,sBACH,EAAU,CACR,QAAS,OACT,KAAM,UACN,MAAO,OACP,IAAK,UACN,CACD,MACF,IAAK,aAKH,MAAO,GAJK,EAAQ,SAAS,CAIf,GAHA,IAAI,KAAK,eAAe,EAAQ,CAC5C,MAAO,OACR,CAAC,CAAC,OAAO,EAAQ,GAEpB,IAAK,wBACH,EAAU,CACR,QAAS,QACT,IAAK,UACL,MAAO,QACR,CACD,MACF,IAAK,YACH,EAAU,CACR,MAAO,QACP,IAAK,UACN,CACD,MACF,IAAK,OACH,EAAU,CACR,KAAM,UACP,CACD,MACF,IAAK,QACH,EAAU,CACR,MAAO,OACR,CACD,MACF,IAAK,aACH,EAAU,CACR,MAAO,QACR,CACD,MACF,IAAK,eACH,EAAU,CACR,MAAO,OACP,KAAM,UACP,CACD,MACF,IAAK,eACH,EAAU,CACR,MAAO,OACP,IAAK,UACN,CACD,MACF,IAAK,UACH,EAAU,CACR,QAAS,OACV,CACD,MACF,IAAK,eACH,EAAU,CACR,QAAS,QACV,CACD,MACF,IAAK,aACH,OAAO,IAAI,KAAK,aAAa,EAAO,CAAC,OAAO,EAAQ,SAAS,CAAC,CAChE,IAAK,WACH,EAAU,CACR,KAAM,UACN,OAAQ,GACT,CACD,MACF,IAAK,WACH,EAAU,CACR,KAAM,UACN,OAAQ,GACT,CACD,MACF,IAAK,UACH,EAAU,CACR,OAAQ,UACT,CACD,MACF,IAAK,UACH,EAAU,CACR,OAAQ,UACT,CACD,MACF,IAAK,WACH,EAAU,CACR,KAAM,UACN,OAAQ,UACT,CACD,MACF,IAAK,cACH,EAAU,CACR,KAAM,UACN,OAAQ,UACR,OAAQ,GACT,CACD,MACF,IAAK,cACH,EAAU,CACR,KAAM,UACN,OAAQ,UACR,OAAQ,GACT,CACD,MACF,IAAK,eACH,EAAU,CACR,KAAM,UACN,MAAO,QACP,IAAK,UACL,KAAM,UACN,OAAQ,UACT,CACD,MACF,IAAK,kBACH,EAAU,CACR,KAAM,UACN,MAAO,QACP,IAAK,UACL,KAAM,UACN,OAAQ,UACR,OAAQ,GACT,CACD,MACF,IA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gBAAgB,EAAE,CAAC,IAAI,eAAe,CAAC,OAAQ,GAAM,GAAK,KAAK,CAAC,MAAM,CAAC,GACtG,MAAO,CACN,MAAO,CAAC,EACR,KAAM,GACN,OAAQ,EACR,OAAQ,EACR,WAAY,eAAe,EAAE,CAC7B,UAAW,kBAAkB,EAAE,CAC/B,CAEF,SAAS,aAAa,EAAG,CACxB,GAAI,EAAE,SAAW,EAAG,OAAO,GAAE,WACzB,EAAG,EAAI,CACV,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,CACD,IAAK,IAAI,EAAI,EAAG,EAAI,EAAE,OAAQ,IAAK,EAAI,KAAK,EAAE,GAAG,CAAE,EAAE,QAAU,EAAI,SAAS,EAAE,GAAG,EAAG,EAAE,QAAU,EAAE,EAAE,QAAU,GAC9G,OAAO,EAAE,KAAK,GAAG,KAIdC,GAAK,CACR,CACC,WACA,QACA,OACA,CACD,CACC,cACA,gBACA,wBACA,CACD,CACC,iBACA,cACA,aACA,CACD,CACC,qBACA,mBACA,kBACA,CACD,CACC,cACA,QACA,kBACA,CACD,CACC,iBACA,cACA,aACA,CACD,CACC,cACA,2BACA,YACA,CACD,CACC,kBACA,+BACA,qCACA,CACD,CACC,WACA,QACA,UACA,CACD,CACC,cACA,gBACA,iBACA,CACD,CACC,cACA,sBACA,yCACA,CACD,CACC,cACA,cACA,QACA,CACD,CACC,iBACA,cACA,QACA,CACD,CACC,iBACA,oBACA,gBACA,CACD,CACC,qBACA,iBACA,UACA,CACD,CACC,qBACA,mBACA,UACA,CACD,CACC,WACA,aACA,UACA,CACD,CACC,cACA,qBACA,aACA,CACD,CACC,cACA,kBACA,mBACA,CACD,CACC,cACA,mBACA,QACA,CACD,CACC,iBACA,iBACA,IACA,CACD,CACC,qBACA,sBACA,KACA,CACD,CACC,kBACA,0BACA,WACA,CACD,CACC,iBACA,sBACA,MACA,CACD,CACC,iBACA,uBACA,MACA,CACD,CACC,cACA,UACA,OACA,CACD,CACC,WACA,mBACA,WACA,CACD,CACC,WACA,mBACA,OACA,CACD,CACC,cACA,2BACA,aACA,CACD,CACC,kBACA,WACA,KACA,CACD,CACC,iBACA,8BACA,6BACA,CACD,CACC,QACA,QACA,IACA,CACD,CACC,WACA,YACA,eACA,CACD,CACC,WACA,kBACA,aACA,CACD,CACC,cACA,oBACA,2BACA,CACD,CACC,qBACA,gCACA,sBACA,CACD,CACC,cACA,GACA,iBACA,CACD,CACC,iBACA,GACA,gBACA,CACD,CACC,cACA,GACA,sBACA,CACD,CACC,iBACA,GACA,mBACA,CACD,CACC,iBACA,GACA,SACA,CACD,CACC,qBACA,GACA,SACA,CACD,CACC,iBACA,GACA,cACA,CACD,CACC,qBACA,GACA,WACA,CACD,CACC,cACA,GACA,SACA,CACD,CACC,cACA,GACA,gBACA,CACD,CACC,kBACA,GACA,sBACA,CACD,CACC,oBACA,GACA,UACA,CACD,CACC,qBACA,GACA,QACA,CACD,CACC,iBACA,GACA,UACA,CACD,CACC,iBACA,GACA,MACA,CACD,CACC,qBACA,GACA,YACA,CACD,CACC,yBACA,GACA,8BACA,CACD,CACC,iBACA,GACA,OACA,CACD,CACC,sBACA,GACA,iBACA,CACD,CACC,kBACA,GACA,kBACA,CACD,CACC,qBACA,GACA,qBACA,CACD,CACC,yBACA,GACA,UACA,CACD,CACC,yBACA,GACA,YACA,CACD,CACC,qBACA,GACA,OACA,CACD,CACC,qBACA,GACA,SACA,CACD,CACC,qBACA,GACA,eACA,CACD,CACC,yBACA,GACA,kBACA,CACD,CACC,yBACA,GACA,iBACA,CACD,CACC,qBACA,GACA,qBACA,CACD,CACC,yBACA,GACA,UACA,CACD,CACC,yBACA,GACA,+BACA,CACD,CACC,qBACA,GACA,OACA,CACD,CACC,qBACA,GACA,SACA,CACD,CACC,oBACA,GACA,QACA,CACD,CACC,cACA,GACA,oBACA,CACD,CACC,cACA,GACA,SACA,CACD,CACC,WACA,GACA,MACA,CACD,CACC,oBACA,GACA,OACA,CACD,CACC,cACA,GACA,OACA,CACD,CACC,iBACA,GACA,OACA,CACD,CACC,cACA,GACA,MACA,CACD,CACC,iBACA,GACA,MACA,CACD,CACC,WACA,GACA,OACA,CACD,CACC,eACA,GACA,OACA,CACD,CACC,cACA,GACA,OACA,CACD,CACC,kBACA,GACA,QACA,CACD,CACC,kBACA,GACA,OACA,CACD,CACC,cACA,GACA,QACA,CACD,CACC,iBACA,GACA,UACA,CACD,CACC,oBACA,GACA,UACA,CACD,CACC,kBACA,GACA,iBACA,CACD,CACC,cACA,GACA,QACA,CACD,CACC,iBACA,GACA,OACA,CACD,CACC,cACA,GACA,MACA,CACD,CACC,cACA,GACA,QACA,CACD,CACC,cACA,GACA,OACA,CACD,CACC,iBACA,GACA,OACA,CACD,CACC,qBACA,GACA,OACA,CACD,CACC,cACA,GACA,QACA,CACD,CACC,iBACA,GACA,OACA,CACD,CACC,cACA,GACA,WACA,CACD,CACC,iBACA,GACA,WACA,CACD,CACC,cACA,GACA,UACA,CACD,CACC,cACA,GACA,SACA,CACD,CACC,iBACA,GACA,SACA,CACD,CACC,iBACA,GACA,aACA,CACD,CACC,qBACA,GACA,eACA,CACD,CACC,qBACA,GACA,wBACA,CACD,CACC,eACA,GACA,YACA,CACD,CACC,kBACA,GACA,OACA,CACD,CAAE,GAAK,CACP,GAAG,GACH,KAAM,GACN,QAAS,UACT,UAAW,EAAE,CACb,QAAS,EAAE,CACX,CAAE,GAAI,EAAE,CAAE,GAAI,EAAE,CACjB,SAAS,MAAM,EAAG,CACjB,OAAO,GAAE,IAAM,GAEhBnB,OAAE,MAAO,MAAM,CACf,SAAS,OAAQ,CAChB,OAAO,GAAE,OAAO,CAEjBA,OAAE,MAAO,MAAM,CACf,SAAS,MAAM,EAAG,EAAG,EAAG,KACnB,EAAI,WAAW,EAAE,CAAE,EAAI,CAC1B,GAAG,MAAM,EAAE,CACX,KAAM,GAAK,GACX,QAAS,EACT,UAAW,EACX,QAA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,UACV,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACV,CAgOC,KA/NkB,CAClB,KAAM,UACN,SAAU,UACV,SAAU,UACV,SAAU,UACV,SAAU,UACV,SAAU,UACV,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACV,CAiNC,UAhNuB,CACvB,KAAM,UACN,SAAU,UACV,SAAU,UACV,SAAU,UACV,SAAU,UACV,SAAU,UACV,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACV,CAkMC,KAjMkB,CAClB,KAAM,UACN,SAAU,UACV,SAAU,UACV,SAAU,UACV,SAAU,UACV,SAAU,UACV,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACV,CAmLC,KAlLkB,CAClB,KAAM,UACN,SAAU,UACV,SAAU,UACV,SAAU,UACV,SAAU,UACV,SAAU,UACV,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACV,CAoKC,MAnKmB,CACnB,KAAM,UACN,SAAU,UACV,SAAU,UACV,SAAU,UACV,SAAU,UACV,SAAU,UACV,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACV,CAqJC,WApJwB,CACxB,KAAM,UACN,SAAU,UACV,SAAU,UACV,SAAU,UACV,SAAU,UACV,SAAU,UACV,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACV,CAsIC,KArIkB,CAClB,KAAM,UACN,SAAU,UACV,SAAU,UACV,SAAU,UACV,SAAU,UACV,SAAU,UACV,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACV,C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","names":["fromXYZ","toXYZ","CIELAB.fromXYZ","sRGB.toXYZ","sRGB.fromXYZ","CIELAB.toXYZ","_getCurrentInstance","inject","_defineComponent","genDefaults","getTarget","getOffset","_createVNode","_mergeProps","e","t","d","u","C","x","O","D","I","h","r","p","y","j","M","N","P","_sfc_render","_","m","o","i","a","n","g","s","v","b","l","c","F","S","w","E","T","ne","re","ie","ae","oe","se","ce","le","U","W","pe","G","K","q","parse","J","Y","X","Z","k","f","ee","A","_sfc_render$1","$","V","H","z","B","makeTransitionProps","ExpandTransitionGenerator","mounted","unmounted","_withDirectives","_Fragment","_resolveDirective","allowedDensities","allowedVariants","updated","_vShow","transformItem","transformItems","_createTextVNode","highlightResult","colors","propMap","breakpointClass","oops","genPath","_genPath","_vModelText"],"ignoreList":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301],"sources":["../../src/ENVIRONMENT_VARS.ts","../../../../node_modules/vuetify/lib/composables/toggleScope.mjs","../../../../node_modules/vuetify/lib/util/globals.mjs","../../../../node_modules/vuetify/lib/util/helpers.mjs","../../../../node_modules/vuetify/lib/util/anchor.mjs","../../../../node_modules/vuetify/lib/util/box.mjs","../../../../node_modules/vuetify/lib/util/animation.mjs","../../../../node_modules/vuetify/lib/util/bindProps.mjs","../../../../node_modules/vuetify/lib/util/color/APCA.mjs","../../../../node_modules/vuetify/lib/util/console.mjs","../../../../node_modules/vuetify/lib/util/color/transformCIELAB.mjs","../../../../node_modules/vuetify/lib/util/color/transformSRGB.mjs","../../../../node_modules/vuetify/lib/util/colorUtils.mjs","../../../../node_modules/vuetify/lib/util/propsFactory.mjs","../../../../node_modules/vuetify/lib/composables/component.mjs","../../../../node_modules/vuetify/lib/util/getCurrentInstance.mjs","../../../../node_modules/vuetify/lib/util/injectSelf.mjs","../../../../node_modules/vuetify/lib/composables/defaults.mjs","../../../../node_modules/vuetify/lib/util/defineComponent.mjs","../../../../node_modules/vuetify/lib/util/createSimpleFunctional.mjs","../../../../node_modules/vuetify/lib/util/dom.mjs","../../../../node_modules/vuetify/lib/util/easing.mjs","../../../../node_modules/vuetify/lib/util/events.mjs","../../../../node_modules/vuetify/lib/util/getScrollParent.mjs","../../../../node_modules/vuetify/lib/util/isFixedPosition.mjs","../../../../node_modules/vuetify/lib/util/useRender.mjs","../../../../node_modules/vuetify/lib/composables/proxiedModel.mjs","../../../../node_modules/vuetify/lib/locale/en.mjs","../../../../node_modules/vuetify/lib/locale/adapters/vuetify.mjs","../../../../node_modules/vuetify/lib/composables/locale.mjs","../../../../node_modules/vuetify/lib/composables/date/adapters/vuetify.mjs","../../../../node_modules/vuetify/lib/composables/date/date.mjs","../../../../node_modules/vuetify/lib/composables/display.mjs","../../../../node_modules/vuetify/lib/composables/goto.mjs","../../../../node_modules/vuetify/lib/iconsets/mdi.mjs","../../../../node_modules/vuetify/lib/composables/icons.mjs","../../../../node_modules/vuetify/lib/composables/theme.mjs","../../../../node_modules/vuetify/lib/composables/resizeObserver.mjs","../../../../node_modules/vuetify/lib/composables/layout.mjs","../../../../node_modules/vuetify/lib/framework.mjs","../../src/composables/useCourseConfig.ts","../../src/components/CourseHeader.vue","../../src/App.vue","../../src/views/HomeView.vue","../../../courseware/dist/shapes-BQUVJdp5.js","../../../courseware/dist/CourseWare-BTFRjgBR.js","../../../courseware/dist/piano-DF1g6yaX.js","../../../courseware/dist/index.mjs","../../src/views/StudyView.vue","../../src/views/BrowseView.vue","../../src/views/UserStatsView.vue","../../src/views/UserSettingsView.vue","../../src/questions/SimpleTextQuestionView.vue","../../src/questions/SimpleTextQuestion.ts","../../src/questions/MultipleChoiceQuestionView.vue","../../src/questions/MultipleChoiceQuestion.ts","../../src/questions/NumberRangeQuestionView.vue","../../src/questions/NumberRangeQuestion.ts","../../src/questions/exampleCourse.ts","../../src/questions/index.ts","../../src/views/AdminRegisterQuestionsView.vue","../../src/router/index.ts","../../../../node_modules/vuetify/lib/components/VApp/VApp.mjs","../../../../node_modules/vuetify/lib/composables/tag.mjs","../../../../node_modules/vuetify/lib/components/VToolbar/VToolbarTitle.mjs","../../../../node_modules/vuetify/lib/components/transitions/createTransition.mjs","../../../../node_modules/vuetify/lib/components/transitions/expand-transition.mjs","../../../../node_modules/vuetify/lib/components/transitions/dialog-transition.mjs","../../../../node_modules/vuetify/lib/components/transitions/index.mjs","../../../../node_modules/vuetify/lib/components/VDefaultsProvider/VDefaultsProvider.mjs","../../../../node_modules/vuetify/lib/composables/dimensions.mjs","../../../../node_modules/vuetify/lib/components/VResponsive/VResponsive.mjs","../../../../node_modules/vuetify/lib/composables/color.mjs","../../../../node_modules/vuetify/lib/composables/rounded.mjs","../../../../node_modules/vuetify/lib/composables/transition.mjs","../../../../node_modules/vuetify/lib/directives/intersect/index.mjs","../../../../node_modules/vuetify/lib/components/VImg/VImg.mjs","../../../../node_modules/vuetify/lib/composables/border.mjs","../../../../node_modules/vuetify/lib/composables/elevation.mjs","../../../../node_modules/vuetify/lib/components/VToolbar/VToolbar.mjs","../../../../node_modules/vuetify/lib/composables/scroll.mjs","../../../../node_modules/vuetify/lib/composables/ssrBoot.mjs","../../../../node_modules/vuetify/lib/components/VAppBar/VAppBar.mjs","../../../../node_modules/vuetify/lib/composables/density.mjs","../../../../node_modules/vuetify/lib/composables/variant.mjs","../../../../node_modules/vuetify/lib/components/VBtnGroup/VBtnGroup.mjs","../../../../node_modules/vuetify/lib/composables/group.mjs","../../../../node_modules/vuetify/lib/components/VBtnToggle/VBtnToggle.mjs","../../../../node_modules/vuetify/lib/composables/size.mjs","../../../../node_modules/vuetify/lib/components/VIcon/VIcon.mjs","../../../../node_modules/vuetify/lib/composables/intersectionObserver.mjs","../../../../node_modules/vuetify/lib/components/VProgressCircular/VProgressCircular.mjs","../../../../node_modules/vuetify/lib/composables/location.mjs","../../../../node_modules/vuetify/lib/components/VProgressLinear/VProgressLinear.mjs","../../../../node_modules/vuetify/lib/composables/loader.mjs","../../../../node_modules/vuetify/lib/composables/position.mjs","../../../../node_modules/vuetify/lib/composables/router.mjs","../../../../node_modules/vuetify/lib/composables/selectLink.mjs","../../../../node_modules/vuetify/lib/directives/ripple/index.mjs","../../../../node_modules/vuetify/lib/components/VBtn/VBtn.mjs","../../../../node_modules/vuetify/lib/components/VAppBar/VAppBarNavIcon.mjs","../../../../node_modules/vuetify/lib/components/VAppBar/VAppBarTitle.mjs","../../../../node_modules/vuetify/lib/components/VAlert/VAlertTitle.mjs","../../../../node_modules/vuetify/lib/components/VAlert/VAlert.mjs","../../../../node_modules/vuetify/lib/components/VAvatar/VAvatar.mjs","../../../../node_modules/vuetify/lib/components/VLabel/VLabel.mjs","../../../../node_modules/vuetify/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs","../../../../node_modules/vuetify/lib/components/VSelectionControl/VSelectionControl.mjs","../../../../node_modules/vuetify/lib/components/VCheckbox/VCheckboxBtn.mjs","../../../../node_modules/vuetify/lib/components/VInput/InputIcon.mjs","../../../../node_modules/vuetify/lib/components/VMessages/VMessages.mjs","../../../../node_modules/vuetify/lib/composables/focus.mjs","../../../../node_modules/vuetify/lib/composables/form.mjs","../../../../node_modules/vuetify/lib/composables/validation.mjs","../../../../node_modules/vuetify/lib/components/VInput/VInput.mjs","../../../../node_modules/vuetify/lib/components/VCheckbox/VCheckbox.mjs","../../../../node_modules/vuetify/lib/components/VSlideGroup/helpers.mjs","../../../../node_modules/vuetify/lib/components/VSlideGroup/VSlideGroup.mjs","../../../../node_modules/vuetify/lib/components/VChipGroup/VChipGroup.mjs","../../../../node_modules/vuetify/lib/components/VChip/VChip.mjs","../../../../node_modules/vuetify/lib/components/VList/list.mjs","../../../../node_modules/vuetify/lib/composables/nested/activeStrategies.mjs","../../../../node_modules/vuetify/lib/composables/nested/openStrategies.mjs","../../../../node_modules/vuetify/lib/composables/nested/selectStrategies.mjs","../../../../node_modules/vuetify/lib/composables/nested/nested.mjs","../../../../node_modules/vuetify/lib/components/VList/VListGroup.mjs","../../../../node_modules/vuetify/lib/components/VList/VListItemSubtitle.mjs","../../../../node_modules/vuetify/lib/components/VList/VListItemTitle.mjs","../../../../node_modules/vuetify/lib/components/VList/VListItem.mjs","../../../../node_modules/vuetify/lib/components/VList/VListSubheader.mjs","../../../../node_modules/vuetify/lib/components/VDivider/VDivider.mjs","../../../../node_modules/vuetify/lib/components/VList/VListChildren.mjs","../../../../node_modules/vuetify/lib/composables/list-items.mjs","../../../../node_modules/vuetify/lib/components/VList/VList.mjs","../../../../node_modules/vuetify/lib/components/VList/VListImg.mjs","../../../../node_modules/vuetify/lib/components/VList/VListItemAction.mjs","../../../../node_modules/vuetify/lib/components/VList/VListItemMedia.mjs","../../../../node_modules/vuetify/lib/components/VOverlay/util/point.mjs","../../../../node_modules/vuetify/lib/components/VOverlay/locationStrategies.mjs","../../../../node_modules/vuetify/lib/components/VOverlay/requestNewFrame.mjs","../../../../node_modules/vuetify/lib/components/VOverlay/scrollStrategies.mjs","../../../../node_modules/vuetify/lib/components/VMenu/shared.mjs","../../../../node_modules/vuetify/lib/composables/delay.mjs","../../../../node_modules/vuetify/lib/components/VOverlay/useActivator.mjs","../../../../node_modules/vuetify/lib/composables/hydration.mjs","../../../../node_modules/vuetify/lib/composables/lazy.mjs","../../../../node_modules/vuetify/lib/composables/scopeId.mjs","../../../../node_modules/vuetify/lib/composables/stack.mjs","../../../../node_modules/vuetify/lib/composables/teleport.mjs","../../../../node_modules/vuetify/lib/directives/click-outside/index.mjs","../../../../node_modules/vuetify/lib/components/VOverlay/VOverlay.mjs","../../../../node_modules/vuetify/lib/composables/forwardRefs.mjs","../../../../node_modules/vuetify/lib/components/VMenu/VMenu.mjs","../../../../node_modules/vuetify/lib/components/VCounter/VCounter.mjs","../../../../node_modules/vuetify/lib/components/VField/VFieldLabel.mjs","../../../../node_modules/vuetify/lib/components/VField/VField.mjs","../../../../node_modules/vuetify/lib/components/VTextField/VTextField.mjs","../../../../node_modules/vuetify/lib/components/VVirtualScroll/VVirtualScrollItem.mjs","../../../../node_modules/vuetify/lib/composables/virtual.mjs","../../../../node_modules/vuetify/lib/components/VVirtualScroll/VVirtualScroll.mjs","../../../../node_modules/vuetify/lib/components/VSelect/useScrolling.mjs","../../../../node_modules/vuetify/lib/components/VSelect/VSelect.mjs","../../../../node_modules/vuetify/lib/composables/filter.mjs","../../../../node_modules/vuetify/lib/components/VAutocomplete/VAutocomplete.mjs","../../../../node_modules/vuetify/lib/components/VBadge/VBadge.mjs","../../../../node_modules/vuetify/lib/components/VBanner/VBannerActions.mjs","../../../../node_modules/vuetify/lib/components/VBanner/VBannerText.mjs","../../../../node_modules/vuetify/lib/components/VBanner/VBanner.mjs","../../../../node_modules/vuetify/lib/components/VBottomNavigation/VBottomNavigation.mjs","../../../../node_modules/vuetify/lib/components/VDialog/VDialog.mjs","../../../../node_modules/vuetify/lib/components/VBottomSheet/VBottomSheet.mjs","../../../../node_modules/vuetify/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs","../../../../node_modules/vuetify/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs","../../../../node_modules/vuetify/lib/components/VBreadcrumbs/VBreadcrumbs.mjs","../../../../node_modules/vuetify/lib/components/VCard/VCardActions.mjs","../../../../node_modules/vuetify/lib/components/VCard/VCardSubtitle.mjs","../../../../node_modules/vuetify/lib/components/VCard/VCardTitle.mjs","../../../../node_modules/vuetify/lib/components/VCard/VCardItem.mjs","../../../../node_modules/vuetify/lib/components/VCard/VCardText.mjs","../../../../node_modules/vuetify/lib/components/VCard/VCard.mjs","../../../../node_modules/vuetify/lib/directives/touch/index.mjs","../../../../node_modules/vuetify/lib/components/VWindow/VWindow.mjs","../../../../node_modules/vuetify/lib/components/VCarousel/VCarousel.mjs","../../../../node_modules/vuetify/lib/components/VWindow/VWindowItem.mjs","../../../../node_modules/vuetify/lib/components/VCarousel/VCarouselItem.mjs","../../../../node_modules/vuetify/lib/components/VCode/index.mjs","../../../../node_modules/vuetify/lib/components/VColorPicker/VColorPickerCanvas.mjs","../../../../node_modules/vuetify/lib/components/VColorPicker/util/index.mjs","../../../../node_modules/vuetify/lib/components/VColorPicker/VColorPickerEdit.mjs","../../../../node_modules/vuetify/lib/components/VSlider/slider.mjs","../../../../node_modules/vuetify/lib/components/VSlider/VSliderThumb.mjs","../../../../node_modules/vuetify/lib/components/VSlider/VSliderTrack.mjs","../../../../node_modules/vuetify/lib/components/VSlider/VSlider.mjs","../../../../node_modules/vuetify/lib/components/VColorPicker/VColorPickerPreview.mjs","../../../../node_modules/vuetify/lib/util/colors.mjs","../../../../node_modules/vuetify/lib/components/VColorPicker/VColorPickerSwatches.mjs","../../../../node_modules/vuetify/lib/components/VSheet/VSheet.mjs","../../../../node_modules/vuetify/lib/components/VColorPicker/VColorPicker.mjs","../../../../node_modules/vuetify/lib/components/VCombobox/VCombobox.mjs","../../../../node_modules/vuetify/lib/components/VConfirmEdit/VConfirmEdit.mjs","../../../../node_modules/vuetify/lib/components/VDataTable/composables/expand.mjs","../../../../node_modules/vuetify/lib/components/VDataTable/composables/group.mjs","../../../../node_modules/vuetify/lib/components/VDataTable/composables/options.mjs","../../../../node_modules/vuetify/lib/components/VDataTable/composables/paginate.mjs","../../../../node_modules/vuetify/lib/components/VDataTable/composables/select.mjs","../../../../node_modules/vuetify/lib/components/VDataTable/composables/sort.mjs","../../../../node_modules/vuetify/lib/components/VDataIterator/composables/items.mjs","../../../../node_modules/vuetify/lib/components/VDataIterator/VDataIterator.mjs","../../../../node_modules/vuetify/lib/composables/refs.mjs","../../../../node_modules/vuetify/lib/components/VPagination/VPagination.mjs","../../../../node_modules/vuetify/lib/components/VDataTable/VDataTableFooter.mjs","../../../../node_modules/vuetify/lib/components/VDataTable/VDataTableColumn.mjs","../../../../node_modules/vuetify/lib/components/VDataTable/composables/headers.mjs","../../../../node_modules/vuetify/lib/components/VDataTable/VDataTableHeaders.mjs","../../../../node_modules/vuetify/lib/components/VDataTable/VDataTableGroupHeaderRow.mjs","../../../../node_modules/vuetify/lib/components/VDataTable/VDataTableRow.mjs","../../../../node_modules/vuetify/lib/components/VDataTable/VDataTableRows.mjs","../../../../node_modules/vuetify/lib/components/VTable/VTable.mjs","../../../../node_modules/vuetify/lib/components/VDataTable/composables/items.mjs","../../../../node_modules/vuetify/lib/components/VDataTable/VDataTable.mjs","../../../../node_modules/vuetify/lib/components/VDataTable/VDataTableVirtual.mjs","../../../../node_modules/vuetify/lib/components/VDataTable/VDataTableServer.mjs","../../../../node_modules/vuetify/lib/components/VGrid/VContainer.mjs","../../../../node_modules/vuetify/lib/components/VGrid/VCol.mjs","../../../../node_modules/vuetify/lib/components/VGrid/VRow.mjs","../../../../node_modules/vuetify/lib/components/VGrid/VSpacer.mjs","../../../../node_modules/vuetify/lib/components/VDatePicker/VDatePickerControls.mjs","../../../../node_modules/vuetify/lib/components/VDatePicker/VDatePickerHeader.mjs","../../../../node_modules/vuetify/lib/composables/calendar.mjs","../../../../node_modules/vuetify/lib/components/VDatePicker/VDatePickerMonth.mjs","../../../../node_modules/vuetify/lib/components/VDatePicker/VDatePickerMonths.mjs","../../../../node_modules/vuetify/lib/components/VDatePicker/VDatePickerYears.mjs","../../../../node_modules/vuetify/lib/labs/VPicker/VPickerTitle.mjs","../../../../node_modules/vuetify/lib/labs/VPicker/VPicker.mjs","../../../../node_modules/vuetify/lib/components/VDatePicker/VDatePicker.mjs","../../../../node_modules/vuetify/lib/components/VEmptyState/VEmptyState.mjs","../../../../node_modules/vuetify/lib/components/VExpansionPanel/shared.mjs","../../../../node_modules/vuetify/lib/components/VExpansionPanel/VExpansionPanelText.mjs","../../../../node_modules/vuetify/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs","../../../../node_modules/vuetify/lib/components/VExpansionPanel/VExpansionPanel.mjs","../../../../node_modules/vuetify/lib/components/VExpansionPanel/VExpansionPanels.mjs","../../../../node_modules/vuetify/lib/components/VFab/VFab.mjs","../../../../node_modules/vuetify/lib/components/VFileInput/VFileInput.mjs","../../../../node_modules/vuetify/lib/components/VFooter/VFooter.mjs","../../../../node_modules/vuetify/lib/components/VForm/VForm.mjs","../../../../node_modules/vuetify/lib/components/VHover/VHover.mjs","../../../../node_modules/vuetify/lib/components/VInfiniteScroll/VInfiniteScroll.mjs","../../../../node_modules/vuetify/lib/components/VItemGroup/VItemGroup.mjs","../../../../node_modules/vuetify/lib/components/VItemGroup/VItem.mjs","../../../../node_modules/vuetify/lib/components/VKbd/index.mjs","../../../../node_modules/vuetify/lib/components/VLayout/VLayout.mjs","../../../../node_modules/vuetify/lib/components/VLayout/VLayoutItem.mjs","../../../../node_modules/vuetify/lib/components/VLazy/VLazy.mjs","../../../../node_modules/vuetify/lib/components/VLocaleProvider/VLocaleProvider.mjs","../../../../node_modules/vuetify/lib/components/VMain/VMain.mjs","../../../../node_modules/vuetify/lib/components/VNavigationDrawer/sticky.mjs","../../../../node_modules/vuetify/lib/composables/touch.mjs","../../../../node_modules/vuetify/lib/components/VNavigationDrawer/touch.mjs","../../../../node_modules/vuetify/lib/components/VNavigationDrawer/VNavigationDrawer.mjs","../../../../node_modules/vuetify/lib/components/VNoSsr/VNoSsr.mjs","../../../../node_modules/vuetify/lib/components/VOtpInput/VOtpInput.mjs","../../../../node_modules/vuetify/lib/components/VParallax/VParallax.mjs","../../../../node_modules/vuetify/lib/components/VRadio/VRadio.mjs","../../../../node_modules/vuetify/lib/components/VRadioGroup/VRadioGroup.mjs","../../../../node_modules/vuetify/lib/components/VRangeSlider/VRangeSlider.mjs","../../../../node_modules/vuetify/lib/components/VRating/VRating.mjs","../../../../node_modules/vuetify/lib/components/VSkeletonLoader/VSkeletonLoader.mjs","../../../../node_modules/vuetify/lib/components/VSlideGroup/VSlideGroupItem.mjs","../../../../node_modules/vuetify/lib/components/VSnackbar/VSnackbar.mjs","../../../../node_modules/vuetify/lib/components/VSparkline/util/line.mjs","../../../../node_modules/vuetify/lib/components/VSparkline/VBarline.mjs","../../../../node_modules/vuetify/lib/components/VSparkline/util/path.mjs","../../../../node_modules/vuetify/lib/components/VSparkline/VTrendline.mjs","../../../../node_modules/vuetify/lib/components/VSparkline/VSparkline.mjs","../../../../node_modules/vuetify/lib/components/VSpeedDial/VSpeedDial.mjs","../../../../node_modules/vuetify/lib/components/VStepper/shared.mjs","../../../../node_modules/vuetify/lib/components/VStepper/VStepperActions.mjs","../../../../node_modules/vuetify/lib/components/VStepper/VStepperHeader.mjs","../../../../node_modules/vuetify/lib/components/VStepper/VStepperItem.mjs","../../../../node_modules/vuetify/lib/components/VStepper/VStepperWindow.mjs","../../../../node_modules/vuetify/lib/components/VStepper/VStepperWindowItem.mjs","../../../../node_modules/vuetify/lib/components/VStepper/VStepper.mjs","../../../../node_modules/vuetify/lib/components/VSwitch/VSwitch.mjs","../../../../node_modules/vuetify/lib/components/VSystemBar/VSystemBar.mjs","../../../../node_modules/vuetify/lib/components/VTabs/shared.mjs","../../../../node_modules/vuetify/lib/components/VTabs/VTab.mjs","../../../../node_modules/vuetify/lib/components/VTabs/VTabsWindow.mjs","../../../../node_modules/vuetify/lib/components/VTabs/VTabsWindowItem.mjs","../../../../node_modules/vuetify/lib/components/VTabs/VTabs.mjs","../../../../node_modules/vuetify/lib/components/VTextarea/VTextarea.mjs","../../../../node_modules/vuetify/lib/components/VThemeProvider/VThemeProvider.mjs","../../../../node_modules/vuetify/lib/components/VTimeline/VTimelineDivider.mjs","../../../../node_modules/vuetify/lib/components/VTimeline/VTimelineItem.mjs","../../../../node_modules/vuetify/lib/components/VTimeline/VTimeline.mjs","../../../../node_modules/vuetify/lib/components/VToolbar/VToolbarItems.mjs","../../../../node_modules/vuetify/lib/components/VTooltip/VTooltip.mjs","../../../../node_modules/vuetify/lib/components/VValidation/VValidation.mjs","../../../../node_modules/vuetify/lib/directives/mutate/index.mjs","../../../../node_modules/vuetify/lib/directives/resize/index.mjs","../../../../node_modules/vuetify/lib/directives/scroll/index.mjs","../../../../node_modules/vuetify/lib/composables/directiveComponent.mjs","../../../../node_modules/vuetify/lib/directives/tooltip/index.mjs","../../src/main.ts"],"sourcesContent":["// vue-skuilder/packages/standalone-ui/src/ENVIRONMENT_VARS.ts\ntype ProtocolString = 'http' | 'https';\n\nimport config from '../skuilder.config.json';\n\nexport interface Environment {\n /**\n * URL to the remote couchDB instance that the app connects to.\n * Loaded from VITE_COUCHDB_SERVER_URL environment variable.\n */\n COUCHDB_SERVER_URL: string;\n\n /**\n * Protocol for the CouchDB server.\n * Loaded from VITE_COUCHDB_SERVER_PROTOCOL environment variable.\n */\n COUCHDB_SERVER_PROTOCOL: ProtocolString;\n\n /**\n * Static course IDs to load.\n * Loaded from VITE_STATIC_COURSE_IDS environment variable (comma-separated string).\n */\n STATIC_COURSE_ID: string;\n\n /**\n * Type of data layer to use - couchdb live backend or\n * statically built and served from the app.\n */\n DATALAYER_TYPE: 'couch' | 'static';\n\n /**\n * A global flag to enable debug messaging mode.\n * Loaded from VITE_DEBUG environment variable ('true' or 'false').\n */\n DEBUG: boolean;\n}\n\n// Default fallback values if environment variables are not set\nconst defaultEnv: Environment = {\n COUCHDB_SERVER_URL: 'localhost:5984/', // Sensible default for local dev\n COUCHDB_SERVER_PROTOCOL: 'http',\n STATIC_COURSE_ID: 'not_set',\n DATALAYER_TYPE: 'couch',\n DEBUG: false, // Default to false if VITE_DEBUG is not 'true'\n};\n\n// --- Read Environment Variables using Vite's import.meta.env ---\n// Vite replaces these variables at build time with the values from your .env files.\n\nif (config.dataLayerType !== 'couch' && config.dataLayerType !== 'static') {\n throw new Error('Invalid data layer type');\n}\n\nconst ENV: Environment = {\n // Use the value from import.meta.env if available, otherwise use the default\n COUCHDB_SERVER_URL: import.meta.env.VITE_COUCHDB_SERVER || defaultEnv.COUCHDB_SERVER_URL,\n\n // Ensure the protocol is one of the allowed types\n COUCHDB_SERVER_PROTOCOL: (import.meta.env.VITE_COUCHDB_PROTOCOL === 'https'\n ? 'https'\n : 'http') as ProtocolString,\n\n STATIC_COURSE_ID: config.course,\n\n DATALAYER_TYPE: config.dataLayerType,\n\n // Environment variables are always strings, so compare VITE_DEBUG to 'true'\n DEBUG: import.meta.env.VITE_DEBUG === 'true',\n};\n\n// Optional: Log the resolved environment in development mode for debugging\nif (import.meta.env.DEV) {\n console.log('Resolved Environment Variables:', ENV);\n}\n\nexport default ENV;\n","// Utilities\nimport { effectScope, onScopeDispose, watch } from 'vue';\n\n// Types\n\nexport function useToggleScope(source, fn) {\n let scope;\n function start() {\n scope = effectScope();\n scope.run(() => fn.length ? fn(() => {\n scope?.stop();\n start();\n }) : fn());\n }\n watch(source, active => {\n if (active && !scope) {\n start();\n } else if (!active) {\n scope?.stop();\n scope = undefined;\n }\n }, {\n immediate: true\n });\n onScopeDispose(() => {\n scope?.stop();\n });\n}\n//# sourceMappingURL=toggleScope.mjs.map","export const IN_BROWSER = typeof window !== 'undefined';\nexport const SUPPORTS_INTERSECTION = IN_BROWSER && 'IntersectionObserver' in window;\nexport const SUPPORTS_TOUCH = IN_BROWSER && ('ontouchstart' in window || window.navigator.maxTouchPoints > 0);\nexport const SUPPORTS_EYE_DROPPER = IN_BROWSER && 'EyeDropper' in window;\n//# sourceMappingURL=globals.mjs.map","function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n// Utilities\nimport { capitalize, Comment, computed, Fragment, isVNode, reactive, readonly, shallowRef, toRefs, unref, watchEffect } from 'vue';\nimport { IN_BROWSER } from \"./globals.mjs\"; // Types\nexport function getNestedValue(obj, path, fallback) {\n const last = path.length - 1;\n if (last < 0) return obj === undefined ? fallback : obj;\n for (let i = 0; i < last; i++) {\n if (obj == null) {\n return fallback;\n }\n obj = obj[path[i]];\n }\n if (obj == null) return fallback;\n return obj[path[last]] === undefined ? fallback : obj[path[last]];\n}\nexport function deepEqual(a, b) {\n if (a === b) return true;\n if (a instanceof Date && b instanceof Date && a.getTime() !== b.getTime()) {\n // If the values are Date, compare them as timestamps\n return false;\n }\n if (a !== Object(a) || b !== Object(b)) {\n // If the values aren't objects, they were already checked for equality\n return false;\n }\n const props = Object.keys(a);\n if (props.length !== Object.keys(b).length) {\n // Different number of props, don't bother to check\n return false;\n }\n return props.every(p => deepEqual(a[p], b[p]));\n}\nexport function getObjectValueByPath(obj, path, fallback) {\n // credit: http://stackoverflow.com/questions/6491463/accessing-nested-javascript-objects-with-string-key#comment55278413_6491621\n if (obj == null || !path || typeof path !== 'string') return fallback;\n if (obj[path] !== undefined) return obj[path];\n path = path.replace(/\\[(\\w+)\\]/g, '.$1'); // convert indexes to properties\n path = path.replace(/^\\./, ''); // strip a leading dot\n return getNestedValue(obj, path.split('.'), fallback);\n}\nexport function getPropertyFromItem(item, property, fallback) {\n if (property === true) return item === undefined ? fallback : item;\n if (property == null || typeof property === 'boolean') return fallback;\n if (item !== Object(item)) {\n if (typeof property !== 'function') return fallback;\n const value = property(item, fallback);\n return typeof value === 'undefined' ? fallback : value;\n }\n if (typeof property === 'string') return getObjectValueByPath(item, property, fallback);\n if (Array.isArray(property)) return getNestedValue(item, property, fallback);\n if (typeof property !== 'function') return fallback;\n const value = property(item, fallback);\n return typeof value === 'undefined' ? fallback : value;\n}\nexport function createRange(length) {\n let start = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return Array.from({\n length\n }, (v, k) => start + k);\n}\nexport function getZIndex(el) {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return 0;\n const index = +window.getComputedStyle(el).getPropertyValue('z-index');\n if (!index) return getZIndex(el.parentNode);\n return index;\n}\nexport function convertToUnit(str) {\n let unit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'px';\n if (str == null || str === '') {\n return undefined;\n } else if (isNaN(+str)) {\n return String(str);\n } else if (!isFinite(+str)) {\n return undefined;\n } else {\n return `${Number(str)}${unit}`;\n }\n}\nexport function isObject(obj) {\n return obj !== null && typeof obj === 'object' && !Array.isArray(obj);\n}\nexport function isPlainObject(obj) {\n let proto;\n return obj !== null && typeof obj === 'object' && ((proto = Object.getPrototypeOf(obj)) === Object.prototype || proto === null);\n}\nexport function refElement(obj) {\n if (obj && '$el' in obj) {\n const el = obj.$el;\n if (el?.nodeType === Node.TEXT_NODE) {\n // Multi-root component, use the first element\n return el.nextElementSibling;\n }\n return el;\n }\n return obj;\n}\n\n// KeyboardEvent.keyCode aliases\nexport const keyCodes = Object.freeze({\n enter: 13,\n tab: 9,\n delete: 46,\n esc: 27,\n space: 32,\n up: 38,\n down: 40,\n left: 37,\n right: 39,\n end: 35,\n home: 36,\n del: 46,\n backspace: 8,\n insert: 45,\n pageup: 33,\n pagedown: 34,\n shift: 16\n});\nexport const keyValues = Object.freeze({\n enter: 'Enter',\n tab: 'Tab',\n delete: 'Delete',\n esc: 'Escape',\n space: 'Space',\n up: 'ArrowUp',\n down: 'ArrowDown',\n left: 'ArrowLeft',\n right: 'ArrowRight',\n end: 'End',\n home: 'Home',\n del: 'Delete',\n backspace: 'Backspace',\n insert: 'Insert',\n pageup: 'PageUp',\n pagedown: 'PageDown',\n shift: 'Shift'\n});\nexport function keys(o) {\n return Object.keys(o);\n}\nexport function has(obj, key) {\n return key.every(k => obj.hasOwnProperty(k));\n}\n// Array of keys\nexport function pick(obj, paths) {\n const found = {};\n for (const key of paths) {\n if (Object.hasOwn(obj, key)) {\n found[key] = obj[key];\n }\n }\n return found;\n}\n\n// Array of keys\n\n// Array of keys or RegExp to test keys against\n\nexport function pickWithRest(obj, paths, exclude) {\n const found = Object.create(null);\n const rest = Object.create(null);\n for (const key in obj) {\n if (paths.some(path => path instanceof RegExp ? path.test(key) : path === key) && !exclude?.some(path => path === key)) {\n found[key] = obj[key];\n } else {\n rest[key] = obj[key];\n }\n }\n return [found, rest];\n}\nexport function omit(obj, exclude) {\n const clone = {\n ...obj\n };\n exclude.forEach(prop => delete clone[prop]);\n return clone;\n}\nconst onRE = /^on[^a-z]/;\nexport const isOn = key => onRE.test(key);\nconst bubblingEvents = ['onAfterscriptexecute', 'onAnimationcancel', 'onAnimationend', 'onAnimationiteration', 'onAnimationstart', 'onAuxclick', 'onBeforeinput', 'onBeforescriptexecute', 'onChange', 'onClick', 'onCompositionend', 'onCompositionstart', 'onCompositionupdate', 'onContextmenu', 'onCopy', 'onCut', 'onDblclick', 'onFocusin', 'onFocusout', 'onFullscreenchange', 'onFullscreenerror', 'onGesturechange', 'onGestureend', 'onGesturestart', 'onGotpointercapture', 'onInput', 'onKeydown', 'onKeypress', 'onKeyup', 'onLostpointercapture', 'onMousedown', 'onMousemove', 'onMouseout', 'onMouseover', 'onMouseup', 'onMousewheel', 'onPaste', 'onPointercancel', 'onPointerdown', 'onPointerenter', 'onPointerleave', 'onPointermove', 'onPointerout', 'onPointerover', 'onPointerup', 'onReset', 'onSelect', 'onSubmit', 'onTouchcancel', 'onTouchend', 'onTouchmove', 'onTouchstart', 'onTransitioncancel', 'onTransitionend', 'onTransitionrun', 'onTransitionstart', 'onWheel'];\nconst compositionIgnoreKeys = ['ArrowUp', 'ArrowDown', 'ArrowRight', 'ArrowLeft', 'Enter', 'Escape', 'Tab', ' '];\nexport function isComposingIgnoreKey(e) {\n return e.isComposing && compositionIgnoreKeys.includes(e.key);\n}\n\n/**\n * Filter attributes that should be applied to\n * the root element of an input component. Remaining\n * attributes should be passed to the <input> element inside.\n */\nexport function filterInputAttrs(attrs) {\n const [events, props] = pickWithRest(attrs, [onRE]);\n const inputEvents = omit(events, bubblingEvents);\n const [rootAttrs, inputAttrs] = pickWithRest(props, ['class', 'style', 'id', /^data-/]);\n Object.assign(rootAttrs, events);\n Object.assign(inputAttrs, inputEvents);\n return [rootAttrs, inputAttrs];\n}\n\n/**\n * Returns the set difference of B and A, i.e. the set of elements in B but not in A\n */\nexport function arrayDiff(a, b) {\n const diff = [];\n for (let i = 0; i < b.length; i++) {\n if (!a.includes(b[i])) diff.push(b[i]);\n }\n return diff;\n}\nexport function wrapInArray(v) {\n return v == null ? [] : Array.isArray(v) ? v : [v];\n}\nexport function defaultFilter(value, search, item) {\n return value != null && search != null && typeof value !== 'boolean' && value.toString().toLocaleLowerCase().indexOf(search.toLocaleLowerCase()) !== -1;\n}\nexport function debounce(fn, delay) {\n let timeoutId = 0;\n const wrap = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => fn(...args), unref(delay));\n };\n wrap.clear = () => {\n clearTimeout(timeoutId);\n };\n wrap.immediate = fn;\n return wrap;\n}\nexport function throttle(fn, limit) {\n let throttling = false;\n return function () {\n if (!throttling) {\n throttling = true;\n setTimeout(() => throttling = false, limit);\n return fn(...arguments);\n }\n };\n}\nexport function clamp(value) {\n let min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n let max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n return Math.max(min, Math.min(max, value));\n}\nexport function getDecimals(value) {\n const trimmedStr = value.toString().trim();\n return trimmedStr.includes('.') ? trimmedStr.length - trimmedStr.indexOf('.') - 1 : 0;\n}\nexport function padEnd(str, length) {\n let char = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '0';\n return str + char.repeat(Math.max(0, length - str.length));\n}\nexport function padStart(str, length) {\n let char = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '0';\n return char.repeat(Math.max(0, length - str.length)) + str;\n}\nexport function chunk(str) {\n let size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n const chunked = [];\n let index = 0;\n while (index < str.length) {\n chunked.push(str.substr(index, size));\n index += size;\n }\n return chunked;\n}\nexport function chunkArray(array) {\n let size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n return Array.from({\n length: Math.ceil(array.length / size)\n }, (v, i) => array.slice(i * size, i * size + size));\n}\nexport function humanReadableFileSize(bytes) {\n let base = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1000;\n if (bytes < base) {\n return `${bytes} B`;\n }\n const prefix = base === 1024 ? ['Ki', 'Mi', 'Gi'] : ['k', 'M', 'G'];\n let unit = -1;\n while (Math.abs(bytes) >= base && unit < prefix.length - 1) {\n bytes /= base;\n ++unit;\n }\n return `${bytes.toFixed(1)} ${prefix[unit]}B`;\n}\nexport function mergeDeep() {\n let source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let arrayFn = arguments.length > 2 ? arguments[2] : undefined;\n const out = {};\n for (const key in source) {\n out[key] = source[key];\n }\n for (const key in target) {\n const sourceProperty = source[key];\n const targetProperty = target[key];\n\n // Only continue deep merging if\n // both properties are plain objects\n if (isPlainObject(sourceProperty) && isPlainObject(targetProperty)) {\n out[key] = mergeDeep(sourceProperty, targetProperty, arrayFn);\n continue;\n }\n if (arrayFn && Array.isArray(sourceProperty) && Array.isArray(targetProperty)) {\n out[key] = arrayFn(sourceProperty, targetProperty);\n continue;\n }\n out[key] = targetProperty;\n }\n return out;\n}\nexport function flattenFragments(nodes) {\n return nodes.map(node => {\n if (node.type === Fragment) {\n return flattenFragments(node.children);\n } else {\n return node;\n }\n }).flat();\n}\nexport function toKebabCase() {\n let str = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n if (toKebabCase.cache.has(str)) return toKebabCase.cache.get(str);\n const kebab = str.replace(/[^a-z]/gi, '-').replace(/\\B([A-Z])/g, '-$1').toLowerCase();\n toKebabCase.cache.set(str, kebab);\n return kebab;\n}\ntoKebabCase.cache = new Map();\nexport function findChildrenWithProvide(key, vnode) {\n if (!vnode || typeof vnode !== 'object') return [];\n if (Array.isArray(vnode)) {\n return vnode.map(child => findChildrenWithProvide(key, child)).flat(1);\n } else if (vnode.suspense) {\n return findChildrenWithProvide(key, vnode.ssContent);\n } else if (Array.isArray(vnode.children)) {\n return vnode.children.map(child => findChildrenWithProvide(key, child)).flat(1);\n } else if (vnode.component) {\n if (Object.getOwnPropertySymbols(vnode.component.provides).includes(key)) {\n return [vnode.component];\n } else if (vnode.component.subTree) {\n return findChildrenWithProvide(key, vnode.component.subTree).flat(1);\n }\n }\n return [];\n}\nvar _arr = /*#__PURE__*/new WeakMap();\nvar _pointer = /*#__PURE__*/new WeakMap();\nexport class CircularBuffer {\n constructor(size) {\n _classPrivateFieldInitSpec(this, _arr, []);\n _classPrivateFieldInitSpec(this, _pointer, 0);\n this.size = size;\n }\n push(val) {\n _classPrivateFieldGet(_arr, this)[_classPrivateFieldGet(_pointer, this)] = val;\n _classPrivateFieldSet(_pointer, this, (_classPrivateFieldGet(_pointer, this) + 1) % this.size);\n }\n values() {\n return _classPrivateFieldGet(_arr, this).slice(_classPrivateFieldGet(_pointer, this)).concat(_classPrivateFieldGet(_arr, this).slice(0, _classPrivateFieldGet(_pointer, this)));\n }\n}\nexport function getEventCoordinates(e) {\n if ('touches' in e) {\n return {\n clientX: e.touches[0].clientX,\n clientY: e.touches[0].clientY\n };\n }\n return {\n clientX: e.clientX,\n clientY: e.clientY\n };\n}\n\n// Only allow a single return type\n\n/**\n * Convert a computed ref to a record of refs.\n * The getter function must always return an object with the same keys.\n */\n\nexport function destructComputed(getter) {\n const refs = reactive({});\n const base = computed(getter);\n watchEffect(() => {\n for (const key in base.value) {\n refs[key] = base.value[key];\n }\n }, {\n flush: 'sync'\n });\n return toRefs(refs);\n}\n\n/** Array.includes but value can be any type */\nexport function includes(arr, val) {\n return arr.includes(val);\n}\nexport function eventName(propName) {\n return propName[2].toLowerCase() + propName.slice(3);\n}\n\n// TODO: this should be an array but vue's types don't accept arrays: vuejs/core#8025\n\nexport const EventProp = () => [Function, Array];\nexport function hasEvent(props, name) {\n name = 'on' + capitalize(name);\n return !!(props[name] || props[`${name}Once`] || props[`${name}Capture`] || props[`${name}OnceCapture`] || props[`${name}CaptureOnce`]);\n}\nexport function callEvent(handler) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n if (Array.isArray(handler)) {\n for (const h of handler) {\n h(...args);\n }\n } else if (typeof handler === 'function') {\n handler(...args);\n }\n}\nexport function focusableChildren(el) {\n let filterByTabIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n const targets = ['button', '[href]', 'input:not([type=\"hidden\"])', 'select', 'textarea', '[tabindex]'].map(s => `${s}${filterByTabIndex ? ':not([tabindex=\"-1\"])' : ''}:not([disabled])`).join(', ');\n return [...el.querySelectorAll(targets)];\n}\nexport function getNextElement(elements, location, condition) {\n let _el;\n let idx = elements.indexOf(document.activeElement);\n const inc = location === 'next' ? 1 : -1;\n do {\n idx += inc;\n _el = elements[idx];\n } while ((!_el || _el.offsetParent == null || !(condition?.(_el) ?? true)) && idx < elements.length && idx >= 0);\n return _el;\n}\nexport function focusChild(el, location) {\n const focusable = focusableChildren(el);\n if (!location) {\n if (el === document.activeElement || !el.contains(document.activeElement)) {\n focusable[0]?.focus();\n }\n } else if (location === 'first') {\n focusable[0]?.focus();\n } else if (location === 'last') {\n focusable.at(-1)?.focus();\n } else if (typeof location === 'number') {\n focusable[location]?.focus();\n } else {\n const _el = getNextElement(focusable, location);\n if (_el) _el.focus();else focusChild(el, location === 'next' ? 'first' : 'last');\n }\n}\nexport function isEmpty(val) {\n return val === null || val === undefined || typeof val === 'string' && val.trim() === '';\n}\nexport function noop() {}\n\n/** Returns null if the selector is not supported or we can't check */\nexport function matchesSelector(el, selector) {\n const supportsSelector = IN_BROWSER && typeof CSS !== 'undefined' && typeof CSS.supports !== 'undefined' && CSS.supports(`selector(${selector})`);\n if (!supportsSelector) return null;\n try {\n return !!el && el.matches(selector);\n } catch (err) {\n return null;\n }\n}\nexport function ensureValidVNode(vnodes) {\n return vnodes.some(child => {\n if (!isVNode(child)) return true;\n if (child.type === Comment) return false;\n return child.type !== Fragment || ensureValidVNode(child.children);\n }) ? vnodes : null;\n}\nexport function defer(timeout, cb) {\n if (!IN_BROWSER || timeout === 0) {\n cb();\n return () => {};\n }\n const timeoutId = window.setTimeout(cb, timeout);\n return () => window.clearTimeout(timeoutId);\n}\nexport function eagerComputed(fn, options) {\n const result = shallowRef();\n watchEffect(() => {\n result.value = fn();\n }, {\n flush: 'sync',\n ...options\n });\n return readonly(result);\n}\nexport function isClickInsideElement(event, targetDiv) {\n const mouseX = event.clientX;\n const mouseY = event.clientY;\n const divRect = targetDiv.getBoundingClientRect();\n const divLeft = divRect.left;\n const divTop = divRect.top;\n const divRight = divRect.right;\n const divBottom = divRect.bottom;\n return mouseX >= divLeft && mouseX <= divRight && mouseY >= divTop && mouseY <= divBottom;\n}\nexport function templateRef() {\n const el = shallowRef();\n const fn = target => {\n el.value = target;\n };\n Object.defineProperty(fn, 'value', {\n enumerable: true,\n get: () => el.value,\n set: val => el.value = val\n });\n Object.defineProperty(fn, 'el', {\n enumerable: true,\n get: () => refElement(el.value)\n });\n return fn;\n}\nexport function checkPrintable(e) {\n const isPrintableChar = e.key.length === 1;\n const noModifier = !e.ctrlKey && !e.metaKey && !e.altKey;\n return isPrintableChar && noModifier;\n}\nexport function isPrimitive(value) {\n return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean' || typeof value === 'bigint';\n}\n//# sourceMappingURL=helpers.mjs.map","// Utilities\nimport { includes } from \"./helpers.mjs\";\nconst block = ['top', 'bottom'];\nconst inline = ['start', 'end', 'left', 'right'];\n/** Parse a raw anchor string into an object */\nexport function parseAnchor(anchor, isRtl) {\n let [side, align] = anchor.split(' ');\n if (!align) {\n align = includes(block, side) ? 'start' : includes(inline, side) ? 'top' : 'center';\n }\n return {\n side: toPhysical(side, isRtl),\n align: toPhysical(align, isRtl)\n };\n}\nexport function toPhysical(str, isRtl) {\n if (str === 'start') return isRtl ? 'right' : 'left';\n if (str === 'end') return isRtl ? 'left' : 'right';\n return str;\n}\nexport function flipSide(anchor) {\n return {\n side: {\n center: 'center',\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left'\n }[anchor.side],\n align: anchor.align\n };\n}\nexport function flipAlign(anchor) {\n return {\n side: anchor.side,\n align: {\n center: 'center',\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left'\n }[anchor.align]\n };\n}\nexport function flipCorner(anchor) {\n return {\n side: anchor.align,\n align: anchor.side\n };\n}\nexport function getAxis(anchor) {\n return includes(block, anchor.side) ? 'y' : 'x';\n}\n//# sourceMappingURL=anchor.mjs.map","export class Box {\n constructor(_ref) {\n let {\n x,\n y,\n width,\n height\n } = _ref;\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n }\n get top() {\n return this.y;\n }\n get bottom() {\n return this.y + this.height;\n }\n get left() {\n return this.x;\n }\n get right() {\n return this.x + this.width;\n }\n}\nexport function getOverflow(a, b) {\n return {\n x: {\n before: Math.max(0, b.left - a.left),\n after: Math.max(0, a.right - b.right)\n },\n y: {\n before: Math.max(0, b.top - a.top),\n after: Math.max(0, a.bottom - b.bottom)\n }\n };\n}\nexport function getTargetBox(target) {\n if (Array.isArray(target)) {\n return new Box({\n x: target[0],\n y: target[1],\n width: 0,\n height: 0\n });\n } else {\n return target.getBoundingClientRect();\n }\n}\n//# sourceMappingURL=box.mjs.map","// Utilities\nimport { Box } from \"./box.mjs\";\n/** @see https://stackoverflow.com/a/57876601/2074736 */\nexport function nullifyTransforms(el) {\n const rect = el.getBoundingClientRect();\n const style = getComputedStyle(el);\n const tx = style.transform;\n if (tx) {\n let ta, sx, sy, dx, dy;\n if (tx.startsWith('matrix3d(')) {\n ta = tx.slice(9, -1).split(/, /);\n sx = +ta[0];\n sy = +ta[5];\n dx = +ta[12];\n dy = +ta[13];\n } else if (tx.startsWith('matrix(')) {\n ta = tx.slice(7, -1).split(/, /);\n sx = +ta[0];\n sy = +ta[3];\n dx = +ta[4];\n dy = +ta[5];\n } else {\n return new Box(rect);\n }\n const to = style.transformOrigin;\n const x = rect.x - dx - (1 - sx) * parseFloat(to);\n const y = rect.y - dy - (1 - sy) * parseFloat(to.slice(to.indexOf(' ') + 1));\n const w = sx ? rect.width / sx : el.offsetWidth + 1;\n const h = sy ? rect.height / sy : el.offsetHeight + 1;\n return new Box({\n x,\n y,\n width: w,\n height: h\n });\n } else {\n return new Box(rect);\n }\n}\nexport function animate(el, keyframes, options) {\n if (typeof el.animate === 'undefined') return {\n finished: Promise.resolve()\n };\n let animation;\n try {\n animation = el.animate(keyframes, options);\n } catch (err) {\n return {\n finished: Promise.resolve()\n };\n }\n if (typeof animation.finished === 'undefined') {\n animation.finished = new Promise(resolve => {\n animation.onfinish = () => {\n resolve(animation);\n };\n });\n }\n return animation;\n}\n//# sourceMappingURL=animation.mjs.map","// Utilities\nimport { eventName, isOn } from \"./helpers.mjs\";\nconst handlers = new WeakMap();\nexport function bindProps(el, props) {\n Object.keys(props).forEach(k => {\n if (isOn(k)) {\n const name = eventName(k);\n const handler = handlers.get(el);\n if (props[k] == null) {\n handler?.forEach(v => {\n const [n, fn] = v;\n if (n === name) {\n el.removeEventListener(name, fn);\n handler.delete(v);\n }\n });\n } else if (!handler || ![...handler]?.some(v => v[0] === name && v[1] === props[k])) {\n el.addEventListener(name, props[k]);\n const _handler = handler || new Set();\n _handler.add([name, props[k]]);\n if (!handlers.has(el)) handlers.set(el, _handler);\n }\n } else {\n if (props[k] == null) {\n el.removeAttribute(k);\n } else {\n el.setAttribute(k, props[k]);\n }\n }\n });\n}\nexport function unbindProps(el, props) {\n Object.keys(props).forEach(k => {\n if (isOn(k)) {\n const name = eventName(k);\n const handler = handlers.get(el);\n handler?.forEach(v => {\n const [n, fn] = v;\n if (n === name) {\n el.removeEventListener(name, fn);\n handler.delete(v);\n }\n });\n } else {\n el.removeAttribute(k);\n }\n });\n}\n//# sourceMappingURL=bindProps.mjs.map","/**\n * WCAG 3.0 APCA perceptual contrast algorithm from https://github.com/Myndex/SAPC-APCA\n * @licence https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * @see https://www.w3.org/WAI/GL/task-forces/silver/wiki/Visual_Contrast_of_Text_Subgroup\n */\n// Types\n\n// MAGICAL NUMBERS\n\n// sRGB Conversion to Relative Luminance (Y)\n\n// Transfer Curve (aka \"Gamma\") for sRGB linearization\n// Simple power curve vs piecewise described in docs\n// Essentially, 2.4 best models actual display\n// characteristics in combination with the total method\nconst mainTRC = 2.4;\nconst Rco = 0.2126729; // sRGB Red Coefficient (from matrix)\nconst Gco = 0.7151522; // sRGB Green Coefficient (from matrix)\nconst Bco = 0.0721750; // sRGB Blue Coefficient (from matrix)\n\n// For Finding Raw SAPC Contrast from Relative Luminance (Y)\n\n// Constants for SAPC Power Curve Exponents\n// One pair for normal text, and one for reverse\n// These are the \"beating heart\" of SAPC\nconst normBG = 0.55;\nconst normTXT = 0.58;\nconst revTXT = 0.57;\nconst revBG = 0.62;\n\n// For Clamping and Scaling Values\n\nconst blkThrs = 0.03; // Level that triggers the soft black clamp\nconst blkClmp = 1.45; // Exponent for the soft black clamp curve\nconst deltaYmin = 0.0005; // Lint trap\nconst scaleBoW = 1.25; // Scaling for dark text on light\nconst scaleWoB = 1.25; // Scaling for light text on dark\nconst loConThresh = 0.078; // Threshold for new simple offset scale\nconst loConFactor = 12.82051282051282; // = 1/0.078,\nconst loConOffset = 0.06; // The simple offset\nconst loClip = 0.001; // Output clip (lint trap #2)\n\nexport function APCAcontrast(text, background) {\n // Linearize sRGB\n const Rtxt = (text.r / 255) ** mainTRC;\n const Gtxt = (text.g / 255) ** mainTRC;\n const Btxt = (text.b / 255) ** mainTRC;\n const Rbg = (background.r / 255) ** mainTRC;\n const Gbg = (background.g / 255) ** mainTRC;\n const Bbg = (background.b / 255) ** mainTRC;\n\n // Apply the standard coefficients and sum to Y\n let Ytxt = Rtxt * Rco + Gtxt * Gco + Btxt * Bco;\n let Ybg = Rbg * Rco + Gbg * Gco + Bbg * Bco;\n\n // Soft clamp Y when near black.\n // Now clamping all colors to prevent crossover errors\n if (Ytxt <= blkThrs) Ytxt += (blkThrs - Ytxt) ** blkClmp;\n if (Ybg <= blkThrs) Ybg += (blkThrs - Ybg) ** blkClmp;\n\n // Return 0 Early for extremely low ∆Y (lint trap #1)\n if (Math.abs(Ybg - Ytxt) < deltaYmin) return 0.0;\n\n // SAPC CONTRAST\n\n let outputContrast; // For weighted final values\n if (Ybg > Ytxt) {\n // For normal polarity, black text on white\n // Calculate the SAPC contrast value and scale\n\n const SAPC = (Ybg ** normBG - Ytxt ** normTXT) * scaleBoW;\n\n // NEW! SAPC SmoothScale™\n // Low Contrast Smooth Scale Rollout to prevent polarity reversal\n // and also a low clip for very low contrasts (lint trap #2)\n // much of this is for very low contrasts, less than 10\n // therefore for most reversing needs, only loConOffset is important\n outputContrast = SAPC < loClip ? 0.0 : SAPC < loConThresh ? SAPC - SAPC * loConFactor * loConOffset : SAPC - loConOffset;\n } else {\n // For reverse polarity, light text on dark\n // WoB should always return negative value.\n\n const SAPC = (Ybg ** revBG - Ytxt ** revTXT) * scaleWoB;\n outputContrast = SAPC > -loClip ? 0.0 : SAPC > -loConThresh ? SAPC - SAPC * loConFactor * loConOffset : SAPC + loConOffset;\n }\n return outputContrast * 100;\n}\n//# sourceMappingURL=APCA.mjs.map","/* eslint-disable no-console */\n\n// Utilities\nimport { warn } from 'vue';\nexport function consoleWarn(message) {\n warn(`Vuetify: ${message}`);\n}\nexport function consoleError(message) {\n warn(`Vuetify error: ${message}`);\n}\nexport function deprecate(original, replacement) {\n replacement = Array.isArray(replacement) ? replacement.slice(0, -1).map(s => `'${s}'`).join(', ') + ` or '${replacement.at(-1)}'` : `'${replacement}'`;\n warn(`[Vuetify UPGRADE] '${original}' is deprecated, use ${replacement} instead.`);\n}\nexport function breaking(original, replacement) {\n // warn(`[Vuetify BREAKING] '${original}' has been removed, use '${replacement}' instead. For more information, see the upgrade guide https://github.com/vuetifyjs/vuetify/releases/tag/v2.0.0#user-content-upgrade-guide`)\n}\nexport function removed(original) {\n // warn(`[Vuetify REMOVED] '${original}' has been removed. You can safely omit it.`)\n}\n//# sourceMappingURL=console.mjs.map","// Types\n\nconst delta = 0.20689655172413793; // 6÷29\n\nconst cielabForwardTransform = t => t > delta ** 3 ? Math.cbrt(t) : t / (3 * delta ** 2) + 4 / 29;\nconst cielabReverseTransform = t => t > delta ? t ** 3 : 3 * delta ** 2 * (t - 4 / 29);\nexport function fromXYZ(xyz) {\n const transform = cielabForwardTransform;\n const transformedY = transform(xyz[1]);\n return [116 * transformedY - 16, 500 * (transform(xyz[0] / 0.95047) - transformedY), 200 * (transformedY - transform(xyz[2] / 1.08883))];\n}\nexport function toXYZ(lab) {\n const transform = cielabReverseTransform;\n const Ln = (lab[0] + 16) / 116;\n return [transform(Ln + lab[1] / 500) * 0.95047, transform(Ln), transform(Ln - lab[2] / 200) * 1.08883];\n}\n//# sourceMappingURL=transformCIELAB.mjs.map","// Utilities\nimport { clamp } from \"../helpers.mjs\"; // Types\n// For converting XYZ to sRGB\nconst srgbForwardMatrix = [[3.2406, -1.5372, -0.4986], [-0.9689, 1.8758, 0.0415], [0.0557, -0.2040, 1.0570]];\n\n// Forward gamma adjust\nconst srgbForwardTransform = C => C <= 0.0031308 ? C * 12.92 : 1.055 * C ** (1 / 2.4) - 0.055;\n\n// For converting sRGB to XYZ\nconst srgbReverseMatrix = [[0.4124, 0.3576, 0.1805], [0.2126, 0.7152, 0.0722], [0.0193, 0.1192, 0.9505]];\n\n// Reverse gamma adjust\nconst srgbReverseTransform = C => C <= 0.04045 ? C / 12.92 : ((C + 0.055) / 1.055) ** 2.4;\nexport function fromXYZ(xyz) {\n const rgb = Array(3);\n const transform = srgbForwardTransform;\n const matrix = srgbForwardMatrix;\n\n // Matrix transform, then gamma adjustment\n for (let i = 0; i < 3; ++i) {\n // Rescale back to [0, 255]\n rgb[i] = Math.round(clamp(transform(matrix[i][0] * xyz[0] + matrix[i][1] * xyz[1] + matrix[i][2] * xyz[2])) * 255);\n }\n return {\n r: rgb[0],\n g: rgb[1],\n b: rgb[2]\n };\n}\nexport function toXYZ(_ref) {\n let {\n r,\n g,\n b\n } = _ref;\n const xyz = [0, 0, 0];\n const transform = srgbReverseTransform;\n const matrix = srgbReverseMatrix;\n\n // Rescale from [0, 255] to [0, 1] then adjust sRGB gamma to linear RGB\n r = transform(r / 255);\n g = transform(g / 255);\n b = transform(b / 255);\n\n // Matrix color space transform\n for (let i = 0; i < 3; ++i) {\n xyz[i] = matrix[i][0] * r + matrix[i][1] * g + matrix[i][2] * b;\n }\n return xyz;\n}\n//# sourceMappingURL=transformSRGB.mjs.map","// Utilities\nimport { APCAcontrast } from \"./color/APCA.mjs\";\nimport { consoleWarn } from \"./console.mjs\";\nimport { chunk, has, padEnd } from \"./helpers.mjs\";\nimport * as CIELAB from \"./color/transformCIELAB.mjs\";\nimport * as sRGB from \"./color/transformSRGB.mjs\"; // Types\nexport function isCssColor(color) {\n return !!color && /^(#|var\\(--|(rgb|hsl)a?\\()/.test(color);\n}\nexport function isParsableColor(color) {\n return isCssColor(color) && !/^((rgb|hsl)a?\\()?var\\(--/.test(color);\n}\nconst cssColorRe = /^(?<fn>(?:rgb|hsl)a?)\\((?<values>.+)\\)/;\nconst mappers = {\n rgb: (r, g, b, a) => ({\n r,\n g,\n b,\n a\n }),\n rgba: (r, g, b, a) => ({\n r,\n g,\n b,\n a\n }),\n hsl: (h, s, l, a) => HSLtoRGB({\n h,\n s,\n l,\n a\n }),\n hsla: (h, s, l, a) => HSLtoRGB({\n h,\n s,\n l,\n a\n }),\n hsv: (h, s, v, a) => HSVtoRGB({\n h,\n s,\n v,\n a\n }),\n hsva: (h, s, v, a) => HSVtoRGB({\n h,\n s,\n v,\n a\n })\n};\nexport function parseColor(color) {\n if (typeof color === 'number') {\n if (isNaN(color) || color < 0 || color > 0xFFFFFF) {\n // int can't have opacity\n consoleWarn(`'${color}' is not a valid hex color`);\n }\n return {\n r: (color & 0xFF0000) >> 16,\n g: (color & 0xFF00) >> 8,\n b: color & 0xFF\n };\n } else if (typeof color === 'string' && cssColorRe.test(color)) {\n const {\n groups\n } = color.match(cssColorRe);\n const {\n fn,\n values\n } = groups;\n const realValues = values.split(/,\\s*/).map(v => {\n if (v.endsWith('%') && ['hsl', 'hsla', 'hsv', 'hsva'].includes(fn)) {\n return parseFloat(v) / 100;\n } else {\n return parseFloat(v);\n }\n });\n return mappers[fn](...realValues);\n } else if (typeof color === 'string') {\n let hex = color.startsWith('#') ? color.slice(1) : color;\n if ([3, 4].includes(hex.length)) {\n hex = hex.split('').map(char => char + char).join('');\n } else if (![6, 8].includes(hex.length)) {\n consoleWarn(`'${color}' is not a valid hex(a) color`);\n }\n const int = parseInt(hex, 16);\n if (isNaN(int) || int < 0 || int > 0xFFFFFFFF) {\n consoleWarn(`'${color}' is not a valid hex(a) color`);\n }\n return HexToRGB(hex);\n } else if (typeof color === 'object') {\n if (has(color, ['r', 'g', 'b'])) {\n return color;\n } else if (has(color, ['h', 's', 'l'])) {\n return HSVtoRGB(HSLtoHSV(color));\n } else if (has(color, ['h', 's', 'v'])) {\n return HSVtoRGB(color);\n }\n }\n throw new TypeError(`Invalid color: ${color == null ? color : String(color) || color.constructor.name}\\nExpected #hex, #hexa, rgb(), rgba(), hsl(), hsla(), object or number`);\n}\nexport function RGBToInt(color) {\n return (color.r << 16) + (color.g << 8) + color.b;\n}\nexport function classToHex(color, colors, currentTheme) {\n const [colorName, colorModifier] = color.toString().trim().replace('-', '').split(' ', 2);\n let hexColor = '';\n if (colorName && colorName in colors) {\n if (colorModifier && colorModifier in colors[colorName]) {\n hexColor = colors[colorName][colorModifier];\n } else if ('base' in colors[colorName]) {\n hexColor = colors[colorName].base;\n }\n } else if (colorName && colorName in currentTheme) {\n hexColor = currentTheme[colorName];\n }\n return hexColor;\n}\n\n/** Converts HSVA to RGBA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV */\nexport function HSVtoRGB(hsva) {\n const {\n h,\n s,\n v,\n a\n } = hsva;\n const f = n => {\n const k = (n + h / 60) % 6;\n return v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n };\n const rgb = [f(5), f(3), f(1)].map(v => Math.round(v * 255));\n return {\n r: rgb[0],\n g: rgb[1],\n b: rgb[2],\n a\n };\n}\nexport function HSLtoRGB(hsla) {\n return HSVtoRGB(HSLtoHSV(hsla));\n}\n\n/** Converts RGBA to HSVA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV */\nexport function RGBtoHSV(rgba) {\n if (!rgba) return {\n h: 0,\n s: 1,\n v: 1,\n a: 1\n };\n const r = rgba.r / 255;\n const g = rgba.g / 255;\n const b = rgba.b / 255;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n let h = 0;\n if (max !== min) {\n if (max === r) {\n h = 60 * (0 + (g - b) / (max - min));\n } else if (max === g) {\n h = 60 * (2 + (b - r) / (max - min));\n } else if (max === b) {\n h = 60 * (4 + (r - g) / (max - min));\n }\n }\n if (h < 0) h = h + 360;\n const s = max === 0 ? 0 : (max - min) / max;\n const hsv = [h, s, max];\n return {\n h: hsv[0],\n s: hsv[1],\n v: hsv[2],\n a: rgba.a\n };\n}\nexport function HSVtoHSL(hsva) {\n const {\n h,\n s,\n v,\n a\n } = hsva;\n const l = v - v * s / 2;\n const sprime = l === 1 || l === 0 ? 0 : (v - l) / Math.min(l, 1 - l);\n return {\n h,\n s: sprime,\n l,\n a\n };\n}\nexport function HSLtoHSV(hsl) {\n const {\n h,\n s,\n l,\n a\n } = hsl;\n const v = l + s * Math.min(l, 1 - l);\n const sprime = v === 0 ? 0 : 2 - 2 * l / v;\n return {\n h,\n s: sprime,\n v,\n a\n };\n}\nexport function RGBtoCSS(_ref) {\n let {\n r,\n g,\n b,\n a\n } = _ref;\n return a === undefined ? `rgb(${r}, ${g}, ${b})` : `rgba(${r}, ${g}, ${b}, ${a})`;\n}\nexport function HSVtoCSS(hsva) {\n return RGBtoCSS(HSVtoRGB(hsva));\n}\nfunction toHex(v) {\n const h = Math.round(v).toString(16);\n return ('00'.substr(0, 2 - h.length) + h).toUpperCase();\n}\nexport function RGBtoHex(_ref2) {\n let {\n r,\n g,\n b,\n a\n } = _ref2;\n return `#${[toHex(r), toHex(g), toHex(b), a !== undefined ? toHex(Math.round(a * 255)) : ''].join('')}`;\n}\nexport function HexToRGB(hex) {\n hex = parseHex(hex);\n let [r, g, b, a] = chunk(hex, 2).map(c => parseInt(c, 16));\n a = a === undefined ? a : a / 255;\n return {\n r,\n g,\n b,\n a\n };\n}\nexport function HexToHSV(hex) {\n const rgb = HexToRGB(hex);\n return RGBtoHSV(rgb);\n}\nexport function HSVtoHex(hsva) {\n return RGBtoHex(HSVtoRGB(hsva));\n}\nexport function parseHex(hex) {\n if (hex.startsWith('#')) {\n hex = hex.slice(1);\n }\n hex = hex.replace(/([^0-9a-f])/gi, 'F');\n if (hex.length === 3 || hex.length === 4) {\n hex = hex.split('').map(x => x + x).join('');\n }\n if (hex.length !== 6) {\n hex = padEnd(padEnd(hex, 6), 8, 'F');\n }\n return hex;\n}\nexport function parseGradient(gradient, colors, currentTheme) {\n return gradient.replace(/([a-z]+(\\s[a-z]+-[1-5])?)(?=$|,)/gi, x => {\n return classToHex(x, colors, currentTheme) || x;\n }).replace(/(rgba\\()#[0-9a-f]+(?=,)/gi, x => {\n return 'rgba(' + Object.values(HexToRGB(parseHex(x.replace(/rgba\\(/, '')))).slice(0, 3).join(',');\n });\n}\nexport function lighten(value, amount) {\n const lab = CIELAB.fromXYZ(sRGB.toXYZ(value));\n lab[0] = lab[0] + amount * 10;\n return sRGB.fromXYZ(CIELAB.toXYZ(lab));\n}\nexport function darken(value, amount) {\n const lab = CIELAB.fromXYZ(sRGB.toXYZ(value));\n lab[0] = lab[0] - amount * 10;\n return sRGB.fromXYZ(CIELAB.toXYZ(lab));\n}\n\n/**\n * Calculate the relative luminance of a given color\n * @see https://www.w3.org/TR/WCAG20/#relativeluminancedef\n */\nexport function getLuma(color) {\n const rgb = parseColor(color);\n return sRGB.toXYZ(rgb)[1];\n}\n\n/**\n * Returns the contrast ratio (1-21) between two colors.\n * @see https://www.w3.org/TR/WCAG20/#contrast-ratiodef\n */\nexport function getContrast(first, second) {\n const l1 = getLuma(first);\n const l2 = getLuma(second);\n const light = Math.max(l1, l2);\n const dark = Math.min(l1, l2);\n return (light + 0.05) / (dark + 0.05);\n}\nexport function getForeground(color) {\n const blackContrast = Math.abs(APCAcontrast(parseColor(0), parseColor(color)));\n const whiteContrast = Math.abs(APCAcontrast(parseColor(0xffffff), parseColor(color)));\n\n // TODO: warn about poor color selections\n // const contrastAsText = Math.abs(APCAcontrast(colorVal, colorToInt(theme.colors.background)))\n // const minContrast = Math.max(blackContrast, whiteContrast)\n // if (minContrast < 60) {\n // consoleInfo(`${key} theme color ${color} has poor contrast (${minContrast.toFixed()}%)`)\n // } else if (contrastAsText < 60 && !['background', 'surface'].includes(color)) {\n // consoleInfo(`${key} theme color ${color} has poor contrast as text (${contrastAsText.toFixed()}%)`)\n // }\n\n // Prefer white text if both have an acceptable contrast ratio\n return whiteContrast > Math.min(blackContrast, 50) ? '#fff' : '#000';\n}\n//# sourceMappingURL=colorUtils.mjs.map","// Types\n// eslint-disable-line vue/prefer-import-from-vue\n\n/**\n * Creates a factory function for props definitions.\n * This is used to define props in a composable then override\n * default values in an implementing component.\n *\n * @example Simplified signature\n * (props: Props) => (defaults?: Record<keyof props, any>) => Props\n *\n * @example Usage\n * const makeProps = propsFactory({\n * foo: String,\n * })\n *\n * defineComponent({\n * props: {\n * ...makeProps({\n * foo: 'a',\n * }),\n * },\n * setup (props) {\n * // would be \"string | undefined\", now \"string\" because a default has been provided\n * props.foo\n * },\n * }\n */\n\nexport function propsFactory(props, source) {\n return defaults => {\n return Object.keys(props).reduce((obj, prop) => {\n const isObjectDefinition = typeof props[prop] === 'object' && props[prop] != null && !Array.isArray(props[prop]);\n const definition = isObjectDefinition ? props[prop] : {\n type: props[prop]\n };\n if (defaults && prop in defaults) {\n obj[prop] = {\n ...definition,\n default: defaults[prop]\n };\n } else {\n obj[prop] = definition;\n }\n if (source && !obj[prop].source) {\n obj[prop].source = source;\n }\n return obj;\n }, {});\n };\n}\n\n/**\n * Like `Partial<T>` but doesn't care what the value is\n */\n\n// Copied from Vue\n//# sourceMappingURL=propsFactory.mjs.map","// Utilities\nimport { propsFactory } from \"../util/propsFactory.mjs\"; // Types\n// Composables\nexport const makeComponentProps = propsFactory({\n class: [String, Array, Object],\n style: {\n type: [String, Array, Object],\n default: null\n }\n}, 'component');\n//# sourceMappingURL=component.mjs.map","// Utilities\nimport { getCurrentInstance as _getCurrentInstance } from 'vue';\nimport { toKebabCase } from \"./helpers.mjs\"; // Types\nexport function getCurrentInstance(name, message) {\n const vm = _getCurrentInstance();\n if (!vm) {\n throw new Error(`[Vuetify] ${name} ${message || 'must be called from inside a setup function'}`);\n }\n return vm;\n}\nexport function getCurrentInstanceName() {\n let name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'composables';\n const vm = getCurrentInstance(name).type;\n return toKebabCase(vm?.aliasName || vm?.name);\n}\nlet _uid = 0;\nlet _map = new WeakMap();\nexport function getUid() {\n const vm = getCurrentInstance('getUid');\n if (_map.has(vm)) return _map.get(vm);else {\n const uid = _uid++;\n _map.set(vm, uid);\n return uid;\n }\n}\ngetUid.reset = () => {\n _uid = 0;\n _map = new WeakMap();\n};\n//# sourceMappingURL=getCurrentInstance.mjs.map","// Utilities\nimport { getCurrentInstance } from \"./getCurrentInstance.mjs\"; // Types\nexport function injectSelf(key) {\n let vm = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstance('injectSelf');\n const {\n provides\n } = vm;\n if (provides && key in provides) {\n // TS doesn't allow symbol as index type\n return provides[key];\n }\n return undefined;\n}\n//# sourceMappingURL=injectSelf.mjs.map","// Utilities\nimport { computed, inject, provide, ref, shallowRef, unref, watchEffect } from 'vue';\nimport { getCurrentInstance } from \"../util/getCurrentInstance.mjs\";\nimport { mergeDeep, toKebabCase } from \"../util/helpers.mjs\";\nimport { injectSelf } from \"../util/injectSelf.mjs\"; // Types\nexport const DefaultsSymbol = Symbol.for('vuetify:defaults');\nexport function createDefaults(options) {\n return ref(options);\n}\nexport function injectDefaults() {\n const defaults = inject(DefaultsSymbol);\n if (!defaults) throw new Error('[Vuetify] Could not find defaults instance');\n return defaults;\n}\nexport function provideDefaults(defaults, options) {\n const injectedDefaults = injectDefaults();\n const providedDefaults = ref(defaults);\n const newDefaults = computed(() => {\n const disabled = unref(options?.disabled);\n if (disabled) return injectedDefaults.value;\n const scoped = unref(options?.scoped);\n const reset = unref(options?.reset);\n const root = unref(options?.root);\n if (providedDefaults.value == null && !(scoped || reset || root)) return injectedDefaults.value;\n let properties = mergeDeep(providedDefaults.value, {\n prev: injectedDefaults.value\n });\n if (scoped) return properties;\n if (reset || root) {\n const len = Number(reset || Infinity);\n for (let i = 0; i <= len; i++) {\n if (!properties || !('prev' in properties)) {\n break;\n }\n properties = properties.prev;\n }\n if (properties && typeof root === 'string' && root in properties) {\n properties = mergeDeep(mergeDeep(properties, {\n prev: properties\n }), properties[root]);\n }\n return properties;\n }\n return properties.prev ? mergeDeep(properties.prev, properties) : properties;\n });\n provide(DefaultsSymbol, newDefaults);\n return newDefaults;\n}\nfunction propIsDefined(vnode, prop) {\n return typeof vnode.props?.[prop] !== 'undefined' || typeof vnode.props?.[toKebabCase(prop)] !== 'undefined';\n}\nexport function internalUseDefaults() {\n let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let name = arguments.length > 1 ? arguments[1] : undefined;\n let defaults = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : injectDefaults();\n const vm = getCurrentInstance('useDefaults');\n name = name ?? vm.type.name ?? vm.type.__name;\n if (!name) {\n throw new Error('[Vuetify] Could not determine component name');\n }\n const componentDefaults = computed(() => defaults.value?.[props._as ?? name]);\n const _props = new Proxy(props, {\n get(target, prop) {\n const propValue = Reflect.get(target, prop);\n if (prop === 'class' || prop === 'style') {\n return [componentDefaults.value?.[prop], propValue].filter(v => v != null);\n } else if (typeof prop === 'string' && !propIsDefined(vm.vnode, prop)) {\n return componentDefaults.value?.[prop] !== undefined ? componentDefaults.value?.[prop] : defaults.value?.global?.[prop] !== undefined ? defaults.value?.global?.[prop] : propValue;\n }\n return propValue;\n }\n });\n const _subcomponentDefaults = shallowRef();\n watchEffect(() => {\n if (componentDefaults.value) {\n const subComponents = Object.entries(componentDefaults.value).filter(_ref => {\n let [key] = _ref;\n return key.startsWith(key[0].toUpperCase());\n });\n _subcomponentDefaults.value = subComponents.length ? Object.fromEntries(subComponents) : undefined;\n } else {\n _subcomponentDefaults.value = undefined;\n }\n });\n function provideSubDefaults() {\n const injected = injectSelf(DefaultsSymbol, vm);\n provide(DefaultsSymbol, computed(() => {\n return _subcomponentDefaults.value ? mergeDeep(injected?.value ?? {}, _subcomponentDefaults.value) : injected?.value;\n }));\n }\n return {\n props: _props,\n provideSubDefaults\n };\n}\nexport function useDefaults() {\n let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let name = arguments.length > 1 ? arguments[1] : undefined;\n const {\n props: _props,\n provideSubDefaults\n } = internalUseDefaults(props, name);\n provideSubDefaults();\n return _props;\n}\n//# sourceMappingURL=defaults.mjs.map","// Composables\nimport { injectDefaults, internalUseDefaults } from \"../composables/defaults.mjs\"; // Utilities\nimport { defineComponent as _defineComponent // eslint-disable-line no-restricted-imports\n} from 'vue';\nimport { consoleWarn } from \"./console.mjs\";\nimport { pick } from \"./helpers.mjs\";\nimport { propsFactory } from \"./propsFactory.mjs\"; // Types\n// No props\n// Object Props\n// Implementation\nexport function defineComponent(options) {\n options._setup = options._setup ?? options.setup;\n if (!options.name) {\n consoleWarn('The component is missing an explicit name, unable to generate default prop value');\n return options;\n }\n if (options._setup) {\n options.props = propsFactory(options.props ?? {}, options.name)();\n const propKeys = Object.keys(options.props).filter(key => key !== 'class' && key !== 'style');\n options.filterProps = function filterProps(props) {\n return pick(props, propKeys);\n };\n options.props._as = String;\n options.setup = function setup(props, ctx) {\n const defaults = injectDefaults();\n\n // Skip props proxy if defaults are not provided\n if (!defaults.value) return options._setup(props, ctx);\n const {\n props: _props,\n provideSubDefaults\n } = internalUseDefaults(props, props._as ?? options.name, defaults);\n const setupBindings = options._setup(_props, ctx);\n provideSubDefaults();\n return setupBindings;\n };\n }\n return options;\n}\n\n// No argument - simple default slot\n\n// Generic constructor argument - generic props and slots\n\n// Slots argument - simple slots\n\n// Implementation\nexport function genericComponent() {\n let exposeDefaults = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n return options => (exposeDefaults ? defineComponent : _defineComponent)(options);\n}\nexport function defineFunctionalComponent(props, render) {\n render.props = props;\n return render;\n}\n\n// Adds a filterProps method to the component options\n\n// https://github.com/vuejs/core/pull/10557\n\n// not a vue Component\n//# sourceMappingURL=defineComponent.mjs.map","// Composables\nimport { makeComponentProps } from \"../composables/component.mjs\"; // Utilities\nimport { camelize, capitalize, h } from 'vue';\nimport { genericComponent } from \"./defineComponent.mjs\";\nexport function createSimpleFunctional(klass) {\n let tag = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'div';\n let name = arguments.length > 2 ? arguments[2] : undefined;\n return genericComponent()({\n name: name ?? capitalize(camelize(klass.replace(/__/g, '-'))),\n props: {\n tag: {\n type: String,\n default: tag\n },\n ...makeComponentProps()\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n return () => {\n return h(props.tag, {\n class: [klass, props.class],\n style: props.style\n }, slots.default?.());\n };\n }\n });\n}\n//# sourceMappingURL=createSimpleFunctional.mjs.map","/**\n * Returns:\n * - 'null' if the node is not attached to the DOM\n * - the root node (HTMLDocument | ShadowRoot) otherwise\n */\nexport function attachedRoot(node) {\n /* istanbul ignore next */\n if (typeof node.getRootNode !== 'function') {\n // Shadow DOM not supported (IE11), lets find the root of this node\n while (node.parentNode) node = node.parentNode;\n\n // The root parent is the document if the node is attached to the DOM\n if (node !== document) return null;\n return document;\n }\n const root = node.getRootNode();\n\n // The composed root node is the document if the node is attached to the DOM\n if (root !== document && root.getRootNode({\n composed: true\n }) !== document) return null;\n return root;\n}\n//# sourceMappingURL=dom.mjs.map","export const standardEasing = 'cubic-bezier(0.4, 0, 0.2, 1)';\nexport const deceleratedEasing = 'cubic-bezier(0.0, 0, 0.2, 1)'; // Entering\nexport const acceleratedEasing = 'cubic-bezier(0.4, 0, 1, 1)'; // Leaving\n//# sourceMappingURL=easing.mjs.map","// Utilities\nimport { isOn } from \"./helpers.mjs\";\nexport function getPrefixedEventHandlers(attrs, suffix, getData) {\n return Object.keys(attrs).filter(key => isOn(key) && key.endsWith(suffix)).reduce((acc, key) => {\n acc[key.slice(0, -suffix.length)] = event => attrs[key](event, getData(event));\n return acc;\n }, {});\n}\n//# sourceMappingURL=events.mjs.map","export function getScrollParent(el) {\n let includeHidden = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n while (el) {\n if (includeHidden ? isPotentiallyScrollable(el) : hasScrollbar(el)) return el;\n el = el.parentElement;\n }\n return document.scrollingElement;\n}\nexport function getScrollParents(el, stopAt) {\n const elements = [];\n if (stopAt && el && !stopAt.contains(el)) return elements;\n while (el) {\n if (hasScrollbar(el)) elements.push(el);\n if (el === stopAt) break;\n el = el.parentElement;\n }\n return elements;\n}\nexport function hasScrollbar(el) {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return false;\n const style = window.getComputedStyle(el);\n return style.overflowY === 'scroll' || style.overflowY === 'auto' && el.scrollHeight > el.clientHeight;\n}\nfunction isPotentiallyScrollable(el) {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return false;\n const style = window.getComputedStyle(el);\n return ['scroll', 'auto'].includes(style.overflowY);\n}\n//# sourceMappingURL=getScrollParent.mjs.map","export function isFixedPosition(el) {\n while (el) {\n if (window.getComputedStyle(el).position === 'fixed') {\n return true;\n }\n el = el.offsetParent;\n }\n return false;\n}\n//# sourceMappingURL=isFixedPosition.mjs.map","// Utilities\nimport { getCurrentInstance } from \"./getCurrentInstance.mjs\"; // Types\nexport function useRender(render) {\n const vm = getCurrentInstance('useRender');\n vm.render = render;\n}\n//# sourceMappingURL=useRender.mjs.map","// Composables\nimport { useToggleScope } from \"./toggleScope.mjs\"; // Utilities\nimport { computed, ref, toRaw, watch } from 'vue';\nimport { getCurrentInstance, toKebabCase } from \"../util/index.mjs\"; // Types\n// Composables\nexport function useProxiedModel(props, prop, defaultValue) {\n let transformIn = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : v => v;\n let transformOut = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : v => v;\n const vm = getCurrentInstance('useProxiedModel');\n const internal = ref(props[prop] !== undefined ? props[prop] : defaultValue);\n const kebabProp = toKebabCase(prop);\n const checkKebab = kebabProp !== prop;\n const isControlled = checkKebab ? computed(() => {\n void props[prop];\n return !!((vm.vnode.props?.hasOwnProperty(prop) || vm.vnode.props?.hasOwnProperty(kebabProp)) && (vm.vnode.props?.hasOwnProperty(`onUpdate:${prop}`) || vm.vnode.props?.hasOwnProperty(`onUpdate:${kebabProp}`)));\n }) : computed(() => {\n void props[prop];\n return !!(vm.vnode.props?.hasOwnProperty(prop) && vm.vnode.props?.hasOwnProperty(`onUpdate:${prop}`));\n });\n useToggleScope(() => !isControlled.value, () => {\n watch(() => props[prop], val => {\n internal.value = val;\n });\n });\n const model = computed({\n get() {\n const externalValue = props[prop];\n return transformIn(isControlled.value ? externalValue : internal.value);\n },\n set(internalValue) {\n const newValue = transformOut(internalValue);\n const value = toRaw(isControlled.value ? props[prop] : internal.value);\n if (value === newValue || transformIn(value) === internalValue) {\n return;\n }\n internal.value = newValue;\n vm?.emit(`update:${prop}`, newValue);\n }\n });\n Object.defineProperty(model, 'externalValue', {\n get: () => isControlled.value ? props[prop] : internal.value\n });\n return model;\n}\n//# sourceMappingURL=proxiedModel.mjs.map","export default {\n badge: 'Badge',\n open: 'Open',\n close: 'Close',\n dismiss: 'Dismiss',\n confirmEdit: {\n ok: 'OK',\n cancel: 'Cancel'\n },\n dataIterator: {\n noResultsText: 'No matching records found',\n loadingText: 'Loading items...'\n },\n dataTable: {\n itemsPerPageText: 'Rows per page:',\n ariaLabel: {\n sortDescending: 'Sorted descending.',\n sortAscending: 'Sorted ascending.',\n sortNone: 'Not sorted.',\n activateNone: 'Activate to remove sorting.',\n activateDescending: 'Activate to sort descending.',\n activateAscending: 'Activate to sort ascending.'\n },\n sortBy: 'Sort by'\n },\n dataFooter: {\n itemsPerPageText: 'Items per page:',\n itemsPerPageAll: 'All',\n nextPage: 'Next page',\n prevPage: 'Previous page',\n firstPage: 'First page',\n lastPage: 'Last page',\n pageText: '{0}-{1} of {2}'\n },\n dateRangeInput: {\n divider: 'to'\n },\n datePicker: {\n itemsSelected: '{0} selected',\n range: {\n title: 'Select dates',\n header: 'Enter dates'\n },\n title: 'Select date',\n header: 'Enter date',\n input: {\n placeholder: 'Enter date'\n }\n },\n noDataText: 'No data available',\n carousel: {\n prev: 'Previous visual',\n next: 'Next visual',\n ariaLabel: {\n delimiter: 'Carousel slide {0} of {1}'\n }\n },\n calendar: {\n moreEvents: '{0} more',\n today: 'Today'\n },\n input: {\n clear: 'Clear {0}',\n prependAction: '{0} prepended action',\n appendAction: '{0} appended action',\n otp: 'Please enter OTP character {0}'\n },\n fileInput: {\n counter: '{0} files',\n counterSize: '{0} files ({1} in total)'\n },\n fileUpload: {\n title: 'Drag and drop files here',\n divider: 'or',\n browse: 'Browse Files'\n },\n timePicker: {\n am: 'AM',\n pm: 'PM',\n title: 'Select Time'\n },\n pagination: {\n ariaLabel: {\n root: 'Pagination Navigation',\n next: 'Next page',\n previous: 'Previous page',\n page: 'Go to page {0}',\n currentPage: 'Page {0}, Current page',\n first: 'First page',\n last: 'Last page'\n }\n },\n stepper: {\n next: 'Next',\n prev: 'Previous'\n },\n rating: {\n ariaLabel: {\n item: 'Rating {0} of {1}'\n }\n },\n loading: 'Loading...',\n infiniteScroll: {\n loadMore: 'Load more',\n empty: 'No more'\n }\n};\n//# sourceMappingURL=en.mjs.map","// Composables\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { ref, shallowRef, watch } from 'vue';\nimport { consoleError, consoleWarn, getObjectValueByPath } from \"../../util/index.mjs\"; // Locales\nimport en from \"../en.mjs\"; // Types\nconst LANG_PREFIX = '$vuetify.';\nconst replace = (str, params) => {\n return str.replace(/\\{(\\d+)\\}/g, (match, index) => {\n return String(params[+index]);\n });\n};\nconst createTranslateFunction = (current, fallback, messages) => {\n return function (key) {\n for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n params[_key - 1] = arguments[_key];\n }\n if (!key.startsWith(LANG_PREFIX)) {\n return replace(key, params);\n }\n const shortKey = key.replace(LANG_PREFIX, '');\n const currentLocale = current.value && messages.value[current.value];\n const fallbackLocale = fallback.value && messages.value[fallback.value];\n let str = getObjectValueByPath(currentLocale, shortKey, null);\n if (!str) {\n consoleWarn(`Translation key \"${key}\" not found in \"${current.value}\", trying fallback locale`);\n str = getObjectValueByPath(fallbackLocale, shortKey, null);\n }\n if (!str) {\n consoleError(`Translation key \"${key}\" not found in fallback`);\n str = key;\n }\n if (typeof str !== 'string') {\n consoleError(`Translation key \"${key}\" has a non-string value`);\n str = key;\n }\n return replace(str, params);\n };\n};\nfunction createNumberFunction(current, fallback) {\n return (value, options) => {\n const numberFormat = new Intl.NumberFormat([current.value, fallback.value], options);\n return numberFormat.format(value);\n };\n}\nfunction useProvided(props, prop, provided) {\n const internal = useProxiedModel(props, prop, props[prop] ?? provided.value);\n\n // TODO: Remove when defaultValue works\n internal.value = props[prop] ?? provided.value;\n watch(provided, v => {\n if (props[prop] == null) {\n internal.value = provided.value;\n }\n });\n return internal;\n}\nfunction createProvideFunction(state) {\n return props => {\n const current = useProvided(props, 'locale', state.current);\n const fallback = useProvided(props, 'fallback', state.fallback);\n const messages = useProvided(props, 'messages', state.messages);\n return {\n name: 'vuetify',\n current,\n fallback,\n messages,\n t: createTranslateFunction(current, fallback, messages),\n n: createNumberFunction(current, fallback),\n provide: createProvideFunction({\n current,\n fallback,\n messages\n })\n };\n };\n}\nexport function createVuetifyAdapter(options) {\n const current = shallowRef(options?.locale ?? 'en');\n const fallback = shallowRef(options?.fallback ?? 'en');\n const messages = ref({\n en,\n ...options?.messages\n });\n return {\n name: 'vuetify',\n current,\n fallback,\n messages,\n t: createTranslateFunction(current, fallback, messages),\n n: createNumberFunction(current, fallback),\n provide: createProvideFunction({\n current,\n fallback,\n messages\n })\n };\n}\n//# sourceMappingURL=vuetify.mjs.map","// Utilities\nimport { computed, inject, provide, ref } from 'vue';\nimport { createVuetifyAdapter } from \"../locale/adapters/vuetify.mjs\"; // Types\nexport const LocaleSymbol = Symbol.for('vuetify:locale');\nfunction isLocaleInstance(obj) {\n return obj.name != null;\n}\nexport function createLocale(options) {\n const i18n = options?.adapter && isLocaleInstance(options?.adapter) ? options?.adapter : createVuetifyAdapter(options);\n const rtl = createRtl(i18n, options);\n return {\n ...i18n,\n ...rtl\n };\n}\nexport function useLocale() {\n const locale = inject(LocaleSymbol);\n if (!locale) throw new Error('[Vuetify] Could not find injected locale instance');\n return locale;\n}\nexport function provideLocale(props) {\n const locale = inject(LocaleSymbol);\n if (!locale) throw new Error('[Vuetify] Could not find injected locale instance');\n const i18n = locale.provide(props);\n const rtl = provideRtl(i18n, locale.rtl, props);\n const data = {\n ...i18n,\n ...rtl\n };\n provide(LocaleSymbol, data);\n return data;\n}\n\n// RTL\n\nexport const RtlSymbol = Symbol.for('vuetify:rtl');\nfunction genDefaults() {\n return {\n af: false,\n ar: true,\n bg: false,\n ca: false,\n ckb: false,\n cs: false,\n de: false,\n el: false,\n en: false,\n es: false,\n et: false,\n fa: true,\n fi: false,\n fr: false,\n hr: false,\n hu: false,\n he: true,\n id: false,\n it: false,\n ja: false,\n km: false,\n ko: false,\n lv: false,\n lt: false,\n nl: false,\n no: false,\n pl: false,\n pt: false,\n ro: false,\n ru: false,\n sk: false,\n sl: false,\n srCyrl: false,\n srLatn: false,\n sv: false,\n th: false,\n tr: false,\n az: false,\n uk: false,\n vi: false,\n zhHans: false,\n zhHant: false\n };\n}\nexport function createRtl(i18n, options) {\n const rtl = ref(options?.rtl ?? genDefaults());\n const isRtl = computed(() => rtl.value[i18n.current.value] ?? false);\n return {\n isRtl,\n rtl,\n rtlClasses: computed(() => `v-locale--is-${isRtl.value ? 'rtl' : 'ltr'}`)\n };\n}\nexport function provideRtl(locale, rtl, props) {\n const isRtl = computed(() => props.rtl ?? rtl.value[locale.current.value] ?? false);\n return {\n isRtl,\n rtl,\n rtlClasses: computed(() => `v-locale--is-${isRtl.value ? 'rtl' : 'ltr'}`)\n };\n}\nexport function useRtl() {\n const locale = inject(LocaleSymbol);\n if (!locale) throw new Error('[Vuetify] Could not find injected rtl instance');\n return {\n isRtl: locale.isRtl,\n rtlClasses: locale.rtlClasses\n };\n}\n//# sourceMappingURL=locale.mjs.map","// Utilities\nimport { createRange, padStart } from \"../../../util/index.mjs\"; // Types\nconst firstDay = {\n '001': 1,\n AD: 1,\n AE: 6,\n AF: 6,\n AG: 0,\n AI: 1,\n AL: 1,\n AM: 1,\n AN: 1,\n AR: 1,\n AS: 0,\n AT: 1,\n AU: 1,\n AX: 1,\n AZ: 1,\n BA: 1,\n BD: 0,\n BE: 1,\n BG: 1,\n BH: 6,\n BM: 1,\n BN: 1,\n BR: 0,\n BS: 0,\n BT: 0,\n BW: 0,\n BY: 1,\n BZ: 0,\n CA: 0,\n CH: 1,\n CL: 1,\n CM: 1,\n CN: 1,\n CO: 0,\n CR: 1,\n CY: 1,\n CZ: 1,\n DE: 1,\n DJ: 6,\n DK: 1,\n DM: 0,\n DO: 0,\n DZ: 6,\n EC: 1,\n EE: 1,\n EG: 6,\n ES: 1,\n ET: 0,\n FI: 1,\n FJ: 1,\n FO: 1,\n FR: 1,\n GB: 1,\n 'GB-alt-variant': 0,\n GE: 1,\n GF: 1,\n GP: 1,\n GR: 1,\n GT: 0,\n GU: 0,\n HK: 0,\n HN: 0,\n HR: 1,\n HU: 1,\n ID: 0,\n IE: 1,\n IL: 0,\n IN: 0,\n IQ: 6,\n IR: 6,\n IS: 1,\n IT: 1,\n JM: 0,\n JO: 6,\n JP: 0,\n KE: 0,\n KG: 1,\n KH: 0,\n KR: 0,\n KW: 6,\n KZ: 1,\n LA: 0,\n LB: 1,\n LI: 1,\n LK: 1,\n LT: 1,\n LU: 1,\n LV: 1,\n LY: 6,\n MC: 1,\n MD: 1,\n ME: 1,\n MH: 0,\n MK: 1,\n MM: 0,\n MN: 1,\n MO: 0,\n MQ: 1,\n MT: 0,\n MV: 5,\n MX: 0,\n MY: 1,\n MZ: 0,\n NI: 0,\n NL: 1,\n NO: 1,\n NP: 0,\n NZ: 1,\n OM: 6,\n PA: 0,\n PE: 0,\n PH: 0,\n PK: 0,\n PL: 1,\n PR: 0,\n PT: 0,\n PY: 0,\n QA: 6,\n RE: 1,\n RO: 1,\n RS: 1,\n RU: 1,\n SA: 0,\n SD: 6,\n SE: 1,\n SG: 0,\n SI: 1,\n SK: 1,\n SM: 1,\n SV: 0,\n SY: 6,\n TH: 0,\n TJ: 1,\n TM: 1,\n TR: 1,\n TT: 0,\n TW: 0,\n UA: 1,\n UM: 0,\n US: 0,\n UY: 1,\n UZ: 1,\n VA: 1,\n VE: 0,\n VI: 0,\n VN: 1,\n WS: 0,\n XK: 1,\n YE: 0,\n ZA: 0,\n ZW: 0\n};\nfunction getWeekArray(date, locale, firstDayOfWeek) {\n const weeks = [];\n let currentWeek = [];\n const firstDayOfMonth = startOfMonth(date);\n const lastDayOfMonth = endOfMonth(date);\n const first = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;\n const firstDayWeekIndex = (firstDayOfMonth.getDay() - first + 7) % 7;\n const lastDayWeekIndex = (lastDayOfMonth.getDay() - first + 7) % 7;\n for (let i = 0; i < firstDayWeekIndex; i++) {\n const adjacentDay = new Date(firstDayOfMonth);\n adjacentDay.setDate(adjacentDay.getDate() - (firstDayWeekIndex - i));\n currentWeek.push(adjacentDay);\n }\n for (let i = 1; i <= lastDayOfMonth.getDate(); i++) {\n const day = new Date(date.getFullYear(), date.getMonth(), i);\n\n // Add the day to the current week\n currentWeek.push(day);\n\n // If the current week has 7 days, add it to the weeks array and start a new week\n if (currentWeek.length === 7) {\n weeks.push(currentWeek);\n currentWeek = [];\n }\n }\n for (let i = 1; i < 7 - lastDayWeekIndex; i++) {\n const adjacentDay = new Date(lastDayOfMonth);\n adjacentDay.setDate(adjacentDay.getDate() + i);\n currentWeek.push(adjacentDay);\n }\n if (currentWeek.length > 0) {\n weeks.push(currentWeek);\n }\n return weeks;\n}\nfunction startOfWeek(date, locale, firstDayOfWeek) {\n const day = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;\n const d = new Date(date);\n while (d.getDay() !== day) {\n d.setDate(d.getDate() - 1);\n }\n return d;\n}\nfunction endOfWeek(date, locale) {\n const d = new Date(date);\n const lastDay = ((firstDay[locale.slice(-2).toUpperCase()] ?? 0) + 6) % 7;\n while (d.getDay() !== lastDay) {\n d.setDate(d.getDate() + 1);\n }\n return d;\n}\nfunction startOfMonth(date) {\n return new Date(date.getFullYear(), date.getMonth(), 1);\n}\nfunction endOfMonth(date) {\n return new Date(date.getFullYear(), date.getMonth() + 1, 0);\n}\nfunction parseLocalDate(value) {\n const parts = value.split('-').map(Number);\n\n // new Date() uses local time zone when passing individual date component values\n return new Date(parts[0], parts[1] - 1, parts[2]);\n}\nconst _YYYMMDD = /^([12]\\d{3}-([1-9]|0[1-9]|1[0-2])-([1-9]|0[1-9]|[12]\\d|3[01]))$/;\nfunction date(value) {\n if (value == null) return new Date();\n if (value instanceof Date) return value;\n if (typeof value === 'string') {\n let parsed;\n if (_YYYMMDD.test(value)) {\n return parseLocalDate(value);\n } else {\n parsed = Date.parse(value);\n }\n if (!isNaN(parsed)) return new Date(parsed);\n }\n return null;\n}\nconst sundayJanuarySecond2000 = new Date(2000, 0, 2);\nfunction getWeekdays(locale, firstDayOfWeek) {\n const daysFromSunday = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;\n return createRange(7).map(i => {\n const weekday = new Date(sundayJanuarySecond2000);\n weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);\n return new Intl.DateTimeFormat(locale, {\n weekday: 'narrow'\n }).format(weekday);\n });\n}\nfunction format(value, formatString, locale, formats) {\n const newDate = date(value) ?? new Date();\n const customFormat = formats?.[formatString];\n if (typeof customFormat === 'function') {\n return customFormat(newDate, formatString, locale);\n }\n let options = {};\n switch (formatString) {\n case 'fullDate':\n options = {\n year: 'numeric',\n month: 'long',\n day: 'numeric'\n };\n break;\n case 'fullDateWithWeekday':\n options = {\n weekday: 'long',\n year: 'numeric',\n month: 'long',\n day: 'numeric'\n };\n break;\n case 'normalDate':\n const day = newDate.getDate();\n const month = new Intl.DateTimeFormat(locale, {\n month: 'long'\n }).format(newDate);\n return `${day} ${month}`;\n case 'normalDateWithWeekday':\n options = {\n weekday: 'short',\n day: 'numeric',\n month: 'short'\n };\n break;\n case 'shortDate':\n options = {\n month: 'short',\n day: 'numeric'\n };\n break;\n case 'year':\n options = {\n year: 'numeric'\n };\n break;\n case 'month':\n options = {\n month: 'long'\n };\n break;\n case 'monthShort':\n options = {\n month: 'short'\n };\n break;\n case 'monthAndYear':\n options = {\n month: 'long',\n year: 'numeric'\n };\n break;\n case 'monthAndDate':\n options = {\n month: 'long',\n day: 'numeric'\n };\n break;\n case 'weekday':\n options = {\n weekday: 'long'\n };\n break;\n case 'weekdayShort':\n options = {\n weekday: 'short'\n };\n break;\n case 'dayOfMonth':\n return new Intl.NumberFormat(locale).format(newDate.getDate());\n case 'hours12h':\n options = {\n hour: 'numeric',\n hour12: true\n };\n break;\n case 'hours24h':\n options = {\n hour: 'numeric',\n hour12: false\n };\n break;\n case 'minutes':\n options = {\n minute: 'numeric'\n };\n break;\n case 'seconds':\n options = {\n second: 'numeric'\n };\n break;\n case 'fullTime':\n options = {\n hour: 'numeric',\n minute: 'numeric'\n };\n break;\n case 'fullTime12h':\n options = {\n hour: 'numeric',\n minute: 'numeric',\n hour12: true\n };\n break;\n case 'fullTime24h':\n options = {\n hour: 'numeric',\n minute: 'numeric',\n hour12: false\n };\n break;\n case 'fullDateTime':\n options = {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric'\n };\n break;\n case 'fullDateTime12h':\n options = {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n hour12: true\n };\n break;\n case 'fullDateTime24h':\n options = {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n hour12: false\n };\n break;\n case 'keyboardDate':\n options = {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit'\n };\n break;\n case 'keyboardDateTime':\n options = {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: 'numeric',\n minute: 'numeric'\n };\n return new Intl.DateTimeFormat(locale, options).format(newDate).replace(/, /g, ' ');\n case 'keyboardDateTime12h':\n options = {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: 'numeric',\n minute: 'numeric',\n hour12: true\n };\n return new Intl.DateTimeFormat(locale, options).format(newDate).replace(/, /g, ' ');\n case 'keyboardDateTime24h':\n options = {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: 'numeric',\n minute: 'numeric',\n hour12: false\n };\n return new Intl.DateTimeFormat(locale, options).format(newDate).replace(/, /g, ' ');\n default:\n options = customFormat ?? {\n timeZone: 'UTC',\n timeZoneName: 'short'\n };\n }\n return new Intl.DateTimeFormat(locale, options).format(newDate);\n}\nfunction toISO(adapter, value) {\n const date = adapter.toJsDate(value);\n const year = date.getFullYear();\n const month = padStart(String(date.getMonth() + 1), 2, '0');\n const day = padStart(String(date.getDate()), 2, '0');\n return `${year}-${month}-${day}`;\n}\nfunction parseISO(value) {\n const [year, month, day] = value.split('-').map(Number);\n return new Date(year, month - 1, day);\n}\nfunction addMinutes(date, amount) {\n const d = new Date(date);\n d.setMinutes(d.getMinutes() + amount);\n return d;\n}\nfunction addHours(date, amount) {\n const d = new Date(date);\n d.setHours(d.getHours() + amount);\n return d;\n}\nfunction addDays(date, amount) {\n const d = new Date(date);\n d.setDate(d.getDate() + amount);\n return d;\n}\nfunction addWeeks(date, amount) {\n const d = new Date(date);\n d.setDate(d.getDate() + amount * 7);\n return d;\n}\nfunction addMonths(date, amount) {\n const d = new Date(date);\n d.setDate(1);\n d.setMonth(d.getMonth() + amount);\n return d;\n}\nfunction getYear(date) {\n return date.getFullYear();\n}\nfunction getMonth(date) {\n return date.getMonth();\n}\nfunction getDate(date) {\n return date.getDate();\n}\nfunction getNextMonth(date) {\n return new Date(date.getFullYear(), date.getMonth() + 1, 1);\n}\nfunction getPreviousMonth(date) {\n return new Date(date.getFullYear(), date.getMonth() - 1, 1);\n}\nfunction getHours(date) {\n return date.getHours();\n}\nfunction getMinutes(date) {\n return date.getMinutes();\n}\nfunction startOfYear(date) {\n return new Date(date.getFullYear(), 0, 1);\n}\nfunction endOfYear(date) {\n return new Date(date.getFullYear(), 11, 31);\n}\nfunction isWithinRange(date, range) {\n return isAfter(date, range[0]) && isBefore(date, range[1]);\n}\nfunction isValid(date) {\n const d = new Date(date);\n return d instanceof Date && !isNaN(d.getTime());\n}\nfunction isAfter(date, comparing) {\n return date.getTime() > comparing.getTime();\n}\nfunction isAfterDay(date, comparing) {\n return isAfter(startOfDay(date), startOfDay(comparing));\n}\nfunction isBefore(date, comparing) {\n return date.getTime() < comparing.getTime();\n}\nfunction isEqual(date, comparing) {\n return date.getTime() === comparing.getTime();\n}\nfunction isSameDay(date, comparing) {\n return date.getDate() === comparing.getDate() && date.getMonth() === comparing.getMonth() && date.getFullYear() === comparing.getFullYear();\n}\nfunction isSameMonth(date, comparing) {\n return date.getMonth() === comparing.getMonth() && date.getFullYear() === comparing.getFullYear();\n}\nfunction isSameYear(date, comparing) {\n return date.getFullYear() === comparing.getFullYear();\n}\nfunction getDiff(date, comparing, unit) {\n const d = new Date(date);\n const c = new Date(comparing);\n switch (unit) {\n case 'years':\n return d.getFullYear() - c.getFullYear();\n case 'quarters':\n return Math.floor((d.getMonth() - c.getMonth() + (d.getFullYear() - c.getFullYear()) * 12) / 4);\n case 'months':\n return d.getMonth() - c.getMonth() + (d.getFullYear() - c.getFullYear()) * 12;\n case 'weeks':\n return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60 * 24 * 7));\n case 'days':\n return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60 * 24));\n case 'hours':\n return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60));\n case 'minutes':\n return Math.floor((d.getTime() - c.getTime()) / (1000 * 60));\n case 'seconds':\n return Math.floor((d.getTime() - c.getTime()) / 1000);\n default:\n {\n return d.getTime() - c.getTime();\n }\n }\n}\nfunction setHours(date, count) {\n const d = new Date(date);\n d.setHours(count);\n return d;\n}\nfunction setMinutes(date, count) {\n const d = new Date(date);\n d.setMinutes(count);\n return d;\n}\nfunction setMonth(date, count) {\n const d = new Date(date);\n d.setMonth(count);\n return d;\n}\nfunction setDate(date, day) {\n const d = new Date(date);\n d.setDate(day);\n return d;\n}\nfunction setYear(date, year) {\n const d = new Date(date);\n d.setFullYear(year);\n return d;\n}\nfunction startOfDay(date) {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0, 0);\n}\nfunction endOfDay(date) {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59, 999);\n}\nexport class VuetifyDateAdapter {\n constructor(options) {\n this.locale = options.locale;\n this.formats = options.formats;\n }\n date(value) {\n return date(value);\n }\n toJsDate(date) {\n return date;\n }\n toISO(date) {\n return toISO(this, date);\n }\n parseISO(date) {\n return parseISO(date);\n }\n addMinutes(date, amount) {\n return addMinutes(date, amount);\n }\n addHours(date, amount) {\n return addHours(date, amount);\n }\n addDays(date, amount) {\n return addDays(date, amount);\n }\n addWeeks(date, amount) {\n return addWeeks(date, amount);\n }\n addMonths(date, amount) {\n return addMonths(date, amount);\n }\n getWeekArray(date, firstDayOfWeek) {\n return getWeekArray(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);\n }\n startOfWeek(date, firstDayOfWeek) {\n return startOfWeek(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);\n }\n endOfWeek(date) {\n return endOfWeek(date, this.locale);\n }\n startOfMonth(date) {\n return startOfMonth(date);\n }\n endOfMonth(date) {\n return endOfMonth(date);\n }\n format(date, formatString) {\n return format(date, formatString, this.locale, this.formats);\n }\n isEqual(date, comparing) {\n return isEqual(date, comparing);\n }\n isValid(date) {\n return isValid(date);\n }\n isWithinRange(date, range) {\n return isWithinRange(date, range);\n }\n isAfter(date, comparing) {\n return isAfter(date, comparing);\n }\n isAfterDay(date, comparing) {\n return isAfterDay(date, comparing);\n }\n isBefore(date, comparing) {\n return !isAfter(date, comparing) && !isEqual(date, comparing);\n }\n isSameDay(date, comparing) {\n return isSameDay(date, comparing);\n }\n isSameMonth(date, comparing) {\n return isSameMonth(date, comparing);\n }\n isSameYear(date, comparing) {\n return isSameYear(date, comparing);\n }\n setMinutes(date, count) {\n return setMinutes(date, count);\n }\n setHours(date, count) {\n return setHours(date, count);\n }\n setMonth(date, count) {\n return setMonth(date, count);\n }\n setDate(date, day) {\n return setDate(date, day);\n }\n setYear(date, year) {\n return setYear(date, year);\n }\n getDiff(date, comparing, unit) {\n return getDiff(date, comparing, unit);\n }\n getWeekdays(firstDayOfWeek) {\n return getWeekdays(this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);\n }\n getYear(date) {\n return getYear(date);\n }\n getMonth(date) {\n return getMonth(date);\n }\n getDate(date) {\n return getDate(date);\n }\n getNextMonth(date) {\n return getNextMonth(date);\n }\n getPreviousMonth(date) {\n return getPreviousMonth(date);\n }\n getHours(date) {\n return getHours(date);\n }\n getMinutes(date) {\n return getMinutes(date);\n }\n startOfDay(date) {\n return startOfDay(date);\n }\n endOfDay(date) {\n return endOfDay(date);\n }\n startOfYear(date) {\n return startOfYear(date);\n }\n endOfYear(date) {\n return endOfYear(date);\n }\n}\n//# sourceMappingURL=vuetify.mjs.map","// Composables\nimport { useLocale } from \"../locale.mjs\"; // Utilities\nimport { inject, reactive, watch } from 'vue';\nimport { mergeDeep } from \"../../util/index.mjs\"; // Types\n// Adapters\nimport { VuetifyDateAdapter } from \"./adapters/vuetify.mjs\";\n/** Supports module augmentation to specify date adapter types */\nexport let DateModule;\nexport const DateOptionsSymbol = Symbol.for('vuetify:date-options');\nexport const DateAdapterSymbol = Symbol.for('vuetify:date-adapter');\nexport function createDate(options, locale) {\n const _options = mergeDeep({\n adapter: VuetifyDateAdapter,\n locale: {\n af: 'af-ZA',\n // ar: '', # not the same value for all variants\n bg: 'bg-BG',\n ca: 'ca-ES',\n ckb: '',\n cs: 'cs-CZ',\n de: 'de-DE',\n el: 'el-GR',\n en: 'en-US',\n // es: '', # not the same value for all variants\n et: 'et-EE',\n fa: 'fa-IR',\n fi: 'fi-FI',\n // fr: '', #not the same value for all variants\n hr: 'hr-HR',\n hu: 'hu-HU',\n he: 'he-IL',\n id: 'id-ID',\n it: 'it-IT',\n ja: 'ja-JP',\n ko: 'ko-KR',\n lv: 'lv-LV',\n lt: 'lt-LT',\n nl: 'nl-NL',\n no: 'no-NO',\n pl: 'pl-PL',\n pt: 'pt-PT',\n ro: 'ro-RO',\n ru: 'ru-RU',\n sk: 'sk-SK',\n sl: 'sl-SI',\n srCyrl: 'sr-SP',\n srLatn: 'sr-SP',\n sv: 'sv-SE',\n th: 'th-TH',\n tr: 'tr-TR',\n az: 'az-AZ',\n uk: 'uk-UA',\n vi: 'vi-VN',\n zhHans: 'zh-CN',\n zhHant: 'zh-TW'\n }\n }, options);\n return {\n options: _options,\n instance: createInstance(_options, locale)\n };\n}\nfunction createInstance(options, locale) {\n const instance = reactive(typeof options.adapter === 'function'\n // eslint-disable-next-line new-cap\n ? new options.adapter({\n locale: options.locale[locale.current.value] ?? locale.current.value,\n formats: options.formats\n }) : options.adapter);\n watch(locale.current, value => {\n instance.locale = options.locale[value] ?? value ?? instance.locale;\n });\n return instance;\n}\nexport function useDate() {\n const options = inject(DateOptionsSymbol);\n if (!options) throw new Error('[Vuetify] Could not find injected date options');\n const locale = useLocale();\n return createInstance(options, locale);\n}\n\n// https://stackoverflow.com/questions/274861/how-do-i-calculate-the-week-number-given-a-date/275024#275024\nexport function getWeek(adapter, value) {\n const date = adapter.toJsDate(value);\n let year = date.getFullYear();\n let d1w1 = new Date(year, 0, 1);\n if (date < d1w1) {\n year = year - 1;\n d1w1 = new Date(year, 0, 1);\n } else {\n const tv = new Date(year + 1, 0, 1);\n if (date >= tv) {\n year = year + 1;\n d1w1 = tv;\n }\n }\n const diffTime = Math.abs(date.getTime() - d1w1.getTime());\n const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));\n return Math.floor(diffDays / 7) + 1;\n}\n//# sourceMappingURL=date.mjs.map","// Utilities\nimport { computed, inject, reactive, shallowRef, toRefs, watchEffect } from 'vue';\nimport { getCurrentInstanceName, mergeDeep, propsFactory } from \"../util/index.mjs\";\nimport { IN_BROWSER, SUPPORTS_TOUCH } from \"../util/globals.mjs\"; // Types\nexport const breakpoints = ['sm', 'md', 'lg', 'xl', 'xxl']; // no xs\n\nexport const DisplaySymbol = Symbol.for('vuetify:display');\nconst defaultDisplayOptions = {\n mobileBreakpoint: 'lg',\n thresholds: {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920,\n xxl: 2560\n }\n};\nconst parseDisplayOptions = function () {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultDisplayOptions;\n return mergeDeep(defaultDisplayOptions, options);\n};\nfunction getClientWidth(ssr) {\n return IN_BROWSER && !ssr ? window.innerWidth : typeof ssr === 'object' && ssr.clientWidth || 0;\n}\nfunction getClientHeight(ssr) {\n return IN_BROWSER && !ssr ? window.innerHeight : typeof ssr === 'object' && ssr.clientHeight || 0;\n}\nfunction getPlatform(ssr) {\n const userAgent = IN_BROWSER && !ssr ? window.navigator.userAgent : 'ssr';\n function match(regexp) {\n return Boolean(userAgent.match(regexp));\n }\n const android = match(/android/i);\n const ios = match(/iphone|ipad|ipod/i);\n const cordova = match(/cordova/i);\n const electron = match(/electron/i);\n const chrome = match(/chrome/i);\n const edge = match(/edge/i);\n const firefox = match(/firefox/i);\n const opera = match(/opera/i);\n const win = match(/win/i);\n const mac = match(/mac/i);\n const linux = match(/linux/i);\n return {\n android,\n ios,\n cordova,\n electron,\n chrome,\n edge,\n firefox,\n opera,\n win,\n mac,\n linux,\n touch: SUPPORTS_TOUCH,\n ssr: userAgent === 'ssr'\n };\n}\nexport function createDisplay(options, ssr) {\n const {\n thresholds,\n mobileBreakpoint\n } = parseDisplayOptions(options);\n const height = shallowRef(getClientHeight(ssr));\n const platform = shallowRef(getPlatform(ssr));\n const state = reactive({});\n const width = shallowRef(getClientWidth(ssr));\n function updateSize() {\n height.value = getClientHeight();\n width.value = getClientWidth();\n }\n function update() {\n updateSize();\n platform.value = getPlatform();\n }\n\n // eslint-disable-next-line max-statements\n watchEffect(() => {\n const xs = width.value < thresholds.sm;\n const sm = width.value < thresholds.md && !xs;\n const md = width.value < thresholds.lg && !(sm || xs);\n const lg = width.value < thresholds.xl && !(md || sm || xs);\n const xl = width.value < thresholds.xxl && !(lg || md || sm || xs);\n const xxl = width.value >= thresholds.xxl;\n const name = xs ? 'xs' : sm ? 'sm' : md ? 'md' : lg ? 'lg' : xl ? 'xl' : 'xxl';\n const breakpointValue = typeof mobileBreakpoint === 'number' ? mobileBreakpoint : thresholds[mobileBreakpoint];\n const mobile = width.value < breakpointValue;\n state.xs = xs;\n state.sm = sm;\n state.md = md;\n state.lg = lg;\n state.xl = xl;\n state.xxl = xxl;\n state.smAndUp = !xs;\n state.mdAndUp = !(xs || sm);\n state.lgAndUp = !(xs || sm || md);\n state.xlAndUp = !(xs || sm || md || lg);\n state.smAndDown = !(md || lg || xl || xxl);\n state.mdAndDown = !(lg || xl || xxl);\n state.lgAndDown = !(xl || xxl);\n state.xlAndDown = !xxl;\n state.name = name;\n state.height = height.value;\n state.width = width.value;\n state.mobile = mobile;\n state.mobileBreakpoint = mobileBreakpoint;\n state.platform = platform.value;\n state.thresholds = thresholds;\n });\n if (IN_BROWSER) {\n window.addEventListener('resize', updateSize, {\n passive: true\n });\n }\n return {\n ...toRefs(state),\n update,\n ssr: !!ssr\n };\n}\nexport const makeDisplayProps = propsFactory({\n mobile: {\n type: Boolean,\n default: false\n },\n mobileBreakpoint: [Number, String]\n}, 'display');\nexport function useDisplay() {\n let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n mobile: null\n };\n let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();\n const display = inject(DisplaySymbol);\n if (!display) throw new Error('Could not find Vuetify display injection');\n const mobile = computed(() => {\n if (props.mobile) {\n return true;\n } else if (typeof props.mobileBreakpoint === 'number') {\n return display.width.value < props.mobileBreakpoint;\n } else if (props.mobileBreakpoint) {\n return display.width.value < display.thresholds.value[props.mobileBreakpoint];\n } else if (props.mobile === null) {\n return display.mobile.value;\n } else {\n return false;\n }\n });\n const displayClasses = computed(() => {\n if (!name) return {};\n return {\n [`${name}--mobile`]: mobile.value\n };\n });\n return {\n ...display,\n displayClasses,\n mobile\n };\n}\n//# sourceMappingURL=display.mjs.map","// Utilities\nimport { computed, inject } from 'vue';\nimport { useRtl } from \"./locale.mjs\";\nimport { clamp, consoleWarn, mergeDeep, refElement } from \"../util/index.mjs\"; // Types\nexport const GoToSymbol = Symbol.for('vuetify:goto');\nfunction genDefaults() {\n return {\n container: undefined,\n duration: 300,\n layout: false,\n offset: 0,\n easing: 'easeInOutCubic',\n patterns: {\n linear: t => t,\n easeInQuad: t => t ** 2,\n easeOutQuad: t => t * (2 - t),\n easeInOutQuad: t => t < 0.5 ? 2 * t ** 2 : -1 + (4 - 2 * t) * t,\n easeInCubic: t => t ** 3,\n easeOutCubic: t => --t ** 3 + 1,\n easeInOutCubic: t => t < 0.5 ? 4 * t ** 3 : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1,\n easeInQuart: t => t ** 4,\n easeOutQuart: t => 1 - --t ** 4,\n easeInOutQuart: t => t < 0.5 ? 8 * t ** 4 : 1 - 8 * --t ** 4,\n easeInQuint: t => t ** 5,\n easeOutQuint: t => 1 + --t ** 5,\n easeInOutQuint: t => t < 0.5 ? 16 * t ** 5 : 1 + 16 * --t ** 5\n }\n };\n}\nfunction getContainer(el) {\n return getTarget(el) ?? (document.scrollingElement || document.body);\n}\nfunction getTarget(el) {\n return typeof el === 'string' ? document.querySelector(el) : refElement(el);\n}\nfunction getOffset(target, horizontal, rtl) {\n if (typeof target === 'number') return horizontal && rtl ? -target : target;\n let el = getTarget(target);\n let totalOffset = 0;\n while (el) {\n totalOffset += horizontal ? el.offsetLeft : el.offsetTop;\n el = el.offsetParent;\n }\n return totalOffset;\n}\nexport function createGoTo(options, locale) {\n return {\n rtl: locale.isRtl,\n options: mergeDeep(genDefaults(), options)\n };\n}\nexport async function scrollTo(_target, _options, horizontal, goTo) {\n const property = horizontal ? 'scrollLeft' : 'scrollTop';\n const options = mergeDeep(goTo?.options ?? genDefaults(), _options);\n const rtl = goTo?.rtl.value;\n const target = (typeof _target === 'number' ? _target : getTarget(_target)) ?? 0;\n const container = options.container === 'parent' && target instanceof HTMLElement ? target.parentElement : getContainer(options.container);\n const ease = typeof options.easing === 'function' ? options.easing : options.patterns[options.easing];\n if (!ease) throw new TypeError(`Easing function \"${options.easing}\" not found.`);\n let targetLocation;\n if (typeof target === 'number') {\n targetLocation = getOffset(target, horizontal, rtl);\n } else {\n targetLocation = getOffset(target, horizontal, rtl) - getOffset(container, horizontal, rtl);\n if (options.layout) {\n const styles = window.getComputedStyle(target);\n const layoutOffset = styles.getPropertyValue('--v-layout-top');\n if (layoutOffset) targetLocation -= parseInt(layoutOffset, 10);\n }\n }\n targetLocation += options.offset;\n targetLocation = clampTarget(container, targetLocation, !!rtl, !!horizontal);\n const startLocation = container[property] ?? 0;\n if (targetLocation === startLocation) return Promise.resolve(targetLocation);\n const startTime = performance.now();\n return new Promise(resolve => requestAnimationFrame(function step(currentTime) {\n const timeElapsed = currentTime - startTime;\n const progress = timeElapsed / options.duration;\n const location = Math.floor(startLocation + (targetLocation - startLocation) * ease(clamp(progress, 0, 1)));\n container[property] = location;\n\n // Allow for some jitter if target time has elapsed\n if (progress >= 1 && Math.abs(location - container[property]) < 10) {\n return resolve(targetLocation);\n } else if (progress > 2) {\n // The target might not be reachable\n consoleWarn('Scroll target is not reachable');\n return resolve(container[property]);\n }\n requestAnimationFrame(step);\n }));\n}\nexport function useGoTo() {\n let _options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const goToInstance = inject(GoToSymbol);\n const {\n isRtl\n } = useRtl();\n if (!goToInstance) throw new Error('[Vuetify] Could not find injected goto instance');\n const goTo = {\n ...goToInstance,\n // can be set via VLocaleProvider\n rtl: computed(() => goToInstance.rtl.value || isRtl.value)\n };\n async function go(target, options) {\n return scrollTo(target, mergeDeep(_options, options), false, goTo);\n }\n go.horizontal = async (target, options) => {\n return scrollTo(target, mergeDeep(_options, options), true, goTo);\n };\n return go;\n}\n\n/**\n * Clamp target value to achieve a smooth scroll animation\n * when the value goes outside the scroll container size\n */\nfunction clampTarget(container, value, rtl, horizontal) {\n const {\n scrollWidth,\n scrollHeight\n } = container;\n const [containerWidth, containerHeight] = container === document.scrollingElement ? [window.innerWidth, window.innerHeight] : [container.offsetWidth, container.offsetHeight];\n let min;\n let max;\n if (horizontal) {\n if (rtl) {\n min = -(scrollWidth - containerWidth);\n max = 0;\n } else {\n min = 0;\n max = scrollWidth - containerWidth;\n }\n } else {\n min = 0;\n max = scrollHeight + -containerHeight;\n }\n return Math.max(Math.min(value, max), min);\n}\n//# sourceMappingURL=goto.mjs.map","// Composables\nimport { VClassIcon } from \"../composables/icons.mjs\"; // Utilities\nimport { h } from 'vue';\n\n// Types\n\nconst aliases = {\n collapse: 'mdi-chevron-up',\n complete: 'mdi-check',\n cancel: 'mdi-close-circle',\n close: 'mdi-close',\n delete: 'mdi-close-circle',\n // delete (e.g. v-chip close)\n clear: 'mdi-close-circle',\n success: 'mdi-check-circle',\n info: 'mdi-information',\n warning: 'mdi-alert-circle',\n error: 'mdi-close-circle',\n prev: 'mdi-chevron-left',\n next: 'mdi-chevron-right',\n checkboxOn: 'mdi-checkbox-marked',\n checkboxOff: 'mdi-checkbox-blank-outline',\n checkboxIndeterminate: 'mdi-minus-box',\n delimiter: 'mdi-circle',\n // for carousel\n sortAsc: 'mdi-arrow-up',\n sortDesc: 'mdi-arrow-down',\n expand: 'mdi-chevron-down',\n menu: 'mdi-menu',\n subgroup: 'mdi-menu-down',\n dropdown: 'mdi-menu-down',\n radioOn: 'mdi-radiobox-marked',\n radioOff: 'mdi-radiobox-blank',\n edit: 'mdi-pencil',\n ratingEmpty: 'mdi-star-outline',\n ratingFull: 'mdi-star',\n ratingHalf: 'mdi-star-half-full',\n loading: 'mdi-cached',\n first: 'mdi-page-first',\n last: 'mdi-page-last',\n unfold: 'mdi-unfold-more-horizontal',\n file: 'mdi-paperclip',\n plus: 'mdi-plus',\n minus: 'mdi-minus',\n calendar: 'mdi-calendar',\n treeviewCollapse: 'mdi-menu-down',\n treeviewExpand: 'mdi-menu-right',\n eyeDropper: 'mdi-eyedropper',\n upload: 'mdi-cloud-upload'\n};\nconst mdi = {\n // Not using mergeProps here, functional components merge props by default (?)\n component: props => h(VClassIcon, {\n ...props,\n class: 'mdi'\n })\n};\nexport { aliases, mdi };\n//# sourceMappingURL=mdi.mjs.map","import { createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\n// Icons\nimport { aliases, mdi } from \"../iconsets/mdi.mjs\"; // Utilities\nimport { computed, inject, unref } from 'vue';\nimport { consoleWarn, defineComponent, genericComponent, mergeDeep, propsFactory } from \"../util/index.mjs\"; // Types\nexport const IconValue = [String, Function, Object, Array];\nexport const IconSymbol = Symbol.for('vuetify:icons');\nexport const makeIconProps = propsFactory({\n icon: {\n type: IconValue\n },\n // Could not remove this and use makeTagProps, types complained because it is not required\n tag: {\n type: String,\n required: true\n }\n}, 'icon');\nexport const VComponentIcon = genericComponent()({\n name: 'VComponentIcon',\n props: makeIconProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n return () => {\n const Icon = props.icon;\n return _createVNode(props.tag, null, {\n default: () => [props.icon ? _createVNode(Icon, null, null) : slots.default?.()]\n });\n };\n }\n});\nexport const VSvgIcon = defineComponent({\n name: 'VSvgIcon',\n inheritAttrs: false,\n props: makeIconProps(),\n setup(props, _ref2) {\n let {\n attrs\n } = _ref2;\n return () => {\n return _createVNode(props.tag, _mergeProps(attrs, {\n \"style\": null\n }), {\n default: () => [_createVNode(\"svg\", {\n \"class\": \"v-icon__svg\",\n \"xmlns\": \"http://www.w3.org/2000/svg\",\n \"viewBox\": \"0 0 24 24\",\n \"role\": \"img\",\n \"aria-hidden\": \"true\"\n }, [Array.isArray(props.icon) ? props.icon.map(path => Array.isArray(path) ? _createVNode(\"path\", {\n \"d\": path[0],\n \"fill-opacity\": path[1]\n }, null) : _createVNode(\"path\", {\n \"d\": path\n }, null)) : _createVNode(\"path\", {\n \"d\": props.icon\n }, null)])]\n });\n };\n }\n});\nexport const VLigatureIcon = defineComponent({\n name: 'VLigatureIcon',\n props: makeIconProps(),\n setup(props) {\n return () => {\n return _createVNode(props.tag, null, {\n default: () => [props.icon]\n });\n };\n }\n});\nexport const VClassIcon = defineComponent({\n name: 'VClassIcon',\n props: makeIconProps(),\n setup(props) {\n return () => {\n return _createVNode(props.tag, {\n \"class\": props.icon\n }, null);\n };\n }\n});\nfunction genDefaults() {\n return {\n svg: {\n component: VSvgIcon\n },\n class: {\n component: VClassIcon\n }\n };\n}\n\n// Composables\nexport function createIcons(options) {\n const sets = genDefaults();\n const defaultSet = options?.defaultSet ?? 'mdi';\n if (defaultSet === 'mdi' && !sets.mdi) {\n sets.mdi = mdi;\n }\n return mergeDeep({\n defaultSet,\n sets,\n aliases: {\n ...aliases,\n /* eslint-disable max-len */\n vuetify: ['M8.2241 14.2009L12 21L22 3H14.4459L8.2241 14.2009Z', ['M7.26303 12.4733L7.00113 12L2 3H12.5261C12.5261 3 12.5261 3 12.5261 3L7.26303 12.4733Z', 0.6]],\n 'vuetify-outline': 'svg:M7.26 12.47 12.53 3H2L7.26 12.47ZM14.45 3 8.22 14.2 12 21 22 3H14.45ZM18.6 5 12 16.88 10.51 14.2 15.62 5ZM7.26 8.35 5.4 5H9.13L7.26 8.35Z',\n 'vuetify-play': ['m6.376 13.184-4.11-7.192C1.505 4.66 2.467 3 4.003 3h8.532l-.953 1.576-.006.01-.396.677c-.429.732-.214 1.507.194 2.015.404.503 1.092.878 1.869.806a3.72 3.72 0 0 1 1.005.022c.276.053.434.143.523.237.138.146.38.635-.25 2.09-.893 1.63-1.553 1.722-1.847 1.677-.213-.033-.468-.158-.756-.406a4.95 4.95 0 0 1-.8-.927c-.39-.564-1.04-.84-1.66-.846-.625-.006-1.316.27-1.693.921l-.478.826-.911 1.506Z', ['M9.093 11.552c.046-.079.144-.15.32-.148a.53.53 0 0 1 .43.207c.285.414.636.847 1.046 1.2.405.35.914.662 1.516.754 1.334.205 2.502-.698 3.48-2.495l.014-.028.013-.03c.687-1.574.774-2.852-.005-3.675-.37-.391-.861-.586-1.333-.676a5.243 5.243 0 0 0-1.447-.044c-.173.016-.393-.073-.54-.257-.145-.18-.127-.316-.082-.392l.393-.672L14.287 3h5.71c1.536 0 2.499 1.659 1.737 2.992l-7.997 13.996c-.768 1.344-2.706 1.344-3.473 0l-3.037-5.314 1.377-2.278.004-.006.004-.007.481-.831Z', 0.6]]\n /* eslint-enable max-len */\n }\n }, options);\n}\nexport const useIcon = props => {\n const icons = inject(IconSymbol);\n if (!icons) throw new Error('Missing Vuetify Icons provide!');\n const iconData = computed(() => {\n const iconAlias = unref(props);\n if (!iconAlias) return {\n component: VComponentIcon\n };\n let icon = iconAlias;\n if (typeof icon === 'string') {\n icon = icon.trim();\n if (icon.startsWith('$')) {\n icon = icons.aliases?.[icon.slice(1)];\n }\n }\n if (!icon) consoleWarn(`Could not find aliased icon \"${iconAlias}\"`);\n if (Array.isArray(icon)) {\n return {\n component: VSvgIcon,\n icon\n };\n } else if (typeof icon !== 'string') {\n return {\n component: VComponentIcon,\n icon\n };\n }\n const iconSetName = Object.keys(icons.sets).find(setName => typeof icon === 'string' && icon.startsWith(`${setName}:`));\n const iconName = iconSetName ? icon.slice(iconSetName.length + 1) : icon;\n const iconSet = icons.sets[iconSetName ?? icons.defaultSet];\n return {\n component: iconSet.component,\n icon: iconName\n };\n });\n return {\n iconData\n };\n};\n//# sourceMappingURL=icons.mjs.map","// Utilities\nimport { computed, inject, provide, ref, watch, watchEffect } from 'vue';\nimport { createRange, darken, getCurrentInstance, getForeground, getLuma, IN_BROWSER, lighten, mergeDeep, parseColor, propsFactory, RGBtoHex } from \"../util/index.mjs\"; // Types\nexport const ThemeSymbol = Symbol.for('vuetify:theme');\nexport const makeThemeProps = propsFactory({\n theme: String\n}, 'theme');\nfunction genDefaults() {\n return {\n defaultTheme: 'light',\n variations: {\n colors: [],\n lighten: 0,\n darken: 0\n },\n themes: {\n light: {\n dark: false,\n colors: {\n background: '#FFFFFF',\n surface: '#FFFFFF',\n 'surface-bright': '#FFFFFF',\n 'surface-light': '#EEEEEE',\n 'surface-variant': '#424242',\n 'on-surface-variant': '#EEEEEE',\n primary: '#1867C0',\n 'primary-darken-1': '#1F5592',\n secondary: '#48A9A6',\n 'secondary-darken-1': '#018786',\n error: '#B00020',\n info: '#2196F3',\n success: '#4CAF50',\n warning: '#FB8C00'\n },\n variables: {\n 'border-color': '#000000',\n 'border-opacity': 0.12,\n 'high-emphasis-opacity': 0.87,\n 'medium-emphasis-opacity': 0.60,\n 'disabled-opacity': 0.38,\n 'idle-opacity': 0.04,\n 'hover-opacity': 0.04,\n 'focus-opacity': 0.12,\n 'selected-opacity': 0.08,\n 'activated-opacity': 0.12,\n 'pressed-opacity': 0.12,\n 'dragged-opacity': 0.08,\n 'theme-kbd': '#212529',\n 'theme-on-kbd': '#FFFFFF',\n 'theme-code': '#F5F5F5',\n 'theme-on-code': '#000000'\n }\n },\n dark: {\n dark: true,\n colors: {\n background: '#121212',\n surface: '#212121',\n 'surface-bright': '#ccbfd6',\n 'surface-light': '#424242',\n 'surface-variant': '#a3a3a3',\n 'on-surface-variant': '#424242',\n primary: '#2196F3',\n 'primary-darken-1': '#277CC1',\n secondary: '#54B6B2',\n 'secondary-darken-1': '#48A9A6',\n error: '#CF6679',\n info: '#2196F3',\n success: '#4CAF50',\n warning: '#FB8C00'\n },\n variables: {\n 'border-color': '#FFFFFF',\n 'border-opacity': 0.12,\n 'high-emphasis-opacity': 1,\n 'medium-emphasis-opacity': 0.70,\n 'disabled-opacity': 0.50,\n 'idle-opacity': 0.10,\n 'hover-opacity': 0.04,\n 'focus-opacity': 0.12,\n 'selected-opacity': 0.08,\n 'activated-opacity': 0.12,\n 'pressed-opacity': 0.16,\n 'dragged-opacity': 0.08,\n 'theme-kbd': '#212529',\n 'theme-on-kbd': '#FFFFFF',\n 'theme-code': '#343434',\n 'theme-on-code': '#CCCCCC'\n }\n }\n }\n };\n}\nfunction parseThemeOptions() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : genDefaults();\n const defaults = genDefaults();\n if (!options) return {\n ...defaults,\n isDisabled: true\n };\n const themes = {};\n for (const [key, theme] of Object.entries(options.themes ?? {})) {\n const defaultTheme = theme.dark || key === 'dark' ? defaults.themes?.dark : defaults.themes?.light;\n themes[key] = mergeDeep(defaultTheme, theme);\n }\n return mergeDeep(defaults, {\n ...options,\n themes\n });\n}\n\n// Composables\nexport function createTheme(options) {\n const parsedOptions = parseThemeOptions(options);\n const name = ref(parsedOptions.defaultTheme);\n const themes = ref(parsedOptions.themes);\n const computedThemes = computed(() => {\n const acc = {};\n for (const [name, original] of Object.entries(themes.value)) {\n const theme = acc[name] = {\n ...original,\n colors: {\n ...original.colors\n }\n };\n if (parsedOptions.variations) {\n for (const name of parsedOptions.variations.colors) {\n const color = theme.colors[name];\n if (!color) continue;\n for (const variation of ['lighten', 'darken']) {\n const fn = variation === 'lighten' ? lighten : darken;\n for (const amount of createRange(parsedOptions.variations[variation], 1)) {\n theme.colors[`${name}-${variation}-${amount}`] = RGBtoHex(fn(parseColor(color), amount));\n }\n }\n }\n }\n for (const color of Object.keys(theme.colors)) {\n if (/^on-[a-z]/.test(color) || theme.colors[`on-${color}`]) continue;\n const onColor = `on-${color}`;\n const colorVal = parseColor(theme.colors[color]);\n theme.colors[onColor] = getForeground(colorVal);\n }\n }\n return acc;\n });\n const current = computed(() => computedThemes.value[name.value]);\n const styles = computed(() => {\n const lines = [];\n if (current.value?.dark) {\n createCssClass(lines, ':root', ['color-scheme: dark']);\n }\n createCssClass(lines, ':root', genCssVariables(current.value));\n for (const [themeName, theme] of Object.entries(computedThemes.value)) {\n createCssClass(lines, `.v-theme--${themeName}`, [`color-scheme: ${theme.dark ? 'dark' : 'normal'}`, ...genCssVariables(theme)]);\n }\n const bgLines = [];\n const fgLines = [];\n const colors = new Set(Object.values(computedThemes.value).flatMap(theme => Object.keys(theme.colors)));\n for (const key of colors) {\n if (/^on-[a-z]/.test(key)) {\n createCssClass(fgLines, `.${key}`, [`color: rgb(var(--v-theme-${key})) !important`]);\n } else {\n createCssClass(bgLines, `.bg-${key}`, [`--v-theme-overlay-multiplier: var(--v-theme-${key}-overlay-multiplier)`, `background-color: rgb(var(--v-theme-${key})) !important`, `color: rgb(var(--v-theme-on-${key})) !important`]);\n createCssClass(fgLines, `.text-${key}`, [`color: rgb(var(--v-theme-${key})) !important`]);\n createCssClass(fgLines, `.border-${key}`, [`--v-border-color: var(--v-theme-${key})`]);\n }\n }\n lines.push(...bgLines, ...fgLines);\n return lines.map((str, i) => i === 0 ? str : ` ${str}`).join('');\n });\n function getHead() {\n return {\n style: [{\n children: styles.value,\n id: 'vuetify-theme-stylesheet',\n nonce: parsedOptions.cspNonce || false\n }]\n };\n }\n function install(app) {\n if (parsedOptions.isDisabled) return;\n const head = app._context.provides.usehead;\n if (head) {\n if (head.push) {\n const entry = head.push(getHead);\n if (IN_BROWSER) {\n watch(styles, () => {\n entry.patch(getHead);\n });\n }\n } else {\n if (IN_BROWSER) {\n head.addHeadObjs(computed(getHead));\n watchEffect(() => head.updateDOM());\n } else {\n head.addHeadObjs(getHead());\n }\n }\n } else {\n let styleEl = IN_BROWSER ? document.getElementById('vuetify-theme-stylesheet') : null;\n if (IN_BROWSER) {\n watch(styles, updateStyles, {\n immediate: true\n });\n } else {\n updateStyles();\n }\n function updateStyles() {\n if (typeof document !== 'undefined' && !styleEl) {\n const el = document.createElement('style');\n el.type = 'text/css';\n el.id = 'vuetify-theme-stylesheet';\n if (parsedOptions.cspNonce) el.setAttribute('nonce', parsedOptions.cspNonce);\n styleEl = el;\n document.head.appendChild(styleEl);\n }\n if (styleEl) styleEl.innerHTML = styles.value;\n }\n }\n }\n const themeClasses = computed(() => parsedOptions.isDisabled ? undefined : `v-theme--${name.value}`);\n return {\n install,\n isDisabled: parsedOptions.isDisabled,\n name,\n themes,\n current,\n computedThemes,\n themeClasses,\n styles,\n global: {\n name,\n current\n }\n };\n}\nexport function provideTheme(props) {\n getCurrentInstance('provideTheme');\n const theme = inject(ThemeSymbol, null);\n if (!theme) throw new Error('Could not find Vuetify theme injection');\n const name = computed(() => {\n return props.theme ?? theme.name.value;\n });\n const current = computed(() => theme.themes.value[name.value]);\n const themeClasses = computed(() => theme.isDisabled ? undefined : `v-theme--${name.value}`);\n const newTheme = {\n ...theme,\n name,\n current,\n themeClasses\n };\n provide(ThemeSymbol, newTheme);\n return newTheme;\n}\nexport function useTheme() {\n getCurrentInstance('useTheme');\n const theme = inject(ThemeSymbol, null);\n if (!theme) throw new Error('Could not find Vuetify theme injection');\n return theme;\n}\nfunction createCssClass(lines, selector, content) {\n lines.push(`${selector} {\\n`, ...content.map(line => ` ${line};\\n`), '}\\n');\n}\nfunction genCssVariables(theme) {\n const lightOverlay = theme.dark ? 2 : 1;\n const darkOverlay = theme.dark ? 1 : 2;\n const variables = [];\n for (const [key, value] of Object.entries(theme.colors)) {\n const rgb = parseColor(value);\n variables.push(`--v-theme-${key}: ${rgb.r},${rgb.g},${rgb.b}`);\n if (!key.startsWith('on-')) {\n variables.push(`--v-theme-${key}-overlay-multiplier: ${getLuma(value) > 0.18 ? lightOverlay : darkOverlay}`);\n }\n }\n for (const [key, value] of Object.entries(theme.variables)) {\n const color = typeof value === 'string' && value.startsWith('#') ? parseColor(value) : undefined;\n const rgb = color ? `${color.r}, ${color.g}, ${color.b}` : undefined;\n variables.push(`--v-${key}: ${rgb ?? value}`);\n }\n return variables;\n}\n//# sourceMappingURL=theme.mjs.map","// Utilities\nimport { onBeforeUnmount, readonly, ref, watch } from 'vue';\nimport { templateRef } from \"../util/index.mjs\";\nimport { IN_BROWSER } from \"../util/globals.mjs\"; // Types\nexport function useResizeObserver(callback) {\n let box = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'content';\n const resizeRef = templateRef();\n const contentRect = ref();\n if (IN_BROWSER) {\n const observer = new ResizeObserver(entries => {\n callback?.(entries, observer);\n if (!entries.length) return;\n if (box === 'content') {\n contentRect.value = entries[0].contentRect;\n } else {\n contentRect.value = entries[0].target.getBoundingClientRect();\n }\n });\n onBeforeUnmount(() => {\n observer.disconnect();\n });\n watch(() => resizeRef.el, (newValue, oldValue) => {\n if (oldValue) {\n observer.unobserve(oldValue);\n contentRect.value = undefined;\n }\n if (newValue) observer.observe(newValue);\n }, {\n flush: 'post'\n });\n }\n return {\n resizeRef,\n contentRect: readonly(contentRect)\n };\n}\n//# sourceMappingURL=resizeObserver.mjs.map","// Composables\nimport { useResizeObserver } from \"./resizeObserver.mjs\"; // Utilities\nimport { computed, inject, onActivated, onBeforeUnmount, onDeactivated, onMounted, provide, reactive, ref, shallowRef } from 'vue';\nimport { convertToUnit, findChildrenWithProvide, getCurrentInstance, getUid, propsFactory } from \"../util/index.mjs\"; // Types\nexport const VuetifyLayoutKey = Symbol.for('vuetify:layout');\nexport const VuetifyLayoutItemKey = Symbol.for('vuetify:layout-item');\nconst ROOT_ZINDEX = 1000;\nexport const makeLayoutProps = propsFactory({\n overlaps: {\n type: Array,\n default: () => []\n },\n fullHeight: Boolean\n}, 'layout');\n\n// Composables\nexport const makeLayoutItemProps = propsFactory({\n name: {\n type: String\n },\n order: {\n type: [Number, String],\n default: 0\n },\n absolute: Boolean\n}, 'layout-item');\nexport function useLayout() {\n const layout = inject(VuetifyLayoutKey);\n if (!layout) throw new Error('[Vuetify] Could not find injected layout');\n return {\n getLayoutItem: layout.getLayoutItem,\n mainRect: layout.mainRect,\n mainStyles: layout.mainStyles\n };\n}\nexport function useLayoutItem(options) {\n const layout = inject(VuetifyLayoutKey);\n if (!layout) throw new Error('[Vuetify] Could not find injected layout');\n const id = options.id ?? `layout-item-${getUid()}`;\n const vm = getCurrentInstance('useLayoutItem');\n provide(VuetifyLayoutItemKey, {\n id\n });\n const isKeptAlive = shallowRef(false);\n onDeactivated(() => isKeptAlive.value = true);\n onActivated(() => isKeptAlive.value = false);\n const {\n layoutItemStyles,\n layoutItemScrimStyles\n } = layout.register(vm, {\n ...options,\n active: computed(() => isKeptAlive.value ? false : options.active.value),\n id\n });\n onBeforeUnmount(() => layout.unregister(id));\n return {\n layoutItemStyles,\n layoutRect: layout.layoutRect,\n layoutItemScrimStyles\n };\n}\nconst generateLayers = (layout, positions, layoutSizes, activeItems) => {\n let previousLayer = {\n top: 0,\n left: 0,\n right: 0,\n bottom: 0\n };\n const layers = [{\n id: '',\n layer: {\n ...previousLayer\n }\n }];\n for (const id of layout) {\n const position = positions.get(id);\n const amount = layoutSizes.get(id);\n const active = activeItems.get(id);\n if (!position || !amount || !active) continue;\n const layer = {\n ...previousLayer,\n [position.value]: parseInt(previousLayer[position.value], 10) + (active.value ? parseInt(amount.value, 10) : 0)\n };\n layers.push({\n id,\n layer\n });\n previousLayer = layer;\n }\n return layers;\n};\nexport function createLayout(props) {\n const parentLayout = inject(VuetifyLayoutKey, null);\n const rootZIndex = computed(() => parentLayout ? parentLayout.rootZIndex.value - 100 : ROOT_ZINDEX);\n const registered = ref([]);\n const positions = reactive(new Map());\n const layoutSizes = reactive(new Map());\n const priorities = reactive(new Map());\n const activeItems = reactive(new Map());\n const disabledTransitions = reactive(new Map());\n const {\n resizeRef,\n contentRect: layoutRect\n } = useResizeObserver();\n const computedOverlaps = computed(() => {\n const map = new Map();\n const overlaps = props.overlaps ?? [];\n for (const overlap of overlaps.filter(item => item.includes(':'))) {\n const [top, bottom] = overlap.split(':');\n if (!registered.value.includes(top) || !registered.value.includes(bottom)) continue;\n const topPosition = positions.get(top);\n const bottomPosition = positions.get(bottom);\n const topAmount = layoutSizes.get(top);\n const bottomAmount = layoutSizes.get(bottom);\n if (!topPosition || !bottomPosition || !topAmount || !bottomAmount) continue;\n map.set(bottom, {\n position: topPosition.value,\n amount: parseInt(topAmount.value, 10)\n });\n map.set(top, {\n position: bottomPosition.value,\n amount: -parseInt(bottomAmount.value, 10)\n });\n }\n return map;\n });\n const layers = computed(() => {\n const uniquePriorities = [...new Set([...priorities.values()].map(p => p.value))].sort((a, b) => a - b);\n const layout = [];\n for (const p of uniquePriorities) {\n const items = registered.value.filter(id => priorities.get(id)?.value === p);\n layout.push(...items);\n }\n return generateLayers(layout, positions, layoutSizes, activeItems);\n });\n const transitionsEnabled = computed(() => {\n return !Array.from(disabledTransitions.values()).some(ref => ref.value);\n });\n const mainRect = computed(() => {\n return layers.value[layers.value.length - 1].layer;\n });\n const mainStyles = computed(() => {\n return {\n '--v-layout-left': convertToUnit(mainRect.value.left),\n '--v-layout-right': convertToUnit(mainRect.value.right),\n '--v-layout-top': convertToUnit(mainRect.value.top),\n '--v-layout-bottom': convertToUnit(mainRect.value.bottom),\n ...(transitionsEnabled.value ? undefined : {\n transition: 'none'\n })\n };\n });\n const items = computed(() => {\n return layers.value.slice(1).map((_ref, index) => {\n let {\n id\n } = _ref;\n const {\n layer\n } = layers.value[index];\n const size = layoutSizes.get(id);\n const position = positions.get(id);\n return {\n id,\n ...layer,\n size: Number(size.value),\n position: position.value\n };\n });\n });\n const getLayoutItem = id => {\n return items.value.find(item => item.id === id);\n };\n const rootVm = getCurrentInstance('createLayout');\n const isMounted = shallowRef(false);\n onMounted(() => {\n isMounted.value = true;\n });\n provide(VuetifyLayoutKey, {\n register: (vm, _ref2) => {\n let {\n id,\n order,\n position,\n layoutSize,\n elementSize,\n active,\n disableTransitions,\n absolute\n } = _ref2;\n priorities.set(id, order);\n positions.set(id, position);\n layoutSizes.set(id, layoutSize);\n activeItems.set(id, active);\n disableTransitions && disabledTransitions.set(id, disableTransitions);\n const instances = findChildrenWithProvide(VuetifyLayoutItemKey, rootVm?.vnode);\n const instanceIndex = instances.indexOf(vm);\n if (instanceIndex > -1) registered.value.splice(instanceIndex, 0, id);else registered.value.push(id);\n const index = computed(() => items.value.findIndex(i => i.id === id));\n const zIndex = computed(() => rootZIndex.value + layers.value.length * 2 - index.value * 2);\n const layoutItemStyles = computed(() => {\n const isHorizontal = position.value === 'left' || position.value === 'right';\n const isOppositeHorizontal = position.value === 'right';\n const isOppositeVertical = position.value === 'bottom';\n const size = elementSize.value ?? layoutSize.value;\n const unit = size === 0 ? '%' : 'px';\n const styles = {\n [position.value]: 0,\n zIndex: zIndex.value,\n transform: `translate${isHorizontal ? 'X' : 'Y'}(${(active.value ? 0 : -(size === 0 ? 100 : size)) * (isOppositeHorizontal || isOppositeVertical ? -1 : 1)}${unit})`,\n position: absolute.value || rootZIndex.value !== ROOT_ZINDEX ? 'absolute' : 'fixed',\n ...(transitionsEnabled.value ? undefined : {\n transition: 'none'\n })\n };\n if (!isMounted.value) return styles;\n const item = items.value[index.value];\n if (!item) throw new Error(`[Vuetify] Could not find layout item \"${id}\"`);\n const overlap = computedOverlaps.value.get(id);\n if (overlap) {\n item[overlap.position] += overlap.amount;\n }\n return {\n ...styles,\n height: isHorizontal ? `calc(100% - ${item.top}px - ${item.bottom}px)` : elementSize.value ? `${elementSize.value}px` : undefined,\n left: isOppositeHorizontal ? undefined : `${item.left}px`,\n right: isOppositeHorizontal ? `${item.right}px` : undefined,\n top: position.value !== 'bottom' ? `${item.top}px` : undefined,\n bottom: position.value !== 'top' ? `${item.bottom}px` : undefined,\n width: !isHorizontal ? `calc(100% - ${item.left}px - ${item.right}px)` : elementSize.value ? `${elementSize.value}px` : undefined\n };\n });\n const layoutItemScrimStyles = computed(() => ({\n zIndex: zIndex.value - 1\n }));\n return {\n layoutItemStyles,\n layoutItemScrimStyles,\n zIndex\n };\n },\n unregister: id => {\n priorities.delete(id);\n positions.delete(id);\n layoutSizes.delete(id);\n activeItems.delete(id);\n disabledTransitions.delete(id);\n registered.value = registered.value.filter(v => v !== id);\n },\n mainRect,\n mainStyles,\n getLayoutItem,\n items,\n layoutRect,\n rootZIndex\n });\n const layoutClasses = computed(() => ['v-layout', {\n 'v-layout--full-height': props.fullHeight\n }]);\n const layoutStyles = computed(() => ({\n zIndex: parentLayout ? rootZIndex.value : undefined,\n position: parentLayout ? 'relative' : undefined,\n overflow: parentLayout ? 'hidden' : undefined\n }));\n return {\n layoutClasses,\n layoutStyles,\n getLayoutItem,\n items,\n layoutRect,\n layoutRef: resizeRef\n };\n}\n//# sourceMappingURL=layout.mjs.map","// Composables\nimport { createDate, DateAdapterSymbol, DateOptionsSymbol } from \"./composables/date/date.mjs\";\nimport { createDefaults, DefaultsSymbol } from \"./composables/defaults.mjs\";\nimport { createDisplay, DisplaySymbol } from \"./composables/display.mjs\";\nimport { createGoTo, GoToSymbol } from \"./composables/goto.mjs\";\nimport { createIcons, IconSymbol } from \"./composables/icons.mjs\";\nimport { createLocale, LocaleSymbol } from \"./composables/locale.mjs\";\nimport { createTheme, ThemeSymbol } from \"./composables/theme.mjs\"; // Utilities\nimport { nextTick, reactive } from 'vue';\nimport { defineComponent, getUid, IN_BROWSER, mergeDeep } from \"./util/index.mjs\"; // Types\nexport * from \"./composables/index.mjs\";\nexport function createVuetify() {\n let vuetify = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const {\n blueprint,\n ...rest\n } = vuetify;\n const options = mergeDeep(blueprint, rest);\n const {\n aliases = {},\n components = {},\n directives = {}\n } = options;\n const defaults = createDefaults(options.defaults);\n const display = createDisplay(options.display, options.ssr);\n const theme = createTheme(options.theme);\n const icons = createIcons(options.icons);\n const locale = createLocale(options.locale);\n const date = createDate(options.date, locale);\n const goTo = createGoTo(options.goTo, locale);\n const install = app => {\n for (const key in directives) {\n app.directive(key, directives[key]);\n }\n for (const key in components) {\n app.component(key, components[key]);\n }\n for (const key in aliases) {\n app.component(key, defineComponent({\n ...aliases[key],\n name: key,\n aliasName: aliases[key].name\n }));\n }\n theme.install(app);\n app.provide(DefaultsSymbol, defaults);\n app.provide(DisplaySymbol, display);\n app.provide(ThemeSymbol, theme);\n app.provide(IconSymbol, icons);\n app.provide(LocaleSymbol, locale);\n app.provide(DateOptionsSymbol, date.options);\n app.provide(DateAdapterSymbol, date.instance);\n app.provide(GoToSymbol, goTo);\n if (IN_BROWSER && options.ssr) {\n if (app.$nuxt) {\n app.$nuxt.hook('app:suspense:resolve', () => {\n display.update();\n });\n } else {\n const {\n mount\n } = app;\n app.mount = function () {\n const vm = mount(...arguments);\n nextTick(() => display.update());\n app.mount = mount;\n return vm;\n };\n }\n }\n getUid.reset();\n if (typeof __VUE_OPTIONS_API__ !== 'boolean' || __VUE_OPTIONS_API__) {\n app.mixin({\n computed: {\n $vuetify() {\n return reactive({\n defaults: inject.call(this, DefaultsSymbol),\n display: inject.call(this, DisplaySymbol),\n theme: inject.call(this, ThemeSymbol),\n icons: inject.call(this, IconSymbol),\n locale: inject.call(this, LocaleSymbol),\n date: inject.call(this, DateAdapterSymbol)\n });\n }\n }\n });\n }\n };\n return {\n install,\n defaults,\n display,\n theme,\n icons,\n locale,\n date,\n goTo\n };\n}\nexport const version = \"3.7.15\";\ncreateVuetify.version = version;\n\n// Vue's inject() can only be used in setup\nfunction inject(key) {\n const vm = this.$;\n const provides = vm.parent?.provides ?? vm.vnode.appContext?.provides;\n if (provides && key in provides) {\n return provides[key];\n }\n}\n//# sourceMappingURL=framework.mjs.map","import { ref, readonly } from 'vue';\nimport config from '../../skuilder.config.json';\n\n// This would be replaced by actual course configuration in a real implementation\nconst defaultConfig = {\n title: config.title ? config.title : '[UNSET] Course Title',\n description: 'This is the devenv test course setup.',\n logo: '',\n darkMode: false,\n links: [\n { text: 'About', url: '/about' },\n { text: 'Help', url: '/help' },\n ],\n copyright: '',\n};\n\nexport function useCourseConfig() {\n const courseConfig = ref(defaultConfig);\n\n // Later this would load from a configuration file or API\n const loadConfig = async () => {\n // In a real implementation, this would load configuration\n // courseConfig.value = await loadCourseConfig();\n };\n\n // Initialize\n loadConfig();\n\n return {\n courseConfig: readonly(courseConfig),\n loadConfig,\n };\n}\n","<template>\n <div>\n <v-app-bar>\n <v-app-bar-nav-icon v-if=\"isMobile\" @click=\"drawer = !drawer\"></v-app-bar-nav-icon>\n\n <v-toolbar-title class=\"d-flex align-center\">\n <img v-if=\"logo\" :src=\"logo\" alt=\"Course Logo\" height=\"32\" class=\"mr-2\" />\n {{ title }}\n </v-toolbar-title>\n\n <v-spacer></v-spacer>\n\n <div v-if=\"!isMobile\" class=\"d-flex\">\n <v-btn v-for=\"item in menuItems\" :key=\"item.text\" :to=\"item.path\" text>\n {{ item.text }}\n </v-btn>\n </div>\n\n <v-divider vertical class=\"mx-2\"></v-divider>\n\n <UserLoginAndRegistrationContainer :show-login-button=\"true\" redirect-to-path=\"/study\" />\n </v-app-bar>\n\n <v-navigation-drawer v-model=\"drawer\" temporary v-if=\"isMobile\">\n <v-list>\n <v-list-item v-for=\"item in menuItems\" :key=\"item.text\" :to=\"item.path\" @click=\"drawer = false\">\n <v-list-item-title>{{ item.text }}</v-list-item-title>\n </v-list-item>\n </v-list>\n </v-navigation-drawer>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed } from 'vue';\nimport { useDisplay } from 'vuetify';\nimport { UserLoginAndRegistrationContainer } from '@vue-skuilder/common-ui';\n\n// Define props\ndefineProps<{\n title?: string;\n logo?: string;\n}>();\n\nconst { mobile } = useDisplay();\nconst isMobile = computed(() => mobile.value);\nconst drawer = ref(false);\n\nconst menuItems = ref([\n { text: 'Home', path: '/' },\n { text: 'Study', path: '/study' },\n { text: 'Browse', path: '/browse' },\n // Progress view not implemented - will be accessible via UserChip->Stats\n]);\n</script>\n","<template>\n <v-app>\n <course-header :title=\"courseConfig.title\" :logo=\"courseConfig.logo\" />\n\n <v-main>\n <router-view />\n </v-main>\n\n <!-- <course-footer :links=\"courseConfig.links\" :copyright=\"courseConfig.copyright\" /> -->\n <SkMouseTrap />\n \n <v-footer app class=\"pa-0\" color=\"transparent\">\n <v-card flat width=\"100%\" class=\"text-center\">\n <v-card-text class=\"text-body-2 text-medium-emphasis\">\n <v-icon small class=\"me-1\">mdi-keyboard</v-icon>\n Tip: Hold <kbd>Ctrl</kbd> to see keyboard shortcuts or press <kbd>?</kbd> to view all shortcuts\n </v-card-text>\n </v-card>\n </v-footer>\n </v-app>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, onMounted, watch } from 'vue';\nimport { useTheme } from 'vuetify';\nimport { useCourseConfig } from './composables/useCourseConfig';\nimport CourseHeader from './components/CourseHeader.vue';\nimport CourseFooter from './components/CourseFooter.vue';\nimport { SkMouseTrap, SkldrMouseTrap, useConfigStore } from '@vue-skuilder/common-ui';\n\nconst { courseConfig } = useCourseConfig();\nconst configStore = useConfigStore();\nconst theme = useTheme();\n\n// Use the configStore dark mode instead of courseConfig\nconst dark = computed(() => {\n return configStore.config.darkMode;\n});\n\n// Watch for dark mode changes and update Vuetify theme\nwatch(\n dark,\n (newVal) => {\n theme.global.name.value = newVal ? 'dark' : 'light';\n },\n { immediate: true }\n);\n\nonMounted(() => {\n // Add a global shortcut to show the keyboard shortcuts dialog\n SkldrMouseTrap.addBinding({\n hotkey: '?',\n command: 'Show keyboard shortcuts',\n callback: () => {\n const keyboardButton = document.querySelector('.mdi-keyboard');\n if (keyboardButton) {\n (keyboardButton as HTMLElement).click();\n }\n }\n });\n});\n</script>\n","<template>\n <v-container>\n <v-row>\n <v-col cols=\"12\" class=\"text-center\">\n <h1 class=\"text-h3 mb-6\">{{ courseConfig.title }}</h1>\n <p class=\"text-body-1 mb-6\">{{ courseConfig.description }}</p>\n\n <div v-if=\"isLoggedIn\">\n <v-btn color=\"primary\" size=\"large\" to=\"/study\"> Start Learning </v-btn>\n </div>\n <div v-else class=\"d-flex flex-column align-center\">\n <p class=\"text-body-1 mb-4\">Please login to start learning</p>\n <UserLoginAndRegistrationContainer v-model=\"authDialogOpen\" redirect-to-path=\"/study\">\n <template #activator=\"{ props }\">\n <v-btn color=\"primary\" size=\"large\" v-bind=\"props\"> Login / Sign Up </v-btn>\n </template>\n </UserLoginAndRegistrationContainer>\n </div>\n </v-col>\n </v-row>\n </v-container>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, onMounted, computed } from 'vue';\nimport { useCourseConfig } from '../composables/useCourseConfig';\nimport { UserLoginAndRegistrationContainer, useAuthStore } from '@vue-skuilder/common-ui';\nimport { getDataLayer } from '@vue-skuilder/db';\n\nconst { courseConfig } = useCourseConfig();\nconst authStore = useAuthStore();\nconst authDialogOpen = ref(false);\n\nconst isLoggedIn = computed(() => authStore.isLoggedIn);\n</script>\n","import { DataShapeName as e, FieldType as t } from \"@vue-skuilder/common\";\n//#region \\0rolldown/runtime.js\nvar n = Object.create, r = Object.defineProperty, __name = (e, t) => r(e, \"name\", {\n\tvalue: t,\n\tconfigurable: !0\n}), i = Object.getOwnPropertyDescriptor, a = Object.getOwnPropertyNames, o = Object.getPrototypeOf, s = Object.prototype.hasOwnProperty, __commonJSMin = (e, t) => () => (t || e((t = { exports: {} }).exports, t), t.exports), __copyProps = (e, t, n, o) => {\n\tif (t && typeof t == \"object\" || typeof t == \"function\") for (var c = a(t), l = 0, u = c.length, d; l < u; l++) d = c[l], !s.call(e, d) && d !== n && r(e, d, {\n\t\tget: ((e) => t[e]).bind(null, d),\n\t\tenumerable: !(o = i(t, d)) || o.enumerable\n\t});\n\treturn e;\n}, __toESM = (e, t, i) => (i = e == null ? {} : n(o(e)), __copyProps(t || !e || !e.__esModule ? r(i, \"default\", {\n\tvalue: e,\n\tenumerable: !0\n}) : i, e)), c = /* @__PURE__ */ ((e) => typeof require < \"u\" ? require : typeof Proxy < \"u\" ? new Proxy(e, { get: (e, t) => (typeof require < \"u\" ? require : e)[t] }) : e)(function(e) {\n\tif (typeof require < \"u\") return require.apply(this, arguments);\n\tthrow Error(\"Calling `require` for \\\"\" + e + \"\\\" in an environment that doesn't expose the `require` function. See https://rolldown.rs/in-depth/bundling-cjs#require-external-modules for more details.\");\n}), l = [{\n\tname: e.Blanks,\n\tfields: [{\n\t\tname: \"Input\",\n\t\ttype: t.MARKDOWN\n\t}, {\n\t\tname: \"Uploads\",\n\t\ttype: t.MEDIA_UPLOADS\n\t}]\n}];\n//#endregion\nexport { __toESM as a, c as i, __commonJSMin as n, __name as r, l as t };\n\n//# sourceMappingURL=shapes-BQUVJdp5.js.map","import { r as e, t } from \"./shapes-BQUVJdp5.js\";\nimport { Fragment as n, computed as r, createBlock as i, createCommentVNode as a, createElementBlock as o, createElementVNode as s, createTextVNode as c, createVNode as l, defineAsyncComponent as u, defineComponent as d, onMounted as f, onUnmounted as p, openBlock as m, ref as h, renderList as g, resolveComponent as _, toDisplayString as v, watch as y, withCtx as b } from \"vue\";\nimport { AudioAutoPlayer as x, Question as S, RadioMultipleChoice as C, containsComponent as w, isInlineComponent as T, splitByDelimiters as E, useQuestionView as D, useViewable as O } from \"@vue-skuilder/common-ui\";\nimport \"@vue-skuilder/common\";\nimport './assets/CourseWare.css';//#region src/math/utility/index.ts\nfunction randomInt(e, t) {\n\treturn Math.floor(Math.random() * (t - e + 1)) + e;\n}\nfunction shuffle(e) {\n\tlet t = [...e];\n\tfor (let e = t.length - 1; e > 0; e--) {\n\t\tlet n = Math.floor(Math.random() * (e + 1));\n\t\t[t[e], t[n]] = [t[n], t[e]];\n\t}\n\treturn t;\n}\nfunction cos(e) {\n\treturn Math.cos(toRadians(e));\n}\nfunction sin(e) {\n\treturn Math.sin(toRadians(e));\n}\nfunction toRadians(e) {\n\treturn e / 360 * 2 * Math.PI;\n}\n//#endregion\n//#region src/default/questions/fillIn/blanksCorrection.ts\nfunction gradeSpellingAttempt(e, t) {\n\tlet n = Array(t.length).fill(\"_\"), r = e.split(\"\");\n\tconsole.log(e, t), console.log(\"Attempt char codes:\", e.split(\"\").map((e) => e.charCodeAt(0))), console.log(\"Answer char codes:\", t.split(\"\").map((e) => e.charCodeAt(0)));\n\tfor (let e = 0; e < t.length; e++) e < r.length && r[e] === t[e] && (n[e] = r[e], r[e] = \"\");\n\tfor (let e = t.length - 1; e >= 0; e--) if (n[e] === \"_\") {\n\t\tlet i = r.findIndex((n) => n === t[e]);\n\t\ti !== -1 && (n[e] = t[e], r[i] = \"\");\n\t}\n\treturn console.log(n.join(\" \")), n.join(\" \");\n}\n//#endregion\n//#region src/default/questions/fillIn/fillIn.vue?vue&type=script&lang.ts\nvar k = d({\n\tname: \"FillInView\",\n\tcomponents: {\n\t\tMarkdownRenderer: u(() => import(\"@vue-skuilder/common-ui\").then((e) => e.MarkdownRenderer)),\n\t\tRadioMultipleChoice: C,\n\t\tAudioAutoPlayer: x\n\t},\n\tprops: {\n\t\tdata: {\n\t\t\ttype: Array,\n\t\t\trequired: !0\n\t\t},\n\t\tmodifyDifficulty: {\n\t\t\ttype: Number,\n\t\t\trequired: !1,\n\t\t\tdefault: 0\n\t\t}\n\t},\n\tsetup(e, { emit: t }) {\n\t\tlet n = O(e, t, \"FillInView\"), i = D(n);\n\t\ti.question.value = new I(e.data);\n\t\tlet a = h(), o = r(() => {\n\t\t\tif (!i.question.value) throw n.logger.error(\"Question not initialized\"), Error(\"Question not initialized\");\n\t\t\treturn i.question.value;\n\t\t});\n\t\tf(() => {\n\t\t\ttry {\n\t\t\t\ti.question.value || (i.question.value = new I(e.data)), i.question.value.options && (a.value = shuffle(getTruncatedList()));\n\t\t\t} catch (e) {\n\t\t\t\tn.logger.error(\"Failed to initialize question:\", e);\n\t\t\t}\n\t\t}), p(() => {\n\t\t\ti.question.value = void 0;\n\t\t});\n\t\tlet s = r(() => a.value ?? []), c = r(() => !!e.data[0][\"image-1\"]), l = r(() => {\n\t\t\tif (!c.value) return [\"\"];\n\t\t\tlet t = [], n = 1;\n\t\t\tfor (; e.data[0][`image-${n}`];) t.push(URL.createObjectURL(e.data[0][`image-${n}`])), n++;\n\t\t\treturn t;\n\t\t}), u = r(() => !!e.data[0][\"audio-1\"]), d = r(() => o.value?.mdText || \"\"), m = r(() => {\n\t\t\tif (!u.value) return [\"\"];\n\t\t\tlet t = [], n = 1;\n\t\t\tfor (; e.data[0][`audio-${n}`];) t.push(URL.createObjectURL(e.data[0][`audio-${n}`])), n++;\n\t\t\treturn t;\n\t\t}), g = r(() => {\n\t\t\tif (o.value.answers) return o.value.answers[Math.floor(o.value.answers.length * Math.random())];\n\t\t\tthrow Error(\"No answers provided\");\n\t\t}), _ = r(() => {\n\t\t\tlet e = g.value;\n\t\t\tif (console.log(`Prior answers: ${i.priorAnswers.value}`), e && i.priorAnswers.value[0]?.[0] && i.priorAnswers.value[0][1] === \"UserInputString\") return gradeSpellingAttempt(i.priorAnswers.value[0][0], e);\n\t\t\tif (console.log(\"found no UserInputString\"), g.value) {\n\t\t\t\tlet e = \"\";\n\t\t\t\tfor (let t = 0; t < g.value.length; t++) e += \"_ \";\n\t\t\t\treturn e;\n\t\t\t}\n\t\t\treturn \"\";\n\t\t}), v = r(() => !!(o.value.answers && o.value.answers.length > 0)), getTruncatedList = () => {\n\t\t\tif (!o.value?.options) return;\n\t\t\tif (o.value.options.length <= 6) return o.value.options;\n\t\t\tlet t = [];\n\t\t\tt.push(o.value.answers[Math.floor(Math.random() * o.value.answers.length)]);\n\t\t\tlet n = shuffle(o.value.options.filter((e) => o.value.answers?.indexOf(e) === -1));\n\t\t\treturn e.modifyDifficulty && (console.log(`Modifying difficulty: ${e.modifyDifficulty}`), n = e.modifyDifficulty < -200 ? n.slice(0, 1) : e.modifyDifficulty < -150 ? n.slice(0, 2) : e.modifyDifficulty < -100 ? n.slice(0, 3) : e.modifyDifficulty < -50 ? n.slice(0, 4) : n.slice(0, 5)), t.push(...n.slice(0, 5)), t;\n\t\t}, handleNext = () => {\n\t\t\ti.submitAnswer(\"\");\n\t\t};\n\t\treturn y(() => e.data, (e) => {\n\t\t\ttry {\n\t\t\t\ti.question.value = new I(e), i.question.value?.options && (a.value = shuffle(getTruncatedList()));\n\t\t\t} catch (e) {\n\t\t\t\tn.logger.error(\"Failed to initialize/update question:\", e);\n\t\t\t}\n\t\t}, { deep: !0 }), {\n\t\t\t...n,\n\t\t\t...i,\n\t\t\tquestion: o,\n\t\t\ttruncatedOptions: s,\n\t\t\thasImage: c,\n\t\t\timageURLs: l,\n\t\t\thasAudio: u,\n\t\t\taudioURL: m,\n\t\t\tobscuredAnswer: _,\n\t\t\tsomeAnswer: g,\n\t\t\tisQuestion: v,\n\t\t\thandleNext,\n\t\t\tmarkdownText: d\n\t\t};\n\t}\n}), A = /* @__PURE__ */ e((e, t) => {\n\tlet n = e.__vccOpts || e;\n\tfor (let [e, r] of t) n[e] = r;\n\treturn n;\n}, \"default\"), j = { \"data-viewable\": \"FillInView\" }, M = [\"src\"], N = {\n\tkey: 4,\n\tclass: \"text-center text-h6\"\n}, P = {\n\tkey: 5,\n\tclass: \"text-center text-h6\"\n};\nfunction _sfc_render(e, t, r, u, d, f) {\n\tlet p = _(\"audio-auto-player\"), h = _(\"markdown-renderer\"), y = _(\"radio-multiple-choice\"), x = _(\"v-spacer\"), S = _(\"v-btn\"), C = _(\"v-card-actions\");\n\treturn m(), o(\"div\", j, [\n\t\te.hasAudio ? (m(), i(p, {\n\t\t\tkey: 0,\n\t\t\tsrc: e.audioURL\n\t\t}, null, 8, [\"src\"])) : a(\"\", !0),\n\t\te.hasImage ? (m(!0), o(n, { key: 1 }, g(e.imageURLs, (e, t) => (m(), o(\"img\", {\n\t\t\tkey: t,\n\t\t\tsrc: e\n\t\t}, null, 8, M))), 128)) : a(\"\", !0),\n\t\te.markdownText ? (m(), i(h, {\n\t\t\tkey: 2,\n\t\t\tmd: e.markdownText\n\t\t}, null, 8, [\"md\"])) : a(\"\", !0),\n\t\te.question?.options ? (m(), i(y, {\n\t\t\tkey: 3,\n\t\t\t\"choice-list\": e.truncatedOptions\n\t\t}, null, 8, [\"choice-list\"])) : e.priorAttempts == 1 ? (m(), o(\"div\", N, [s(\"span\", null, v(e.obscuredAnswer), 1)])) : e.priorAttempts == 2 ? (m(), o(\"div\", P, [s(\"span\", null, v(e.someAnswer), 1)])) : a(\"\", !0),\n\t\te.isQuestion ? a(\"\", !0) : (m(), i(C, { key: 6 }, {\n\t\t\tdefault: b(() => [l(x), l(S, {\n\t\t\t\tcolor: \"primary\",\n\t\t\t\tautofocus: \"autofocus\",\n\t\t\t\tonClick: e.handleNext\n\t\t\t}, {\n\t\t\t\tdefault: b(() => t[0] ||= [c(\" Next \")]),\n\t\t\t\t_: 1\n\t\t\t}, 8, [\"onClick\"])]),\n\t\t\t_: 1\n\t\t}))\n\t]);\n}\nvar F = /* @__PURE__ */ A(k, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-f91502f8\"]]);\n//#endregion\n//#region src/default/questions/fillIn/index.ts\nfunction splitText(e, t, n) {\n\tlet r = e.split(t), i = r[0], a = r[1].split(n);\n\treturn {\n\t\tleft: i,\n\t\tmiddle: a[0],\n\t\tright: a[1]\n\t};\n}\nvar I = class BlanksCard extends S {\n\tstatic dataShapes = t;\n\tstatic views = [F];\n\tmdText = \"\";\n\tanswers = null;\n\toptions = null;\n\tsplitTextToken(e) {\n\t\tif (w(e)) {\n\t\t\tlet t = splitText(e.text, \"{{\", \"}}\"), n = splitText(e.raw, \"{{\", \"}}\"), r = [];\n\t\t\treturn n.left.length > 0 && r.push({\n\t\t\t\ttype: \"text\",\n\t\t\t\traw: n.left,\n\t\t\t\ttext: t.left\n\t\t\t}), n.middle.length > 0 && r.push({\n\t\t\t\ttype: \"text\",\n\t\t\t\traw: \"{{\" + n.middle + \"}}\",\n\t\t\t\ttext: \"{{\" + t.middle + \"}}\"\n\t\t\t}), n.right.length > 0 && r.push({\n\t\t\t\ttype: \"text\",\n\t\t\t\traw: n.right,\n\t\t\t\ttext: t.right\n\t\t\t}), r;\n\t\t} else return [e];\n\t}\n\toptionsFromString(e) {\n\t\tif (!e.startsWith(\"{{\") || !e.endsWith(\"}}\")) throw Error(`string ${e} is not fill-in text - must look like \"{{someText}}\"`);\n\t\te = e.substring(2, e.length - 2);\n\t\tlet t = e.split(\"||\");\n\t\tif (t.length > 1) {\n\t\t\tlet e = t[0].split(\"|\").map((e) => e.trim()), n = t[1].split(\"|\").map((e) => e.trim()).filter((t) => !e.includes(t));\n\t\t\treturn n.push(e[randomInt(0, e.length - 1)]), {\n\t\t\t\tanswers: e,\n\t\t\t\toptions: shuffle(n)\n\t\t\t};\n\t\t} else return {\n\t\t\tanswers: [e.trim()],\n\t\t\toptions: null\n\t\t};\n\t}\n\tconstructor(e) {\n\t\tsuper(e), this.mdText = e[0].Input, this.mdText === void 0 && (this.mdText = \"\");\n\t\tlet t = E(this.mdText, \"{{\", \"}}\"), n = [];\n\t\tfor (let e = 0; e < t.length; e++) {\n\t\t\tlet r = t[e], i = r.trim();\n\t\t\tif (i.startsWith(\"{{\") && i.endsWith(\"}}\")) if (T(i.slice(2, -2).trim())) n.push(r);\n\t\t\telse try {\n\t\t\t\tlet e = this.optionsFromString(r);\n\t\t\t\tthis.answers = e.answers, this.options = e.options, this.options?.length ? n.push(\"{{ || }}\") : n.push(\"{{ }}\");\n\t\t\t} catch {\n\t\t\t\tn.push(r);\n\t\t\t}\n\t\t\telse n.push(r);\n\t\t}\n\t\tthis.mdText = n.join(\"\");\n\t}\n\tisCorrect(e) {\n\t\tif (console.log(`answers:${this.answers}\\nuser answer: ${JSON.stringify(e)}`), typeof e == \"string\") {\n\t\t\tif (this.answers) return this.answers.includes(e);\n\t\t\tif (e === \"\") return !0;\n\t\t\tthrow Error(\"Question has no configured answers!\");\n\t\t} else if (Array.isArray(e)) {\n\t\t\tif (this.answers) return e.every((e) => this.answers.includes(e));\n\t\t\tthrow Error(\"Question has no configured answers!\");\n\t\t} else return this.isCorrectRadio(e);\n\t}\n\tdataShapes() {\n\t\treturn BlanksCard.dataShapes;\n\t}\n\tviews() {\n\t\treturn BlanksCard.views;\n\t}\n\tisCorrectRadio(e) {\n\t\treturn this.answers ? this.answers.includes(e.choiceList[e.selection]) : !1;\n\t}\n}, CourseWare = class {\n\tget questions() {\n\t\treturn this.questionList;\n\t}\n\tget allViews() {\n\t\tlet e = [];\n\t\treturn this.questionList.forEach((t) => {\n\t\t\tt.views.forEach((t) => {\n\t\t\t\te.push(t);\n\t\t\t});\n\t\t}), e;\n\t}\n\tget allViewsMap() {\n\t\tlet e = {};\n\t\treturn this.allViews.forEach((t) => {\n\t\t\tif (t.name) e[t.name] = t;\n\t\t\telse throw Error(\"View has no name\");\n\t\t}), e;\n\t}\n\tname;\n\tquestionList;\n\tconstructor(e, t) {\n\t\tthis.name = e, this.questionList = t, this.questionList = this.questionList.concat(this.getBaseQTypes());\n\t}\n\tgetQuestion(e) {\n\t\tlet t = e.replace(/^_/, \"\").replace(/\\d+$/, \"\"), n = this.questionList.map((e) => e.name), r = this.questionList.find((n) => {\n\t\t\tlet r = n.name.replace(/^_/, \"\").replace(/\\d+$/, \"\");\n\t\t\treturn n.name === e || r === t;\n\t\t});\n\t\tif (r) return r.name !== e && console.debug(`[CourseWare.getQuestion] stripped-exact: \"${e}\" → \"${r.name}\" (registered: ${n.join(\", \")})`), r;\n\t\tlet i = this.questionList.filter((n) => {\n\t\t\tlet r = n.name.replace(/^_/, \"\").replace(/\\d+$/, \"\");\n\t\t\treturn n.name.includes(t) || e.includes(r);\n\t\t});\n\t\tif (i.length === 0) {\n\t\t\tconsole.warn(`[CourseWare.getQuestion] NO MATCH: \"${e}\" (base: \"${t}\") not found in [${n.join(\", \")}]`);\n\t\t\treturn;\n\t\t}\n\t\ti.sort((t, n) => Math.abs(t.name.length - e.length) - Math.abs(n.name.length - e.length));\n\t\tlet a = i[0];\n\t\treturn console.warn(`[CourseWare.getQuestion] FUZZY: \"${e}\" → \"${a.name}\" (candidates: ${i.map((e) => e.name).join(\", \")}; registered: ${n.join(\", \")})`), a;\n\t}\n\tgetBaseQTypes() {\n\t\treturn [I];\n\t}\n};\n//#endregion\nexport { cos as a, sin as c, gradeSpellingAttempt as i, I as n, randomInt as o, A as r, shuffle as s, CourseWare as t };\n\n//# sourceMappingURL=CourseWare-BTFRjgBR.js.map","import { a as e, n as t, r as n } from \"./shapes-BQUVJdp5.js\";\nimport { r, t as i } from \"./CourseWare-BTFRjgBR.js\";\nimport { Fragment as a, computed as o, createBlock as s, createCommentVNode as c, createElementBlock as l, createElementVNode as u, createTextVNode as d, createVNode as f, defineComponent as p, normalizeStyle as m, onBeforeUnmount as h, onMounted as g, openBlock as _, ref as v, renderList as y, resolveComponent as b, toDisplayString as x, withCtx as S } from \"vue\";\nimport { Question as C, SkldrMouseTrap as w, alertUser as T, useQuestionView as E, useViewable as ee } from \"@vue-skuilder/common-ui\";\nimport { DataShapeName as D, FieldType as O, Status as k } from \"@vue-skuilder/common\";\nimport A from \"moment\";\nimport './assets/piano.css';//#region ../../node_modules/webmidi/webmidi.min.js\nvar te = /* @__PURE__ */ t(((e, t) => {\n\t(function(e) {\n\t\tfunction WebMidi() {\n\t\t\tif (WebMidi.prototype._singleton) throw Error(\"WebMidi is a singleton, it cannot be instantiated directly.\");\n\t\t\t(WebMidi.prototype._singleton = this)._inputs = [], this._outputs = [], this._userHandlers = {}, this._stateChangeQueue = [], this._processingStateChange = !1, this._midiInterfaceEvents = [\"connected\", \"disconnected\"], this._nrpnBuffer = [\n\t\t\t\t[],\n\t\t\t\t[],\n\t\t\t\t[],\n\t\t\t\t[],\n\t\t\t\t[],\n\t\t\t\t[],\n\t\t\t\t[],\n\t\t\t\t[],\n\t\t\t\t[],\n\t\t\t\t[],\n\t\t\t\t[],\n\t\t\t\t[],\n\t\t\t\t[],\n\t\t\t\t[],\n\t\t\t\t[],\n\t\t\t\t[]\n\t\t\t], this._nrpnEventsEnabled = !0, this._nrpnTypes = [\n\t\t\t\t\"entry\",\n\t\t\t\t\"increment\",\n\t\t\t\t\"decrement\"\n\t\t\t], this._notes = [\n\t\t\t\t\"C\",\n\t\t\t\t\"C#\",\n\t\t\t\t\"D\",\n\t\t\t\t\"D#\",\n\t\t\t\t\"E\",\n\t\t\t\t\"F\",\n\t\t\t\t\"F#\",\n\t\t\t\t\"G\",\n\t\t\t\t\"G#\",\n\t\t\t\t\"A\",\n\t\t\t\t\"A#\",\n\t\t\t\t\"B\"\n\t\t\t], this._semitones = {\n\t\t\t\tC: 0,\n\t\t\t\tD: 2,\n\t\t\t\tE: 4,\n\t\t\t\tF: 5,\n\t\t\t\tG: 7,\n\t\t\t\tA: 9,\n\t\t\t\tB: 11\n\t\t\t}, Object.defineProperties(this, {\n\t\t\t\tMIDI_SYSTEM_MESSAGES: {\n\t\t\t\t\tvalue: {\n\t\t\t\t\t\tsysex: 240,\n\t\t\t\t\t\ttimecode: 241,\n\t\t\t\t\t\tsongposition: 242,\n\t\t\t\t\t\tsongselect: 243,\n\t\t\t\t\t\ttuningrequest: 246,\n\t\t\t\t\t\tsysexend: 247,\n\t\t\t\t\t\tclock: 248,\n\t\t\t\t\t\tstart: 250,\n\t\t\t\t\t\tcontinue: 251,\n\t\t\t\t\t\tstop: 252,\n\t\t\t\t\t\tactivesensing: 254,\n\t\t\t\t\t\treset: 255,\n\t\t\t\t\t\tmidimessage: 0,\n\t\t\t\t\t\tunknownsystemmessage: -1\n\t\t\t\t\t},\n\t\t\t\t\twritable: !1,\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tconfigurable: !1\n\t\t\t\t},\n\t\t\t\tMIDI_CHANNEL_MESSAGES: {\n\t\t\t\t\tvalue: {\n\t\t\t\t\t\tnoteoff: 8,\n\t\t\t\t\t\tnoteon: 9,\n\t\t\t\t\t\tkeyaftertouch: 10,\n\t\t\t\t\t\tcontrolchange: 11,\n\t\t\t\t\t\tchannelmode: 11,\n\t\t\t\t\t\tnrpn: 11,\n\t\t\t\t\t\tprogramchange: 12,\n\t\t\t\t\t\tchannelaftertouch: 13,\n\t\t\t\t\t\tpitchbend: 14\n\t\t\t\t\t},\n\t\t\t\t\twritable: !1,\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tconfigurable: !1\n\t\t\t\t},\n\t\t\t\tMIDI_REGISTERED_PARAMETER: {\n\t\t\t\t\tvalue: {\n\t\t\t\t\t\tpitchbendrange: [0, 0],\n\t\t\t\t\t\tchannelfinetuning: [0, 1],\n\t\t\t\t\t\tchannelcoarsetuning: [0, 2],\n\t\t\t\t\t\ttuningprogram: [0, 3],\n\t\t\t\t\t\ttuningbank: [0, 4],\n\t\t\t\t\t\tmodulationrange: [0, 5],\n\t\t\t\t\t\tazimuthangle: [61, 0],\n\t\t\t\t\t\televationangle: [61, 1],\n\t\t\t\t\t\tgain: [61, 2],\n\t\t\t\t\t\tdistanceratio: [61, 3],\n\t\t\t\t\t\tmaximumdistance: [61, 4],\n\t\t\t\t\t\tmaximumdistancegain: [61, 5],\n\t\t\t\t\t\treferencedistanceratio: [61, 6],\n\t\t\t\t\t\tpanspreadangle: [61, 7],\n\t\t\t\t\t\trollangle: [61, 8]\n\t\t\t\t\t},\n\t\t\t\t\twritable: !1,\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tconfigurable: !1\n\t\t\t\t},\n\t\t\t\tMIDI_CONTROL_CHANGE_MESSAGES: {\n\t\t\t\t\tvalue: {\n\t\t\t\t\t\tbankselectcoarse: 0,\n\t\t\t\t\t\tmodulationwheelcoarse: 1,\n\t\t\t\t\t\tbreathcontrollercoarse: 2,\n\t\t\t\t\t\tfootcontrollercoarse: 4,\n\t\t\t\t\t\tportamentotimecoarse: 5,\n\t\t\t\t\t\tdataentrycoarse: 6,\n\t\t\t\t\t\tvolumecoarse: 7,\n\t\t\t\t\t\tbalancecoarse: 8,\n\t\t\t\t\t\tpancoarse: 10,\n\t\t\t\t\t\texpressioncoarse: 11,\n\t\t\t\t\t\teffectcontrol1coarse: 12,\n\t\t\t\t\t\teffectcontrol2coarse: 13,\n\t\t\t\t\t\tgeneralpurposeslider1: 16,\n\t\t\t\t\t\tgeneralpurposeslider2: 17,\n\t\t\t\t\t\tgeneralpurposeslider3: 18,\n\t\t\t\t\t\tgeneralpurposeslider4: 19,\n\t\t\t\t\t\tbankselectfine: 32,\n\t\t\t\t\t\tmodulationwheelfine: 33,\n\t\t\t\t\t\tbreathcontrollerfine: 34,\n\t\t\t\t\t\tfootcontrollerfine: 36,\n\t\t\t\t\t\tportamentotimefine: 37,\n\t\t\t\t\t\tdataentryfine: 38,\n\t\t\t\t\t\tvolumefine: 39,\n\t\t\t\t\t\tbalancefine: 40,\n\t\t\t\t\t\tpanfine: 42,\n\t\t\t\t\t\texpressionfine: 43,\n\t\t\t\t\t\teffectcontrol1fine: 44,\n\t\t\t\t\t\teffectcontrol2fine: 45,\n\t\t\t\t\t\tholdpedal: 64,\n\t\t\t\t\t\tportamento: 65,\n\t\t\t\t\t\tsustenutopedal: 66,\n\t\t\t\t\t\tsoftpedal: 67,\n\t\t\t\t\t\tlegatopedal: 68,\n\t\t\t\t\t\thold2pedal: 69,\n\t\t\t\t\t\tsoundvariation: 70,\n\t\t\t\t\t\tresonance: 71,\n\t\t\t\t\t\tsoundreleasetime: 72,\n\t\t\t\t\t\tsoundattacktime: 73,\n\t\t\t\t\t\tbrightness: 74,\n\t\t\t\t\t\tsoundcontrol6: 75,\n\t\t\t\t\t\tsoundcontrol7: 76,\n\t\t\t\t\t\tsoundcontrol8: 77,\n\t\t\t\t\t\tsoundcontrol9: 78,\n\t\t\t\t\t\tsoundcontrol10: 79,\n\t\t\t\t\t\tgeneralpurposebutton1: 80,\n\t\t\t\t\t\tgeneralpurposebutton2: 81,\n\t\t\t\t\t\tgeneralpurposebutton3: 82,\n\t\t\t\t\t\tgeneralpurposebutton4: 83,\n\t\t\t\t\t\treverblevel: 91,\n\t\t\t\t\t\ttremololevel: 92,\n\t\t\t\t\t\tchoruslevel: 93,\n\t\t\t\t\t\tcelestelevel: 94,\n\t\t\t\t\t\tphaserlevel: 95,\n\t\t\t\t\t\tdatabuttonincrement: 96,\n\t\t\t\t\t\tdatabuttondecrement: 97,\n\t\t\t\t\t\tnonregisteredparametercoarse: 98,\n\t\t\t\t\t\tnonregisteredparameterfine: 99,\n\t\t\t\t\t\tregisteredparametercoarse: 100,\n\t\t\t\t\t\tregisteredparameterfine: 101\n\t\t\t\t\t},\n\t\t\t\t\twritable: !1,\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tconfigurable: !1\n\t\t\t\t},\n\t\t\t\tMIDI_NRPN_MESSAGES: {\n\t\t\t\t\tvalue: {\n\t\t\t\t\t\tentrymsb: 6,\n\t\t\t\t\t\tentrylsb: 38,\n\t\t\t\t\t\tincrement: 96,\n\t\t\t\t\t\tdecrement: 97,\n\t\t\t\t\t\tparamlsb: 98,\n\t\t\t\t\t\tparammsb: 99,\n\t\t\t\t\t\tnullactiveparameter: 127\n\t\t\t\t\t},\n\t\t\t\t\twritable: !1,\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tconfigurable: !1\n\t\t\t\t},\n\t\t\t\tMIDI_CHANNEL_MODE_MESSAGES: {\n\t\t\t\t\tvalue: {\n\t\t\t\t\t\tallsoundoff: 120,\n\t\t\t\t\t\tresetallcontrollers: 121,\n\t\t\t\t\t\tlocalcontrol: 122,\n\t\t\t\t\t\tallnotesoff: 123,\n\t\t\t\t\t\tomnimodeoff: 124,\n\t\t\t\t\t\tomnimodeon: 125,\n\t\t\t\t\t\tmonomodeon: 126,\n\t\t\t\t\t\tpolymodeon: 127\n\t\t\t\t\t},\n\t\t\t\t\twritable: !1,\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tconfigurable: !1\n\t\t\t\t},\n\t\t\t\toctaveOffset: {\n\t\t\t\t\tvalue: 0,\n\t\t\t\t\twritable: !0,\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tconfigurable: !1\n\t\t\t\t}\n\t\t\t}), Object.defineProperties(this, {\n\t\t\t\tsupported: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn \"requestMIDIAccess\" in navigator;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tenabled: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn this.interface !== void 0;\n\t\t\t\t\t}.bind(this)\n\t\t\t\t},\n\t\t\t\tinputs: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn this._inputs;\n\t\t\t\t\t}.bind(this)\n\t\t\t\t},\n\t\t\t\toutputs: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn this._outputs;\n\t\t\t\t\t}.bind(this)\n\t\t\t\t},\n\t\t\t\tsysexEnabled: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn !(!this.interface || !this.interface.sysexEnabled);\n\t\t\t\t\t}.bind(this)\n\t\t\t\t},\n\t\t\t\tnrpnEventsEnabled: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn !!this._nrpnEventsEnabled;\n\t\t\t\t\t}.bind(this),\n\t\t\t\t\tset: function(e) {\n\t\t\t\t\t\treturn this._nrpnEventsEnabled = e, this._nrpnEventsEnabled;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tnrpnTypes: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn this._nrpnTypes;\n\t\t\t\t\t}.bind(this)\n\t\t\t\t},\n\t\t\t\ttime: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn performance.now();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tvar n = new WebMidi();\n\t\tfunction Input(e) {\n\t\t\tvar t = this;\n\t\t\tthis._userHandlers = {\n\t\t\t\tchannel: {},\n\t\t\t\tsystem: {}\n\t\t\t}, this._midiInput = e, Object.defineProperties(this, {\n\t\t\t\tconnection: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn t._midiInput.connection;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tid: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn t._midiInput.id;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tmanufacturer: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn t._midiInput.manufacturer;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tname: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn t._midiInput.name;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tstate: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn t._midiInput.state;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\ttype: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn t._midiInput.type;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}), this._initializeUserHandlers(), this._midiInput.onmidimessage = this._onMidiMessage.bind(this);\n\t\t}\n\t\tfunction Output(e) {\n\t\t\tvar t = this;\n\t\t\tthis._midiOutput = e, Object.defineProperties(this, {\n\t\t\t\tconnection: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn t._midiOutput.connection;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tid: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn t._midiOutput.id;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tmanufacturer: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn t._midiOutput.manufacturer;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tname: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn t._midiOutput.name;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tstate: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn t._midiOutput.state;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\ttype: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn t._midiOutput.type;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tWebMidi.prototype.enable = function(e, t) {\n\t\t\tthis.enabled || (this.supported ? navigator.requestMIDIAccess({ sysex: t }).then(function(t) {\n\t\t\t\tvar n, r = [], i = [];\n\t\t\t\tthis.interface = t, this._resetInterfaceUserHandlers(), this.interface.onstatechange = function(e) {\n\t\t\t\t\tr.push(e);\n\t\t\t\t};\n\t\t\t\tfor (var a = t.inputs.values(), o = a.next(); o && !o.done; o = a.next()) i.push(o.value.open());\n\t\t\t\tfor (var s = t.outputs.values(), c = s.next(); c && !c.done; c = s.next()) i.push(c.value.open());\n\t\t\t\tfunction onPortsOpen() {\n\t\t\t\t\tclearTimeout(n), this._updateInputsAndOutputs(), this.interface.onstatechange = this._onInterfaceStateChange.bind(this), typeof e == \"function\" && e.call(this), r.forEach(function(e) {\n\t\t\t\t\t\tthis._onInterfaceStateChange(e);\n\t\t\t\t\t}.bind(this));\n\t\t\t\t}\n\t\t\t\tn = setTimeout(onPortsOpen.bind(this), 200), Promise && Promise.all(i).catch(function(e) {}).then(onPortsOpen.bind(this));\n\t\t\t}.bind(this), function(t) {\n\t\t\t\ttypeof e == \"function\" && e.call(this, t);\n\t\t\t}.bind(this)) : typeof e == \"function\" && e(/* @__PURE__ */ Error(\"The Web MIDI API is not supported by your browser.\")));\n\t\t}, WebMidi.prototype.disable = function() {\n\t\t\tif (!this.supported) throw Error(\"The Web MIDI API is not supported by your browser.\");\n\t\t\tthis.enabled && (this.removeListener(), this.inputs.forEach(function(e) {\n\t\t\t\te.removeListener();\n\t\t\t})), this.interface && (this.interface.onstatechange = void 0), this.interface = void 0, this._inputs = [], this._outputs = [], this._nrpnEventsEnabled = !0, this._resetInterfaceUserHandlers();\n\t\t}, WebMidi.prototype.addListener = function(e, t) {\n\t\t\tif (!this.enabled) throw Error(\"WebMidi must be enabled before adding event listeners.\");\n\t\t\tif (typeof t != \"function\") throw TypeError(\"The 'listener' parameter must be a function.\");\n\t\t\tif (!(0 <= this._midiInterfaceEvents.indexOf(e))) throw TypeError(\"The specified event type is not supported.\");\n\t\t\treturn this._userHandlers[e].push(t), this;\n\t\t}, WebMidi.prototype.hasListener = function(e, t) {\n\t\t\tif (!this.enabled) throw Error(\"WebMidi must be enabled before checking event listeners.\");\n\t\t\tif (typeof t != \"function\") throw TypeError(\"The 'listener' parameter must be a function.\");\n\t\t\tif (!(0 <= this._midiInterfaceEvents.indexOf(e))) throw TypeError(\"The specified event type is not supported.\");\n\t\t\tfor (var n = 0; n < this._userHandlers[e].length; n++) if (this._userHandlers[e][n] === t) return !0;\n\t\t\treturn !1;\n\t\t}, WebMidi.prototype.removeListener = function(e, t) {\n\t\t\tif (!this.enabled) throw Error(\"WebMidi must be enabled before removing event listeners.\");\n\t\t\tif (t !== void 0 && typeof t != \"function\") throw TypeError(\"The 'listener' parameter must be a function.\");\n\t\t\tif (0 <= this._midiInterfaceEvents.indexOf(e)) if (t) for (var n = 0; n < this._userHandlers[e].length; n++) this._userHandlers[e][n] === t && this._userHandlers[e].splice(n, 1);\n\t\t\telse this._userHandlers[e] = [];\n\t\t\telse {\n\t\t\t\tif (e !== void 0) throw TypeError(\"The specified event type is not supported.\");\n\t\t\t\tthis._resetInterfaceUserHandlers();\n\t\t\t}\n\t\t\treturn this;\n\t\t}, WebMidi.prototype.toMIDIChannels = function(e) {\n\t\t\tvar t;\n\t\t\tif (e === \"all\" || e === void 0) t = [\"all\"];\n\t\t\telse {\n\t\t\t\tif (e === \"none\") return t = [];\n\t\t\t\tt = Array.isArray(e) ? e : [e];\n\t\t\t}\n\t\t\treturn -1 < t.indexOf(\"all\") && (t = [\n\t\t\t\t1,\n\t\t\t\t2,\n\t\t\t\t3,\n\t\t\t\t4,\n\t\t\t\t5,\n\t\t\t\t6,\n\t\t\t\t7,\n\t\t\t\t8,\n\t\t\t\t9,\n\t\t\t\t10,\n\t\t\t\t11,\n\t\t\t\t12,\n\t\t\t\t13,\n\t\t\t\t14,\n\t\t\t\t15,\n\t\t\t\t16\n\t\t\t]), t.map(function(e) {\n\t\t\t\treturn parseInt(e);\n\t\t\t}).filter(function(e) {\n\t\t\t\treturn 1 <= e && e <= 16;\n\t\t\t});\n\t\t}, WebMidi.prototype.getInputById = function(e) {\n\t\t\tif (!this.enabled) throw Error(\"WebMidi is not enabled.\");\n\t\t\te = String(e);\n\t\t\tfor (var t = 0; t < this.inputs.length; t++) if (this.inputs[t].id === e) return this.inputs[t];\n\t\t\treturn !1;\n\t\t}, WebMidi.prototype.getOutputById = function(e) {\n\t\t\tif (!this.enabled) throw Error(\"WebMidi is not enabled.\");\n\t\t\te = String(e);\n\t\t\tfor (var t = 0; t < this.outputs.length; t++) if (this.outputs[t].id === e) return this.outputs[t];\n\t\t\treturn !1;\n\t\t}, WebMidi.prototype.getInputByName = function(e) {\n\t\t\tif (!this.enabled) throw Error(\"WebMidi is not enabled.\");\n\t\t\tfor (var t = 0; t < this.inputs.length; t++) if (~this.inputs[t].name.indexOf(e)) return this.inputs[t];\n\t\t\treturn !1;\n\t\t}, WebMidi.prototype.getOctave = function(e) {\n\t\t\tif (e != null && 0 <= e && e <= 127) return Math.floor(Math.floor(e) / 12 - 1) + Math.floor(n.octaveOffset);\n\t\t}, WebMidi.prototype.getOutputByName = function(e) {\n\t\t\tif (!this.enabled) throw Error(\"WebMidi is not enabled.\");\n\t\t\tfor (var t = 0; t < this.outputs.length; t++) if (~this.outputs[t].name.indexOf(e)) return this.outputs[t];\n\t\t\treturn !1;\n\t\t}, WebMidi.prototype.guessNoteNumber = function(e) {\n\t\t\tvar t = !1;\n\t\t\tif (e && e.toFixed && 0 <= e && e <= 127 ? t = Math.round(e) : 0 <= parseInt(e) && parseInt(e) <= 127 ? t = parseInt(e) : (typeof e == \"string\" || e instanceof String) && (t = this.noteNameToNumber(e)), !1 === t) throw Error(\"Invalid input value (\" + e + \").\");\n\t\t\treturn t;\n\t\t}, WebMidi.prototype.noteNameToNumber = function(e) {\n\t\t\ttypeof e != \"string\" && (e = \"\");\n\t\t\tvar t = e.match(/([CDEFGAB])(#{0,2}|b{0,2})(-?\\d+)/i);\n\t\t\tif (!t) throw RangeError(\"Invalid note name.\");\n\t\t\tvar r = n._semitones[t[1].toUpperCase()], i = 12 * (parseInt(t[3]) + 1 - Math.floor(n.octaveOffset)) + r;\n\t\t\tif (-1 < t[2].toLowerCase().indexOf(\"b\") ? i -= t[2].length : -1 < t[2].toLowerCase().indexOf(\"#\") && (i += t[2].length), i < 0 || 127 < i) throw RangeError(\"Invalid note name or note outside valid range.\");\n\t\t\treturn i;\n\t\t}, WebMidi.prototype._updateInputsAndOutputs = function() {\n\t\t\tthis._updateInputs(), this._updateOutputs();\n\t\t}, WebMidi.prototype._updateInputs = function() {\n\t\t\tfor (var e = 0; e < this._inputs.length; e++) {\n\t\t\t\tfor (var t = !0, n = this.interface.inputs.values(), r = n.next(); r && !r.done; r = n.next()) if (this._inputs[e]._midiInput === r.value) {\n\t\t\t\t\tt = !1;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tt && this._inputs.splice(e, 1);\n\t\t\t}\n\t\t\tthis.interface && this.interface.inputs.forEach(function(e) {\n\t\t\t\tfor (var t = !0, n = 0; n < this._inputs.length; n++) this._inputs[n]._midiInput === e && (t = !1);\n\t\t\t\tt && this._inputs.push(new Input(e));\n\t\t\t}.bind(this));\n\t\t}, WebMidi.prototype._updateOutputs = function() {\n\t\t\tfor (var e = 0; e < this._outputs.length; e++) {\n\t\t\t\tfor (var t = !0, n = this.interface.outputs.values(), r = n.next(); r && !r.done; r = n.next()) if (this._outputs[e]._midiOutput === r.value) {\n\t\t\t\t\tt = !1;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tt && this._outputs.splice(e, 1);\n\t\t\t}\n\t\t\tthis.interface && this.interface.outputs.forEach(function(e) {\n\t\t\t\tfor (var t = !0, n = 0; n < this._outputs.length; n++) this._outputs[n]._midiOutput === e && (t = !1);\n\t\t\t\tt && this._outputs.push(new Output(e));\n\t\t\t}.bind(this));\n\t\t}, WebMidi.prototype._onInterfaceStateChange = function(e) {\n\t\t\tthis._updateInputsAndOutputs();\n\t\t\tvar t = {\n\t\t\t\ttimestamp: e.timeStamp,\n\t\t\t\ttype: e.port.state\n\t\t\t};\n\t\t\tthis.interface && e.port.state === \"connected\" ? e.port.type === \"output\" ? t.port = this.getOutputById(e.port.id) : e.port.type === \"input\" && (t.port = this.getInputById(e.port.id)) : t.port = {\n\t\t\t\tconnection: \"closed\",\n\t\t\t\tid: e.port.id,\n\t\t\t\tmanufacturer: e.port.manufacturer,\n\t\t\t\tname: e.port.name,\n\t\t\t\tstate: e.port.state,\n\t\t\t\ttype: e.port.type\n\t\t\t}, this._userHandlers[e.port.state].forEach(function(e) {\n\t\t\t\te(t);\n\t\t\t});\n\t\t}, WebMidi.prototype._resetInterfaceUserHandlers = function() {\n\t\t\tfor (var e = 0; e < this._midiInterfaceEvents.length; e++) this._userHandlers[this._midiInterfaceEvents[e]] = [];\n\t\t}, Input.prototype.on = Input.prototype.addListener = function(e, t, r) {\n\t\t\tvar i = this;\n\t\t\tif (t === void 0 && (t = \"all\"), Array.isArray(t) || (t = [t]), t.forEach(function(e) {\n\t\t\t\tif (e !== \"all\" && !(1 <= e && e <= 16)) throw RangeError(\"The 'channel' parameter is invalid.\");\n\t\t\t}), typeof r != \"function\") throw TypeError(\"The 'listener' parameter must be a function.\");\n\t\t\tif (n.MIDI_SYSTEM_MESSAGES[e] !== void 0) this._userHandlers.system[e] || (this._userHandlers.system[e] = []), this._userHandlers.system[e].push(r);\n\t\t\telse {\n\t\t\t\tif (n.MIDI_CHANNEL_MESSAGES[e] === void 0) throw TypeError(\"The specified event type is not supported.\");\n\t\t\t\tif (-1 < t.indexOf(\"all\")) {\n\t\t\t\t\tt = [];\n\t\t\t\t\tfor (var a = 1; a <= 16; a++) t.push(a);\n\t\t\t\t}\n\t\t\t\tthis._userHandlers.channel[e] || (this._userHandlers.channel[e] = []), t.forEach(function(t) {\n\t\t\t\t\ti._userHandlers.channel[e][t] || (i._userHandlers.channel[e][t] = []), i._userHandlers.channel[e][t].push(r);\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn this;\n\t\t}, Input.prototype.hasListener = function(e, t, r) {\n\t\t\tvar i = this;\n\t\t\tif (typeof r != \"function\") throw TypeError(\"The 'listener' parameter must be a function.\");\n\t\t\tif (t === void 0 && (t = \"all\"), t.constructor !== Array && (t = [t]), n.MIDI_SYSTEM_MESSAGES[e] !== void 0) {\n\t\t\t\tfor (var a = 0; a < this._userHandlers.system[e].length; a++) if (this._userHandlers.system[e][a] === r) return !0;\n\t\t\t} else if (n.MIDI_CHANNEL_MESSAGES[e] !== void 0) {\n\t\t\t\tif (-1 < t.indexOf(\"all\")) {\n\t\t\t\t\tt = [];\n\t\t\t\t\tfor (var o = 1; o <= 16; o++) t.push(o);\n\t\t\t\t}\n\t\t\t\treturn !!this._userHandlers.channel[e] && t.every(function(t) {\n\t\t\t\t\tvar n = i._userHandlers.channel[e][t];\n\t\t\t\t\treturn n && -1 < n.indexOf(r);\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn !1;\n\t\t}, Input.prototype.removeListener = function(e, t, r) {\n\t\t\tvar i = this;\n\t\t\tif (r !== void 0 && typeof r != \"function\") throw TypeError(\"The 'listener' parameter must be a function.\");\n\t\t\tif (t === void 0 && (t = \"all\"), t.constructor !== Array && (t = [t]), n.MIDI_SYSTEM_MESSAGES[e] !== void 0) if (r === void 0) this._userHandlers.system[e] = [];\n\t\t\telse for (var a = 0; a < this._userHandlers.system[e].length; a++) this._userHandlers.system[e][a] === r && this._userHandlers.system[e].splice(a, 1);\n\t\t\telse if (n.MIDI_CHANNEL_MESSAGES[e] !== void 0) {\n\t\t\t\tif (-1 < t.indexOf(\"all\")) {\n\t\t\t\t\tt = [];\n\t\t\t\t\tfor (var o = 1; o <= 16; o++) t.push(o);\n\t\t\t\t}\n\t\t\t\tif (!this._userHandlers.channel[e]) return this;\n\t\t\t\tt.forEach(function(t) {\n\t\t\t\t\tvar n = i._userHandlers.channel[e][t];\n\t\t\t\t\tif (n) if (r === void 0) i._userHandlers.channel[e][t] = [];\n\t\t\t\t\telse for (var a = 0; a < n.length; a++) n[a] === r && n.splice(a, 1);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tif (e !== void 0) throw TypeError(\"The specified event type is not supported.\");\n\t\t\t\tthis._initializeUserHandlers();\n\t\t\t}\n\t\t\treturn this;\n\t\t}, Input.prototype._initializeUserHandlers = function() {\n\t\t\tfor (var e in n.MIDI_CHANNEL_MESSAGES) Object.prototype.hasOwnProperty.call(n.MIDI_CHANNEL_MESSAGES, e) && (this._userHandlers.channel[e] = {});\n\t\t\tfor (var t in n.MIDI_SYSTEM_MESSAGES) Object.prototype.hasOwnProperty.call(n.MIDI_SYSTEM_MESSAGES, t) && (this._userHandlers.system[t] = []);\n\t\t}, Input.prototype._onMidiMessage = function(e) {\n\t\t\tif (0 < this._userHandlers.system.midimessage.length) {\n\t\t\t\tvar t = {\n\t\t\t\t\ttarget: this,\n\t\t\t\t\tdata: e.data,\n\t\t\t\t\ttimestamp: e.timeStamp,\n\t\t\t\t\ttype: \"midimessage\"\n\t\t\t\t};\n\t\t\t\tthis._userHandlers.system.midimessage.forEach(function(e) {\n\t\t\t\t\te(t);\n\t\t\t\t});\n\t\t\t}\n\t\t\te.data[0] < 240 ? (this._parseChannelEvent(e), this._parseNrpnEvent(e)) : e.data[0] <= 255 && this._parseSystemEvent(e);\n\t\t}, Input.prototype._parseNrpnEvent = function(e) {\n\t\t\tvar t, r, i = e.data[0] >> 4, a = 15 & e.data[0], o = 1 + a;\n\t\t\tif (1 < e.data.length && (t = e.data[1], r = 2 < e.data.length ? e.data[2] : void 0), n.nrpnEventsEnabled && i === n.MIDI_CHANNEL_MESSAGES.controlchange && (t >= n.MIDI_NRPN_MESSAGES.increment && t <= n.MIDI_NRPN_MESSAGES.parammsb || t === n.MIDI_NRPN_MESSAGES.entrymsb || t === n.MIDI_NRPN_MESSAGES.entrylsb)) {\n\t\t\t\tvar s = {\n\t\t\t\t\ttarget: this,\n\t\t\t\t\ttype: \"controlchange\",\n\t\t\t\t\tdata: e.data,\n\t\t\t\t\ttimestamp: e.timeStamp,\n\t\t\t\t\tchannel: o,\n\t\t\t\t\tcontroller: {\n\t\t\t\t\t\tnumber: t,\n\t\t\t\t\t\tname: this.getCcNameByNumber(t)\n\t\t\t\t\t},\n\t\t\t\t\tvalue: r\n\t\t\t\t};\n\t\t\t\tif (s.controller.number === n.MIDI_NRPN_MESSAGES.parammsb && s.value != n.MIDI_NRPN_MESSAGES.nullactiveparameter) n._nrpnBuffer[a] = [], n._nrpnBuffer[a][0] = s;\n\t\t\t\telse if (n._nrpnBuffer[a].length === 1 && s.controller.number === n.MIDI_NRPN_MESSAGES.paramlsb) n._nrpnBuffer[a].push(s);\n\t\t\t\telse if (n._nrpnBuffer[a].length !== 2 || s.controller.number !== n.MIDI_NRPN_MESSAGES.increment && s.controller.number !== n.MIDI_NRPN_MESSAGES.decrement && s.controller.number !== n.MIDI_NRPN_MESSAGES.entrymsb) if (n._nrpnBuffer[a].length === 3 && n._nrpnBuffer[a][2].number === n.MIDI_NRPN_MESSAGES.entrymsb && s.controller.number === n.MIDI_NRPN_MESSAGES.entrylsb) n._nrpnBuffer[a].push(s);\n\t\t\t\telse if (3 <= n._nrpnBuffer[a].length && n._nrpnBuffer[a].length <= 4 && s.controller.number === n.MIDI_NRPN_MESSAGES.parammsb && s.value === n.MIDI_NRPN_MESSAGES.nullactiveparameter) n._nrpnBuffer[a].push(s);\n\t\t\t\telse if (4 <= n._nrpnBuffer[a].length && n._nrpnBuffer[a].length <= 5 && s.controller.number === n.MIDI_NRPN_MESSAGES.paramlsb && s.value === n.MIDI_NRPN_MESSAGES.nullactiveparameter) {\n\t\t\t\t\tn._nrpnBuffer[a].push(s);\n\t\t\t\t\tvar c = [];\n\t\t\t\t\tn._nrpnBuffer[a].forEach(function(e) {\n\t\t\t\t\t\tc.push(e.data);\n\t\t\t\t\t});\n\t\t\t\t\tvar l = n._nrpnBuffer[a][0].value << 7 | n._nrpnBuffer[a][1].value, u = n._nrpnBuffer[a][2].value;\n\t\t\t\t\tn._nrpnBuffer[a].length === 6 && (u = n._nrpnBuffer[a][2].value << 7 | n._nrpnBuffer[a][3].value);\n\t\t\t\t\tvar d = \"\";\n\t\t\t\t\tswitch (n._nrpnBuffer[a][2].controller.number) {\n\t\t\t\t\t\tcase n.MIDI_NRPN_MESSAGES.entrymsb:\n\t\t\t\t\t\t\td = n._nrpnTypes[0];\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase n.MIDI_NRPN_MESSAGES.increment:\n\t\t\t\t\t\t\td = n._nrpnTypes[1];\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase n.MIDI_NRPN_MESSAGES.decrement:\n\t\t\t\t\t\t\td = n._nrpnTypes[2];\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault: throw Error(\"The NPRN type was unidentifiable.\");\n\t\t\t\t\t}\n\t\t\t\t\tvar f = {\n\t\t\t\t\t\ttimestamp: s.timestamp,\n\t\t\t\t\t\tchannel: s.channel,\n\t\t\t\t\t\ttype: \"nrpn\",\n\t\t\t\t\t\tdata: c,\n\t\t\t\t\t\tcontroller: {\n\t\t\t\t\t\t\tnumber: l,\n\t\t\t\t\t\t\ttype: d,\n\t\t\t\t\t\t\tname: \"Non-Registered Parameter \" + l\n\t\t\t\t\t\t},\n\t\t\t\t\t\tvalue: u\n\t\t\t\t\t};\n\t\t\t\t\tn._nrpnBuffer[a] = [], this._userHandlers.channel[f.type] && this._userHandlers.channel[f.type][f.channel] && this._userHandlers.channel[f.type][f.channel].forEach(function(e) {\n\t\t\t\t\t\te(f);\n\t\t\t\t\t});\n\t\t\t\t} else n._nrpnBuffer[a] = [];\n\t\t\t\telse n._nrpnBuffer[a].push(s);\n\t\t\t}\n\t\t}, Input.prototype._parseChannelEvent = function(e) {\n\t\t\tvar t, r, i = e.data[0] >> 4, a = 1 + (15 & e.data[0]);\n\t\t\t1 < e.data.length && (t = e.data[1], r = 2 < e.data.length ? e.data[2] : void 0);\n\t\t\tvar o = {\n\t\t\t\ttarget: this,\n\t\t\t\tdata: e.data,\n\t\t\t\ttimestamp: e.timeStamp,\n\t\t\t\tchannel: a\n\t\t\t};\n\t\t\ti === n.MIDI_CHANNEL_MESSAGES.noteoff || i === n.MIDI_CHANNEL_MESSAGES.noteon && r === 0 ? (o.type = \"noteoff\", o.note = {\n\t\t\t\tnumber: t,\n\t\t\t\tname: n._notes[t % 12],\n\t\t\t\toctave: n.getOctave(t)\n\t\t\t}, o.velocity = r / 127, o.rawVelocity = r) : i === n.MIDI_CHANNEL_MESSAGES.noteon ? (o.type = \"noteon\", o.note = {\n\t\t\t\tnumber: t,\n\t\t\t\tname: n._notes[t % 12],\n\t\t\t\toctave: n.getOctave(t)\n\t\t\t}, o.velocity = r / 127, o.rawVelocity = r) : i === n.MIDI_CHANNEL_MESSAGES.keyaftertouch ? (o.type = \"keyaftertouch\", o.note = {\n\t\t\t\tnumber: t,\n\t\t\t\tname: n._notes[t % 12],\n\t\t\t\toctave: n.getOctave(t)\n\t\t\t}, o.value = r / 127) : i === n.MIDI_CHANNEL_MESSAGES.controlchange && 0 <= t && t <= 119 ? (o.type = \"controlchange\", o.controller = {\n\t\t\t\tnumber: t,\n\t\t\t\tname: this.getCcNameByNumber(t)\n\t\t\t}, o.value = r) : i === n.MIDI_CHANNEL_MESSAGES.channelmode && 120 <= t && t <= 127 ? (o.type = \"channelmode\", o.controller = {\n\t\t\t\tnumber: t,\n\t\t\t\tname: this.getChannelModeByNumber(t)\n\t\t\t}, o.value = r) : i === n.MIDI_CHANNEL_MESSAGES.programchange ? (o.type = \"programchange\", o.value = t) : i === n.MIDI_CHANNEL_MESSAGES.channelaftertouch ? (o.type = \"channelaftertouch\", o.value = t / 127) : i === n.MIDI_CHANNEL_MESSAGES.pitchbend ? (o.type = \"pitchbend\", o.value = ((r << 7) + t - 8192) / 8192) : o.type = \"unknownchannelmessage\", this._userHandlers.channel[o.type] && this._userHandlers.channel[o.type][a] && this._userHandlers.channel[o.type][a].forEach(function(e) {\n\t\t\t\te(o);\n\t\t\t});\n\t\t}, Input.prototype.getCcNameByNumber = function(e) {\n\t\t\tif (!(0 <= (e = Math.floor(e)) && e <= 119)) throw RangeError(\"The control change number must be between 0 and 119.\");\n\t\t\tfor (var t in n.MIDI_CONTROL_CHANGE_MESSAGES) if (Object.prototype.hasOwnProperty.call(n.MIDI_CONTROL_CHANGE_MESSAGES, t) && e === n.MIDI_CONTROL_CHANGE_MESSAGES[t]) return t;\n\t\t}, Input.prototype.getChannelModeByNumber = function(e) {\n\t\t\tif (!(120 <= (e = Math.floor(e)) && status <= 127)) throw RangeError(\"The control change number must be between 120 and 127.\");\n\t\t\tfor (var t in n.MIDI_CHANNEL_MODE_MESSAGES) if (Object.prototype.hasOwnProperty.call(n.MIDI_CHANNEL_MODE_MESSAGES, t) && e === n.MIDI_CHANNEL_MODE_MESSAGES[t]) return t;\n\t\t}, Input.prototype._parseSystemEvent = function(e) {\n\t\t\tvar t = e.data[0], r = {\n\t\t\t\ttarget: this,\n\t\t\t\tdata: e.data,\n\t\t\t\ttimestamp: e.timeStamp\n\t\t\t};\n\t\t\tt === n.MIDI_SYSTEM_MESSAGES.sysex ? r.type = \"sysex\" : t === n.MIDI_SYSTEM_MESSAGES.timecode ? r.type = \"timecode\" : t === n.MIDI_SYSTEM_MESSAGES.songposition ? r.type = \"songposition\" : t === n.MIDI_SYSTEM_MESSAGES.songselect ? (r.type = \"songselect\", r.song = e.data[1]) : t === n.MIDI_SYSTEM_MESSAGES.tuningrequest ? r.type = \"tuningrequest\" : t === n.MIDI_SYSTEM_MESSAGES.clock ? r.type = \"clock\" : t === n.MIDI_SYSTEM_MESSAGES.start ? r.type = \"start\" : t === n.MIDI_SYSTEM_MESSAGES.continue ? r.type = \"continue\" : t === n.MIDI_SYSTEM_MESSAGES.stop ? r.type = \"stop\" : t === n.MIDI_SYSTEM_MESSAGES.activesensing ? r.type = \"activesensing\" : t === n.MIDI_SYSTEM_MESSAGES.reset ? r.type = \"reset\" : r.type = \"unknownsystemmessage\", this._userHandlers.system[r.type] && this._userHandlers.system[r.type].forEach(function(e) {\n\t\t\t\te(r);\n\t\t\t});\n\t\t}, Output.prototype.send = function(e, t, n) {\n\t\t\tif (!(128 <= e && e <= 255)) throw RangeError(\"The status byte must be an integer between 128 (0x80) and 255 (0xFF).\");\n\t\t\tt === void 0 && (t = []), Array.isArray(t) || (t = [t]);\n\t\t\tvar r = [];\n\t\t\treturn t.forEach(function(e) {\n\t\t\t\tvar t = Math.floor(e);\n\t\t\t\tif (!(0 <= t && t <= 255)) throw RangeError(\"Data bytes must be integers between 0 (0x00) and 255 (0xFF).\");\n\t\t\t\tr.push(t);\n\t\t\t}), this._midiOutput.send([e].concat(r), parseFloat(n) || 0), this;\n\t\t}, Output.prototype.sendSysex = function(e, t, r) {\n\t\t\tif (!n.sysexEnabled) throw Error(\"Sysex message support must first be activated.\");\n\t\t\treturn r ||= {}, e = [].concat(e), t.forEach(function(e) {\n\t\t\t\tif (e < 0 || 127 < e) throw RangeError(\"The data bytes of a sysex message must be integers between 0 (0x00) and 127 (0x7F).\");\n\t\t\t}), t = e.concat(t, n.MIDI_SYSTEM_MESSAGES.sysexend), this.send(n.MIDI_SYSTEM_MESSAGES.sysex, t, this._parseTimeParameter(r.time)), this;\n\t\t}, Output.prototype.sendTimecodeQuarterFrame = function(e, t) {\n\t\t\treturn t ||= {}, this.send(n.MIDI_SYSTEM_MESSAGES.timecode, e, this._parseTimeParameter(t.time)), this;\n\t\t}, Output.prototype.sendSongPosition = function(e, t) {\n\t\t\tt ||= {};\n\t\t\tvar r = (e = Math.floor(e) || 0) >> 7 & 127, i = 127 & e;\n\t\t\treturn this.send(n.MIDI_SYSTEM_MESSAGES.songposition, [r, i], this._parseTimeParameter(t.time)), this;\n\t\t}, Output.prototype.sendSongSelect = function(e, t) {\n\t\t\tif (t ||= {}, !(0 <= (e = Math.floor(e)) && e <= 127)) throw RangeError(\"The song number must be between 0 and 127.\");\n\t\t\treturn this.send(n.MIDI_SYSTEM_MESSAGES.songselect, [e], this._parseTimeParameter(t.time)), this;\n\t\t}, Output.prototype.sendTuningRequest = function(e) {\n\t\t\treturn e ||= {}, this.send(n.MIDI_SYSTEM_MESSAGES.tuningrequest, void 0, this._parseTimeParameter(e.time)), this;\n\t\t}, Output.prototype.sendClock = function(e) {\n\t\t\treturn e ||= {}, this.send(n.MIDI_SYSTEM_MESSAGES.clock, void 0, this._parseTimeParameter(e.time)), this;\n\t\t}, Output.prototype.sendStart = function(e) {\n\t\t\treturn e ||= {}, this.send(n.MIDI_SYSTEM_MESSAGES.start, void 0, this._parseTimeParameter(e.time)), this;\n\t\t}, Output.prototype.sendContinue = function(e) {\n\t\t\treturn e ||= {}, this.send(n.MIDI_SYSTEM_MESSAGES.continue, void 0, this._parseTimeParameter(e.time)), this;\n\t\t}, Output.prototype.sendStop = function(e) {\n\t\t\treturn e ||= {}, this.send(n.MIDI_SYSTEM_MESSAGES.stop, void 0, this._parseTimeParameter(e.time)), this;\n\t\t}, Output.prototype.sendActiveSensing = function(e) {\n\t\t\treturn e ||= {}, this.send(n.MIDI_SYSTEM_MESSAGES.activesensing, [], this._parseTimeParameter(e.time)), this;\n\t\t}, Output.prototype.sendReset = function(e) {\n\t\t\treturn e ||= {}, this.send(n.MIDI_SYSTEM_MESSAGES.reset, void 0, this._parseTimeParameter(e.time)), this;\n\t\t}, Output.prototype.stopNote = function(e, t, r) {\n\t\t\tif (e === \"all\") return this.sendChannelMode(\"allnotesoff\", 0, t, r);\n\t\t\tvar i = 64;\n\t\t\treturn (r ||= {}).rawVelocity ? !isNaN(r.velocity) && 0 <= r.velocity && r.velocity <= 127 && (i = r.velocity) : !isNaN(r.velocity) && 0 <= r.velocity && r.velocity <= 1 && (i = 127 * r.velocity), this._convertNoteToArray(e).forEach(function(e) {\n\t\t\t\tn.toMIDIChannels(t).forEach(function(t) {\n\t\t\t\t\tthis.send((n.MIDI_CHANNEL_MESSAGES.noteoff << 4) + (t - 1), [e, Math.round(i)], this._parseTimeParameter(r.time));\n\t\t\t\t}.bind(this));\n\t\t\t}.bind(this)), this;\n\t\t}, Output.prototype.playNote = function(e, t, r) {\n\t\t\tvar i, a = 64;\n\t\t\tif ((r ||= {}).rawVelocity ? !isNaN(r.velocity) && 0 <= r.velocity && r.velocity <= 127 && (a = r.velocity) : !isNaN(r.velocity) && 0 <= r.velocity && r.velocity <= 1 && (a = 127 * r.velocity), i = this._parseTimeParameter(r.time), this._convertNoteToArray(e).forEach(function(e) {\n\t\t\t\tn.toMIDIChannels(t).forEach(function(t) {\n\t\t\t\t\tthis.send((n.MIDI_CHANNEL_MESSAGES.noteon << 4) + (t - 1), [e, Math.round(a)], i);\n\t\t\t\t}.bind(this));\n\t\t\t}.bind(this)), !isNaN(r.duration)) {\n\t\t\t\tr.duration <= 0 && (r.duration = 0);\n\t\t\t\tvar o = 64;\n\t\t\t\tr.rawVelocity ? !isNaN(r.release) && 0 <= r.release && r.release <= 127 && (o = r.release) : !isNaN(r.release) && 0 <= r.release && r.release <= 1 && (o = 127 * r.release), this._convertNoteToArray(e).forEach(function(e) {\n\t\t\t\t\tn.toMIDIChannels(t).forEach(function(t) {\n\t\t\t\t\t\tthis.send((n.MIDI_CHANNEL_MESSAGES.noteoff << 4) + (t - 1), [e, Math.round(o)], (i || n.time) + r.duration);\n\t\t\t\t\t}.bind(this));\n\t\t\t\t}.bind(this));\n\t\t\t}\n\t\t\treturn this;\n\t\t}, Output.prototype.sendKeyAftertouch = function(e, t, r, i) {\n\t\t\tvar a = this;\n\t\t\tif (i ||= {}, t < 1 || 16 < t) throw RangeError(\"The channel must be between 1 and 16.\");\n\t\t\t(isNaN(r) || r < 0 || 1 < r) && (r = .5);\n\t\t\tvar o = Math.round(127 * r);\n\t\t\treturn this._convertNoteToArray(e).forEach(function(e) {\n\t\t\t\tn.toMIDIChannels(t).forEach(function(t) {\n\t\t\t\t\ta.send((n.MIDI_CHANNEL_MESSAGES.keyaftertouch << 4) + (t - 1), [e, o], a._parseTimeParameter(i.time));\n\t\t\t\t});\n\t\t\t}), this;\n\t\t}, Output.prototype.sendControlChange = function(e, t, r, i) {\n\t\t\tif (i ||= {}, typeof e == \"string\") {\n\t\t\t\tif ((e = n.MIDI_CONTROL_CHANGE_MESSAGES[e]) === void 0) throw TypeError(\"Invalid controller name.\");\n\t\t\t} else if (!(0 <= (e = Math.floor(e)) && e <= 119)) throw RangeError(\"Controller numbers must be between 0 and 119.\");\n\t\t\tif (!(0 <= (t = Math.floor(t) || 0) && t <= 127)) throw RangeError(\"Controller value must be between 0 and 127.\");\n\t\t\treturn n.toMIDIChannels(r).forEach(function(r) {\n\t\t\t\tthis.send((n.MIDI_CHANNEL_MESSAGES.controlchange << 4) + (r - 1), [e, t], this._parseTimeParameter(i.time));\n\t\t\t}.bind(this)), this;\n\t\t}, Output.prototype._selectRegisteredParameter = function(e, t, r) {\n\t\t\tvar i = this;\n\t\t\tif (e[0] = Math.floor(e[0]), !(0 <= e[0] && e[0] <= 127)) throw RangeError(\"The control65 value must be between 0 and 127\");\n\t\t\tif (e[1] = Math.floor(e[1]), !(0 <= e[1] && e[1] <= 127)) throw RangeError(\"The control64 value must be between 0 and 127\");\n\t\t\treturn n.toMIDIChannels(t).forEach(function() {\n\t\t\t\ti.sendControlChange(101, e[0], t, { time: r }), i.sendControlChange(100, e[1], t, { time: r });\n\t\t\t}), this;\n\t\t}, Output.prototype._selectNonRegisteredParameter = function(e, t, r) {\n\t\t\tvar i = this;\n\t\t\tif (e[0] = Math.floor(e[0]), !(0 <= e[0] && e[0] <= 127)) throw RangeError(\"The control63 value must be between 0 and 127\");\n\t\t\tif (e[1] = Math.floor(e[1]), !(0 <= e[1] && e[1] <= 127)) throw RangeError(\"The control62 value must be between 0 and 127\");\n\t\t\treturn n.toMIDIChannels(t).forEach(function() {\n\t\t\t\ti.sendControlChange(99, e[0], t, { time: r }), i.sendControlChange(98, e[1], t, { time: r });\n\t\t\t}), this;\n\t\t}, Output.prototype._setCurrentRegisteredParameter = function(e, t, r) {\n\t\t\tvar i = this;\n\t\t\tif ((e = [].concat(e))[0] = Math.floor(e[0]), !(0 <= e[0] && e[0] <= 127)) throw RangeError(\"The msb value must be between 0 and 127\");\n\t\t\treturn n.toMIDIChannels(t).forEach(function() {\n\t\t\t\ti.sendControlChange(6, e[0], t, { time: r });\n\t\t\t}), e[1] = Math.floor(e[1]), 0 <= e[1] && e[1] <= 127 && n.toMIDIChannels(t).forEach(function() {\n\t\t\t\ti.sendControlChange(38, e[1], t, { time: r });\n\t\t\t}), this;\n\t\t}, Output.prototype._deselectRegisteredParameter = function(e, t) {\n\t\t\tvar r = this;\n\t\t\treturn n.toMIDIChannels(e).forEach(function() {\n\t\t\t\tr.sendControlChange(101, 127, e, { time: t }), r.sendControlChange(100, 127, e, { time: t });\n\t\t\t}), this;\n\t\t}, Output.prototype.setRegisteredParameter = function(e, t, r, i) {\n\t\t\tvar a = this;\n\t\t\tif (i ||= {}, !Array.isArray(e)) {\n\t\t\t\tif (!n.MIDI_REGISTERED_PARAMETER[e]) throw Error(\"The specified parameter is not available.\");\n\t\t\t\te = n.MIDI_REGISTERED_PARAMETER[e];\n\t\t\t}\n\t\t\treturn n.toMIDIChannels(r).forEach(function() {\n\t\t\t\ta._selectRegisteredParameter(e, r, i.time), a._setCurrentRegisteredParameter(t, r, i.time), a._deselectRegisteredParameter(r, i.time);\n\t\t\t}), this;\n\t\t}, Output.prototype.setNonRegisteredParameter = function(e, t, r, i) {\n\t\t\tvar a = this;\n\t\t\tif (i ||= {}, !(0 <= e[0] && e[0] <= 127 && 0 <= e[1] && e[1] <= 127)) throw Error(\"Position 0 and 1 of the 2-position parameter array must both be between 0 and 127.\");\n\t\t\treturn t = [].concat(t), n.toMIDIChannels(r).forEach(function() {\n\t\t\t\ta._selectNonRegisteredParameter(e, r, i.time), a._setCurrentRegisteredParameter(t, r, i.time), a._deselectRegisteredParameter(r, i.time);\n\t\t\t}), this;\n\t\t}, Output.prototype.incrementRegisteredParameter = function(e, t, r) {\n\t\t\tvar i = this;\n\t\t\tif (r ||= {}, !Array.isArray(e)) {\n\t\t\t\tif (!n.MIDI_REGISTERED_PARAMETER[e]) throw Error(\"The specified parameter is not available.\");\n\t\t\t\te = n.MIDI_REGISTERED_PARAMETER[e];\n\t\t\t}\n\t\t\treturn n.toMIDIChannels(t).forEach(function() {\n\t\t\t\ti._selectRegisteredParameter(e, t, r.time), i.sendControlChange(96, 0, t, { time: r.time }), i._deselectRegisteredParameter(t, r.time);\n\t\t\t}), this;\n\t\t}, Output.prototype.decrementRegisteredParameter = function(e, t, r) {\n\t\t\tif (r ||= {}, !Array.isArray(e)) {\n\t\t\t\tif (!n.MIDI_REGISTERED_PARAMETER[e]) throw TypeError(\"The specified parameter is not available.\");\n\t\t\t\te = n.MIDI_REGISTERED_PARAMETER[e];\n\t\t\t}\n\t\t\treturn n.toMIDIChannels(t).forEach(function() {\n\t\t\t\tthis._selectRegisteredParameter(e, t, r.time), this.sendControlChange(97, 0, t, { time: r.time }), this._deselectRegisteredParameter(t, r.time);\n\t\t\t}.bind(this)), this;\n\t\t}, Output.prototype.setPitchBendRange = function(e, t, r, i) {\n\t\t\tvar a = this;\n\t\t\tif (i ||= {}, !(0 <= (e = Math.floor(e) || 0) && e <= 127)) throw RangeError(\"The semitones value must be between 0 and 127\");\n\t\t\tif (!(0 <= (t = Math.floor(t) || 0) && t <= 127)) throw RangeError(\"The cents value must be between 0 and 127\");\n\t\t\treturn n.toMIDIChannels(r).forEach(function() {\n\t\t\t\ta.setRegisteredParameter(\"pitchbendrange\", [e, t], r, { time: i.time });\n\t\t\t}), this;\n\t\t}, Output.prototype.setModulationRange = function(e, t, r, i) {\n\t\t\tvar a = this;\n\t\t\tif (i ||= {}, !(0 <= (e = Math.floor(e) || 0) && e <= 127)) throw RangeError(\"The semitones value must be between 0 and 127\");\n\t\t\tif (!(0 <= (t = Math.floor(t) || 0) && t <= 127)) throw RangeError(\"The cents value must be between 0 and 127\");\n\t\t\treturn n.toMIDIChannels(r).forEach(function() {\n\t\t\t\ta.setRegisteredParameter(\"modulationrange\", [e, t], r, { time: i.time });\n\t\t\t}), this;\n\t\t}, Output.prototype.setMasterTuning = function(e, t, r) {\n\t\t\tvar i = this;\n\t\t\tif (r ||= {}, (e = parseFloat(e) || 0) <= -65 || 64 <= e) throw RangeError(\"The value must be a decimal number larger than -65 and smaller than 64.\");\n\t\t\tvar a = Math.floor(e) + 64, o = e - Math.floor(e), s = (o = Math.round((o + 1) / 2 * 16383)) >> 7 & 127, c = 127 & o;\n\t\t\treturn n.toMIDIChannels(t).forEach(function() {\n\t\t\t\ti.setRegisteredParameter(\"channelcoarsetuning\", a, t, { time: r.time }), i.setRegisteredParameter(\"channelfinetuning\", [s, c], t, { time: r.time });\n\t\t\t}), this;\n\t\t}, Output.prototype.setTuningProgram = function(e, t, r) {\n\t\t\tvar i = this;\n\t\t\tif (r ||= {}, !(0 <= (e = Math.floor(e)) && e <= 127)) throw RangeError(\"The program value must be between 0 and 127\");\n\t\t\treturn n.toMIDIChannels(t).forEach(function() {\n\t\t\t\ti.setRegisteredParameter(\"tuningprogram\", e, t, { time: r.time });\n\t\t\t}), this;\n\t\t}, Output.prototype.setTuningBank = function(e, t, r) {\n\t\t\tvar i = this;\n\t\t\tif (r ||= {}, !(0 <= (e = Math.floor(e) || 0) && e <= 127)) throw RangeError(\"The bank value must be between 0 and 127\");\n\t\t\treturn n.toMIDIChannels(t).forEach(function() {\n\t\t\t\ti.setRegisteredParameter(\"tuningbank\", e, t, { time: r.time });\n\t\t\t}), this;\n\t\t}, Output.prototype.sendChannelMode = function(e, t, r, i) {\n\t\t\tif (i ||= {}, typeof e == \"string\") {\n\t\t\t\tif (!(e = n.MIDI_CHANNEL_MODE_MESSAGES[e])) throw TypeError(\"Invalid channel mode message name.\");\n\t\t\t} else if (!(120 <= (e = Math.floor(e)) && e <= 127)) throw RangeError(\"Channel mode numerical identifiers must be between 120 and 127.\");\n\t\t\tif ((t = Math.floor(t) || 0) < 0 || 127 < t) throw RangeError(\"Value must be an integer between 0 and 127.\");\n\t\t\treturn n.toMIDIChannels(r).forEach(function(r) {\n\t\t\t\tthis.send((n.MIDI_CHANNEL_MESSAGES.channelmode << 4) + (r - 1), [e, t], this._parseTimeParameter(i.time));\n\t\t\t}.bind(this)), this;\n\t\t}, Output.prototype.sendProgramChange = function(e, t, r) {\n\t\t\tvar i = this;\n\t\t\tif (r ||= {}, e = Math.floor(e), isNaN(e) || e < 0 || 127 < e) throw RangeError(\"Program numbers must be between 0 and 127.\");\n\t\t\treturn n.toMIDIChannels(t).forEach(function(t) {\n\t\t\t\ti.send((n.MIDI_CHANNEL_MESSAGES.programchange << 4) + (t - 1), [e], i._parseTimeParameter(r.time));\n\t\t\t}), this;\n\t\t}, Output.prototype.sendChannelAftertouch = function(e, t, r) {\n\t\t\tvar i = this;\n\t\t\tr ||= {}, e = parseFloat(e), (isNaN(e) || e < 0 || 1 < e) && (e = .5);\n\t\t\tvar a = Math.round(127 * e);\n\t\t\treturn n.toMIDIChannels(t).forEach(function(e) {\n\t\t\t\ti.send((n.MIDI_CHANNEL_MESSAGES.channelaftertouch << 4) + (e - 1), [a], i._parseTimeParameter(r.time));\n\t\t\t}), this;\n\t\t}, Output.prototype.sendPitchBend = function(e, t, r) {\n\t\t\tvar i = this;\n\t\t\tif (r ||= {}, isNaN(e) || e < -1 || 1 < e) throw RangeError(\"Pitch bend value must be between -1 and 1.\");\n\t\t\tvar a = Math.round((e + 1) / 2 * 16383), o = a >> 7 & 127, s = 127 & a;\n\t\t\treturn n.toMIDIChannels(t).forEach(function(e) {\n\t\t\t\ti.send((n.MIDI_CHANNEL_MESSAGES.pitchbend << 4) + (e - 1), [s, o], i._parseTimeParameter(r.time));\n\t\t\t}), this;\n\t\t}, Output.prototype._parseTimeParameter = function(e) {\n\t\t\tvar t, r = parseFloat(e);\n\t\t\treturn typeof e == \"string\" && e.substring(0, 1) === \"+\" ? r && 0 < r && (t = n.time + r) : r > n.time && (t = r), t;\n\t\t}, Output.prototype._convertNoteToArray = function(e) {\n\t\t\tvar t = [];\n\t\t\treturn Array.isArray(e) || (e = [e]), e.forEach(function(e) {\n\t\t\t\tt.push(n.guessNoteNumber(e));\n\t\t\t}), t;\n\t\t}, typeof define == \"function\" && typeof define.amd == \"object\" ? define([], function() {\n\t\t\treturn n;\n\t\t}) : t !== void 0 && t.exports ? t.exports = n : e.WebMidi ||= n;\n\t})(e);\n})), fillStr = (e, t) => Array(Math.abs(t) + 1).join(e);\nfunction isNamed(e) {\n\treturn !!(typeof e == \"object\" && e && typeof e.name == \"string\");\n}\nfunction isPitch(e) {\n\treturn !!(typeof e == \"object\" && e && typeof e.step == \"number\" && typeof e.alt == \"number\");\n}\nvar j = [\n\t0,\n\t2,\n\t4,\n\t-1,\n\t1,\n\t3,\n\t5\n], ne = j.map((e) => Math.floor(e * 7 / 12));\nfunction encode(e) {\n\tlet { step: t, alt: n, oct: r, dir: i = 1 } = e, a = j[t] + 7 * n;\n\tif (r === void 0) return [i * a];\n\tlet o = r - ne[t] - 4 * n;\n\treturn [i * a, i * o];\n}\nvar re = [\n\t3,\n\t0,\n\t4,\n\t1,\n\t5,\n\t2,\n\t6\n];\nfunction decode(e) {\n\tlet [t, n, r] = e, i = re[unaltered(t)], a = Math.floor((t + 1) / 7);\n\treturn n === void 0 ? {\n\t\tstep: i,\n\t\talt: a,\n\t\tdir: r\n\t} : {\n\t\tstep: i,\n\t\talt: a,\n\t\toct: n + 4 * a + ne[i],\n\t\tdir: r\n\t};\n}\nfunction unaltered(e) {\n\tlet t = (e + 1) % 7;\n\treturn t < 0 ? 7 + t : t;\n}\nvar ie = {\n\tempty: !0,\n\tname: \"\",\n\tpc: \"\",\n\tacc: \"\"\n}, M = /* @__PURE__ */ new Map(), stepToLetter = (e) => \"CDEFGAB\".charAt(e), altToAcc = (e) => e < 0 ? fillStr(\"b\", -e) : fillStr(\"#\", e), accToAlt = (e) => e[0] === \"b\" ? -e.length : e.length;\nfunction note(e) {\n\tlet t = M.get(e);\n\tif (t) return t;\n\tlet n = typeof e == \"string\" ? parse$1(e) : isPitch(e) ? note(pitchName(e)) : isNamed(e) ? note(e.name) : ie;\n\treturn M.set(e, n), n;\n}\nvar ae = /^([a-gA-G]?)(#{1,}|b{1,}|x{1,}|)(-?\\d*)\\s*(.*)$/;\nfunction tokenizeNote(e) {\n\tlet t = ae.exec(e);\n\treturn [\n\t\tt[1].toUpperCase(),\n\t\tt[2].replace(/x/g, \"##\"),\n\t\tt[3],\n\t\tt[4]\n\t];\n}\nfunction coordToNote(e) {\n\treturn note(decode(e));\n}\nvar mod = (e, t) => (e % t + t) % t, N = [\n\t0,\n\t2,\n\t4,\n\t5,\n\t7,\n\t9,\n\t11\n];\nfunction parse$1(e) {\n\tlet t = tokenizeNote(e);\n\tif (t[0] === \"\" || t[3] !== \"\") return ie;\n\tlet n = t[0], r = t[1], i = t[2], a = (n.charCodeAt(0) + 3) % 7, o = accToAlt(r), s = i.length ? +i : void 0, c = encode({\n\t\tstep: a,\n\t\talt: o,\n\t\toct: s\n\t}), l = n + r + i, u = n + r, d = (N[a] + o + 120) % 12, f = s === void 0 ? mod(N[a] + o, 12) - 1188 : N[a] + o + 12 * (s + 1), p = f >= 0 && f <= 127 ? f : null;\n\treturn {\n\t\tempty: !1,\n\t\tacc: r,\n\t\talt: o,\n\t\tchroma: d,\n\t\tcoord: c,\n\t\tfreq: s === void 0 ? null : 2 ** ((f - 69) / 12) * 440,\n\t\theight: f,\n\t\tletter: n,\n\t\tmidi: p,\n\t\tname: l,\n\t\toct: s,\n\t\tpc: u,\n\t\tstep: a\n\t};\n}\nn(parse$1, \"parse\");\nfunction pitchName(e) {\n\tlet { step: t, alt: n, oct: r } = e, i = stepToLetter(t);\n\tif (!i) return \"\";\n\tlet a = i + altToAcc(n);\n\treturn r || r === 0 ? a + r : a;\n}\nvar P = {\n\tempty: !0,\n\tname: \"\",\n\tacc: \"\"\n}, oe = /* @__PURE__ */ RegExp(\"^([-+]?\\\\d+)(d{1,4}|m|M|P|A{1,4})|(AA|A|P|M|m|d|dd)([-+]?\\\\d+)$\");\nfunction tokenizeInterval(e) {\n\tlet t = oe.exec(`${e}`);\n\treturn t === null ? [\"\", \"\"] : t[1] ? [t[1], t[2]] : [t[4], t[3]];\n}\nvar F = {};\nfunction interval(e) {\n\treturn typeof e == \"string\" ? F[e] || (F[e] = parse$1$1(e)) : isPitch(e) ? interval(pitchName$1(e)) : isNamed(e) ? interval(e.name) : P;\n}\nvar I = [\n\t0,\n\t2,\n\t4,\n\t5,\n\t7,\n\t9,\n\t11\n], L = \"PMMPPMM\";\nfunction parse$1$1(e) {\n\tlet t = tokenizeInterval(e);\n\tif (t[0] === \"\") return P;\n\tlet n = +t[0], r = t[1], i = (Math.abs(n) - 1) % 7, a = L[i];\n\tif (a === \"M\" && r === \"P\") return P;\n\tlet o = a === \"M\" ? \"majorable\" : \"perfectable\", s = \"\" + n + r, c = n < 0 ? -1 : 1, l = n === 8 || n === -8 ? n : c * (i + 1), u = qToAlt(o, r), d = Math.floor((Math.abs(n) - 1) / 7);\n\treturn {\n\t\tempty: !1,\n\t\tname: s,\n\t\tnum: n,\n\t\tq: r,\n\t\tstep: i,\n\t\talt: u,\n\t\tdir: c,\n\t\ttype: o,\n\t\tsimple: l,\n\t\tsemitones: c * (I[i] + u + 12 * d),\n\t\tchroma: (c * (I[i] + u) % 12 + 12) % 12,\n\t\tcoord: encode({\n\t\t\tstep: i,\n\t\t\talt: u,\n\t\t\toct: d,\n\t\t\tdir: c\n\t\t}),\n\t\toct: d\n\t};\n}\nn(parse$1$1, \"parse$1\");\nfunction coordToInterval(e) {\n\tlet [t, n = 0] = e;\n\treturn interval(decode(t * 7 + n * 12 < 0 ? [\n\t\t-t,\n\t\t-n,\n\t\t-1\n\t] : [\n\t\tt,\n\t\tn,\n\t\t1\n\t]));\n}\nfunction qToAlt(e, t) {\n\treturn t === \"M\" && e === \"majorable\" || t === \"P\" && e === \"perfectable\" ? 0 : t === \"m\" && e === \"majorable\" ? -1 : /^A+$/.test(t) ? t.length : /^d+$/.test(t) ? -1 * (e === \"perfectable\" ? t.length : t.length + 1) : 0;\n}\nfunction pitchName$1(e) {\n\tlet { step: t, alt: n, oct: r = 0, dir: i } = e;\n\tif (!i) return \"\";\n\tlet a = t + 1 + 7 * r, o = i < 0 ? \"-\" : \"\", s = L[t] === \"M\" ? \"majorable\" : \"perfectable\";\n\treturn o + a + altToQ(s, n);\n}\nfunction altToQ(e, t) {\n\treturn t === 0 ? e === \"majorable\" ? \"M\" : \"P\" : t === -1 && e === \"majorable\" ? \"m\" : t > 0 ? fillStr(\"A\", t) : fillStr(\"d\", e === \"perfectable\" ? t : t + 1);\n}\nfunction transpose$2(e, t) {\n\tlet n = note(e), r = interval(t);\n\tif (n.empty || r.empty) return \"\";\n\tlet i = n.coord, a = r.coord;\n\treturn coordToNote(i.length === 1 ? [i[0] + a[0]] : [i[0] + a[0], i[1] + a[1]]).name;\n}\nn(transpose$2, \"transpose\");\nfunction distance$1(e, t) {\n\tlet n = note(e), r = note(t);\n\tif (n.empty || r.empty) return \"\";\n\tlet i = n.coord, a = r.coord, o = a[0] - i[0];\n\treturn coordToInterval([o, i.length === 2 && a.length === 2 ? a[1] - i[1] : -Math.floor(o * 7 / 12)]).name;\n}\nn(distance$1, \"distance\");\n//#endregion\n//#region ../../node_modules/@tonaljs/collection/dist/index.es.js\nfunction rotate(e, t) {\n\tlet n = t.length, r = (e % n + n) % n;\n\treturn t.slice(r, n).concat(t.slice(0, r));\n}\n//#endregion\n//#region ../../node_modules/@tonaljs/pcset/dist/index.es.js\nvar R = {\n\tempty: !0,\n\tname: \"\",\n\tsetNum: 0,\n\tchroma: \"000000000000\",\n\tnormalized: \"000000000000\",\n\tintervals: []\n}, setNumToChroma = (e) => Number(e).toString(2), chromaToNumber = (e) => parseInt(e, 2), se = /^[01]{12}$/;\nfunction isChroma(e) {\n\treturn se.test(e);\n}\nvar isPcsetNum = (e) => typeof e == \"number\" && e >= 0 && e <= 4095, isPcset = (e) => e && isChroma(e.chroma), z = { [R.chroma]: R };\nfunction get$8(e) {\n\tlet t = isChroma(e) ? e : isPcsetNum(e) ? setNumToChroma(e) : Array.isArray(e) ? listToChroma(e) : isPcset(e) ? e.chroma : R.chroma;\n\treturn z[t] = z[t] || chromaToPcset(t);\n}\nn(get$8, \"get\");\nvar ce = [\n\t\"1P\",\n\t\"2m\",\n\t\"2M\",\n\t\"3m\",\n\t\"3M\",\n\t\"4P\",\n\t\"5d\",\n\t\"5P\",\n\t\"6m\",\n\t\"6M\",\n\t\"7m\",\n\t\"7M\"\n];\nfunction chromaToIntervals(e) {\n\tlet t = [];\n\tfor (let n = 0; n < 12; n++) e.charAt(n) === \"1\" && t.push(ce[n]);\n\treturn t;\n}\nfunction chromaRotations(e) {\n\tlet t = e.split(\"\");\n\treturn t.map((e, n) => rotate(n, t).join(\"\"));\n}\nfunction chromaToPcset(e) {\n\tlet t = chromaToNumber(e), n = chromaRotations(e).map(chromaToNumber).filter((e) => e >= 2048).sort()[0];\n\treturn {\n\t\tempty: !1,\n\t\tname: \"\",\n\t\tsetNum: t,\n\t\tchroma: e,\n\t\tnormalized: setNumToChroma(n),\n\t\tintervals: chromaToIntervals(e)\n\t};\n}\nfunction listToChroma(e) {\n\tif (e.length === 0) return R.chroma;\n\tlet t, n = [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t];\n\tfor (let r = 0; r < e.length; r++) t = note(e[r]), t.empty && (t = interval(e[r])), t.empty || (n[t.chroma] = 1);\n\treturn n.join(\"\");\n}\n//#endregion\n//#region ../../node_modules/@tonaljs/chord-type/dist/index.es.js\nvar le = [\n\t[\n\t\t\"1P 3M 5P\",\n\t\t\"major\",\n\t\t\"M ^ \"\n\t],\n\t[\n\t\t\"1P 3M 5P 7M\",\n\t\t\"major seventh\",\n\t\t\"maj7 Δ ma7 M7 Maj7 ^7\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7M 9M\",\n\t\t\"major ninth\",\n\t\t\"maj9 Δ9 ^9\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7M 9M 13M\",\n\t\t\"major thirteenth\",\n\t\t\"maj13 Maj13 ^13\"\n\t],\n\t[\n\t\t\"1P 3M 5P 6M\",\n\t\t\"sixth\",\n\t\t\"6 add6 add13 M6\"\n\t],\n\t[\n\t\t\"1P 3M 5P 6M 9M\",\n\t\t\"sixth/ninth\",\n\t\t\"6/9 69 M69\"\n\t],\n\t[\n\t\t\"1P 3M 6m 7M\",\n\t\t\"major seventh flat sixth\",\n\t\t\"M7b6 ^7b6\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7M 11A\",\n\t\t\"major seventh sharp eleventh\",\n\t\t\"maj#4 Δ#4 Δ#11 M7#11 ^7#11 maj7#11\"\n\t],\n\t[\n\t\t\"1P 3m 5P\",\n\t\t\"minor\",\n\t\t\"m min -\"\n\t],\n\t[\n\t\t\"1P 3m 5P 7m\",\n\t\t\"minor seventh\",\n\t\t\"m7 min7 mi7 -7\"\n\t],\n\t[\n\t\t\"1P 3m 5P 7M\",\n\t\t\"minor/major seventh\",\n\t\t\"m/ma7 m/maj7 mM7 mMaj7 m/M7 -Δ7 mΔ -^7\"\n\t],\n\t[\n\t\t\"1P 3m 5P 6M\",\n\t\t\"minor sixth\",\n\t\t\"m6 -6\"\n\t],\n\t[\n\t\t\"1P 3m 5P 7m 9M\",\n\t\t\"minor ninth\",\n\t\t\"m9 -9\"\n\t],\n\t[\n\t\t\"1P 3m 5P 7M 9M\",\n\t\t\"minor/major ninth\",\n\t\t\"mM9 mMaj9 -^9\"\n\t],\n\t[\n\t\t\"1P 3m 5P 7m 9M 11P\",\n\t\t\"minor eleventh\",\n\t\t\"m11 -11\"\n\t],\n\t[\n\t\t\"1P 3m 5P 7m 9M 13M\",\n\t\t\"minor thirteenth\",\n\t\t\"m13 -13\"\n\t],\n\t[\n\t\t\"1P 3m 5d\",\n\t\t\"diminished\",\n\t\t\"dim ° o\"\n\t],\n\t[\n\t\t\"1P 3m 5d 7d\",\n\t\t\"diminished seventh\",\n\t\t\"dim7 °7 o7\"\n\t],\n\t[\n\t\t\"1P 3m 5d 7m\",\n\t\t\"half-diminished\",\n\t\t\"m7b5 ø -7b5 h7 h\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m\",\n\t\t\"dominant seventh\",\n\t\t\"7 dom\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9M\",\n\t\t\"dominant ninth\",\n\t\t\"9\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9M 13M\",\n\t\t\"dominant thirteenth\",\n\t\t\"13\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 11A\",\n\t\t\"lydian dominant seventh\",\n\t\t\"7#11 7#4\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9m\",\n\t\t\"dominant flat ninth\",\n\t\t\"7b9\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9A\",\n\t\t\"dominant sharp ninth\",\n\t\t\"7#9\"\n\t],\n\t[\n\t\t\"1P 3M 7m 9m\",\n\t\t\"altered\",\n\t\t\"alt7\"\n\t],\n\t[\n\t\t\"1P 4P 5P\",\n\t\t\"suspended fourth\",\n\t\t\"sus4 sus\"\n\t],\n\t[\n\t\t\"1P 2M 5P\",\n\t\t\"suspended second\",\n\t\t\"sus2\"\n\t],\n\t[\n\t\t\"1P 4P 5P 7m\",\n\t\t\"suspended fourth seventh\",\n\t\t\"7sus4 7sus\"\n\t],\n\t[\n\t\t\"1P 5P 7m 9M 11P\",\n\t\t\"eleventh\",\n\t\t\"11\"\n\t],\n\t[\n\t\t\"1P 4P 5P 7m 9m\",\n\t\t\"suspended fourth flat ninth\",\n\t\t\"b9sus phryg 7b9sus 7b9sus4\"\n\t],\n\t[\n\t\t\"1P 5P\",\n\t\t\"fifth\",\n\t\t\"5\"\n\t],\n\t[\n\t\t\"1P 3M 5A\",\n\t\t\"augmented\",\n\t\t\"aug + +5 ^#5\"\n\t],\n\t[\n\t\t\"1P 3m 5A\",\n\t\t\"minor augmented\",\n\t\t\"m#5 -#5 m+\"\n\t],\n\t[\n\t\t\"1P 3M 5A 7M\",\n\t\t\"augmented seventh\",\n\t\t\"maj7#5 maj7+5 +maj7 ^7#5\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7M 9M 11A\",\n\t\t\"major sharp eleventh (lydian)\",\n\t\t\"maj9#11 Δ9#11 ^9#11\"\n\t],\n\t[\n\t\t\"1P 2M 4P 5P\",\n\t\t\"\",\n\t\t\"sus24 sus4add9\"\n\t],\n\t[\n\t\t\"1P 3M 5A 7M 9M\",\n\t\t\"\",\n\t\t\"maj9#5 Maj9#5\"\n\t],\n\t[\n\t\t\"1P 3M 5A 7m\",\n\t\t\"\",\n\t\t\"7#5 +7 7+ 7aug aug7\"\n\t],\n\t[\n\t\t\"1P 3M 5A 7m 9A\",\n\t\t\"\",\n\t\t\"7#5#9 7#9#5 7alt\"\n\t],\n\t[\n\t\t\"1P 3M 5A 7m 9M\",\n\t\t\"\",\n\t\t\"9#5 9+\"\n\t],\n\t[\n\t\t\"1P 3M 5A 7m 9M 11A\",\n\t\t\"\",\n\t\t\"9#5#11\"\n\t],\n\t[\n\t\t\"1P 3M 5A 7m 9m\",\n\t\t\"\",\n\t\t\"7#5b9 7b9#5\"\n\t],\n\t[\n\t\t\"1P 3M 5A 7m 9m 11A\",\n\t\t\"\",\n\t\t\"7#5b9#11\"\n\t],\n\t[\n\t\t\"1P 3M 5A 9A\",\n\t\t\"\",\n\t\t\"+add#9\"\n\t],\n\t[\n\t\t\"1P 3M 5A 9M\",\n\t\t\"\",\n\t\t\"M#5add9 +add9\"\n\t],\n\t[\n\t\t\"1P 3M 5P 6M 11A\",\n\t\t\"\",\n\t\t\"M6#11 M6b5 6#11 6b5\"\n\t],\n\t[\n\t\t\"1P 3M 5P 6M 7M 9M\",\n\t\t\"\",\n\t\t\"M7add13\"\n\t],\n\t[\n\t\t\"1P 3M 5P 6M 9M 11A\",\n\t\t\"\",\n\t\t\"69#11\"\n\t],\n\t[\n\t\t\"1P 3m 5P 6M 9M\",\n\t\t\"\",\n\t\t\"m69 -69\"\n\t],\n\t[\n\t\t\"1P 3M 5P 6m 7m\",\n\t\t\"\",\n\t\t\"7b6\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7M 9A 11A\",\n\t\t\"\",\n\t\t\"maj7#9#11\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7M 9M 11A 13M\",\n\t\t\"\",\n\t\t\"M13#11 maj13#11 M13+4 M13#4\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7M 9m\",\n\t\t\"\",\n\t\t\"M7b9\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 11A 13m\",\n\t\t\"\",\n\t\t\"7#11b13 7b5b13\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 13M\",\n\t\t\"\",\n\t\t\"7add6 67 7add13\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9A 11A\",\n\t\t\"\",\n\t\t\"7#9#11 7b5#9 7#9b5\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9A 11A 13M\",\n\t\t\"\",\n\t\t\"13#9#11\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9A 11A 13m\",\n\t\t\"\",\n\t\t\"7#9#11b13\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9A 13M\",\n\t\t\"\",\n\t\t\"13#9\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9A 13m\",\n\t\t\"\",\n\t\t\"7#9b13\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9M 11A\",\n\t\t\"\",\n\t\t\"9#11 9+4 9#4\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9M 11A 13M\",\n\t\t\"\",\n\t\t\"13#11 13+4 13#4\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9M 11A 13m\",\n\t\t\"\",\n\t\t\"9#11b13 9b5b13\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9m 11A\",\n\t\t\"\",\n\t\t\"7b9#11 7b5b9 7b9b5\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9m 11A 13M\",\n\t\t\"\",\n\t\t\"13b9#11\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9m 11A 13m\",\n\t\t\"\",\n\t\t\"7b9b13#11 7b9#11b13 7b5b9b13\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9m 13M\",\n\t\t\"\",\n\t\t\"13b9\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9m 13m\",\n\t\t\"\",\n\t\t\"7b9b13\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9m 9A\",\n\t\t\"\",\n\t\t\"7b9#9\"\n\t],\n\t[\n\t\t\"1P 3M 5P 9M\",\n\t\t\"\",\n\t\t\"Madd9 2 add9 add2\"\n\t],\n\t[\n\t\t\"1P 3M 5P 9m\",\n\t\t\"\",\n\t\t\"Maddb9\"\n\t],\n\t[\n\t\t\"1P 3M 5d\",\n\t\t\"\",\n\t\t\"Mb5\"\n\t],\n\t[\n\t\t\"1P 3M 5d 6M 7m 9M\",\n\t\t\"\",\n\t\t\"13b5\"\n\t],\n\t[\n\t\t\"1P 3M 5d 7M\",\n\t\t\"\",\n\t\t\"M7b5\"\n\t],\n\t[\n\t\t\"1P 3M 5d 7M 9M\",\n\t\t\"\",\n\t\t\"M9b5\"\n\t],\n\t[\n\t\t\"1P 3M 5d 7m\",\n\t\t\"\",\n\t\t\"7b5\"\n\t],\n\t[\n\t\t\"1P 3M 5d 7m 9M\",\n\t\t\"\",\n\t\t\"9b5\"\n\t],\n\t[\n\t\t\"1P 3M 7m\",\n\t\t\"\",\n\t\t\"7no5\"\n\t],\n\t[\n\t\t\"1P 3M 7m 13m\",\n\t\t\"\",\n\t\t\"7b13\"\n\t],\n\t[\n\t\t\"1P 3M 7m 9M\",\n\t\t\"\",\n\t\t\"9no5\"\n\t],\n\t[\n\t\t\"1P 3M 7m 9M 13M\",\n\t\t\"\",\n\t\t\"13no5\"\n\t],\n\t[\n\t\t\"1P 3M 7m 9M 13m\",\n\t\t\"\",\n\t\t\"9b13\"\n\t],\n\t[\n\t\t\"1P 3m 4P 5P\",\n\t\t\"\",\n\t\t\"madd4\"\n\t],\n\t[\n\t\t\"1P 3m 5P 6m 7M\",\n\t\t\"\",\n\t\t\"mMaj7b6\"\n\t],\n\t[\n\t\t\"1P 3m 5P 6m 7M 9M\",\n\t\t\"\",\n\t\t\"mMaj9b6\"\n\t],\n\t[\n\t\t\"1P 3m 5P 7m 11P\",\n\t\t\"\",\n\t\t\"m7add11 m7add4\"\n\t],\n\t[\n\t\t\"1P 3m 5P 9M\",\n\t\t\"\",\n\t\t\"madd9\"\n\t],\n\t[\n\t\t\"1P 3m 5d 6M 7M\",\n\t\t\"\",\n\t\t\"o7M7\"\n\t],\n\t[\n\t\t\"1P 3m 5d 7M\",\n\t\t\"\",\n\t\t\"oM7\"\n\t],\n\t[\n\t\t\"1P 3m 6m 7M\",\n\t\t\"\",\n\t\t\"mb6M7\"\n\t],\n\t[\n\t\t\"1P 3m 6m 7m\",\n\t\t\"\",\n\t\t\"m7#5\"\n\t],\n\t[\n\t\t\"1P 3m 6m 7m 9M\",\n\t\t\"\",\n\t\t\"m9#5\"\n\t],\n\t[\n\t\t\"1P 3m 5A 7m 9M 11P\",\n\t\t\"\",\n\t\t\"m11A\"\n\t],\n\t[\n\t\t\"1P 3m 6m 9m\",\n\t\t\"\",\n\t\t\"mb6b9\"\n\t],\n\t[\n\t\t\"1P 2M 3m 5d 7m\",\n\t\t\"\",\n\t\t\"m9b5\"\n\t],\n\t[\n\t\t\"1P 4P 5A 7M\",\n\t\t\"\",\n\t\t\"M7#5sus4\"\n\t],\n\t[\n\t\t\"1P 4P 5A 7M 9M\",\n\t\t\"\",\n\t\t\"M9#5sus4\"\n\t],\n\t[\n\t\t\"1P 4P 5A 7m\",\n\t\t\"\",\n\t\t\"7#5sus4\"\n\t],\n\t[\n\t\t\"1P 4P 5P 7M\",\n\t\t\"\",\n\t\t\"M7sus4\"\n\t],\n\t[\n\t\t\"1P 4P 5P 7M 9M\",\n\t\t\"\",\n\t\t\"M9sus4\"\n\t],\n\t[\n\t\t\"1P 4P 5P 7m 9M\",\n\t\t\"\",\n\t\t\"9sus4 9sus\"\n\t],\n\t[\n\t\t\"1P 4P 5P 7m 9M 13M\",\n\t\t\"\",\n\t\t\"13sus4 13sus\"\n\t],\n\t[\n\t\t\"1P 4P 5P 7m 9m 13m\",\n\t\t\"\",\n\t\t\"7sus4b9b13 7b9b13sus4\"\n\t],\n\t[\n\t\t\"1P 4P 7m 10m\",\n\t\t\"\",\n\t\t\"4 quartal\"\n\t],\n\t[\n\t\t\"1P 5P 7m 9m 11P\",\n\t\t\"\",\n\t\t\"11b9\"\n\t]\n], ue = {\n\t...R,\n\tname: \"\",\n\tquality: \"Unknown\",\n\tintervals: [],\n\taliases: []\n}, B = [], V = {};\nfunction get$7(e) {\n\treturn V[e] || ue;\n}\nn(get$7, \"get\");\nfunction all$2() {\n\treturn B.slice();\n}\nn(all$2, \"all\");\nfunction add$3(e, t, n) {\n\tlet r = getQuality(e), i = {\n\t\t...get$8(e),\n\t\tname: n || \"\",\n\t\tquality: r,\n\t\tintervals: e,\n\t\taliases: t\n\t};\n\tB.push(i), i.name && (V[i.name] = i), V[i.setNum] = i, V[i.chroma] = i, i.aliases.forEach((e) => addAlias$1(i, e));\n}\nn(add$3, \"add\");\nfunction addAlias$1(e, t) {\n\tV[t] = e;\n}\nn(addAlias$1, \"addAlias\");\nfunction getQuality(e) {\n\tlet has = (t) => e.indexOf(t) !== -1;\n\treturn has(\"5A\") ? \"Augmented\" : has(\"3M\") ? \"Major\" : has(\"5d\") ? \"Diminished\" : has(\"3m\") ? \"Minor\" : \"Unknown\";\n}\nle.forEach(([e, t, n]) => add$3(e.split(\" \"), n.split(\" \"), t)), B.sort((e, t) => e.setNum - t.setNum);\n//#endregion\n//#region ../../node_modules/@tonaljs/scale-type/dist/index.es.js\nvar de = [\n\t[\n\t\t\"1P 2M 3M 5P 6M\",\n\t\t\"major pentatonic\",\n\t\t\"pentatonic\"\n\t],\n\t[\"1P 3M 4P 5P 7M\", \"ionian pentatonic\"],\n\t[\n\t\t\"1P 3M 4P 5P 7m\",\n\t\t\"mixolydian pentatonic\",\n\t\t\"indian\"\n\t],\n\t[\"1P 2M 4P 5P 6M\", \"ritusen\"],\n\t[\"1P 2M 4P 5P 7m\", \"egyptian\"],\n\t[\"1P 3M 4P 5d 7m\", \"neopolitan major pentatonic\"],\n\t[\"1P 3m 4P 5P 6m\", \"vietnamese 1\"],\n\t[\"1P 2m 3m 5P 6m\", \"pelog\"],\n\t[\"1P 2m 4P 5P 6m\", \"kumoijoshi\"],\n\t[\"1P 2M 3m 5P 6m\", \"hirajoshi\"],\n\t[\"1P 2m 4P 5d 7m\", \"iwato\"],\n\t[\"1P 2m 4P 5P 7m\", \"in-sen\"],\n\t[\n\t\t\"1P 3M 4A 5P 7M\",\n\t\t\"lydian pentatonic\",\n\t\t\"chinese\"\n\t],\n\t[\"1P 3m 4P 6m 7m\", \"malkos raga\"],\n\t[\n\t\t\"1P 3m 4P 5d 7m\",\n\t\t\"locrian pentatonic\",\n\t\t\"minor seven flat five pentatonic\"\n\t],\n\t[\n\t\t\"1P 3m 4P 5P 7m\",\n\t\t\"minor pentatonic\",\n\t\t\"vietnamese 2\"\n\t],\n\t[\"1P 3m 4P 5P 6M\", \"minor six pentatonic\"],\n\t[\n\t\t\"1P 2M 3m 5P 6M\",\n\t\t\"flat three pentatonic\",\n\t\t\"kumoi\"\n\t],\n\t[\"1P 2M 3M 5P 6m\", \"flat six pentatonic\"],\n\t[\"1P 2m 3M 5P 6M\", \"scriabin\"],\n\t[\"1P 3M 5d 6m 7m\", \"whole tone pentatonic\"],\n\t[\"1P 3M 4A 5A 7M\", \"lydian #5P pentatonic\"],\n\t[\"1P 3M 4A 5P 7m\", \"lydian dominant pentatonic\"],\n\t[\"1P 3m 4P 5P 7M\", \"minor #7M pentatonic\"],\n\t[\"1P 3m 4d 5d 7m\", \"super locrian pentatonic\"],\n\t[\"1P 2M 3m 4P 5P 7M\", \"minor hexatonic\"],\n\t[\"1P 2A 3M 5P 5A 7M\", \"augmented\"],\n\t[\"1P 2M 3m 3M 5P 6M\", \"major blues\"],\n\t[\"1P 2M 4P 5P 6M 7m\", \"piongio\"],\n\t[\"1P 2m 3M 4A 6M 7m\", \"prometheus neopolitan\"],\n\t[\"1P 2M 3M 4A 6M 7m\", \"prometheus\"],\n\t[\"1P 2m 3M 5d 6m 7m\", \"mystery #1\"],\n\t[\"1P 2m 3M 4P 5A 6M\", \"six tone symmetric\"],\n\t[\n\t\t\"1P 2M 3M 4A 5A 7m\",\n\t\t\"whole tone\",\n\t\t\"messiaen's mode #1\"\n\t],\n\t[\"1P 2m 4P 4A 5P 7M\", \"messiaen's mode #5\"],\n\t[\n\t\t\"1P 3m 4P 5d 5P 7m\",\n\t\t\"minor blues\",\n\t\t\"blues\"\n\t],\n\t[\n\t\t\"1P 2M 3M 4P 5d 6m 7m\",\n\t\t\"locrian major\",\n\t\t\"arabian\"\n\t],\n\t[\"1P 2m 3M 4A 5P 6m 7M\", \"double harmonic lydian\"],\n\t[\"1P 2M 3m 4P 5P 6m 7M\", \"harmonic minor\"],\n\t[\n\t\t\"1P 2m 3m 4d 5d 6m 7m\",\n\t\t\"altered\",\n\t\t\"super locrian\",\n\t\t\"diminished whole tone\",\n\t\t\"pomeroy\"\n\t],\n\t[\n\t\t\"1P 2M 3m 4P 5d 6m 7m\",\n\t\t\"locrian #2\",\n\t\t\"half-diminished\",\n\t\t\"aeolian b5\"\n\t],\n\t[\n\t\t\"1P 2M 3M 4P 5P 6m 7m\",\n\t\t\"mixolydian b6\",\n\t\t\"melodic minor fifth mode\",\n\t\t\"hindu\"\n\t],\n\t[\n\t\t\"1P 2M 3M 4A 5P 6M 7m\",\n\t\t\"lydian dominant\",\n\t\t\"lydian b7\",\n\t\t\"overtone\"\n\t],\n\t[\"1P 2M 3M 4A 5P 6M 7M\", \"lydian\"],\n\t[\"1P 2M 3M 4A 5A 6M 7M\", \"lydian augmented\"],\n\t[\n\t\t\"1P 2m 3m 4P 5P 6M 7m\",\n\t\t\"dorian b2\",\n\t\t\"phrygian #6\",\n\t\t\"melodic minor second mode\"\n\t],\n\t[\"1P 2M 3m 4P 5P 6M 7M\", \"melodic minor\"],\n\t[\"1P 2m 3m 4P 5d 6m 7m\", \"locrian\"],\n\t[\n\t\t\"1P 2m 3m 4d 5d 6m 7d\",\n\t\t\"ultralocrian\",\n\t\t\"superlocrian bb7\",\n\t\t\"·superlocrian diminished\"\n\t],\n\t[\n\t\t\"1P 2m 3m 4P 5d 6M 7m\",\n\t\t\"locrian 6\",\n\t\t\"locrian natural 6\",\n\t\t\"locrian sharp 6\"\n\t],\n\t[\"1P 2A 3M 4P 5P 5A 7M\", \"augmented heptatonic\"],\n\t[\"1P 2M 3m 5d 5P 6M 7m\", \"romanian minor\"],\n\t[\"1P 2M 3m 4A 5P 6M 7m\", \"dorian #4\"],\n\t[\"1P 2M 3m 4A 5P 6M 7M\", \"lydian diminished\"],\n\t[\"1P 2m 3m 4P 5P 6m 7m\", \"phrygian\"],\n\t[\"1P 2M 3M 4A 5A 7m 7M\", \"leading whole tone\"],\n\t[\"1P 2M 3M 4A 5P 6m 7m\", \"lydian minor\"],\n\t[\n\t\t\"1P 2m 3M 4P 5P 6m 7m\",\n\t\t\"phrygian dominant\",\n\t\t\"spanish\",\n\t\t\"phrygian major\"\n\t],\n\t[\"1P 2m 3m 4P 5P 6m 7M\", \"balinese\"],\n\t[\"1P 2m 3m 4P 5P 6M 7M\", \"neopolitan major\"],\n\t[\n\t\t\"1P 2M 3m 4P 5P 6m 7m\",\n\t\t\"aeolian\",\n\t\t\"minor\"\n\t],\n\t[\"1P 2M 3M 4P 5P 6m 7M\", \"harmonic major\"],\n\t[\n\t\t\"1P 2m 3M 4P 5P 6m 7M\",\n\t\t\"double harmonic major\",\n\t\t\"gypsy\"\n\t],\n\t[\"1P 2M 3m 4P 5P 6M 7m\", \"dorian\"],\n\t[\"1P 2M 3m 4A 5P 6m 7M\", \"hungarian minor\"],\n\t[\"1P 2A 3M 4A 5P 6M 7m\", \"hungarian major\"],\n\t[\"1P 2m 3M 4P 5d 6M 7m\", \"oriental\"],\n\t[\"1P 2m 3m 3M 4A 5P 7m\", \"flamenco\"],\n\t[\"1P 2m 3m 4A 5P 6m 7M\", \"todi raga\"],\n\t[\n\t\t\"1P 2M 3M 4P 5P 6M 7m\",\n\t\t\"mixolydian\",\n\t\t\"dominant\"\n\t],\n\t[\"1P 2m 3M 4P 5d 6m 7M\", \"persian\"],\n\t[\n\t\t\"1P 2M 3M 4P 5P 6M 7M\",\n\t\t\"major\",\n\t\t\"ionian\"\n\t],\n\t[\"1P 2m 3M 5d 6m 7m 7M\", \"enigmatic\"],\n\t[\n\t\t\"1P 2M 3M 4P 5A 6M 7M\",\n\t\t\"major augmented\",\n\t\t\"major #5\",\n\t\t\"ionian augmented\",\n\t\t\"ionian #5\"\n\t],\n\t[\"1P 2A 3M 4A 5P 6M 7M\", \"lydian #9\"],\n\t[\"1P 2m 2M 4P 4A 5P 6m 7M\", \"messiaen's mode #4\"],\n\t[\"1P 2m 3M 4P 4A 5P 6m 7M\", \"purvi raga\"],\n\t[\"1P 2m 3m 3M 4P 5P 6m 7m\", \"spanish heptatonic\"],\n\t[\"1P 2M 3M 4P 5P 6M 7m 7M\", \"bebop\"],\n\t[\"1P 2M 3m 3M 4P 5P 6M 7m\", \"bebop minor\"],\n\t[\"1P 2M 3M 4P 5P 5A 6M 7M\", \"bebop major\"],\n\t[\"1P 2m 3m 4P 5d 5P 6m 7m\", \"bebop locrian\"],\n\t[\"1P 2M 3m 4P 5P 6m 7m 7M\", \"minor bebop\"],\n\t[\n\t\t\"1P 2M 3m 4P 5d 6m 6M 7M\",\n\t\t\"diminished\",\n\t\t\"whole-half diminished\"\n\t],\n\t[\"1P 2M 3M 4P 5d 5P 6M 7M\", \"ichikosucho\"],\n\t[\"1P 2M 3m 4P 5P 6m 6M 7M\", \"minor six diminished\"],\n\t[\n\t\t\"1P 2m 3m 3M 4A 5P 6M 7m\",\n\t\t\"half-whole diminished\",\n\t\t\"dominant diminished\",\n\t\t\"messiaen's mode #2\"\n\t],\n\t[\"1P 3m 3M 4P 5P 6M 7m 7M\", \"kafi raga\"],\n\t[\"1P 2M 3M 4P 4A 5A 6A 7M\", \"messiaen's mode #6\"],\n\t[\"1P 2M 3m 3M 4P 5d 5P 6M 7m\", \"composite blues\"],\n\t[\"1P 2M 3m 3M 4A 5P 6m 7m 7M\", \"messiaen's mode #3\"],\n\t[\"1P 2m 2M 3m 4P 4A 5P 6m 6M 7M\", \"messiaen's mode #7\"],\n\t[\"1P 2m 2M 3m 3M 4P 5d 5P 6m 6M 7m 7M\", \"chromatic\"]\n], fe = {\n\t...R,\n\tintervals: [],\n\taliases: []\n}, H = [], U = {};\nfunction get$6(e) {\n\treturn U[e] || fe;\n}\nn(get$6, \"get\");\nfunction all$1() {\n\treturn H.slice();\n}\nn(all$1, \"all\");\nfunction add$2(e, t, n = []) {\n\tlet r = {\n\t\t...get$8(e),\n\t\tname: t,\n\t\tintervals: e,\n\t\taliases: n\n\t};\n\treturn H.push(r), U[r.name] = r, U[r.setNum] = r, U[r.chroma] = r, r.aliases.forEach((e) => addAlias(r, e)), r;\n}\nn(add$2, \"add\");\nfunction addAlias(e, t) {\n\tU[t] = e;\n}\nde.forEach(([e, t, ...n]) => add$2(e.split(\" \"), t, n));\n//#endregion\n//#region ../../node_modules/@tonaljs/chord/dist/index.es.js\nvar W = {\n\tempty: !0,\n\tname: \"\",\n\tsymbol: \"\",\n\troot: \"\",\n\trootDegree: 0,\n\ttype: \"\",\n\ttonic: null,\n\tsetNum: NaN,\n\tquality: \"Unknown\",\n\tchroma: \"\",\n\tnormalized: \"\",\n\taliases: [],\n\tnotes: [],\n\tintervals: []\n}, pe = /^(6|64|7|9|11|13)$/;\nfunction tokenize$2(e) {\n\tlet [t, n, r, i] = tokenizeNote(e);\n\treturn t === \"\" ? [\"\", e] : t === \"A\" && i === \"ug\" ? [\"\", \"aug\"] : !i && (r === \"4\" || r === \"5\") ? [t + n, r] : pe.test(r) ? [t + n, r + i] : [t + n + r, i];\n}\nn(tokenize$2, \"tokenize\");\nfunction get$5(e) {\n\tif (e === \"\") return W;\n\tif (Array.isArray(e) && e.length === 2) return getChord(e[1], e[0]);\n\t{\n\t\tlet [t, n] = tokenize$2(e), r = getChord(n, t);\n\t\treturn r.empty ? getChord(e) : r;\n\t}\n}\nn(get$5, \"get\");\nfunction getChord(e, t, n) {\n\tlet r = get$7(e), i = note(t || \"\"), a = note(n || \"\");\n\tif (r.empty || t && i.empty || n && a.empty) return W;\n\tlet o = distance$1(i.pc, a.pc), s = r.intervals.indexOf(o) + 1;\n\tif (!a.empty && !s) return W;\n\tlet c = Array.from(r.intervals);\n\tfor (let e = 1; e < s; e++) {\n\t\tlet e = c[0][0], t = c[0][1], n = parseInt(e, 10) + 7;\n\t\tc.push(`${n}${t}`), c.shift();\n\t}\n\tlet l = i.empty ? [] : c.map((e) => transpose$2(i, e));\n\te = r.aliases.indexOf(e) === -1 ? r.aliases[0] : e;\n\tlet u = `${i.empty ? \"\" : i.pc}${e}${a.empty || s <= 1 ? \"\" : \"/\" + a.pc}`, d = `${t ? i.pc + \" \" : \"\"}${r.name}${s > 1 && n ? \" over \" + a.pc : \"\"}`;\n\treturn {\n\t\t...r,\n\t\tname: d,\n\t\tsymbol: u,\n\t\ttype: r.name,\n\t\troot: a.name,\n\t\tintervals: c,\n\t\trootDegree: s,\n\t\ttonic: i.name,\n\t\tnotes: l\n\t};\n}\n//#endregion\n//#region ../../node_modules/@tonaljs/duration-value/dist/index.es.js\nvar me = [\n\t[\n\t\t.125,\n\t\t\"dl\",\n\t\t[\n\t\t\t\"large\",\n\t\t\t\"duplex longa\",\n\t\t\t\"maxima\",\n\t\t\t\"octuple\",\n\t\t\t\"octuple whole\"\n\t\t]\n\t],\n\t[\n\t\t.25,\n\t\t\"l\",\n\t\t[\"long\", \"longa\"]\n\t],\n\t[\n\t\t.5,\n\t\t\"d\",\n\t\t[\n\t\t\t\"double whole\",\n\t\t\t\"double\",\n\t\t\t\"breve\"\n\t\t]\n\t],\n\t[\n\t\t1,\n\t\t\"w\",\n\t\t[\"whole\", \"semibreve\"]\n\t],\n\t[\n\t\t2,\n\t\t\"h\",\n\t\t[\"half\", \"minim\"]\n\t],\n\t[\n\t\t4,\n\t\t\"q\",\n\t\t[\"quarter\", \"crotchet\"]\n\t],\n\t[\n\t\t8,\n\t\t\"e\",\n\t\t[\"eighth\", \"quaver\"]\n\t],\n\t[\n\t\t16,\n\t\t\"s\",\n\t\t[\"sixteenth\", \"semiquaver\"]\n\t],\n\t[\n\t\t32,\n\t\t\"t\",\n\t\t[\"thirty-second\", \"demisemiquaver\"]\n\t],\n\t[\n\t\t64,\n\t\t\"sf\",\n\t\t[\"sixty-fourth\", \"hemidemisemiquaver\"]\n\t],\n\t[\n\t\t128,\n\t\t\"h\",\n\t\t[\"hundred twenty-eighth\"]\n\t],\n\t[\n\t\t256,\n\t\t\"th\",\n\t\t[\"two hundred fifty-sixth\"]\n\t]\n], he = [];\nme.forEach(([e, t, n]) => add$1(e, t, n));\nfunction add$1(e, t, n) {\n\the.push({\n\t\tempty: !1,\n\t\tdots: \"\",\n\t\tname: \"\",\n\t\tvalue: 1 / e,\n\t\tfraction: e < 1 ? [1 / e, 1] : [1, e],\n\t\tshorthand: t,\n\t\tnames: n\n\t});\n}\nn(add$1, \"add\");\n//#endregion\n//#region ../../node_modules/@tonaljs/interval/dist/index.es.js\nfunction names$1() {\n\treturn \"1P 2M 3M 4P 5P 6m 7m\".split(\" \");\n}\nn(names$1, \"names\");\nvar ge = interval, _e = /* @__PURE__ */ n((e) => interval(e).name, \"name\"), semitones = (e) => interval(e).semitones, quality = (e) => interval(e).q, num = (e) => interval(e).num;\nfunction simplify$1(e) {\n\tlet t = interval(e);\n\treturn t.empty ? \"\" : t.simple + t.q;\n}\nn(simplify$1, \"simplify\");\nfunction invert(e) {\n\tlet t = interval(e);\n\treturn t.empty ? \"\" : interval({\n\t\tstep: (7 - t.step) % 7,\n\t\talt: t.type === \"perfectable\" ? -t.alt : -(t.alt + 1),\n\t\toct: t.oct,\n\t\tdir: t.dir\n\t}).name;\n}\nvar ve = [\n\t1,\n\t2,\n\t2,\n\t3,\n\t3,\n\t4,\n\t5,\n\t5,\n\t6,\n\t6,\n\t7,\n\t7\n], ye = \"P m M m M P d P m M m M\".split(\" \");\nfunction fromSemitones(e) {\n\tlet t = e < 0 ? -1 : 1, n = Math.abs(e), r = n % 12, i = Math.floor(n / 12);\n\treturn t * (ve[r] + 7 * i) + ye[r];\n}\nvar be = distance$1, xe = combinator((e, t) => [e[0] + t[0], e[1] + t[1]]), addTo = (e) => (t) => xe(e, t), Se = {\n\tnames: names$1,\n\tget: ge,\n\tname: _e,\n\tnum,\n\tsemitones,\n\tquality,\n\tfromSemitones,\n\tdistance: be,\n\tinvert,\n\tsimplify: simplify$1,\n\tadd: xe,\n\taddTo,\n\tsubstract: combinator((e, t) => [e[0] - t[0], e[1] - t[1]])\n};\nfunction combinator(e) {\n\treturn (t, n) => {\n\t\tlet r = interval(t).coord, i = interval(n).coord;\n\t\tif (r && i) return coordToInterval(e(r, i)).name;\n\t};\n}\n//#endregion\n//#region ../../node_modules/@tonaljs/midi/dist/index.es.js\nvar Ce = Math.log(2), we = Math.log(440);\nfunction freqToMidi(e) {\n\tlet t = 12 * (Math.log(e) - we) / Ce + 69;\n\treturn Math.round(t * 100) / 100;\n}\nvar Te = \"C C# D D# E F F# G G# A A# B\".split(\" \"), Ee = \"C Db D Eb E F Gb G Ab A Bb B\".split(\" \");\nfunction midiToNoteName(e, t = {}) {\n\tif (isNaN(e) || e === -Infinity || e === Infinity) return \"\";\n\te = Math.round(e);\n\tlet n = (t.sharps === !0 ? Te : Ee)[e % 12];\n\treturn t.pitchClass ? n : n + (Math.floor(e / 12) - 1);\n}\n//#endregion\n//#region ../../node_modules/@tonaljs/note/dist/index.es.js\nvar De = [\n\t\"C\",\n\t\"D\",\n\t\"E\",\n\t\"F\",\n\t\"G\",\n\t\"A\",\n\t\"B\"\n], toName = (e) => e.name, onlyNotes = (e) => e.map(note).filter((e) => !e.empty);\nfunction names(e) {\n\treturn e === void 0 ? De.slice() : Array.isArray(e) ? onlyNotes(e).map(toName) : [];\n}\nvar G = note, name = (e) => G(e).name, pitchClass = (e) => G(e).pc, accidentals = (e) => G(e).acc, octave = (e) => G(e).oct, midi = (e) => G(e).midi, freq = (e) => G(e).freq, chroma = (e) => G(e).chroma;\nfunction fromMidi(e) {\n\treturn midiToNoteName(e);\n}\nfunction fromFreq(e) {\n\treturn midiToNoteName(freqToMidi(e));\n}\nfunction fromFreqSharps(e) {\n\treturn midiToNoteName(freqToMidi(e), { sharps: !0 });\n}\nfunction fromMidiSharps(e) {\n\treturn midiToNoteName(e, { sharps: !0 });\n}\nvar K = transpose$2, Oe = transpose$2, transposeBy = (e) => (t) => K(t, e), ke = transposeBy, transposeFrom = (e) => (t) => K(e, t), Ae = transposeFrom;\nfunction transposeFifths(e, t) {\n\tlet n = G(e);\n\tif (n.empty) return \"\";\n\tlet [r, i] = n.coord;\n\treturn coordToNote(i === void 0 ? [r + t] : [r + t, i]).name;\n}\nvar je = transposeFifths, ascending = (e, t) => e.height - t.height, descending = (e, t) => t.height - e.height;\nfunction sortedNames(e, t) {\n\treturn t ||= ascending, onlyNotes(e).sort(t).map(toName);\n}\nfunction sortedUniqNames(e) {\n\treturn sortedNames(e, ascending).filter((e, t, n) => t === 0 || e !== n[t - 1]);\n}\nvar Me = nameBuilder(!0), Ne = nameBuilder(!1);\nfunction nameBuilder(e) {\n\treturn (t) => {\n\t\tlet n = G(t);\n\t\tif (n.empty) return \"\";\n\t\tlet r = e ? n.alt > 0 : n.alt < 0, i = n.midi === null;\n\t\treturn midiToNoteName(n.midi || n.chroma, {\n\t\t\tsharps: r,\n\t\t\tpitchClass: i\n\t\t});\n\t};\n}\nvar q = {\n\tnames,\n\tget: G,\n\tname,\n\tpitchClass,\n\taccidentals,\n\toctave,\n\tmidi,\n\tascending,\n\tdescending,\n\tsortedNames,\n\tsortedUniqNames,\n\tfromMidi,\n\tfromMidiSharps,\n\tfreq,\n\tfromFreq,\n\tfromFreqSharps,\n\tchroma,\n\ttranspose: K,\n\ttr: Oe,\n\ttransposeBy,\n\ttrBy: ke,\n\ttransposeFrom,\n\ttrFrom: Ae,\n\ttransposeFifths,\n\ttrFifths: je,\n\tsimplify: Me,\n\tenharmonic: Ne\n}, Pe = {\n\tempty: !0,\n\tname: \"\",\n\tchordType: \"\"\n}, Fe = {};\nfunction get$2(e) {\n\treturn typeof e == \"string\" ? Fe[e] || (Fe[e] = parse(e)) : typeof e == \"number\" ? get$2(J[e] || \"\") : isPitch(e) ? fromPitch(e) : isNamed(e) ? get$2(e.name) : Pe;\n}\nn(get$2, \"get\");\nfunction fromPitch(e) {\n\treturn get$2(altToAcc(e.alt) + J[e.step]);\n}\nvar Ie = /^(#{1,}|b{1,}|x{1,}|)(IV|I{1,3}|VI{0,2}|iv|i{1,3}|vi{0,2})([^IViv]*)$/;\nfunction tokenize$1(e) {\n\treturn Ie.exec(e) || [\n\t\t\"\",\n\t\t\"\",\n\t\t\"\",\n\t\t\"\"\n\t];\n}\nn(tokenize$1, \"tokenize\");\nvar Le = \"I II III IV V VI VII\", J = Le.split(\" \");\nLe.toLowerCase().split(\" \");\nfunction parse(e) {\n\tlet [t, n, r, i] = tokenize$1(e);\n\tif (!r) return Pe;\n\tlet a = r.toUpperCase(), o = J.indexOf(a), s = accToAlt(n);\n\treturn {\n\t\tempty: !1,\n\t\tname: t,\n\t\troman: r,\n\t\tinterval: interval({\n\t\t\tstep: o,\n\t\t\talt: s,\n\t\t\tdir: 1\n\t\t}).name,\n\t\tacc: n,\n\t\tchordType: i,\n\t\talt: s,\n\t\tstep: o,\n\t\tmajor: r === a,\n\t\toct: 0,\n\t\tdir: 1\n\t};\n}\n//#endregion\n//#region ../../node_modules/@tonaljs/key/dist/index.es.js\nvar Re = [\n\t[\n\t\t0,\n\t\t2773,\n\t\t0,\n\t\t\"ionian\",\n\t\t\"\",\n\t\t\"Maj7\",\n\t\t\"major\"\n\t],\n\t[\n\t\t1,\n\t\t2902,\n\t\t2,\n\t\t\"dorian\",\n\t\t\"m\",\n\t\t\"m7\"\n\t],\n\t[\n\t\t2,\n\t\t3418,\n\t\t4,\n\t\t\"phrygian\",\n\t\t\"m\",\n\t\t\"m7\"\n\t],\n\t[\n\t\t3,\n\t\t2741,\n\t\t-1,\n\t\t\"lydian\",\n\t\t\"\",\n\t\t\"Maj7\"\n\t],\n\t[\n\t\t4,\n\t\t2774,\n\t\t1,\n\t\t\"mixolydian\",\n\t\t\"\",\n\t\t\"7\"\n\t],\n\t[\n\t\t5,\n\t\t2906,\n\t\t3,\n\t\t\"aeolian\",\n\t\t\"m\",\n\t\t\"m7\",\n\t\t\"minor\"\n\t],\n\t[\n\t\t6,\n\t\t3434,\n\t\t5,\n\t\t\"locrian\",\n\t\t\"dim\",\n\t\t\"m7b5\"\n\t]\n], ze = {\n\t...R,\n\tname: \"\",\n\talt: 0,\n\tmodeNum: NaN,\n\ttriad: \"\",\n\tseventh: \"\",\n\taliases: []\n}, Be = Re.map(toMode), Y = {};\nBe.forEach((e) => {\n\tY[e.name] = e, e.aliases.forEach((t) => {\n\t\tY[t] = e;\n\t});\n});\nfunction get$1(e) {\n\treturn typeof e == \"string\" ? Y[e.toLowerCase()] || ze : e && e.name ? get$1(e.name) : ze;\n}\nn(get$1, \"get\");\nfunction toMode(e) {\n\tlet [t, n, r, i, a, o, s] = e, c = s ? [s] : [], l = Number(n).toString(2);\n\treturn {\n\t\tempty: !1,\n\t\tintervals: chromaToIntervals(l),\n\t\tmodeNum: t,\n\t\tchroma: l,\n\t\tnormalized: l,\n\t\tname: i,\n\t\tsetNum: n,\n\t\talt: r,\n\t\ttriad: a,\n\t\tseventh: o,\n\t\taliases: c\n\t};\n}\n//#endregion\n//#region src/piano/utility/midi.ts\nvar Ve = /* @__PURE__ */ e(te(), 1);\nfunction transpose(e, t) {\n\tlet n = { ...e }, r = q.transpose(e.note.name + e.note.octave, Se.fromSemitones(t));\n\treturn n.note = {\n\t\tname: q.pitchClass(r),\n\t\tnumber: e.note.number + t,\n\t\toctave: q.octave(r)\n\t}, n;\n}\nfunction transposeSyllableSeq(e, t) {\n\treturn e.map((e) => transpose(e, t));\n}\nfunction eventsToSyllableSequence(e) {\n\tlet t = [];\n\te = e.filter((e) => e.type === \"noteon\").sort((e, t) => e.timestamp - t.timestamp);\n\tfor (let n = 10; n > 0; n--) for (let r = 0; r < e.length - n + 1; r++) try {\n\t\tt.push(new X(e.slice(r, r + n))), e.splice(r, n), r = -1;\n\t} catch {}\n\treturn new He(t);\n}\nvar He = class SyllableSequence {\n\tsyllables;\n\trootNote;\n\tappend(e) {\n\t\tif (this.syllables.length) try {\n\t\t\tlet t = new X(this.syllables[this.syllables.length - 1].notes.map((e) => ({\n\t\t\t\tnote: e.note,\n\t\t\t\ttimestamp: e.timestamp,\n\t\t\t\ttype: e.type,\n\t\t\t\tvelocity: e.velocity\n\t\t\t})).concat(e));\n\t\t\tthis.syllables.splice(this.syllables.length - 1, 1, t);\n\t\t} catch {\n\t\t\tthis.syllables.push(new X([e]));\n\t\t}\n\t\telse this.syllables.push(new X([e])), this.rootNote = e.note;\n\t}\n\tconstructor(e) {\n\t\te.length > 0 ? (this.syllables = e.sort((e, t) => e.timestamp - t.timestamp), this.rootNote = this.syllables[0].notes.reduce((e, t) => t.note.number < e.note.number ? t : e).note) : (this.syllables = [], this.rootNote = {\n\t\t\tname: \"C\",\n\t\t\toctave: 4,\n\t\t\tnumber: 0\n\t\t});\n\t}\n\tgrade(e) {\n\t\tlet t = [];\n\t\tfor (let n = 0; n < this.syllables.length; n++) t.push(this.syllables[n].grade(e.syllables[n]));\n\t\treturn new SyllableSequence(t);\n\t}\n\ttoString() {\n\t\tlet e = \"\";\n\t\treturn this.syllables.forEach((t, n) => {\n\t\t\te += `Syllable ${n + 1}: {\\n`, t.notes.forEach((t) => {\n\t\t\t\te += `\\t${t.note.name}\\t${t.note.number}\\t${t.timestamp} ${t.isCorrect ? \"\" : \"(incorrect)\"} ${t.isMissing ? \"(missing)\" : \"\"}\\n`;\n\t\t\t}), e += `} - ${t.timestamp}, correct: ${t.isCorrect}\\n`;\n\t\t}), e;\n\t}\n\tisCorrect() {\n\t\tlet e = !0;\n\t\treturn this.syllables.forEach((t) => {\n\t\t\tt.isCorrect === !1 ? e = !1 : t.notes.forEach((t) => {\n\t\t\t\tt.isCorrect === !1 && (e = !1);\n\t\t\t});\n\t\t}), e;\n\t}\n}, X = class Syllable {\n\tnotes;\n\tisCorrect;\n\tget timestamp() {\n\t\tlet e = 0;\n\t\treturn this.notes.forEach((t) => {\n\t\t\tif (t.timestamp === 0) return 0;\n\t\t\te += t.timestamp;\n\t\t}), e /= this.notes.length, e;\n\t}\n\tconstructor(e) {\n\t\te = e.filter((e) => e.type === \"noteon\");\n\t\tlet t = e.reduce((e, t) => e.timestamp < t.timestamp ? e : t), n = e.reduce((e, t) => e.timestamp > t.timestamp ? e : t).timestamp - t.timestamp;\n\t\tif (Syllable.gracePeriod(e.length) < n) throw Error(`Notes ${e.toString()} are not close enough together to be a syllable`);\n\t\tthis.notes = e.map((e) => ({\n\t\t\t...e,\n\t\t\tisCorrect: !0,\n\t\t\tisMissing: !1\n\t\t})).sort((e, t) => e.note.number - t.note.number);\n\t}\n\tstatic gracePeriod(e) {\n\t\treturn 1.3 * 12 * e;\n\t}\n\tgrade(e) {\n\t\treturn this.notes.length !== e.notes.length && (e.isCorrect = !1), e.notes.forEach((t) => {\n\t\t\tlet n = q.fromMidi(t.note.number), r = q.fromMidiSharps(t.note.number);\n\t\t\tn = q.pitchClass(n), r = q.pitchClass(r), t.isCorrect = this.notes.filter((e) => q.chroma(n) === q.chroma(e.note.name) || q.chroma(r) === q.chroma(e.note.name)).length >= 1, t.isCorrect || (e.isCorrect = !1);\n\t\t}), this.notes.forEach((t) => {\n\t\t\tlet n = q.fromMidi(t.note.number);\n\t\t\tn = q.pitchClass(n), e.notes.some((e) => q.chroma(e.note.name) === q.chroma(n)) || e.notes.push({\n\t\t\t\t...t,\n\t\t\t\tisMissing: !0,\n\t\t\t\tisCorrect: !1\n\t\t\t});\n\t\t}), e;\n\t}\n}, Z = class SkMidi {\n\tstatic _instance;\n\tstatic OFFSET = 5;\n\trecording = [];\n\twebmidi = Ve.default;\n\tinput;\n\toutput;\n\t_noteonListeners = [];\n\t_noteoffListeners = [];\n\tstatic _initializedWithUserConfig = !1;\n\tmidiAccess;\n\t_state = \"initializing\";\n\tget state() {\n\t\treturn this._state;\n\t}\n\t_userLookup;\n\tconstructor(e) {\n\t\tthis._userLookup = e ?? null;\n\t}\n\tasync init() {\n\t\tif (!this.midiAccess) try {\n\t\t\tnavigator.requestMIDIAccess().then((e) => {\n\t\t\t\tthis.midiAccess = e, this.midiAccess.onstatechange = (e) => {\n\t\t\t\t\tT({\n\t\t\t\t\t\ttext: `Midi device ${e.port.name} is ${e.port.state}`,\n\t\t\t\t\t\tstatus: e.port.state === \"connected\" ? k.ok : k.error\n\t\t\t\t\t});\n\t\t\t\t};\n\t\t\t});\n\t\t} catch (e) {\n\t\t\tconsole.log(`Webmidi not enabled: ${e}`), this._state = \"notsupported\";\n\t\t}\n\t\ttry {\n\t\t\tthis.webmidi.disable();\n\t\t} catch (e) {\n\t\t\tconsole.log(`Webmidi not enabled: ${e}`), this._state = \"notsupported\";\n\t\t}\n\t\treturn new Promise((e, t) => {\n\t\t\tthis.webmidi.enable(async (n) => {\n\t\t\t\tn ? (this._state = \"notsupported\", console.log(`Webmidi not enabled: ${n}`), t(n)) : (console.log(\"Webmidi enabled\"), console.log(`Inputs: ${JSON.stringify(this.webmidi.inputs)}`), console.log(`Outputs: ${JSON.stringify(this.webmidi.outputs)}`), this.output = this.webmidi.outputs[0], this.input = this.webmidi.inputs[0], SkMidi._initializedWithUserConfig ||= (await this.loadUserConfiguration(), !0), this.input && this.output ? (console.log(\"midi init state: ready\"), this._state = \"ready\", this.attachListeners()) : (console.log(\"midi init state: nodevice\"), this._state = \"nodevice\"), e(!0));\n\t\t\t});\n\t\t});\n\t}\n\tasync loadUserConfiguration() {\n\t\ttry {\n\t\t\tif (!this._userLookup) {\n\t\t\t\tconsole.log(\"User lookup function not provided - using default MIDI configuration\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tlet e = await this._userLookup();\n\t\t\tif (!e) {\n\t\t\t\tconsole.log(\"No user found, using default MIDI configuration\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tlet t = await e.getActiveCourses();\n\t\t\tfor (let n of t) {\n\t\t\t\tlet t = await (await e.getCourseInterface(n.courseID)).getCourseSettings();\n\t\t\t\tif (t?.midiinput || t?.midioutput) {\n\t\t\t\t\tt.midiinput && this.webmidi.getInputById(t.midiinput.toString()) && (this.selectInput(t.midiinput.toString()), console.log(`Loaded saved MIDI input: ${t.midiinput}`)), t.midioutput && this.webmidi.getOutputById(t.midioutput.toString()) && (this.selectOutput(t.midioutput.toString()), console.log(`Loaded saved MIDI output: ${t.midioutput}`));\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(\"Failed to load user MIDI configuration:\", e);\n\t\t}\n\t}\n\tsetStateChangeListener(e) {\n\t\tif (this.midiAccess) this.midiAccess.onstatechange = (t) => {\n\t\t\tthis.init().then(() => {\n\t\t\t\tconsole.log(`Midi state: ${this.state}`), e();\n\t\t\t}), T({\n\t\t\t\ttext: `Midi device ${t.port.name} is ${t.port.state}`,\n\t\t\t\tstatus: t.port.state === \"connected\" ? k.ok : k.error\n\t\t\t});\n\t\t};\n\t\telse try {\n\t\t\tnavigator.requestMIDIAccess().then((t) => {\n\t\t\t\tthis.midiAccess = t, this.midiAccess.onstatechange = (t) => {\n\t\t\t\t\tthis.init().then(() => {\n\t\t\t\t\t\tconsole.log(`Midi state: ${this.state}`), e();\n\t\t\t\t\t}), T({\n\t\t\t\t\t\ttext: `Midi device ${t.port.name} is ${t.port.state}`,\n\t\t\t\t\t\tstatus: t.port.state === \"connected\" ? k.ok : k.error\n\t\t\t\t\t});\n\t\t\t\t};\n\t\t\t});\n\t\t} catch (e) {\n\t\t\tconsole.log(`Webmidi not enabled: ${e}`), this._state = \"notsupported\";\n\t\t}\n\t}\n\tattachListeners() {\n\t\tthis.input && (this._noteonListeners.forEach((e) => {\n\t\t\tthis.input?.on(\"noteon\", \"all\", e);\n\t\t}), this._noteoffListeners.forEach((e) => {\n\t\t\tthis.input?.on(\"noteoff\", \"all\", e);\n\t\t}));\n\t}\n\tget hasRecording() {\n\t\treturn this.record.length > 0;\n\t}\n\tget configuredInput() {\n\t\treturn this.input ? `${this.input.manufacturer}: ${this.input.name}` : \"(Not Sure!)\";\n\t}\n\teraseRecording() {\n\t\tthis.recording = [];\n\t}\n\tstopRecording() {\n\t\tthis.input?.removeListener();\n\t}\n\trecord() {\n\t\tlet e = 0;\n\t\tif (this.input === void 0) throw Error(\"Midi input not configured!\");\n\t\tthis.input.connection === \"open\" && (this.stopRecording(), this.eraseRecording(), this.input.on(\"noteon\", \"all\", (t) => {\n\t\t\tthis.recording.length === 0 && (e = t.timestamp), this.recording.push({\n\t\t\t\tnote: t.note,\n\t\t\t\ttype: t.type,\n\t\t\t\tvelocity: t.velocity,\n\t\t\t\ttimestamp: t.timestamp - e\n\t\t\t});\n\t\t}), this.input.on(\"noteoff\", \"all\", (t) => {\n\t\t\tthis.recording.length === 0 && (e = t.timestamp), this.recording.push({\n\t\t\t\tnote: t.note,\n\t\t\t\tvelocity: t.velocity,\n\t\t\t\ttype: t.type,\n\t\t\t\ttimestamp: t.timestamp - e\n\t\t\t});\n\t\t}));\n\t}\n\taddNoteonListenter(e) {\n\t\tthis._noteonListeners.push(e), this.input && this.input.on(\"noteon\", \"all\", e);\n\t}\n\taddNoteoffListenter(e) {\n\t\tthis._noteoffListeners.push(e), this.input && this.input.on(\"noteoff\", \"all\", e);\n\t}\n\tplay(e) {\n\t\tlet t = e || this.recording;\n\t\tt = t.map((e) => ({\n\t\t\t...e,\n\t\t\ttimestamp: e.timestamp + SkMidi.OFFSET\n\t\t})), t.forEach((e) => {\n\t\t\te.type === \"noteon\" ? this.output?.playNote(e.note.name + e.note.octave, 1, {\n\t\t\t\tvelocity: e.velocity,\n\t\t\t\ttime: `+${e.timestamp}`,\n\t\t\t\trawVelocity: !1\n\t\t\t}) : this.output?.stopNote(e.note.name + e.note.octave, 1, {\n\t\t\t\tvelocity: e.velocity,\n\t\t\t\ttime: `+${e.timestamp}`,\n\t\t\t\trawVelocity: !1\n\t\t\t});\n\t\t});\n\t}\n\tstatic async instance() {\n\t\treturn SkMidi._instance ? SkMidi._instance : (console.log(\"Buzz, whirr, Midi instance factory is at work\"), SkMidi._instance = new SkMidi(), await SkMidi._instance.init(), SkMidi._instance);\n\t}\n\tget inputs() {\n\t\treturn this.webmidi.inputs;\n\t}\n\tget outputs() {\n\t\treturn this.webmidi.outputs;\n\t}\n\tselectInput(e) {\n\t\tthis.webmidi.getInputById(e) === !1 ? this.webmidi.getInputByName(e) !== !1 && (this.input = this.webmidi.getInputByName(e)) : this.input = this.webmidi.getInputById(e);\n\t}\n\tselectOutput(e) {\n\t\tthis.webmidi.getOutputById(e) === !1 ? this.webmidi.getOutputByName(e) !== !1 && (this.output = this.webmidi.getOutputByName(e)) : this.output = this.webmidi.getOutputById(e);\n\t}\n}, Ue = p({\n\tname: \"SyllableSeqVis\",\n\tprops: {\n\t\tseq: {\n\t\t\ttype: Object,\n\t\t\trequired: !0\n\t\t},\n\t\tlastTSsuggestion: {\n\t\t\ttype: Number,\n\t\t\trequired: !1,\n\t\t\tdefault: 0\n\t\t}\n\t},\n\tsetup(e) {\n\t\tlet t = v(0), n = v(0), r = v(0), i = v(500), sayNote = (e) => {\n\t\t\tconsole.log(`${JSON.stringify(e)}`);\n\t\t}, a = o(() => {\n\t\t\tlet t = e.seq.syllables[e.seq.syllables.length - 1].timestamp;\n\t\t\treturn Math.max(1, t, e.lastTSsuggestion);\n\t\t}), s = o(() => {\n\t\t\tlet t = 0, n = 500;\n\t\t\treturn e.seq.syllables.forEach((e) => {\n\t\t\t\te.notes.forEach((e) => {\n\t\t\t\t\te.note.number > t && (t = e.note.number), e.note.number < n && (n = e.note.number);\n\t\t\t\t});\n\t\t\t}), Math.max(3 * (t - n) + 10, 0);\n\t\t}), updateBounds = () => {\n\t\t\ttry {\n\t\t\t\tt.value = e.seq.syllables[0].timestamp;\n\t\t\t\tlet r = e.seq.syllables[e.seq.syllables.length - 1].timestamp, i = t.value + e.lastTSsuggestion;\n\t\t\t\tn.value = Math.max(r, i);\n\t\t\t} catch (e) {\n\t\t\t\tconsole.log(`[SyllableSeqVis] Error updating bounds: ${e}`);\n\t\t\t}\n\t\t\te.seq.syllables.forEach((e) => {\n\t\t\t\te.notes.forEach((e) => {\n\t\t\t\t\te.note.number > r.value && (r.value = e.note.number), e.note.number < i.value && (i.value = e.note.number);\n\t\t\t\t});\n\t\t\t});\n\t\t};\n\t\treturn g(() => {\n\t\t\tconsole.log(`SyllableSeqVis created w/ input: \\n${e.seq}`), updateBounds();\n\t\t}), {\n\t\t\tfirstTS: t,\n\t\t\tlastTS: n,\n\t\t\thigh: r,\n\t\t\tlow: i,\n\t\t\tsayNote,\n\t\t\tgetLastTS: a,\n\t\t\tgetHeight: s,\n\t\t\tupdateBounds\n\t\t};\n\t}\n}), We = [\"height\"], Ge = [\n\t\"cx\",\n\t\"cy\",\n\t\"alt\",\n\t\"fill\",\n\t\"stroke\",\n\t\"onMouseenter\"\n];\nfunction _sfc_render$3(e, t, n, r, i, o) {\n\treturn _(), l(\"div\", null, [(_(), l(\"svg\", {\n\t\twidth: 510,\n\t\theight: Math.max(3 * (e.high - e.low) + 10, 0)\n\t}, [(_(!0), l(a, null, y(e.seq.syllables, (t) => (_(), l(a, null, [(_(!0), l(a, null, y(t.notes, (n) => (_(), l(\"circle\", {\n\t\tkey: t.timestamp + \"-\" + n.note.number,\n\t\tcx: (t.timestamp - e.firstTS) * 500 / (e.lastTS - e.firstTS) + 4,\n\t\tcy: 3 * (e.high - n.note.number) + 4,\n\t\talt: n.note.name,\n\t\tr: \"3\",\n\t\tfill: n.isCorrect ? \"black\" : n.isMissing ? \"none\" : \"red\",\n\t\tstroke: n.isMissing ? \"red\" : \"none\",\n\t\tonMouseenter: (t) => e.sayNote(n)\n\t}, null, 40, Ge))), 128))], 64))), 256))], 8, We))]);\n}\nn(_sfc_render$3, \"_sfc_render\");\nvar Ke = /* @__PURE__ */ r(Ue, [[\"render\", _sfc_render$3], [\"__scopeId\", \"data-v-2f79c080\"]]), qe = p({\n\tname: \"NoteDisplay\",\n\tprops: { chroma: {\n\t\ttype: Number,\n\t\trequired: !0\n\t} },\n\tsetup(e) {\n\t\tlet style = (t) => {\n\t\t\tlet n = \"#ffffff\";\n\t\t\treturn t === e.chroma ? n = \"#1976D2\" : (t === 1 || t === 3 || t === 6 || t === 8 || t === 10 || t === -2) && (n = \"#000000\"), {\n\t\t\t\tfill: n,\n\t\t\t\t\"fill-opacity\": 1,\n\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\"stroke-width\": .79375,\n\t\t\t\t\"stroke-miterlimit\": 4,\n\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\"stroke-opacity\": 1\n\t\t\t};\n\t\t};\n\t\treturn {\n\t\t\tstyle,\n\t\t\twhite: -1,\n\t\t\tblack: -2\n\t\t};\n\t}\n}), Je = {\n\tid: \"svg8\",\n\twidth: \"300px\",\n\theight: \"auto\",\n\t\"xmlns:dc\": \"http://purl.org/dc/elements/1.1/\",\n\t\"xmlns:cc\": \"http://creativecommons.org/ns#\",\n\t\"xmlns:rdf\": \"http://www.w3.org/1999/02/22-rdf-syntax-ns#\",\n\t\"xmlns:svg\": \"http://www.w3.org/2000/svg\",\n\txmlns: \"http://www.w3.org/2000/svg\",\n\t\"xmlns:sodipodi\": \"http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd\",\n\t\"xmlns:inkscape\": \"http://www.inkscape.org/namespaces/inkscape\",\n\t\"sodipodi:docname\": \"keys.svg\",\n\t\"inkscape:version\": \"1.0rc1 (09960d6f05, 2020-04-09)\",\n\tversion: \"1.1\",\n\tviewBox: \"0 0 175.24936 73.594925\"\n}, Ye = { id: \"metadata5\" }, Xe = {\n\tid: \"layer1\",\n\ttransform: \"translate(167.75219,-151.96011)\",\n\t\"inkscape:groupmode\": \"layer\",\n\t\"inkscape:label\": \"Layer 1\"\n};\nfunction _sfc_render$2(e, t, n, r, i, a) {\n\tlet o = b(\"sodipodi:namedview\"), s = b(\"dc:format\"), c = b(\"dc:type\"), p = b(\"dc:title\"), h = b(\"cc:Work\"), g = b(\"rdf:RDF\");\n\treturn _(), l(\"svg\", Je, [\n\t\tt[1] ||= u(\"defs\", { id: \"defs2\" }, null, -1),\n\t\tf(o, {\n\t\t\tid: \"base\",\n\t\t\t\"inkscape:window-maximized\": \"1\",\n\t\t\t\"inkscape:window-y\": \"726\",\n\t\t\t\"inkscape:window-x\": \"1491\",\n\t\t\t\"inkscape:window-height\": \"1321\",\n\t\t\t\"inkscape:window-width\": \"2400\",\n\t\t\tshowborder: \"false\",\n\t\t\tshowgrid: \"false\",\n\t\t\t\"inkscape:document-rotation\": \"0\",\n\t\t\t\"inkscape:current-layer\": \"layer1\",\n\t\t\t\"inkscape:document-units\": \"mm\",\n\t\t\t\"inkscape:cy\": \"255.88343\",\n\t\t\t\"inkscape:cx\": \"754.94284\",\n\t\t\t\"inkscape:zoom\": \"0.98994949\",\n\t\t\t\"inkscape:pageshadow\": \"2\",\n\t\t\t\"inkscape:pageopacity\": \"0.0\",\n\t\t\tborderopacity: \"1.0\",\n\t\t\tbordercolor: \"#666666\",\n\t\t\tpagecolor: \"#ffffff\"\n\t\t}),\n\t\tu(\"metadata\", Ye, [f(g, null, {\n\t\t\tdefault: S(() => [f(h, { \"rdf:about\": \"\" }, {\n\t\t\t\tdefault: S(() => [\n\t\t\t\t\tf(s, null, {\n\t\t\t\t\t\tdefault: S(() => t[0] ||= [d(\"image/svg+xml\")]),\n\t\t\t\t\t\t_: 1\n\t\t\t\t\t}),\n\t\t\t\t\tf(c, { \"rdf:resource\": \"http://purl.org/dc/dcmitype/StillImage\" }),\n\t\t\t\t\tf(p)\n\t\t\t\t]),\n\t\t\t\t_: 1\n\t\t\t})]),\n\t\t\t_: 1\n\t\t})]),\n\t\tu(\"g\", Xe, [\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845\",\n\t\t\t\ty: \"152.19064\",\n\t\t\t\tx: \"-150.12129\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\tstyle: m(e.style(0))\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-9\",\n\t\t\t\tstyle: m(e.style(2)),\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\tx: \"-132.63466\",\n\t\t\t\ty: \"152.19064\"\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-6\",\n\t\t\t\tstyle: m(e.style(4)),\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\tx: \"-115.14803\",\n\t\t\t\ty: \"152.19064\"\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-4\",\n\t\t\t\tstyle: m(e.style(5)),\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\tx: \"-97.661407\",\n\t\t\t\ty: \"152.19064\"\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-92\",\n\t\t\t\tstyle: m(e.style(7)),\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\tx: \"-80.174782\",\n\t\t\t\ty: \"152.19064\"\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-3\",\n\t\t\t\tstyle: m(e.style(9)),\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\tx: \"-62.688156\",\n\t\t\t\ty: \"152.19064\"\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-0\",\n\t\t\t\tstyle: m(e.style(11)),\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\tx: \"-45.20153\",\n\t\t\t\ty: \"152.19064\"\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-30\",\n\t\t\t\tstyle: m(e.style(e.white)),\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\tx: \"-27.714905\",\n\t\t\t\ty: \"152.10745\"\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect898\",\n\t\t\t\try: \"0\",\n\t\t\t\ty: \"152.10744\",\n\t\t\t\tx: \"-138.43532\",\n\t\t\t\theight: \"54.415863\",\n\t\t\t\twidth: \"10.466455\",\n\t\t\t\tstyle: m(e.style(1))\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect898-3\",\n\t\t\t\tstyle: m(e.style(3)),\n\t\t\t\twidth: \"10.466455\",\n\t\t\t\theight: \"54.415863\",\n\t\t\t\tx: \"-120.84978\",\n\t\t\t\ty: \"152.10744\",\n\t\t\t\try: \"0\"\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect898-7\",\n\t\t\t\tstyle: m(e.style(6)),\n\t\t\t\twidth: \"10.466455\",\n\t\t\t\theight: \"54.415863\",\n\t\t\t\tx: \"-85.678711\",\n\t\t\t\ty: \"152.10744\",\n\t\t\t\try: \"0\"\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect898-8\",\n\t\t\t\tstyle: m(e.style(8)),\n\t\t\t\twidth: \"10.466455\",\n\t\t\t\theight: \"54.415863\",\n\t\t\t\tx: \"-68.09317\",\n\t\t\t\ty: \"152.10744\",\n\t\t\t\try: \"0\"\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect898-1\",\n\t\t\t\tstyle: m(e.style(10)),\n\t\t\t\twidth: \"10.466455\",\n\t\t\t\theight: \"54.415863\",\n\t\t\t\tx: \"-50.507633\",\n\t\t\t\ty: \"152.10744\",\n\t\t\t\try: \"0\"\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-30-1\",\n\t\t\t\ty: \"152.10745\",\n\t\t\t\tx: \"-10.228278\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\tstyle: m(e.style(e.white))\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-30-9\",\n\t\t\t\ty: \"152.10744\",\n\t\t\t\tx: \"-167.60791\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\tstyle: m(e.style(e.white))\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect898-4\",\n\t\t\t\tstyle: m(e.style(e.black)),\n\t\t\t\twidth: \"10.466455\",\n\t\t\t\theight: \"54.415863\",\n\t\t\t\tx: \"-15.336554\",\n\t\t\t\ty: \"152.10744\",\n\t\t\t\try: \"0\"\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect898-74\",\n\t\t\t\tstyle: m(e.style(e.black)),\n\t\t\t\twidth: \"4.4679713\",\n\t\t\t\theight: \"54.415863\",\n\t\t\t\tx: \"-167.60791\",\n\t\t\t\ty: \"152.10744\",\n\t\t\t\try: \"0\"\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect898-10\",\n\t\t\t\tstyle: m(e.style(e.black)),\n\t\t\t\twidth: \"5.1863246\",\n\t\t\t\theight: \"54.507248\",\n\t\t\t\tx: \"2.2092075\",\n\t\t\t\ty: \"152.06175\",\n\t\t\t\try: \"0\"\n\t\t\t}, null, 4)\n\t\t])\n\t]);\n}\nn(_sfc_render$2, \"_sfc_render\");\n//#endregion\n//#region src/piano/questions/echo/Playback.vue?vue&type=script&lang.ts\nvar Ze = p({\n\tname: \"Playback\",\n\tcomponents: {\n\t\tSyllableSeqVis: Ke,\n\t\tNoteDisplay: /* @__PURE__ */ r(qe, [[\"render\", _sfc_render$2]])\n\t},\n\tprops: {\n\t\tdata: {\n\t\t\ttype: Array,\n\t\t\trequired: !0\n\t\t},\n\t\tmodifyDifficulty: {\n\t\t\ttype: Number,\n\t\t\trequired: !1,\n\t\t\tdefault: 0\n\t\t}\n\t},\n\tsetup(e, { emit: t }) {\n\t\tlet n = ee(e, t, \"Playback\"), r = E(n), i = v(), a = v(!1), s = v(\"notSet\"), c = v(!1), l = v(0), u = v(A.utc()), d = v(0), f = v(0), p = v(eventsToSyllableSequence([])), m = v(!1), _ = v(eventsToSyllableSequence([])), y = v(0), b = v(\"\"), x = v(0), S = v(0), C = v(), D = v();\n\t\tr.question.value = new Q(e.data);\n\t\tlet O = o(() => new Q(e.data)), te = o(() => eventsToSyllableSequence(O.value.midi).syllables[0].notes.length > 1 ? \"Lowest note of first chord:\" : \"First note:\"), j = o(() => a.value ? eventsToSyllableSequence(O.value.midi).rootNote.number % 12 : 0), init = () => {\n\t\t\ts.value ? s.value !== i.value?.state && (a.value = !1, s.value = i.value?.state || \"notSet\", a.value = !0) : (s.value = i.value?.state || \"notSet\", a.value = !0), n.logger.log(`Playback is running init with state: ${s.value}`), s.value === \"ready\" && (d.value = O.value.duration, play());\n\t\t}, runProgressBar = () => {\n\t\t\ttry {\n\t\t\t\tC.value && (C.value.style.animationName = \"\", requestAnimationFrame(() => {\n\t\t\t\t\trequestAnimationFrame(() => {\n\t\t\t\t\t\tC.value && (C.value.style.animationDuration = d.value + \"ms\", C.value.style.animationName = \"progress\");\n\t\t\t\t\t});\n\t\t\t\t}));\n\t\t\t} catch {\n\t\t\t\tsetTimeout(runProgressBar, 50);\n\t\t\t}\n\t\t}, record = () => {\n\t\t\ti.value?.record(), c.value = !0, i.value?.addNoteonListenter((e) => {\n\t\t\t\tx.value++, _.value.append(e), D.value?.updateBounds(), x.value + S.value >= O.value.midi.length && submit();\n\t\t\t}), i.value?.addNoteoffListenter(() => {\n\t\t\t\tS.value++, x.value + S.value >= O.value.midi.length && submit();\n\t\t\t});\n\t\t}, play = () => {\n\t\t\ti.value?.stopRecording(), i.value?.eraseRecording(), u.value = A.utc(), x.value = 0, S.value = 0, c.value = !1, l.value = 0, runProgressBar(), i.value?.play(O.value.midi), setTimeout(() => {\n\t\t\t\tn.logger.log(\"done playback...\"), record();\n\t\t\t}, O.value.lastNoteOnTimestamp);\n\t\t}, submit = () => {\n\t\t\tif (!i.value?.recording) return !1;\n\t\t\tlet e = eventsToSyllableSequence(O.value.midi), t = eventsToSyllableSequence(i.value.recording);\n\t\t\treturn p.value = e.grade(t), _.value = eventsToSyllableSequence([]), r.submitAnswer(i.value.recording).isCorrect ? !0 : (f.value++, m.value = !0, f.value < r.maxAttemptsPerView.value && play(), !1);\n\t\t}, clearAttempt = () => {\n\t\t\tx.value > 0 ? submit() : play();\n\t\t};\n\t\treturn g(async () => {\n\t\t\ttry {\n\t\t\t\ti.value = await Z.instance(), i.value.setStateChangeListener(() => {\n\t\t\t\t\tinit();\n\t\t\t\t}), a.value = !0;\n\t\t\t} catch (e) {\n\t\t\t\tT({\n\t\t\t\t\tstatus: k.error,\n\t\t\t\t\ttext: \"Midi device not supported\"\n\t\t\t\t}), b.value = JSON.stringify(e), s.value = \"notsupported\", a.value = !0;\n\t\t\t}\n\t\t\tinit(), w.addBinding([{\n\t\t\t\thotkey: \"space\",\n\t\t\t\tcallback: clearAttempt,\n\t\t\t\tcommand: \"Clear attempt or play again\"\n\t\t\t}]);\n\t\t}), h(() => {\n\t\t\tw.removeBinding(\"space\");\n\t\t}), {\n\t\t\t...n,\n\t\t\t...r,\n\t\t\tinitialized: a,\n\t\t\tstate: s,\n\t\t\trecording: c,\n\t\t\tinputSeq: _,\n\t\t\tlastTSsuggestion: y,\n\t\t\tgradedSeq: p,\n\t\t\tgraded: m,\n\t\t\tpromptText: te,\n\t\t\tfirstNoteChroma: j,\n\t\t\tprogressBar: C,\n\t\t\tinputVisRef: D,\n\t\t\tclearAttempt,\n\t\t\tnotesOn: x\n\t\t};\n\t}\n}), Qe = {\n\tkey: 0,\n\t\"data-viewable\": \"Playback\"\n}, $e = { key: 0 }, et = { class: \"text-h4\" }, tt = { class: \"text-h5\" }, nt = { key: 0 }, rt = { class: \"progressContainer\" }, it = {\n\tid: \"progress\",\n\tref: \"progressBar\"\n}, at = { key: 1 }, ot = { key: 2 };\nfunction _sfc_render$1(e, t, n, r, i, a) {\n\tlet o = b(\"note-display\"), p = b(\"v-icon\"), m = b(\"v-btn\"), h = b(\"syllable-seq-vis\");\n\treturn e.initialized ? (_(), l(\"div\", Qe, [e.state === \"ready\" ? (_(), l(\"div\", $e, [\n\t\tu(\"div\", et, [d(x(e.promptText) + \" \", 1), f(o, { chroma: e.firstNoteChroma }, null, 8, [\"chroma\"])]),\n\t\tu(\"div\", tt, [t[0] ||= d(\"Listen...\"), e.recording ? (_(), l(\"span\", nt, \" and Repeat\")) : c(\"\", !0)]),\n\t\tu(\"div\", rt, [u(\"div\", it, null, 512)]),\n\t\tf(m, {\n\t\t\tcolor: \"primary\",\n\t\t\tautofocus: \"\",\n\t\t\tonClick: e.clearAttempt\n\t\t}, {\n\t\t\tdefault: S(() => [t[2] ||= d(\" Play again \"), f(p, { end: \"\" }, {\n\t\t\t\tdefault: S(() => t[1] ||= [d(\"volume_up\")]),\n\t\t\t\t_: 1\n\t\t\t})]),\n\t\t\t_: 1\n\t\t}, 8, [\"onClick\"]),\n\t\t(_(), s(h, {\n\t\t\tkey: 0,\n\t\t\tref: \"inputVisRef\",\n\t\t\tseq: e.inputSeq,\n\t\t\t\"last-t-ssuggestion\": e.lastTSsuggestion\n\t\t}, null, 8, [\"seq\", \"last-t-ssuggestion\"])),\n\t\te.graded ? (_(), s(h, {\n\t\t\tkey: 1,\n\t\t\tseq: e.gradedSeq\n\t\t}, null, 8, [\"seq\"])) : c(\"\", !0)\n\t])) : e.state === \"nodevice\" ? (_(), l(\"div\", at, \"No midi device detected. Please attach one!\")) : e.state === \"notsupported\" ? (_(), l(\"div\", ot, t[3] ||= [u(\"p\", null, \"This exercise requires a midi input device, which is not supported by this browser ☹\", -1), u(\"div\", null, [u(\"p\", null, \"Please try again with one of the following browsers:\"), u(\"ul\", null, [\n\t\tu(\"li\", null, [u(\"a\", { href: \"https://www.google.com/chrome/\" }, \"Google Chrome\")]),\n\t\tu(\"li\", null, [u(\"a\", { href: \"https://www.microsoft.com/edge\" }, \"Microsoft Edge\")]),\n\t\tu(\"li\", null, [u(\"a\", { href: \"https://brave.com/\" }, \"Brave\")])\n\t])], -1)])) : c(\"\", !0)])) : c(\"\", !0);\n}\nn(_sfc_render$1, \"_sfc_render\");\nvar st = /* @__PURE__ */ r(Ze, [[\"render\", _sfc_render$1]]), ct = [{\n\tname: \"Melody\",\n\ttype: O.MIDI\n}], Q = class EchoQuestion extends C {\n\tstatic dataShapes = [{\n\t\tfields: ct,\n\t\tname: D.PIANO_Echo\n\t}];\n\tstatic views = [st];\n\tmidi;\n\tconstructor(e) {\n\t\tsuper(e), this.midi = e[0].Melody;\n\t}\n\tget duration() {\n\t\treturn this.midi.reduce((e, t) => t.timestamp > e.timestamp ? t : e).timestamp;\n\t}\n\tget lastNoteOnTimestamp() {\n\t\treturn this.midi.filter((e) => e.type === \"noteon\").reduce((e, t) => t.timestamp > e.timestamp ? t : e).timestamp;\n\t}\n\tisCorrect(e) {\n\t\tlet t = eventsToSyllableSequence(this.midi), n = eventsToSyllableSequence(e);\n\t\ttry {\n\t\t\treturn t.grade(n).isCorrect();\n\t\t} catch (e) {\n\t\t\treturn console.log(\"ERROR grading this midi sequence!\", e), !1;\n\t\t}\n\t}\n\tdataShapes() {\n\t\treturn EchoQuestion.dataShapes;\n\t}\n\tviews() {\n\t\treturn EchoQuestion.views;\n\t}\n}, lt = p({\n\tname: \"NotePlayback\",\n\tcomponents: {},\n\tprops: {\n\t\tdata: {\n\t\t\ttype: Array,\n\t\t\trequired: !0\n\t\t},\n\t\tmodifyDifficulty: {\n\t\t\ttype: Number,\n\t\t\trequired: !1,\n\t\t\tdefault: 0\n\t\t}\n\t},\n\tsetup(e, { emit: t }) {\n\t\tlet n = ee(e, t, \"NotePlayback\"), r = E(n), i = v(), a = v(!1), s = v(!1), c = v(0), l = v(A.utc()), u = v(0), d = v(eventsToSyllableSequence([])), f = v(!1), p = v(eventsToSyllableSequence([])), m = v(\"\");\n\t\tr.question.value = new $(e.data);\n\t\tlet h = o(() => new $(e.data)), record = () => {\n\t\t\ti.value?.record(), s.value = !0, i.value?.addNoteonListenter((e) => {\n\t\t\t\tp.value.append(e);\n\t\t\t}), i.value?.addNoteoffListenter(() => {\n\t\t\t\ti.value?.recording?.length && i.value?.recording?.length >= 2 && submit();\n\t\t\t});\n\t\t}, play = () => {\n\t\t\ti.value?.stopRecording(), i.value?.eraseRecording(), l.value = A.utc(), s.value = !1, c.value = 0, record();\n\t\t}, submit = () => i.value?.recording ? (p.value = eventsToSyllableSequence([]), r.submitAnswer(i.value.recording).isCorrect ? !0 : (u.value++, f.value = !0, u.value < r.maxAttemptsPerView.value && play(), !1)) : !1;\n\t\treturn g(async () => {\n\t\t\ttry {\n\t\t\t\ti.value = await Z.instance(), m.value = h.value.note, play(), a.value = !0;\n\t\t\t} catch (e) {\n\t\t\t\tn.logger.error(\"Failed to initialize MIDI:\", e);\n\t\t\t}\n\t\t}), {\n\t\t\t...n,\n\t\t\t...r,\n\t\t\tinitialized: a,\n\t\t\trecording: s,\n\t\t\tinputSeq: p,\n\t\t\tgradedSeq: d,\n\t\t\tgraded: f,\n\t\t\tnote: m,\n\t\t\tattempts: u\n\t\t};\n\t}\n}), ut = { \"data-viewable\": \"NotePlayback\" }, dt = { class: \"text-h4\" }, ft = { class: \"font-weight-bold\" }, pt = {\n\tkey: 0,\n\tid: \"svg8\",\n\twidth: \"300px\",\n\theight: \"auto\",\n\t\"xmlns:dc\": \"http://purl.org/dc/elements/1.1/\",\n\t\"xmlns:cc\": \"http://creativecommons.org/ns#\",\n\t\"xmlns:rdf\": \"http://www.w3.org/1999/02/22-rdf-syntax-ns#\",\n\t\"xmlns:svg\": \"http://www.w3.org/2000/svg\",\n\txmlns: \"http://www.w3.org/2000/svg\",\n\t\"xmlns:sodipodi\": \"http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd\",\n\t\"xmlns:inkscape\": \"http://www.inkscape.org/namespaces/inkscape\",\n\t\"sodipodi:docname\": \"keys.svg\",\n\t\"inkscape:version\": \"1.0rc1 (09960d6f05, 2020-04-09)\",\n\tversion: \"1.1\",\n\tviewBox: \"0 0 175.24936 73.594925\"\n}, mt = { id: \"metadata5\" };\nfunction _sfc_render(e, t, n, r, i, a) {\n\tlet o = b(\"sodipodi:namedview\"), s = b(\"dc:format\"), p = b(\"dc:type\"), m = b(\"dc:title\"), h = b(\"cc:Work\"), g = b(\"rdf:RDF\");\n\treturn _(), l(\"div\", ut, [u(\"div\", dt, [t[0] ||= d(\" Play the note: \"), u(\"span\", ft, x(e.note), 1)]), e.graded ? (_(), l(\"svg\", pt, [\n\t\tt[2] ||= u(\"defs\", { id: \"defs2\" }, null, -1),\n\t\tf(o, {\n\t\t\tid: \"base\",\n\t\t\t\"inkscape:window-maximized\": \"1\",\n\t\t\t\"inkscape:window-y\": \"726\",\n\t\t\t\"inkscape:window-x\": \"1491\",\n\t\t\t\"inkscape:window-height\": \"1321\",\n\t\t\t\"inkscape:window-width\": \"2400\",\n\t\t\tshowborder: \"false\",\n\t\t\tshowgrid: \"false\",\n\t\t\t\"inkscape:document-rotation\": \"0\",\n\t\t\t\"inkscape:current-layer\": \"layer1\",\n\t\t\t\"inkscape:document-units\": \"mm\",\n\t\t\t\"inkscape:cy\": \"255.88343\",\n\t\t\t\"inkscape:cx\": \"754.94284\",\n\t\t\t\"inkscape:zoom\": \"0.98994949\",\n\t\t\t\"inkscape:pageshadow\": \"2\",\n\t\t\t\"inkscape:pageopacity\": \"0.0\",\n\t\t\tborderopacity: \"1.0\",\n\t\t\tbordercolor: \"#666666\",\n\t\t\tpagecolor: \"#ffffff\"\n\t\t}),\n\t\tu(\"metadata\", mt, [f(g, null, {\n\t\t\tdefault: S(() => [f(h, { \"rdf:about\": \"\" }, {\n\t\t\t\tdefault: S(() => [\n\t\t\t\t\tf(s, null, {\n\t\t\t\t\t\tdefault: S(() => t[1] ||= [d(\"image/svg+xml\")]),\n\t\t\t\t\t\t_: 1\n\t\t\t\t\t}),\n\t\t\t\t\tf(p, { \"rdf:resource\": \"http://purl.org/dc/dcmitype/StillImage\" }),\n\t\t\t\t\tf(m)\n\t\t\t\t]),\n\t\t\t\t_: 1\n\t\t\t})]),\n\t\t\t_: 1\n\t\t})]),\n\t\tt[3] ||= u(\"g\", {\n\t\t\tid: \"layer1\",\n\t\t\ttransform: \"translate(167.75219,-151.96011)\",\n\t\t\t\"inkscape:groupmode\": \"layer\",\n\t\t\t\"inkscape:label\": \"Layer 1\"\n\t\t}, [\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845\",\n\t\t\t\ty: \"152.19064\",\n\t\t\t\tx: \"-150.12129\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#ffffff\",\n\t\t\t\t\t\"fill-opacity\": \"0\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t}\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-9\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#ffffff\",\n\t\t\t\t\t\"fill-opacity\": \"0\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t},\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\tx: \"-132.63466\",\n\t\t\t\ty: \"152.19064\"\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-6\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#ffffff\",\n\t\t\t\t\t\"fill-opacity\": \"0\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t},\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\tx: \"-115.14803\",\n\t\t\t\ty: \"152.19064\"\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-0\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#ffffff\",\n\t\t\t\t\t\"fill-opacity\": \"0\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t},\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\tx: \"-45.20153\",\n\t\t\t\ty: \"152.19064\"\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-92\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#ffffff\",\n\t\t\t\t\t\"fill-opacity\": \"0\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t},\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\tx: \"-80.174782\",\n\t\t\t\ty: \"152.19064\"\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-3\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#ffffff\",\n\t\t\t\t\t\"fill-opacity\": \"0\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t},\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\tx: \"-62.688156\",\n\t\t\t\ty: \"152.19064\"\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-4\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#ffffff\",\n\t\t\t\t\t\"fill-opacity\": \"0\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t},\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\tx: \"-97.661407\",\n\t\t\t\ty: \"152.19064\"\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-30\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#ffffff\",\n\t\t\t\t\t\"fill-opacity\": \"0\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t},\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\tx: \"-27.714905\",\n\t\t\t\ty: \"152.10745\"\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect898\",\n\t\t\t\try: \"0\",\n\t\t\t\ty: \"152.10744\",\n\t\t\t\tx: \"-138.43532\",\n\t\t\t\theight: \"54.415863\",\n\t\t\t\twidth: \"10.466455\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#000000\",\n\t\t\t\t\t\"fill-opacity\": \"1\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t}\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect898-3\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#000000\",\n\t\t\t\t\t\"fill-opacity\": \"1\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t},\n\t\t\t\twidth: \"10.466455\",\n\t\t\t\theight: \"54.415863\",\n\t\t\t\tx: \"-120.84978\",\n\t\t\t\ty: \"152.10744\",\n\t\t\t\try: \"0\"\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect898-7\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#000000\",\n\t\t\t\t\t\"fill-opacity\": \"1\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t},\n\t\t\t\twidth: \"10.466455\",\n\t\t\t\theight: \"54.415863\",\n\t\t\t\tx: \"-85.678711\",\n\t\t\t\ty: \"152.10744\",\n\t\t\t\try: \"0\"\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect898-8\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#000000\",\n\t\t\t\t\t\"fill-opacity\": \"1\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t},\n\t\t\t\twidth: \"10.466455\",\n\t\t\t\theight: \"54.415863\",\n\t\t\t\tx: \"-68.09317\",\n\t\t\t\ty: \"152.10744\",\n\t\t\t\try: \"0\"\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect898-1\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#000000\",\n\t\t\t\t\t\"fill-opacity\": \"1\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t},\n\t\t\t\twidth: \"10.466455\",\n\t\t\t\theight: \"54.415863\",\n\t\t\t\tx: \"-50.507633\",\n\t\t\t\ty: \"152.10744\",\n\t\t\t\try: \"0\"\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-30-1\",\n\t\t\t\ty: \"152.10745\",\n\t\t\t\tx: \"-10.228278\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#ffffff\",\n\t\t\t\t\t\"fill-opacity\": \"0\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t}\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-30-9\",\n\t\t\t\ty: \"152.10744\",\n\t\t\t\tx: \"-167.60791\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#ffffff\",\n\t\t\t\t\t\"fill-opacity\": \"0\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t}\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect898-4\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#000000\",\n\t\t\t\t\t\"fill-opacity\": \"1\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t},\n\t\t\t\twidth: \"10.466455\",\n\t\t\t\theight: \"54.415863\",\n\t\t\t\tx: \"-15.336554\",\n\t\t\t\ty: \"152.10744\",\n\t\t\t\try: \"0\"\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect898-74\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#000000\",\n\t\t\t\t\t\"fill-opacity\": \"1\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t},\n\t\t\t\twidth: \"4.4679713\",\n\t\t\t\theight: \"54.415863\",\n\t\t\t\tx: \"-167.60791\",\n\t\t\t\ty: \"152.10744\",\n\t\t\t\try: \"0\"\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect898-10\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#000000\",\n\t\t\t\t\t\"fill-opacity\": \"1\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t},\n\t\t\t\twidth: \"5.1863246\",\n\t\t\t\theight: \"54.507248\",\n\t\t\t\tx: \"2.2092075\",\n\t\t\t\ty: \"152.06175\",\n\t\t\t\try: \"0\"\n\t\t\t})\n\t\t], -1)\n\t])) : c(\"\", !0)]);\n}\nvar ht = /* @__PURE__ */ r(lt, [[\"render\", _sfc_render]]), gt = [{\n\tname: \"Note\",\n\ttype: O.STRING\n}], _t = [\n\t\"A\",\n\t\"B\",\n\t\"C\",\n\t\"D\",\n\t\"E\",\n\t\"F\",\n\t\"G\",\n\t\"A♯\",\n\t\"C♯\",\n\t\"D♯\",\n\t\"F♯\",\n\t\"G♯\",\n\t\"D♭\",\n\t\"E♭\",\n\t\"G♭\",\n\t\"A♭\",\n\t\"B♭\"\n], $ = class PlayNote extends C {\n\tstatic dataShapes = [{\n\t\tfields: gt,\n\t\tname: D.PIANO_PlayNote\n\t}];\n\tstatic seedData = _t.map((e) => ({ Note: e }));\n\tstatic views = [ht];\n\tnote;\n\tconstructor(e) {\n\t\tsuper(e), this.note = e[0].Note;\n\t}\n\tisCorrect(e) {\n\t\treturn e[0].note.name === this.note;\n\t}\n\tdataShapes() {\n\t\treturn PlayNote.dataShapes;\n\t}\n\tviews() {\n\t\treturn PlayNote.views;\n\t}\n}, vt = new i(\"piano\", [Q, $]);\n//#endregion\nexport { eventsToSyllableSequence as a, He as i, Ke as n, transposeSyllableSeq as o, Z as r, vt as t };\n\n//# sourceMappingURL=piano-DF1g6yaX.js.map","import { r as e, t } from \"./shapes-BQUVJdp5.js\";\nimport { i as n, n as r, r as i, t as a } from \"./CourseWare-BTFRjgBR.js\";\nimport { t as o } from \"./chess-BbHATAzk.js\";\nimport { t as s } from \"./french-Dk7YG8Td.js\";\nimport { t as c } from \"./math-B4HbgYf6.js\";\nimport { a as l, i as u, n as d, o as f, r as p, t as m } from \"./piano-DF1g6yaX.js\";\nimport { t as h } from \"./pitch-CgGJFkZ1.js\";\nimport { t as g } from \"./sightsing-BFQ7HRig.js\";\nimport { t as _ } from \"./typing-BevtfWlp.js\";\nimport { t as v } from \"./word-work-BOnRlZgd.js\";\nimport { Fragment as y, computed as b, createBlock as x, createCommentVNode as S, createElementBlock as C, createElementVNode as w, createTextVNode as T, createVNode as E, defineComponent as D, markRaw as O, onMounted as k, openBlock as A, ref as j, renderList as M, resolveComponent as N, toDisplayString as P, watch as F, withCtx as I } from \"vue\";\nimport { Displayable as L, Question as R, alertUser as z, useQuestionView as ee, useViewable as te } from \"@vue-skuilder/common-ui\";\nimport { NameSpacer as B, Status as V } from \"@vue-skuilder/common\";\nimport { getDataLayer as H } from \"@vue-skuilder/db\";\nimport './assets/index.css';//#region src/default/index.ts\nvar U = new a(\"default\", [r]), W = D({\n\tname: \"PianoRangeVisualizer\",\n\tprops: {\n\t\tlowestNote: {\n\t\t\ttype: Number,\n\t\t\trequired: !0\n\t\t},\n\t\thighestNote: {\n\t\t\ttype: Number,\n\t\t\trequired: !0\n\t\t},\n\t\tmaxWidth: {\n\t\t\ttype: Number,\n\t\t\tdefault: 1e3\n\t\t}\n\t},\n\tsetup(e) {\n\t\tlet t = j(null), n = j(800), r = b(() => {\n\t\t\tlet e = 0;\n\t\t\tfor (let t = 21; t <= 108; t++) isWhiteKey(t) && e++;\n\t\t\treturn e;\n\t\t}), i = b(() => Math.min(22, n.value / Math.max(25, r.value))), a = b(() => i.value * .6), o = b(() => Math.min(e.maxWidth, i.value * r.value + 10)), isWhiteKey = (e) => {\n\t\t\tlet t = e % 12;\n\t\t\treturn [\n\t\t\t\t0,\n\t\t\t\t2,\n\t\t\t\t4,\n\t\t\t\t5,\n\t\t\t\t7,\n\t\t\t\t9,\n\t\t\t\t11\n\t\t\t].includes(t);\n\t\t}, getKeyPosition = (e) => {\n\t\t\tlet t = 0;\n\t\t\tfor (let n = 21; n < e; n++) isWhiteKey(n) && t++;\n\t\t\treturn isWhiteKey(e) ? t * i.value : t * i.value - a.value / 2;\n\t\t}, getNoteLabel = (e) => {\n\t\t\tlet t = [\n\t\t\t\t\"C\",\n\t\t\t\t\"C#\",\n\t\t\t\t\"D\",\n\t\t\t\t\"D#\",\n\t\t\t\t\"E\",\n\t\t\t\t\"F\",\n\t\t\t\t\"F#\",\n\t\t\t\t\"G\",\n\t\t\t\t\"G#\",\n\t\t\t\t\"A\",\n\t\t\t\t\"A#\",\n\t\t\t\t\"B\"\n\t\t\t], n = e % 12, r = Math.floor(e / 12) - 1;\n\t\t\treturn `${t[n]}${r}`;\n\t\t};\n\t\treturn k(() => {\n\t\t\tt.value && (n.value = t.value.clientWidth, new ResizeObserver((e) => {\n\t\t\t\tfor (let t of e) n.value = t.contentRect.width;\n\t\t\t}).observe(t.value));\n\t\t}), {\n\t\t\tpianoWrapper: t,\n\t\t\tkeyHeight: 100,\n\t\t\tblackKeyHeight: 60,\n\t\t\twhiteKeyWidth: i,\n\t\t\tblackKeyWidth: a,\n\t\t\tsvgWidth: o,\n\t\t\tisWhiteKey,\n\t\t\tgetKeyPosition,\n\t\t\tgetNoteLabel\n\t\t};\n\t}\n}), G = { class: \"piano-range-container\" }, K = {\n\tclass: \"piano-wrapper\",\n\tref: \"pianoWrapper\"\n}, q = [\"width\", \"height\"], J = {\n\tclass: \"background-keys\",\n\topacity: \"0.15\"\n}, Y = [\n\t\"x\",\n\t\"width\",\n\t\"height\"\n], X = [\n\t\"x\",\n\t\"width\",\n\t\"height\"\n], Z = { class: \"selected-range\" }, ne = [\n\t\"x\",\n\t\"width\",\n\t\"height\"\n], re = [\n\t\"x\",\n\t\"width\",\n\t\"height\"\n], ie = { class: \"range-markers\" }, ae = [\"x\", \"height\"], oe = [\"x\", \"height\"], se = [\"x\", \"y\"], ce = [\"x\", \"y\"];\nfunction _sfc_render$1(e, t, n, r, i, a) {\n\treturn A(), C(\"div\", G, [w(\"div\", K, [(A(), C(\"svg\", {\n\t\twidth: e.svgWidth,\n\t\theight: e.keyHeight + 20,\n\t\tclass: \"piano-svg\"\n\t}, [\n\t\tw(\"g\", J, [(A(), C(y, null, M(88, (t) => (A(), C(y, { key: `bg-${t}` }, [e.isWhiteKey(t + 20) ? (A(), C(\"rect\", {\n\t\t\tkey: 0,\n\t\t\tx: e.getKeyPosition(t + 20),\n\t\t\ty: \"0\",\n\t\t\twidth: e.whiteKeyWidth,\n\t\t\theight: e.keyHeight,\n\t\t\tclass: \"white-key\",\n\t\t\tstroke: \"#999\",\n\t\t\t\"stroke-width\": \"1\"\n\t\t}, null, 8, Y)) : S(\"\", !0)], 64))), 64)), (A(), C(y, null, M(88, (t) => (A(), C(y, { key: `bg-black-${t}` }, [e.isWhiteKey(t + 20) ? S(\"\", !0) : (A(), C(\"rect\", {\n\t\t\tkey: 0,\n\t\t\tx: e.getKeyPosition(t + 20),\n\t\t\ty: \"0\",\n\t\t\twidth: e.blackKeyWidth,\n\t\t\theight: e.blackKeyHeight,\n\t\t\tclass: \"black-key\"\n\t\t}, null, 8, X))], 64))), 64))]),\n\t\tw(\"g\", Z, [(A(), C(y, null, M(128, (t) => (A(), C(y, { key: `white-${t}` }, [e.isWhiteKey(t) && t >= e.lowestNote && t <= e.highestNote ? (A(), C(\"rect\", {\n\t\t\tkey: 0,\n\t\t\tx: e.getKeyPosition(t),\n\t\t\ty: \"0\",\n\t\t\twidth: e.whiteKeyWidth,\n\t\t\theight: e.keyHeight,\n\t\t\tclass: \"white-key active\",\n\t\t\tstroke: \"#666\",\n\t\t\t\"stroke-width\": \"1\"\n\t\t}, null, 8, ne)) : S(\"\", !0)], 64))), 64)), (A(), C(y, null, M(128, (t) => (A(), C(y, { key: `black-${t}` }, [!e.isWhiteKey(t) && t >= e.lowestNote && t <= e.highestNote ? (A(), C(\"rect\", {\n\t\t\tkey: 0,\n\t\t\tx: e.getKeyPosition(t),\n\t\t\ty: \"0\",\n\t\t\twidth: e.blackKeyWidth,\n\t\t\theight: e.blackKeyHeight,\n\t\t\tclass: \"black-key active\"\n\t\t}, null, 8, re)) : S(\"\", !0)], 64))), 64))]),\n\t\tw(\"g\", ie, [w(\"rect\", {\n\t\t\tx: e.getKeyPosition(e.lowestNote) - 2,\n\t\t\ty: \"0\",\n\t\t\twidth: 4,\n\t\t\theight: e.keyHeight + 5,\n\t\t\tclass: \"range-marker start\"\n\t\t}, null, 8, ae), w(\"rect\", {\n\t\t\tx: e.getKeyPosition(e.highestNote) + e.whiteKeyWidth - 2,\n\t\t\ty: \"0\",\n\t\t\twidth: 4,\n\t\t\theight: e.keyHeight + 5,\n\t\t\tclass: \"range-marker end\"\n\t\t}, null, 8, oe)]),\n\t\tw(\"text\", {\n\t\t\tx: e.getKeyPosition(e.lowestNote) + 3,\n\t\t\ty: e.keyHeight + 12,\n\t\t\tclass: \"note-label\"\n\t\t}, P(e.getNoteLabel(e.lowestNote)), 9, se),\n\t\tw(\"text\", {\n\t\t\tx: e.getKeyPosition(e.highestNote) + e.whiteKeyWidth - 3,\n\t\t\ty: e.keyHeight + 12,\n\t\t\t\"text-anchor\": \"end\",\n\t\t\tclass: \"note-label\"\n\t\t}, P(e.getNoteLabel(e.highestNote)), 9, ce)\n\t], 8, q))], 512)]);\n}\ne(_sfc_render$1, \"_sfc_render\");\n//#endregion\n//#region src/piano/utility/MidiConfig.vue?vue&type=script&lang.ts\nvar le = D({\n\tname: \"MidiConfig\",\n\tcomponents: { PianoRangeVisualizer: /* @__PURE__ */ i(W, [[\"render\", _sfc_render$1], [\"__scopeId\", \"data-v-4b232a8b\"]]) },\n\tprops: {\n\t\t_id: {\n\t\t\ttype: String,\n\t\t\trequired: !0\n\t\t},\n\t\tuser: {\n\t\t\ttype: Object,\n\t\t\trequired: !0\n\t\t}\n\t},\n\tsetup(e) {\n\t\tlet t = j(), n = j(!0), r = j([]), i = j([]), a = j(\"\"), o = j(\"\"), s = j(!1), c = j(\"\"), l = j(\"\"), u = j(!1), d = j(\"full-88\"), f = j(21), m = j(108), h = j(\"\"), g = j(0), _ = j(0), v = j([]), initNoteOptions = () => {\n\t\t\tlet e = [\n\t\t\t\t\"C\",\n\t\t\t\t\"C#\",\n\t\t\t\t\"D\",\n\t\t\t\t\"D#\",\n\t\t\t\t\"E\",\n\t\t\t\t\"F\",\n\t\t\t\t\"F#\",\n\t\t\t\t\"G\",\n\t\t\t\t\"G#\",\n\t\t\t\t\"A\",\n\t\t\t\t\"A#\",\n\t\t\t\t\"B\"\n\t\t\t], t = [];\n\t\t\tfor (let n = 0; n <= 127; n++) {\n\t\t\t\tlet r = Math.floor(n / 12) - 1, i = e[n % 12];\n\t\t\t\tt.push({\n\t\t\t\t\ttitle: `${i}${r} (${n})`,\n\t\t\t\t\tvalue: n\n\t\t\t\t});\n\t\t\t}\n\t\t\tv.value = t;\n\t\t}, y = j([\n\t\t\t{\n\t\t\t\ttitle: \"Full 88-key Piano (A0-C8)\",\n\t\t\t\tvalue: \"full-88\"\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: \"76-key Keyboard (E1-G7)\",\n\t\t\t\tvalue: \"76-key\"\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: \"61-key Keyboard (C2-C7)\",\n\t\t\t\tvalue: \"61-key\"\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: \"49-key Keyboard (C3-C7)\",\n\t\t\t\tvalue: \"49-key\"\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: \"37-key Keyboard (C3-C6)\",\n\t\t\t\tvalue: \"37-key\"\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: \"25-key Keyboard (C4-C6)\",\n\t\t\t\tvalue: \"25-key\"\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: \"Custom Range\",\n\t\t\t\tvalue: \"custom\"\n\t\t\t}\n\t\t]), checkConfigChanged = () => {\n\t\t\tu.value = a.value !== c.value || o.value !== l.value || d.value !== h.value || d.value === \"custom\" && (f.value !== g.value || m.value !== _.value);\n\t\t}, updateCustomRangeFromPreset = () => {\n\t\t\tswitch (d.value) {\n\t\t\t\tcase \"full-88\":\n\t\t\t\t\tf.value = 21, m.value = 108;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"76-key\":\n\t\t\t\t\tf.value = 28, m.value = 103;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"61-key\":\n\t\t\t\t\tf.value = 36, m.value = 96;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"49-key\":\n\t\t\t\t\tf.value = 48, m.value = 96;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"37-key\":\n\t\t\t\t\tf.value = 48, m.value = 84;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"25-key\":\n\t\t\t\t\tf.value = 60, m.value = 84;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcheckConfigChanged();\n\t\t}, updateRangeAndCheckChanges = () => {\n\t\t\tf.value >= m.value && (m.value = f.value + 12), checkConfigChanged();\n\t\t}, playSound = () => {\n\t\t\tt.value?.play([\n\t\t\t\t{\n\t\t\t\t\tnote: {\n\t\t\t\t\t\tnumber: 64,\n\t\t\t\t\t\tname: \"E\",\n\t\t\t\t\t\toctave: 4\n\t\t\t\t\t},\n\t\t\t\t\ttype: \"noteon\",\n\t\t\t\t\tvelocity: .4251968503937008,\n\t\t\t\t\ttimestamp: 0\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tnote: {\n\t\t\t\t\t\tnumber: 64,\n\t\t\t\t\t\tname: \"E\",\n\t\t\t\t\t\toctave: 4\n\t\t\t\t\t},\n\t\t\t\t\tvelocity: .3779527559055118,\n\t\t\t\t\ttype: \"noteoff\",\n\t\t\t\t\ttimestamp: 511.90500000002794\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tnote: {\n\t\t\t\t\t\tnumber: 60,\n\t\t\t\t\t\tname: \"C\",\n\t\t\t\t\t\toctave: 4\n\t\t\t\t\t},\n\t\t\t\t\ttype: \"noteon\",\n\t\t\t\t\tvelocity: .5275590551181102,\n\t\t\t\t\ttimestamp: 535.8800000001211\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tnote: {\n\t\t\t\t\t\tnumber: 60,\n\t\t\t\t\t\tname: \"C\",\n\t\t\t\t\t\toctave: 4\n\t\t\t\t\t},\n\t\t\t\t\tvelocity: .33858267716535434,\n\t\t\t\t\ttype: \"noteoff\",\n\t\t\t\t\ttimestamp: 674.9899999999907\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tnote: {\n\t\t\t\t\t\tnumber: 60,\n\t\t\t\t\t\tname: \"C\",\n\t\t\t\t\t\toctave: 4\n\t\t\t\t\t},\n\t\t\t\t\ttype: \"noteon\",\n\t\t\t\t\tvelocity: .5590551181102362,\n\t\t\t\t\ttimestamp: 1070.8800000000047\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tnote: {\n\t\t\t\t\t\tnumber: 60,\n\t\t\t\t\t\tname: \"C\",\n\t\t\t\t\t\toctave: 4\n\t\t\t\t\t},\n\t\t\t\t\tvelocity: .3464566929133858,\n\t\t\t\t\ttype: \"noteoff\",\n\t\t\t\t\ttimestamp: 1214.8999999999069\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tnote: {\n\t\t\t\t\t\tnumber: 64,\n\t\t\t\t\t\tname: \"E\",\n\t\t\t\t\t\toctave: 4\n\t\t\t\t\t},\n\t\t\t\t\ttype: \"noteon\",\n\t\t\t\t\tvelocity: .5118110236220472,\n\t\t\t\t\ttimestamp: 1424.9400000000605\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tnote: {\n\t\t\t\t\t\tnumber: 64,\n\t\t\t\t\t\tname: \"E\",\n\t\t\t\t\t\toctave: 4\n\t\t\t\t\t},\n\t\t\t\t\tvelocity: .2755905511811024,\n\t\t\t\t\ttype: \"noteoff\",\n\t\t\t\t\ttimestamp: 1576.9150000000373\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tnote: {\n\t\t\t\t\t\tnumber: 62,\n\t\t\t\t\t\tname: \"D\",\n\t\t\t\t\t\toctave: 4\n\t\t\t\t\t},\n\t\t\t\t\ttype: \"noteon\",\n\t\t\t\t\tvelocity: .3937007874015748,\n\t\t\t\t\ttimestamp: 1756.9149999999208\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tnote: {\n\t\t\t\t\t\tnumber: 62,\n\t\t\t\t\t\tname: \"D\",\n\t\t\t\t\t\toctave: 4\n\t\t\t\t\t},\n\t\t\t\t\tvelocity: .36220472440944884,\n\t\t\t\t\ttype: \"noteoff\",\n\t\t\t\t\ttimestamp: 1926.9899999998743\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tnote: {\n\t\t\t\t\t\tnumber: 60,\n\t\t\t\t\t\tname: \"C\",\n\t\t\t\t\t\toctave: 4\n\t\t\t\t\t},\n\t\t\t\t\ttype: \"noteon\",\n\t\t\t\t\tvelocity: .5196850393700787,\n\t\t\t\t\ttimestamp: 1970.9600000000792\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tnote: {\n\t\t\t\t\t\tnumber: 60,\n\t\t\t\t\t\tname: \"C\",\n\t\t\t\t\t\toctave: 4\n\t\t\t\t\t},\n\t\t\t\t\tvelocity: .36220472440944884,\n\t\t\t\t\ttype: \"noteoff\",\n\t\t\t\t\ttimestamp: 2126.009999999893\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tnote: {\n\t\t\t\t\t\tnumber: 60,\n\t\t\t\t\t\tname: \"C\",\n\t\t\t\t\t\toctave: 4\n\t\t\t\t\t},\n\t\t\t\t\ttype: \"noteon\",\n\t\t\t\t\tvelocity: .5984251968503937,\n\t\t\t\t\ttimestamp: 2502.0050000000047\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tnote: {\n\t\t\t\t\t\tnumber: 60,\n\t\t\t\t\t\tname: \"C\",\n\t\t\t\t\t\toctave: 4\n\t\t\t\t\t},\n\t\t\t\t\tvelocity: .3858267716535433,\n\t\t\t\t\ttype: \"noteoff\",\n\t\t\t\t\ttimestamp: 2853.920000000042\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tnote: {\n\t\t\t\t\t\tnumber: 67,\n\t\t\t\t\t\tname: \"G\",\n\t\t\t\t\t\toctave: 4\n\t\t\t\t\t},\n\t\t\t\t\ttype: \"noteon\",\n\t\t\t\t\tvelocity: .6850393700787402,\n\t\t\t\t\ttimestamp: 2875.8649999999907\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tnote: {\n\t\t\t\t\t\tnumber: 67,\n\t\t\t\t\t\tname: \"G\",\n\t\t\t\t\t\toctave: 4\n\t\t\t\t\t},\n\t\t\t\t\tvelocity: .6377952755905512,\n\t\t\t\t\ttype: \"noteoff\",\n\t\t\t\t\ttimestamp: 4497.004999999888\n\t\t\t\t}\n\t\t\t]);\n\t\t}, indicateHeardNotes = (e) => {\n\t\t\tz({\n\t\t\t\ttext: `I hear a ${e.note.name}!`,\n\t\t\t\tstatus: V.ok\n\t\t\t});\n\t\t};\n\t\tF(a, () => {\n\t\t\tt.value?.selectInput(a.value), checkConfigChanged();\n\t\t}), F(o, () => {\n\t\t\tt.value?.selectOutput(o.value), checkConfigChanged();\n\t\t});\n\t\tlet retrieveSettings = async () => {\n\t\t\tlet t = await (await e.user.getCourseInterface(e._id)).getCourseSettings();\n\t\t\tif (t?.midiinput) {\n\t\t\t\tlet e = t.midiinput.toString();\n\t\t\t\tr.value.some((t) => t.value === e) && (a.value = e, c.value = e);\n\t\t\t}\n\t\t\tif (t?.midioutput) {\n\t\t\t\tlet e = t.midioutput.toString();\n\t\t\t\ti.value.some((t) => t.value === e) && (o.value = e, l.value = e);\n\t\t\t}\n\t\t\tt?.keyboardRange && (h.value = t.keyboardRange.toString(), d.value = h.value), t?.lowestNote && (g.value = parseInt(t.lowestNote.toString()), f.value = g.value), t?.highestNote && (_.value = parseInt(t.highestNote.toString()), m.value = _.value), t?.lowestNote && t?.highestNote && !t?.keyboardRange && (d.value = \"custom\"), u.value = !1;\n\t\t}, saveSettings = async () => {\n\t\t\ts.value = !0, (await H().getUserDB().getCourseInterface(e._id)).updateCourseSettings([\n\t\t\t\t{\n\t\t\t\t\tkey: \"midiinput\",\n\t\t\t\t\tvalue: a.value\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tkey: \"midioutput\",\n\t\t\t\t\tvalue: o.value\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tkey: \"keyboardRange\",\n\t\t\t\t\tvalue: d.value\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tkey: \"lowestNote\",\n\t\t\t\t\tvalue: f.value\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tkey: \"highestNote\",\n\t\t\t\t\tvalue: m.value\n\t\t\t\t}\n\t\t\t]), c.value = a.value, l.value = o.value, h.value = d.value, g.value = f.value, _.value = m.value, u.value = !1, s.value = !1, z({\n\t\t\t\ttext: \"Settings updated.\",\n\t\t\t\tstatus: V.ok\n\t\t\t});\n\t\t};\n\t\treturn k(async () => {\n\t\t\tinitNoteOptions();\n\t\t\ttry {\n\t\t\t\tt.value = await p.instance(), n.value = t.value.state === \"ready\" || t.value.state === \"nodevice\";\n\t\t\t} catch (e) {\n\t\t\t\tconsole.log(`Error on midi Init: ${e}`), n.value = !1;\n\t\t\t}\n\t\t\tn.value && (t.value?.addNoteonListenter(indicateHeardNotes), t.value ? (r.value = t.value.inputs.filter((e) => e.state === \"connected\").map((e) => ({\n\t\t\t\ttitle: `${e.manufacturer}: ${e.name}`,\n\t\t\t\tvalue: e.id\n\t\t\t})), i.value = t.value?.outputs.filter((e) => e.state === \"connected\").map((e) => ({\n\t\t\t\ttitle: `${e.manufacturer}: ${e.name}`,\n\t\t\t\tvalue: e.id\n\t\t\t}))) : (r.value = [{\n\t\t\t\ttitle: \"No inputs available\",\n\t\t\t\tvalue: \"\"\n\t\t\t}], i.value = [{\n\t\t\t\ttitle: \"No outputs available\",\n\t\t\t\tvalue: \"\"\n\t\t\t}]), await retrieveSettings(), !a.value && r.value.length > 0 && (a.value = r.value[0].value), !o.value && i.value.length > 0 && (o.value = i.value[0].value));\n\t\t}), {\n\t\t\tmidiSupported: n,\n\t\t\tinputs: r,\n\t\t\toutputs: i,\n\t\t\tselectedInput: a,\n\t\t\tselectedOutput: o,\n\t\t\tupdatePending: s,\n\t\t\tplaySound,\n\t\t\tsaveSettings,\n\t\t\tconfigChanged: u,\n\t\t\tlowestNote: f,\n\t\t\thighestNote: m,\n\t\t\tkeyboardRangeOptions: y,\n\t\t\tselectedKeyboardRange: d,\n\t\t\tnoteOptions: v,\n\t\t\tupdateCustomRangeFromPreset,\n\t\t\tupdateRangeAndCheckChanges\n\t\t};\n\t}\n}), Q = {\n\tkey: 0,\n\tclass: \"custom-range-inputs d-flex gap-4\"\n}, ue = { class: \"d-flex justify-space-between mt-3\" }, de = { key: 1 };\nfunction _sfc_render(e, t, n, r, i, a) {\n\tlet o = N(\"v-toolbar-title\"), s = N(\"v-toolbar\"), c = N(\"v-select\"), l = N(\"v-divider\"), u = N(\"piano-range-visualizer\"), d = N(\"v-btn\"), f = N(\"v-form\"), p = N(\"v-card-text\"), m = N(\"v-card\");\n\treturn A(), x(m, null, {\n\t\tdefault: I(() => [E(s, { dense: \"\" }, {\n\t\t\tdefault: I(() => [E(o, null, {\n\t\t\t\tdefault: I(() => t[5] ||= [T(\"Configure Midi Device\")]),\n\t\t\t\t_: 1\n\t\t\t})]),\n\t\t\t_: 1\n\t\t}), E(p, null, {\n\t\t\tdefault: I(() => [e.midiSupported ? (A(), x(f, {\n\t\t\t\tkey: 0,\n\t\t\t\tonsubmit: \"return false;\"\n\t\t\t}, {\n\t\t\t\tdefault: I(() => [\n\t\t\t\t\tE(c, {\n\t\t\t\t\t\tmodelValue: e.selectedInput,\n\t\t\t\t\t\t\"onUpdate:modelValue\": t[0] ||= (t) => e.selectedInput = t,\n\t\t\t\t\t\titems: e.inputs,\n\t\t\t\t\t\tlabel: \"Select Input\",\n\t\t\t\t\t\thint: \"Play some notes on your input device to test the connection\"\n\t\t\t\t\t}, null, 8, [\"modelValue\", \"items\"]),\n\t\t\t\t\tE(c, {\n\t\t\t\t\t\tmodelValue: e.selectedOutput,\n\t\t\t\t\t\t\"onUpdate:modelValue\": t[1] ||= (t) => e.selectedOutput = t,\n\t\t\t\t\t\titems: e.outputs,\n\t\t\t\t\t\tlabel: \"Select Output\"\n\t\t\t\t\t}, null, 8, [\"modelValue\", \"items\"]),\n\t\t\t\t\tE(l, { class: \"my-4\" }),\n\t\t\t\t\tt[8] ||= w(\"h3\", { class: \"text-subtitle-1 mb-2\" }, \"Keyboard Range\", -1),\n\t\t\t\t\tE(c, {\n\t\t\t\t\t\tmodelValue: e.selectedKeyboardRange,\n\t\t\t\t\t\t\"onUpdate:modelValue\": [t[2] ||= (t) => e.selectedKeyboardRange = t, e.updateCustomRangeFromPreset],\n\t\t\t\t\t\titems: e.keyboardRangeOptions,\n\t\t\t\t\t\tlabel: \"Select Keyboard Range\"\n\t\t\t\t\t}, null, 8, [\n\t\t\t\t\t\t\"modelValue\",\n\t\t\t\t\t\t\"items\",\n\t\t\t\t\t\t\"onUpdate:modelValue\"\n\t\t\t\t\t]),\n\t\t\t\t\te.selectedKeyboardRange === \"custom\" ? (A(), C(\"div\", Q, [E(c, {\n\t\t\t\t\t\tmodelValue: e.lowestNote,\n\t\t\t\t\t\t\"onUpdate:modelValue\": [t[3] ||= (t) => e.lowestNote = t, e.updateRangeAndCheckChanges],\n\t\t\t\t\t\titems: e.noteOptions,\n\t\t\t\t\t\tlabel: \"Lowest Note\"\n\t\t\t\t\t}, null, 8, [\n\t\t\t\t\t\t\"modelValue\",\n\t\t\t\t\t\t\"items\",\n\t\t\t\t\t\t\"onUpdate:modelValue\"\n\t\t\t\t\t]), E(c, {\n\t\t\t\t\t\tmodelValue: e.highestNote,\n\t\t\t\t\t\t\"onUpdate:modelValue\": [t[4] ||= (t) => e.highestNote = t, e.updateRangeAndCheckChanges],\n\t\t\t\t\t\titems: e.noteOptions,\n\t\t\t\t\t\tlabel: \"Highest Note\"\n\t\t\t\t\t}, null, 8, [\n\t\t\t\t\t\t\"modelValue\",\n\t\t\t\t\t\t\"items\",\n\t\t\t\t\t\t\"onUpdate:modelValue\"\n\t\t\t\t\t])])) : S(\"\", !0),\n\t\t\t\t\tE(u, {\n\t\t\t\t\t\t\"lowest-note\": e.lowestNote,\n\t\t\t\t\t\t\"highest-note\": e.highestNote\n\t\t\t\t\t}, null, 8, [\"lowest-note\", \"highest-note\"]),\n\t\t\t\t\tw(\"div\", ue, [E(d, {\n\t\t\t\t\t\tcolor: \"primary\",\n\t\t\t\t\t\tonClick: e.playSound\n\t\t\t\t\t}, {\n\t\t\t\t\t\tdefault: I(() => t[6] ||= [T(\"Test midi output\")]),\n\t\t\t\t\t\t_: 1\n\t\t\t\t\t}, 8, [\"onClick\"]), E(d, {\n\t\t\t\t\t\tloading: e.updatePending,\n\t\t\t\t\t\tdisabled: !e.configChanged && !e.updatePending,\n\t\t\t\t\t\tcolor: \"info\",\n\t\t\t\t\t\tclass: \"save-button\",\n\t\t\t\t\t\tonClick: e.saveSettings\n\t\t\t\t\t}, {\n\t\t\t\t\t\tdefault: I(() => t[7] ||= [T(\" Save these settings \")]),\n\t\t\t\t\t\t_: 1\n\t\t\t\t\t}, 8, [\n\t\t\t\t\t\t\"loading\",\n\t\t\t\t\t\t\"disabled\",\n\t\t\t\t\t\t\"onClick\"\n\t\t\t\t\t])])\n\t\t\t\t]),\n\t\t\t\t_: 1\n\t\t\t})) : (A(), C(\"div\", de, t[9] ||= [w(\"p\", null, \"This quilt requires a midi input device, which is not supported by this browser.\", -1), w(\"div\", null, [w(\"p\", null, \"Try one of the following browsers:\"), w(\"ul\", null, [\n\t\t\t\tw(\"li\", null, [w(\"a\", { href: \"https://www.google.com/chrome/\" }, \"Google Chrome\")]),\n\t\t\t\tw(\"li\", null, [w(\"a\", { href: \"https://www.microsoft.com/edge\" }, \"Microsoft Edge\")]),\n\t\t\t\tw(\"li\", null, [w(\"a\", { href: \"https://brave.com/\" }, \"Brave\")])\n\t\t\t])], -1)]))]),\n\t\t\t_: 1\n\t\t})]),\n\t\t_: 1\n\t});\n}\nvar fe = /* @__PURE__ */ i(le, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-6ee9020f\"]]), pe = ee;\nasync function loadSubcourse(e) {\n\tlet t;\n\tswitch (e) {\n\t\tcase \"chess\":\n\t\t\tt = await import(\"./chess-X1bmWmh3.js\");\n\t\t\tbreak;\n\t\tcase \"french\":\n\t\t\tt = await import(\"./french-evUMlbbq.js\");\n\t\t\tbreak;\n\t\tcase \"math\":\n\t\t\tt = await import(\"./math-DYni7rRl.js\");\n\t\t\tbreak;\n\t\tcase \"piano\":\n\t\t\tt = await import(\"./piano-BN5Btq91.js\");\n\t\t\tbreak;\n\t\tcase \"pitch\":\n\t\t\tt = await import(\"./pitch-Dn0iNqiS.js\");\n\t\t\tbreak;\n\t\tcase \"sightSing\":\n\t\t\tt = await import(\"./sightsing-CJX3k0Fd.js\");\n\t\t\tbreak;\n\t\tcase \"typing\":\n\t\t\tt = await import(\"./typing-k-ojjO7G.js\");\n\t\t\tbreak;\n\t\tcase \"wordWork\":\n\t\t\tt = await import(\"./word-work-Dd6tIKrt.js\");\n\t\t\tbreak;\n\t}\n\tlet n = t.default;\n\treturn $.courses.find((e) => e.name === n.name) || $.courses.push(n), n;\n}\nasync function loadAllSubcourses() {\n\tawait Promise.all([\n\t\t\"chess\",\n\t\t\"french\",\n\t\t\"math\",\n\t\t\"piano\",\n\t\t\"pitch\",\n\t\t\"sightSing\",\n\t\t\"typing\",\n\t\t\"wordWork\"\n\t].map((e) => loadSubcourse(e)));\n}\nvar AllCourseWare = class {\n\tcourseWareList;\n\tget courses() {\n\t\treturn this.courseWareList;\n\t}\n\tconstructor(e) {\n\t\tthis.courseWareList = e;\n\t}\n\tgetCourseWare(e) {\n\t\treturn this.courseWareList.find((t) => t.name === e);\n\t}\n\tcachedRawViews = null;\n\tallViewsRaw() {\n\t\tif (!this.cachedRawViews) {\n\t\t\tlet e = this.allViews();\n\t\t\tthis.cachedRawViews = Object.fromEntries(Object.entries(e).map(([e, t]) => [e, O(t)]));\n\t\t}\n\t\treturn this.cachedRawViews;\n\t}\n\tallViews() {\n\t\tlet e = {};\n\t\treturn this.courseWareList.forEach((t) => {\n\t\t\tObject.assign(e, t.allViewsMap);\n\t\t}), e;\n\t}\n\tgetView(e) {\n\t\tlet t;\n\t\tt = typeof e == \"string\" ? B.getViewDescriptor(e) : e;\n\t\tlet n = this.getCourseWare(t.course);\n\t\tif (n) {\n\t\t\tlet e = n.getQuestion(t.questionType);\n\t\t\tif (e) {\n\t\t\t\tlet r = e.views.find((e) => e.name === t.view);\n\t\t\t\tif (r) return r;\n\t\t\t\tthrow console.error(`QuestionView ${t.view} not found in course ${t.course}\n\n descriptor: ${JSON.stringify(t)}\n\n course: ${n.name}\n question: ${e.name}\n views: ${e.views.map((e) => e.name).join(\", \")}\n `), Error(`view ${t.view} does not exist.`);\n\t\t\t} else throw console.error(`Question ${t.questionType} not found in course ${t.course}\n\n descriptor: ${JSON.stringify(t)}\n\n course: ${n.name}\n questions: ${n.questions.map((e) => e.name).join(\", \")}\n `), Error(`question ${t.questionType} does not exist.`);\n\t\t} else throw console.error(`Course ${t.course} not found.\n\n descriptor: ${JSON.stringify(t)}`), Error(`course ${t.course} does not exist.`);\n\t}\n\ttoString() {\n\t\tlet e = \"\";\n\t\treturn this.courses.forEach((t) => {\n\t\t\te += `Course: ${t.name}\\n`, t.questions.forEach((t) => {\n\t\t\t\te += ` Question: ${t.name}\\n`, t.views.forEach((t) => {\n\t\t\t\t\te += ` View: ${t.name}\\n`;\n\t\t\t\t});\n\t\t\t});\n\t\t}), e;\n\t}\n\tallDataShapesRaw() {\n\t\tlet e = [];\n\t\treturn this.courseWareList.forEach((t) => {\n\t\t\tt.questions.forEach((t) => {\n\t\t\t\tt.dataShapes.forEach((t) => {\n\t\t\t\t\te.includes(t) || e.push(t);\n\t\t\t\t});\n\t\t\t});\n\t\t}), e;\n\t}\n\tallDataShapes() {\n\t\tlet e = [];\n\t\treturn this.courseWareList.forEach((t) => {\n\t\t\tt.questions.forEach((n) => {\n\t\t\t\tn.dataShapes.forEach((r) => {\n\t\t\t\t\te.findIndex((e) => e.course === t.name && e.dataShape === r.name) === -1 && e.push({\n\t\t\t\t\t\tcourse: t.name,\n\t\t\t\t\t\tdataShape: r.name,\n\t\t\t\t\t\tdisplayable: n\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\t\t}), e;\n\t}\n\tgetDataShape(e) {\n\t\tlet t;\n\t\tif (this.getCourseWare(e.course).questions.forEach((n) => {\n\t\t\tn.dataShapes.forEach((n) => {\n\t\t\t\tn.name === e.dataShape && (t = n);\n\t\t\t});\n\t\t}), t) return t;\n\t\tthrow Error(`DataShape ${B.getDataShapeString(e)} not found`);\n\t}\n}, $ = new AllCourseWare([]);\n//#endregion\nexport { AllCourseWare, r as BlanksCard, t as BlanksCardDataShapes, a as CourseWare, L as Displayable, fe as MidiConfig, R as Question, p as SkMidi, d as SyllableSeqVis, u as SyllableSequence, $ as allCourseWare, o as chess, U as defaultCourse, l as eventsToSyllableSequence, s as french, n as gradeSpellingAttempt, loadAllSubcourses, loadSubcourse, c as math, m as piano, h as pitch, g as sightSing, f as transposeSyllableSeq, _ as typing, pe as useQuestionView, te as useViewable, v as wordWork };\n\n//# sourceMappingURL=index.mjs.map","<template>\n <v-container>\n <v-row>\n <v-col cols=\"12\">\n <div v-if=\"sessionPrepared\">\n <StudySession\n :content-sources=\"sessionContentSources\"\n :session-time-limit=\"sessionTimeLimit\"\n :user=\"user\"\n :session-config=\"studySessionConfig\"\n :data-layer=\"dataLayer\"\n :get-view-component=\"getViewComponent\"\n @session-finished=\"handleSessionFinished\"\n />\n </div>\n <div v-else>\n <v-card class=\"pa-4\">\n <v-progress-circular indeterminate color=\"primary\"></v-progress-circular>\n <p class=\"mt-4\">Preparing study session...</p>\n </v-card>\n </div>\n </v-col>\n </v-row>\n </v-container>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, onMounted } from 'vue';\nimport { useRoute } from 'vue-router';\nimport { ContentSourceID, getDataLayer } from '@vue-skuilder/db';\nimport { StudySession, type StudySessionConfig, useConfigStore } from '@vue-skuilder/common-ui';\nimport { allCourseWare } from '@vue-skuilder/courseware';\nimport { TagFilter, hasActiveFilter } from '@vue-skuilder/common';\nimport ENV from '../ENVIRONMENT_VARS';\n\nconst route = useRoute();\n\nconst user = getDataLayer().getUserDB();\nconst dataLayer = getDataLayer();\nconst configStore = useConfigStore();\nconst sessionPrepared = ref(false);\nconst sessionTimeLimit = ref(Number(configStore.config.sessionTimeLimit));\nconst sessionContentSources = ref<ContentSourceID[]>([]);\nconst studySessionConfig = ref<StudySessionConfig>({\n likesConfetti: configStore.config.likesConfetti,\n});\n\n// Function to get view component from courses\nconst getViewComponent = (view_id: string) => allCourseWare.getView(view_id);\n\n/**\n * Parse tag filter from URL query parameters.\n *\n * Supports:\n * - ?include=tagA,tagB&exclude=tagC\n * - Comma-separated values for multiple tags\n */\nconst parseTagFilterFromQuery = (): TagFilter => {\n const includeParam = route.query.include;\n const excludeParam = route.query.exclude;\n\n const parseParam = (param: string | string[] | undefined | null): string[] => {\n if (!param) return [];\n if (Array.isArray(param)) {\n // Handle repeated params: ?include=a&include=b\n return param.flatMap((p) => (p ? p.split(',').map((t) => t.trim()) : [])).filter(Boolean);\n }\n // Handle comma-separated: ?include=a,b\n return param\n .split(',')\n .map((t) => t.trim())\n .filter(Boolean);\n };\n\n return {\n include: parseParam(includeParam as string | string[] | undefined),\n exclude: parseParam(excludeParam as string | string[] | undefined),\n };\n};\n\n// Initialize study session with course from environment vars\nconst initStudySession = async () => {\n // Check if course ID is valid\n if (!ENV.STATIC_COURSE_ID || ENV.STATIC_COURSE_ID === 'not_set') {\n console.error('[StudyView] No course ID specified in environment vars!');\n return;\n }\n\n console.log(`[StudyView] Starting study session for course: ${ENV.STATIC_COURSE_ID}`);\n\n // Parse tag filter from query params\n const tagFilter = parseTagFilterFromQuery();\n const source: ContentSourceID = {\n type: 'course',\n id: ENV.STATIC_COURSE_ID,\n };\n\n if (hasActiveFilter(tagFilter)) {\n source.tagFilter = tagFilter;\n console.log(`[StudyView] Tag filter from query params:`, tagFilter);\n }\n\n // Set the content source to the course ID from environment vars\n sessionContentSources.value = [source];\n\n // Mark the session as prepared\n sessionPrepared.value = true;\n};\n\n// Handle session finished\nconst handleSessionFinished = () => {\n // router.go(0); // Refresh the page\n};\n\n// Initialize on component mount\nonMounted(async () => {\n // user.value = await getCurrentUser();\n\n // if (user.value) {\n await initStudySession();\n // } else {\n // console.error('[StudyView] No user available!');\n // }\n});\n</script>\n","<template>\n <v-container>\n <div v-if=\"courseId\">\n <CourseInformation :course-id=\"courseId\" :view-lookup-function=\"viewLookup\" :edit-mode=\"editMode\">\n <template #actions=\"{ editMode }\">\n <!-- Standalone-ui specific actions - no registration/trial buttons -->\n <div v-if=\"editMode !== 'none'\">\n <v-btn color=\"success\" class=\"me-2\" to=\"/study\">Start Study Session</v-btn>\n </div>\n </template>\n <template #tag-link=\"{ tag, courseId: id }\">\n <router-link :to=\"`/courses/${id}/tags/${tag.name}`\">\n <v-chip variant=\"tonal\" class=\"me-2 mb-2\">\n {{ tag.name }}\n </v-chip>\n </router-link>\n </template>\n </CourseInformation>\n </div>\n <div v-else class=\"text-center\">\n <v-alert type=\"error\"> Course ID not found in configuration </v-alert>\n </div>\n </v-container>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, onMounted } from 'vue';\nimport { CourseInformation } from '@vue-skuilder/common-ui';\nimport { allCourseWare } from '@vue-skuilder/courseware';\nimport { getDataLayer } from '@vue-skuilder/db';\nimport config from '../../skuilder.config.json';\n\nconst courseId = ref<string>('');\nconst editMode = ref<'none' | 'readonly' | 'full'>('full');\n\n// Full view lookup using courses package (same as platform-ui)\nconst viewLookup = (x: unknown) => {\n return allCourseWare.getView(x);\n};\n\nonMounted(() => {\n courseId.value = config.course || '';\n\n // Determine edit mode based on data layer capabilities\n const dataLayer = getDataLayer();\n editMode.value = dataLayer.isReadOnly() ? 'readonly' : 'full';\n});\n</script>\n","<template>\n <v-container>\n <h1>User Stats</h1>\n \n <div v-if=\"loading\">Loading...</div>\n \n <div v-else-if=\"userElo\">\n <h2>ELO Profile</h2>\n \n <h3>Global ELO</h3>\n <p>Score: {{ userElo.global.score }}</p>\n <p>Interactions: {{ userElo.global.count }}</p>\n \n <h3 v-if=\"Object.keys(userElo.tags).length > 0\">Tag-Specific ELOs</h3>\n <ul v-if=\"Object.keys(userElo.tags).length > 0\">\n <li v-for=\"(elo, tag) in userElo.tags\" :key=\"tag\">\n {{ tag }}: {{ elo.score }} ({{ elo.count }} interactions)\n </li>\n </ul>\n \n <h3 v-if=\"Object.keys(userElo.misc).length > 0\">Additional Metrics</h3>\n <ul v-if=\"Object.keys(userElo.misc).length > 0\">\n <li v-for=\"(value, key) in userElo.misc\" :key=\"key\">\n {{ key }}: {{ value }}\n </li>\n </ul>\n </div>\n \n <p v-else>No ELO data found.</p>\n \n <p><a href=\"#\" @click=\"$router.back()\">Back</a></p>\n </v-container>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, onMounted } from 'vue';\nimport { getDataLayer } from '@vue-skuilder/db';\nimport { getCurrentUser } from '@vue-skuilder/common-ui';\nimport { CourseElo } from '@vue-skuilder/common';\nimport config from '../../skuilder.config.json';\n\nconst loading = ref(true);\nconst userElo = ref<CourseElo | null>(null);\n\n// Simple MVP - no color coding needed\n\nonMounted(async () => {\n try {\n const courseId = config.course;\n if (!courseId) {\n console.error('No course ID found in config');\n return;\n }\n\n const user = await getCurrentUser();\n const dataLayer = getDataLayer();\n const courseDB = dataLayer.getCourseDB(courseId);\n \n // Try to get user's ELO profile for this course\n const userDB = dataLayer.getUserDB();\n const courseReg = await userDB.getCourseRegDoc(courseId);\n \n if (courseReg && courseReg.elo) {\n userElo.value = courseReg.elo;\n } else {\n // No ELO data yet\n userElo.value = null;\n }\n } catch (error) {\n console.error('Error loading user ELO:', error);\n userElo.value = null;\n } finally {\n loading.value = false;\n }\n});\n</script>","<template>\n <v-container>\n <v-card>\n <v-card-title class=\"d-flex align-center\">\n <v-icon class=\"mr-3\">mdi-cog</v-icon>\n User Settings\n </v-card-title>\n \n <v-card-text>\n <div v-if=\"loading\">\n <v-progress-circular indeterminate color=\"primary\"></v-progress-circular>\n Loading settings...\n </div>\n \n <div v-else>\n <!-- Study Preferences -->\n <v-card variant=\"outlined\" class=\"mb-4\">\n <v-card-title class=\"text-h6\">\n <v-icon start>mdi-clock-outline</v-icon>\n Study Preferences\n </v-card-title>\n <v-card-text>\n <v-row>\n <v-col cols=\"12\" md=\"6\">\n <v-slider\n v-model=\"sessionTimeLimit\"\n label=\"Session Time Limit (minutes)\"\n :min=\"1\"\n :max=\"30\"\n :step=\"1\"\n thumb-label=\"always\"\n @update:model-value=\"updateSessionTimeLimit\"\n >\n <template #append>\n <v-text-field\n v-model=\"sessionTimeLimit\"\n type=\"number\"\n style=\"width: 80px\"\n density=\"compact\"\n hide-details\n variant=\"outlined\"\n :min=\"1\"\n :max=\"30\"\n @update:model-value=\"updateSessionTimeLimit\"\n />\n </template>\n </v-slider>\n </v-col>\n </v-row>\n </v-card-text>\n </v-card>\n\n <!-- Interface Options -->\n <v-card variant=\"outlined\" class=\"mb-4\">\n <v-card-title class=\"text-h6\">\n <v-icon start>mdi-palette-outline</v-icon>\n Interface Options\n </v-card-title>\n <v-card-text>\n <v-row>\n <v-col cols=\"12\" md=\"6\">\n <v-switch\n v-model=\"darkMode\"\n label=\"Dark Mode\"\n color=\"primary\"\n @update:model-value=\"updateDarkMode\"\n />\n </v-col>\n <v-col cols=\"12\" md=\"6\">\n <v-switch\n v-model=\"likesConfetti\"\n label=\"Enable Confetti\"\n color=\"primary\"\n @update:model-value=\"updateConfetti\"\n />\n </v-col>\n </v-row>\n </v-card-text>\n </v-card>\n\n <!-- Account Actions -->\n <v-card variant=\"outlined\">\n <v-card-title class=\"text-h6\">\n <v-icon start>mdi-account-outline</v-icon>\n Account Management\n </v-card-title>\n <v-card-text>\n <v-row>\n <v-col cols=\"12\">\n <v-btn\n variant=\"outlined\"\n color=\"warning\"\n @click=\"resetToDefaults\"\n >\n <v-icon start>mdi-restore</v-icon>\n Reset to Defaults\n </v-btn>\n </v-col>\n </v-row>\n </v-card-text>\n </v-card>\n </div>\n </v-card-text>\n \n <v-card-actions>\n <v-btn variant=\"outlined\" @click=\"$router.back()\">\n <v-icon start>mdi-arrow-left</v-icon>\n Back\n </v-btn>\n <v-spacer />\n <v-btn variant=\"text\" color=\"success\" v-if=\"!loading\">\n <v-icon start>mdi-check</v-icon>\n Settings Saved\n </v-btn>\n </v-card-actions>\n </v-card>\n </v-container>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, onMounted } from 'vue';\nimport { useConfigStore } from '@vue-skuilder/common-ui';\n\nconst loading = ref(true);\nconst configStore = useConfigStore();\n\n// Reactive references to config values\nconst sessionTimeLimit = ref(5);\nconst darkMode = ref(false);\nconst likesConfetti = ref(false);\n\n// Update methods\nconst updateSessionTimeLimit = async (value: number) => {\n sessionTimeLimit.value = value;\n await configStore.updateSessionTimeLimit(value);\n};\n\nconst updateDarkMode = async (value: boolean) => {\n darkMode.value = value;\n await configStore.updateDarkMode(value);\n};\n\nconst updateConfetti = async (value: boolean) => {\n likesConfetti.value = value;\n await configStore.updateLikesConfetti(value);\n};\n\nconst resetToDefaults = async () => {\n configStore.resetDefaults();\n await configStore.updateSessionTimeLimit(5);\n await configStore.updateDarkMode(false);\n await configStore.updateLikesConfetti(false);\n \n // Update local refs\n sessionTimeLimit.value = 5;\n darkMode.value = false;\n likesConfetti.value = false;\n};\n\n// Load current settings on mount\nonMounted(async () => {\n try {\n await configStore.hydrate();\n \n // Update local refs with current config\n sessionTimeLimit.value = configStore.config.sessionTimeLimit;\n darkMode.value = configStore.config.darkMode;\n likesConfetti.value = configStore.config.likesConfetti;\n } catch (error) {\n console.error('Error loading user settings:', error);\n } finally {\n loading.value = false;\n }\n});\n</script>","<template>\n <div>\n <p>HELLO WORLD</p>\n <p>{{ questionText }}</p>\n <input v-model=\"userAnswer\" @keyup.enter=\"submitAnswer\" placeholder=\"Your answer\" />\n <button @click=\"submitAnswer\">Submit</button>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed, PropType, defineOptions } from 'vue';\nimport { useViewable, useQuestionView } from '@vue-skuilder/courseware';\nimport { SimpleTextQuestion } from './SimpleTextQuestion';\nimport { ViewData } from '@vue-skuilder/common';\n\ndefineOptions({\n name: 'SimpleTextQuestionView',\n});\n\nconst props = defineProps({\n data: {\n type: Array as PropType<ViewData[]>,\n required: true,\n },\n modifyDifficulty: {\n type: Number,\n required: false,\n default: 0,\n },\n});\n\nconst emit = defineEmits(['emit-response']);\n\nconst userAnswer = ref('');\n\nconst viewableUtils = useViewable(props, emit, 'SimpleTextQuestionView');\nconst questionUtils = useQuestionView<SimpleTextQuestion>(viewableUtils);\n\n// Initialize question\nquestionUtils.question.value = new SimpleTextQuestion(props.data);\n\n// Extract question text from the question instance\nconst questionText = computed(() => {\n const question = new SimpleTextQuestion(props.data);\n return (question as any).questionText || '';\n});\n\nconst submitAnswer = () => {\n questionUtils.submitAnswer({ response: userAnswer.value });\n};\n</script>\n\n<style scoped>\n/* Add some basic styling if needed */\n</style>\n","import { ViewData, Answer, Question } from '@vue-skuilder/courseware';\nimport { FieldType, DataShape, DataShapeName } from '@vue-skuilder/common';\nimport { markRaw } from 'vue';\nimport SimpleTextQuestionView from './SimpleTextQuestionView.vue';\n\nexport class SimpleTextQuestion extends Question {\n public static dataShapes: DataShape[] = [\n {\n name: 'SimpleTextQuestion' as DataShapeName,\n fields: [\n { name: 'questionText', type: FieldType.STRING },\n { name: 'correctAnswer', type: FieldType.STRING },\n ],\n },\n ];\n\n public static views = [markRaw(SimpleTextQuestionView)];\n\n // @ts-expect-error TS6133: Used in Vue template\n private questionText: string;\n private correctAnswer: string;\n\n constructor(data: ViewData[]) {\n super(data);\n this.questionText = data[0].questionText as string;\n this.correctAnswer = data[0].correctAnswer as string;\n }\n\n public dataShapes(): DataShape[] {\n return SimpleTextQuestion.dataShapes;\n }\n\n public views() {\n // This will be dynamically populated or imported\n return SimpleTextQuestion.views;\n }\n\n protected isCorrect(answer: Answer): boolean {\n return (answer.response as string).toLowerCase() === this.correctAnswer.toLowerCase();\n }\n}\n","<template>\n <div>\n <p>{{ questionText }}</p>\n <div v-for=\"(option, index) in options\" :key=\"index\">\n <input type=\"radio\" :id=\"`option-${index}`\" :value=\"option\" v-model=\"selectedAnswer\" />\n <label :for=\"`option-${index}`\">{{ option }}</label>\n </div>\n <button @click=\"submitAnswer\">Submit</button>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed, PropType, defineOptions } from 'vue';\nimport { useViewable, useQuestionView } from '@vue-skuilder/courseware';\nimport { MultipleChoiceQuestion } from './MultipleChoiceQuestion';\nimport { ViewData } from '@vue-skuilder/common';\n\ndefineOptions({\n name: 'MultipleChoiceQuestionView'\n});\n\nconst props = defineProps({\n data: {\n type: Array as PropType<ViewData[]>,\n required: true,\n },\n modifyDifficulty: {\n type: Number,\n required: false,\n default: 0,\n },\n});\n\nconst emit = defineEmits(['emit-response']);\n\nconst selectedAnswer = ref('');\n\nconst viewableUtils = useViewable(props, emit, 'MultipleChoiceQuestionView');\nconst questionUtils = useQuestionView<MultipleChoiceQuestion>(viewableUtils);\n\n// Initialize question\nquestionUtils.question.value = new MultipleChoiceQuestion(props.data);\n\n// Extract question text and options from the question instance\nconst questionText = computed(() => {\n const question = new MultipleChoiceQuestion(props.data);\n return (question as any)._questionText || '';\n});\n\nconst options = computed(() => {\n const question = new MultipleChoiceQuestion(props.data);\n return (question as any).options || [];\n});\n\nconst submitAnswer = () => {\n if (selectedAnswer.value) {\n questionUtils.submitAnswer({ response: selectedAnswer.value });\n }\n};\n</script>\n\n<style scoped>\n/* Add some basic styling if needed */\n</style>\n","import { ViewData, Answer, Question } from '@vue-skuilder/courseware';\nimport { FieldType, DataShape, DataShapeName } from '@vue-skuilder/common';\nimport { markRaw } from 'vue';\nimport MultipleChoiceQuestionView from './MultipleChoiceQuestionView.vue';\n\nexport class MultipleChoiceQuestion extends Question {\n public static dataShapes: DataShape[] = [\n {\n name: 'MultipleChoiceQuestion' as DataShapeName,\n fields: [\n { name: 'questionText', type: FieldType.STRING },\n { name: 'options', type: FieldType.STRING }, // Comma-separated string of options\n { name: 'correctAnswer', type: FieldType.STRING },\n ],\n },\n ];\n\n public static views = [markRaw(MultipleChoiceQuestionView)];\n\n // @ts-expect-error TS6133: Used in Vue template\n private _questionText: string;\n // @ts-expect-error TS6133: Used in Vue template\n private options: string[];\n private correctAnswer: string;\n\n constructor(data: ViewData[]) {\n super(data);\n this._questionText = data[0].questionText as string;\n this.options = (data[0].options as string).split(',').map((s) => s.trim());\n this.correctAnswer = data[0].correctAnswer as string;\n }\n\n public dataShapes(): DataShape[] {\n return MultipleChoiceQuestion.dataShapes;\n }\n\n public views() {\n // This will be dynamically populated or imported\n return MultipleChoiceQuestion.views;\n }\n\n protected isCorrect(answer: Answer): boolean {\n return (answer.response as string) === this.correctAnswer;\n }\n}\n","<template>\n <div>\n <p>{{ questionText }}</p>\n <input type=\"number\" v-model.number=\"userAnswer\" @keyup.enter=\"submitAnswer\" placeholder=\"Enter a number\" />\n <button @click=\"submitAnswer\">Submit</button>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed, PropType, defineOptions } from 'vue';\nimport { useViewable, useQuestionView } from '@vue-skuilder/courseware';\nimport { NumberRangeQuestion } from './NumberRangeQuestion';\nimport { ViewData } from '@vue-skuilder/common';\n\ndefineOptions({\n name: 'NumberRangeQuestionView'\n});\n\nconst props = defineProps({\n data: {\n type: Array as PropType<ViewData[]>,\n required: true,\n },\n modifyDifficulty: {\n type: Number,\n required: false,\n default: 0,\n },\n});\n\nconst emit = defineEmits(['emit-response']);\n\nconst userAnswer = ref<number | null>(null);\n\nconst viewableUtils = useViewable(props, emit, 'NumberRangeQuestionView');\nconst questionUtils = useQuestionView<NumberRangeQuestion>(viewableUtils);\n\n// Initialize question\nquestionUtils.question.value = new NumberRangeQuestion(props.data);\n\n// Extract question text from the question instance\nconst questionText = computed(() => {\n const question = new NumberRangeQuestion(props.data);\n return (question as any).questionText || '';\n});\n\nconst submitAnswer = () => {\n if (userAnswer.value !== null) {\n questionUtils.submitAnswer({ response: userAnswer.value });\n }\n};\n</script>\n\n<style scoped>\n/* Add some basic styling if needed */\n</style>\n","import { ViewData, Answer, Question } from '@vue-skuilder/courseware';\nimport { FieldType, DataShape, DataShapeName } from '@vue-skuilder/common';\nimport { markRaw } from 'vue';\nimport NumberRangeQuestionView from './NumberRangeQuestionView.vue';\n\nexport class NumberRangeQuestion extends Question {\n public static dataShapes: DataShape[] = [\n {\n name: 'NumberRangeQuestion' as DataShapeName,\n fields: [\n { name: 'questionText', type: FieldType.STRING },\n { name: 'min', type: FieldType.NUMBER },\n { name: 'max', type: FieldType.NUMBER },\n ],\n },\n ];\n\n public static views = [markRaw(NumberRangeQuestionView)];\n\n // @ts-expect-error TS6133: Used in Vue template\n private questionText: string;\n private min: number;\n private max: number;\n\n constructor(data: ViewData[]) {\n super(data);\n this.questionText = data[0].questionText as string;\n this.min = data[0].min as number;\n this.max = data[0].max as number;\n }\n\n public dataShapes(): DataShape[] {\n return NumberRangeQuestion.dataShapes;\n }\n\n public views() {\n // This will be dynamically populated or imported\n return NumberRangeQuestion.views;\n }\n\n protected isCorrect(answer: Answer): boolean {\n const userAnswer = answer.response as number;\n return userAnswer >= this.min && userAnswer <= this.max;\n }\n}\n","import { CourseWare } from '@vue-skuilder/courseware';\nimport { SimpleTextQuestion } from './SimpleTextQuestion';\nimport { MultipleChoiceQuestion } from './MultipleChoiceQuestion';\nimport { NumberRangeQuestion } from './NumberRangeQuestion';\n\nexport const exampleCourse = new CourseWare('ExampleCourse', [\n SimpleTextQuestion,\n MultipleChoiceQuestion,\n NumberRangeQuestion,\n]);\n","// Library entry point for custom questions in standalone-ui\n// This file exports question types and components for consumption by studio-ui\n\nimport { CourseWare } from '@vue-skuilder/courseware';\nimport { DataShape } from '@vue-skuilder/common';\nimport { ViewComponent } from '@vue-skuilder/common-ui';\n\n// [ ] todo: simplify exports here. Only the final 'bundle' is strictly required.\n\n// Export individual question classes\nexport { SimpleTextQuestion } from './SimpleTextQuestion';\nexport { MultipleChoiceQuestion } from './MultipleChoiceQuestion';\nexport { NumberRangeQuestion } from './NumberRangeQuestion';\n\n// Export example course\nexport { exampleCourse } from './exampleCourse';\n\n// Import components for re-export\nimport SimpleTextQuestionView from './SimpleTextQuestionView.vue';\nimport MultipleChoiceQuestionView from './MultipleChoiceQuestionView.vue';\nimport NumberRangeQuestionView from './NumberRangeQuestionView.vue';\n\n// Export Vue components\nexport { SimpleTextQuestionView, MultipleChoiceQuestionView, NumberRangeQuestionView };\n\n// Import classes for analysis\nimport { SimpleTextQuestion } from './SimpleTextQuestion';\nimport { MultipleChoiceQuestion } from './MultipleChoiceQuestion';\nimport { NumberRangeQuestion } from './NumberRangeQuestion';\nimport { exampleCourse } from './exampleCourse';\n\n/**\n * Main function to export all custom questions for studio-ui consumption\n * This provides a standardized interface for the CLI to discover and integrate\n * custom question types into studio-ui builds\n */\nexport function allCustomQuestions() {\n // Collect all question classes\n const questionClasses = [SimpleTextQuestion, MultipleChoiceQuestion, NumberRangeQuestion];\n\n // Collect all data shapes from questions\n const dataShapes: DataShape[] = [];\n questionClasses.forEach((questionClass) => {\n if (questionClass.dataShapes) {\n questionClass.dataShapes.forEach((shape) => {\n // Avoid duplicates\n if (!dataShapes.find((existing) => existing.name === shape.name)) {\n dataShapes.push(shape);\n }\n });\n }\n });\n\n // Collect all view components from questions\n const views: Array<{ name: string; component: ViewComponent }> = [];\n questionClasses.forEach((questionClass) => {\n if (questionClass.views) {\n questionClass.views.forEach((view) => {\n const viewName = (view as any).name || (view as any).__name;\n if (viewName) {\n if (!views.find((existing) => existing.name === viewName)) {\n views.push({ name: viewName, component: view });\n }\n } else {\n console.warn('[allCustomQuestions] View component missing name property:', view);\n }\n });\n }\n });\n\n const courses = [exampleCourse];\n\n // Return structured data for studio-ui integration\n return {\n // CourseWare instances with question instances\n courses,\n\n // Question class constructors for registration\n questionClasses,\n\n // Available data shapes for studio-ui CreateCardView\n dataShapes,\n\n // Vue components for runtime registration\n views,\n\n // Metadata for debugging and analysis\n meta: {\n questionCount: questionClasses.length,\n dataShapeCount: dataShapes.length,\n viewCount: views.length,\n courseCount: courses.length,\n packageName: '@vue-skuilder/standalone-ui',\n sourceDirectory: 'src/questions',\n },\n };\n}\n\n/**\n * Type definitions for the custom questions export structure\n * This provides TypeScript support for CLI and studio-ui integration\n */\nexport interface CustomQuestionsExport {\n courses: CourseWare[];\n questionClasses: Array<\n typeof SimpleTextQuestion | typeof MultipleChoiceQuestion | typeof NumberRangeQuestion\n >;\n dataShapes: DataShape[];\n views: Array<{ name: string; component: ViewComponent }>;\n meta: {\n questionCount: number;\n dataShapeCount: number;\n viewCount: number;\n courseCount: number;\n packageName: string;\n sourceDirectory: string;\n };\n}\n\n// Default export for convenience\nexport default allCustomQuestions;\n","<template>\n <v-container>\n <v-card>\n <v-card-title class=\"text-h4 mb-4\">\n Register Question Types\n </v-card-title>\n\n <!-- Access Denied -->\n <v-alert v-if=\"!isAuthorized\" type=\"error\" variant=\"tonal\" class=\"ma-4\">\n <v-alert-title>Access Denied</v-alert-title>\n <p class=\"mb-2\">\n This admin page requires authentication with an authorized account.\n </p>\n <p v-if=\"!authStore.isLoggedIn\" class=\"mb-2\">\n Please <a href=\"#\" @click.prevent=\"authStore.setLoginDialog(true)\">log in</a> to continue.\n </p>\n <p v-else class=\"mb-2\">\n Your account ({{ currentUsername }}) does not have admin privileges.\n </p>\n </v-alert>\n\n <!-- Static Mode Warning -->\n <v-alert v-else-if=\"isStaticMode\" type=\"warning\" variant=\"tonal\" class=\"ma-4\">\n <v-alert-title>Static Mode Detected</v-alert-title>\n <p class=\"mb-2\">\n Question type registration is not available in static mode.\n </p>\n <p class=\"mb-2\">\n To register custom question types, use Studio mode:\n </p>\n <v-code tag=\"pre\" class=\"text-caption\">yarn studio</v-code>\n <p class=\"mt-2\">\n Studio mode provides a development environment with full database access for registering question types.\n </p>\n </v-alert>\n\n <!-- Loading State -->\n <v-card-text v-else-if=\"isAuthorized && loading\">\n <v-progress-circular indeterminate color=\"primary\" />\n <span class=\"ml-4\">Loading question type data...</span>\n </v-card-text>\n\n <!-- Error State -->\n <v-alert v-else-if=\"error\" type=\"error\" variant=\"tonal\" class=\"ma-4\">\n <v-alert-title>Error</v-alert-title>\n {{ error }}\n </v-alert>\n\n <!-- Main Content -->\n <v-card-text v-else>\n <!-- Current State -->\n <div class=\"mb-6\">\n <h3 class=\"text-h6 mb-2\">Current CourseConfig</h3>\n <v-expansion-panels variant=\"accordion\">\n <v-expansion-panel>\n <v-expansion-panel-title>\n <v-icon class=\"mr-2\">mdi-shape</v-icon>\n {{ currentDataShapeCount }} DataShapes registered\n </v-expansion-panel-title>\n <v-expansion-panel-text>\n <v-list v-if=\"courseConfig?.dataShapes?.length\" density=\"compact\">\n <v-list-item\n v-for=\"ds in courseConfig.dataShapes\"\n :key=\"ds.name\"\n >\n <template #default>\n <v-list-item-title class=\"font-weight-medium\">\n {{ ds.name }}\n </v-list-item-title>\n <v-list-item-subtitle>\n {{ ds.questionTypes?.length || 0 }} question types |\n Schema: {{ ds.serializedZodSchema ? 'Yes' : 'No' }}\n </v-list-item-subtitle>\n </template>\n <template #append>\n <v-btn\n icon=\"mdi-delete\"\n size=\"small\"\n variant=\"text\"\n color=\"error\"\n :loading=\"removing\"\n @click=\"confirmRemoveDataShape(ds.name)\"\n />\n </template>\n </v-list-item>\n </v-list>\n <div v-else class=\"text-medium-emphasis pa-2\">\n No DataShapes registered\n </div>\n </v-expansion-panel-text>\n </v-expansion-panel>\n <v-expansion-panel>\n <v-expansion-panel-title>\n <v-icon class=\"mr-2\">mdi-help-circle</v-icon>\n {{ currentQuestionTypeCount }} QuestionTypes registered\n </v-expansion-panel-title>\n <v-expansion-panel-text>\n <v-list v-if=\"courseConfig?.questionTypes?.length\" density=\"compact\">\n <v-list-item\n v-for=\"qt in courseConfig.questionTypes\"\n :key=\"qt.name\"\n >\n <template #default>\n <v-list-item-title class=\"font-weight-medium\">\n {{ qt.name }}\n </v-list-item-title>\n <v-list-item-subtitle>\n Views: {{ qt.viewList?.join(', ') || 'none' }} |\n DataShapes: {{ qt.dataShapeList?.join(', ') || 'none' }}\n </v-list-item-subtitle>\n </template>\n <template #append>\n <v-btn\n icon=\"mdi-delete\"\n size=\"small\"\n variant=\"text\"\n color=\"error\"\n :loading=\"removing\"\n @click=\"confirmRemoveQuestionType(qt.name)\"\n />\n </template>\n </v-list-item>\n </v-list>\n <div v-else class=\"text-medium-emphasis pa-2\">\n No QuestionTypes registered\n </div>\n </v-expansion-panel-text>\n </v-expansion-panel>\n </v-expansion-panels>\n </div>\n\n <!-- Custom Questions -->\n <div class=\"mb-6\">\n <h3 class=\"text-h6 mb-2\">From allCustomQuestions()</h3>\n <v-expansion-panels variant=\"accordion\">\n <v-expansion-panel>\n <v-expansion-panel-title>\n <v-icon class=\"mr-2\">mdi-shape</v-icon>\n {{ processedDataShapes.length }} DataShapes found\n </v-expansion-panel-title>\n <v-expansion-panel-text>\n <v-list v-if=\"processedDataShapes.length\" density=\"compact\">\n <v-list-item\n v-for=\"ds in processedDataShapes\"\n :key=\"`${ds.course}.${ds.name}`\"\n >\n <v-list-item-title class=\"font-weight-medium\">\n {{ ds.course }}.{{ ds.name }}\n </v-list-item-title>\n <v-list-item-subtitle>\n Fields: {{ ds.dataShape?.fields?.map(f => f.name).join(', ') || 'none' }}\n </v-list-item-subtitle>\n </v-list-item>\n </v-list>\n <div v-else class=\"text-medium-emphasis pa-2\">\n No DataShapes found in allCustomQuestions()\n </div>\n </v-expansion-panel-text>\n </v-expansion-panel>\n <v-expansion-panel>\n <v-expansion-panel-title>\n <v-icon class=\"mr-2\">mdi-help-circle</v-icon>\n {{ processedQuestions.length }} QuestionTypes found\n </v-expansion-panel-title>\n <v-expansion-panel-text>\n <v-list v-if=\"processedQuestions.length\" density=\"compact\">\n <v-list-item\n v-for=\"q in processedQuestions\"\n :key=\"`${q.course}.${q.name}`\"\n >\n <v-list-item-title class=\"font-weight-medium\">\n {{ q.course }}.{{ q.name }}\n </v-list-item-title>\n <v-list-item-subtitle>\n DataShapes: {{ q.dataShapes?.map(ds => ds.name).join(', ') || 'none' }} |\n Views: {{ q.views?.length || 0 }}\n </v-list-item-subtitle>\n </v-list-item>\n </v-list>\n <div v-else class=\"text-medium-emphasis pa-2\">\n No QuestionTypes found in allCustomQuestions()\n </div>\n </v-expansion-panel-text>\n </v-expansion-panel>\n </v-expansion-panels>\n </div>\n\n <!-- Changes Preview -->\n <div v-if=\"hasChanges\" class=\"mb-6\">\n <h3 class=\"text-h6 mb-2\">Changes to Apply</h3>\n <v-list density=\"compact\">\n <v-list-item\n v-for=\"change in changesList\"\n :key=\"change.key\"\n :class=\"change.type === 'add' ? 'text-success' : 'text-info'\"\n >\n <template #prepend>\n <v-icon :color=\"change.type === 'add' ? 'success' : 'info'\">\n {{ change.type === 'add' ? 'mdi-plus' : 'mdi-update' }}\n </v-icon>\n </template>\n <v-list-item-title>\n {{ change.label }}\n </v-list-item-title>\n </v-list-item>\n </v-list>\n </div>\n\n <!-- No Changes Message -->\n <v-alert v-else type=\"info\" variant=\"tonal\">\n All question types are already registered. No changes needed.\n </v-alert>\n\n <!-- Success Message -->\n <v-alert v-if=\"successMessage\" type=\"success\" variant=\"tonal\" class=\"mb-4\">\n <v-alert-title>Success</v-alert-title>\n {{ successMessage }}\n </v-alert>\n </v-card-text>\n\n <!-- Actions -->\n <v-card-actions v-if=\"isAuthorized && !isStaticMode && !loading && !error\">\n <v-spacer />\n <v-btn\n color=\"primary\"\n :disabled=\"!hasChanges || registering\"\n :loading=\"registering\"\n @click=\"registerQuestions\"\n >\n Register Question Types\n </v-btn>\n </v-card-actions>\n </v-card>\n </v-container>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed, onMounted } from 'vue';\nimport { getDataLayer } from '@vue-skuilder/db';\nimport {\n registerCustomQuestionTypes,\n removeCustomQuestionTypes,\n processCustomQuestionsData,\n isDataShapeRegistered,\n isQuestionTypeRegistered,\n isDataShapeSchemaAvailable,\n type CustomQuestionsData,\n type ProcessedDataShape,\n type ProcessedQuestionData,\n} from '@vue-skuilder/db';\nimport { useAuthStore, getCurrentUser } from '@vue-skuilder/common-ui';\nimport { allCustomQuestions } from '../questions';\nimport config from '../../skuilder.config.json';\n\n// Admin usernames that can access this page\nconst ADMIN_USERNAMES = ['admin'];\n\n// Auth state\nconst authStore = useAuthStore();\nconst currentUsername = ref<string | null>(null);\n\n// Check if user is authorized (logged in + admin username)\nconst isAuthorized = computed(() => {\n if (!authStore.isLoggedIn) return false;\n if (!currentUsername.value) return false;\n return ADMIN_USERNAMES.includes(currentUsername.value);\n});\n\n// State\nconst loading = ref(true);\nconst error = ref<string | null>(null);\nconst registering = ref(false);\nconst removing = ref(false);\nconst successMessage = ref<string | null>(null);\n\nconst courseConfig = ref<any>(null);\nconst customQuestions = ref<CustomQuestionsData | null>(null);\nconst processedDataShapes = ref<ProcessedDataShape[]>([]);\nconst processedQuestions = ref<ProcessedQuestionData[]>([]);\n\n// Check if in static mode\nconst isStaticMode = computed(() => config.dataLayerType === 'static');\n\n// Computed properties\nconst currentDataShapeCount = computed(() => courseConfig.value?.dataShapes?.length ?? 0);\nconst currentQuestionTypeCount = computed(() => courseConfig.value?.questionTypes?.length ?? 0);\n\ninterface Change {\n key: string;\n type: 'add' | 'update';\n label: string;\n}\n\nconst changesList = computed<Change[]>(() => {\n if (!courseConfig.value || !customQuestions.value) return [];\n\n const changes: Change[] = [];\n\n // Check DataShapes\n for (const dataShape of processedDataShapes.value) {\n const isRegistered = isDataShapeRegistered(dataShape, courseConfig.value);\n const hasSchema = isDataShapeSchemaAvailable(dataShape, courseConfig.value);\n\n if (!isRegistered) {\n changes.push({\n key: `ds-add-${dataShape.course}.${dataShape.name}`,\n type: 'add',\n label: `Add DataShape: ${dataShape.course}.${dataShape.name}`,\n });\n } else if (!hasSchema) {\n changes.push({\n key: `ds-update-${dataShape.course}.${dataShape.name}`,\n type: 'update',\n label: `Update DataShape schema: ${dataShape.course}.${dataShape.name}`,\n });\n }\n }\n\n // Check QuestionTypes\n for (const question of processedQuestions.value) {\n if (!isQuestionTypeRegistered(question, courseConfig.value)) {\n changes.push({\n key: `qt-add-${question.course}.${question.name}`,\n type: 'add',\n label: `Add QuestionType: ${question.name}`,\n });\n }\n }\n\n return changes;\n});\n\nconst hasChanges = computed(() => changesList.value.length > 0);\n\n// Methods\nasync function loadData() {\n try {\n loading.value = true;\n error.value = null;\n\n // Load custom questions\n customQuestions.value = allCustomQuestions();\n\n // Process custom questions\n const processed = processCustomQuestionsData(customQuestions.value);\n processedDataShapes.value = processed.dataShapes;\n processedQuestions.value = processed.questions;\n\n // Load course config\n const courseId = config.course;\n if (!courseId) {\n throw new Error('No course ID configured in skuilder.config.json');\n }\n\n const courseDB = getDataLayer().getCourseDB(courseId);\n courseConfig.value = await courseDB.getCourseConfig();\n } catch (err) {\n error.value = err instanceof Error ? err.message : String(err);\n console.error('[AdminRegisterQuestions] Failed to load data:', err);\n } finally {\n loading.value = false;\n }\n}\n\nasync function registerQuestions() {\n if (!customQuestions.value || !courseConfig.value) {\n error.value = 'Missing data for registration';\n return;\n }\n\n try {\n registering.value = true;\n error.value = null;\n successMessage.value = null;\n\n const authStore = useAuthStore();\n const username = authStore.currentUser?.username || 'admin';\n\n const courseId = config.course;\n if (!courseId) {\n throw new Error('No course ID configured');\n }\n\n const courseDB = getDataLayer().getCourseDB(courseId);\n\n const result = await registerCustomQuestionTypes(\n customQuestions.value,\n courseConfig.value,\n courseDB,\n username\n );\n\n if (result.success) {\n successMessage.value = `Successfully registered ${result.registeredCount} items`;\n // Reload data to show updated state\n await loadData();\n } else {\n error.value = result.errorMessage || 'Registration failed';\n }\n } catch (err) {\n error.value = err instanceof Error ? err.message : String(err);\n console.error('[AdminRegisterQuestions] Registration failed:', err);\n } finally {\n registering.value = false;\n }\n}\n\nasync function confirmRemoveDataShape(name: string) {\n if (!confirm(`Remove DataShape \"${name}\"? This cannot be undone.`)) {\n return;\n }\n await removeItems([name], []);\n}\n\nasync function confirmRemoveQuestionType(name: string) {\n if (!confirm(`Remove QuestionType \"${name}\"? This cannot be undone.`)) {\n return;\n }\n await removeItems([], [name]);\n}\n\nasync function removeItems(dataShapeNames: string[], questionTypeNames: string[]) {\n if (!courseConfig.value) {\n error.value = 'Missing course config for removal';\n return;\n }\n\n try {\n removing.value = true;\n error.value = null;\n successMessage.value = null;\n\n const courseId = config.course;\n if (!courseId) {\n throw new Error('No course ID configured');\n }\n\n const courseDB = getDataLayer().getCourseDB(courseId);\n\n const result = await removeCustomQuestionTypes(\n dataShapeNames,\n questionTypeNames,\n courseConfig.value,\n courseDB\n );\n\n if (result.success) {\n successMessage.value = `Successfully removed ${result.removedCount} items`;\n // Reload data to show updated state\n await loadData();\n } else {\n error.value = result.errorMessage || 'Removal failed';\n }\n } catch (err) {\n error.value = err instanceof Error ? err.message : String(err);\n console.error('[AdminRegisterQuestions] Removal failed:', err);\n } finally {\n removing.value = false;\n }\n}\n\n// Lifecycle\nonMounted(async () => {\n // Check authorization first\n try {\n const user = await getCurrentUser();\n if (user) {\n currentUsername.value = user.getUsername();\n }\n } catch (err) {\n console.error('[AdminRegisterQuestions] Failed to get current user:', err);\n }\n\n // Only load data if authorized and not in static mode\n if (isAuthorized.value && !isStaticMode.value) {\n loadData();\n } else {\n loading.value = false;\n }\n});\n</script>\n\n<style scoped>\n.v-code {\n background-color: rgba(0, 0, 0, 0.05);\n padding: 8px 12px;\n border-radius: 4px;\n font-family: 'Courier New', monospace;\n}\n\n:deep(.v-theme--dark) .v-code {\n background-color: rgba(255, 255, 255, 0.05);\n}\n</style>\n","import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router';\nimport HomeView from '../views/HomeView.vue';\nimport StudyView from '../views/StudyView.vue';\nimport ProgressView from '../views/ProgressView.vue';\nimport BrowseView from '../views/BrowseView.vue';\nimport UserStatsView from '../views/UserStatsView.vue';\nimport UserSettingsView from '../views/UserSettingsView.vue';\nimport AdminRegisterQuestionsView from '../views/AdminRegisterQuestionsView.vue';\nimport { UserLogin, UserRegistration } from '@vue-skuilder/common-ui';\n\nconst routes: Array<RouteRecordRaw> = [\n {\n path: '/',\n name: 'home',\n component: HomeView,\n },\n {\n path: '/study',\n name: 'study',\n component: StudyView,\n },\n {\n path: '/progress',\n name: 'progress',\n component: ProgressView,\n },\n {\n path: '/browse',\n name: 'browse',\n component: BrowseView,\n },\n {\n path: '/login',\n name: 'login',\n component: UserLogin,\n },\n {\n path: '/register',\n alias: '/signup',\n name: 'Register',\n component: UserRegistration,\n },\n {\n path: '/u/:username',\n name: 'UserSettings',\n component: UserSettingsView,\n },\n {\n path: '/u/:username/stats',\n name: 'UserStats', \n component: UserStatsView,\n },\n {\n path: '/courses/:courseId/tags/:tagId',\n name: 'tag-viewer',\n component: () => import('../views/TagViewer.vue'),\n props: true,\n },\n {\n path: '/admin/register-questions',\n name: 'AdminRegisterQuestions',\n component: AdminRegisterQuestionsView,\n meta: {\n requiresAuth: true,\n },\n },\n];\n\nconst router = createRouter({\n history: createWebHistory(),\n routes,\n});\n\n// Navigation guard for protected routes\nrouter.beforeEach(async (to, _from, next) => {\n // Check if route requires authentication\n if (to.meta.requiresAuth) {\n // Dynamically import auth store to avoid circular dependencies\n const { useAuthStore } = await import('@vue-skuilder/common-ui');\n const authStore = useAuthStore();\n\n if (!authStore.currentUser) {\n // Redirect to login with return path\n next({\n name: 'login',\n query: { redirect: to.fullPath },\n });\n return;\n }\n }\n\n next();\n});\n\nexport default router;\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VApp.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { createLayout, makeLayoutProps } from \"../../composables/layout.mjs\";\nimport { useRtl } from \"../../composables/locale.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVAppProps = propsFactory({\n ...makeComponentProps(),\n ...makeLayoutProps({\n fullHeight: true\n }),\n ...makeThemeProps()\n}, 'VApp');\nexport const VApp = genericComponent()({\n name: 'VApp',\n props: makeVAppProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const theme = provideTheme(props);\n const {\n layoutClasses,\n getLayoutItem,\n items,\n layoutRef\n } = createLayout(props);\n const {\n rtlClasses\n } = useRtl();\n useRender(() => _createVNode(\"div\", {\n \"ref\": layoutRef,\n \"class\": ['v-application', theme.themeClasses.value, layoutClasses.value, rtlClasses.value, props.class],\n \"style\": [props.style]\n }, [_createVNode(\"div\", {\n \"class\": \"v-application__wrap\"\n }, [slots.default?.()])]));\n return {\n getLayoutItem,\n items,\n theme\n };\n }\n});\n//# sourceMappingURL=VApp.mjs.map","// Utilities\nimport { propsFactory } from \"../util/index.mjs\"; // Types\n// Composables\nexport const makeTagProps = propsFactory({\n tag: {\n type: String,\n default: 'div'\n }\n}, 'tag');\n//# sourceMappingURL=tag.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVToolbarTitleProps = propsFactory({\n text: String,\n ...makeComponentProps(),\n ...makeTagProps()\n}, 'VToolbarTitle');\nexport const VToolbarTitle = genericComponent()({\n name: 'VToolbarTitle',\n props: makeVToolbarTitleProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => {\n const hasText = !!(slots.default || slots.text || props.text);\n return _createVNode(props.tag, {\n \"class\": ['v-toolbar-title', props.class],\n \"style\": props.style\n }, {\n default: () => [hasText && _createVNode(\"div\", {\n \"class\": \"v-toolbar-title__placeholder\"\n }, [slots.text ? slots.text() : props.text, slots.default?.()])]\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VToolbarTitle.mjs.map","// Utilities\nimport { h, Transition, TransitionGroup } from 'vue';\nimport { genericComponent, propsFactory } from \"../../util/index.mjs\"; // Types\nexport const makeTransitionProps = propsFactory({\n disabled: Boolean,\n group: Boolean,\n hideOnLeave: Boolean,\n leaveAbsolute: Boolean,\n mode: String,\n origin: String\n}, 'transition');\nexport function createCssTransition(name, origin, mode) {\n return genericComponent()({\n name,\n props: makeTransitionProps({\n mode,\n origin\n }),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const functions = {\n onBeforeEnter(el) {\n if (props.origin) {\n el.style.transformOrigin = props.origin;\n }\n },\n onLeave(el) {\n if (props.leaveAbsolute) {\n const {\n offsetTop,\n offsetLeft,\n offsetWidth,\n offsetHeight\n } = el;\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height\n };\n el.style.position = 'absolute';\n el.style.top = `${offsetTop}px`;\n el.style.left = `${offsetLeft}px`;\n el.style.width = `${offsetWidth}px`;\n el.style.height = `${offsetHeight}px`;\n }\n if (props.hideOnLeave) {\n el.style.setProperty('display', 'none', 'important');\n }\n },\n onAfterLeave(el) {\n if (props.leaveAbsolute && el?._transitionInitialStyles) {\n const {\n position,\n top,\n left,\n width,\n height\n } = el._transitionInitialStyles;\n delete el._transitionInitialStyles;\n el.style.position = position || '';\n el.style.top = top || '';\n el.style.left = left || '';\n el.style.width = width || '';\n el.style.height = height || '';\n }\n }\n };\n return () => {\n const tag = props.group ? TransitionGroup : Transition;\n return h(tag, {\n name: props.disabled ? '' : name,\n css: !props.disabled,\n ...(props.group ? undefined : {\n mode: props.mode\n }),\n ...(props.disabled ? {} : functions)\n }, slots.default);\n };\n }\n });\n}\nexport function createJavascriptTransition(name, functions) {\n let mode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'in-out';\n return genericComponent()({\n name,\n props: {\n mode: {\n type: String,\n default: mode\n },\n disabled: Boolean,\n group: Boolean\n },\n setup(props, _ref2) {\n let {\n slots\n } = _ref2;\n const tag = props.group ? TransitionGroup : Transition;\n return () => {\n return h(tag, {\n name: props.disabled ? '' : name,\n css: !props.disabled,\n // mode: props.mode, // TODO: vuejs/vue-next#3104\n ...(props.disabled ? {} : functions)\n }, slots.default);\n };\n }\n });\n}\n//# sourceMappingURL=createTransition.mjs.map","// Utilities\nimport { camelize } from 'vue';\nexport default function () {\n let expandedParentClass = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n let x = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n const sizeProperty = x ? 'width' : 'height';\n const offsetProperty = camelize(`offset-${sizeProperty}`);\n return {\n onBeforeEnter(el) {\n el._parent = el.parentNode;\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty]\n };\n },\n onEnter(el) {\n const initialStyle = el._initialStyle;\n if (!initialStyle) return;\n el.style.setProperty('transition', 'none', 'important');\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden';\n const offset = `${el[offsetProperty]}px`;\n el.style[sizeProperty] = '0';\n void el.offsetHeight; // force reflow\n\n el.style.transition = initialStyle.transition;\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass);\n }\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset;\n });\n },\n onAfterEnter: resetStyles,\n onEnterCancelled: resetStyles,\n onLeave(el) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty]\n };\n el.style.overflow = 'hidden';\n el.style[sizeProperty] = `${el[offsetProperty]}px`;\n void el.offsetHeight; // force reflow\n\n requestAnimationFrame(() => el.style[sizeProperty] = '0');\n },\n onAfterLeave,\n onLeaveCancelled: onAfterLeave\n };\n function onAfterLeave(el) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass);\n }\n resetStyles(el);\n }\n function resetStyles(el) {\n if (!el._initialStyle) return;\n const size = el._initialStyle[sizeProperty];\n el.style.overflow = el._initialStyle.overflow;\n if (size != null) el.style[sizeProperty] = size;\n delete el._initialStyle;\n }\n}\n//# sourceMappingURL=expand-transition.mjs.map","// Utilities\nimport { Transition, mergeProps as _mergeProps, createVNode as _createVNode } from 'vue';\nimport { acceleratedEasing, animate, deceleratedEasing, genericComponent, nullifyTransforms, propsFactory, standardEasing } from \"../../util/index.mjs\";\nimport { getTargetBox } from \"../../util/box.mjs\"; // Types\nexport const makeVDialogTransitionProps = propsFactory({\n target: [Object, Array]\n}, 'v-dialog-transition');\nexport const VDialogTransition = genericComponent()({\n name: 'VDialogTransition',\n props: makeVDialogTransitionProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const functions = {\n onBeforeEnter(el) {\n el.style.pointerEvents = 'none';\n el.style.visibility = 'hidden';\n },\n async onEnter(el, done) {\n await new Promise(resolve => requestAnimationFrame(resolve));\n await new Promise(resolve => requestAnimationFrame(resolve));\n el.style.visibility = '';\n const {\n x,\n y,\n sx,\n sy,\n speed\n } = getDimensions(props.target, el);\n const animation = animate(el, [{\n transform: `translate(${x}px, ${y}px) scale(${sx}, ${sy})`,\n opacity: 0\n }, {}], {\n duration: 225 * speed,\n easing: deceleratedEasing\n });\n getChildren(el)?.forEach(el => {\n animate(el, [{\n opacity: 0\n }, {\n opacity: 0,\n offset: 0.33\n }, {}], {\n duration: 225 * 2 * speed,\n easing: standardEasing\n });\n });\n animation.finished.then(() => done());\n },\n onAfterEnter(el) {\n el.style.removeProperty('pointer-events');\n },\n onBeforeLeave(el) {\n el.style.pointerEvents = 'none';\n },\n async onLeave(el, done) {\n await new Promise(resolve => requestAnimationFrame(resolve));\n const {\n x,\n y,\n sx,\n sy,\n speed\n } = getDimensions(props.target, el);\n const animation = animate(el, [{}, {\n transform: `translate(${x}px, ${y}px) scale(${sx}, ${sy})`,\n opacity: 0\n }], {\n duration: 125 * speed,\n easing: acceleratedEasing\n });\n animation.finished.then(() => done());\n getChildren(el)?.forEach(el => {\n animate(el, [{}, {\n opacity: 0,\n offset: 0.2\n }, {\n opacity: 0\n }], {\n duration: 125 * 2 * speed,\n easing: standardEasing\n });\n });\n },\n onAfterLeave(el) {\n el.style.removeProperty('pointer-events');\n }\n };\n return () => {\n return props.target ? _createVNode(Transition, _mergeProps({\n \"name\": \"dialog-transition\"\n }, functions, {\n \"css\": false\n }), slots) : _createVNode(Transition, {\n \"name\": \"dialog-transition\"\n }, slots);\n };\n }\n});\n\n/** Animatable children (card, sheet, list) */\nfunction getChildren(el) {\n const els = el.querySelector(':scope > .v-card, :scope > .v-sheet, :scope > .v-list')?.children;\n return els && [...els];\n}\nfunction getDimensions(target, el) {\n const targetBox = getTargetBox(target);\n const elBox = nullifyTransforms(el);\n const [originX, originY] = getComputedStyle(el).transformOrigin.split(' ').map(v => parseFloat(v));\n const [anchorSide, anchorOffset] = getComputedStyle(el).getPropertyValue('--v-overlay-anchor-origin').split(' ');\n let offsetX = targetBox.left + targetBox.width / 2;\n if (anchorSide === 'left' || anchorOffset === 'left') {\n offsetX -= targetBox.width / 2;\n } else if (anchorSide === 'right' || anchorOffset === 'right') {\n offsetX += targetBox.width / 2;\n }\n let offsetY = targetBox.top + targetBox.height / 2;\n if (anchorSide === 'top' || anchorOffset === 'top') {\n offsetY -= targetBox.height / 2;\n } else if (anchorSide === 'bottom' || anchorOffset === 'bottom') {\n offsetY += targetBox.height / 2;\n }\n const tsx = targetBox.width / elBox.width;\n const tsy = targetBox.height / elBox.height;\n const maxs = Math.max(1, tsx, tsy);\n const sx = tsx / maxs || 0;\n const sy = tsy / maxs || 0;\n\n // Animate elements larger than 12% of the screen area up to 1.5x slower\n const asa = elBox.width * elBox.height / (window.innerWidth * window.innerHeight);\n const speed = asa > 0.12 ? Math.min(1.5, (asa - 0.12) * 10 + 1) : 1;\n return {\n x: offsetX - (originX + elBox.left),\n y: offsetY - (originY + elBox.top),\n sx,\n sy,\n speed\n };\n}\n//# sourceMappingURL=dialog-transition.mjs.map","import { createCssTransition, createJavascriptTransition } from \"./createTransition.mjs\";\nimport ExpandTransitionGenerator from \"./expand-transition.mjs\"; // Component specific transitions\nexport const VFabTransition = createCssTransition('fab-transition', 'center center', 'out-in');\n\n// Generic transitions\nexport const VDialogBottomTransition = createCssTransition('dialog-bottom-transition');\nexport const VDialogTopTransition = createCssTransition('dialog-top-transition');\nexport const VFadeTransition = createCssTransition('fade-transition');\nexport const VScaleTransition = createCssTransition('scale-transition');\nexport const VScrollXTransition = createCssTransition('scroll-x-transition');\nexport const VScrollXReverseTransition = createCssTransition('scroll-x-reverse-transition');\nexport const VScrollYTransition = createCssTransition('scroll-y-transition');\nexport const VScrollYReverseTransition = createCssTransition('scroll-y-reverse-transition');\nexport const VSlideXTransition = createCssTransition('slide-x-transition');\nexport const VSlideXReverseTransition = createCssTransition('slide-x-reverse-transition');\nexport const VSlideYTransition = createCssTransition('slide-y-transition');\nexport const VSlideYReverseTransition = createCssTransition('slide-y-reverse-transition');\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator());\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true));\nexport { VDialogTransition } from \"./dialog-transition.mjs\";\n//# sourceMappingURL=index.mjs.map","// Composables\nimport { provideDefaults } from \"../../composables/defaults.mjs\"; // Utilities\nimport { toRefs } from 'vue';\nimport { genericComponent, propsFactory } from \"../../util/index.mjs\"; // Types\nexport const makeVDefaultsProviderProps = propsFactory({\n defaults: Object,\n disabled: Boolean,\n reset: [Number, String],\n root: [Boolean, String],\n scoped: Boolean\n}, 'VDefaultsProvider');\nexport const VDefaultsProvider = genericComponent(false)({\n name: 'VDefaultsProvider',\n props: makeVDefaultsProviderProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n defaults,\n disabled,\n reset,\n root,\n scoped\n } = toRefs(props);\n provideDefaults(defaults, {\n reset,\n root,\n scoped,\n disabled\n });\n return () => slots.default?.();\n }\n});\n//# sourceMappingURL=VDefaultsProvider.mjs.map","// Utilities\nimport { computed } from 'vue';\nimport { convertToUnit, propsFactory } from \"../util/index.mjs\"; // Types\n// Composables\nexport const makeDimensionProps = propsFactory({\n height: [Number, String],\n maxHeight: [Number, String],\n maxWidth: [Number, String],\n minHeight: [Number, String],\n minWidth: [Number, String],\n width: [Number, String]\n}, 'dimension');\nexport function useDimension(props) {\n const dimensionStyles = computed(() => {\n const styles = {};\n const height = convertToUnit(props.height);\n const maxHeight = convertToUnit(props.maxHeight);\n const maxWidth = convertToUnit(props.maxWidth);\n const minHeight = convertToUnit(props.minHeight);\n const minWidth = convertToUnit(props.minWidth);\n const width = convertToUnit(props.width);\n if (height != null) styles.height = height;\n if (maxHeight != null) styles.maxHeight = maxHeight;\n if (maxWidth != null) styles.maxWidth = maxWidth;\n if (minHeight != null) styles.minHeight = minHeight;\n if (minWidth != null) styles.minWidth = minWidth;\n if (width != null) styles.width = width;\n return styles;\n });\n return {\n dimensionStyles\n };\n}\n//# sourceMappingURL=dimensions.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VResponsive.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport function useAspectStyles(props) {\n return {\n aspectStyles: computed(() => {\n const ratio = Number(props.aspectRatio);\n return ratio ? {\n paddingBottom: String(1 / ratio * 100) + '%'\n } : undefined;\n })\n };\n}\nexport const makeVResponsiveProps = propsFactory({\n aspectRatio: [String, Number],\n contentClass: null,\n inline: Boolean,\n ...makeComponentProps(),\n ...makeDimensionProps()\n}, 'VResponsive');\nexport const VResponsive = genericComponent()({\n name: 'VResponsive',\n props: makeVResponsiveProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n aspectStyles\n } = useAspectStyles(props);\n const {\n dimensionStyles\n } = useDimension(props);\n useRender(() => _createVNode(\"div\", {\n \"class\": ['v-responsive', {\n 'v-responsive--inline': props.inline\n }, props.class],\n \"style\": [dimensionStyles.value, props.style]\n }, [_createVNode(\"div\", {\n \"class\": \"v-responsive__sizer\",\n \"style\": aspectStyles.value\n }, null), slots.additional?.(), slots.default && _createVNode(\"div\", {\n \"class\": ['v-responsive__content', props.contentClass]\n }, [slots.default()])]));\n return {};\n }\n});\n//# sourceMappingURL=VResponsive.mjs.map","// Utilities\nimport { computed, isRef } from 'vue';\nimport { destructComputed, getForeground, isCssColor, isParsableColor, parseColor } from \"../util/index.mjs\"; // Types\n// Composables\nexport function useColor(colors) {\n return destructComputed(() => {\n const classes = [];\n const styles = {};\n if (colors.value.background) {\n if (isCssColor(colors.value.background)) {\n styles.backgroundColor = colors.value.background;\n if (!colors.value.text && isParsableColor(colors.value.background)) {\n const backgroundColor = parseColor(colors.value.background);\n if (backgroundColor.a == null || backgroundColor.a === 1) {\n const textColor = getForeground(backgroundColor);\n styles.color = textColor;\n styles.caretColor = textColor;\n }\n }\n } else {\n classes.push(`bg-${colors.value.background}`);\n }\n }\n if (colors.value.text) {\n if (isCssColor(colors.value.text)) {\n styles.color = colors.value.text;\n styles.caretColor = colors.value.text;\n } else {\n classes.push(`text-${colors.value.text}`);\n }\n }\n return {\n colorClasses: classes,\n colorStyles: styles\n };\n });\n}\nexport function useTextColor(props, name) {\n const colors = computed(() => ({\n text: isRef(props) ? props.value : name ? props[name] : null\n }));\n const {\n colorClasses: textColorClasses,\n colorStyles: textColorStyles\n } = useColor(colors);\n return {\n textColorClasses,\n textColorStyles\n };\n}\nexport function useBackgroundColor(props, name) {\n const colors = computed(() => ({\n background: isRef(props) ? props.value : name ? props[name] : null\n }));\n const {\n colorClasses: backgroundColorClasses,\n colorStyles: backgroundColorStyles\n } = useColor(colors);\n return {\n backgroundColorClasses,\n backgroundColorStyles\n };\n}\n//# sourceMappingURL=color.mjs.map","// Utilities\nimport { computed, isRef } from 'vue';\nimport { getCurrentInstanceName, propsFactory } from \"../util/index.mjs\"; // Types\n// Composables\nexport const makeRoundedProps = propsFactory({\n rounded: {\n type: [Boolean, Number, String],\n default: undefined\n },\n tile: Boolean\n}, 'rounded');\nexport function useRounded(props) {\n let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();\n const roundedClasses = computed(() => {\n const rounded = isRef(props) ? props.value : props.rounded;\n const tile = isRef(props) ? props.value : props.tile;\n const classes = [];\n if (rounded === true || rounded === '') {\n classes.push(`${name}--rounded`);\n } else if (typeof rounded === 'string' || rounded === 0) {\n for (const value of String(rounded).split(' ')) {\n classes.push(`rounded-${value}`);\n }\n } else if (tile || rounded === false) {\n classes.push('rounded-0');\n }\n return classes;\n });\n return {\n roundedClasses\n };\n}\n//# sourceMappingURL=rounded.mjs.map","// Utilities\nimport { h, mergeProps, Transition, TransitionGroup } from 'vue';\nimport { propsFactory } from \"../util/index.mjs\"; // Types\nexport const makeTransitionProps = propsFactory({\n transition: {\n type: [Boolean, String, Object],\n default: 'fade-transition',\n validator: val => val !== true\n }\n}, 'transition');\nexport const MaybeTransition = (props, _ref) => {\n let {\n slots\n } = _ref;\n const {\n transition,\n disabled,\n group,\n ...rest\n } = props;\n const {\n component = group ? TransitionGroup : Transition,\n ...customProps\n } = typeof transition === 'object' ? transition : {};\n return h(component, mergeProps(typeof transition === 'string' ? {\n name: disabled ? '' : transition\n } : customProps, typeof transition === 'string' ? {} : Object.fromEntries(Object.entries({\n disabled,\n group\n }).filter(_ref2 => {\n let [_, v] = _ref2;\n return v !== undefined;\n })), rest), slots);\n};\n//# sourceMappingURL=transition.mjs.map","// Utilities\nimport { SUPPORTS_INTERSECTION } from \"../../util/index.mjs\"; // Types\nfunction mounted(el, binding) {\n if (!SUPPORTS_INTERSECTION) return;\n const modifiers = binding.modifiers || {};\n const value = binding.value;\n const {\n handler,\n options\n } = typeof value === 'object' ? value : {\n handler: value,\n options: {}\n };\n const observer = new IntersectionObserver(function () {\n let entries = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n let observer = arguments.length > 1 ? arguments[1] : undefined;\n const _observe = el._observe?.[binding.instance.$.uid];\n if (!_observe) return; // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting);\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (handler && (!modifiers.quiet || _observe.init) && (!modifiers.once || isIntersecting || _observe.init)) {\n handler(isIntersecting, entries, observer);\n }\n if (isIntersecting && modifiers.once) unmounted(el, binding);else _observe.init = true;\n }, options);\n el._observe = Object(el._observe);\n el._observe[binding.instance.$.uid] = {\n init: false,\n observer\n };\n observer.observe(el);\n}\nfunction unmounted(el, binding) {\n const observe = el._observe?.[binding.instance.$.uid];\n if (!observe) return;\n observe.observer.unobserve(el);\n delete el._observe[binding.instance.$.uid];\n}\nexport const Intersect = {\n mounted,\n unmounted\n};\nexport default Intersect;\n//# sourceMappingURL=index.mjs.map","import { createVNode as _createVNode, Fragment as _Fragment, resolveDirective as _resolveDirective, mergeProps as _mergeProps, withDirectives as _withDirectives } from \"vue\";\n// Styles\nimport \"./VImg.css\";\n\n// Components\nimport { makeVResponsiveProps, VResponsive } from \"../VResponsive/VResponsive.mjs\"; // Composables\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeTransitionProps, MaybeTransition } from \"../../composables/transition.mjs\"; // Directives\nimport intersect from \"../../directives/intersect/index.mjs\"; // Utilities\nimport { computed, nextTick, onBeforeMount, onBeforeUnmount, ref, shallowRef, toRef, vShow, watch, withDirectives } from 'vue';\nimport { convertToUnit, genericComponent, getCurrentInstance, propsFactory, SUPPORTS_INTERSECTION, useRender } from \"../../util/index.mjs\"; // Types\n// not intended for public use, this is passed in by vuetify-loader\nexport const makeVImgProps = propsFactory({\n absolute: Boolean,\n alt: String,\n cover: Boolean,\n color: String,\n draggable: {\n type: [Boolean, String],\n default: undefined\n },\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined\n })\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: ''\n },\n crossorigin: String,\n referrerpolicy: String,\n srcset: String,\n position: String,\n ...makeVResponsiveProps(),\n ...makeComponentProps(),\n ...makeRoundedProps(),\n ...makeTransitionProps()\n}, 'VImg');\nexport const VImg = genericComponent()({\n name: 'VImg',\n directives: {\n intersect\n },\n props: makeVImgProps(),\n emits: {\n loadstart: value => true,\n load: value => true,\n error: value => true\n },\n setup(props, _ref) {\n let {\n emit,\n slots\n } = _ref;\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(toRef(props, 'color'));\n const {\n roundedClasses\n } = useRounded(props);\n const vm = getCurrentInstance('VImg');\n const currentSrc = shallowRef(''); // Set from srcset\n const image = ref();\n const state = shallowRef(props.eager ? 'loading' : 'idle');\n const naturalWidth = shallowRef();\n const naturalHeight = shallowRef();\n const normalisedSrc = computed(() => {\n return props.src && typeof props.src === 'object' ? {\n src: props.src.src,\n srcset: props.srcset || props.src.srcset,\n lazySrc: props.lazySrc || props.src.lazySrc,\n aspect: Number(props.aspectRatio || props.src.aspect || 0)\n } : {\n src: props.src,\n srcset: props.srcset,\n lazySrc: props.lazySrc,\n aspect: Number(props.aspectRatio || 0)\n };\n });\n const aspectRatio = computed(() => {\n return normalisedSrc.value.aspect || naturalWidth.value / naturalHeight.value || 0;\n });\n watch(() => props.src, () => {\n init(state.value !== 'idle');\n });\n watch(aspectRatio, (val, oldVal) => {\n if (!val && oldVal && image.value) {\n pollForSize(image.value);\n }\n });\n\n // TODO: getSrc when window width changes\n\n onBeforeMount(() => init());\n function init(isIntersecting) {\n if (props.eager && isIntersecting) return;\n if (SUPPORTS_INTERSECTION && !isIntersecting && !props.eager) return;\n state.value = 'loading';\n if (normalisedSrc.value.lazySrc) {\n const lazyImg = new Image();\n lazyImg.src = normalisedSrc.value.lazySrc;\n pollForSize(lazyImg, null);\n }\n if (!normalisedSrc.value.src) return;\n nextTick(() => {\n emit('loadstart', image.value?.currentSrc || normalisedSrc.value.src);\n setTimeout(() => {\n if (vm.isUnmounted) return;\n if (image.value?.complete) {\n if (!image.value.naturalWidth) {\n onError();\n }\n if (state.value === 'error') return;\n if (!aspectRatio.value) pollForSize(image.value, null);\n if (state.value === 'loading') onLoad();\n } else {\n if (!aspectRatio.value) pollForSize(image.value);\n getSrc();\n }\n });\n });\n }\n function onLoad() {\n if (vm.isUnmounted) return;\n getSrc();\n pollForSize(image.value);\n state.value = 'loaded';\n emit('load', image.value?.currentSrc || normalisedSrc.value.src);\n }\n function onError() {\n if (vm.isUnmounted) return;\n state.value = 'error';\n emit('error', image.value?.currentSrc || normalisedSrc.value.src);\n }\n function getSrc() {\n const img = image.value;\n if (img) currentSrc.value = img.currentSrc || img.src;\n }\n let timer = -1;\n onBeforeUnmount(() => {\n clearTimeout(timer);\n });\n function pollForSize(img) {\n let timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100;\n const poll = () => {\n clearTimeout(timer);\n if (vm.isUnmounted) return;\n const {\n naturalHeight: imgHeight,\n naturalWidth: imgWidth\n } = img;\n if (imgHeight || imgWidth) {\n naturalWidth.value = imgWidth;\n naturalHeight.value = imgHeight;\n } else if (!img.complete && state.value === 'loading' && timeout != null) {\n timer = window.setTimeout(poll, timeout);\n } else if (img.currentSrc.endsWith('.svg') || img.currentSrc.startsWith('data:image/svg+xml')) {\n naturalWidth.value = 1;\n naturalHeight.value = 1;\n }\n };\n poll();\n }\n const containClasses = computed(() => ({\n 'v-img__img--cover': props.cover,\n 'v-img__img--contain': !props.cover\n }));\n const __image = () => {\n if (!normalisedSrc.value.src || state.value === 'idle') return null;\n const img = _createVNode(\"img\", {\n \"class\": ['v-img__img', containClasses.value],\n \"style\": {\n objectPosition: props.position\n },\n \"crossorigin\": props.crossorigin,\n \"src\": normalisedSrc.value.src,\n \"srcset\": normalisedSrc.value.srcset,\n \"alt\": props.alt,\n \"referrerpolicy\": props.referrerpolicy,\n \"draggable\": props.draggable,\n \"sizes\": props.sizes,\n \"ref\": image,\n \"onLoad\": onLoad,\n \"onError\": onError\n }, null);\n const sources = slots.sources?.();\n return _createVNode(MaybeTransition, {\n \"transition\": props.transition,\n \"appear\": true\n }, {\n default: () => [withDirectives(sources ? _createVNode(\"picture\", {\n \"class\": \"v-img__picture\"\n }, [sources, img]) : img, [[vShow, state.value === 'loaded']])]\n });\n };\n const __preloadImage = () => _createVNode(MaybeTransition, {\n \"transition\": props.transition\n }, {\n default: () => [normalisedSrc.value.lazySrc && state.value !== 'loaded' && _createVNode(\"img\", {\n \"class\": ['v-img__img', 'v-img__img--preload', containClasses.value],\n \"style\": {\n objectPosition: props.position\n },\n \"crossorigin\": props.crossorigin,\n \"src\": normalisedSrc.value.lazySrc,\n \"alt\": props.alt,\n \"referrerpolicy\": props.referrerpolicy,\n \"draggable\": props.draggable\n }, null)]\n });\n const __placeholder = () => {\n if (!slots.placeholder) return null;\n return _createVNode(MaybeTransition, {\n \"transition\": props.transition,\n \"appear\": true\n }, {\n default: () => [(state.value === 'loading' || state.value === 'error' && !slots.error) && _createVNode(\"div\", {\n \"class\": \"v-img__placeholder\"\n }, [slots.placeholder()])]\n });\n };\n const __error = () => {\n if (!slots.error) return null;\n return _createVNode(MaybeTransition, {\n \"transition\": props.transition,\n \"appear\": true\n }, {\n default: () => [state.value === 'error' && _createVNode(\"div\", {\n \"class\": \"v-img__error\"\n }, [slots.error()])]\n });\n };\n const __gradient = () => {\n if (!props.gradient) return null;\n return _createVNode(\"div\", {\n \"class\": \"v-img__gradient\",\n \"style\": {\n backgroundImage: `linear-gradient(${props.gradient})`\n }\n }, null);\n };\n const isBooted = shallowRef(false);\n {\n const stop = watch(aspectRatio, val => {\n if (val) {\n // Doesn't work with nextTick, idk why\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n isBooted.value = true;\n });\n });\n stop();\n }\n });\n }\n useRender(() => {\n const responsiveProps = VResponsive.filterProps(props);\n return _withDirectives(_createVNode(VResponsive, _mergeProps({\n \"class\": ['v-img', {\n 'v-img--absolute': props.absolute,\n 'v-img--booting': !isBooted.value\n }, backgroundColorClasses.value, roundedClasses.value, props.class],\n \"style\": [{\n width: convertToUnit(props.width === 'auto' ? naturalWidth.value : props.width)\n }, backgroundColorStyles.value, props.style]\n }, responsiveProps, {\n \"aspectRatio\": aspectRatio.value,\n \"aria-label\": props.alt,\n \"role\": props.alt ? 'img' : undefined\n }), {\n additional: () => _createVNode(_Fragment, null, [_createVNode(__image, null, null), _createVNode(__preloadImage, null, null), _createVNode(__gradient, null, null), _createVNode(__placeholder, null, null), _createVNode(__error, null, null)]),\n default: slots.default\n }), [[_resolveDirective(\"intersect\"), {\n handler: init,\n options: props.options\n }, null, {\n once: true\n }]]);\n });\n return {\n currentSrc,\n image,\n state,\n naturalWidth,\n naturalHeight\n };\n }\n});\n//# sourceMappingURL=VImg.mjs.map","// Utilities\nimport { computed, isRef } from 'vue';\nimport { getCurrentInstanceName, propsFactory } from \"../util/index.mjs\"; // Types\n// Composables\nexport const makeBorderProps = propsFactory({\n border: [Boolean, Number, String]\n}, 'border');\nexport function useBorder(props) {\n let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();\n const borderClasses = computed(() => {\n const border = isRef(props) ? props.value : props.border;\n const classes = [];\n if (border === true || border === '') {\n classes.push(`${name}--border`);\n } else if (typeof border === 'string' || border === 0) {\n for (const value of String(border).split(' ')) {\n classes.push(`border-${value}`);\n }\n }\n return classes;\n });\n return {\n borderClasses\n };\n}\n//# sourceMappingURL=border.mjs.map","// Utilities\nimport { computed, isRef } from 'vue';\nimport { propsFactory } from \"../util/index.mjs\"; // Types\n// Composables\nexport const makeElevationProps = propsFactory({\n elevation: {\n type: [Number, String],\n validator(v) {\n const value = parseInt(v);\n return !isNaN(value) && value >= 0 &&\n // Material Design has a maximum elevation of 24\n // https://material.io/design/environment/elevation.html#default-elevations\n value <= 24;\n }\n }\n}, 'elevation');\nexport function useElevation(props) {\n const elevationClasses = computed(() => {\n const elevation = isRef(props) ? props.value : props.elevation;\n const classes = [];\n if (elevation == null) return classes;\n classes.push(`elevation-${elevation}`);\n return classes;\n });\n return {\n elevationClasses\n };\n}\n//# sourceMappingURL=elevation.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VToolbar.css\";\n\n// Components\nimport { VToolbarTitle } from \"./VToolbarTitle.mjs\";\nimport { VExpandTransition } from \"../transitions/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VImg } from \"../VImg/index.mjs\"; // Composables\nimport { makeBorderProps, useBorder } from \"../../composables/border.mjs\";\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { useRtl } from \"../../composables/locale.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { computed, shallowRef, toRef } from 'vue';\nimport { convertToUnit, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nconst allowedDensities = [null, 'prominent', 'default', 'comfortable', 'compact'];\nexport const makeVToolbarProps = propsFactory({\n absolute: Boolean,\n collapse: Boolean,\n color: String,\n density: {\n type: String,\n default: 'default',\n validator: v => allowedDensities.includes(v)\n },\n extended: Boolean,\n extensionHeight: {\n type: [Number, String],\n default: 48\n },\n flat: Boolean,\n floating: Boolean,\n height: {\n type: [Number, String],\n default: 64\n },\n image: String,\n title: String,\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeTagProps({\n tag: 'header'\n }),\n ...makeThemeProps()\n}, 'VToolbar');\nexport const VToolbar = genericComponent()({\n name: 'VToolbar',\n props: makeVToolbarProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(toRef(props, 'color'));\n const {\n borderClasses\n } = useBorder(props);\n const {\n elevationClasses\n } = useElevation(props);\n const {\n roundedClasses\n } = useRounded(props);\n const {\n themeClasses\n } = provideTheme(props);\n const {\n rtlClasses\n } = useRtl();\n const isExtended = shallowRef(!!(props.extended || slots.extension?.()));\n const contentHeight = computed(() => parseInt(Number(props.height) + (props.density === 'prominent' ? Number(props.height) : 0) - (props.density === 'comfortable' ? 8 : 0) - (props.density === 'compact' ? 16 : 0), 10));\n const extensionHeight = computed(() => isExtended.value ? parseInt(Number(props.extensionHeight) + (props.density === 'prominent' ? Number(props.extensionHeight) : 0) - (props.density === 'comfortable' ? 4 : 0) - (props.density === 'compact' ? 8 : 0), 10) : 0);\n provideDefaults({\n VBtn: {\n variant: 'text'\n }\n });\n useRender(() => {\n const hasTitle = !!(props.title || slots.title);\n const hasImage = !!(slots.image || props.image);\n const extension = slots.extension?.();\n isExtended.value = !!(props.extended || extension);\n return _createVNode(props.tag, {\n \"class\": ['v-toolbar', {\n 'v-toolbar--absolute': props.absolute,\n 'v-toolbar--collapse': props.collapse,\n 'v-toolbar--flat': props.flat,\n 'v-toolbar--floating': props.floating,\n [`v-toolbar--density-${props.density}`]: true\n }, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, themeClasses.value, rtlClasses.value, props.class],\n \"style\": [backgroundColorStyles.value, props.style]\n }, {\n default: () => [hasImage && _createVNode(\"div\", {\n \"key\": \"image\",\n \"class\": \"v-toolbar__image\"\n }, [!slots.image ? _createVNode(VImg, {\n \"key\": \"image-img\",\n \"cover\": true,\n \"src\": props.image\n }, null) : _createVNode(VDefaultsProvider, {\n \"key\": \"image-defaults\",\n \"disabled\": !props.image,\n \"defaults\": {\n VImg: {\n cover: true,\n src: props.image\n }\n }\n }, slots.image)]), _createVNode(VDefaultsProvider, {\n \"defaults\": {\n VTabs: {\n height: convertToUnit(contentHeight.value)\n }\n }\n }, {\n default: () => [_createVNode(\"div\", {\n \"class\": \"v-toolbar__content\",\n \"style\": {\n height: convertToUnit(contentHeight.value)\n }\n }, [slots.prepend && _createVNode(\"div\", {\n \"class\": \"v-toolbar__prepend\"\n }, [slots.prepend?.()]), hasTitle && _createVNode(VToolbarTitle, {\n \"key\": \"title\",\n \"text\": props.title\n }, {\n text: slots.title\n }), slots.default?.(), slots.append && _createVNode(\"div\", {\n \"class\": \"v-toolbar__append\"\n }, [slots.append?.()])])]\n }), _createVNode(VDefaultsProvider, {\n \"defaults\": {\n VTabs: {\n height: convertToUnit(extensionHeight.value)\n }\n }\n }, {\n default: () => [_createVNode(VExpandTransition, null, {\n default: () => [isExtended.value && _createVNode(\"div\", {\n \"class\": \"v-toolbar__extension\",\n \"style\": {\n height: convertToUnit(extensionHeight.value)\n }\n }, [extension])]\n })]\n })]\n });\n });\n return {\n contentHeight,\n extensionHeight\n };\n }\n});\n//# sourceMappingURL=VToolbar.mjs.map","// Utilities\nimport { computed, onBeforeUnmount, onMounted, ref, shallowRef, watch } from 'vue';\nimport { clamp, consoleWarn, propsFactory } from \"../util/index.mjs\"; // Types\n// Composables\nexport const makeScrollProps = propsFactory({\n scrollTarget: {\n type: String\n },\n scrollThreshold: {\n type: [String, Number],\n default: 300\n }\n}, 'scroll');\nexport function useScroll(props) {\n let args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n canScroll\n } = args;\n let previousScroll = 0;\n let previousScrollHeight = 0;\n const target = ref(null);\n const currentScroll = shallowRef(0);\n const savedScroll = shallowRef(0);\n const currentThreshold = shallowRef(0);\n const isScrollActive = shallowRef(false);\n const isScrollingUp = shallowRef(false);\n const scrollThreshold = computed(() => {\n return Number(props.scrollThreshold);\n });\n\n /**\n * 1: at top\n * 0: at threshold\n */\n const scrollRatio = computed(() => {\n return clamp((scrollThreshold.value - currentScroll.value) / scrollThreshold.value || 0);\n });\n const onScroll = () => {\n const targetEl = target.value;\n if (!targetEl || canScroll && !canScroll.value) return;\n previousScroll = currentScroll.value;\n currentScroll.value = 'window' in targetEl ? targetEl.pageYOffset : targetEl.scrollTop;\n const currentScrollHeight = targetEl instanceof Window ? document.documentElement.scrollHeight : targetEl.scrollHeight;\n if (previousScrollHeight !== currentScrollHeight) {\n previousScrollHeight = currentScrollHeight;\n return;\n }\n isScrollingUp.value = currentScroll.value < previousScroll;\n currentThreshold.value = Math.abs(currentScroll.value - scrollThreshold.value);\n };\n watch(isScrollingUp, () => {\n savedScroll.value = savedScroll.value || currentScroll.value;\n });\n watch(isScrollActive, () => {\n savedScroll.value = 0;\n });\n onMounted(() => {\n watch(() => props.scrollTarget, scrollTarget => {\n const newTarget = scrollTarget ? document.querySelector(scrollTarget) : window;\n if (!newTarget) {\n consoleWarn(`Unable to locate element with identifier ${scrollTarget}`);\n return;\n }\n if (newTarget === target.value) return;\n target.value?.removeEventListener('scroll', onScroll);\n target.value = newTarget;\n target.value.addEventListener('scroll', onScroll, {\n passive: true\n });\n }, {\n immediate: true\n });\n });\n onBeforeUnmount(() => {\n target.value?.removeEventListener('scroll', onScroll);\n });\n\n // Do we need this? If yes - seems that\n // there's no need to expose onScroll\n canScroll && watch(canScroll, onScroll, {\n immediate: true\n });\n return {\n scrollThreshold,\n currentScroll,\n currentThreshold,\n isScrollActive,\n scrollRatio,\n // required only for testing\n // probably can be removed\n // later (2 chars chlng)\n isScrollingUp,\n savedScroll\n };\n}\n//# sourceMappingURL=scroll.mjs.map","// Utilities\nimport { computed, onMounted, readonly, shallowRef } from 'vue';\n\n// Composables\nexport function useSsrBoot() {\n const isBooted = shallowRef(false);\n onMounted(() => {\n window.requestAnimationFrame(() => {\n isBooted.value = true;\n });\n });\n const ssrBootStyles = computed(() => !isBooted.value ? {\n transition: 'none !important'\n } : undefined);\n return {\n ssrBootStyles,\n isBooted: readonly(isBooted)\n };\n}\n//# sourceMappingURL=ssrBoot.mjs.map","import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VAppBar.css\";\n\n// Components\nimport { makeVToolbarProps, VToolbar } from \"../VToolbar/VToolbar.mjs\"; // Composables\nimport { makeLayoutItemProps, useLayoutItem } from \"../../composables/layout.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { makeScrollProps, useScroll } from \"../../composables/scroll.mjs\";\nimport { useSsrBoot } from \"../../composables/ssrBoot.mjs\";\nimport { useToggleScope } from \"../../composables/toggleScope.mjs\"; // Utilities\nimport { computed, ref, shallowRef, toRef, watchEffect } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVAppBarProps = propsFactory({\n scrollBehavior: String,\n modelValue: {\n type: Boolean,\n default: true\n },\n location: {\n type: String,\n default: 'top',\n validator: value => ['top', 'bottom'].includes(value)\n },\n ...makeVToolbarProps(),\n ...makeLayoutItemProps(),\n ...makeScrollProps(),\n height: {\n type: [Number, String],\n default: 64\n }\n}, 'VAppBar');\nexport const VAppBar = genericComponent()({\n name: 'VAppBar',\n props: makeVAppBarProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const vToolbarRef = ref();\n const isActive = useProxiedModel(props, 'modelValue');\n const scrollBehavior = computed(() => {\n const behavior = new Set(props.scrollBehavior?.split(' ') ?? []);\n return {\n hide: behavior.has('hide'),\n fullyHide: behavior.has('fully-hide'),\n inverted: behavior.has('inverted'),\n collapse: behavior.has('collapse'),\n elevate: behavior.has('elevate'),\n fadeImage: behavior.has('fade-image')\n // shrink: behavior.has('shrink'),\n };\n });\n const canScroll = computed(() => {\n const behavior = scrollBehavior.value;\n return behavior.hide || behavior.fullyHide || behavior.inverted || behavior.collapse || behavior.elevate || behavior.fadeImage ||\n // behavior.shrink ||\n !isActive.value;\n });\n const {\n currentScroll,\n scrollThreshold,\n isScrollingUp,\n scrollRatio\n } = useScroll(props, {\n canScroll\n });\n const canHide = computed(() => scrollBehavior.value.hide || scrollBehavior.value.fullyHide);\n const isCollapsed = computed(() => props.collapse || scrollBehavior.value.collapse && (scrollBehavior.value.inverted ? scrollRatio.value > 0 : scrollRatio.value === 0));\n const isFlat = computed(() => props.flat || scrollBehavior.value.fullyHide && !isActive.value || scrollBehavior.value.elevate && (scrollBehavior.value.inverted ? currentScroll.value > 0 : currentScroll.value === 0));\n const opacity = computed(() => scrollBehavior.value.fadeImage ? scrollBehavior.value.inverted ? 1 - scrollRatio.value : scrollRatio.value : undefined);\n const height = computed(() => {\n if (scrollBehavior.value.hide && scrollBehavior.value.inverted) return 0;\n const height = vToolbarRef.value?.contentHeight ?? 0;\n const extensionHeight = vToolbarRef.value?.extensionHeight ?? 0;\n if (!canHide.value) return height + extensionHeight;\n return currentScroll.value < scrollThreshold.value || scrollBehavior.value.fullyHide ? height + extensionHeight : height;\n });\n useToggleScope(computed(() => !!props.scrollBehavior), () => {\n watchEffect(() => {\n if (canHide.value) {\n if (scrollBehavior.value.inverted) {\n isActive.value = currentScroll.value > scrollThreshold.value;\n } else {\n isActive.value = isScrollingUp.value || currentScroll.value < scrollThreshold.value;\n }\n } else {\n isActive.value = true;\n }\n });\n });\n const {\n ssrBootStyles\n } = useSsrBoot();\n const {\n layoutItemStyles\n } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: toRef(props, 'location'),\n layoutSize: height,\n elementSize: shallowRef(undefined),\n active: isActive,\n absolute: toRef(props, 'absolute')\n });\n useRender(() => {\n const toolbarProps = VToolbar.filterProps(props);\n return _createVNode(VToolbar, _mergeProps({\n \"ref\": vToolbarRef,\n \"class\": ['v-app-bar', {\n 'v-app-bar--bottom': props.location === 'bottom'\n }, props.class],\n \"style\": [{\n ...layoutItemStyles.value,\n '--v-toolbar-image-opacity': opacity.value,\n height: undefined,\n ...ssrBootStyles.value\n }, props.style]\n }, toolbarProps, {\n \"collapse\": isCollapsed.value,\n \"flat\": isFlat.value\n }), slots);\n });\n return {};\n }\n});\n//# sourceMappingURL=VAppBar.mjs.map","// Utilities\nimport { computed } from 'vue';\nimport { getCurrentInstanceName, propsFactory } from \"../util/index.mjs\"; // Types\nconst allowedDensities = [null, 'default', 'comfortable', 'compact'];\n\n// typeof allowedDensities[number] evaluates to any\n// when generating api types for whatever reason.\n\n// Composables\nexport const makeDensityProps = propsFactory({\n density: {\n type: String,\n default: 'default',\n validator: v => allowedDensities.includes(v)\n }\n}, 'density');\nexport function useDensity(props) {\n let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();\n const densityClasses = computed(() => {\n return `${name}--density-${props.density}`;\n });\n return {\n densityClasses\n };\n}\n//# sourceMappingURL=density.mjs.map","import { Fragment as _Fragment, createVNode as _createVNode } from \"vue\";\n// Composables\nimport { useColor } from \"./color.mjs\"; // Utilities\nimport { computed, unref } from 'vue';\nimport { getCurrentInstanceName, propsFactory } from \"../util/index.mjs\"; // Types\nexport const allowedVariants = ['elevated', 'flat', 'tonal', 'outlined', 'text', 'plain'];\nexport function genOverlays(isClickable, name) {\n return _createVNode(_Fragment, null, [isClickable && _createVNode(\"span\", {\n \"key\": \"overlay\",\n \"class\": `${name}__overlay`\n }, null), _createVNode(\"span\", {\n \"key\": \"underlay\",\n \"class\": `${name}__underlay`\n }, null)]);\n}\nexport const makeVariantProps = propsFactory({\n color: String,\n variant: {\n type: String,\n default: 'elevated',\n validator: v => allowedVariants.includes(v)\n }\n}, 'variant');\nexport function useVariant(props) {\n let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();\n const variantClasses = computed(() => {\n const {\n variant\n } = unref(props);\n return `${name}--variant-${variant}`;\n });\n const {\n colorClasses,\n colorStyles\n } = useColor(computed(() => {\n const {\n variant,\n color\n } = unref(props);\n return {\n [['elevated', 'flat'].includes(variant) ? 'background' : 'text']: color\n };\n }));\n return {\n colorClasses,\n colorStyles,\n variantClasses\n };\n}\n//# sourceMappingURL=variant.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VBtnGroup.css\";\n\n// Composables\nimport { makeBorderProps, useBorder } from \"../../composables/border.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\";\nimport { makeVariantProps } from \"../../composables/variant.mjs\"; // Utilities\nimport { toRef } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVBtnGroupProps = propsFactory({\n baseColor: String,\n divided: Boolean,\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps()\n}, 'VBtnGroup');\nexport const VBtnGroup = genericComponent()({\n name: 'VBtnGroup',\n props: makeVBtnGroupProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n densityClasses\n } = useDensity(props);\n const {\n borderClasses\n } = useBorder(props);\n const {\n elevationClasses\n } = useElevation(props);\n const {\n roundedClasses\n } = useRounded(props);\n provideDefaults({\n VBtn: {\n height: 'auto',\n baseColor: toRef(props, 'baseColor'),\n color: toRef(props, 'color'),\n density: toRef(props, 'density'),\n flat: true,\n variant: toRef(props, 'variant')\n }\n });\n useRender(() => {\n return _createVNode(props.tag, {\n \"class\": ['v-btn-group', {\n 'v-btn-group--divided': props.divided\n }, themeClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, props.class],\n \"style\": props.style\n }, slots);\n });\n }\n});\n//# sourceMappingURL=VBtnGroup.mjs.map","// Composables\nimport { useProxiedModel } from \"./proxiedModel.mjs\"; // Utilities\nimport { computed, inject, onBeforeUnmount, onMounted, onUpdated, provide, reactive, toRef, unref, watch } from 'vue';\nimport { consoleWarn, deepEqual, findChildrenWithProvide, getCurrentInstance, getUid, propsFactory, wrapInArray } from \"../util/index.mjs\"; // Types\nexport const makeGroupProps = propsFactory({\n modelValue: {\n type: null,\n default: undefined\n },\n multiple: Boolean,\n mandatory: [Boolean, String],\n max: Number,\n selectedClass: String,\n disabled: Boolean\n}, 'group');\nexport const makeGroupItemProps = propsFactory({\n value: null,\n disabled: Boolean,\n selectedClass: String\n}, 'group-item');\n\n// Composables\n\nexport function useGroupItem(props, injectKey) {\n let required = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n const vm = getCurrentInstance('useGroupItem');\n if (!vm) {\n throw new Error('[Vuetify] useGroupItem composable must be used inside a component setup function');\n }\n const id = getUid();\n provide(Symbol.for(`${injectKey.description}:id`), id);\n const group = inject(injectKey, null);\n if (!group) {\n if (!required) return group;\n throw new Error(`[Vuetify] Could not find useGroup injection with symbol ${injectKey.description}`);\n }\n const value = toRef(props, 'value');\n const disabled = computed(() => !!(group.disabled.value || props.disabled));\n group.register({\n id,\n value,\n disabled\n }, vm);\n onBeforeUnmount(() => {\n group.unregister(id);\n });\n const isSelected = computed(() => {\n return group.isSelected(id);\n });\n const isFirst = computed(() => {\n return group.items.value[0].id === id;\n });\n const isLast = computed(() => {\n return group.items.value[group.items.value.length - 1].id === id;\n });\n const selectedClass = computed(() => isSelected.value && [group.selectedClass.value, props.selectedClass]);\n watch(isSelected, value => {\n vm.emit('group:selected', {\n value\n });\n }, {\n flush: 'sync'\n });\n return {\n id,\n isSelected,\n isFirst,\n isLast,\n toggle: () => group.select(id, !isSelected.value),\n select: value => group.select(id, value),\n selectedClass,\n value,\n disabled,\n group\n };\n}\nexport function useGroup(props, injectKey) {\n let isUnmounted = false;\n const items = reactive([]);\n const selected = useProxiedModel(props, 'modelValue', [], v => {\n if (v == null) return [];\n return getIds(items, wrapInArray(v));\n }, v => {\n const arr = getValues(items, v);\n return props.multiple ? arr : arr[0];\n });\n const groupVm = getCurrentInstance('useGroup');\n function register(item, vm) {\n // Is there a better way to fix this typing?\n const unwrapped = item;\n const key = Symbol.for(`${injectKey.description}:id`);\n const children = findChildrenWithProvide(key, groupVm?.vnode);\n const index = children.indexOf(vm);\n if (unref(unwrapped.value) == null) {\n unwrapped.value = index;\n unwrapped.useIndexAsValue = true;\n }\n if (index > -1) {\n items.splice(index, 0, unwrapped);\n } else {\n items.push(unwrapped);\n }\n }\n function unregister(id) {\n if (isUnmounted) return;\n\n // TODO: re-evaluate this line's importance in the future\n // should we only modify the model if mandatory is set.\n // selected.value = selected.value.filter(v => v !== id)\n\n forceMandatoryValue();\n const index = items.findIndex(item => item.id === id);\n items.splice(index, 1);\n }\n\n // If mandatory and nothing is selected, then select first non-disabled item\n function forceMandatoryValue() {\n const item = items.find(item => !item.disabled);\n if (item && props.mandatory === 'force' && !selected.value.length) {\n selected.value = [item.id];\n }\n }\n onMounted(() => {\n forceMandatoryValue();\n });\n onBeforeUnmount(() => {\n isUnmounted = true;\n });\n onUpdated(() => {\n // #19655 update the items that use the index as the value.\n for (let i = 0; i < items.length; i++) {\n if (items[i].useIndexAsValue) {\n items[i].value = i;\n }\n }\n });\n function select(id, value) {\n const item = items.find(item => item.id === id);\n if (value && item?.disabled) return;\n if (props.multiple) {\n const internalValue = selected.value.slice();\n const index = internalValue.findIndex(v => v === id);\n const isSelected = ~index;\n value = value ?? !isSelected;\n\n // We can't remove value if group is\n // mandatory, value already exists,\n // and it is the only value\n if (isSelected && props.mandatory && internalValue.length <= 1) return;\n\n // We can't add value if it would\n // cause max limit to be exceeded\n if (!isSelected && props.max != null && internalValue.length + 1 > props.max) return;\n if (index < 0 && value) internalValue.push(id);else if (index >= 0 && !value) internalValue.splice(index, 1);\n selected.value = internalValue;\n } else {\n const isSelected = selected.value.includes(id);\n if (props.mandatory && isSelected) return;\n selected.value = value ?? !isSelected ? [id] : [];\n }\n }\n function step(offset) {\n // getting an offset from selected value obviously won't work with multiple values\n if (props.multiple) consoleWarn('This method is not supported when using \"multiple\" prop');\n if (!selected.value.length) {\n const item = items.find(item => !item.disabled);\n item && (selected.value = [item.id]);\n } else {\n const currentId = selected.value[0];\n const currentIndex = items.findIndex(i => i.id === currentId);\n let newIndex = (currentIndex + offset) % items.length;\n let newItem = items[newIndex];\n while (newItem.disabled && newIndex !== currentIndex) {\n newIndex = (newIndex + offset) % items.length;\n newItem = items[newIndex];\n }\n if (newItem.disabled) return;\n selected.value = [items[newIndex].id];\n }\n }\n const state = {\n register,\n unregister,\n selected,\n select,\n disabled: toRef(props, 'disabled'),\n prev: () => step(items.length - 1),\n next: () => step(1),\n isSelected: id => selected.value.includes(id),\n selectedClass: computed(() => props.selectedClass),\n items: computed(() => items),\n getItemIndex: value => getItemIndex(items, value)\n };\n provide(injectKey, state);\n return state;\n}\nfunction getItemIndex(items, value) {\n const ids = getIds(items, [value]);\n if (!ids.length) return -1;\n return items.findIndex(item => item.id === ids[0]);\n}\nfunction getIds(items, modelValue) {\n const ids = [];\n modelValue.forEach(value => {\n const item = items.find(item => deepEqual(value, item.value));\n const itemByIndex = items[value];\n if (item?.value != null) {\n ids.push(item.id);\n } else if (itemByIndex != null) {\n ids.push(itemByIndex.id);\n }\n });\n return ids;\n}\nfunction getValues(items, ids) {\n const values = [];\n ids.forEach(id => {\n const itemIndex = items.findIndex(item => item.id === id);\n if (~itemIndex) {\n const item = items[itemIndex];\n values.push(item.value != null ? item.value : itemIndex);\n }\n });\n return values;\n}\n//# sourceMappingURL=group.mjs.map","import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VBtnToggle.css\";\n\n// Components\nimport { makeVBtnGroupProps, VBtnGroup } from \"../VBtnGroup/VBtnGroup.mjs\"; // Composables\nimport { makeGroupProps, useGroup } from \"../../composables/group.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const VBtnToggleSymbol = Symbol.for('vuetify:v-btn-toggle');\nexport const makeVBtnToggleProps = propsFactory({\n ...makeVBtnGroupProps(),\n ...makeGroupProps()\n}, 'VBtnToggle');\nexport const VBtnToggle = genericComponent()({\n name: 'VBtnToggle',\n props: makeVBtnToggleProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n isSelected,\n next,\n prev,\n select,\n selected\n } = useGroup(props, VBtnToggleSymbol);\n useRender(() => {\n const btnGroupProps = VBtnGroup.filterProps(props);\n return _createVNode(VBtnGroup, _mergeProps({\n \"class\": ['v-btn-toggle', props.class]\n }, btnGroupProps, {\n \"style\": props.style\n }), {\n default: () => [slots.default?.({\n isSelected,\n next,\n prev,\n select,\n selected\n })]\n });\n });\n return {\n next,\n prev,\n select\n };\n }\n});\n//# sourceMappingURL=VBtnToggle.mjs.map","// Utilities\nimport { convertToUnit, destructComputed, getCurrentInstanceName, includes, propsFactory } from \"../util/index.mjs\"; // Types\nconst predefinedSizes = ['x-small', 'small', 'default', 'large', 'x-large'];\n// Composables\nexport const makeSizeProps = propsFactory({\n size: {\n type: [String, Number],\n default: 'default'\n }\n}, 'size');\nexport function useSize(props) {\n let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();\n return destructComputed(() => {\n let sizeClasses;\n let sizeStyles;\n if (includes(predefinedSizes, props.size)) {\n sizeClasses = `${name}--size-${props.size}`;\n } else if (props.size) {\n sizeStyles = {\n width: convertToUnit(props.size),\n height: convertToUnit(props.size)\n };\n }\n return {\n sizeClasses,\n sizeStyles\n };\n });\n}\n//# sourceMappingURL=size.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VIcon.css\";\n\n// Composables\nimport { useTextColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { IconValue, useIcon } from \"../../composables/icons.mjs\";\nimport { makeSizeProps, useSize } from \"../../composables/size.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { computed, ref, Text, toRef } from 'vue';\nimport { convertToUnit, flattenFragments, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVIconProps = propsFactory({\n color: String,\n disabled: Boolean,\n start: Boolean,\n end: Boolean,\n icon: IconValue,\n ...makeComponentProps(),\n ...makeSizeProps(),\n ...makeTagProps({\n tag: 'i'\n }),\n ...makeThemeProps()\n}, 'VIcon');\nexport const VIcon = genericComponent()({\n name: 'VIcon',\n props: makeVIconProps(),\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const slotIcon = ref();\n const {\n themeClasses\n } = provideTheme(props);\n const {\n iconData\n } = useIcon(computed(() => slotIcon.value || props.icon));\n const {\n sizeClasses\n } = useSize(props);\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(toRef(props, 'color'));\n useRender(() => {\n const slotValue = slots.default?.();\n if (slotValue) {\n slotIcon.value = flattenFragments(slotValue).filter(node => node.type === Text && node.children && typeof node.children === 'string')[0]?.children;\n }\n const hasClick = !!(attrs.onClick || attrs.onClickOnce);\n return _createVNode(iconData.value.component, {\n \"tag\": props.tag,\n \"icon\": iconData.value.icon,\n \"class\": ['v-icon', 'notranslate', themeClasses.value, sizeClasses.value, textColorClasses.value, {\n 'v-icon--clickable': hasClick,\n 'v-icon--disabled': props.disabled,\n 'v-icon--start': props.start,\n 'v-icon--end': props.end\n }, props.class],\n \"style\": [!sizeClasses.value ? {\n fontSize: convertToUnit(props.size),\n height: convertToUnit(props.size),\n width: convertToUnit(props.size)\n } : undefined, textColorStyles.value, props.style],\n \"role\": hasClick ? 'button' : undefined,\n \"aria-hidden\": !hasClick,\n \"tabindex\": hasClick ? props.disabled ? -1 : 0 : undefined\n }, {\n default: () => [slotValue]\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VIcon.mjs.map","// Utilities\nimport { onBeforeUnmount, ref, shallowRef, watch } from 'vue';\nimport { SUPPORTS_INTERSECTION } from \"../util/index.mjs\";\nexport function useIntersectionObserver(callback, options) {\n const intersectionRef = ref();\n const isIntersecting = shallowRef(false);\n if (SUPPORTS_INTERSECTION) {\n const observer = new IntersectionObserver(entries => {\n callback?.(entries, observer);\n isIntersecting.value = !!entries.find(entry => entry.isIntersecting);\n }, options);\n onBeforeUnmount(() => {\n observer.disconnect();\n });\n watch(intersectionRef, (newValue, oldValue) => {\n if (oldValue) {\n observer.unobserve(oldValue);\n isIntersecting.value = false;\n }\n if (newValue) observer.observe(newValue);\n }, {\n flush: 'post'\n });\n }\n return {\n intersectionRef,\n isIntersecting\n };\n}\n//# sourceMappingURL=intersectionObserver.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VProgressCircular.css\";\n\n// Composables\nimport { useTextColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { useIntersectionObserver } from \"../../composables/intersectionObserver.mjs\";\nimport { useResizeObserver } from \"../../composables/resizeObserver.mjs\";\nimport { makeSizeProps, useSize } from \"../../composables/size.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { computed, ref, toRef, watchEffect } from 'vue';\nimport { convertToUnit, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVProgressCircularProps = propsFactory({\n bgColor: String,\n color: String,\n indeterminate: [Boolean, String],\n modelValue: {\n type: [Number, String],\n default: 0\n },\n rotate: {\n type: [Number, String],\n default: 0\n },\n width: {\n type: [Number, String],\n default: 4\n },\n ...makeComponentProps(),\n ...makeSizeProps(),\n ...makeTagProps({\n tag: 'div'\n }),\n ...makeThemeProps()\n}, 'VProgressCircular');\nexport const VProgressCircular = genericComponent()({\n name: 'VProgressCircular',\n props: makeVProgressCircularProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const MAGIC_RADIUS_CONSTANT = 20;\n const CIRCUMFERENCE = 2 * Math.PI * MAGIC_RADIUS_CONSTANT;\n const root = ref();\n const {\n themeClasses\n } = provideTheme(props);\n const {\n sizeClasses,\n sizeStyles\n } = useSize(props);\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(toRef(props, 'color'));\n const {\n textColorClasses: underlayColorClasses,\n textColorStyles: underlayColorStyles\n } = useTextColor(toRef(props, 'bgColor'));\n const {\n intersectionRef,\n isIntersecting\n } = useIntersectionObserver();\n const {\n resizeRef,\n contentRect\n } = useResizeObserver();\n const normalizedValue = computed(() => Math.max(0, Math.min(100, parseFloat(props.modelValue))));\n const width = computed(() => Number(props.width));\n const size = computed(() => {\n // Get size from element if size prop value is small, large etc\n return sizeStyles.value ? Number(props.size) : contentRect.value ? contentRect.value.width : Math.max(width.value, 32);\n });\n const diameter = computed(() => MAGIC_RADIUS_CONSTANT / (1 - width.value / size.value) * 2);\n const strokeWidth = computed(() => width.value / size.value * diameter.value);\n const strokeDashOffset = computed(() => convertToUnit((100 - normalizedValue.value) / 100 * CIRCUMFERENCE));\n watchEffect(() => {\n intersectionRef.value = root.value;\n resizeRef.value = root.value;\n });\n useRender(() => _createVNode(props.tag, {\n \"ref\": root,\n \"class\": ['v-progress-circular', {\n 'v-progress-circular--indeterminate': !!props.indeterminate,\n 'v-progress-circular--visible': isIntersecting.value,\n 'v-progress-circular--disable-shrink': props.indeterminate === 'disable-shrink'\n }, themeClasses.value, sizeClasses.value, textColorClasses.value, props.class],\n \"style\": [sizeStyles.value, textColorStyles.value, props.style],\n \"role\": \"progressbar\",\n \"aria-valuemin\": \"0\",\n \"aria-valuemax\": \"100\",\n \"aria-valuenow\": props.indeterminate ? undefined : normalizedValue.value\n }, {\n default: () => [_createVNode(\"svg\", {\n \"style\": {\n transform: `rotate(calc(-90deg + ${Number(props.rotate)}deg))`\n },\n \"xmlns\": \"http://www.w3.org/2000/svg\",\n \"viewBox\": `0 0 ${diameter.value} ${diameter.value}`\n }, [_createVNode(\"circle\", {\n \"class\": ['v-progress-circular__underlay', underlayColorClasses.value],\n \"style\": underlayColorStyles.value,\n \"fill\": \"transparent\",\n \"cx\": \"50%\",\n \"cy\": \"50%\",\n \"r\": MAGIC_RADIUS_CONSTANT,\n \"stroke-width\": strokeWidth.value,\n \"stroke-dasharray\": CIRCUMFERENCE,\n \"stroke-dashoffset\": 0\n }, null), _createVNode(\"circle\", {\n \"class\": \"v-progress-circular__overlay\",\n \"fill\": \"transparent\",\n \"cx\": \"50%\",\n \"cy\": \"50%\",\n \"r\": MAGIC_RADIUS_CONSTANT,\n \"stroke-width\": strokeWidth.value,\n \"stroke-dasharray\": CIRCUMFERENCE,\n \"stroke-dashoffset\": strokeDashOffset.value\n }, null)]), slots.default && _createVNode(\"div\", {\n \"class\": \"v-progress-circular__content\"\n }, [slots.default({\n value: normalizedValue.value\n })])]\n }));\n return {};\n }\n});\n//# sourceMappingURL=VProgressCircular.mjs.map","// Composables\nimport { useRtl } from \"./locale.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { parseAnchor, propsFactory } from \"../util/index.mjs\"; // Types\nconst oppositeMap = {\n center: 'center',\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left'\n};\nexport const makeLocationProps = propsFactory({\n location: String\n}, 'location');\nexport function useLocation(props) {\n let opposite = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n let offset = arguments.length > 2 ? arguments[2] : undefined;\n const {\n isRtl\n } = useRtl();\n const locationStyles = computed(() => {\n if (!props.location) return {};\n const {\n side,\n align\n } = parseAnchor(props.location.split(' ').length > 1 ? props.location : `${props.location} center`, isRtl.value);\n function getOffset(side) {\n return offset ? offset(side) : 0;\n }\n const styles = {};\n if (side !== 'center') {\n if (opposite) styles[oppositeMap[side]] = `calc(100% - ${getOffset(side)}px)`;else styles[side] = 0;\n }\n if (align !== 'center') {\n if (opposite) styles[oppositeMap[align]] = `calc(100% - ${getOffset(align)}px)`;else styles[align] = 0;\n } else {\n if (side === 'center') styles.top = styles.left = '50%';else {\n styles[{\n top: 'left',\n bottom: 'left',\n left: 'top',\n right: 'top'\n }[side]] = '50%';\n }\n styles.transform = {\n top: 'translateX(-50%)',\n bottom: 'translateX(-50%)',\n left: 'translateY(-50%)',\n right: 'translateY(-50%)',\n center: 'translate(-50%, -50%)'\n }[side];\n }\n return styles;\n });\n return {\n locationStyles\n };\n}\n//# sourceMappingURL=location.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VProgressLinear.css\";\n\n// Composables\nimport { useBackgroundColor, useTextColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { useIntersectionObserver } from \"../../composables/intersectionObserver.mjs\";\nimport { useRtl } from \"../../composables/locale.mjs\";\nimport { makeLocationProps, useLocation } from \"../../composables/location.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { computed, Transition } from 'vue';\nimport { clamp, convertToUnit, genericComponent, IN_BROWSER, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVProgressLinearProps = propsFactory({\n absolute: Boolean,\n active: {\n type: Boolean,\n default: true\n },\n bgColor: String,\n bgOpacity: [Number, String],\n bufferValue: {\n type: [Number, String],\n default: 0\n },\n bufferColor: String,\n bufferOpacity: [Number, String],\n clickable: Boolean,\n color: String,\n height: {\n type: [Number, String],\n default: 4\n },\n indeterminate: Boolean,\n max: {\n type: [Number, String],\n default: 100\n },\n modelValue: {\n type: [Number, String],\n default: 0\n },\n opacity: [Number, String],\n reverse: Boolean,\n stream: Boolean,\n striped: Boolean,\n roundedBar: Boolean,\n ...makeComponentProps(),\n ...makeLocationProps({\n location: 'top'\n }),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps()\n}, 'VProgressLinear');\nexport const VProgressLinear = genericComponent()({\n name: 'VProgressLinear',\n props: makeVProgressLinearProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const progress = useProxiedModel(props, 'modelValue');\n const {\n isRtl,\n rtlClasses\n } = useRtl();\n const {\n themeClasses\n } = provideTheme(props);\n const {\n locationStyles\n } = useLocation(props);\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(props, 'color');\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(computed(() => props.bgColor || props.color));\n const {\n backgroundColorClasses: bufferColorClasses,\n backgroundColorStyles: bufferColorStyles\n } = useBackgroundColor(computed(() => props.bufferColor || props.bgColor || props.color));\n const {\n backgroundColorClasses: barColorClasses,\n backgroundColorStyles: barColorStyles\n } = useBackgroundColor(props, 'color');\n const {\n roundedClasses\n } = useRounded(props);\n const {\n intersectionRef,\n isIntersecting\n } = useIntersectionObserver();\n const max = computed(() => parseFloat(props.max));\n const height = computed(() => parseFloat(props.height));\n const normalizedBuffer = computed(() => clamp(parseFloat(props.bufferValue) / max.value * 100, 0, 100));\n const normalizedValue = computed(() => clamp(parseFloat(progress.value) / max.value * 100, 0, 100));\n const isReversed = computed(() => isRtl.value !== props.reverse);\n const transition = computed(() => props.indeterminate ? 'fade-transition' : 'slide-x-transition');\n const isForcedColorsModeActive = IN_BROWSER && window.matchMedia?.('(forced-colors: active)').matches;\n function handleClick(e) {\n if (!intersectionRef.value) return;\n const {\n left,\n right,\n width\n } = intersectionRef.value.getBoundingClientRect();\n const value = isReversed.value ? width - e.clientX + (right - width) : e.clientX - left;\n progress.value = Math.round(value / width * max.value);\n }\n useRender(() => _createVNode(props.tag, {\n \"ref\": intersectionRef,\n \"class\": ['v-progress-linear', {\n 'v-progress-linear--absolute': props.absolute,\n 'v-progress-linear--active': props.active && isIntersecting.value,\n 'v-progress-linear--reverse': isReversed.value,\n 'v-progress-linear--rounded': props.rounded,\n 'v-progress-linear--rounded-bar': props.roundedBar,\n 'v-progress-linear--striped': props.striped\n }, roundedClasses.value, themeClasses.value, rtlClasses.value, props.class],\n \"style\": [{\n bottom: props.location === 'bottom' ? 0 : undefined,\n top: props.location === 'top' ? 0 : undefined,\n height: props.active ? convertToUnit(height.value) : 0,\n '--v-progress-linear-height': convertToUnit(height.value),\n ...(props.absolute ? locationStyles.value : {})\n }, props.style],\n \"role\": \"progressbar\",\n \"aria-hidden\": props.active ? 'false' : 'true',\n \"aria-valuemin\": \"0\",\n \"aria-valuemax\": props.max,\n \"aria-valuenow\": props.indeterminate ? undefined : Math.min(parseFloat(progress.value), max.value),\n \"onClick\": props.clickable && handleClick\n }, {\n default: () => [props.stream && _createVNode(\"div\", {\n \"key\": \"stream\",\n \"class\": ['v-progress-linear__stream', textColorClasses.value],\n \"style\": {\n ...textColorStyles.value,\n [isReversed.value ? 'left' : 'right']: convertToUnit(-height.value),\n borderTop: `${convertToUnit(height.value / 2)} dotted`,\n opacity: parseFloat(props.bufferOpacity),\n top: `calc(50% - ${convertToUnit(height.value / 4)})`,\n width: convertToUnit(100 - normalizedBuffer.value, '%'),\n '--v-progress-linear-stream-to': convertToUnit(height.value * (isReversed.value ? 1 : -1))\n }\n }, null), _createVNode(\"div\", {\n \"class\": ['v-progress-linear__background', !isForcedColorsModeActive ? backgroundColorClasses.value : undefined],\n \"style\": [backgroundColorStyles.value, {\n opacity: parseFloat(props.bgOpacity),\n width: props.stream ? 0 : undefined\n }]\n }, null), _createVNode(\"div\", {\n \"class\": ['v-progress-linear__buffer', !isForcedColorsModeActive ? bufferColorClasses.value : undefined],\n \"style\": [bufferColorStyles.value, {\n opacity: parseFloat(props.bufferOpacity),\n width: convertToUnit(normalizedBuffer.value, '%')\n }]\n }, null), _createVNode(Transition, {\n \"name\": transition.value\n }, {\n default: () => [!props.indeterminate ? _createVNode(\"div\", {\n \"class\": ['v-progress-linear__determinate', !isForcedColorsModeActive ? barColorClasses.value : undefined],\n \"style\": [barColorStyles.value, {\n width: convertToUnit(normalizedValue.value, '%')\n }]\n }, null) : _createVNode(\"div\", {\n \"class\": \"v-progress-linear__indeterminate\"\n }, [['long', 'short'].map(bar => _createVNode(\"div\", {\n \"key\": bar,\n \"class\": ['v-progress-linear__indeterminate', bar, !isForcedColorsModeActive ? barColorClasses.value : undefined],\n \"style\": barColorStyles.value\n }, null))])]\n }), slots.default && _createVNode(\"div\", {\n \"class\": \"v-progress-linear__content\"\n }, [slots.default({\n value: normalizedValue.value,\n buffer: normalizedBuffer.value\n })])]\n }));\n return {};\n }\n});\n//# sourceMappingURL=VProgressLinear.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Components\nimport { VProgressLinear } from \"../components/VProgressLinear/index.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { getCurrentInstanceName, propsFactory } from \"../util/index.mjs\"; // Types\n// Composables\nexport const makeLoaderProps = propsFactory({\n loading: [Boolean, String]\n}, 'loader');\nexport function useLoader(props) {\n let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();\n const loaderClasses = computed(() => ({\n [`${name}--loading`]: props.loading\n }));\n return {\n loaderClasses\n };\n}\nexport function LoaderSlot(props, _ref) {\n let {\n slots\n } = _ref;\n return _createVNode(\"div\", {\n \"class\": `${props.name}__loader`\n }, [slots.default?.({\n color: props.color,\n isActive: props.active\n }) || _createVNode(VProgressLinear, {\n \"absolute\": props.absolute,\n \"active\": props.active,\n \"color\": props.color,\n \"height\": \"2\",\n \"indeterminate\": true\n }, null)]);\n}\n//# sourceMappingURL=loader.mjs.map","// Utilities\nimport { computed } from 'vue';\nimport { getCurrentInstanceName, propsFactory } from \"../util/index.mjs\"; // Types\nconst positionValues = ['static', 'relative', 'fixed', 'absolute', 'sticky'];\n// Composables\nexport const makePositionProps = propsFactory({\n position: {\n type: String,\n validator: /* istanbul ignore next */v => positionValues.includes(v)\n }\n}, 'position');\nexport function usePosition(props) {\n let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();\n const positionClasses = computed(() => {\n return props.position ? `${name}--${props.position}` : undefined;\n });\n return {\n positionClasses\n };\n}\n//# sourceMappingURL=position.mjs.map","// Utilities\nimport { computed, nextTick, onScopeDispose, reactive, resolveDynamicComponent, toRef } from 'vue';\nimport { deepEqual, getCurrentInstance, hasEvent, IN_BROWSER, propsFactory } from \"../util/index.mjs\"; // Types\nexport function useRoute() {\n const vm = getCurrentInstance('useRoute');\n return computed(() => vm?.proxy?.$route);\n}\nexport function useRouter() {\n return getCurrentInstance('useRouter')?.proxy?.$router;\n}\nexport function useLink(props, attrs) {\n const RouterLink = resolveDynamicComponent('RouterLink');\n const isLink = computed(() => !!(props.href || props.to));\n const isClickable = computed(() => {\n return isLink?.value || hasEvent(attrs, 'click') || hasEvent(props, 'click');\n });\n if (typeof RouterLink === 'string' || !('useLink' in RouterLink)) {\n const href = toRef(props, 'href');\n return {\n isLink,\n isClickable,\n href,\n linkProps: reactive({\n href\n })\n };\n }\n // vue-router useLink `to` prop needs to be reactive and useLink will crash if undefined\n const linkProps = computed(() => ({\n ...props,\n to: toRef(() => props.to || '')\n }));\n const routerLink = RouterLink.useLink(linkProps.value);\n // Actual link needs to be undefined when to prop is not used\n const link = computed(() => props.to ? routerLink : undefined);\n const route = useRoute();\n const isActive = computed(() => {\n if (!link.value) return false;\n if (!props.exact) return link.value.isActive?.value ?? false;\n if (!route.value) return link.value.isExactActive?.value ?? false;\n return link.value.isExactActive?.value && deepEqual(link.value.route.value.query, route.value.query);\n });\n const href = computed(() => props.to ? link.value?.route.value.href : props.href);\n return {\n isLink,\n isClickable,\n isActive,\n route: link.value?.route,\n navigate: link.value?.navigate,\n href,\n linkProps: reactive({\n href,\n 'aria-current': computed(() => isActive.value ? 'page' : undefined)\n })\n };\n}\nexport const makeRouterProps = propsFactory({\n href: String,\n replace: Boolean,\n to: [String, Object],\n exact: Boolean\n}, 'router');\nlet inTransition = false;\nexport function useBackButton(router, cb) {\n let popped = false;\n let removeBefore;\n let removeAfter;\n if (IN_BROWSER && router?.beforeEach) {\n nextTick(() => {\n window.addEventListener('popstate', onPopstate);\n removeBefore = router.beforeEach((to, from, next) => {\n if (!inTransition) {\n setTimeout(() => popped ? cb(next) : next());\n } else {\n popped ? cb(next) : next();\n }\n inTransition = true;\n });\n removeAfter = router?.afterEach(() => {\n inTransition = false;\n });\n });\n onScopeDispose(() => {\n window.removeEventListener('popstate', onPopstate);\n removeBefore?.();\n removeAfter?.();\n });\n }\n function onPopstate(e) {\n if (e.state?.replaced) return;\n popped = true;\n setTimeout(() => popped = false);\n }\n}\n//# sourceMappingURL=router.mjs.map","// Utilities\nimport { nextTick, watch } from 'vue';\n\n// Types\n\nexport function useSelectLink(link, select) {\n watch(() => link.isActive?.value, isActive => {\n if (link.isLink.value && isActive && select) {\n nextTick(() => {\n select(true);\n });\n }\n }, {\n immediate: true\n });\n}\n//# sourceMappingURL=selectLink.mjs.map","// Styles\nimport \"./VRipple.css\";\n\n// Utilities\nimport { isObject, keyCodes } from \"../../util/index.mjs\"; // Types\nconst stopSymbol = Symbol('rippleStop');\nconst DELAY_RIPPLE = 80;\nfunction transform(el, value) {\n el.style.transform = value;\n el.style.webkitTransform = value;\n}\nfunction isTouchEvent(e) {\n return e.constructor.name === 'TouchEvent';\n}\nfunction isKeyboardEvent(e) {\n return e.constructor.name === 'KeyboardEvent';\n}\nconst calculate = function (e, el) {\n let value = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let localX = 0;\n let localY = 0;\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect();\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e;\n localX = target.clientX - offset.left;\n localY = target.clientY - offset.top;\n }\n let radius = 0;\n let scale = 0.3;\n if (el._ripple?.circle) {\n scale = 0.15;\n radius = el.clientWidth / 2;\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4;\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2;\n }\n const centerX = `${(el.clientWidth - radius * 2) / 2}px`;\n const centerY = `${(el.clientHeight - radius * 2) / 2}px`;\n const x = value.center ? centerX : `${localX - radius}px`;\n const y = value.center ? centerY : `${localY - radius}px`;\n return {\n radius,\n scale,\n x,\n y,\n centerX,\n centerY\n };\n};\nconst ripples = {\n /* eslint-disable max-statements */\n show(e, el) {\n let value = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n if (!el?._ripple?.enabled) {\n return;\n }\n const container = document.createElement('span');\n const animation = document.createElement('span');\n container.appendChild(animation);\n container.className = 'v-ripple__container';\n if (value.class) {\n container.className += ` ${value.class}`;\n }\n const {\n radius,\n scale,\n x,\n y,\n centerX,\n centerY\n } = calculate(e, el, value);\n const size = `${radius * 2}px`;\n animation.className = 'v-ripple__animation';\n animation.style.width = size;\n animation.style.height = size;\n el.appendChild(container);\n const computed = window.getComputedStyle(el);\n if (computed && computed.position === 'static') {\n el.style.position = 'relative';\n el.dataset.previousPosition = 'static';\n }\n animation.classList.add('v-ripple__animation--enter');\n animation.classList.add('v-ripple__animation--visible');\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`);\n animation.dataset.activated = String(performance.now());\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n animation.classList.remove('v-ripple__animation--enter');\n animation.classList.add('v-ripple__animation--in');\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`);\n });\n });\n },\n hide(el) {\n if (!el?._ripple?.enabled) return;\n const ripples = el.getElementsByClassName('v-ripple__animation');\n if (ripples.length === 0) return;\n const animation = ripples[ripples.length - 1];\n if (animation.dataset.isHiding) return;else animation.dataset.isHiding = 'true';\n const diff = performance.now() - Number(animation.dataset.activated);\n const delay = Math.max(250 - diff, 0);\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in');\n animation.classList.add('v-ripple__animation--out');\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation');\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition;\n delete el.dataset.previousPosition;\n }\n if (animation.parentNode?.parentNode === el) el.removeChild(animation.parentNode);\n }, 300);\n }, delay);\n }\n};\nfunction isRippleEnabled(value) {\n return typeof value === 'undefined' || !!value;\n}\nfunction rippleShow(e) {\n const value = {};\n const element = e.currentTarget;\n if (!element?._ripple || element._ripple.touched || e[stopSymbol]) return;\n\n // Don't allow the event to trigger ripples on any other elements\n e[stopSymbol] = true;\n if (isTouchEvent(e)) {\n element._ripple.touched = true;\n element._ripple.isTouch = true;\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return;\n }\n value.center = element._ripple.centered || isKeyboardEvent(e);\n if (element._ripple.class) {\n value.class = element._ripple.class;\n }\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return;\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value);\n };\n element._ripple.showTimer = window.setTimeout(() => {\n if (element?._ripple?.showTimerCommit) {\n element._ripple.showTimerCommit();\n element._ripple.showTimerCommit = null;\n }\n }, DELAY_RIPPLE);\n } else {\n ripples.show(e, element, value);\n }\n}\nfunction rippleStop(e) {\n e[stopSymbol] = true;\n}\nfunction rippleHide(e) {\n const element = e.currentTarget;\n if (!element?._ripple) return;\n window.clearTimeout(element._ripple.showTimer);\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit();\n element._ripple.showTimerCommit = null;\n\n // re-queue ripple hiding\n element._ripple.showTimer = window.setTimeout(() => {\n rippleHide(e);\n });\n return;\n }\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false;\n }\n });\n ripples.hide(element);\n}\nfunction rippleCancelShow(e) {\n const element = e.currentTarget;\n if (!element?._ripple) return;\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null;\n }\n window.clearTimeout(element._ripple.showTimer);\n}\nlet keyboardRipple = false;\nfunction keyboardRippleShow(e) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true;\n rippleShow(e);\n }\n}\nfunction keyboardRippleHide(e) {\n keyboardRipple = false;\n rippleHide(e);\n}\nfunction focusRippleHide(e) {\n if (keyboardRipple) {\n keyboardRipple = false;\n rippleHide(e);\n }\n}\nfunction updateRipple(el, binding, wasEnabled) {\n const {\n value,\n modifiers\n } = binding;\n const enabled = isRippleEnabled(value);\n if (!enabled) {\n ripples.hide(el);\n }\n el._ripple = el._ripple ?? {};\n el._ripple.enabled = enabled;\n el._ripple.centered = modifiers.center;\n el._ripple.circle = modifiers.circle;\n if (isObject(value) && value.class) {\n el._ripple.class = value.class;\n }\n if (enabled && !wasEnabled) {\n if (modifiers.stop) {\n el.addEventListener('touchstart', rippleStop, {\n passive: true\n });\n el.addEventListener('mousedown', rippleStop);\n return;\n }\n el.addEventListener('touchstart', rippleShow, {\n passive: true\n });\n el.addEventListener('touchend', rippleHide, {\n passive: true\n });\n el.addEventListener('touchmove', rippleCancelShow, {\n passive: true\n });\n el.addEventListener('touchcancel', rippleHide);\n el.addEventListener('mousedown', rippleShow);\n el.addEventListener('mouseup', rippleHide);\n el.addEventListener('mouseleave', rippleHide);\n el.addEventListener('keydown', keyboardRippleShow);\n el.addEventListener('keyup', keyboardRippleHide);\n el.addEventListener('blur', focusRippleHide);\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, {\n passive: true\n });\n } else if (!enabled && wasEnabled) {\n removeListeners(el);\n }\n}\nfunction removeListeners(el) {\n el.removeEventListener('mousedown', rippleShow);\n el.removeEventListener('touchstart', rippleShow);\n el.removeEventListener('touchend', rippleHide);\n el.removeEventListener('touchmove', rippleCancelShow);\n el.removeEventListener('touchcancel', rippleHide);\n el.removeEventListener('mouseup', rippleHide);\n el.removeEventListener('mouseleave', rippleHide);\n el.removeEventListener('keydown', keyboardRippleShow);\n el.removeEventListener('keyup', keyboardRippleHide);\n el.removeEventListener('dragstart', rippleHide);\n el.removeEventListener('blur', focusRippleHide);\n}\nfunction mounted(el, binding) {\n updateRipple(el, binding, false);\n}\nfunction unmounted(el) {\n delete el._ripple;\n removeListeners(el);\n}\nfunction updated(el, binding) {\n if (binding.value === binding.oldValue) {\n return;\n }\n const wasEnabled = isRippleEnabled(binding.oldValue);\n updateRipple(el, binding, wasEnabled);\n}\nexport const Ripple = {\n mounted,\n unmounted,\n updated\n};\nexport default Ripple;\n//# sourceMappingURL=index.mjs.map","import { createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\n// Styles\nimport \"./VBtn.css\";\n\n// Components\nimport { VBtnToggleSymbol } from \"../VBtnToggle/VBtnToggle.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\";\nimport { VProgressCircular } from \"../VProgressCircular/index.mjs\"; // Composables\nimport { makeBorderProps, useBorder } from \"../../composables/border.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { makeGroupItemProps, useGroupItem } from \"../../composables/group.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { makeLoaderProps, useLoader } from \"../../composables/loader.mjs\";\nimport { makeLocationProps, useLocation } from \"../../composables/location.mjs\";\nimport { makePositionProps, usePosition } from \"../../composables/position.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeRouterProps, useLink } from \"../../composables/router.mjs\";\nimport { useSelectLink } from \"../../composables/selectLink.mjs\";\nimport { makeSizeProps, useSize } from \"../../composables/size.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\";\nimport { genOverlays, makeVariantProps, useVariant } from \"../../composables/variant.mjs\"; // Directives\nimport { Ripple } from \"../../directives/ripple/index.mjs\"; // Utilities\nimport { computed, withDirectives } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVBtnProps = propsFactory({\n active: {\n type: Boolean,\n default: undefined\n },\n activeColor: String,\n baseColor: String,\n symbol: {\n type: null,\n default: VBtnToggleSymbol\n },\n flat: Boolean,\n icon: [Boolean, String, Function, Object],\n prependIcon: IconValue,\n appendIcon: IconValue,\n block: Boolean,\n readonly: Boolean,\n slim: Boolean,\n stacked: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: true\n },\n text: String,\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeGroupItemProps(),\n ...makeLoaderProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeSizeProps(),\n ...makeTagProps({\n tag: 'button'\n }),\n ...makeThemeProps(),\n ...makeVariantProps({\n variant: 'elevated'\n })\n}, 'VBtn');\nexport const VBtn = genericComponent()({\n name: 'VBtn',\n props: makeVBtnProps(),\n emits: {\n 'group:selected': val => true\n },\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n borderClasses\n } = useBorder(props);\n const {\n densityClasses\n } = useDensity(props);\n const {\n dimensionStyles\n } = useDimension(props);\n const {\n elevationClasses\n } = useElevation(props);\n const {\n loaderClasses\n } = useLoader(props);\n const {\n locationStyles\n } = useLocation(props);\n const {\n positionClasses\n } = usePosition(props);\n const {\n roundedClasses\n } = useRounded(props);\n const {\n sizeClasses,\n sizeStyles\n } = useSize(props);\n const group = useGroupItem(props, props.symbol, false);\n const link = useLink(props, attrs);\n const isActive = computed(() => {\n if (props.active !== undefined) {\n return props.active;\n }\n if (link.isLink.value) {\n return link.isActive?.value;\n }\n return group?.isSelected.value;\n });\n const color = computed(() => isActive.value ? props.activeColor ?? props.color : props.color);\n const variantProps = computed(() => {\n const showColor = group?.isSelected.value && (!link.isLink.value || link.isActive?.value) || !group || link.isActive?.value;\n return {\n color: showColor ? color.value ?? props.baseColor : props.baseColor,\n variant: props.variant\n };\n });\n const {\n colorClasses,\n colorStyles,\n variantClasses\n } = useVariant(variantProps);\n const isDisabled = computed(() => group?.disabled.value || props.disabled);\n const isElevated = computed(() => {\n return props.variant === 'elevated' && !(props.disabled || props.flat || props.border);\n });\n const valueAttr = computed(() => {\n if (props.value === undefined || typeof props.value === 'symbol') return undefined;\n return Object(props.value) === props.value ? JSON.stringify(props.value, null, 0) : props.value;\n });\n function onClick(e) {\n if (isDisabled.value || link.isLink.value && (e.metaKey || e.ctrlKey || e.shiftKey || e.button !== 0 || attrs.target === '_blank')) return;\n link.navigate?.(e);\n group?.toggle();\n }\n useSelectLink(link, group?.select);\n useRender(() => {\n const Tag = link.isLink.value ? 'a' : props.tag;\n const hasPrepend = !!(props.prependIcon || slots.prepend);\n const hasAppend = !!(props.appendIcon || slots.append);\n const hasIcon = !!(props.icon && props.icon !== true);\n return withDirectives(_createVNode(Tag, _mergeProps({\n \"type\": Tag === 'a' ? undefined : 'button',\n \"class\": ['v-btn', group?.selectedClass.value, {\n 'v-btn--active': isActive.value,\n 'v-btn--block': props.block,\n 'v-btn--disabled': isDisabled.value,\n 'v-btn--elevated': isElevated.value,\n 'v-btn--flat': props.flat,\n 'v-btn--icon': !!props.icon,\n 'v-btn--loading': props.loading,\n 'v-btn--readonly': props.readonly,\n 'v-btn--slim': props.slim,\n 'v-btn--stacked': props.stacked\n }, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, props.class],\n \"style\": [colorStyles.value, dimensionStyles.value, locationStyles.value, sizeStyles.value, props.style],\n \"aria-busy\": props.loading ? true : undefined,\n \"disabled\": isDisabled.value || undefined,\n \"tabindex\": props.loading || props.readonly ? -1 : undefined,\n \"onClick\": onClick,\n \"value\": valueAttr.value\n }, link.linkProps), {\n default: () => [genOverlays(true, 'v-btn'), !props.icon && hasPrepend && _createVNode(\"span\", {\n \"key\": \"prepend\",\n \"class\": \"v-btn__prepend\"\n }, [!slots.prepend ? _createVNode(VIcon, {\n \"key\": \"prepend-icon\",\n \"icon\": props.prependIcon\n }, null) : _createVNode(VDefaultsProvider, {\n \"key\": \"prepend-defaults\",\n \"disabled\": !props.prependIcon,\n \"defaults\": {\n VIcon: {\n icon: props.prependIcon\n }\n }\n }, slots.prepend)]), _createVNode(\"span\", {\n \"class\": \"v-btn__content\",\n \"data-no-activator\": \"\"\n }, [!slots.default && hasIcon ? _createVNode(VIcon, {\n \"key\": \"content-icon\",\n \"icon\": props.icon\n }, null) : _createVNode(VDefaultsProvider, {\n \"key\": \"content-defaults\",\n \"disabled\": !hasIcon,\n \"defaults\": {\n VIcon: {\n icon: props.icon\n }\n }\n }, {\n default: () => [slots.default?.() ?? props.text]\n })]), !props.icon && hasAppend && _createVNode(\"span\", {\n \"key\": \"append\",\n \"class\": \"v-btn__append\"\n }, [!slots.append ? _createVNode(VIcon, {\n \"key\": \"append-icon\",\n \"icon\": props.appendIcon\n }, null) : _createVNode(VDefaultsProvider, {\n \"key\": \"append-defaults\",\n \"disabled\": !props.appendIcon,\n \"defaults\": {\n VIcon: {\n icon: props.appendIcon\n }\n }\n }, slots.append)]), !!props.loading && _createVNode(\"span\", {\n \"key\": \"loader\",\n \"class\": \"v-btn__loader\"\n }, [slots.loader?.() ?? _createVNode(VProgressCircular, {\n \"color\": typeof props.loading === 'boolean' ? undefined : props.loading,\n \"indeterminate\": true,\n \"width\": \"2\"\n }, null)])]\n }), [[Ripple, !isDisabled.value && props.ripple, '', {\n center: !!props.icon\n }]]);\n });\n return {\n group\n };\n }\n});\n//# sourceMappingURL=VBtn.mjs.map","import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Components\nimport { makeVBtnProps, VBtn } from \"../VBtn/VBtn.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVAppBarNavIconProps = propsFactory({\n ...makeVBtnProps({\n icon: '$menu',\n variant: 'text'\n })\n}, 'VAppBarNavIcon');\nexport const VAppBarNavIcon = genericComponent()({\n name: 'VAppBarNavIcon',\n props: makeVAppBarNavIconProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => _createVNode(VBtn, _mergeProps(props, {\n \"class\": ['v-app-bar-nav-icon']\n }), slots));\n return {};\n }\n});\n//# sourceMappingURL=VAppBarNavIcon.mjs.map","import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Components\nimport { makeVToolbarTitleProps, VToolbarTitle } from \"../VToolbar/VToolbarTitle.mjs\"; // Utilities\nimport { genericComponent, useRender } from \"../../util/index.mjs\"; // Types\nexport const VAppBarTitle = genericComponent()({\n name: 'VAppBarTitle',\n props: makeVToolbarTitleProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => _createVNode(VToolbarTitle, _mergeProps(props, {\n \"class\": \"v-app-bar-title\"\n }), slots));\n return {};\n }\n});\n//# sourceMappingURL=VAppBarTitle.mjs.map","// Utilities\nimport { createSimpleFunctional } from \"../../util/index.mjs\";\nexport const VAlertTitle = createSimpleFunctional('v-alert-title');\n//# sourceMappingURL=VAlertTitle.mjs.map","import { createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\n// Styles\nimport \"./VAlert.css\";\n\n// Components\nimport { VAlertTitle } from \"./VAlertTitle.mjs\";\nimport { VBtn } from \"../VBtn/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\"; // Composables\nimport { useTextColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { useLocale } from \"../../composables/locale.mjs\";\nimport { makeLocationProps, useLocation } from \"../../composables/location.mjs\";\nimport { makePositionProps, usePosition } from \"../../composables/position.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\";\nimport { genOverlays, makeVariantProps, useVariant } from \"../../composables/variant.mjs\"; // Utilities\nimport { computed, toRef } from 'vue';\nimport { genericComponent, propsFactory } from \"../../util/index.mjs\"; // Types\nconst allowedTypes = ['success', 'info', 'warning', 'error'];\nexport const makeVAlertProps = propsFactory({\n border: {\n type: [Boolean, String],\n validator: val => {\n return typeof val === 'boolean' || ['top', 'end', 'bottom', 'start'].includes(val);\n }\n },\n borderColor: String,\n closable: Boolean,\n closeIcon: {\n type: IconValue,\n default: '$close'\n },\n closeLabel: {\n type: String,\n default: '$vuetify.close'\n },\n icon: {\n type: [Boolean, String, Function, Object],\n default: null\n },\n modelValue: {\n type: Boolean,\n default: true\n },\n prominent: Boolean,\n title: String,\n text: String,\n type: {\n type: String,\n validator: val => allowedTypes.includes(val)\n },\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({\n variant: 'flat'\n })\n}, 'VAlert');\nexport const VAlert = genericComponent()({\n name: 'VAlert',\n props: makeVAlertProps(),\n emits: {\n 'click:close': e => true,\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n emit,\n slots\n } = _ref;\n const isActive = useProxiedModel(props, 'modelValue');\n const icon = computed(() => {\n if (props.icon === false) return undefined;\n if (!props.type) return props.icon;\n return props.icon ?? `$${props.type}`;\n });\n const variantProps = computed(() => ({\n color: props.color ?? props.type,\n variant: props.variant\n }));\n const {\n themeClasses\n } = provideTheme(props);\n const {\n colorClasses,\n colorStyles,\n variantClasses\n } = useVariant(variantProps);\n const {\n densityClasses\n } = useDensity(props);\n const {\n dimensionStyles\n } = useDimension(props);\n const {\n elevationClasses\n } = useElevation(props);\n const {\n locationStyles\n } = useLocation(props);\n const {\n positionClasses\n } = usePosition(props);\n const {\n roundedClasses\n } = useRounded(props);\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(toRef(props, 'borderColor'));\n const {\n t\n } = useLocale();\n const closeProps = computed(() => ({\n 'aria-label': t(props.closeLabel),\n onClick(e) {\n isActive.value = false;\n emit('click:close', e);\n }\n }));\n return () => {\n const hasPrepend = !!(slots.prepend || icon.value);\n const hasTitle = !!(slots.title || props.title);\n const hasClose = !!(slots.close || props.closable);\n return isActive.value && _createVNode(props.tag, {\n \"class\": ['v-alert', props.border && {\n 'v-alert--border': !!props.border,\n [`v-alert--border-${props.border === true ? 'start' : props.border}`]: true\n }, {\n 'v-alert--prominent': props.prominent\n }, themeClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value, props.class],\n \"style\": [colorStyles.value, dimensionStyles.value, locationStyles.value, props.style],\n \"role\": \"alert\"\n }, {\n default: () => [genOverlays(false, 'v-alert'), props.border && _createVNode(\"div\", {\n \"key\": \"border\",\n \"class\": ['v-alert__border', textColorClasses.value],\n \"style\": textColorStyles.value\n }, null), hasPrepend && _createVNode(\"div\", {\n \"key\": \"prepend\",\n \"class\": \"v-alert__prepend\"\n }, [!slots.prepend ? _createVNode(VIcon, {\n \"key\": \"prepend-icon\",\n \"density\": props.density,\n \"icon\": icon.value,\n \"size\": props.prominent ? 44 : 28\n }, null) : _createVNode(VDefaultsProvider, {\n \"key\": \"prepend-defaults\",\n \"disabled\": !icon.value,\n \"defaults\": {\n VIcon: {\n density: props.density,\n icon: icon.value,\n size: props.prominent ? 44 : 28\n }\n }\n }, slots.prepend)]), _createVNode(\"div\", {\n \"class\": \"v-alert__content\"\n }, [hasTitle && _createVNode(VAlertTitle, {\n \"key\": \"title\"\n }, {\n default: () => [slots.title?.() ?? props.title]\n }), slots.text?.() ?? props.text, slots.default?.()]), slots.append && _createVNode(\"div\", {\n \"key\": \"append\",\n \"class\": \"v-alert__append\"\n }, [slots.append()]), hasClose && _createVNode(\"div\", {\n \"key\": \"close\",\n \"class\": \"v-alert__close\"\n }, [!slots.close ? _createVNode(VBtn, _mergeProps({\n \"key\": \"close-btn\",\n \"icon\": props.closeIcon,\n \"size\": \"x-small\",\n \"variant\": \"text\"\n }, closeProps.value), null) : _createVNode(VDefaultsProvider, {\n \"key\": \"close-defaults\",\n \"defaults\": {\n VBtn: {\n icon: props.closeIcon,\n size: 'x-small',\n variant: 'text'\n }\n }\n }, {\n default: () => [slots.close?.({\n props: closeProps.value\n })]\n })])]\n });\n };\n }\n});\n//# sourceMappingURL=VAlert.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VAvatar.css\";\n\n// Components\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\";\nimport { VImg } from \"../VImg/index.mjs\"; // Composables\nimport { makeBorderProps, useBorder } from \"../../composables/border.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeSizeProps, useSize } from \"../../composables/size.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\";\nimport { genOverlays, makeVariantProps, useVariant } from \"../../composables/variant.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVAvatarProps = propsFactory({\n start: Boolean,\n end: Boolean,\n icon: IconValue,\n image: String,\n text: String,\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeRoundedProps(),\n ...makeSizeProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({\n variant: 'flat'\n })\n}, 'VAvatar');\nexport const VAvatar = genericComponent()({\n name: 'VAvatar',\n props: makeVAvatarProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n borderClasses\n } = useBorder(props);\n const {\n colorClasses,\n colorStyles,\n variantClasses\n } = useVariant(props);\n const {\n densityClasses\n } = useDensity(props);\n const {\n roundedClasses\n } = useRounded(props);\n const {\n sizeClasses,\n sizeStyles\n } = useSize(props);\n useRender(() => _createVNode(props.tag, {\n \"class\": ['v-avatar', {\n 'v-avatar--start': props.start,\n 'v-avatar--end': props.end\n }, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, props.class],\n \"style\": [colorStyles.value, sizeStyles.value, props.style]\n }, {\n default: () => [!slots.default ? props.image ? _createVNode(VImg, {\n \"key\": \"image\",\n \"src\": props.image,\n \"alt\": \"\",\n \"cover\": true\n }, null) : props.icon ? _createVNode(VIcon, {\n \"key\": \"icon\",\n \"icon\": props.icon\n }, null) : props.text : _createVNode(VDefaultsProvider, {\n \"key\": \"content-defaults\",\n \"defaults\": {\n VImg: {\n cover: true,\n src: props.image\n },\n VIcon: {\n icon: props.icon\n }\n }\n }, {\n default: () => [slots.default()]\n }), genOverlays(false, 'v-avatar')]\n }));\n return {};\n }\n});\n//# sourceMappingURL=VAvatar.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VLabel.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeThemeProps } from \"../../composables/theme.mjs\"; // Utilities\nimport { EventProp, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVLabelProps = propsFactory({\n text: String,\n onClick: EventProp(),\n ...makeComponentProps(),\n ...makeThemeProps()\n}, 'VLabel');\nexport const VLabel = genericComponent()({\n name: 'VLabel',\n props: makeVLabelProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => _createVNode(\"label\", {\n \"class\": ['v-label', {\n 'v-label--clickable': !!props.onClick\n }, props.class],\n \"style\": props.style,\n \"onClick\": props.onClick\n }, [props.text, slots.default?.()]));\n return {};\n }\n});\n//# sourceMappingURL=VLabel.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VSelectionControlGroup.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeDensityProps } from \"../../composables/density.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { makeThemeProps } from \"../../composables/theme.mjs\"; // Utilities\nimport { computed, onScopeDispose, provide, toRef } from 'vue';\nimport { deepEqual, genericComponent, getUid, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const VSelectionControlGroupSymbol = Symbol.for('vuetify:selection-control-group');\nexport const makeSelectionControlGroupProps = propsFactory({\n color: String,\n disabled: {\n type: Boolean,\n default: null\n },\n defaultsTarget: String,\n error: Boolean,\n id: String,\n inline: Boolean,\n falseIcon: IconValue,\n trueIcon: IconValue,\n ripple: {\n type: [Boolean, Object],\n default: true\n },\n multiple: {\n type: Boolean,\n default: null\n },\n name: String,\n readonly: {\n type: Boolean,\n default: null\n },\n modelValue: null,\n type: String,\n valueComparator: {\n type: Function,\n default: deepEqual\n },\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeThemeProps()\n}, 'SelectionControlGroup');\nexport const makeVSelectionControlGroupProps = propsFactory({\n ...makeSelectionControlGroupProps({\n defaultsTarget: 'VSelectionControl'\n })\n}, 'VSelectionControlGroup');\nexport const VSelectionControlGroup = genericComponent()({\n name: 'VSelectionControlGroup',\n props: makeVSelectionControlGroupProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const modelValue = useProxiedModel(props, 'modelValue');\n const uid = getUid();\n const id = computed(() => props.id || `v-selection-control-group-${uid}`);\n const name = computed(() => props.name || id.value);\n const updateHandlers = new Set();\n provide(VSelectionControlGroupSymbol, {\n modelValue,\n forceUpdate: () => {\n updateHandlers.forEach(fn => fn());\n },\n onForceUpdate: cb => {\n updateHandlers.add(cb);\n onScopeDispose(() => {\n updateHandlers.delete(cb);\n });\n }\n });\n provideDefaults({\n [props.defaultsTarget]: {\n color: toRef(props, 'color'),\n disabled: toRef(props, 'disabled'),\n density: toRef(props, 'density'),\n error: toRef(props, 'error'),\n inline: toRef(props, 'inline'),\n modelValue,\n multiple: computed(() => !!props.multiple || props.multiple == null && Array.isArray(modelValue.value)),\n name,\n falseIcon: toRef(props, 'falseIcon'),\n trueIcon: toRef(props, 'trueIcon'),\n readonly: toRef(props, 'readonly'),\n ripple: toRef(props, 'ripple'),\n type: toRef(props, 'type'),\n valueComparator: toRef(props, 'valueComparator')\n }\n });\n useRender(() => _createVNode(\"div\", {\n \"class\": ['v-selection-control-group', {\n 'v-selection-control-group--inline': props.inline\n }, props.class],\n \"style\": props.style,\n \"role\": props.type === 'radio' ? 'radiogroup' : undefined\n }, [slots.default?.()]));\n return {};\n }\n});\n//# sourceMappingURL=VSelectionControlGroup.mjs.map","import { mergeProps as _mergeProps, createVNode as _createVNode, Fragment as _Fragment, resolveDirective as _resolveDirective, withDirectives as _withDirectives } from \"vue\";\n// Styles\nimport \"./VSelectionControl.css\";\n\n// Components\nimport { VIcon } from \"../VIcon/index.mjs\";\nimport { VLabel } from \"../VLabel/index.mjs\";\nimport { makeSelectionControlGroupProps, VSelectionControlGroupSymbol } from \"../VSelectionControlGroup/VSelectionControlGroup.mjs\"; // Composables\nimport { useBackgroundColor, useTextColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { useDensity } from \"../../composables/density.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Directives\nimport { Ripple } from \"../../directives/ripple/index.mjs\"; // Utilities\nimport { computed, inject, nextTick, ref, shallowRef } from 'vue';\nimport { filterInputAttrs, genericComponent, getUid, matchesSelector, propsFactory, useRender, wrapInArray } from \"../../util/index.mjs\"; // Types\nexport const makeVSelectionControlProps = propsFactory({\n label: String,\n baseColor: String,\n trueValue: null,\n falseValue: null,\n value: null,\n ...makeComponentProps(),\n ...makeSelectionControlGroupProps()\n}, 'VSelectionControl');\nexport function useSelectionControl(props) {\n const group = inject(VSelectionControlGroupSymbol, undefined);\n const {\n densityClasses\n } = useDensity(props);\n const modelValue = useProxiedModel(props, 'modelValue');\n const trueValue = computed(() => props.trueValue !== undefined ? props.trueValue : props.value !== undefined ? props.value : true);\n const falseValue = computed(() => props.falseValue !== undefined ? props.falseValue : false);\n const isMultiple = computed(() => !!props.multiple || props.multiple == null && Array.isArray(modelValue.value));\n const model = computed({\n get() {\n const val = group ? group.modelValue.value : modelValue.value;\n return isMultiple.value ? wrapInArray(val).some(v => props.valueComparator(v, trueValue.value)) : props.valueComparator(val, trueValue.value);\n },\n set(val) {\n if (props.readonly) return;\n const currentValue = val ? trueValue.value : falseValue.value;\n let newVal = currentValue;\n if (isMultiple.value) {\n newVal = val ? [...wrapInArray(modelValue.value), currentValue] : wrapInArray(modelValue.value).filter(item => !props.valueComparator(item, trueValue.value));\n }\n if (group) {\n group.modelValue.value = newVal;\n } else {\n modelValue.value = newVal;\n }\n }\n });\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(computed(() => {\n if (props.error || props.disabled) return undefined;\n return model.value ? props.color : props.baseColor;\n }));\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(computed(() => {\n return model.value && !props.error && !props.disabled ? props.color : props.baseColor;\n }));\n const icon = computed(() => model.value ? props.trueIcon : props.falseIcon);\n return {\n group,\n densityClasses,\n trueValue,\n falseValue,\n model,\n textColorClasses,\n textColorStyles,\n backgroundColorClasses,\n backgroundColorStyles,\n icon\n };\n}\nexport const VSelectionControl = genericComponent()({\n name: 'VSelectionControl',\n directives: {\n Ripple\n },\n inheritAttrs: false,\n props: makeVSelectionControlProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const {\n group,\n densityClasses,\n icon,\n model,\n textColorClasses,\n textColorStyles,\n backgroundColorClasses,\n backgroundColorStyles,\n trueValue\n } = useSelectionControl(props);\n const uid = getUid();\n const isFocused = shallowRef(false);\n const isFocusVisible = shallowRef(false);\n const input = ref();\n const id = computed(() => props.id || `input-${uid}`);\n const isInteractive = computed(() => !props.disabled && !props.readonly);\n group?.onForceUpdate(() => {\n if (input.value) {\n input.value.checked = model.value;\n }\n });\n function onFocus(e) {\n if (!isInteractive.value) return;\n isFocused.value = true;\n if (matchesSelector(e.target, ':focus-visible') !== false) {\n isFocusVisible.value = true;\n }\n }\n function onBlur() {\n isFocused.value = false;\n isFocusVisible.value = false;\n }\n function onClickLabel(e) {\n e.stopPropagation();\n }\n function onInput(e) {\n if (!isInteractive.value) {\n if (input.value) {\n // model value is not updated when input is not interactive\n // but the internal checked state of the input is still updated,\n // so here it's value is restored\n input.value.checked = model.value;\n }\n return;\n }\n if (props.readonly && group) {\n nextTick(() => group.forceUpdate());\n }\n model.value = e.target.checked;\n }\n useRender(() => {\n const label = slots.label ? slots.label({\n label: props.label,\n props: {\n for: id.value\n }\n }) : props.label;\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs);\n const inputNode = _createVNode(\"input\", _mergeProps({\n \"ref\": input,\n \"checked\": model.value,\n \"disabled\": !!props.disabled,\n \"id\": id.value,\n \"onBlur\": onBlur,\n \"onFocus\": onFocus,\n \"onInput\": onInput,\n \"aria-disabled\": !!props.disabled,\n \"aria-label\": props.label,\n \"type\": props.type,\n \"value\": trueValue.value,\n \"name\": props.name,\n \"aria-checked\": props.type === 'checkbox' ? model.value : undefined\n }, inputAttrs), null);\n return _createVNode(\"div\", _mergeProps({\n \"class\": ['v-selection-control', {\n 'v-selection-control--dirty': model.value,\n 'v-selection-control--disabled': props.disabled,\n 'v-selection-control--error': props.error,\n 'v-selection-control--focused': isFocused.value,\n 'v-selection-control--focus-visible': isFocusVisible.value,\n 'v-selection-control--inline': props.inline\n }, densityClasses.value, props.class]\n }, rootAttrs, {\n \"style\": props.style\n }), [_createVNode(\"div\", {\n \"class\": ['v-selection-control__wrapper', textColorClasses.value],\n \"style\": textColorStyles.value\n }, [slots.default?.({\n backgroundColorClasses,\n backgroundColorStyles\n }), _withDirectives(_createVNode(\"div\", {\n \"class\": ['v-selection-control__input']\n }, [slots.input?.({\n model,\n textColorClasses,\n textColorStyles,\n backgroundColorClasses,\n backgroundColorStyles,\n inputNode,\n icon: icon.value,\n props: {\n onFocus,\n onBlur,\n id: id.value\n }\n }) ?? _createVNode(_Fragment, null, [icon.value && _createVNode(VIcon, {\n \"key\": \"icon\",\n \"icon\": icon.value\n }, null), inputNode])]), [[_resolveDirective(\"ripple\"), props.ripple && [!props.disabled && !props.readonly, null, ['center', 'circle']]]])]), label && _createVNode(VLabel, {\n \"for\": id.value,\n \"onClick\": onClickLabel\n }, {\n default: () => [label]\n })]);\n });\n return {\n isFocused,\n input\n };\n }\n});\n//# sourceMappingURL=VSelectionControl.mjs.map","import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Components\nimport { makeVSelectionControlProps, VSelectionControl } from \"../VSelectionControl/VSelectionControl.mjs\"; // Composables\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { genericComponent, omit, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVCheckboxBtnProps = propsFactory({\n indeterminate: Boolean,\n indeterminateIcon: {\n type: IconValue,\n default: '$checkboxIndeterminate'\n },\n ...makeVSelectionControlProps({\n falseIcon: '$checkboxOff',\n trueIcon: '$checkboxOn'\n })\n}, 'VCheckboxBtn');\nexport const VCheckboxBtn = genericComponent()({\n name: 'VCheckboxBtn',\n props: makeVCheckboxBtnProps(),\n emits: {\n 'update:modelValue': value => true,\n 'update:indeterminate': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const indeterminate = useProxiedModel(props, 'indeterminate');\n const model = useProxiedModel(props, 'modelValue');\n function onChange(v) {\n if (indeterminate.value) {\n indeterminate.value = false;\n }\n }\n const falseIcon = computed(() => {\n return indeterminate.value ? props.indeterminateIcon : props.falseIcon;\n });\n const trueIcon = computed(() => {\n return indeterminate.value ? props.indeterminateIcon : props.trueIcon;\n });\n useRender(() => {\n const controlProps = omit(VSelectionControl.filterProps(props), ['modelValue']);\n return _createVNode(VSelectionControl, _mergeProps(controlProps, {\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": [$event => model.value = $event, onChange],\n \"class\": ['v-checkbox-btn', props.class],\n \"style\": props.style,\n \"type\": \"checkbox\",\n \"falseIcon\": falseIcon.value,\n \"trueIcon\": trueIcon.value,\n \"aria-checked\": indeterminate.value ? 'mixed' : undefined\n }), slots);\n });\n return {};\n }\n});\n//# sourceMappingURL=VCheckboxBtn.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Components\nimport { VIcon } from \"../VIcon/index.mjs\"; // Composables\nimport { useLocale } from \"../../composables/locale.mjs\"; // Utilities\nimport { callEvent } from \"../../util/index.mjs\"; // Types\nexport function useInputIcon(props) {\n const {\n t\n } = useLocale();\n function InputIcon(_ref) {\n let {\n name\n } = _ref;\n const localeKey = {\n prepend: 'prependAction',\n prependInner: 'prependAction',\n append: 'appendAction',\n appendInner: 'appendAction',\n clear: 'clear'\n }[name];\n const listener = props[`onClick:${name}`];\n function onKeydown(e) {\n if (e.key !== 'Enter' && e.key !== ' ') return;\n e.preventDefault();\n e.stopPropagation();\n callEvent(listener, new PointerEvent('click', e));\n }\n const label = listener && localeKey ? t(`$vuetify.input.${localeKey}`, props.label ?? '') : undefined;\n return _createVNode(VIcon, {\n \"icon\": props[`${name}Icon`],\n \"aria-label\": label,\n \"onClick\": listener,\n \"onKeydown\": onKeydown\n }, null);\n }\n return {\n InputIcon\n };\n}\n//# sourceMappingURL=InputIcon.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VMessages.css\";\n\n// Components\nimport { VSlideYTransition } from \"../transitions/index.mjs\"; // Composables\nimport { useTextColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeTransitionProps, MaybeTransition } from \"../../composables/transition.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { genericComponent, propsFactory, useRender, wrapInArray } from \"../../util/index.mjs\"; // Types\nexport const makeVMessagesProps = propsFactory({\n active: Boolean,\n color: String,\n messages: {\n type: [Array, String],\n default: () => []\n },\n ...makeComponentProps(),\n ...makeTransitionProps({\n transition: {\n component: VSlideYTransition,\n leaveAbsolute: true,\n group: true\n }\n })\n}, 'VMessages');\nexport const VMessages = genericComponent()({\n name: 'VMessages',\n props: makeVMessagesProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const messages = computed(() => wrapInArray(props.messages));\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(computed(() => props.color));\n useRender(() => _createVNode(MaybeTransition, {\n \"transition\": props.transition,\n \"tag\": \"div\",\n \"class\": ['v-messages', textColorClasses.value, props.class],\n \"style\": [textColorStyles.value, props.style]\n }, {\n default: () => [props.active && messages.value.map((message, i) => _createVNode(\"div\", {\n \"class\": \"v-messages__message\",\n \"key\": `${i}-${messages.value}`\n }, [slots.message ? slots.message({\n message\n }) : message]))]\n }));\n return {};\n }\n});\n//# sourceMappingURL=VMessages.mjs.map","// Composables\nimport { useProxiedModel } from \"./proxiedModel.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { EventProp, getCurrentInstanceName, propsFactory } from \"../util/index.mjs\"; // Types\n// Composables\nexport const makeFocusProps = propsFactory({\n focused: Boolean,\n 'onUpdate:focused': EventProp()\n}, 'focus');\nexport function useFocus(props) {\n let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();\n const isFocused = useProxiedModel(props, 'focused');\n const focusClasses = computed(() => {\n return {\n [`${name}--focused`]: isFocused.value\n };\n });\n function focus() {\n isFocused.value = true;\n }\n function blur() {\n isFocused.value = false;\n }\n return {\n focusClasses,\n isFocused,\n focus,\n blur\n };\n}\n//# sourceMappingURL=focus.mjs.map","// Composables\nimport { useProxiedModel } from \"./proxiedModel.mjs\"; // Utilities\nimport { computed, inject, markRaw, provide, ref, shallowRef, toRef, watch } from 'vue';\nimport { consoleWarn, propsFactory } from \"../util/index.mjs\"; // Types\nexport const FormKey = Symbol.for('vuetify:form');\nexport const makeFormProps = propsFactory({\n disabled: Boolean,\n fastFail: Boolean,\n readonly: Boolean,\n modelValue: {\n type: Boolean,\n default: null\n },\n validateOn: {\n type: String,\n default: 'input'\n }\n}, 'form');\nexport function createForm(props) {\n const model = useProxiedModel(props, 'modelValue');\n const isDisabled = computed(() => props.disabled);\n const isReadonly = computed(() => props.readonly);\n const isValidating = shallowRef(false);\n const items = ref([]);\n const errors = ref([]);\n async function validate() {\n const results = [];\n let valid = true;\n errors.value = [];\n isValidating.value = true;\n for (const item of items.value) {\n const itemErrorMessages = await item.validate();\n if (itemErrorMessages.length > 0) {\n valid = false;\n results.push({\n id: item.id,\n errorMessages: itemErrorMessages\n });\n }\n if (!valid && props.fastFail) break;\n }\n errors.value = results;\n isValidating.value = false;\n return {\n valid,\n errors: errors.value\n };\n }\n function reset() {\n items.value.forEach(item => item.reset());\n }\n function resetValidation() {\n items.value.forEach(item => item.resetValidation());\n }\n watch(items, () => {\n let valid = 0;\n let invalid = 0;\n const results = [];\n for (const item of items.value) {\n if (item.isValid === false) {\n invalid++;\n results.push({\n id: item.id,\n errorMessages: item.errorMessages\n });\n } else if (item.isValid === true) valid++;\n }\n errors.value = results;\n model.value = invalid > 0 ? false : valid === items.value.length ? true : null;\n }, {\n deep: true,\n flush: 'post'\n });\n provide(FormKey, {\n register: _ref => {\n let {\n id,\n vm,\n validate,\n reset,\n resetValidation\n } = _ref;\n if (items.value.some(item => item.id === id)) {\n consoleWarn(`Duplicate input name \"${id}\"`);\n }\n items.value.push({\n id,\n validate,\n reset,\n resetValidation,\n vm: markRaw(vm),\n isValid: null,\n errorMessages: []\n });\n },\n unregister: id => {\n items.value = items.value.filter(item => {\n return item.id !== id;\n });\n },\n update: (id, isValid, errorMessages) => {\n const found = items.value.find(item => item.id === id);\n if (!found) return;\n found.isValid = isValid;\n found.errorMessages = errorMessages;\n },\n isDisabled,\n isReadonly,\n isValidating,\n isValid: model,\n items,\n validateOn: toRef(props, 'validateOn')\n });\n return {\n errors,\n isDisabled,\n isReadonly,\n isValidating,\n isValid: model,\n items,\n validate,\n reset,\n resetValidation\n };\n}\nexport function useForm(props) {\n const form = inject(FormKey, null);\n return {\n ...form,\n isReadonly: computed(() => !!(props?.readonly ?? form?.isReadonly.value)),\n isDisabled: computed(() => !!(props?.disabled ?? form?.isDisabled.value))\n };\n}\n//# sourceMappingURL=form.mjs.map","// Composables\nimport { makeFocusProps } from \"./focus.mjs\";\nimport { useForm } from \"./form.mjs\";\nimport { useProxiedModel } from \"./proxiedModel.mjs\";\nimport { useToggleScope } from \"./toggleScope.mjs\"; // Utilities\nimport { computed, nextTick, onBeforeMount, onBeforeUnmount, onMounted, ref, shallowRef, unref, watch } from 'vue';\nimport { getCurrentInstance, getCurrentInstanceName, getUid, propsFactory, wrapInArray } from \"../util/index.mjs\"; // Types\nexport const makeValidationProps = propsFactory({\n disabled: {\n type: Boolean,\n default: null\n },\n error: Boolean,\n errorMessages: {\n type: [Array, String],\n default: () => []\n },\n maxErrors: {\n type: [Number, String],\n default: 1\n },\n name: String,\n label: String,\n readonly: {\n type: Boolean,\n default: null\n },\n rules: {\n type: Array,\n default: () => []\n },\n modelValue: null,\n validateOn: String,\n validationValue: null,\n ...makeFocusProps()\n}, 'validation');\nexport function useValidation(props) {\n let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();\n let id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : getUid();\n const model = useProxiedModel(props, 'modelValue');\n const validationModel = computed(() => props.validationValue === undefined ? model.value : props.validationValue);\n const form = useForm(props);\n const internalErrorMessages = ref([]);\n const isPristine = shallowRef(true);\n const isDirty = computed(() => !!(wrapInArray(model.value === '' ? null : model.value).length || wrapInArray(validationModel.value === '' ? null : validationModel.value).length));\n const errorMessages = computed(() => {\n return props.errorMessages?.length ? wrapInArray(props.errorMessages).concat(internalErrorMessages.value).slice(0, Math.max(0, +props.maxErrors)) : internalErrorMessages.value;\n });\n const validateOn = computed(() => {\n let value = (props.validateOn ?? form.validateOn?.value) || 'input';\n if (value === 'lazy') value = 'input lazy';\n if (value === 'eager') value = 'input eager';\n const set = new Set(value?.split(' ') ?? []);\n return {\n input: set.has('input'),\n blur: set.has('blur') || set.has('input') || set.has('invalid-input'),\n invalidInput: set.has('invalid-input'),\n lazy: set.has('lazy'),\n eager: set.has('eager')\n };\n });\n const isValid = computed(() => {\n if (props.error || props.errorMessages?.length) return false;\n if (!props.rules.length) return true;\n if (isPristine.value) {\n return internalErrorMessages.value.length || validateOn.value.lazy ? null : true;\n } else {\n return !internalErrorMessages.value.length;\n }\n });\n const isValidating = shallowRef(false);\n const validationClasses = computed(() => {\n return {\n [`${name}--error`]: isValid.value === false,\n [`${name}--dirty`]: isDirty.value,\n [`${name}--disabled`]: form.isDisabled.value,\n [`${name}--readonly`]: form.isReadonly.value\n };\n });\n const vm = getCurrentInstance('validation');\n const uid = computed(() => props.name ?? unref(id));\n onBeforeMount(() => {\n form.register?.({\n id: uid.value,\n vm,\n validate,\n reset,\n resetValidation\n });\n });\n onBeforeUnmount(() => {\n form.unregister?.(uid.value);\n });\n onMounted(async () => {\n if (!validateOn.value.lazy) {\n await validate(!validateOn.value.eager);\n }\n form.update?.(uid.value, isValid.value, errorMessages.value);\n });\n useToggleScope(() => validateOn.value.input || validateOn.value.invalidInput && isValid.value === false, () => {\n watch(validationModel, () => {\n if (validationModel.value != null) {\n validate();\n } else if (props.focused) {\n const unwatch = watch(() => props.focused, val => {\n if (!val) validate();\n unwatch();\n });\n }\n });\n });\n useToggleScope(() => validateOn.value.blur, () => {\n watch(() => props.focused, val => {\n if (!val) validate();\n });\n });\n watch([isValid, errorMessages], () => {\n form.update?.(uid.value, isValid.value, errorMessages.value);\n });\n async function reset() {\n model.value = null;\n await nextTick();\n await resetValidation();\n }\n async function resetValidation() {\n isPristine.value = true;\n if (!validateOn.value.lazy) {\n await validate(!validateOn.value.eager);\n } else {\n internalErrorMessages.value = [];\n }\n }\n async function validate() {\n let silent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n const results = [];\n isValidating.value = true;\n for (const rule of props.rules) {\n if (results.length >= +(props.maxErrors ?? 1)) {\n break;\n }\n const handler = typeof rule === 'function' ? rule : () => rule;\n const result = await handler(validationModel.value);\n if (result === true) continue;\n if (result !== false && typeof result !== 'string') {\n // eslint-disable-next-line no-console\n console.warn(`${result} is not a valid value. Rule functions must return boolean true or a string.`);\n continue;\n }\n results.push(result || '');\n }\n internalErrorMessages.value = results;\n isValidating.value = false;\n isPristine.value = silent;\n return internalErrorMessages.value;\n }\n return {\n errorMessages,\n isDirty,\n isDisabled: form.isDisabled,\n isReadonly: form.isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n validationClasses\n };\n}\n//# sourceMappingURL=validation.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VInput.css\";\n\n// Components\nimport { useInputIcon } from \"./InputIcon.mjs\";\nimport { VMessages } from \"../VMessages/VMessages.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { useRtl } from \"../../composables/locale.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\";\nimport { makeValidationProps, useValidation } from \"../../composables/validation.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { EventProp, genericComponent, getUid, pick, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVInputProps = propsFactory({\n id: String,\n appendIcon: IconValue,\n centerAffix: {\n type: Boolean,\n default: true\n },\n prependIcon: IconValue,\n hideDetails: [Boolean, String],\n hideSpinButtons: Boolean,\n hint: String,\n persistentHint: Boolean,\n messages: {\n type: [Array, String],\n default: () => []\n },\n direction: {\n type: String,\n default: 'horizontal',\n validator: v => ['horizontal', 'vertical'].includes(v)\n },\n 'onClick:prepend': EventProp(),\n 'onClick:append': EventProp(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...pick(makeDimensionProps(), ['maxWidth', 'minWidth', 'width']),\n ...makeThemeProps(),\n ...makeValidationProps()\n}, 'VInput');\nexport const VInput = genericComponent()({\n name: 'VInput',\n props: {\n ...makeVInputProps()\n },\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n attrs,\n slots,\n emit\n } = _ref;\n const {\n densityClasses\n } = useDensity(props);\n const {\n dimensionStyles\n } = useDimension(props);\n const {\n themeClasses\n } = provideTheme(props);\n const {\n rtlClasses\n } = useRtl();\n const {\n InputIcon\n } = useInputIcon(props);\n const uid = getUid();\n const id = computed(() => props.id || `input-${uid}`);\n const messagesId = computed(() => `${id.value}-messages`);\n const {\n errorMessages,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n validationClasses\n } = useValidation(props, 'v-input', id);\n const slotProps = computed(() => ({\n id,\n messagesId,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate\n }));\n const messages = computed(() => {\n if (props.errorMessages?.length || !isPristine.value && errorMessages.value.length) {\n return errorMessages.value;\n } else if (props.hint && (props.persistentHint || props.focused)) {\n return props.hint;\n } else {\n return props.messages;\n }\n });\n useRender(() => {\n const hasPrepend = !!(slots.prepend || props.prependIcon);\n const hasAppend = !!(slots.append || props.appendIcon);\n const hasMessages = messages.value.length > 0;\n const hasDetails = !props.hideDetails || props.hideDetails === 'auto' && (hasMessages || !!slots.details);\n return _createVNode(\"div\", {\n \"class\": ['v-input', `v-input--${props.direction}`, {\n 'v-input--center-affix': props.centerAffix,\n 'v-input--hide-spin-buttons': props.hideSpinButtons\n }, densityClasses.value, themeClasses.value, rtlClasses.value, validationClasses.value, props.class],\n \"style\": [dimensionStyles.value, props.style]\n }, [hasPrepend && _createVNode(\"div\", {\n \"key\": \"prepend\",\n \"class\": \"v-input__prepend\"\n }, [slots.prepend?.(slotProps.value), props.prependIcon && _createVNode(InputIcon, {\n \"key\": \"prepend-icon\",\n \"name\": \"prepend\"\n }, null)]), slots.default && _createVNode(\"div\", {\n \"class\": \"v-input__control\"\n }, [slots.default?.(slotProps.value)]), hasAppend && _createVNode(\"div\", {\n \"key\": \"append\",\n \"class\": \"v-input__append\"\n }, [props.appendIcon && _createVNode(InputIcon, {\n \"key\": \"append-icon\",\n \"name\": \"append\"\n }, null), slots.append?.(slotProps.value)]), hasDetails && _createVNode(\"div\", {\n \"id\": messagesId.value,\n \"class\": \"v-input__details\",\n \"role\": \"alert\",\n \"aria-live\": \"polite\"\n }, [_createVNode(VMessages, {\n \"active\": hasMessages,\n \"messages\": messages.value\n }, {\n message: slots.message\n }), slots.details?.(slotProps.value)])]);\n });\n return {\n reset,\n resetValidation,\n validate,\n isValid,\n errorMessages\n };\n }\n});\n//# sourceMappingURL=VInput.mjs.map","import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VCheckbox.css\";\n\n// Components\nimport { makeVCheckboxBtnProps, VCheckboxBtn } from \"./VCheckboxBtn.mjs\";\nimport { makeVInputProps, VInput } from \"../VInput/VInput.mjs\"; // Composables\nimport { useFocus } from \"../../composables/focus.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { filterInputAttrs, genericComponent, getUid, omit, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVCheckboxProps = propsFactory({\n ...makeVInputProps(),\n ...omit(makeVCheckboxBtnProps(), ['inline'])\n}, 'VCheckbox');\nexport const VCheckbox = genericComponent()({\n name: 'VCheckbox',\n inheritAttrs: false,\n props: makeVCheckboxProps(),\n emits: {\n 'update:modelValue': value => true,\n 'update:focused': focused => true\n },\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const model = useProxiedModel(props, 'modelValue');\n const {\n isFocused,\n focus,\n blur\n } = useFocus(props);\n const uid = getUid();\n const id = computed(() => props.id || `checkbox-${uid}`);\n useRender(() => {\n const [rootAttrs, controlAttrs] = filterInputAttrs(attrs);\n const inputProps = VInput.filterProps(props);\n const checkboxProps = VCheckboxBtn.filterProps(props);\n return _createVNode(VInput, _mergeProps({\n \"class\": ['v-checkbox', props.class]\n }, rootAttrs, inputProps, {\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"id\": id.value,\n \"focused\": isFocused.value,\n \"style\": props.style\n }), {\n ...slots,\n default: _ref2 => {\n let {\n id,\n messagesId,\n isDisabled,\n isReadonly,\n isValid\n } = _ref2;\n return _createVNode(VCheckboxBtn, _mergeProps(checkboxProps, {\n \"id\": id.value,\n \"aria-describedby\": messagesId.value,\n \"disabled\": isDisabled.value,\n \"readonly\": isReadonly.value\n }, controlAttrs, {\n \"error\": isValid.value === false,\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"onFocus\": focus,\n \"onBlur\": blur\n }), slots);\n }\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VCheckbox.mjs.map","export function calculateUpdatedTarget(_ref) {\n let {\n selectedElement,\n containerElement,\n isRtl,\n isHorizontal\n } = _ref;\n const containerSize = getOffsetSize(isHorizontal, containerElement);\n const scrollPosition = getScrollPosition(isHorizontal, isRtl, containerElement);\n const childrenSize = getOffsetSize(isHorizontal, selectedElement);\n const childrenStartPosition = getOffsetPosition(isHorizontal, selectedElement);\n const additionalOffset = childrenSize * 0.4;\n if (scrollPosition > childrenStartPosition) {\n return childrenStartPosition - additionalOffset;\n } else if (scrollPosition + containerSize < childrenStartPosition + childrenSize) {\n return childrenStartPosition - containerSize + childrenSize + additionalOffset;\n }\n return scrollPosition;\n}\nexport function calculateCenteredTarget(_ref2) {\n let {\n selectedElement,\n containerElement,\n isHorizontal\n } = _ref2;\n const containerOffsetSize = getOffsetSize(isHorizontal, containerElement);\n const childrenOffsetPosition = getOffsetPosition(isHorizontal, selectedElement);\n const childrenOffsetSize = getOffsetSize(isHorizontal, selectedElement);\n return childrenOffsetPosition - containerOffsetSize / 2 + childrenOffsetSize / 2;\n}\nexport function getScrollSize(isHorizontal, element) {\n const key = isHorizontal ? 'scrollWidth' : 'scrollHeight';\n return element?.[key] || 0;\n}\nexport function getClientSize(isHorizontal, element) {\n const key = isHorizontal ? 'clientWidth' : 'clientHeight';\n return element?.[key] || 0;\n}\nexport function getScrollPosition(isHorizontal, rtl, element) {\n if (!element) {\n return 0;\n }\n const {\n scrollLeft,\n offsetWidth,\n scrollWidth\n } = element;\n if (isHorizontal) {\n return rtl ? scrollWidth - offsetWidth + scrollLeft : scrollLeft;\n }\n return element.scrollTop;\n}\nexport function getOffsetSize(isHorizontal, element) {\n const key = isHorizontal ? 'offsetWidth' : 'offsetHeight';\n return element?.[key] || 0;\n}\nexport function getOffsetPosition(isHorizontal, element) {\n const key = isHorizontal ? 'offsetLeft' : 'offsetTop';\n return element?.[key] || 0;\n}\n//# sourceMappingURL=helpers.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VSlideGroup.css\";\n\n// Components\nimport { VFadeTransition } from \"../transitions/index.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDisplayProps, useDisplay } from \"../../composables/display.mjs\";\nimport { useGoTo } from \"../../composables/goto.mjs\";\nimport { makeGroupProps, useGroup } from \"../../composables/group.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { useRtl } from \"../../composables/locale.mjs\";\nimport { useResizeObserver } from \"../../composables/resizeObserver.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { computed, shallowRef, watch } from 'vue';\nimport { calculateCenteredTarget, calculateUpdatedTarget, getClientSize, getOffsetSize, getScrollPosition, getScrollSize } from \"./helpers.mjs\";\nimport { focusableChildren, genericComponent, IN_BROWSER, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const VSlideGroupSymbol = Symbol.for('vuetify:v-slide-group');\nexport const makeVSlideGroupProps = propsFactory({\n centerActive: Boolean,\n direction: {\n type: String,\n default: 'horizontal'\n },\n symbol: {\n type: null,\n default: VSlideGroupSymbol\n },\n nextIcon: {\n type: IconValue,\n default: '$next'\n },\n prevIcon: {\n type: IconValue,\n default: '$prev'\n },\n showArrows: {\n type: [Boolean, String],\n validator: v => typeof v === 'boolean' || ['always', 'desktop', 'mobile'].includes(v)\n },\n ...makeComponentProps(),\n ...makeDisplayProps({\n mobile: null\n }),\n ...makeTagProps(),\n ...makeGroupProps({\n selectedClass: 'v-slide-group-item--active'\n })\n}, 'VSlideGroup');\nexport const VSlideGroup = genericComponent()({\n name: 'VSlideGroup',\n props: makeVSlideGroupProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n isRtl\n } = useRtl();\n const {\n displayClasses,\n mobile\n } = useDisplay(props);\n const group = useGroup(props, props.symbol);\n const isOverflowing = shallowRef(false);\n const scrollOffset = shallowRef(0);\n const containerSize = shallowRef(0);\n const contentSize = shallowRef(0);\n const isHorizontal = computed(() => props.direction === 'horizontal');\n const {\n resizeRef: containerRef,\n contentRect: containerRect\n } = useResizeObserver();\n const {\n resizeRef: contentRef,\n contentRect\n } = useResizeObserver();\n const goTo = useGoTo();\n const goToOptions = computed(() => {\n return {\n container: containerRef.el,\n duration: 200,\n easing: 'easeOutQuart'\n };\n });\n const firstSelectedIndex = computed(() => {\n if (!group.selected.value.length) return -1;\n return group.items.value.findIndex(item => item.id === group.selected.value[0]);\n });\n const lastSelectedIndex = computed(() => {\n if (!group.selected.value.length) return -1;\n return group.items.value.findIndex(item => item.id === group.selected.value[group.selected.value.length - 1]);\n });\n if (IN_BROWSER) {\n let frame = -1;\n watch(() => [group.selected.value, containerRect.value, contentRect.value, isHorizontal.value], () => {\n cancelAnimationFrame(frame);\n frame = requestAnimationFrame(() => {\n if (containerRect.value && contentRect.value) {\n const sizeProperty = isHorizontal.value ? 'width' : 'height';\n containerSize.value = containerRect.value[sizeProperty];\n contentSize.value = contentRect.value[sizeProperty];\n isOverflowing.value = containerSize.value + 1 < contentSize.value;\n }\n if (firstSelectedIndex.value >= 0 && contentRef.el) {\n // TODO: Is this too naive? Should we store element references in group composable?\n const selectedElement = contentRef.el.children[lastSelectedIndex.value];\n scrollToChildren(selectedElement, props.centerActive);\n }\n });\n });\n }\n const isFocused = shallowRef(false);\n function scrollToChildren(children, center) {\n let target = 0;\n if (center) {\n target = calculateCenteredTarget({\n containerElement: containerRef.el,\n isHorizontal: isHorizontal.value,\n selectedElement: children\n });\n } else {\n target = calculateUpdatedTarget({\n containerElement: containerRef.el,\n isHorizontal: isHorizontal.value,\n isRtl: isRtl.value,\n selectedElement: children\n });\n }\n scrollToPosition(target);\n }\n function scrollToPosition(newPosition) {\n if (!IN_BROWSER || !containerRef.el) return;\n const offsetSize = getOffsetSize(isHorizontal.value, containerRef.el);\n const scrollPosition = getScrollPosition(isHorizontal.value, isRtl.value, containerRef.el);\n const scrollSize = getScrollSize(isHorizontal.value, containerRef.el);\n if (scrollSize <= offsetSize ||\n // Prevent scrolling by only a couple of pixels, which doesn't look smooth\n Math.abs(newPosition - scrollPosition) < 16) return;\n if (isHorizontal.value && isRtl.value && containerRef.el) {\n const {\n scrollWidth,\n offsetWidth: containerWidth\n } = containerRef.el;\n newPosition = scrollWidth - containerWidth - newPosition;\n }\n if (isHorizontal.value) {\n goTo.horizontal(newPosition, goToOptions.value);\n } else {\n goTo(newPosition, goToOptions.value);\n }\n }\n function onScroll(e) {\n const {\n scrollTop,\n scrollLeft\n } = e.target;\n scrollOffset.value = isHorizontal.value ? scrollLeft : scrollTop;\n }\n function onFocusin(e) {\n isFocused.value = true;\n if (!isOverflowing.value || !contentRef.el) return;\n\n // Focused element is likely to be the root of an item, so a\n // breadth-first search will probably find it in the first iteration\n for (const el of e.composedPath()) {\n for (const item of contentRef.el.children) {\n if (item === el) {\n scrollToChildren(item);\n return;\n }\n }\n }\n }\n function onFocusout(e) {\n isFocused.value = false;\n }\n\n // Affix clicks produce onFocus that we have to ignore to avoid extra scrollToChildren\n let ignoreFocusEvent = false;\n function onFocus(e) {\n if (!ignoreFocusEvent && !isFocused.value && !(e.relatedTarget && contentRef.el?.contains(e.relatedTarget))) focus();\n ignoreFocusEvent = false;\n }\n function onFocusAffixes() {\n ignoreFocusEvent = true;\n }\n function onKeydown(e) {\n if (!contentRef.el) return;\n function toFocus(location) {\n e.preventDefault();\n focus(location);\n }\n if (isHorizontal.value) {\n if (e.key === 'ArrowRight') {\n toFocus(isRtl.value ? 'prev' : 'next');\n } else if (e.key === 'ArrowLeft') {\n toFocus(isRtl.value ? 'next' : 'prev');\n }\n } else {\n if (e.key === 'ArrowDown') {\n toFocus('next');\n } else if (e.key === 'ArrowUp') {\n toFocus('prev');\n }\n }\n if (e.key === 'Home') {\n toFocus('first');\n } else if (e.key === 'End') {\n toFocus('last');\n }\n }\n function getSiblingElement(el, location) {\n if (!el) return undefined;\n let sibling = el;\n do {\n sibling = sibling?.[location === 'next' ? 'nextElementSibling' : 'previousElementSibling'];\n } while (sibling?.hasAttribute('disabled'));\n return sibling;\n }\n function focus(location) {\n if (!contentRef.el) return;\n let el;\n if (!location) {\n const focusable = focusableChildren(contentRef.el);\n el = focusable[0];\n } else if (location === 'next') {\n el = getSiblingElement(contentRef.el.querySelector(':focus'), location);\n if (!el) return focus('first');\n } else if (location === 'prev') {\n el = getSiblingElement(contentRef.el.querySelector(':focus'), location);\n if (!el) return focus('last');\n } else if (location === 'first') {\n el = contentRef.el.firstElementChild;\n if (el?.hasAttribute('disabled')) el = getSiblingElement(el, 'next');\n } else if (location === 'last') {\n el = contentRef.el.lastElementChild;\n if (el?.hasAttribute('disabled')) el = getSiblingElement(el, 'prev');\n }\n if (el) {\n el.focus({\n preventScroll: true\n });\n }\n }\n function scrollTo(location) {\n const direction = isHorizontal.value && isRtl.value ? -1 : 1;\n const offsetStep = (location === 'prev' ? -direction : direction) * containerSize.value;\n let newPosition = scrollOffset.value + offsetStep;\n\n // TODO: improve it\n if (isHorizontal.value && isRtl.value && containerRef.el) {\n const {\n scrollWidth,\n offsetWidth: containerWidth\n } = containerRef.el;\n newPosition += scrollWidth - containerWidth;\n }\n scrollToPosition(newPosition);\n }\n const slotProps = computed(() => ({\n next: group.next,\n prev: group.prev,\n select: group.select,\n isSelected: group.isSelected\n }));\n const hasAffixes = computed(() => {\n switch (props.showArrows) {\n // Always show arrows on desktop & mobile\n case 'always':\n return true;\n\n // Always show arrows on desktop\n case 'desktop':\n return !mobile.value;\n\n // Show arrows on mobile when overflowing.\n // This matches the default 2.2 behavior\n case true:\n return isOverflowing.value || Math.abs(scrollOffset.value) > 0;\n\n // Always show on mobile\n case 'mobile':\n return mobile.value || isOverflowing.value || Math.abs(scrollOffset.value) > 0;\n\n // https://material.io/components/tabs#scrollable-tabs\n // Always show arrows when\n // overflowed on desktop\n default:\n return !mobile.value && (isOverflowing.value || Math.abs(scrollOffset.value) > 0);\n }\n });\n const hasPrev = computed(() => {\n // 1 pixel in reserve, may be lost after rounding\n return Math.abs(scrollOffset.value) > 1;\n });\n const hasNext = computed(() => {\n if (!containerRef.value) return false;\n const scrollSize = getScrollSize(isHorizontal.value, containerRef.el);\n const clientSize = getClientSize(isHorizontal.value, containerRef.el);\n const scrollSizeMax = scrollSize - clientSize;\n\n // 1 pixel in reserve, may be lost after rounding\n return scrollSizeMax - Math.abs(scrollOffset.value) > 1;\n });\n useRender(() => _createVNode(props.tag, {\n \"class\": ['v-slide-group', {\n 'v-slide-group--vertical': !isHorizontal.value,\n 'v-slide-group--has-affixes': hasAffixes.value,\n 'v-slide-group--is-overflowing': isOverflowing.value\n }, displayClasses.value, props.class],\n \"style\": props.style,\n \"tabindex\": isFocused.value || group.selected.value.length ? -1 : 0,\n \"onFocus\": onFocus\n }, {\n default: () => [hasAffixes.value && _createVNode(\"div\", {\n \"key\": \"prev\",\n \"class\": ['v-slide-group__prev', {\n 'v-slide-group__prev--disabled': !hasPrev.value\n }],\n \"onMousedown\": onFocusAffixes,\n \"onClick\": () => hasPrev.value && scrollTo('prev')\n }, [slots.prev?.(slotProps.value) ?? _createVNode(VFadeTransition, null, {\n default: () => [_createVNode(VIcon, {\n \"icon\": isRtl.value ? props.nextIcon : props.prevIcon\n }, null)]\n })]), _createVNode(\"div\", {\n \"key\": \"container\",\n \"ref\": containerRef,\n \"class\": \"v-slide-group__container\",\n \"onScroll\": onScroll\n }, [_createVNode(\"div\", {\n \"ref\": contentRef,\n \"class\": \"v-slide-group__content\",\n \"onFocusin\": onFocusin,\n \"onFocusout\": onFocusout,\n \"onKeydown\": onKeydown\n }, [slots.default?.(slotProps.value)])]), hasAffixes.value && _createVNode(\"div\", {\n \"key\": \"next\",\n \"class\": ['v-slide-group__next', {\n 'v-slide-group__next--disabled': !hasNext.value\n }],\n \"onMousedown\": onFocusAffixes,\n \"onClick\": () => hasNext.value && scrollTo('next')\n }, [slots.next?.(slotProps.value) ?? _createVNode(VFadeTransition, null, {\n default: () => [_createVNode(VIcon, {\n \"icon\": isRtl.value ? props.prevIcon : props.nextIcon\n }, null)]\n })])]\n }));\n return {\n selected: group.selected,\n scrollTo,\n scrollOffset,\n focus,\n hasPrev,\n hasNext\n };\n }\n});\n//# sourceMappingURL=VSlideGroup.mjs.map","import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VChipGroup.css\";\n\n// Components\nimport { makeVSlideGroupProps, VSlideGroup } from \"../VSlideGroup/VSlideGroup.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeGroupProps, useGroup } from \"../../composables/group.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\";\nimport { makeVariantProps } from \"../../composables/variant.mjs\"; // Utilities\nimport { toRef } from 'vue';\nimport { deepEqual, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const VChipGroupSymbol = Symbol.for('vuetify:v-chip-group');\nexport const makeVChipGroupProps = propsFactory({\n column: Boolean,\n filter: Boolean,\n valueComparator: {\n type: Function,\n default: deepEqual\n },\n ...makeVSlideGroupProps(),\n ...makeComponentProps(),\n ...makeGroupProps({\n selectedClass: 'v-chip--selected'\n }),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({\n variant: 'tonal'\n })\n}, 'VChipGroup');\nexport const VChipGroup = genericComponent()({\n name: 'VChipGroup',\n props: makeVChipGroupProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n isSelected,\n select,\n next,\n prev,\n selected\n } = useGroup(props, VChipGroupSymbol);\n provideDefaults({\n VChip: {\n color: toRef(props, 'color'),\n disabled: toRef(props, 'disabled'),\n filter: toRef(props, 'filter'),\n variant: toRef(props, 'variant')\n }\n });\n useRender(() => {\n const slideGroupProps = VSlideGroup.filterProps(props);\n return _createVNode(VSlideGroup, _mergeProps(slideGroupProps, {\n \"class\": ['v-chip-group', {\n 'v-chip-group--column': props.column\n }, themeClasses.value, props.class],\n \"style\": props.style\n }), {\n default: () => [slots.default?.({\n isSelected,\n select,\n next,\n prev,\n selected: selected.value\n })]\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VChipGroup.mjs.map","import { createVNode as _createVNode, vShow as _vShow, withDirectives as _withDirectives, Fragment as _Fragment, mergeProps as _mergeProps, resolveDirective as _resolveDirective } from \"vue\";\n/* eslint-disable complexity */\n// Styles\nimport \"./VChip.css\";\n\n// Components\nimport { VExpandXTransition } from \"../transitions/index.mjs\";\nimport { VAvatar } from \"../VAvatar/index.mjs\";\nimport { VChipGroupSymbol } from \"../VChipGroup/VChipGroup.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\"; // Composables\nimport { makeBorderProps, useBorder } from \"../../composables/border.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { makeGroupItemProps, useGroupItem } from \"../../composables/group.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { useLocale } from \"../../composables/locale.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeRouterProps, useLink } from \"../../composables/router.mjs\";\nimport { makeSizeProps, useSize } from \"../../composables/size.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\";\nimport { genOverlays, makeVariantProps, useVariant } from \"../../composables/variant.mjs\"; // Directives\nimport { Ripple } from \"../../directives/ripple/index.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { EventProp, genericComponent, propsFactory } from \"../../util/index.mjs\"; // Types\nexport const makeVChipProps = propsFactory({\n activeClass: String,\n appendAvatar: String,\n appendIcon: IconValue,\n closable: Boolean,\n closeIcon: {\n type: IconValue,\n default: '$delete'\n },\n closeLabel: {\n type: String,\n default: '$vuetify.close'\n },\n draggable: Boolean,\n filter: Boolean,\n filterIcon: {\n type: IconValue,\n default: '$complete'\n },\n label: Boolean,\n link: {\n type: Boolean,\n default: undefined\n },\n pill: Boolean,\n prependAvatar: String,\n prependIcon: IconValue,\n ripple: {\n type: [Boolean, Object],\n default: true\n },\n text: String,\n modelValue: {\n type: Boolean,\n default: true\n },\n onClick: EventProp(),\n onClickOnce: EventProp(),\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeGroupItemProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeSizeProps(),\n ...makeTagProps({\n tag: 'span'\n }),\n ...makeThemeProps(),\n ...makeVariantProps({\n variant: 'tonal'\n })\n}, 'VChip');\nexport const VChip = genericComponent()({\n name: 'VChip',\n directives: {\n Ripple\n },\n props: makeVChipProps(),\n emits: {\n 'click:close': e => true,\n 'update:modelValue': value => true,\n 'group:selected': val => true,\n click: e => true\n },\n setup(props, _ref) {\n let {\n attrs,\n emit,\n slots\n } = _ref;\n const {\n t\n } = useLocale();\n const {\n borderClasses\n } = useBorder(props);\n const {\n colorClasses,\n colorStyles,\n variantClasses\n } = useVariant(props);\n const {\n densityClasses\n } = useDensity(props);\n const {\n elevationClasses\n } = useElevation(props);\n const {\n roundedClasses\n } = useRounded(props);\n const {\n sizeClasses\n } = useSize(props);\n const {\n themeClasses\n } = provideTheme(props);\n const isActive = useProxiedModel(props, 'modelValue');\n const group = useGroupItem(props, VChipGroupSymbol, false);\n const link = useLink(props, attrs);\n const isLink = computed(() => props.link !== false && link.isLink.value);\n const isClickable = computed(() => !props.disabled && props.link !== false && (!!group || props.link || link.isClickable.value));\n const closeProps = computed(() => ({\n 'aria-label': t(props.closeLabel),\n onClick(e) {\n e.preventDefault();\n e.stopPropagation();\n isActive.value = false;\n emit('click:close', e);\n }\n }));\n function onClick(e) {\n emit('click', e);\n if (!isClickable.value) return;\n link.navigate?.(e);\n group?.toggle();\n }\n function onKeyDown(e) {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onClick(e);\n }\n }\n return () => {\n const Tag = link.isLink.value ? 'a' : props.tag;\n const hasAppendMedia = !!(props.appendIcon || props.appendAvatar);\n const hasAppend = !!(hasAppendMedia || slots.append);\n const hasClose = !!(slots.close || props.closable);\n const hasFilter = !!(slots.filter || props.filter) && group;\n const hasPrependMedia = !!(props.prependIcon || props.prependAvatar);\n const hasPrepend = !!(hasPrependMedia || slots.prepend);\n const hasColor = !group || group.isSelected.value;\n return isActive.value && _withDirectives(_createVNode(Tag, _mergeProps({\n \"class\": ['v-chip', {\n 'v-chip--disabled': props.disabled,\n 'v-chip--label': props.label,\n 'v-chip--link': isClickable.value,\n 'v-chip--filter': hasFilter,\n 'v-chip--pill': props.pill,\n [`${props.activeClass}`]: props.activeClass && link.isActive?.value\n }, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, group?.selectedClass.value, props.class],\n \"style\": [hasColor ? colorStyles.value : undefined, props.style],\n \"disabled\": props.disabled || undefined,\n \"draggable\": props.draggable,\n \"tabindex\": isClickable.value ? 0 : undefined,\n \"onClick\": onClick,\n \"onKeydown\": isClickable.value && !isLink.value && onKeyDown\n }, link.linkProps), {\n default: () => [genOverlays(isClickable.value, 'v-chip'), hasFilter && _createVNode(VExpandXTransition, {\n \"key\": \"filter\"\n }, {\n default: () => [_withDirectives(_createVNode(\"div\", {\n \"class\": \"v-chip__filter\"\n }, [!slots.filter ? _createVNode(VIcon, {\n \"key\": \"filter-icon\",\n \"icon\": props.filterIcon\n }, null) : _createVNode(VDefaultsProvider, {\n \"key\": \"filter-defaults\",\n \"disabled\": !props.filterIcon,\n \"defaults\": {\n VIcon: {\n icon: props.filterIcon\n }\n }\n }, slots.filter)]), [[_vShow, group.isSelected.value]])]\n }), hasPrepend && _createVNode(\"div\", {\n \"key\": \"prepend\",\n \"class\": \"v-chip__prepend\"\n }, [!slots.prepend ? _createVNode(_Fragment, null, [props.prependIcon && _createVNode(VIcon, {\n \"key\": \"prepend-icon\",\n \"icon\": props.prependIcon,\n \"start\": true\n }, null), props.prependAvatar && _createVNode(VAvatar, {\n \"key\": \"prepend-avatar\",\n \"image\": props.prependAvatar,\n \"start\": true\n }, null)]) : _createVNode(VDefaultsProvider, {\n \"key\": \"prepend-defaults\",\n \"disabled\": !hasPrependMedia,\n \"defaults\": {\n VAvatar: {\n image: props.prependAvatar,\n start: true\n },\n VIcon: {\n icon: props.prependIcon,\n start: true\n }\n }\n }, slots.prepend)]), _createVNode(\"div\", {\n \"class\": \"v-chip__content\",\n \"data-no-activator\": \"\"\n }, [slots.default?.({\n isSelected: group?.isSelected.value,\n selectedClass: group?.selectedClass.value,\n select: group?.select,\n toggle: group?.toggle,\n value: group?.value.value,\n disabled: props.disabled\n }) ?? props.text]), hasAppend && _createVNode(\"div\", {\n \"key\": \"append\",\n \"class\": \"v-chip__append\"\n }, [!slots.append ? _createVNode(_Fragment, null, [props.appendIcon && _createVNode(VIcon, {\n \"key\": \"append-icon\",\n \"end\": true,\n \"icon\": props.appendIcon\n }, null), props.appendAvatar && _createVNode(VAvatar, {\n \"key\": \"append-avatar\",\n \"end\": true,\n \"image\": props.appendAvatar\n }, null)]) : _createVNode(VDefaultsProvider, {\n \"key\": \"append-defaults\",\n \"disabled\": !hasAppendMedia,\n \"defaults\": {\n VAvatar: {\n end: true,\n image: props.appendAvatar\n },\n VIcon: {\n end: true,\n icon: props.appendIcon\n }\n }\n }, slots.append)]), hasClose && _createVNode(\"button\", _mergeProps({\n \"key\": \"close\",\n \"class\": \"v-chip__close\",\n \"type\": \"button\",\n \"data-testid\": \"close-chip\"\n }, closeProps.value), [!slots.close ? _createVNode(VIcon, {\n \"key\": \"close-icon\",\n \"icon\": props.closeIcon,\n \"size\": \"x-small\"\n }, null) : _createVNode(VDefaultsProvider, {\n \"key\": \"close-defaults\",\n \"defaults\": {\n VIcon: {\n icon: props.closeIcon,\n size: 'x-small'\n }\n }\n }, slots.close)])]\n }), [[_resolveDirective(\"ripple\"), isClickable.value && props.ripple, null]]);\n };\n }\n});\n//# sourceMappingURL=VChip.mjs.map","// Utilities\nimport { computed, inject, provide, shallowRef } from 'vue';\n\n// Types\n\n// Depth\nexport const DepthKey = Symbol.for('vuetify:depth');\nexport function useDepth(hasPrepend) {\n const parent = inject(DepthKey, shallowRef(-1));\n const depth = computed(() => parent.value + 1 + (hasPrepend?.value ? 1 : 0));\n provide(DepthKey, depth);\n return depth;\n}\n\n// List\nexport const ListKey = Symbol.for('vuetify:list');\nexport function createList() {\n const parent = inject(ListKey, {\n hasPrepend: shallowRef(false),\n updateHasPrepend: () => null\n });\n const data = {\n hasPrepend: shallowRef(false),\n updateHasPrepend: value => {\n if (value) data.hasPrepend.value = value;\n }\n };\n provide(ListKey, data);\n return parent;\n}\nexport function useList() {\n return inject(ListKey, null);\n}\n//# sourceMappingURL=list.mjs.map","/* eslint-disable sonarjs/no-identical-functions */\n// Utilities\nimport { toRaw } from 'vue';\nimport { wrapInArray } from \"../../util/index.mjs\";\nexport const independentActiveStrategy = mandatory => {\n const strategy = {\n activate: _ref => {\n let {\n id,\n value,\n activated\n } = _ref;\n id = toRaw(id);\n\n // When mandatory and we're trying to deselect when id\n // is the only currently selected item then do nothing\n if (mandatory && !value && activated.size === 1 && activated.has(id)) return activated;\n if (value) {\n activated.add(id);\n } else {\n activated.delete(id);\n }\n return activated;\n },\n in: (v, children, parents) => {\n let set = new Set();\n if (v != null) {\n for (const id of wrapInArray(v)) {\n set = strategy.activate({\n id,\n value: true,\n activated: new Set(set),\n children,\n parents\n });\n }\n }\n return set;\n },\n out: v => {\n return Array.from(v);\n }\n };\n return strategy;\n};\nexport const independentSingleActiveStrategy = mandatory => {\n const parentStrategy = independentActiveStrategy(mandatory);\n const strategy = {\n activate: _ref2 => {\n let {\n activated,\n id,\n ...rest\n } = _ref2;\n id = toRaw(id);\n const singleSelected = activated.has(id) ? new Set([id]) : new Set();\n return parentStrategy.activate({\n ...rest,\n id,\n activated: singleSelected\n });\n },\n in: (v, children, parents) => {\n let set = new Set();\n if (v != null) {\n const arr = wrapInArray(v);\n if (arr.length) {\n set = parentStrategy.in(arr.slice(0, 1), children, parents);\n }\n }\n return set;\n },\n out: (v, children, parents) => {\n return parentStrategy.out(v, children, parents);\n }\n };\n return strategy;\n};\nexport const leafActiveStrategy = mandatory => {\n const parentStrategy = independentActiveStrategy(mandatory);\n const strategy = {\n activate: _ref3 => {\n let {\n id,\n activated,\n children,\n ...rest\n } = _ref3;\n id = toRaw(id);\n if (children.has(id)) return activated;\n return parentStrategy.activate({\n id,\n activated,\n children,\n ...rest\n });\n },\n in: parentStrategy.in,\n out: parentStrategy.out\n };\n return strategy;\n};\nexport const leafSingleActiveStrategy = mandatory => {\n const parentStrategy = independentSingleActiveStrategy(mandatory);\n const strategy = {\n activate: _ref4 => {\n let {\n id,\n activated,\n children,\n ...rest\n } = _ref4;\n id = toRaw(id);\n if (children.has(id)) return activated;\n return parentStrategy.activate({\n id,\n activated,\n children,\n ...rest\n });\n },\n in: parentStrategy.in,\n out: parentStrategy.out\n };\n return strategy;\n};\n//# sourceMappingURL=activeStrategies.mjs.map","export const singleOpenStrategy = {\n open: _ref => {\n let {\n id,\n value,\n opened,\n parents\n } = _ref;\n if (value) {\n const newOpened = new Set();\n newOpened.add(id);\n let parent = parents.get(id);\n while (parent != null) {\n newOpened.add(parent);\n parent = parents.get(parent);\n }\n return newOpened;\n } else {\n opened.delete(id);\n return opened;\n }\n },\n select: () => null\n};\nexport const multipleOpenStrategy = {\n open: _ref2 => {\n let {\n id,\n value,\n opened,\n parents\n } = _ref2;\n if (value) {\n let parent = parents.get(id);\n opened.add(id);\n while (parent != null && parent !== id) {\n opened.add(parent);\n parent = parents.get(parent);\n }\n return opened;\n } else {\n opened.delete(id);\n }\n return opened;\n },\n select: () => null\n};\nexport const listOpenStrategy = {\n open: multipleOpenStrategy.open,\n select: _ref3 => {\n let {\n id,\n value,\n opened,\n parents\n } = _ref3;\n if (!value) return opened;\n const path = [];\n let parent = parents.get(id);\n while (parent != null) {\n path.push(parent);\n parent = parents.get(parent);\n }\n return new Set(path);\n }\n};\n//# sourceMappingURL=openStrategies.mjs.map","/* eslint-disable sonarjs/no-identical-functions */\n// Utilities\nimport { toRaw } from 'vue';\nexport const independentSelectStrategy = mandatory => {\n const strategy = {\n select: _ref => {\n let {\n id,\n value,\n selected\n } = _ref;\n id = toRaw(id);\n\n // When mandatory and we're trying to deselect when id\n // is the only currently selected item then do nothing\n if (mandatory && !value) {\n const on = Array.from(selected.entries()).reduce((arr, _ref2) => {\n let [key, value] = _ref2;\n if (value === 'on') arr.push(key);\n return arr;\n }, []);\n if (on.length === 1 && on[0] === id) return selected;\n }\n selected.set(id, value ? 'on' : 'off');\n return selected;\n },\n in: (v, children, parents) => {\n const map = new Map();\n for (const id of v || []) {\n strategy.select({\n id,\n value: true,\n selected: map,\n children,\n parents\n });\n }\n return map;\n },\n out: v => {\n const arr = [];\n for (const [key, value] of v.entries()) {\n if (value === 'on') arr.push(key);\n }\n return arr;\n }\n };\n return strategy;\n};\nexport const independentSingleSelectStrategy = mandatory => {\n const parentStrategy = independentSelectStrategy(mandatory);\n const strategy = {\n select: _ref3 => {\n let {\n selected,\n id,\n ...rest\n } = _ref3;\n id = toRaw(id);\n const singleSelected = selected.has(id) ? new Map([[id, selected.get(id)]]) : new Map();\n return parentStrategy.select({\n ...rest,\n id,\n selected: singleSelected\n });\n },\n in: (v, children, parents) => {\n if (v?.length) {\n return parentStrategy.in(v.slice(0, 1), children, parents);\n }\n return new Map();\n },\n out: (v, children, parents) => {\n return parentStrategy.out(v, children, parents);\n }\n };\n return strategy;\n};\nexport const leafSelectStrategy = mandatory => {\n const parentStrategy = independentSelectStrategy(mandatory);\n const strategy = {\n select: _ref4 => {\n let {\n id,\n selected,\n children,\n ...rest\n } = _ref4;\n id = toRaw(id);\n if (children.has(id)) return selected;\n return parentStrategy.select({\n id,\n selected,\n children,\n ...rest\n });\n },\n in: parentStrategy.in,\n out: parentStrategy.out\n };\n return strategy;\n};\nexport const leafSingleSelectStrategy = mandatory => {\n const parentStrategy = independentSingleSelectStrategy(mandatory);\n const strategy = {\n select: _ref5 => {\n let {\n id,\n selected,\n children,\n ...rest\n } = _ref5;\n id = toRaw(id);\n if (children.has(id)) return selected;\n return parentStrategy.select({\n id,\n selected,\n children,\n ...rest\n });\n },\n in: parentStrategy.in,\n out: parentStrategy.out\n };\n return strategy;\n};\nexport const classicSelectStrategy = mandatory => {\n const strategy = {\n select: _ref6 => {\n let {\n id,\n value,\n selected,\n children,\n parents\n } = _ref6;\n id = toRaw(id);\n const original = new Map(selected);\n const items = [id];\n while (items.length) {\n const item = items.shift();\n selected.set(toRaw(item), value ? 'on' : 'off');\n if (children.has(item)) {\n items.push(...children.get(item));\n }\n }\n let parent = toRaw(parents.get(id));\n while (parent) {\n const childrenIds = children.get(parent);\n const everySelected = childrenIds.every(cid => selected.get(toRaw(cid)) === 'on');\n const noneSelected = childrenIds.every(cid => !selected.has(toRaw(cid)) || selected.get(toRaw(cid)) === 'off');\n selected.set(parent, everySelected ? 'on' : noneSelected ? 'off' : 'indeterminate');\n parent = toRaw(parents.get(parent));\n }\n\n // If mandatory and planned deselect results in no selected\n // items then we can't do it, so return original state\n if (mandatory && !value) {\n const on = Array.from(selected.entries()).reduce((arr, _ref7) => {\n let [key, value] = _ref7;\n if (value === 'on') arr.push(key);\n return arr;\n }, []);\n if (on.length === 0) return original;\n }\n return selected;\n },\n in: (v, children, parents) => {\n let map = new Map();\n for (const id of v || []) {\n map = strategy.select({\n id,\n value: true,\n selected: map,\n children,\n parents\n });\n }\n return map;\n },\n out: (v, children) => {\n const arr = [];\n for (const [key, value] of v.entries()) {\n if (value === 'on' && !children.has(key)) arr.push(key);\n }\n return arr;\n }\n };\n return strategy;\n};\n//# sourceMappingURL=selectStrategies.mjs.map","// Composables\nimport { useProxiedModel } from \"../proxiedModel.mjs\"; // Utilities\nimport { computed, inject, onBeforeMount, onBeforeUnmount, provide, ref, shallowRef, toRaw, toRef } from 'vue';\nimport { independentActiveStrategy, independentSingleActiveStrategy, leafActiveStrategy, leafSingleActiveStrategy } from \"./activeStrategies.mjs\";\nimport { listOpenStrategy, multipleOpenStrategy, singleOpenStrategy } from \"./openStrategies.mjs\";\nimport { classicSelectStrategy, independentSelectStrategy, independentSingleSelectStrategy, leafSelectStrategy, leafSingleSelectStrategy } from \"./selectStrategies.mjs\";\nimport { consoleError, getCurrentInstance, getUid, propsFactory } from \"../../util/index.mjs\"; // Types\nexport const VNestedSymbol = Symbol.for('vuetify:nested');\nexport const emptyNested = {\n id: shallowRef(),\n root: {\n register: () => null,\n unregister: () => null,\n parents: ref(new Map()),\n children: ref(new Map()),\n open: () => null,\n openOnSelect: () => null,\n activate: () => null,\n select: () => null,\n activatable: ref(false),\n selectable: ref(false),\n opened: ref(new Set()),\n activated: ref(new Set()),\n selected: ref(new Map()),\n selectedValues: ref([]),\n getPath: () => []\n }\n};\nexport const makeNestedProps = propsFactory({\n activatable: Boolean,\n selectable: Boolean,\n activeStrategy: [String, Function, Object],\n selectStrategy: [String, Function, Object],\n openStrategy: [String, Object],\n opened: null,\n activated: null,\n selected: null,\n mandatory: Boolean\n}, 'nested');\nexport const useNested = props => {\n let isUnmounted = false;\n const children = ref(new Map());\n const parents = ref(new Map());\n const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(v), v => [...v.values()]);\n const activeStrategy = computed(() => {\n if (typeof props.activeStrategy === 'object') return props.activeStrategy;\n if (typeof props.activeStrategy === 'function') return props.activeStrategy(props.mandatory);\n switch (props.activeStrategy) {\n case 'leaf':\n return leafActiveStrategy(props.mandatory);\n case 'single-leaf':\n return leafSingleActiveStrategy(props.mandatory);\n case 'independent':\n return independentActiveStrategy(props.mandatory);\n case 'single-independent':\n default:\n return independentSingleActiveStrategy(props.mandatory);\n }\n });\n const selectStrategy = computed(() => {\n if (typeof props.selectStrategy === 'object') return props.selectStrategy;\n if (typeof props.selectStrategy === 'function') return props.selectStrategy(props.mandatory);\n switch (props.selectStrategy) {\n case 'single-leaf':\n return leafSingleSelectStrategy(props.mandatory);\n case 'leaf':\n return leafSelectStrategy(props.mandatory);\n case 'independent':\n return independentSelectStrategy(props.mandatory);\n case 'single-independent':\n return independentSingleSelectStrategy(props.mandatory);\n case 'classic':\n default:\n return classicSelectStrategy(props.mandatory);\n }\n });\n const openStrategy = computed(() => {\n if (typeof props.openStrategy === 'object') return props.openStrategy;\n switch (props.openStrategy) {\n case 'list':\n return listOpenStrategy;\n case 'single':\n return singleOpenStrategy;\n case 'multiple':\n default:\n return multipleOpenStrategy;\n }\n });\n const activated = useProxiedModel(props, 'activated', props.activated, v => activeStrategy.value.in(v, children.value, parents.value), v => activeStrategy.value.out(v, children.value, parents.value));\n const selected = useProxiedModel(props, 'selected', props.selected, v => selectStrategy.value.in(v, children.value, parents.value), v => selectStrategy.value.out(v, children.value, parents.value));\n onBeforeUnmount(() => {\n isUnmounted = true;\n });\n function getPath(id) {\n const path = [];\n let parent = id;\n while (parent != null) {\n path.unshift(parent);\n parent = parents.value.get(parent);\n }\n return path;\n }\n const vm = getCurrentInstance('nested');\n const nodeIds = new Set();\n const nested = {\n id: shallowRef(),\n root: {\n opened,\n activatable: toRef(props, 'activatable'),\n selectable: toRef(props, 'selectable'),\n activated,\n selected,\n selectedValues: computed(() => {\n const arr = [];\n for (const [key, value] of selected.value.entries()) {\n if (value === 'on') arr.push(key);\n }\n return arr;\n }),\n register: (id, parentId, isGroup) => {\n if (nodeIds.has(id)) {\n const path = getPath(id).map(String).join(' -> ');\n const newPath = getPath(parentId).concat(id).map(String).join(' -> ');\n consoleError(`Multiple nodes with the same ID\\n\\t${path}\\n\\t${newPath}`);\n return;\n } else {\n nodeIds.add(id);\n }\n parentId && id !== parentId && parents.value.set(id, parentId);\n isGroup && children.value.set(id, []);\n if (parentId != null) {\n children.value.set(parentId, [...(children.value.get(parentId) || []), id]);\n }\n },\n unregister: id => {\n if (isUnmounted) return;\n nodeIds.delete(id);\n children.value.delete(id);\n const parent = parents.value.get(id);\n if (parent) {\n const list = children.value.get(parent) ?? [];\n children.value.set(parent, list.filter(child => child !== id));\n }\n parents.value.delete(id);\n },\n open: (id, value, event) => {\n vm.emit('click:open', {\n id,\n value,\n path: getPath(id),\n event\n });\n const newOpened = openStrategy.value.open({\n id,\n value,\n opened: new Set(opened.value),\n children: children.value,\n parents: parents.value,\n event\n });\n newOpened && (opened.value = newOpened);\n },\n openOnSelect: (id, value, event) => {\n const newOpened = openStrategy.value.select({\n id,\n value,\n selected: new Map(selected.value),\n opened: new Set(opened.value),\n children: children.value,\n parents: parents.value,\n event\n });\n newOpened && (opened.value = newOpened);\n },\n select: (id, value, event) => {\n vm.emit('click:select', {\n id,\n value,\n path: getPath(id),\n event\n });\n const newSelected = selectStrategy.value.select({\n id,\n value,\n selected: new Map(selected.value),\n children: children.value,\n parents: parents.value,\n event\n });\n newSelected && (selected.value = newSelected);\n nested.root.openOnSelect(id, value, event);\n },\n activate: (id, value, event) => {\n if (!props.activatable) {\n return nested.root.select(id, true, event);\n }\n vm.emit('click:activate', {\n id,\n value,\n path: getPath(id),\n event\n });\n const newActivated = activeStrategy.value.activate({\n id,\n value,\n activated: new Set(activated.value),\n children: children.value,\n parents: parents.value,\n event\n });\n if (newActivated.size !== activated.value.size) {\n activated.value = newActivated;\n } else {\n for (const value of newActivated) {\n if (!activated.value.has(value)) {\n activated.value = newActivated;\n return;\n }\n }\n for (const value of activated.value) {\n if (!newActivated.has(value)) {\n activated.value = newActivated;\n return;\n }\n }\n }\n },\n children,\n parents,\n getPath\n }\n };\n provide(VNestedSymbol, nested);\n return nested.root;\n};\nexport const useNestedItem = (id, isGroup) => {\n const parent = inject(VNestedSymbol, emptyNested);\n const uidSymbol = Symbol(getUid());\n const computedId = computed(() => id.value !== undefined ? id.value : uidSymbol);\n const item = {\n ...parent,\n id: computedId,\n open: (open, e) => parent.root.open(computedId.value, open, e),\n openOnSelect: (open, e) => parent.root.openOnSelect(computedId.value, open, e),\n isOpen: computed(() => parent.root.opened.value.has(computedId.value)),\n parent: computed(() => parent.root.parents.value.get(computedId.value)),\n activate: (activated, e) => parent.root.activate(computedId.value, activated, e),\n isActivated: computed(() => parent.root.activated.value.has(toRaw(computedId.value))),\n select: (selected, e) => parent.root.select(computedId.value, selected, e),\n isSelected: computed(() => parent.root.selected.value.get(toRaw(computedId.value)) === 'on'),\n isIndeterminate: computed(() => parent.root.selected.value.get(toRaw(computedId.value)) === 'indeterminate'),\n isLeaf: computed(() => !parent.root.children.value.get(computedId.value)),\n isGroupActivator: parent.isGroupActivator\n };\n onBeforeMount(() => {\n !parent.isGroupActivator && parent.root.register(computedId.value, parent.id.value, isGroup);\n });\n onBeforeUnmount(() => {\n !parent.isGroupActivator && parent.root.unregister(computedId.value);\n });\n isGroup && provide(VNestedSymbol, item);\n return item;\n};\nexport const useNestedGroupActivator = () => {\n const parent = inject(VNestedSymbol, emptyNested);\n provide(VNestedSymbol, {\n ...parent,\n isGroupActivator: true\n });\n};\n//# sourceMappingURL=nested.mjs.map","import { createVNode as _createVNode, vShow as _vShow, withDirectives as _withDirectives } from \"vue\";\n// Components\nimport { VExpandTransition } from \"../transitions/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\"; // Composables\nimport { useList } from \"./list.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { useNestedGroupActivator, useNestedItem } from \"../../composables/nested/nested.mjs\";\nimport { useSsrBoot } from \"../../composables/ssrBoot.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { MaybeTransition } from \"../../composables/transition.mjs\"; // Utilities\nimport { computed, toRef } from 'vue';\nimport { defineComponent, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nconst VListGroupActivator = defineComponent({\n name: 'VListGroupActivator',\n setup(_, _ref) {\n let {\n slots\n } = _ref;\n useNestedGroupActivator();\n return () => slots.default?.();\n }\n});\nexport const makeVListGroupProps = propsFactory({\n /* @deprecated */\n activeColor: String,\n baseColor: String,\n color: String,\n collapseIcon: {\n type: IconValue,\n default: '$collapse'\n },\n expandIcon: {\n type: IconValue,\n default: '$expand'\n },\n prependIcon: IconValue,\n appendIcon: IconValue,\n fluid: Boolean,\n subgroup: Boolean,\n title: String,\n value: null,\n ...makeComponentProps(),\n ...makeTagProps()\n}, 'VListGroup');\nexport const VListGroup = genericComponent()({\n name: 'VListGroup',\n props: makeVListGroupProps(),\n setup(props, _ref2) {\n let {\n slots\n } = _ref2;\n const {\n isOpen,\n open,\n id: _id\n } = useNestedItem(toRef(props, 'value'), true);\n const id = computed(() => `v-list-group--id-${String(_id.value)}`);\n const list = useList();\n const {\n isBooted\n } = useSsrBoot();\n function onClick(e) {\n e.stopPropagation();\n open(!isOpen.value, e);\n }\n const activatorProps = computed(() => ({\n onClick,\n class: 'v-list-group__header',\n id: id.value\n }));\n const toggleIcon = computed(() => isOpen.value ? props.collapseIcon : props.expandIcon);\n const activatorDefaults = computed(() => ({\n VListItem: {\n active: isOpen.value,\n activeColor: props.activeColor,\n baseColor: props.baseColor,\n color: props.color,\n prependIcon: props.prependIcon || props.subgroup && toggleIcon.value,\n appendIcon: props.appendIcon || !props.subgroup && toggleIcon.value,\n title: props.title,\n value: props.value\n }\n }));\n useRender(() => _createVNode(props.tag, {\n \"class\": ['v-list-group', {\n 'v-list-group--prepend': list?.hasPrepend.value,\n 'v-list-group--fluid': props.fluid,\n 'v-list-group--subgroup': props.subgroup,\n 'v-list-group--open': isOpen.value\n }, props.class],\n \"style\": props.style\n }, {\n default: () => [slots.activator && _createVNode(VDefaultsProvider, {\n \"defaults\": activatorDefaults.value\n }, {\n default: () => [_createVNode(VListGroupActivator, null, {\n default: () => [slots.activator({\n props: activatorProps.value,\n isOpen: isOpen.value\n })]\n })]\n }), _createVNode(MaybeTransition, {\n \"transition\": {\n component: VExpandTransition\n },\n \"disabled\": !isBooted.value\n }, {\n default: () => [_withDirectives(_createVNode(\"div\", {\n \"class\": \"v-list-group__items\",\n \"role\": \"group\",\n \"aria-labelledby\": id.value\n }, [slots.default?.()]), [[_vShow, isOpen.value]])]\n })]\n }));\n return {\n isOpen\n };\n }\n});\n//# sourceMappingURL=VListGroup.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVListItemSubtitleProps = propsFactory({\n opacity: [Number, String],\n ...makeComponentProps(),\n ...makeTagProps()\n}, 'VListItemSubtitle');\nexport const VListItemSubtitle = genericComponent()({\n name: 'VListItemSubtitle',\n props: makeVListItemSubtitleProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => _createVNode(props.tag, {\n \"class\": ['v-list-item-subtitle', props.class],\n \"style\": [{\n '--v-list-item-subtitle-opacity': props.opacity\n }, props.style]\n }, slots));\n return {};\n }\n});\n//# sourceMappingURL=VListItemSubtitle.mjs.map","// Utilities\nimport { createSimpleFunctional } from \"../../util/index.mjs\";\nexport const VListItemTitle = createSimpleFunctional('v-list-item-title');\n//# sourceMappingURL=VListItemTitle.mjs.map","import { Fragment as _Fragment, createVNode as _createVNode, resolveDirective as _resolveDirective, mergeProps as _mergeProps, withDirectives as _withDirectives } from \"vue\";\n// Styles\nimport \"./VListItem.css\";\n\n// Components\nimport { VListItemSubtitle } from \"./VListItemSubtitle.mjs\";\nimport { VListItemTitle } from \"./VListItemTitle.mjs\";\nimport { VAvatar } from \"../VAvatar/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\"; // Composables\nimport { useList } from \"./list.mjs\";\nimport { makeBorderProps, useBorder } from \"../../composables/border.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { useNestedItem } from \"../../composables/nested/nested.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeRouterProps, useLink } from \"../../composables/router.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\";\nimport { genOverlays, makeVariantProps, useVariant } from \"../../composables/variant.mjs\"; // Directives\nimport { Ripple } from \"../../directives/ripple/index.mjs\"; // Utilities\nimport { computed, onBeforeMount, watch } from 'vue';\nimport { deprecate, EventProp, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVListItemProps = propsFactory({\n active: {\n type: Boolean,\n default: undefined\n },\n activeClass: String,\n /* @deprecated */\n activeColor: String,\n appendAvatar: String,\n appendIcon: IconValue,\n baseColor: String,\n disabled: Boolean,\n lines: [Boolean, String],\n link: {\n type: Boolean,\n default: undefined\n },\n nav: Boolean,\n prependAvatar: String,\n prependIcon: IconValue,\n ripple: {\n type: [Boolean, Object],\n default: true\n },\n slim: Boolean,\n subtitle: [String, Number],\n title: [String, Number],\n value: null,\n onClick: EventProp(),\n onClickOnce: EventProp(),\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({\n variant: 'text'\n })\n}, 'VListItem');\nexport const VListItem = genericComponent()({\n name: 'VListItem',\n directives: {\n Ripple\n },\n props: makeVListItemProps(),\n emits: {\n click: e => true\n },\n setup(props, _ref) {\n let {\n attrs,\n slots,\n emit\n } = _ref;\n const link = useLink(props, attrs);\n const id = computed(() => props.value === undefined ? link.href.value : props.value);\n const {\n activate,\n isActivated,\n select,\n isOpen,\n isSelected,\n isIndeterminate,\n isGroupActivator,\n root,\n parent,\n openOnSelect,\n id: uid\n } = useNestedItem(id, false);\n const list = useList();\n const isActive = computed(() => props.active !== false && (props.active || link.isActive?.value || (root.activatable.value ? isActivated.value : isSelected.value)));\n const isLink = computed(() => props.link !== false && link.isLink.value);\n const isSelectable = computed(() => !!list && (root.selectable.value || root.activatable.value || props.value != null));\n const isClickable = computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value || isSelectable.value));\n const roundedProps = computed(() => props.rounded || props.nav);\n const color = computed(() => props.color ?? props.activeColor);\n const variantProps = computed(() => ({\n color: isActive.value ? color.value ?? props.baseColor : props.baseColor,\n variant: props.variant\n }));\n\n // useNestedItem doesn't call register until beforeMount,\n // so this can't be an immediate watcher as we don't know parent yet\n watch(() => link.isActive?.value, val => {\n if (!val) return;\n handleActiveLink();\n });\n onBeforeMount(() => {\n if (link.isActive?.value) handleActiveLink();\n });\n function handleActiveLink() {\n if (parent.value != null) {\n root.open(parent.value, true);\n }\n openOnSelect(true);\n }\n const {\n themeClasses\n } = provideTheme(props);\n const {\n borderClasses\n } = useBorder(props);\n const {\n colorClasses,\n colorStyles,\n variantClasses\n } = useVariant(variantProps);\n const {\n densityClasses\n } = useDensity(props);\n const {\n dimensionStyles\n } = useDimension(props);\n const {\n elevationClasses\n } = useElevation(props);\n const {\n roundedClasses\n } = useRounded(roundedProps);\n const lineClasses = computed(() => props.lines ? `v-list-item--${props.lines}-line` : undefined);\n const slotProps = computed(() => ({\n isActive: isActive.value,\n select,\n isOpen: isOpen.value,\n isSelected: isSelected.value,\n isIndeterminate: isIndeterminate.value\n }));\n function onClick(e) {\n emit('click', e);\n if (!isClickable.value) return;\n link.navigate?.(e);\n if (isGroupActivator) return;\n if (root.activatable.value) {\n activate(!isActivated.value, e);\n } else if (root.selectable.value) {\n select(!isSelected.value, e);\n } else if (props.value != null) {\n select(!isSelected.value, e);\n }\n }\n function onKeyDown(e) {\n const target = e.target;\n if (['INPUT', 'TEXTAREA'].includes(target.tagName)) return;\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n e.target.dispatchEvent(new MouseEvent('click', e));\n }\n }\n useRender(() => {\n const Tag = isLink.value ? 'a' : props.tag;\n const hasTitle = slots.title || props.title != null;\n const hasSubtitle = slots.subtitle || props.subtitle != null;\n const hasAppendMedia = !!(props.appendAvatar || props.appendIcon);\n const hasAppend = !!(hasAppendMedia || slots.append);\n const hasPrependMedia = !!(props.prependAvatar || props.prependIcon);\n const hasPrepend = !!(hasPrependMedia || slots.prepend);\n list?.updateHasPrepend(hasPrepend);\n if (props.activeColor) {\n deprecate('active-color', ['color', 'base-color']);\n }\n return _withDirectives(_createVNode(Tag, _mergeProps({\n \"class\": ['v-list-item', {\n 'v-list-item--active': isActive.value,\n 'v-list-item--disabled': props.disabled,\n 'v-list-item--link': isClickable.value,\n 'v-list-item--nav': props.nav,\n 'v-list-item--prepend': !hasPrepend && list?.hasPrepend.value,\n 'v-list-item--slim': props.slim,\n [`${props.activeClass}`]: props.activeClass && isActive.value\n }, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, variantClasses.value, props.class],\n \"style\": [colorStyles.value, dimensionStyles.value, props.style],\n \"tabindex\": isClickable.value ? list ? -2 : 0 : undefined,\n \"aria-selected\": isSelectable.value ? root.activatable.value ? isActivated.value : root.selectable.value ? isSelected.value : isActive.value : undefined,\n \"onClick\": onClick,\n \"onKeydown\": isClickable.value && !isLink.value && onKeyDown\n }, link.linkProps), {\n default: () => [genOverlays(isClickable.value || isActive.value, 'v-list-item'), hasPrepend && _createVNode(\"div\", {\n \"key\": \"prepend\",\n \"class\": \"v-list-item__prepend\"\n }, [!slots.prepend ? _createVNode(_Fragment, null, [props.prependAvatar && _createVNode(VAvatar, {\n \"key\": \"prepend-avatar\",\n \"density\": props.density,\n \"image\": props.prependAvatar\n }, null), props.prependIcon && _createVNode(VIcon, {\n \"key\": \"prepend-icon\",\n \"density\": props.density,\n \"icon\": props.prependIcon\n }, null)]) : _createVNode(VDefaultsProvider, {\n \"key\": \"prepend-defaults\",\n \"disabled\": !hasPrependMedia,\n \"defaults\": {\n VAvatar: {\n density: props.density,\n image: props.prependAvatar\n },\n VIcon: {\n density: props.density,\n icon: props.prependIcon\n },\n VListItemAction: {\n start: true\n }\n }\n }, {\n default: () => [slots.prepend?.(slotProps.value)]\n }), _createVNode(\"div\", {\n \"class\": \"v-list-item__spacer\"\n }, null)]), _createVNode(\"div\", {\n \"class\": \"v-list-item__content\",\n \"data-no-activator\": \"\"\n }, [hasTitle && _createVNode(VListItemTitle, {\n \"key\": \"title\"\n }, {\n default: () => [slots.title?.({\n title: props.title\n }) ?? props.title]\n }), hasSubtitle && _createVNode(VListItemSubtitle, {\n \"key\": \"subtitle\"\n }, {\n default: () => [slots.subtitle?.({\n subtitle: props.subtitle\n }) ?? props.subtitle]\n }), slots.default?.(slotProps.value)]), hasAppend && _createVNode(\"div\", {\n \"key\": \"append\",\n \"class\": \"v-list-item__append\"\n }, [!slots.append ? _createVNode(_Fragment, null, [props.appendIcon && _createVNode(VIcon, {\n \"key\": \"append-icon\",\n \"density\": props.density,\n \"icon\": props.appendIcon\n }, null), props.appendAvatar && _createVNode(VAvatar, {\n \"key\": \"append-avatar\",\n \"density\": props.density,\n \"image\": props.appendAvatar\n }, null)]) : _createVNode(VDefaultsProvider, {\n \"key\": \"append-defaults\",\n \"disabled\": !hasAppendMedia,\n \"defaults\": {\n VAvatar: {\n density: props.density,\n image: props.appendAvatar\n },\n VIcon: {\n density: props.density,\n icon: props.appendIcon\n },\n VListItemAction: {\n end: true\n }\n }\n }, {\n default: () => [slots.append?.(slotProps.value)]\n }), _createVNode(\"div\", {\n \"class\": \"v-list-item__spacer\"\n }, null)])]\n }), [[_resolveDirective(\"ripple\"), isClickable.value && props.ripple]]);\n });\n return {\n activate,\n isActivated,\n isGroupActivator,\n isSelected,\n list,\n select,\n root,\n id: uid,\n link\n };\n }\n});\n//# sourceMappingURL=VListItem.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Composables\nimport { useTextColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { toRef } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVListSubheaderProps = propsFactory({\n color: String,\n inset: Boolean,\n sticky: Boolean,\n title: String,\n ...makeComponentProps(),\n ...makeTagProps()\n}, 'VListSubheader');\nexport const VListSubheader = genericComponent()({\n name: 'VListSubheader',\n props: makeVListSubheaderProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(toRef(props, 'color'));\n useRender(() => {\n const hasText = !!(slots.default || props.title);\n return _createVNode(props.tag, {\n \"class\": ['v-list-subheader', {\n 'v-list-subheader--inset': props.inset,\n 'v-list-subheader--sticky': props.sticky\n }, textColorClasses.value, props.class],\n \"style\": [{\n textColorStyles\n }, props.style]\n }, {\n default: () => [hasText && _createVNode(\"div\", {\n \"class\": \"v-list-subheader__text\"\n }, [slots.default?.() ?? props.title])]\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VListSubheader.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VDivider.css\";\n\n// Composables\nimport { useTextColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { computed, toRef } from 'vue';\nimport { convertToUnit, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVDividerProps = propsFactory({\n color: String,\n inset: Boolean,\n length: [Number, String],\n opacity: [Number, String],\n thickness: [Number, String],\n vertical: Boolean,\n ...makeComponentProps(),\n ...makeThemeProps()\n}, 'VDivider');\nexport const VDivider = genericComponent()({\n name: 'VDivider',\n props: makeVDividerProps(),\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(toRef(props, 'color'));\n const dividerStyles = computed(() => {\n const styles = {};\n if (props.length) {\n styles[props.vertical ? 'height' : 'width'] = convertToUnit(props.length);\n }\n if (props.thickness) {\n styles[props.vertical ? 'borderRightWidth' : 'borderTopWidth'] = convertToUnit(props.thickness);\n }\n return styles;\n });\n useRender(() => {\n const divider = _createVNode(\"hr\", {\n \"class\": [{\n 'v-divider': true,\n 'v-divider--inset': props.inset,\n 'v-divider--vertical': props.vertical\n }, themeClasses.value, textColorClasses.value, props.class],\n \"style\": [dividerStyles.value, textColorStyles.value, {\n '--v-border-opacity': props.opacity\n }, props.style],\n \"aria-orientation\": !attrs.role || attrs.role === 'separator' ? props.vertical ? 'vertical' : 'horizontal' : undefined,\n \"role\": `${attrs.role || 'separator'}`\n }, null);\n if (!slots.default) return divider;\n return _createVNode(\"div\", {\n \"class\": ['v-divider__wrapper', {\n 'v-divider__wrapper--vertical': props.vertical,\n 'v-divider__wrapper--inset': props.inset\n }]\n }, [divider, _createVNode(\"div\", {\n \"class\": \"v-divider__content\"\n }, [slots.default()]), divider]);\n });\n return {};\n }\n});\n//# sourceMappingURL=VDivider.mjs.map","import { createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\n// Components\nimport { VListGroup } from \"./VListGroup.mjs\";\nimport { VListItem } from \"./VListItem.mjs\";\nimport { VListSubheader } from \"./VListSubheader.mjs\";\nimport { VDivider } from \"../VDivider/index.mjs\"; // Utilities\nimport { createList } from \"./list.mjs\";\nimport { genericComponent, propsFactory } from \"../../util/index.mjs\"; // Types\nexport const makeVListChildrenProps = propsFactory({\n items: Array,\n returnObject: Boolean\n}, 'VListChildren');\nexport const VListChildren = genericComponent()({\n name: 'VListChildren',\n props: makeVListChildrenProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n createList();\n return () => slots.default?.() ?? props.items?.map(_ref2 => {\n let {\n children,\n props: itemProps,\n type,\n raw: item\n } = _ref2;\n if (type === 'divider') {\n return slots.divider?.({\n props: itemProps\n }) ?? _createVNode(VDivider, itemProps, null);\n }\n if (type === 'subheader') {\n return slots.subheader?.({\n props: itemProps\n }) ?? _createVNode(VListSubheader, itemProps, null);\n }\n const slotsWithItem = {\n subtitle: slots.subtitle ? slotProps => slots.subtitle?.({\n ...slotProps,\n item\n }) : undefined,\n prepend: slots.prepend ? slotProps => slots.prepend?.({\n ...slotProps,\n item\n }) : undefined,\n append: slots.append ? slotProps => slots.append?.({\n ...slotProps,\n item\n }) : undefined,\n title: slots.title ? slotProps => slots.title?.({\n ...slotProps,\n item\n }) : undefined\n };\n const listGroupProps = VListGroup.filterProps(itemProps);\n return children ? _createVNode(VListGroup, _mergeProps({\n \"value\": itemProps?.value\n }, listGroupProps), {\n activator: _ref3 => {\n let {\n props: activatorProps\n } = _ref3;\n const listItemProps = {\n ...itemProps,\n ...activatorProps,\n value: props.returnObject ? item : itemProps.value\n };\n return slots.header ? slots.header({\n props: listItemProps\n }) : _createVNode(VListItem, listItemProps, slotsWithItem);\n },\n default: () => _createVNode(VListChildren, {\n \"items\": children,\n \"returnObject\": props.returnObject\n }, slots)\n }) : slots.item ? slots.item({\n props: itemProps\n }) : _createVNode(VListItem, _mergeProps(itemProps, {\n \"value\": props.returnObject ? item : itemProps.value\n }), slotsWithItem);\n });\n }\n});\n//# sourceMappingURL=VListChildren.mjs.map","// Utilities\nimport { computed, shallowRef, watchEffect } from 'vue';\nimport { deepEqual, getPropertyFromItem, isPrimitive, omit, pick, propsFactory } from \"../util/index.mjs\"; // Types\n// Composables\nexport const makeItemsProps = propsFactory({\n items: {\n type: Array,\n default: () => []\n },\n itemTitle: {\n type: [String, Array, Function],\n default: 'title'\n },\n itemValue: {\n type: [String, Array, Function],\n default: 'value'\n },\n itemChildren: {\n type: [Boolean, String, Array, Function],\n default: 'children'\n },\n itemProps: {\n type: [Boolean, String, Array, Function],\n default: 'props'\n },\n returnObject: Boolean,\n valueComparator: Function\n}, 'list-items');\nexport function transformItem(props, item) {\n const title = getPropertyFromItem(item, props.itemTitle, item);\n const value = getPropertyFromItem(item, props.itemValue, title);\n const children = getPropertyFromItem(item, props.itemChildren);\n const itemProps = props.itemProps === true ? typeof item === 'object' && item != null && !Array.isArray(item) ? 'children' in item ? omit(item, ['children']) : item : undefined : getPropertyFromItem(item, props.itemProps);\n const _props = {\n title,\n value,\n ...itemProps\n };\n return {\n title: String(_props.title ?? ''),\n value: _props.value,\n props: _props,\n children: Array.isArray(children) ? transformItems(props, children) : undefined,\n raw: item\n };\n}\nexport function transformItems(props, items) {\n const _props = pick(props, ['itemTitle', 'itemValue', 'itemChildren', 'itemProps', 'returnObject', 'valueComparator']);\n const array = [];\n for (const item of items) {\n array.push(transformItem(_props, item));\n }\n return array;\n}\nexport function useItems(props) {\n const items = computed(() => transformItems(props, props.items));\n const hasNullItem = computed(() => items.value.some(item => item.value === null));\n const itemsMap = shallowRef(new Map());\n const keylessItems = shallowRef([]);\n watchEffect(() => {\n const _items = items.value;\n const map = new Map();\n const keyless = [];\n for (let i = 0; i < _items.length; i++) {\n const item = _items[i];\n if (isPrimitive(item.value) || item.value === null) {\n let values = map.get(item.value);\n if (!values) {\n values = [];\n map.set(item.value, values);\n }\n values.push(item);\n } else {\n keyless.push(item);\n }\n }\n itemsMap.value = map;\n keylessItems.value = keyless;\n });\n function transformIn(value) {\n // Cache unrefed values outside the loop,\n // proxy getters can be slow when you call them a billion times\n const _items = itemsMap.value;\n const _allItems = items.value;\n const _keylessItems = keylessItems.value;\n const _hasNullItem = hasNullItem.value;\n const _returnObject = props.returnObject;\n const hasValueComparator = !!props.valueComparator;\n const valueComparator = props.valueComparator || deepEqual;\n const _props = pick(props, ['itemTitle', 'itemValue', 'itemChildren', 'itemProps', 'returnObject', 'valueComparator']);\n const returnValue = [];\n main: for (const v of value) {\n // When the model value is null, return an InternalItem\n // based on null only if null is one of the items\n if (!_hasNullItem && v === null) continue;\n\n // String model value means value is a custom input value from combobox\n // Don't look up existing items if the model value is a string\n if (_returnObject && typeof v === 'string') {\n returnValue.push(transformItem(_props, v));\n continue;\n }\n\n // Fast path, items with primitive values and no\n // custom valueComparator can use a constant-time\n // map lookup instead of searching the items array\n const fastItems = _items.get(v);\n\n // Slow path, always use valueComparator.\n // This is O(n^2) so we really don't want to\n // do it for more than a couple hundred items.\n if (hasValueComparator || !fastItems) {\n for (const item of hasValueComparator ? _allItems : _keylessItems) {\n if (valueComparator(v, item.value)) {\n returnValue.push(item);\n continue main;\n }\n }\n // Not an existing item, construct it from the model (#4000)\n returnValue.push(transformItem(_props, v));\n continue;\n }\n returnValue.push(...fastItems);\n }\n return returnValue;\n }\n function transformOut(value) {\n return props.returnObject ? value.map(_ref => {\n let {\n raw\n } = _ref;\n return raw;\n }) : value.map(_ref2 => {\n let {\n value\n } = _ref2;\n return value;\n });\n }\n return {\n items,\n transformIn,\n transformOut\n };\n}\n//# sourceMappingURL=list-items.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VList.css\";\n\n// Components\nimport { VListChildren } from \"./VListChildren.mjs\"; // Composables\nimport { createList } from \"./list.mjs\";\nimport { makeBorderProps, useBorder } from \"../../composables/border.mjs\";\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { makeItemsProps } from \"../../composables/list-items.mjs\";\nimport { makeNestedProps, useNested } from \"../../composables/nested/nested.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\";\nimport { makeVariantProps } from \"../../composables/variant.mjs\"; // Utilities\nimport { computed, ref, shallowRef, toRef } from 'vue';\nimport { EventProp, focusChild, genericComponent, getPropertyFromItem, isPrimitive, omit, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nfunction transformItem(props, item) {\n const type = getPropertyFromItem(item, props.itemType, 'item');\n const title = isPrimitive(item) ? item : getPropertyFromItem(item, props.itemTitle);\n const value = getPropertyFromItem(item, props.itemValue, undefined);\n const children = getPropertyFromItem(item, props.itemChildren);\n const itemProps = props.itemProps === true ? omit(item, ['children']) : getPropertyFromItem(item, props.itemProps);\n const _props = {\n title,\n value,\n ...itemProps\n };\n return {\n type,\n title: _props.title,\n value: _props.value,\n props: _props,\n children: type === 'item' && children ? transformItems(props, children) : undefined,\n raw: item\n };\n}\nfunction transformItems(props, items) {\n const array = [];\n for (const item of items) {\n array.push(transformItem(props, item));\n }\n return array;\n}\nexport function useListItems(props) {\n const items = computed(() => transformItems(props, props.items));\n return {\n items\n };\n}\nexport const makeVListProps = propsFactory({\n baseColor: String,\n /* @deprecated */\n activeColor: String,\n activeClass: String,\n bgColor: String,\n disabled: Boolean,\n expandIcon: IconValue,\n collapseIcon: IconValue,\n lines: {\n type: [Boolean, String],\n default: 'one'\n },\n slim: Boolean,\n nav: Boolean,\n 'onClick:open': EventProp(),\n 'onClick:select': EventProp(),\n 'onUpdate:opened': EventProp(),\n ...makeNestedProps({\n selectStrategy: 'single-leaf',\n openStrategy: 'list'\n }),\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n itemType: {\n type: String,\n default: 'type'\n },\n ...makeItemsProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({\n variant: 'text'\n })\n}, 'VList');\nexport const VList = genericComponent()({\n name: 'VList',\n props: makeVListProps(),\n emits: {\n 'update:selected': value => true,\n 'update:activated': value => true,\n 'update:opened': value => true,\n 'click:open': value => true,\n 'click:activate': value => true,\n 'click:select': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n items\n } = useListItems(props);\n const {\n themeClasses\n } = provideTheme(props);\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(toRef(props, 'bgColor'));\n const {\n borderClasses\n } = useBorder(props);\n const {\n densityClasses\n } = useDensity(props);\n const {\n dimensionStyles\n } = useDimension(props);\n const {\n elevationClasses\n } = useElevation(props);\n const {\n roundedClasses\n } = useRounded(props);\n const {\n children,\n open,\n parents,\n select,\n getPath\n } = useNested(props);\n const lineClasses = computed(() => props.lines ? `v-list--${props.lines}-line` : undefined);\n const activeColor = toRef(props, 'activeColor');\n const baseColor = toRef(props, 'baseColor');\n const color = toRef(props, 'color');\n createList();\n provideDefaults({\n VListGroup: {\n activeColor,\n baseColor,\n color,\n expandIcon: toRef(props, 'expandIcon'),\n collapseIcon: toRef(props, 'collapseIcon')\n },\n VListItem: {\n activeClass: toRef(props, 'activeClass'),\n activeColor,\n baseColor,\n color,\n density: toRef(props, 'density'),\n disabled: toRef(props, 'disabled'),\n lines: toRef(props, 'lines'),\n nav: toRef(props, 'nav'),\n slim: toRef(props, 'slim'),\n variant: toRef(props, 'variant')\n }\n });\n const isFocused = shallowRef(false);\n const contentRef = ref();\n function onFocusin(e) {\n isFocused.value = true;\n }\n function onFocusout(e) {\n isFocused.value = false;\n }\n function onFocus(e) {\n if (!isFocused.value && !(e.relatedTarget && contentRef.value?.contains(e.relatedTarget))) focus();\n }\n function onKeydown(e) {\n const target = e.target;\n if (!contentRef.value || ['INPUT', 'TEXTAREA'].includes(target.tagName)) return;\n if (e.key === 'ArrowDown') {\n focus('next');\n } else if (e.key === 'ArrowUp') {\n focus('prev');\n } else if (e.key === 'Home') {\n focus('first');\n } else if (e.key === 'End') {\n focus('last');\n } else {\n return;\n }\n e.preventDefault();\n }\n function onMousedown(e) {\n isFocused.value = true;\n }\n function focus(location) {\n if (contentRef.value) {\n return focusChild(contentRef.value, location);\n }\n }\n useRender(() => {\n return _createVNode(props.tag, {\n \"ref\": contentRef,\n \"class\": ['v-list', {\n 'v-list--disabled': props.disabled,\n 'v-list--nav': props.nav,\n 'v-list--slim': props.slim\n }, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, props.class],\n \"style\": [backgroundColorStyles.value, dimensionStyles.value, props.style],\n \"tabindex\": props.disabled ? -1 : 0,\n \"role\": \"listbox\",\n \"aria-activedescendant\": undefined,\n \"onFocusin\": onFocusin,\n \"onFocusout\": onFocusout,\n \"onFocus\": onFocus,\n \"onKeydown\": onKeydown,\n \"onMousedown\": onMousedown\n }, {\n default: () => [_createVNode(VListChildren, {\n \"items\": items.value,\n \"returnObject\": props.returnObject\n }, slots)]\n });\n });\n return {\n open,\n select,\n focus,\n children,\n parents,\n getPath\n };\n }\n});\n//# sourceMappingURL=VList.mjs.map","// Utilities\nimport { createSimpleFunctional } from \"../../util/index.mjs\";\nexport const VListImg = createSimpleFunctional('v-list-img');\n//# sourceMappingURL=VListImg.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVListItemActionProps = propsFactory({\n start: Boolean,\n end: Boolean,\n ...makeComponentProps(),\n ...makeTagProps()\n}, 'VListItemAction');\nexport const VListItemAction = genericComponent()({\n name: 'VListItemAction',\n props: makeVListItemActionProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => _createVNode(props.tag, {\n \"class\": ['v-list-item-action', {\n 'v-list-item-action--start': props.start,\n 'v-list-item-action--end': props.end\n }, props.class],\n \"style\": props.style\n }, slots));\n return {};\n }\n});\n//# sourceMappingURL=VListItemAction.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVListItemMediaProps = propsFactory({\n start: Boolean,\n end: Boolean,\n ...makeComponentProps(),\n ...makeTagProps()\n}, 'VListItemMedia');\nexport const VListItemMedia = genericComponent()({\n name: 'VListItemMedia',\n props: makeVListItemMediaProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => {\n return _createVNode(props.tag, {\n \"class\": ['v-list-item-media', {\n 'v-list-item-media--start': props.start,\n 'v-list-item-media--end': props.end\n }, props.class],\n \"style\": props.style\n }, slots);\n });\n return {};\n }\n});\n//# sourceMappingURL=VListItemMedia.mjs.map","// Types\n\n/** Convert a point in local space to viewport space */\nexport function elementToViewport(point, offset) {\n return {\n x: point.x + offset.x,\n y: point.y + offset.y\n };\n}\n\n/** Convert a point in viewport space to local space */\nexport function viewportToElement(point, offset) {\n return {\n x: point.x - offset.x,\n y: point.y - offset.y\n };\n}\n\n/** Get the difference between two points */\nexport function getOffset(a, b) {\n return {\n x: a.x - b.x,\n y: a.y - b.y\n };\n}\n\n/** Convert an anchor object to a point in local space */\nexport function anchorToPoint(anchor, box) {\n if (anchor.side === 'top' || anchor.side === 'bottom') {\n const {\n side,\n align\n } = anchor;\n const x = align === 'left' ? 0 : align === 'center' ? box.width / 2 : align === 'right' ? box.width : align;\n const y = side === 'top' ? 0 : side === 'bottom' ? box.height : side;\n return elementToViewport({\n x,\n y\n }, box);\n } else if (anchor.side === 'left' || anchor.side === 'right') {\n const {\n side,\n align\n } = anchor;\n const x = side === 'left' ? 0 : side === 'right' ? box.width : side;\n const y = align === 'top' ? 0 : align === 'center' ? box.height / 2 : align === 'bottom' ? box.height : align;\n return elementToViewport({\n x,\n y\n }, box);\n }\n return elementToViewport({\n x: box.width / 2,\n y: box.height / 2\n }, box);\n}\n//# sourceMappingURL=point.mjs.map","// Composables\nimport { useToggleScope } from \"../../composables/toggleScope.mjs\"; // Utilities\nimport { computed, nextTick, onScopeDispose, ref, watch } from 'vue';\nimport { anchorToPoint, getOffset } from \"./util/point.mjs\";\nimport { clamp, consoleError, convertToUnit, destructComputed, flipAlign, flipCorner, flipSide, getAxis, getScrollParents, IN_BROWSER, isFixedPosition, nullifyTransforms, parseAnchor, propsFactory } from \"../../util/index.mjs\";\nimport { Box, getOverflow, getTargetBox } from \"../../util/box.mjs\"; // Types\nconst locationStrategies = {\n static: staticLocationStrategy,\n // specific viewport position, usually centered\n connected: connectedLocationStrategy // connected to a certain element\n};\nexport const makeLocationStrategyProps = propsFactory({\n locationStrategy: {\n type: [String, Function],\n default: 'static',\n validator: val => typeof val === 'function' || val in locationStrategies\n },\n location: {\n type: String,\n default: 'bottom'\n },\n origin: {\n type: String,\n default: 'auto'\n },\n offset: [Number, String, Array]\n}, 'VOverlay-location-strategies');\nexport function useLocationStrategies(props, data) {\n const contentStyles = ref({});\n const updateLocation = ref();\n if (IN_BROWSER) {\n useToggleScope(() => !!(data.isActive.value && props.locationStrategy), reset => {\n watch(() => props.locationStrategy, reset);\n onScopeDispose(() => {\n window.removeEventListener('resize', onResize);\n updateLocation.value = undefined;\n });\n window.addEventListener('resize', onResize, {\n passive: true\n });\n if (typeof props.locationStrategy === 'function') {\n updateLocation.value = props.locationStrategy(data, props, contentStyles)?.updateLocation;\n } else {\n updateLocation.value = locationStrategies[props.locationStrategy](data, props, contentStyles)?.updateLocation;\n }\n });\n }\n function onResize(e) {\n updateLocation.value?.(e);\n }\n return {\n contentStyles,\n updateLocation\n };\n}\nfunction staticLocationStrategy() {\n // TODO\n}\n\n/** Get size of element ignoring max-width/max-height */\nfunction getIntrinsicSize(el, isRtl) {\n // const scrollables = new Map<Element, [number, number]>()\n // el.querySelectorAll('*').forEach(el => {\n // const x = el.scrollLeft\n // const y = el.scrollTop\n // if (x || y) {\n // scrollables.set(el, [x, y])\n // }\n // })\n\n // const initialMaxWidth = el.style.maxWidth\n // const initialMaxHeight = el.style.maxHeight\n // el.style.removeProperty('max-width')\n // el.style.removeProperty('max-height')\n\n /* eslint-disable-next-line sonarjs/prefer-immediate-return */\n const contentBox = nullifyTransforms(el);\n if (isRtl) {\n contentBox.x += parseFloat(el.style.right || 0);\n } else {\n contentBox.x -= parseFloat(el.style.left || 0);\n }\n contentBox.y -= parseFloat(el.style.top || 0);\n\n // el.style.maxWidth = initialMaxWidth\n // el.style.maxHeight = initialMaxHeight\n // scrollables.forEach((position, el) => {\n // el.scrollTo(...position)\n // })\n\n return contentBox;\n}\nfunction connectedLocationStrategy(data, props, contentStyles) {\n const activatorFixed = Array.isArray(data.target.value) || isFixedPosition(data.target.value);\n if (activatorFixed) {\n Object.assign(contentStyles.value, {\n position: 'fixed',\n top: 0,\n [data.isRtl.value ? 'right' : 'left']: 0\n });\n }\n const {\n preferredAnchor,\n preferredOrigin\n } = destructComputed(() => {\n const parsedAnchor = parseAnchor(props.location, data.isRtl.value);\n const parsedOrigin = props.origin === 'overlap' ? parsedAnchor : props.origin === 'auto' ? flipSide(parsedAnchor) : parseAnchor(props.origin, data.isRtl.value);\n\n // Some combinations of props may produce an invalid origin\n if (parsedAnchor.side === parsedOrigin.side && parsedAnchor.align === flipAlign(parsedOrigin).align) {\n return {\n preferredAnchor: flipCorner(parsedAnchor),\n preferredOrigin: flipCorner(parsedOrigin)\n };\n } else {\n return {\n preferredAnchor: parsedAnchor,\n preferredOrigin: parsedOrigin\n };\n }\n });\n const [minWidth, minHeight, maxWidth, maxHeight] = ['minWidth', 'minHeight', 'maxWidth', 'maxHeight'].map(key => {\n return computed(() => {\n const val = parseFloat(props[key]);\n return isNaN(val) ? Infinity : val;\n });\n });\n const offset = computed(() => {\n if (Array.isArray(props.offset)) {\n return props.offset;\n }\n if (typeof props.offset === 'string') {\n const offset = props.offset.split(' ').map(parseFloat);\n if (offset.length < 2) offset.push(0);\n return offset;\n }\n return typeof props.offset === 'number' ? [props.offset, 0] : [0, 0];\n });\n let observe = false;\n const observer = new ResizeObserver(() => {\n if (observe) updateLocation();\n });\n watch([data.target, data.contentEl], (_ref, _ref2) => {\n let [newTarget, newContentEl] = _ref;\n let [oldTarget, oldContentEl] = _ref2;\n if (oldTarget && !Array.isArray(oldTarget)) observer.unobserve(oldTarget);\n if (newTarget && !Array.isArray(newTarget)) observer.observe(newTarget);\n if (oldContentEl) observer.unobserve(oldContentEl);\n if (newContentEl) observer.observe(newContentEl);\n }, {\n immediate: true\n });\n onScopeDispose(() => {\n observer.disconnect();\n });\n\n // eslint-disable-next-line max-statements\n function updateLocation() {\n observe = false;\n requestAnimationFrame(() => observe = true);\n if (!data.target.value || !data.contentEl.value) return;\n const targetBox = getTargetBox(data.target.value);\n const contentBox = getIntrinsicSize(data.contentEl.value, data.isRtl.value);\n const scrollParents = getScrollParents(data.contentEl.value);\n const viewportMargin = 12;\n if (!scrollParents.length) {\n scrollParents.push(document.documentElement);\n if (!(data.contentEl.value.style.top && data.contentEl.value.style.left)) {\n contentBox.x -= parseFloat(document.documentElement.style.getPropertyValue('--v-body-scroll-x') || 0);\n contentBox.y -= parseFloat(document.documentElement.style.getPropertyValue('--v-body-scroll-y') || 0);\n }\n }\n const viewport = scrollParents.reduce((box, el) => {\n const rect = el.getBoundingClientRect();\n const scrollBox = new Box({\n x: el === document.documentElement ? 0 : rect.x,\n y: el === document.documentElement ? 0 : rect.y,\n width: el.clientWidth,\n height: el.clientHeight\n });\n if (box) {\n return new Box({\n x: Math.max(box.left, scrollBox.left),\n y: Math.max(box.top, scrollBox.top),\n width: Math.min(box.right, scrollBox.right) - Math.max(box.left, scrollBox.left),\n height: Math.min(box.bottom, scrollBox.bottom) - Math.max(box.top, scrollBox.top)\n });\n }\n return scrollBox;\n }, undefined);\n viewport.x += viewportMargin;\n viewport.y += viewportMargin;\n viewport.width -= viewportMargin * 2;\n viewport.height -= viewportMargin * 2;\n let placement = {\n anchor: preferredAnchor.value,\n origin: preferredOrigin.value\n };\n function checkOverflow(_placement) {\n const box = new Box(contentBox);\n const targetPoint = anchorToPoint(_placement.anchor, targetBox);\n const contentPoint = anchorToPoint(_placement.origin, box);\n let {\n x,\n y\n } = getOffset(targetPoint, contentPoint);\n switch (_placement.anchor.side) {\n case 'top':\n y -= offset.value[0];\n break;\n case 'bottom':\n y += offset.value[0];\n break;\n case 'left':\n x -= offset.value[0];\n break;\n case 'right':\n x += offset.value[0];\n break;\n }\n switch (_placement.anchor.align) {\n case 'top':\n y -= offset.value[1];\n break;\n case 'bottom':\n y += offset.value[1];\n break;\n case 'left':\n x -= offset.value[1];\n break;\n case 'right':\n x += offset.value[1];\n break;\n }\n box.x += x;\n box.y += y;\n box.width = Math.min(box.width, maxWidth.value);\n box.height = Math.min(box.height, maxHeight.value);\n const overflows = getOverflow(box, viewport);\n return {\n overflows,\n x,\n y\n };\n }\n let x = 0;\n let y = 0;\n const available = {\n x: 0,\n y: 0\n };\n const flipped = {\n x: false,\n y: false\n };\n let resets = -1;\n while (true) {\n if (resets++ > 10) {\n consoleError('Infinite loop detected in connectedLocationStrategy');\n break;\n }\n const {\n x: _x,\n y: _y,\n overflows\n } = checkOverflow(placement);\n x += _x;\n y += _y;\n contentBox.x += _x;\n contentBox.y += _y;\n\n // flip\n {\n const axis = getAxis(placement.anchor);\n const hasOverflowX = overflows.x.before || overflows.x.after;\n const hasOverflowY = overflows.y.before || overflows.y.after;\n let reset = false;\n ['x', 'y'].forEach(key => {\n if (key === 'x' && hasOverflowX && !flipped.x || key === 'y' && hasOverflowY && !flipped.y) {\n const newPlacement = {\n anchor: {\n ...placement.anchor\n },\n origin: {\n ...placement.origin\n }\n };\n const flip = key === 'x' ? axis === 'y' ? flipAlign : flipSide : axis === 'y' ? flipSide : flipAlign;\n newPlacement.anchor = flip(newPlacement.anchor);\n newPlacement.origin = flip(newPlacement.origin);\n const {\n overflows: newOverflows\n } = checkOverflow(newPlacement);\n if (newOverflows[key].before <= overflows[key].before && newOverflows[key].after <= overflows[key].after || newOverflows[key].before + newOverflows[key].after < (overflows[key].before + overflows[key].after) / 2) {\n placement = newPlacement;\n reset = flipped[key] = true;\n }\n }\n });\n if (reset) continue;\n }\n\n // shift\n if (overflows.x.before) {\n x += overflows.x.before;\n contentBox.x += overflows.x.before;\n }\n if (overflows.x.after) {\n x -= overflows.x.after;\n contentBox.x -= overflows.x.after;\n }\n if (overflows.y.before) {\n y += overflows.y.before;\n contentBox.y += overflows.y.before;\n }\n if (overflows.y.after) {\n y -= overflows.y.after;\n contentBox.y -= overflows.y.after;\n }\n\n // size\n {\n const overflows = getOverflow(contentBox, viewport);\n available.x = viewport.width - overflows.x.before - overflows.x.after;\n available.y = viewport.height - overflows.y.before - overflows.y.after;\n x += overflows.x.before;\n contentBox.x += overflows.x.before;\n y += overflows.y.before;\n contentBox.y += overflows.y.before;\n }\n break;\n }\n const axis = getAxis(placement.anchor);\n Object.assign(contentStyles.value, {\n '--v-overlay-anchor-origin': `${placement.anchor.side} ${placement.anchor.align}`,\n transformOrigin: `${placement.origin.side} ${placement.origin.align}`,\n // transform: `translate(${pixelRound(x)}px, ${pixelRound(y)}px)`,\n top: convertToUnit(pixelRound(y)),\n left: data.isRtl.value ? undefined : convertToUnit(pixelRound(x)),\n right: data.isRtl.value ? convertToUnit(pixelRound(-x)) : undefined,\n minWidth: convertToUnit(axis === 'y' ? Math.min(minWidth.value, targetBox.width) : minWidth.value),\n maxWidth: convertToUnit(pixelCeil(clamp(available.x, minWidth.value === Infinity ? 0 : minWidth.value, maxWidth.value))),\n maxHeight: convertToUnit(pixelCeil(clamp(available.y, minHeight.value === Infinity ? 0 : minHeight.value, maxHeight.value)))\n });\n return {\n available,\n contentBox\n };\n }\n watch(() => [preferredAnchor.value, preferredOrigin.value, props.offset, props.minWidth, props.minHeight, props.maxWidth, props.maxHeight], () => updateLocation());\n nextTick(() => {\n const result = updateLocation();\n\n // TODO: overflowing content should only require a single updateLocation call\n // Icky hack to make sure the content is positioned consistently\n if (!result) return;\n const {\n available,\n contentBox\n } = result;\n if (contentBox.height > available.y) {\n requestAnimationFrame(() => {\n updateLocation();\n requestAnimationFrame(() => {\n updateLocation();\n });\n });\n }\n });\n return {\n updateLocation\n };\n}\nfunction pixelRound(val) {\n return Math.round(val * devicePixelRatio) / devicePixelRatio;\n}\nfunction pixelCeil(val) {\n return Math.ceil(val * devicePixelRatio) / devicePixelRatio;\n}\n//# sourceMappingURL=locationStrategies.mjs.map","let clean = true;\nconst frames = [];\n\n/**\n * Schedule a task to run in an animation frame on its own\n * This is useful for heavy tasks that may cause jank if all ran together\n */\nexport function requestNewFrame(cb) {\n if (!clean || frames.length) {\n frames.push(cb);\n run();\n } else {\n clean = false;\n cb();\n run();\n }\n}\nlet raf = -1;\nfunction run() {\n cancelAnimationFrame(raf);\n raf = requestAnimationFrame(() => {\n const frame = frames.shift();\n if (frame) frame();\n if (frames.length) run();else clean = true;\n });\n}\n//# sourceMappingURL=requestNewFrame.mjs.map","// Utilities\nimport { effectScope, onScopeDispose, watchEffect } from 'vue';\nimport { requestNewFrame } from \"./requestNewFrame.mjs\";\nimport { convertToUnit, getScrollParents, hasScrollbar, IN_BROWSER, propsFactory } from \"../../util/index.mjs\"; // Types\nconst scrollStrategies = {\n none: null,\n close: closeScrollStrategy,\n block: blockScrollStrategy,\n reposition: repositionScrollStrategy\n};\nexport const makeScrollStrategyProps = propsFactory({\n scrollStrategy: {\n type: [String, Function],\n default: 'block',\n validator: val => typeof val === 'function' || val in scrollStrategies\n }\n}, 'VOverlay-scroll-strategies');\nexport function useScrollStrategies(props, data) {\n if (!IN_BROWSER) return;\n let scope;\n watchEffect(async () => {\n scope?.stop();\n if (!(data.isActive.value && props.scrollStrategy)) return;\n scope = effectScope();\n await new Promise(resolve => setTimeout(resolve));\n scope.active && scope.run(() => {\n if (typeof props.scrollStrategy === 'function') {\n props.scrollStrategy(data, props, scope);\n } else {\n scrollStrategies[props.scrollStrategy]?.(data, props, scope);\n }\n });\n });\n onScopeDispose(() => {\n scope?.stop();\n });\n}\nfunction closeScrollStrategy(data) {\n function onScroll(e) {\n data.isActive.value = false;\n }\n bindScroll(data.targetEl.value ?? data.contentEl.value, onScroll);\n}\nfunction blockScrollStrategy(data, props) {\n const offsetParent = data.root.value?.offsetParent;\n const scrollElements = [...new Set([...getScrollParents(data.targetEl.value, props.contained ? offsetParent : undefined), ...getScrollParents(data.contentEl.value, props.contained ? offsetParent : undefined)])].filter(el => !el.classList.contains('v-overlay-scroll-blocked'));\n const scrollbarWidth = window.innerWidth - document.documentElement.offsetWidth;\n const scrollableParent = (el => hasScrollbar(el) && el)(offsetParent || document.documentElement);\n if (scrollableParent) {\n data.root.value.classList.add('v-overlay--scroll-blocked');\n }\n scrollElements.forEach((el, i) => {\n el.style.setProperty('--v-body-scroll-x', convertToUnit(-el.scrollLeft));\n el.style.setProperty('--v-body-scroll-y', convertToUnit(-el.scrollTop));\n if (el !== document.documentElement) {\n el.style.setProperty('--v-scrollbar-offset', convertToUnit(scrollbarWidth));\n }\n el.classList.add('v-overlay-scroll-blocked');\n });\n onScopeDispose(() => {\n scrollElements.forEach((el, i) => {\n const x = parseFloat(el.style.getPropertyValue('--v-body-scroll-x'));\n const y = parseFloat(el.style.getPropertyValue('--v-body-scroll-y'));\n const scrollBehavior = el.style.scrollBehavior;\n el.style.scrollBehavior = 'auto';\n el.style.removeProperty('--v-body-scroll-x');\n el.style.removeProperty('--v-body-scroll-y');\n el.style.removeProperty('--v-scrollbar-offset');\n el.classList.remove('v-overlay-scroll-blocked');\n el.scrollLeft = -x;\n el.scrollTop = -y;\n el.style.scrollBehavior = scrollBehavior;\n });\n if (scrollableParent) {\n data.root.value.classList.remove('v-overlay--scroll-blocked');\n }\n });\n}\nfunction repositionScrollStrategy(data, props, scope) {\n let slow = false;\n let raf = -1;\n let ric = -1;\n function update(e) {\n requestNewFrame(() => {\n const start = performance.now();\n data.updateLocation.value?.(e);\n const time = performance.now() - start;\n slow = time / (1000 / 60) > 2;\n });\n }\n ric = (typeof requestIdleCallback === 'undefined' ? cb => cb() : requestIdleCallback)(() => {\n scope.run(() => {\n bindScroll(data.targetEl.value ?? data.contentEl.value, e => {\n if (slow) {\n // If the position calculation is slow,\n // defer updates until scrolling is finished.\n // Browsers usually fire one scroll event per frame so\n // we just wait until we've got two frames without an event\n cancelAnimationFrame(raf);\n raf = requestAnimationFrame(() => {\n raf = requestAnimationFrame(() => {\n update(e);\n });\n });\n } else {\n update(e);\n }\n });\n });\n });\n onScopeDispose(() => {\n typeof cancelIdleCallback !== 'undefined' && cancelIdleCallback(ric);\n cancelAnimationFrame(raf);\n });\n}\n\n/** @private */\nfunction bindScroll(el, onScroll) {\n const scrollElements = [document, ...getScrollParents(el)];\n scrollElements.forEach(el => {\n el.addEventListener('scroll', onScroll, {\n passive: true\n });\n });\n onScopeDispose(() => {\n scrollElements.forEach(el => {\n el.removeEventListener('scroll', onScroll);\n });\n });\n}\n//# sourceMappingURL=scrollStrategies.mjs.map","// Types\n\nexport const VMenuSymbol = Symbol.for('vuetify:v-menu');\n//# sourceMappingURL=shared.mjs.map","// Utilities\nimport { defer, propsFactory } from \"../util/index.mjs\"; // Types\n// Composables\nexport const makeDelayProps = propsFactory({\n closeDelay: [Number, String],\n openDelay: [Number, String]\n}, 'delay');\nexport function useDelay(props, cb) {\n let clearDelay = () => {};\n function runDelay(isOpening) {\n clearDelay?.();\n const delay = Number(isOpening ? props.openDelay : props.closeDelay);\n return new Promise(resolve => {\n clearDelay = defer(delay, () => {\n cb?.(isOpening);\n resolve(isOpening);\n });\n });\n }\n function runOpenDelay() {\n return runDelay(true);\n }\n function runCloseDelay() {\n return runDelay(false);\n }\n return {\n clearDelay,\n runOpenDelay,\n runCloseDelay\n };\n}\n//# sourceMappingURL=delay.mjs.map","// Components\nimport { VMenuSymbol } from \"../VMenu/shared.mjs\"; // Composables\nimport { makeDelayProps, useDelay } from \"../../composables/delay.mjs\"; // Utilities\nimport { computed, effectScope, inject, mergeProps, nextTick, onScopeDispose, ref, watch, watchEffect } from 'vue';\nimport { bindProps, getCurrentInstance, IN_BROWSER, matchesSelector, propsFactory, templateRef, unbindProps } from \"../../util/index.mjs\"; // Types\nexport const makeActivatorProps = propsFactory({\n target: [String, Object],\n activator: [String, Object],\n activatorProps: {\n type: Object,\n default: () => ({})\n },\n openOnClick: {\n type: Boolean,\n default: undefined\n },\n openOnHover: Boolean,\n openOnFocus: {\n type: Boolean,\n default: undefined\n },\n closeOnContentClick: Boolean,\n ...makeDelayProps()\n}, 'VOverlay-activator');\nexport function useActivator(props, _ref) {\n let {\n isActive,\n isTop,\n contentEl\n } = _ref;\n const vm = getCurrentInstance('useActivator');\n const activatorEl = ref();\n let isHovered = false;\n let isFocused = false;\n let firstEnter = true;\n const openOnFocus = computed(() => props.openOnFocus || props.openOnFocus == null && props.openOnHover);\n const openOnClick = computed(() => props.openOnClick || props.openOnClick == null && !props.openOnHover && !openOnFocus.value);\n const {\n runOpenDelay,\n runCloseDelay\n } = useDelay(props, value => {\n if (value === (props.openOnHover && isHovered || openOnFocus.value && isFocused) && !(props.openOnHover && isActive.value && !isTop.value)) {\n if (isActive.value !== value) {\n firstEnter = true;\n }\n isActive.value = value;\n }\n });\n const cursorTarget = ref();\n const availableEvents = {\n onClick: e => {\n e.stopPropagation();\n activatorEl.value = e.currentTarget || e.target;\n if (!isActive.value) {\n cursorTarget.value = [e.clientX, e.clientY];\n }\n isActive.value = !isActive.value;\n },\n onMouseenter: e => {\n if (e.sourceCapabilities?.firesTouchEvents) return;\n isHovered = true;\n activatorEl.value = e.currentTarget || e.target;\n runOpenDelay();\n },\n onMouseleave: e => {\n isHovered = false;\n runCloseDelay();\n },\n onFocus: e => {\n if (matchesSelector(e.target, ':focus-visible') === false) return;\n isFocused = true;\n e.stopPropagation();\n activatorEl.value = e.currentTarget || e.target;\n runOpenDelay();\n },\n onBlur: e => {\n isFocused = false;\n e.stopPropagation();\n runCloseDelay();\n }\n };\n const activatorEvents = computed(() => {\n const events = {};\n if (openOnClick.value) {\n events.onClick = availableEvents.onClick;\n }\n if (props.openOnHover) {\n events.onMouseenter = availableEvents.onMouseenter;\n events.onMouseleave = availableEvents.onMouseleave;\n }\n if (openOnFocus.value) {\n events.onFocus = availableEvents.onFocus;\n events.onBlur = availableEvents.onBlur;\n }\n return events;\n });\n const contentEvents = computed(() => {\n const events = {};\n if (props.openOnHover) {\n events.onMouseenter = () => {\n isHovered = true;\n runOpenDelay();\n };\n events.onMouseleave = () => {\n isHovered = false;\n runCloseDelay();\n };\n }\n if (openOnFocus.value) {\n events.onFocusin = () => {\n isFocused = true;\n runOpenDelay();\n };\n events.onFocusout = () => {\n isFocused = false;\n runCloseDelay();\n };\n }\n if (props.closeOnContentClick) {\n const menu = inject(VMenuSymbol, null);\n events.onClick = () => {\n isActive.value = false;\n menu?.closeParents();\n };\n }\n return events;\n });\n const scrimEvents = computed(() => {\n const events = {};\n if (props.openOnHover) {\n events.onMouseenter = () => {\n if (firstEnter) {\n isHovered = true;\n firstEnter = false;\n runOpenDelay();\n }\n };\n events.onMouseleave = () => {\n isHovered = false;\n runCloseDelay();\n };\n }\n return events;\n });\n watch(isTop, val => {\n if (val && (props.openOnHover && !isHovered && (!openOnFocus.value || !isFocused) || openOnFocus.value && !isFocused && (!props.openOnHover || !isHovered)) && !contentEl.value?.contains(document.activeElement)) {\n isActive.value = false;\n }\n });\n watch(isActive, val => {\n if (!val) {\n setTimeout(() => {\n cursorTarget.value = undefined;\n });\n }\n }, {\n flush: 'post'\n });\n const activatorRef = templateRef();\n watchEffect(() => {\n if (!activatorRef.value) return;\n nextTick(() => {\n activatorEl.value = activatorRef.el;\n });\n });\n const targetRef = templateRef();\n const target = computed(() => {\n if (props.target === 'cursor' && cursorTarget.value) return cursorTarget.value;\n if (targetRef.value) return targetRef.el;\n return getTarget(props.target, vm) || activatorEl.value;\n });\n const targetEl = computed(() => {\n return Array.isArray(target.value) ? undefined : target.value;\n });\n let scope;\n watch(() => !!props.activator, val => {\n if (val && IN_BROWSER) {\n scope = effectScope();\n scope.run(() => {\n _useActivator(props, vm, {\n activatorEl,\n activatorEvents\n });\n });\n } else if (scope) {\n scope.stop();\n }\n }, {\n flush: 'post',\n immediate: true\n });\n onScopeDispose(() => {\n scope?.stop();\n });\n return {\n activatorEl,\n activatorRef,\n target,\n targetEl,\n targetRef,\n activatorEvents,\n contentEvents,\n scrimEvents\n };\n}\nfunction _useActivator(props, vm, _ref2) {\n let {\n activatorEl,\n activatorEvents\n } = _ref2;\n watch(() => props.activator, (val, oldVal) => {\n if (oldVal && val !== oldVal) {\n const activator = getActivator(oldVal);\n activator && unbindActivatorProps(activator);\n }\n if (val) {\n nextTick(() => bindActivatorProps());\n }\n }, {\n immediate: true\n });\n watch(() => props.activatorProps, () => {\n bindActivatorProps();\n });\n onScopeDispose(() => {\n unbindActivatorProps();\n });\n function bindActivatorProps() {\n let el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getActivator();\n let _props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : props.activatorProps;\n if (!el) return;\n bindProps(el, mergeProps(activatorEvents.value, _props));\n }\n function unbindActivatorProps() {\n let el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getActivator();\n let _props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : props.activatorProps;\n if (!el) return;\n unbindProps(el, mergeProps(activatorEvents.value, _props));\n }\n function getActivator() {\n let selector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : props.activator;\n const activator = getTarget(selector, vm);\n\n // The activator should only be a valid element (Ignore comments and text nodes)\n activatorEl.value = activator?.nodeType === Node.ELEMENT_NODE ? activator : undefined;\n return activatorEl.value;\n }\n}\nfunction getTarget(selector, vm) {\n if (!selector) return;\n let target;\n if (selector === 'parent') {\n let el = vm?.proxy?.$el?.parentNode;\n while (el?.hasAttribute('data-no-activator')) {\n el = el.parentNode;\n }\n target = el;\n } else if (typeof selector === 'string') {\n // Selector\n target = document.querySelector(selector);\n } else if ('$el' in selector) {\n // Component (ref)\n target = selector.$el;\n } else {\n // HTMLElement | Element | [x, y]\n target = selector;\n }\n return target;\n}\n//# sourceMappingURL=useActivator.mjs.map","// Composables\nimport { useDisplay } from \"./display.mjs\"; // Utilities\nimport { onMounted, shallowRef } from 'vue';\nimport { IN_BROWSER } from \"../util/index.mjs\";\nexport function useHydration() {\n if (!IN_BROWSER) return shallowRef(false);\n const {\n ssr\n } = useDisplay();\n if (ssr) {\n const isMounted = shallowRef(false);\n onMounted(() => {\n isMounted.value = true;\n });\n return isMounted;\n } else {\n return shallowRef(true);\n }\n}\n//# sourceMappingURL=hydration.mjs.map","// Utilities\nimport { computed, shallowRef, watch } from 'vue';\nimport { propsFactory } from \"../util/index.mjs\"; // Types\nexport const makeLazyProps = propsFactory({\n eager: Boolean\n}, 'lazy');\nexport function useLazy(props, active) {\n const isBooted = shallowRef(false);\n const hasContent = computed(() => isBooted.value || props.eager || active.value);\n watch(active, () => isBooted.value = true);\n function onAfterLeave() {\n if (!props.eager) isBooted.value = false;\n }\n return {\n isBooted,\n hasContent,\n onAfterLeave\n };\n}\n//# sourceMappingURL=lazy.mjs.map","// Utilities\nimport { getCurrentInstance } from \"../util/index.mjs\";\nexport function useScopeId() {\n const vm = getCurrentInstance('useScopeId');\n const scopeId = vm.vnode.scopeId;\n return {\n scopeId: scopeId ? {\n [scopeId]: ''\n } : undefined\n };\n}\n//# sourceMappingURL=scopeId.mjs.map","// Composables\nimport { useToggleScope } from \"./toggleScope.mjs\"; // Utilities\nimport { computed, inject, onScopeDispose, provide, reactive, readonly, shallowRef, toRaw, watchEffect } from 'vue';\nimport { getCurrentInstance } from \"../util/index.mjs\"; // Types\nconst StackSymbol = Symbol.for('vuetify:stack');\nconst globalStack = reactive([]);\nexport function useStack(isActive, zIndex, disableGlobalStack) {\n const vm = getCurrentInstance('useStack');\n const createStackEntry = !disableGlobalStack;\n const parent = inject(StackSymbol, undefined);\n const stack = reactive({\n activeChildren: new Set()\n });\n provide(StackSymbol, stack);\n const _zIndex = shallowRef(+zIndex.value);\n useToggleScope(isActive, () => {\n const lastZIndex = globalStack.at(-1)?.[1];\n _zIndex.value = lastZIndex ? lastZIndex + 10 : +zIndex.value;\n if (createStackEntry) {\n globalStack.push([vm.uid, _zIndex.value]);\n }\n parent?.activeChildren.add(vm.uid);\n onScopeDispose(() => {\n if (createStackEntry) {\n const idx = toRaw(globalStack).findIndex(v => v[0] === vm.uid);\n globalStack.splice(idx, 1);\n }\n parent?.activeChildren.delete(vm.uid);\n });\n });\n const globalTop = shallowRef(true);\n if (createStackEntry) {\n watchEffect(() => {\n const _isTop = globalStack.at(-1)?.[0] === vm.uid;\n setTimeout(() => globalTop.value = _isTop);\n });\n }\n const localTop = computed(() => !stack.activeChildren.size);\n return {\n globalTop: readonly(globalTop),\n localTop,\n stackStyles: computed(() => ({\n zIndex: _zIndex.value\n }))\n };\n}\n//# sourceMappingURL=stack.mjs.map","// Utilities\nimport { computed, warn } from 'vue';\nimport { IN_BROWSER } from \"../util/index.mjs\";\nexport function useTeleport(target) {\n const teleportTarget = computed(() => {\n const _target = target();\n if (_target === true || !IN_BROWSER) return undefined;\n const targetElement = _target === false ? document.body : typeof _target === 'string' ? document.querySelector(_target) : _target;\n if (targetElement == null) {\n warn(`Unable to locate target ${_target}`);\n return undefined;\n }\n let container = [...targetElement.children].find(el => el.matches('.v-overlay-container'));\n if (!container) {\n container = document.createElement('div');\n container.className = 'v-overlay-container';\n targetElement.appendChild(container);\n }\n return container;\n });\n return {\n teleportTarget\n };\n}\n//# sourceMappingURL=teleport.mjs.map","// Utilities\nimport { attachedRoot } from \"../../util/index.mjs\"; // Types\nfunction defaultConditional() {\n return true;\n}\nfunction checkEvent(e, el, binding) {\n // The include element callbacks below can be expensive\n // so we should avoid calling them when we're not active.\n // Explicitly check for false to allow fallback compatibility\n // with non-toggleable components\n if (!e || checkIsActive(e, binding) === false) return false;\n\n // If we're clicking inside the shadowroot, then the app root doesn't get the same\n // level of introspection as to _what_ we're clicking. We want to check to see if\n // our target is the shadowroot parent container, and if it is, ignore.\n const root = attachedRoot(el);\n if (typeof ShadowRoot !== 'undefined' && root instanceof ShadowRoot && root.host === e.target) return false;\n\n // Check if additional elements were passed to be included in check\n // (click must be outside all included elements, if any)\n const elements = (typeof binding.value === 'object' && binding.value.include || (() => []))();\n // Add the root element for the component this directive was defined on\n elements.push(el);\n\n // Check if it's a click outside our elements, and then if our callback returns true.\n // Non-toggleable components should take action in their callback and return falsy.\n // Toggleable can return true if it wants to deactivate.\n // Note that, because we're in the capture phase, this callback will occur before\n // the bubbling click event on any outside elements.\n return !elements.some(el => el?.contains(e.target));\n}\nfunction checkIsActive(e, binding) {\n const isActive = typeof binding.value === 'object' && binding.value.closeConditional || defaultConditional;\n return isActive(e);\n}\nfunction directive(e, el, binding) {\n const handler = typeof binding.value === 'function' ? binding.value : binding.value.handler;\n\n // Clicks in the Shadow DOM change their target while using setTimeout, so the original target is saved here\n e.shadowTarget = e.target;\n el._clickOutside.lastMousedownWasOutside && checkEvent(e, el, binding) && setTimeout(() => {\n checkIsActive(e, binding) && handler && handler(e);\n }, 0);\n}\nfunction handleShadow(el, callback) {\n const root = attachedRoot(el);\n callback(document);\n if (typeof ShadowRoot !== 'undefined' && root instanceof ShadowRoot) {\n callback(root);\n }\n}\nexport const ClickOutside = {\n // [data-app] may not be found\n // if using bind, inserted makes\n // sure that the root element is\n // available, iOS does not support\n // clicks on body\n mounted(el, binding) {\n const onClick = e => directive(e, el, binding);\n const onMousedown = e => {\n el._clickOutside.lastMousedownWasOutside = checkEvent(e, el, binding);\n };\n handleShadow(el, app => {\n app.addEventListener('click', onClick, true);\n app.addEventListener('mousedown', onMousedown, true);\n });\n if (!el._clickOutside) {\n el._clickOutside = {\n lastMousedownWasOutside: false\n };\n }\n el._clickOutside[binding.instance.$.uid] = {\n onClick,\n onMousedown\n };\n },\n beforeUnmount(el, binding) {\n if (!el._clickOutside) return;\n handleShadow(el, app => {\n if (!app || !el._clickOutside?.[binding.instance.$.uid]) return;\n const {\n onClick,\n onMousedown\n } = el._clickOutside[binding.instance.$.uid];\n app.removeEventListener('click', onClick, true);\n app.removeEventListener('mousedown', onMousedown, true);\n });\n delete el._clickOutside[binding.instance.$.uid];\n }\n};\nexport default ClickOutside;\n//# sourceMappingURL=index.mjs.map","import { mergeProps as _mergeProps, createVNode as _createVNode, Fragment as _Fragment, vShow as _vShow, resolveDirective as _resolveDirective, withDirectives as _withDirectives } from \"vue\";\n// Styles\nimport \"./VOverlay.css\";\n\n// Composables\nimport { makeLocationStrategyProps, useLocationStrategies } from \"./locationStrategies.mjs\";\nimport { makeScrollStrategyProps, useScrollStrategies } from \"./scrollStrategies.mjs\";\nimport { makeActivatorProps, useActivator } from \"./useActivator.mjs\";\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { useHydration } from \"../../composables/hydration.mjs\";\nimport { makeLazyProps, useLazy } from \"../../composables/lazy.mjs\";\nimport { useRtl } from \"../../composables/locale.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { useBackButton, useRouter } from \"../../composables/router.mjs\";\nimport { useScopeId } from \"../../composables/scopeId.mjs\";\nimport { useStack } from \"../../composables/stack.mjs\";\nimport { useTeleport } from \"../../composables/teleport.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\";\nimport { useToggleScope } from \"../../composables/toggleScope.mjs\";\nimport { makeTransitionProps, MaybeTransition } from \"../../composables/transition.mjs\"; // Directives\nimport { ClickOutside } from \"../../directives/click-outside/index.mjs\"; // Utilities\nimport { computed, mergeProps, onBeforeUnmount, ref, Teleport, toRef, Transition, watch } from 'vue';\nimport { animate, convertToUnit, genericComponent, getCurrentInstance, getScrollParent, IN_BROWSER, propsFactory, standardEasing, useRender } from \"../../util/index.mjs\"; // Types\nfunction Scrim(props) {\n const {\n modelValue,\n color,\n ...rest\n } = props;\n return _createVNode(Transition, {\n \"name\": \"fade-transition\",\n \"appear\": true\n }, {\n default: () => [props.modelValue && _createVNode(\"div\", _mergeProps({\n \"class\": ['v-overlay__scrim', props.color.backgroundColorClasses.value],\n \"style\": props.color.backgroundColorStyles.value\n }, rest), null)]\n });\n}\nexport const makeVOverlayProps = propsFactory({\n absolute: Boolean,\n attach: [Boolean, String, Object],\n closeOnBack: {\n type: Boolean,\n default: true\n },\n contained: Boolean,\n contentClass: null,\n contentProps: null,\n disabled: Boolean,\n opacity: [Number, String],\n noClickAnimation: Boolean,\n modelValue: Boolean,\n persistent: Boolean,\n scrim: {\n type: [Boolean, String],\n default: true\n },\n zIndex: {\n type: [Number, String],\n default: 2000\n },\n ...makeActivatorProps(),\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeLazyProps(),\n ...makeLocationStrategyProps(),\n ...makeScrollStrategyProps(),\n ...makeThemeProps(),\n ...makeTransitionProps()\n}, 'VOverlay');\nexport const VOverlay = genericComponent()({\n name: 'VOverlay',\n directives: {\n ClickOutside\n },\n inheritAttrs: false,\n props: {\n _disableGlobalStack: Boolean,\n ...makeVOverlayProps()\n },\n emits: {\n 'click:outside': e => true,\n 'update:modelValue': value => true,\n afterEnter: () => true,\n afterLeave: () => true\n },\n setup(props, _ref) {\n let {\n slots,\n attrs,\n emit\n } = _ref;\n const vm = getCurrentInstance('VOverlay');\n const root = ref();\n const scrimEl = ref();\n const contentEl = ref();\n const model = useProxiedModel(props, 'modelValue');\n const isActive = computed({\n get: () => model.value,\n set: v => {\n if (!(v && props.disabled)) model.value = v;\n }\n });\n const {\n themeClasses\n } = provideTheme(props);\n const {\n rtlClasses,\n isRtl\n } = useRtl();\n const {\n hasContent,\n onAfterLeave: _onAfterLeave\n } = useLazy(props, isActive);\n const scrimColor = useBackgroundColor(computed(() => {\n return typeof props.scrim === 'string' ? props.scrim : null;\n }));\n const {\n globalTop,\n localTop,\n stackStyles\n } = useStack(isActive, toRef(props, 'zIndex'), props._disableGlobalStack);\n const {\n activatorEl,\n activatorRef,\n target,\n targetEl,\n targetRef,\n activatorEvents,\n contentEvents,\n scrimEvents\n } = useActivator(props, {\n isActive,\n isTop: localTop,\n contentEl\n });\n const {\n teleportTarget\n } = useTeleport(() => {\n const target = props.attach || props.contained;\n if (target) return target;\n const rootNode = activatorEl?.value?.getRootNode() || vm.proxy?.$el?.getRootNode();\n if (rootNode instanceof ShadowRoot) return rootNode;\n return false;\n });\n const {\n dimensionStyles\n } = useDimension(props);\n const isMounted = useHydration();\n const {\n scopeId\n } = useScopeId();\n watch(() => props.disabled, v => {\n if (v) isActive.value = false;\n });\n const {\n contentStyles,\n updateLocation\n } = useLocationStrategies(props, {\n isRtl,\n contentEl,\n target,\n isActive\n });\n useScrollStrategies(props, {\n root,\n contentEl,\n targetEl,\n isActive,\n updateLocation\n });\n function onClickOutside(e) {\n emit('click:outside', e);\n if (!props.persistent) isActive.value = false;else animateClick();\n }\n function closeConditional(e) {\n return isActive.value && globalTop.value && (\n // If using scrim, only close if clicking on it rather than anything opened on top\n !props.scrim || e.target === scrimEl.value || e instanceof MouseEvent && e.shadowTarget === scrimEl.value);\n }\n IN_BROWSER && watch(isActive, val => {\n if (val) {\n window.addEventListener('keydown', onKeydown);\n } else {\n window.removeEventListener('keydown', onKeydown);\n }\n }, {\n immediate: true\n });\n onBeforeUnmount(() => {\n if (!IN_BROWSER) return;\n window.removeEventListener('keydown', onKeydown);\n });\n function onKeydown(e) {\n if (e.key === 'Escape' && globalTop.value) {\n if (!props.persistent) {\n isActive.value = false;\n if (contentEl.value?.contains(document.activeElement)) {\n activatorEl.value?.focus();\n }\n } else animateClick();\n }\n }\n const router = useRouter();\n useToggleScope(() => props.closeOnBack, () => {\n useBackButton(router, next => {\n if (globalTop.value && isActive.value) {\n next(false);\n if (!props.persistent) isActive.value = false;else animateClick();\n } else {\n next();\n }\n });\n });\n const top = ref();\n watch(() => isActive.value && (props.absolute || props.contained) && teleportTarget.value == null, val => {\n if (val) {\n const scrollParent = getScrollParent(root.value);\n if (scrollParent && scrollParent !== document.scrollingElement) {\n top.value = scrollParent.scrollTop;\n }\n }\n });\n\n // Add a quick \"bounce\" animation to the content\n function animateClick() {\n if (props.noClickAnimation) return;\n contentEl.value && animate(contentEl.value, [{\n transformOrigin: 'center'\n }, {\n transform: 'scale(1.03)'\n }, {\n transformOrigin: 'center'\n }], {\n duration: 150,\n easing: standardEasing\n });\n }\n function onAfterEnter() {\n emit('afterEnter');\n }\n function onAfterLeave() {\n _onAfterLeave();\n emit('afterLeave');\n }\n useRender(() => _createVNode(_Fragment, null, [slots.activator?.({\n isActive: isActive.value,\n targetRef,\n props: mergeProps({\n ref: activatorRef\n }, activatorEvents.value, props.activatorProps)\n }), isMounted.value && hasContent.value && _createVNode(Teleport, {\n \"disabled\": !teleportTarget.value,\n \"to\": teleportTarget.value\n }, {\n default: () => [_createVNode(\"div\", _mergeProps({\n \"class\": ['v-overlay', {\n 'v-overlay--absolute': props.absolute || props.contained,\n 'v-overlay--active': isActive.value,\n 'v-overlay--contained': props.contained\n }, themeClasses.value, rtlClasses.value, props.class],\n \"style\": [stackStyles.value, {\n '--v-overlay-opacity': props.opacity,\n top: convertToUnit(top.value)\n }, props.style],\n \"ref\": root\n }, scopeId, attrs), [_createVNode(Scrim, _mergeProps({\n \"color\": scrimColor,\n \"modelValue\": isActive.value && !!props.scrim,\n \"ref\": scrimEl\n }, scrimEvents.value), null), _createVNode(MaybeTransition, {\n \"appear\": true,\n \"persisted\": true,\n \"transition\": props.transition,\n \"target\": target.value,\n \"onAfterEnter\": onAfterEnter,\n \"onAfterLeave\": onAfterLeave\n }, {\n default: () => [_withDirectives(_createVNode(\"div\", _mergeProps({\n \"ref\": contentEl,\n \"class\": ['v-overlay__content', props.contentClass],\n \"style\": [dimensionStyles.value, contentStyles.value]\n }, contentEvents.value, props.contentProps), [slots.default?.({\n isActive\n })]), [[_vShow, isActive.value], [_resolveDirective(\"click-outside\"), {\n handler: onClickOutside,\n closeConditional,\n include: () => [activatorEl.value]\n }]])]\n })])]\n })]));\n return {\n activatorEl,\n scrimEl,\n target,\n animateClick,\n contentEl,\n globalTop,\n localTop,\n updateLocation\n };\n }\n});\n//# sourceMappingURL=VOverlay.mjs.map","// Types\n\nconst Refs = Symbol('Forwarded refs');\n\n/** Omit properties starting with P */\n\n/** Omit keyof $props from T */\n\nfunction getDescriptor(obj, key) {\n let currentObj = obj;\n while (currentObj) {\n const descriptor = Reflect.getOwnPropertyDescriptor(currentObj, key);\n if (descriptor) return descriptor;\n currentObj = Object.getPrototypeOf(currentObj);\n }\n return undefined;\n}\nexport function forwardRefs(target) {\n for (var _len = arguments.length, refs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n refs[_key - 1] = arguments[_key];\n }\n target[Refs] = refs;\n return new Proxy(target, {\n get(target, key) {\n if (Reflect.has(target, key)) {\n return Reflect.get(target, key);\n }\n\n // Skip internal properties\n if (typeof key === 'symbol' || key.startsWith('$') || key.startsWith('__')) return;\n for (const ref of refs) {\n if (ref.value && Reflect.has(ref.value, key)) {\n const val = Reflect.get(ref.value, key);\n return typeof val === 'function' ? val.bind(ref.value) : val;\n }\n }\n },\n has(target, key) {\n if (Reflect.has(target, key)) {\n return true;\n }\n\n // Skip internal properties\n if (typeof key === 'symbol' || key.startsWith('$') || key.startsWith('__')) return false;\n for (const ref of refs) {\n if (ref.value && Reflect.has(ref.value, key)) {\n return true;\n }\n }\n return false;\n },\n set(target, key, value) {\n if (Reflect.has(target, key)) {\n return Reflect.set(target, key, value);\n }\n\n // Skip internal properties\n if (typeof key === 'symbol' || key.startsWith('$') || key.startsWith('__')) return false;\n for (const ref of refs) {\n if (ref.value && Reflect.has(ref.value, key)) {\n return Reflect.set(ref.value, key, value);\n }\n }\n return false;\n },\n getOwnPropertyDescriptor(target, key) {\n const descriptor = Reflect.getOwnPropertyDescriptor(target, key);\n if (descriptor) return descriptor;\n\n // Skip internal properties\n if (typeof key === 'symbol' || key.startsWith('$') || key.startsWith('__')) return;\n\n // Check each ref's own properties\n for (const ref of refs) {\n if (!ref.value) continue;\n const descriptor = getDescriptor(ref.value, key) ?? ('_' in ref.value ? getDescriptor(ref.value._?.setupState, key) : undefined);\n if (descriptor) return descriptor;\n }\n\n // Recursive search up each ref's prototype\n for (const ref of refs) {\n const childRefs = ref.value && ref.value[Refs];\n if (!childRefs) continue;\n const queue = childRefs.slice();\n while (queue.length) {\n const ref = queue.shift();\n const descriptor = getDescriptor(ref.value, key);\n if (descriptor) return descriptor;\n const childRefs = ref.value && ref.value[Refs];\n if (childRefs) queue.push(...childRefs);\n }\n }\n return undefined;\n }\n });\n}\n//# sourceMappingURL=forwardRefs.mjs.map","import { createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\n// Styles\nimport \"./VMenu.css\";\n\n// Components\nimport { VDialogTransition } from \"../transitions/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VOverlay } from \"../VOverlay/index.mjs\";\nimport { makeVOverlayProps } from \"../VOverlay/VOverlay.mjs\"; // Composables\nimport { forwardRefs } from \"../../composables/forwardRefs.mjs\";\nimport { useRtl } from \"../../composables/locale.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { useScopeId } from \"../../composables/scopeId.mjs\"; // Utilities\nimport { computed, inject, mergeProps, nextTick, onBeforeUnmount, onDeactivated, provide, ref, shallowRef, watch } from 'vue';\nimport { VMenuSymbol } from \"./shared.mjs\";\nimport { focusableChildren, focusChild, genericComponent, getNextElement, getUid, IN_BROWSER, isClickInsideElement, omit, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVMenuProps = propsFactory({\n // TODO\n // disableKeys: Boolean,\n id: String,\n submenu: Boolean,\n ...omit(makeVOverlayProps({\n closeDelay: 250,\n closeOnContentClick: true,\n locationStrategy: 'connected',\n location: undefined,\n openDelay: 300,\n scrim: false,\n scrollStrategy: 'reposition',\n transition: {\n component: VDialogTransition\n }\n }), ['absolute'])\n}, 'VMenu');\nexport const VMenu = genericComponent()({\n name: 'VMenu',\n props: makeVMenuProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const isActive = useProxiedModel(props, 'modelValue');\n const {\n scopeId\n } = useScopeId();\n const {\n isRtl\n } = useRtl();\n const uid = getUid();\n const id = computed(() => props.id || `v-menu-${uid}`);\n const overlay = ref();\n const parent = inject(VMenuSymbol, null);\n const openChildren = shallowRef(new Set());\n provide(VMenuSymbol, {\n register() {\n openChildren.value.add(uid);\n },\n unregister() {\n openChildren.value.delete(uid);\n },\n closeParents(e) {\n setTimeout(() => {\n if (!openChildren.value.size && !props.persistent && (e == null || overlay.value?.contentEl && !isClickInsideElement(e, overlay.value.contentEl))) {\n isActive.value = false;\n parent?.closeParents();\n }\n }, 40);\n }\n });\n onBeforeUnmount(() => {\n parent?.unregister();\n document.removeEventListener('focusin', onFocusIn);\n });\n onDeactivated(() => isActive.value = false);\n async function onFocusIn(e) {\n const before = e.relatedTarget;\n const after = e.target;\n await nextTick();\n if (isActive.value && before !== after && overlay.value?.contentEl &&\n // We're the topmost menu\n overlay.value?.globalTop &&\n // It isn't the document or the menu body\n ![document, overlay.value.contentEl].includes(after) &&\n // It isn't inside the menu body\n !overlay.value.contentEl.contains(after)) {\n const focusable = focusableChildren(overlay.value.contentEl);\n focusable[0]?.focus();\n }\n }\n watch(isActive, val => {\n if (val) {\n parent?.register();\n if (IN_BROWSER) {\n document.addEventListener('focusin', onFocusIn, {\n once: true\n });\n }\n } else {\n parent?.unregister();\n if (IN_BROWSER) {\n document.removeEventListener('focusin', onFocusIn);\n }\n }\n }, {\n immediate: true\n });\n function onClickOutside(e) {\n parent?.closeParents(e);\n }\n function onKeydown(e) {\n if (props.disabled) return;\n if (e.key === 'Tab' || e.key === 'Enter' && !props.closeOnContentClick) {\n if (e.key === 'Enter' && (e.target instanceof HTMLTextAreaElement || e.target instanceof HTMLInputElement && !!e.target.closest('form'))) return;\n if (e.key === 'Enter') e.preventDefault();\n const nextElement = getNextElement(focusableChildren(overlay.value?.contentEl, false), e.shiftKey ? 'prev' : 'next', el => el.tabIndex >= 0);\n if (!nextElement) {\n isActive.value = false;\n overlay.value?.activatorEl?.focus();\n }\n } else if (props.submenu && e.key === (isRtl.value ? 'ArrowRight' : 'ArrowLeft')) {\n isActive.value = false;\n overlay.value?.activatorEl?.focus();\n }\n }\n function onActivatorKeydown(e) {\n if (props.disabled) return;\n const el = overlay.value?.contentEl;\n if (el && isActive.value) {\n if (e.key === 'ArrowDown') {\n e.preventDefault();\n e.stopImmediatePropagation();\n focusChild(el, 'next');\n } else if (e.key === 'ArrowUp') {\n e.preventDefault();\n e.stopImmediatePropagation();\n focusChild(el, 'prev');\n } else if (props.submenu) {\n if (e.key === (isRtl.value ? 'ArrowRight' : 'ArrowLeft')) {\n isActive.value = false;\n } else if (e.key === (isRtl.value ? 'ArrowLeft' : 'ArrowRight')) {\n e.preventDefault();\n focusChild(el, 'first');\n }\n }\n } else if (props.submenu ? e.key === (isRtl.value ? 'ArrowLeft' : 'ArrowRight') : ['ArrowDown', 'ArrowUp'].includes(e.key)) {\n isActive.value = true;\n e.preventDefault();\n setTimeout(() => setTimeout(() => onActivatorKeydown(e)));\n }\n }\n const activatorProps = computed(() => mergeProps({\n 'aria-haspopup': 'menu',\n 'aria-expanded': String(isActive.value),\n 'aria-controls': id.value,\n onKeydown: onActivatorKeydown\n }, props.activatorProps));\n useRender(() => {\n const overlayProps = VOverlay.filterProps(props);\n return _createVNode(VOverlay, _mergeProps({\n \"ref\": overlay,\n \"id\": id.value,\n \"class\": ['v-menu', props.class],\n \"style\": props.style\n }, overlayProps, {\n \"modelValue\": isActive.value,\n \"onUpdate:modelValue\": $event => isActive.value = $event,\n \"absolute\": true,\n \"activatorProps\": activatorProps.value,\n \"location\": props.location ?? (props.submenu ? 'end' : 'bottom'),\n \"onClick:outside\": onClickOutside,\n \"onKeydown\": onKeydown\n }, scopeId), {\n activator: slots.activator,\n default: function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return _createVNode(VDefaultsProvider, {\n \"root\": \"VMenu\"\n }, {\n default: () => [slots.default?.(...args)]\n });\n }\n });\n });\n return forwardRefs({\n id,\n ΨopenChildren: openChildren\n }, overlay);\n }\n});\n//# sourceMappingURL=VMenu.mjs.map","import { vShow as _vShow, createVNode as _createVNode, withDirectives as _withDirectives } from \"vue\";\n// Styles\nimport \"./VCounter.css\";\n\n// Components\nimport { VSlideYTransition } from \"../transitions/index.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeTransitionProps, MaybeTransition } from \"../../composables/transition.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVCounterProps = propsFactory({\n active: Boolean,\n disabled: Boolean,\n max: [Number, String],\n value: {\n type: [Number, String],\n default: 0\n },\n ...makeComponentProps(),\n ...makeTransitionProps({\n transition: {\n component: VSlideYTransition\n }\n })\n}, 'VCounter');\nexport const VCounter = genericComponent()({\n name: 'VCounter',\n functional: true,\n props: makeVCounterProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const counter = computed(() => {\n return props.max ? `${props.value} / ${props.max}` : String(props.value);\n });\n useRender(() => _createVNode(MaybeTransition, {\n \"transition\": props.transition\n }, {\n default: () => [_withDirectives(_createVNode(\"div\", {\n \"class\": ['v-counter', {\n 'text-error': props.max && !props.disabled && parseFloat(props.value) > parseFloat(props.max)\n }, props.class],\n \"style\": props.style\n }, [slots.default ? slots.default({\n counter: counter.value,\n max: props.max,\n value: props.value\n }) : counter.value]), [[_vShow, props.active]])]\n }));\n return {};\n }\n});\n//# sourceMappingURL=VCounter.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Components\nimport { VLabel } from \"../VLabel/index.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVFieldLabelProps = propsFactory({\n floating: Boolean,\n ...makeComponentProps()\n}, 'VFieldLabel');\nexport const VFieldLabel = genericComponent()({\n name: 'VFieldLabel',\n props: makeVFieldLabelProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => _createVNode(VLabel, {\n \"class\": ['v-field-label', {\n 'v-field-label--floating': props.floating\n }, props.class],\n \"style\": props.style,\n \"aria-hidden\": props.floating || undefined\n }, slots));\n return {};\n }\n});\n//# sourceMappingURL=VFieldLabel.mjs.map","import { createVNode as _createVNode, vShow as _vShow, withDirectives as _withDirectives, Fragment as _Fragment, mergeProps as _mergeProps } from \"vue\";\n// Styles\nimport \"./VField.css\";\n\n// Components\nimport { VFieldLabel } from \"./VFieldLabel.mjs\";\nimport { VExpandXTransition } from \"../transitions/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { useInputIcon } from \"../VInput/InputIcon.mjs\"; // Composables\nimport { useBackgroundColor, useTextColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeFocusProps, useFocus } from \"../../composables/focus.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { LoaderSlot, makeLoaderProps, useLoader } from \"../../composables/loader.mjs\";\nimport { useRtl } from \"../../composables/locale.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { computed, ref, toRef, watch } from 'vue';\nimport { animate, convertToUnit, EventProp, genericComponent, getUid, isOn, nullifyTransforms, pick, propsFactory, standardEasing, useRender } from \"../../util/index.mjs\"; // Types\nconst allowedVariants = ['underlined', 'outlined', 'filled', 'solo', 'solo-inverted', 'solo-filled', 'plain'];\nexport const makeVFieldProps = propsFactory({\n appendInnerIcon: IconValue,\n bgColor: String,\n clearable: Boolean,\n clearIcon: {\n type: IconValue,\n default: '$clear'\n },\n active: Boolean,\n centerAffix: {\n type: Boolean,\n default: undefined\n },\n color: String,\n baseColor: String,\n dirty: Boolean,\n disabled: {\n type: Boolean,\n default: null\n },\n error: Boolean,\n flat: Boolean,\n label: String,\n persistentClear: Boolean,\n prependInnerIcon: IconValue,\n reverse: Boolean,\n singleLine: Boolean,\n variant: {\n type: String,\n default: 'filled',\n validator: v => allowedVariants.includes(v)\n },\n 'onClick:clear': EventProp(),\n 'onClick:appendInner': EventProp(),\n 'onClick:prependInner': EventProp(),\n ...makeComponentProps(),\n ...makeLoaderProps(),\n ...makeRoundedProps(),\n ...makeThemeProps()\n}, 'VField');\nexport const VField = genericComponent()({\n name: 'VField',\n inheritAttrs: false,\n props: {\n id: String,\n ...makeFocusProps(),\n ...makeVFieldProps()\n },\n emits: {\n 'update:focused': focused => true,\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n attrs,\n emit,\n slots\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n loaderClasses\n } = useLoader(props);\n const {\n focusClasses,\n isFocused,\n focus,\n blur\n } = useFocus(props);\n const {\n InputIcon\n } = useInputIcon(props);\n const {\n roundedClasses\n } = useRounded(props);\n const {\n rtlClasses\n } = useRtl();\n const isActive = computed(() => props.dirty || props.active);\n const hasLabel = computed(() => !!(props.label || slots.label));\n const hasFloatingLabel = computed(() => !props.singleLine && hasLabel.value);\n const uid = getUid();\n const id = computed(() => props.id || `input-${uid}`);\n const messagesId = computed(() => `${id.value}-messages`);\n const labelRef = ref();\n const floatingLabelRef = ref();\n const controlRef = ref();\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant));\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(toRef(props, 'bgColor'));\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(computed(() => {\n return props.error || props.disabled ? undefined : isActive.value && isFocused.value ? props.color : props.baseColor;\n }));\n watch(isActive, val => {\n if (hasFloatingLabel.value) {\n const el = labelRef.value.$el;\n const targetEl = floatingLabelRef.value.$el;\n requestAnimationFrame(() => {\n const rect = nullifyTransforms(el);\n const targetRect = targetEl.getBoundingClientRect();\n const x = targetRect.x - rect.x;\n const y = targetRect.y - rect.y - (rect.height / 2 - targetRect.height / 2);\n const targetWidth = targetRect.width / 0.75;\n const width = Math.abs(targetWidth - rect.width) > 1 ? {\n maxWidth: convertToUnit(targetWidth)\n } : undefined;\n const style = getComputedStyle(el);\n const targetStyle = getComputedStyle(targetEl);\n const duration = parseFloat(style.transitionDuration) * 1000 || 150;\n const scale = parseFloat(targetStyle.getPropertyValue('--v-field-label-scale'));\n const color = targetStyle.getPropertyValue('color');\n el.style.visibility = 'visible';\n targetEl.style.visibility = 'hidden';\n animate(el, {\n transform: `translate(${x}px, ${y}px) scale(${scale})`,\n color,\n ...width\n }, {\n duration,\n easing: standardEasing,\n direction: val ? 'normal' : 'reverse'\n }).finished.then(() => {\n el.style.removeProperty('visibility');\n targetEl.style.removeProperty('visibility');\n });\n });\n }\n }, {\n flush: 'post'\n });\n const slotProps = computed(() => ({\n isActive,\n isFocused,\n controlRef,\n blur,\n focus\n }));\n function onClick(e) {\n if (e.target !== document.activeElement) {\n e.preventDefault();\n }\n }\n useRender(() => {\n const isOutlined = props.variant === 'outlined';\n const hasPrepend = !!(slots['prepend-inner'] || props.prependInnerIcon);\n const hasClear = !!(props.clearable || slots.clear) && !props.disabled;\n const hasAppend = !!(slots['append-inner'] || props.appendInnerIcon || hasClear);\n const label = () => slots.label ? slots.label({\n ...slotProps.value,\n label: props.label,\n props: {\n for: id.value\n }\n }) : props.label;\n return _createVNode(\"div\", _mergeProps({\n \"class\": ['v-field', {\n 'v-field--active': isActive.value,\n 'v-field--appended': hasAppend,\n 'v-field--center-affix': props.centerAffix ?? !isPlainOrUnderlined.value,\n 'v-field--disabled': props.disabled,\n 'v-field--dirty': props.dirty,\n 'v-field--error': props.error,\n 'v-field--flat': props.flat,\n 'v-field--has-background': !!props.bgColor,\n 'v-field--persistent-clear': props.persistentClear,\n 'v-field--prepended': hasPrepend,\n 'v-field--reverse': props.reverse,\n 'v-field--single-line': props.singleLine,\n 'v-field--no-label': !label(),\n [`v-field--variant-${props.variant}`]: true\n }, themeClasses.value, backgroundColorClasses.value, focusClasses.value, loaderClasses.value, roundedClasses.value, rtlClasses.value, props.class],\n \"style\": [backgroundColorStyles.value, props.style],\n \"onClick\": onClick\n }, attrs), [_createVNode(\"div\", {\n \"class\": \"v-field__overlay\"\n }, null), _createVNode(LoaderSlot, {\n \"name\": \"v-field\",\n \"active\": !!props.loading,\n \"color\": props.error ? 'error' : typeof props.loading === 'string' ? props.loading : props.color\n }, {\n default: slots.loader\n }), hasPrepend && _createVNode(\"div\", {\n \"key\": \"prepend\",\n \"class\": \"v-field__prepend-inner\"\n }, [props.prependInnerIcon && _createVNode(InputIcon, {\n \"key\": \"prepend-icon\",\n \"name\": \"prependInner\"\n }, null), slots['prepend-inner']?.(slotProps.value)]), _createVNode(\"div\", {\n \"class\": \"v-field__field\",\n \"data-no-activator\": \"\"\n }, [['filled', 'solo', 'solo-inverted', 'solo-filled'].includes(props.variant) && hasFloatingLabel.value && _createVNode(VFieldLabel, {\n \"key\": \"floating-label\",\n \"ref\": floatingLabelRef,\n \"class\": [textColorClasses.value],\n \"floating\": true,\n \"for\": id.value,\n \"style\": textColorStyles.value\n }, {\n default: () => [label()]\n }), hasLabel.value && _createVNode(VFieldLabel, {\n \"key\": \"label\",\n \"ref\": labelRef,\n \"for\": id.value\n }, {\n default: () => [label()]\n }), slots.default?.({\n ...slotProps.value,\n props: {\n id: id.value,\n class: 'v-field__input',\n 'aria-describedby': messagesId.value\n },\n focus,\n blur\n })]), hasClear && _createVNode(VExpandXTransition, {\n \"key\": \"clear\"\n }, {\n default: () => [_withDirectives(_createVNode(\"div\", {\n \"class\": \"v-field__clearable\",\n \"onMousedown\": e => {\n e.preventDefault();\n e.stopPropagation();\n }\n }, [_createVNode(VDefaultsProvider, {\n \"defaults\": {\n VIcon: {\n icon: props.clearIcon\n }\n }\n }, {\n default: () => [slots.clear ? slots.clear({\n ...slotProps.value,\n props: {\n onFocus: focus,\n onBlur: blur,\n onClick: props['onClick:clear']\n }\n }) : _createVNode(InputIcon, {\n \"name\": \"clear\",\n \"onFocus\": focus,\n \"onBlur\": blur\n }, null)]\n })]), [[_vShow, props.dirty]])]\n }), hasAppend && _createVNode(\"div\", {\n \"key\": \"append\",\n \"class\": \"v-field__append-inner\"\n }, [slots['append-inner']?.(slotProps.value), props.appendInnerIcon && _createVNode(InputIcon, {\n \"key\": \"append-icon\",\n \"name\": \"appendInner\"\n }, null)]), _createVNode(\"div\", {\n \"class\": ['v-field__outline', textColorClasses.value],\n \"style\": textColorStyles.value\n }, [isOutlined && _createVNode(_Fragment, null, [_createVNode(\"div\", {\n \"class\": \"v-field__outline__start\"\n }, null), hasFloatingLabel.value && _createVNode(\"div\", {\n \"class\": \"v-field__outline__notch\"\n }, [_createVNode(VFieldLabel, {\n \"ref\": floatingLabelRef,\n \"floating\": true,\n \"for\": id.value\n }, {\n default: () => [label()]\n })]), _createVNode(\"div\", {\n \"class\": \"v-field__outline__end\"\n }, null)]), isPlainOrUnderlined.value && hasFloatingLabel.value && _createVNode(VFieldLabel, {\n \"ref\": floatingLabelRef,\n \"floating\": true,\n \"for\": id.value\n }, {\n default: () => [label()]\n })])]);\n });\n return {\n controlRef\n };\n }\n});\n// TODO: this is kinda slow, might be better to implicitly inherit props instead\nexport function filterFieldProps(attrs) {\n const keys = Object.keys(VField.props).filter(k => !isOn(k) && k !== 'class' && k !== 'style');\n return pick(attrs, keys);\n}\n//# sourceMappingURL=VField.mjs.map","import { resolveDirective as _resolveDirective, mergeProps as _mergeProps, createVNode as _createVNode, withDirectives as _withDirectives, Fragment as _Fragment } from \"vue\";\n// Styles\nimport \"./VTextField.css\";\n\n// Components\nimport { VCounter } from \"../VCounter/VCounter.mjs\";\nimport { filterFieldProps, makeVFieldProps, VField } from \"../VField/VField.mjs\";\nimport { makeVInputProps, VInput } from \"../VInput/VInput.mjs\"; // Composables\nimport { useFocus } from \"../../composables/focus.mjs\";\nimport { forwardRefs } from \"../../composables/forwardRefs.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Directives\nimport Intersect from \"../../directives/intersect/index.mjs\"; // Utilities\nimport { cloneVNode, computed, nextTick, ref } from 'vue';\nimport { callEvent, filterInputAttrs, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nconst activeTypes = ['color', 'file', 'time', 'date', 'datetime-local', 'week', 'month'];\nexport const makeVTextFieldProps = propsFactory({\n autofocus: Boolean,\n counter: [Boolean, Number, String],\n counterValue: [Number, Function],\n prefix: String,\n placeholder: String,\n persistentPlaceholder: Boolean,\n persistentCounter: Boolean,\n suffix: String,\n role: String,\n type: {\n type: String,\n default: 'text'\n },\n modelModifiers: Object,\n ...makeVInputProps(),\n ...makeVFieldProps()\n}, 'VTextField');\nexport const VTextField = genericComponent()({\n name: 'VTextField',\n directives: {\n Intersect\n },\n inheritAttrs: false,\n props: makeVTextFieldProps(),\n emits: {\n 'click:control': e => true,\n 'mousedown:control': e => true,\n 'update:focused': focused => true,\n 'update:modelValue': val => true\n },\n setup(props, _ref) {\n let {\n attrs,\n emit,\n slots\n } = _ref;\n const model = useProxiedModel(props, 'modelValue');\n const {\n isFocused,\n focus,\n blur\n } = useFocus(props);\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function' ? props.counterValue(model.value) : typeof props.counterValue === 'number' ? props.counterValue : (model.value ?? '').toString().length;\n });\n const max = computed(() => {\n if (attrs.maxlength) return attrs.maxlength;\n if (!props.counter || typeof props.counter !== 'number' && typeof props.counter !== 'string') return undefined;\n return props.counter;\n });\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant));\n function onIntersect(isIntersecting, entries) {\n if (!props.autofocus || !isIntersecting) return;\n entries[0].target?.focus?.();\n }\n const vInputRef = ref();\n const vFieldRef = ref();\n const inputRef = ref();\n const isActive = computed(() => activeTypes.includes(props.type) || props.persistentPlaceholder || isFocused.value || props.active);\n function onFocus() {\n if (inputRef.value !== document.activeElement) {\n inputRef.value?.focus();\n }\n if (!isFocused.value) focus();\n }\n function onControlMousedown(e) {\n emit('mousedown:control', e);\n if (e.target === inputRef.value) return;\n onFocus();\n e.preventDefault();\n }\n function onControlClick(e) {\n onFocus();\n emit('click:control', e);\n }\n function onClear(e) {\n e.stopPropagation();\n onFocus();\n nextTick(() => {\n model.value = null;\n callEvent(props['onClick:clear'], e);\n });\n }\n function onInput(e) {\n const el = e.target;\n model.value = el.value;\n if (props.modelModifiers?.trim && ['text', 'search', 'password', 'tel', 'url'].includes(props.type)) {\n const caretPosition = [el.selectionStart, el.selectionEnd];\n nextTick(() => {\n el.selectionStart = caretPosition[0];\n el.selectionEnd = caretPosition[1];\n });\n }\n }\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter !== false && props.counter != null);\n const hasDetails = !!(hasCounter || slots.details);\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs);\n const {\n modelValue: _,\n ...inputProps\n } = VInput.filterProps(props);\n const fieldProps = filterFieldProps(props);\n return _createVNode(VInput, _mergeProps({\n \"ref\": vInputRef,\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"class\": ['v-text-field', {\n 'v-text-field--prefixed': props.prefix,\n 'v-text-field--suffixed': props.suffix,\n 'v-input--plain-underlined': isPlainOrUnderlined.value\n }, props.class],\n \"style\": props.style\n }, rootAttrs, inputProps, {\n \"centerAffix\": !isPlainOrUnderlined.value,\n \"focused\": isFocused.value\n }), {\n ...slots,\n default: _ref2 => {\n let {\n id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid\n } = _ref2;\n return _createVNode(VField, _mergeProps({\n \"ref\": vFieldRef,\n \"onMousedown\": onControlMousedown,\n \"onClick\": onControlClick,\n \"onClick:clear\": onClear,\n \"onClick:prependInner\": props['onClick:prependInner'],\n \"onClick:appendInner\": props['onClick:appendInner'],\n \"role\": props.role\n }, fieldProps, {\n \"id\": id.value,\n \"active\": isActive.value || isDirty.value,\n \"dirty\": isDirty.value || props.dirty,\n \"disabled\": isDisabled.value,\n \"focused\": isFocused.value,\n \"error\": isValid.value === false\n }), {\n ...slots,\n default: _ref3 => {\n let {\n props: {\n class: fieldClass,\n ...slotProps\n }\n } = _ref3;\n const inputNode = _withDirectives(_createVNode(\"input\", _mergeProps({\n \"ref\": inputRef,\n \"value\": model.value,\n \"onInput\": onInput,\n \"autofocus\": props.autofocus,\n \"readonly\": isReadonly.value,\n \"disabled\": isDisabled.value,\n \"name\": props.name,\n \"placeholder\": props.placeholder,\n \"size\": 1,\n \"type\": props.type,\n \"onFocus\": onFocus,\n \"onBlur\": blur\n }, slotProps, inputAttrs), null), [[_resolveDirective(\"intersect\"), {\n handler: onIntersect\n }, null, {\n once: true\n }]]);\n return _createVNode(_Fragment, null, [props.prefix && _createVNode(\"span\", {\n \"class\": \"v-text-field__prefix\"\n }, [_createVNode(\"span\", {\n \"class\": \"v-text-field__prefix__text\"\n }, [props.prefix])]), slots.default ? _createVNode(\"div\", {\n \"class\": fieldClass,\n \"data-no-activator\": \"\"\n }, [slots.default(), inputNode]) : cloneVNode(inputNode, {\n class: fieldClass\n }), props.suffix && _createVNode(\"span\", {\n \"class\": \"v-text-field__suffix\"\n }, [_createVNode(\"span\", {\n \"class\": \"v-text-field__suffix__text\"\n }, [props.suffix])])]);\n }\n });\n },\n details: hasDetails ? slotProps => _createVNode(_Fragment, null, [slots.details?.(slotProps), hasCounter && _createVNode(_Fragment, null, [_createVNode(\"span\", null, null), _createVNode(VCounter, {\n \"active\": props.persistentCounter || isFocused.value,\n \"value\": counterValue.value,\n \"max\": max.value,\n \"disabled\": props.disabled\n }, slots.counter)])]) : undefined\n });\n });\n return forwardRefs({}, vInputRef, vFieldRef, inputRef);\n }\n});\n//# sourceMappingURL=VTextField.mjs.map","import { Fragment as _Fragment, createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { useResizeObserver } from \"../../composables/resizeObserver.mjs\"; // Utilities\nimport { watch } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVVirtualScrollItemProps = propsFactory({\n renderless: Boolean,\n ...makeComponentProps()\n}, 'VVirtualScrollItem');\nexport const VVirtualScrollItem = genericComponent()({\n name: 'VVirtualScrollItem',\n inheritAttrs: false,\n props: makeVVirtualScrollItemProps(),\n emits: {\n 'update:height': height => true\n },\n setup(props, _ref) {\n let {\n attrs,\n emit,\n slots\n } = _ref;\n const {\n resizeRef,\n contentRect\n } = useResizeObserver(undefined, 'border');\n watch(() => contentRect.value?.height, height => {\n if (height != null) emit('update:height', height);\n });\n useRender(() => props.renderless ? _createVNode(_Fragment, null, [slots.default?.({\n itemRef: resizeRef\n })]) : _createVNode(\"div\", _mergeProps({\n \"ref\": resizeRef,\n \"class\": ['v-virtual-scroll__item', props.class],\n \"style\": props.style\n }, attrs), [slots.default?.()]));\n }\n});\n//# sourceMappingURL=VVirtualScrollItem.mjs.map","// Composables\nimport { useDisplay } from \"./display.mjs\";\nimport { useResizeObserver } from \"./resizeObserver.mjs\"; // Utilities\nimport { computed, nextTick, onScopeDispose, ref, shallowRef, watch, watchEffect } from 'vue';\nimport { clamp, debounce, IN_BROWSER, isObject, propsFactory } from \"../util/index.mjs\"; // Types\nconst UP = -1;\nconst DOWN = 1;\n\n/** Determines how large each batch of items should be */\nconst BUFFER_PX = 100;\nexport const makeVirtualProps = propsFactory({\n itemHeight: {\n type: [Number, String],\n default: null\n },\n height: [Number, String]\n}, 'virtual');\nexport function useVirtual(props, items) {\n const display = useDisplay();\n const itemHeight = shallowRef(0);\n watchEffect(() => {\n itemHeight.value = parseFloat(props.itemHeight || 0);\n });\n const first = shallowRef(0);\n const last = shallowRef(Math.ceil(\n // Assume 16px items filling the entire screen height if\n // not provided. This is probably incorrect but it minimises\n // the chance of ending up with empty space at the bottom.\n // The default value is set here to avoid poisoning getSize()\n (parseInt(props.height) || display.height.value) / (itemHeight.value || 16)) || 1);\n const paddingTop = shallowRef(0);\n const paddingBottom = shallowRef(0);\n\n /** The scrollable element */\n const containerRef = ref();\n /** An element marking the top of the scrollable area,\n * used to add an offset if there's padding or other elements above the virtual list */\n const markerRef = ref();\n /** markerRef's offsetTop, lazily evaluated */\n let markerOffset = 0;\n const {\n resizeRef,\n contentRect\n } = useResizeObserver();\n watchEffect(() => {\n resizeRef.value = containerRef.value;\n });\n const viewportHeight = computed(() => {\n return containerRef.value === document.documentElement ? display.height.value : contentRect.value?.height || parseInt(props.height) || 0;\n });\n /** All static elements have been rendered and we have an assumed item height */\n const hasInitialRender = computed(() => {\n return !!(containerRef.value && markerRef.value && viewportHeight.value && itemHeight.value);\n });\n let sizes = Array.from({\n length: items.value.length\n });\n let offsets = Array.from({\n length: items.value.length\n });\n const updateTime = shallowRef(0);\n let targetScrollIndex = -1;\n function getSize(index) {\n return sizes[index] || itemHeight.value;\n }\n const updateOffsets = debounce(() => {\n const start = performance.now();\n offsets[0] = 0;\n const length = items.value.length;\n for (let i = 1; i <= length - 1; i++) {\n offsets[i] = (offsets[i - 1] || 0) + getSize(i - 1);\n }\n updateTime.value = Math.max(updateTime.value, performance.now() - start);\n }, updateTime);\n const unwatch = watch(hasInitialRender, v => {\n if (!v) return;\n // First render is complete, update offsets and visible\n // items in case our assumed item height was incorrect\n\n unwatch();\n markerOffset = markerRef.value.offsetTop;\n updateOffsets.immediate();\n calculateVisibleItems();\n if (!~targetScrollIndex) return;\n nextTick(() => {\n IN_BROWSER && window.requestAnimationFrame(() => {\n scrollToIndex(targetScrollIndex);\n targetScrollIndex = -1;\n });\n });\n });\n onScopeDispose(() => {\n updateOffsets.clear();\n });\n function handleItemResize(index, height) {\n const prevHeight = sizes[index];\n const prevMinHeight = itemHeight.value;\n itemHeight.value = prevMinHeight ? Math.min(itemHeight.value, height) : height;\n if (prevHeight !== height || prevMinHeight !== itemHeight.value) {\n sizes[index] = height;\n updateOffsets();\n }\n }\n function calculateOffset(index) {\n index = clamp(index, 0, items.value.length - 1);\n return offsets[index] || 0;\n }\n function calculateIndex(scrollTop) {\n return binaryClosest(offsets, scrollTop);\n }\n let lastScrollTop = 0;\n let scrollVelocity = 0;\n let lastScrollTime = 0;\n watch(viewportHeight, (val, oldVal) => {\n if (oldVal) {\n calculateVisibleItems();\n if (val < oldVal) {\n requestAnimationFrame(() => {\n scrollVelocity = 0;\n calculateVisibleItems();\n });\n }\n }\n });\n let scrollTimeout = -1;\n function handleScroll() {\n if (!containerRef.value || !markerRef.value) return;\n const scrollTop = containerRef.value.scrollTop;\n const scrollTime = performance.now();\n const scrollDeltaT = scrollTime - lastScrollTime;\n if (scrollDeltaT > 500) {\n scrollVelocity = Math.sign(scrollTop - lastScrollTop);\n\n // Not super important, only update at the\n // start of a scroll sequence to avoid reflows\n markerOffset = markerRef.value.offsetTop;\n } else {\n scrollVelocity = scrollTop - lastScrollTop;\n }\n lastScrollTop = scrollTop;\n lastScrollTime = scrollTime;\n window.clearTimeout(scrollTimeout);\n scrollTimeout = window.setTimeout(handleScrollend, 500);\n calculateVisibleItems();\n }\n function handleScrollend() {\n if (!containerRef.value || !markerRef.value) return;\n scrollVelocity = 0;\n lastScrollTime = 0;\n window.clearTimeout(scrollTimeout);\n calculateVisibleItems();\n }\n let raf = -1;\n function calculateVisibleItems() {\n cancelAnimationFrame(raf);\n raf = requestAnimationFrame(_calculateVisibleItems);\n }\n function _calculateVisibleItems() {\n if (!containerRef.value || !viewportHeight.value) return;\n const scrollTop = lastScrollTop - markerOffset;\n const direction = Math.sign(scrollVelocity);\n const startPx = Math.max(0, scrollTop - BUFFER_PX);\n const start = clamp(calculateIndex(startPx), 0, items.value.length);\n const endPx = scrollTop + viewportHeight.value + BUFFER_PX;\n const end = clamp(calculateIndex(endPx) + 1, start + 1, items.value.length);\n if (\n // Only update the side we're scrolling towards,\n // the other side will be updated incidentally\n (direction !== UP || start < first.value) && (direction !== DOWN || end > last.value)) {\n const topOverflow = calculateOffset(first.value) - calculateOffset(start);\n const bottomOverflow = calculateOffset(end) - calculateOffset(last.value);\n const bufferOverflow = Math.max(topOverflow, bottomOverflow);\n if (bufferOverflow > BUFFER_PX) {\n first.value = start;\n last.value = end;\n } else {\n // Only update the side that's reached its limit if there's still buffer left\n if (start <= 0) first.value = start;\n if (end >= items.value.length) last.value = end;\n }\n }\n paddingTop.value = calculateOffset(first.value);\n paddingBottom.value = calculateOffset(items.value.length) - calculateOffset(last.value);\n }\n function scrollToIndex(index) {\n const offset = calculateOffset(index);\n if (!containerRef.value || index && !offset) {\n targetScrollIndex = index;\n } else {\n containerRef.value.scrollTop = offset;\n }\n }\n const computedItems = computed(() => {\n return items.value.slice(first.value, last.value).map((item, index) => ({\n raw: item,\n index: index + first.value,\n key: isObject(item) && 'value' in item ? item.value : index + first.value\n }));\n });\n watch(items, () => {\n sizes = Array.from({\n length: items.value.length\n });\n offsets = Array.from({\n length: items.value.length\n });\n updateOffsets.immediate();\n calculateVisibleItems();\n }, {\n deep: true\n });\n return {\n calculateVisibleItems,\n containerRef,\n markerRef,\n computedItems,\n paddingTop,\n paddingBottom,\n scrollToIndex,\n handleScroll,\n handleScrollend,\n handleItemResize\n };\n}\n\n// https://gist.github.com/robertleeplummerjr/1cc657191d34ecd0a324\nfunction binaryClosest(arr, val) {\n let high = arr.length - 1;\n let low = 0;\n let mid = 0;\n let item = null;\n let target = -1;\n if (arr[high] < val) {\n return high;\n }\n while (low <= high) {\n mid = low + high >> 1;\n item = arr[mid];\n if (item > val) {\n high = mid - 1;\n } else if (item < val) {\n target = mid;\n low = mid + 1;\n } else if (item === val) {\n return mid;\n } else {\n return low;\n }\n }\n return target;\n}\n//# sourceMappingURL=virtual.mjs.map","import { createVNode as _createVNode, Fragment as _Fragment } from \"vue\";\n// Styles\nimport \"./VVirtualScroll.css\";\n\n// Components\nimport { VVirtualScrollItem } from \"./VVirtualScrollItem.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { useToggleScope } from \"../../composables/toggleScope.mjs\";\nimport { makeVirtualProps, useVirtual } from \"../../composables/virtual.mjs\"; // Utilities\nimport { onMounted, onScopeDispose, toRef } from 'vue';\nimport { convertToUnit, genericComponent, getCurrentInstance, getScrollParent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVVirtualScrollProps = propsFactory({\n items: {\n type: Array,\n default: () => []\n },\n renderless: Boolean,\n ...makeVirtualProps(),\n ...makeComponentProps(),\n ...makeDimensionProps()\n}, 'VVirtualScroll');\nexport const VVirtualScroll = genericComponent()({\n name: 'VVirtualScroll',\n props: makeVVirtualScrollProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const vm = getCurrentInstance('VVirtualScroll');\n const {\n dimensionStyles\n } = useDimension(props);\n const {\n calculateVisibleItems,\n containerRef,\n markerRef,\n handleScroll,\n handleScrollend,\n handleItemResize,\n scrollToIndex,\n paddingTop,\n paddingBottom,\n computedItems\n } = useVirtual(props, toRef(props, 'items'));\n useToggleScope(() => props.renderless, () => {\n function handleListeners() {\n let add = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n const method = add ? 'addEventListener' : 'removeEventListener';\n if (containerRef.value === document.documentElement) {\n document[method]('scroll', handleScroll, {\n passive: true\n });\n document[method]('scrollend', handleScrollend);\n } else {\n containerRef.value?.[method]('scroll', handleScroll, {\n passive: true\n });\n containerRef.value?.[method]('scrollend', handleScrollend);\n }\n }\n onMounted(() => {\n containerRef.value = getScrollParent(vm.vnode.el, true);\n handleListeners(true);\n });\n onScopeDispose(handleListeners);\n });\n useRender(() => {\n const children = computedItems.value.map(item => _createVNode(VVirtualScrollItem, {\n \"key\": item.key,\n \"renderless\": props.renderless,\n \"onUpdate:height\": height => handleItemResize(item.index, height)\n }, {\n default: slotProps => slots.default?.({\n item: item.raw,\n index: item.index,\n ...slotProps\n })\n }));\n return props.renderless ? _createVNode(_Fragment, null, [_createVNode(\"div\", {\n \"ref\": markerRef,\n \"class\": \"v-virtual-scroll__spacer\",\n \"style\": {\n paddingTop: convertToUnit(paddingTop.value)\n }\n }, null), children, _createVNode(\"div\", {\n \"class\": \"v-virtual-scroll__spacer\",\n \"style\": {\n paddingBottom: convertToUnit(paddingBottom.value)\n }\n }, null)]) : _createVNode(\"div\", {\n \"ref\": containerRef,\n \"class\": ['v-virtual-scroll', props.class],\n \"onScrollPassive\": handleScroll,\n \"onScrollend\": handleScrollend,\n \"style\": [dimensionStyles.value, props.style]\n }, [_createVNode(\"div\", {\n \"ref\": markerRef,\n \"class\": \"v-virtual-scroll__container\",\n \"style\": {\n paddingTop: convertToUnit(paddingTop.value),\n paddingBottom: convertToUnit(paddingBottom.value)\n }\n }, [children])]);\n });\n return {\n calculateVisibleItems,\n scrollToIndex\n };\n }\n});\n//# sourceMappingURL=VVirtualScroll.mjs.map","// Utilities\nimport { shallowRef, watch } from 'vue';\n\n// Types\n\nexport function useScrolling(listRef, textFieldRef) {\n const isScrolling = shallowRef(false);\n let scrollTimeout;\n function onListScroll(e) {\n cancelAnimationFrame(scrollTimeout);\n isScrolling.value = true;\n scrollTimeout = requestAnimationFrame(() => {\n scrollTimeout = requestAnimationFrame(() => {\n isScrolling.value = false;\n });\n });\n }\n async function finishScrolling() {\n await new Promise(resolve => requestAnimationFrame(resolve));\n await new Promise(resolve => requestAnimationFrame(resolve));\n await new Promise(resolve => requestAnimationFrame(resolve));\n await new Promise(resolve => {\n if (isScrolling.value) {\n const stop = watch(isScrolling, () => {\n stop();\n resolve();\n });\n } else resolve();\n });\n }\n async function onListKeydown(e) {\n if (e.key === 'Tab') {\n textFieldRef.value?.focus();\n }\n if (!['PageDown', 'PageUp', 'Home', 'End'].includes(e.key)) return;\n const el = listRef.value?.$el;\n if (!el) return;\n if (e.key === 'Home' || e.key === 'End') {\n el.scrollTo({\n top: e.key === 'Home' ? 0 : el.scrollHeight,\n behavior: 'smooth'\n });\n }\n await finishScrolling();\n const children = el.querySelectorAll(':scope > :not(.v-virtual-scroll__spacer)');\n if (e.key === 'PageDown' || e.key === 'Home') {\n const top = el.getBoundingClientRect().top;\n for (const child of children) {\n if (child.getBoundingClientRect().top >= top) {\n child.focus();\n break;\n }\n }\n } else {\n const bottom = el.getBoundingClientRect().bottom;\n for (const child of [...children].reverse()) {\n if (child.getBoundingClientRect().bottom <= bottom) {\n child.focus();\n break;\n }\n }\n }\n }\n return {\n onScrollPassive: onListScroll,\n onKeydown: onListKeydown\n }; // typescript doesn't know about vue's event merging\n}\n//# sourceMappingURL=useScrolling.mjs.map","import { Fragment as _Fragment, createVNode as _createVNode, mergeProps as _mergeProps, createTextVNode as _createTextVNode } from \"vue\";\n// Styles\nimport \"./VSelect.css\";\n\n// Components\nimport { VDialogTransition } from \"../transitions/index.mjs\";\nimport { VAvatar } from \"../VAvatar/index.mjs\";\nimport { VCheckboxBtn } from \"../VCheckbox/index.mjs\";\nimport { VChip } from \"../VChip/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\";\nimport { VList, VListItem } from \"../VList/index.mjs\";\nimport { VMenu } from \"../VMenu/index.mjs\";\nimport { makeVTextFieldProps, VTextField } from \"../VTextField/VTextField.mjs\";\nimport { VVirtualScroll } from \"../VVirtualScroll/index.mjs\"; // Composables\nimport { useScrolling } from \"./useScrolling.mjs\";\nimport { useForm } from \"../../composables/form.mjs\";\nimport { forwardRefs } from \"../../composables/forwardRefs.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { makeItemsProps, useItems } from \"../../composables/list-items.mjs\";\nimport { useLocale } from \"../../composables/locale.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { makeTransitionProps } from \"../../composables/transition.mjs\"; // Utilities\nimport { computed, mergeProps, nextTick, ref, shallowRef, watch } from 'vue';\nimport { checkPrintable, deepEqual, ensureValidVNode, genericComponent, IN_BROWSER, matchesSelector, omit, propsFactory, useRender, wrapInArray } from \"../../util/index.mjs\"; // Types\nexport const makeSelectProps = propsFactory({\n chips: Boolean,\n closableChips: Boolean,\n closeText: {\n type: String,\n default: '$vuetify.close'\n },\n openText: {\n type: String,\n default: '$vuetify.open'\n },\n eager: Boolean,\n hideNoData: Boolean,\n hideSelected: Boolean,\n listProps: {\n type: Object\n },\n menu: Boolean,\n menuIcon: {\n type: IconValue,\n default: '$dropdown'\n },\n menuProps: {\n type: Object\n },\n multiple: Boolean,\n noDataText: {\n type: String,\n default: '$vuetify.noDataText'\n },\n openOnClear: Boolean,\n itemColor: String,\n ...makeItemsProps({\n itemChildren: false\n })\n}, 'Select');\nexport const makeVSelectProps = propsFactory({\n ...makeSelectProps(),\n ...omit(makeVTextFieldProps({\n modelValue: null,\n role: 'combobox'\n }), ['validationValue', 'dirty', 'appendInnerIcon']),\n ...makeTransitionProps({\n transition: {\n component: VDialogTransition\n }\n })\n}, 'VSelect');\nexport const VSelect = genericComponent()({\n name: 'VSelect',\n props: makeVSelectProps(),\n emits: {\n 'update:focused': focused => true,\n 'update:modelValue': value => true,\n 'update:menu': ue => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n t\n } = useLocale();\n const vTextFieldRef = ref();\n const vMenuRef = ref();\n const vVirtualScrollRef = ref();\n const _menu = useProxiedModel(props, 'menu');\n const menu = computed({\n get: () => _menu.value,\n set: v => {\n if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return;\n _menu.value = v;\n }\n });\n const {\n items,\n transformIn,\n transformOut\n } = useItems(props);\n const model = useProxiedModel(props, 'modelValue', [], v => transformIn(v === null ? [null] : wrapInArray(v)), v => {\n const transformed = transformOut(v);\n return props.multiple ? transformed : transformed[0] ?? null;\n });\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function' ? props.counterValue(model.value) : typeof props.counterValue === 'number' ? props.counterValue : model.value.length;\n });\n const form = useForm(props);\n const selectedValues = computed(() => model.value.map(selection => selection.value));\n const isFocused = shallowRef(false);\n const label = computed(() => menu.value ? props.closeText : props.openText);\n let keyboardLookupPrefix = '';\n let keyboardLookupLastTime;\n const displayItems = computed(() => {\n if (props.hideSelected) {\n return items.value.filter(item => !model.value.some(s => (props.valueComparator || deepEqual)(s, item)));\n }\n return items.value;\n });\n const menuDisabled = computed(() => props.hideNoData && !displayItems.value.length || form.isReadonly.value || form.isDisabled.value);\n const computedMenuProps = computed(() => {\n return {\n ...props.menuProps,\n activatorProps: {\n ...(props.menuProps?.activatorProps || {}),\n 'aria-haspopup': 'listbox' // Set aria-haspopup to 'listbox'\n }\n };\n });\n const listRef = ref();\n const listEvents = useScrolling(listRef, vTextFieldRef);\n function onClear(e) {\n if (props.openOnClear) {\n menu.value = true;\n }\n }\n function onMousedownControl() {\n if (menuDisabled.value) return;\n menu.value = !menu.value;\n }\n function onListKeydown(e) {\n if (checkPrintable(e)) {\n onKeydown(e);\n }\n }\n function onKeydown(e) {\n if (!e.key || form.isReadonly.value) return;\n if (['Enter', ' ', 'ArrowDown', 'ArrowUp', 'Home', 'End'].includes(e.key)) {\n e.preventDefault();\n }\n if (['Enter', 'ArrowDown', ' '].includes(e.key)) {\n menu.value = true;\n }\n if (['Escape', 'Tab'].includes(e.key)) {\n menu.value = false;\n }\n if (e.key === 'Home') {\n listRef.value?.focus('first');\n } else if (e.key === 'End') {\n listRef.value?.focus('last');\n }\n\n // html select hotkeys\n const KEYBOARD_LOOKUP_THRESHOLD = 1000; // milliseconds\n\n if (!checkPrintable(e)) return;\n const now = performance.now();\n if (now - keyboardLookupLastTime > KEYBOARD_LOOKUP_THRESHOLD) {\n keyboardLookupPrefix = '';\n }\n keyboardLookupPrefix += e.key.toLowerCase();\n keyboardLookupLastTime = now;\n const item = items.value.find(item => item.title.toLowerCase().startsWith(keyboardLookupPrefix));\n if (item !== undefined) {\n model.value = [item];\n const index = displayItems.value.indexOf(item);\n IN_BROWSER && window.requestAnimationFrame(() => {\n index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index);\n });\n }\n }\n\n /** @param set - null means toggle */\n function select(item) {\n let set = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (item.props.disabled) return;\n if (props.multiple) {\n const index = model.value.findIndex(selection => (props.valueComparator || deepEqual)(selection.value, item.value));\n const add = set == null ? !~index : set;\n if (~index) {\n const value = add ? [...model.value, item] : [...model.value];\n value.splice(index, 1);\n model.value = value;\n } else if (add) {\n model.value = [...model.value, item];\n }\n } else {\n const add = set !== false;\n model.value = add ? [item] : [];\n nextTick(() => {\n menu.value = false;\n });\n }\n }\n function onBlur(e) {\n if (!listRef.value?.$el.contains(e.relatedTarget)) {\n menu.value = false;\n }\n }\n function onAfterEnter() {\n if (props.eager) {\n vVirtualScrollRef.value?.calculateVisibleItems();\n }\n }\n function onAfterLeave() {\n if (isFocused.value) {\n vTextFieldRef.value?.focus();\n }\n }\n function onFocusin(e) {\n isFocused.value = true;\n }\n function onModelUpdate(v) {\n if (v == null) model.value = [];else if (matchesSelector(vTextFieldRef.value, ':autofill') || matchesSelector(vTextFieldRef.value, ':-webkit-autofill')) {\n const item = items.value.find(item => item.title === v);\n if (item) {\n select(item);\n }\n } else if (vTextFieldRef.value) {\n vTextFieldRef.value.value = '';\n }\n }\n watch(menu, () => {\n if (!props.hideSelected && menu.value && model.value.length) {\n const index = displayItems.value.findIndex(item => model.value.some(s => (props.valueComparator || deepEqual)(s.value, item.value)));\n IN_BROWSER && window.requestAnimationFrame(() => {\n index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index);\n });\n }\n });\n watch(() => props.items, (newVal, oldVal) => {\n if (menu.value) return;\n if (isFocused.value && !oldVal.length && newVal.length) {\n menu.value = true;\n }\n });\n useRender(() => {\n const hasChips = !!(props.chips || slots.chip);\n const hasList = !!(!props.hideNoData || displayItems.value.length || slots['prepend-item'] || slots['append-item'] || slots['no-data']);\n const isDirty = model.value.length > 0;\n const textFieldProps = VTextField.filterProps(props);\n const placeholder = isDirty || !isFocused.value && props.label && !props.persistentPlaceholder ? undefined : props.placeholder;\n return _createVNode(VTextField, _mergeProps({\n \"ref\": vTextFieldRef\n }, textFieldProps, {\n \"modelValue\": model.value.map(v => v.props.value).join(', '),\n \"onUpdate:modelValue\": onModelUpdate,\n \"focused\": isFocused.value,\n \"onUpdate:focused\": $event => isFocused.value = $event,\n \"validationValue\": model.externalValue,\n \"counterValue\": counterValue.value,\n \"dirty\": isDirty,\n \"class\": ['v-select', {\n 'v-select--active-menu': menu.value,\n 'v-select--chips': !!props.chips,\n [`v-select--${props.multiple ? 'multiple' : 'single'}`]: true,\n 'v-select--selected': model.value.length,\n 'v-select--selection-slot': !!slots.selection\n }, props.class],\n \"style\": props.style,\n \"inputmode\": \"none\",\n \"placeholder\": placeholder,\n \"onClick:clear\": onClear,\n \"onMousedown:control\": onMousedownControl,\n \"onBlur\": onBlur,\n \"onKeydown\": onKeydown,\n \"aria-label\": t(label.value),\n \"title\": t(label.value)\n }), {\n ...slots,\n default: () => _createVNode(_Fragment, null, [_createVNode(VMenu, _mergeProps({\n \"ref\": vMenuRef,\n \"modelValue\": menu.value,\n \"onUpdate:modelValue\": $event => menu.value = $event,\n \"activator\": \"parent\",\n \"contentClass\": \"v-select__content\",\n \"disabled\": menuDisabled.value,\n \"eager\": props.eager,\n \"maxHeight\": 310,\n \"openOnClick\": false,\n \"closeOnContentClick\": false,\n \"transition\": props.transition,\n \"onAfterEnter\": onAfterEnter,\n \"onAfterLeave\": onAfterLeave\n }, computedMenuProps.value), {\n default: () => [hasList && _createVNode(VList, _mergeProps({\n \"ref\": listRef,\n \"selected\": selectedValues.value,\n \"selectStrategy\": props.multiple ? 'independent' : 'single-independent',\n \"onMousedown\": e => e.preventDefault(),\n \"onKeydown\": onListKeydown,\n \"onFocusin\": onFocusin,\n \"tabindex\": \"-1\",\n \"aria-live\": \"polite\",\n \"color\": props.itemColor ?? props.color\n }, listEvents, props.listProps), {\n default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? _createVNode(VListItem, {\n \"key\": \"no-data\",\n \"title\": t(props.noDataText)\n }, null)), _createVNode(VVirtualScroll, {\n \"ref\": vVirtualScrollRef,\n \"renderless\": true,\n \"items\": displayItems.value\n }, {\n default: _ref2 => {\n let {\n item,\n index,\n itemRef\n } = _ref2;\n const itemProps = mergeProps(item.props, {\n ref: itemRef,\n key: item.value,\n onClick: () => select(item, null)\n });\n return slots.item?.({\n item,\n index,\n props: itemProps\n }) ?? _createVNode(VListItem, _mergeProps(itemProps, {\n \"role\": \"option\"\n }), {\n prepend: _ref3 => {\n let {\n isSelected\n } = _ref3;\n return _createVNode(_Fragment, null, [props.multiple && !props.hideSelected ? _createVNode(VCheckboxBtn, {\n \"key\": item.value,\n \"modelValue\": isSelected,\n \"ripple\": false,\n \"tabindex\": \"-1\"\n }, null) : undefined, item.props.prependAvatar && _createVNode(VAvatar, {\n \"image\": item.props.prependAvatar\n }, null), item.props.prependIcon && _createVNode(VIcon, {\n \"icon\": item.props.prependIcon\n }, null)]);\n }\n });\n }\n }), slots['append-item']?.()]\n })]\n }), model.value.map((item, index) => {\n function onChipClose(e) {\n e.stopPropagation();\n e.preventDefault();\n select(item, false);\n }\n const slotProps = {\n 'onClick:close': onChipClose,\n onKeydown(e) {\n if (e.key !== 'Enter' && e.key !== ' ') return;\n e.preventDefault();\n e.stopPropagation();\n onChipClose(e);\n },\n onMousedown(e) {\n e.preventDefault();\n e.stopPropagation();\n },\n modelValue: true,\n 'onUpdate:modelValue': undefined\n };\n const hasSlot = hasChips ? !!slots.chip : !!slots.selection;\n const slotContent = hasSlot ? ensureValidVNode(hasChips ? slots.chip({\n item,\n index,\n props: slotProps\n }) : slots.selection({\n item,\n index\n })) : undefined;\n if (hasSlot && !slotContent) return undefined;\n return _createVNode(\"div\", {\n \"key\": item.value,\n \"class\": \"v-select__selection\"\n }, [hasChips ? !slots.chip ? _createVNode(VChip, _mergeProps({\n \"key\": \"chip\",\n \"closable\": props.closableChips,\n \"size\": \"small\",\n \"text\": item.title,\n \"disabled\": item.props.disabled\n }, slotProps), null) : _createVNode(VDefaultsProvider, {\n \"key\": \"chip-defaults\",\n \"defaults\": {\n VChip: {\n closable: props.closableChips,\n size: 'small',\n text: item.title\n }\n }\n }, {\n default: () => [slotContent]\n }) : slotContent ?? _createVNode(\"span\", {\n \"class\": \"v-select__selection-text\"\n }, [item.title, props.multiple && index < model.value.length - 1 && _createVNode(\"span\", {\n \"class\": \"v-select__selection-comma\"\n }, [_createTextVNode(\",\")])])]);\n })]),\n 'append-inner': function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return _createVNode(_Fragment, null, [slots['append-inner']?.(...args), props.menuIcon ? _createVNode(VIcon, {\n \"class\": \"v-select__menu-icon\",\n \"icon\": props.menuIcon\n }, null) : undefined]);\n }\n });\n });\n return forwardRefs({\n isFocused,\n menu,\n select\n }, vTextFieldRef);\n }\n});\n//# sourceMappingURL=VSelect.mjs.map","/* eslint-disable max-statements */\n/* eslint-disable no-labels */\n\n// Utilities\nimport { computed, shallowRef, unref, watchEffect } from 'vue';\nimport { getPropertyFromItem, propsFactory, wrapInArray } from \"../util/index.mjs\"; // Types\n/**\n * - match without highlight\n * - single match (index), length already known\n * - single match (start, end)\n * - multiple matches (start, end), probably shouldn't overlap\n */\n// Composables\nexport const defaultFilter = (value, query, item) => {\n if (value == null || query == null) return -1;\n return value.toString().toLocaleLowerCase().indexOf(query.toString().toLocaleLowerCase());\n};\nexport const makeFilterProps = propsFactory({\n customFilter: Function,\n customKeyFilter: Object,\n filterKeys: [Array, String],\n filterMode: {\n type: String,\n default: 'intersection'\n },\n noFilter: Boolean\n}, 'filter');\nexport function filterItems(items, query, options) {\n const array = [];\n // always ensure we fall back to a functioning filter\n const filter = options?.default ?? defaultFilter;\n const keys = options?.filterKeys ? wrapInArray(options.filterKeys) : false;\n const customFiltersLength = Object.keys(options?.customKeyFilter ?? {}).length;\n if (!items?.length) return array;\n loop: for (let i = 0; i < items.length; i++) {\n const [item, transformed = item] = wrapInArray(items[i]);\n const customMatches = {};\n const defaultMatches = {};\n let match = -1;\n if ((query || customFiltersLength > 0) && !options?.noFilter) {\n if (typeof item === 'object') {\n const filterKeys = keys || Object.keys(transformed);\n for (const key of filterKeys) {\n const value = getPropertyFromItem(transformed, key);\n const keyFilter = options?.customKeyFilter?.[key];\n match = keyFilter ? keyFilter(value, query, item) : filter(value, query, item);\n if (match !== -1 && match !== false) {\n if (keyFilter) customMatches[key] = match;else defaultMatches[key] = match;\n } else if (options?.filterMode === 'every') {\n continue loop;\n }\n }\n } else {\n match = filter(item, query, item);\n if (match !== -1 && match !== false) {\n defaultMatches.title = match;\n }\n }\n const defaultMatchesLength = Object.keys(defaultMatches).length;\n const customMatchesLength = Object.keys(customMatches).length;\n if (!defaultMatchesLength && !customMatchesLength) continue;\n if (options?.filterMode === 'union' && customMatchesLength !== customFiltersLength && !defaultMatchesLength) continue;\n if (options?.filterMode === 'intersection' && (customMatchesLength !== customFiltersLength || !defaultMatchesLength)) continue;\n }\n array.push({\n index: i,\n matches: {\n ...defaultMatches,\n ...customMatches\n }\n });\n }\n return array;\n}\nexport function useFilter(props, items, query, options) {\n const filteredItems = shallowRef([]);\n const filteredMatches = shallowRef(new Map());\n const transformedItems = computed(() => options?.transform ? unref(items).map(item => [item, options.transform(item)]) : unref(items));\n watchEffect(() => {\n const _query = typeof query === 'function' ? query() : unref(query);\n const strQuery = typeof _query !== 'string' && typeof _query !== 'number' ? '' : String(_query);\n const results = filterItems(transformedItems.value, strQuery, {\n customKeyFilter: {\n ...props.customKeyFilter,\n ...unref(options?.customKeyFilter)\n },\n default: props.customFilter,\n filterKeys: props.filterKeys,\n filterMode: props.filterMode,\n noFilter: props.noFilter\n });\n const originalItems = unref(items);\n const _filteredItems = [];\n const _filteredMatches = new Map();\n results.forEach(_ref => {\n let {\n index,\n matches\n } = _ref;\n const item = originalItems[index];\n _filteredItems.push(item);\n _filteredMatches.set(item.value, matches);\n });\n filteredItems.value = _filteredItems;\n filteredMatches.value = _filteredMatches;\n });\n function getMatches(item) {\n return filteredMatches.value.get(item.value);\n }\n return {\n filteredItems,\n filteredMatches,\n getMatches\n };\n}\n//# sourceMappingURL=filter.mjs.map","import { Fragment as _Fragment, createVNode as _createVNode, mergeProps as _mergeProps, createTextVNode as _createTextVNode } from \"vue\";\n// Styles\nimport \"./VAutocomplete.css\";\n\n// Components\nimport { VAvatar } from \"../VAvatar/index.mjs\";\nimport { VCheckboxBtn } from \"../VCheckbox/index.mjs\";\nimport { VChip } from \"../VChip/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\";\nimport { VList, VListItem } from \"../VList/index.mjs\";\nimport { VMenu } from \"../VMenu/index.mjs\";\nimport { makeSelectProps } from \"../VSelect/VSelect.mjs\";\nimport { makeVTextFieldProps, VTextField } from \"../VTextField/VTextField.mjs\";\nimport { VVirtualScroll } from \"../VVirtualScroll/index.mjs\"; // Composables\nimport { useScrolling } from \"../VSelect/useScrolling.mjs\";\nimport { useTextColor } from \"../../composables/color.mjs\";\nimport { makeFilterProps, useFilter } from \"../../composables/filter.mjs\";\nimport { useForm } from \"../../composables/form.mjs\";\nimport { forwardRefs } from \"../../composables/forwardRefs.mjs\";\nimport { useItems } from \"../../composables/list-items.mjs\";\nimport { useLocale } from \"../../composables/locale.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { makeTransitionProps } from \"../../composables/transition.mjs\"; // Utilities\nimport { computed, mergeProps, nextTick, ref, shallowRef, watch } from 'vue';\nimport { checkPrintable, deepEqual, ensureValidVNode, genericComponent, IN_BROWSER, matchesSelector, noop, omit, propsFactory, useRender, wrapInArray } from \"../../util/index.mjs\"; // Types\nfunction highlightResult(text, matches, length) {\n if (matches == null) return text;\n if (Array.isArray(matches)) throw new Error('Multiple matches is not implemented');\n return typeof matches === 'number' && ~matches ? _createVNode(_Fragment, null, [_createVNode(\"span\", {\n \"class\": \"v-autocomplete__unmask\"\n }, [text.substr(0, matches)]), _createVNode(\"span\", {\n \"class\": \"v-autocomplete__mask\"\n }, [text.substr(matches, length)]), _createVNode(\"span\", {\n \"class\": \"v-autocomplete__unmask\"\n }, [text.substr(matches + length)])]) : text;\n}\nexport const makeVAutocompleteProps = propsFactory({\n autoSelectFirst: {\n type: [Boolean, String]\n },\n clearOnSelect: Boolean,\n search: String,\n ...makeFilterProps({\n filterKeys: ['title']\n }),\n ...makeSelectProps(),\n ...omit(makeVTextFieldProps({\n modelValue: null,\n role: 'combobox'\n }), ['validationValue', 'dirty', 'appendInnerIcon']),\n ...makeTransitionProps({\n transition: false\n })\n}, 'VAutocomplete');\nexport const VAutocomplete = genericComponent()({\n name: 'VAutocomplete',\n props: makeVAutocompleteProps(),\n emits: {\n 'update:focused': focused => true,\n 'update:search': value => true,\n 'update:modelValue': value => true,\n 'update:menu': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n t\n } = useLocale();\n const vTextFieldRef = ref();\n const isFocused = shallowRef(false);\n const isPristine = shallowRef(true);\n const listHasFocus = shallowRef(false);\n const vMenuRef = ref();\n const vVirtualScrollRef = ref();\n const _menu = useProxiedModel(props, 'menu');\n const menu = computed({\n get: () => _menu.value,\n set: v => {\n if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return;\n _menu.value = v;\n }\n });\n const selectionIndex = shallowRef(-1);\n const color = computed(() => vTextFieldRef.value?.color);\n const label = computed(() => menu.value ? props.closeText : props.openText);\n const {\n items,\n transformIn,\n transformOut\n } = useItems(props);\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(color);\n const search = useProxiedModel(props, 'search', '');\n const model = useProxiedModel(props, 'modelValue', [], v => transformIn(v === null ? [null] : wrapInArray(v)), v => {\n const transformed = transformOut(v);\n return props.multiple ? transformed : transformed[0] ?? null;\n });\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function' ? props.counterValue(model.value) : typeof props.counterValue === 'number' ? props.counterValue : model.value.length;\n });\n const form = useForm(props);\n const {\n filteredItems,\n getMatches\n } = useFilter(props, items, () => isPristine.value ? '' : search.value);\n const displayItems = computed(() => {\n if (props.hideSelected) {\n return filteredItems.value.filter(filteredItem => !model.value.some(s => s.value === filteredItem.value));\n }\n return filteredItems.value;\n });\n const hasChips = computed(() => !!(props.chips || slots.chip));\n const hasSelectionSlot = computed(() => hasChips.value || !!slots.selection);\n const selectedValues = computed(() => model.value.map(selection => selection.props.value));\n const highlightFirst = computed(() => {\n const selectFirst = props.autoSelectFirst === true || props.autoSelectFirst === 'exact' && search.value === displayItems.value[0]?.title;\n return selectFirst && displayItems.value.length > 0 && !isPristine.value && !listHasFocus.value;\n });\n const menuDisabled = computed(() => props.hideNoData && !displayItems.value.length || form.isReadonly.value || form.isDisabled.value);\n const listRef = ref();\n const listEvents = useScrolling(listRef, vTextFieldRef);\n function onClear(e) {\n if (props.openOnClear) {\n menu.value = true;\n }\n search.value = '';\n }\n function onMousedownControl() {\n if (menuDisabled.value) return;\n menu.value = true;\n }\n function onMousedownMenuIcon(e) {\n if (menuDisabled.value) return;\n if (isFocused.value) {\n e.preventDefault();\n e.stopPropagation();\n }\n menu.value = !menu.value;\n }\n function onListKeydown(e) {\n if (e.key !== ' ' && checkPrintable(e)) {\n vTextFieldRef.value?.focus();\n }\n }\n function onKeydown(e) {\n if (form.isReadonly.value) return;\n const selectionStart = vTextFieldRef.value.selectionStart;\n const length = model.value.length;\n if (['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {\n e.preventDefault();\n }\n if (['Enter', 'ArrowDown'].includes(e.key)) {\n menu.value = true;\n }\n if (['Escape'].includes(e.key)) {\n menu.value = false;\n }\n if (highlightFirst.value && ['Enter', 'Tab'].includes(e.key) && !model.value.some(_ref2 => {\n let {\n value\n } = _ref2;\n return value === displayItems.value[0].value;\n })) {\n select(displayItems.value[0]);\n }\n if (e.key === 'ArrowDown' && highlightFirst.value) {\n listRef.value?.focus('next');\n }\n if (['Backspace', 'Delete'].includes(e.key)) {\n if (!props.multiple && hasSelectionSlot.value && model.value.length > 0 && !search.value) return select(model.value[0], false);\n if (~selectionIndex.value) {\n e.preventDefault();\n const originalSelectionIndex = selectionIndex.value;\n select(model.value[selectionIndex.value], false);\n selectionIndex.value = originalSelectionIndex >= length - 1 ? length - 2 : originalSelectionIndex;\n } else if (e.key === 'Backspace' && !search.value) {\n selectionIndex.value = length - 1;\n }\n return;\n }\n if (!props.multiple) return;\n if (e.key === 'ArrowLeft') {\n if (selectionIndex.value < 0 && selectionStart > 0) return;\n const prev = selectionIndex.value > -1 ? selectionIndex.value - 1 : length - 1;\n if (model.value[prev]) {\n selectionIndex.value = prev;\n } else {\n selectionIndex.value = -1;\n vTextFieldRef.value.setSelectionRange(search.value?.length, search.value?.length);\n }\n } else if (e.key === 'ArrowRight') {\n if (selectionIndex.value < 0) return;\n const next = selectionIndex.value + 1;\n if (model.value[next]) {\n selectionIndex.value = next;\n } else {\n selectionIndex.value = -1;\n vTextFieldRef.value.setSelectionRange(0, 0);\n }\n } else if (~selectionIndex.value && checkPrintable(e)) {\n selectionIndex.value = -1;\n }\n }\n function onChange(e) {\n if (matchesSelector(vTextFieldRef.value, ':autofill') || matchesSelector(vTextFieldRef.value, ':-webkit-autofill')) {\n const item = items.value.find(item => item.title === e.target.value);\n if (item) {\n select(item);\n }\n }\n }\n function onAfterEnter() {\n if (props.eager) {\n vVirtualScrollRef.value?.calculateVisibleItems();\n }\n }\n function onAfterLeave() {\n if (isFocused.value) {\n isPristine.value = true;\n vTextFieldRef.value?.focus();\n }\n }\n function onFocusin(e) {\n isFocused.value = true;\n setTimeout(() => {\n listHasFocus.value = true;\n });\n }\n function onFocusout(e) {\n listHasFocus.value = false;\n }\n function onUpdateModelValue(v) {\n if (v == null || v === '' && !props.multiple && !hasSelectionSlot.value) model.value = [];\n }\n const isSelecting = shallowRef(false);\n\n /** @param set - null means toggle */\n function select(item) {\n let set = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (!item || item.props.disabled) return;\n if (props.multiple) {\n const index = model.value.findIndex(selection => (props.valueComparator || deepEqual)(selection.value, item.value));\n const add = set == null ? !~index : set;\n if (~index) {\n const value = add ? [...model.value, item] : [...model.value];\n value.splice(index, 1);\n model.value = value;\n } else if (add) {\n model.value = [...model.value, item];\n }\n if (props.clearOnSelect) {\n search.value = '';\n }\n } else {\n const add = set !== false;\n model.value = add ? [item] : [];\n search.value = add && !hasSelectionSlot.value ? item.title : '';\n\n // watch for search watcher to trigger\n nextTick(() => {\n menu.value = false;\n isPristine.value = true;\n });\n }\n }\n watch(isFocused, (val, oldVal) => {\n if (val === oldVal) return;\n if (val) {\n isSelecting.value = true;\n search.value = props.multiple || hasSelectionSlot.value ? '' : String(model.value.at(-1)?.props.title ?? '');\n isPristine.value = true;\n nextTick(() => isSelecting.value = false);\n } else {\n if (!props.multiple && search.value == null) model.value = [];\n menu.value = false;\n if (!model.value.some(_ref3 => {\n let {\n title\n } = _ref3;\n return title === search.value;\n })) search.value = '';\n selectionIndex.value = -1;\n }\n });\n watch(search, val => {\n if (!isFocused.value || isSelecting.value) return;\n if (val) menu.value = true;\n isPristine.value = !val;\n });\n watch(menu, () => {\n if (!props.hideSelected && menu.value && model.value.length) {\n const index = displayItems.value.findIndex(item => model.value.some(s => item.value === s.value));\n IN_BROWSER && window.requestAnimationFrame(() => {\n index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index);\n });\n }\n });\n watch(() => props.items, (newVal, oldVal) => {\n if (menu.value) return;\n if (isFocused.value && !oldVal.length && newVal.length) {\n menu.value = true;\n }\n });\n useRender(() => {\n const hasList = !!(!props.hideNoData || displayItems.value.length || slots['prepend-item'] || slots['append-item'] || slots['no-data']);\n const isDirty = model.value.length > 0;\n const textFieldProps = VTextField.filterProps(props);\n return _createVNode(VTextField, _mergeProps({\n \"ref\": vTextFieldRef\n }, textFieldProps, {\n \"modelValue\": search.value,\n \"onUpdate:modelValue\": [$event => search.value = $event, onUpdateModelValue],\n \"focused\": isFocused.value,\n \"onUpdate:focused\": $event => isFocused.value = $event,\n \"validationValue\": model.externalValue,\n \"counterValue\": counterValue.value,\n \"dirty\": isDirty,\n \"onChange\": onChange,\n \"class\": ['v-autocomplete', `v-autocomplete--${props.multiple ? 'multiple' : 'single'}`, {\n 'v-autocomplete--active-menu': menu.value,\n 'v-autocomplete--chips': !!props.chips,\n 'v-autocomplete--selection-slot': !!hasSelectionSlot.value,\n 'v-autocomplete--selecting-index': selectionIndex.value > -1\n }, props.class],\n \"style\": props.style,\n \"readonly\": form.isReadonly.value,\n \"placeholder\": isDirty ? undefined : props.placeholder,\n \"onClick:clear\": onClear,\n \"onMousedown:control\": onMousedownControl,\n \"onKeydown\": onKeydown\n }), {\n ...slots,\n default: () => _createVNode(_Fragment, null, [_createVNode(VMenu, _mergeProps({\n \"ref\": vMenuRef,\n \"modelValue\": menu.value,\n \"onUpdate:modelValue\": $event => menu.value = $event,\n \"activator\": \"parent\",\n \"contentClass\": \"v-autocomplete__content\",\n \"disabled\": menuDisabled.value,\n \"eager\": props.eager,\n \"maxHeight\": 310,\n \"openOnClick\": false,\n \"closeOnContentClick\": false,\n \"transition\": props.transition,\n \"onAfterEnter\": onAfterEnter,\n \"onAfterLeave\": onAfterLeave\n }, props.menuProps), {\n default: () => [hasList && _createVNode(VList, _mergeProps({\n \"ref\": listRef,\n \"selected\": selectedValues.value,\n \"selectStrategy\": props.multiple ? 'independent' : 'single-independent',\n \"onMousedown\": e => e.preventDefault(),\n \"onKeydown\": onListKeydown,\n \"onFocusin\": onFocusin,\n \"onFocusout\": onFocusout,\n \"tabindex\": \"-1\",\n \"aria-live\": \"polite\",\n \"color\": props.itemColor ?? props.color\n }, listEvents, props.listProps), {\n default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? _createVNode(VListItem, {\n \"key\": \"no-data\",\n \"title\": t(props.noDataText)\n }, null)), _createVNode(VVirtualScroll, {\n \"ref\": vVirtualScrollRef,\n \"renderless\": true,\n \"items\": displayItems.value\n }, {\n default: _ref4 => {\n let {\n item,\n index,\n itemRef\n } = _ref4;\n const itemProps = mergeProps(item.props, {\n ref: itemRef,\n key: item.value,\n active: highlightFirst.value && index === 0 ? true : undefined,\n onClick: () => select(item, null)\n });\n return slots.item?.({\n item,\n index,\n props: itemProps\n }) ?? _createVNode(VListItem, _mergeProps(itemProps, {\n \"role\": \"option\"\n }), {\n prepend: _ref5 => {\n let {\n isSelected\n } = _ref5;\n return _createVNode(_Fragment, null, [props.multiple && !props.hideSelected ? _createVNode(VCheckboxBtn, {\n \"key\": item.value,\n \"modelValue\": isSelected,\n \"ripple\": false,\n \"tabindex\": \"-1\"\n }, null) : undefined, item.props.prependAvatar && _createVNode(VAvatar, {\n \"image\": item.props.prependAvatar\n }, null), item.props.prependIcon && _createVNode(VIcon, {\n \"icon\": item.props.prependIcon\n }, null)]);\n },\n title: () => {\n return isPristine.value ? item.title : highlightResult(item.title, getMatches(item)?.title, search.value?.length ?? 0);\n }\n });\n }\n }), slots['append-item']?.()]\n })]\n }), model.value.map((item, index) => {\n function onChipClose(e) {\n e.stopPropagation();\n e.preventDefault();\n select(item, false);\n }\n const slotProps = {\n 'onClick:close': onChipClose,\n onKeydown(e) {\n if (e.key !== 'Enter' && e.key !== ' ') return;\n e.preventDefault();\n e.stopPropagation();\n onChipClose(e);\n },\n onMousedown(e) {\n e.preventDefault();\n e.stopPropagation();\n },\n modelValue: true,\n 'onUpdate:modelValue': undefined\n };\n const hasSlot = hasChips.value ? !!slots.chip : !!slots.selection;\n const slotContent = hasSlot ? ensureValidVNode(hasChips.value ? slots.chip({\n item,\n index,\n props: slotProps\n }) : slots.selection({\n item,\n index\n })) : undefined;\n if (hasSlot && !slotContent) return undefined;\n return _createVNode(\"div\", {\n \"key\": item.value,\n \"class\": ['v-autocomplete__selection', index === selectionIndex.value && ['v-autocomplete__selection--selected', textColorClasses.value]],\n \"style\": index === selectionIndex.value ? textColorStyles.value : {}\n }, [hasChips.value ? !slots.chip ? _createVNode(VChip, _mergeProps({\n \"key\": \"chip\",\n \"closable\": props.closableChips,\n \"size\": \"small\",\n \"text\": item.title,\n \"disabled\": item.props.disabled\n }, slotProps), null) : _createVNode(VDefaultsProvider, {\n \"key\": \"chip-defaults\",\n \"defaults\": {\n VChip: {\n closable: props.closableChips,\n size: 'small',\n text: item.title\n }\n }\n }, {\n default: () => [slotContent]\n }) : slotContent ?? _createVNode(\"span\", {\n \"class\": \"v-autocomplete__selection-text\"\n }, [item.title, props.multiple && index < model.value.length - 1 && _createVNode(\"span\", {\n \"class\": \"v-autocomplete__selection-comma\"\n }, [_createTextVNode(\",\")])])]);\n })]),\n 'append-inner': function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return _createVNode(_Fragment, null, [slots['append-inner']?.(...args), props.menuIcon ? _createVNode(VIcon, {\n \"class\": \"v-autocomplete__menu-icon\",\n \"icon\": props.menuIcon,\n \"onMousedown\": onMousedownMenuIcon,\n \"onClick\": noop,\n \"aria-label\": t(label.value),\n \"title\": t(label.value),\n \"tabindex\": \"-1\"\n }, null) : undefined]);\n }\n });\n });\n return forwardRefs({\n isFocused,\n isPristine,\n menu,\n search,\n filteredItems,\n select\n }, vTextFieldRef);\n }\n});\n//# sourceMappingURL=VAutocomplete.mjs.map","import { createVNode as _createVNode, vShow as _vShow, mergeProps as _mergeProps, withDirectives as _withDirectives } from \"vue\";\n// Styles\nimport \"./VBadge.css\";\n\n// Components\nimport { VIcon } from \"../VIcon/index.mjs\"; // Composables\nimport { useBackgroundColor, useTextColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { useLocale } from \"../../composables/locale.mjs\";\nimport { makeLocationProps, useLocation } from \"../../composables/location.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, useTheme } from \"../../composables/theme.mjs\";\nimport { makeTransitionProps, MaybeTransition } from \"../../composables/transition.mjs\"; // Utilities\nimport { toRef } from 'vue';\nimport { genericComponent, pickWithRest, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVBadgeProps = propsFactory({\n bordered: Boolean,\n color: String,\n content: [Number, String],\n dot: Boolean,\n floating: Boolean,\n icon: IconValue,\n inline: Boolean,\n label: {\n type: String,\n default: '$vuetify.badge'\n },\n max: [Number, String],\n modelValue: {\n type: Boolean,\n default: true\n },\n offsetX: [Number, String],\n offsetY: [Number, String],\n textColor: String,\n ...makeComponentProps(),\n ...makeLocationProps({\n location: 'top end'\n }),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeTransitionProps({\n transition: 'scale-rotate-transition'\n })\n}, 'VBadge');\nexport const VBadge = genericComponent()({\n name: 'VBadge',\n inheritAttrs: false,\n props: makeVBadgeProps(),\n setup(props, ctx) {\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(toRef(props, 'color'));\n const {\n roundedClasses\n } = useRounded(props);\n const {\n t\n } = useLocale();\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(toRef(props, 'textColor'));\n const {\n themeClasses\n } = useTheme();\n const {\n locationStyles\n } = useLocation(props, true, side => {\n const base = props.floating ? props.dot ? 2 : 4 : props.dot ? 8 : 12;\n return base + (['top', 'bottom'].includes(side) ? +(props.offsetY ?? 0) : ['left', 'right'].includes(side) ? +(props.offsetX ?? 0) : 0);\n });\n useRender(() => {\n const value = Number(props.content);\n const content = !props.max || isNaN(value) ? props.content : value <= +props.max ? value : `${props.max}+`;\n const [badgeAttrs, attrs] = pickWithRest(ctx.attrs, ['aria-atomic', 'aria-label', 'aria-live', 'role', 'title']);\n return _createVNode(props.tag, _mergeProps({\n \"class\": ['v-badge', {\n 'v-badge--bordered': props.bordered,\n 'v-badge--dot': props.dot,\n 'v-badge--floating': props.floating,\n 'v-badge--inline': props.inline\n }, props.class]\n }, attrs, {\n \"style\": props.style\n }), {\n default: () => [_createVNode(\"div\", {\n \"class\": \"v-badge__wrapper\"\n }, [ctx.slots.default?.(), _createVNode(MaybeTransition, {\n \"transition\": props.transition\n }, {\n default: () => [_withDirectives(_createVNode(\"span\", _mergeProps({\n \"class\": ['v-badge__badge', themeClasses.value, backgroundColorClasses.value, roundedClasses.value, textColorClasses.value],\n \"style\": [backgroundColorStyles.value, textColorStyles.value, props.inline ? {} : locationStyles.value],\n \"aria-atomic\": \"true\",\n \"aria-label\": t(props.label, value),\n \"aria-live\": \"polite\",\n \"role\": \"status\"\n }, badgeAttrs), [props.dot ? undefined : ctx.slots.badge ? ctx.slots.badge?.() : props.icon ? _createVNode(VIcon, {\n \"icon\": props.icon\n }, null) : content]), [[_vShow, props.modelValue]])]\n })])]\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VBadge.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVBannerActionsProps = propsFactory({\n color: String,\n density: String,\n ...makeComponentProps()\n}, 'VBannerActions');\nexport const VBannerActions = genericComponent()({\n name: 'VBannerActions',\n props: makeVBannerActionsProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n provideDefaults({\n VBtn: {\n color: props.color,\n density: props.density,\n slim: true,\n variant: 'text'\n }\n });\n useRender(() => _createVNode(\"div\", {\n \"class\": ['v-banner-actions', props.class],\n \"style\": props.style\n }, [slots.default?.()]));\n return {};\n }\n});\n//# sourceMappingURL=VBannerActions.mjs.map","// Utilities\nimport { createSimpleFunctional } from \"../../util/index.mjs\";\nexport const VBannerText = createSimpleFunctional('v-banner-text');\n//# sourceMappingURL=VBannerText.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VBanner.css\";\n\n// Components\nimport { VBannerActions } from \"./VBannerActions.mjs\";\nimport { VBannerText } from \"./VBannerText.mjs\";\nimport { VAvatar } from \"../VAvatar/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\"; // Composables\nimport { makeBorderProps, useBorder } from \"../../composables/border.mjs\";\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { makeDisplayProps, useDisplay } from \"../../composables/display.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { makeLocationProps, useLocation } from \"../../composables/location.mjs\";\nimport { makePositionProps, usePosition } from \"../../composables/position.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { toRef } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVBannerProps = propsFactory({\n avatar: String,\n bgColor: String,\n color: String,\n icon: IconValue,\n lines: String,\n stacked: Boolean,\n sticky: Boolean,\n text: String,\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeDisplayProps({\n mobile: null\n }),\n ...makeElevationProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps()\n}, 'VBanner');\nexport const VBanner = genericComponent()({\n name: 'VBanner',\n props: makeVBannerProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(props, 'bgColor');\n const {\n borderClasses\n } = useBorder(props);\n const {\n densityClasses\n } = useDensity(props);\n const {\n displayClasses,\n mobile\n } = useDisplay(props);\n const {\n dimensionStyles\n } = useDimension(props);\n const {\n elevationClasses\n } = useElevation(props);\n const {\n locationStyles\n } = useLocation(props);\n const {\n positionClasses\n } = usePosition(props);\n const {\n roundedClasses\n } = useRounded(props);\n const {\n themeClasses\n } = provideTheme(props);\n const color = toRef(props, 'color');\n const density = toRef(props, 'density');\n provideDefaults({\n VBannerActions: {\n color,\n density\n }\n });\n useRender(() => {\n const hasText = !!(props.text || slots.text);\n const hasPrependMedia = !!(props.avatar || props.icon);\n const hasPrepend = !!(hasPrependMedia || slots.prepend);\n return _createVNode(props.tag, {\n \"class\": ['v-banner', {\n 'v-banner--stacked': props.stacked || mobile.value,\n 'v-banner--sticky': props.sticky,\n [`v-banner--${props.lines}-line`]: !!props.lines\n }, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, displayClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, props.class],\n \"style\": [backgroundColorStyles.value, dimensionStyles.value, locationStyles.value, props.style],\n \"role\": \"banner\"\n }, {\n default: () => [hasPrepend && _createVNode(\"div\", {\n \"key\": \"prepend\",\n \"class\": \"v-banner__prepend\"\n }, [!slots.prepend ? _createVNode(VAvatar, {\n \"key\": \"prepend-avatar\",\n \"color\": color.value,\n \"density\": density.value,\n \"icon\": props.icon,\n \"image\": props.avatar\n }, null) : _createVNode(VDefaultsProvider, {\n \"key\": \"prepend-defaults\",\n \"disabled\": !hasPrependMedia,\n \"defaults\": {\n VAvatar: {\n color: color.value,\n density: density.value,\n icon: props.icon,\n image: props.avatar\n }\n }\n }, slots.prepend)]), _createVNode(\"div\", {\n \"class\": \"v-banner__content\"\n }, [hasText && _createVNode(VBannerText, {\n \"key\": \"text\"\n }, {\n default: () => [slots.text?.() ?? props.text]\n }), slots.default?.()]), slots.actions && _createVNode(VBannerActions, {\n \"key\": \"actions\"\n }, slots.actions)]\n });\n });\n }\n});\n//# sourceMappingURL=VBanner.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VBottomNavigation.css\";\n\n// Components\nimport { VBtnToggleSymbol } from \"../VBtnToggle/VBtnToggle.mjs\"; // Composables\nimport { makeBorderProps, useBorder } from \"../../composables/border.mjs\";\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { makeGroupProps, useGroup } from \"../../composables/group.mjs\";\nimport { makeLayoutItemProps, useLayoutItem } from \"../../composables/layout.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { useSsrBoot } from \"../../composables/ssrBoot.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, useTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { computed, toRef } from 'vue';\nimport { convertToUnit, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVBottomNavigationProps = propsFactory({\n baseColor: String,\n bgColor: String,\n color: String,\n grow: Boolean,\n mode: {\n type: String,\n validator: v => !v || ['horizontal', 'shift'].includes(v)\n },\n height: {\n type: [Number, String],\n default: 56\n },\n active: {\n type: Boolean,\n default: true\n },\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeLayoutItemProps({\n name: 'bottom-navigation'\n }),\n ...makeTagProps({\n tag: 'header'\n }),\n ...makeGroupProps({\n selectedClass: 'v-btn--selected'\n }),\n ...makeThemeProps()\n}, 'VBottomNavigation');\nexport const VBottomNavigation = genericComponent()({\n name: 'VBottomNavigation',\n props: makeVBottomNavigationProps(),\n emits: {\n 'update:active': value => true,\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n themeClasses\n } = useTheme();\n const {\n borderClasses\n } = useBorder(props);\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(toRef(props, 'bgColor'));\n const {\n densityClasses\n } = useDensity(props);\n const {\n elevationClasses\n } = useElevation(props);\n const {\n roundedClasses\n } = useRounded(props);\n const {\n ssrBootStyles\n } = useSsrBoot();\n const height = computed(() => Number(props.height) - (props.density === 'comfortable' ? 8 : 0) - (props.density === 'compact' ? 16 : 0));\n const isActive = useProxiedModel(props, 'active', props.active);\n const {\n layoutItemStyles\n } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: computed(() => 'bottom'),\n layoutSize: computed(() => isActive.value ? height.value : 0),\n elementSize: height,\n active: isActive,\n absolute: toRef(props, 'absolute')\n });\n useGroup(props, VBtnToggleSymbol);\n provideDefaults({\n VBtn: {\n baseColor: toRef(props, 'baseColor'),\n color: toRef(props, 'color'),\n density: toRef(props, 'density'),\n stacked: computed(() => props.mode !== 'horizontal'),\n variant: 'text'\n }\n }, {\n scoped: true\n });\n useRender(() => {\n return _createVNode(props.tag, {\n \"class\": ['v-bottom-navigation', {\n 'v-bottom-navigation--active': isActive.value,\n 'v-bottom-navigation--grow': props.grow,\n 'v-bottom-navigation--shift': props.mode === 'shift'\n }, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, props.class],\n \"style\": [backgroundColorStyles.value, layoutItemStyles.value, {\n height: convertToUnit(height.value)\n }, ssrBootStyles.value, props.style]\n }, {\n default: () => [slots.default && _createVNode(\"div\", {\n \"class\": \"v-bottom-navigation__content\"\n }, [slots.default()])]\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VBottomNavigation.mjs.map","import { createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\n// Styles\nimport \"./VDialog.css\";\n\n// Components\nimport { VDialogTransition } from \"../transitions/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VOverlay } from \"../VOverlay/index.mjs\";\nimport { makeVOverlayProps } from \"../VOverlay/VOverlay.mjs\"; // Composables\nimport { forwardRefs } from \"../../composables/forwardRefs.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { useScopeId } from \"../../composables/scopeId.mjs\"; // Utilities\nimport { mergeProps, nextTick, onBeforeUnmount, ref, watch } from 'vue';\nimport { focusableChildren, genericComponent, IN_BROWSER, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVDialogProps = propsFactory({\n fullscreen: Boolean,\n retainFocus: {\n type: Boolean,\n default: true\n },\n scrollable: Boolean,\n ...makeVOverlayProps({\n origin: 'center center',\n scrollStrategy: 'block',\n transition: {\n component: VDialogTransition\n },\n zIndex: 2400\n })\n}, 'VDialog');\nexport const VDialog = genericComponent()({\n name: 'VDialog',\n props: makeVDialogProps(),\n emits: {\n 'update:modelValue': value => true,\n afterEnter: () => true,\n afterLeave: () => true\n },\n setup(props, _ref) {\n let {\n emit,\n slots\n } = _ref;\n const isActive = useProxiedModel(props, 'modelValue');\n const {\n scopeId\n } = useScopeId();\n const overlay = ref();\n function onFocusin(e) {\n const before = e.relatedTarget;\n const after = e.target;\n if (before !== after && overlay.value?.contentEl &&\n // We're the topmost dialog\n overlay.value?.globalTop &&\n // It isn't the document or the dialog body\n ![document, overlay.value.contentEl].includes(after) &&\n // It isn't inside the dialog body\n !overlay.value.contentEl.contains(after)) {\n const focusable = focusableChildren(overlay.value.contentEl);\n if (!focusable.length) return;\n const firstElement = focusable[0];\n const lastElement = focusable[focusable.length - 1];\n if (before === firstElement) {\n lastElement.focus();\n } else {\n firstElement.focus();\n }\n }\n }\n onBeforeUnmount(() => {\n document.removeEventListener('focusin', onFocusin);\n });\n if (IN_BROWSER) {\n watch(() => isActive.value && props.retainFocus, val => {\n val ? document.addEventListener('focusin', onFocusin) : document.removeEventListener('focusin', onFocusin);\n }, {\n immediate: true\n });\n }\n function onAfterEnter() {\n emit('afterEnter');\n if (overlay.value?.contentEl && !overlay.value.contentEl.contains(document.activeElement)) {\n overlay.value.contentEl.focus({\n preventScroll: true\n });\n }\n }\n function onAfterLeave() {\n emit('afterLeave');\n }\n watch(isActive, async val => {\n if (!val) {\n await nextTick();\n overlay.value.activatorEl?.focus({\n preventScroll: true\n });\n }\n });\n useRender(() => {\n const overlayProps = VOverlay.filterProps(props);\n const activatorProps = mergeProps({\n 'aria-haspopup': 'dialog'\n }, props.activatorProps);\n const contentProps = mergeProps({\n tabindex: -1\n }, props.contentProps);\n return _createVNode(VOverlay, _mergeProps({\n \"ref\": overlay,\n \"class\": ['v-dialog', {\n 'v-dialog--fullscreen': props.fullscreen,\n 'v-dialog--scrollable': props.scrollable\n }, props.class],\n \"style\": props.style\n }, overlayProps, {\n \"modelValue\": isActive.value,\n \"onUpdate:modelValue\": $event => isActive.value = $event,\n \"aria-modal\": \"true\",\n \"activatorProps\": activatorProps,\n \"contentProps\": contentProps,\n \"height\": !props.fullscreen ? props.height : undefined,\n \"width\": !props.fullscreen ? props.width : undefined,\n \"maxHeight\": !props.fullscreen ? props.maxHeight : undefined,\n \"maxWidth\": !props.fullscreen ? props.maxWidth : undefined,\n \"role\": \"dialog\",\n \"onAfterEnter\": onAfterEnter,\n \"onAfterLeave\": onAfterLeave\n }, scopeId), {\n activator: slots.activator,\n default: function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return _createVNode(VDefaultsProvider, {\n \"root\": \"VDialog\"\n }, {\n default: () => [slots.default?.(...args)]\n });\n }\n });\n });\n return forwardRefs({}, overlay);\n }\n});\n//# sourceMappingURL=VDialog.mjs.map","import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VBottomSheet.css\";\n\n// Components\nimport { makeVDialogProps, VDialog } from \"../VDialog/VDialog.mjs\"; // Composables\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVBottomSheetProps = propsFactory({\n inset: Boolean,\n ...makeVDialogProps({\n transition: 'bottom-sheet-transition'\n })\n}, 'VBottomSheet');\nexport const VBottomSheet = genericComponent()({\n name: 'VBottomSheet',\n props: makeVBottomSheetProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const isActive = useProxiedModel(props, 'modelValue');\n useRender(() => {\n const dialogProps = VDialog.filterProps(props);\n return _createVNode(VDialog, _mergeProps(dialogProps, {\n \"contentClass\": ['v-bottom-sheet__content', props.contentClass],\n \"modelValue\": isActive.value,\n \"onUpdate:modelValue\": $event => isActive.value = $event,\n \"class\": ['v-bottom-sheet', {\n 'v-bottom-sheet--inset': props.inset\n }, props.class],\n \"style\": props.style\n }), slots);\n });\n return {};\n }\n});\n//# sourceMappingURL=VBottomSheet.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVBreadcrumbsDividerProps = propsFactory({\n divider: [Number, String],\n ...makeComponentProps()\n}, 'VBreadcrumbsDivider');\nexport const VBreadcrumbsDivider = genericComponent()({\n name: 'VBreadcrumbsDivider',\n props: makeVBreadcrumbsDividerProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => _createVNode(\"li\", {\n \"aria-hidden\": \"true\",\n \"class\": ['v-breadcrumbs-divider', props.class],\n \"style\": props.style\n }, [slots?.default?.() ?? props.divider]));\n return {};\n }\n});\n//# sourceMappingURL=VBreadcrumbsDivider.mjs.map","import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Composables\nimport { useTextColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeRouterProps, useLink } from \"../../composables/router.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVBreadcrumbsItemProps = propsFactory({\n active: Boolean,\n activeClass: String,\n activeColor: String,\n color: String,\n disabled: Boolean,\n title: String,\n ...makeComponentProps(),\n ...makeRouterProps(),\n ...makeTagProps({\n tag: 'li'\n })\n}, 'VBreadcrumbsItem');\nexport const VBreadcrumbsItem = genericComponent()({\n name: 'VBreadcrumbsItem',\n props: makeVBreadcrumbsItemProps(),\n setup(props, _ref) {\n let {\n slots,\n attrs\n } = _ref;\n const link = useLink(props, attrs);\n const isActive = computed(() => props.active || link.isActive?.value);\n const color = computed(() => isActive.value ? props.activeColor : props.color);\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(color);\n useRender(() => {\n return _createVNode(props.tag, {\n \"class\": ['v-breadcrumbs-item', {\n 'v-breadcrumbs-item--active': isActive.value,\n 'v-breadcrumbs-item--disabled': props.disabled,\n [`${props.activeClass}`]: isActive.value && props.activeClass\n }, textColorClasses.value, props.class],\n \"style\": [textColorStyles.value, props.style],\n \"aria-current\": isActive.value ? 'page' : undefined\n }, {\n default: () => [!link.isLink.value ? slots.default?.() ?? props.title : _createVNode(\"a\", _mergeProps({\n \"class\": \"v-breadcrumbs-item--link\",\n \"onClick\": link.navigate\n }, link.linkProps), [slots.default?.() ?? props.title])]\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VBreadcrumbsItem.mjs.map","import { createVNode as _createVNode, Fragment as _Fragment, mergeProps as _mergeProps } from \"vue\";\n// Styles\nimport \"./VBreadcrumbs.css\";\n\n// Components\nimport { VBreadcrumbsDivider } from \"./VBreadcrumbsDivider.mjs\";\nimport { VBreadcrumbsItem } from \"./VBreadcrumbsItem.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\"; // Composables\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { computed, toRef } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVBreadcrumbsProps = propsFactory({\n activeClass: String,\n activeColor: String,\n bgColor: String,\n color: String,\n disabled: Boolean,\n divider: {\n type: String,\n default: '/'\n },\n icon: IconValue,\n items: {\n type: Array,\n default: () => []\n },\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeRoundedProps(),\n ...makeTagProps({\n tag: 'ul'\n })\n}, 'VBreadcrumbs');\nexport const VBreadcrumbs = genericComponent()({\n name: 'VBreadcrumbs',\n props: makeVBreadcrumbsProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(toRef(props, 'bgColor'));\n const {\n densityClasses\n } = useDensity(props);\n const {\n roundedClasses\n } = useRounded(props);\n provideDefaults({\n VBreadcrumbsDivider: {\n divider: toRef(props, 'divider')\n },\n VBreadcrumbsItem: {\n activeClass: toRef(props, 'activeClass'),\n activeColor: toRef(props, 'activeColor'),\n color: toRef(props, 'color'),\n disabled: toRef(props, 'disabled')\n }\n });\n const items = computed(() => props.items.map(item => {\n return typeof item === 'string' ? {\n item: {\n title: item\n },\n raw: item\n } : {\n item,\n raw: item\n };\n }));\n useRender(() => {\n const hasPrepend = !!(slots.prepend || props.icon);\n return _createVNode(props.tag, {\n \"class\": ['v-breadcrumbs', backgroundColorClasses.value, densityClasses.value, roundedClasses.value, props.class],\n \"style\": [backgroundColorStyles.value, props.style]\n }, {\n default: () => [hasPrepend && _createVNode(\"li\", {\n \"key\": \"prepend\",\n \"class\": \"v-breadcrumbs__prepend\"\n }, [!slots.prepend ? _createVNode(VIcon, {\n \"key\": \"prepend-icon\",\n \"start\": true,\n \"icon\": props.icon\n }, null) : _createVNode(VDefaultsProvider, {\n \"key\": \"prepend-defaults\",\n \"disabled\": !props.icon,\n \"defaults\": {\n VIcon: {\n icon: props.icon,\n start: true\n }\n }\n }, slots.prepend)]), items.value.map((_ref2, index, array) => {\n let {\n item,\n raw\n } = _ref2;\n return _createVNode(_Fragment, null, [slots.item?.({\n item,\n index\n }) ?? _createVNode(VBreadcrumbsItem, _mergeProps({\n \"key\": index,\n \"disabled\": index >= array.length - 1\n }, typeof item === 'string' ? {\n title: item\n } : item), {\n default: slots.title ? () => slots.title?.({\n item,\n index\n }) : undefined\n }), index < array.length - 1 && _createVNode(VBreadcrumbsDivider, null, {\n default: slots.divider ? () => slots.divider?.({\n item: raw,\n index\n }) : undefined\n })]);\n }), slots.default?.()]\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VBreadcrumbs.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\"; // Utilities\nimport { genericComponent, useRender } from \"../../util/index.mjs\";\nexport const VCardActions = genericComponent()({\n name: 'VCardActions',\n props: makeComponentProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n provideDefaults({\n VBtn: {\n slim: true,\n variant: 'text'\n }\n });\n useRender(() => _createVNode(\"div\", {\n \"class\": ['v-card-actions', props.class],\n \"style\": props.style\n }, [slots.default?.()]));\n return {};\n }\n});\n//# sourceMappingURL=VCardActions.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVCardSubtitleProps = propsFactory({\n opacity: [Number, String],\n ...makeComponentProps(),\n ...makeTagProps()\n}, 'VCardSubtitle');\nexport const VCardSubtitle = genericComponent()({\n name: 'VCardSubtitle',\n props: makeVCardSubtitleProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => _createVNode(props.tag, {\n \"class\": ['v-card-subtitle', props.class],\n \"style\": [{\n '--v-card-subtitle-opacity': props.opacity\n }, props.style]\n }, slots));\n return {};\n }\n});\n//# sourceMappingURL=VCardSubtitle.mjs.map","// Utilities\nimport { createSimpleFunctional } from \"../../util/index.mjs\";\nexport const VCardTitle = createSimpleFunctional('v-card-title');\n//# sourceMappingURL=VCardTitle.mjs.map","import { Fragment as _Fragment, createVNode as _createVNode } from \"vue\";\n// Components\nimport { VCardSubtitle } from \"./VCardSubtitle.mjs\";\nimport { VCardTitle } from \"./VCardTitle.mjs\";\nimport { VAvatar } from \"../VAvatar/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDensityProps } from \"../../composables/density.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeCardItemProps = propsFactory({\n appendAvatar: String,\n appendIcon: IconValue,\n prependAvatar: String,\n prependIcon: IconValue,\n subtitle: [String, Number],\n title: [String, Number],\n ...makeComponentProps(),\n ...makeDensityProps()\n}, 'VCardItem');\nexport const VCardItem = genericComponent()({\n name: 'VCardItem',\n props: makeCardItemProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => {\n const hasPrependMedia = !!(props.prependAvatar || props.prependIcon);\n const hasPrepend = !!(hasPrependMedia || slots.prepend);\n const hasAppendMedia = !!(props.appendAvatar || props.appendIcon);\n const hasAppend = !!(hasAppendMedia || slots.append);\n const hasTitle = !!(props.title != null || slots.title);\n const hasSubtitle = !!(props.subtitle != null || slots.subtitle);\n return _createVNode(\"div\", {\n \"class\": ['v-card-item', props.class],\n \"style\": props.style\n }, [hasPrepend && _createVNode(\"div\", {\n \"key\": \"prepend\",\n \"class\": \"v-card-item__prepend\"\n }, [!slots.prepend ? _createVNode(_Fragment, null, [props.prependAvatar && _createVNode(VAvatar, {\n \"key\": \"prepend-avatar\",\n \"density\": props.density,\n \"image\": props.prependAvatar\n }, null), props.prependIcon && _createVNode(VIcon, {\n \"key\": \"prepend-icon\",\n \"density\": props.density,\n \"icon\": props.prependIcon\n }, null)]) : _createVNode(VDefaultsProvider, {\n \"key\": \"prepend-defaults\",\n \"disabled\": !hasPrependMedia,\n \"defaults\": {\n VAvatar: {\n density: props.density,\n image: props.prependAvatar\n },\n VIcon: {\n density: props.density,\n icon: props.prependIcon\n }\n }\n }, slots.prepend)]), _createVNode(\"div\", {\n \"class\": \"v-card-item__content\"\n }, [hasTitle && _createVNode(VCardTitle, {\n \"key\": \"title\"\n }, {\n default: () => [slots.title?.() ?? props.title]\n }), hasSubtitle && _createVNode(VCardSubtitle, {\n \"key\": \"subtitle\"\n }, {\n default: () => [slots.subtitle?.() ?? props.subtitle]\n }), slots.default?.()]), hasAppend && _createVNode(\"div\", {\n \"key\": \"append\",\n \"class\": \"v-card-item__append\"\n }, [!slots.append ? _createVNode(_Fragment, null, [props.appendIcon && _createVNode(VIcon, {\n \"key\": \"append-icon\",\n \"density\": props.density,\n \"icon\": props.appendIcon\n }, null), props.appendAvatar && _createVNode(VAvatar, {\n \"key\": \"append-avatar\",\n \"density\": props.density,\n \"image\": props.appendAvatar\n }, null)]) : _createVNode(VDefaultsProvider, {\n \"key\": \"append-defaults\",\n \"disabled\": !hasAppendMedia,\n \"defaults\": {\n VAvatar: {\n density: props.density,\n image: props.appendAvatar\n },\n VIcon: {\n density: props.density,\n icon: props.appendIcon\n }\n }\n }, slots.append)])]);\n });\n return {};\n }\n});\n//# sourceMappingURL=VCardItem.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVCardTextProps = propsFactory({\n opacity: [Number, String],\n ...makeComponentProps(),\n ...makeTagProps()\n}, 'VCardText');\nexport const VCardText = genericComponent()({\n name: 'VCardText',\n props: makeVCardTextProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => _createVNode(props.tag, {\n \"class\": ['v-card-text', props.class],\n \"style\": [{\n '--v-card-text-opacity': props.opacity\n }, props.style]\n }, slots));\n return {};\n }\n});\n//# sourceMappingURL=VCardText.mjs.map","import { createVNode as _createVNode, resolveDirective as _resolveDirective, mergeProps as _mergeProps, withDirectives as _withDirectives } from \"vue\";\n/* eslint-disable complexity */\n\n// Styles\nimport \"./VCard.css\";\n\n// Components\nimport { VCardActions } from \"./VCardActions.mjs\";\nimport { VCardItem } from \"./VCardItem.mjs\";\nimport { VCardText } from \"./VCardText.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VImg } from \"../VImg/index.mjs\"; // Composables\nimport { makeBorderProps, useBorder } from \"../../composables/border.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { LoaderSlot, makeLoaderProps, useLoader } from \"../../composables/loader.mjs\";\nimport { makeLocationProps, useLocation } from \"../../composables/location.mjs\";\nimport { makePositionProps, usePosition } from \"../../composables/position.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeRouterProps, useLink } from \"../../composables/router.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\";\nimport { genOverlays, makeVariantProps, useVariant } from \"../../composables/variant.mjs\"; // Directives\nimport { Ripple } from \"../../directives/ripple/index.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVCardProps = propsFactory({\n appendAvatar: String,\n appendIcon: IconValue,\n disabled: Boolean,\n flat: Boolean,\n hover: Boolean,\n image: String,\n link: {\n type: Boolean,\n default: undefined\n },\n prependAvatar: String,\n prependIcon: IconValue,\n ripple: {\n type: [Boolean, Object],\n default: true\n },\n subtitle: [String, Number],\n text: [String, Number],\n title: [String, Number],\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeLoaderProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({\n variant: 'elevated'\n })\n}, 'VCard');\nexport const VCard = genericComponent()({\n name: 'VCard',\n directives: {\n Ripple\n },\n props: makeVCardProps(),\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n borderClasses\n } = useBorder(props);\n const {\n colorClasses,\n colorStyles,\n variantClasses\n } = useVariant(props);\n const {\n densityClasses\n } = useDensity(props);\n const {\n dimensionStyles\n } = useDimension(props);\n const {\n elevationClasses\n } = useElevation(props);\n const {\n loaderClasses\n } = useLoader(props);\n const {\n locationStyles\n } = useLocation(props);\n const {\n positionClasses\n } = usePosition(props);\n const {\n roundedClasses\n } = useRounded(props);\n const link = useLink(props, attrs);\n const isLink = computed(() => props.link !== false && link.isLink.value);\n const isClickable = computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value));\n useRender(() => {\n const Tag = isLink.value ? 'a' : props.tag;\n const hasTitle = !!(slots.title || props.title != null);\n const hasSubtitle = !!(slots.subtitle || props.subtitle != null);\n const hasHeader = hasTitle || hasSubtitle;\n const hasAppend = !!(slots.append || props.appendAvatar || props.appendIcon);\n const hasPrepend = !!(slots.prepend || props.prependAvatar || props.prependIcon);\n const hasImage = !!(slots.image || props.image);\n const hasCardItem = hasHeader || hasPrepend || hasAppend;\n const hasText = !!(slots.text || props.text != null);\n return _withDirectives(_createVNode(Tag, _mergeProps({\n \"class\": ['v-card', {\n 'v-card--disabled': props.disabled,\n 'v-card--flat': props.flat,\n 'v-card--hover': props.hover && !(props.disabled || props.flat),\n 'v-card--link': isClickable.value\n }, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value, props.class],\n \"style\": [colorStyles.value, dimensionStyles.value, locationStyles.value, props.style],\n \"onClick\": isClickable.value && link.navigate,\n \"tabindex\": props.disabled ? -1 : undefined\n }, link.linkProps), {\n default: () => [hasImage && _createVNode(\"div\", {\n \"key\": \"image\",\n \"class\": \"v-card__image\"\n }, [!slots.image ? _createVNode(VImg, {\n \"key\": \"image-img\",\n \"cover\": true,\n \"src\": props.image\n }, null) : _createVNode(VDefaultsProvider, {\n \"key\": \"image-defaults\",\n \"disabled\": !props.image,\n \"defaults\": {\n VImg: {\n cover: true,\n src: props.image\n }\n }\n }, slots.image)]), _createVNode(LoaderSlot, {\n \"name\": \"v-card\",\n \"active\": !!props.loading,\n \"color\": typeof props.loading === 'boolean' ? undefined : props.loading\n }, {\n default: slots.loader\n }), hasCardItem && _createVNode(VCardItem, {\n \"key\": \"item\",\n \"prependAvatar\": props.prependAvatar,\n \"prependIcon\": props.prependIcon,\n \"title\": props.title,\n \"subtitle\": props.subtitle,\n \"appendAvatar\": props.appendAvatar,\n \"appendIcon\": props.appendIcon\n }, {\n default: slots.item,\n prepend: slots.prepend,\n title: slots.title,\n subtitle: slots.subtitle,\n append: slots.append\n }), hasText && _createVNode(VCardText, {\n \"key\": \"text\"\n }, {\n default: () => [slots.text?.() ?? props.text]\n }), slots.default?.(), slots.actions && _createVNode(VCardActions, null, {\n default: slots.actions\n }), genOverlays(isClickable.value, 'v-card')]\n }), [[_resolveDirective(\"ripple\"), isClickable.value && props.ripple]]);\n });\n return {};\n }\n});\n//# sourceMappingURL=VCard.mjs.map","// Utilities\nimport { keys } from \"../../util/index.mjs\"; // Types\nconst handleGesture = wrapper => {\n const {\n touchstartX,\n touchendX,\n touchstartY,\n touchendY\n } = wrapper;\n const dirRatio = 0.5;\n const minDistance = 16;\n wrapper.offsetX = touchendX - touchstartX;\n wrapper.offsetY = touchendY - touchstartY;\n if (Math.abs(wrapper.offsetY) < dirRatio * Math.abs(wrapper.offsetX)) {\n wrapper.left && touchendX < touchstartX - minDistance && wrapper.left(wrapper);\n wrapper.right && touchendX > touchstartX + minDistance && wrapper.right(wrapper);\n }\n if (Math.abs(wrapper.offsetX) < dirRatio * Math.abs(wrapper.offsetY)) {\n wrapper.up && touchendY < touchstartY - minDistance && wrapper.up(wrapper);\n wrapper.down && touchendY > touchstartY + minDistance && wrapper.down(wrapper);\n }\n};\nfunction touchstart(event, wrapper) {\n const touch = event.changedTouches[0];\n wrapper.touchstartX = touch.clientX;\n wrapper.touchstartY = touch.clientY;\n wrapper.start?.({\n originalEvent: event,\n ...wrapper\n });\n}\nfunction touchend(event, wrapper) {\n const touch = event.changedTouches[0];\n wrapper.touchendX = touch.clientX;\n wrapper.touchendY = touch.clientY;\n wrapper.end?.({\n originalEvent: event,\n ...wrapper\n });\n handleGesture(wrapper);\n}\nfunction touchmove(event, wrapper) {\n const touch = event.changedTouches[0];\n wrapper.touchmoveX = touch.clientX;\n wrapper.touchmoveY = touch.clientY;\n wrapper.move?.({\n originalEvent: event,\n ...wrapper\n });\n}\nfunction createHandlers() {\n let value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const wrapper = {\n touchstartX: 0,\n touchstartY: 0,\n touchendX: 0,\n touchendY: 0,\n touchmoveX: 0,\n touchmoveY: 0,\n offsetX: 0,\n offsetY: 0,\n left: value.left,\n right: value.right,\n up: value.up,\n down: value.down,\n start: value.start,\n move: value.move,\n end: value.end\n };\n return {\n touchstart: e => touchstart(e, wrapper),\n touchend: e => touchend(e, wrapper),\n touchmove: e => touchmove(e, wrapper)\n };\n}\nfunction mounted(el, binding) {\n const value = binding.value;\n const target = value?.parent ? el.parentElement : el;\n const options = value?.options ?? {\n passive: true\n };\n const uid = binding.instance?.$.uid; // TODO: use custom uid generator\n\n if (!target || !uid) return;\n const handlers = createHandlers(binding.value);\n target._touchHandlers = target._touchHandlers ?? Object.create(null);\n target._touchHandlers[uid] = handlers;\n keys(handlers).forEach(eventName => {\n target.addEventListener(eventName, handlers[eventName], options);\n });\n}\nfunction unmounted(el, binding) {\n const target = binding.value?.parent ? el.parentElement : el;\n const uid = binding.instance?.$.uid;\n if (!target?._touchHandlers || !uid) return;\n const handlers = target._touchHandlers[uid];\n keys(handlers).forEach(eventName => {\n target.removeEventListener(eventName, handlers[eventName]);\n });\n delete target._touchHandlers[uid];\n}\nexport const Touch = {\n mounted,\n unmounted\n};\nexport default Touch;\n//# sourceMappingURL=index.mjs.map","import { createVNode as _createVNode, resolveDirective as _resolveDirective, withDirectives as _withDirectives } from \"vue\";\n// Styles\nimport \"./VWindow.css\";\n\n// Components\nimport { VBtn } from \"../VBtn/index.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { useGroup } from \"../../composables/group.mjs\";\nimport { useLocale, useRtl } from \"../../composables/locale.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Directives\nimport { Touch } from \"../../directives/touch/index.mjs\"; // Utilities\nimport { computed, provide, ref, shallowRef, watch } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const VWindowSymbol = Symbol.for('vuetify:v-window');\nexport const VWindowGroupSymbol = Symbol.for('vuetify:v-window-group');\nexport const makeVWindowProps = propsFactory({\n continuous: Boolean,\n nextIcon: {\n type: [Boolean, String, Function, Object],\n default: '$next'\n },\n prevIcon: {\n type: [Boolean, String, Function, Object],\n default: '$prev'\n },\n reverse: Boolean,\n showArrows: {\n type: [Boolean, String],\n validator: v => typeof v === 'boolean' || v === 'hover'\n },\n touch: {\n type: [Object, Boolean],\n default: undefined\n },\n direction: {\n type: String,\n default: 'horizontal'\n },\n modelValue: null,\n disabled: Boolean,\n selectedClass: {\n type: String,\n default: 'v-window-item--active'\n },\n // TODO: mandatory should probably not be exposed but do this for now\n mandatory: {\n type: [Boolean, String],\n default: 'force'\n },\n ...makeComponentProps(),\n ...makeTagProps(),\n ...makeThemeProps()\n}, 'VWindow');\nexport const VWindow = genericComponent()({\n name: 'VWindow',\n directives: {\n Touch\n },\n props: makeVWindowProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n isRtl\n } = useRtl();\n const {\n t\n } = useLocale();\n const group = useGroup(props, VWindowGroupSymbol);\n const rootRef = ref();\n const isRtlReverse = computed(() => isRtl.value ? !props.reverse : props.reverse);\n const isReversed = shallowRef(false);\n const transition = computed(() => {\n const axis = props.direction === 'vertical' ? 'y' : 'x';\n const reverse = isRtlReverse.value ? !isReversed.value : isReversed.value;\n const direction = reverse ? '-reverse' : '';\n return `v-window-${axis}${direction}-transition`;\n });\n const transitionCount = shallowRef(0);\n const transitionHeight = ref(undefined);\n const activeIndex = computed(() => {\n return group.items.value.findIndex(item => group.selected.value.includes(item.id));\n });\n watch(activeIndex, (newVal, oldVal) => {\n const itemsLength = group.items.value.length;\n const lastIndex = itemsLength - 1;\n if (itemsLength <= 2) {\n isReversed.value = newVal < oldVal;\n } else if (newVal === lastIndex && oldVal === 0) {\n isReversed.value = true;\n } else if (newVal === 0 && oldVal === lastIndex) {\n isReversed.value = false;\n } else {\n isReversed.value = newVal < oldVal;\n }\n });\n provide(VWindowSymbol, {\n transition,\n isReversed,\n transitionCount,\n transitionHeight,\n rootRef\n });\n const canMoveBack = computed(() => props.continuous || activeIndex.value !== 0);\n const canMoveForward = computed(() => props.continuous || activeIndex.value !== group.items.value.length - 1);\n function prev() {\n canMoveBack.value && group.prev();\n }\n function next() {\n canMoveForward.value && group.next();\n }\n const arrows = computed(() => {\n const arrows = [];\n const prevProps = {\n icon: isRtl.value ? props.nextIcon : props.prevIcon,\n class: `v-window__${isRtlReverse.value ? 'right' : 'left'}`,\n onClick: group.prev,\n 'aria-label': t('$vuetify.carousel.prev')\n };\n arrows.push(canMoveBack.value ? slots.prev ? slots.prev({\n props: prevProps\n }) : _createVNode(VBtn, prevProps, null) : _createVNode(\"div\", null, null));\n const nextProps = {\n icon: isRtl.value ? props.prevIcon : props.nextIcon,\n class: `v-window__${isRtlReverse.value ? 'left' : 'right'}`,\n onClick: group.next,\n 'aria-label': t('$vuetify.carousel.next')\n };\n arrows.push(canMoveForward.value ? slots.next ? slots.next({\n props: nextProps\n }) : _createVNode(VBtn, nextProps, null) : _createVNode(\"div\", null, null));\n return arrows;\n });\n const touchOptions = computed(() => {\n if (props.touch === false) return props.touch;\n const options = {\n left: () => {\n isRtlReverse.value ? prev() : next();\n },\n right: () => {\n isRtlReverse.value ? next() : prev();\n },\n start: _ref2 => {\n let {\n originalEvent\n } = _ref2;\n originalEvent.stopPropagation();\n }\n };\n return {\n ...options,\n ...(props.touch === true ? {} : props.touch)\n };\n });\n useRender(() => _withDirectives(_createVNode(props.tag, {\n \"ref\": rootRef,\n \"class\": ['v-window', {\n 'v-window--show-arrows-on-hover': props.showArrows === 'hover'\n }, themeClasses.value, props.class],\n \"style\": props.style\n }, {\n default: () => [_createVNode(\"div\", {\n \"class\": \"v-window__container\",\n \"style\": {\n height: transitionHeight.value\n }\n }, [slots.default?.({\n group\n }), props.showArrows !== false && _createVNode(\"div\", {\n \"class\": \"v-window__controls\"\n }, [arrows.value])]), slots.additional?.({\n group\n })]\n }), [[_resolveDirective(\"touch\"), touchOptions.value]]));\n return {\n group\n };\n }\n});\n//# sourceMappingURL=VWindow.mjs.map","import { Fragment as _Fragment, mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VCarousel.css\";\n\n// Components\nimport { VBtn } from \"../VBtn/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VProgressLinear } from \"../VProgressLinear/index.mjs\";\nimport { makeVWindowProps, VWindow } from \"../VWindow/VWindow.mjs\"; // Composables\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { useLocale } from \"../../composables/locale.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { onMounted, ref, watch } from 'vue';\nimport { convertToUnit, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVCarouselProps = propsFactory({\n color: String,\n cycle: Boolean,\n delimiterIcon: {\n type: IconValue,\n default: '$delimiter'\n },\n height: {\n type: [Number, String],\n default: 500\n },\n hideDelimiters: Boolean,\n hideDelimiterBackground: Boolean,\n interval: {\n type: [Number, String],\n default: 6000,\n validator: value => Number(value) > 0\n },\n progress: [Boolean, String],\n verticalDelimiters: [Boolean, String],\n ...makeVWindowProps({\n continuous: true,\n mandatory: 'force',\n showArrows: true\n })\n}, 'VCarousel');\nexport const VCarousel = genericComponent()({\n name: 'VCarousel',\n props: makeVCarouselProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const model = useProxiedModel(props, 'modelValue');\n const {\n t\n } = useLocale();\n const windowRef = ref();\n let slideTimeout = -1;\n watch(model, restartTimeout);\n watch(() => props.interval, restartTimeout);\n watch(() => props.cycle, val => {\n if (val) restartTimeout();else window.clearTimeout(slideTimeout);\n });\n onMounted(startTimeout);\n function startTimeout() {\n if (!props.cycle || !windowRef.value) return;\n slideTimeout = window.setTimeout(windowRef.value.group.next, +props.interval > 0 ? +props.interval : 6000);\n }\n function restartTimeout() {\n window.clearTimeout(slideTimeout);\n window.requestAnimationFrame(startTimeout);\n }\n useRender(() => {\n const windowProps = VWindow.filterProps(props);\n return _createVNode(VWindow, _mergeProps({\n \"ref\": windowRef\n }, windowProps, {\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"class\": ['v-carousel', {\n 'v-carousel--hide-delimiter-background': props.hideDelimiterBackground,\n 'v-carousel--vertical-delimiters': props.verticalDelimiters\n }, props.class],\n \"style\": [{\n height: convertToUnit(props.height)\n }, props.style]\n }), {\n default: slots.default,\n additional: _ref2 => {\n let {\n group\n } = _ref2;\n return _createVNode(_Fragment, null, [!props.hideDelimiters && _createVNode(\"div\", {\n \"class\": \"v-carousel__controls\",\n \"style\": {\n left: props.verticalDelimiters === 'left' && props.verticalDelimiters ? 0 : 'auto',\n right: props.verticalDelimiters === 'right' ? 0 : 'auto'\n }\n }, [group.items.value.length > 0 && _createVNode(VDefaultsProvider, {\n \"defaults\": {\n VBtn: {\n color: props.color,\n icon: props.delimiterIcon,\n size: 'x-small',\n variant: 'text'\n }\n },\n \"scoped\": true\n }, {\n default: () => [group.items.value.map((item, index) => {\n const props = {\n id: `carousel-item-${item.id}`,\n 'aria-label': t('$vuetify.carousel.ariaLabel.delimiter', index + 1, group.items.value.length),\n class: ['v-carousel__controls__item', group.isSelected(item.id) && 'v-btn--active'],\n onClick: () => group.select(item.id, true)\n };\n return slots.item ? slots.item({\n props,\n item\n }) : _createVNode(VBtn, _mergeProps(item, props), null);\n })]\n })]), props.progress && _createVNode(VProgressLinear, {\n \"class\": \"v-carousel__progress\",\n \"color\": typeof props.progress === 'string' ? props.progress : undefined,\n \"modelValue\": (group.getItemIndex(model.value) + 1) / group.items.value.length * 100\n }, null)]);\n },\n prev: slots.prev,\n next: slots.next\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VCarousel.mjs.map","import { vShow as _vShow, createVNode as _createVNode, withDirectives as _withDirectives } from \"vue\";\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeGroupItemProps, useGroupItem } from \"../../composables/group.mjs\";\nimport { makeLazyProps, useLazy } from \"../../composables/lazy.mjs\";\nimport { useSsrBoot } from \"../../composables/ssrBoot.mjs\";\nimport { MaybeTransition } from \"../../composables/transition.mjs\"; // Directives\nimport Touch from \"../../directives/touch/index.mjs\"; // Utilities\nimport { computed, inject, nextTick, shallowRef } from 'vue';\nimport { convertToUnit, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nimport { VWindowGroupSymbol, VWindowSymbol } from \"./VWindow.mjs\";\nexport const makeVWindowItemProps = propsFactory({\n reverseTransition: {\n type: [Boolean, String],\n default: undefined\n },\n transition: {\n type: [Boolean, String],\n default: undefined\n },\n ...makeComponentProps(),\n ...makeGroupItemProps(),\n ...makeLazyProps()\n}, 'VWindowItem');\nexport const VWindowItem = genericComponent()({\n name: 'VWindowItem',\n directives: {\n Touch\n },\n props: makeVWindowItemProps(),\n emits: {\n 'group:selected': val => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const window = inject(VWindowSymbol);\n const groupItem = useGroupItem(props, VWindowGroupSymbol);\n const {\n isBooted\n } = useSsrBoot();\n if (!window || !groupItem) throw new Error('[Vuetify] VWindowItem must be used inside VWindow');\n const isTransitioning = shallowRef(false);\n const hasTransition = computed(() => isBooted.value && (window.isReversed.value ? props.reverseTransition !== false : props.transition !== false));\n function onAfterTransition() {\n if (!isTransitioning.value || !window) {\n return;\n }\n\n // Finalize transition state.\n isTransitioning.value = false;\n if (window.transitionCount.value > 0) {\n window.transitionCount.value -= 1;\n\n // Remove container height if we are out of transition.\n if (window.transitionCount.value === 0) {\n window.transitionHeight.value = undefined;\n }\n }\n }\n function onBeforeTransition() {\n if (isTransitioning.value || !window) {\n return;\n }\n\n // Initialize transition state here.\n isTransitioning.value = true;\n if (window.transitionCount.value === 0) {\n // Set initial height for height transition.\n window.transitionHeight.value = convertToUnit(window.rootRef.value?.clientHeight);\n }\n window.transitionCount.value += 1;\n }\n function onTransitionCancelled() {\n onAfterTransition(); // This should have the same path as normal transition end.\n }\n function onEnterTransition(el) {\n if (!isTransitioning.value) {\n return;\n }\n nextTick(() => {\n // Do not set height if no transition or cancelled.\n if (!hasTransition.value || !isTransitioning.value || !window) {\n return;\n }\n\n // Set transition target height.\n window.transitionHeight.value = convertToUnit(el.clientHeight);\n });\n }\n const transition = computed(() => {\n const name = window.isReversed.value ? props.reverseTransition : props.transition;\n return !hasTransition.value ? false : {\n name: typeof name !== 'string' ? window.transition.value : name,\n onBeforeEnter: onBeforeTransition,\n onAfterEnter: onAfterTransition,\n onEnterCancelled: onTransitionCancelled,\n onBeforeLeave: onBeforeTransition,\n onAfterLeave: onAfterTransition,\n onLeaveCancelled: onTransitionCancelled,\n onEnter: onEnterTransition\n };\n });\n const {\n hasContent\n } = useLazy(props, groupItem.isSelected);\n useRender(() => _createVNode(MaybeTransition, {\n \"transition\": transition.value,\n \"disabled\": !isBooted.value\n }, {\n default: () => [_withDirectives(_createVNode(\"div\", {\n \"class\": ['v-window-item', groupItem.selectedClass.value, props.class],\n \"style\": props.style\n }, [hasContent.value && slots.default?.()]), [[_vShow, groupItem.isSelected.value]])]\n }));\n return {\n groupItem\n };\n }\n});\n//# sourceMappingURL=VWindowItem.mjs.map","import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Components\nimport { makeVImgProps, VImg } from \"../VImg/VImg.mjs\";\nimport { makeVWindowItemProps, VWindowItem } from \"../VWindow/VWindowItem.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVCarouselItemProps = propsFactory({\n ...makeVImgProps(),\n ...makeVWindowItemProps()\n}, 'VCarouselItem');\nexport const VCarouselItem = genericComponent()({\n name: 'VCarouselItem',\n inheritAttrs: false,\n props: makeVCarouselItemProps(),\n setup(props, _ref) {\n let {\n slots,\n attrs\n } = _ref;\n useRender(() => {\n const imgProps = VImg.filterProps(props);\n const windowItemProps = VWindowItem.filterProps(props);\n return _createVNode(VWindowItem, _mergeProps({\n \"class\": ['v-carousel-item', props.class]\n }, windowItemProps), {\n default: () => [_createVNode(VImg, _mergeProps(attrs, imgProps), slots)]\n });\n });\n }\n});\n//# sourceMappingURL=VCarouselItem.mjs.map","// Styles\nimport \"./VCode.css\";\n\n// Utilities\nimport { createSimpleFunctional } from \"../../util/index.mjs\";\nexport const VCode = createSimpleFunctional('v-code', 'code');\n//# sourceMappingURL=index.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VColorPickerCanvas.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { useResizeObserver } from \"../../composables/resizeObserver.mjs\"; // Utilities\nimport { computed, onMounted, ref, shallowRef, watch } from 'vue';\nimport { clamp, convertToUnit, defineComponent, getEventCoordinates, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVColorPickerCanvasProps = propsFactory({\n color: {\n type: Object\n },\n disabled: Boolean,\n dotSize: {\n type: [Number, String],\n default: 10\n },\n height: {\n type: [Number, String],\n default: 150\n },\n width: {\n type: [Number, String],\n default: 300\n },\n ...makeComponentProps()\n}, 'VColorPickerCanvas');\nexport const VColorPickerCanvas = defineComponent({\n name: 'VColorPickerCanvas',\n props: makeVColorPickerCanvasProps(),\n emits: {\n 'update:color': color => true,\n 'update:position': hue => true\n },\n setup(props, _ref) {\n let {\n emit\n } = _ref;\n const isInteracting = shallowRef(false);\n const canvasRef = ref();\n const canvasWidth = shallowRef(parseFloat(props.width));\n const canvasHeight = shallowRef(parseFloat(props.height));\n const _dotPosition = ref({\n x: 0,\n y: 0\n });\n const dotPosition = computed({\n get: () => _dotPosition.value,\n set(val) {\n if (!canvasRef.value) return;\n const {\n x,\n y\n } = val;\n _dotPosition.value = val;\n emit('update:color', {\n h: props.color?.h ?? 0,\n s: clamp(x, 0, canvasWidth.value) / canvasWidth.value,\n v: 1 - clamp(y, 0, canvasHeight.value) / canvasHeight.value,\n a: props.color?.a ?? 1\n });\n }\n });\n const dotStyles = computed(() => {\n const {\n x,\n y\n } = dotPosition.value;\n const radius = parseInt(props.dotSize, 10) / 2;\n return {\n width: convertToUnit(props.dotSize),\n height: convertToUnit(props.dotSize),\n transform: `translate(${convertToUnit(x - radius)}, ${convertToUnit(y - radius)})`\n };\n });\n const {\n resizeRef\n } = useResizeObserver(entries => {\n if (!resizeRef.el?.offsetParent) return;\n const {\n width,\n height\n } = entries[0].contentRect;\n canvasWidth.value = width;\n canvasHeight.value = height;\n });\n function updateDotPosition(x, y, rect) {\n const {\n left,\n top,\n width,\n height\n } = rect;\n dotPosition.value = {\n x: clamp(x - left, 0, width),\n y: clamp(y - top, 0, height)\n };\n }\n function handleMouseDown(e) {\n if (e.type === 'mousedown') {\n // Prevent text selection while dragging\n e.preventDefault();\n }\n if (props.disabled) return;\n handleMouseMove(e);\n window.addEventListener('mousemove', handleMouseMove);\n window.addEventListener('mouseup', handleMouseUp);\n window.addEventListener('touchmove', handleMouseMove);\n window.addEventListener('touchend', handleMouseUp);\n }\n function handleMouseMove(e) {\n if (props.disabled || !canvasRef.value) return;\n isInteracting.value = true;\n const coords = getEventCoordinates(e);\n updateDotPosition(coords.clientX, coords.clientY, canvasRef.value.getBoundingClientRect());\n }\n function handleMouseUp() {\n window.removeEventListener('mousemove', handleMouseMove);\n window.removeEventListener('mouseup', handleMouseUp);\n window.removeEventListener('touchmove', handleMouseMove);\n window.removeEventListener('touchend', handleMouseUp);\n }\n function updateCanvas() {\n if (!canvasRef.value) return;\n const canvas = canvasRef.value;\n const ctx = canvas.getContext('2d');\n if (!ctx) return;\n const saturationGradient = ctx.createLinearGradient(0, 0, canvas.width, 0);\n saturationGradient.addColorStop(0, 'hsla(0, 0%, 100%, 1)'); // white\n saturationGradient.addColorStop(1, `hsla(${props.color?.h ?? 0}, 100%, 50%, 1)`);\n ctx.fillStyle = saturationGradient;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n const valueGradient = ctx.createLinearGradient(0, 0, 0, canvas.height);\n valueGradient.addColorStop(0, 'hsla(0, 0%, 0%, 0)'); // transparent\n valueGradient.addColorStop(1, 'hsla(0, 0%, 0%, 1)'); // black\n ctx.fillStyle = valueGradient;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n }\n watch(() => props.color?.h, updateCanvas, {\n immediate: true\n });\n watch(() => [canvasWidth.value, canvasHeight.value], (newVal, oldVal) => {\n updateCanvas();\n _dotPosition.value = {\n x: dotPosition.value.x * newVal[0] / oldVal[0],\n y: dotPosition.value.y * newVal[1] / oldVal[1]\n };\n }, {\n flush: 'post'\n });\n watch(() => props.color, () => {\n if (isInteracting.value) {\n isInteracting.value = false;\n return;\n }\n _dotPosition.value = props.color ? {\n x: props.color.s * canvasWidth.value,\n y: (1 - props.color.v) * canvasHeight.value\n } : {\n x: 0,\n y: 0\n };\n }, {\n deep: true,\n immediate: true\n });\n onMounted(() => updateCanvas());\n useRender(() => _createVNode(\"div\", {\n \"ref\": resizeRef,\n \"class\": ['v-color-picker-canvas', props.class],\n \"style\": props.style,\n \"onMousedown\": handleMouseDown,\n \"onTouchstartPassive\": handleMouseDown\n }, [_createVNode(\"canvas\", {\n \"ref\": canvasRef,\n \"width\": canvasWidth.value,\n \"height\": canvasHeight.value\n }, null), props.color && _createVNode(\"div\", {\n \"class\": ['v-color-picker-canvas__dot', {\n 'v-color-picker-canvas__dot--disabled': props.disabled\n }],\n \"style\": dotStyles.value\n }, null)]));\n return {};\n }\n});\n//# sourceMappingURL=VColorPickerCanvas.mjs.map","// Utilities\nimport { HexToHSV, HSLtoHSV, HSVtoHex, HSVtoHSL, HSVtoRGB, RGBtoHSV } from \"../../../util/colorUtils.mjs\";\nimport { has } from \"../../../util/helpers.mjs\"; // Types\nfunction stripAlpha(color, stripAlpha) {\n if (stripAlpha) {\n const {\n a,\n ...rest\n } = color;\n return rest;\n }\n return color;\n}\nexport function extractColor(color, input) {\n if (input == null || typeof input === 'string') {\n const hex = HSVtoHex(color);\n if (color.a === 1) return hex.slice(0, 7);else return hex;\n }\n if (typeof input === 'object') {\n let converted;\n if (has(input, ['r', 'g', 'b'])) converted = HSVtoRGB(color);else if (has(input, ['h', 's', 'l'])) converted = HSVtoHSL(color);else if (has(input, ['h', 's', 'v'])) converted = color;\n return stripAlpha(converted, !has(input, ['a']) && color.a === 1);\n }\n return color;\n}\nexport function hasAlpha(color) {\n if (!color) return false;\n if (typeof color === 'string') {\n return color.length > 7;\n }\n if (typeof color === 'object') {\n return has(color, ['a']) || has(color, ['alpha']);\n }\n return false;\n}\nexport const nullColor = {\n h: 0,\n s: 0,\n v: 0,\n a: 1\n};\nconst rgba = {\n inputProps: {\n type: 'number',\n min: 0\n },\n inputs: [{\n label: 'R',\n max: 255,\n step: 1,\n getValue: c => Math.round(c.r),\n getColor: (c, v) => ({\n ...c,\n r: Number(v)\n })\n }, {\n label: 'G',\n max: 255,\n step: 1,\n getValue: c => Math.round(c.g),\n getColor: (c, v) => ({\n ...c,\n g: Number(v)\n })\n }, {\n label: 'B',\n max: 255,\n step: 1,\n getValue: c => Math.round(c.b),\n getColor: (c, v) => ({\n ...c,\n b: Number(v)\n })\n }, {\n label: 'A',\n max: 1,\n step: 0.01,\n getValue: _ref => {\n let {\n a\n } = _ref;\n return a != null ? Math.round(a * 100) / 100 : 1;\n },\n getColor: (c, v) => ({\n ...c,\n a: Number(v)\n })\n }],\n to: HSVtoRGB,\n from: RGBtoHSV\n};\nconst rgb = {\n ...rgba,\n inputs: rgba.inputs?.slice(0, 3)\n};\nconst hsla = {\n inputProps: {\n type: 'number',\n min: 0\n },\n inputs: [{\n label: 'H',\n max: 360,\n step: 1,\n getValue: c => Math.round(c.h),\n getColor: (c, v) => ({\n ...c,\n h: Number(v)\n })\n }, {\n label: 'S',\n max: 1,\n step: 0.01,\n getValue: c => Math.round(c.s * 100) / 100,\n getColor: (c, v) => ({\n ...c,\n s: Number(v)\n })\n }, {\n label: 'L',\n max: 1,\n step: 0.01,\n getValue: c => Math.round(c.l * 100) / 100,\n getColor: (c, v) => ({\n ...c,\n l: Number(v)\n })\n }, {\n label: 'A',\n max: 1,\n step: 0.01,\n getValue: _ref2 => {\n let {\n a\n } = _ref2;\n return a != null ? Math.round(a * 100) / 100 : 1;\n },\n getColor: (c, v) => ({\n ...c,\n a: Number(v)\n })\n }],\n to: HSVtoHSL,\n from: HSLtoHSV\n};\nconst hsl = {\n ...hsla,\n inputs: hsla.inputs.slice(0, 3)\n};\nconst hexa = {\n inputProps: {\n type: 'text'\n },\n inputs: [{\n label: 'HEXA',\n getValue: c => c,\n getColor: (c, v) => v\n }],\n to: HSVtoHex,\n from: HexToHSV\n};\nconst hex = {\n ...hexa,\n inputs: [{\n label: 'HEX',\n getValue: c => c.slice(0, 7),\n getColor: (c, v) => v\n }]\n};\nexport const modes = {\n rgb,\n rgba,\n hsl,\n hsla,\n hex,\n hexa\n};\n//# sourceMappingURL=index.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VColorPickerEdit.css\";\n\n// Components\nimport { VBtn } from \"../VBtn/index.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { modes, nullColor } from \"./util/index.mjs\";\nimport { defineComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nconst VColorPickerInput = _ref => {\n let {\n label,\n ...rest\n } = _ref;\n return _createVNode(\"div\", {\n \"class\": \"v-color-picker-edit__input\"\n }, [_createVNode(\"input\", rest, null), _createVNode(\"span\", null, [label])]);\n};\nexport const makeVColorPickerEditProps = propsFactory({\n color: Object,\n disabled: Boolean,\n mode: {\n type: String,\n default: 'rgba',\n validator: v => Object.keys(modes).includes(v)\n },\n modes: {\n type: Array,\n default: () => Object.keys(modes),\n validator: v => Array.isArray(v) && v.every(m => Object.keys(modes).includes(m))\n },\n ...makeComponentProps()\n}, 'VColorPickerEdit');\nexport const VColorPickerEdit = defineComponent({\n name: 'VColorPickerEdit',\n props: makeVColorPickerEditProps(),\n emits: {\n 'update:color': color => true,\n 'update:mode': mode => true\n },\n setup(props, _ref2) {\n let {\n emit\n } = _ref2;\n const enabledModes = computed(() => {\n return props.modes.map(key => ({\n ...modes[key],\n name: key\n }));\n });\n const inputs = computed(() => {\n const mode = enabledModes.value.find(m => m.name === props.mode);\n if (!mode) return [];\n const color = props.color ? mode.to(props.color) : null;\n return mode.inputs?.map(_ref3 => {\n let {\n getValue,\n getColor,\n ...inputProps\n } = _ref3;\n return {\n ...mode.inputProps,\n ...inputProps,\n disabled: props.disabled,\n value: color && getValue(color),\n onChange: e => {\n const target = e.target;\n if (!target) return;\n emit('update:color', mode.from(getColor(color ?? mode.to(nullColor), target.value)));\n }\n };\n });\n });\n useRender(() => _createVNode(\"div\", {\n \"class\": ['v-color-picker-edit', props.class],\n \"style\": props.style\n }, [inputs.value?.map(props => _createVNode(VColorPickerInput, props, null)), enabledModes.value.length > 1 && _createVNode(VBtn, {\n \"icon\": \"$unfold\",\n \"size\": \"x-small\",\n \"variant\": \"plain\",\n \"onClick\": () => {\n const mi = enabledModes.value.findIndex(m => m.name === props.mode);\n emit('update:mode', enabledModes.value[(mi + 1) % enabledModes.value.length].name);\n }\n }, null)]));\n return {};\n }\n});\n//# sourceMappingURL=VColorPickerEdit.mjs.map","/* eslint-disable max-statements */\n// Composables\nimport { makeElevationProps } from \"../../composables/elevation.mjs\";\nimport { useRtl } from \"../../composables/locale.mjs\";\nimport { makeRoundedProps } from \"../../composables/rounded.mjs\"; // Utilities\nimport { computed, nextTick, provide, ref, shallowRef, toRef } from 'vue';\nimport { clamp, createRange, getDecimals, propsFactory } from \"../../util/index.mjs\"; // Types\nexport const VSliderSymbol = Symbol.for('vuetify:v-slider');\nexport function getOffset(e, el, direction) {\n const vertical = direction === 'vertical';\n const rect = el.getBoundingClientRect();\n const touch = 'touches' in e ? e.touches[0] : e;\n return vertical ? touch.clientY - (rect.top + rect.height / 2) : touch.clientX - (rect.left + rect.width / 2);\n}\nfunction getPosition(e, position) {\n if ('touches' in e && e.touches.length) return e.touches[0][position];else if ('changedTouches' in e && e.changedTouches.length) return e.changedTouches[0][position];else return e[position];\n}\nexport const makeSliderProps = propsFactory({\n disabled: {\n type: Boolean,\n default: null\n },\n error: Boolean,\n readonly: {\n type: Boolean,\n default: null\n },\n max: {\n type: [Number, String],\n default: 100\n },\n min: {\n type: [Number, String],\n default: 0\n },\n step: {\n type: [Number, String],\n default: 0\n },\n thumbColor: String,\n thumbLabel: {\n type: [Boolean, String],\n default: undefined,\n validator: v => typeof v === 'boolean' || v === 'always'\n },\n thumbSize: {\n type: [Number, String],\n default: 20\n },\n showTicks: {\n type: [Boolean, String],\n default: false,\n validator: v => typeof v === 'boolean' || v === 'always'\n },\n ticks: {\n type: [Array, Object]\n },\n tickSize: {\n type: [Number, String],\n default: 2\n },\n color: String,\n trackColor: String,\n trackFillColor: String,\n trackSize: {\n type: [Number, String],\n default: 4\n },\n direction: {\n type: String,\n default: 'horizontal',\n validator: v => ['vertical', 'horizontal'].includes(v)\n },\n reverse: Boolean,\n ...makeRoundedProps(),\n ...makeElevationProps({\n elevation: 2\n }),\n ripple: {\n type: Boolean,\n default: true\n }\n}, 'Slider');\nexport const useSteps = props => {\n const min = computed(() => parseFloat(props.min));\n const max = computed(() => parseFloat(props.max));\n const step = computed(() => +props.step > 0 ? parseFloat(props.step) : 0);\n const decimals = computed(() => Math.max(getDecimals(step.value), getDecimals(min.value)));\n function roundValue(value) {\n value = parseFloat(value);\n if (step.value <= 0) return value;\n const clamped = clamp(value, min.value, max.value);\n const offset = min.value % step.value;\n const newValue = Math.round((clamped - offset) / step.value) * step.value + offset;\n return parseFloat(Math.min(newValue, max.value).toFixed(decimals.value));\n }\n return {\n min,\n max,\n step,\n decimals,\n roundValue\n };\n};\nexport const useSlider = _ref => {\n let {\n props,\n steps,\n onSliderStart,\n onSliderMove,\n onSliderEnd,\n getActiveThumb\n } = _ref;\n const {\n isRtl\n } = useRtl();\n const isReversed = toRef(props, 'reverse');\n const vertical = computed(() => props.direction === 'vertical');\n const indexFromEnd = computed(() => vertical.value !== isReversed.value);\n const {\n min,\n max,\n step,\n decimals,\n roundValue\n } = steps;\n const thumbSize = computed(() => parseInt(props.thumbSize, 10));\n const tickSize = computed(() => parseInt(props.tickSize, 10));\n const trackSize = computed(() => parseInt(props.trackSize, 10));\n const numTicks = computed(() => (max.value - min.value) / step.value);\n const disabled = toRef(props, 'disabled');\n const thumbColor = computed(() => props.error || props.disabled ? undefined : props.thumbColor ?? props.color);\n const trackColor = computed(() => props.error || props.disabled ? undefined : props.trackColor ?? props.color);\n const trackFillColor = computed(() => props.error || props.disabled ? undefined : props.trackFillColor ?? props.color);\n const mousePressed = shallowRef(false);\n const startOffset = shallowRef(0);\n const trackContainerRef = ref();\n const activeThumbRef = ref();\n function parseMouseMove(e) {\n const el = trackContainerRef.value?.$el;\n if (!el) return;\n const vertical = props.direction === 'vertical';\n const start = vertical ? 'top' : 'left';\n const length = vertical ? 'height' : 'width';\n const position = vertical ? 'clientY' : 'clientX';\n const {\n [start]: trackStart,\n [length]: trackLength\n } = el.getBoundingClientRect();\n const clickOffset = getPosition(e, position);\n\n // It is possible for left to be NaN, force to number\n let clickPos = Math.min(Math.max((clickOffset - trackStart - startOffset.value) / trackLength, 0), 1) || 0;\n if (vertical ? indexFromEnd.value : indexFromEnd.value !== isRtl.value) clickPos = 1 - clickPos;\n return roundValue(min.value + clickPos * (max.value - min.value));\n }\n const handleStop = e => {\n const value = parseMouseMove(e);\n if (value != null) {\n onSliderEnd({\n value\n });\n }\n mousePressed.value = false;\n startOffset.value = 0;\n };\n const handleStart = e => {\n const value = parseMouseMove(e);\n activeThumbRef.value = getActiveThumb(e);\n if (!activeThumbRef.value) return;\n mousePressed.value = true;\n if (activeThumbRef.value.contains(e.target)) {\n startOffset.value = getOffset(e, activeThumbRef.value, props.direction);\n } else {\n startOffset.value = 0;\n if (value != null) {\n onSliderMove({\n value\n });\n }\n }\n if (value != null) {\n onSliderStart({\n value\n });\n }\n nextTick(() => activeThumbRef.value?.focus());\n };\n const moveListenerOptions = {\n passive: true,\n capture: true\n };\n function onMouseMove(e) {\n const value = parseMouseMove(e);\n if (value != null) {\n onSliderMove({\n value\n });\n }\n }\n function onSliderMouseUp(e) {\n e.stopPropagation();\n e.preventDefault();\n handleStop(e);\n window.removeEventListener('mousemove', onMouseMove, moveListenerOptions);\n window.removeEventListener('mouseup', onSliderMouseUp);\n }\n function onSliderTouchend(e) {\n handleStop(e);\n window.removeEventListener('touchmove', onMouseMove, moveListenerOptions);\n e.target?.removeEventListener('touchend', onSliderTouchend);\n }\n function onSliderTouchstart(e) {\n handleStart(e);\n window.addEventListener('touchmove', onMouseMove, moveListenerOptions);\n e.target?.addEventListener('touchend', onSliderTouchend, {\n passive: false\n });\n }\n function onSliderMousedown(e) {\n if (e.button !== 0) return;\n e.preventDefault();\n handleStart(e);\n window.addEventListener('mousemove', onMouseMove, moveListenerOptions);\n window.addEventListener('mouseup', onSliderMouseUp, {\n passive: false\n });\n }\n const position = val => {\n const percentage = (val - min.value) / (max.value - min.value) * 100;\n return clamp(isNaN(percentage) ? 0 : percentage, 0, 100);\n };\n const showTicks = toRef(props, 'showTicks');\n const parsedTicks = computed(() => {\n if (!showTicks.value) return [];\n if (!props.ticks) {\n return numTicks.value !== Infinity ? createRange(numTicks.value + 1).map(t => {\n const value = min.value + t * step.value;\n return {\n value,\n position: position(value)\n };\n }) : [];\n }\n if (Array.isArray(props.ticks)) return props.ticks.map(t => ({\n value: t,\n position: position(t),\n label: t.toString()\n }));\n return Object.keys(props.ticks).map(key => ({\n value: parseFloat(key),\n position: position(parseFloat(key)),\n label: props.ticks[key]\n }));\n });\n const hasLabels = computed(() => parsedTicks.value.some(_ref2 => {\n let {\n label\n } = _ref2;\n return !!label;\n }));\n const data = {\n activeThumbRef,\n color: toRef(props, 'color'),\n decimals,\n disabled,\n direction: toRef(props, 'direction'),\n elevation: toRef(props, 'elevation'),\n hasLabels,\n isReversed,\n indexFromEnd,\n min,\n max,\n mousePressed,\n numTicks,\n onSliderMousedown,\n onSliderTouchstart,\n parsedTicks,\n parseMouseMove,\n position,\n readonly: toRef(props, 'readonly'),\n rounded: toRef(props, 'rounded'),\n roundValue,\n showTicks,\n startOffset,\n step,\n thumbSize,\n thumbColor,\n thumbLabel: toRef(props, 'thumbLabel'),\n ticks: toRef(props, 'ticks'),\n tickSize,\n trackColor,\n trackContainerRef,\n trackFillColor,\n trackSize,\n vertical\n };\n provide(VSliderSymbol, data);\n return data;\n};\n//# sourceMappingURL=slider.mjs.map","import { createVNode as _createVNode, resolveDirective as _resolveDirective, withDirectives as _withDirectives, vShow as _vShow } from \"vue\";\n// Styles\nimport \"./VSliderThumb.css\";\n\n// Components\nimport { VSliderSymbol } from \"./slider.mjs\";\nimport { VScaleTransition } from \"../transitions/index.mjs\"; // Composables\nimport { useTextColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { useElevation } from \"../../composables/elevation.mjs\";\nimport { useRtl } from \"../../composables/locale.mjs\"; // Directives\nimport Ripple from \"../../directives/ripple/index.mjs\"; // Utilities\nimport { computed, inject } from 'vue';\nimport { convertToUnit, genericComponent, keyValues, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVSliderThumbProps = propsFactory({\n focused: Boolean,\n max: {\n type: Number,\n required: true\n },\n min: {\n type: Number,\n required: true\n },\n modelValue: {\n type: Number,\n required: true\n },\n position: {\n type: Number,\n required: true\n },\n ripple: {\n type: [Boolean, Object],\n default: true\n },\n name: String,\n ...makeComponentProps()\n}, 'VSliderThumb');\nexport const VSliderThumb = genericComponent()({\n name: 'VSliderThumb',\n directives: {\n Ripple\n },\n props: makeVSliderThumbProps(),\n emits: {\n 'update:modelValue': v => true\n },\n setup(props, _ref) {\n let {\n slots,\n emit\n } = _ref;\n const slider = inject(VSliderSymbol);\n const {\n isRtl,\n rtlClasses\n } = useRtl();\n if (!slider) throw new Error('[Vuetify] v-slider-thumb must be used inside v-slider or v-range-slider');\n const {\n thumbColor,\n step,\n disabled,\n thumbSize,\n thumbLabel,\n direction,\n isReversed,\n vertical,\n readonly,\n elevation,\n mousePressed,\n decimals,\n indexFromEnd\n } = slider;\n const elevationProps = computed(() => !disabled.value ? elevation.value : undefined);\n const {\n elevationClasses\n } = useElevation(elevationProps);\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(thumbColor);\n const {\n pageup,\n pagedown,\n end,\n home,\n left,\n right,\n down,\n up\n } = keyValues;\n const relevantKeys = [pageup, pagedown, end, home, left, right, down, up];\n const multipliers = computed(() => {\n if (step.value) return [1, 2, 3];else return [1, 5, 10];\n });\n function parseKeydown(e, value) {\n if (!relevantKeys.includes(e.key)) return;\n e.preventDefault();\n const _step = step.value || 0.1;\n const steps = (props.max - props.min) / _step;\n if ([left, right, down, up].includes(e.key)) {\n const increase = vertical.value ? [isRtl.value ? left : right, isReversed.value ? down : up] : indexFromEnd.value !== isRtl.value ? [left, up] : [right, up];\n const direction = increase.includes(e.key) ? 1 : -1;\n const multiplier = e.shiftKey ? 2 : e.ctrlKey ? 1 : 0;\n value = value + direction * _step * multipliers.value[multiplier];\n } else if (e.key === home) {\n value = props.min;\n } else if (e.key === end) {\n value = props.max;\n } else {\n const direction = e.key === pagedown ? 1 : -1;\n value = value - direction * _step * (steps > 100 ? steps / 10 : 10);\n }\n return Math.max(props.min, Math.min(props.max, value));\n }\n function onKeydown(e) {\n const newValue = parseKeydown(e, props.modelValue);\n newValue != null && emit('update:modelValue', newValue);\n }\n useRender(() => {\n const positionPercentage = convertToUnit(indexFromEnd.value ? 100 - props.position : props.position, '%');\n return _createVNode(\"div\", {\n \"class\": ['v-slider-thumb', {\n 'v-slider-thumb--focused': props.focused,\n 'v-slider-thumb--pressed': props.focused && mousePressed.value\n }, props.class, rtlClasses.value],\n \"style\": [{\n '--v-slider-thumb-position': positionPercentage,\n '--v-slider-thumb-size': convertToUnit(thumbSize.value)\n }, props.style],\n \"role\": \"slider\",\n \"tabindex\": disabled.value ? -1 : 0,\n \"aria-label\": props.name,\n \"aria-valuemin\": props.min,\n \"aria-valuemax\": props.max,\n \"aria-valuenow\": props.modelValue,\n \"aria-readonly\": !!readonly.value,\n \"aria-orientation\": direction.value,\n \"onKeydown\": !readonly.value ? onKeydown : undefined\n }, [_createVNode(\"div\", {\n \"class\": ['v-slider-thumb__surface', textColorClasses.value, elevationClasses.value],\n \"style\": {\n ...textColorStyles.value\n }\n }, null), _withDirectives(_createVNode(\"div\", {\n \"class\": ['v-slider-thumb__ripple', textColorClasses.value],\n \"style\": textColorStyles.value\n }, null), [[_resolveDirective(\"ripple\"), props.ripple, null, {\n circle: true,\n center: true\n }]]), _createVNode(VScaleTransition, {\n \"origin\": \"bottom center\"\n }, {\n default: () => [_withDirectives(_createVNode(\"div\", {\n \"class\": \"v-slider-thumb__label-container\"\n }, [_createVNode(\"div\", {\n \"class\": ['v-slider-thumb__label']\n }, [_createVNode(\"div\", null, [slots['thumb-label']?.({\n modelValue: props.modelValue\n }) ?? props.modelValue.toFixed(step.value ? decimals.value : 1)])])]), [[_vShow, thumbLabel.value && props.focused || thumbLabel.value === 'always']])]\n })]);\n });\n return {};\n }\n});\n//# sourceMappingURL=VSliderThumb.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VSliderTrack.css\";\n\n// Components\nimport { VSliderSymbol } from \"./slider.mjs\"; // Composables\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { useRounded } from \"../../composables/rounded.mjs\"; // Utilities\nimport { computed, inject } from 'vue';\nimport { convertToUnit, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVSliderTrackProps = propsFactory({\n start: {\n type: Number,\n required: true\n },\n stop: {\n type: Number,\n required: true\n },\n ...makeComponentProps()\n}, 'VSliderTrack');\nexport const VSliderTrack = genericComponent()({\n name: 'VSliderTrack',\n props: makeVSliderTrackProps(),\n emits: {},\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const slider = inject(VSliderSymbol);\n if (!slider) throw new Error('[Vuetify] v-slider-track must be inside v-slider or v-range-slider');\n const {\n color,\n parsedTicks,\n rounded,\n showTicks,\n tickSize,\n trackColor,\n trackFillColor,\n trackSize,\n vertical,\n min,\n max,\n indexFromEnd\n } = slider;\n const {\n roundedClasses\n } = useRounded(rounded);\n const {\n backgroundColorClasses: trackFillColorClasses,\n backgroundColorStyles: trackFillColorStyles\n } = useBackgroundColor(trackFillColor);\n const {\n backgroundColorClasses: trackColorClasses,\n backgroundColorStyles: trackColorStyles\n } = useBackgroundColor(trackColor);\n const startDir = computed(() => `inset-${vertical.value ? 'block' : 'inline'}-${indexFromEnd.value ? 'end' : 'start'}`);\n const endDir = computed(() => vertical.value ? 'height' : 'width');\n const backgroundStyles = computed(() => {\n return {\n [startDir.value]: '0%',\n [endDir.value]: '100%'\n };\n });\n const trackFillWidth = computed(() => props.stop - props.start);\n const trackFillStyles = computed(() => {\n return {\n [startDir.value]: convertToUnit(props.start, '%'),\n [endDir.value]: convertToUnit(trackFillWidth.value, '%')\n };\n });\n const computedTicks = computed(() => {\n if (!showTicks.value) return [];\n const ticks = vertical.value ? parsedTicks.value.slice().reverse() : parsedTicks.value;\n return ticks.map((tick, index) => {\n const directionValue = tick.value !== min.value && tick.value !== max.value ? convertToUnit(tick.position, '%') : undefined;\n return _createVNode(\"div\", {\n \"key\": tick.value,\n \"class\": ['v-slider-track__tick', {\n 'v-slider-track__tick--filled': tick.position >= props.start && tick.position <= props.stop,\n 'v-slider-track__tick--first': tick.value === min.value,\n 'v-slider-track__tick--last': tick.value === max.value\n }],\n \"style\": {\n [startDir.value]: directionValue\n }\n }, [(tick.label || slots['tick-label']) && _createVNode(\"div\", {\n \"class\": \"v-slider-track__tick-label\"\n }, [slots['tick-label']?.({\n tick,\n index\n }) ?? tick.label])]);\n });\n });\n useRender(() => {\n return _createVNode(\"div\", {\n \"class\": ['v-slider-track', roundedClasses.value, props.class],\n \"style\": [{\n '--v-slider-track-size': convertToUnit(trackSize.value),\n '--v-slider-tick-size': convertToUnit(tickSize.value)\n }, props.style]\n }, [_createVNode(\"div\", {\n \"class\": ['v-slider-track__background', trackColorClasses.value, {\n 'v-slider-track__background--opacity': !!color.value || !trackFillColor.value\n }],\n \"style\": {\n ...backgroundStyles.value,\n ...trackColorStyles.value\n }\n }, null), _createVNode(\"div\", {\n \"class\": ['v-slider-track__fill', trackFillColorClasses.value],\n \"style\": {\n ...trackFillStyles.value,\n ...trackFillColorStyles.value\n }\n }, null), showTicks.value && _createVNode(\"div\", {\n \"class\": ['v-slider-track__ticks', {\n 'v-slider-track__ticks--always-show': showTicks.value === 'always'\n }]\n }, [computedTicks.value])]);\n });\n return {};\n }\n});\n//# sourceMappingURL=VSliderTrack.mjs.map","import { Fragment as _Fragment, createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\n// Styles\nimport \"./VSlider.css\";\n\n// Components\nimport { VSliderThumb } from \"./VSliderThumb.mjs\";\nimport { VSliderTrack } from \"./VSliderTrack.mjs\";\nimport { makeVInputProps, VInput } from \"../VInput/VInput.mjs\";\nimport { VLabel } from \"../VLabel/index.mjs\"; // Composables\nimport { makeSliderProps, useSlider, useSteps } from \"./slider.mjs\";\nimport { makeFocusProps, useFocus } from \"../../composables/focus.mjs\";\nimport { useRtl } from \"../../composables/locale.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed, ref } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVSliderProps = propsFactory({\n ...makeFocusProps(),\n ...makeSliderProps(),\n ...makeVInputProps(),\n modelValue: {\n type: [Number, String],\n default: 0\n }\n}, 'VSlider');\nexport const VSlider = genericComponent()({\n name: 'VSlider',\n props: makeVSliderProps(),\n emits: {\n 'update:focused': value => true,\n 'update:modelValue': v => true,\n start: value => true,\n end: value => true\n },\n setup(props, _ref) {\n let {\n slots,\n emit\n } = _ref;\n const thumbContainerRef = ref();\n const {\n rtlClasses\n } = useRtl();\n const steps = useSteps(props);\n const model = useProxiedModel(props, 'modelValue', undefined, value => {\n return steps.roundValue(value == null ? steps.min.value : value);\n });\n const {\n min,\n max,\n mousePressed,\n roundValue,\n onSliderMousedown,\n onSliderTouchstart,\n trackContainerRef,\n position,\n hasLabels,\n readonly\n } = useSlider({\n props,\n steps,\n onSliderStart: () => {\n emit('start', model.value);\n },\n onSliderEnd: _ref2 => {\n let {\n value\n } = _ref2;\n const roundedValue = roundValue(value);\n model.value = roundedValue;\n emit('end', roundedValue);\n },\n onSliderMove: _ref3 => {\n let {\n value\n } = _ref3;\n return model.value = roundValue(value);\n },\n getActiveThumb: () => thumbContainerRef.value?.$el\n });\n const {\n isFocused,\n focus,\n blur\n } = useFocus(props);\n const trackStop = computed(() => position(model.value));\n useRender(() => {\n const inputProps = VInput.filterProps(props);\n const hasPrepend = !!(props.label || slots.label || slots.prepend);\n return _createVNode(VInput, _mergeProps({\n \"class\": ['v-slider', {\n 'v-slider--has-labels': !!slots['tick-label'] || hasLabels.value,\n 'v-slider--focused': isFocused.value,\n 'v-slider--pressed': mousePressed.value,\n 'v-slider--disabled': props.disabled\n }, rtlClasses.value, props.class],\n \"style\": props.style\n }, inputProps, {\n \"focused\": isFocused.value\n }), {\n ...slots,\n prepend: hasPrepend ? slotProps => _createVNode(_Fragment, null, [slots.label?.(slotProps) ?? (props.label ? _createVNode(VLabel, {\n \"id\": slotProps.id.value,\n \"class\": \"v-slider__label\",\n \"text\": props.label\n }, null) : undefined), slots.prepend?.(slotProps)]) : undefined,\n default: _ref4 => {\n let {\n id,\n messagesId\n } = _ref4;\n return _createVNode(\"div\", {\n \"class\": \"v-slider__container\",\n \"onMousedown\": !readonly.value ? onSliderMousedown : undefined,\n \"onTouchstartPassive\": !readonly.value ? onSliderTouchstart : undefined\n }, [_createVNode(\"input\", {\n \"id\": id.value,\n \"name\": props.name || id.value,\n \"disabled\": !!props.disabled,\n \"readonly\": !!props.readonly,\n \"tabindex\": \"-1\",\n \"value\": model.value\n }, null), _createVNode(VSliderTrack, {\n \"ref\": trackContainerRef,\n \"start\": 0,\n \"stop\": trackStop.value\n }, {\n 'tick-label': slots['tick-label']\n }), _createVNode(VSliderThumb, {\n \"ref\": thumbContainerRef,\n \"aria-describedby\": messagesId.value,\n \"focused\": isFocused.value,\n \"min\": min.value,\n \"max\": max.value,\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": v => model.value = v,\n \"position\": trackStop.value,\n \"elevation\": props.elevation,\n \"onFocus\": focus,\n \"onBlur\": blur,\n \"ripple\": props.ripple,\n \"name\": props.name\n }, {\n 'thumb-label': slots['thumb-label']\n })]);\n }\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VSlider.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VColorPickerPreview.css\";\n\n// Components\nimport { VBtn } from \"../VBtn/index.mjs\";\nimport { VSlider } from \"../VSlider/index.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\"; // Utilities\nimport { onUnmounted } from 'vue';\nimport { nullColor } from \"./util/index.mjs\";\nimport { defineComponent, HSVtoCSS, parseColor, propsFactory, RGBtoHSV, SUPPORTS_EYE_DROPPER, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVColorPickerPreviewProps = propsFactory({\n color: {\n type: Object\n },\n disabled: Boolean,\n hideAlpha: Boolean,\n ...makeComponentProps()\n}, 'VColorPickerPreview');\nexport const VColorPickerPreview = defineComponent({\n name: 'VColorPickerPreview',\n props: makeVColorPickerPreviewProps(),\n emits: {\n 'update:color': color => true\n },\n setup(props, _ref) {\n let {\n emit\n } = _ref;\n const abortController = new AbortController();\n onUnmounted(() => abortController.abort());\n async function openEyeDropper() {\n if (!SUPPORTS_EYE_DROPPER) return;\n const eyeDropper = new window.EyeDropper();\n try {\n const result = await eyeDropper.open({\n signal: abortController.signal\n });\n const colorHexValue = RGBtoHSV(parseColor(result.sRGBHex));\n emit('update:color', {\n ...(props.color ?? nullColor),\n ...colorHexValue\n });\n } catch (e) {}\n }\n useRender(() => _createVNode(\"div\", {\n \"class\": ['v-color-picker-preview', {\n 'v-color-picker-preview--hide-alpha': props.hideAlpha\n }, props.class],\n \"style\": props.style\n }, [SUPPORTS_EYE_DROPPER && _createVNode(\"div\", {\n \"class\": \"v-color-picker-preview__eye-dropper\",\n \"key\": \"eyeDropper\"\n }, [_createVNode(VBtn, {\n \"onClick\": openEyeDropper,\n \"icon\": \"$eyeDropper\",\n \"variant\": \"plain\",\n \"density\": \"comfortable\"\n }, null)]), _createVNode(\"div\", {\n \"class\": \"v-color-picker-preview__dot\"\n }, [_createVNode(\"div\", {\n \"style\": {\n background: HSVtoCSS(props.color ?? nullColor)\n }\n }, null)]), _createVNode(\"div\", {\n \"class\": \"v-color-picker-preview__sliders\"\n }, [_createVNode(VSlider, {\n \"class\": \"v-color-picker-preview__track v-color-picker-preview__hue\",\n \"modelValue\": props.color?.h,\n \"onUpdate:modelValue\": h => emit('update:color', {\n ...(props.color ?? nullColor),\n h\n }),\n \"step\": 0,\n \"min\": 0,\n \"max\": 360,\n \"disabled\": props.disabled,\n \"thumbSize\": 14,\n \"trackSize\": 8,\n \"trackFillColor\": \"white\",\n \"hideDetails\": true\n }, null), !props.hideAlpha && _createVNode(VSlider, {\n \"class\": \"v-color-picker-preview__track v-color-picker-preview__alpha\",\n \"modelValue\": props.color?.a ?? 1,\n \"onUpdate:modelValue\": a => emit('update:color', {\n ...(props.color ?? nullColor),\n a\n }),\n \"step\": 1 / 256,\n \"min\": 0,\n \"max\": 1,\n \"disabled\": props.disabled,\n \"thumbSize\": 14,\n \"trackSize\": 8,\n \"trackFillColor\": \"white\",\n \"hideDetails\": true\n }, null)])]));\n return {};\n }\n});\n//# sourceMappingURL=VColorPickerPreview.mjs.map","export const red = {\n base: '#f44336',\n lighten5: '#ffebee',\n lighten4: '#ffcdd2',\n lighten3: '#ef9a9a',\n lighten2: '#e57373',\n lighten1: '#ef5350',\n darken1: '#e53935',\n darken2: '#d32f2f',\n darken3: '#c62828',\n darken4: '#b71c1c',\n accent1: '#ff8a80',\n accent2: '#ff5252',\n accent3: '#ff1744',\n accent4: '#d50000'\n};\nexport const pink = {\n base: '#e91e63',\n lighten5: '#fce4ec',\n lighten4: '#f8bbd0',\n lighten3: '#f48fb1',\n lighten2: '#f06292',\n lighten1: '#ec407a',\n darken1: '#d81b60',\n darken2: '#c2185b',\n darken3: '#ad1457',\n darken4: '#880e4f',\n accent1: '#ff80ab',\n accent2: '#ff4081',\n accent3: '#f50057',\n accent4: '#c51162'\n};\nexport const purple = {\n base: '#9c27b0',\n lighten5: '#f3e5f5',\n lighten4: '#e1bee7',\n lighten3: '#ce93d8',\n lighten2: '#ba68c8',\n lighten1: '#ab47bc',\n darken1: '#8e24aa',\n darken2: '#7b1fa2',\n darken3: '#6a1b9a',\n darken4: '#4a148c',\n accent1: '#ea80fc',\n accent2: '#e040fb',\n accent3: '#d500f9',\n accent4: '#aa00ff'\n};\nexport const deepPurple = {\n base: '#673ab7',\n lighten5: '#ede7f6',\n lighten4: '#d1c4e9',\n lighten3: '#b39ddb',\n lighten2: '#9575cd',\n lighten1: '#7e57c2',\n darken1: '#5e35b1',\n darken2: '#512da8',\n darken3: '#4527a0',\n darken4: '#311b92',\n accent1: '#b388ff',\n accent2: '#7c4dff',\n accent3: '#651fff',\n accent4: '#6200ea'\n};\nexport const indigo = {\n base: '#3f51b5',\n lighten5: '#e8eaf6',\n lighten4: '#c5cae9',\n lighten3: '#9fa8da',\n lighten2: '#7986cb',\n lighten1: '#5c6bc0',\n darken1: '#3949ab',\n darken2: '#303f9f',\n darken3: '#283593',\n darken4: '#1a237e',\n accent1: '#8c9eff',\n accent2: '#536dfe',\n accent3: '#3d5afe',\n accent4: '#304ffe'\n};\nexport const blue = {\n base: '#2196f3',\n lighten5: '#e3f2fd',\n lighten4: '#bbdefb',\n lighten3: '#90caf9',\n lighten2: '#64b5f6',\n lighten1: '#42a5f5',\n darken1: '#1e88e5',\n darken2: '#1976d2',\n darken3: '#1565c0',\n darken4: '#0d47a1',\n accent1: '#82b1ff',\n accent2: '#448aff',\n accent3: '#2979ff',\n accent4: '#2962ff'\n};\nexport const lightBlue = {\n base: '#03a9f4',\n lighten5: '#e1f5fe',\n lighten4: '#b3e5fc',\n lighten3: '#81d4fa',\n lighten2: '#4fc3f7',\n lighten1: '#29b6f6',\n darken1: '#039be5',\n darken2: '#0288d1',\n darken3: '#0277bd',\n darken4: '#01579b',\n accent1: '#80d8ff',\n accent2: '#40c4ff',\n accent3: '#00b0ff',\n accent4: '#0091ea'\n};\nexport const cyan = {\n base: '#00bcd4',\n lighten5: '#e0f7fa',\n lighten4: '#b2ebf2',\n lighten3: '#80deea',\n lighten2: '#4dd0e1',\n lighten1: '#26c6da',\n darken1: '#00acc1',\n darken2: '#0097a7',\n darken3: '#00838f',\n darken4: '#006064',\n accent1: '#84ffff',\n accent2: '#18ffff',\n accent3: '#00e5ff',\n accent4: '#00b8d4'\n};\nexport const teal = {\n base: '#009688',\n lighten5: '#e0f2f1',\n lighten4: '#b2dfdb',\n lighten3: '#80cbc4',\n lighten2: '#4db6ac',\n lighten1: '#26a69a',\n darken1: '#00897b',\n darken2: '#00796b',\n darken3: '#00695c',\n darken4: '#004d40',\n accent1: '#a7ffeb',\n accent2: '#64ffda',\n accent3: '#1de9b6',\n accent4: '#00bfa5'\n};\nexport const green = {\n base: '#4caf50',\n lighten5: '#e8f5e9',\n lighten4: '#c8e6c9',\n lighten3: '#a5d6a7',\n lighten2: '#81c784',\n lighten1: '#66bb6a',\n darken1: '#43a047',\n darken2: '#388e3c',\n darken3: '#2e7d32',\n darken4: '#1b5e20',\n accent1: '#b9f6ca',\n accent2: '#69f0ae',\n accent3: '#00e676',\n accent4: '#00c853'\n};\nexport const lightGreen = {\n base: '#8bc34a',\n lighten5: '#f1f8e9',\n lighten4: '#dcedc8',\n lighten3: '#c5e1a5',\n lighten2: '#aed581',\n lighten1: '#9ccc65',\n darken1: '#7cb342',\n darken2: '#689f38',\n darken3: '#558b2f',\n darken4: '#33691e',\n accent1: '#ccff90',\n accent2: '#b2ff59',\n accent3: '#76ff03',\n accent4: '#64dd17'\n};\nexport const lime = {\n base: '#cddc39',\n lighten5: '#f9fbe7',\n lighten4: '#f0f4c3',\n lighten3: '#e6ee9c',\n lighten2: '#dce775',\n lighten1: '#d4e157',\n darken1: '#c0ca33',\n darken2: '#afb42b',\n darken3: '#9e9d24',\n darken4: '#827717',\n accent1: '#f4ff81',\n accent2: '#eeff41',\n accent3: '#c6ff00',\n accent4: '#aeea00'\n};\nexport const yellow = {\n base: '#ffeb3b',\n lighten5: '#fffde7',\n lighten4: '#fff9c4',\n lighten3: '#fff59d',\n lighten2: '#fff176',\n lighten1: '#ffee58',\n darken1: '#fdd835',\n darken2: '#fbc02d',\n darken3: '#f9a825',\n darken4: '#f57f17',\n accent1: '#ffff8d',\n accent2: '#ffff00',\n accent3: '#ffea00',\n accent4: '#ffd600'\n};\nexport const amber = {\n base: '#ffc107',\n lighten5: '#fff8e1',\n lighten4: '#ffecb3',\n lighten3: '#ffe082',\n lighten2: '#ffd54f',\n lighten1: '#ffca28',\n darken1: '#ffb300',\n darken2: '#ffa000',\n darken3: '#ff8f00',\n darken4: '#ff6f00',\n accent1: '#ffe57f',\n accent2: '#ffd740',\n accent3: '#ffc400',\n accent4: '#ffab00'\n};\nexport const orange = {\n base: '#ff9800',\n lighten5: '#fff3e0',\n lighten4: '#ffe0b2',\n lighten3: '#ffcc80',\n lighten2: '#ffb74d',\n lighten1: '#ffa726',\n darken1: '#fb8c00',\n darken2: '#f57c00',\n darken3: '#ef6c00',\n darken4: '#e65100',\n accent1: '#ffd180',\n accent2: '#ffab40',\n accent3: '#ff9100',\n accent4: '#ff6d00'\n};\nexport const deepOrange = {\n base: '#ff5722',\n lighten5: '#fbe9e7',\n lighten4: '#ffccbc',\n lighten3: '#ffab91',\n lighten2: '#ff8a65',\n lighten1: '#ff7043',\n darken1: '#f4511e',\n darken2: '#e64a19',\n darken3: '#d84315',\n darken4: '#bf360c',\n accent1: '#ff9e80',\n accent2: '#ff6e40',\n accent3: '#ff3d00',\n accent4: '#dd2c00'\n};\nexport const brown = {\n base: '#795548',\n lighten5: '#efebe9',\n lighten4: '#d7ccc8',\n lighten3: '#bcaaa4',\n lighten2: '#a1887f',\n lighten1: '#8d6e63',\n darken1: '#6d4c41',\n darken2: '#5d4037',\n darken3: '#4e342e',\n darken4: '#3e2723'\n};\nexport const blueGrey = {\n base: '#607d8b',\n lighten5: '#eceff1',\n lighten4: '#cfd8dc',\n lighten3: '#b0bec5',\n lighten2: '#90a4ae',\n lighten1: '#78909c',\n darken1: '#546e7a',\n darken2: '#455a64',\n darken3: '#37474f',\n darken4: '#263238'\n};\nexport const grey = {\n base: '#9e9e9e',\n lighten5: '#fafafa',\n lighten4: '#f5f5f5',\n lighten3: '#eeeeee',\n lighten2: '#e0e0e0',\n lighten1: '#bdbdbd',\n darken1: '#757575',\n darken2: '#616161',\n darken3: '#424242',\n darken4: '#212121'\n};\nexport const shades = {\n black: '#000000',\n white: '#ffffff',\n transparent: '#ffffff00'\n};\nexport default {\n red,\n pink,\n purple,\n deepPurple,\n indigo,\n blue,\n lightBlue,\n cyan,\n teal,\n green,\n lightGreen,\n lime,\n yellow,\n amber,\n orange,\n deepOrange,\n brown,\n blueGrey,\n grey,\n shades\n};\n//# sourceMappingURL=colors.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VColorPickerSwatches.css\";\n\n// Components\nimport { VIcon } from \"../VIcon/index.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\"; // Utilities\nimport { convertToUnit, deepEqual, defineComponent, getContrast, parseColor, propsFactory, RGBtoCSS, RGBtoHSV, useRender } from \"../../util/index.mjs\";\nimport colors from \"../../util/colors.mjs\"; // Types\nexport const makeVColorPickerSwatchesProps = propsFactory({\n swatches: {\n type: Array,\n default: () => parseDefaultColors(colors)\n },\n disabled: Boolean,\n color: Object,\n maxHeight: [Number, String],\n ...makeComponentProps()\n}, 'VColorPickerSwatches');\nfunction parseDefaultColors(colors) {\n return Object.keys(colors).map(key => {\n const color = colors[key];\n return color.base ? [color.base, color.darken4, color.darken3, color.darken2, color.darken1, color.lighten1, color.lighten2, color.lighten3, color.lighten4, color.lighten5] : [color.black, color.white, color.transparent];\n });\n}\nexport const VColorPickerSwatches = defineComponent({\n name: 'VColorPickerSwatches',\n props: makeVColorPickerSwatchesProps(),\n emits: {\n 'update:color': color => true\n },\n setup(props, _ref) {\n let {\n emit\n } = _ref;\n useRender(() => _createVNode(\"div\", {\n \"class\": ['v-color-picker-swatches', props.class],\n \"style\": [{\n maxHeight: convertToUnit(props.maxHeight)\n }, props.style]\n }, [_createVNode(\"div\", null, [props.swatches.map(swatch => _createVNode(\"div\", {\n \"class\": \"v-color-picker-swatches__swatch\"\n }, [swatch.map(color => {\n const rgba = parseColor(color);\n const hsva = RGBtoHSV(rgba);\n const background = RGBtoCSS(rgba);\n return _createVNode(\"div\", {\n \"class\": \"v-color-picker-swatches__color\",\n \"onClick\": () => hsva && emit('update:color', hsva)\n }, [_createVNode(\"div\", {\n \"style\": {\n background\n }\n }, [props.color && deepEqual(props.color, hsva) ? _createVNode(VIcon, {\n \"size\": \"x-small\",\n \"icon\": \"$success\",\n \"color\": getContrast(color, '#FFFFFF') > 2 ? 'white' : 'black'\n }, null) : undefined])]);\n })]))])]));\n return {};\n }\n});\n//# sourceMappingURL=VColorPickerSwatches.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VSheet.css\";\n\n// Composables\nimport { makeBorderProps, useBorder } from \"../../composables/border.mjs\";\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { makeLocationProps, useLocation } from \"../../composables/location.mjs\";\nimport { makePositionProps, usePosition } from \"../../composables/position.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { toRef } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVSheetProps = propsFactory({\n color: String,\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps()\n}, 'VSheet');\nexport const VSheet = genericComponent()({\n name: 'VSheet',\n props: makeVSheetProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(toRef(props, 'color'));\n const {\n borderClasses\n } = useBorder(props);\n const {\n dimensionStyles\n } = useDimension(props);\n const {\n elevationClasses\n } = useElevation(props);\n const {\n locationStyles\n } = useLocation(props);\n const {\n positionClasses\n } = usePosition(props);\n const {\n roundedClasses\n } = useRounded(props);\n useRender(() => _createVNode(props.tag, {\n \"class\": ['v-sheet', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, props.class],\n \"style\": [backgroundColorStyles.value, dimensionStyles.value, locationStyles.value, props.style]\n }, slots));\n return {};\n }\n});\n//# sourceMappingURL=VSheet.mjs.map","import { createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\n// Styles\nimport \"./VColorPicker.css\";\n\n// Components\nimport { VColorPickerCanvas } from \"./VColorPickerCanvas.mjs\";\nimport { VColorPickerEdit } from \"./VColorPickerEdit.mjs\";\nimport { VColorPickerPreview } from \"./VColorPickerPreview.mjs\";\nimport { VColorPickerSwatches } from \"./VColorPickerSwatches.mjs\";\nimport { makeVSheetProps, VSheet } from \"../VSheet/VSheet.mjs\"; // Composables\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { useRtl } from \"../../composables/locale.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed, onBeforeMount, ref, watch } from 'vue';\nimport { extractColor, modes, nullColor } from \"./util/index.mjs\";\nimport { consoleWarn, defineComponent, HSVtoCSS, omit, parseColor, propsFactory, RGBtoHSV, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVColorPickerProps = propsFactory({\n canvasHeight: {\n type: [String, Number],\n default: 150\n },\n disabled: Boolean,\n dotSize: {\n type: [Number, String],\n default: 10\n },\n hideCanvas: Boolean,\n hideSliders: Boolean,\n hideInputs: Boolean,\n mode: {\n type: String,\n default: 'rgba',\n validator: v => Object.keys(modes).includes(v)\n },\n modes: {\n type: Array,\n default: () => Object.keys(modes),\n validator: v => Array.isArray(v) && v.every(m => Object.keys(modes).includes(m))\n },\n showSwatches: Boolean,\n swatches: Array,\n swatchesMaxHeight: {\n type: [Number, String],\n default: 150\n },\n modelValue: {\n type: [Object, String]\n },\n ...omit(makeVSheetProps({\n width: 300\n }), ['height', 'location', 'minHeight', 'maxHeight', 'minWidth', 'maxWidth'])\n}, 'VColorPicker');\nexport const VColorPicker = defineComponent({\n name: 'VColorPicker',\n props: makeVColorPickerProps(),\n emits: {\n 'update:modelValue': color => true,\n 'update:mode': mode => true\n },\n setup(props) {\n const mode = useProxiedModel(props, 'mode');\n const hue = ref(null);\n const model = useProxiedModel(props, 'modelValue', undefined, v => {\n if (v == null || v === '') return null;\n let c;\n try {\n c = RGBtoHSV(parseColor(v));\n } catch (err) {\n consoleWarn(err);\n return null;\n }\n return c;\n }, v => {\n if (!v) return null;\n return extractColor(v, props.modelValue);\n });\n const currentColor = computed(() => {\n return model.value ? {\n ...model.value,\n h: hue.value ?? model.value.h\n } : null;\n });\n const {\n rtlClasses\n } = useRtl();\n let externalChange = true;\n watch(model, v => {\n if (!externalChange) {\n // prevent hue shift from rgb conversion inaccuracy\n externalChange = true;\n return;\n }\n if (!v) return;\n hue.value = v.h;\n }, {\n immediate: true\n });\n const updateColor = hsva => {\n externalChange = false;\n hue.value = hsva.h;\n model.value = hsva;\n };\n onBeforeMount(() => {\n if (!props.modes.includes(mode.value)) mode.value = props.modes[0];\n });\n provideDefaults({\n VSlider: {\n color: undefined,\n trackColor: undefined,\n trackFillColor: undefined\n }\n });\n useRender(() => {\n const sheetProps = VSheet.filterProps(props);\n return _createVNode(VSheet, _mergeProps({\n \"rounded\": props.rounded,\n \"elevation\": props.elevation,\n \"theme\": props.theme,\n \"class\": ['v-color-picker', rtlClasses.value, props.class],\n \"style\": [{\n '--v-color-picker-color-hsv': HSVtoCSS({\n ...(currentColor.value ?? nullColor),\n a: 1\n })\n }, props.style]\n }, sheetProps, {\n \"maxWidth\": props.width\n }), {\n default: () => [!props.hideCanvas && _createVNode(VColorPickerCanvas, {\n \"key\": \"canvas\",\n \"color\": currentColor.value,\n \"onUpdate:color\": updateColor,\n \"disabled\": props.disabled,\n \"dotSize\": props.dotSize,\n \"width\": props.width,\n \"height\": props.canvasHeight\n }, null), (!props.hideSliders || !props.hideInputs) && _createVNode(\"div\", {\n \"key\": \"controls\",\n \"class\": \"v-color-picker__controls\"\n }, [!props.hideSliders && _createVNode(VColorPickerPreview, {\n \"key\": \"preview\",\n \"color\": currentColor.value,\n \"onUpdate:color\": updateColor,\n \"hideAlpha\": !mode.value.endsWith('a'),\n \"disabled\": props.disabled\n }, null), !props.hideInputs && _createVNode(VColorPickerEdit, {\n \"key\": \"edit\",\n \"modes\": props.modes,\n \"mode\": mode.value,\n \"onUpdate:mode\": m => mode.value = m,\n \"color\": currentColor.value,\n \"onUpdate:color\": updateColor,\n \"disabled\": props.disabled\n }, null)]), props.showSwatches && _createVNode(VColorPickerSwatches, {\n \"key\": \"swatches\",\n \"color\": currentColor.value,\n \"onUpdate:color\": updateColor,\n \"maxHeight\": props.swatchesMaxHeight,\n \"swatches\": props.swatches,\n \"disabled\": props.disabled\n }, null)]\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VColorPicker.mjs.map","import { Fragment as _Fragment, createVNode as _createVNode, mergeProps as _mergeProps, createTextVNode as _createTextVNode } from \"vue\";\n// Styles\nimport \"./VCombobox.css\";\n\n// Components\nimport { VAvatar } from \"../VAvatar/index.mjs\";\nimport { VCheckboxBtn } from \"../VCheckbox/index.mjs\";\nimport { VChip } from \"../VChip/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\";\nimport { VList, VListItem } from \"../VList/index.mjs\";\nimport { VMenu } from \"../VMenu/index.mjs\";\nimport { makeSelectProps } from \"../VSelect/VSelect.mjs\";\nimport { VTextField } from \"../VTextField/index.mjs\";\nimport { makeVTextFieldProps } from \"../VTextField/VTextField.mjs\";\nimport { VVirtualScroll } from \"../VVirtualScroll/index.mjs\"; // Composables\nimport { useScrolling } from \"../VSelect/useScrolling.mjs\";\nimport { useTextColor } from \"../../composables/color.mjs\";\nimport { makeFilterProps, useFilter } from \"../../composables/filter.mjs\";\nimport { useForm } from \"../../composables/form.mjs\";\nimport { forwardRefs } from \"../../composables/forwardRefs.mjs\";\nimport { transformItem, useItems } from \"../../composables/list-items.mjs\";\nimport { useLocale } from \"../../composables/locale.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { makeTransitionProps } from \"../../composables/transition.mjs\"; // Utilities\nimport { computed, mergeProps, nextTick, ref, shallowRef, watch } from 'vue';\nimport { checkPrintable, deepEqual, ensureValidVNode, genericComponent, IN_BROWSER, isComposingIgnoreKey, noop, omit, propsFactory, useRender, wrapInArray } from \"../../util/index.mjs\"; // Types\nfunction highlightResult(text, matches, length) {\n if (matches == null) return text;\n if (Array.isArray(matches)) throw new Error('Multiple matches is not implemented');\n return typeof matches === 'number' && ~matches ? _createVNode(_Fragment, null, [_createVNode(\"span\", {\n \"class\": \"v-combobox__unmask\"\n }, [text.substr(0, matches)]), _createVNode(\"span\", {\n \"class\": \"v-combobox__mask\"\n }, [text.substr(matches, length)]), _createVNode(\"span\", {\n \"class\": \"v-combobox__unmask\"\n }, [text.substr(matches + length)])]) : text;\n}\nexport const makeVComboboxProps = propsFactory({\n autoSelectFirst: {\n type: [Boolean, String]\n },\n clearOnSelect: {\n type: Boolean,\n default: true\n },\n delimiters: Array,\n ...makeFilterProps({\n filterKeys: ['title']\n }),\n ...makeSelectProps({\n hideNoData: true,\n returnObject: true\n }),\n ...omit(makeVTextFieldProps({\n modelValue: null,\n role: 'combobox'\n }), ['validationValue', 'dirty', 'appendInnerIcon']),\n ...makeTransitionProps({\n transition: false\n })\n}, 'VCombobox');\nexport const VCombobox = genericComponent()({\n name: 'VCombobox',\n props: makeVComboboxProps(),\n emits: {\n 'update:focused': focused => true,\n 'update:modelValue': value => true,\n 'update:search': value => true,\n 'update:menu': value => true\n },\n setup(props, _ref) {\n let {\n emit,\n slots\n } = _ref;\n const {\n t\n } = useLocale();\n const vTextFieldRef = ref();\n const isFocused = shallowRef(false);\n const isPristine = shallowRef(true);\n const listHasFocus = shallowRef(false);\n const vMenuRef = ref();\n const vVirtualScrollRef = ref();\n const _menu = useProxiedModel(props, 'menu');\n const menu = computed({\n get: () => _menu.value,\n set: v => {\n if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return;\n _menu.value = v;\n }\n });\n const selectionIndex = shallowRef(-1);\n let cleared = false;\n const color = computed(() => vTextFieldRef.value?.color);\n const label = computed(() => menu.value ? props.closeText : props.openText);\n const {\n items,\n transformIn,\n transformOut\n } = useItems(props);\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(color);\n const model = useProxiedModel(props, 'modelValue', [], v => transformIn(wrapInArray(v)), v => {\n const transformed = transformOut(v);\n return props.multiple ? transformed : transformed[0] ?? null;\n });\n const form = useForm(props);\n const hasChips = computed(() => !!(props.chips || slots.chip));\n const hasSelectionSlot = computed(() => hasChips.value || !!slots.selection);\n const _search = shallowRef(!props.multiple && !hasSelectionSlot.value ? model.value[0]?.title ?? '' : '');\n const search = computed({\n get: () => {\n return _search.value;\n },\n set: val => {\n _search.value = val ?? '';\n if (!props.multiple && !hasSelectionSlot.value) {\n model.value = [transformItem(props, val)];\n }\n if (val && props.multiple && props.delimiters?.length) {\n const values = val.split(new RegExp(`(?:${props.delimiters.join('|')})+`));\n if (values.length > 1) {\n values.forEach(v => {\n v = v.trim();\n if (v) select(transformItem(props, v));\n });\n _search.value = '';\n }\n }\n if (!val) selectionIndex.value = -1;\n isPristine.value = !val;\n }\n });\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function' ? props.counterValue(model.value) : typeof props.counterValue === 'number' ? props.counterValue : props.multiple ? model.value.length : search.value.length;\n });\n watch(_search, value => {\n if (cleared) {\n // wait for clear to finish, VTextField sets _search to null\n // then search computed triggers and updates _search to ''\n nextTick(() => cleared = false);\n } else if (isFocused.value && !menu.value) {\n menu.value = true;\n }\n emit('update:search', value);\n });\n watch(model, value => {\n if (!props.multiple && !hasSelectionSlot.value) {\n _search.value = value[0]?.title ?? '';\n }\n });\n const {\n filteredItems,\n getMatches\n } = useFilter(props, items, () => isPristine.value ? '' : search.value);\n const displayItems = computed(() => {\n if (props.hideSelected) {\n return filteredItems.value.filter(filteredItem => !model.value.some(s => s.value === filteredItem.value));\n }\n return filteredItems.value;\n });\n const selectedValues = computed(() => model.value.map(selection => selection.value));\n const highlightFirst = computed(() => {\n const selectFirst = props.autoSelectFirst === true || props.autoSelectFirst === 'exact' && search.value === displayItems.value[0]?.title;\n return selectFirst && displayItems.value.length > 0 && !isPristine.value && !listHasFocus.value;\n });\n const menuDisabled = computed(() => props.hideNoData && !displayItems.value.length || form.isReadonly.value || form.isDisabled.value);\n const listRef = ref();\n const listEvents = useScrolling(listRef, vTextFieldRef);\n function onClear(e) {\n cleared = true;\n if (props.openOnClear) {\n menu.value = true;\n }\n }\n function onMousedownControl() {\n if (menuDisabled.value) return;\n menu.value = true;\n }\n function onMousedownMenuIcon(e) {\n if (menuDisabled.value) return;\n if (isFocused.value) {\n e.preventDefault();\n e.stopPropagation();\n }\n menu.value = !menu.value;\n }\n function onListKeydown(e) {\n if (e.key !== ' ' && checkPrintable(e)) {\n vTextFieldRef.value?.focus();\n }\n }\n // eslint-disable-next-line complexity\n function onKeydown(e) {\n if (isComposingIgnoreKey(e) || form.isReadonly.value) return;\n const selectionStart = vTextFieldRef.value.selectionStart;\n const length = model.value.length;\n if (['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {\n e.preventDefault();\n }\n if (['Enter', 'ArrowDown'].includes(e.key)) {\n menu.value = true;\n }\n if (['Escape'].includes(e.key)) {\n menu.value = false;\n }\n if (['Enter', 'Escape', 'Tab'].includes(e.key)) {\n if (highlightFirst.value && ['Enter', 'Tab'].includes(e.key) && !model.value.some(_ref2 => {\n let {\n value\n } = _ref2;\n return value === displayItems.value[0].value;\n })) {\n select(filteredItems.value[0]);\n }\n isPristine.value = true;\n }\n if (e.key === 'ArrowDown' && highlightFirst.value) {\n listRef.value?.focus('next');\n }\n if (e.key === 'Enter' && search.value) {\n select(transformItem(props, search.value));\n if (hasSelectionSlot.value) _search.value = '';\n }\n if (['Backspace', 'Delete'].includes(e.key)) {\n if (!props.multiple && hasSelectionSlot.value && model.value.length > 0 && !search.value) return select(model.value[0], false);\n if (~selectionIndex.value) {\n e.preventDefault();\n const originalSelectionIndex = selectionIndex.value;\n select(model.value[selectionIndex.value], false);\n selectionIndex.value = originalSelectionIndex >= length - 1 ? length - 2 : originalSelectionIndex;\n } else if (e.key === 'Backspace' && !search.value) {\n selectionIndex.value = length - 1;\n }\n return;\n }\n if (!props.multiple) return;\n if (e.key === 'ArrowLeft') {\n if (selectionIndex.value < 0 && selectionStart > 0) return;\n const prev = selectionIndex.value > -1 ? selectionIndex.value - 1 : length - 1;\n if (model.value[prev]) {\n selectionIndex.value = prev;\n } else {\n selectionIndex.value = -1;\n vTextFieldRef.value.setSelectionRange(search.value.length, search.value.length);\n }\n } else if (e.key === 'ArrowRight') {\n if (selectionIndex.value < 0) return;\n const next = selectionIndex.value + 1;\n if (model.value[next]) {\n selectionIndex.value = next;\n } else {\n selectionIndex.value = -1;\n vTextFieldRef.value.setSelectionRange(0, 0);\n }\n } else if (~selectionIndex.value && checkPrintable(e)) {\n selectionIndex.value = -1;\n }\n }\n function onAfterEnter() {\n if (props.eager) {\n vVirtualScrollRef.value?.calculateVisibleItems();\n }\n }\n function onAfterLeave() {\n if (isFocused.value) {\n isPristine.value = true;\n vTextFieldRef.value?.focus();\n }\n }\n /** @param set - null means toggle */\n function select(item) {\n let set = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (!item || item.props.disabled) return;\n if (props.multiple) {\n const index = model.value.findIndex(selection => (props.valueComparator || deepEqual)(selection.value, item.value));\n const add = set == null ? !~index : set;\n if (~index) {\n const value = add ? [...model.value, item] : [...model.value];\n value.splice(index, 1);\n model.value = value;\n } else if (add) {\n model.value = [...model.value, item];\n }\n if (props.clearOnSelect) {\n search.value = '';\n }\n } else {\n const add = set !== false;\n model.value = add ? [item] : [];\n _search.value = add && !hasSelectionSlot.value ? item.title : '';\n\n // watch for search watcher to trigger\n nextTick(() => {\n menu.value = false;\n isPristine.value = true;\n });\n }\n }\n function onFocusin(e) {\n isFocused.value = true;\n setTimeout(() => {\n listHasFocus.value = true;\n });\n }\n function onFocusout(e) {\n listHasFocus.value = false;\n }\n function onUpdateModelValue(v) {\n if (v == null || v === '' && !props.multiple && !hasSelectionSlot.value) model.value = [];\n }\n watch(isFocused, (val, oldVal) => {\n if (val || val === oldVal) return;\n selectionIndex.value = -1;\n menu.value = false;\n if (search.value) {\n if (props.multiple) {\n select(transformItem(props, search.value));\n return;\n }\n if (!hasSelectionSlot.value) return;\n if (model.value.some(_ref3 => {\n let {\n title\n } = _ref3;\n return title === search.value;\n })) {\n _search.value = '';\n } else {\n select(transformItem(props, search.value));\n }\n }\n });\n watch(menu, () => {\n if (!props.hideSelected && menu.value && model.value.length) {\n const index = displayItems.value.findIndex(item => model.value.some(s => (props.valueComparator || deepEqual)(s.value, item.value)));\n IN_BROWSER && window.requestAnimationFrame(() => {\n index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index);\n });\n }\n });\n watch(() => props.items, (newVal, oldVal) => {\n if (menu.value) return;\n if (isFocused.value && !oldVal.length && newVal.length) {\n menu.value = true;\n }\n });\n useRender(() => {\n const hasList = !!(!props.hideNoData || displayItems.value.length || slots['prepend-item'] || slots['append-item'] || slots['no-data']);\n const isDirty = model.value.length > 0;\n const textFieldProps = VTextField.filterProps(props);\n return _createVNode(VTextField, _mergeProps({\n \"ref\": vTextFieldRef\n }, textFieldProps, {\n \"modelValue\": search.value,\n \"onUpdate:modelValue\": [$event => search.value = $event, onUpdateModelValue],\n \"focused\": isFocused.value,\n \"onUpdate:focused\": $event => isFocused.value = $event,\n \"validationValue\": model.externalValue,\n \"counterValue\": counterValue.value,\n \"dirty\": isDirty,\n \"class\": ['v-combobox', {\n 'v-combobox--active-menu': menu.value,\n 'v-combobox--chips': !!props.chips,\n 'v-combobox--selection-slot': !!hasSelectionSlot.value,\n 'v-combobox--selecting-index': selectionIndex.value > -1,\n [`v-combobox--${props.multiple ? 'multiple' : 'single'}`]: true\n }, props.class],\n \"style\": props.style,\n \"readonly\": form.isReadonly.value,\n \"placeholder\": isDirty ? undefined : props.placeholder,\n \"onClick:clear\": onClear,\n \"onMousedown:control\": onMousedownControl,\n \"onKeydown\": onKeydown\n }), {\n ...slots,\n default: () => _createVNode(_Fragment, null, [_createVNode(VMenu, _mergeProps({\n \"ref\": vMenuRef,\n \"modelValue\": menu.value,\n \"onUpdate:modelValue\": $event => menu.value = $event,\n \"activator\": \"parent\",\n \"contentClass\": \"v-combobox__content\",\n \"disabled\": menuDisabled.value,\n \"eager\": props.eager,\n \"maxHeight\": 310,\n \"openOnClick\": false,\n \"closeOnContentClick\": false,\n \"transition\": props.transition,\n \"onAfterEnter\": onAfterEnter,\n \"onAfterLeave\": onAfterLeave\n }, props.menuProps), {\n default: () => [hasList && _createVNode(VList, _mergeProps({\n \"ref\": listRef,\n \"selected\": selectedValues.value,\n \"selectStrategy\": props.multiple ? 'independent' : 'single-independent',\n \"onMousedown\": e => e.preventDefault(),\n \"onKeydown\": onListKeydown,\n \"onFocusin\": onFocusin,\n \"onFocusout\": onFocusout,\n \"tabindex\": \"-1\",\n \"aria-live\": \"polite\",\n \"color\": props.itemColor ?? props.color\n }, listEvents, props.listProps), {\n default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? _createVNode(VListItem, {\n \"key\": \"no-data\",\n \"title\": t(props.noDataText)\n }, null)), _createVNode(VVirtualScroll, {\n \"ref\": vVirtualScrollRef,\n \"renderless\": true,\n \"items\": displayItems.value\n }, {\n default: _ref4 => {\n let {\n item,\n index,\n itemRef\n } = _ref4;\n const itemProps = mergeProps(item.props, {\n ref: itemRef,\n key: item.value,\n active: highlightFirst.value && index === 0 ? true : undefined,\n onClick: () => select(item, null)\n });\n return slots.item?.({\n item,\n index,\n props: itemProps\n }) ?? _createVNode(VListItem, _mergeProps(itemProps, {\n \"role\": \"option\"\n }), {\n prepend: _ref5 => {\n let {\n isSelected\n } = _ref5;\n return _createVNode(_Fragment, null, [props.multiple && !props.hideSelected ? _createVNode(VCheckboxBtn, {\n \"key\": item.value,\n \"modelValue\": isSelected,\n \"ripple\": false,\n \"tabindex\": \"-1\"\n }, null) : undefined, item.props.prependAvatar && _createVNode(VAvatar, {\n \"image\": item.props.prependAvatar\n }, null), item.props.prependIcon && _createVNode(VIcon, {\n \"icon\": item.props.prependIcon\n }, null)]);\n },\n title: () => {\n return isPristine.value ? item.title : highlightResult(item.title, getMatches(item)?.title, search.value?.length ?? 0);\n }\n });\n }\n }), slots['append-item']?.()]\n })]\n }), model.value.map((item, index) => {\n function onChipClose(e) {\n e.stopPropagation();\n e.preventDefault();\n select(item, false);\n }\n const slotProps = {\n 'onClick:close': onChipClose,\n onKeydown(e) {\n if (e.key !== 'Enter' && e.key !== ' ') return;\n e.preventDefault();\n e.stopPropagation();\n onChipClose(e);\n },\n onMousedown(e) {\n e.preventDefault();\n e.stopPropagation();\n },\n modelValue: true,\n 'onUpdate:modelValue': undefined\n };\n const hasSlot = hasChips.value ? !!slots.chip : !!slots.selection;\n const slotContent = hasSlot ? ensureValidVNode(hasChips.value ? slots.chip({\n item,\n index,\n props: slotProps\n }) : slots.selection({\n item,\n index\n })) : undefined;\n if (hasSlot && !slotContent) return undefined;\n return _createVNode(\"div\", {\n \"key\": item.value,\n \"class\": ['v-combobox__selection', index === selectionIndex.value && ['v-combobox__selection--selected', textColorClasses.value]],\n \"style\": index === selectionIndex.value ? textColorStyles.value : {}\n }, [hasChips.value ? !slots.chip ? _createVNode(VChip, _mergeProps({\n \"key\": \"chip\",\n \"closable\": props.closableChips,\n \"size\": \"small\",\n \"text\": item.title,\n \"disabled\": item.props.disabled\n }, slotProps), null) : _createVNode(VDefaultsProvider, {\n \"key\": \"chip-defaults\",\n \"defaults\": {\n VChip: {\n closable: props.closableChips,\n size: 'small',\n text: item.title\n }\n }\n }, {\n default: () => [slotContent]\n }) : slotContent ?? _createVNode(\"span\", {\n \"class\": \"v-combobox__selection-text\"\n }, [item.title, props.multiple && index < model.value.length - 1 && _createVNode(\"span\", {\n \"class\": \"v-combobox__selection-comma\"\n }, [_createTextVNode(\",\")])])]);\n })]),\n 'append-inner': function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return _createVNode(_Fragment, null, [slots['append-inner']?.(...args), (!props.hideNoData || props.items.length) && props.menuIcon ? _createVNode(VIcon, {\n \"class\": \"v-combobox__menu-icon\",\n \"icon\": props.menuIcon,\n \"onMousedown\": onMousedownMenuIcon,\n \"onClick\": noop,\n \"aria-label\": t(label.value),\n \"title\": t(label.value),\n \"tabindex\": \"-1\"\n }, null) : undefined]);\n }\n });\n });\n return forwardRefs({\n isFocused,\n isPristine,\n menu,\n search,\n selectionIndex,\n filteredItems,\n select\n }, vTextFieldRef);\n }\n});\n//# sourceMappingURL=VCombobox.mjs.map","import { Fragment as _Fragment, mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Components\nimport { VBtn } from \"../VBtn/index.mjs\"; // Composables\nimport { useLocale } from \"../../composables/index.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed, ref, toRaw, watchEffect } from 'vue';\nimport { deepEqual, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVConfirmEditProps = propsFactory({\n modelValue: null,\n color: String,\n cancelText: {\n type: String,\n default: '$vuetify.confirmEdit.cancel'\n },\n okText: {\n type: String,\n default: '$vuetify.confirmEdit.ok'\n }\n}, 'VConfirmEdit');\nexport const VConfirmEdit = genericComponent()({\n name: 'VConfirmEdit',\n props: makeVConfirmEditProps(),\n emits: {\n cancel: () => true,\n save: value => true,\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n emit,\n slots\n } = _ref;\n const model = useProxiedModel(props, 'modelValue');\n const internalModel = ref();\n watchEffect(() => {\n internalModel.value = structuredClone(toRaw(model.value));\n });\n const {\n t\n } = useLocale();\n const isPristine = computed(() => {\n return deepEqual(model.value, internalModel.value);\n });\n function save() {\n model.value = internalModel.value;\n emit('save', internalModel.value);\n }\n function cancel() {\n internalModel.value = structuredClone(toRaw(model.value));\n emit('cancel');\n }\n function actions(actionsProps) {\n return _createVNode(_Fragment, null, [_createVNode(VBtn, _mergeProps({\n \"disabled\": isPristine.value,\n \"variant\": \"text\",\n \"color\": props.color,\n \"onClick\": cancel,\n \"text\": t(props.cancelText)\n }, actionsProps), null), _createVNode(VBtn, _mergeProps({\n \"disabled\": isPristine.value,\n \"variant\": \"text\",\n \"color\": props.color,\n \"onClick\": save,\n \"text\": t(props.okText)\n }, actionsProps), null)]);\n }\n let actionsUsed = false;\n useRender(() => {\n return _createVNode(_Fragment, null, [slots.default?.({\n model: internalModel,\n save,\n cancel,\n isPristine: isPristine.value,\n get actions() {\n actionsUsed = true;\n return actions;\n }\n }), !actionsUsed && actions()]);\n });\n return {\n save,\n cancel,\n isPristine\n };\n }\n});\n//# sourceMappingURL=VConfirmEdit.mjs.map","// Composables\nimport { useProxiedModel } from \"../../../composables/proxiedModel.mjs\"; // Utilities\nimport { inject, provide, toRef } from 'vue';\nimport { propsFactory } from \"../../../util/index.mjs\"; // Types\nexport const makeDataTableExpandProps = propsFactory({\n expandOnClick: Boolean,\n showExpand: Boolean,\n expanded: {\n type: Array,\n default: () => []\n }\n}, 'DataTable-expand');\nexport const VDataTableExpandedKey = Symbol.for('vuetify:datatable:expanded');\nexport function provideExpanded(props) {\n const expandOnClick = toRef(props, 'expandOnClick');\n const expanded = useProxiedModel(props, 'expanded', props.expanded, v => {\n return new Set(v);\n }, v => {\n return [...v.values()];\n });\n function expand(item, value) {\n const newExpanded = new Set(expanded.value);\n if (!value) {\n newExpanded.delete(item.value);\n } else {\n newExpanded.add(item.value);\n }\n expanded.value = newExpanded;\n }\n function isExpanded(item) {\n return expanded.value.has(item.value);\n }\n function toggleExpand(item) {\n expand(item, !isExpanded(item));\n }\n const data = {\n expand,\n expanded,\n expandOnClick,\n isExpanded,\n toggleExpand\n };\n provide(VDataTableExpandedKey, data);\n return data;\n}\nexport function useExpanded() {\n const data = inject(VDataTableExpandedKey);\n if (!data) throw new Error('foo');\n return data;\n}\n//# sourceMappingURL=expand.mjs.map","// Composables\nimport { useProxiedModel } from \"../../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed, inject, provide, ref } from 'vue';\nimport { getObjectValueByPath, propsFactory } from \"../../../util/index.mjs\"; // Types\nexport const makeDataTableGroupProps = propsFactory({\n groupBy: {\n type: Array,\n default: () => []\n }\n}, 'DataTable-group');\nconst VDataTableGroupSymbol = Symbol.for('vuetify:data-table-group');\nexport function createGroupBy(props) {\n const groupBy = useProxiedModel(props, 'groupBy');\n return {\n groupBy\n };\n}\nexport function provideGroupBy(options) {\n const {\n disableSort,\n groupBy,\n sortBy\n } = options;\n const opened = ref(new Set());\n const sortByWithGroups = computed(() => {\n return groupBy.value.map(val => ({\n ...val,\n order: val.order ?? false\n })).concat(disableSort?.value ? [] : sortBy.value);\n });\n function isGroupOpen(group) {\n return opened.value.has(group.id);\n }\n function toggleGroup(group) {\n const newOpened = new Set(opened.value);\n if (!isGroupOpen(group)) newOpened.add(group.id);else newOpened.delete(group.id);\n opened.value = newOpened;\n }\n function extractRows(items) {\n function dive(group) {\n const arr = [];\n for (const item of group.items) {\n if ('type' in item && item.type === 'group') {\n arr.push(...dive(item));\n } else {\n arr.push(item);\n }\n }\n return [...new Set(arr)];\n }\n return dive({\n type: 'group',\n items,\n id: 'dummy',\n key: 'dummy',\n value: 'dummy',\n depth: 0\n });\n }\n\n // onBeforeMount(() => {\n // for (const key of groupedItems.value.keys()) {\n // opened.value.add(key)\n // }\n // })\n\n const data = {\n sortByWithGroups,\n toggleGroup,\n opened,\n groupBy,\n extractRows,\n isGroupOpen\n };\n provide(VDataTableGroupSymbol, data);\n return data;\n}\nexport function useGroupBy() {\n const data = inject(VDataTableGroupSymbol);\n if (!data) throw new Error('Missing group!');\n return data;\n}\nfunction groupItemsByProperty(items, groupBy) {\n if (!items.length) return [];\n const groups = new Map();\n for (const item of items) {\n const value = getObjectValueByPath(item.raw, groupBy);\n if (!groups.has(value)) {\n groups.set(value, []);\n }\n groups.get(value).push(item);\n }\n return groups;\n}\nfunction groupItems(items, groupBy) {\n let depth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n let prefix = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'root';\n if (!groupBy.length) return [];\n const groupedItems = groupItemsByProperty(items, groupBy[0]);\n const groups = [];\n const rest = groupBy.slice(1);\n groupedItems.forEach((items, value) => {\n const key = groupBy[0];\n const id = `${prefix}_${key}_${value}`;\n groups.push({\n depth,\n id,\n key,\n value,\n items: rest.length ? groupItems(items, rest, depth + 1, id) : items,\n type: 'group'\n });\n });\n return groups;\n}\nfunction flattenItems(items, opened) {\n const flatItems = [];\n for (const item of items) {\n // TODO: make this better\n if ('type' in item && item.type === 'group') {\n if (item.value != null) {\n flatItems.push(item);\n }\n if (opened.has(item.id) || item.value == null) {\n flatItems.push(...flattenItems(item.items, opened));\n }\n } else {\n flatItems.push(item);\n }\n }\n return flatItems;\n}\nexport function useGroupedItems(items, groupBy, opened) {\n const flatItems = computed(() => {\n if (!groupBy.value.length) return items.value;\n const groupedItems = groupItems(items.value, groupBy.value.map(item => item.key));\n return flattenItems(groupedItems, opened.value);\n });\n return {\n flatItems\n };\n}\n//# sourceMappingURL=group.mjs.map","// Utilities\nimport { computed, watch } from 'vue';\nimport { deepEqual, getCurrentInstance } from \"../../../util/index.mjs\"; // Types\nexport function useOptions(_ref) {\n let {\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n search\n } = _ref;\n const vm = getCurrentInstance('VDataTable');\n const options = computed(() => ({\n page: page.value,\n itemsPerPage: itemsPerPage.value,\n sortBy: sortBy.value,\n groupBy: groupBy.value,\n search: search.value\n }));\n let oldOptions = null;\n watch(options, () => {\n if (deepEqual(oldOptions, options.value)) return;\n\n // Reset page when searching\n if (oldOptions && oldOptions.search !== options.value.search) {\n page.value = 1;\n }\n vm.emit('update:options', options.value);\n oldOptions = options.value;\n }, {\n deep: true,\n immediate: true\n });\n}\n//# sourceMappingURL=options.mjs.map","// Composables\nimport { useProxiedModel } from \"../../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed, inject, provide, watch } from 'vue';\nimport { clamp, getCurrentInstance, propsFactory } from \"../../../util/index.mjs\"; // Types\nexport const makeDataTablePaginateProps = propsFactory({\n page: {\n type: [Number, String],\n default: 1\n },\n itemsPerPage: {\n type: [Number, String],\n default: 10\n }\n}, 'DataTable-paginate');\nconst VDataTablePaginationSymbol = Symbol.for('vuetify:data-table-pagination');\nexport function createPagination(props) {\n const page = useProxiedModel(props, 'page', undefined, value => +(value ?? 1));\n const itemsPerPage = useProxiedModel(props, 'itemsPerPage', undefined, value => +(value ?? 10));\n return {\n page,\n itemsPerPage\n };\n}\nexport function providePagination(options) {\n const {\n page,\n itemsPerPage,\n itemsLength\n } = options;\n const startIndex = computed(() => {\n if (itemsPerPage.value === -1) return 0;\n return itemsPerPage.value * (page.value - 1);\n });\n const stopIndex = computed(() => {\n if (itemsPerPage.value === -1) return itemsLength.value;\n return Math.min(itemsLength.value, startIndex.value + itemsPerPage.value);\n });\n const pageCount = computed(() => {\n if (itemsPerPage.value === -1 || itemsLength.value === 0) return 1;\n return Math.ceil(itemsLength.value / itemsPerPage.value);\n });\n\n // Don't run immediately, items may not have been loaded yet: #17966\n watch([page, pageCount], () => {\n if (page.value > pageCount.value) {\n page.value = pageCount.value;\n }\n });\n function setItemsPerPage(value) {\n itemsPerPage.value = value;\n page.value = 1;\n }\n function nextPage() {\n page.value = clamp(page.value + 1, 1, pageCount.value);\n }\n function prevPage() {\n page.value = clamp(page.value - 1, 1, pageCount.value);\n }\n function setPage(value) {\n page.value = clamp(value, 1, pageCount.value);\n }\n const data = {\n page,\n itemsPerPage,\n startIndex,\n stopIndex,\n pageCount,\n itemsLength,\n nextPage,\n prevPage,\n setPage,\n setItemsPerPage\n };\n provide(VDataTablePaginationSymbol, data);\n return data;\n}\nexport function usePagination() {\n const data = inject(VDataTablePaginationSymbol);\n if (!data) throw new Error('Missing pagination!');\n return data;\n}\nexport function usePaginatedItems(options) {\n const vm = getCurrentInstance('usePaginatedItems');\n const {\n items,\n startIndex,\n stopIndex,\n itemsPerPage\n } = options;\n const paginatedItems = computed(() => {\n if (itemsPerPage.value <= 0) return items.value;\n return items.value.slice(startIndex.value, stopIndex.value);\n });\n watch(paginatedItems, val => {\n vm.emit('update:currentItems', val);\n }, {\n immediate: true\n });\n return {\n paginatedItems\n };\n}\n//# sourceMappingURL=paginate.mjs.map","// Composables\nimport { useProxiedModel } from \"../../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed, inject, provide } from 'vue';\nimport { deepEqual, propsFactory, wrapInArray } from \"../../../util/index.mjs\"; // Types\nconst singleSelectStrategy = {\n showSelectAll: false,\n allSelected: () => [],\n select: _ref => {\n let {\n items,\n value\n } = _ref;\n return new Set(value ? [items[0]?.value] : []);\n },\n selectAll: _ref2 => {\n let {\n selected\n } = _ref2;\n return selected;\n }\n};\nconst pageSelectStrategy = {\n showSelectAll: true,\n allSelected: _ref3 => {\n let {\n currentPage\n } = _ref3;\n return currentPage;\n },\n select: _ref4 => {\n let {\n items,\n value,\n selected\n } = _ref4;\n for (const item of items) {\n if (value) selected.add(item.value);else selected.delete(item.value);\n }\n return selected;\n },\n selectAll: _ref5 => {\n let {\n value,\n currentPage,\n selected\n } = _ref5;\n return pageSelectStrategy.select({\n items: currentPage,\n value,\n selected\n });\n }\n};\nconst allSelectStrategy = {\n showSelectAll: true,\n allSelected: _ref6 => {\n let {\n allItems\n } = _ref6;\n return allItems;\n },\n select: _ref7 => {\n let {\n items,\n value,\n selected\n } = _ref7;\n for (const item of items) {\n if (value) selected.add(item.value);else selected.delete(item.value);\n }\n return selected;\n },\n selectAll: _ref8 => {\n let {\n value,\n allItems,\n selected\n } = _ref8;\n return allSelectStrategy.select({\n items: allItems,\n value,\n selected\n });\n }\n};\nexport const makeDataTableSelectProps = propsFactory({\n showSelect: Boolean,\n selectStrategy: {\n type: [String, Object],\n default: 'page'\n },\n modelValue: {\n type: Array,\n default: () => []\n },\n valueComparator: {\n type: Function,\n default: deepEqual\n }\n}, 'DataTable-select');\nexport const VDataTableSelectionSymbol = Symbol.for('vuetify:data-table-selection');\nexport function provideSelection(props, _ref9) {\n let {\n allItems,\n currentPage\n } = _ref9;\n const selected = useProxiedModel(props, 'modelValue', props.modelValue, v => {\n return new Set(wrapInArray(v).map(v => {\n return allItems.value.find(item => props.valueComparator(v, item.value))?.value ?? v;\n }));\n }, v => {\n return [...v.values()];\n });\n const allSelectable = computed(() => allItems.value.filter(item => item.selectable));\n const currentPageSelectable = computed(() => currentPage.value.filter(item => item.selectable));\n const selectStrategy = computed(() => {\n if (typeof props.selectStrategy === 'object') return props.selectStrategy;\n switch (props.selectStrategy) {\n case 'single':\n return singleSelectStrategy;\n case 'all':\n return allSelectStrategy;\n case 'page':\n default:\n return pageSelectStrategy;\n }\n });\n function isSelected(items) {\n return wrapInArray(items).every(item => selected.value.has(item.value));\n }\n function isSomeSelected(items) {\n return wrapInArray(items).some(item => selected.value.has(item.value));\n }\n function select(items, value) {\n const newSelected = selectStrategy.value.select({\n items,\n value,\n selected: new Set(selected.value)\n });\n selected.value = newSelected;\n }\n function toggleSelect(item) {\n select([item], !isSelected([item]));\n }\n function selectAll(value) {\n const newSelected = selectStrategy.value.selectAll({\n value,\n allItems: allSelectable.value,\n currentPage: currentPageSelectable.value,\n selected: new Set(selected.value)\n });\n selected.value = newSelected;\n }\n const someSelected = computed(() => selected.value.size > 0);\n const allSelected = computed(() => {\n const items = selectStrategy.value.allSelected({\n allItems: allSelectable.value,\n currentPage: currentPageSelectable.value\n });\n return !!items.length && isSelected(items);\n });\n const showSelectAll = computed(() => selectStrategy.value.showSelectAll);\n const data = {\n toggleSelect,\n select,\n selectAll,\n isSelected,\n isSomeSelected,\n someSelected,\n allSelected,\n showSelectAll\n };\n provide(VDataTableSelectionSymbol, data);\n return data;\n}\nexport function useSelection() {\n const data = inject(VDataTableSelectionSymbol);\n if (!data) throw new Error('Missing selection!');\n return data;\n}\n//# sourceMappingURL=select.mjs.map","// Composables\nimport { useLocale } from \"../../../composables/index.mjs\";\nimport { useProxiedModel } from \"../../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed, inject, provide, toRef } from 'vue';\nimport { getObjectValueByPath, isEmpty, propsFactory } from \"../../../util/index.mjs\"; // Types\nexport const makeDataTableSortProps = propsFactory({\n sortBy: {\n type: Array,\n default: () => []\n },\n customKeySort: Object,\n multiSort: Boolean,\n mustSort: Boolean\n}, 'DataTable-sort');\nconst VDataTableSortSymbol = Symbol.for('vuetify:data-table-sort');\nexport function createSort(props) {\n const sortBy = useProxiedModel(props, 'sortBy');\n const mustSort = toRef(props, 'mustSort');\n const multiSort = toRef(props, 'multiSort');\n return {\n sortBy,\n mustSort,\n multiSort\n };\n}\nexport function provideSort(options) {\n const {\n sortBy,\n mustSort,\n multiSort,\n page\n } = options;\n const toggleSort = column => {\n if (column.key == null) return;\n let newSortBy = sortBy.value.map(x => ({\n ...x\n })) ?? [];\n const item = newSortBy.find(x => x.key === column.key);\n if (!item) {\n if (multiSort.value) {\n newSortBy.push({\n key: column.key,\n order: 'asc'\n });\n } else {\n newSortBy = [{\n key: column.key,\n order: 'asc'\n }];\n }\n } else if (item.order === 'desc') {\n if (mustSort.value && newSortBy.length === 1) {\n item.order = 'asc';\n } else {\n newSortBy = newSortBy.filter(x => x.key !== column.key);\n }\n } else {\n item.order = 'desc';\n }\n sortBy.value = newSortBy;\n if (page) page.value = 1;\n };\n function isSorted(column) {\n return !!sortBy.value.find(item => item.key === column.key);\n }\n const data = {\n sortBy,\n toggleSort,\n isSorted\n };\n provide(VDataTableSortSymbol, data);\n return data;\n}\nexport function useSort() {\n const data = inject(VDataTableSortSymbol);\n if (!data) throw new Error('Missing sort!');\n return data;\n}\n\n// TODO: abstract into project composable\nexport function useSortedItems(props, items, sortBy, options) {\n const locale = useLocale();\n const sortedItems = computed(() => {\n if (!sortBy.value.length) return items.value;\n return sortItems(items.value, sortBy.value, locale.current.value, {\n transform: options?.transform,\n sortFunctions: {\n ...props.customKeySort,\n ...options?.sortFunctions?.value\n },\n sortRawFunctions: options?.sortRawFunctions?.value\n });\n });\n return {\n sortedItems\n };\n}\nexport function sortItems(items, sortByItems, locale, options) {\n const stringCollator = new Intl.Collator(locale, {\n sensitivity: 'accent',\n usage: 'sort'\n });\n const transformedItems = items.map(item => [item, options?.transform ? options.transform(item) : item]);\n return transformedItems.sort((a, b) => {\n for (let i = 0; i < sortByItems.length; i++) {\n let hasCustomResult = false;\n const sortKey = sortByItems[i].key;\n const sortOrder = sortByItems[i].order ?? 'asc';\n if (sortOrder === false) continue;\n let sortA = getObjectValueByPath(a[1], sortKey);\n let sortB = getObjectValueByPath(b[1], sortKey);\n let sortARaw = a[0].raw;\n let sortBRaw = b[0].raw;\n if (sortOrder === 'desc') {\n [sortA, sortB] = [sortB, sortA];\n [sortARaw, sortBRaw] = [sortBRaw, sortARaw];\n }\n if (options?.sortRawFunctions?.[sortKey]) {\n const customResult = options.sortRawFunctions[sortKey](sortARaw, sortBRaw);\n if (customResult == null) continue;\n hasCustomResult = true;\n if (customResult) return customResult;\n }\n if (options?.sortFunctions?.[sortKey]) {\n const customResult = options.sortFunctions[sortKey](sortA, sortB);\n if (customResult == null) continue;\n hasCustomResult = true;\n if (customResult) return customResult;\n }\n if (hasCustomResult) continue;\n\n // Dates should be compared numerically\n if (sortA instanceof Date && sortB instanceof Date) {\n return sortA.getTime() - sortB.getTime();\n }\n [sortA, sortB] = [sortA, sortB].map(s => s != null ? s.toString().toLocaleLowerCase() : s);\n if (sortA !== sortB) {\n if (isEmpty(sortA) && isEmpty(sortB)) return 0;\n if (isEmpty(sortA)) return -1;\n if (isEmpty(sortB)) return 1;\n if (!isNaN(sortA) && !isNaN(sortB)) return Number(sortA) - Number(sortB);\n return stringCollator.compare(sortA, sortB);\n }\n }\n return 0;\n }).map(_ref => {\n let [item] = _ref;\n return item;\n });\n}\n//# sourceMappingURL=sort.mjs.map","// Utilities\nimport { computed } from 'vue';\nimport { getPropertyFromItem, propsFactory } from \"../../../util/index.mjs\"; // Types\n// Composables\nexport const makeDataIteratorItemsProps = propsFactory({\n items: {\n type: Array,\n default: () => []\n },\n itemValue: {\n type: [String, Array, Function],\n default: 'id'\n },\n itemSelectable: {\n type: [String, Array, Function],\n default: null\n },\n returnObject: Boolean\n}, 'DataIterator-items');\nexport function transformItem(props, item) {\n const value = props.returnObject ? item : getPropertyFromItem(item, props.itemValue);\n const selectable = getPropertyFromItem(item, props.itemSelectable, true);\n return {\n type: 'item',\n value,\n selectable,\n raw: item\n };\n}\nexport function transformItems(props, items) {\n const array = [];\n for (const item of items) {\n array.push(transformItem(props, item));\n }\n return array;\n}\nexport function useDataIteratorItems(props) {\n const items = computed(() => transformItems(props, props.items));\n return {\n items\n };\n}\n//# sourceMappingURL=items.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Components\nimport { VFadeTransition } from \"../transitions/index.mjs\";\nimport { makeDataTableExpandProps, provideExpanded } from \"../VDataTable/composables/expand.mjs\";\nimport { makeDataTableGroupProps, provideGroupBy, useGroupedItems } from \"../VDataTable/composables/group.mjs\";\nimport { useOptions } from \"../VDataTable/composables/options.mjs\";\nimport { createPagination, makeDataTablePaginateProps, providePagination, usePaginatedItems } from \"../VDataTable/composables/paginate.mjs\";\nimport { makeDataTableSelectProps, provideSelection } from \"../VDataTable/composables/select.mjs\";\nimport { createSort, makeDataTableSortProps, provideSort, useSortedItems } from \"../VDataTable/composables/sort.mjs\"; // Composables\nimport { makeDataIteratorItemsProps, useDataIteratorItems } from \"./composables/items.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeFilterProps, useFilter } from \"../../composables/filter.mjs\";\nimport { LoaderSlot } from \"../../composables/loader.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeTransitionProps, MaybeTransition } from \"../../composables/transition.mjs\"; // Utilities\nimport { computed, toRef } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVDataIteratorProps = propsFactory({\n search: String,\n loading: Boolean,\n ...makeComponentProps(),\n ...makeDataIteratorItemsProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...makeDataTablePaginateProps({\n itemsPerPage: 5\n }),\n ...makeDataTableExpandProps(),\n ...makeDataTableGroupProps(),\n ...makeFilterProps(),\n ...makeTagProps(),\n ...makeTransitionProps({\n transition: {\n component: VFadeTransition,\n hideOnLeave: true\n }\n })\n}, 'VDataIterator');\nexport const VDataIterator = genericComponent()({\n name: 'VDataIterator',\n props: makeVDataIteratorProps(),\n emits: {\n 'update:modelValue': value => true,\n 'update:groupBy': value => true,\n 'update:page': value => true,\n 'update:itemsPerPage': value => true,\n 'update:sortBy': value => true,\n 'update:options': value => true,\n 'update:expanded': value => true,\n 'update:currentItems': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const groupBy = useProxiedModel(props, 'groupBy');\n const search = toRef(props, 'search');\n const {\n items\n } = useDataIteratorItems(props);\n const {\n filteredItems\n } = useFilter(props, items, search, {\n transform: item => item.raw\n });\n const {\n sortBy,\n multiSort,\n mustSort\n } = createSort(props);\n const {\n page,\n itemsPerPage\n } = createPagination(props);\n const {\n toggleSort\n } = provideSort({\n sortBy,\n multiSort,\n mustSort,\n page\n });\n const {\n sortByWithGroups,\n opened,\n extractRows,\n isGroupOpen,\n toggleGroup\n } = provideGroupBy({\n groupBy,\n sortBy\n });\n const {\n sortedItems\n } = useSortedItems(props, filteredItems, sortByWithGroups, {\n transform: item => item.raw\n });\n const {\n flatItems\n } = useGroupedItems(sortedItems, groupBy, opened);\n const itemsLength = computed(() => flatItems.value.length);\n const {\n startIndex,\n stopIndex,\n pageCount,\n prevPage,\n nextPage,\n setItemsPerPage,\n setPage\n } = providePagination({\n page,\n itemsPerPage,\n itemsLength\n });\n const {\n paginatedItems\n } = usePaginatedItems({\n items: flatItems,\n startIndex,\n stopIndex,\n itemsPerPage\n });\n const paginatedItemsWithoutGroups = computed(() => extractRows(paginatedItems.value));\n const {\n isSelected,\n select,\n selectAll,\n toggleSelect\n } = provideSelection(props, {\n allItems: items,\n currentPage: paginatedItemsWithoutGroups\n });\n const {\n isExpanded,\n toggleExpand\n } = provideExpanded(props);\n useOptions({\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n search\n });\n const slotProps = computed(() => ({\n page: page.value,\n itemsPerPage: itemsPerPage.value,\n sortBy: sortBy.value,\n pageCount: pageCount.value,\n toggleSort,\n prevPage,\n nextPage,\n setPage,\n setItemsPerPage,\n isSelected,\n select,\n selectAll,\n toggleSelect,\n isExpanded,\n toggleExpand,\n isGroupOpen,\n toggleGroup,\n items: paginatedItemsWithoutGroups.value,\n groupedItems: paginatedItems.value\n }));\n useRender(() => _createVNode(props.tag, {\n \"class\": ['v-data-iterator', {\n 'v-data-iterator--loading': props.loading\n }, props.class],\n \"style\": props.style\n }, {\n default: () => [slots.header?.(slotProps.value), _createVNode(MaybeTransition, {\n \"transition\": props.transition\n }, {\n default: () => [props.loading ? _createVNode(LoaderSlot, {\n \"key\": \"loader\",\n \"name\": \"v-data-iterator\",\n \"active\": true\n }, {\n default: slotProps => slots.loader?.(slotProps)\n }) : _createVNode(\"div\", {\n \"key\": \"items\"\n }, [!paginatedItems.value.length ? slots['no-data']?.() : slots.default?.(slotProps.value)])]\n }), slots.footer?.(slotProps.value)]\n }));\n return {};\n }\n});\n//# sourceMappingURL=VDataIterator.mjs.map","// Utilities\nimport { onBeforeUpdate, ref } from 'vue';\n\n// Types\n\nexport function useRefs() {\n const refs = ref([]);\n onBeforeUpdate(() => refs.value = []);\n function updateRef(e, i) {\n refs.value[i] = e;\n }\n return {\n refs,\n updateRef\n };\n}\n//# sourceMappingURL=refs.mjs.map","import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VPagination.css\";\n\n// Components\nimport { VBtn } from \"../VBtn/index.mjs\"; // Composables\nimport { useDisplay } from \"../../composables/index.mjs\";\nimport { makeBorderProps } from \"../../composables/border.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeDensityProps } from \"../../composables/density.mjs\";\nimport { makeElevationProps } from \"../../composables/elevation.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { useLocale, useRtl } from \"../../composables/locale.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { useRefs } from \"../../composables/refs.mjs\";\nimport { useResizeObserver } from \"../../composables/resizeObserver.mjs\";\nimport { makeRoundedProps } from \"../../composables/rounded.mjs\";\nimport { makeSizeProps } from \"../../composables/size.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\";\nimport { makeVariantProps } from \"../../composables/variant.mjs\"; // Utilities\nimport { computed, nextTick, shallowRef, toRef } from 'vue';\nimport { createRange, genericComponent, keyValues, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVPaginationProps = propsFactory({\n activeColor: String,\n start: {\n type: [Number, String],\n default: 1\n },\n modelValue: {\n type: Number,\n default: props => props.start\n },\n disabled: Boolean,\n length: {\n type: [Number, String],\n default: 1,\n validator: val => val % 1 === 0\n },\n totalVisible: [Number, String],\n firstIcon: {\n type: IconValue,\n default: '$first'\n },\n prevIcon: {\n type: IconValue,\n default: '$prev'\n },\n nextIcon: {\n type: IconValue,\n default: '$next'\n },\n lastIcon: {\n type: IconValue,\n default: '$last'\n },\n ariaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.root'\n },\n pageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.page'\n },\n currentPageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.currentPage'\n },\n firstAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.first'\n },\n previousAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.previous'\n },\n nextAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.next'\n },\n lastAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.last'\n },\n ellipsis: {\n type: String,\n default: '...'\n },\n showFirstLastPage: Boolean,\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeSizeProps(),\n ...makeTagProps({\n tag: 'nav'\n }),\n ...makeThemeProps(),\n ...makeVariantProps({\n variant: 'text'\n })\n}, 'VPagination');\nexport const VPagination = genericComponent()({\n name: 'VPagination',\n props: makeVPaginationProps(),\n emits: {\n 'update:modelValue': value => true,\n first: value => true,\n prev: value => true,\n next: value => true,\n last: value => true\n },\n setup(props, _ref) {\n let {\n slots,\n emit\n } = _ref;\n const page = useProxiedModel(props, 'modelValue');\n const {\n t,\n n\n } = useLocale();\n const {\n isRtl\n } = useRtl();\n const {\n themeClasses\n } = provideTheme(props);\n const {\n width\n } = useDisplay();\n const maxButtons = shallowRef(-1);\n provideDefaults(undefined, {\n scoped: true\n });\n const {\n resizeRef\n } = useResizeObserver(entries => {\n if (!entries.length) return;\n const {\n target,\n contentRect\n } = entries[0];\n const firstItem = target.querySelector('.v-pagination__list > *');\n if (!firstItem) return;\n const totalWidth = contentRect.width;\n const itemWidth = firstItem.offsetWidth + parseFloat(getComputedStyle(firstItem).marginRight) * 2;\n maxButtons.value = getMax(totalWidth, itemWidth);\n });\n const length = computed(() => parseInt(props.length, 10));\n const start = computed(() => parseInt(props.start, 10));\n const totalVisible = computed(() => {\n if (props.totalVisible != null) return parseInt(props.totalVisible, 10);else if (maxButtons.value >= 0) return maxButtons.value;\n return getMax(width.value, 58);\n });\n function getMax(totalWidth, itemWidth) {\n const minButtons = props.showFirstLastPage ? 5 : 3;\n return Math.max(0, Math.floor(\n // Round to two decimal places to avoid floating point errors\n +((totalWidth - itemWidth * minButtons) / itemWidth).toFixed(2)));\n }\n const range = computed(() => {\n if (length.value <= 0 || isNaN(length.value) || length.value > Number.MAX_SAFE_INTEGER) return [];\n if (totalVisible.value <= 0) return [];else if (totalVisible.value === 1) return [page.value];\n if (length.value <= totalVisible.value) {\n return createRange(length.value, start.value);\n }\n const even = totalVisible.value % 2 === 0;\n const middle = even ? totalVisible.value / 2 : Math.floor(totalVisible.value / 2);\n const left = even ? middle : middle + 1;\n const right = length.value - middle;\n if (left - page.value >= 0) {\n return [...createRange(Math.max(1, totalVisible.value - 1), start.value), props.ellipsis, length.value];\n } else if (page.value - right >= (even ? 1 : 0)) {\n const rangeLength = totalVisible.value - 1;\n const rangeStart = length.value - rangeLength + start.value;\n return [start.value, props.ellipsis, ...createRange(rangeLength, rangeStart)];\n } else {\n const rangeLength = Math.max(1, totalVisible.value - 2);\n const rangeStart = rangeLength === 1 ? page.value : page.value - Math.ceil(rangeLength / 2) + start.value;\n return [start.value, props.ellipsis, ...createRange(rangeLength, rangeStart), props.ellipsis, length.value];\n }\n });\n\n // TODO: 'first' | 'prev' | 'next' | 'last' does not work here?\n function setValue(e, value, event) {\n e.preventDefault();\n page.value = value;\n event && emit(event, value);\n }\n const {\n refs,\n updateRef\n } = useRefs();\n provideDefaults({\n VPaginationBtn: {\n color: toRef(props, 'color'),\n border: toRef(props, 'border'),\n density: toRef(props, 'density'),\n size: toRef(props, 'size'),\n variant: toRef(props, 'variant'),\n rounded: toRef(props, 'rounded'),\n elevation: toRef(props, 'elevation')\n }\n });\n const items = computed(() => {\n return range.value.map((item, index) => {\n const ref = e => updateRef(e, index);\n if (typeof item === 'string') {\n return {\n isActive: false,\n key: `ellipsis-${index}`,\n page: item,\n props: {\n ref,\n ellipsis: true,\n icon: true,\n disabled: true\n }\n };\n } else {\n const isActive = item === page.value;\n return {\n isActive,\n key: item,\n page: n(item),\n props: {\n ref,\n ellipsis: false,\n icon: true,\n disabled: !!props.disabled || +props.length < 2,\n color: isActive ? props.activeColor : props.color,\n 'aria-current': isActive,\n 'aria-label': t(isActive ? props.currentPageAriaLabel : props.pageAriaLabel, item),\n onClick: e => setValue(e, item)\n }\n };\n }\n });\n });\n const controls = computed(() => {\n const prevDisabled = !!props.disabled || page.value <= start.value;\n const nextDisabled = !!props.disabled || page.value >= start.value + length.value - 1;\n return {\n first: props.showFirstLastPage ? {\n icon: isRtl.value ? props.lastIcon : props.firstIcon,\n onClick: e => setValue(e, start.value, 'first'),\n disabled: prevDisabled,\n 'aria-label': t(props.firstAriaLabel),\n 'aria-disabled': prevDisabled\n } : undefined,\n prev: {\n icon: isRtl.value ? props.nextIcon : props.prevIcon,\n onClick: e => setValue(e, page.value - 1, 'prev'),\n disabled: prevDisabled,\n 'aria-label': t(props.previousAriaLabel),\n 'aria-disabled': prevDisabled\n },\n next: {\n icon: isRtl.value ? props.prevIcon : props.nextIcon,\n onClick: e => setValue(e, page.value + 1, 'next'),\n disabled: nextDisabled,\n 'aria-label': t(props.nextAriaLabel),\n 'aria-disabled': nextDisabled\n },\n last: props.showFirstLastPage ? {\n icon: isRtl.value ? props.firstIcon : props.lastIcon,\n onClick: e => setValue(e, start.value + length.value - 1, 'last'),\n disabled: nextDisabled,\n 'aria-label': t(props.lastAriaLabel),\n 'aria-disabled': nextDisabled\n } : undefined\n };\n });\n function updateFocus() {\n const currentIndex = page.value - start.value;\n refs.value[currentIndex]?.$el.focus();\n }\n function onKeydown(e) {\n if (e.key === keyValues.left && !props.disabled && page.value > +props.start) {\n page.value = page.value - 1;\n nextTick(updateFocus);\n } else if (e.key === keyValues.right && !props.disabled && page.value < start.value + length.value - 1) {\n page.value = page.value + 1;\n nextTick(updateFocus);\n }\n }\n useRender(() => _createVNode(props.tag, {\n \"ref\": resizeRef,\n \"class\": ['v-pagination', themeClasses.value, props.class],\n \"style\": props.style,\n \"role\": \"navigation\",\n \"aria-label\": t(props.ariaLabel),\n \"onKeydown\": onKeydown,\n \"data-test\": \"v-pagination-root\"\n }, {\n default: () => [_createVNode(\"ul\", {\n \"class\": \"v-pagination__list\"\n }, [props.showFirstLastPage && _createVNode(\"li\", {\n \"key\": \"first\",\n \"class\": \"v-pagination__first\",\n \"data-test\": \"v-pagination-first\"\n }, [slots.first ? slots.first(controls.value.first) : _createVNode(VBtn, _mergeProps({\n \"_as\": \"VPaginationBtn\"\n }, controls.value.first), null)]), _createVNode(\"li\", {\n \"key\": \"prev\",\n \"class\": \"v-pagination__prev\",\n \"data-test\": \"v-pagination-prev\"\n }, [slots.prev ? slots.prev(controls.value.prev) : _createVNode(VBtn, _mergeProps({\n \"_as\": \"VPaginationBtn\"\n }, controls.value.prev), null)]), items.value.map((item, index) => _createVNode(\"li\", {\n \"key\": item.key,\n \"class\": ['v-pagination__item', {\n 'v-pagination__item--is-active': item.isActive\n }],\n \"data-test\": \"v-pagination-item\"\n }, [slots.item ? slots.item(item) : _createVNode(VBtn, _mergeProps({\n \"_as\": \"VPaginationBtn\"\n }, item.props), {\n default: () => [item.page]\n })])), _createVNode(\"li\", {\n \"key\": \"next\",\n \"class\": \"v-pagination__next\",\n \"data-test\": \"v-pagination-next\"\n }, [slots.next ? slots.next(controls.value.next) : _createVNode(VBtn, _mergeProps({\n \"_as\": \"VPaginationBtn\"\n }, controls.value.next), null)]), props.showFirstLastPage && _createVNode(\"li\", {\n \"key\": \"last\",\n \"class\": \"v-pagination__last\",\n \"data-test\": \"v-pagination-last\"\n }, [slots.last ? slots.last(controls.value.last) : _createVNode(VBtn, _mergeProps({\n \"_as\": \"VPaginationBtn\"\n }, controls.value.last), null)])])]\n }));\n return {};\n }\n});\n//# sourceMappingURL=VPagination.mjs.map","import { createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\n// Styles\nimport \"./VDataTableFooter.css\";\n\n// Components\nimport { VPagination } from \"../VPagination/index.mjs\";\nimport { VSelect } from \"../VSelect/index.mjs\"; // Composables\nimport { usePagination } from \"./composables/paginate.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { useLocale } from \"../../composables/locale.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVDataTableFooterProps = propsFactory({\n prevIcon: {\n type: IconValue,\n default: '$prev'\n },\n nextIcon: {\n type: IconValue,\n default: '$next'\n },\n firstIcon: {\n type: IconValue,\n default: '$first'\n },\n lastIcon: {\n type: IconValue,\n default: '$last'\n },\n itemsPerPageText: {\n type: String,\n default: '$vuetify.dataFooter.itemsPerPageText'\n },\n pageText: {\n type: String,\n default: '$vuetify.dataFooter.pageText'\n },\n firstPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.firstPage'\n },\n prevPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.prevPage'\n },\n nextPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.nextPage'\n },\n lastPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.lastPage'\n },\n itemsPerPageOptions: {\n type: Array,\n default: () => [{\n value: 10,\n title: '10'\n }, {\n value: 25,\n title: '25'\n }, {\n value: 50,\n title: '50'\n }, {\n value: 100,\n title: '100'\n }, {\n value: -1,\n title: '$vuetify.dataFooter.itemsPerPageAll'\n }]\n },\n showCurrentPage: Boolean\n}, 'VDataTableFooter');\nexport const VDataTableFooter = genericComponent()({\n name: 'VDataTableFooter',\n props: makeVDataTableFooterProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n t\n } = useLocale();\n const {\n page,\n pageCount,\n startIndex,\n stopIndex,\n itemsLength,\n itemsPerPage,\n setItemsPerPage\n } = usePagination();\n const itemsPerPageOptions = computed(() => props.itemsPerPageOptions.map(option => {\n if (typeof option === 'number') {\n return {\n value: option,\n title: option === -1 ? t('$vuetify.dataFooter.itemsPerPageAll') : String(option)\n };\n }\n return {\n ...option,\n title: !isNaN(Number(option.title)) ? option.title : t(option.title)\n };\n }));\n useRender(() => {\n const paginationProps = VPagination.filterProps(props);\n return _createVNode(\"div\", {\n \"class\": \"v-data-table-footer\"\n }, [slots.prepend?.(), _createVNode(\"div\", {\n \"class\": \"v-data-table-footer__items-per-page\"\n }, [_createVNode(\"span\", null, [t(props.itemsPerPageText)]), _createVNode(VSelect, {\n \"items\": itemsPerPageOptions.value,\n \"modelValue\": itemsPerPage.value,\n \"onUpdate:modelValue\": v => setItemsPerPage(Number(v)),\n \"density\": \"compact\",\n \"variant\": \"outlined\",\n \"hide-details\": true\n }, null)]), _createVNode(\"div\", {\n \"class\": \"v-data-table-footer__info\"\n }, [_createVNode(\"div\", null, [t(props.pageText, !itemsLength.value ? 0 : startIndex.value + 1, stopIndex.value, itemsLength.value)])]), _createVNode(\"div\", {\n \"class\": \"v-data-table-footer__pagination\"\n }, [_createVNode(VPagination, _mergeProps({\n \"modelValue\": page.value,\n \"onUpdate:modelValue\": $event => page.value = $event,\n \"density\": \"comfortable\",\n \"first-aria-label\": props.firstPageLabel,\n \"last-aria-label\": props.lastPageLabel,\n \"length\": pageCount.value,\n \"next-aria-label\": props.nextPageLabel,\n \"previous-aria-label\": props.prevPageLabel,\n \"rounded\": true,\n \"show-first-last-page\": true,\n \"total-visible\": props.showCurrentPage ? 1 : 0,\n \"variant\": \"plain\"\n }, paginationProps), null)])]);\n });\n return {};\n }\n});\n//# sourceMappingURL=VDataTableFooter.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Utilities\nimport { convertToUnit, defineFunctionalComponent } from \"../../util/index.mjs\"; // Types\nexport const VDataTableColumn = defineFunctionalComponent({\n align: {\n type: String,\n default: 'start'\n },\n fixed: Boolean,\n fixedOffset: [Number, String],\n height: [Number, String],\n lastFixed: Boolean,\n noPadding: Boolean,\n tag: String,\n width: [Number, String],\n maxWidth: [Number, String],\n nowrap: Boolean\n}, (props, _ref) => {\n let {\n slots\n } = _ref;\n const Tag = props.tag ?? 'td';\n return _createVNode(Tag, {\n \"class\": ['v-data-table__td', {\n 'v-data-table-column--fixed': props.fixed,\n 'v-data-table-column--last-fixed': props.lastFixed,\n 'v-data-table-column--no-padding': props.noPadding,\n 'v-data-table-column--nowrap': props.nowrap\n }, `v-data-table-column--align-${props.align}`],\n \"style\": {\n height: convertToUnit(props.height),\n width: convertToUnit(props.width),\n maxWidth: convertToUnit(props.maxWidth),\n left: convertToUnit(props.fixedOffset || null)\n }\n }, {\n default: () => [slots.default?.()]\n });\n});\n//# sourceMappingURL=VDataTableColumn.mjs.map","// Utilities\nimport { capitalize, inject, provide, ref, watchEffect } from 'vue';\nimport { consoleError, propsFactory } from \"../../../util/index.mjs\"; // Types\nexport const makeDataTableHeaderProps = propsFactory({\n headers: Array\n}, 'DataTable-header');\nexport const VDataTableHeadersSymbol = Symbol.for('vuetify:data-table-headers');\nconst defaultHeader = {\n title: '',\n sortable: false\n};\nconst defaultActionHeader = {\n ...defaultHeader,\n width: 48\n};\nfunction priorityQueue() {\n let arr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n const queue = arr.map(element => ({\n element,\n priority: 0\n }));\n return {\n enqueue: (element, priority) => {\n let added = false;\n for (let i = 0; i < queue.length; i++) {\n const item = queue[i];\n if (item.priority > priority) {\n queue.splice(i, 0, {\n element,\n priority\n });\n added = true;\n break;\n }\n }\n if (!added) queue.push({\n element,\n priority\n });\n },\n size: () => queue.length,\n count: () => {\n let count = 0;\n if (!queue.length) return 0;\n const whole = Math.floor(queue[0].priority);\n for (let i = 0; i < queue.length; i++) {\n if (Math.floor(queue[i].priority) === whole) count += 1;\n }\n return count;\n },\n dequeue: () => {\n return queue.shift();\n }\n };\n}\nfunction extractLeaves(item) {\n let columns = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n if (!item.children) {\n columns.push(item);\n } else {\n for (const child of item.children) {\n extractLeaves(child, columns);\n }\n }\n return columns;\n}\nfunction extractKeys(headers) {\n let keys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Set();\n for (const item of headers) {\n if (item.key) keys.add(item.key);\n if (item.children) {\n extractKeys(item.children, keys);\n }\n }\n return keys;\n}\nfunction getDefaultItem(item) {\n if (!item.key) return undefined;\n if (item.key === 'data-table-group') return defaultHeader;\n if (['data-table-expand', 'data-table-select'].includes(item.key)) return defaultActionHeader;\n return undefined;\n}\nfunction getDepth(item) {\n let depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n if (!item.children) return depth;\n return Math.max(depth, ...item.children.map(child => getDepth(child, depth + 1)));\n}\nfunction parseFixedColumns(items) {\n let seenFixed = false;\n function setFixed(item) {\n let parentFixed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (!item) return;\n if (parentFixed) {\n item.fixed = true;\n }\n if (item.fixed) {\n if (item.children) {\n for (let i = item.children.length - 1; i >= 0; i--) {\n setFixed(item.children[i], true);\n }\n } else {\n if (!seenFixed) {\n item.lastFixed = true;\n } else if (isNaN(+item.width)) {\n consoleError(`Multiple fixed columns should have a static width (key: ${item.key})`);\n }\n seenFixed = true;\n }\n } else {\n if (item.children) {\n for (let i = item.children.length - 1; i >= 0; i--) {\n setFixed(item.children[i]);\n }\n } else {\n seenFixed = false;\n }\n }\n }\n for (let i = items.length - 1; i >= 0; i--) {\n setFixed(items[i]);\n }\n function setFixedOffset(item) {\n let fixedOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n if (!item) return fixedOffset;\n if (item.children) {\n item.fixedOffset = fixedOffset;\n for (const child of item.children) {\n fixedOffset = setFixedOffset(child, fixedOffset);\n }\n } else if (item.fixed) {\n item.fixedOffset = fixedOffset;\n fixedOffset += parseFloat(item.width || '0') || 0;\n }\n return fixedOffset;\n }\n let fixedOffset = 0;\n for (const item of items) {\n fixedOffset = setFixedOffset(item, fixedOffset);\n }\n}\nfunction parse(items, maxDepth) {\n const headers = [];\n let currentDepth = 0;\n const queue = priorityQueue(items);\n while (queue.size() > 0) {\n let rowSize = queue.count();\n const row = [];\n let fraction = 1;\n while (rowSize > 0) {\n const {\n element: item,\n priority\n } = queue.dequeue();\n const diff = maxDepth - currentDepth - getDepth(item);\n row.push({\n ...item,\n rowspan: diff ?? 1,\n colspan: item.children ? extractLeaves(item).length : 1\n });\n if (item.children) {\n for (const child of item.children) {\n // This internally sorts items that are on the same priority \"row\"\n const sort = priority % 1 + fraction / Math.pow(10, currentDepth + 2);\n queue.enqueue(child, currentDepth + diff + sort);\n }\n }\n fraction += 1;\n rowSize -= 1;\n }\n currentDepth += 1;\n headers.push(row);\n }\n const columns = items.map(item => extractLeaves(item)).flat();\n return {\n columns,\n headers\n };\n}\nfunction convertToInternalHeaders(items) {\n const internalHeaders = [];\n for (const item of items) {\n const defaultItem = {\n ...getDefaultItem(item),\n ...item\n };\n const key = defaultItem.key ?? (typeof defaultItem.value === 'string' ? defaultItem.value : null);\n const value = defaultItem.value ?? key ?? null;\n const internalItem = {\n ...defaultItem,\n key,\n value,\n sortable: defaultItem.sortable ?? (defaultItem.key != null || !!defaultItem.sort),\n children: defaultItem.children ? convertToInternalHeaders(defaultItem.children) : undefined\n };\n internalHeaders.push(internalItem);\n }\n return internalHeaders;\n}\nexport function createHeaders(props, options) {\n const headers = ref([]);\n const columns = ref([]);\n const sortFunctions = ref({});\n const sortRawFunctions = ref({});\n const filterFunctions = ref({});\n watchEffect(() => {\n const _headers = props.headers || Object.keys(props.items[0] ?? {}).map(key => ({\n key,\n title: capitalize(key)\n }));\n const items = _headers.slice();\n const keys = extractKeys(items);\n if (options?.groupBy?.value.length && !keys.has('data-table-group')) {\n items.unshift({\n key: 'data-table-group',\n title: 'Group'\n });\n }\n if (options?.showSelect?.value && !keys.has('data-table-select')) {\n items.unshift({\n key: 'data-table-select'\n });\n }\n if (options?.showExpand?.value && !keys.has('data-table-expand')) {\n items.push({\n key: 'data-table-expand'\n });\n }\n const internalHeaders = convertToInternalHeaders(items);\n parseFixedColumns(internalHeaders);\n const maxDepth = Math.max(...internalHeaders.map(item => getDepth(item))) + 1;\n const parsed = parse(internalHeaders, maxDepth);\n headers.value = parsed.headers;\n columns.value = parsed.columns;\n const flatHeaders = parsed.headers.flat(1);\n for (const header of flatHeaders) {\n if (!header.key) continue;\n if (header.sortable) {\n if (header.sort) {\n sortFunctions.value[header.key] = header.sort;\n }\n if (header.sortRaw) {\n sortRawFunctions.value[header.key] = header.sortRaw;\n }\n }\n if (header.filter) {\n filterFunctions.value[header.key] = header.filter;\n }\n }\n });\n const data = {\n headers,\n columns,\n sortFunctions,\n sortRawFunctions,\n filterFunctions\n };\n provide(VDataTableHeadersSymbol, data);\n return data;\n}\nexport function useHeaders() {\n const data = inject(VDataTableHeadersSymbol);\n if (!data) throw new Error('Missing headers!');\n return data;\n}\n//# sourceMappingURL=headers.mjs.map","import { createVNode as _createVNode, mergeProps as _mergeProps, Fragment as _Fragment } from \"vue\";\n// Components\nimport { VDataTableColumn } from \"./VDataTableColumn.mjs\";\nimport { VCheckboxBtn } from \"../VCheckbox/index.mjs\";\nimport { VChip } from \"../VChip/index.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\";\nimport { VSelect } from \"../VSelect/index.mjs\"; // Composables\nimport { useHeaders } from \"./composables/headers.mjs\";\nimport { useSelection } from \"./composables/select.mjs\";\nimport { useSort } from \"./composables/sort.mjs\";\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeDisplayProps, useDisplay } from \"../../composables/display.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { LoaderSlot, makeLoaderProps, useLoader } from \"../../composables/loader.mjs\";\nimport { useLocale } from \"../../composables/locale.mjs\"; // Utilities\nimport { computed, mergeProps } from 'vue';\nimport { convertToUnit, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVDataTableHeadersProps = propsFactory({\n color: String,\n disableSort: Boolean,\n fixedHeader: Boolean,\n multiSort: Boolean,\n sortAscIcon: {\n type: IconValue,\n default: '$sortAsc'\n },\n sortDescIcon: {\n type: IconValue,\n default: '$sortDesc'\n },\n headerProps: {\n type: Object\n },\n /** @deprecated */\n sticky: Boolean,\n ...makeDisplayProps(),\n ...makeLoaderProps()\n}, 'VDataTableHeaders');\nexport const VDataTableHeaders = genericComponent()({\n name: 'VDataTableHeaders',\n props: makeVDataTableHeadersProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n t\n } = useLocale();\n const {\n toggleSort,\n sortBy,\n isSorted\n } = useSort();\n const {\n someSelected,\n allSelected,\n selectAll,\n showSelectAll\n } = useSelection();\n const {\n columns,\n headers\n } = useHeaders();\n const {\n loaderClasses\n } = useLoader(props);\n function getFixedStyles(column, y) {\n if (!(props.sticky || props.fixedHeader) && !column.fixed) return undefined;\n return {\n position: 'sticky',\n left: column.fixed ? convertToUnit(column.fixedOffset) : undefined,\n top: props.sticky || props.fixedHeader ? `calc(var(--v-table-header-height) * ${y})` : undefined\n };\n }\n function getSortIcon(column) {\n const item = sortBy.value.find(item => item.key === column.key);\n if (!item) return props.sortAscIcon;\n return item.order === 'asc' ? props.sortAscIcon : props.sortDescIcon;\n }\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(props, 'color');\n const {\n displayClasses,\n mobile\n } = useDisplay(props);\n const slotProps = computed(() => ({\n headers: headers.value,\n columns: columns.value,\n toggleSort,\n isSorted,\n sortBy: sortBy.value,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n selectAll,\n getSortIcon\n }));\n const headerCellClasses = computed(() => ['v-data-table__th', {\n 'v-data-table__th--sticky': props.sticky || props.fixedHeader\n }, displayClasses.value, loaderClasses.value]);\n const VDataTableHeaderCell = _ref2 => {\n let {\n column,\n x,\n y\n } = _ref2;\n const noPadding = column.key === 'data-table-select' || column.key === 'data-table-expand';\n const headerProps = mergeProps(props.headerProps ?? {}, column.headerProps ?? {});\n return _createVNode(VDataTableColumn, _mergeProps({\n \"tag\": \"th\",\n \"align\": column.align,\n \"class\": [{\n 'v-data-table__th--sortable': column.sortable && !props.disableSort,\n 'v-data-table__th--sorted': isSorted(column),\n 'v-data-table__th--fixed': column.fixed\n }, ...headerCellClasses.value],\n \"style\": {\n width: convertToUnit(column.width),\n minWidth: convertToUnit(column.minWidth),\n maxWidth: convertToUnit(column.maxWidth),\n ...getFixedStyles(column, y)\n },\n \"colspan\": column.colspan,\n \"rowspan\": column.rowspan,\n \"onClick\": column.sortable ? () => toggleSort(column) : undefined,\n \"fixed\": column.fixed,\n \"nowrap\": column.nowrap,\n \"lastFixed\": column.lastFixed,\n \"noPadding\": noPadding\n }, headerProps), {\n default: () => {\n const columnSlotName = `header.${column.key}`;\n const columnSlotProps = {\n column,\n selectAll,\n isSorted,\n toggleSort,\n sortBy: sortBy.value,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n getSortIcon\n };\n if (slots[columnSlotName]) return slots[columnSlotName](columnSlotProps);\n if (column.key === 'data-table-select') {\n return slots['header.data-table-select']?.(columnSlotProps) ?? (showSelectAll.value && _createVNode(VCheckboxBtn, {\n \"modelValue\": allSelected.value,\n \"indeterminate\": someSelected.value && !allSelected.value,\n \"onUpdate:modelValue\": selectAll\n }, null));\n }\n return _createVNode(\"div\", {\n \"class\": \"v-data-table-header__content\"\n }, [_createVNode(\"span\", null, [column.title]), column.sortable && !props.disableSort && _createVNode(VIcon, {\n \"key\": \"icon\",\n \"class\": \"v-data-table-header__sort-icon\",\n \"icon\": getSortIcon(column)\n }, null), props.multiSort && isSorted(column) && _createVNode(\"div\", {\n \"key\": \"badge\",\n \"class\": ['v-data-table-header__sort-badge', ...backgroundColorClasses.value],\n \"style\": backgroundColorStyles.value\n }, [sortBy.value.findIndex(x => x.key === column.key) + 1])]);\n }\n });\n };\n const VDataTableMobileHeaderCell = () => {\n const headerProps = mergeProps(props.headerProps ?? {} ?? {});\n const displayItems = computed(() => {\n return columns.value.filter(column => column?.sortable && !props.disableSort);\n });\n const appendIcon = computed(() => {\n const showSelectColumn = columns.value.find(column => column.key === 'data-table-select');\n if (showSelectColumn == null) return;\n return allSelected.value ? '$checkboxOn' : someSelected.value ? '$checkboxIndeterminate' : '$checkboxOff';\n });\n return _createVNode(VDataTableColumn, _mergeProps({\n \"tag\": \"th\",\n \"class\": [...headerCellClasses.value],\n \"colspan\": headers.value.length + 1\n }, headerProps), {\n default: () => [_createVNode(\"div\", {\n \"class\": \"v-data-table-header__content\"\n }, [_createVNode(VSelect, {\n \"chips\": true,\n \"class\": \"v-data-table__td-sort-select\",\n \"clearable\": true,\n \"density\": \"default\",\n \"items\": displayItems.value,\n \"label\": t('$vuetify.dataTable.sortBy'),\n \"multiple\": props.multiSort,\n \"variant\": \"underlined\",\n \"onClick:clear\": () => sortBy.value = [],\n \"appendIcon\": appendIcon.value,\n \"onClick:append\": () => selectAll(!allSelected.value)\n }, {\n ...slots,\n chip: props => _createVNode(VChip, {\n \"onClick\": props.item.raw?.sortable ? () => toggleSort(props.item.raw) : undefined,\n \"onMousedown\": e => {\n e.preventDefault();\n e.stopPropagation();\n }\n }, {\n default: () => [props.item.title, _createVNode(VIcon, {\n \"class\": ['v-data-table__td-sort-icon', isSorted(props.item.raw) && 'v-data-table__td-sort-icon-active'],\n \"icon\": getSortIcon(props.item.raw),\n \"size\": \"small\"\n }, null)]\n })\n })])]\n });\n };\n useRender(() => {\n return mobile.value ? _createVNode(\"tr\", null, [_createVNode(VDataTableMobileHeaderCell, null, null)]) : _createVNode(_Fragment, null, [slots.headers ? slots.headers(slotProps.value) : headers.value.map((row, y) => _createVNode(\"tr\", null, [row.map((column, x) => _createVNode(VDataTableHeaderCell, {\n \"column\": column,\n \"x\": x,\n \"y\": y\n }, null))])), props.loading && _createVNode(\"tr\", {\n \"class\": \"v-data-table-progress\"\n }, [_createVNode(\"th\", {\n \"colspan\": columns.value.length\n }, [_createVNode(LoaderSlot, {\n \"name\": \"v-data-table-progress\",\n \"absolute\": true,\n \"active\": true,\n \"color\": typeof props.loading === 'boolean' ? undefined : props.loading,\n \"indeterminate\": true\n }, {\n default: slots.loader\n })])])]);\n });\n }\n});\n//# sourceMappingURL=VDataTableHeaders.mjs.map","import { createVNode as _createVNode, createTextVNode as _createTextVNode } from \"vue\";\n// Components\nimport { VDataTableColumn } from \"./VDataTableColumn.mjs\";\nimport { VBtn } from \"../VBtn/index.mjs\";\nimport { VCheckboxBtn } from \"../VCheckbox/index.mjs\"; // Composables\nimport { useGroupBy } from \"./composables/group.mjs\";\nimport { useHeaders } from \"./composables/headers.mjs\";\nimport { useSelection } from \"./composables/select.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { genericComponent, propsFactory } from \"../../util/index.mjs\"; // Types\nexport const makeVDataTableGroupHeaderRowProps = propsFactory({\n item: {\n type: Object,\n required: true\n }\n}, 'VDataTableGroupHeaderRow');\nexport const VDataTableGroupHeaderRow = genericComponent()({\n name: 'VDataTableGroupHeaderRow',\n props: makeVDataTableGroupHeaderRowProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n isGroupOpen,\n toggleGroup,\n extractRows\n } = useGroupBy();\n const {\n isSelected,\n isSomeSelected,\n select\n } = useSelection();\n const {\n columns\n } = useHeaders();\n const rows = computed(() => {\n return extractRows([props.item]);\n });\n return () => _createVNode(\"tr\", {\n \"class\": \"v-data-table-group-header-row\",\n \"style\": {\n '--v-data-table-group-header-row-depth': props.item.depth\n }\n }, [columns.value.map(column => {\n if (column.key === 'data-table-group') {\n const icon = isGroupOpen(props.item) ? '$expand' : '$next';\n const onClick = () => toggleGroup(props.item);\n return slots['data-table-group']?.({\n item: props.item,\n count: rows.value.length,\n props: {\n icon,\n onClick\n }\n }) ?? _createVNode(VDataTableColumn, {\n \"class\": \"v-data-table-group-header-row__column\"\n }, {\n default: () => [_createVNode(VBtn, {\n \"size\": \"small\",\n \"variant\": \"text\",\n \"icon\": icon,\n \"onClick\": onClick\n }, null), _createVNode(\"span\", null, [props.item.value]), _createVNode(\"span\", null, [_createTextVNode(\"(\"), rows.value.length, _createTextVNode(\")\")])]\n });\n }\n if (column.key === 'data-table-select') {\n const modelValue = isSelected(rows.value);\n const indeterminate = isSomeSelected(rows.value) && !modelValue;\n const selectGroup = v => select(rows.value, v);\n return slots['data-table-select']?.({\n props: {\n modelValue,\n indeterminate,\n 'onUpdate:modelValue': selectGroup\n }\n }) ?? _createVNode(\"td\", null, [_createVNode(VCheckboxBtn, {\n \"modelValue\": modelValue,\n \"indeterminate\": indeterminate,\n \"onUpdate:modelValue\": selectGroup\n }, null)]);\n }\n return _createVNode(\"td\", null, null);\n })]);\n }\n});\n//# sourceMappingURL=VDataTableGroupHeaderRow.mjs.map","import { createVNode as _createVNode, Fragment as _Fragment, mergeProps as _mergeProps } from \"vue\";\n// Components\nimport { VDataTableColumn } from \"./VDataTableColumn.mjs\";\nimport { VBtn } from \"../VBtn/index.mjs\";\nimport { VCheckboxBtn } from \"../VCheckbox/index.mjs\"; // Composables\nimport { useExpanded } from \"./composables/expand.mjs\";\nimport { useHeaders } from \"./composables/headers.mjs\";\nimport { useSelection } from \"./composables/select.mjs\";\nimport { useSort } from \"./composables/sort.mjs\";\nimport { makeDisplayProps, useDisplay } from \"../../composables/display.mjs\"; // Utilities\nimport { toDisplayString, withModifiers } from 'vue';\nimport { EventProp, genericComponent, getObjectValueByPath, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVDataTableRowProps = propsFactory({\n index: Number,\n item: Object,\n cellProps: [Object, Function],\n onClick: EventProp(),\n onContextmenu: EventProp(),\n onDblclick: EventProp(),\n ...makeDisplayProps()\n}, 'VDataTableRow');\nexport const VDataTableRow = genericComponent()({\n name: 'VDataTableRow',\n props: makeVDataTableRowProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n displayClasses,\n mobile\n } = useDisplay(props, 'v-data-table__tr');\n const {\n isSelected,\n toggleSelect,\n someSelected,\n allSelected,\n selectAll\n } = useSelection();\n const {\n isExpanded,\n toggleExpand\n } = useExpanded();\n const {\n toggleSort,\n sortBy,\n isSorted\n } = useSort();\n const {\n columns\n } = useHeaders();\n useRender(() => _createVNode(\"tr\", {\n \"class\": ['v-data-table__tr', {\n 'v-data-table__tr--clickable': !!(props.onClick || props.onContextmenu || props.onDblclick)\n }, displayClasses.value],\n \"onClick\": props.onClick,\n \"onContextmenu\": props.onContextmenu,\n \"onDblclick\": props.onDblclick\n }, [props.item && columns.value.map((column, i) => {\n const item = props.item;\n const slotName = `item.${column.key}`;\n const headerSlotName = `header.${column.key}`;\n const slotProps = {\n index: props.index,\n item: item.raw,\n internalItem: item,\n value: getObjectValueByPath(item.columns, column.key),\n column,\n isSelected,\n toggleSelect,\n isExpanded,\n toggleExpand\n };\n const columnSlotProps = {\n column,\n selectAll,\n isSorted,\n toggleSort,\n sortBy: sortBy.value,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n getSortIcon: () => ''\n };\n const cellProps = typeof props.cellProps === 'function' ? props.cellProps({\n index: slotProps.index,\n item: slotProps.item,\n internalItem: slotProps.internalItem,\n value: slotProps.value,\n column\n }) : props.cellProps;\n const columnCellProps = typeof column.cellProps === 'function' ? column.cellProps({\n index: slotProps.index,\n item: slotProps.item,\n internalItem: slotProps.internalItem,\n value: slotProps.value\n }) : column.cellProps;\n return _createVNode(VDataTableColumn, _mergeProps({\n \"align\": column.align,\n \"class\": {\n 'v-data-table__td--expanded-row': column.key === 'data-table-expand',\n 'v-data-table__td--select-row': column.key === 'data-table-select'\n },\n \"fixed\": column.fixed,\n \"fixedOffset\": column.fixedOffset,\n \"lastFixed\": column.lastFixed,\n \"maxWidth\": !mobile.value ? column.maxWidth : undefined,\n \"noPadding\": column.key === 'data-table-select' || column.key === 'data-table-expand',\n \"nowrap\": column.nowrap,\n \"width\": !mobile.value ? column.width : undefined\n }, cellProps, columnCellProps), {\n default: () => {\n if (slots[slotName] && !mobile.value) return slots[slotName]?.(slotProps);\n if (column.key === 'data-table-select') {\n return slots['item.data-table-select']?.(slotProps) ?? _createVNode(VCheckboxBtn, {\n \"disabled\": !item.selectable,\n \"modelValue\": isSelected([item]),\n \"onClick\": withModifiers(() => toggleSelect(item), ['stop'])\n }, null);\n }\n if (column.key === 'data-table-expand') {\n return slots['item.data-table-expand']?.(slotProps) ?? _createVNode(VBtn, {\n \"icon\": isExpanded(item) ? '$collapse' : '$expand',\n \"size\": \"small\",\n \"variant\": \"text\",\n \"onClick\": withModifiers(() => toggleExpand(item), ['stop'])\n }, null);\n }\n const displayValue = toDisplayString(slotProps.value);\n return !mobile.value ? displayValue : _createVNode(_Fragment, null, [_createVNode(\"div\", {\n \"class\": \"v-data-table__td-title\"\n }, [slots[headerSlotName]?.(columnSlotProps) ?? column.title]), _createVNode(\"div\", {\n \"class\": \"v-data-table__td-value\"\n }, [slots[slotName]?.(slotProps) ?? displayValue])]);\n }\n });\n })]));\n }\n});\n//# sourceMappingURL=VDataTableRow.mjs.map","import { createVNode as _createVNode, Fragment as _Fragment, mergeProps as _mergeProps } from \"vue\";\n// Components\nimport { VDataTableGroupHeaderRow } from \"./VDataTableGroupHeaderRow.mjs\";\nimport { VDataTableRow } from \"./VDataTableRow.mjs\"; // Composables\nimport { useExpanded } from \"./composables/expand.mjs\";\nimport { useGroupBy } from \"./composables/group.mjs\";\nimport { useHeaders } from \"./composables/headers.mjs\";\nimport { useSelection } from \"./composables/select.mjs\";\nimport { makeDisplayProps, useDisplay } from \"../../composables/display.mjs\";\nimport { useLocale } from \"../../composables/locale.mjs\"; // Utilities\nimport { Fragment, mergeProps } from 'vue';\nimport { genericComponent, getPrefixedEventHandlers, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVDataTableRowsProps = propsFactory({\n loading: [Boolean, String],\n loadingText: {\n type: String,\n default: '$vuetify.dataIterator.loadingText'\n },\n hideNoData: Boolean,\n items: {\n type: Array,\n default: () => []\n },\n noDataText: {\n type: String,\n default: '$vuetify.noDataText'\n },\n rowProps: [Object, Function],\n cellProps: [Object, Function],\n ...makeDisplayProps()\n}, 'VDataTableRows');\nexport const VDataTableRows = genericComponent()({\n name: 'VDataTableRows',\n inheritAttrs: false,\n props: makeVDataTableRowsProps(),\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const {\n columns\n } = useHeaders();\n const {\n expandOnClick,\n toggleExpand,\n isExpanded\n } = useExpanded();\n const {\n isSelected,\n toggleSelect\n } = useSelection();\n const {\n toggleGroup,\n isGroupOpen\n } = useGroupBy();\n const {\n t\n } = useLocale();\n const {\n mobile\n } = useDisplay(props);\n useRender(() => {\n if (props.loading && (!props.items.length || slots.loading)) {\n return _createVNode(\"tr\", {\n \"class\": \"v-data-table-rows-loading\",\n \"key\": \"loading\"\n }, [_createVNode(\"td\", {\n \"colspan\": columns.value.length\n }, [slots.loading?.() ?? t(props.loadingText)])]);\n }\n if (!props.loading && !props.items.length && !props.hideNoData) {\n return _createVNode(\"tr\", {\n \"class\": \"v-data-table-rows-no-data\",\n \"key\": \"no-data\"\n }, [_createVNode(\"td\", {\n \"colspan\": columns.value.length\n }, [slots['no-data']?.() ?? t(props.noDataText)])]);\n }\n return _createVNode(_Fragment, null, [props.items.map((item, index) => {\n if (item.type === 'group') {\n const slotProps = {\n index,\n item,\n columns: columns.value,\n isExpanded,\n toggleExpand,\n isSelected,\n toggleSelect,\n toggleGroup,\n isGroupOpen\n };\n return slots['group-header'] ? slots['group-header'](slotProps) : _createVNode(VDataTableGroupHeaderRow, _mergeProps({\n \"key\": `group-header_${item.id}`,\n \"item\": item\n }, getPrefixedEventHandlers(attrs, ':group-header', () => slotProps)), slots);\n }\n const slotProps = {\n index,\n item: item.raw,\n internalItem: item,\n columns: columns.value,\n isExpanded,\n toggleExpand,\n isSelected,\n toggleSelect\n };\n const itemSlotProps = {\n ...slotProps,\n props: mergeProps({\n key: `item_${item.key ?? item.index}`,\n onClick: expandOnClick.value ? () => {\n toggleExpand(item);\n } : undefined,\n index,\n item,\n cellProps: props.cellProps,\n mobile: mobile.value\n }, getPrefixedEventHandlers(attrs, ':row', () => slotProps), typeof props.rowProps === 'function' ? props.rowProps({\n item: slotProps.item,\n index: slotProps.index,\n internalItem: slotProps.internalItem\n }) : props.rowProps)\n };\n return _createVNode(_Fragment, {\n \"key\": itemSlotProps.props.key\n }, [slots.item ? slots.item(itemSlotProps) : _createVNode(VDataTableRow, itemSlotProps.props, slots), isExpanded(item) && slots['expanded-row']?.(slotProps)]);\n })]);\n });\n return {};\n }\n});\n//# sourceMappingURL=VDataTableRows.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VTable.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { convertToUnit, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVTableProps = propsFactory({\n fixedHeader: Boolean,\n fixedFooter: Boolean,\n height: [Number, String],\n hover: Boolean,\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeTagProps(),\n ...makeThemeProps()\n}, 'VTable');\nexport const VTable = genericComponent()({\n name: 'VTable',\n props: makeVTableProps(),\n setup(props, _ref) {\n let {\n slots,\n emit\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n densityClasses\n } = useDensity(props);\n useRender(() => _createVNode(props.tag, {\n \"class\": ['v-table', {\n 'v-table--fixed-height': !!props.height,\n 'v-table--fixed-header': props.fixedHeader,\n 'v-table--fixed-footer': props.fixedFooter,\n 'v-table--has-top': !!slots.top,\n 'v-table--has-bottom': !!slots.bottom,\n 'v-table--hover': props.hover\n }, themeClasses.value, densityClasses.value, props.class],\n \"style\": props.style\n }, {\n default: () => [slots.top?.(), slots.default ? _createVNode(\"div\", {\n \"class\": \"v-table__wrapper\",\n \"style\": {\n height: convertToUnit(props.height)\n }\n }, [_createVNode(\"table\", null, [slots.default()])]) : slots.wrapper?.(), slots.bottom?.()]\n }));\n return {};\n }\n});\n//# sourceMappingURL=VTable.mjs.map","// Utilities\nimport { computed } from 'vue';\nimport { getPropertyFromItem, propsFactory } from \"../../../util/index.mjs\"; // Types\n// Composables\nexport const makeDataTableItemsProps = propsFactory({\n items: {\n type: Array,\n default: () => []\n },\n itemValue: {\n type: [String, Array, Function],\n default: 'id'\n },\n itemSelectable: {\n type: [String, Array, Function],\n default: null\n },\n rowProps: [Object, Function],\n cellProps: [Object, Function],\n returnObject: Boolean\n}, 'DataTable-items');\nexport function transformItem(props, item, index, columns) {\n const value = props.returnObject ? item : getPropertyFromItem(item, props.itemValue);\n const selectable = getPropertyFromItem(item, props.itemSelectable, true);\n const itemColumns = columns.reduce((obj, column) => {\n if (column.key != null) obj[column.key] = getPropertyFromItem(item, column.value);\n return obj;\n }, {});\n return {\n type: 'item',\n key: props.returnObject ? getPropertyFromItem(item, props.itemValue) : value,\n index,\n value,\n selectable,\n columns: itemColumns,\n raw: item\n };\n}\nexport function transformItems(props, items, columns) {\n return items.map((item, index) => transformItem(props, item, index, columns));\n}\nexport function useDataTableItems(props, columns) {\n const items = computed(() => transformItems(props, props.items, columns.value));\n return {\n items\n };\n}\n//# sourceMappingURL=items.mjs.map","import { Fragment as _Fragment, createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\n// Styles\nimport \"./VDataTable.css\";\n\n// Components\nimport { makeVDataTableFooterProps, VDataTableFooter } from \"./VDataTableFooter.mjs\";\nimport { makeVDataTableHeadersProps, VDataTableHeaders } from \"./VDataTableHeaders.mjs\";\nimport { makeVDataTableRowsProps, VDataTableRows } from \"./VDataTableRows.mjs\";\nimport { VDivider } from \"../VDivider/index.mjs\";\nimport { makeVTableProps, VTable } from \"../VTable/VTable.mjs\"; // Composables\nimport { makeDataTableExpandProps, provideExpanded } from \"./composables/expand.mjs\";\nimport { createGroupBy, makeDataTableGroupProps, provideGroupBy, useGroupedItems } from \"./composables/group.mjs\";\nimport { createHeaders, makeDataTableHeaderProps } from \"./composables/headers.mjs\";\nimport { makeDataTableItemsProps, useDataTableItems } from \"./composables/items.mjs\";\nimport { useOptions } from \"./composables/options.mjs\";\nimport { createPagination, makeDataTablePaginateProps, providePagination, usePaginatedItems } from \"./composables/paginate.mjs\";\nimport { makeDataTableSelectProps, provideSelection } from \"./composables/select.mjs\";\nimport { createSort, makeDataTableSortProps, provideSort, useSortedItems } from \"./composables/sort.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeFilterProps, useFilter } from \"../../composables/filter.mjs\"; // Utilities\nimport { computed, toRef, toRefs } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeDataTableProps = propsFactory({\n ...makeVDataTableRowsProps(),\n hideDefaultBody: Boolean,\n hideDefaultFooter: Boolean,\n hideDefaultHeader: Boolean,\n width: [String, Number],\n search: String,\n ...makeDataTableExpandProps(),\n ...makeDataTableGroupProps(),\n ...makeDataTableHeaderProps(),\n ...makeDataTableItemsProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...makeVDataTableHeadersProps(),\n ...makeVTableProps()\n}, 'DataTable');\nexport const makeVDataTableProps = propsFactory({\n ...makeDataTablePaginateProps(),\n ...makeDataTableProps(),\n ...makeFilterProps(),\n ...makeVDataTableFooterProps()\n}, 'VDataTable');\nexport const VDataTable = genericComponent()({\n name: 'VDataTable',\n props: makeVDataTableProps(),\n emits: {\n 'update:modelValue': value => true,\n 'update:page': value => true,\n 'update:itemsPerPage': value => true,\n 'update:sortBy': value => true,\n 'update:options': value => true,\n 'update:groupBy': value => true,\n 'update:expanded': value => true,\n 'update:currentItems': value => true\n },\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const {\n groupBy\n } = createGroupBy(props);\n const {\n sortBy,\n multiSort,\n mustSort\n } = createSort(props);\n const {\n page,\n itemsPerPage\n } = createPagination(props);\n const {\n disableSort\n } = toRefs(props);\n const {\n columns,\n headers,\n sortFunctions,\n sortRawFunctions,\n filterFunctions\n } = createHeaders(props, {\n groupBy,\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand')\n });\n const {\n items\n } = useDataTableItems(props, columns);\n const search = toRef(props, 'search');\n const {\n filteredItems\n } = useFilter(props, items, search, {\n transform: item => item.columns,\n customKeyFilter: filterFunctions\n });\n const {\n toggleSort\n } = provideSort({\n sortBy,\n multiSort,\n mustSort,\n page\n });\n const {\n sortByWithGroups,\n opened,\n extractRows,\n isGroupOpen,\n toggleGroup\n } = provideGroupBy({\n groupBy,\n sortBy,\n disableSort\n });\n const {\n sortedItems\n } = useSortedItems(props, filteredItems, sortByWithGroups, {\n transform: item => ({\n ...item.raw,\n ...item.columns\n }),\n sortFunctions,\n sortRawFunctions\n });\n const {\n flatItems\n } = useGroupedItems(sortedItems, groupBy, opened);\n const itemsLength = computed(() => flatItems.value.length);\n const {\n startIndex,\n stopIndex,\n pageCount,\n setItemsPerPage\n } = providePagination({\n page,\n itemsPerPage,\n itemsLength\n });\n const {\n paginatedItems\n } = usePaginatedItems({\n items: flatItems,\n startIndex,\n stopIndex,\n itemsPerPage\n });\n const paginatedItemsWithoutGroups = computed(() => extractRows(paginatedItems.value));\n const {\n isSelected,\n select,\n selectAll,\n toggleSelect,\n someSelected,\n allSelected\n } = provideSelection(props, {\n allItems: items,\n currentPage: paginatedItemsWithoutGroups\n });\n const {\n isExpanded,\n toggleExpand\n } = provideExpanded(props);\n useOptions({\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n search\n });\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n loading: toRef(props, 'loading'),\n loadingText: toRef(props, 'loadingText')\n }\n });\n const slotProps = computed(() => ({\n page: page.value,\n itemsPerPage: itemsPerPage.value,\n sortBy: sortBy.value,\n pageCount: pageCount.value,\n toggleSort,\n setItemsPerPage,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n isSelected,\n select,\n selectAll,\n toggleSelect,\n isExpanded,\n toggleExpand,\n isGroupOpen,\n toggleGroup,\n items: paginatedItemsWithoutGroups.value.map(item => item.raw),\n internalItems: paginatedItemsWithoutGroups.value,\n groupedItems: paginatedItems.value,\n columns: columns.value,\n headers: headers.value\n }));\n useRender(() => {\n const dataTableFooterProps = VDataTableFooter.filterProps(props);\n const dataTableHeadersProps = VDataTableHeaders.filterProps(props);\n const dataTableRowsProps = VDataTableRows.filterProps(props);\n const tableProps = VTable.filterProps(props);\n return _createVNode(VTable, _mergeProps({\n \"class\": ['v-data-table', {\n 'v-data-table--show-select': props.showSelect,\n 'v-data-table--loading': props.loading\n }, props.class],\n \"style\": props.style\n }, tableProps, {\n \"fixedHeader\": props.fixedHeader || props.sticky\n }), {\n top: () => slots.top?.(slotProps.value),\n default: () => slots.default ? slots.default(slotProps.value) : _createVNode(_Fragment, null, [slots.colgroup?.(slotProps.value), !props.hideDefaultHeader && _createVNode(\"thead\", {\n \"key\": \"thead\"\n }, [_createVNode(VDataTableHeaders, dataTableHeadersProps, slots)]), slots.thead?.(slotProps.value), !props.hideDefaultBody && _createVNode(\"tbody\", null, [slots['body.prepend']?.(slotProps.value), slots.body ? slots.body(slotProps.value) : _createVNode(VDataTableRows, _mergeProps(attrs, dataTableRowsProps, {\n \"items\": paginatedItems.value\n }), slots), slots['body.append']?.(slotProps.value)]), slots.tbody?.(slotProps.value), slots.tfoot?.(slotProps.value)]),\n bottom: () => slots.bottom ? slots.bottom(slotProps.value) : !props.hideDefaultFooter && _createVNode(_Fragment, null, [_createVNode(VDivider, null, null), _createVNode(VDataTableFooter, dataTableFooterProps, {\n prepend: slots['footer.prepend']\n })])\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VDataTable.mjs.map","import { createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\n// Components\nimport { makeDataTableProps } from \"./VDataTable.mjs\";\nimport { VDataTableHeaders } from \"./VDataTableHeaders.mjs\";\nimport { VDataTableRow } from \"./VDataTableRow.mjs\";\nimport { VDataTableRows } from \"./VDataTableRows.mjs\";\nimport { VTable } from \"../VTable/index.mjs\";\nimport { VVirtualScrollItem } from \"../VVirtualScroll/VVirtualScrollItem.mjs\"; // Composables\nimport { provideExpanded } from \"./composables/expand.mjs\";\nimport { createGroupBy, makeDataTableGroupProps, provideGroupBy, useGroupedItems } from \"./composables/group.mjs\";\nimport { createHeaders } from \"./composables/headers.mjs\";\nimport { useDataTableItems } from \"./composables/items.mjs\";\nimport { useOptions } from \"./composables/options.mjs\";\nimport { provideSelection } from \"./composables/select.mjs\";\nimport { createSort, provideSort, useSortedItems } from \"./composables/sort.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeFilterProps, useFilter } from \"../../composables/filter.mjs\";\nimport { makeVirtualProps, useVirtual } from \"../../composables/virtual.mjs\"; // Utilities\nimport { computed, shallowRef, toRef, toRefs } from 'vue';\nimport { convertToUnit, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVDataTableVirtualProps = propsFactory({\n ...makeDataTableProps(),\n ...makeDataTableGroupProps(),\n ...makeVirtualProps(),\n ...makeFilterProps()\n}, 'VDataTableVirtual');\nexport const VDataTableVirtual = genericComponent()({\n name: 'VDataTableVirtual',\n props: makeVDataTableVirtualProps(),\n emits: {\n 'update:modelValue': value => true,\n 'update:sortBy': value => true,\n 'update:options': value => true,\n 'update:groupBy': value => true,\n 'update:expanded': value => true\n },\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const {\n groupBy\n } = createGroupBy(props);\n const {\n sortBy,\n multiSort,\n mustSort\n } = createSort(props);\n const {\n disableSort\n } = toRefs(props);\n const {\n columns,\n headers,\n filterFunctions,\n sortFunctions,\n sortRawFunctions\n } = createHeaders(props, {\n groupBy,\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand')\n });\n const {\n items\n } = useDataTableItems(props, columns);\n const search = toRef(props, 'search');\n const {\n filteredItems\n } = useFilter(props, items, search, {\n transform: item => item.columns,\n customKeyFilter: filterFunctions\n });\n const {\n toggleSort\n } = provideSort({\n sortBy,\n multiSort,\n mustSort\n });\n const {\n sortByWithGroups,\n opened,\n extractRows,\n isGroupOpen,\n toggleGroup\n } = provideGroupBy({\n groupBy,\n sortBy,\n disableSort\n });\n const {\n sortedItems\n } = useSortedItems(props, filteredItems, sortByWithGroups, {\n transform: item => ({\n ...item.raw,\n ...item.columns\n }),\n sortFunctions,\n sortRawFunctions\n });\n const {\n flatItems\n } = useGroupedItems(sortedItems, groupBy, opened);\n const allItems = computed(() => extractRows(flatItems.value));\n const {\n isSelected,\n select,\n selectAll,\n toggleSelect,\n someSelected,\n allSelected\n } = provideSelection(props, {\n allItems,\n currentPage: allItems\n });\n const {\n isExpanded,\n toggleExpand\n } = provideExpanded(props);\n const {\n containerRef,\n markerRef,\n paddingTop,\n paddingBottom,\n computedItems,\n handleItemResize,\n handleScroll,\n handleScrollend\n } = useVirtual(props, flatItems);\n const displayItems = computed(() => computedItems.value.map(item => item.raw));\n useOptions({\n sortBy,\n page: shallowRef(1),\n itemsPerPage: shallowRef(-1),\n groupBy,\n search\n });\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n loading: toRef(props, 'loading'),\n loadingText: toRef(props, 'loadingText')\n }\n });\n const slotProps = computed(() => ({\n sortBy: sortBy.value,\n toggleSort,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n isSelected,\n select,\n selectAll,\n toggleSelect,\n isExpanded,\n toggleExpand,\n isGroupOpen,\n toggleGroup,\n items: allItems.value.map(item => item.raw),\n internalItems: allItems.value,\n groupedItems: flatItems.value,\n columns: columns.value,\n headers: headers.value\n }));\n useRender(() => {\n const dataTableHeadersProps = VDataTableHeaders.filterProps(props);\n const dataTableRowsProps = VDataTableRows.filterProps(props);\n const tableProps = VTable.filterProps(props);\n return _createVNode(VTable, _mergeProps({\n \"class\": ['v-data-table', {\n 'v-data-table--loading': props.loading\n }, props.class],\n \"style\": props.style\n }, tableProps, {\n \"fixedHeader\": props.fixedHeader || props.sticky\n }), {\n top: () => slots.top?.(slotProps.value),\n wrapper: () => _createVNode(\"div\", {\n \"ref\": containerRef,\n \"onScrollPassive\": handleScroll,\n \"onScrollend\": handleScrollend,\n \"class\": \"v-table__wrapper\",\n \"style\": {\n height: convertToUnit(props.height)\n }\n }, [_createVNode(\"table\", null, [slots.colgroup?.(slotProps.value), !props.hideDefaultHeader && _createVNode(\"thead\", {\n \"key\": \"thead\"\n }, [_createVNode(VDataTableHeaders, dataTableHeadersProps, slots)]), !props.hideDefaultBody && _createVNode(\"tbody\", null, [_createVNode(\"tr\", {\n \"ref\": markerRef,\n \"style\": {\n height: convertToUnit(paddingTop.value),\n border: 0\n }\n }, [_createVNode(\"td\", {\n \"colspan\": columns.value.length,\n \"style\": {\n height: 0,\n border: 0\n }\n }, null)]), slots['body.prepend']?.(slotProps.value), _createVNode(VDataTableRows, _mergeProps(attrs, dataTableRowsProps, {\n \"items\": displayItems.value\n }), {\n ...slots,\n item: itemSlotProps => _createVNode(VVirtualScrollItem, {\n \"key\": itemSlotProps.internalItem.index,\n \"renderless\": true,\n \"onUpdate:height\": height => handleItemResize(itemSlotProps.internalItem.index, height)\n }, {\n default: _ref2 => {\n let {\n itemRef\n } = _ref2;\n return slots.item?.({\n ...itemSlotProps,\n itemRef\n }) ?? _createVNode(VDataTableRow, _mergeProps(itemSlotProps.props, {\n \"ref\": itemRef,\n \"key\": itemSlotProps.internalItem.index,\n \"index\": itemSlotProps.internalItem.index\n }), slots);\n }\n })\n }), slots['body.append']?.(slotProps.value), _createVNode(\"tr\", {\n \"style\": {\n height: convertToUnit(paddingBottom.value),\n border: 0\n }\n }, [_createVNode(\"td\", {\n \"colspan\": columns.value.length,\n \"style\": {\n height: 0,\n border: 0\n }\n }, null)])])])]),\n bottom: () => slots.bottom?.(slotProps.value)\n });\n });\n }\n});\n//# sourceMappingURL=VDataTableVirtual.mjs.map","import { Fragment as _Fragment, createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\n// Components\nimport { makeDataTableProps } from \"./VDataTable.mjs\";\nimport { makeVDataTableFooterProps, VDataTableFooter } from \"./VDataTableFooter.mjs\";\nimport { VDataTableHeaders } from \"./VDataTableHeaders.mjs\";\nimport { VDataTableRows } from \"./VDataTableRows.mjs\";\nimport { VDivider } from \"../VDivider/index.mjs\";\nimport { VTable } from \"../VTable/index.mjs\"; // Composables\nimport { provideExpanded } from \"./composables/expand.mjs\";\nimport { createGroupBy, provideGroupBy, useGroupedItems } from \"./composables/group.mjs\";\nimport { createHeaders } from \"./composables/headers.mjs\";\nimport { useDataTableItems } from \"./composables/items.mjs\";\nimport { useOptions } from \"./composables/options.mjs\";\nimport { createPagination, makeDataTablePaginateProps, providePagination } from \"./composables/paginate.mjs\";\nimport { provideSelection } from \"./composables/select.mjs\";\nimport { createSort, provideSort } from \"./composables/sort.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\"; // Utilities\nimport { computed, provide, toRef, toRefs } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVDataTableServerProps = propsFactory({\n itemsLength: {\n type: [Number, String],\n required: true\n },\n ...makeDataTablePaginateProps(),\n ...makeDataTableProps(),\n ...makeVDataTableFooterProps()\n}, 'VDataTableServer');\nexport const VDataTableServer = genericComponent()({\n name: 'VDataTableServer',\n props: makeVDataTableServerProps(),\n emits: {\n 'update:modelValue': value => true,\n 'update:page': page => true,\n 'update:itemsPerPage': page => true,\n 'update:sortBy': sortBy => true,\n 'update:options': options => true,\n 'update:expanded': options => true,\n 'update:groupBy': value => true\n },\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const {\n groupBy\n } = createGroupBy(props);\n const {\n sortBy,\n multiSort,\n mustSort\n } = createSort(props);\n const {\n page,\n itemsPerPage\n } = createPagination(props);\n const {\n disableSort\n } = toRefs(props);\n const itemsLength = computed(() => parseInt(props.itemsLength, 10));\n const {\n columns,\n headers\n } = createHeaders(props, {\n groupBy,\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand')\n });\n const {\n items\n } = useDataTableItems(props, columns);\n const {\n toggleSort\n } = provideSort({\n sortBy,\n multiSort,\n mustSort,\n page\n });\n const {\n opened,\n isGroupOpen,\n toggleGroup,\n extractRows\n } = provideGroupBy({\n groupBy,\n sortBy,\n disableSort\n });\n const {\n pageCount,\n setItemsPerPage\n } = providePagination({\n page,\n itemsPerPage,\n itemsLength\n });\n const {\n flatItems\n } = useGroupedItems(items, groupBy, opened);\n const {\n isSelected,\n select,\n selectAll,\n toggleSelect,\n someSelected,\n allSelected\n } = provideSelection(props, {\n allItems: items,\n currentPage: items\n });\n const {\n isExpanded,\n toggleExpand\n } = provideExpanded(props);\n const itemsWithoutGroups = computed(() => extractRows(items.value));\n useOptions({\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n search: toRef(props, 'search')\n });\n provide('v-data-table', {\n toggleSort,\n sortBy\n });\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n loading: toRef(props, 'loading'),\n loadingText: toRef(props, 'loadingText')\n }\n });\n const slotProps = computed(() => ({\n page: page.value,\n itemsPerPage: itemsPerPage.value,\n sortBy: sortBy.value,\n pageCount: pageCount.value,\n toggleSort,\n setItemsPerPage,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n isSelected,\n select,\n selectAll,\n toggleSelect,\n isExpanded,\n toggleExpand,\n isGroupOpen,\n toggleGroup,\n items: itemsWithoutGroups.value.map(item => item.raw),\n internalItems: itemsWithoutGroups.value,\n groupedItems: flatItems.value,\n columns: columns.value,\n headers: headers.value\n }));\n useRender(() => {\n const dataTableFooterProps = VDataTableFooter.filterProps(props);\n const dataTableHeadersProps = VDataTableHeaders.filterProps(props);\n const dataTableRowsProps = VDataTableRows.filterProps(props);\n const tableProps = VTable.filterProps(props);\n return _createVNode(VTable, _mergeProps({\n \"class\": ['v-data-table', {\n 'v-data-table--loading': props.loading\n }, props.class],\n \"style\": props.style\n }, tableProps, {\n \"fixedHeader\": props.fixedHeader || props.sticky\n }), {\n top: () => slots.top?.(slotProps.value),\n default: () => slots.default ? slots.default(slotProps.value) : _createVNode(_Fragment, null, [slots.colgroup?.(slotProps.value), !props.hideDefaultHeader && _createVNode(\"thead\", {\n \"key\": \"thead\",\n \"class\": \"v-data-table__thead\",\n \"role\": \"rowgroup\"\n }, [_createVNode(VDataTableHeaders, dataTableHeadersProps, slots)]), slots.thead?.(slotProps.value), !props.hideDefaultBody && _createVNode(\"tbody\", {\n \"class\": \"v-data-table__tbody\",\n \"role\": \"rowgroup\"\n }, [slots['body.prepend']?.(slotProps.value), slots.body ? slots.body(slotProps.value) : _createVNode(VDataTableRows, _mergeProps(attrs, dataTableRowsProps, {\n \"items\": flatItems.value\n }), slots), slots['body.append']?.(slotProps.value)]), slots.tbody?.(slotProps.value), slots.tfoot?.(slotProps.value)]),\n bottom: () => slots.bottom ? slots.bottom(slotProps.value) : !props.hideDefaultFooter && _createVNode(_Fragment, null, [_createVNode(VDivider, null, null), _createVNode(VDataTableFooter, dataTableFooterProps, {\n prepend: slots['footer.prepend']\n })])\n });\n });\n }\n});\n//# sourceMappingURL=VDataTableServer.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VGrid.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { useRtl } from \"../../composables/locale.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVContainerProps = propsFactory({\n fluid: {\n type: Boolean,\n default: false\n },\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeTagProps()\n}, 'VContainer');\nexport const VContainer = genericComponent()({\n name: 'VContainer',\n props: makeVContainerProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n rtlClasses\n } = useRtl();\n const {\n dimensionStyles\n } = useDimension(props);\n useRender(() => _createVNode(props.tag, {\n \"class\": ['v-container', {\n 'v-container--fluid': props.fluid\n }, rtlClasses.value, props.class],\n \"style\": [dimensionStyles.value, props.style]\n }, slots));\n return {};\n }\n});\n//# sourceMappingURL=VContainer.mjs.map","// Styles\nimport \"./VGrid.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { breakpoints } from \"../../composables/display.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { capitalize, computed, h } from 'vue';\nimport { genericComponent, propsFactory } from \"../../util/index.mjs\"; // Types\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false\n };\n return props;\n }, {});\n})();\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n const offsetKey = 'offset' + capitalize(val);\n props[offsetKey] = {\n type: [String, Number],\n default: null\n };\n return props;\n }, {});\n})();\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n const orderKey = 'order' + capitalize(val);\n props[orderKey] = {\n type: [String, Number],\n default: null\n };\n return props;\n }, {});\n})();\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps)\n};\nfunction breakpointClass(type, prop, val) {\n let className = type;\n if (val == null || val === false) {\n return undefined;\n }\n if (prop) {\n const breakpoint = prop.replace(type, '');\n className += `-${breakpoint}`;\n }\n if (type === 'col') {\n className = 'v-' + className;\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert <v-col sm></v-col> to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .v-col-md\n return className.toLowerCase();\n }\n // .order-md-6\n className += `-${val}`;\n return className.toLowerCase();\n}\nconst ALIGN_SELF_VALUES = ['auto', 'start', 'end', 'center', 'baseline', 'stretch'];\nexport const makeVColProps = propsFactory({\n cols: {\n type: [Boolean, String, Number],\n default: false\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: str => ALIGN_SELF_VALUES.includes(str)\n },\n ...makeComponentProps(),\n ...makeTagProps()\n}, 'VCol');\nexport const VCol = genericComponent()({\n name: 'VCol',\n props: makeVColProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const classes = computed(() => {\n const classList = [];\n\n // Loop through `col`, `offset`, `order` breakpoint props\n let type;\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value = props[prop];\n const className = breakpointClass(type, prop, value);\n if (className) classList.push(className);\n });\n }\n const hasColClasses = classList.some(className => className.startsWith('v-col-'));\n classList.push({\n // Default to .v-col if no other col-{bp}-* classes generated nor `cols` specified.\n 'v-col': !hasColClasses || !props.cols,\n [`v-col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf\n });\n return classList;\n });\n return () => h(props.tag, {\n class: [classes.value, props.class],\n style: props.style\n }, slots.default?.());\n }\n});\n//# sourceMappingURL=VCol.mjs.map","// Styles\nimport \"./VGrid.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { breakpoints } from \"../../composables/display.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { capitalize, computed, h } from 'vue';\nimport { genericComponent, propsFactory } from \"../../util/index.mjs\"; // Types\nconst ALIGNMENT = ['start', 'end', 'center'];\nconst SPACE = ['space-between', 'space-around', 'space-evenly'];\nfunction makeRowProps(prefix, def) {\n return breakpoints.reduce((props, val) => {\n const prefixKey = prefix + capitalize(val);\n props[prefixKey] = def();\n return props;\n }, {});\n}\nconst ALIGN_VALUES = [...ALIGNMENT, 'baseline', 'stretch'];\nconst alignValidator = str => ALIGN_VALUES.includes(str);\nconst alignProps = makeRowProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator\n}));\nconst JUSTIFY_VALUES = [...ALIGNMENT, ...SPACE];\nconst justifyValidator = str => JUSTIFY_VALUES.includes(str);\nconst justifyProps = makeRowProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator\n}));\nconst ALIGN_CONTENT_VALUES = [...ALIGNMENT, ...SPACE, 'stretch'];\nconst alignContentValidator = str => ALIGN_CONTENT_VALUES.includes(str);\nconst alignContentProps = makeRowProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator\n}));\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps)\n};\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content'\n};\nfunction breakpointClass(type, prop, val) {\n let className = classMap[type];\n if (val == null) {\n return undefined;\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '');\n className += `-${breakpoint}`;\n }\n // .align-items-sm-center\n className += `-${val}`;\n return className.toLowerCase();\n}\nexport const makeVRowProps = propsFactory({\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator\n },\n ...alignContentProps,\n ...makeComponentProps(),\n ...makeTagProps()\n}, 'VRow');\nexport const VRow = genericComponent()({\n name: 'VRow',\n props: makeVRowProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const classes = computed(() => {\n const classList = [];\n\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type;\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value = props[prop];\n const className = breakpointClass(type, prop, value);\n if (className) classList.push(className);\n });\n }\n classList.push({\n 'v-row--no-gutters': props.noGutters,\n 'v-row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent\n });\n return classList;\n });\n return () => h(props.tag, {\n class: ['v-row', classes.value, props.class],\n style: props.style\n }, slots.default?.());\n }\n});\n//# sourceMappingURL=VRow.mjs.map","// Styles\nimport \"./VGrid.css\";\n\n// Utilities\nimport { createSimpleFunctional } from \"../../util/index.mjs\";\nexport const VSpacer = createSimpleFunctional('v-spacer', 'div', 'VSpacer');\n//# sourceMappingURL=VSpacer.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VDatePickerControls.css\";\n\n// Components\nimport { VBtn } from \"../VBtn/index.mjs\";\nimport { VSpacer } from \"../VGrid/index.mjs\"; // Composables\nimport { IconValue } from \"../../composables/icons.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVDatePickerControlsProps = propsFactory({\n active: {\n type: [String, Array],\n default: undefined\n },\n disabled: {\n type: [Boolean, String, Array],\n default: null\n },\n nextIcon: {\n type: IconValue,\n default: '$next'\n },\n prevIcon: {\n type: IconValue,\n default: '$prev'\n },\n modeIcon: {\n type: IconValue,\n default: '$subgroup'\n },\n text: String,\n viewMode: {\n type: String,\n default: 'month'\n }\n}, 'VDatePickerControls');\nexport const VDatePickerControls = genericComponent()({\n name: 'VDatePickerControls',\n props: makeVDatePickerControlsProps(),\n emits: {\n 'click:year': () => true,\n 'click:month': () => true,\n 'click:prev': () => true,\n 'click:next': () => true,\n 'click:text': () => true\n },\n setup(props, _ref) {\n let {\n emit\n } = _ref;\n const disableMonth = computed(() => {\n return Array.isArray(props.disabled) ? props.disabled.includes('text') : !!props.disabled;\n });\n const disableYear = computed(() => {\n return Array.isArray(props.disabled) ? props.disabled.includes('mode') : !!props.disabled;\n });\n const disablePrev = computed(() => {\n return Array.isArray(props.disabled) ? props.disabled.includes('prev') : !!props.disabled;\n });\n const disableNext = computed(() => {\n return Array.isArray(props.disabled) ? props.disabled.includes('next') : !!props.disabled;\n });\n function onClickPrev() {\n emit('click:prev');\n }\n function onClickNext() {\n emit('click:next');\n }\n function onClickYear() {\n emit('click:year');\n }\n function onClickMonth() {\n emit('click:month');\n }\n useRender(() => {\n // TODO: add slot support and scope defaults\n return _createVNode(\"div\", {\n \"class\": ['v-date-picker-controls']\n }, [_createVNode(VBtn, {\n \"class\": \"v-date-picker-controls__month-btn\",\n \"disabled\": disableMonth.value,\n \"text\": props.text,\n \"variant\": \"text\",\n \"rounded\": true,\n \"onClick\": onClickMonth\n }, null), _createVNode(VBtn, {\n \"key\": \"mode-btn\",\n \"class\": \"v-date-picker-controls__mode-btn\",\n \"disabled\": disableYear.value,\n \"density\": \"comfortable\",\n \"icon\": props.modeIcon,\n \"variant\": \"text\",\n \"onClick\": onClickYear\n }, null), _createVNode(VSpacer, {\n \"key\": \"mode-spacer\"\n }, null), _createVNode(\"div\", {\n \"key\": \"month-buttons\",\n \"class\": \"v-date-picker-controls__month\"\n }, [_createVNode(VBtn, {\n \"disabled\": disablePrev.value,\n \"icon\": props.prevIcon,\n \"variant\": \"text\",\n \"onClick\": onClickPrev\n }, null), _createVNode(VBtn, {\n \"disabled\": disableNext.value,\n \"icon\": props.nextIcon,\n \"variant\": \"text\",\n \"onClick\": onClickNext\n }, null)])]);\n });\n return {};\n }\n});\n//# sourceMappingURL=VDatePickerControls.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VDatePickerHeader.css\";\n\n// Components\nimport { VBtn } from \"../VBtn/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\"; // Composables\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { MaybeTransition } from \"../../composables/transition.mjs\"; // Utilities\nimport { EventProp, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVDatePickerHeaderProps = propsFactory({\n appendIcon: IconValue,\n color: String,\n header: String,\n transition: String,\n onClick: EventProp()\n}, 'VDatePickerHeader');\nexport const VDatePickerHeader = genericComponent()({\n name: 'VDatePickerHeader',\n props: makeVDatePickerHeaderProps(),\n emits: {\n click: () => true,\n 'click:append': () => true\n },\n setup(props, _ref) {\n let {\n emit,\n slots\n } = _ref;\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(props, 'color');\n function onClick() {\n emit('click');\n }\n function onClickAppend() {\n emit('click:append');\n }\n useRender(() => {\n const hasContent = !!(slots.default || props.header);\n const hasAppend = !!(slots.append || props.appendIcon);\n return _createVNode(\"div\", {\n \"class\": ['v-date-picker-header', {\n 'v-date-picker-header--clickable': !!props.onClick\n }, backgroundColorClasses.value],\n \"style\": backgroundColorStyles.value,\n \"onClick\": onClick\n }, [slots.prepend && _createVNode(\"div\", {\n \"key\": \"prepend\",\n \"class\": \"v-date-picker-header__prepend\"\n }, [slots.prepend()]), hasContent && _createVNode(MaybeTransition, {\n \"key\": \"content\",\n \"name\": props.transition\n }, {\n default: () => [_createVNode(\"div\", {\n \"key\": props.header,\n \"class\": \"v-date-picker-header__content\"\n }, [slots.default?.() ?? props.header])]\n }), hasAppend && _createVNode(\"div\", {\n \"class\": \"v-date-picker-header__append\"\n }, [!slots.append ? _createVNode(VBtn, {\n \"key\": \"append-btn\",\n \"icon\": props.appendIcon,\n \"variant\": \"text\",\n \"onClick\": onClickAppend\n }, null) : _createVNode(VDefaultsProvider, {\n \"key\": \"append-defaults\",\n \"disabled\": !props.appendIcon,\n \"defaults\": {\n VBtn: {\n icon: props.appendIcon,\n variant: 'text'\n }\n }\n }, {\n default: () => [slots.append?.()]\n })])]);\n });\n return {};\n }\n});\n//# sourceMappingURL=VDatePickerHeader.mjs.map","// Composables\nimport { getWeek, useDate } from \"./date/date.mjs\";\nimport { useProxiedModel } from \"./proxiedModel.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { propsFactory, wrapInArray } from \"../util/index.mjs\"; // Types\n// Types\n// Composables\nexport const makeCalendarProps = propsFactory({\n allowedDates: [Array, Function],\n disabled: {\n type: Boolean,\n default: null\n },\n displayValue: null,\n modelValue: Array,\n month: [Number, String],\n max: null,\n min: null,\n showAdjacentMonths: Boolean,\n year: [Number, String],\n weekdays: {\n type: Array,\n default: () => [0, 1, 2, 3, 4, 5, 6]\n },\n weeksInMonth: {\n type: String,\n default: 'dynamic'\n },\n firstDayOfWeek: [Number, String]\n}, 'calendar');\nexport function useCalendar(props) {\n const adapter = useDate();\n const model = useProxiedModel(props, 'modelValue', [], v => wrapInArray(v));\n const displayValue = computed(() => {\n if (props.displayValue) return adapter.date(props.displayValue);\n if (model.value.length > 0) return adapter.date(model.value[0]);\n if (props.min) return adapter.date(props.min);\n if (Array.isArray(props.allowedDates)) return adapter.date(props.allowedDates[0]);\n return adapter.date();\n });\n const year = useProxiedModel(props, 'year', undefined, v => {\n const value = v != null ? Number(v) : adapter.getYear(displayValue.value);\n return adapter.startOfYear(adapter.setYear(adapter.date(), value));\n }, v => adapter.getYear(v));\n const month = useProxiedModel(props, 'month', undefined, v => {\n const value = v != null ? Number(v) : adapter.getMonth(displayValue.value);\n const date = adapter.setYear(adapter.startOfMonth(adapter.date()), adapter.getYear(year.value));\n return adapter.setMonth(date, value);\n }, v => adapter.getMonth(v));\n const defaultFirstDayOfWeek = computed(() => {\n return props.firstDayOfWeek ?? props.weekdays[0];\n });\n const weekDays = computed(() => {\n const firstDayOfWeek = Number(props.firstDayOfWeek ?? 0);\n return props.weekdays.map(day => (day + firstDayOfWeek) % 7);\n });\n const weeksInMonth = computed(() => {\n const weeks = adapter.getWeekArray(month.value, defaultFirstDayOfWeek.value);\n const days = weeks.flat();\n\n // Make sure there's always 6 weeks in month (6 * 7 days)\n // if weeksInMonth is 'static'\n const daysInMonth = 6 * 7;\n if (props.weeksInMonth === 'static' && days.length < daysInMonth) {\n const lastDay = days[days.length - 1];\n let week = [];\n for (let day = 1; day <= daysInMonth - days.length; day++) {\n week.push(adapter.addDays(lastDay, day));\n if (day % 7 === 0) {\n weeks.push(week);\n week = [];\n }\n }\n }\n return weeks;\n });\n function genDays(days, today) {\n return days.filter(date => {\n return weekDays.value.includes(adapter.toJsDate(date).getDay());\n }).map((date, index) => {\n const isoDate = adapter.toISO(date);\n const isAdjacent = !adapter.isSameMonth(date, month.value);\n const isStart = adapter.isSameDay(date, adapter.startOfMonth(month.value));\n const isEnd = adapter.isSameDay(date, adapter.endOfMonth(month.value));\n const isSame = adapter.isSameDay(date, month.value);\n return {\n date,\n isoDate,\n formatted: adapter.format(date, 'keyboardDate'),\n year: adapter.getYear(date),\n month: adapter.getMonth(date),\n isDisabled: isDisabled(date),\n isWeekStart: index % 7 === 0,\n isWeekEnd: index % 7 === 6,\n isToday: adapter.isSameDay(date, today),\n isAdjacent,\n isHidden: isAdjacent && !props.showAdjacentMonths,\n isStart,\n isSelected: model.value.some(value => adapter.isSameDay(date, value)),\n isEnd,\n isSame,\n localized: adapter.format(date, 'dayOfMonth')\n };\n });\n }\n const daysInWeek = computed(() => {\n const lastDay = adapter.startOfWeek(displayValue.value, props.firstDayOfWeek);\n const week = [];\n for (let day = 0; day <= 6; day++) {\n week.push(adapter.addDays(lastDay, day));\n }\n const today = adapter.date();\n return genDays(week, today);\n });\n const daysInMonth = computed(() => {\n const days = weeksInMonth.value.flat();\n const today = adapter.date();\n return genDays(days, today);\n });\n const weekNumbers = computed(() => {\n return weeksInMonth.value.map(week => {\n return week.length ? getWeek(adapter, week[0]) : null;\n });\n });\n function isDisabled(value) {\n if (props.disabled) return true;\n const date = adapter.date(value);\n if (props.min && adapter.isAfter(adapter.date(props.min), date)) return true;\n if (props.max && adapter.isAfter(date, adapter.date(props.max))) return true;\n if (Array.isArray(props.allowedDates) && props.allowedDates.length > 0) {\n return !props.allowedDates.some(d => adapter.isSameDay(adapter.date(d), date));\n }\n if (typeof props.allowedDates === 'function') {\n return !props.allowedDates(date);\n }\n return false;\n }\n return {\n displayValue,\n daysInMonth,\n daysInWeek,\n genDays,\n model,\n weeksInMonth,\n weekDays,\n weekNumbers\n };\n}\n//# sourceMappingURL=calendar.mjs.map","import { createTextVNode as _createTextVNode, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VDatePickerMonth.css\";\n\n// Components\nimport { VBtn } from \"../VBtn/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\"; // Composables\nimport { makeCalendarProps, useCalendar } from \"../../composables/calendar.mjs\";\nimport { useDate } from \"../../composables/date/date.mjs\";\nimport { MaybeTransition } from \"../../composables/transition.mjs\"; // Utilities\nimport { computed, ref, shallowRef, watch } from 'vue';\nimport { genericComponent, omit, propsFactory } from \"../../util/index.mjs\"; // Types\nexport const makeVDatePickerMonthProps = propsFactory({\n color: String,\n hideWeekdays: Boolean,\n multiple: [Boolean, Number, String],\n showWeek: Boolean,\n transition: {\n type: String,\n default: 'picker-transition'\n },\n reverseTransition: {\n type: String,\n default: 'picker-reverse-transition'\n },\n ...omit(makeCalendarProps(), ['displayValue'])\n}, 'VDatePickerMonth');\nexport const VDatePickerMonth = genericComponent()({\n name: 'VDatePickerMonth',\n props: makeVDatePickerMonthProps(),\n emits: {\n 'update:modelValue': date => true,\n 'update:month': date => true,\n 'update:year': date => true\n },\n setup(props, _ref) {\n let {\n emit,\n slots\n } = _ref;\n const daysRef = ref();\n const {\n daysInMonth,\n model,\n weekNumbers\n } = useCalendar(props);\n const adapter = useDate();\n const rangeStart = shallowRef();\n const rangeStop = shallowRef();\n const isReverse = shallowRef(false);\n const transition = computed(() => {\n return !isReverse.value ? props.transition : props.reverseTransition;\n });\n if (props.multiple === 'range' && model.value.length > 0) {\n rangeStart.value = model.value[0];\n if (model.value.length > 1) {\n rangeStop.value = model.value[model.value.length - 1];\n }\n }\n const atMax = computed(() => {\n const max = ['number', 'string'].includes(typeof props.multiple) ? Number(props.multiple) : Infinity;\n return model.value.length >= max;\n });\n watch(daysInMonth, (val, oldVal) => {\n if (!oldVal) return;\n isReverse.value = adapter.isBefore(val[0].date, oldVal[0].date);\n });\n function onRangeClick(value) {\n const _value = adapter.startOfDay(value);\n if (model.value.length === 0) {\n rangeStart.value = undefined;\n } else if (model.value.length === 1) {\n rangeStart.value = model.value[0];\n rangeStop.value = undefined;\n }\n if (!rangeStart.value) {\n rangeStart.value = _value;\n model.value = [rangeStart.value];\n } else if (!rangeStop.value) {\n if (adapter.isSameDay(_value, rangeStart.value)) {\n rangeStart.value = undefined;\n model.value = [];\n return;\n } else if (adapter.isBefore(_value, rangeStart.value)) {\n rangeStop.value = adapter.endOfDay(rangeStart.value);\n rangeStart.value = _value;\n } else {\n rangeStop.value = adapter.endOfDay(_value);\n }\n const diff = adapter.getDiff(rangeStop.value, rangeStart.value, 'days');\n const datesInRange = [rangeStart.value];\n for (let i = 1; i < diff; i++) {\n const nextDate = adapter.addDays(rangeStart.value, i);\n datesInRange.push(nextDate);\n }\n datesInRange.push(rangeStop.value);\n model.value = datesInRange;\n } else {\n rangeStart.value = value;\n rangeStop.value = undefined;\n model.value = [rangeStart.value];\n }\n }\n function onMultipleClick(value) {\n const index = model.value.findIndex(selection => adapter.isSameDay(selection, value));\n if (index === -1) {\n model.value = [...model.value, value];\n } else {\n const value = [...model.value];\n value.splice(index, 1);\n model.value = value;\n }\n }\n function onClick(value) {\n if (props.multiple === 'range') {\n onRangeClick(value);\n } else if (props.multiple) {\n onMultipleClick(value);\n } else {\n model.value = [value];\n }\n }\n return () => _createVNode(\"div\", {\n \"class\": \"v-date-picker-month\"\n }, [props.showWeek && _createVNode(\"div\", {\n \"key\": \"weeks\",\n \"class\": \"v-date-picker-month__weeks\"\n }, [!props.hideWeekdays && _createVNode(\"div\", {\n \"key\": \"hide-week-days\",\n \"class\": \"v-date-picker-month__day\"\n }, [_createTextVNode(\"\\xA0\")]), weekNumbers.value.map(week => _createVNode(\"div\", {\n \"class\": ['v-date-picker-month__day', 'v-date-picker-month__day--adjacent']\n }, [week]))]), _createVNode(MaybeTransition, {\n \"name\": transition.value\n }, {\n default: () => [_createVNode(\"div\", {\n \"ref\": daysRef,\n \"key\": daysInMonth.value[0].date?.toString(),\n \"class\": \"v-date-picker-month__days\"\n }, [!props.hideWeekdays && adapter.getWeekdays(props.firstDayOfWeek).map(weekDay => _createVNode(\"div\", {\n \"class\": ['v-date-picker-month__day', 'v-date-picker-month__weekday']\n }, [weekDay])), daysInMonth.value.map((item, i) => {\n const slotProps = {\n props: {\n onClick: () => onClick(item.date)\n },\n item,\n i\n };\n if (atMax.value && !item.isSelected) {\n item.isDisabled = true;\n }\n return _createVNode(\"div\", {\n \"class\": ['v-date-picker-month__day', {\n 'v-date-picker-month__day--adjacent': item.isAdjacent,\n 'v-date-picker-month__day--hide-adjacent': item.isHidden,\n 'v-date-picker-month__day--selected': item.isSelected,\n 'v-date-picker-month__day--week-end': item.isWeekEnd,\n 'v-date-picker-month__day--week-start': item.isWeekStart\n }],\n \"data-v-date\": !item.isDisabled ? item.isoDate : undefined\n }, [(props.showAdjacentMonths || !item.isAdjacent) && _createVNode(VDefaultsProvider, {\n \"defaults\": {\n VBtn: {\n class: 'v-date-picker-month__day-btn',\n color: (item.isSelected || item.isToday) && !item.isDisabled ? props.color : undefined,\n disabled: item.isDisabled,\n icon: true,\n ripple: false,\n text: item.localized,\n variant: item.isDisabled ? item.isToday ? 'outlined' : 'text' : item.isToday && !item.isSelected ? 'outlined' : 'flat',\n onClick: () => onClick(item.date)\n }\n }\n }, {\n default: () => [slots.day?.(slotProps) ?? _createVNode(VBtn, slotProps.props, null)]\n })]);\n })])]\n })]);\n }\n});\n//# sourceMappingURL=VDatePickerMonth.mjs.map","import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VDatePickerMonths.css\";\n\n// Components\nimport { VBtn } from \"../VBtn/index.mjs\"; // Composables\nimport { useDate } from \"../../composables/date/index.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed, watchEffect } from 'vue';\nimport { convertToUnit, createRange, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVDatePickerMonthsProps = propsFactory({\n color: String,\n height: [String, Number],\n min: null,\n max: null,\n modelValue: Number,\n year: Number\n}, 'VDatePickerMonths');\nexport const VDatePickerMonths = genericComponent()({\n name: 'VDatePickerMonths',\n props: makeVDatePickerMonthsProps(),\n emits: {\n 'update:modelValue': date => true\n },\n setup(props, _ref) {\n let {\n emit,\n slots\n } = _ref;\n const adapter = useDate();\n const model = useProxiedModel(props, 'modelValue');\n const months = computed(() => {\n let date = adapter.startOfYear(adapter.date());\n if (props.year) {\n date = adapter.setYear(date, props.year);\n }\n return createRange(12).map(i => {\n const text = adapter.format(date, 'monthShort');\n const isDisabled = !!(props.min && adapter.isAfter(adapter.startOfMonth(adapter.date(props.min)), date) || props.max && adapter.isAfter(date, adapter.startOfMonth(adapter.date(props.max))));\n date = adapter.getNextMonth(date);\n return {\n isDisabled,\n text,\n value: i\n };\n });\n });\n watchEffect(() => {\n model.value = model.value ?? adapter.getMonth(adapter.date());\n });\n useRender(() => _createVNode(\"div\", {\n \"class\": \"v-date-picker-months\",\n \"style\": {\n height: convertToUnit(props.height)\n }\n }, [_createVNode(\"div\", {\n \"class\": \"v-date-picker-months__content\"\n }, [months.value.map((month, i) => {\n const btnProps = {\n active: model.value === i,\n color: model.value === i ? props.color : undefined,\n disabled: month.isDisabled,\n rounded: true,\n text: month.text,\n variant: model.value === month.value ? 'flat' : 'text',\n onClick: () => onClick(i)\n };\n function onClick(i) {\n if (model.value === i) {\n emit('update:modelValue', model.value);\n return;\n }\n model.value = i;\n }\n return slots.month?.({\n month,\n i,\n props: btnProps\n }) ?? _createVNode(VBtn, _mergeProps({\n \"key\": \"month\"\n }, btnProps), null);\n })])]));\n return {};\n }\n});\n//# sourceMappingURL=VDatePickerMonths.mjs.map","import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VDatePickerYears.css\";\n\n// Components\nimport { VBtn } from \"../VBtn/index.mjs\"; // Composables\nimport { useDate } from \"../../composables/date/index.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed, nextTick, onMounted, watchEffect } from 'vue';\nimport { convertToUnit, createRange, genericComponent, propsFactory, templateRef, useRender } from \"../../util/index.mjs\"; // Types\n// Types\nexport const makeVDatePickerYearsProps = propsFactory({\n color: String,\n height: [String, Number],\n min: null,\n max: null,\n modelValue: Number\n}, 'VDatePickerYears');\nexport const VDatePickerYears = genericComponent()({\n name: 'VDatePickerYears',\n props: makeVDatePickerYearsProps(),\n emits: {\n 'update:modelValue': year => true\n },\n setup(props, _ref) {\n let {\n emit,\n slots\n } = _ref;\n const adapter = useDate();\n const model = useProxiedModel(props, 'modelValue');\n const years = computed(() => {\n const year = adapter.getYear(adapter.date());\n let min = year - 100;\n let max = year + 52;\n if (props.min) {\n min = adapter.getYear(adapter.date(props.min));\n }\n if (props.max) {\n max = adapter.getYear(adapter.date(props.max));\n }\n let date = adapter.startOfYear(adapter.date());\n date = adapter.setYear(date, min);\n return createRange(max - min + 1, min).map(i => {\n const text = adapter.format(date, 'year');\n date = adapter.setYear(date, adapter.getYear(date) + 1);\n return {\n text,\n value: i\n };\n });\n });\n watchEffect(() => {\n model.value = model.value ?? adapter.getYear(adapter.date());\n });\n const yearRef = templateRef();\n onMounted(async () => {\n await nextTick();\n yearRef.el?.scrollIntoView({\n block: 'center'\n });\n });\n useRender(() => _createVNode(\"div\", {\n \"class\": \"v-date-picker-years\",\n \"style\": {\n height: convertToUnit(props.height)\n }\n }, [_createVNode(\"div\", {\n \"class\": \"v-date-picker-years__content\"\n }, [years.value.map((year, i) => {\n const btnProps = {\n ref: model.value === year.value ? yearRef : undefined,\n active: model.value === year.value,\n color: model.value === year.value ? props.color : undefined,\n rounded: true,\n text: year.text,\n variant: model.value === year.value ? 'flat' : 'text',\n onClick: () => {\n if (model.value === year.value) {\n emit('update:modelValue', model.value);\n return;\n }\n model.value = year.value;\n }\n };\n return slots.year?.({\n year,\n i,\n props: btnProps\n }) ?? _createVNode(VBtn, _mergeProps({\n \"key\": \"month\"\n }, btnProps), null);\n })])]));\n return {};\n }\n});\n//# sourceMappingURL=VDatePickerYears.mjs.map","// Utilities\nimport { createSimpleFunctional } from \"../../util/index.mjs\";\nexport const VPickerTitle = createSimpleFunctional('v-picker-title');\n//# sourceMappingURL=VPickerTitle.mjs.map","import { createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\n// Styles\nimport \"./VPicker.css\";\n\n// Components\nimport { VPickerTitle } from \"./VPickerTitle.mjs\";\nimport { VDefaultsProvider } from \"../../components/VDefaultsProvider/VDefaultsProvider.mjs\";\nimport { makeVSheetProps, VSheet } from \"../../components/VSheet/VSheet.mjs\"; // Composables\nimport { useBackgroundColor } from \"../../composables/color.mjs\"; // Utilities\nimport { toRef } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVPickerProps = propsFactory({\n bgColor: String,\n landscape: Boolean,\n title: String,\n hideHeader: Boolean,\n ...makeVSheetProps()\n}, 'VPicker');\nexport const VPicker = genericComponent()({\n name: 'VPicker',\n props: makeVPickerProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(toRef(props, 'color'));\n useRender(() => {\n const sheetProps = VSheet.filterProps(props);\n const hasTitle = !!(props.title || slots.title);\n return _createVNode(VSheet, _mergeProps(sheetProps, {\n \"color\": props.bgColor,\n \"class\": ['v-picker', {\n 'v-picker--landscape': props.landscape,\n 'v-picker--with-actions': !!slots.actions\n }, props.class],\n \"style\": props.style\n }), {\n default: () => [!props.hideHeader && _createVNode(\"div\", {\n \"key\": \"header\",\n \"class\": [backgroundColorClasses.value],\n \"style\": [backgroundColorStyles.value]\n }, [hasTitle && _createVNode(VPickerTitle, {\n \"key\": \"picker-title\"\n }, {\n default: () => [slots.title?.() ?? props.title]\n }), slots.header && _createVNode(\"div\", {\n \"class\": \"v-picker__header\"\n }, [slots.header()])]), _createVNode(\"div\", {\n \"class\": \"v-picker__body\"\n }, [slots.default?.()]), slots.actions && _createVNode(VDefaultsProvider, {\n \"defaults\": {\n VBtn: {\n slim: true,\n variant: 'text'\n }\n }\n }, {\n default: () => [_createVNode(\"div\", {\n \"class\": \"v-picker__actions\"\n }, [slots.actions()])]\n })]\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VPicker.mjs.map","import { createVNode as _createVNode, mergeProps as _mergeProps, Fragment as _Fragment } from \"vue\";\n// Styles\nimport \"./VDatePicker.css\";\n\n// Components\nimport { makeVDatePickerControlsProps, VDatePickerControls } from \"./VDatePickerControls.mjs\";\nimport { VDatePickerHeader } from \"./VDatePickerHeader.mjs\";\nimport { makeVDatePickerMonthProps, VDatePickerMonth } from \"./VDatePickerMonth.mjs\";\nimport { makeVDatePickerMonthsProps, VDatePickerMonths } from \"./VDatePickerMonths.mjs\";\nimport { makeVDatePickerYearsProps, VDatePickerYears } from \"./VDatePickerYears.mjs\";\nimport { VFadeTransition } from \"../transitions/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { makeVPickerProps, VPicker } from \"../../labs/VPicker/VPicker.mjs\"; // Composables\nimport { useDate } from \"../../composables/date/index.mjs\";\nimport { useLocale } from \"../../composables/locale.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed, ref, shallowRef, watch } from 'vue';\nimport { genericComponent, omit, propsFactory, useRender, wrapInArray } from \"../../util/index.mjs\"; // Types\n// Types\nexport const makeVDatePickerProps = propsFactory({\n // TODO: implement in v3.5\n // calendarIcon: {\n // type: String,\n // default: '$calendar',\n // },\n // keyboardIcon: {\n // type: String,\n // default: '$edit',\n // },\n // inputMode: {\n // type: String as PropType<'calendar' | 'keyboard'>,\n // default: 'calendar',\n // },\n // inputText: {\n // type: String,\n // default: '$vuetify.datePicker.input.placeholder',\n // },\n // inputPlaceholder: {\n // type: String,\n // default: 'dd/mm/yyyy',\n // },\n header: {\n type: String,\n default: '$vuetify.datePicker.header'\n },\n ...makeVDatePickerControlsProps(),\n ...makeVDatePickerMonthProps({\n weeksInMonth: 'static'\n }),\n ...omit(makeVDatePickerMonthsProps(), ['modelValue']),\n ...omit(makeVDatePickerYearsProps(), ['modelValue']),\n ...makeVPickerProps({\n title: '$vuetify.datePicker.title'\n }),\n modelValue: null\n}, 'VDatePicker');\nexport const VDatePicker = genericComponent()({\n name: 'VDatePicker',\n props: makeVDatePickerProps(),\n emits: {\n 'update:modelValue': date => true,\n 'update:month': date => true,\n 'update:year': date => true,\n // 'update:inputMode': (date: any) => true,\n 'update:viewMode': date => true\n },\n setup(props, _ref) {\n let {\n emit,\n slots\n } = _ref;\n const adapter = useDate();\n const {\n t\n } = useLocale();\n const model = useProxiedModel(props, 'modelValue', undefined, v => wrapInArray(v), v => props.multiple ? v : v[0]);\n const viewMode = useProxiedModel(props, 'viewMode');\n // const inputMode = useProxiedModel(props, 'inputMode')\n\n const minDate = computed(() => {\n const date = adapter.date(props.min);\n return props.min && adapter.isValid(date) ? date : null;\n });\n const maxDate = computed(() => {\n const date = adapter.date(props.max);\n return props.max && adapter.isValid(date) ? date : null;\n });\n const internal = computed(() => {\n const today = adapter.date();\n let value = today;\n if (model.value?.[0]) {\n value = adapter.date(model.value[0]);\n } else if (minDate.value && adapter.isBefore(today, minDate.value)) {\n value = minDate.value;\n } else if (maxDate.value && adapter.isAfter(today, maxDate.value)) {\n value = maxDate.value;\n }\n return value && adapter.isValid(value) ? value : today;\n });\n const month = ref(Number(props.month ?? adapter.getMonth(adapter.startOfMonth(internal.value))));\n const year = ref(Number(props.year ?? adapter.getYear(adapter.startOfYear(adapter.setMonth(internal.value, month.value)))));\n const isReversing = shallowRef(false);\n const header = computed(() => {\n if (props.multiple && model.value.length > 1) {\n return t('$vuetify.datePicker.itemsSelected', model.value.length);\n }\n return model.value[0] && adapter.isValid(model.value[0]) ? adapter.format(adapter.date(model.value[0]), 'normalDateWithWeekday') : t(props.header);\n });\n const text = computed(() => {\n let date = adapter.date();\n date = adapter.setDate(date, 1);\n date = adapter.setMonth(date, month.value);\n date = adapter.setYear(date, year.value);\n return adapter.format(date, 'monthAndYear');\n });\n // const headerIcon = computed(() => props.inputMode === 'calendar' ? props.keyboardIcon : props.calendarIcon)\n const headerTransition = computed(() => `date-picker-header${isReversing.value ? '-reverse' : ''}-transition`);\n const disabled = computed(() => {\n if (props.disabled) return true;\n const targets = [];\n if (viewMode.value !== 'month') {\n targets.push(...['prev', 'next']);\n } else {\n let _date = adapter.date();\n _date = adapter.startOfMonth(_date);\n _date = adapter.setMonth(_date, month.value);\n _date = adapter.setYear(_date, year.value);\n if (minDate.value) {\n const date = adapter.addDays(adapter.startOfMonth(_date), -1);\n adapter.isAfter(minDate.value, date) && targets.push('prev');\n }\n if (maxDate.value) {\n const date = adapter.addDays(adapter.endOfMonth(_date), 1);\n adapter.isAfter(date, maxDate.value) && targets.push('next');\n }\n }\n return targets;\n });\n\n // function onClickAppend () {\n // inputMode.value = inputMode.value === 'calendar' ? 'keyboard' : 'calendar'\n // }\n\n function onClickNext() {\n if (month.value < 11) {\n month.value++;\n } else {\n year.value++;\n month.value = 0;\n onUpdateYear(year.value);\n }\n onUpdateMonth(month.value);\n }\n function onClickPrev() {\n if (month.value > 0) {\n month.value--;\n } else {\n year.value--;\n month.value = 11;\n onUpdateYear(year.value);\n }\n onUpdateMonth(month.value);\n }\n function onClickDate() {\n viewMode.value = 'month';\n }\n function onClickMonth() {\n viewMode.value = viewMode.value === 'months' ? 'month' : 'months';\n }\n function onClickYear() {\n viewMode.value = viewMode.value === 'year' ? 'month' : 'year';\n }\n function onUpdateMonth(value) {\n if (viewMode.value === 'months') onClickMonth();\n emit('update:month', value);\n }\n function onUpdateYear(value) {\n if (viewMode.value === 'year') onClickYear();\n emit('update:year', value);\n }\n watch(model, (val, oldVal) => {\n const arrBefore = wrapInArray(oldVal);\n const arrAfter = wrapInArray(val);\n if (!arrAfter.length) return;\n const before = adapter.date(arrBefore[arrBefore.length - 1]);\n const after = adapter.date(arrAfter[arrAfter.length - 1]);\n const newMonth = adapter.getMonth(after);\n const newYear = adapter.getYear(after);\n if (newMonth !== month.value) {\n month.value = newMonth;\n onUpdateMonth(month.value);\n }\n if (newYear !== year.value) {\n year.value = newYear;\n onUpdateYear(year.value);\n }\n isReversing.value = adapter.isBefore(before, after);\n });\n useRender(() => {\n const pickerProps = VPicker.filterProps(props);\n const datePickerControlsProps = VDatePickerControls.filterProps(props);\n const datePickerHeaderProps = VDatePickerHeader.filterProps(props);\n const datePickerMonthProps = VDatePickerMonth.filterProps(props);\n const datePickerMonthsProps = omit(VDatePickerMonths.filterProps(props), ['modelValue']);\n const datePickerYearsProps = omit(VDatePickerYears.filterProps(props), ['modelValue']);\n const headerProps = {\n header: header.value,\n transition: headerTransition.value\n };\n return _createVNode(VPicker, _mergeProps(pickerProps, {\n \"class\": ['v-date-picker', `v-date-picker--${viewMode.value}`, {\n 'v-date-picker--show-week': props.showWeek\n }, props.class],\n \"style\": props.style\n }), {\n title: () => slots.title?.() ?? _createVNode(\"div\", {\n \"class\": \"v-date-picker__title\"\n }, [t(props.title)]),\n header: () => slots.header ? _createVNode(VDefaultsProvider, {\n \"defaults\": {\n VDatePickerHeader: {\n ...headerProps\n }\n }\n }, {\n default: () => [slots.header?.(headerProps)]\n }) : _createVNode(VDatePickerHeader, _mergeProps({\n \"key\": \"header\"\n }, datePickerHeaderProps, headerProps, {\n \"onClick\": viewMode.value !== 'month' ? onClickDate : undefined\n }), {\n ...slots,\n default: undefined\n }),\n default: () => _createVNode(_Fragment, null, [_createVNode(VDatePickerControls, _mergeProps(datePickerControlsProps, {\n \"disabled\": disabled.value,\n \"text\": text.value,\n \"onClick:next\": onClickNext,\n \"onClick:prev\": onClickPrev,\n \"onClick:month\": onClickMonth,\n \"onClick:year\": onClickYear\n }), null), _createVNode(VFadeTransition, {\n \"hideOnLeave\": true\n }, {\n default: () => [viewMode.value === 'months' ? _createVNode(VDatePickerMonths, _mergeProps({\n \"key\": \"date-picker-months\"\n }, datePickerMonthsProps, {\n \"modelValue\": month.value,\n \"onUpdate:modelValue\": [$event => month.value = $event, onUpdateMonth],\n \"min\": minDate.value,\n \"max\": maxDate.value,\n \"year\": year.value\n }), null) : viewMode.value === 'year' ? _createVNode(VDatePickerYears, _mergeProps({\n \"key\": \"date-picker-years\"\n }, datePickerYearsProps, {\n \"modelValue\": year.value,\n \"onUpdate:modelValue\": [$event => year.value = $event, onUpdateYear],\n \"min\": minDate.value,\n \"max\": maxDate.value\n }), null) : _createVNode(VDatePickerMonth, _mergeProps({\n \"key\": \"date-picker-month\"\n }, datePickerMonthProps, {\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"month\": month.value,\n \"onUpdate:month\": [$event => month.value = $event, onUpdateMonth],\n \"year\": year.value,\n \"onUpdate:year\": [$event => year.value = $event, onUpdateYear],\n \"min\": minDate.value,\n \"max\": maxDate.value\n }), null)]\n })]),\n actions: slots.actions\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VDatePicker.mjs.map","import { Fragment as _Fragment, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VEmptyState.css\";\n\n// Components\nimport { VBtn } from \"../VBtn/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\";\nimport { VImg } from \"../VImg/index.mjs\"; // Composables\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { useDisplay } from \"../../composables/display.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { makeSizeProps } from \"../../composables/size.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { toRef } from 'vue';\nimport { convertToUnit, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\n// Types\nexport const makeVEmptyStateProps = propsFactory({\n actionText: String,\n bgColor: String,\n color: String,\n icon: IconValue,\n image: String,\n justify: {\n type: String,\n default: 'center'\n },\n headline: String,\n title: String,\n text: String,\n textWidth: {\n type: [Number, String],\n default: 500\n },\n href: String,\n to: String,\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeSizeProps({\n size: undefined\n }),\n ...makeThemeProps()\n}, 'VEmptyState');\nexport const VEmptyState = genericComponent()({\n name: 'VEmptyState',\n props: makeVEmptyStateProps(),\n emits: {\n 'click:action': e => true\n },\n setup(props, _ref) {\n let {\n emit,\n slots\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(toRef(props, 'bgColor'));\n const {\n dimensionStyles\n } = useDimension(props);\n const {\n displayClasses\n } = useDisplay();\n function onClickAction(e) {\n emit('click:action', e);\n }\n useRender(() => {\n const hasActions = !!(slots.actions || props.actionText);\n const hasHeadline = !!(slots.headline || props.headline);\n const hasTitle = !!(slots.title || props.title);\n const hasText = !!(slots.text || props.text);\n const hasMedia = !!(slots.media || props.image || props.icon);\n const size = props.size || (props.image ? 200 : 96);\n return _createVNode(\"div\", {\n \"class\": ['v-empty-state', {\n [`v-empty-state--${props.justify}`]: true\n }, themeClasses.value, backgroundColorClasses.value, displayClasses.value, props.class],\n \"style\": [backgroundColorStyles.value, dimensionStyles.value, props.style]\n }, [hasMedia && _createVNode(\"div\", {\n \"key\": \"media\",\n \"class\": \"v-empty-state__media\"\n }, [!slots.media ? _createVNode(_Fragment, null, [props.image ? _createVNode(VImg, {\n \"key\": \"image\",\n \"src\": props.image,\n \"height\": size\n }, null) : props.icon ? _createVNode(VIcon, {\n \"key\": \"icon\",\n \"color\": props.color,\n \"size\": size,\n \"icon\": props.icon\n }, null) : undefined]) : _createVNode(VDefaultsProvider, {\n \"key\": \"media-defaults\",\n \"defaults\": {\n VImg: {\n src: props.image,\n height: size\n },\n VIcon: {\n size,\n icon: props.icon\n }\n }\n }, {\n default: () => [slots.media()]\n })]), hasHeadline && _createVNode(\"div\", {\n \"key\": \"headline\",\n \"class\": \"v-empty-state__headline\"\n }, [slots.headline?.() ?? props.headline]), hasTitle && _createVNode(\"div\", {\n \"key\": \"title\",\n \"class\": \"v-empty-state__title\"\n }, [slots.title?.() ?? props.title]), hasText && _createVNode(\"div\", {\n \"key\": \"text\",\n \"class\": \"v-empty-state__text\",\n \"style\": {\n maxWidth: convertToUnit(props.textWidth)\n }\n }, [slots.text?.() ?? props.text]), slots.default && _createVNode(\"div\", {\n \"key\": \"content\",\n \"class\": \"v-empty-state__content\"\n }, [slots.default()]), hasActions && _createVNode(\"div\", {\n \"key\": \"actions\",\n \"class\": \"v-empty-state__actions\"\n }, [_createVNode(VDefaultsProvider, {\n \"defaults\": {\n VBtn: {\n class: 'v-empty-state__action-btn',\n color: props.color ?? 'surface-variant',\n text: props.actionText\n }\n }\n }, {\n default: () => [slots.actions?.({\n props: {\n onClick: onClickAction\n }\n }) ?? _createVNode(VBtn, {\n \"onClick\": onClickAction\n }, null)]\n })])]);\n });\n return {};\n }\n});\n//# sourceMappingURL=VEmptyState.mjs.map","// Types\n\nexport const VExpansionPanelSymbol = Symbol.for('vuetify:v-expansion-panel');\n//# sourceMappingURL=shared.mjs.map","import { createVNode as _createVNode, vShow as _vShow, withDirectives as _withDirectives } from \"vue\";\n// Components\nimport { VExpansionPanelSymbol } from \"./shared.mjs\";\nimport { VExpandTransition } from \"../transitions/index.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeLazyProps, useLazy } from \"../../composables/lazy.mjs\"; // Utilities\nimport { inject } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVExpansionPanelTextProps = propsFactory({\n ...makeComponentProps(),\n ...makeLazyProps()\n}, 'VExpansionPanelText');\nexport const VExpansionPanelText = genericComponent()({\n name: 'VExpansionPanelText',\n props: makeVExpansionPanelTextProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const expansionPanel = inject(VExpansionPanelSymbol);\n if (!expansionPanel) throw new Error('[Vuetify] v-expansion-panel-text needs to be placed inside v-expansion-panel');\n const {\n hasContent,\n onAfterLeave\n } = useLazy(props, expansionPanel.isSelected);\n useRender(() => _createVNode(VExpandTransition, {\n \"onAfterLeave\": onAfterLeave\n }, {\n default: () => [_withDirectives(_createVNode(\"div\", {\n \"class\": ['v-expansion-panel-text', props.class],\n \"style\": props.style\n }, [slots.default && hasContent.value && _createVNode(\"div\", {\n \"class\": \"v-expansion-panel-text__wrapper\"\n }, [slots.default?.()])]), [[_vShow, expansionPanel.isSelected.value]])]\n }));\n return {};\n }\n});\n//# sourceMappingURL=VExpansionPanelText.mjs.map","import { createVNode as _createVNode, resolveDirective as _resolveDirective, withDirectives as _withDirectives } from \"vue\";\n// Components\nimport { VExpansionPanelSymbol } from \"./shared.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\"; // Composables\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\"; // Directives\nimport { Ripple } from \"../../directives/ripple/index.mjs\"; // Utilities\nimport { computed, inject } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVExpansionPanelTitleProps = propsFactory({\n color: String,\n expandIcon: {\n type: IconValue,\n default: '$expand'\n },\n collapseIcon: {\n type: IconValue,\n default: '$collapse'\n },\n hideActions: Boolean,\n focusable: Boolean,\n static: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: false\n },\n readonly: Boolean,\n ...makeComponentProps(),\n ...makeDimensionProps()\n}, 'VExpansionPanelTitle');\nexport const VExpansionPanelTitle = genericComponent()({\n name: 'VExpansionPanelTitle',\n directives: {\n Ripple\n },\n props: makeVExpansionPanelTitleProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const expansionPanel = inject(VExpansionPanelSymbol);\n if (!expansionPanel) throw new Error('[Vuetify] v-expansion-panel-title needs to be placed inside v-expansion-panel');\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(props, 'color');\n const {\n dimensionStyles\n } = useDimension(props);\n const slotProps = computed(() => ({\n collapseIcon: props.collapseIcon,\n disabled: expansionPanel.disabled.value,\n expanded: expansionPanel.isSelected.value,\n expandIcon: props.expandIcon,\n readonly: props.readonly\n }));\n const icon = computed(() => expansionPanel.isSelected.value ? props.collapseIcon : props.expandIcon);\n useRender(() => _withDirectives(_createVNode(\"button\", {\n \"class\": ['v-expansion-panel-title', {\n 'v-expansion-panel-title--active': expansionPanel.isSelected.value,\n 'v-expansion-panel-title--focusable': props.focusable,\n 'v-expansion-panel-title--static': props.static\n }, backgroundColorClasses.value, props.class],\n \"style\": [backgroundColorStyles.value, dimensionStyles.value, props.style],\n \"type\": \"button\",\n \"tabindex\": expansionPanel.disabled.value ? -1 : undefined,\n \"disabled\": expansionPanel.disabled.value,\n \"aria-expanded\": expansionPanel.isSelected.value,\n \"onClick\": !props.readonly ? expansionPanel.toggle : undefined\n }, [_createVNode(\"span\", {\n \"class\": \"v-expansion-panel-title__overlay\"\n }, null), slots.default?.(slotProps.value), !props.hideActions && _createVNode(VDefaultsProvider, {\n \"defaults\": {\n VIcon: {\n icon: icon.value\n }\n }\n }, {\n default: () => [_createVNode(\"span\", {\n \"class\": \"v-expansion-panel-title__icon\"\n }, [slots.actions?.(slotProps.value) ?? _createVNode(VIcon, null, null)])]\n })]), [[_resolveDirective(\"ripple\"), props.ripple]]));\n return {};\n }\n});\n//# sourceMappingURL=VExpansionPanelTitle.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Components\nimport { VExpansionPanelSymbol } from \"./shared.mjs\";\nimport { makeVExpansionPanelTextProps, VExpansionPanelText } from \"./VExpansionPanelText.mjs\";\nimport { makeVExpansionPanelTitleProps, VExpansionPanelTitle } from \"./VExpansionPanelTitle.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\"; // Composables\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { makeGroupItemProps, useGroupItem } from \"../../composables/group.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { computed, provide } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVExpansionPanelProps = propsFactory({\n title: String,\n text: String,\n bgColor: String,\n ...makeElevationProps(),\n ...makeGroupItemProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeVExpansionPanelTitleProps(),\n ...makeVExpansionPanelTextProps()\n}, 'VExpansionPanel');\nexport const VExpansionPanel = genericComponent()({\n name: 'VExpansionPanel',\n props: makeVExpansionPanelProps(),\n emits: {\n 'group:selected': val => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const groupItem = useGroupItem(props, VExpansionPanelSymbol);\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(props, 'bgColor');\n const {\n elevationClasses\n } = useElevation(props);\n const {\n roundedClasses\n } = useRounded(props);\n const isDisabled = computed(() => groupItem?.disabled.value || props.disabled);\n const selectedIndices = computed(() => groupItem.group.items.value.reduce((arr, item, index) => {\n if (groupItem.group.selected.value.includes(item.id)) arr.push(index);\n return arr;\n }, []));\n const isBeforeSelected = computed(() => {\n const index = groupItem.group.items.value.findIndex(item => item.id === groupItem.id);\n return !groupItem.isSelected.value && selectedIndices.value.some(selectedIndex => selectedIndex - index === 1);\n });\n const isAfterSelected = computed(() => {\n const index = groupItem.group.items.value.findIndex(item => item.id === groupItem.id);\n return !groupItem.isSelected.value && selectedIndices.value.some(selectedIndex => selectedIndex - index === -1);\n });\n provide(VExpansionPanelSymbol, groupItem);\n useRender(() => {\n const hasText = !!(slots.text || props.text);\n const hasTitle = !!(slots.title || props.title);\n const expansionPanelTitleProps = VExpansionPanelTitle.filterProps(props);\n const expansionPanelTextProps = VExpansionPanelText.filterProps(props);\n return _createVNode(props.tag, {\n \"class\": ['v-expansion-panel', {\n 'v-expansion-panel--active': groupItem.isSelected.value,\n 'v-expansion-panel--before-active': isBeforeSelected.value,\n 'v-expansion-panel--after-active': isAfterSelected.value,\n 'v-expansion-panel--disabled': isDisabled.value\n }, roundedClasses.value, backgroundColorClasses.value, props.class],\n \"style\": [backgroundColorStyles.value, props.style]\n }, {\n default: () => [_createVNode(\"div\", {\n \"class\": ['v-expansion-panel__shadow', ...elevationClasses.value]\n }, null), _createVNode(VDefaultsProvider, {\n \"defaults\": {\n VExpansionPanelTitle: {\n ...expansionPanelTitleProps\n },\n VExpansionPanelText: {\n ...expansionPanelTextProps\n }\n }\n }, {\n default: () => [hasTitle && _createVNode(VExpansionPanelTitle, {\n \"key\": \"title\"\n }, {\n default: () => [slots.title ? slots.title() : props.title]\n }), hasText && _createVNode(VExpansionPanelText, {\n \"key\": \"text\"\n }, {\n default: () => [slots.text ? slots.text() : props.text]\n }), slots.default?.()]\n })]\n });\n });\n return {\n groupItem\n };\n }\n});\n//# sourceMappingURL=VExpansionPanel.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VExpansionPanel.css\";\n\n// Components\nimport { VExpansionPanelSymbol } from \"./shared.mjs\";\nimport { makeVExpansionPanelProps } from \"./VExpansionPanel.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeGroupProps, useGroup } from \"../../composables/group.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { computed, toRef } from 'vue';\nimport { genericComponent, pick, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nconst allowedVariants = ['default', 'accordion', 'inset', 'popout'];\nexport const makeVExpansionPanelsProps = propsFactory({\n flat: Boolean,\n ...makeGroupProps(),\n ...pick(makeVExpansionPanelProps(), ['bgColor', 'collapseIcon', 'color', 'eager', 'elevation', 'expandIcon', 'focusable', 'hideActions', 'readonly', 'ripple', 'rounded', 'tile', 'static']),\n ...makeThemeProps(),\n ...makeComponentProps(),\n ...makeTagProps(),\n variant: {\n type: String,\n default: 'default',\n validator: v => allowedVariants.includes(v)\n }\n}, 'VExpansionPanels');\nexport const VExpansionPanels = genericComponent()({\n name: 'VExpansionPanels',\n props: makeVExpansionPanelsProps(),\n emits: {\n 'update:modelValue': val => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n next,\n prev\n } = useGroup(props, VExpansionPanelSymbol);\n const {\n themeClasses\n } = provideTheme(props);\n const variantClass = computed(() => props.variant && `v-expansion-panels--variant-${props.variant}`);\n provideDefaults({\n VExpansionPanel: {\n bgColor: toRef(props, 'bgColor'),\n collapseIcon: toRef(props, 'collapseIcon'),\n color: toRef(props, 'color'),\n eager: toRef(props, 'eager'),\n elevation: toRef(props, 'elevation'),\n expandIcon: toRef(props, 'expandIcon'),\n focusable: toRef(props, 'focusable'),\n hideActions: toRef(props, 'hideActions'),\n readonly: toRef(props, 'readonly'),\n ripple: toRef(props, 'ripple'),\n rounded: toRef(props, 'rounded'),\n static: toRef(props, 'static')\n }\n });\n useRender(() => _createVNode(props.tag, {\n \"class\": ['v-expansion-panels', {\n 'v-expansion-panels--flat': props.flat,\n 'v-expansion-panels--tile': props.tile\n }, themeClasses.value, variantClass.value, props.class],\n \"style\": props.style\n }, {\n default: () => [slots.default?.({\n prev,\n next\n })]\n }));\n return {\n next,\n prev\n };\n }\n});\n//# sourceMappingURL=VExpansionPanels.mjs.map","import { vShow as _vShow, mergeProps as _mergeProps, createVNode as _createVNode, withDirectives as _withDirectives } from \"vue\";\n// Styles\nimport \"./VFab.css\";\n\n// Components\nimport { makeVBtnProps, VBtn } from \"../VBtn/VBtn.mjs\"; // Composables\nimport { makeLayoutItemProps, useLayoutItem } from \"../../composables/layout.mjs\";\nimport { makeLocationProps } from \"../../composables/location.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { useResizeObserver } from \"../../composables/resizeObserver.mjs\";\nimport { useToggleScope } from \"../../composables/toggleScope.mjs\";\nimport { makeTransitionProps, MaybeTransition } from \"../../composables/transition.mjs\"; // Utilities\nimport { computed, ref, shallowRef, toRef, watchEffect } from 'vue';\nimport { genericComponent, omit, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVFabProps = propsFactory({\n app: Boolean,\n appear: Boolean,\n extended: Boolean,\n layout: Boolean,\n offset: Boolean,\n modelValue: {\n type: Boolean,\n default: true\n },\n ...omit(makeVBtnProps({\n active: true\n }), ['location']),\n ...makeLayoutItemProps(),\n ...makeLocationProps(),\n ...makeTransitionProps({\n transition: 'fab-transition'\n })\n}, 'VFab');\nexport const VFab = genericComponent()({\n name: 'VFab',\n props: makeVFabProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const model = useProxiedModel(props, 'modelValue');\n const height = shallowRef(56);\n const layoutItemStyles = ref();\n const {\n resizeRef\n } = useResizeObserver(entries => {\n if (!entries.length) return;\n height.value = entries[0].target.clientHeight;\n });\n const hasPosition = computed(() => props.app || props.absolute);\n const position = computed(() => {\n if (!hasPosition.value) return false;\n return props.location?.split(' ').shift() ?? 'bottom';\n });\n const orientation = computed(() => {\n if (!hasPosition.value) return false;\n return props.location?.split(' ')[1] ?? 'end';\n });\n useToggleScope(() => props.app, () => {\n const layout = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position,\n layoutSize: computed(() => props.layout ? height.value + 24 : 0),\n elementSize: computed(() => height.value + 24),\n active: computed(() => props.app && model.value),\n absolute: toRef(props, 'absolute')\n });\n watchEffect(() => {\n layoutItemStyles.value = layout.layoutItemStyles.value;\n });\n });\n const vFabRef = ref();\n useRender(() => {\n const btnProps = VBtn.filterProps(props);\n return _createVNode(\"div\", {\n \"ref\": vFabRef,\n \"class\": ['v-fab', {\n 'v-fab--absolute': props.absolute,\n 'v-fab--app': !!props.app,\n 'v-fab--extended': props.extended,\n 'v-fab--offset': props.offset,\n [`v-fab--${position.value}`]: hasPosition.value,\n [`v-fab--${orientation.value}`]: hasPosition.value\n }, props.class],\n \"style\": [props.app ? {\n ...layoutItemStyles.value\n } : {\n height: props.absolute ? '100%' : 'inherit'\n }, props.style]\n }, [_createVNode(\"div\", {\n \"class\": \"v-fab__container\"\n }, [_createVNode(MaybeTransition, {\n \"appear\": props.appear,\n \"transition\": props.transition\n }, {\n default: () => [_withDirectives(_createVNode(VBtn, _mergeProps({\n \"ref\": resizeRef\n }, btnProps, {\n \"active\": undefined,\n \"location\": undefined\n }), slots), [[_vShow, props.active]])]\n })])]);\n });\n return {};\n }\n});\n//# sourceMappingURL=VFab.mjs.map","import { Fragment as _Fragment, mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VFileInput.css\";\n\n// Components\nimport { VChip } from \"../VChip/index.mjs\";\nimport { VCounter } from \"../VCounter/index.mjs\";\nimport { VField } from \"../VField/index.mjs\";\nimport { filterFieldProps, makeVFieldProps } from \"../VField/VField.mjs\";\nimport { makeVInputProps, VInput } from \"../VInput/VInput.mjs\"; // Composables\nimport { useFocus } from \"../../composables/focus.mjs\";\nimport { forwardRefs } from \"../../composables/forwardRefs.mjs\";\nimport { useLocale } from \"../../composables/locale.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed, nextTick, ref, watch } from 'vue';\nimport { callEvent, filterInputAttrs, genericComponent, humanReadableFileSize, propsFactory, useRender, wrapInArray } from \"../../util/index.mjs\"; // Types\nexport const makeVFileInputProps = propsFactory({\n chips: Boolean,\n counter: Boolean,\n counterSizeString: {\n type: String,\n default: '$vuetify.fileInput.counterSize'\n },\n counterString: {\n type: String,\n default: '$vuetify.fileInput.counter'\n },\n hideInput: Boolean,\n multiple: Boolean,\n showSize: {\n type: [Boolean, Number, String],\n default: false,\n validator: v => {\n return typeof v === 'boolean' || [1000, 1024].includes(Number(v));\n }\n },\n ...makeVInputProps({\n prependIcon: '$file'\n }),\n modelValue: {\n type: [Array, Object],\n default: props => props.multiple ? [] : null,\n validator: val => {\n return wrapInArray(val).every(v => v != null && typeof v === 'object');\n }\n },\n ...makeVFieldProps({\n clearable: true\n })\n}, 'VFileInput');\nexport const VFileInput = genericComponent()({\n name: 'VFileInput',\n inheritAttrs: false,\n props: makeVFileInputProps(),\n emits: {\n 'click:control': e => true,\n 'mousedown:control': e => true,\n 'update:focused': focused => true,\n 'update:modelValue': files => true\n },\n setup(props, _ref) {\n let {\n attrs,\n emit,\n slots\n } = _ref;\n const {\n t\n } = useLocale();\n const model = useProxiedModel(props, 'modelValue', props.modelValue, val => wrapInArray(val), val => !props.multiple && Array.isArray(val) ? val[0] : val);\n const {\n isFocused,\n focus,\n blur\n } = useFocus(props);\n const base = computed(() => typeof props.showSize !== 'boolean' ? props.showSize : undefined);\n const totalBytes = computed(() => (model.value ?? []).reduce((bytes, _ref2) => {\n let {\n size = 0\n } = _ref2;\n return bytes + size;\n }, 0));\n const totalBytesReadable = computed(() => humanReadableFileSize(totalBytes.value, base.value));\n const fileNames = computed(() => (model.value ?? []).map(file => {\n const {\n name = '',\n size = 0\n } = file;\n return !props.showSize ? name : `${name} (${humanReadableFileSize(size, base.value)})`;\n }));\n const counterValue = computed(() => {\n const fileCount = model.value?.length ?? 0;\n if (props.showSize) return t(props.counterSizeString, fileCount, totalBytesReadable.value);else return t(props.counterString, fileCount);\n });\n const vInputRef = ref();\n const vFieldRef = ref();\n const inputRef = ref();\n const isActive = computed(() => isFocused.value || props.active);\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant));\n function onFocus() {\n if (inputRef.value !== document.activeElement) {\n inputRef.value?.focus();\n }\n if (!isFocused.value) focus();\n }\n function onClickPrepend(e) {\n inputRef.value?.click();\n }\n function onControlMousedown(e) {\n emit('mousedown:control', e);\n }\n function onControlClick(e) {\n inputRef.value?.click();\n emit('click:control', e);\n }\n function onClear(e) {\n e.stopPropagation();\n onFocus();\n nextTick(() => {\n model.value = [];\n callEvent(props['onClick:clear'], e);\n });\n }\n function onDragover(e) {\n e.preventDefault();\n }\n function onDrop(e) {\n e.preventDefault();\n if (!e.dataTransfer) return;\n model.value = [...(e.dataTransfer.files ?? [])];\n }\n watch(model, newValue => {\n const hasModelReset = !Array.isArray(newValue) || !newValue.length;\n if (hasModelReset && inputRef.value) {\n inputRef.value.value = '';\n }\n });\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter);\n const hasDetails = !!(hasCounter || slots.details);\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs);\n const {\n modelValue: _,\n ...inputProps\n } = VInput.filterProps(props);\n const fieldProps = filterFieldProps(props);\n return _createVNode(VInput, _mergeProps({\n \"ref\": vInputRef,\n \"modelValue\": props.multiple ? model.value : model.value[0],\n \"class\": ['v-file-input', {\n 'v-file-input--chips': !!props.chips,\n 'v-file-input--hide': props.hideInput,\n 'v-input--plain-underlined': isPlainOrUnderlined.value\n }, props.class],\n \"style\": props.style,\n \"onClick:prepend\": onClickPrepend\n }, rootAttrs, inputProps, {\n \"centerAffix\": !isPlainOrUnderlined.value,\n \"focused\": isFocused.value\n }), {\n ...slots,\n default: _ref3 => {\n let {\n id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid\n } = _ref3;\n return _createVNode(VField, _mergeProps({\n \"ref\": vFieldRef,\n \"prepend-icon\": props.prependIcon,\n \"onMousedown\": onControlMousedown,\n \"onClick\": onControlClick,\n \"onClick:clear\": onClear,\n \"onClick:prependInner\": props['onClick:prependInner'],\n \"onClick:appendInner\": props['onClick:appendInner']\n }, fieldProps, {\n \"id\": id.value,\n \"active\": isActive.value || isDirty.value,\n \"dirty\": isDirty.value || props.dirty,\n \"disabled\": isDisabled.value,\n \"focused\": isFocused.value,\n \"error\": isValid.value === false,\n \"onDragover\": onDragover,\n \"onDrop\": onDrop\n }), {\n ...slots,\n default: _ref4 => {\n let {\n props: {\n class: fieldClass,\n ...slotProps\n }\n } = _ref4;\n return _createVNode(_Fragment, null, [_createVNode(\"input\", _mergeProps({\n \"ref\": inputRef,\n \"type\": \"file\",\n \"readonly\": isReadonly.value,\n \"disabled\": isDisabled.value,\n \"multiple\": props.multiple,\n \"name\": props.name,\n \"onClick\": e => {\n e.stopPropagation();\n if (isReadonly.value) e.preventDefault();\n onFocus();\n },\n \"onChange\": e => {\n if (!e.target) return;\n const target = e.target;\n model.value = [...(target.files ?? [])];\n },\n \"onFocus\": onFocus,\n \"onBlur\": blur\n }, slotProps, inputAttrs), null), _createVNode(\"div\", {\n \"class\": fieldClass\n }, [!!model.value?.length && !props.hideInput && (slots.selection ? slots.selection({\n fileNames: fileNames.value,\n totalBytes: totalBytes.value,\n totalBytesReadable: totalBytesReadable.value\n }) : props.chips ? fileNames.value.map(text => _createVNode(VChip, {\n \"key\": text,\n \"size\": \"small\",\n \"text\": text\n }, null)) : fileNames.value.join(', '))])]);\n }\n });\n },\n details: hasDetails ? slotProps => _createVNode(_Fragment, null, [slots.details?.(slotProps), hasCounter && _createVNode(_Fragment, null, [_createVNode(\"span\", null, null), _createVNode(VCounter, {\n \"active\": !!model.value?.length,\n \"value\": counterValue.value,\n \"disabled\": props.disabled\n }, slots.counter)])]) : undefined\n });\n });\n return forwardRefs({}, vInputRef, vFieldRef, inputRef);\n }\n});\n//# sourceMappingURL=VFileInput.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VFooter.css\";\n\n// Composables\nimport { makeBorderProps, useBorder } from \"../../composables/border.mjs\";\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { makeLayoutItemProps, useLayoutItem } from \"../../composables/layout.mjs\";\nimport { useResizeObserver } from \"../../composables/resizeObserver.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\";\nimport { useToggleScope } from \"../../composables/toggleScope.mjs\"; // Utilities\nimport { computed, ref, shallowRef, toRef, watchEffect } from 'vue';\nimport { convertToUnit, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVFooterProps = propsFactory({\n app: Boolean,\n color: String,\n height: {\n type: [Number, String],\n default: 'auto'\n },\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeElevationProps(),\n ...makeLayoutItemProps(),\n ...makeRoundedProps(),\n ...makeTagProps({\n tag: 'footer'\n }),\n ...makeThemeProps()\n}, 'VFooter');\nexport const VFooter = genericComponent()({\n name: 'VFooter',\n props: makeVFooterProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const layoutItemStyles = ref();\n const {\n themeClasses\n } = provideTheme(props);\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(toRef(props, 'color'));\n const {\n borderClasses\n } = useBorder(props);\n const {\n elevationClasses\n } = useElevation(props);\n const {\n roundedClasses\n } = useRounded(props);\n const autoHeight = shallowRef(32);\n const {\n resizeRef\n } = useResizeObserver(entries => {\n if (!entries.length) return;\n autoHeight.value = entries[0].target.clientHeight;\n });\n const height = computed(() => props.height === 'auto' ? autoHeight.value : parseInt(props.height, 10));\n useToggleScope(() => props.app, () => {\n const layout = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: computed(() => 'bottom'),\n layoutSize: height,\n elementSize: computed(() => props.height === 'auto' ? undefined : height.value),\n active: computed(() => props.app),\n absolute: toRef(props, 'absolute')\n });\n watchEffect(() => {\n layoutItemStyles.value = layout.layoutItemStyles.value;\n });\n });\n useRender(() => _createVNode(props.tag, {\n \"ref\": resizeRef,\n \"class\": ['v-footer', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, props.class],\n \"style\": [backgroundColorStyles.value, props.app ? layoutItemStyles.value : {\n height: convertToUnit(props.height)\n }, props.style]\n }, slots));\n return {};\n }\n});\n//# sourceMappingURL=VFooter.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { createForm, makeFormProps } from \"../../composables/form.mjs\";\nimport { forwardRefs } from \"../../composables/forwardRefs.mjs\"; // Utilities\nimport { ref } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVFormProps = propsFactory({\n ...makeComponentProps(),\n ...makeFormProps()\n}, 'VForm');\nexport const VForm = genericComponent()({\n name: 'VForm',\n props: makeVFormProps(),\n emits: {\n 'update:modelValue': val => true,\n submit: e => true\n },\n setup(props, _ref) {\n let {\n slots,\n emit\n } = _ref;\n const form = createForm(props);\n const formRef = ref();\n function onReset(e) {\n e.preventDefault();\n form.reset();\n }\n function onSubmit(_e) {\n const e = _e;\n const ready = form.validate();\n e.then = ready.then.bind(ready);\n e.catch = ready.catch.bind(ready);\n e.finally = ready.finally.bind(ready);\n emit('submit', e);\n if (!e.defaultPrevented) {\n ready.then(_ref2 => {\n let {\n valid\n } = _ref2;\n if (valid) {\n formRef.value?.submit();\n }\n });\n }\n e.preventDefault();\n }\n useRender(() => _createVNode(\"form\", {\n \"ref\": formRef,\n \"class\": ['v-form', props.class],\n \"style\": props.style,\n \"novalidate\": true,\n \"onReset\": onReset,\n \"onSubmit\": onSubmit\n }, [slots.default?.(form)]));\n return forwardRefs(form, formRef);\n }\n});\n//# sourceMappingURL=VForm.mjs.map","// Composables\nimport { makeDelayProps, useDelay } from \"../../composables/delay.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { genericComponent, propsFactory } from \"../../util/index.mjs\";\nexport const makeVHoverProps = propsFactory({\n disabled: Boolean,\n modelValue: {\n type: Boolean,\n default: null\n },\n ...makeDelayProps()\n}, 'VHover');\nexport const VHover = genericComponent()({\n name: 'VHover',\n props: makeVHoverProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const isHovering = useProxiedModel(props, 'modelValue');\n const {\n runOpenDelay,\n runCloseDelay\n } = useDelay(props, value => !props.disabled && (isHovering.value = value));\n return () => slots.default?.({\n isHovering: isHovering.value,\n props: {\n onMouseenter: runOpenDelay,\n onMouseleave: runCloseDelay\n }\n });\n }\n});\n//# sourceMappingURL=VHover.mjs.map","import { createTextVNode as _createTextVNode, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VInfiniteScroll.css\";\n\n// Components\nimport { VBtn } from \"../VBtn/index.mjs\";\nimport { VProgressCircular } from \"../VProgressCircular/index.mjs\"; // Composables\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { useIntersectionObserver } from \"../../composables/intersectionObserver.mjs\";\nimport { useLocale } from \"../../composables/locale.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { computed, nextTick, onMounted, ref, shallowRef, watch } from 'vue';\nimport { convertToUnit, defineComponent, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVInfiniteScrollProps = propsFactory({\n color: String,\n direction: {\n type: String,\n default: 'vertical',\n validator: v => ['vertical', 'horizontal'].includes(v)\n },\n side: {\n type: String,\n default: 'end',\n validator: v => ['start', 'end', 'both'].includes(v)\n },\n mode: {\n type: String,\n default: 'intersect',\n validator: v => ['intersect', 'manual'].includes(v)\n },\n margin: [Number, String],\n loadMoreText: {\n type: String,\n default: '$vuetify.infiniteScroll.loadMore'\n },\n emptyText: {\n type: String,\n default: '$vuetify.infiniteScroll.empty'\n },\n ...makeDimensionProps(),\n ...makeTagProps()\n}, 'VInfiniteScroll');\nexport const VInfiniteScrollIntersect = defineComponent({\n name: 'VInfiniteScrollIntersect',\n props: {\n side: {\n type: String,\n required: true\n },\n rootMargin: String\n },\n emits: {\n intersect: (side, isIntersecting) => true\n },\n setup(props, _ref) {\n let {\n emit\n } = _ref;\n const {\n intersectionRef,\n isIntersecting\n } = useIntersectionObserver();\n watch(isIntersecting, async val => {\n emit('intersect', props.side, val);\n });\n useRender(() => _createVNode(\"div\", {\n \"class\": \"v-infinite-scroll-intersect\",\n \"style\": {\n '--v-infinite-margin-size': props.rootMargin\n },\n \"ref\": intersectionRef\n }, [_createTextVNode(\"\\xA0\")]));\n return {};\n }\n});\nexport const VInfiniteScroll = genericComponent()({\n name: 'VInfiniteScroll',\n props: makeVInfiniteScrollProps(),\n emits: {\n load: options => true\n },\n setup(props, _ref2) {\n let {\n slots,\n emit\n } = _ref2;\n const rootEl = ref();\n const startStatus = shallowRef('ok');\n const endStatus = shallowRef('ok');\n const margin = computed(() => convertToUnit(props.margin));\n const isIntersecting = shallowRef(false);\n function setScrollAmount(amount) {\n if (!rootEl.value) return;\n const property = props.direction === 'vertical' ? 'scrollTop' : 'scrollLeft';\n rootEl.value[property] = amount;\n }\n function getScrollAmount() {\n if (!rootEl.value) return 0;\n const property = props.direction === 'vertical' ? 'scrollTop' : 'scrollLeft';\n return rootEl.value[property];\n }\n function getScrollSize() {\n if (!rootEl.value) return 0;\n const property = props.direction === 'vertical' ? 'scrollHeight' : 'scrollWidth';\n return rootEl.value[property];\n }\n function getContainerSize() {\n if (!rootEl.value) return 0;\n const property = props.direction === 'vertical' ? 'clientHeight' : 'clientWidth';\n return rootEl.value[property];\n }\n onMounted(() => {\n if (!rootEl.value) return;\n if (props.side === 'start') {\n setScrollAmount(getScrollSize());\n } else if (props.side === 'both') {\n setScrollAmount(getScrollSize() / 2 - getContainerSize() / 2);\n }\n });\n function setStatus(side, status) {\n if (side === 'start') {\n startStatus.value = status;\n } else if (side === 'end') {\n endStatus.value = status;\n }\n }\n function getStatus(side) {\n return side === 'start' ? startStatus.value : endStatus.value;\n }\n let previousScrollSize = 0;\n function handleIntersect(side, _isIntersecting) {\n isIntersecting.value = _isIntersecting;\n if (isIntersecting.value) {\n intersecting(side);\n }\n }\n function intersecting(side) {\n if (props.mode !== 'manual' && !isIntersecting.value) return;\n const status = getStatus(side);\n if (!rootEl.value || ['empty', 'loading'].includes(status)) return;\n previousScrollSize = getScrollSize();\n setStatus(side, 'loading');\n function done(status) {\n setStatus(side, status);\n nextTick(() => {\n if (status === 'empty' || status === 'error') return;\n if (status === 'ok' && side === 'start') {\n setScrollAmount(getScrollSize() - previousScrollSize + getScrollAmount());\n }\n if (props.mode !== 'manual') {\n nextTick(() => {\n window.requestAnimationFrame(() => {\n window.requestAnimationFrame(() => {\n window.requestAnimationFrame(() => {\n intersecting(side);\n });\n });\n });\n });\n }\n });\n }\n emit('load', {\n side,\n done\n });\n }\n const {\n t\n } = useLocale();\n function renderSide(side, status) {\n if (props.side !== side && props.side !== 'both') return;\n const onClick = () => intersecting(side);\n const slotProps = {\n side,\n props: {\n onClick,\n color: props.color\n }\n };\n if (status === 'error') return slots.error?.(slotProps);\n if (status === 'empty') return slots.empty?.(slotProps) ?? _createVNode(\"div\", null, [t(props.emptyText)]);\n if (props.mode === 'manual') {\n if (status === 'loading') {\n return slots.loading?.(slotProps) ?? _createVNode(VProgressCircular, {\n \"indeterminate\": true,\n \"color\": props.color\n }, null);\n }\n return slots['load-more']?.(slotProps) ?? _createVNode(VBtn, {\n \"variant\": \"outlined\",\n \"color\": props.color,\n \"onClick\": onClick\n }, {\n default: () => [t(props.loadMoreText)]\n });\n }\n return slots.loading?.(slotProps) ?? _createVNode(VProgressCircular, {\n \"indeterminate\": true,\n \"color\": props.color\n }, null);\n }\n const {\n dimensionStyles\n } = useDimension(props);\n useRender(() => {\n const Tag = props.tag;\n const hasStartIntersect = props.side === 'start' || props.side === 'both';\n const hasEndIntersect = props.side === 'end' || props.side === 'both';\n const intersectMode = props.mode === 'intersect';\n return _createVNode(Tag, {\n \"ref\": rootEl,\n \"class\": ['v-infinite-scroll', `v-infinite-scroll--${props.direction}`, {\n 'v-infinite-scroll--start': hasStartIntersect,\n 'v-infinite-scroll--end': hasEndIntersect\n }],\n \"style\": dimensionStyles.value\n }, {\n default: () => [_createVNode(\"div\", {\n \"class\": \"v-infinite-scroll__side\"\n }, [renderSide('start', startStatus.value)]), hasStartIntersect && intersectMode && _createVNode(VInfiniteScrollIntersect, {\n \"key\": \"start\",\n \"side\": \"start\",\n \"onIntersect\": handleIntersect,\n \"rootMargin\": margin.value\n }, null), slots.default?.(), hasEndIntersect && intersectMode && _createVNode(VInfiniteScrollIntersect, {\n \"key\": \"end\",\n \"side\": \"end\",\n \"onIntersect\": handleIntersect,\n \"rootMargin\": margin.value\n }, null), _createVNode(\"div\", {\n \"class\": \"v-infinite-scroll__side\"\n }, [renderSide('end', endStatus.value)])]\n });\n });\n }\n});\n//# sourceMappingURL=VInfiniteScroll.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VItemGroup.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeGroupProps, useGroup } from \"../../composables/group.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { genericComponent, propsFactory } from \"../../util/index.mjs\"; // Types\nexport const VItemGroupSymbol = Symbol.for('vuetify:v-item-group');\nexport const makeVItemGroupProps = propsFactory({\n ...makeComponentProps(),\n ...makeGroupProps({\n selectedClass: 'v-item--selected'\n }),\n ...makeTagProps(),\n ...makeThemeProps()\n}, 'VItemGroup');\nexport const VItemGroup = genericComponent()({\n name: 'VItemGroup',\n props: makeVItemGroupProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n isSelected,\n select,\n next,\n prev,\n selected\n } = useGroup(props, VItemGroupSymbol);\n return () => _createVNode(props.tag, {\n \"class\": ['v-item-group', themeClasses.value, props.class],\n \"style\": props.style\n }, {\n default: () => [slots.default?.({\n isSelected,\n select,\n next,\n prev,\n selected: selected.value\n })]\n });\n }\n});\n//# sourceMappingURL=VItemGroup.mjs.map","// Composables\nimport { VItemGroupSymbol } from \"./VItemGroup.mjs\";\nimport { makeGroupItemProps, useGroupItem } from \"../../composables/group.mjs\"; // Utilities\nimport { genericComponent } from \"../../util/index.mjs\";\nexport const VItem = genericComponent()({\n name: 'VItem',\n props: makeGroupItemProps(),\n emits: {\n 'group:selected': val => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n isSelected,\n select,\n toggle,\n selectedClass,\n value,\n disabled\n } = useGroupItem(props, VItemGroupSymbol);\n return () => slots.default?.({\n isSelected: isSelected.value,\n selectedClass: selectedClass.value,\n select,\n toggle,\n value: value.value,\n disabled: disabled.value\n });\n }\n});\n//# sourceMappingURL=VItem.mjs.map","// Styles\nimport \"./VKbd.css\";\n\n// Utilities\nimport { createSimpleFunctional } from \"../../util/index.mjs\";\nexport const VKbd = createSimpleFunctional('v-kbd', 'kbd');\n//# sourceMappingURL=index.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VLayout.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { createLayout, makeLayoutProps } from \"../../composables/layout.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVLayoutProps = propsFactory({\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeLayoutProps()\n}, 'VLayout');\nexport const VLayout = genericComponent()({\n name: 'VLayout',\n props: makeVLayoutProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n layoutClasses,\n layoutStyles,\n getLayoutItem,\n items,\n layoutRef\n } = createLayout(props);\n const {\n dimensionStyles\n } = useDimension(props);\n useRender(() => _createVNode(\"div\", {\n \"ref\": layoutRef,\n \"class\": [layoutClasses.value, props.class],\n \"style\": [dimensionStyles.value, layoutStyles.value, props.style]\n }, [slots.default?.()]));\n return {\n getLayoutItem,\n items\n };\n }\n});\n//# sourceMappingURL=VLayout.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VLayoutItem.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeLayoutItemProps, useLayoutItem } from \"../../composables/layout.mjs\"; // Utilities\nimport { computed, toRef } from 'vue';\nimport { genericComponent, propsFactory } from \"../../util/index.mjs\"; // Types\nexport const makeVLayoutItemProps = propsFactory({\n position: {\n type: String,\n required: true\n },\n size: {\n type: [Number, String],\n default: 300\n },\n modelValue: Boolean,\n ...makeComponentProps(),\n ...makeLayoutItemProps()\n}, 'VLayoutItem');\nexport const VLayoutItem = genericComponent()({\n name: 'VLayoutItem',\n props: makeVLayoutItemProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n layoutItemStyles\n } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: toRef(props, 'position'),\n elementSize: toRef(props, 'size'),\n layoutSize: toRef(props, 'size'),\n active: toRef(props, 'modelValue'),\n absolute: toRef(props, 'absolute')\n });\n return () => _createVNode(\"div\", {\n \"class\": ['v-layout-item', props.class],\n \"style\": [layoutItemStyles.value, props.style]\n }, [slots.default?.()]);\n }\n});\n//# sourceMappingURL=VLayoutItem.mjs.map","import { createVNode as _createVNode, resolveDirective as _resolveDirective, withDirectives as _withDirectives } from \"vue\";\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeTransitionProps, MaybeTransition } from \"../../composables/transition.mjs\"; // Directives\nimport intersect from \"../../directives/intersect/index.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVLazyProps = propsFactory({\n modelValue: Boolean,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined\n })\n },\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeTagProps(),\n ...makeTransitionProps({\n transition: 'fade-transition'\n })\n}, 'VLazy');\nexport const VLazy = genericComponent()({\n name: 'VLazy',\n directives: {\n intersect\n },\n props: makeVLazyProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n dimensionStyles\n } = useDimension(props);\n const isActive = useProxiedModel(props, 'modelValue');\n function onIntersect(isIntersecting) {\n if (isActive.value) return;\n isActive.value = isIntersecting;\n }\n useRender(() => _withDirectives(_createVNode(props.tag, {\n \"class\": ['v-lazy', props.class],\n \"style\": [dimensionStyles.value, props.style]\n }, {\n default: () => [isActive.value && _createVNode(MaybeTransition, {\n \"transition\": props.transition,\n \"appear\": true\n }, {\n default: () => [slots.default?.()]\n })]\n }), [[_resolveDirective(\"intersect\"), {\n handler: onIntersect,\n options: props.options\n }, null]]));\n return {};\n }\n});\n//# sourceMappingURL=VLazy.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VLocaleProvider.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { provideLocale } from \"../../composables/locale.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVLocaleProviderProps = propsFactory({\n locale: String,\n fallbackLocale: String,\n messages: Object,\n rtl: {\n type: Boolean,\n default: undefined\n },\n ...makeComponentProps()\n}, 'VLocaleProvider');\nexport const VLocaleProvider = genericComponent()({\n name: 'VLocaleProvider',\n props: makeVLocaleProviderProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n rtlClasses\n } = provideLocale(props);\n useRender(() => _createVNode(\"div\", {\n \"class\": ['v-locale-provider', rtlClasses.value, props.class],\n \"style\": props.style\n }, [slots.default?.()]));\n return {};\n }\n});\n//# sourceMappingURL=VLocaleProvider.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VMain.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { useLayout } from \"../../composables/layout.mjs\";\nimport { useSsrBoot } from \"../../composables/ssrBoot.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVMainProps = propsFactory({\n scrollable: Boolean,\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeTagProps({\n tag: 'main'\n })\n}, 'VMain');\nexport const VMain = genericComponent()({\n name: 'VMain',\n props: makeVMainProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n dimensionStyles\n } = useDimension(props);\n const {\n mainStyles\n } = useLayout();\n const {\n ssrBootStyles\n } = useSsrBoot();\n useRender(() => _createVNode(props.tag, {\n \"class\": ['v-main', {\n 'v-main--scrollable': props.scrollable\n }, props.class],\n \"style\": [mainStyles.value, ssrBootStyles.value, dimensionStyles.value, props.style]\n }, {\n default: () => [props.scrollable ? _createVNode(\"div\", {\n \"class\": \"v-main__scroller\"\n }, [slots.default?.()]) : slots.default?.()]\n }));\n return {};\n }\n});\n//# sourceMappingURL=VMain.mjs.map","// Utilities\nimport { computed, onBeforeUnmount, onMounted, shallowRef, watch } from 'vue';\nimport { convertToUnit } from \"../../util/index.mjs\"; // Types\nexport function useSticky(_ref) {\n let {\n rootEl,\n isSticky,\n layoutItemStyles\n } = _ref;\n const isStuck = shallowRef(false);\n const stuckPosition = shallowRef(0);\n const stickyStyles = computed(() => {\n const side = typeof isStuck.value === 'boolean' ? 'top' : isStuck.value;\n return [isSticky.value ? {\n top: 'auto',\n bottom: 'auto',\n height: undefined\n } : undefined, isStuck.value ? {\n [side]: convertToUnit(stuckPosition.value)\n } : {\n top: layoutItemStyles.value.top\n }];\n });\n onMounted(() => {\n watch(isSticky, val => {\n if (val) {\n window.addEventListener('scroll', onScroll, {\n passive: true\n });\n } else {\n window.removeEventListener('scroll', onScroll);\n }\n }, {\n immediate: true\n });\n });\n onBeforeUnmount(() => {\n window.removeEventListener('scroll', onScroll);\n });\n let lastScrollTop = 0;\n function onScroll() {\n const direction = lastScrollTop > window.scrollY ? 'up' : 'down';\n const rect = rootEl.value.getBoundingClientRect();\n const layoutTop = parseFloat(layoutItemStyles.value.top ?? 0);\n const top = window.scrollY - Math.max(0, stuckPosition.value - layoutTop);\n const bottom = rect.height + Math.max(stuckPosition.value, layoutTop) - window.scrollY - window.innerHeight;\n const bodyScroll = parseFloat(getComputedStyle(rootEl.value).getPropertyValue('--v-body-scroll-y')) || 0;\n if (rect.height < window.innerHeight - layoutTop) {\n isStuck.value = 'top';\n stuckPosition.value = layoutTop;\n } else if (direction === 'up' && isStuck.value === 'bottom' || direction === 'down' && isStuck.value === 'top') {\n stuckPosition.value = window.scrollY + rect.top - bodyScroll;\n isStuck.value = true;\n } else if (direction === 'down' && bottom <= 0) {\n stuckPosition.value = 0;\n isStuck.value = 'bottom';\n } else if (direction === 'up' && top <= 0) {\n if (!bodyScroll) {\n stuckPosition.value = rect.top + top;\n isStuck.value = 'top';\n } else if (isStuck.value !== 'top') {\n stuckPosition.value = -top + bodyScroll + layoutTop;\n isStuck.value = 'top';\n }\n }\n lastScrollTop = window.scrollY;\n }\n return {\n isStuck,\n stickyStyles\n };\n}\n//# sourceMappingURL=sticky.mjs.map","// Utilities\nimport { CircularBuffer } from \"../util/index.mjs\";\nconst HORIZON = 100; // ms\nconst HISTORY = 20; // number of samples to keep\n\n/** @see https://android.googlesource.com/platform/frameworks/native/+/master/libs/input/VelocityTracker.cpp */\nfunction kineticEnergyToVelocity(work) {\n const sqrt2 = 1.41421356237;\n return (work < 0 ? -1.0 : 1.0) * Math.sqrt(Math.abs(work)) * sqrt2;\n}\n\n/**\n * Returns pointer velocity in px/s\n */\nexport function calculateImpulseVelocity(samples) {\n // The input should be in reversed time order (most recent sample at index i=0)\n if (samples.length < 2) {\n // if 0 or 1 points, velocity is zero\n return 0;\n }\n // if (samples[1].t > samples[0].t) {\n // // Algorithm will still work, but not perfectly\n // consoleWarn('Samples provided to calculateImpulseVelocity in the wrong order')\n // }\n if (samples.length === 2) {\n // if 2 points, basic linear calculation\n if (samples[1].t === samples[0].t) {\n // consoleWarn(`Events have identical time stamps t=${samples[0].t}, setting velocity = 0`)\n return 0;\n }\n return (samples[1].d - samples[0].d) / (samples[1].t - samples[0].t);\n }\n // Guaranteed to have at least 3 points here\n // start with the oldest sample and go forward in time\n let work = 0;\n for (let i = samples.length - 1; i > 0; i--) {\n if (samples[i].t === samples[i - 1].t) {\n // consoleWarn(`Events have identical time stamps t=${samples[i].t}, skipping sample`)\n continue;\n }\n const vprev = kineticEnergyToVelocity(work); // v[i-1]\n const vcurr = (samples[i].d - samples[i - 1].d) / (samples[i].t - samples[i - 1].t); // v[i]\n work += (vcurr - vprev) * Math.abs(vcurr);\n if (i === samples.length - 1) {\n work *= 0.5;\n }\n }\n return kineticEnergyToVelocity(work) * 1000;\n}\nexport function useVelocity() {\n const touches = {};\n function addMovement(e) {\n Array.from(e.changedTouches).forEach(touch => {\n const samples = touches[touch.identifier] ?? (touches[touch.identifier] = new CircularBuffer(HISTORY));\n samples.push([e.timeStamp, touch]);\n });\n }\n function endTouch(e) {\n Array.from(e.changedTouches).forEach(touch => {\n delete touches[touch.identifier];\n });\n }\n function getVelocity(id) {\n const samples = touches[id]?.values().reverse();\n if (!samples) {\n throw new Error(`No samples for touch id ${id}`);\n }\n const newest = samples[0];\n const x = [];\n const y = [];\n for (const val of samples) {\n if (newest[0] - val[0] > HORIZON) break;\n x.push({\n t: val[0],\n d: val[1].clientX\n });\n y.push({\n t: val[0],\n d: val[1].clientY\n });\n }\n return {\n x: calculateImpulseVelocity(x),\n y: calculateImpulseVelocity(y),\n get direction() {\n const {\n x,\n y\n } = this;\n const [absX, absY] = [Math.abs(x), Math.abs(y)];\n return absX > absY && x >= 0 ? 'right' : absX > absY && x <= 0 ? 'left' : absY > absX && y >= 0 ? 'down' : absY > absX && y <= 0 ? 'up' : oops();\n }\n };\n }\n return {\n addMovement,\n endTouch,\n getVelocity\n };\n}\nfunction oops() {\n throw new Error();\n}\n//# sourceMappingURL=touch.mjs.map","// Composables\nimport { useToggleScope } from \"../../composables/toggleScope.mjs\";\nimport { useVelocity } from \"../../composables/touch.mjs\"; // Utilities\nimport { computed, onBeforeUnmount, onMounted, onScopeDispose, shallowRef, watchEffect } from 'vue';\n\n// Types\n\nexport function useTouch(_ref) {\n let {\n el,\n isActive,\n isTemporary,\n width,\n touchless,\n position\n } = _ref;\n onMounted(() => {\n window.addEventListener('touchstart', onTouchstart, {\n passive: true\n });\n window.addEventListener('touchmove', onTouchmove, {\n passive: false\n });\n window.addEventListener('touchend', onTouchend, {\n passive: true\n });\n });\n onBeforeUnmount(() => {\n window.removeEventListener('touchstart', onTouchstart);\n window.removeEventListener('touchmove', onTouchmove);\n window.removeEventListener('touchend', onTouchend);\n });\n const isHorizontal = computed(() => ['left', 'right'].includes(position.value));\n const {\n addMovement,\n endTouch,\n getVelocity\n } = useVelocity();\n let maybeDragging = false;\n const isDragging = shallowRef(false);\n const dragProgress = shallowRef(0);\n const offset = shallowRef(0);\n let start;\n function getOffset(pos, active) {\n return (position.value === 'left' ? pos : position.value === 'right' ? document.documentElement.clientWidth - pos : position.value === 'top' ? pos : position.value === 'bottom' ? document.documentElement.clientHeight - pos : oops()) - (active ? width.value : 0);\n }\n function getProgress(pos) {\n let limit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n const progress = position.value === 'left' ? (pos - offset.value) / width.value : position.value === 'right' ? (document.documentElement.clientWidth - pos - offset.value) / width.value : position.value === 'top' ? (pos - offset.value) / width.value : position.value === 'bottom' ? (document.documentElement.clientHeight - pos - offset.value) / width.value : oops();\n return limit ? Math.max(0, Math.min(1, progress)) : progress;\n }\n function onTouchstart(e) {\n if (touchless.value) return;\n const touchX = e.changedTouches[0].clientX;\n const touchY = e.changedTouches[0].clientY;\n const touchZone = 25;\n const inTouchZone = position.value === 'left' ? touchX < touchZone : position.value === 'right' ? touchX > document.documentElement.clientWidth - touchZone : position.value === 'top' ? touchY < touchZone : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - touchZone : oops();\n const inElement = isActive.value && (position.value === 'left' ? touchX < width.value : position.value === 'right' ? touchX > document.documentElement.clientWidth - width.value : position.value === 'top' ? touchY < width.value : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - width.value : oops());\n if (inTouchZone || inElement || isActive.value && isTemporary.value) {\n start = [touchX, touchY];\n offset.value = getOffset(isHorizontal.value ? touchX : touchY, isActive.value);\n dragProgress.value = getProgress(isHorizontal.value ? touchX : touchY);\n maybeDragging = offset.value > -20 && offset.value < 80;\n endTouch(e);\n addMovement(e);\n }\n }\n function onTouchmove(e) {\n const touchX = e.changedTouches[0].clientX;\n const touchY = e.changedTouches[0].clientY;\n if (maybeDragging) {\n if (!e.cancelable) {\n maybeDragging = false;\n return;\n }\n const dx = Math.abs(touchX - start[0]);\n const dy = Math.abs(touchY - start[1]);\n const thresholdMet = isHorizontal.value ? dx > dy && dx > 3 : dy > dx && dy > 3;\n if (thresholdMet) {\n isDragging.value = true;\n maybeDragging = false;\n } else if ((isHorizontal.value ? dy : dx) > 3) {\n maybeDragging = false;\n }\n }\n if (!isDragging.value) return;\n e.preventDefault();\n addMovement(e);\n const progress = getProgress(isHorizontal.value ? touchX : touchY, false);\n dragProgress.value = Math.max(0, Math.min(1, progress));\n if (progress > 1) {\n offset.value = getOffset(isHorizontal.value ? touchX : touchY, true);\n } else if (progress < 0) {\n offset.value = getOffset(isHorizontal.value ? touchX : touchY, false);\n }\n }\n function onTouchend(e) {\n maybeDragging = false;\n if (!isDragging.value) return;\n addMovement(e);\n isDragging.value = false;\n const velocity = getVelocity(e.changedTouches[0].identifier);\n const vx = Math.abs(velocity.x);\n const vy = Math.abs(velocity.y);\n const thresholdMet = isHorizontal.value ? vx > vy && vx > 400 : vy > vx && vy > 3;\n if (thresholdMet) {\n isActive.value = velocity.direction === ({\n left: 'right',\n right: 'left',\n top: 'down',\n bottom: 'up'\n }[position.value] || oops());\n } else {\n isActive.value = dragProgress.value > 0.5;\n }\n }\n const dragStyles = computed(() => {\n return isDragging.value ? {\n transform: position.value === 'left' ? `translateX(calc(-100% + ${dragProgress.value * width.value}px))` : position.value === 'right' ? `translateX(calc(100% - ${dragProgress.value * width.value}px))` : position.value === 'top' ? `translateY(calc(-100% + ${dragProgress.value * width.value}px))` : position.value === 'bottom' ? `translateY(calc(100% - ${dragProgress.value * width.value}px))` : oops(),\n transition: 'none'\n } : undefined;\n });\n useToggleScope(isDragging, () => {\n const transform = el.value?.style.transform ?? null;\n const transition = el.value?.style.transition ?? null;\n watchEffect(() => {\n el.value?.style.setProperty('transform', dragStyles.value?.transform || 'none');\n el.value?.style.setProperty('transition', dragStyles.value?.transition || null);\n });\n onScopeDispose(() => {\n el.value?.style.setProperty('transform', transform);\n el.value?.style.setProperty('transition', transition);\n });\n });\n return {\n isDragging,\n dragProgress,\n dragStyles\n };\n}\nfunction oops() {\n throw new Error();\n}\n//# sourceMappingURL=touch.mjs.map","import { Fragment as _Fragment, createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\n// Styles\nimport \"./VNavigationDrawer.css\";\n\n// Components\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VImg } from \"../VImg/index.mjs\"; // Composables\nimport { useSticky } from \"./sticky.mjs\";\nimport { useTouch } from \"./touch.mjs\";\nimport { useRtl } from \"../../composables/index.mjs\";\nimport { makeBorderProps, useBorder } from \"../../composables/border.mjs\";\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeDelayProps, useDelay } from \"../../composables/delay.mjs\";\nimport { makeDisplayProps, useDisplay } from \"../../composables/display.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { makeLayoutItemProps, useLayoutItem } from \"../../composables/layout.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { useRouter } from \"../../composables/router.mjs\";\nimport { useScopeId } from \"../../composables/scopeId.mjs\";\nimport { useSsrBoot } from \"../../composables/ssrBoot.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\";\nimport { useToggleScope } from \"../../composables/toggleScope.mjs\"; // Utilities\nimport { computed, nextTick, ref, shallowRef, toRef, Transition, watch } from 'vue';\nimport { genericComponent, propsFactory, toPhysical, useRender } from \"../../util/index.mjs\"; // Types\nconst locations = ['start', 'end', 'left', 'right', 'top', 'bottom'];\nexport const makeVNavigationDrawerProps = propsFactory({\n color: String,\n disableResizeWatcher: Boolean,\n disableRouteWatcher: Boolean,\n expandOnHover: Boolean,\n floating: Boolean,\n modelValue: {\n type: Boolean,\n default: null\n },\n permanent: Boolean,\n rail: {\n type: Boolean,\n default: null\n },\n railWidth: {\n type: [Number, String],\n default: 56\n },\n scrim: {\n type: [Boolean, String],\n default: true\n },\n image: String,\n temporary: Boolean,\n persistent: Boolean,\n touchless: Boolean,\n width: {\n type: [Number, String],\n default: 256\n },\n location: {\n type: String,\n default: 'start',\n validator: value => locations.includes(value)\n },\n sticky: Boolean,\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDelayProps(),\n ...makeDisplayProps({\n mobile: null\n }),\n ...makeElevationProps(),\n ...makeLayoutItemProps(),\n ...makeRoundedProps(),\n ...makeTagProps({\n tag: 'nav'\n }),\n ...makeThemeProps()\n}, 'VNavigationDrawer');\nexport const VNavigationDrawer = genericComponent()({\n name: 'VNavigationDrawer',\n props: makeVNavigationDrawerProps(),\n emits: {\n 'update:modelValue': val => true,\n 'update:rail': val => true\n },\n setup(props, _ref) {\n let {\n attrs,\n emit,\n slots\n } = _ref;\n const {\n isRtl\n } = useRtl();\n const {\n themeClasses\n } = provideTheme(props);\n const {\n borderClasses\n } = useBorder(props);\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(toRef(props, 'color'));\n const {\n elevationClasses\n } = useElevation(props);\n const {\n displayClasses,\n mobile\n } = useDisplay(props);\n const {\n roundedClasses\n } = useRounded(props);\n const router = useRouter();\n const isActive = useProxiedModel(props, 'modelValue', null, v => !!v);\n const {\n ssrBootStyles\n } = useSsrBoot();\n const {\n scopeId\n } = useScopeId();\n const rootEl = ref();\n const isHovering = shallowRef(false);\n const {\n runOpenDelay,\n runCloseDelay\n } = useDelay(props, value => {\n isHovering.value = value;\n });\n const width = computed(() => {\n return props.rail && props.expandOnHover && isHovering.value ? Number(props.width) : Number(props.rail ? props.railWidth : props.width);\n });\n const location = computed(() => {\n return toPhysical(props.location, isRtl.value);\n });\n const isPersistent = computed(() => props.persistent);\n const isTemporary = computed(() => !props.permanent && (mobile.value || props.temporary));\n const isSticky = computed(() => props.sticky && !isTemporary.value && location.value !== 'bottom');\n useToggleScope(() => props.expandOnHover && props.rail != null, () => {\n watch(isHovering, val => emit('update:rail', !val));\n });\n useToggleScope(() => !props.disableResizeWatcher, () => {\n watch(isTemporary, val => !props.permanent && nextTick(() => isActive.value = !val));\n });\n useToggleScope(() => !props.disableRouteWatcher && !!router, () => {\n watch(router.currentRoute, () => isTemporary.value && (isActive.value = false));\n });\n watch(() => props.permanent, val => {\n if (val) isActive.value = true;\n });\n if (props.modelValue == null && !isTemporary.value) {\n isActive.value = props.permanent || !mobile.value;\n }\n const {\n isDragging,\n dragProgress\n } = useTouch({\n el: rootEl,\n isActive,\n isTemporary,\n width,\n touchless: toRef(props, 'touchless'),\n position: location\n });\n const layoutSize = computed(() => {\n const size = isTemporary.value ? 0 : props.rail && props.expandOnHover ? Number(props.railWidth) : width.value;\n return isDragging.value ? size * dragProgress.value : size;\n });\n const {\n layoutItemStyles,\n layoutItemScrimStyles\n } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: location,\n layoutSize,\n elementSize: width,\n active: computed(() => isActive.value || isDragging.value),\n disableTransitions: computed(() => isDragging.value),\n absolute: computed(() =>\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n props.absolute || isSticky.value && typeof isStuck.value !== 'string')\n });\n const {\n isStuck,\n stickyStyles\n } = useSticky({\n rootEl,\n isSticky,\n layoutItemStyles\n });\n const scrimColor = useBackgroundColor(computed(() => {\n return typeof props.scrim === 'string' ? props.scrim : null;\n }));\n const scrimStyles = computed(() => ({\n ...(isDragging.value ? {\n opacity: dragProgress.value * 0.2,\n transition: 'none'\n } : undefined),\n ...layoutItemScrimStyles.value\n }));\n provideDefaults({\n VList: {\n bgColor: 'transparent'\n }\n });\n useRender(() => {\n const hasImage = slots.image || props.image;\n return _createVNode(_Fragment, null, [_createVNode(props.tag, _mergeProps({\n \"ref\": rootEl,\n \"onMouseenter\": runOpenDelay,\n \"onMouseleave\": runCloseDelay,\n \"class\": ['v-navigation-drawer', `v-navigation-drawer--${location.value}`, {\n 'v-navigation-drawer--expand-on-hover': props.expandOnHover,\n 'v-navigation-drawer--floating': props.floating,\n 'v-navigation-drawer--is-hovering': isHovering.value,\n 'v-navigation-drawer--rail': props.rail,\n 'v-navigation-drawer--temporary': isTemporary.value,\n 'v-navigation-drawer--persistent': isPersistent.value,\n 'v-navigation-drawer--active': isActive.value,\n 'v-navigation-drawer--sticky': isSticky.value\n }, themeClasses.value, backgroundColorClasses.value, borderClasses.value, displayClasses.value, elevationClasses.value, roundedClasses.value, props.class],\n \"style\": [backgroundColorStyles.value, layoutItemStyles.value, ssrBootStyles.value, stickyStyles.value, props.style]\n }, scopeId, attrs), {\n default: () => [hasImage && _createVNode(\"div\", {\n \"key\": \"image\",\n \"class\": \"v-navigation-drawer__img\"\n }, [!slots.image ? _createVNode(VImg, {\n \"key\": \"image-img\",\n \"alt\": \"\",\n \"cover\": true,\n \"height\": \"inherit\",\n \"src\": props.image\n }, null) : _createVNode(VDefaultsProvider, {\n \"key\": \"image-defaults\",\n \"disabled\": !props.image,\n \"defaults\": {\n VImg: {\n alt: '',\n cover: true,\n height: 'inherit',\n src: props.image\n }\n }\n }, slots.image)]), slots.prepend && _createVNode(\"div\", {\n \"class\": \"v-navigation-drawer__prepend\"\n }, [slots.prepend?.()]), _createVNode(\"div\", {\n \"class\": \"v-navigation-drawer__content\"\n }, [slots.default?.()]), slots.append && _createVNode(\"div\", {\n \"class\": \"v-navigation-drawer__append\"\n }, [slots.append?.()])]\n }), _createVNode(Transition, {\n \"name\": \"fade-transition\"\n }, {\n default: () => [isTemporary.value && (isDragging.value || isActive.value) && !!props.scrim && _createVNode(\"div\", _mergeProps({\n \"class\": ['v-navigation-drawer__scrim', scrimColor.backgroundColorClasses.value],\n \"style\": [scrimStyles.value, scrimColor.backgroundColorStyles.value],\n \"onClick\": () => {\n if (isPersistent.value) return;\n isActive.value = false;\n }\n }, scopeId), null)]\n })]);\n });\n return {\n isStuck\n };\n }\n});\n//# sourceMappingURL=VNavigationDrawer.mjs.map","// Composables\nimport { useHydration } from \"../../composables/hydration.mjs\"; // Utilities\nimport { defineComponent } from \"../../util/index.mjs\";\nexport const VNoSsr = defineComponent({\n name: 'VNoSsr',\n setup(_, _ref) {\n let {\n slots\n } = _ref;\n const show = useHydration();\n return () => show.value && slots.default?.();\n }\n});\n//# sourceMappingURL=VNoSsr.mjs.map","import { Fragment as _Fragment, createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\n// Styles\nimport \"./VOtpInput.css\";\n\n// Components\nimport { makeVFieldProps, VField } from \"../VField/VField.mjs\";\nimport { VOverlay } from \"../VOverlay/VOverlay.mjs\";\nimport { VProgressCircular } from \"../VProgressCircular/VProgressCircular.mjs\"; // Composables\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { makeFocusProps, useFocus } from \"../../composables/focus.mjs\";\nimport { useLocale } from \"../../composables/locale.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed, nextTick, ref, watch } from 'vue';\nimport { filterInputAttrs, focusChild, genericComponent, pick, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\n// Types\nexport const makeVOtpInputProps = propsFactory({\n autofocus: Boolean,\n divider: String,\n focusAll: Boolean,\n label: {\n type: String,\n default: '$vuetify.input.otp'\n },\n length: {\n type: [Number, String],\n default: 6\n },\n modelValue: {\n type: [Number, String],\n default: undefined\n },\n placeholder: String,\n type: {\n type: String,\n default: 'number'\n },\n ...makeDimensionProps(),\n ...makeFocusProps(),\n ...pick(makeVFieldProps({\n variant: 'outlined'\n }), ['baseColor', 'bgColor', 'class', 'color', 'disabled', 'error', 'loading', 'rounded', 'style', 'theme', 'variant'])\n}, 'VOtpInput');\nexport const VOtpInput = genericComponent()({\n name: 'VOtpInput',\n props: makeVOtpInputProps(),\n emits: {\n finish: val => true,\n 'update:focused': val => true,\n 'update:modelValue': val => true\n },\n setup(props, _ref) {\n let {\n attrs,\n emit,\n slots\n } = _ref;\n const {\n dimensionStyles\n } = useDimension(props);\n const {\n isFocused,\n focus,\n blur\n } = useFocus(props);\n const model = useProxiedModel(props, 'modelValue', '', val => val == null ? [] : String(val).split(''), val => val.join(''));\n const {\n t\n } = useLocale();\n const length = computed(() => Number(props.length));\n const fields = computed(() => Array(length.value).fill(0));\n const focusIndex = ref(-1);\n const contentRef = ref();\n const inputRef = ref([]);\n const current = computed(() => inputRef.value[focusIndex.value]);\n function onInput() {\n // The maxlength attribute doesn't work for the number type input, so the text type is used.\n // The following logic simulates the behavior of a number input.\n if (isValidNumber(current.value.value)) {\n current.value.value = '';\n return;\n }\n const array = model.value.slice();\n const value = current.value.value;\n array[focusIndex.value] = value;\n let target = null;\n if (focusIndex.value > model.value.length) {\n target = model.value.length + 1;\n } else if (focusIndex.value + 1 !== length.value) {\n target = 'next';\n }\n model.value = array;\n if (target) focusChild(contentRef.value, target);\n }\n function onKeydown(e) {\n const array = model.value.slice();\n const index = focusIndex.value;\n let target = null;\n if (!['ArrowLeft', 'ArrowRight', 'Backspace', 'Delete'].includes(e.key)) return;\n e.preventDefault();\n if (e.key === 'ArrowLeft') {\n target = 'prev';\n } else if (e.key === 'ArrowRight') {\n target = 'next';\n } else if (['Backspace', 'Delete'].includes(e.key)) {\n array[focusIndex.value] = '';\n model.value = array;\n if (focusIndex.value > 0 && e.key === 'Backspace') {\n target = 'prev';\n } else {\n requestAnimationFrame(() => {\n inputRef.value[index]?.select();\n });\n }\n }\n requestAnimationFrame(() => {\n if (target != null) {\n focusChild(contentRef.value, target);\n }\n });\n }\n function onPaste(index, e) {\n e.preventDefault();\n e.stopPropagation();\n const clipboardText = e?.clipboardData?.getData('Text').slice(0, length.value) ?? '';\n if (isValidNumber(clipboardText)) return;\n model.value = clipboardText.split('');\n inputRef.value?.[index].blur();\n }\n function reset() {\n model.value = [];\n }\n function onFocus(e, index) {\n focus();\n focusIndex.value = index;\n }\n function onBlur() {\n blur();\n focusIndex.value = -1;\n }\n function isValidNumber(value) {\n return props.type === 'number' && /[^0-9]/g.test(value);\n }\n provideDefaults({\n VField: {\n color: computed(() => props.color),\n bgColor: computed(() => props.color),\n baseColor: computed(() => props.baseColor),\n disabled: computed(() => props.disabled),\n error: computed(() => props.error),\n variant: computed(() => props.variant)\n }\n }, {\n scoped: true\n });\n watch(model, val => {\n if (val.length === length.value) emit('finish', val.join(''));\n }, {\n deep: true\n });\n watch(focusIndex, val => {\n if (val < 0) return;\n nextTick(() => {\n inputRef.value[val]?.select();\n });\n });\n useRender(() => {\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs);\n return _createVNode(\"div\", _mergeProps({\n \"class\": ['v-otp-input', {\n 'v-otp-input--divided': !!props.divider\n }, props.class],\n \"style\": [props.style]\n }, rootAttrs), [_createVNode(\"div\", {\n \"ref\": contentRef,\n \"class\": \"v-otp-input__content\",\n \"style\": [dimensionStyles.value]\n }, [fields.value.map((_, i) => _createVNode(_Fragment, null, [props.divider && i !== 0 && _createVNode(\"span\", {\n \"class\": \"v-otp-input__divider\"\n }, [props.divider]), _createVNode(VField, {\n \"focused\": isFocused.value && props.focusAll || focusIndex.value === i,\n \"key\": i\n }, {\n ...slots,\n loader: undefined,\n default: () => {\n return _createVNode(\"input\", {\n \"ref\": val => inputRef.value[i] = val,\n \"aria-label\": t(props.label, i + 1),\n \"autofocus\": i === 0 && props.autofocus,\n \"autocomplete\": \"one-time-code\",\n \"class\": ['v-otp-input__field'],\n \"disabled\": props.disabled,\n \"inputmode\": props.type === 'number' ? 'numeric' : 'text',\n \"min\": props.type === 'number' ? 0 : undefined,\n \"maxlength\": i === 0 ? length.value : '1',\n \"placeholder\": props.placeholder,\n \"type\": props.type === 'number' ? 'text' : props.type,\n \"value\": model.value[i],\n \"onInput\": onInput,\n \"onFocus\": e => onFocus(e, i),\n \"onBlur\": onBlur,\n \"onKeydown\": onKeydown,\n \"onPaste\": event => onPaste(i, event)\n }, null);\n }\n })])), _createVNode(\"input\", _mergeProps({\n \"class\": \"v-otp-input-input\",\n \"type\": \"hidden\"\n }, inputAttrs, {\n \"value\": model.value.join('')\n }), null), _createVNode(VOverlay, {\n \"contained\": true,\n \"content-class\": \"v-otp-input__loader\",\n \"model-value\": !!props.loading,\n \"persistent\": true\n }, {\n default: () => [slots.loader?.() ?? _createVNode(VProgressCircular, {\n \"color\": typeof props.loading === 'boolean' ? undefined : props.loading,\n \"indeterminate\": true,\n \"size\": \"24\",\n \"width\": \"2\"\n }, null)]\n }), slots.default?.()])]);\n });\n return {\n blur: () => {\n inputRef.value?.some(input => input.blur());\n },\n focus: () => {\n inputRef.value?.[0].focus();\n },\n reset,\n isFocused\n };\n }\n});\n//# sourceMappingURL=VOtpInput.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VParallax.css\";\n\n// Components\nimport { VImg } from \"../VImg/index.mjs\"; // Composables\nimport { useDisplay } from \"../../composables/index.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { useIntersectionObserver } from \"../../composables/intersectionObserver.mjs\";\nimport { useResizeObserver } from \"../../composables/resizeObserver.mjs\"; // Utilities\nimport { computed, onBeforeUnmount, ref, watch, watchEffect } from 'vue';\nimport { clamp, genericComponent, getScrollParent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nfunction floor(val) {\n return Math.floor(Math.abs(val)) * Math.sign(val);\n}\nexport const makeVParallaxProps = propsFactory({\n scale: {\n type: [Number, String],\n default: 0.5\n },\n ...makeComponentProps()\n}, 'VParallax');\nexport const VParallax = genericComponent()({\n name: 'VParallax',\n props: makeVParallaxProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n intersectionRef,\n isIntersecting\n } = useIntersectionObserver();\n const {\n resizeRef,\n contentRect\n } = useResizeObserver();\n const {\n height: displayHeight\n } = useDisplay();\n const root = ref();\n watchEffect(() => {\n intersectionRef.value = resizeRef.value = root.value?.$el;\n });\n let scrollParent;\n watch(isIntersecting, val => {\n if (val) {\n scrollParent = getScrollParent(intersectionRef.value);\n scrollParent = scrollParent === document.scrollingElement ? document : scrollParent;\n scrollParent.addEventListener('scroll', onScroll, {\n passive: true\n });\n onScroll();\n } else {\n scrollParent.removeEventListener('scroll', onScroll);\n }\n });\n onBeforeUnmount(() => {\n scrollParent?.removeEventListener('scroll', onScroll);\n });\n watch(displayHeight, onScroll);\n watch(() => contentRect.value?.height, onScroll);\n const scale = computed(() => {\n return 1 - clamp(+props.scale);\n });\n let frame = -1;\n function onScroll() {\n if (!isIntersecting.value) return;\n cancelAnimationFrame(frame);\n frame = requestAnimationFrame(() => {\n const el = (root.value?.$el).querySelector('.v-img__img');\n if (!el) return;\n const scrollHeight = scrollParent instanceof Document ? document.documentElement.clientHeight : scrollParent.clientHeight;\n const scrollPos = scrollParent instanceof Document ? window.scrollY : scrollParent.scrollTop;\n const top = intersectionRef.value.getBoundingClientRect().top + scrollPos;\n const height = contentRect.value.height;\n const center = top + (height - scrollHeight) / 2;\n const translate = floor((scrollPos - center) * scale.value);\n const sizeScale = Math.max(1, (scale.value * (scrollHeight - height) + height) / height);\n el.style.setProperty('transform', `translateY(${translate}px) scale(${sizeScale})`);\n });\n }\n useRender(() => _createVNode(VImg, {\n \"class\": ['v-parallax', {\n 'v-parallax--active': isIntersecting.value\n }, props.class],\n \"style\": props.style,\n \"ref\": root,\n \"cover\": true,\n \"onLoadstart\": onScroll,\n \"onLoad\": onScroll\n }, slots));\n return {};\n }\n});\n//# sourceMappingURL=VParallax.mjs.map","import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Components\nimport { makeVSelectionControlProps, VSelectionControl } from \"../VSelectionControl/VSelectionControl.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVRadioProps = propsFactory({\n ...makeVSelectionControlProps({\n falseIcon: '$radioOff',\n trueIcon: '$radioOn'\n })\n}, 'VRadio');\nexport const VRadio = genericComponent()({\n name: 'VRadio',\n props: makeVRadioProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => {\n const controlProps = VSelectionControl.filterProps(props);\n return _createVNode(VSelectionControl, _mergeProps(controlProps, {\n \"class\": ['v-radio', props.class],\n \"style\": props.style,\n \"type\": \"radio\"\n }), slots);\n });\n return {};\n }\n});\n//# sourceMappingURL=VRadio.mjs.map","import { Fragment as _Fragment, createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\n// Styles\nimport \"./VRadioGroup.css\";\n\n// Components\nimport { makeVInputProps, VInput } from \"../VInput/VInput.mjs\";\nimport { VLabel } from \"../VLabel/index.mjs\";\nimport { VSelectionControl } from \"../VSelectionControl/index.mjs\";\nimport { makeSelectionControlGroupProps, VSelectionControlGroup } from \"../VSelectionControlGroup/VSelectionControlGroup.mjs\"; // Composables\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { filterInputAttrs, genericComponent, getUid, omit, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVRadioGroupProps = propsFactory({\n height: {\n type: [Number, String],\n default: 'auto'\n },\n ...makeVInputProps(),\n ...omit(makeSelectionControlGroupProps(), ['multiple']),\n trueIcon: {\n type: IconValue,\n default: '$radioOn'\n },\n falseIcon: {\n type: IconValue,\n default: '$radioOff'\n },\n type: {\n type: String,\n default: 'radio'\n }\n}, 'VRadioGroup');\nexport const VRadioGroup = genericComponent()({\n name: 'VRadioGroup',\n inheritAttrs: false,\n props: makeVRadioGroupProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const uid = getUid();\n const id = computed(() => props.id || `radio-group-${uid}`);\n const model = useProxiedModel(props, 'modelValue');\n useRender(() => {\n const [rootAttrs, controlAttrs] = filterInputAttrs(attrs);\n const inputProps = VInput.filterProps(props);\n const controlProps = VSelectionControl.filterProps(props);\n const label = slots.label ? slots.label({\n label: props.label,\n props: {\n for: id.value\n }\n }) : props.label;\n return _createVNode(VInput, _mergeProps({\n \"class\": ['v-radio-group', props.class],\n \"style\": props.style\n }, rootAttrs, inputProps, {\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"id\": id.value\n }), {\n ...slots,\n default: _ref2 => {\n let {\n id,\n messagesId,\n isDisabled,\n isReadonly\n } = _ref2;\n return _createVNode(_Fragment, null, [label && _createVNode(VLabel, {\n \"id\": id.value\n }, {\n default: () => [label]\n }), _createVNode(VSelectionControlGroup, _mergeProps(controlProps, {\n \"id\": id.value,\n \"aria-describedby\": messagesId.value,\n \"defaultsTarget\": \"VRadio\",\n \"trueIcon\": props.trueIcon,\n \"falseIcon\": props.falseIcon,\n \"type\": props.type,\n \"disabled\": isDisabled.value,\n \"readonly\": isReadonly.value,\n \"aria-labelledby\": label ? id.value : undefined,\n \"multiple\": false\n }, controlAttrs, {\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event\n }), slots)]);\n }\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VRadioGroup.mjs.map","import { Fragment as _Fragment, createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\n// Styles\nimport \"../VSlider/VSlider.css\";\n\n// Components\nimport { makeVInputProps, VInput } from \"../VInput/VInput.mjs\";\nimport { VLabel } from \"../VLabel/index.mjs\";\nimport { getOffset, makeSliderProps, useSlider, useSteps } from \"../VSlider/slider.mjs\";\nimport { VSliderThumb } from \"../VSlider/VSliderThumb.mjs\";\nimport { VSliderTrack } from \"../VSlider/VSliderTrack.mjs\"; // Composables\nimport { makeFocusProps, useFocus } from \"../../composables/focus.mjs\";\nimport { useRtl } from \"../../composables/locale.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed, ref } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVRangeSliderProps = propsFactory({\n ...makeFocusProps(),\n ...makeVInputProps(),\n ...makeSliderProps(),\n strict: Boolean,\n modelValue: {\n type: Array,\n default: () => [0, 0]\n }\n}, 'VRangeSlider');\nexport const VRangeSlider = genericComponent()({\n name: 'VRangeSlider',\n props: makeVRangeSliderProps(),\n emits: {\n 'update:focused': value => true,\n 'update:modelValue': value => true,\n end: value => true,\n start: value => true\n },\n setup(props, _ref) {\n let {\n slots,\n emit\n } = _ref;\n const startThumbRef = ref();\n const stopThumbRef = ref();\n const inputRef = ref();\n const {\n rtlClasses\n } = useRtl();\n function getActiveThumb(e) {\n if (!startThumbRef.value || !stopThumbRef.value) return;\n const startOffset = getOffset(e, startThumbRef.value.$el, props.direction);\n const stopOffset = getOffset(e, stopThumbRef.value.$el, props.direction);\n const a = Math.abs(startOffset);\n const b = Math.abs(stopOffset);\n return a < b || a === b && startOffset < 0 ? startThumbRef.value.$el : stopThumbRef.value.$el;\n }\n const steps = useSteps(props);\n const model = useProxiedModel(props, 'modelValue', undefined, arr => {\n if (!arr?.length) return [0, 0];\n return arr.map(value => steps.roundValue(value));\n });\n const {\n activeThumbRef,\n hasLabels,\n max,\n min,\n mousePressed,\n onSliderMousedown,\n onSliderTouchstart,\n position,\n trackContainerRef,\n readonly\n } = useSlider({\n props,\n steps,\n onSliderStart: () => {\n emit('start', model.value);\n },\n onSliderEnd: _ref2 => {\n let {\n value\n } = _ref2;\n const newValue = activeThumbRef.value === startThumbRef.value?.$el ? [value, model.value[1]] : [model.value[0], value];\n if (!props.strict && newValue[0] < newValue[1]) {\n model.value = newValue;\n }\n emit('end', model.value);\n },\n onSliderMove: _ref3 => {\n let {\n value\n } = _ref3;\n const [start, stop] = model.value;\n if (!props.strict && start === stop && start !== min.value) {\n activeThumbRef.value = value > start ? stopThumbRef.value?.$el : startThumbRef.value?.$el;\n activeThumbRef.value?.focus();\n }\n if (activeThumbRef.value === startThumbRef.value?.$el) {\n model.value = [Math.min(value, stop), stop];\n } else {\n model.value = [start, Math.max(start, value)];\n }\n },\n getActiveThumb\n });\n const {\n isFocused,\n focus,\n blur\n } = useFocus(props);\n const trackStart = computed(() => position(model.value[0]));\n const trackStop = computed(() => position(model.value[1]));\n useRender(() => {\n const inputProps = VInput.filterProps(props);\n const hasPrepend = !!(props.label || slots.label || slots.prepend);\n return _createVNode(VInput, _mergeProps({\n \"class\": ['v-slider', 'v-range-slider', {\n 'v-slider--has-labels': !!slots['tick-label'] || hasLabels.value,\n 'v-slider--focused': isFocused.value,\n 'v-slider--pressed': mousePressed.value,\n 'v-slider--disabled': props.disabled\n }, rtlClasses.value, props.class],\n \"style\": props.style,\n \"ref\": inputRef\n }, inputProps, {\n \"focused\": isFocused.value\n }), {\n ...slots,\n prepend: hasPrepend ? slotProps => _createVNode(_Fragment, null, [slots.label?.(slotProps) ?? (props.label ? _createVNode(VLabel, {\n \"class\": \"v-slider__label\",\n \"text\": props.label\n }, null) : undefined), slots.prepend?.(slotProps)]) : undefined,\n default: _ref4 => {\n let {\n id,\n messagesId\n } = _ref4;\n return _createVNode(\"div\", {\n \"class\": \"v-slider__container\",\n \"onMousedown\": !readonly.value ? onSliderMousedown : undefined,\n \"onTouchstartPassive\": !readonly.value ? onSliderTouchstart : undefined\n }, [_createVNode(\"input\", {\n \"id\": `${id.value}_start`,\n \"name\": props.name || id.value,\n \"disabled\": !!props.disabled,\n \"readonly\": !!props.readonly,\n \"tabindex\": \"-1\",\n \"value\": model.value[0]\n }, null), _createVNode(\"input\", {\n \"id\": `${id.value}_stop`,\n \"name\": props.name || id.value,\n \"disabled\": !!props.disabled,\n \"readonly\": !!props.readonly,\n \"tabindex\": \"-1\",\n \"value\": model.value[1]\n }, null), _createVNode(VSliderTrack, {\n \"ref\": trackContainerRef,\n \"start\": trackStart.value,\n \"stop\": trackStop.value\n }, {\n 'tick-label': slots['tick-label']\n }), _createVNode(VSliderThumb, {\n \"ref\": startThumbRef,\n \"aria-describedby\": messagesId.value,\n \"focused\": isFocused && activeThumbRef.value === startThumbRef.value?.$el,\n \"modelValue\": model.value[0],\n \"onUpdate:modelValue\": v => model.value = [v, model.value[1]],\n \"onFocus\": e => {\n focus();\n activeThumbRef.value = startThumbRef.value?.$el;\n\n // Make sure second thumb is focused if\n // the thumbs are on top of each other\n // and they are both at minimum value\n // but only if focused from outside.\n if (max.value !== min.value && model.value[0] === model.value[1] && model.value[1] === min.value && e.relatedTarget !== stopThumbRef.value?.$el) {\n startThumbRef.value?.$el.blur();\n stopThumbRef.value?.$el.focus();\n }\n },\n \"onBlur\": () => {\n blur();\n activeThumbRef.value = undefined;\n },\n \"min\": min.value,\n \"max\": model.value[1],\n \"position\": trackStart.value,\n \"ripple\": props.ripple\n }, {\n 'thumb-label': slots['thumb-label']\n }), _createVNode(VSliderThumb, {\n \"ref\": stopThumbRef,\n \"aria-describedby\": messagesId.value,\n \"focused\": isFocused && activeThumbRef.value === stopThumbRef.value?.$el,\n \"modelValue\": model.value[1],\n \"onUpdate:modelValue\": v => model.value = [model.value[0], v],\n \"onFocus\": e => {\n focus();\n activeThumbRef.value = stopThumbRef.value?.$el;\n\n // Make sure first thumb is focused if\n // the thumbs are on top of each other\n // and they are both at maximum value\n // but only if focused from outside.\n if (max.value !== min.value && model.value[0] === model.value[1] && model.value[0] === max.value && e.relatedTarget !== startThumbRef.value?.$el) {\n stopThumbRef.value?.$el.blur();\n startThumbRef.value?.$el.focus();\n }\n },\n \"onBlur\": () => {\n blur();\n activeThumbRef.value = undefined;\n },\n \"min\": model.value[0],\n \"max\": max.value,\n \"position\": trackStop.value,\n \"ripple\": props.ripple\n }, {\n 'thumb-label': slots['thumb-label']\n })]);\n }\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VRangeSlider.mjs.map","import { Fragment as _Fragment, createVNode as _createVNode, mergeProps as _mergeProps, createTextVNode as _createTextVNode } from \"vue\";\n// Styles\nimport \"./VRating.css\";\n\n// Components\nimport { VBtn } from \"../VBtn/index.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDensityProps } from \"../../composables/density.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { useLocale } from \"../../composables/locale.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { makeSizeProps } from \"../../composables/size.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { computed, shallowRef } from 'vue';\nimport { clamp, createRange, genericComponent, getUid, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVRatingProps = propsFactory({\n name: String,\n itemAriaLabel: {\n type: String,\n default: '$vuetify.rating.ariaLabel.item'\n },\n activeColor: String,\n color: String,\n clearable: Boolean,\n disabled: Boolean,\n emptyIcon: {\n type: IconValue,\n default: '$ratingEmpty'\n },\n fullIcon: {\n type: IconValue,\n default: '$ratingFull'\n },\n halfIncrements: Boolean,\n hover: Boolean,\n length: {\n type: [Number, String],\n default: 5\n },\n readonly: Boolean,\n modelValue: {\n type: [Number, String],\n default: 0\n },\n itemLabels: Array,\n itemLabelPosition: {\n type: String,\n default: 'top',\n validator: v => ['top', 'bottom'].includes(v)\n },\n ripple: Boolean,\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeSizeProps(),\n ...makeTagProps(),\n ...makeThemeProps()\n}, 'VRating');\nexport const VRating = genericComponent()({\n name: 'VRating',\n props: makeVRatingProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n t\n } = useLocale();\n const {\n themeClasses\n } = provideTheme(props);\n const rating = useProxiedModel(props, 'modelValue');\n const normalizedValue = computed(() => clamp(parseFloat(rating.value), 0, +props.length));\n const range = computed(() => createRange(Number(props.length), 1));\n const increments = computed(() => range.value.flatMap(v => props.halfIncrements ? [v - 0.5, v] : [v]));\n const hoverIndex = shallowRef(-1);\n const itemState = computed(() => increments.value.map(value => {\n const isHovering = props.hover && hoverIndex.value > -1;\n const isFilled = normalizedValue.value >= value;\n const isHovered = hoverIndex.value >= value;\n const isFullIcon = isHovering ? isHovered : isFilled;\n const icon = isFullIcon ? props.fullIcon : props.emptyIcon;\n const activeColor = props.activeColor ?? props.color;\n const color = isFilled || isHovered ? activeColor : props.color;\n return {\n isFilled,\n isHovered,\n icon,\n color\n };\n }));\n const eventState = computed(() => [0, ...increments.value].map(value => {\n function onMouseenter() {\n hoverIndex.value = value;\n }\n function onMouseleave() {\n hoverIndex.value = -1;\n }\n function onClick() {\n if (props.disabled || props.readonly) return;\n rating.value = normalizedValue.value === value && props.clearable ? 0 : value;\n }\n return {\n onMouseenter: props.hover ? onMouseenter : undefined,\n onMouseleave: props.hover ? onMouseleave : undefined,\n onClick\n };\n }));\n const name = computed(() => props.name ?? `v-rating-${getUid()}`);\n function VRatingItem(_ref2) {\n let {\n value,\n index,\n showStar = true\n } = _ref2;\n const {\n onMouseenter,\n onMouseleave,\n onClick\n } = eventState.value[index + 1];\n const id = `${name.value}-${String(value).replace('.', '-')}`;\n const btnProps = {\n color: itemState.value[index]?.color,\n density: props.density,\n disabled: props.disabled,\n icon: itemState.value[index]?.icon,\n ripple: props.ripple,\n size: props.size,\n variant: 'plain'\n };\n return _createVNode(_Fragment, null, [_createVNode(\"label\", {\n \"for\": id,\n \"class\": {\n 'v-rating__item--half': props.halfIncrements && value % 1 > 0,\n 'v-rating__item--full': props.halfIncrements && value % 1 === 0\n },\n \"onMouseenter\": onMouseenter,\n \"onMouseleave\": onMouseleave,\n \"onClick\": onClick\n }, [_createVNode(\"span\", {\n \"class\": \"v-rating__hidden\"\n }, [t(props.itemAriaLabel, value, props.length)]), !showStar ? undefined : slots.item ? slots.item({\n ...itemState.value[index],\n props: btnProps,\n value,\n index,\n rating: normalizedValue.value\n }) : _createVNode(VBtn, _mergeProps({\n \"aria-label\": t(props.itemAriaLabel, value, props.length)\n }, btnProps), null)]), _createVNode(\"input\", {\n \"class\": \"v-rating__hidden\",\n \"name\": name.value,\n \"id\": id,\n \"type\": \"radio\",\n \"value\": value,\n \"checked\": normalizedValue.value === value,\n \"tabindex\": -1,\n \"readonly\": props.readonly,\n \"disabled\": props.disabled\n }, null)]);\n }\n function createLabel(labelProps) {\n if (slots['item-label']) return slots['item-label'](labelProps);\n if (labelProps.label) return _createVNode(\"span\", null, [labelProps.label]);\n return _createVNode(\"span\", null, [_createTextVNode(\"\\xA0\")]);\n }\n useRender(() => {\n const hasLabels = !!props.itemLabels?.length || slots['item-label'];\n return _createVNode(props.tag, {\n \"class\": ['v-rating', {\n 'v-rating--hover': props.hover,\n 'v-rating--readonly': props.readonly\n }, themeClasses.value, props.class],\n \"style\": props.style\n }, {\n default: () => [_createVNode(VRatingItem, {\n \"value\": 0,\n \"index\": -1,\n \"showStar\": false\n }, null), range.value.map((value, i) => _createVNode(\"div\", {\n \"class\": \"v-rating__wrapper\"\n }, [hasLabels && props.itemLabelPosition === 'top' ? createLabel({\n value,\n index: i,\n label: props.itemLabels?.[i]\n }) : undefined, _createVNode(\"div\", {\n \"class\": \"v-rating__item\"\n }, [props.halfIncrements ? _createVNode(_Fragment, null, [_createVNode(VRatingItem, {\n \"value\": value - 0.5,\n \"index\": i * 2\n }, null), _createVNode(VRatingItem, {\n \"value\": value,\n \"index\": i * 2 + 1\n }, null)]) : _createVNode(VRatingItem, {\n \"value\": value,\n \"index\": i\n }, null)]), hasLabels && props.itemLabelPosition === 'bottom' ? createLabel({\n value,\n index: i,\n label: props.itemLabels?.[i]\n }) : undefined]))]\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VRating.mjs.map","import { createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\n// Styles\nimport \"./VSkeletonLoader.css\";\n\n// Composables\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { useLocale } from \"../../composables/locale.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { computed, toRef } from 'vue';\nimport { genericComponent, propsFactory, useRender, wrapInArray } from \"../../util/index.mjs\"; // Types\nexport const rootTypes = {\n actions: 'button@2',\n article: 'heading, paragraph',\n avatar: 'avatar',\n button: 'button',\n card: 'image, heading',\n 'card-avatar': 'image, list-item-avatar',\n chip: 'chip',\n 'date-picker': 'list-item, heading, divider, date-picker-options, date-picker-days, actions',\n 'date-picker-options': 'text, avatar@2',\n 'date-picker-days': 'avatar@28',\n divider: 'divider',\n heading: 'heading',\n image: 'image',\n 'list-item': 'text',\n 'list-item-avatar': 'avatar, text',\n 'list-item-two-line': 'sentences',\n 'list-item-avatar-two-line': 'avatar, sentences',\n 'list-item-three-line': 'paragraph',\n 'list-item-avatar-three-line': 'avatar, paragraph',\n ossein: 'ossein',\n paragraph: 'text@3',\n sentences: 'text@2',\n subtitle: 'text',\n table: 'table-heading, table-thead, table-tbody, table-tfoot',\n 'table-heading': 'chip, text',\n 'table-thead': 'heading@6',\n 'table-tbody': 'table-row-divider@6',\n 'table-row-divider': 'table-row, divider',\n 'table-row': 'text@6',\n 'table-tfoot': 'text@2, avatar@2',\n text: 'text'\n};\nfunction genBone(type) {\n let children = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n return _createVNode(\"div\", {\n \"class\": ['v-skeleton-loader__bone', `v-skeleton-loader__${type}`]\n }, [children]);\n}\nfunction genBones(bone) {\n // e.g. 'text@3'\n const [type, length] = bone.split('@');\n\n // Generate a length array based upon\n // value after @ in the bone string\n return Array.from({\n length\n }).map(() => genStructure(type));\n}\nfunction genStructure(type) {\n let children = [];\n if (!type) return children;\n\n // TODO: figure out a better way to type this\n const bone = rootTypes[type];\n\n // End of recursion, do nothing\n /* eslint-disable-next-line no-empty, brace-style */\n if (type === bone) {}\n // Array of values - e.g. 'heading, paragraph, text@2'\n else if (type.includes(',')) return mapBones(type);\n // Array of values - e.g. 'paragraph@4'\n else if (type.includes('@')) return genBones(type);\n // Array of values - e.g. 'card@2'\n else if (bone.includes(',')) children = mapBones(bone);\n // Array of values - e.g. 'list-item@2'\n else if (bone.includes('@')) children = genBones(bone);\n // Single value - e.g. 'card-heading'\n else if (bone) children.push(genStructure(bone));\n return [genBone(type, children)];\n}\nfunction mapBones(bones) {\n // Remove spaces and return array of structures\n return bones.replace(/\\s/g, '').split(',').map(genStructure);\n}\nexport const makeVSkeletonLoaderProps = propsFactory({\n boilerplate: Boolean,\n color: String,\n loading: Boolean,\n loadingText: {\n type: String,\n default: '$vuetify.loading'\n },\n type: {\n type: [String, Array],\n default: 'ossein'\n },\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeThemeProps()\n}, 'VSkeletonLoader');\nexport const VSkeletonLoader = genericComponent()({\n name: 'VSkeletonLoader',\n props: makeVSkeletonLoaderProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(toRef(props, 'color'));\n const {\n dimensionStyles\n } = useDimension(props);\n const {\n elevationClasses\n } = useElevation(props);\n const {\n themeClasses\n } = provideTheme(props);\n const {\n t\n } = useLocale();\n const items = computed(() => genStructure(wrapInArray(props.type).join(',')));\n useRender(() => {\n const isLoading = !slots.default || props.loading;\n const loadingProps = props.boilerplate || !isLoading ? {} : {\n ariaLive: 'polite',\n ariaLabel: t(props.loadingText),\n role: 'alert'\n };\n return _createVNode(\"div\", _mergeProps({\n \"class\": ['v-skeleton-loader', {\n 'v-skeleton-loader--boilerplate': props.boilerplate\n }, themeClasses.value, backgroundColorClasses.value, elevationClasses.value],\n \"style\": [backgroundColorStyles.value, isLoading ? dimensionStyles.value : {}]\n }, loadingProps), [isLoading ? items.value : slots.default?.()]);\n });\n return {};\n }\n});\n//# sourceMappingURL=VSkeletonLoader.mjs.map","// Composables\nimport { makeGroupItemProps, useGroupItem } from \"../../composables/group.mjs\"; // Utilities\nimport { VSlideGroupSymbol } from \"./VSlideGroup.mjs\";\nimport { genericComponent } from \"../../util/index.mjs\"; // Types\nexport const VSlideGroupItem = genericComponent()({\n name: 'VSlideGroupItem',\n props: makeGroupItemProps(),\n emits: {\n 'group:selected': val => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const slideGroupItem = useGroupItem(props, VSlideGroupSymbol);\n return () => slots.default?.({\n isSelected: slideGroupItem.isSelected.value,\n select: slideGroupItem.select,\n toggle: slideGroupItem.toggle,\n selectedClass: slideGroupItem.selectedClass.value\n });\n }\n});\n//# sourceMappingURL=VSlideGroupItem.mjs.map","import { createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\n// Styles\nimport \"./VSnackbar.css\";\n\n// Components\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VOverlay } from \"../VOverlay/index.mjs\";\nimport { makeVOverlayProps } from \"../VOverlay/VOverlay.mjs\";\nimport { VProgressLinear } from \"../VProgressLinear/index.mjs\"; // Composables\nimport { useLayout } from \"../../composables/index.mjs\";\nimport { forwardRefs } from \"../../composables/forwardRefs.mjs\";\nimport { VuetifyLayoutKey } from \"../../composables/layout.mjs\";\nimport { makeLocationProps } from \"../../composables/location.mjs\";\nimport { makePositionProps, usePosition } from \"../../composables/position.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { useScopeId } from \"../../composables/scopeId.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\";\nimport { useToggleScope } from \"../../composables/toggleScope.mjs\";\nimport { genOverlays, makeVariantProps, useVariant } from \"../../composables/variant.mjs\"; // Utilities\nimport { computed, inject, mergeProps, nextTick, onMounted, onScopeDispose, ref, shallowRef, watch, watchEffect } from 'vue';\nimport { genericComponent, omit, propsFactory, refElement, useRender } from \"../../util/index.mjs\"; // Types\nfunction useCountdown(milliseconds) {\n const time = shallowRef(milliseconds());\n let timer = -1;\n function clear() {\n clearInterval(timer);\n }\n function reset() {\n clear();\n nextTick(() => time.value = milliseconds());\n }\n function start(el) {\n const style = el ? getComputedStyle(el) : {\n transitionDuration: 0.2\n };\n const interval = parseFloat(style.transitionDuration) * 1000 || 200;\n clear();\n if (time.value <= 0) return;\n const startTime = performance.now();\n timer = window.setInterval(() => {\n const elapsed = performance.now() - startTime + interval;\n time.value = Math.max(milliseconds() - elapsed, 0);\n if (time.value <= 0) clear();\n }, interval);\n }\n onScopeDispose(clear);\n return {\n clear,\n time,\n start,\n reset\n };\n}\nexport const makeVSnackbarProps = propsFactory({\n multiLine: Boolean,\n text: String,\n timer: [Boolean, String],\n timeout: {\n type: [Number, String],\n default: 5000\n },\n vertical: Boolean,\n ...makeLocationProps({\n location: 'bottom'\n }),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeVariantProps(),\n ...makeThemeProps(),\n ...omit(makeVOverlayProps({\n transition: 'v-snackbar-transition'\n }), ['persistent', 'noClickAnimation', 'scrim', 'scrollStrategy'])\n}, 'VSnackbar');\nexport const VSnackbar = genericComponent()({\n name: 'VSnackbar',\n props: makeVSnackbarProps(),\n emits: {\n 'update:modelValue': v => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const isActive = useProxiedModel(props, 'modelValue');\n const {\n positionClasses\n } = usePosition(props);\n const {\n scopeId\n } = useScopeId();\n const {\n themeClasses\n } = provideTheme(props);\n const {\n colorClasses,\n colorStyles,\n variantClasses\n } = useVariant(props);\n const {\n roundedClasses\n } = useRounded(props);\n const countdown = useCountdown(() => Number(props.timeout));\n const overlay = ref();\n const timerRef = ref();\n const isHovering = shallowRef(false);\n const startY = shallowRef(0);\n const mainStyles = ref();\n const hasLayout = inject(VuetifyLayoutKey, undefined);\n useToggleScope(() => !!hasLayout, () => {\n const layout = useLayout();\n watchEffect(() => {\n mainStyles.value = layout.mainStyles.value;\n });\n });\n watch(isActive, startTimeout);\n watch(() => props.timeout, startTimeout);\n onMounted(() => {\n if (isActive.value) startTimeout();\n });\n let activeTimeout = -1;\n function startTimeout() {\n countdown.reset();\n window.clearTimeout(activeTimeout);\n const timeout = Number(props.timeout);\n if (!isActive.value || timeout === -1) return;\n const element = refElement(timerRef.value);\n countdown.start(element);\n activeTimeout = window.setTimeout(() => {\n isActive.value = false;\n }, timeout);\n }\n function clearTimeout() {\n countdown.reset();\n window.clearTimeout(activeTimeout);\n }\n function onPointerenter() {\n isHovering.value = true;\n clearTimeout();\n }\n function onPointerleave() {\n isHovering.value = false;\n startTimeout();\n }\n function onTouchstart(event) {\n startY.value = event.touches[0].clientY;\n }\n function onTouchend(event) {\n if (Math.abs(startY.value - event.changedTouches[0].clientY) > 50) {\n isActive.value = false;\n }\n }\n function onAfterLeave() {\n if (isHovering.value) onPointerleave();\n }\n const locationClasses = computed(() => {\n return props.location.split(' ').reduce((acc, loc) => {\n acc[`v-snackbar--${loc}`] = true;\n return acc;\n }, {});\n });\n useRender(() => {\n const overlayProps = VOverlay.filterProps(props);\n const hasContent = !!(slots.default || slots.text || props.text);\n return _createVNode(VOverlay, _mergeProps({\n \"ref\": overlay,\n \"class\": ['v-snackbar', {\n 'v-snackbar--active': isActive.value,\n 'v-snackbar--multi-line': props.multiLine && !props.vertical,\n 'v-snackbar--timer': !!props.timer,\n 'v-snackbar--vertical': props.vertical\n }, locationClasses.value, positionClasses.value, props.class],\n \"style\": [mainStyles.value, props.style]\n }, overlayProps, {\n \"modelValue\": isActive.value,\n \"onUpdate:modelValue\": $event => isActive.value = $event,\n \"contentProps\": mergeProps({\n class: ['v-snackbar__wrapper', themeClasses.value, colorClasses.value, roundedClasses.value, variantClasses.value],\n style: [colorStyles.value],\n onPointerenter,\n onPointerleave\n }, overlayProps.contentProps),\n \"persistent\": true,\n \"noClickAnimation\": true,\n \"scrim\": false,\n \"scrollStrategy\": \"none\",\n \"_disableGlobalStack\": true,\n \"onTouchstartPassive\": onTouchstart,\n \"onTouchend\": onTouchend,\n \"onAfterLeave\": onAfterLeave\n }, scopeId), {\n default: () => [genOverlays(false, 'v-snackbar'), props.timer && !isHovering.value && _createVNode(\"div\", {\n \"key\": \"timer\",\n \"class\": \"v-snackbar__timer\"\n }, [_createVNode(VProgressLinear, {\n \"ref\": timerRef,\n \"color\": typeof props.timer === 'string' ? props.timer : 'info',\n \"max\": props.timeout,\n \"model-value\": countdown.time.value\n }, null)]), hasContent && _createVNode(\"div\", {\n \"key\": \"content\",\n \"class\": \"v-snackbar__content\",\n \"role\": \"status\",\n \"aria-live\": \"polite\"\n }, [slots.text?.() ?? props.text, slots.default?.()]), slots.actions && _createVNode(VDefaultsProvider, {\n \"defaults\": {\n VBtn: {\n variant: 'text',\n ripple: false,\n slim: true\n }\n }\n }, {\n default: () => [_createVNode(\"div\", {\n \"class\": \"v-snackbar__actions\"\n }, [slots.actions({\n isActive\n })])]\n })],\n activator: slots.activator\n });\n });\n return forwardRefs({}, overlay);\n }\n});\n//# sourceMappingURL=VSnackbar.mjs.map","// Utilities\nimport { propsFactory } from \"../../../util/index.mjs\"; // Types\nexport const makeLineProps = propsFactory({\n autoDraw: Boolean,\n autoDrawDuration: [Number, String],\n autoDrawEasing: {\n type: String,\n default: 'ease'\n },\n color: String,\n gradient: {\n type: Array,\n default: () => []\n },\n gradientDirection: {\n type: String,\n validator: val => ['top', 'bottom', 'left', 'right'].includes(val),\n default: 'top'\n },\n height: {\n type: [String, Number],\n default: 75\n },\n labels: {\n type: Array,\n default: () => []\n },\n labelSize: {\n type: [Number, String],\n default: 7\n },\n lineWidth: {\n type: [String, Number],\n default: 4\n },\n id: String,\n itemValue: {\n type: String,\n default: 'value'\n },\n modelValue: {\n type: Array,\n default: () => []\n },\n min: [String, Number],\n max: [String, Number],\n padding: {\n type: [String, Number],\n default: 8\n },\n showLabels: Boolean,\n smooth: [Boolean, String, Number],\n width: {\n type: [Number, String],\n default: 300\n }\n}, 'Line');\n//# sourceMappingURL=line.mjs.map","// Utilities\nimport { computed, createVNode as _createVNode, Fragment as _Fragment } from 'vue';\nimport { makeLineProps } from \"./util/line.mjs\";\nimport { genericComponent, getPropertyFromItem, getUid, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVBarlineProps = propsFactory({\n autoLineWidth: Boolean,\n ...makeLineProps()\n}, 'VBarline');\nexport const VBarline = genericComponent()({\n name: 'VBarline',\n props: makeVBarlineProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const uid = getUid();\n const id = computed(() => props.id || `barline-${uid}`);\n const autoDrawDuration = computed(() => Number(props.autoDrawDuration) || 500);\n const hasLabels = computed(() => {\n return Boolean(props.showLabels || props.labels.length > 0 || !!slots?.label);\n });\n const lineWidth = computed(() => parseFloat(props.lineWidth) || 4);\n const totalWidth = computed(() => Math.max(props.modelValue.length * lineWidth.value, Number(props.width)));\n const boundary = computed(() => {\n return {\n minX: 0,\n maxX: totalWidth.value,\n minY: 0,\n maxY: parseInt(props.height, 10)\n };\n });\n const items = computed(() => props.modelValue.map(item => getPropertyFromItem(item, props.itemValue, item)));\n function genBars(values, boundary) {\n const {\n minX,\n maxX,\n minY,\n maxY\n } = boundary;\n const totalValues = values.length;\n let maxValue = props.max != null ? Number(props.max) : Math.max(...values);\n let minValue = props.min != null ? Number(props.min) : Math.min(...values);\n if (minValue > 0 && props.min == null) minValue = 0;\n if (maxValue < 0 && props.max == null) maxValue = 0;\n const gridX = maxX / totalValues;\n const gridY = (maxY - minY) / (maxValue - minValue || 1);\n const horizonY = maxY - Math.abs(minValue * gridY);\n return values.map((value, index) => {\n const height = Math.abs(gridY * value);\n return {\n x: minX + index * gridX,\n y: horizonY - height + +(value < 0) * height,\n height,\n value\n };\n });\n }\n const parsedLabels = computed(() => {\n const labels = [];\n const points = genBars(items.value, boundary.value);\n const len = points.length;\n for (let i = 0; labels.length < len; i++) {\n const item = points[i];\n let value = props.labels[i];\n if (!value) {\n value = typeof item === 'object' ? item.value : item;\n }\n labels.push({\n x: item.x,\n value: String(value)\n });\n }\n return labels;\n });\n const bars = computed(() => genBars(items.value, boundary.value));\n const offsetX = computed(() => (Math.abs(bars.value[0].x - bars.value[1].x) - lineWidth.value) / 2);\n const smooth = computed(() => typeof props.smooth === 'boolean' ? props.smooth ? 2 : 0 : Number(props.smooth));\n useRender(() => {\n const gradientData = !props.gradient.slice().length ? [''] : props.gradient.slice().reverse();\n return _createVNode(\"svg\", {\n \"display\": \"block\"\n }, [_createVNode(\"defs\", null, [_createVNode(\"linearGradient\", {\n \"id\": id.value,\n \"gradientUnits\": \"userSpaceOnUse\",\n \"x1\": props.gradientDirection === 'left' ? '100%' : '0',\n \"y1\": props.gradientDirection === 'top' ? '100%' : '0',\n \"x2\": props.gradientDirection === 'right' ? '100%' : '0',\n \"y2\": props.gradientDirection === 'bottom' ? '100%' : '0'\n }, [gradientData.map((color, index) => _createVNode(\"stop\", {\n \"offset\": index / Math.max(gradientData.length - 1, 1),\n \"stop-color\": color || 'currentColor'\n }, null))])]), _createVNode(\"clipPath\", {\n \"id\": `${id.value}-clip`\n }, [bars.value.map(item => _createVNode(\"rect\", {\n \"x\": item.x + offsetX.value,\n \"y\": item.y,\n \"width\": lineWidth.value,\n \"height\": item.height,\n \"rx\": smooth.value,\n \"ry\": smooth.value\n }, [props.autoDraw && _createVNode(_Fragment, null, [_createVNode(\"animate\", {\n \"attributeName\": \"y\",\n \"from\": item.y + item.height,\n \"to\": item.y,\n \"dur\": `${autoDrawDuration.value}ms`,\n \"fill\": \"freeze\"\n }, null), _createVNode(\"animate\", {\n \"attributeName\": \"height\",\n \"from\": \"0\",\n \"to\": item.height,\n \"dur\": `${autoDrawDuration.value}ms`,\n \"fill\": \"freeze\"\n }, null)])]))]), hasLabels.value && _createVNode(\"g\", {\n \"key\": \"labels\",\n \"style\": {\n textAnchor: 'middle',\n dominantBaseline: 'mathematical',\n fill: 'currentColor'\n }\n }, [parsedLabels.value.map((item, i) => _createVNode(\"text\", {\n \"x\": item.x + offsetX.value + lineWidth.value / 2,\n \"y\": parseInt(props.height, 10) - 2 + (parseInt(props.labelSize, 10) || 7 * 0.75),\n \"font-size\": Number(props.labelSize) || 7\n }, [slots.label?.({\n index: i,\n value: item.value\n }) ?? item.value]))]), _createVNode(\"g\", {\n \"clip-path\": `url(#${id.value}-clip)`,\n \"fill\": `url(#${id.value})`\n }, [_createVNode(\"rect\", {\n \"x\": 0,\n \"y\": 0,\n \"width\": Math.max(props.modelValue.length * lineWidth.value, Number(props.width)),\n \"height\": props.height\n }, null)])]);\n });\n }\n});\n//# sourceMappingURL=VBarline.mjs.map","// @ts-nocheck\n/* eslint-disable */\n\n// import { checkCollinear, getDistance, moveTo } from './math'\n\n/**\n * From https://github.com/unsplash/react-trend/blob/master/src/helpers/DOM.helpers.js#L18\n */\nexport function genPath(points, radius) {\n let fill = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n let height = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 75;\n if (points.length === 0) return '';\n const start = points.shift();\n const end = points[points.length - 1];\n return (fill ? `M${start.x} ${height - start.x + 2} L${start.x} ${start.y}` : `M${start.x} ${start.y}`) + points.map((point, index) => {\n const next = points[index + 1];\n const prev = points[index - 1] || start;\n const isCollinear = next && checkCollinear(next, point, prev);\n if (!next || isCollinear) {\n return `L${point.x} ${point.y}`;\n }\n const threshold = Math.min(getDistance(prev, point), getDistance(next, point));\n const isTooCloseForRadius = threshold / 2 < radius;\n const radiusForPoint = isTooCloseForRadius ? threshold / 2 : radius;\n const before = moveTo(prev, point, radiusForPoint);\n const after = moveTo(next, point, radiusForPoint);\n return `L${before.x} ${before.y}S${point.x} ${point.y} ${after.x} ${after.y}`;\n }).join('') + (fill ? `L${end.x} ${height - start.x + 2} Z` : '');\n}\nfunction int(value) {\n return parseInt(value, 10);\n}\n\n/**\n * https://en.wikipedia.org/wiki/Collinearity\n * x=(x1+x2)/2\n * y=(y1+y2)/2\n */\nexport function checkCollinear(p0, p1, p2) {\n return int(p0.x + p2.x) === int(2 * p1.x) && int(p0.y + p2.y) === int(2 * p1.y);\n}\nexport function getDistance(p1, p2) {\n return Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2));\n}\nexport function moveTo(to, from, radius) {\n const vector = {\n x: to.x - from.x,\n y: to.y - from.y\n };\n const length = Math.sqrt(vector.x * vector.x + vector.y * vector.y);\n const unitVector = {\n x: vector.x / length,\n y: vector.y / length\n };\n return {\n x: from.x + unitVector.x * radius,\n y: from.y + unitVector.y * radius\n };\n}\n//# sourceMappingURL=path.mjs.map","// Utilities\nimport { computed, nextTick, ref, watch, createVNode as _createVNode } from 'vue';\nimport { makeLineProps } from \"./util/line.mjs\";\nimport { genPath as _genPath } from \"./util/path.mjs\";\nimport { genericComponent, getPropertyFromItem, getUid, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVTrendlineProps = propsFactory({\n fill: Boolean,\n ...makeLineProps()\n}, 'VTrendline');\nexport const VTrendline = genericComponent()({\n name: 'VTrendline',\n props: makeVTrendlineProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const uid = getUid();\n const id = computed(() => props.id || `trendline-${uid}`);\n const autoDrawDuration = computed(() => Number(props.autoDrawDuration) || (props.fill ? 500 : 2000));\n const lastLength = ref(0);\n const path = ref(null);\n function genPoints(values, boundary) {\n const {\n minX,\n maxX,\n minY,\n maxY\n } = boundary;\n const totalValues = values.length;\n const maxValue = props.max != null ? Number(props.max) : Math.max(...values);\n const minValue = props.min != null ? Number(props.min) : Math.min(...values);\n const gridX = (maxX - minX) / (totalValues - 1);\n const gridY = (maxY - minY) / (maxValue - minValue || 1);\n return values.map((value, index) => {\n return {\n x: minX + index * gridX,\n y: maxY - (value - minValue) * gridY,\n value\n };\n });\n }\n const hasLabels = computed(() => {\n return Boolean(props.showLabels || props.labels.length > 0 || !!slots?.label);\n });\n const lineWidth = computed(() => {\n return parseFloat(props.lineWidth) || 4;\n });\n const totalWidth = computed(() => Number(props.width));\n const boundary = computed(() => {\n const padding = Number(props.padding);\n return {\n minX: padding,\n maxX: totalWidth.value - padding,\n minY: padding,\n maxY: parseInt(props.height, 10) - padding\n };\n });\n const items = computed(() => props.modelValue.map(item => getPropertyFromItem(item, props.itemValue, item)));\n const parsedLabels = computed(() => {\n const labels = [];\n const points = genPoints(items.value, boundary.value);\n const len = points.length;\n for (let i = 0; labels.length < len; i++) {\n const item = points[i];\n let value = props.labels[i];\n if (!value) {\n value = typeof item === 'object' ? item.value : item;\n }\n labels.push({\n x: item.x,\n value: String(value)\n });\n }\n return labels;\n });\n watch(() => props.modelValue, async () => {\n await nextTick();\n if (!props.autoDraw || !path.value) return;\n const pathRef = path.value;\n const length = pathRef.getTotalLength();\n if (!props.fill) {\n // Initial setup to \"hide\" the line by using the stroke dash array\n pathRef.style.strokeDasharray = `${length}`;\n pathRef.style.strokeDashoffset = `${length}`;\n\n // Force reflow to ensure the transition starts from this state\n pathRef.getBoundingClientRect();\n\n // Animate the stroke dash offset to \"draw\" the line\n pathRef.style.transition = `stroke-dashoffset ${autoDrawDuration.value}ms ${props.autoDrawEasing}`;\n pathRef.style.strokeDashoffset = '0';\n } else {\n // Your existing logic for filled paths remains the same\n pathRef.style.transformOrigin = 'bottom center';\n pathRef.style.transition = 'none';\n pathRef.style.transform = `scaleY(0)`;\n pathRef.getBoundingClientRect();\n pathRef.style.transition = `transform ${autoDrawDuration.value}ms ${props.autoDrawEasing}`;\n pathRef.style.transform = `scaleY(1)`;\n }\n lastLength.value = length;\n }, {\n immediate: true\n });\n function genPath(fill) {\n const smoothValue = typeof props.smooth === 'boolean' ? props.smooth ? 8 : 0 : Number(props.smooth);\n return _genPath(genPoints(items.value, boundary.value), smoothValue, fill, parseInt(props.height, 10));\n }\n useRender(() => {\n const gradientData = !props.gradient.slice().length ? [''] : props.gradient.slice().reverse();\n return _createVNode(\"svg\", {\n \"display\": \"block\",\n \"stroke-width\": parseFloat(props.lineWidth) ?? 4\n }, [_createVNode(\"defs\", null, [_createVNode(\"linearGradient\", {\n \"id\": id.value,\n \"gradientUnits\": \"userSpaceOnUse\",\n \"x1\": props.gradientDirection === 'left' ? '100%' : '0',\n \"y1\": props.gradientDirection === 'top' ? '100%' : '0',\n \"x2\": props.gradientDirection === 'right' ? '100%' : '0',\n \"y2\": props.gradientDirection === 'bottom' ? '100%' : '0'\n }, [gradientData.map((color, index) => _createVNode(\"stop\", {\n \"offset\": index / Math.max(gradientData.length - 1, 1),\n \"stop-color\": color || 'currentColor'\n }, null))])]), hasLabels.value && _createVNode(\"g\", {\n \"key\": \"labels\",\n \"style\": {\n textAnchor: 'middle',\n dominantBaseline: 'mathematical',\n fill: 'currentColor'\n }\n }, [parsedLabels.value.map((item, i) => _createVNode(\"text\", {\n \"x\": item.x + lineWidth.value / 2 + lineWidth.value / 2,\n \"y\": parseInt(props.height, 10) - 4 + (parseInt(props.labelSize, 10) || 7 * 0.75),\n \"font-size\": Number(props.labelSize) || 7\n }, [slots.label?.({\n index: i,\n value: item.value\n }) ?? item.value]))]), _createVNode(\"path\", {\n \"ref\": path,\n \"d\": genPath(props.fill),\n \"fill\": props.fill ? `url(#${id.value})` : 'none',\n \"stroke\": props.fill ? 'none' : `url(#${id.value})`\n }, null), props.fill && _createVNode(\"path\", {\n \"d\": genPath(false),\n \"fill\": \"none\",\n \"stroke\": props.color ?? props.gradient?.[0]\n }, null)]);\n });\n }\n});\n//# sourceMappingURL=VTrendline.mjs.map","import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Components\nimport { makeVBarlineProps, VBarline } from \"./VBarline.mjs\";\nimport { makeVTrendlineProps, VTrendline } from \"./VTrendline.mjs\"; // Composables\nimport { useTextColor } from \"../../composables/color.mjs\"; // Utilities\nimport { computed, toRef } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\n// Types\n\nexport const makeVSparklineProps = propsFactory({\n type: {\n type: String,\n default: 'trend'\n },\n ...makeVBarlineProps(),\n ...makeVTrendlineProps()\n}, 'VSparkline');\nexport const VSparkline = genericComponent()({\n name: 'VSparkline',\n props: makeVSparklineProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(toRef(props, 'color'));\n const hasLabels = computed(() => {\n return Boolean(props.showLabels || props.labels.length > 0 || !!slots?.label);\n });\n const totalHeight = computed(() => {\n let height = parseInt(props.height, 10);\n if (hasLabels.value) height += parseInt(props.labelSize, 10) * 1.5;\n return height;\n });\n useRender(() => {\n const Tag = props.type === 'trend' ? VTrendline : VBarline;\n const lineProps = props.type === 'trend' ? VTrendline.filterProps(props) : VBarline.filterProps(props);\n return _createVNode(Tag, _mergeProps({\n \"key\": props.type,\n \"class\": textColorClasses.value,\n \"style\": textColorStyles.value,\n \"viewBox\": `0 0 ${props.width} ${parseInt(totalHeight.value, 10)}`\n }, lineProps), slots);\n });\n }\n});\n//# sourceMappingURL=VSparkline.mjs.map","import { createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\n// Styles\nimport \"./VSpeedDial.css\";\n\n// Components\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { makeVMenuProps, VMenu } from \"../VMenu/VMenu.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { MaybeTransition } from \"../../composables/transition.mjs\"; // Utilities\nimport { computed, ref } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVSpeedDialProps = propsFactory({\n ...makeComponentProps(),\n ...makeVMenuProps({\n offset: 8,\n minWidth: 0,\n openDelay: 0,\n closeDelay: 100,\n location: 'top center',\n transition: 'scale-transition'\n })\n}, 'VSpeedDial');\nexport const VSpeedDial = genericComponent()({\n name: 'VSpeedDial',\n props: makeVSpeedDialProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const model = useProxiedModel(props, 'modelValue');\n const menuRef = ref();\n const location = computed(() => {\n const [y, x = 'center'] = props.location?.split(' ') ?? [];\n return `${y} ${x}`;\n });\n const locationClasses = computed(() => ({\n [`v-speed-dial__content--${location.value.replace(' ', '-')}`]: true\n }));\n useRender(() => {\n const menuProps = VMenu.filterProps(props);\n return _createVNode(VMenu, _mergeProps(menuProps, {\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"class\": props.class,\n \"style\": props.style,\n \"contentClass\": ['v-speed-dial__content', locationClasses.value, props.contentClass],\n \"location\": location.value,\n \"ref\": menuRef,\n \"transition\": \"fade-transition\"\n }), {\n ...slots,\n default: slotProps => _createVNode(VDefaultsProvider, {\n \"defaults\": {\n VBtn: {\n size: 'small'\n }\n }\n }, {\n default: () => [_createVNode(MaybeTransition, {\n \"appear\": true,\n \"group\": true,\n \"transition\": props.transition\n }, {\n default: () => [slots.default?.(slotProps)]\n })]\n })\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VSpeedDial.mjs.map","// Types\n\nexport const VStepperSymbol = Symbol.for('vuetify:v-stepper');\n//# sourceMappingURL=shared.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Components\nimport { VBtn } from \"../VBtn/VBtn.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/VDefaultsProvider.mjs\"; // Composables\nimport { useLocale } from \"../../composables/locale.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVStepperActionsProps = propsFactory({\n color: String,\n disabled: {\n type: [Boolean, String],\n default: false\n },\n prevText: {\n type: String,\n default: '$vuetify.stepper.prev'\n },\n nextText: {\n type: String,\n default: '$vuetify.stepper.next'\n }\n}, 'VStepperActions');\nexport const VStepperActions = genericComponent()({\n name: 'VStepperActions',\n props: makeVStepperActionsProps(),\n emits: {\n 'click:prev': () => true,\n 'click:next': () => true\n },\n setup(props, _ref) {\n let {\n emit,\n slots\n } = _ref;\n const {\n t\n } = useLocale();\n function onClickPrev() {\n emit('click:prev');\n }\n function onClickNext() {\n emit('click:next');\n }\n useRender(() => {\n const prevSlotProps = {\n onClick: onClickPrev\n };\n const nextSlotProps = {\n onClick: onClickNext\n };\n return _createVNode(\"div\", {\n \"class\": \"v-stepper-actions\"\n }, [_createVNode(VDefaultsProvider, {\n \"defaults\": {\n VBtn: {\n disabled: ['prev', true].includes(props.disabled),\n text: t(props.prevText),\n variant: 'text'\n }\n }\n }, {\n default: () => [slots.prev?.({\n props: prevSlotProps\n }) ?? _createVNode(VBtn, prevSlotProps, null)]\n }), _createVNode(VDefaultsProvider, {\n \"defaults\": {\n VBtn: {\n color: props.color,\n disabled: ['next', true].includes(props.disabled),\n text: t(props.nextText),\n variant: 'tonal'\n }\n }\n }, {\n default: () => [slots.next?.({\n props: nextSlotProps\n }) ?? _createVNode(VBtn, nextSlotProps, null)]\n })]);\n });\n return {};\n }\n});\n//# sourceMappingURL=VStepperActions.mjs.map","// Utilities\nimport { createSimpleFunctional } from \"../../util/index.mjs\";\nexport const VStepperHeader = createSimpleFunctional('v-stepper-header');\n//# sourceMappingURL=VStepperHeader.mjs.map","import { createVNode as _createVNode, resolveDirective as _resolveDirective, withDirectives as _withDirectives } from \"vue\";\n// Styles\nimport \"./VStepperItem.css\";\n\n// Components\nimport { VAvatar } from \"../VAvatar/VAvatar.mjs\";\nimport { VIcon } from \"../VIcon/VIcon.mjs\"; // Composables\nimport { makeGroupItemProps, useGroupItem } from \"../../composables/group.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { genOverlays } from \"../../composables/variant.mjs\"; // Directives\nimport { Ripple } from \"../../directives/ripple/index.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { VStepperSymbol } from \"./shared.mjs\";\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeStepperItemProps = propsFactory({\n color: String,\n title: String,\n subtitle: String,\n complete: Boolean,\n completeIcon: {\n type: IconValue,\n default: '$complete'\n },\n editable: Boolean,\n editIcon: {\n type: IconValue,\n default: '$edit'\n },\n error: Boolean,\n errorIcon: {\n type: IconValue,\n default: '$error'\n },\n icon: IconValue,\n ripple: {\n type: [Boolean, Object],\n default: true\n },\n rules: {\n type: Array,\n default: () => []\n }\n}, 'StepperItem');\nexport const makeVStepperItemProps = propsFactory({\n ...makeStepperItemProps(),\n ...makeGroupItemProps()\n}, 'VStepperItem');\nexport const VStepperItem = genericComponent()({\n name: 'VStepperItem',\n directives: {\n Ripple\n },\n props: makeVStepperItemProps(),\n emits: {\n 'group:selected': val => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const group = useGroupItem(props, VStepperSymbol, true);\n const step = computed(() => group?.value.value ?? props.value);\n const isValid = computed(() => props.rules.every(handler => handler() === true));\n const isClickable = computed(() => !props.disabled && props.editable);\n const canEdit = computed(() => !props.disabled && props.editable);\n const hasError = computed(() => props.error || !isValid.value);\n const hasCompleted = computed(() => props.complete || props.rules.length > 0 && isValid.value);\n const icon = computed(() => {\n if (hasError.value) return props.errorIcon;\n if (hasCompleted.value) return props.completeIcon;\n if (group.isSelected.value && props.editable) return props.editIcon;\n return props.icon;\n });\n const slotProps = computed(() => ({\n canEdit: canEdit.value,\n hasError: hasError.value,\n hasCompleted: hasCompleted.value,\n title: props.title,\n subtitle: props.subtitle,\n step: step.value,\n value: props.value\n }));\n useRender(() => {\n const hasColor = (!group || group.isSelected.value || hasCompleted.value || canEdit.value) && !hasError.value && !props.disabled;\n const hasTitle = !!(props.title != null || slots.title);\n const hasSubtitle = !!(props.subtitle != null || slots.subtitle);\n function onClick() {\n group?.toggle();\n }\n return _withDirectives(_createVNode(\"button\", {\n \"class\": ['v-stepper-item', {\n 'v-stepper-item--complete': hasCompleted.value,\n 'v-stepper-item--disabled': props.disabled,\n 'v-stepper-item--error': hasError.value\n }, group?.selectedClass.value],\n \"disabled\": !props.editable,\n \"type\": \"button\",\n \"onClick\": onClick\n }, [isClickable.value && genOverlays(true, 'v-stepper-item'), _createVNode(VAvatar, {\n \"key\": \"stepper-avatar\",\n \"class\": \"v-stepper-item__avatar\",\n \"color\": hasColor ? props.color : undefined,\n \"size\": 24\n }, {\n default: () => [slots.icon?.(slotProps.value) ?? (icon.value ? _createVNode(VIcon, {\n \"icon\": icon.value\n }, null) : step.value)]\n }), _createVNode(\"div\", {\n \"class\": \"v-stepper-item__content\"\n }, [hasTitle && _createVNode(\"div\", {\n \"key\": \"title\",\n \"class\": \"v-stepper-item__title\"\n }, [slots.title?.(slotProps.value) ?? props.title]), hasSubtitle && _createVNode(\"div\", {\n \"key\": \"subtitle\",\n \"class\": \"v-stepper-item__subtitle\"\n }, [slots.subtitle?.(slotProps.value) ?? props.subtitle]), slots.default?.(slotProps.value)])]), [[_resolveDirective(\"ripple\"), props.ripple && props.editable, null]]);\n });\n return {};\n }\n});\n//# sourceMappingURL=VStepperItem.mjs.map","import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Components\nimport { VStepperSymbol } from \"./shared.mjs\";\nimport { makeVWindowProps, VWindow } from \"../VWindow/VWindow.mjs\"; // Composables\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed, inject } from 'vue';\nimport { genericComponent, omit, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVStepperWindowProps = propsFactory({\n ...omit(makeVWindowProps(), ['continuous', 'nextIcon', 'prevIcon', 'showArrows', 'touch', 'mandatory'])\n}, 'VStepperWindow');\nexport const VStepperWindow = genericComponent()({\n name: 'VStepperWindow',\n props: makeVStepperWindowProps(),\n emits: {\n 'update:modelValue': v => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const group = inject(VStepperSymbol, null);\n const _model = useProxiedModel(props, 'modelValue');\n const model = computed({\n get() {\n // Always return modelValue if defined\n // or if not within a VStepper group\n if (_model.value != null || !group) return _model.value;\n\n // If inside of a VStepper, find the currently selected\n // item by id. Item value may be assigned by its index\n return group.items.value.find(item => group.selected.value.includes(item.id))?.value;\n },\n set(val) {\n _model.value = val;\n }\n });\n useRender(() => {\n const windowProps = VWindow.filterProps(props);\n return _createVNode(VWindow, _mergeProps({\n \"_as\": \"VStepperWindow\"\n }, windowProps, {\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"class\": ['v-stepper-window', props.class],\n \"style\": props.style,\n \"mandatory\": false,\n \"touch\": false\n }), slots);\n });\n return {};\n }\n});\n//# sourceMappingURL=VStepperWindow.mjs.map","import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Components\nimport { makeVWindowItemProps, VWindowItem } from \"../VWindow/VWindowItem.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVStepperWindowItemProps = propsFactory({\n ...makeVWindowItemProps()\n}, 'VStepperWindowItem');\nexport const VStepperWindowItem = genericComponent()({\n name: 'VStepperWindowItem',\n props: makeVStepperWindowItemProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => {\n const windowItemProps = VWindowItem.filterProps(props);\n return _createVNode(VWindowItem, _mergeProps({\n \"_as\": \"VStepperWindowItem\"\n }, windowItemProps, {\n \"class\": ['v-stepper-window-item', props.class],\n \"style\": props.style\n }), slots);\n });\n return {};\n }\n});\n//# sourceMappingURL=VStepperWindowItem.mjs.map","import { Fragment as _Fragment, createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\n// Styles\nimport \"./VStepper.css\";\n\n// Components\nimport { VStepperSymbol } from \"./shared.mjs\";\nimport { makeVStepperActionsProps, VStepperActions } from \"./VStepperActions.mjs\";\nimport { VStepperHeader } from \"./VStepperHeader.mjs\";\nimport { VStepperItem } from \"./VStepperItem.mjs\";\nimport { VStepperWindow } from \"./VStepperWindow.mjs\";\nimport { VStepperWindowItem } from \"./VStepperWindowItem.mjs\";\nimport { VDivider } from \"../VDivider/index.mjs\";\nimport { makeVSheetProps, VSheet } from \"../VSheet/VSheet.mjs\"; // Composables\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeDisplayProps, useDisplay } from \"../../composables/display.mjs\";\nimport { makeGroupProps, useGroup } from \"../../composables/group.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\"; // Utilities\nimport { computed, toRefs } from 'vue';\nimport { genericComponent, getPropertyFromItem, pick, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeStepperProps = propsFactory({\n altLabels: Boolean,\n bgColor: String,\n completeIcon: IconValue,\n editIcon: IconValue,\n editable: Boolean,\n errorIcon: IconValue,\n hideActions: Boolean,\n items: {\n type: Array,\n default: () => []\n },\n itemTitle: {\n type: String,\n default: 'title'\n },\n itemValue: {\n type: String,\n default: 'value'\n },\n nonLinear: Boolean,\n flat: Boolean,\n ...makeDisplayProps()\n}, 'Stepper');\nexport const makeVStepperProps = propsFactory({\n ...makeStepperProps(),\n ...makeGroupProps({\n mandatory: 'force',\n selectedClass: 'v-stepper-item--selected'\n }),\n ...makeVSheetProps(),\n ...pick(makeVStepperActionsProps(), ['prevText', 'nextText'])\n}, 'VStepper');\nexport const VStepper = genericComponent()({\n name: 'VStepper',\n props: makeVStepperProps(),\n emits: {\n 'update:modelValue': v => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n items: _items,\n next,\n prev,\n selected\n } = useGroup(props, VStepperSymbol);\n const {\n displayClasses,\n mobile\n } = useDisplay(props);\n const {\n completeIcon,\n editIcon,\n errorIcon,\n color,\n editable,\n prevText,\n nextText\n } = toRefs(props);\n const items = computed(() => props.items.map((item, index) => {\n const title = getPropertyFromItem(item, props.itemTitle, item);\n const value = getPropertyFromItem(item, props.itemValue, index + 1);\n return {\n title,\n value,\n raw: item\n };\n }));\n const activeIndex = computed(() => {\n return _items.value.findIndex(item => selected.value.includes(item.id));\n });\n const disabled = computed(() => {\n if (props.disabled) return props.disabled;\n if (activeIndex.value === 0) return 'prev';\n if (activeIndex.value === _items.value.length - 1) return 'next';\n return false;\n });\n provideDefaults({\n VStepperItem: {\n editable,\n errorIcon,\n completeIcon,\n editIcon,\n prevText,\n nextText\n },\n VStepperActions: {\n color,\n disabled,\n prevText,\n nextText\n }\n });\n useRender(() => {\n const sheetProps = VSheet.filterProps(props);\n const hasHeader = !!(slots.header || props.items.length);\n const hasWindow = props.items.length > 0;\n const hasActions = !props.hideActions && !!(hasWindow || slots.actions);\n return _createVNode(VSheet, _mergeProps(sheetProps, {\n \"color\": props.bgColor,\n \"class\": ['v-stepper', {\n 'v-stepper--alt-labels': props.altLabels,\n 'v-stepper--flat': props.flat,\n 'v-stepper--non-linear': props.nonLinear,\n 'v-stepper--mobile': mobile.value\n }, displayClasses.value, props.class],\n \"style\": props.style\n }), {\n default: () => [hasHeader && _createVNode(VStepperHeader, {\n \"key\": \"stepper-header\"\n }, {\n default: () => [items.value.map((_ref2, index) => {\n let {\n raw,\n ...item\n } = _ref2;\n return _createVNode(_Fragment, null, [!!index && _createVNode(VDivider, null, null), _createVNode(VStepperItem, item, {\n default: slots[`header-item.${item.value}`] ?? slots.header,\n icon: slots.icon,\n title: slots.title,\n subtitle: slots.subtitle\n })]);\n })]\n }), hasWindow && _createVNode(VStepperWindow, {\n \"key\": \"stepper-window\"\n }, {\n default: () => [items.value.map(item => _createVNode(VStepperWindowItem, {\n \"value\": item.value\n }, {\n default: () => slots[`item.${item.value}`]?.(item) ?? slots.item?.(item)\n }))]\n }), slots.default?.({\n prev,\n next\n }), hasActions && (slots.actions?.({\n next,\n prev\n }) ?? _createVNode(VStepperActions, {\n \"key\": \"stepper-actions\",\n \"onClick:prev\": prev,\n \"onClick:next\": next\n }, slots))]\n });\n });\n return {\n prev,\n next\n };\n }\n});\n//# sourceMappingURL=VStepper.mjs.map","import { createVNode as _createVNode, Fragment as _Fragment, mergeProps as _mergeProps } from \"vue\";\n// Styles\nimport \"./VSwitch.css\";\n\n// Components\nimport { VScaleTransition } from \"../transitions/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/VDefaultsProvider.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\";\nimport { makeVInputProps, VInput } from \"../VInput/VInput.mjs\";\nimport { VProgressCircular } from \"../VProgressCircular/index.mjs\";\nimport { makeVSelectionControlProps, VSelectionControl } from \"../VSelectionControl/VSelectionControl.mjs\"; // Composables\nimport { useFocus } from \"../../composables/focus.mjs\";\nimport { LoaderSlot, useLoader } from \"../../composables/loader.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed, ref } from 'vue';\nimport { filterInputAttrs, genericComponent, getUid, IN_BROWSER, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVSwitchProps = propsFactory({\n indeterminate: Boolean,\n inset: Boolean,\n flat: Boolean,\n loading: {\n type: [Boolean, String],\n default: false\n },\n ...makeVInputProps(),\n ...makeVSelectionControlProps()\n}, 'VSwitch');\nexport const VSwitch = genericComponent()({\n name: 'VSwitch',\n inheritAttrs: false,\n props: makeVSwitchProps(),\n emits: {\n 'update:focused': focused => true,\n 'update:modelValue': value => true,\n 'update:indeterminate': value => true\n },\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const indeterminate = useProxiedModel(props, 'indeterminate');\n const model = useProxiedModel(props, 'modelValue');\n const {\n loaderClasses\n } = useLoader(props);\n const {\n isFocused,\n focus,\n blur\n } = useFocus(props);\n const control = ref();\n const isForcedColorsModeActive = IN_BROWSER && window.matchMedia('(forced-colors: active)').matches;\n const loaderColor = computed(() => {\n return typeof props.loading === 'string' && props.loading !== '' ? props.loading : props.color;\n });\n const uid = getUid();\n const id = computed(() => props.id || `switch-${uid}`);\n function onChange() {\n if (indeterminate.value) {\n indeterminate.value = false;\n }\n }\n function onTrackClick(e) {\n e.stopPropagation();\n e.preventDefault();\n control.value?.input?.click();\n }\n useRender(() => {\n const [rootAttrs, controlAttrs] = filterInputAttrs(attrs);\n const inputProps = VInput.filterProps(props);\n const controlProps = VSelectionControl.filterProps(props);\n return _createVNode(VInput, _mergeProps({\n \"class\": ['v-switch', {\n 'v-switch--flat': props.flat\n }, {\n 'v-switch--inset': props.inset\n }, {\n 'v-switch--indeterminate': indeterminate.value\n }, loaderClasses.value, props.class]\n }, rootAttrs, inputProps, {\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"id\": id.value,\n \"focused\": isFocused.value,\n \"style\": props.style\n }), {\n ...slots,\n default: _ref2 => {\n let {\n id,\n messagesId,\n isDisabled,\n isReadonly,\n isValid\n } = _ref2;\n const slotProps = {\n model,\n isValid\n };\n return _createVNode(VSelectionControl, _mergeProps({\n \"ref\": control\n }, controlProps, {\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": [$event => model.value = $event, onChange],\n \"id\": id.value,\n \"aria-describedby\": messagesId.value,\n \"type\": \"checkbox\",\n \"aria-checked\": indeterminate.value ? 'mixed' : undefined,\n \"disabled\": isDisabled.value,\n \"readonly\": isReadonly.value,\n \"onFocus\": focus,\n \"onBlur\": blur\n }, controlAttrs), {\n ...slots,\n default: _ref3 => {\n let {\n backgroundColorClasses,\n backgroundColorStyles\n } = _ref3;\n return _createVNode(\"div\", {\n \"class\": ['v-switch__track', !isForcedColorsModeActive ? backgroundColorClasses.value : undefined],\n \"style\": backgroundColorStyles.value,\n \"onClick\": onTrackClick\n }, [slots['track-true'] && _createVNode(\"div\", {\n \"key\": \"prepend\",\n \"class\": \"v-switch__track-true\"\n }, [slots['track-true'](slotProps)]), slots['track-false'] && _createVNode(\"div\", {\n \"key\": \"append\",\n \"class\": \"v-switch__track-false\"\n }, [slots['track-false'](slotProps)])]);\n },\n input: _ref4 => {\n let {\n inputNode,\n icon,\n backgroundColorClasses,\n backgroundColorStyles\n } = _ref4;\n return _createVNode(_Fragment, null, [inputNode, _createVNode(\"div\", {\n \"class\": ['v-switch__thumb', {\n 'v-switch__thumb--filled': icon || props.loading\n }, props.inset || isForcedColorsModeActive ? undefined : backgroundColorClasses.value],\n \"style\": props.inset ? undefined : backgroundColorStyles.value\n }, [slots.thumb ? _createVNode(VDefaultsProvider, {\n \"defaults\": {\n VIcon: {\n icon,\n size: 'x-small'\n }\n }\n }, {\n default: () => [slots.thumb({\n ...slotProps,\n icon\n })]\n }) : _createVNode(VScaleTransition, null, {\n default: () => [!props.loading ? icon && _createVNode(VIcon, {\n \"key\": String(icon),\n \"icon\": icon,\n \"size\": \"x-small\"\n }, null) : _createVNode(LoaderSlot, {\n \"name\": \"v-switch\",\n \"active\": true,\n \"color\": isValid.value === false ? undefined : loaderColor.value\n }, {\n default: slotProps => slots.loader ? slots.loader(slotProps) : _createVNode(VProgressCircular, {\n \"active\": slotProps.isActive,\n \"color\": slotProps.color,\n \"indeterminate\": true,\n \"size\": \"16\",\n \"width\": \"2\"\n }, null)\n })]\n })])]);\n }\n });\n }\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VSwitch.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VSystemBar.css\";\n\n// Composables\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { makeLayoutItemProps, useLayoutItem } from \"../../composables/layout.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { useSsrBoot } from \"../../composables/ssrBoot.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { computed, shallowRef, toRef } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVSystemBarProps = propsFactory({\n color: String,\n height: [Number, String],\n window: Boolean,\n ...makeComponentProps(),\n ...makeElevationProps(),\n ...makeLayoutItemProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps()\n}, 'VSystemBar');\nexport const VSystemBar = genericComponent()({\n name: 'VSystemBar',\n props: makeVSystemBarProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(toRef(props, 'color'));\n const {\n elevationClasses\n } = useElevation(props);\n const {\n roundedClasses\n } = useRounded(props);\n const {\n ssrBootStyles\n } = useSsrBoot();\n const height = computed(() => props.height ?? (props.window ? 32 : 24));\n const {\n layoutItemStyles\n } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: shallowRef('top'),\n layoutSize: height,\n elementSize: height,\n active: computed(() => true),\n absolute: toRef(props, 'absolute')\n });\n useRender(() => _createVNode(props.tag, {\n \"class\": ['v-system-bar', {\n 'v-system-bar--window': props.window\n }, themeClasses.value, backgroundColorClasses.value, elevationClasses.value, roundedClasses.value, props.class],\n \"style\": [backgroundColorStyles.value, layoutItemStyles.value, ssrBootStyles.value, props.style]\n }, slots));\n return {};\n }\n});\n//# sourceMappingURL=VSystemBar.mjs.map","// Types\n\nexport const VTabsSymbol = Symbol.for('vuetify:v-tabs');\n//# sourceMappingURL=shared.mjs.map","import { Fragment as _Fragment, createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\n// Styles\nimport \"./VTab.css\";\n\n// Components\nimport { makeVBtnProps, VBtn } from \"../VBtn/VBtn.mjs\"; // Composables\nimport { useTextColor } from \"../../composables/color.mjs\";\nimport { forwardRefs } from \"../../composables/forwardRefs.mjs\"; // Utilities\nimport { computed, ref } from 'vue';\nimport { VTabsSymbol } from \"./shared.mjs\";\nimport { animate, genericComponent, omit, propsFactory, standardEasing, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVTabProps = propsFactory({\n fixed: Boolean,\n sliderColor: String,\n hideSlider: Boolean,\n direction: {\n type: String,\n default: 'horizontal'\n },\n ...omit(makeVBtnProps({\n selectedClass: 'v-tab--selected',\n variant: 'text'\n }), ['active', 'block', 'flat', 'location', 'position', 'symbol'])\n}, 'VTab');\nexport const VTab = genericComponent()({\n name: 'VTab',\n props: makeVTabProps(),\n setup(props, _ref) {\n let {\n slots,\n attrs\n } = _ref;\n const {\n textColorClasses: sliderColorClasses,\n textColorStyles: sliderColorStyles\n } = useTextColor(props, 'sliderColor');\n const rootEl = ref();\n const sliderEl = ref();\n const isHorizontal = computed(() => props.direction === 'horizontal');\n const isSelected = computed(() => rootEl.value?.group?.isSelected.value ?? false);\n function updateSlider(_ref2) {\n let {\n value\n } = _ref2;\n if (value) {\n const prevEl = rootEl.value?.$el.parentElement?.querySelector('.v-tab--selected .v-tab__slider');\n const nextEl = sliderEl.value;\n if (!prevEl || !nextEl) return;\n const color = getComputedStyle(prevEl).color;\n const prevBox = prevEl.getBoundingClientRect();\n const nextBox = nextEl.getBoundingClientRect();\n const xy = isHorizontal.value ? 'x' : 'y';\n const XY = isHorizontal.value ? 'X' : 'Y';\n const rightBottom = isHorizontal.value ? 'right' : 'bottom';\n const widthHeight = isHorizontal.value ? 'width' : 'height';\n const prevPos = prevBox[xy];\n const nextPos = nextBox[xy];\n const delta = prevPos > nextPos ? prevBox[rightBottom] - nextBox[rightBottom] : prevBox[xy] - nextBox[xy];\n const origin = Math.sign(delta) > 0 ? isHorizontal.value ? 'right' : 'bottom' : Math.sign(delta) < 0 ? isHorizontal.value ? 'left' : 'top' : 'center';\n const size = Math.abs(delta) + (Math.sign(delta) < 0 ? prevBox[widthHeight] : nextBox[widthHeight]);\n const scale = size / Math.max(prevBox[widthHeight], nextBox[widthHeight]) || 0;\n const initialScale = prevBox[widthHeight] / nextBox[widthHeight] || 0;\n const sigma = 1.5;\n animate(nextEl, {\n backgroundColor: [color, 'currentcolor'],\n transform: [`translate${XY}(${delta}px) scale${XY}(${initialScale})`, `translate${XY}(${delta / sigma}px) scale${XY}(${(scale - 1) / sigma + 1})`, 'none'],\n transformOrigin: Array(3).fill(origin)\n }, {\n duration: 225,\n easing: standardEasing\n });\n }\n }\n useRender(() => {\n const btnProps = VBtn.filterProps(props);\n return _createVNode(VBtn, _mergeProps({\n \"symbol\": VTabsSymbol,\n \"ref\": rootEl,\n \"class\": ['v-tab', props.class],\n \"style\": props.style,\n \"tabindex\": isSelected.value ? 0 : -1,\n \"role\": \"tab\",\n \"aria-selected\": String(isSelected.value),\n \"active\": false\n }, btnProps, attrs, {\n \"block\": props.fixed,\n \"maxWidth\": props.fixed ? 300 : undefined,\n \"onGroup:selected\": updateSlider\n }), {\n ...slots,\n default: () => _createVNode(_Fragment, null, [slots.default?.() ?? props.text, !props.hideSlider && _createVNode(\"div\", {\n \"ref\": sliderEl,\n \"class\": ['v-tab__slider', sliderColorClasses.value],\n \"style\": sliderColorStyles.value\n }, null)])\n });\n });\n return forwardRefs({}, rootEl);\n }\n});\n//# sourceMappingURL=VTab.mjs.map","import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Components\nimport { makeVWindowProps, VWindow } from \"../VWindow/VWindow.mjs\"; // Composables\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed, inject } from 'vue';\nimport { genericComponent, omit, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nimport { VTabsSymbol } from \"./shared.mjs\";\nexport const makeVTabsWindowProps = propsFactory({\n ...omit(makeVWindowProps(), ['continuous', 'nextIcon', 'prevIcon', 'showArrows', 'touch', 'mandatory'])\n}, 'VTabsWindow');\nexport const VTabsWindow = genericComponent()({\n name: 'VTabsWindow',\n props: makeVTabsWindowProps(),\n emits: {\n 'update:modelValue': v => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const group = inject(VTabsSymbol, null);\n const _model = useProxiedModel(props, 'modelValue');\n const model = computed({\n get() {\n // Always return modelValue if defined\n // or if not within a VTabs group\n if (_model.value != null || !group) return _model.value;\n\n // If inside of a VTabs, find the currently selected\n // item by id. Item value may be assigned by its index\n return group.items.value.find(item => group.selected.value.includes(item.id))?.value;\n },\n set(val) {\n _model.value = val;\n }\n });\n useRender(() => {\n const windowProps = VWindow.filterProps(props);\n return _createVNode(VWindow, _mergeProps({\n \"_as\": \"VTabsWindow\"\n }, windowProps, {\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"class\": ['v-tabs-window', props.class],\n \"style\": props.style,\n \"mandatory\": false,\n \"touch\": false\n }), slots);\n });\n return {};\n }\n});\n//# sourceMappingURL=VTabsWindow.mjs.map","import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Components\nimport { makeVWindowItemProps, VWindowItem } from \"../VWindow/VWindowItem.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVTabsWindowItemProps = propsFactory({\n ...makeVWindowItemProps()\n}, 'VTabsWindowItem');\nexport const VTabsWindowItem = genericComponent()({\n name: 'VTabsWindowItem',\n props: makeVTabsWindowItemProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => {\n const windowItemProps = VWindowItem.filterProps(props);\n return _createVNode(VWindowItem, _mergeProps({\n \"_as\": \"VTabsWindowItem\"\n }, windowItemProps, {\n \"class\": ['v-tabs-window-item', props.class],\n \"style\": props.style\n }), slots);\n });\n return {};\n }\n});\n//# sourceMappingURL=VTabsWindowItem.mjs.map","import { Fragment as _Fragment, mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VTabs.css\";\n\n// Components\nimport { VTab } from \"./VTab.mjs\";\nimport { VTabsWindow } from \"./VTabsWindow.mjs\";\nimport { VTabsWindowItem } from \"./VTabsWindowItem.mjs\";\nimport { makeVSlideGroupProps, VSlideGroup } from \"../VSlideGroup/VSlideGroup.mjs\"; // Composables\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { useScopeId } from \"../../composables/scopeId.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { computed, toRef } from 'vue';\nimport { VTabsSymbol } from \"./shared.mjs\";\nimport { convertToUnit, genericComponent, isObject, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nfunction parseItems(items) {\n if (!items) return [];\n return items.map(item => {\n if (!isObject(item)) return {\n text: item,\n value: item\n };\n return item;\n });\n}\nexport const makeVTabsProps = propsFactory({\n alignTabs: {\n type: String,\n default: 'start'\n },\n color: String,\n fixedTabs: Boolean,\n items: {\n type: Array,\n default: () => []\n },\n stacked: Boolean,\n bgColor: String,\n grow: Boolean,\n height: {\n type: [Number, String],\n default: undefined\n },\n hideSlider: Boolean,\n sliderColor: String,\n ...makeVSlideGroupProps({\n mandatory: 'force',\n selectedClass: 'v-tab-item--selected'\n }),\n ...makeDensityProps(),\n ...makeTagProps()\n}, 'VTabs');\nexport const VTabs = genericComponent()({\n name: 'VTabs',\n props: makeVTabsProps(),\n emits: {\n 'update:modelValue': v => true\n },\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const model = useProxiedModel(props, 'modelValue');\n const items = computed(() => parseItems(props.items));\n const {\n densityClasses\n } = useDensity(props);\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(toRef(props, 'bgColor'));\n const {\n scopeId\n } = useScopeId();\n provideDefaults({\n VTab: {\n color: toRef(props, 'color'),\n direction: toRef(props, 'direction'),\n stacked: toRef(props, 'stacked'),\n fixed: toRef(props, 'fixedTabs'),\n sliderColor: toRef(props, 'sliderColor'),\n hideSlider: toRef(props, 'hideSlider')\n }\n });\n useRender(() => {\n const slideGroupProps = VSlideGroup.filterProps(props);\n const hasWindow = !!(slots.window || props.items.length > 0);\n return _createVNode(_Fragment, null, [_createVNode(VSlideGroup, _mergeProps(slideGroupProps, {\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"class\": ['v-tabs', `v-tabs--${props.direction}`, `v-tabs--align-tabs-${props.alignTabs}`, {\n 'v-tabs--fixed-tabs': props.fixedTabs,\n 'v-tabs--grow': props.grow,\n 'v-tabs--stacked': props.stacked\n }, densityClasses.value, backgroundColorClasses.value, props.class],\n \"style\": [{\n '--v-tabs-height': convertToUnit(props.height)\n }, backgroundColorStyles.value, props.style],\n \"role\": \"tablist\",\n \"symbol\": VTabsSymbol\n }, scopeId, attrs), {\n default: () => [slots.default?.() ?? items.value.map(item => slots.tab?.({\n item\n }) ?? _createVNode(VTab, _mergeProps(item, {\n \"key\": item.text,\n \"value\": item.value\n }), {\n default: slots[`tab.${item.value}`] ? () => slots[`tab.${item.value}`]?.({\n item\n }) : undefined\n }))]\n }), hasWindow && _createVNode(VTabsWindow, _mergeProps({\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"key\": \"tabs-window\"\n }, scopeId), {\n default: () => [items.value.map(item => slots.item?.({\n item\n }) ?? _createVNode(VTabsWindowItem, {\n \"value\": item.value\n }, {\n default: () => slots[`item.${item.value}`]?.({\n item\n })\n })), slots.window?.()]\n })]);\n });\n return {};\n }\n});\n//# sourceMappingURL=VTabs.mjs.map","import { Fragment as _Fragment, createVNode as _createVNode, resolveDirective as _resolveDirective, mergeProps as _mergeProps, withDirectives as _withDirectives, vModelText as _vModelText } from \"vue\";\n// Styles\nimport \"./VTextarea.css\";\nimport \"../VTextField/VTextField.css\";\n\n// Components\nimport { VCounter } from \"../VCounter/VCounter.mjs\";\nimport { VField } from \"../VField/index.mjs\";\nimport { filterFieldProps, makeVFieldProps } from \"../VField/VField.mjs\";\nimport { makeVInputProps, VInput } from \"../VInput/VInput.mjs\"; // Composables\nimport { useFocus } from \"../../composables/focus.mjs\";\nimport { forwardRefs } from \"../../composables/forwardRefs.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Directives\nimport Intersect from \"../../directives/intersect/index.mjs\"; // Utilities\nimport { computed, nextTick, onBeforeUnmount, onMounted, ref, shallowRef, watch, watchEffect } from 'vue';\nimport { callEvent, clamp, convertToUnit, filterInputAttrs, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVTextareaProps = propsFactory({\n autoGrow: Boolean,\n autofocus: Boolean,\n counter: [Boolean, Number, String],\n counterValue: Function,\n prefix: String,\n placeholder: String,\n persistentPlaceholder: Boolean,\n persistentCounter: Boolean,\n noResize: Boolean,\n rows: {\n type: [Number, String],\n default: 5,\n validator: v => !isNaN(parseFloat(v))\n },\n maxRows: {\n type: [Number, String],\n validator: v => !isNaN(parseFloat(v))\n },\n suffix: String,\n modelModifiers: Object,\n ...makeVInputProps(),\n ...makeVFieldProps()\n}, 'VTextarea');\nexport const VTextarea = genericComponent()({\n name: 'VTextarea',\n directives: {\n Intersect\n },\n inheritAttrs: false,\n props: makeVTextareaProps(),\n emits: {\n 'click:control': e => true,\n 'mousedown:control': e => true,\n 'update:focused': focused => true,\n 'update:modelValue': val => true\n },\n setup(props, _ref) {\n let {\n attrs,\n emit,\n slots\n } = _ref;\n const model = useProxiedModel(props, 'modelValue');\n const {\n isFocused,\n focus,\n blur\n } = useFocus(props);\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function' ? props.counterValue(model.value) : (model.value || '').toString().length;\n });\n const max = computed(() => {\n if (attrs.maxlength) return attrs.maxlength;\n if (!props.counter || typeof props.counter !== 'number' && typeof props.counter !== 'string') return undefined;\n return props.counter;\n });\n function onIntersect(isIntersecting, entries) {\n if (!props.autofocus || !isIntersecting) return;\n entries[0].target?.focus?.();\n }\n const vInputRef = ref();\n const vFieldRef = ref();\n const controlHeight = shallowRef('');\n const textareaRef = ref();\n const isActive = computed(() => props.persistentPlaceholder || isFocused.value || props.active);\n function onFocus() {\n if (textareaRef.value !== document.activeElement) {\n textareaRef.value?.focus();\n }\n if (!isFocused.value) focus();\n }\n function onControlClick(e) {\n onFocus();\n emit('click:control', e);\n }\n function onControlMousedown(e) {\n emit('mousedown:control', e);\n }\n function onClear(e) {\n e.stopPropagation();\n onFocus();\n nextTick(() => {\n model.value = '';\n callEvent(props['onClick:clear'], e);\n });\n }\n function onInput(e) {\n const el = e.target;\n model.value = el.value;\n if (props.modelModifiers?.trim) {\n const caretPosition = [el.selectionStart, el.selectionEnd];\n nextTick(() => {\n el.selectionStart = caretPosition[0];\n el.selectionEnd = caretPosition[1];\n });\n }\n }\n const sizerRef = ref();\n const rows = ref(+props.rows);\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant));\n watchEffect(() => {\n if (!props.autoGrow) rows.value = +props.rows;\n });\n function calculateInputHeight() {\n if (!props.autoGrow) return;\n nextTick(() => {\n if (!sizerRef.value || !vFieldRef.value) return;\n const style = getComputedStyle(sizerRef.value);\n const fieldStyle = getComputedStyle(vFieldRef.value.$el);\n const padding = parseFloat(style.getPropertyValue('--v-field-padding-top')) + parseFloat(style.getPropertyValue('--v-input-padding-top')) + parseFloat(style.getPropertyValue('--v-field-padding-bottom'));\n const height = sizerRef.value.scrollHeight;\n const lineHeight = parseFloat(style.lineHeight);\n const minHeight = Math.max(parseFloat(props.rows) * lineHeight + padding, parseFloat(fieldStyle.getPropertyValue('--v-input-control-height')));\n const maxHeight = parseFloat(props.maxRows) * lineHeight + padding || Infinity;\n const newHeight = clamp(height ?? 0, minHeight, maxHeight);\n rows.value = Math.floor((newHeight - padding) / lineHeight);\n controlHeight.value = convertToUnit(newHeight);\n });\n }\n onMounted(calculateInputHeight);\n watch(model, calculateInputHeight);\n watch(() => props.rows, calculateInputHeight);\n watch(() => props.maxRows, calculateInputHeight);\n watch(() => props.density, calculateInputHeight);\n let observer;\n watch(sizerRef, val => {\n if (val) {\n observer = new ResizeObserver(calculateInputHeight);\n observer.observe(sizerRef.value);\n } else {\n observer?.disconnect();\n }\n });\n onBeforeUnmount(() => {\n observer?.disconnect();\n });\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter || props.counterValue);\n const hasDetails = !!(hasCounter || slots.details);\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs);\n const {\n modelValue: _,\n ...inputProps\n } = VInput.filterProps(props);\n const fieldProps = filterFieldProps(props);\n return _createVNode(VInput, _mergeProps({\n \"ref\": vInputRef,\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"class\": ['v-textarea v-text-field', {\n 'v-textarea--prefixed': props.prefix,\n 'v-textarea--suffixed': props.suffix,\n 'v-text-field--prefixed': props.prefix,\n 'v-text-field--suffixed': props.suffix,\n 'v-textarea--auto-grow': props.autoGrow,\n 'v-textarea--no-resize': props.noResize || props.autoGrow,\n 'v-input--plain-underlined': isPlainOrUnderlined.value\n }, props.class],\n \"style\": props.style\n }, rootAttrs, inputProps, {\n \"centerAffix\": rows.value === 1 && !isPlainOrUnderlined.value,\n \"focused\": isFocused.value\n }), {\n ...slots,\n default: _ref2 => {\n let {\n id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid\n } = _ref2;\n return _createVNode(VField, _mergeProps({\n \"ref\": vFieldRef,\n \"style\": {\n '--v-textarea-control-height': controlHeight.value\n },\n \"onClick\": onControlClick,\n \"onMousedown\": onControlMousedown,\n \"onClick:clear\": onClear,\n \"onClick:prependInner\": props['onClick:prependInner'],\n \"onClick:appendInner\": props['onClick:appendInner']\n }, fieldProps, {\n \"id\": id.value,\n \"active\": isActive.value || isDirty.value,\n \"centerAffix\": rows.value === 1 && !isPlainOrUnderlined.value,\n \"dirty\": isDirty.value || props.dirty,\n \"disabled\": isDisabled.value,\n \"focused\": isFocused.value,\n \"error\": isValid.value === false\n }), {\n ...slots,\n default: _ref3 => {\n let {\n props: {\n class: fieldClass,\n ...slotProps\n }\n } = _ref3;\n return _createVNode(_Fragment, null, [props.prefix && _createVNode(\"span\", {\n \"class\": \"v-text-field__prefix\"\n }, [props.prefix]), _withDirectives(_createVNode(\"textarea\", _mergeProps({\n \"ref\": textareaRef,\n \"class\": fieldClass,\n \"value\": model.value,\n \"onInput\": onInput,\n \"autofocus\": props.autofocus,\n \"readonly\": isReadonly.value,\n \"disabled\": isDisabled.value,\n \"placeholder\": props.placeholder,\n \"rows\": props.rows,\n \"name\": props.name,\n \"onFocus\": onFocus,\n \"onBlur\": blur\n }, slotProps, inputAttrs), null), [[_resolveDirective(\"intersect\"), {\n handler: onIntersect\n }, null, {\n once: true\n }]]), props.autoGrow && _withDirectives(_createVNode(\"textarea\", {\n \"class\": [fieldClass, 'v-textarea__sizer'],\n \"id\": `${slotProps.id}-sizer`,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"ref\": sizerRef,\n \"readonly\": true,\n \"aria-hidden\": \"true\"\n }, null), [[_vModelText, model.value]]), props.suffix && _createVNode(\"span\", {\n \"class\": \"v-text-field__suffix\"\n }, [props.suffix])]);\n }\n });\n },\n details: hasDetails ? slotProps => _createVNode(_Fragment, null, [slots.details?.(slotProps), hasCounter && _createVNode(_Fragment, null, [_createVNode(\"span\", null, null), _createVNode(VCounter, {\n \"active\": props.persistentCounter || isFocused.value,\n \"value\": counterValue.value,\n \"max\": max.value,\n \"disabled\": props.disabled\n }, slots.counter)])]) : undefined\n });\n });\n return forwardRefs({}, vInputRef, vFieldRef, textareaRef);\n }\n});\n//# sourceMappingURL=VTextarea.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VThemeProvider.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { genericComponent, propsFactory } from \"../../util/index.mjs\";\nexport const makeVThemeProviderProps = propsFactory({\n withBackground: Boolean,\n ...makeComponentProps(),\n ...makeThemeProps(),\n ...makeTagProps()\n}, 'VThemeProvider');\nexport const VThemeProvider = genericComponent()({\n name: 'VThemeProvider',\n props: makeVThemeProviderProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n return () => {\n if (!props.withBackground) return slots.default?.();\n return _createVNode(props.tag, {\n \"class\": ['v-theme-provider', themeClasses.value, props.class],\n \"style\": props.style\n }, {\n default: () => [slots.default?.()]\n });\n };\n }\n});\n//# sourceMappingURL=VThemeProvider.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Components\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\"; // Composables\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeSizeProps, useSize } from \"../../composables/size.mjs\"; // Utilities\nimport { toRef } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVTimelineDividerProps = propsFactory({\n dotColor: String,\n fillDot: Boolean,\n hideDot: Boolean,\n icon: IconValue,\n iconColor: String,\n lineColor: String,\n ...makeComponentProps(),\n ...makeRoundedProps(),\n ...makeSizeProps(),\n ...makeElevationProps()\n}, 'VTimelineDivider');\nexport const VTimelineDivider = genericComponent()({\n name: 'VTimelineDivider',\n props: makeVTimelineDividerProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n sizeClasses,\n sizeStyles\n } = useSize(props, 'v-timeline-divider__dot');\n const {\n backgroundColorStyles,\n backgroundColorClasses\n } = useBackgroundColor(toRef(props, 'dotColor'));\n const {\n roundedClasses\n } = useRounded(props, 'v-timeline-divider__dot');\n const {\n elevationClasses\n } = useElevation(props);\n const {\n backgroundColorClasses: lineColorClasses,\n backgroundColorStyles: lineColorStyles\n } = useBackgroundColor(toRef(props, 'lineColor'));\n useRender(() => _createVNode(\"div\", {\n \"class\": ['v-timeline-divider', {\n 'v-timeline-divider--fill-dot': props.fillDot\n }, props.class],\n \"style\": props.style\n }, [_createVNode(\"div\", {\n \"class\": ['v-timeline-divider__before', lineColorClasses.value],\n \"style\": lineColorStyles.value\n }, null), !props.hideDot && _createVNode(\"div\", {\n \"key\": \"dot\",\n \"class\": ['v-timeline-divider__dot', elevationClasses.value, roundedClasses.value, sizeClasses.value],\n \"style\": sizeStyles.value\n }, [_createVNode(\"div\", {\n \"class\": ['v-timeline-divider__inner-dot', backgroundColorClasses.value, roundedClasses.value],\n \"style\": backgroundColorStyles.value\n }, [!slots.default ? _createVNode(VIcon, {\n \"key\": \"icon\",\n \"color\": props.iconColor,\n \"icon\": props.icon,\n \"size\": props.size\n }, null) : _createVNode(VDefaultsProvider, {\n \"key\": \"icon-defaults\",\n \"disabled\": !props.icon,\n \"defaults\": {\n VIcon: {\n color: props.iconColor,\n icon: props.icon,\n size: props.size\n }\n }\n }, slots.default)])]), _createVNode(\"div\", {\n \"class\": ['v-timeline-divider__after', lineColorClasses.value],\n \"style\": lineColorStyles.value\n }, null)]));\n return {};\n }\n});\n//# sourceMappingURL=VTimelineDivider.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Components\nimport { VTimelineDivider } from \"./VTimelineDivider.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { makeElevationProps } from \"../../composables/elevation.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { makeRoundedProps } from \"../../composables/rounded.mjs\";\nimport { makeSizeProps } from \"../../composables/size.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { ref, shallowRef, watch } from 'vue';\nimport { convertToUnit, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\n// Types\nexport const makeVTimelineItemProps = propsFactory({\n density: String,\n dotColor: String,\n fillDot: Boolean,\n hideDot: Boolean,\n hideOpposite: {\n type: Boolean,\n default: undefined\n },\n icon: IconValue,\n iconColor: String,\n lineInset: [Number, String],\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeSizeProps(),\n ...makeTagProps()\n}, 'VTimelineItem');\nexport const VTimelineItem = genericComponent()({\n name: 'VTimelineItem',\n props: makeVTimelineItemProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n dimensionStyles\n } = useDimension(props);\n const dotSize = shallowRef(0);\n const dotRef = ref();\n watch(dotRef, newValue => {\n if (!newValue) return;\n dotSize.value = newValue.$el.querySelector('.v-timeline-divider__dot')?.getBoundingClientRect().width ?? 0;\n }, {\n flush: 'post'\n });\n useRender(() => _createVNode(\"div\", {\n \"class\": ['v-timeline-item', {\n 'v-timeline-item--fill-dot': props.fillDot\n }, props.class],\n \"style\": [{\n '--v-timeline-dot-size': convertToUnit(dotSize.value),\n '--v-timeline-line-inset': props.lineInset ? `calc(var(--v-timeline-dot-size) / 2 + ${convertToUnit(props.lineInset)})` : convertToUnit(0)\n }, props.style]\n }, [_createVNode(\"div\", {\n \"class\": \"v-timeline-item__body\",\n \"style\": dimensionStyles.value\n }, [slots.default?.()]), _createVNode(VTimelineDivider, {\n \"ref\": dotRef,\n \"hideDot\": props.hideDot,\n \"icon\": props.icon,\n \"iconColor\": props.iconColor,\n \"size\": props.size,\n \"elevation\": props.elevation,\n \"dotColor\": props.dotColor,\n \"fillDot\": props.fillDot,\n \"rounded\": props.rounded\n }, {\n default: slots.icon\n }), props.density !== 'compact' && _createVNode(\"div\", {\n \"class\": \"v-timeline-item__opposite\"\n }, [!props.hideOpposite && slots.opposite?.()])]));\n return {};\n }\n});\n//# sourceMappingURL=VTimelineItem.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VTimeline.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.mjs\";\nimport { useRtl } from \"../../composables/locale.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { computed, toRef } from 'vue';\nimport { convertToUnit, genericComponent, pick, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nimport { makeVTimelineItemProps } from \"./VTimelineItem.mjs\";\nexport const makeVTimelineProps = propsFactory({\n align: {\n type: String,\n default: 'center',\n validator: v => ['center', 'start'].includes(v)\n },\n direction: {\n type: String,\n default: 'vertical',\n validator: v => ['vertical', 'horizontal'].includes(v)\n },\n justify: {\n type: String,\n default: 'auto',\n validator: v => ['auto', 'center'].includes(v)\n },\n side: {\n type: String,\n validator: v => v == null || ['start', 'end'].includes(v)\n },\n lineThickness: {\n type: [String, Number],\n default: 2\n },\n lineColor: String,\n truncateLine: {\n type: String,\n validator: v => ['start', 'end', 'both'].includes(v)\n },\n ...pick(makeVTimelineItemProps({\n lineInset: 0\n }), ['dotColor', 'fillDot', 'hideOpposite', 'iconColor', 'lineInset', 'size']),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeTagProps(),\n ...makeThemeProps()\n}, 'VTimeline');\nexport const VTimeline = genericComponent()({\n name: 'VTimeline',\n props: makeVTimelineProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n densityClasses\n } = useDensity(props);\n const {\n rtlClasses\n } = useRtl();\n provideDefaults({\n VTimelineDivider: {\n lineColor: toRef(props, 'lineColor')\n },\n VTimelineItem: {\n density: toRef(props, 'density'),\n dotColor: toRef(props, 'dotColor'),\n fillDot: toRef(props, 'fillDot'),\n hideOpposite: toRef(props, 'hideOpposite'),\n iconColor: toRef(props, 'iconColor'),\n lineColor: toRef(props, 'lineColor'),\n lineInset: toRef(props, 'lineInset'),\n size: toRef(props, 'size')\n }\n });\n const sideClasses = computed(() => {\n const side = props.side ? props.side : props.density !== 'default' ? 'end' : null;\n return side && `v-timeline--side-${side}`;\n });\n const truncateClasses = computed(() => {\n const classes = ['v-timeline--truncate-line-start', 'v-timeline--truncate-line-end'];\n switch (props.truncateLine) {\n case 'both':\n return classes;\n case 'start':\n return classes[0];\n case 'end':\n return classes[1];\n default:\n return null;\n }\n });\n useRender(() => _createVNode(props.tag, {\n \"class\": ['v-timeline', `v-timeline--${props.direction}`, `v-timeline--align-${props.align}`, `v-timeline--justify-${props.justify}`, truncateClasses.value, {\n 'v-timeline--inset-line': !!props.lineInset\n }, themeClasses.value, densityClasses.value, sideClasses.value, rtlClasses.value, props.class],\n \"style\": [{\n '--v-timeline-line-thickness': convertToUnit(props.lineThickness)\n }, props.style]\n }, slots));\n return {};\n }\n});\n//# sourceMappingURL=VTimeline.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeVariantProps } from \"../../composables/variant.mjs\"; // Utilities\nimport { toRef } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVToolbarItemsProps = propsFactory({\n ...makeComponentProps(),\n ...makeVariantProps({\n variant: 'text'\n })\n}, 'VToolbarItems');\nexport const VToolbarItems = genericComponent()({\n name: 'VToolbarItems',\n props: makeVToolbarItemsProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n provideDefaults({\n VBtn: {\n color: toRef(props, 'color'),\n height: 'inherit',\n variant: toRef(props, 'variant')\n }\n });\n useRender(() => _createVNode(\"div\", {\n \"class\": ['v-toolbar-items', props.class],\n \"style\": props.style\n }, [slots.default?.()]));\n return {};\n }\n});\n//# sourceMappingURL=VToolbarItems.mjs.map","import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VTooltip.css\";\n\n// Components\nimport { VOverlay } from \"../VOverlay/index.mjs\";\nimport { makeVOverlayProps } from \"../VOverlay/VOverlay.mjs\"; // Composables\nimport { forwardRefs } from \"../../composables/forwardRefs.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { useScopeId } from \"../../composables/scopeId.mjs\"; // Utilities\nimport { computed, mergeProps, ref } from 'vue';\nimport { genericComponent, getUid, omit, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVTooltipProps = propsFactory({\n id: String,\n text: String,\n ...omit(makeVOverlayProps({\n closeOnBack: false,\n location: 'end',\n locationStrategy: 'connected',\n eager: true,\n minWidth: 0,\n offset: 10,\n openOnClick: false,\n openOnHover: true,\n origin: 'auto',\n scrim: false,\n scrollStrategy: 'reposition',\n transition: false\n }), ['absolute', 'persistent'])\n}, 'VTooltip');\nexport const VTooltip = genericComponent()({\n name: 'VTooltip',\n props: makeVTooltipProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const isActive = useProxiedModel(props, 'modelValue');\n const {\n scopeId\n } = useScopeId();\n const uid = getUid();\n const id = computed(() => props.id || `v-tooltip-${uid}`);\n const overlay = ref();\n const location = computed(() => {\n return props.location.split(' ').length > 1 ? props.location : props.location + ' center';\n });\n const origin = computed(() => {\n return props.origin === 'auto' || props.origin === 'overlap' || props.origin.split(' ').length > 1 || props.location.split(' ').length > 1 ? props.origin : props.origin + ' center';\n });\n const transition = computed(() => {\n if (props.transition) return props.transition;\n return isActive.value ? 'scale-transition' : 'fade-transition';\n });\n const activatorProps = computed(() => mergeProps({\n 'aria-describedby': id.value\n }, props.activatorProps));\n useRender(() => {\n const overlayProps = VOverlay.filterProps(props);\n return _createVNode(VOverlay, _mergeProps({\n \"ref\": overlay,\n \"class\": ['v-tooltip', props.class],\n \"style\": props.style,\n \"id\": id.value\n }, overlayProps, {\n \"modelValue\": isActive.value,\n \"onUpdate:modelValue\": $event => isActive.value = $event,\n \"transition\": transition.value,\n \"absolute\": true,\n \"location\": location.value,\n \"origin\": origin.value,\n \"persistent\": true,\n \"role\": \"tooltip\",\n \"activatorProps\": activatorProps.value,\n \"_disableGlobalStack\": true\n }, scopeId), {\n activator: slots.activator,\n default: function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return slots.default?.(...args) ?? props.text;\n }\n });\n });\n return forwardRefs({}, overlay);\n }\n});\n//# sourceMappingURL=VTooltip.mjs.map","// Composables\nimport { makeValidationProps, useValidation } from \"../../composables/validation.mjs\"; // Utilities\nimport { genericComponent } from \"../../util/index.mjs\"; // Types\nexport const VValidation = genericComponent()({\n name: 'VValidation',\n props: makeValidationProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const validation = useValidation(props, 'validation');\n return () => slots.default?.(validation);\n }\n});\n//# sourceMappingURL=VValidation.mjs.map","// Types\n\nfunction mounted(el, binding) {\n const modifiers = binding.modifiers || {};\n const value = binding.value;\n const {\n once,\n immediate,\n ...modifierKeys\n } = modifiers;\n const defaultValue = !Object.keys(modifierKeys).length;\n const {\n handler,\n options\n } = typeof value === 'object' ? value : {\n handler: value,\n options: {\n attributes: modifierKeys?.attr ?? defaultValue,\n characterData: modifierKeys?.char ?? defaultValue,\n childList: modifierKeys?.child ?? defaultValue,\n subtree: modifierKeys?.sub ?? defaultValue\n }\n };\n const observer = new MutationObserver(function () {\n let mutations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n let observer = arguments.length > 1 ? arguments[1] : undefined;\n handler?.(mutations, observer);\n if (once) unmounted(el, binding);\n });\n if (immediate) handler?.([], observer);\n el._mutate = Object(el._mutate);\n el._mutate[binding.instance.$.uid] = {\n observer\n };\n observer.observe(el, options);\n}\nfunction unmounted(el, binding) {\n if (!el._mutate?.[binding.instance.$.uid]) return;\n el._mutate[binding.instance.$.uid].observer.disconnect();\n delete el._mutate[binding.instance.$.uid];\n}\nexport const Mutate = {\n mounted,\n unmounted\n};\nexport default Mutate;\n//# sourceMappingURL=index.mjs.map","// Types\n\nfunction mounted(el, binding) {\n const handler = binding.value;\n const options = {\n passive: !binding.modifiers?.active\n };\n window.addEventListener('resize', handler, options);\n el._onResize = Object(el._onResize);\n el._onResize[binding.instance.$.uid] = {\n handler,\n options\n };\n if (!binding.modifiers?.quiet) {\n handler();\n }\n}\nfunction unmounted(el, binding) {\n if (!el._onResize?.[binding.instance.$.uid]) return;\n const {\n handler,\n options\n } = el._onResize[binding.instance.$.uid];\n window.removeEventListener('resize', handler, options);\n delete el._onResize[binding.instance.$.uid];\n}\nexport const Resize = {\n mounted,\n unmounted\n};\nexport default Resize;\n//# sourceMappingURL=index.mjs.map","// Types\n\nfunction mounted(el, binding) {\n const {\n self = false\n } = binding.modifiers ?? {};\n const value = binding.value;\n const options = typeof value === 'object' && value.options || {\n passive: true\n };\n const handler = typeof value === 'function' || 'handleEvent' in value ? value : value.handler;\n const target = self ? el : binding.arg ? document.querySelector(binding.arg) : window;\n if (!target) return;\n target.addEventListener('scroll', handler, options);\n el._onScroll = Object(el._onScroll);\n el._onScroll[binding.instance.$.uid] = {\n handler,\n options,\n // Don't reference self\n target: self ? undefined : target\n };\n}\nfunction unmounted(el, binding) {\n if (!el._onScroll?.[binding.instance.$.uid]) return;\n const {\n handler,\n options,\n target = el\n } = el._onScroll[binding.instance.$.uid];\n target.removeEventListener('scroll', handler, options);\n delete el._onScroll[binding.instance.$.uid];\n}\nfunction updated(el, binding) {\n if (binding.value === binding.oldValue) return;\n unmounted(el, binding);\n mounted(el, binding);\n}\nexport const Scroll = {\n mounted,\n unmounted,\n updated\n};\nexport default Scroll;\n//# sourceMappingURL=index.mjs.map","// Utilities\nimport { h, mergeProps, render, resolveComponent } from 'vue';\nimport { consoleError, isObject } from \"../util/index.mjs\"; // Types\nexport function useDirectiveComponent(component, props) {\n const concreteComponent = typeof component === 'string' ? resolveComponent(component) : component;\n const hook = mountComponent(concreteComponent, props);\n return {\n mounted: hook,\n updated: hook,\n unmounted(el) {\n render(null, el);\n }\n };\n}\nfunction mountComponent(component, props) {\n return function (el, binding, vnode) {\n const _props = typeof props === 'function' ? props(binding) : props;\n const text = binding.value?.text ?? binding.value ?? _props?.text;\n const value = isObject(binding.value) ? binding.value : {};\n\n // Get the children from the props or directive value, or the element's children\n const children = () => text ?? el.textContent;\n\n // If vnode.ctx is the same as the instance, then we're bound to a plain element\n // and need to find the nearest parent component instance to inherit provides from\n const provides = (vnode.ctx === binding.instance.$ ? findComponentParent(vnode, binding.instance.$)?.provides : vnode.ctx?.provides) ?? binding.instance.$.provides;\n const node = h(component, mergeProps(_props, value), children);\n node.appContext = Object.assign(Object.create(null), binding.instance.$.appContext, {\n provides\n });\n render(node, el);\n };\n}\nfunction findComponentParent(vnode, root) {\n // Walk the tree from root until we find the child vnode\n const stack = new Set();\n const walk = children => {\n for (const child of children) {\n if (!child) continue;\n if (child === vnode || child.el && vnode.el && child.el === vnode.el) {\n return true;\n }\n stack.add(child);\n let result;\n if (child.suspense) {\n result = walk([child.ssContent]);\n } else if (Array.isArray(child.children)) {\n result = walk(child.children);\n } else if (child.component?.vnode) {\n result = walk([child.component?.subTree]);\n }\n if (result) {\n return result;\n }\n stack.delete(child);\n }\n return false;\n };\n if (!walk([root.subTree])) {\n consoleError('Could not find original vnode, component will not inherit provides');\n return root;\n }\n\n // Return the first component parent\n const result = Array.from(stack).reverse();\n for (const child of result) {\n if (child.component) {\n return child.component;\n }\n }\n return root;\n}\n//# sourceMappingURL=directiveComponent.mjs.map","// Components\nimport { VTooltip } from \"../../components/VTooltip/index.mjs\"; // Composables\nimport { useDirectiveComponent } from \"../../composables/directiveComponent.mjs\"; // Types\nexport const Tooltip = useDirectiveComponent(VTooltip, binding => {\n return {\n activator: 'parent',\n location: binding.arg?.replace('-', ' '),\n text: typeof binding.value === 'boolean' ? undefined : binding.value\n };\n});\nexport default Tooltip;\n//# sourceMappingURL=index.mjs.map","import ENV from './ENVIRONMENT_VARS';\nimport '@mdi/font/css/materialdesignicons.css';\n\nimport { createApp } from 'vue';\nimport { createPinia } from 'pinia';\nimport App from './App.vue';\nimport router from './router';\n\n// Vuetify\nimport 'vuetify/styles';\nimport { createVuetify } from 'vuetify';\nimport * as components from 'vuetify/components';\nimport * as directives from 'vuetify/directives';\nimport { aliases, mdi } from 'vuetify/iconsets/mdi';\n\n// data layer\nimport { initializeDataLayer, getDataLayer } from '@vue-skuilder/db';\n\n// auth store\nimport { useAuthStore } from '@vue-skuilder/common-ui';\n\n// styles from component library packages\nimport '@vue-skuilder/courseware/style';\nimport '@vue-skuilder/common-ui/style';\n\n// Import allCourseWare singleton and exampleCourse\nimport { allCourseWare } from '@vue-skuilder/courseware';\nimport { exampleCourse } from './questions/exampleCourse';\n\n// Add the example course to the allCourseWare singleton\nallCourseWare.courses.push(exampleCourse);\n\n// theme configuration\nimport config from '../skuilder.config.json';\n\n(async () => {\n // For static data layer, load manifest\n let dataLayerOptions: any = {\n COUCHDB_SERVER_URL: ENV.COUCHDB_SERVER_URL,\n COUCHDB_SERVER_PROTOCOL: ENV.COUCHDB_SERVER_PROTOCOL,\n COURSE_IDS: [config.course ? config.course : 'default-course'],\n };\n\n if (config.dataLayerType === 'static') {\n // Load root skuilder.json manifest for static mode\n try {\n const rootManifestUrl = '/skuilder.json';\n const rootManifestResponse = await fetch(rootManifestUrl);\n if (!rootManifestResponse.ok) {\n throw new Error(\n `Failed to load root manifest: ${rootManifestResponse.status} ${rootManifestResponse.statusText}`\n );\n }\n const rootManifest = await rootManifestResponse.json();\n console.log('[DEBUG] Loaded root manifest:', rootManifest);\n\n dataLayerOptions = {\n rootManifest,\n rootManifestUrl: new URL(rootManifestUrl, window.location.href).href,\n };\n } catch (error) {\n console.error('[DEBUG] Failed to load root manifest:', error);\n throw new Error(`Could not load root skuilder.json manifest: ${error}`);\n }\n }\n\n try {\n await initializeDataLayer({\n type: (config.dataLayerType || 'couch') as 'couch' | 'static',\n options: dataLayerOptions,\n });\n console.log('[DEBUG] Data layer initialized successfully');\n } catch (error) {\n console.error('[DEBUG] Data layer initialization failed:', error);\n throw error;\n }\n const pinia = createPinia();\n\n // Apply theme configuration from skuilder.config.json\n const themeConfig = config.theme\n ? {\n defaultTheme: config.theme.defaultMode || 'light',\n themes: {\n light: config.theme.light,\n dark: config.theme.dark,\n },\n }\n : {\n defaultTheme: 'light',\n themes: {\n light: {\n dark: false,\n colors: {\n primary: '#1976D2',\n secondary: '#424242',\n accent: '#82B1FF',\n error: '#F44336',\n info: '#2196F3',\n success: '#4CAF50',\n warning: '#FF9800',\n background: '#FFFFFF',\n surface: '#FFFFFF',\n 'surface-bright': '#FFFFFF',\n 'surface-light': '#EEEEEE',\n 'surface-variant': '#E3F2FD',\n 'on-surface-variant': '#1976D2',\n 'primary-darken-1': '#1565C0',\n 'secondary-darken-1': '#212121',\n 'on-primary': '#FFFFFF',\n 'on-secondary': '#FFFFFF',\n 'on-background': '#212121',\n 'on-surface': '#212121',\n },\n },\n dark: {\n dark: true,\n colors: {\n primary: '#2196F3',\n secondary: '#90A4AE',\n accent: '#82B1FF',\n error: '#FF5252',\n info: '#2196F3',\n success: '#4CAF50',\n warning: '#FFC107',\n background: '#121212',\n surface: '#1E1E1E',\n 'surface-bright': '#2C2C2C',\n 'surface-light': '#2C2C2C',\n 'surface-variant': '#1A237E',\n 'on-surface-variant': '#82B1FF',\n 'primary-darken-1': '#1976D2',\n 'secondary-darken-1': '#546E7A',\n 'on-primary': '#000000',\n 'on-secondary': '#000000',\n 'on-background': '#FFFFFF',\n 'on-surface': '#FFFFFF',\n },\n },\n },\n };\n\n const vuetify = createVuetify({\n components,\n directives,\n theme: themeConfig,\n icons: {\n defaultSet: 'mdi',\n aliases,\n sets: {\n mdi,\n },\n },\n });\n\n const app = createApp(App);\n\n app.use(router);\n app.use(vuetify);\n app.use(pinia);\n\n const { piniaPlugin } = await import('@vue-skuilder/common-ui');\n app.use(piniaPlugin, { pinia });\n\n await useAuthStore().init();\n\n // Initialize config store to load user settings (including dark mode)\n const { useConfigStore } = await import('@vue-skuilder/common-ui');\n await useConfigStore().init();\n\n // Provide inline markdown components for MarkdownRenderer\n // Enables custom Vue components in markdown via {{ <component-name /> }} syntax\n // See docs: https://patched-network.github.io/vue-skuilder/do/inline-components\n app.provide('markdownComponents', {\n // Empty - add components as needed\n });\n\n // Auto-register user for the course in standalone mode\n if (config.course) {\n try {\n const authStore = useAuthStore();\n const user = getDataLayer().getUserDB();\n \n // Check if user is already registered for the course\n const courseRegistrations = await user.getCourseRegistrationsDoc();\n const isRegistered = courseRegistrations.courses.some(c => c.courseID === config.course);\n \n if (!isRegistered) {\n console.log(`[Standalone] Auto-registering user for course: ${config.course}`);\n await user.registerForCourse(config.course, false); // non-preview mode\n console.log(`[Standalone] Auto-registration completed for course: ${config.course}`);\n } else {\n console.log(`[Standalone] User already registered for course: ${config.course}`);\n }\n } catch (error) {\n console.warn(`[Standalone] Failed to auto-register for course ${config.course}:`, error);\n // Don't block app startup on registration failure\n }\n }\n\n app.mount('#app');\n})();\n"],"file":"index-e8XolFvR.js"}