apprun 3.37.2 → 3.38.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -0
- package/README.md +2 -0
- package/WHATSNEW.md +6 -0
- package/ai/apprun.prompt.md +545 -109
- package/apprun.d.ts +17 -5
- package/dist/apprun-code.js +1 -1
- package/dist/apprun-code.js.map +1 -1
- package/dist/apprun-dev-tools.js +1 -1
- package/dist/apprun-dev-tools.js.map +1 -1
- package/dist/apprun-html.esm.js +7 -7
- package/dist/apprun-html.esm.js.map +1 -1
- package/dist/apprun-html.js +1 -1
- package/dist/apprun-html.js.map +1 -1
- package/dist/apprun-play-html.esm.js +7 -7
- package/dist/apprun-play-html.esm.js.map +1 -1
- package/dist/apprun-play.js +1 -1
- package/dist/apprun-play.js.map +1 -1
- package/dist/apprun.esm.js +1 -1
- package/dist/apprun.esm.js.map +1 -1
- package/dist/apprun.js +1 -1
- package/dist/apprun.js.map +1 -1
- package/dist/createState.js.map +1 -1
- package/esm/apprun-play.js.map +1 -1
- package/esm/apprun.js.map +1 -1
- package/esm/directive.js +129 -8
- package/esm/directive.js.map +1 -1
- package/esm/vdom-my-prop-attr.js +2 -2
- package/esm/vdom-my-prop-attr.js.map +1 -1
- package/esm/version.js +1 -1
- package/jsx-runtime.js +1 -1
- package/jsx-runtime.js.map +1 -1
- package/package.json +1 -1
- package/src/apprun-play.tsx +1 -1
- package/src/apprun.ts +2 -2
- package/src/component.ts +1 -1
- package/src/createState.ts +1 -1
- package/src/directive.ts +132 -7
- package/src/global.d.ts +2 -2
- package/src/types.ts +3 -3
- package/src/vdom-my-prop-attr.ts +2 -2
- package/src/version.ts +1 -1
package/jsx-runtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsx-runtime.js","mappings":"CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,IACQ,mBAAXG,QAAyBA,OAAOC,IAC9CD,OAAO,GAAIH,GACe,iBAAZC,QACdA,QAAgB,OAAID,IAEpBD,EAAa,OAAIC,GAClB,CATD,CASGK,MAAM,I,oQCJF,MAAMC,EASX,WAAAC,CAAYC,EAAUC,GACpBJ,KAAKI,UAAYA,EACjBJ,KAAKG,SAAWA,CAClB,EAGFF,EAAKI,UAAUD,UAAY,GAC3BH,EAAKI,UAAUC,YAAa,EAC5BL,EAAKI,UAAUE,SAAU,EACzBN,EAAKI,UAAUG,uBAAwB,EACvCP,EAAKI,UAAUI,gBAAiB,EAChCR,EAAKI,UAAUK,SAAU,EACzBT,EAAKI,UAAUM,iBAAkB,EACjCV,EAAKI,UAAUO,QAAS,EACxBX,EAAKI,UAAUQ,mBAAoB,EACnCZ,EAAKI,UAAUF,SAAW,GAC1BF,EAAKI,UAAUS,gBAAiB,EAChCb,EAAKI,UAAUU,WAAQC,EC/BvB,IAAIC,EAAS,EAEN,MAAM,EAAUC,IACVZ,EAAaY,IACbL,EAAoBK,IACpBN,EAASM,IACTJ,EAAiBI,IACjBT,EAAiBS,IACjBV,EAAwBU,IAErC,SAASA,IACP,OAAO,KAAOD,CAChB,CCLA,MAAME,EACJC,OAAOC,KAAK,GAGP,MAAMC,UAAoBrB,EAc/B,WAAAC,CAAYC,EAAUC,EAAWmB,EAAMR,GACrC,IAAIS,GAAS,EAMb,GAJAC,MAAMtB,EAAUC,GAEhBsB,EAAK1B,KAAM,QAASe,GAEA,iBAATQ,EACT,OAASC,EAAQL,EAAOQ,QAAQ,CAC9B,MAAMC,EAAQT,EAAOK,GACrBE,EAAK1B,KAAMmB,EAAOK,IAASD,EAAO,EAAMK,MAAY,EAAMA,GAC5D,CAEJ,EAiBF,SAASF,EAAKG,EAAQC,EAAKC,GACrBA,IACFF,EAAOC,GAAOC,EAElB,CClDO,SAASC,EAAUD,GACxB,OAAOA,EAAME,aACf,CD8BAX,EAAYjB,UAAUK,SAAU,EEjChC,MAAMwB,EAAM,SACNC,EAAO,UACPC,EAAQ,kBA0Ed,SAASC,EAAMC,GACb,MAAO,IAAMA,EAAGL,aAClB,CAQA,SAASM,EAAUD,GACjB,OAAOA,EAAGE,OAAO,GAAGC,aACtB,CC3FO,MAAMC,EAWX,WAAAxC,CAAYC,EAAUwC,EAAQ5B,GAC5Bf,KAAK2C,OAASA,EACd3C,KAAKG,SAAWA,EAEZY,IACFf,KAAKe,MAAQA,EAEjB,ECTK,SAAS6B,EAAMC,EAAa9B,GAEjC,MAAMZ,EAAW,CAAC,EAEZwC,EAAS,CAAC,EAEhB,IAAK,MAAMG,KAAcD,EACvBzB,OAAO2B,OAAO5C,EAAU2C,EAAW3C,UACnCiB,OAAO2B,OAAOJ,EAAQG,EAAWH,QAGnC,OAAO,IAAID,EAAOvC,EAAUwC,EAAQ5B,EACtC,CCcO,SAASiC,EAAOF,GAErB,MAAMG,EAAa,CAAC,EAEdC,EAAU,CAAC,EAEjB,IAAK,MAAO/C,EAAU4B,KAAUX,OAAO+B,QAAQL,EAAWG,YAAa,CACrE,MAAMG,EAAO,IAAI9B,EACfnB,EACA2C,EAAWO,UAAUP,EAAWQ,YAAc,CAAC,EAAGnD,GAClD4B,EACAe,EAAW/B,OAIX+B,EAAWnC,iBACXmC,EAAWnC,gBAAgB4C,SAASpD,KAEpCiD,EAAKzC,iBAAkB,GAGzBsC,EAAW9C,GAAYiD,EAEvBF,EAAQlB,EAAU7B,IAAaA,EAC/B+C,EAAQlB,EAAUoB,EAAKhD,YAAcD,CACvC,CAEA,OAAO,IAAIuC,EAAOO,EAAYC,EAASJ,EAAW/B,MACpD,CF1CA2B,EAAOrC,UAAUsC,OAAS,CAAC,EAC3BD,EAAOrC,UAAUF,SAAW,CAAC,EAC7BuC,EAAOrC,UAAUU,WAAQC,EGzBlB,MAAMwC,EAAOR,EAAO,CACzBC,WAAY,CACVQ,qBAAsB,KACtBC,WAAYpD,EACZqD,iBAAkB,KAClBC,SAAUtD,EACVuD,YAAavD,EACbwD,aAAclD,EACdmD,aAAcnD,EACdoD,YAAapD,EACbqD,aAAcnD,EACdoD,YAAa,KACbC,gBAAiBrD,EACjBsD,YAAa,KACbC,aAAc/D,EACdgE,eAAgBxD,EAChByD,iBAAkB,KAClBC,aAAclE,EACdmE,WAAY3D,EACZ4D,YAAapE,EACbqE,aAAc,KACdC,WAAYtE,EACZuE,YAAa,KACbC,iBAAkB,KAClBC,UAAW,KACXC,eAAgBlE,EAChBmE,UAAWrE,EACXsE,SAAU,KACVC,UAAW7E,EACX8E,cAAe9E,EACf+E,oBAAqB/E,EACrBgF,gBAAiB,KACjBC,SAAUzE,EACV0E,gBAAiB,KACjBC,aAAc7E,EACd8E,YAAapF,EACbqF,aAAcrF,EACdsF,aAAc,KACdC,aAAcvF,EACdwF,oBAAqBhF,EACrBiF,aAAcnF,EACdoF,aAAcpF,EACdqF,YAAarF,EACbsF,aAAc5F,EACd6F,YAAavF,EACbwF,SAAU,KACVC,aAAczF,EACd0F,aAAc1F,EACd2F,aAAc3F,EACd4F,cAAe,KACfC,KAAM,MAERpD,UAAS,CAACqD,EAAGvG,IACS,SAAbA,EACHA,EACA,QAAUA,EAASwG,MAAM,GAAG1E,gBClD7B,SAAS2E,EAAuBtD,EAAYlD,GACjD,OAAOA,KAAakD,EAAaA,EAAWlD,GAAaA,CAC3D,CCAO,SAASyG,EAAyBvD,EAAYnD,GACnD,OAAOyG,EAAuBtD,EAAYnD,EAAS8B,cACrD,CCDO,MAAM6E,EAAO9D,EAAO,CACzBM,WAAY,CACVyD,cAAe,iBACfC,UAAW,QACXC,QAAS,MACTC,UAAW,cAEbvG,gBAAiB,CAAC,UAAW,WAAY,QAAS,YAClDsC,WAAY,CAEVkE,KAAM,KACNC,OAAQ3G,EACR4G,cAAevG,EACfwG,UAAWxG,EACXyG,OAAQ,KACRC,MAAO,KACPC,gBAAiB,EACjBC,oBAAqB,EACrBC,eAAgB,EAChBC,IAAK,KACLC,GAAI,KACJC,MAAO,EACPC,eAAgB,KAChBC,aAAclH,EACdmH,UAAW,EACXC,SAAU,EACVC,SAAUrH,EACVsH,QAAS,KACTC,QAAS,KACTC,QAAS,EACTC,KAAM,KACNC,UAAW1H,EACX2H,KAAM7H,EACN8H,QAAS,KACTC,QAAS,KACTC,gBAAiBtI,EACjBuI,SAAU,EACVC,aAAchI,EACdiI,OAAQnI,EAASH,EACjBuI,YAAa,KACbC,KAAM,KACNC,SAAU,KACVC,SAAU,KACVC,QAAS,EACTC,MAAO,EACPC,IAAK,KACLC,QAAS,KACTC,SAAU,EACVC,SAAU5I,EACV6I,UAAWpJ,EACXqJ,QAAS,KACTC,aAAc,KACdC,cAAe,KACfC,KAAM,KACNC,WAAY,KACZC,YAAa,KACbC,WAAY,KACZC,eAAgB,EAChBC,WAAY,KACZC,QAAStJ,EACTuJ,OAAQzJ,EACR0J,OAAQzJ,EACR0J,KAAM3J,EACN4J,KAAM,KACNC,SAAU,KACVC,QAAS5J,EACT6J,UAAW7J,EACX8J,GAAI,KACJC,WAAY,KACZC,YAAa,KACbC,MAAO,EACPC,UAAW,KACXC,UAAW,KACXC,GAAI,KACJC,MAAO,EACPC,OAAQ,KACRC,SAAUvK,EACVwK,QAASxK,EACTyK,UAAW,EACXC,SAAU1K,EACV2K,KAAM,KACNC,MAAO,KACPC,KAAM,KACNC,SAAU,KACVC,KAAM,KACNC,QAAS,KACTC,KAAM,EACNC,IAAKpL,EACLqL,SAAU,KACVC,IAAK,KACLC,UAAWvL,EACXwL,MAAO,KACPC,OAAQ,KACRC,IAAK,KACLC,UAAW3L,EACX4L,SAAU,EACVC,MAAO,EACPC,KAAM,KACNC,MAAO,KACPC,SAAU,EACVC,WAAY,EACZC,QAAS,KACTC,aAAc,KACdC,WAAY,KACZC,cAAe,KACfC,cAAe,KACfC,eAAgB,KAChBC,eAAgB,KAChBC,OAAQ,KACRC,SAAU,KACVC,UAAW,KACXC,iBAAkB,KAClBC,SAAU,KACVC,QAAS,KACTC,QAAS,KACTC,cAAe,KACfC,cAAe,KACfC,kBAAmB,KACnBC,OAAQ,KACRC,YAAa,KACbC,MAAO,KACPC,WAAY,KACZC,OAAQ,KACRC,UAAW,KACXC,YAAa,KACbC,WAAY,KACZC,YAAa,KACbC,WAAY,KACZC,YAAa,KACbC,OAAQ,KACRC,iBAAkB,KAClBC,UAAW,KACXC,QAAS,KACTC,QAAS,KACTC,QAAS,KACTC,WAAY,KACZC,aAAc,KACdC,QAAS,KACTC,UAAW,KACXC,UAAW,KACXC,WAAY,KACZC,QAAS,KACTC,iBAAkB,KAClBC,OAAQ,KACRC,aAAc,KACdC,iBAAkB,KAClBC,UAAW,KACXC,YAAa,KACbC,UAAW,KACXC,eAAgB,KAChBC,YAAa,KACbC,aAAc,KACdC,aAAc,KACdC,YAAa,KACbC,WAAY,KACZC,YAAa,KACbC,UAAW,KACXC,UAAW,KACXC,SAAU,KACVC,WAAY,KACZC,WAAY,KACZC,QAAS,KACTC,QAAS,KACTC,OAAQ,KACRC,UAAW,KACXC,WAAY,KACZC,WAAY,KACZC,aAAc,KACdC,mBAAoB,KACpBC,QAAS,KACTC,SAAU,KACVC,SAAU,KACVC,YAAa,KACbC,0BAA2B,KAC3BC,SAAU,KACVC,UAAW,KACXC,SAAU,KACVC,aAAc,KACdC,UAAW,KACXC,UAAW,KACXC,SAAU,KACVC,UAAW,KACXC,aAAc,KACdC,SAAU,KACVC,qBAAsB,KACtBC,SAAU,KACVC,eAAgB,KAChBC,UAAW,KACXC,QAAS,KACTC,KAAM,EACNC,QAAS3R,EACT4R,QAAS,KACTC,KAAM3R,EACN4R,YAAa,KACbC,YAAa,EACbC,QAAS,KACTC,cAAe,KACfC,oBAAqB,KACrBC,OAAQ,KACRC,QAAS,KACTC,SAAU,EACVC,eAAgB,KAChBC,IAAKrS,EACLsS,SAAU,EACVC,SAAU,EACVC,KAAM1S,EACN2S,QAAS3S,EACT4S,QAAS1S,EACT2S,MAAO,KACPC,OAAQ,EACRC,SAAU,EACVC,SAAU,EACVC,mBAAoB,EACpBC,yBAA0B,EAC1BC,eAAgB,KAChBC,MAAO,KACPC,KAAMrT,EACNsT,MAAO,KACPC,KAAM,KACNC,KAAMxT,EACNyT,WAAY/T,EACZgU,IAAK,KACLC,OAAQ,KACRC,QAAS,KACTC,OAAQ,KACRC,MAAO9T,EACP+T,KAAM,KACNC,MAAO,KACPC,SAAUjU,EACVkU,OAAQ,KACRC,MAAO,KACPC,UAAW,KACXC,KAAM,KACNC,cAAe,EACfC,OAAQ,KACRpT,MAAOzB,EACP8U,MAAOxU,EACPyU,KAAM,KACNC,mBAAoB,KAIpBC,MAAO,KACPC,MAAO,KACPC,QAAS3U,EACT4U,KAAM,KACNC,WAAY,KACZC,QAAS,KACTC,OAAQjV,EACRkV,YAAa,KACbC,aAAcnV,EACdoV,YAAa,KACbC,YAAa,KACbC,KAAM,KACNC,QAAS,KACTC,QAAS,KACTC,MAAO,KACPC,KAAM,KACNC,SAAU,KACVC,SAAU,KACVC,MAAO,KACPC,QAAS,EACTC,QAAS,EACTC,MAAO,KACPC,KAAM,KACNC,MAAO,KACPC,YAAa,KACbC,OAAQpW,EACRqW,WAAYrW,EACZsW,KAAM,KACNC,SAAU,KACVC,OAAQ,KACRC,aAAczW,EACd0W,YAAa1W,EACb2W,SAAU,EACVC,OAAQ,EACRC,QAAS,EACTC,OAAQ,EACRC,OAAQ,KACRC,QAAS,KACTC,OAAQ,KACRC,IAAK,KACLC,YAAanX,EACboX,MAAO,KACPC,OAAQ,KACRC,UAAW5X,EACX6X,QAAS,KACTC,QAAS,KACTC,KAAM,KACNC,UAAW1X,EACX2X,UAAW,KACXC,QAAS,KACTC,OAAQ,KACRC,MAAO,KACPC,OAAQ/X,EAGRgY,kBAAmB,KACnBC,YAAa,KACbC,SAAU,KACVC,wBAAyB,EACzBC,sBAAuB,EACvBC,OAAQ,KACR9Y,SAAU,KACV+Y,QAAStY,EACTuY,SAAU,KACVC,aAAc,MAEhBrY,MAAO,OACPsC,UAAWwD,ICtTAwS,EAAMrW,EAAO,CACxBM,WAAY,CACVgW,aAAc,gBACdC,kBAAmB,qBACnBC,WAAY,cACZC,cAAe,iBACfC,UAAW,aACXlR,UAAW,QACXmR,SAAU,YACVC,SAAU,YACVC,mBAAoB,sBACpBC,0BAA2B,8BAC3BC,aAAc,gBACdC,eAAgB,kBAChBhR,YAAa,cACbiR,SAAU,WACVC,iBAAkB,oBAClBC,iBAAkB,oBAClBC,YAAa,eACbC,SAAU,YACVC,WAAY,cACZC,aAAc,gBACdC,WAAY,cACZC,SAAU,YACVC,eAAgB,mBAChBC,YAAa,eACbC,UAAW,aACXC,YAAa,eACbC,WAAY,cACZC,UAAW,aACXC,2BAA4B,+BAC5BC,yBAA0B,6BAC1BxQ,SAAU,WACVyQ,UAAW,cACXC,aAAc,iBACdC,aAAc,iBACdC,eAAgB,kBAChBC,cAAe,iBACfC,cAAe,iBACfC,UAAW,aACXC,UAAW,aACXC,YAAa,eACbC,QAAS,WACTC,YAAa,gBACbC,aAAc,iBACdC,QAAS,WACTC,QAAS,WACTC,QAAS,WACTC,SAAU,YACVC,MAAO,SACPC,UAAW,cACXC,WAAY,eACZtP,QAAS,UACTuP,WAAY,aACZtP,aAAc,eACdG,cAAe,gBACfoP,QAAS,UACThP,SAAU,WACVC,UAAW,YACXC,iBAAkB,mBAClBC,SAAU,WACVC,QAAS,UACTC,QAAS,UACTI,OAAQ,SACRC,YAAa,cACbC,MAAO,QACPC,WAAY,aACZC,OAAQ,SACRC,UAAW,YACXC,YAAa,cACbC,WAAY,aACZC,YAAa,cACbC,WAAY,aACZC,YAAa,cACbC,OAAQ,SACRC,iBAAkB,mBAClBC,UAAW,YACX2N,MAAO,QACP1N,QAAS,UACTC,QAAS,UACTC,QAAS,UACTyN,UAAW,YACXC,WAAY,aACZxN,aAAc,eACdC,QAAS,UACTC,UAAW,YACXC,UAAW,YACXC,WAAY,aACZC,QAAS,UACTE,OAAQ,SACRC,aAAc,eACdC,iBAAkB,mBAClBE,YAAa,cACbC,UAAW,YACXE,YAAa,cACbC,aAAc,eACdC,aAAc,eACdC,YAAa,cACbC,WAAY,aACZC,YAAa,cACbC,UAAW,YACXqM,aAAc,eACdpM,UAAW,YACXC,SAAU,WACVC,WAAY,aACZC,WAAY,aACZC,QAAS,UACTC,QAAS,UACTC,OAAQ,SACRC,UAAW,YACXC,WAAY,aACZC,WAAY,aACZC,aAAc,eACd2L,SAAU,WACVzL,QAAS,UACTC,SAAU,WACVC,SAAU,WACVG,SAAU,WACVC,UAAW,YACXC,SAAU,WACVmL,OAAQ,SACRjL,UAAW,YACXC,UAAW,YACXC,SAAU,WACVC,UAAW,YACXC,aAAc,eACdC,SAAU,WACVE,SAAU,WACVC,eAAgB,iBAChBC,UAAW,YACXyK,OAAQ,SACRC,iBAAkB,oBAClBC,kBAAmB,qBACnBC,WAAY,cACZC,QAAS,WACTC,cAAe,iBACfhK,eAAgB,iBAChBiK,gBAAiB,mBACjBC,eAAgB,kBAChBC,UAAW,aACXC,YAAa,eACbC,sBAAuB,yBACvBC,uBAAwB,0BACxBC,gBAAiB,mBACjBC,iBAAkB,oBAClBC,cAAe,iBACfC,eAAgB,kBAChBC,iBAAkB,oBAClBC,cAAe,iBACfC,YAAa,eACblJ,SAAU,WACVmJ,WAAY,cACZC,eAAgB,kBAChBC,cAAe,iBACfC,gBAAiB,mBACjBC,OAAQ,SACRC,kBAAmB,qBACnBC,mBAAoB,sBACpBC,YAAa,eACbC,aAAc,gBACdC,WAAY,eACZC,YAAa,eACbC,SAAU,YACVC,aAAc,gBACdC,cAAe,iBACfC,aAAc,gBACdC,SAAU,aACVC,YAAa,gBACbC,YAAa,gBACbC,YAAa,eACbC,YAAa,eACbC,QAAS,WAETC,cAAe,gBACfC,cAAe,iBAEjBrc,WAAY,CACVsc,MAAO/e,EACP8Y,aAAc1Y,EACd4e,WAAY,KACZC,SAAU,KACVlG,kBAAmB,KACnBmG,WAAY9e,EACZ+e,UAAW/e,EACX4Y,WAAY,KACZoG,OAAQhf,EACRif,cAAe,KACfC,cAAe,KACfC,QAASnf,EACTof,UAAW,KACXvG,cAAe,KACfwG,cAAe,KACfC,YAAa,KACbC,KAAM,KACNC,MAAO,KACPC,KAAMzf,EACN0f,GAAI,KACJC,SAAU,KACV7G,UAAW9Y,EACX4H,UAAW1H,EACX0f,KAAM,KACN7G,SAAU,KACV8G,cAAe,KACf7G,SAAU,KACVnD,MAAO,KACPoD,mBAAoB,KACpBC,0BAA2B,KAC3BC,aAAc,KACdC,eAAgB,KAChBrR,QAAS,KACT+X,kBAAmB,KACnBC,iBAAkB,KAClB3X,YAAa,KACb4X,OAAQ,KACRC,GAAI,KACJC,GAAI,KACJC,EAAG,KACH9G,SAAU,KACV+G,cAAe,KACfC,QAASrgB,EACTsgB,gBAAiBtgB,EACjBugB,UAAW,KACXC,QAAS,KACTC,IAAK,KACLC,QAAS1gB,EACTsZ,iBAAkB,KAClBzQ,SAAU,EACV8X,GAAI,KACJC,GAAI,KACJC,SAAU,KACVC,SAAU,KACVC,UAAW/gB,EACXuZ,iBAAkB,KAClByH,IAAK,KACLhL,MAAO,KACPiL,SAAUjhB,EACVkhB,0BAA2B,KAC3BC,KAAM,KACN3H,YAAaxZ,EACbyZ,SAAU,KACV2H,OAAQ,KACRC,UAAW,KACXC,YAAa,KACb5H,WAAY,KACZC,aAAc,KACd4H,UAAW,KACXC,eAAgB,KAChB5H,WAAY,KACZC,SAAU,KACVC,eAAgB,KAChBC,YAAa,KACbC,UAAW,KACXC,YAAa,KACbC,WAAY,KACZuH,OAAQ,KACRC,GAAI,KACJC,KAAM,KACNC,GAAI,KACJC,GAAI,KACJC,GAAIjiB,EACJkiB,GAAIliB,EACJsa,UAAWta,EACXua,2BAA4B,KAC5BC,yBAA0B,KAC1B2H,SAAU,KACVC,kBAAmB,KACnBC,cAAe,KACfC,QAAS,KACTC,QAASpiB,EACTqiB,kBAAmB,KACnBC,WAAY,KACZ7Y,OAAQ,KACRG,KAAM,KACNC,SAAU,KACVyQ,UAAWta,EACXua,aAAcva,EACdwa,aAAcxa,EACdgK,GAAI,KACJuY,YAAaviB,EACbya,eAAgB,KAChB+H,kBAAmB,KACnBC,GAAI,KACJC,IAAK,KACLC,UAAW3iB,EACX4iB,EAAG5iB,EACH6iB,GAAI7iB,EACJ8iB,GAAI9iB,EACJ+iB,GAAI/iB,EACJgjB,GAAIhjB,EACJijB,aAAcrjB,EACdsjB,iBAAkB,KAClBC,UAAW,KACXC,WAAY,KACZC,SAAU,KACVC,QAAS,KACTvY,KAAM,KACNwY,aAAc,KACd7I,cAAe,KACfC,cAAe,KACf6I,kBAAmBxjB,EACnByjB,MAAO,KACP7I,UAAW,KACXC,UAAW,KACXC,YAAa,KACb4I,aAAc,KACdC,YAAa,KACbC,YAAa,KACbjjB,KAAM,KACNkjB,iBAAkB,KAClBC,UAAW,KACXC,aAAc,KACdzY,IAAK,KACLE,MAAO,KACPwY,uBAAwB,KACxBC,sBAAuB,KACvBC,UAAWlkB,EACXmkB,UAAW,KACX1Y,OAAQ,KACRC,IAAK,KACL0Y,KAAM,KACNtY,KAAM,KACNiP,QAAS,KACTC,YAAa,KACbC,aAAc,KACdC,QAAS,KACTC,QAAS,KACTC,QAAS,KACTC,SAAU,KACVC,MAAO,KACPC,UAAW,KACXC,WAAY,KACZ6I,WAAY,KACZC,SAAU,KACVC,OAAQ,KACRrY,QAAS,KACTuP,WAAY,KACZtP,aAAc,KACdG,cAAe,KACfoP,QAAS,KACThP,SAAU,KACVC,UAAW,KACXC,iBAAkB,KAClBC,SAAU,KACVC,QAAS,KACTC,QAAS,KACTI,OAAQ,KACRC,YAAa,KACbC,MAAO,KACPC,WAAY,KACZC,OAAQ,KACRC,UAAW,KACXC,YAAa,KACbC,WAAY,KACZC,YAAa,KACbC,WAAY,KACZC,YAAa,KACbC,OAAQ,KACRC,iBAAkB,KAClBC,UAAW,KACX2N,MAAO,KACP1N,QAAS,KACTC,QAAS,KACTC,QAAS,KACTyN,UAAW,KACXC,WAAY,KACZxN,aAAc,KACdC,QAAS,KACTC,UAAW,KACXC,UAAW,KACXC,WAAY,KACZC,QAAS,KACTE,OAAQ,KACRC,aAAc,KACdC,iBAAkB,KAClBE,YAAa,KACbC,UAAW,KACXE,YAAa,KACbC,aAAc,KACdC,aAAc,KACdC,YAAa,KACbC,WAAY,KACZC,YAAa,KACbC,UAAW,KACXqM,aAAc,KACdpM,UAAW,KACXC,SAAU,KACVC,WAAY,KACZC,WAAY,KACZC,QAAS,KACTC,QAAS,KACTC,OAAQ,KACRC,UAAW,KACXC,WAAY,KACZC,WAAY,KACZC,aAAc,KACd2L,SAAU,KACVzL,QAAS,KACTC,SAAU,KACVC,SAAU,KACVG,SAAU,KACVC,UAAW,KACXC,SAAU,KACVmL,OAAQ,KACRjL,UAAW,KACXC,UAAW,KACXC,SAAU,KACVC,UAAW,KACXC,aAAc,KACdC,SAAU,KACVE,SAAU,KACVC,eAAgB,KAChBC,UAAW,KACXyK,OAAQ,KACRuI,QAAS,KACTC,SAAU,KACVC,MAAO,KACPC,OAAQ,KACRC,YAAa,KACbC,OAAQ,KACRC,SAAU,KACVC,QAAS,KACT7I,iBAAkBlc,EAClBmc,kBAAmBnc,EACnBoc,WAAY,KACZC,QAAS,KACT2I,KAAM,KACNC,WAAYjlB,EACZklB,oBAAqB,KACrBC,iBAAkB,KAClBC,aAAc,KACdC,MAAO,KACPxT,KAAM3R,EACNolB,MAAO,KACP7G,cAAe,KACfnC,cAAe,KACfiJ,OAAQ,KACRC,UAAWxlB,EACXylB,UAAWzlB,EACX0lB,UAAW1lB,EACX2lB,cAAe,KACfC,oBAAqB,KACrBC,eAAgB,KAChBC,UAAW,KACXvmB,SAAUK,EACVmmB,EAAG,KACHC,OAAQ,KACR1T,eAAgB,KAChB2T,KAAM,KACNC,KAAM,KACN3T,IAAK3S,EACLsX,IAAKtX,EACL2c,gBAAiB,KACjB4J,YAAa,KACbC,UAAW,KACXC,mBAAoBzmB,EACpB0mB,iBAAkB1mB,EAClB2mB,cAAe3mB,EACf4mB,gBAAiB5mB,EACjB6mB,SAAU,KACVC,QAAS,KACTC,OAAQ,KACRC,OAAQ,KACRC,GAAI,KACJC,GAAI,KACJC,MAAO,KACPC,KAAM,KACNxK,eAAgB,KAChByK,KAAM,KACNC,MAAO,KACPC,aAAc,KACdC,iBAAkBpnB,EAClBqnB,iBAAkBrnB,EAClBsnB,aAAc,KACdC,QAAS,KACTC,YAAa,KACbC,aAAc,KACdC,MAAO,KACPC,MAAO,KACPC,YAAa,KACbnL,UAAW,KACXC,YAAa,KACbC,sBAAuB3c,EACvB4c,uBAAwB5c,EACxB6nB,OAAQ,KACRC,OAAQ,KACRjL,gBAAiBjd,EACjBkd,iBAAkB,KAClBC,cAAe,KACfC,eAAgB,KAChBC,iBAAkBjd,EAClBkd,cAAeld,EACfmd,YAAa,KACbnJ,MAAO,KACP+T,aAAc/nB,EACdgoB,aAAc,KACdC,oBAAqB,KACrBC,WAAY,KACZC,cAAe,KACfC,qBAAsB,KACtBC,eAAgBzoB,EAChBqU,SAAUjU,EACVsoB,YAAa,KACbpU,OAAQ,KACRqU,QAASvoB,EACTwoB,QAASxoB,EACTod,WAAY,KACZC,eAAgB,KAChBC,cAAe,KACfmL,WAAY,KACZ/J,cAAe,KACfvK,MAAO,KACPuU,kBAAmB,KACnBrU,KAAM,KACNmJ,OAAQ5d,EACR+oB,GAAI,KACJlmB,UAAW,KACX8a,gBAAiB,KACjBqL,GAAI,KACJC,GAAI,KACJpL,kBAAmBzd,EACnB0d,mBAAoB1d,EACpB8oB,QAAS,KACTnL,YAAa,KACbC,aAAc,KACdC,WAAY7d,EACZiB,OAAQ,KACR6c,YAAa9d,EACbie,cAAeje,EACfke,aAAc,KACdH,SAAU/d,EACVge,aAAche,EACd4X,QAAS,KACTuG,SAAUne,EACVoe,YAAape,EACbqe,YAAare,EACb+oB,QAAS,KACTC,WAAY,KACZC,WAAY,KACZzU,MAAO,KACP0U,OAAQ,KACR5K,YAAa,KACbC,YAAa,KACb4K,EAAG,KACHC,GAAI,KACJC,GAAI,KACJC,iBAAkB,KAClB9K,QAASxe,EACTupB,EAAG,KACHC,GAAI,KACJC,GAAI,KACJC,iBAAkB,KAClBC,EAAG,KACHC,WAAY,MAEdzpB,MAAO,MACPsC,UAAWuD,ICnjBA6jB,EAAQznB,EAAO,CAC1BC,WAAY,CACVynB,aAAc,KACdC,aAAc,KACdC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,WAAY,KACZC,UAAW,MAEbjqB,MAAO,QACPsC,UAAS,CAACqD,EAAGvG,IACJ,SAAWA,EAASwG,MAAM,GAAG1E,gBCX3BgpB,EAAQjoB,EAAO,CAC1BM,WAAY,CAAC4nB,WAAY,eACzBjoB,WAAY,CAACkoB,WAAY,KAAMF,MAAO,MACtClqB,MAAO,QACPsC,UAAWwD,ICLAukB,EAAMpoB,EAAO,CACxBC,WAAY,CAACooB,QAAS,KAAMC,QAAS,KAAMC,SAAU,MACrDxqB,MAAO,MACPsC,UAAS,CAACqD,EAAGvG,IACJ,OAASA,EAASwG,MAAM,GAAG1E,gBCKzB,EAAOW,EAAM,CAACY,EAAMsD,EAAU2jB,EAAOQ,EAAOG,GAAM,QAKlD,EAAMxoB,EAAM,CAACY,EAAM6V,EAASoR,EAAOQ,EAAOG,GAAM,OCNvDI,EAAa,SACbC,EAAoB,IAAIC,IAiE9B,SAASC,EAAoBC,EAAkB/L,EAAuB9d,IAmCtE,SAAmCA,GACjC,OAAa,MAATA,IAA2B,IAAVA,GAA6B,KAAVA,KAC1B,IAAVA,IACiB,iBAAVA,EAEa,UADHA,EAAME,eACkB,MAAVF,EAE5B8pB,QAAQ9pB,IACjB,CA1CM+pB,CAA0B/pB,GAG5B6pB,EAAQG,gBAAgBlM,GAFxB+L,EAAQI,aAAanM,EAAeA,EAIxC,CAEA,SAASoM,EAAmBL,EAAkBM,EAAsBnqB,GAClE,IACG6pB,EAAgBM,GAAgBnqB,CACnC,CAAE,MAAOoqB,GACPC,EAAoBR,EAASM,EAAcnqB,GAAO,EACpD,CACF,CAEA,SAASqqB,EAAoBR,EAAkB/L,EAAuB9d,EAAYsqB,GAChF,GAAa,MAATtqB,EAEF,YADA6pB,EAAQG,gBAAgBlM,GAI1B,MAAMyM,EAAcC,OAAOxqB,GAC3B,GAAIsqB,GAASxM,EAActc,SAAS,KAAM,CACxC,MAAO0V,GAAU4G,EAAc2M,MAAM,KACtB,UAAXvT,EACF2S,EAAQa,eAAe,+BAAgC5M,EAAeyM,GAEtEV,EAAQI,aAAanM,EAAeyM,EAExC,MACEV,EAAQI,aAAanM,EAAeyM,EAExC,CAaA,SAASI,EAAuBd,EAAkBlf,EAAc3K,EAAYsqB,GAE1E,GAoEuBM,EApEHf,EAoEqBgB,EApEGlgB,EAqExCmgB,SAASC,gBAAkBH,EACtB,CAAC,QAAS,iBAAkB,eAAgB,sBAChDppB,SAASqpB,GAED,cAATA,GAAiC,eAATA,GAGxBD,aAAeI,kBACjB,CAAC,cAAe,SAAU,eAAgB,UAAUxpB,SAASqpB,GA5E7D,OAmEJ,IAAyBD,EAAkBC,EA/DzC,GAAa,UAATlgB,EAAkB,CAEpB,GADKkf,EAAwBhX,MAAMoY,UAAUpB,EAAwBhX,MAAMoY,QAAU,IAChE,iBAAVjrB,EAAqB6pB,EAAwBhX,MAAMoY,QAAUjrB,OACnE,GAAIA,GAA0B,iBAAVA,EACvB,IAAK,MAAMkrB,KAAKlrB,EACT6pB,EAAwBhX,MAAMqY,KAAOlrB,EAAMkrB,KAAKrB,EAAwBhX,MAAMqY,GAAKlrB,EAAMkrB,IAGlG,MACF,CAEA,GAAa,QAATvgB,EAEF,YADI3K,UAAwC6pB,EAAgB9pB,IAAMC,IAIpE,GAAI2K,EAAKwgB,WAAW,SAElB,YA3FJ,SAA6BtB,EAAkB/L,EAAuB9d,GACpE,MAAMorB,GArByBC,EAqBUvN,EAAclZ,MAAM,IApBrDhF,QAAU,EAAUyrB,EAAInrB,cACzBmrB,EAAIZ,MAAM,KAAKa,KAAI,CAACC,EAAM9rB,IACrB,IAAVA,EAAc8rB,EAAKrrB,cAAgBqrB,EAAK9qB,OAAO,GAAGC,cAAgB6qB,EAAK3mB,MAAM,GAAG1E,gBAChFsrB,KAAK,IAJT,IAAiCH,EAsBlB,MAATrrB,SACM6pB,EAAwB4B,QAAQL,GAEvCvB,EAAwB4B,QAAQL,GAAYZ,OAAOxqB,EAExD,CAmFI0rB,CAAoB7B,EAASlf,EAAM3K,GAIrC,GAAI2K,EAAKwgB,WAAW,MAElB,YAvFJ,SAAyBtB,EAAkBlf,EAAc3K,GAClD2K,EAAKwgB,WAAW,QAEhBnrB,GAA0B,mBAAVA,EAEO,iBAAVA,IACZA,EAAO6pB,EAAQI,aAAatf,EAAM3K,GACjC6pB,EAAQG,gBAAgBrf,IAH5Bkf,EAAgBlf,GAAQ3K,EAK7B,CA6EI2rB,CAAgB9B,EAASlf,EAAM3K,GAKjC,KAAyB,UAApB6pB,EAAQ+B,SAA2C,aAApB/B,EAAQ+B,SAA8C,WAApB/B,EAAQ+B,SAClE,UAATjhB,GAA6B,aAATA,GAAgC,kBAATA,GAE5C,YADAuf,EAAmBL,EAASlf,EAAM3K,GAKpC,GAAwB,UAApB6pB,EAAQ+B,SAAgC,YAATjhB,EAGjC,OAFAuf,EAAmBL,EAASlf,EAAM3K,QAClC4pB,EAAoBC,EAASlf,EAAM3K,GAKrC,MAAMqB,EA9HR,SAAyBsJ,EAAc2f,GACrC,MAAMuB,EAAW,GAAGlhB,KAAQ2f,IAC5B,IAAIjpB,EAAOqoB,EAAkBoC,IAAID,GAKjC,YAJa5sB,IAAToC,IACFA,EbNG,SAAc0qB,EAAQ/rB,GAC3B,MAAMY,EAASX,EAAUD,GACzB,IAAI5B,EAAW4B,EACXgsB,EAAO9tB,EAEX,GAAI0C,KAAUmrB,EAAOnrB,OACnB,OAAOmrB,EAAO3tB,SAAS2tB,EAAOnrB,OAAOA,IAGvC,GAAIA,EAAOhB,OAAS,GAA4B,SAAvBgB,EAAOgE,MAAM,EAAG,IAAiBvE,EAAM4rB,KAAKjsB,GAAQ,CAE3E,GAAwB,MAApBA,EAAMS,OAAO,GAAY,CAE3B,MAAMyrB,EAAOlsB,EAAM4E,MAAM,GAAGunB,QAAQ/rB,EAAMI,GAC1CpC,EAAW,OAAS8tB,EAAKzrB,OAAO,GAAGC,cAAgBwrB,EAAKtnB,MAAM,EAChE,KAAO,CAEL,MAAMsnB,EAAOlsB,EAAM4E,MAAM,GAEzB,IAAKxE,EAAK6rB,KAAKC,GAAO,CACpB,IAAIE,EAASF,EAAKC,QAAQhsB,EAAKG,GAEN,MAArB8rB,EAAO3rB,OAAO,KAChB2rB,EAAS,IAAMA,GAGjBpsB,EAAQ,OAASosB,CACnB,CACF,CAEAJ,EAAOzsB,CACT,CAEA,OAAO,IAAIysB,EAAK5tB,EAAU4B,EAC5B,Ca5BWqsB,CAAK/B,EAAQ,EAAM,EAAM3f,IAAS,KACzC+e,EAAkB4C,IAAIT,EAAUxqB,IAE3BA,CACT,CAsHekrB,CAAgB5hB,EAAM2f,GAC/BjpB,EACEA,EAAK7C,SAAW6C,EAAKvC,kBACvB8qB,EAAoBC,EAASxoB,EAAKhD,UAAW2B,GACpCqB,EAAKzC,kBAAoB0rB,EAClCJ,EAAmBL,EAASxoB,EAAKjD,SAAU4B,GAE3CqqB,EAAoBR,EAASxoB,EAAKhD,UAAW2B,EAAOsqB,GAIlD3f,EAAKwgB,WAAW,UAAqB,SAATxgB,EAC9B0f,EAAoBR,EAASlf,EAAM3K,EAAOsqB,GACjC3f,KAAQkf,QAAsC5qB,IAA1B4qB,EAAgBlf,GAC7Cuf,EAAmBL,EAASlf,EAAM3K,GAElCqqB,EAAoBR,EAASlf,EAAM3K,EAAOsqB,EAGhD,CAkBA,SAASkC,EAAqB7hB,GAC5B,MAAO,wBAAwBshB,KAAKthB,KACjCA,EAAKnJ,SAAS,OAASmJ,EAAKnJ,SAAS,OAASmJ,EAAKnJ,SAAS,OAASmJ,EAAKnJ,SAAS,IACxF,CAIO,SAASirB,EAAY5C,EAAkB6C,EAA+BpC,GAE3E,MACMqC,EA3MR,SAAoBC,EAAkCC,GAMpD,GALIA,IACFA,EAAgB,MAAIA,EAAgB,OAAKA,EAAoB,iBACtDA,EAAoB,YAGxBD,GAA6C,IAAjCvtB,OAAOC,KAAKstB,GAAUhtB,OAAc,OAAOitB,GAAY,CAAC,EACzE,IAAKA,GAA6C,IAAjCxtB,OAAOC,KAAKutB,GAAUjtB,OAAc,CACnD,MAAM8sB,EAAgC,CAAC,EAEvC,OADArtB,OAAOC,KAAKstB,GAAUE,SAAQC,GAAKL,EAAMK,GAAK,OACvCL,CACT,CAEA,MAAMA,EAAgC,CAAC,EAKvC,OAJArtB,OAAOC,KAAKstB,GAAUE,SAAQC,IACtBA,KAAKF,IAAWH,EAAMK,GAAK,KAAI,IAEvC1tB,OAAOC,KAAKutB,GAAUC,SAAQC,GAAKL,EAAMK,GAAKF,EAASE,KAChDL,CACT,CAwLiBM,CADAnD,EAAQJ,IAAe,CAAC,EACLiD,GAClC7C,EAAQJ,GAAciD,GAAS,CAAC,EAMlC,SACE7C,EACAoD,EACAC,EACA5C,GAEA,IAAK,MAAM3f,KAAQsiB,EACbT,EAAqB7hB,IACvBggB,EAAuBd,EAASlf,EAAMsiB,EAAYtiB,GAAO2f,GAKzD2C,GAA6C,mBAAvBA,EAAiB,KACzCE,OAAOC,uBAAsB,IAAMH,EAAiB,IAAEpD,IAE1D,CApBEwD,CAAyBxD,EAAS8C,EAAQD,EAAOpC,EACnD,CC5KO,SAASgD,EAASZ,KAAUa,GACjC,OAAOC,EAAQD,EACjB,CAEA,SAASC,EAAQD,GACf,MAAME,EAAK,GACLC,EAAQC,IACRA,SAAuC,KAANA,IAAkB,IAANA,GAC/CF,EAAGC,KAAmB,mBAANC,GAAiC,iBAANA,EAAkBA,EAAI,GAAGA,IACtE,EASF,OAPAJ,GAAYA,EAAST,SAAQa,IACvBC,MAAMC,QAAQF,GAChBA,EAAEb,SAAQgB,GAAKJ,EAAKI,KAEpBJ,EAAKC,EACP,IAEKF,CACT,CAEA,MAAMM,EAAuC,CAAC,EAC9C,IAAIC,EAAiB,EAuBd,SAASC,EAAcC,EAA6BxB,KAAea,GACxE,MAAME,EAAKD,EAAQD,GACnB,GAAmB,iBAARW,EAAkB,MAAO,CAAEA,MAAKxB,QAAOa,SAAUE,GACvD,GAAIG,MAAMC,QAAQK,GAAM,OAAOA,EAC/B,QAAYjvB,IAARivB,GAAqBX,EAAU,OAAOE,EAC1C,GAAIpuB,OAAO8uB,eAAeD,GAAKE,oBAAqB,MAAO,CAAEF,MAAKxB,QAAOa,SAAUE,GACnF,GAAmB,mBAARS,EAAoB,OAAOA,EAAIxB,EAAOe,GACjD,MAAM,IAAIY,MAAM,uBAAuBH,IAC9C,CAEO,MAAMI,EAAgB,CAACzE,EAA2B0E,EAAaC,EAAY,CAAC,KAEpE,MAATD,IAA2B,IAAVA,GAOvB,SAAgB1E,EAAkB0E,EAAaE,EAAS,CAAC,GAEvD,GAAa,MAATF,IAA2B,IAAVA,EAAiB,OAEtC,GADAA,EAAQG,GAAgBH,EAAOE,IAC1B5E,EAAS,OACd,MAAMS,EAA6B,QAArBT,EAAQ8E,SAClBf,MAAMC,QAAQU,GAChBK,EAAe/E,EAAS0E,EAAOjE,GAE/BsE,EAAe/E,EAAS,CAAC0E,GAAQjE,EAErC,CAdEuE,CAH+B,iBAAZhF,GAAwBA,EACzCiB,SAASgE,eAAejF,IAAYiB,SAASiE,cAAclF,GAAWA,EACxE0E,GAAQ,EAAAS,EAAA,GAAUT,EAAOC,GACPA,EAAU,EAuB9B,SAASS,EAAOpF,EAAkBqF,EAAa5E,GAE7CA,EAAQA,GAAsB,QAAb4E,EAAKhB,IATxB,SAAciB,EAAaD,GAEzB,MAAME,EAAOD,EAAGR,SACVU,EAAO,GAAGH,EAAKhB,KAAO,KAC5B,OAAOkB,EAAK1uB,gBAAkB2uB,EAAK3uB,aACrC,CAKO4uB,CAAKzF,EAASqF,IAInBN,EAAe/E,EAASqF,EAAK3B,SAAUjD,GACvCmC,EAAY5C,EAASqF,EAAKxC,MAAOpC,IAJ/BT,EAAQ0F,WAAWC,aAAa,GAAON,EAAM5E,GAAQT,EAKzD,CAEA,SAAS+E,EAAe/E,EAAS0D,EAAUjD,GACzC,MAAMmF,EAAU5F,EAAQ6F,YAAY9vB,QAAU,EACxC+vB,EAAUpC,GAAU3tB,QAAU,EAC9BgwB,EAAMC,KAAKtlB,IAAIklB,EAASE,GAC9B,IAAK,IAAI7B,EAAI,EAAGA,EAAI8B,EAAK9B,IAAK,CAC5B,MAAMgC,EAAQvC,EAASO,GACjBqB,EAAKtF,EAAQ6F,WAAW5B,GAC9B,GAAqB,iBAAVgC,EACLX,EAAGY,cAAgBD,IACD,IAAhBX,EAAGa,SACLb,EAAGc,UAAYH,EAEfjG,EAAQ2F,aAAaU,GAAWJ,GAAQX,SAGvC,GAAIW,aAAiBK,aAAeL,aAAiBM,WAC1DvG,EAAQwG,aAAaP,EAAOX,OACvB,CACL,MAAMpvB,EAAM+vB,EAAMpD,OAASoD,EAAMpD,MAAW,IAC5C,GAAI3sB,EACF,GAAIovB,EAAGpvB,MAAQA,EACbkvB,EAAOpF,EAAQ6F,WAAW5B,GAAIgC,EAAOxF,OAChC,CAEL,MAAMgG,EAAMvC,EAAShuB,GACjBuwB,GAEFzG,EAAQwG,aAAaC,EAAKnB,GAE1BF,EAAOpF,EAAQ6F,WAAW5B,GAAIgC,EAAOxF,IAErCT,EAAQ2F,aAAa,GAAOM,EAAOxF,GAAQ6E,EAE/C,MAEAF,EAAOpF,EAAQ6F,WAAW5B,GAAIgC,EAAOxF,EAEzC,CACF,CAEA,IAAIiG,EAAI1G,EAAQ6F,YAAY9vB,QAAU,EACtC,KAAO2wB,EAAIX,GACT/F,EAAQ2G,YAAY3G,EAAQ4G,WAC5BF,IAGF,GAAIZ,EAAUC,EAAK,CACjB,MAAM5Q,EAAI8L,SAAS4F,yBACnB,IAAK,IAAI5C,EAAI8B,EAAK9B,EAAIP,EAAS3tB,OAAQkuB,IACrC9O,EAAE2R,YAAY,GAAOpD,EAASO,GAAIxD,IAEpCT,EAAQ8G,YAAY3R,EACtB,CACF,CAEO,MAAM4R,EAAY7rB,IACvB,MAAM8rB,EAAM/F,SAASmD,cAAc,WAEnC,OADA4C,EAAIC,mBAAmB,aAAc/rB,GAC9B6oB,MAAMpN,KAAKqQ,EAAItD,SAAS,EAGjC,SAAS2C,GAAWhB,GAClB,GAAgC,IAA5BA,GAAM6B,QAAQ,UAAiB,CACjC,MAAMF,EAAM/F,SAASmD,cAAc,OAEnC,OADA4C,EAAIC,mBAAmB,aAAc5B,EAAK8B,UAAU,IAC7CH,CACT,CACE,OAAO/F,SAASmG,eAAe/B,GAAQ,GAE3C,CAEA,SAAS,GAAOA,EAAiD5E,GAE/D,GAAK4E,aAAgBiB,aAAiBjB,aAAgBkB,WAAa,OAAOlB,EAC1E,GAAoB,iBAATA,EAAmB,OAAOgB,GAAWhB,GAChD,IAAKA,EAAKhB,KAA4B,mBAAbgB,EAAKhB,IAAqB,OAAOgC,GAAWgB,KAAKC,UAAUjC,IAEpF,MAAMrF,GADNS,EAAQA,GAAsB,QAAb4E,EAAKhB,KAElBpD,SAASsG,gBAAgB,6BAA8BlC,EAAKhB,KAC5DpD,SAASmD,cAAciB,EAAKhB,KAehC,OAbAzB,EAAY5C,EAASqF,EAAKxC,MAAOpC,GAC7B4E,EAAK3B,UAAU2B,EAAK3B,SAAST,SAAQgD,GAASjG,EAAQ8G,YAAY,GAAOb,EAAOxF,MAEhF4E,EAAKxC,YAAqCztB,IAA3BiwB,EAAKxC,MAAc3sB,MACnC8pB,EAAgB9pB,IAAOmvB,EAAKxC,MAAc3sB,IAC3CguB,EAAUmB,EAAKxC,MAAc3sB,KAAO8pB,IAG9BmE,GAjKgB,MAI1B,WACE,KAAI3uB,OAAOC,KAAKyuB,GAAUnuB,QAJL,KAMrB,IAAK,MAAOG,EAAK8pB,KAAYxqB,OAAO+B,QAAQ2sB,GACrClE,EAAQwH,oBACJtD,EAAShuB,EAGtB,CAsJMuxB,GACAtD,EAAiB,IAGdnE,CACT,CA6BA,SAAS6E,GAAgBQ,EAAMT,EAAQ8C,EAAM,GAC3C,GAAoB,iBAATrC,EAAmB,OAAOA,EACrC,GAAItB,MAAMC,QAAQqB,GAAO,OAAOA,EAAK5D,KAAIwE,GAASpB,GAAgBoB,EAAOrB,EAAQ8C,OACjF,IAAIC,EAAOtC,EAIX,GAHIA,GAA4B,mBAAbA,EAAKhB,KAAsB7uB,OAAO8uB,eAAee,EAAKhB,KAAKE,sBAC5EoD,EAhCJ,SAA0BtC,EAAMT,EAAQ8C,GACtC,MAAM,IAAErD,EAAG,MAAExB,EAAK,SAAEa,GAAa2B,EACjC,IAAInvB,EAAM,IAAIwxB,IACV1oB,EAAK6jB,GAASA,EAAU,GACvB7jB,EACA9I,EAAM8I,EADFA,EAAK,IAAI0oB,IAAME,KAAKC,QAE7B,IAAIC,EAAQ,UACRjF,GAASA,EAAU,KACrBiF,EAAQjF,EAAU,UACXA,EAAU,IAEd+B,EAAOmD,mBAAkBnD,EAAOmD,iBAAmB,CAAC,GACzD,IAAIpD,EAAYC,EAAOmD,iBAAiB7xB,GACxC,GAAKyuB,GAAeA,aAAqBN,GAASM,EAAU3E,QAI1D2E,EAAUqD,YAAYrD,EAAUsD,WAJmC,CACnE,MAAMjI,EAAUiB,SAASmD,cAAc0D,GACvCnD,EAAYC,EAAOmD,iBAAiB7xB,GAAO,IAAImuB,EAAI,IAAKxB,EAAOa,aAAYwE,MAAMlI,EAAS,CAAEgF,QAAQ,GACtG,CAGA,GAAIL,EAAUwD,QAAS,CACrB,MAAMC,EAAYzD,EAAUwD,QAAQtF,EAAOa,EAAUiB,EAAUsD,YACzC,IAAdG,GAA8BzD,EAAU0D,SAASD,EAC3D,CAEA,OADAxF,EAAY+B,EAAU3E,QAAS6C,GAAO,GAC/B8B,EAAU3E,OACnB,CAOWsI,CAAiBjD,EAAMT,EAAQ8C,IAEpCC,GAAQ5D,MAAMC,QAAQ2D,EAAKjE,UAAW,CACxC,MAAM6E,EAAaZ,EAAK9E,OAAO2F,WAC/B,GAAID,EAAY,CACd,IAAItE,EAAI,EACR0D,EAAKjE,SAAWiE,EAAKjE,SAASjC,KAAIwE,GAASpB,GAAgBoB,EAAOsC,EAAYtE,MAChF,MACE0D,EAAKjE,SAAWiE,EAAKjE,SAASjC,KAAIwE,GAASpB,GAAgBoB,EAAOrB,EAAQ8C,MAE9E,CACA,OAAOC,CACT,C,gBC/QO,SAASc,EAAqDzd,GACnE,OAAOA,GAAO9B,kBAAkBod,YAActb,EAAM9B,OAAc,IACpE,C,kDCJO,MAGMwf,EAAwB,e,uDCuCrC,MAAMC,EAAgB,CAAChE,EAAW7jB,KACxBA,EAAO6jB,EAAiB,MAAE7jB,GAAQ6jB,EAAiB,QAAM,GAG7DiE,EAAgB,CAACjE,EAAW7jB,EAAM3K,KACtC,GAAI2K,EAAM,CACR,MAAMmnB,EAAQtD,EAAiB,OAAK,CAAC,EACrCsD,EAAMnnB,GAAQ3K,EACdwuB,EAAU0D,SAASJ,EACrB,MACEtD,EAAU0D,SAASlyB,EACrB,EA8FIgvB,EAAY,CAACwC,EAAMhD,KACvB,GAAIZ,MAAMC,QAAQ2D,GAChB,OAAOA,EAAKlG,KAAIzB,GAAWmF,EAAUnF,EAAS2E,KACzC,CACL,IAAI,KAAEtb,EAAI,IAAEgb,EAAG,MAAExB,EAAK,SAAEa,GAAaiE,EAUrC,OATAtD,EAAMA,GAAOhb,EACbqa,EAAWA,GAAYb,GAAOa,SAC1Bb,GAAOrtB,OAAOC,KAAKotB,GAAOI,SAAQ/sB,IAChCA,EAAIorB,WAAW,OAnGD,EAACprB,EAAa2sB,EAAWwB,EAAKM,KACpD,GAAIzuB,EAAIorB,WAAW,OAAQ,CACzB,MAAMtW,EAAQ6X,EAAM3sB,GAEpB,GADAA,EAAMA,EAAIixB,UAAU,GACC,kBAAVnc,EACT6X,EAAM3sB,GAAO2yB,GAAKlE,EAAUmE,IAAMnE,EAAUmE,IAAI5yB,EAAK2yB,GAAK,IAAIC,IAAI5yB,EAAK2yB,QAClE,GAAqB,iBAAV7d,EAChB6X,EAAM3sB,GAAO2yB,GAAKlE,EAAUmE,IAAMnE,EAAUmE,IAAI9d,EAAO6d,GAAK,IAAIC,IAAI9d,EAAO6d,QACtE,GAAqB,mBAAV7d,EAChB6X,EAAM3sB,GAAO2yB,GAAKlE,EAAU0D,SAASrd,EAAM2Z,EAAUsD,MAAOY,SACvD,GAAI9E,MAAMC,QAAQhZ,GAAQ,CAC/B,MAAOmM,KAAY+L,GAAKlY,EACD,iBAAZmM,EACT0L,EAAM3sB,GAAO2yB,GAAKlE,EAAUmE,IAAMnE,EAAUmE,IAAI3R,KAAY+L,EAAG2F,GAAK,IAAIC,IAAI3R,KAAY+L,EAAG2F,GAC/D,mBAAZ1R,IAChB0L,EAAM3sB,GAAO2yB,GAAKlE,EAAU0D,SAASlR,EAAQwN,EAAUsD,SAAU/E,EAAG2F,IAExE,CAEF,MAAO,GAAY,UAAR3yB,EAAiB,CAC1B,MAAMmT,EAAOwZ,EAAY,MAAK,OACxB/hB,EAA6B,iBAAf+hB,EAAM3sB,GAAoB2sB,EAAM3sB,GAAO2sB,EAAY,KACvE,GAAY,UAARwB,EACF,OAAQhb,GACN,IAAK,WACHwZ,EAAe,QAAI8F,EAAchE,EAAW7jB,GAC5C+hB,EAAe,QAAIgG,IACjB,MAAM3f,GAAS,QAAkC2f,GAC7C3f,GACF0f,EAAcjE,EAAW7jB,GAAQoI,EAAOpI,KAAMoI,EAAOxM,QACvD,EAEF,MACF,IAAK,QACHmmB,EAAe,QAAI8F,EAAchE,EAAW7jB,KAAU+hB,EAAa,MACnEA,EAAe,QAAIgG,IACjB,MAAM3f,GAAS,QAAkC2f,GAC7C3f,GACF0f,EAAcjE,EAAW7jB,GAAQoI,EAAOpI,KAAMoI,EAAO/S,MACvD,EAEF,MACF,IAAK,SACL,IAAK,QACH0sB,EAAa,MAAI8F,EAAchE,EAAW7jB,GAC1C+hB,EAAe,QAAIgG,IACjB,MAAM3f,GAAS,QAAkC2f,GAC7C3f,GACF0f,EAAcjE,EAAW7jB,GAAQoI,EAAOpI,KAAMioB,OAAO7f,EAAO/S,OAC9D,EAEF,MACF,QACE0sB,EAAa,MAAI8F,EAAchE,EAAW7jB,GAC1C+hB,EAAe,QAAIgG,IACjB,MAAM3f,GAAS,QAAkC2f,GAC7C3f,GACF0f,EAAcjE,EAAW7jB,GAAQoI,EAAOpI,KAAMoI,EAAO/S,MACvD,MAGW,WAARkuB,GACTxB,EAAa,MAAI8F,EAAchE,EAAW7jB,GAC1C+hB,EAAgB,SAAIgG,IAClB,MAAM3f,GAAS,QAAmC2f,GAC9C3f,IAAWA,EAAOtI,UACpBgoB,EAAcjE,EAAW7jB,GAAQoI,EAAOpI,KAAMoI,EAAO/S,MACvD,GAEe,WAARkuB,GACTxB,EAAgB,SAAI8F,EAAchE,EAAW7jB,GAC7C+hB,EAAe,QAAIgG,IACjB,MAAM3f,GAAS,QAAmC2f,GAC9C3f,GACF0f,EAAcjE,EAAW7jB,GAASoI,EAAepI,KAAMoI,EAAOlB,SAChE,GAEe,aAARqc,IACTxB,EAAiB,UAAI8F,EAAchE,EAAW7jB,GAC9C+hB,EAAe,QAAIgG,IACjB,MAAM3f,GAAS,QAAqC2f,GAChD3f,GACF0f,EAAcjE,EAAW7jB,GAAQoI,EAAOpI,KAAMoI,EAAO/S,MACvD,EAGN,MACE,IAAI2yB,IAAI,IAAK,CAAE5yB,MAAKmuB,MAAKxB,QAAO8B,aAClC,EAYMqE,CAAgB9yB,EAAK2sB,EAAOwB,EAAKM,UAC1B9B,EAAM3sB,GACf,IAEEwtB,GAAUyB,EAAUzB,EAAUiB,GAC3BgD,CACT,GAGF,G,8CClBA,MAAMsB,EAAiB,IACvB,IAAIC,EACJ,MAAMp1B,EAA0B,oBAAXwvB,OAAyBA,YAC1B,IAAX,EAAA6F,EAAyB,EAAAA,EACd,oBAATC,KAAuBA,KAAO,CAAC,EAEtCt1B,EAAKu1B,KAAOv1B,EAAKw1B,gBACnBJ,EAAOp1B,EAAKu1B,KAEZH,EAAO,IAtHF,MAIL,WAAA50B,GACEF,KAAKm1B,QAAU,CAAC,CAClB,CAEA,EAAAC,CAAG1oB,EAAc2oB,EAA6BC,EAAwB,CAAC,GACrEt1B,KAAKm1B,QAAQzoB,GAAQ1M,KAAKm1B,QAAQzoB,IAAS,GAC3C1M,KAAKm1B,QAAQzoB,GAAM+iB,KAAK,CAAE4F,KAAIC,WAChC,CAEA,GAAAC,CAAI7oB,EAAc2oB,GAChB,MAAMG,EAAcx1B,KAAKm1B,QAAQzoB,IAAS,GAE1C1M,KAAKm1B,QAAQzoB,GAAQ8oB,EAAYxT,QAAQyT,GAAQA,EAAIJ,KAAOA,GAC9D,CAEA,IAAAjH,CAAK1hB,GACH,OAAO1M,KAAKm1B,QAAQzoB,EACtB,CAEA,GAAAgoB,CAAIhoB,KAAiBgpB,GACnB,MAAMF,EAAcx1B,KAAK21B,eAAejpB,EAAM1M,KAAKm1B,SAoBnD,OAnBAS,QAAQC,OAAOL,GAAeA,EAAY7zB,OAAS,EAAG,4BAA8B+K,GACpF8oB,EAAY3G,SAAS4G,IACnB,MAAM,GAAEJ,EAAE,QAAEC,GAAYG,EACxB,IAAKJ,GAAoB,mBAAPA,EAEhB,OADAO,QAAQzJ,MAAM,6BAA6Bzf,wBAA4B2oB,IAChE,EAET,GAAIC,EAAQQ,MACV91B,KAAK81B,MAAMppB,EAAM2oB,EAAIK,EAAMJ,QAE3B,IACEl0B,OAAOC,KAAKi0B,GAAS3zB,OAAS,EAAI0zB,EAAGU,MAAM/1B,KAAM,IAAI01B,EAAMJ,IAAYD,EAAGU,MAAM/1B,KAAM01B,EACxF,CAAE,MAAOvJ,GACPyJ,QAAQzJ,MAAM,+BAA+Bzf,MAAUyf,EACzD,CAEF,OAAQsJ,EAAIH,QAAQU,IAAI,IAGnBR,EAAY7zB,MACrB,CAEA,IAAAq0B,CAAKtpB,EAAc2oB,EAA6BC,EAAwB,CAAC,GACvEt1B,KAAKo1B,GAAG1oB,EAAM2oB,EAAI,IAAKC,EAASU,MAAM,GACxC,CAEQ,KAAAF,CAAMppB,EAAc2oB,EAA6BK,EAAaJ,GAChEA,EAAQW,IAAIC,aAAaZ,EAAQW,IACrCX,EAAQW,GAAKE,YAAW,KACtBD,aAAaZ,EAAQW,IACrB,IACE70B,OAAOC,KAAKi0B,GAAS3zB,OAAS,EAAI0zB,EAAGU,MAAM/1B,KAAM,IAAI01B,EAAMJ,IAAYD,EAAGU,MAAM/1B,KAAM01B,EACxF,CAAE,MAAOvJ,GACPyJ,QAAQzJ,MAAM,uCAAuCzf,MAAUyf,EACjE,IACCmJ,EAAQQ,MACb,CAEA,QAAAM,CAAS1pB,KAAiBgpB,GACxB,MAAMF,EAAcx1B,KAAK21B,eAAejpB,EAAM1M,KAAKm1B,SACnDS,QAAQC,OAAOL,GAAeA,EAAY7zB,OAAS,EAAG,4BAA8B+K,GACpF,MAAM2pB,EAAWb,EAAYnI,KAAIoI,IAC/B,MAAM,GAAEJ,EAAE,QAAEC,GAAYG,EACxB,IAAKJ,GAAoB,mBAAPA,EAEhB,OADAO,QAAQzJ,MAAM,mCAAmCzf,wBAA4B2oB,GACtEiB,QAAQC,QAAQ,MAEzB,IACE,OAAOn1B,OAAOC,KAAKi0B,GAAS3zB,OAAS,EAAI0zB,EAAGU,MAAM/1B,KAAM,IAAI01B,EAAMJ,IAAYD,EAAGU,MAAM/1B,KAAM01B,EAC/F,CAAE,MAAOvJ,GAEP,OADAyJ,QAAQzJ,MAAM,qCAAqCzf,MAAUyf,GACtDmK,QAAQE,OAAOrK,EACxB,KAEF,OAAOmK,QAAQG,IAAIJ,EACrB,CAKA,KAAAK,CAAMhqB,KAAiBgpB,GAErB,OADAE,QAAQe,KAAK,0DACN32B,KAAKo2B,SAAS1pB,KAASgpB,EAChC,CAEQ,cAAAC,CAAejpB,EAAckqB,GACnC,MAAMpB,EAAcoB,EAAOlqB,IAAS,GAcpC,OATAkqB,EAAOlqB,GAAQ8oB,EAAYxT,QAAQyT,IACzBA,EAAIH,QAAQU,OAEtB50B,OAAOC,KAAKu1B,GAAQ5U,QAAO6U,GAAOA,EAAIC,SAAS,MAAQpqB,EAAKwgB,WAAW2J,EAAI3I,QAAQ,IAAK,OACrF6I,MAAK,CAACC,EAAGC,IAAMA,EAAEt1B,OAASq1B,EAAEr1B,SAC5BktB,SAAQgI,GAAOrB,EAAY/F,QAAQmH,EAAOC,GAAKxJ,KAAIoI,IAAO,IACtDA,EACHH,QAAS,IAAKG,EAAIH,QAAS1e,MAAOlK,UAE/B8oB,CACT,GAaA91B,EAAKu1B,IAAMH,EACXp1B,EAAKw1B,gBAAkBL,GAEzB,S,GC3KIqC,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBp2B,IAAjBq2B,EACH,OAAOA,EAAaz3B,QAGrB,IAAIC,EAASq3B,EAAyBE,GAAY,CAGjDx3B,QAAS,CAAC,GAOX,OAHA03B,EAAoBF,GAAUv3B,EAAQA,EAAOD,QAASu3B,GAG/Ct3B,EAAOD,OACf,CCrBAu3B,EAAoBpW,EAAI,CAACnhB,EAASkD,KACjC,IAAI,IAAIhB,KAAOgB,EACXq0B,EAAoBI,EAAEz0B,EAAYhB,KAASq1B,EAAoBI,EAAE33B,EAASkC,IAC5EV,OAAOo2B,eAAe53B,EAASkC,EAAK,CAAE21B,YAAY,EAAM5J,IAAK/qB,EAAWhB,IAE1E,ECNDq1B,EAAoBpC,EAAI,WACvB,GAA0B,iBAAf2C,WAAyB,OAAOA,WAC3C,IACC,OAAO13B,MAAQ,IAAI23B,SAAS,cAAb,EAChB,CAAE,MAAOlD,GACR,GAAsB,iBAAXvF,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxBiI,EAAoBI,EAAI,CAACK,EAAKhL,IAAUxrB,OAAOf,UAAUw3B,eAAeC,KAAKF,EAAKhL,GCClFuK,EAAoBxQ,EAAK/mB,IACH,oBAAXm4B,QAA0BA,OAAOC,aAC1C52B,OAAOo2B,eAAe53B,EAASm4B,OAAOC,YAAa,CAAEj2B,MAAO,WAE7DX,OAAOo2B,eAAe53B,EAAS,aAAc,CAAEmC,OAAO,GAAO,E","sources":["webpack://apprun/webpack/universalModuleDefinition","webpack://apprun/./node_modules/property-information/lib/util/info.js","webpack://apprun/./node_modules/property-information/lib/util/types.js","webpack://apprun/./node_modules/property-information/lib/util/defined-info.js","webpack://apprun/./node_modules/property-information/lib/normalize.js","webpack://apprun/./node_modules/property-information/lib/find.js","webpack://apprun/./node_modules/property-information/lib/util/schema.js","webpack://apprun/./node_modules/property-information/lib/util/merge.js","webpack://apprun/./node_modules/property-information/lib/util/create.js","webpack://apprun/./node_modules/property-information/lib/aria.js","webpack://apprun/./node_modules/property-information/lib/util/case-sensitive-transform.js","webpack://apprun/./node_modules/property-information/lib/util/case-insensitive-transform.js","webpack://apprun/./node_modules/property-information/lib/html.js","webpack://apprun/./node_modules/property-information/lib/svg.js","webpack://apprun/./node_modules/property-information/lib/xlink.js","webpack://apprun/./node_modules/property-information/lib/xmlns.js","webpack://apprun/./node_modules/property-information/lib/xml.js","webpack://apprun/./node_modules/property-information/index.js","webpack://apprun/./src/vdom-my-prop-attr.ts","webpack://apprun/./src/vdom-my.ts","webpack://apprun/./src/type-utils.ts","webpack://apprun/./src/version.ts","webpack://apprun/./src/directive.ts","webpack://apprun/./src/app.ts","webpack://apprun/webpack/bootstrap","webpack://apprun/webpack/runtime/define property getters","webpack://apprun/webpack/runtime/global","webpack://apprun/webpack/runtime/hasOwnProperty shorthand","webpack://apprun/webpack/runtime/make namespace object"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"apprun\"] = factory();\n\telse\n\t\troot[\"apprun\"] = factory();\n})(this, () => {\nreturn ","/**\n * @import {Info as InfoType} from 'property-information'\n */\n\n/** @type {InfoType} */\nexport class Info {\n /**\n * @param {string} property\n * Property.\n * @param {string} attribute\n * Attribute.\n * @returns\n * Info.\n */\n constructor(property, attribute) {\n this.attribute = attribute\n this.property = property\n }\n}\n\nInfo.prototype.attribute = ''\nInfo.prototype.booleanish = false\nInfo.prototype.boolean = false\nInfo.prototype.commaOrSpaceSeparated = false\nInfo.prototype.commaSeparated = false\nInfo.prototype.defined = false\nInfo.prototype.mustUseProperty = false\nInfo.prototype.number = false\nInfo.prototype.overloadedBoolean = false\nInfo.prototype.property = ''\nInfo.prototype.spaceSeparated = false\nInfo.prototype.space = undefined\n","let powers = 0\n\nexport const boolean = increment()\nexport const booleanish = increment()\nexport const overloadedBoolean = increment()\nexport const number = increment()\nexport const spaceSeparated = increment()\nexport const commaSeparated = increment()\nexport const commaOrSpaceSeparated = increment()\n\nfunction increment() {\n return 2 ** ++powers\n}\n","/**\n * @import {Space} from 'property-information'\n */\n\nimport {Info} from './info.js'\nimport * as types from './types.js'\n\nconst checks = /** @type {ReadonlyArray<keyof typeof types>} */ (\n Object.keys(types)\n)\n\nexport class DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * Property.\n * @param {string} attribute\n * Attribute.\n * @param {number | null | undefined} [mask]\n * Mask.\n * @param {Space | undefined} [space]\n * Space.\n * @returns\n * Info.\n */\n constructor(property, attribute, mask, space) {\n let index = -1\n\n super(property, attribute)\n\n mark(this, 'space', space)\n\n if (typeof mask === 'number') {\n while (++index < checks.length) {\n const check = checks[index]\n mark(this, checks[index], (mask & types[check]) === types[check])\n }\n }\n }\n}\n\nDefinedInfo.prototype.defined = true\n\n/**\n * @template {keyof DefinedInfo} Key\n * Key type.\n * @param {DefinedInfo} values\n * Info.\n * @param {Key} key\n * Key.\n * @param {DefinedInfo[Key]} value\n * Value.\n * @returns {undefined}\n * Nothing.\n */\nfunction mark(values, key, value) {\n if (value) {\n values[key] = value\n }\n}\n","/**\n * Get the cleaned case insensitive form of an attribute or property.\n *\n * @param {string} value\n * An attribute-like or property-like name.\n * @returns {string}\n * Value that can be used to look up the properly cased property on a\n * `Schema`.\n */\nexport function normalize(value) {\n return value.toLowerCase()\n}\n","/**\n * @import {Schema} from 'property-information'\n */\n\nimport {DefinedInfo} from './util/defined-info.js'\nimport {Info} from './util/info.js'\nimport {normalize} from './normalize.js'\n\nconst cap = /[A-Z]/g\nconst dash = /-[a-z]/g\nconst valid = /^data[-\\w.:]+$/i\n\n/**\n * Look up info on a property.\n *\n * In most cases the given `schema` contains info on the property.\n * All standard,\n * most legacy,\n * and some non-standard properties are supported.\n * For these cases,\n * the returned `Info` has hints about the value of the property.\n *\n * `name` can also be a valid data attribute or property,\n * in which case an `Info` object with the correctly cased `attribute` and\n * `property` is returned.\n *\n * `name` can be an unknown attribute,\n * in which case an `Info` object with `attribute` and `property` set to the\n * given name is returned.\n * It is not recommended to provide unsupported legacy or recently specced\n * properties.\n *\n *\n * @param {Schema} schema\n * Schema;\n * either the `html` or `svg` export.\n * @param {string} value\n * An attribute-like or property-like name;\n * it will be passed through `normalize` to hopefully find the correct info.\n * @returns {Info}\n * Info.\n */\nexport function find(schema, value) {\n const normal = normalize(value)\n let property = value\n let Type = Info\n\n if (normal in schema.normal) {\n return schema.property[schema.normal[normal]]\n }\n\n if (normal.length > 4 && normal.slice(0, 4) === 'data' && valid.test(value)) {\n // Attribute or property.\n if (value.charAt(4) === '-') {\n // Turn it into a property.\n const rest = value.slice(5).replace(dash, camelcase)\n property = 'data' + rest.charAt(0).toUpperCase() + rest.slice(1)\n } else {\n // Turn it into an attribute.\n const rest = value.slice(4)\n\n if (!dash.test(rest)) {\n let dashes = rest.replace(cap, kebab)\n\n if (dashes.charAt(0) !== '-') {\n dashes = '-' + dashes\n }\n\n value = 'data' + dashes\n }\n }\n\n Type = DefinedInfo\n }\n\n return new Type(property, value)\n}\n\n/**\n * @param {string} $0\n * Value.\n * @returns {string}\n * Kebab.\n */\nfunction kebab($0) {\n return '-' + $0.toLowerCase()\n}\n\n/**\n * @param {string} $0\n * Value.\n * @returns {string}\n * Camel.\n */\nfunction camelcase($0) {\n return $0.charAt(1).toUpperCase()\n}\n","/**\n * @import {Schema as SchemaType, Space} from 'property-information'\n */\n\n/** @type {SchemaType} */\nexport class Schema {\n /**\n * @param {SchemaType['property']} property\n * Property.\n * @param {SchemaType['normal']} normal\n * Normal.\n * @param {Space | undefined} [space]\n * Space.\n * @returns\n * Schema.\n */\n constructor(property, normal, space) {\n this.normal = normal\n this.property = property\n\n if (space) {\n this.space = space\n }\n }\n}\n\nSchema.prototype.normal = {}\nSchema.prototype.property = {}\nSchema.prototype.space = undefined\n","/**\n * @import {Info, Space} from 'property-information'\n */\n\nimport {Schema} from './schema.js'\n\n/**\n * @param {ReadonlyArray<Schema>} definitions\n * Definitions.\n * @param {Space | undefined} [space]\n * Space.\n * @returns {Schema}\n * Schema.\n */\nexport function merge(definitions, space) {\n /** @type {Record<string, Info>} */\n const property = {}\n /** @type {Record<string, string>} */\n const normal = {}\n\n for (const definition of definitions) {\n Object.assign(property, definition.property)\n Object.assign(normal, definition.normal)\n }\n\n return new Schema(property, normal, space)\n}\n","/**\n * @import {Info, Space} from 'property-information'\n */\n\n/**\n * @typedef Definition\n * Definition of a schema.\n * @property {Record<string, string> | undefined} [attributes]\n * Normalzed names to special attribute case.\n * @property {ReadonlyArray<string> | undefined} [mustUseProperty]\n * Normalized names that must be set as properties.\n * @property {Record<string, number | null>} properties\n * Property names to their types.\n * @property {Space | undefined} [space]\n * Space.\n * @property {Transform} transform\n * Transform a property name.\n */\n\n/**\n * @callback Transform\n * Transform.\n * @param {Record<string, string>} attributes\n * Attributes.\n * @param {string} property\n * Property.\n * @returns {string}\n * Attribute.\n */\n\nimport {normalize} from '../normalize.js'\nimport {DefinedInfo} from './defined-info.js'\nimport {Schema} from './schema.js'\n\n/**\n * @param {Definition} definition\n * Definition.\n * @returns {Schema}\n * Schema.\n */\nexport function create(definition) {\n /** @type {Record<string, Info>} */\n const properties = {}\n /** @type {Record<string, string>} */\n const normals = {}\n\n for (const [property, value] of Object.entries(definition.properties)) {\n const info = new DefinedInfo(\n property,\n definition.transform(definition.attributes || {}, property),\n value,\n definition.space\n )\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(property)\n ) {\n info.mustUseProperty = true\n }\n\n properties[property] = info\n\n normals[normalize(property)] = property\n normals[normalize(info.attribute)] = property\n }\n\n return new Schema(properties, normals, definition.space)\n}\n","import {create} from './util/create.js'\nimport {booleanish, number, spaceSeparated} from './util/types.js'\n\nexport const aria = create({\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n },\n transform(_, property) {\n return property === 'role'\n ? property\n : 'aria-' + property.slice(4).toLowerCase()\n }\n})\n","/**\n * @param {Record<string, string>} attributes\n * Attributes.\n * @param {string} attribute\n * Attribute.\n * @returns {string}\n * Transformed attribute.\n */\nexport function caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n","import {caseSensitiveTransform} from './case-sensitive-transform.js'\n\n/**\n * @param {Record<string, string>} attributes\n * Attributes.\n * @param {string} property\n * Property.\n * @returns {string}\n * Transformed property.\n */\nexport function caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n","import {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\nimport {create} from './util/create.js'\nimport {\n booleanish,\n boolean,\n commaSeparated,\n number,\n overloadedBoolean,\n spaceSeparated\n} from './util/types.js'\n\nexport const html = create({\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n blocking: spaceSeparated,\n capture: null,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n fetchPriority: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: overloadedBoolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: null,\n inert: boolean,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforeMatch: null,\n onBeforePrint: null,\n onBeforeToggle: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextLost: null,\n onContextMenu: null,\n onContextRestored: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onScrollEnd: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n popover: null,\n popoverTarget: null,\n popoverTargetAction: null,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shadowRootClonable: boolean,\n shadowRootDelegatesFocus: boolean,\n shadowRootMode: null,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: null,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n writingSuggestions: null,\n\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null, // Several. Use CSS `text-align` instead,\n aLink: null, // `<body>`. Use CSS `a:active {color}` instead\n archive: spaceSeparated, // `<object>`. List of URIs to archives\n axis: null, // `<td>` and `<th>`. Use `scope` on `<th>`\n background: null, // `<body>`. Use CSS `background-image` instead\n bgColor: null, // `<body>` and table elements. Use CSS `background-color` instead\n border: number, // `<table>`. Use CSS `border-width` instead,\n borderColor: null, // `<table>`. Use CSS `border-color` instead,\n bottomMargin: number, // `<body>`\n cellPadding: null, // `<table>`\n cellSpacing: null, // `<table>`\n char: null, // Several table elements. When `align=char`, sets the character to align on\n charOff: null, // Several table elements. When `char`, offsets the alignment\n classId: null, // `<object>`\n clear: null, // `<br>`. Use CSS `clear` instead\n code: null, // `<object>`\n codeBase: null, // `<object>`\n codeType: null, // `<object>`\n color: null, // `<font>` and `<hr>`. Use CSS instead\n compact: boolean, // Lists. Use CSS to reduce space between items instead\n declare: boolean, // `<object>`\n event: null, // `<script>`\n face: null, // `<font>`. Use CSS instead\n frame: null, // `<table>`\n frameBorder: null, // `<iframe>`. Use CSS `border` instead\n hSpace: number, // `<img>` and `<object>`\n leftMargin: number, // `<body>`\n link: null, // `<body>`. Use CSS `a:link {color: *}` instead\n longDesc: null, // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`\n lowSrc: null, // `<img>`. Use a `<picture>`\n marginHeight: number, // `<body>`\n marginWidth: number, // `<body>`\n noResize: boolean, // `<frame>`\n noHref: boolean, // `<area>`. Use no href instead of an explicit `nohref`\n noShade: boolean, // `<hr>`. Use background-color and height instead of borders\n noWrap: boolean, // `<td>` and `<th>`\n object: null, // `<applet>`\n profile: null, // `<head>`\n prompt: null, // `<isindex>`\n rev: null, // `<link>`\n rightMargin: number, // `<body>`\n rules: null, // `<table>`\n scheme: null, // `<meta>`\n scrolling: booleanish, // `<frame>`. Use overflow in the child context\n standby: null, // `<object>`\n summary: null, // `<table>`\n text: null, // `<body>`. Use CSS `color` instead\n topMargin: number, // `<body>`\n valueType: null, // `<param>`\n version: null, // `<html>`. Use a doctype.\n vAlign: null, // Several. Use CSS `vertical-align` instead\n vLink: null, // `<body>`. Use CSS `a:visited {color}` instead\n vSpace: number, // `<img>` and `<object>`\n\n // Non-standard Properties.\n allowTransparency: null,\n autoCorrect: null,\n autoSave: null,\n disablePictureInPicture: boolean,\n disableRemotePlayback: boolean,\n prefix: null,\n property: null,\n results: number,\n security: null,\n unselectable: null\n },\n space: 'html',\n transform: caseInsensitiveTransform\n})\n","import {caseSensitiveTransform} from './util/case-sensitive-transform.js'\nimport {create} from './util/create.js'\nimport {\n boolean,\n commaOrSpaceSeparated,\n commaSeparated,\n number,\n spaceSeparated\n} from './util/types.js'\n\nexport const svg = create({\n attributes: {\n accentHeight: 'accent-height',\n alignmentBaseline: 'alignment-baseline',\n arabicForm: 'arabic-form',\n baselineShift: 'baseline-shift',\n capHeight: 'cap-height',\n className: 'class',\n clipPath: 'clip-path',\n clipRule: 'clip-rule',\n colorInterpolation: 'color-interpolation',\n colorInterpolationFilters: 'color-interpolation-filters',\n colorProfile: 'color-profile',\n colorRendering: 'color-rendering',\n crossOrigin: 'crossorigin',\n dataType: 'datatype',\n dominantBaseline: 'dominant-baseline',\n enableBackground: 'enable-background',\n fillOpacity: 'fill-opacity',\n fillRule: 'fill-rule',\n floodColor: 'flood-color',\n floodOpacity: 'flood-opacity',\n fontFamily: 'font-family',\n fontSize: 'font-size',\n fontSizeAdjust: 'font-size-adjust',\n fontStretch: 'font-stretch',\n fontStyle: 'font-style',\n fontVariant: 'font-variant',\n fontWeight: 'font-weight',\n glyphName: 'glyph-name',\n glyphOrientationHorizontal: 'glyph-orientation-horizontal',\n glyphOrientationVertical: 'glyph-orientation-vertical',\n hrefLang: 'hreflang',\n horizAdvX: 'horiz-adv-x',\n horizOriginX: 'horiz-origin-x',\n horizOriginY: 'horiz-origin-y',\n imageRendering: 'image-rendering',\n letterSpacing: 'letter-spacing',\n lightingColor: 'lighting-color',\n markerEnd: 'marker-end',\n markerMid: 'marker-mid',\n markerStart: 'marker-start',\n navDown: 'nav-down',\n navDownLeft: 'nav-down-left',\n navDownRight: 'nav-down-right',\n navLeft: 'nav-left',\n navNext: 'nav-next',\n navPrev: 'nav-prev',\n navRight: 'nav-right',\n navUp: 'nav-up',\n navUpLeft: 'nav-up-left',\n navUpRight: 'nav-up-right',\n onAbort: 'onabort',\n onActivate: 'onactivate',\n onAfterPrint: 'onafterprint',\n onBeforePrint: 'onbeforeprint',\n onBegin: 'onbegin',\n onCancel: 'oncancel',\n onCanPlay: 'oncanplay',\n onCanPlayThrough: 'oncanplaythrough',\n onChange: 'onchange',\n onClick: 'onclick',\n onClose: 'onclose',\n onCopy: 'oncopy',\n onCueChange: 'oncuechange',\n onCut: 'oncut',\n onDblClick: 'ondblclick',\n onDrag: 'ondrag',\n onDragEnd: 'ondragend',\n onDragEnter: 'ondragenter',\n onDragExit: 'ondragexit',\n onDragLeave: 'ondragleave',\n onDragOver: 'ondragover',\n onDragStart: 'ondragstart',\n onDrop: 'ondrop',\n onDurationChange: 'ondurationchange',\n onEmptied: 'onemptied',\n onEnd: 'onend',\n onEnded: 'onended',\n onError: 'onerror',\n onFocus: 'onfocus',\n onFocusIn: 'onfocusin',\n onFocusOut: 'onfocusout',\n onHashChange: 'onhashchange',\n onInput: 'oninput',\n onInvalid: 'oninvalid',\n onKeyDown: 'onkeydown',\n onKeyPress: 'onkeypress',\n onKeyUp: 'onkeyup',\n onLoad: 'onload',\n onLoadedData: 'onloadeddata',\n onLoadedMetadata: 'onloadedmetadata',\n onLoadStart: 'onloadstart',\n onMessage: 'onmessage',\n onMouseDown: 'onmousedown',\n onMouseEnter: 'onmouseenter',\n onMouseLeave: 'onmouseleave',\n onMouseMove: 'onmousemove',\n onMouseOut: 'onmouseout',\n onMouseOver: 'onmouseover',\n onMouseUp: 'onmouseup',\n onMouseWheel: 'onmousewheel',\n onOffline: 'onoffline',\n onOnline: 'ononline',\n onPageHide: 'onpagehide',\n onPageShow: 'onpageshow',\n onPaste: 'onpaste',\n onPause: 'onpause',\n onPlay: 'onplay',\n onPlaying: 'onplaying',\n onPopState: 'onpopstate',\n onProgress: 'onprogress',\n onRateChange: 'onratechange',\n onRepeat: 'onrepeat',\n onReset: 'onreset',\n onResize: 'onresize',\n onScroll: 'onscroll',\n onSeeked: 'onseeked',\n onSeeking: 'onseeking',\n onSelect: 'onselect',\n onShow: 'onshow',\n onStalled: 'onstalled',\n onStorage: 'onstorage',\n onSubmit: 'onsubmit',\n onSuspend: 'onsuspend',\n onTimeUpdate: 'ontimeupdate',\n onToggle: 'ontoggle',\n onUnload: 'onunload',\n onVolumeChange: 'onvolumechange',\n onWaiting: 'onwaiting',\n onZoom: 'onzoom',\n overlinePosition: 'overline-position',\n overlineThickness: 'overline-thickness',\n paintOrder: 'paint-order',\n panose1: 'panose-1',\n pointerEvents: 'pointer-events',\n referrerPolicy: 'referrerpolicy',\n renderingIntent: 'rendering-intent',\n shapeRendering: 'shape-rendering',\n stopColor: 'stop-color',\n stopOpacity: 'stop-opacity',\n strikethroughPosition: 'strikethrough-position',\n strikethroughThickness: 'strikethrough-thickness',\n strokeDashArray: 'stroke-dasharray',\n strokeDashOffset: 'stroke-dashoffset',\n strokeLineCap: 'stroke-linecap',\n strokeLineJoin: 'stroke-linejoin',\n strokeMiterLimit: 'stroke-miterlimit',\n strokeOpacity: 'stroke-opacity',\n strokeWidth: 'stroke-width',\n tabIndex: 'tabindex',\n textAnchor: 'text-anchor',\n textDecoration: 'text-decoration',\n textRendering: 'text-rendering',\n transformOrigin: 'transform-origin',\n typeOf: 'typeof',\n underlinePosition: 'underline-position',\n underlineThickness: 'underline-thickness',\n unicodeBidi: 'unicode-bidi',\n unicodeRange: 'unicode-range',\n unitsPerEm: 'units-per-em',\n vAlphabetic: 'v-alphabetic',\n vHanging: 'v-hanging',\n vIdeographic: 'v-ideographic',\n vMathematical: 'v-mathematical',\n vectorEffect: 'vector-effect',\n vertAdvY: 'vert-adv-y',\n vertOriginX: 'vert-origin-x',\n vertOriginY: 'vert-origin-y',\n wordSpacing: 'word-spacing',\n writingMode: 'writing-mode',\n xHeight: 'x-height',\n // These were camelcased in Tiny. Now lowercased in SVG 2\n playbackOrder: 'playbackorder',\n timelineBegin: 'timelinebegin'\n },\n properties: {\n about: commaOrSpaceSeparated,\n accentHeight: number,\n accumulate: null,\n additive: null,\n alignmentBaseline: null,\n alphabetic: number,\n amplitude: number,\n arabicForm: null,\n ascent: number,\n attributeName: null,\n attributeType: null,\n azimuth: number,\n bandwidth: null,\n baselineShift: null,\n baseFrequency: null,\n baseProfile: null,\n bbox: null,\n begin: null,\n bias: number,\n by: null,\n calcMode: null,\n capHeight: number,\n className: spaceSeparated,\n clip: null,\n clipPath: null,\n clipPathUnits: null,\n clipRule: null,\n color: null,\n colorInterpolation: null,\n colorInterpolationFilters: null,\n colorProfile: null,\n colorRendering: null,\n content: null,\n contentScriptType: null,\n contentStyleType: null,\n crossOrigin: null,\n cursor: null,\n cx: null,\n cy: null,\n d: null,\n dataType: null,\n defaultAction: null,\n descent: number,\n diffuseConstant: number,\n direction: null,\n display: null,\n dur: null,\n divisor: number,\n dominantBaseline: null,\n download: boolean,\n dx: null,\n dy: null,\n edgeMode: null,\n editable: null,\n elevation: number,\n enableBackground: null,\n end: null,\n event: null,\n exponent: number,\n externalResourcesRequired: null,\n fill: null,\n fillOpacity: number,\n fillRule: null,\n filter: null,\n filterRes: null,\n filterUnits: null,\n floodColor: null,\n floodOpacity: null,\n focusable: null,\n focusHighlight: null,\n fontFamily: null,\n fontSize: null,\n fontSizeAdjust: null,\n fontStretch: null,\n fontStyle: null,\n fontVariant: null,\n fontWeight: null,\n format: null,\n fr: null,\n from: null,\n fx: null,\n fy: null,\n g1: commaSeparated,\n g2: commaSeparated,\n glyphName: commaSeparated,\n glyphOrientationHorizontal: null,\n glyphOrientationVertical: null,\n glyphRef: null,\n gradientTransform: null,\n gradientUnits: null,\n handler: null,\n hanging: number,\n hatchContentUnits: null,\n hatchUnits: null,\n height: null,\n href: null,\n hrefLang: null,\n horizAdvX: number,\n horizOriginX: number,\n horizOriginY: number,\n id: null,\n ideographic: number,\n imageRendering: null,\n initialVisibility: null,\n in: null,\n in2: null,\n intercept: number,\n k: number,\n k1: number,\n k2: number,\n k3: number,\n k4: number,\n kernelMatrix: commaOrSpaceSeparated,\n kernelUnitLength: null,\n keyPoints: null, // SEMI_COLON_SEPARATED\n keySplines: null, // SEMI_COLON_SEPARATED\n keyTimes: null, // SEMI_COLON_SEPARATED\n kerning: null,\n lang: null,\n lengthAdjust: null,\n letterSpacing: null,\n lightingColor: null,\n limitingConeAngle: number,\n local: null,\n markerEnd: null,\n markerMid: null,\n markerStart: null,\n markerHeight: null,\n markerUnits: null,\n markerWidth: null,\n mask: null,\n maskContentUnits: null,\n maskUnits: null,\n mathematical: null,\n max: null,\n media: null,\n mediaCharacterEncoding: null,\n mediaContentEncodings: null,\n mediaSize: number,\n mediaTime: null,\n method: null,\n min: null,\n mode: null,\n name: null,\n navDown: null,\n navDownLeft: null,\n navDownRight: null,\n navLeft: null,\n navNext: null,\n navPrev: null,\n navRight: null,\n navUp: null,\n navUpLeft: null,\n navUpRight: null,\n numOctaves: null,\n observer: null,\n offset: null,\n onAbort: null,\n onActivate: null,\n onAfterPrint: null,\n onBeforePrint: null,\n onBegin: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnd: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFocusIn: null,\n onFocusOut: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadStart: null,\n onMessage: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onMouseWheel: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRepeat: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onShow: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onZoom: null,\n opacity: null,\n operator: null,\n order: null,\n orient: null,\n orientation: null,\n origin: null,\n overflow: null,\n overlay: null,\n overlinePosition: number,\n overlineThickness: number,\n paintOrder: null,\n panose1: null,\n path: null,\n pathLength: number,\n patternContentUnits: null,\n patternTransform: null,\n patternUnits: null,\n phase: null,\n ping: spaceSeparated,\n pitch: null,\n playbackOrder: null,\n pointerEvents: null,\n points: null,\n pointsAtX: number,\n pointsAtY: number,\n pointsAtZ: number,\n preserveAlpha: null,\n preserveAspectRatio: null,\n primitiveUnits: null,\n propagate: null,\n property: commaOrSpaceSeparated,\n r: null,\n radius: null,\n referrerPolicy: null,\n refX: null,\n refY: null,\n rel: commaOrSpaceSeparated,\n rev: commaOrSpaceSeparated,\n renderingIntent: null,\n repeatCount: null,\n repeatDur: null,\n requiredExtensions: commaOrSpaceSeparated,\n requiredFeatures: commaOrSpaceSeparated,\n requiredFonts: commaOrSpaceSeparated,\n requiredFormats: commaOrSpaceSeparated,\n resource: null,\n restart: null,\n result: null,\n rotate: null,\n rx: null,\n ry: null,\n scale: null,\n seed: null,\n shapeRendering: null,\n side: null,\n slope: null,\n snapshotTime: null,\n specularConstant: number,\n specularExponent: number,\n spreadMethod: null,\n spacing: null,\n startOffset: null,\n stdDeviation: null,\n stemh: null,\n stemv: null,\n stitchTiles: null,\n stopColor: null,\n stopOpacity: null,\n strikethroughPosition: number,\n strikethroughThickness: number,\n string: null,\n stroke: null,\n strokeDashArray: commaOrSpaceSeparated,\n strokeDashOffset: null,\n strokeLineCap: null,\n strokeLineJoin: null,\n strokeMiterLimit: number,\n strokeOpacity: number,\n strokeWidth: null,\n style: null,\n surfaceScale: number,\n syncBehavior: null,\n syncBehaviorDefault: null,\n syncMaster: null,\n syncTolerance: null,\n syncToleranceDefault: null,\n systemLanguage: commaOrSpaceSeparated,\n tabIndex: number,\n tableValues: null,\n target: null,\n targetX: number,\n targetY: number,\n textAnchor: null,\n textDecoration: null,\n textRendering: null,\n textLength: null,\n timelineBegin: null,\n title: null,\n transformBehavior: null,\n type: null,\n typeOf: commaOrSpaceSeparated,\n to: null,\n transform: null,\n transformOrigin: null,\n u1: null,\n u2: null,\n underlinePosition: number,\n underlineThickness: number,\n unicode: null,\n unicodeBidi: null,\n unicodeRange: null,\n unitsPerEm: number,\n values: null,\n vAlphabetic: number,\n vMathematical: number,\n vectorEffect: null,\n vHanging: number,\n vIdeographic: number,\n version: null,\n vertAdvY: number,\n vertOriginX: number,\n vertOriginY: number,\n viewBox: null,\n viewTarget: null,\n visibility: null,\n width: null,\n widths: null,\n wordSpacing: null,\n writingMode: null,\n x: null,\n x1: null,\n x2: null,\n xChannelSelector: null,\n xHeight: number,\n y: null,\n y1: null,\n y2: null,\n yChannelSelector: null,\n z: null,\n zoomAndPan: null\n },\n space: 'svg',\n transform: caseSensitiveTransform\n})\n","import {create} from './util/create.js'\n\nexport const xlink = create({\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n },\n space: 'xlink',\n transform(_, property) {\n return 'xlink:' + property.slice(5).toLowerCase()\n }\n})\n","import {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const xmlns = create({\n attributes: {xmlnsxlink: 'xmlns:xlink'},\n properties: {xmlnsXLink: null, xmlns: null},\n space: 'xmlns',\n transform: caseInsensitiveTransform\n})\n","import {create} from './util/create.js'\n\nexport const xml = create({\n properties: {xmlBase: null, xmlLang: null, xmlSpace: null},\n space: 'xml',\n transform(_, property) {\n return 'xml:' + property.slice(3).toLowerCase()\n }\n})\n","// Note: types exposed from `index.d.ts`.\nimport {merge} from './lib/util/merge.js'\nimport {aria} from './lib/aria.js'\nimport {html as htmlBase} from './lib/html.js'\nimport {svg as svgBase} from './lib/svg.js'\nimport {xlink} from './lib/xlink.js'\nimport {xmlns} from './lib/xmlns.js'\nimport {xml} from './lib/xml.js'\n\nexport {hastToReact} from './lib/hast-to-react.js'\n\nexport const html = merge([aria, htmlBase, xlink, xmlns, xml], 'html')\n\nexport {find} from './lib/find.js'\nexport {normalize} from './lib/normalize.js'\n\nexport const svg = merge([aria, svgBase, xlink, xmlns, xml], 'svg')\n","/**\n * VDOM Property and Attribute Handler\n * Standards-compliant property/attribute handling with caching and special element support\n * Features: Skip logic for preserving user interactions during VDOM reconciliation\n * Exports: updateProps - Main function for DOM element property updates\n * Updated: 2025-01-14 - Added skip logic for focus-sensitive, scroll, and media properties\n */\n\nimport { find, html, svg } from 'property-information';\n\nconst ATTR_PROPS = '_props';\nconst propertyInfoCache = new Map<string, any>();\n\n// Merge old and new props, handling className -> class conversion and null cleanup\nfunction mergeProps(oldProps: { [key: string]: any }, newProps: { [key: string]: any }): { [key: string]: any } {\n if (newProps) {\n newProps['class'] = newProps['class'] || newProps['className'];\n delete newProps['className'];\n }\n\n if (!oldProps || Object.keys(oldProps).length === 0) return newProps || {};\n if (!newProps || Object.keys(newProps).length === 0) {\n const props: { [key: string]: any } = {};\n Object.keys(oldProps).forEach(p => props[p] = null);\n return props;\n }\n\n const props: { [key: string]: any } = {};\n Object.keys(oldProps).forEach(p => {\n if (!(p in newProps)) props[p] = null;\n });\n Object.keys(newProps).forEach(p => props[p] = newProps[p]);\n return props;\n}\n\n// Convert kebab-case to camelCase for dataset keys\nfunction convertKebabToCamelCase(str: string): string {\n if (str.length <= 1) return str.toLowerCase();\n return str.split('-').map((word, index) =>\n index === 0 ? word.toLowerCase() : word.charAt(0).toUpperCase() + word.slice(1).toLowerCase()\n ).join('');\n}\n\n// Cached property information lookup\nfunction getPropertyInfo(name: string, isSvg: boolean) {\n const cacheKey = `${name}:${isSvg}`;\n let info = propertyInfoCache.get(cacheKey);\n if (info === undefined) {\n info = find(isSvg ? svg : html, name) || null;\n propertyInfoCache.set(cacheKey, info);\n }\n return info;\n}\n\n\n// Specialized handlers for different attribute types\nfunction setDatasetAttribute(element: Element, attributeName: string, value: any): void {\n const camelKey = convertKebabToCamelCase(attributeName.slice(5));\n if (value == null) {\n delete (element as HTMLElement).dataset[camelKey];\n } else {\n (element as HTMLElement).dataset[camelKey] = String(value);\n }\n}\n\nfunction setEventHandler(element: Element, name: string, value: any): void {\n if (!name.startsWith('on')) return;\n\n if (!value || typeof value === 'function') {\n (element as any)[name] = value;\n } else if (typeof value === 'string') {\n if (value) element.setAttribute(name, value);\n else element.removeAttribute(name);\n }\n}\n\nfunction setBooleanAttribute(element: Element, attributeName: string, value: any): void {\n if (shouldSetBooleanAttribute(value)) {\n element.setAttribute(attributeName, attributeName);\n } else {\n element.removeAttribute(attributeName);\n }\n}\n\nfunction setElementProperty(element: Element, propertyName: string, value: any): void {\n try {\n (element as any)[propertyName] = value;\n } catch (error) {\n setElementAttribute(element, propertyName, value, false);\n }\n}\n\nfunction setElementAttribute(element: Element, attributeName: string, value: any, isSvg: boolean): void {\n if (value == null) {\n element.removeAttribute(attributeName);\n return;\n }\n\n const stringValue = String(value);\n if (isSvg && attributeName.includes(':')) {\n const [prefix] = attributeName.split(':');\n if (prefix === 'xlink') {\n element.setAttributeNS('http://www.w3.org/1999/xlink', attributeName, stringValue);\n } else {\n element.setAttribute(attributeName, stringValue);\n }\n } else {\n element.setAttribute(attributeName, stringValue);\n }\n}\n\nfunction shouldSetBooleanAttribute(value: any): boolean {\n if (value == null || value === false || value === '') return false;\n if (value === true) return true;\n if (typeof value === 'string') {\n const lowerValue = value.toLowerCase();\n return lowerValue !== 'false' && value !== '0';\n }\n return Boolean(value);\n}\n\n// Core property/attribute setting function - handles all property types with skip logic\nfunction setAttributeOrProperty(element: Element, name: string, value: any, isSvg: boolean): void {\n // Check if we should skip this property update to preserve user interaction\n if (shouldSkipPatch(element as HTMLElement, name)) {\n return;\n }\n\n // Special cases with dedicated handling\n if (name === 'style') {\n if ((element as HTMLElement).style.cssText) (element as HTMLElement).style.cssText = '';\n if (typeof value === 'string') (element as HTMLElement).style.cssText = value;\n else if (value && typeof value === 'object') {\n for (const s in value) {\n if ((element as HTMLElement).style[s] !== value[s]) (element as HTMLElement).style[s] = value[s];\n }\n }\n return;\n }\n\n if (name === 'key') {\n if (value !== undefined && value !== null) (element as any).key = value;\n return;\n }\n\n if (name.startsWith('data-')) {\n setDatasetAttribute(element, name, value);\n return;\n }\n\n if (name.startsWith('on')) {\n setEventHandler(element, name, value);\n return;\n }\n\n // Form elements with special property requirements\n if ((element.tagName === 'INPUT' || element.tagName === 'TEXTAREA' || element.tagName === 'SELECT') &&\n (name === 'value' || name === 'selected' || name === 'selectedIndex')) {\n setElementProperty(element, name, value);\n return;\n }\n\n // Input checked needs both property and attribute\n if (element.tagName === 'INPUT' && name === 'checked') {\n setElementProperty(element, name, value);\n setBooleanAttribute(element, name, value);\n return;\n }\n\n // Use property information for standard attributes\n const info = getPropertyInfo(name, isSvg);\n if (info) {\n if (info.boolean || info.overloadedBoolean) {\n setBooleanAttribute(element, info.attribute, value);\n } else if (info.mustUseProperty && !isSvg) {\n setElementProperty(element, info.property, value);\n } else {\n setElementAttribute(element, info.attribute, value, isSvg);\n }\n } else {\n // Fallback handling for unknown attributes\n if (name.startsWith('aria-') || name === 'role') {\n setElementAttribute(element, name, value, isSvg);\n } else if (name in element || (element as any)[name] !== undefined) {\n setElementProperty(element, name, value);\n } else {\n setElementAttribute(element, name, value, isSvg);\n }\n }\n}\n\n// Skip logic for preventing user interaction disruption during VDOM reconciliation\nfunction shouldSkipPatch(dom: HTMLElement, prop: string): boolean {\n if (document.activeElement === dom) {\n return ['value', 'selectionStart', 'selectionEnd', 'selectionDirection']\n .includes(prop);\n }\n if (prop === 'scrollTop' || prop === 'scrollLeft') {\n return true;\n }\n if (dom instanceof HTMLMediaElement &&\n ['currentTime', 'paused', 'playbackRate', 'volume'].includes(prop)) {\n return true;\n }\n return false; // default: allow normal diff logic\n}\n\nfunction isValidAttributeName(name: string): boolean {\n return /^[a-zA-Z_:][\\w\\-:.]*$/.test(name) &&\n !name.includes('<') && !name.includes('>') && !name.includes('\"') && !name.includes(\"'\");\n}\n\n\n// Main exported function for updating element properties\nexport function updateProps(element: Element, props: { [key: string]: any }, isSvg: boolean): void {\n // console.assert(!!element);\n const cached = element[ATTR_PROPS] || {};\n const merged = mergeProps(cached, props);\n element[ATTR_PROPS] = props || {};\n\n applyPropertiesToElement(element, merged, props, isSvg);\n}\n\n// Apply merged properties to element with ref handling\nfunction applyPropertiesToElement(\n element: Element,\n mergedProps: { [key: string]: any },\n originalProps: { [key: string]: any } | null,\n isSvg: boolean\n): void {\n for (const name in mergedProps) {\n if (isValidAttributeName(name)) {\n setAttributeOrProperty(element, name, mergedProps[name], isSvg);\n }\n }\n\n // Handle ref callback\n if (mergedProps && typeof mergedProps['ref'] === 'function') {\n window.requestAnimationFrame(() => mergedProps['ref'](element));\n }\n}\n","/** * VDOM Implementation for AppRun\n * \n * Notes for AppRun’s key prop\n * Use the key prop only if you need to preserve browser-side DOM state (such as cursor \n * position in an <input>, focus, or maintaining state in inline components).\n *\n * For most use cases, especially with stateless or purely data-driven UIs, key is not\n * needed and may decrease performance by forcing DOM moves.\n *\n * AppRun aggressively updates DOM to match your vdom, so DOM node preservation is\n * only valuable when you intentionally depend on browser-managed state.\n *\n * | Use Case | Should I use `key`? | Why |\n * | ----------------------------- | ------------------- | --------------------- |\n * | Preserve input cursor/focus | ✅ Yes | Keeps browser state |\n * | Inline stateful component | ✅ Yes | Preserves component |\n * | Regular data list (stateless) | 🚫 No | Unnecessary DOM moves | \n * | Purely visual updates | 🚫 No | No state to preserve |\n * \n * Features:\n * - Virtual DOM rendering and diffing for efficient DOM updates\n * - JSX Fragment support for both Babel and TypeScript\n * - Element creation with props, children, and event handling\n * - SVG element support with proper namespace handling\n * - Component lifecycle management and caching\n * - Keyed element optimization with automatic cleanup for memory management\n * - Safe HTML insertion and text node creation\n * - Directive processing integration\n * \n * Implementation:\n * - Uses plain JavaScript object for keyCache instead of Map for better performance\n * - Implements automatic cleanup of disconnected elements from keyCache\n * - Supports both string and function-based tags\n * - Handles component mounting and state management\n * - Optimized children updating with minimal DOM operations\n * - Memory-efficient caching with configurable thresholds (500 ops, 1000 max size)\n * \n * Recent Changes:\n * - 2025-07-15: Converted keyCache from Map to plain object ({}) for improved performance\n * - Updated cleanup functions to use object property deletion instead of Map methods\n * - Enhanced memory management with automatic cleanup of disconnected elements\n * - Added comprehensive key prop usage documentation and guidelines\n */\n\nimport { VDOM, VNode } from './types';\nimport directive from './directive';\nimport { updateProps } from './vdom-my-prop-attr';\nexport type Element = any; //HTMLElement | SVGSVGElement | SVGElement;\n\nexport function Fragment(props, ...children): any[] {\n return collect(children);\n}\n\nfunction collect(children) {\n const ch = [];\n const push = (c) => {\n if (c !== null && c !== undefined && c !== '' && c !== false) {\n ch.push((typeof c === 'function' || typeof c === 'object') ? c : `${c}`);\n }\n }\n children && children.forEach(c => {\n if (Array.isArray(c)) {\n c.forEach(i => push(i));\n } else {\n push(c);\n }\n });\n return ch;\n}\n\nconst keyCache: { [key: string]: Element } = {};\nlet cleanupCounter = 0;\nconst CLEANUP_THRESHOLD = 500; // Cleanup every 500 operations\nconst MAX_CACHE_SIZE = 1000;\n\n// Lightweight cleanup function - only runs when needed\nfunction cleanupKeyCache() {\n if (Object.keys(keyCache).length <= MAX_CACHE_SIZE) return; // Skip if under limit\n\n for (const [key, element] of Object.entries(keyCache)) {\n if (!element.isConnected) {\n delete keyCache[key];\n }\n }\n}\n\n// Export cleanup function for manual cleanup if needed\nexport function clearKeyCache() {\n for (const key in keyCache) {\n delete keyCache[key];\n }\n cleanupCounter = 0;\n}\n\nexport function createElement(tag: string | Function | [], props?: {}, ...children) {\n const ch = collect(children);\n if (typeof tag === 'string') return { tag, props, children: ch };\n else if (Array.isArray(tag)) return tag; // JSX fragments - babel\n else if (tag === undefined && children) return ch; // JSX fragments - typescript\n else if (Object.getPrototypeOf(tag).__isAppRunComponent) return { tag, props, children: ch } // createComponent(tag, { ...props, children });\n else if (typeof tag === 'function') return tag(props, ch);\n else throw new Error(`Unknown tag in vdom ${tag}`);\n};\n\nexport const updateElement = (element: Element | string, nodes: VDOM, component = {}) => {\n // tslint:disable-next-line\n if (nodes == null || nodes === false) return;\n const el = (typeof element === 'string' && element) ?\n document.getElementById(element) || document.querySelector(element) : element;\n nodes = directive(nodes, component);\n render(el, nodes, component);\n}\n\nfunction render(element: Element, nodes: VDOM, parent = {}) {\n // tslint:disable-next-line\n if (nodes == null || nodes === false) return;\n nodes = createComponent(nodes, parent);\n if (!element) return;\n const isSvg = element.nodeName === \"SVG\";\n if (Array.isArray(nodes)) {\n updateChildren(element, nodes, isSvg);\n } else {\n updateChildren(element, [nodes], isSvg);\n }\n}\n\nfunction same(el: Element, node: VNode) {\n // if (!el || !node) return false;\n const key1 = el.nodeName;\n const key2 = `${node.tag || ''}`;\n return key1.toUpperCase() === key2.toUpperCase();\n}\n\nfunction update(element: Element, node: VNode, isSvg: boolean) {\n // console.assert(!!element);\n isSvg = isSvg || node.tag === \"svg\";\n if (!same(element, node)) {\n element.parentNode.replaceChild(create(node, isSvg), element);\n return;\n }\n updateChildren(element, node.children, isSvg);\n updateProps(element, node.props, isSvg);\n}\n\nfunction updateChildren(element, children, isSvg: boolean) {\n const old_len = element.childNodes?.length || 0;\n const new_len = children?.length || 0;\n const len = Math.min(old_len, new_len);\n for (let i = 0; i < len; i++) {\n const child = children[i];\n const el = element.childNodes[i];\n if (typeof child === 'string') {\n if (el.textContent !== child) {\n if (el.nodeType === 3) {\n el.nodeValue = child\n } else {\n element.replaceChild(createText(child), el);\n }\n }\n } else if (child instanceof HTMLElement || child instanceof SVGElement) {\n element.insertBefore(child, el);\n } else {\n const key = child.props && child.props['key'];\n if (key) {\n if (el.key === key) {\n update(element.childNodes[i], child, isSvg);\n } else {\n // console.log(el.key, key);\n const old = keyCache[key];\n if (old) {\n // const temp = old.nextSibling;\n element.insertBefore(old, el);\n // temp ? element.insertBefore(el, temp) : element.appendChild(el);\n update(element.childNodes[i], child, isSvg);\n } else {\n element.replaceChild(create(child, isSvg), el);\n }\n }\n } else {\n update(element.childNodes[i], child, isSvg);\n }\n }\n }\n\n let n = element.childNodes?.length || 0;\n while (n > len) {\n element.removeChild(element.lastChild);\n n--;\n }\n\n if (new_len > len) {\n const d = document.createDocumentFragment();\n for (let i = len; i < children.length; i++) {\n d.appendChild(create(children[i], isSvg));\n }\n element.appendChild(d);\n }\n}\n\nexport const safeHTML = (html: string) => {\n const div = document.createElement('section');\n div.insertAdjacentHTML('afterbegin', html)\n return Array.from(div.children);\n}\n\nfunction createText(node) {\n if (node?.indexOf('_html:') === 0) { // ?\n const div = document.createElement('div');\n div.insertAdjacentHTML('afterbegin', node.substring(6))\n return div;\n } else {\n return document.createTextNode(node ?? '');\n }\n}\n\nfunction create(node: VNode | string | HTMLElement | SVGElement, isSvg: boolean): Element {\n // console.assert(node !== null && node !== undefined);\n if ((node instanceof HTMLElement) || (node instanceof SVGElement)) return node;\n if (typeof node === \"string\") return createText(node);\n if (!node.tag || (typeof node.tag === 'function')) return createText(JSON.stringify(node));\n isSvg = isSvg || node.tag === \"svg\";\n const element = isSvg\n ? document.createElementNS(\"http://www.w3.org/2000/svg\", node.tag)\n : document.createElement(node.tag);\n\n updateProps(element, node.props, isSvg);\n if (node.children) node.children.forEach(child => element.appendChild(create(child, isSvg)));\n\n if (node.props && (node.props as any).key !== undefined) {\n (element as any).key = (node.props as any).key;\n keyCache[(node.props as any).key] = element;\n\n // Lightweight cleanup - only when counter reaches threshold\n if (++cleanupCounter >= CLEANUP_THRESHOLD) {\n cleanupKeyCache();\n cleanupCounter = 0;\n }\n }\n return element\n}\n\nfunction render_component(node, parent, idx) {\n const { tag, props, children } = node;\n let key = `_${idx}`;\n let id = props && props['id'];\n if (!id) id = `_${idx}${Date.now()}`;\n else key = id;\n let asTag = 'section';\n if (props && props['as']) {\n asTag = props['as'];\n delete props['as'];\n }\n if (!parent.__componentCache) parent.__componentCache = {};\n let component = parent.__componentCache[key];\n if (!component || !(component instanceof tag) || !component.element) {\n const element = document.createElement(asTag);\n component = parent.__componentCache[key] = new tag({ ...props, children }).mount(element, { render: true });\n } else {\n component.renderState(component.state);\n }\n if (component.mounted) {\n const new_state = component.mounted(props, children, component.state);\n (typeof new_state !== 'undefined') && component.setState(new_state);\n }\n updateProps(component.element, props, false);\n return component.element;\n}\n\nfunction createComponent(node, parent, idx = 0) {\n if (typeof node === 'string') return node;\n if (Array.isArray(node)) return node.map(child => createComponent(child, parent, idx++));\n let vdom = node;\n if (node && typeof node.tag === 'function' && Object.getPrototypeOf(node.tag).__isAppRunComponent) {\n vdom = render_component(node, parent, idx);\n }\n if (vdom && Array.isArray(vdom.children)) {\n const new_parent = vdom.props?._component;\n if (new_parent) {\n let i = 0;\n vdom.children = vdom.children.map(child => createComponent(child, new_parent, i++));\n } else {\n vdom.children = vdom.children.map(child => createComponent(child, parent, idx++));\n }\n }\n return vdom;\n}\n","/**\n * Type Safety Utilities for AppRun\n * \n * This file provides utility functions and types to improve type safety\n * across the AppRun framework, including:\n * 1. Safe type assertions with null checks\n * 2. Global object assignment helpers\n * 3. Event target type guards\n * 4. Function validation utilities\n */\n\n/**\n * Safely cast event target to specific HTML element type with null check\n */\nexport function safeEventTarget<T extends HTMLElement = HTMLElement>(event: Event): T | null {\n return event?.target instanceof HTMLElement ? event.target as T : null;\n}\n\n/**\n * Type guard to check if an object is a valid function\n */\nexport function isFunction(obj: any): obj is Function {\n return typeof obj === 'function';\n}\n\n/**\n * Type guard to check if an object is a valid HTML element\n */\nexport function isHTMLElement(obj: any): obj is HTMLElement {\n return obj instanceof HTMLElement;\n}\n\n/**\n * Safely assign properties to global object with type checking\n */\nexport function safeGlobalAssign<T extends Record<string, any>>(\n globalObj: any,\n assignments: T\n): void {\n if (typeof globalObj === 'object' && globalObj !== null) {\n Object.keys(assignments).forEach(key => {\n globalObj[key] = assignments[key];\n });\n }\n}\n\n/**\n * Safely get property from global object with fallback\n */\nexport function safeGlobalGet<T>(\n globalObj: any,\n property: string,\n fallback?: T\n): T | undefined {\n if (typeof globalObj === 'object' && globalObj !== null) {\n return globalObj[property] ?? fallback;\n }\n return fallback;\n}\n\n/**\n * Type-safe wrapper for DOM element queries\n */\nexport function safeQuerySelector<T extends Element = Element>(\n selector: string,\n context: Document | Element = document\n): T | null {\n try {\n return context.querySelector<T>(selector);\n } catch (error) {\n console.warn(`Invalid selector: ${selector}`, error);\n return null;\n }\n}\n\n/**\n * Type-safe wrapper for DOM element by ID\n */\nexport function safeGetElementById<T extends HTMLElement = HTMLElement>(\n id: string\n): T | null {\n try {\n return document.getElementById(id) as T | null;\n } catch (error) {\n console.warn(`Error getting element by id: ${id}`, error);\n return null;\n }\n}\n\n/**\n * Validate and safely execute a function with error handling\n */\nexport function safeExecute<T extends any[], R>(\n fn: ((...args: T) => R) | undefined | null,\n args: T,\n context?: any,\n errorMessage?: string\n): R | undefined {\n if (!isFunction(fn)) {\n if (errorMessage) {\n console.warn(errorMessage, fn);\n }\n return undefined;\n }\n\n try {\n return context ? fn.apply(context, args) : fn(...args);\n } catch (error) {\n console.error(errorMessage || 'Error executing function:', error);\n return undefined;\n }\n}\n\n/**\n * Type definitions for improved global object safety\n */\nexport interface SafeGlobalWindow {\n Component?: any;\n _React?: any;\n React?: any;\n on?: any;\n customElement?: any;\n safeHTML?: any;\n html?: any;\n svg?: any;\n run?: any;\n [key: string]: any;\n}\n\nexport type SafeGlobalContext = SafeGlobalWindow | typeof globalThis | any;\n","/**\n * Version Management Utility\n * \n * Single source of truth for AppRun version information.\n * This file ensures version consistency across all modules.\n * \n * The version is derived from package.json and should be updated\n * only when the package version changes.\n */\n\n// Import version from package.json to maintain single source of truth\n// This version string is used across the framework\nexport const APPRUN_VERSION = '3.37.2';\n\n// Version string with prefix for global tracking\nexport const APPRUN_VERSION_GLOBAL = `AppRun-${APPRUN_VERSION}`;\n","/**\n * Component Directives Implementation\n * \n * This file provides built-in directives for components:\n * 1. Event Binding ($on directives)\n * - $on: Bind DOM events to component events\n * - Supports event delegation and parameters\n * - Handles function, string, and array event handlers\n * - Type-safe event target handling\n * \n * 2. Two-way Data Binding ($bind directive)\n * - $bind: Sync form elements with component state\n * - Handles input types: text, checkbox, radio, number, range\n * - Supports select (single/multiple) and textarea elements\n * - Automatic value type conversion for numbers\n * - Support for complex property paths\n * \n * 3. Custom Directives\n * - Extensible directive system via '$' events\n * - Processes virtual DOM during rendering\n * - Supports custom attribute directives\n * \n * Features:\n * - Automatic state synchronization\n * - Type conversion for form inputs\n * - Event delegation support\n * - Multiple event handler formats\n * - Nested property binding\n * - Custom directive extensibility\n *\n * Type Safety Improvements (v3.35.1):\n * - Added null checks for event targets before type assertions\n * - Proper typing for different HTML element types\n * - Enhanced error handling for invalid event targets\n * - Safer DOM element property access\n *\n * Usage:\n * ```tsx\n * // Event binding\n * <button $onclick=\"event-name\">Click</button>\n * <input $oninput={e => setState(e.target.value)} />\n * \n * // Two-way binding\n * <input $bind=\"state.property\" />\n * <select $bind=\"selected\">...</select>\n * \n * // Array handlers\n * <button $onclick={['handler', param1, param2]}>Click</button>\n * ```\n */\n\nimport app from './app';\nimport { safeEventTarget } from './type-utils';\n\nconst getStateValue = (component, name) => {\n return (name ? component['state'][name] : component['state']) || '';\n}\n\nconst setStateValue = (component, name, value) => {\n if (name) {\n const state = component['state'] || {};\n state[name] = value;\n component.setState(state);\n } else {\n component.setState(value);\n }\n}\n\nconst apply_directive = (key: string, props: {}, tag, component) => {\n if (key.startsWith('$on')) {\n const event = props[key];\n key = key.substring(1)\n if (typeof event === 'boolean') {\n props[key] = e => component.run ? component.run(key, e) : app.run(key, e);\n } else if (typeof event === 'string') {\n props[key] = e => component.run ? component.run(event, e) : app.run(event, e);\n } else if (typeof event === 'function') {\n props[key] = e => component.setState(event(component.state, e));\n } else if (Array.isArray(event)) {\n const [handler, ...p] = event;\n if (typeof handler === 'string') {\n props[key] = e => component.run ? component.run(handler, ...p, e) : app.run(handler, ...p, e);\n } else if (typeof handler === 'function') {\n props[key] = e => component.setState(handler(component.state, ...p, e));\n }\n }\n\n } else if (key === '$bind') {\n const type = props['type'] || 'text';\n const name = typeof props[key] === 'string' ? props[key] : props['name'];\n if (tag === 'input') {\n switch (type) {\n case 'checkbox':\n props['checked'] = getStateValue(component, name);\n props['onclick'] = e => {\n const target = safeEventTarget<HTMLInputElement>(e);\n if (target) {\n setStateValue(component, name || target.name, target.checked);\n }\n };\n break;\n case 'radio':\n props['checked'] = getStateValue(component, name) === props['value'];\n props['onclick'] = e => {\n const target = safeEventTarget<HTMLInputElement>(e);\n if (target) {\n setStateValue(component, name || target.name, target.value);\n }\n };\n break;\n case 'number':\n case 'range':\n props['value'] = getStateValue(component, name);\n props['oninput'] = e => {\n const target = safeEventTarget<HTMLInputElement>(e);\n if (target) {\n setStateValue(component, name || target.name, Number(target.value));\n }\n };\n break;\n default:\n props['value'] = getStateValue(component, name);\n props['oninput'] = e => {\n const target = safeEventTarget<HTMLInputElement>(e);\n if (target) {\n setStateValue(component, name || target.name, target.value);\n }\n };\n }\n } else if (tag === 'select') {\n props['value'] = getStateValue(component, name);\n props['onchange'] = e => {\n const target = safeEventTarget<HTMLSelectElement>(e);\n if (target && !target.multiple) { // multiple selection use $bind on option\n setStateValue(component, name || target.name, target.value);\n }\n }\n } else if (tag === 'option') {\n props['selected'] = getStateValue(component, name);\n props['onclick'] = e => {\n const target = safeEventTarget<HTMLOptionElement>(e);\n if (target) {\n setStateValue(component, name || (target as any).name, target.selected);\n }\n };\n } else if (tag === 'textarea') {\n props['innerHTML'] = getStateValue(component, name);\n props['oninput'] = e => {\n const target = safeEventTarget<HTMLTextAreaElement>(e);\n if (target) {\n setStateValue(component, name || target.name, target.value);\n }\n };\n }\n } else {\n app.run('$', { key, tag, props, component });\n }\n}\n\nconst directive = (vdom, component) => {\n if (Array.isArray(vdom)) {\n return vdom.map(element => directive(element, component));\n } else {\n let { type, tag, props, children } = vdom;\n tag = tag || type;\n children = children || props?.children;\n if (props) Object.keys(props).forEach(key => {\n if (key.startsWith('$')) {\n apply_directive(key, props, tag, component);\n delete props[key];\n }\n });\n if (children) directive(children, component);\n return vdom;\n }\n}\n\nexport default directive;\n","/**\n * Core AppRun application class and singleton instance\n *\n * This file provides:\n * 1. App class - The core event system implementation with pub/sub capabilities\n * - on(): Subscribe to events with options (once, delay, global)\n * - off(): Unsubscribe from events with proper cleanup\n * - run(): Publish events synchronously with error handling\n * - runAsync(): Publish events asynchronously with Promise support, returns handler values\n * - query(): Deprecated alias for runAsync() - use runAsync() instead\n *\n * 2. Default app singleton - Global event bus instance\n * - Created once and reused across the application\n * - Stored in global scope (window/global) with version tracking\n * - Prevents duplicate instances across different versions\n *\n * Features:\n * - Event wildcards support (events ending with '*')\n * - Delayed event execution with timeout management\n * - Once-only event subscriptions\n * - Async event handling with Promise.all\n * - Global event bus shared across components\n * - Memory leak prevention with proper cleanup\n *\n * Type Safety Improvements (v3.35.1):\n * - Added validation for event handler functions\n * - Enhanced error handling in event execution\n * - Improved null checks in delayed event handling\n * - Better error reporting for invalid handlers\n *\n * Usage:\n * ```ts\n * // Subscribe to events\n * app.on('event-name', (state, ...args) => {\n * // Handle event\n * });\n *\n * // Publish events (fire-and-forget)\n * app.run('event-name', ...args);\n * \n * // Get return values from event handlers\n * app.runAsync('event-name', data).then(results => {\n * // Handle results array\n * });\n * ```\n */\n\nimport { EventOptions } from './types'\nimport { APPRUN_VERSION_GLOBAL } from './version'\n\nexport class App {\n\n _events: { [key: string]: Array<{ fn: (...args: any[]) => any, options: EventOptions }> };\n\n constructor() {\n this._events = {} as { [key: string]: Array<{ fn: (...args: any[]) => any, options: EventOptions }> };\n }\n\n on(name: string, fn: (...args: any[]) => any, options: EventOptions = {}): void {\n this._events[name] = this._events[name] || [];\n this._events[name].push({ fn, options });\n }\n\n off(name: string, fn: (...args: any[]) => any): void {\n const subscribers = this._events[name] || [];\n\n this._events[name] = subscribers.filter((sub) => sub.fn !== fn);\n }\n\n find(name: string): any {\n return this._events[name];\n }\n\n run(name: string, ...args: any[]): number {\n const subscribers = this.getSubscribers(name, this._events);\n console.assert(subscribers && subscribers.length > 0, 'No subscriber for event: ' + name);\n subscribers.forEach((sub) => {\n const { fn, options } = sub;\n if (!fn || typeof fn !== 'function') {\n console.error(`AppRun event handler for '${name}' is not a function:`, fn);\n return false;\n }\n if (options.delay) {\n this.delay(name, fn, args, options);\n } else {\n try {\n Object.keys(options).length > 0 ? fn.apply(this, [...args, options]) : fn.apply(this, args);\n } catch (error) {\n console.error(`Error in event handler for '${name}':`, error);\n }\n }\n return !sub.options.once;\n });\n\n return subscribers.length;\n }\n\n once(name: string, fn: (...args: any[]) => any, options: EventOptions = {}): void {\n this.on(name, fn, { ...options, once: true });\n }\n\n private delay(name: string, fn: (...args: any[]) => any, args: any[], options: EventOptions): void {\n if (options._t) clearTimeout(options._t);\n options._t = setTimeout(() => {\n clearTimeout(options._t);\n try {\n Object.keys(options).length > 0 ? fn.apply(this, [...args, options]) : fn.apply(this, args);\n } catch (error) {\n console.error(`Error in delayed event handler for '${name}':`, error);\n }\n }, options.delay);\n }\n\n runAsync(name: string, ...args: any[]): Promise<any[]> {\n const subscribers = this.getSubscribers(name, this._events);\n console.assert(subscribers && subscribers.length > 0, 'No subscriber for event: ' + name);\n const promises = subscribers.map(sub => {\n const { fn, options } = sub;\n if (!fn || typeof fn !== 'function') {\n console.error(`AppRun async event handler for '${name}' is not a function:`, fn);\n return Promise.resolve(null);\n }\n try {\n return Object.keys(options).length > 0 ? fn.apply(this, [...args, options]) : fn.apply(this, args);\n } catch (error) {\n console.error(`Error in async event handler for '${name}':`, error);\n return Promise.reject(error);\n }\n });\n return Promise.all(promises);\n }\n\n /**\n * @deprecated Use runAsync() instead. app.query() will be removed in a future version.\n */\n query(name: string, ...args: any[]): Promise<any[]> {\n console.warn('app.query() is deprecated. Use app.runAsync() instead.');\n return this.runAsync(name, ...args);\n }\n\n private getSubscribers(name: string, events: { [key: string]: Array<{ fn: (...args: any[]) => any, options: EventOptions }> }): Array<{ fn: (...args: any[]) => any, options: EventOptions }> {\n const subscribers = events[name] || [];\n\n // Update the list of subscribers by pulling out those which will run once.\n // We must do this update prior to running any of the events in case they\n // cause additional events to be turned off or on.\n events[name] = subscribers.filter((sub) => {\n return !sub.options.once;\n });\n Object.keys(events).filter(evt => evt.endsWith('*') && name.startsWith(evt.replace('*', '')))\n .sort((a, b) => b.length - a.length)\n .forEach(evt => subscribers.push(...events[evt].map(sub => ({\n ...sub,\n options: { ...sub.options, event: name }\n }))));\n return subscribers;\n }\n}\n\nconst AppRunVersions = APPRUN_VERSION_GLOBAL;\nlet _app: App;\nconst root = (typeof window !== 'undefined' ? window :\n typeof global !== 'undefined' ? global :\n typeof self !== 'undefined' ? self : {}) as any;\n\nif (root.app && root._AppRunVersions) {\n _app = root.app;\n} else {\n _app = new App();\n root.app = _app;\n root._AppRunVersions = AppRunVersions;\n}\nexport default _app;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};"],"names":["root","factory","exports","module","define","amd","this","Info","constructor","property","attribute","prototype","booleanish","boolean","commaOrSpaceSeparated","commaSeparated","defined","mustUseProperty","number","overloadedBoolean","spaceSeparated","space","undefined","powers","increment","checks","Object","keys","DefinedInfo","mask","index","super","mark","length","check","values","key","value","normalize","toLowerCase","cap","dash","valid","kebab","$0","camelcase","charAt","toUpperCase","Schema","normal","merge","definitions","definition","assign","create","properties","normals","entries","info","transform","attributes","includes","aria","ariaActiveDescendant","ariaAtomic","ariaAutoComplete","ariaBusy","ariaChecked","ariaColCount","ariaColIndex","ariaColSpan","ariaControls","ariaCurrent","ariaDescribedBy","ariaDetails","ariaDisabled","ariaDropEffect","ariaErrorMessage","ariaExpanded","ariaFlowTo","ariaGrabbed","ariaHasPopup","ariaHidden","ariaInvalid","ariaKeyShortcuts","ariaLabel","ariaLabelledBy","ariaLevel","ariaLive","ariaModal","ariaMultiLine","ariaMultiSelectable","ariaOrientation","ariaOwns","ariaPlaceholder","ariaPosInSet","ariaPressed","ariaReadOnly","ariaRelevant","ariaRequired","ariaRoleDescription","ariaRowCount","ariaRowIndex","ariaRowSpan","ariaSelected","ariaSetSize","ariaSort","ariaValueMax","ariaValueMin","ariaValueNow","ariaValueText","role","_","slice","caseSensitiveTransform","caseInsensitiveTransform","html","acceptcharset","classname","htmlfor","httpequiv","abbr","accept","acceptCharset","accessKey","action","allow","allowFullScreen","allowPaymentRequest","allowUserMedia","alt","as","async","autoCapitalize","autoComplete","autoFocus","autoPlay","blocking","capture","charSet","checked","cite","className","cols","colSpan","content","contentEditable","controls","controlsList","coords","crossOrigin","data","dateTime","decoding","default","defer","dir","dirName","disabled","download","draggable","encType","enterKeyHint","fetchPriority","form","formAction","formEncType","formMethod","formNoValidate","formTarget","headers","height","hidden","high","href","hrefLang","htmlFor","httpEquiv","id","imageSizes","imageSrcSet","inert","inputMode","integrity","is","isMap","itemId","itemProp","itemRef","itemScope","itemType","kind","label","lang","language","list","loading","loop","low","manifest","max","maxLength","media","method","min","minLength","multiple","muted","name","nonce","noModule","noValidate","onAbort","onAfterPrint","onAuxClick","onBeforeMatch","onBeforePrint","onBeforeToggle","onBeforeUnload","onBlur","onCancel","onCanPlay","onCanPlayThrough","onChange","onClick","onClose","onContextLost","onContextMenu","onContextRestored","onCopy","onCueChange","onCut","onDblClick","onDrag","onDragEnd","onDragEnter","onDragExit","onDragLeave","onDragOver","onDragStart","onDrop","onDurationChange","onEmptied","onEnded","onError","onFocus","onFormData","onHashChange","onInput","onInvalid","onKeyDown","onKeyPress","onKeyUp","onLanguageChange","onLoad","onLoadedData","onLoadedMetadata","onLoadEnd","onLoadStart","onMessage","onMessageError","onMouseDown","onMouseEnter","onMouseLeave","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onOffline","onOnline","onPageHide","onPageShow","onPaste","onPause","onPlay","onPlaying","onPopState","onProgress","onRateChange","onRejectionHandled","onReset","onResize","onScroll","onScrollEnd","onSecurityPolicyViolation","onSeeked","onSeeking","onSelect","onSlotChange","onStalled","onStorage","onSubmit","onSuspend","onTimeUpdate","onToggle","onUnhandledRejection","onUnload","onVolumeChange","onWaiting","onWheel","open","optimum","pattern","ping","placeholder","playsInline","popover","popoverTarget","popoverTargetAction","poster","preload","readOnly","referrerPolicy","rel","required","reversed","rows","rowSpan","sandbox","scope","scoped","seamless","selected","shadowRootClonable","shadowRootDelegatesFocus","shadowRootMode","shape","size","sizes","slot","span","spellCheck","src","srcDoc","srcLang","srcSet","start","step","style","tabIndex","target","title","translate","type","typeMustMatch","useMap","width","wrap","writingSuggestions","align","aLink","archive","axis","background","bgColor","border","borderColor","bottomMargin","cellPadding","cellSpacing","char","charOff","classId","clear","code","codeBase","codeType","color","compact","declare","event","face","frame","frameBorder","hSpace","leftMargin","link","longDesc","lowSrc","marginHeight","marginWidth","noResize","noHref","noShade","noWrap","object","profile","prompt","rev","rightMargin","rules","scheme","scrolling","standby","summary","text","topMargin","valueType","version","vAlign","vLink","vSpace","allowTransparency","autoCorrect","autoSave","disablePictureInPicture","disableRemotePlayback","prefix","results","security","unselectable","svg","accentHeight","alignmentBaseline","arabicForm","baselineShift","capHeight","clipPath","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","dataType","dominantBaseline","enableBackground","fillOpacity","fillRule","floodColor","floodOpacity","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","horizAdvX","horizOriginX","horizOriginY","imageRendering","letterSpacing","lightingColor","markerEnd","markerMid","markerStart","navDown","navDownLeft","navDownRight","navLeft","navNext","navPrev","navRight","navUp","navUpLeft","navUpRight","onActivate","onBegin","onEnd","onFocusIn","onFocusOut","onMouseWheel","onRepeat","onShow","onZoom","overlinePosition","overlineThickness","paintOrder","panose1","pointerEvents","renderingIntent","shapeRendering","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","strokeDashArray","strokeDashOffset","strokeLineCap","strokeLineJoin","strokeMiterLimit","strokeOpacity","strokeWidth","textAnchor","textDecoration","textRendering","transformOrigin","typeOf","underlinePosition","underlineThickness","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","vHanging","vIdeographic","vMathematical","vectorEffect","vertAdvY","vertOriginX","vertOriginY","wordSpacing","writingMode","xHeight","playbackOrder","timelineBegin","about","accumulate","additive","alphabetic","amplitude","ascent","attributeName","attributeType","azimuth","bandwidth","baseFrequency","baseProfile","bbox","begin","bias","by","calcMode","clip","clipPathUnits","contentScriptType","contentStyleType","cursor","cx","cy","d","defaultAction","descent","diffuseConstant","direction","display","dur","divisor","dx","dy","edgeMode","editable","elevation","end","exponent","externalResourcesRequired","fill","filter","filterRes","filterUnits","focusable","focusHighlight","format","fr","from","fx","fy","g1","g2","glyphRef","gradientTransform","gradientUnits","handler","hanging","hatchContentUnits","hatchUnits","ideographic","initialVisibility","in","in2","intercept","k","k1","k2","k3","k4","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","kerning","lengthAdjust","limitingConeAngle","local","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","mathematical","mediaCharacterEncoding","mediaContentEncodings","mediaSize","mediaTime","mode","numOctaves","observer","offset","opacity","operator","order","orient","orientation","origin","overflow","overlay","path","pathLength","patternContentUnits","patternTransform","patternUnits","phase","pitch","points","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","propagate","r","radius","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","requiredFonts","requiredFormats","resource","restart","result","rotate","rx","ry","scale","seed","side","slope","snapshotTime","specularConstant","specularExponent","spreadMethod","spacing","startOffset","stdDeviation","stemh","stemv","stitchTiles","string","stroke","surfaceScale","syncBehavior","syncBehaviorDefault","syncMaster","syncTolerance","syncToleranceDefault","systemLanguage","tableValues","targetX","targetY","textLength","transformBehavior","to","u1","u2","unicode","viewBox","viewTarget","visibility","widths","x","x1","x2","xChannelSelector","y","y1","y2","yChannelSelector","z","zoomAndPan","xlink","xLinkActuate","xLinkArcRole","xLinkHref","xLinkRole","xLinkShow","xLinkTitle","xLinkType","xmlns","xmlnsxlink","xmlnsXLink","xml","xmlBase","xmlLang","xmlSpace","ATTR_PROPS","propertyInfoCache","Map","setBooleanAttribute","element","Boolean","shouldSetBooleanAttribute","removeAttribute","setAttribute","setElementProperty","propertyName","error","setElementAttribute","isSvg","stringValue","String","split","setAttributeNS","setAttributeOrProperty","dom","prop","document","activeElement","HTMLMediaElement","cssText","s","startsWith","camelKey","str","map","word","join","dataset","setDatasetAttribute","setEventHandler","tagName","cacheKey","get","schema","Type","test","rest","replace","dashes","find","set","getPropertyInfo","isValidAttributeName","updateProps","props","merged","oldProps","newProps","forEach","p","mergeProps","mergedProps","originalProps","window","requestAnimationFrame","applyPropertiesToElement","Fragment","children","collect","ch","push","c","Array","isArray","i","keyCache","cleanupCounter","createElement","tag","getPrototypeOf","__isAppRunComponent","Error","updateElement","nodes","component","parent","createComponent","nodeName","updateChildren","render","getElementById","querySelector","directive","update","node","el","key1","key2","same","parentNode","replaceChild","old_len","childNodes","new_len","len","Math","child","textContent","nodeType","nodeValue","createText","HTMLElement","SVGElement","insertBefore","old","n","removeChild","lastChild","createDocumentFragment","appendChild","safeHTML","div","insertAdjacentHTML","indexOf","substring","createTextNode","JSON","stringify","createElementNS","isConnected","cleanupKeyCache","idx","vdom","Date","now","asTag","__componentCache","renderState","state","mount","mounted","new_state","setState","render_component","new_parent","_component","safeEventTarget","APPRUN_VERSION_GLOBAL","getStateValue","setStateValue","e","run","Number","apply_directive","AppRunVersions","_app","g","self","app","_AppRunVersions","_events","on","fn","options","off","subscribers","sub","args","getSubscribers","console","assert","delay","apply","once","_t","clearTimeout","setTimeout","runAsync","promises","Promise","resolve","reject","all","query","warn","events","evt","endsWith","sort","a","b","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","o","defineProperty","enumerable","globalThis","Function","obj","hasOwnProperty","call","Symbol","toStringTag"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"jsx-runtime.js","mappings":"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","sources":["webpack://apprun/webpack/universalModuleDefinition","webpack://apprun/./node_modules/property-information/lib/util/info.js","webpack://apprun/./node_modules/property-information/lib/util/types.js","webpack://apprun/./node_modules/property-information/lib/util/defined-info.js","webpack://apprun/./node_modules/property-information/lib/normalize.js","webpack://apprun/./node_modules/property-information/lib/find.js","webpack://apprun/./node_modules/property-information/lib/util/schema.js","webpack://apprun/./node_modules/property-information/lib/util/merge.js","webpack://apprun/./node_modules/property-information/lib/util/create.js","webpack://apprun/./node_modules/property-information/lib/aria.js","webpack://apprun/./node_modules/property-information/lib/util/case-sensitive-transform.js","webpack://apprun/./node_modules/property-information/lib/util/case-insensitive-transform.js","webpack://apprun/./node_modules/property-information/lib/html.js","webpack://apprun/./node_modules/property-information/lib/svg.js","webpack://apprun/./node_modules/property-information/lib/xlink.js","webpack://apprun/./node_modules/property-information/lib/xmlns.js","webpack://apprun/./node_modules/property-information/lib/xml.js","webpack://apprun/./node_modules/property-information/index.js","webpack://apprun/./src/vdom-my-prop-attr.ts","webpack://apprun/./src/vdom-my.ts","webpack://apprun/./src/type-utils.ts","webpack://apprun/./src/version.ts","webpack://apprun/./src/directive.ts","webpack://apprun/./src/app.ts","webpack://apprun/webpack/bootstrap","webpack://apprun/webpack/runtime/define property getters","webpack://apprun/webpack/runtime/global","webpack://apprun/webpack/runtime/hasOwnProperty shorthand","webpack://apprun/webpack/runtime/make namespace object"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"apprun\"] = factory();\n\telse\n\t\troot[\"apprun\"] = factory();\n})(this, () => {\nreturn ","/**\n * @import {Info as InfoType} from 'property-information'\n */\n\n/** @type {InfoType} */\nexport class Info {\n /**\n * @param {string} property\n * Property.\n * @param {string} attribute\n * Attribute.\n * @returns\n * Info.\n */\n constructor(property, attribute) {\n this.attribute = attribute\n this.property = property\n }\n}\n\nInfo.prototype.attribute = ''\nInfo.prototype.booleanish = false\nInfo.prototype.boolean = false\nInfo.prototype.commaOrSpaceSeparated = false\nInfo.prototype.commaSeparated = false\nInfo.prototype.defined = false\nInfo.prototype.mustUseProperty = false\nInfo.prototype.number = false\nInfo.prototype.overloadedBoolean = false\nInfo.prototype.property = ''\nInfo.prototype.spaceSeparated = false\nInfo.prototype.space = undefined\n","let powers = 0\n\nexport const boolean = increment()\nexport const booleanish = increment()\nexport const overloadedBoolean = increment()\nexport const number = increment()\nexport const spaceSeparated = increment()\nexport const commaSeparated = increment()\nexport const commaOrSpaceSeparated = increment()\n\nfunction increment() {\n return 2 ** ++powers\n}\n","/**\n * @import {Space} from 'property-information'\n */\n\nimport {Info} from './info.js'\nimport * as types from './types.js'\n\nconst checks = /** @type {ReadonlyArray<keyof typeof types>} */ (\n Object.keys(types)\n)\n\nexport class DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * Property.\n * @param {string} attribute\n * Attribute.\n * @param {number | null | undefined} [mask]\n * Mask.\n * @param {Space | undefined} [space]\n * Space.\n * @returns\n * Info.\n */\n constructor(property, attribute, mask, space) {\n let index = -1\n\n super(property, attribute)\n\n mark(this, 'space', space)\n\n if (typeof mask === 'number') {\n while (++index < checks.length) {\n const check = checks[index]\n mark(this, checks[index], (mask & types[check]) === types[check])\n }\n }\n }\n}\n\nDefinedInfo.prototype.defined = true\n\n/**\n * @template {keyof DefinedInfo} Key\n * Key type.\n * @param {DefinedInfo} values\n * Info.\n * @param {Key} key\n * Key.\n * @param {DefinedInfo[Key]} value\n * Value.\n * @returns {undefined}\n * Nothing.\n */\nfunction mark(values, key, value) {\n if (value) {\n values[key] = value\n }\n}\n","/**\n * Get the cleaned case insensitive form of an attribute or property.\n *\n * @param {string} value\n * An attribute-like or property-like name.\n * @returns {string}\n * Value that can be used to look up the properly cased property on a\n * `Schema`.\n */\nexport function normalize(value) {\n return value.toLowerCase()\n}\n","/**\n * @import {Schema} from 'property-information'\n */\n\nimport {DefinedInfo} from './util/defined-info.js'\nimport {Info} from './util/info.js'\nimport {normalize} from './normalize.js'\n\nconst cap = /[A-Z]/g\nconst dash = /-[a-z]/g\nconst valid = /^data[-\\w.:]+$/i\n\n/**\n * Look up info on a property.\n *\n * In most cases the given `schema` contains info on the property.\n * All standard,\n * most legacy,\n * and some non-standard properties are supported.\n * For these cases,\n * the returned `Info` has hints about the value of the property.\n *\n * `name` can also be a valid data attribute or property,\n * in which case an `Info` object with the correctly cased `attribute` and\n * `property` is returned.\n *\n * `name` can be an unknown attribute,\n * in which case an `Info` object with `attribute` and `property` set to the\n * given name is returned.\n * It is not recommended to provide unsupported legacy or recently specced\n * properties.\n *\n *\n * @param {Schema} schema\n * Schema;\n * either the `html` or `svg` export.\n * @param {string} value\n * An attribute-like or property-like name;\n * it will be passed through `normalize` to hopefully find the correct info.\n * @returns {Info}\n * Info.\n */\nexport function find(schema, value) {\n const normal = normalize(value)\n let property = value\n let Type = Info\n\n if (normal in schema.normal) {\n return schema.property[schema.normal[normal]]\n }\n\n if (normal.length > 4 && normal.slice(0, 4) === 'data' && valid.test(value)) {\n // Attribute or property.\n if (value.charAt(4) === '-') {\n // Turn it into a property.\n const rest = value.slice(5).replace(dash, camelcase)\n property = 'data' + rest.charAt(0).toUpperCase() + rest.slice(1)\n } else {\n // Turn it into an attribute.\n const rest = value.slice(4)\n\n if (!dash.test(rest)) {\n let dashes = rest.replace(cap, kebab)\n\n if (dashes.charAt(0) !== '-') {\n dashes = '-' + dashes\n }\n\n value = 'data' + dashes\n }\n }\n\n Type = DefinedInfo\n }\n\n return new Type(property, value)\n}\n\n/**\n * @param {string} $0\n * Value.\n * @returns {string}\n * Kebab.\n */\nfunction kebab($0) {\n return '-' + $0.toLowerCase()\n}\n\n/**\n * @param {string} $0\n * Value.\n * @returns {string}\n * Camel.\n */\nfunction camelcase($0) {\n return $0.charAt(1).toUpperCase()\n}\n","/**\n * @import {Schema as SchemaType, Space} from 'property-information'\n */\n\n/** @type {SchemaType} */\nexport class Schema {\n /**\n * @param {SchemaType['property']} property\n * Property.\n * @param {SchemaType['normal']} normal\n * Normal.\n * @param {Space | undefined} [space]\n * Space.\n * @returns\n * Schema.\n */\n constructor(property, normal, space) {\n this.normal = normal\n this.property = property\n\n if (space) {\n this.space = space\n }\n }\n}\n\nSchema.prototype.normal = {}\nSchema.prototype.property = {}\nSchema.prototype.space = undefined\n","/**\n * @import {Info, Space} from 'property-information'\n */\n\nimport {Schema} from './schema.js'\n\n/**\n * @param {ReadonlyArray<Schema>} definitions\n * Definitions.\n * @param {Space | undefined} [space]\n * Space.\n * @returns {Schema}\n * Schema.\n */\nexport function merge(definitions, space) {\n /** @type {Record<string, Info>} */\n const property = {}\n /** @type {Record<string, string>} */\n const normal = {}\n\n for (const definition of definitions) {\n Object.assign(property, definition.property)\n Object.assign(normal, definition.normal)\n }\n\n return new Schema(property, normal, space)\n}\n","/**\n * @import {Info, Space} from 'property-information'\n */\n\n/**\n * @typedef Definition\n * Definition of a schema.\n * @property {Record<string, string> | undefined} [attributes]\n * Normalzed names to special attribute case.\n * @property {ReadonlyArray<string> | undefined} [mustUseProperty]\n * Normalized names that must be set as properties.\n * @property {Record<string, number | null>} properties\n * Property names to their types.\n * @property {Space | undefined} [space]\n * Space.\n * @property {Transform} transform\n * Transform a property name.\n */\n\n/**\n * @callback Transform\n * Transform.\n * @param {Record<string, string>} attributes\n * Attributes.\n * @param {string} property\n * Property.\n * @returns {string}\n * Attribute.\n */\n\nimport {normalize} from '../normalize.js'\nimport {DefinedInfo} from './defined-info.js'\nimport {Schema} from './schema.js'\n\n/**\n * @param {Definition} definition\n * Definition.\n * @returns {Schema}\n * Schema.\n */\nexport function create(definition) {\n /** @type {Record<string, Info>} */\n const properties = {}\n /** @type {Record<string, string>} */\n const normals = {}\n\n for (const [property, value] of Object.entries(definition.properties)) {\n const info = new DefinedInfo(\n property,\n definition.transform(definition.attributes || {}, property),\n value,\n definition.space\n )\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(property)\n ) {\n info.mustUseProperty = true\n }\n\n properties[property] = info\n\n normals[normalize(property)] = property\n normals[normalize(info.attribute)] = property\n }\n\n return new Schema(properties, normals, definition.space)\n}\n","import {create} from './util/create.js'\nimport {booleanish, number, spaceSeparated} from './util/types.js'\n\nexport const aria = create({\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n },\n transform(_, property) {\n return property === 'role'\n ? property\n : 'aria-' + property.slice(4).toLowerCase()\n }\n})\n","/**\n * @param {Record<string, string>} attributes\n * Attributes.\n * @param {string} attribute\n * Attribute.\n * @returns {string}\n * Transformed attribute.\n */\nexport function caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n","import {caseSensitiveTransform} from './case-sensitive-transform.js'\n\n/**\n * @param {Record<string, string>} attributes\n * Attributes.\n * @param {string} property\n * Property.\n * @returns {string}\n * Transformed property.\n */\nexport function caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n","import {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\nimport {create} from './util/create.js'\nimport {\n booleanish,\n boolean,\n commaSeparated,\n number,\n overloadedBoolean,\n spaceSeparated\n} from './util/types.js'\n\nexport const html = create({\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n blocking: spaceSeparated,\n capture: null,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n fetchPriority: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: overloadedBoolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: null,\n inert: boolean,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforeMatch: null,\n onBeforePrint: null,\n onBeforeToggle: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextLost: null,\n onContextMenu: null,\n onContextRestored: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onScrollEnd: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n popover: null,\n popoverTarget: null,\n popoverTargetAction: null,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shadowRootClonable: boolean,\n shadowRootDelegatesFocus: boolean,\n shadowRootMode: null,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: null,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n writingSuggestions: null,\n\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null, // Several. Use CSS `text-align` instead,\n aLink: null, // `<body>`. Use CSS `a:active {color}` instead\n archive: spaceSeparated, // `<object>`. List of URIs to archives\n axis: null, // `<td>` and `<th>`. Use `scope` on `<th>`\n background: null, // `<body>`. Use CSS `background-image` instead\n bgColor: null, // `<body>` and table elements. Use CSS `background-color` instead\n border: number, // `<table>`. Use CSS `border-width` instead,\n borderColor: null, // `<table>`. Use CSS `border-color` instead,\n bottomMargin: number, // `<body>`\n cellPadding: null, // `<table>`\n cellSpacing: null, // `<table>`\n char: null, // Several table elements. When `align=char`, sets the character to align on\n charOff: null, // Several table elements. When `char`, offsets the alignment\n classId: null, // `<object>`\n clear: null, // `<br>`. Use CSS `clear` instead\n code: null, // `<object>`\n codeBase: null, // `<object>`\n codeType: null, // `<object>`\n color: null, // `<font>` and `<hr>`. Use CSS instead\n compact: boolean, // Lists. Use CSS to reduce space between items instead\n declare: boolean, // `<object>`\n event: null, // `<script>`\n face: null, // `<font>`. Use CSS instead\n frame: null, // `<table>`\n frameBorder: null, // `<iframe>`. Use CSS `border` instead\n hSpace: number, // `<img>` and `<object>`\n leftMargin: number, // `<body>`\n link: null, // `<body>`. Use CSS `a:link {color: *}` instead\n longDesc: null, // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`\n lowSrc: null, // `<img>`. Use a `<picture>`\n marginHeight: number, // `<body>`\n marginWidth: number, // `<body>`\n noResize: boolean, // `<frame>`\n noHref: boolean, // `<area>`. Use no href instead of an explicit `nohref`\n noShade: boolean, // `<hr>`. Use background-color and height instead of borders\n noWrap: boolean, // `<td>` and `<th>`\n object: null, // `<applet>`\n profile: null, // `<head>`\n prompt: null, // `<isindex>`\n rev: null, // `<link>`\n rightMargin: number, // `<body>`\n rules: null, // `<table>`\n scheme: null, // `<meta>`\n scrolling: booleanish, // `<frame>`. Use overflow in the child context\n standby: null, // `<object>`\n summary: null, // `<table>`\n text: null, // `<body>`. Use CSS `color` instead\n topMargin: number, // `<body>`\n valueType: null, // `<param>`\n version: null, // `<html>`. Use a doctype.\n vAlign: null, // Several. Use CSS `vertical-align` instead\n vLink: null, // `<body>`. Use CSS `a:visited {color}` instead\n vSpace: number, // `<img>` and `<object>`\n\n // Non-standard Properties.\n allowTransparency: null,\n autoCorrect: null,\n autoSave: null,\n disablePictureInPicture: boolean,\n disableRemotePlayback: boolean,\n prefix: null,\n property: null,\n results: number,\n security: null,\n unselectable: null\n },\n space: 'html',\n transform: caseInsensitiveTransform\n})\n","import {caseSensitiveTransform} from './util/case-sensitive-transform.js'\nimport {create} from './util/create.js'\nimport {\n boolean,\n commaOrSpaceSeparated,\n commaSeparated,\n number,\n spaceSeparated\n} from './util/types.js'\n\nexport const svg = create({\n attributes: {\n accentHeight: 'accent-height',\n alignmentBaseline: 'alignment-baseline',\n arabicForm: 'arabic-form',\n baselineShift: 'baseline-shift',\n capHeight: 'cap-height',\n className: 'class',\n clipPath: 'clip-path',\n clipRule: 'clip-rule',\n colorInterpolation: 'color-interpolation',\n colorInterpolationFilters: 'color-interpolation-filters',\n colorProfile: 'color-profile',\n colorRendering: 'color-rendering',\n crossOrigin: 'crossorigin',\n dataType: 'datatype',\n dominantBaseline: 'dominant-baseline',\n enableBackground: 'enable-background',\n fillOpacity: 'fill-opacity',\n fillRule: 'fill-rule',\n floodColor: 'flood-color',\n floodOpacity: 'flood-opacity',\n fontFamily: 'font-family',\n fontSize: 'font-size',\n fontSizeAdjust: 'font-size-adjust',\n fontStretch: 'font-stretch',\n fontStyle: 'font-style',\n fontVariant: 'font-variant',\n fontWeight: 'font-weight',\n glyphName: 'glyph-name',\n glyphOrientationHorizontal: 'glyph-orientation-horizontal',\n glyphOrientationVertical: 'glyph-orientation-vertical',\n hrefLang: 'hreflang',\n horizAdvX: 'horiz-adv-x',\n horizOriginX: 'horiz-origin-x',\n horizOriginY: 'horiz-origin-y',\n imageRendering: 'image-rendering',\n letterSpacing: 'letter-spacing',\n lightingColor: 'lighting-color',\n markerEnd: 'marker-end',\n markerMid: 'marker-mid',\n markerStart: 'marker-start',\n navDown: 'nav-down',\n navDownLeft: 'nav-down-left',\n navDownRight: 'nav-down-right',\n navLeft: 'nav-left',\n navNext: 'nav-next',\n navPrev: 'nav-prev',\n navRight: 'nav-right',\n navUp: 'nav-up',\n navUpLeft: 'nav-up-left',\n navUpRight: 'nav-up-right',\n onAbort: 'onabort',\n onActivate: 'onactivate',\n onAfterPrint: 'onafterprint',\n onBeforePrint: 'onbeforeprint',\n onBegin: 'onbegin',\n onCancel: 'oncancel',\n onCanPlay: 'oncanplay',\n onCanPlayThrough: 'oncanplaythrough',\n onChange: 'onchange',\n onClick: 'onclick',\n onClose: 'onclose',\n onCopy: 'oncopy',\n onCueChange: 'oncuechange',\n onCut: 'oncut',\n onDblClick: 'ondblclick',\n onDrag: 'ondrag',\n onDragEnd: 'ondragend',\n onDragEnter: 'ondragenter',\n onDragExit: 'ondragexit',\n onDragLeave: 'ondragleave',\n onDragOver: 'ondragover',\n onDragStart: 'ondragstart',\n onDrop: 'ondrop',\n onDurationChange: 'ondurationchange',\n onEmptied: 'onemptied',\n onEnd: 'onend',\n onEnded: 'onended',\n onError: 'onerror',\n onFocus: 'onfocus',\n onFocusIn: 'onfocusin',\n onFocusOut: 'onfocusout',\n onHashChange: 'onhashchange',\n onInput: 'oninput',\n onInvalid: 'oninvalid',\n onKeyDown: 'onkeydown',\n onKeyPress: 'onkeypress',\n onKeyUp: 'onkeyup',\n onLoad: 'onload',\n onLoadedData: 'onloadeddata',\n onLoadedMetadata: 'onloadedmetadata',\n onLoadStart: 'onloadstart',\n onMessage: 'onmessage',\n onMouseDown: 'onmousedown',\n onMouseEnter: 'onmouseenter',\n onMouseLeave: 'onmouseleave',\n onMouseMove: 'onmousemove',\n onMouseOut: 'onmouseout',\n onMouseOver: 'onmouseover',\n onMouseUp: 'onmouseup',\n onMouseWheel: 'onmousewheel',\n onOffline: 'onoffline',\n onOnline: 'ononline',\n onPageHide: 'onpagehide',\n onPageShow: 'onpageshow',\n onPaste: 'onpaste',\n onPause: 'onpause',\n onPlay: 'onplay',\n onPlaying: 'onplaying',\n onPopState: 'onpopstate',\n onProgress: 'onprogress',\n onRateChange: 'onratechange',\n onRepeat: 'onrepeat',\n onReset: 'onreset',\n onResize: 'onresize',\n onScroll: 'onscroll',\n onSeeked: 'onseeked',\n onSeeking: 'onseeking',\n onSelect: 'onselect',\n onShow: 'onshow',\n onStalled: 'onstalled',\n onStorage: 'onstorage',\n onSubmit: 'onsubmit',\n onSuspend: 'onsuspend',\n onTimeUpdate: 'ontimeupdate',\n onToggle: 'ontoggle',\n onUnload: 'onunload',\n onVolumeChange: 'onvolumechange',\n onWaiting: 'onwaiting',\n onZoom: 'onzoom',\n overlinePosition: 'overline-position',\n overlineThickness: 'overline-thickness',\n paintOrder: 'paint-order',\n panose1: 'panose-1',\n pointerEvents: 'pointer-events',\n referrerPolicy: 'referrerpolicy',\n renderingIntent: 'rendering-intent',\n shapeRendering: 'shape-rendering',\n stopColor: 'stop-color',\n stopOpacity: 'stop-opacity',\n strikethroughPosition: 'strikethrough-position',\n strikethroughThickness: 'strikethrough-thickness',\n strokeDashArray: 'stroke-dasharray',\n strokeDashOffset: 'stroke-dashoffset',\n strokeLineCap: 'stroke-linecap',\n strokeLineJoin: 'stroke-linejoin',\n strokeMiterLimit: 'stroke-miterlimit',\n strokeOpacity: 'stroke-opacity',\n strokeWidth: 'stroke-width',\n tabIndex: 'tabindex',\n textAnchor: 'text-anchor',\n textDecoration: 'text-decoration',\n textRendering: 'text-rendering',\n transformOrigin: 'transform-origin',\n typeOf: 'typeof',\n underlinePosition: 'underline-position',\n underlineThickness: 'underline-thickness',\n unicodeBidi: 'unicode-bidi',\n unicodeRange: 'unicode-range',\n unitsPerEm: 'units-per-em',\n vAlphabetic: 'v-alphabetic',\n vHanging: 'v-hanging',\n vIdeographic: 'v-ideographic',\n vMathematical: 'v-mathematical',\n vectorEffect: 'vector-effect',\n vertAdvY: 'vert-adv-y',\n vertOriginX: 'vert-origin-x',\n vertOriginY: 'vert-origin-y',\n wordSpacing: 'word-spacing',\n writingMode: 'writing-mode',\n xHeight: 'x-height',\n // These were camelcased in Tiny. Now lowercased in SVG 2\n playbackOrder: 'playbackorder',\n timelineBegin: 'timelinebegin'\n },\n properties: {\n about: commaOrSpaceSeparated,\n accentHeight: number,\n accumulate: null,\n additive: null,\n alignmentBaseline: null,\n alphabetic: number,\n amplitude: number,\n arabicForm: null,\n ascent: number,\n attributeName: null,\n attributeType: null,\n azimuth: number,\n bandwidth: null,\n baselineShift: null,\n baseFrequency: null,\n baseProfile: null,\n bbox: null,\n begin: null,\n bias: number,\n by: null,\n calcMode: null,\n capHeight: number,\n className: spaceSeparated,\n clip: null,\n clipPath: null,\n clipPathUnits: null,\n clipRule: null,\n color: null,\n colorInterpolation: null,\n colorInterpolationFilters: null,\n colorProfile: null,\n colorRendering: null,\n content: null,\n contentScriptType: null,\n contentStyleType: null,\n crossOrigin: null,\n cursor: null,\n cx: null,\n cy: null,\n d: null,\n dataType: null,\n defaultAction: null,\n descent: number,\n diffuseConstant: number,\n direction: null,\n display: null,\n dur: null,\n divisor: number,\n dominantBaseline: null,\n download: boolean,\n dx: null,\n dy: null,\n edgeMode: null,\n editable: null,\n elevation: number,\n enableBackground: null,\n end: null,\n event: null,\n exponent: number,\n externalResourcesRequired: null,\n fill: null,\n fillOpacity: number,\n fillRule: null,\n filter: null,\n filterRes: null,\n filterUnits: null,\n floodColor: null,\n floodOpacity: null,\n focusable: null,\n focusHighlight: null,\n fontFamily: null,\n fontSize: null,\n fontSizeAdjust: null,\n fontStretch: null,\n fontStyle: null,\n fontVariant: null,\n fontWeight: null,\n format: null,\n fr: null,\n from: null,\n fx: null,\n fy: null,\n g1: commaSeparated,\n g2: commaSeparated,\n glyphName: commaSeparated,\n glyphOrientationHorizontal: null,\n glyphOrientationVertical: null,\n glyphRef: null,\n gradientTransform: null,\n gradientUnits: null,\n handler: null,\n hanging: number,\n hatchContentUnits: null,\n hatchUnits: null,\n height: null,\n href: null,\n hrefLang: null,\n horizAdvX: number,\n horizOriginX: number,\n horizOriginY: number,\n id: null,\n ideographic: number,\n imageRendering: null,\n initialVisibility: null,\n in: null,\n in2: null,\n intercept: number,\n k: number,\n k1: number,\n k2: number,\n k3: number,\n k4: number,\n kernelMatrix: commaOrSpaceSeparated,\n kernelUnitLength: null,\n keyPoints: null, // SEMI_COLON_SEPARATED\n keySplines: null, // SEMI_COLON_SEPARATED\n keyTimes: null, // SEMI_COLON_SEPARATED\n kerning: null,\n lang: null,\n lengthAdjust: null,\n letterSpacing: null,\n lightingColor: null,\n limitingConeAngle: number,\n local: null,\n markerEnd: null,\n markerMid: null,\n markerStart: null,\n markerHeight: null,\n markerUnits: null,\n markerWidth: null,\n mask: null,\n maskContentUnits: null,\n maskUnits: null,\n mathematical: null,\n max: null,\n media: null,\n mediaCharacterEncoding: null,\n mediaContentEncodings: null,\n mediaSize: number,\n mediaTime: null,\n method: null,\n min: null,\n mode: null,\n name: null,\n navDown: null,\n navDownLeft: null,\n navDownRight: null,\n navLeft: null,\n navNext: null,\n navPrev: null,\n navRight: null,\n navUp: null,\n navUpLeft: null,\n navUpRight: null,\n numOctaves: null,\n observer: null,\n offset: null,\n onAbort: null,\n onActivate: null,\n onAfterPrint: null,\n onBeforePrint: null,\n onBegin: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnd: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFocusIn: null,\n onFocusOut: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadStart: null,\n onMessage: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onMouseWheel: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRepeat: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onShow: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onZoom: null,\n opacity: null,\n operator: null,\n order: null,\n orient: null,\n orientation: null,\n origin: null,\n overflow: null,\n overlay: null,\n overlinePosition: number,\n overlineThickness: number,\n paintOrder: null,\n panose1: null,\n path: null,\n pathLength: number,\n patternContentUnits: null,\n patternTransform: null,\n patternUnits: null,\n phase: null,\n ping: spaceSeparated,\n pitch: null,\n playbackOrder: null,\n pointerEvents: null,\n points: null,\n pointsAtX: number,\n pointsAtY: number,\n pointsAtZ: number,\n preserveAlpha: null,\n preserveAspectRatio: null,\n primitiveUnits: null,\n propagate: null,\n property: commaOrSpaceSeparated,\n r: null,\n radius: null,\n referrerPolicy: null,\n refX: null,\n refY: null,\n rel: commaOrSpaceSeparated,\n rev: commaOrSpaceSeparated,\n renderingIntent: null,\n repeatCount: null,\n repeatDur: null,\n requiredExtensions: commaOrSpaceSeparated,\n requiredFeatures: commaOrSpaceSeparated,\n requiredFonts: commaOrSpaceSeparated,\n requiredFormats: commaOrSpaceSeparated,\n resource: null,\n restart: null,\n result: null,\n rotate: null,\n rx: null,\n ry: null,\n scale: null,\n seed: null,\n shapeRendering: null,\n side: null,\n slope: null,\n snapshotTime: null,\n specularConstant: number,\n specularExponent: number,\n spreadMethod: null,\n spacing: null,\n startOffset: null,\n stdDeviation: null,\n stemh: null,\n stemv: null,\n stitchTiles: null,\n stopColor: null,\n stopOpacity: null,\n strikethroughPosition: number,\n strikethroughThickness: number,\n string: null,\n stroke: null,\n strokeDashArray: commaOrSpaceSeparated,\n strokeDashOffset: null,\n strokeLineCap: null,\n strokeLineJoin: null,\n strokeMiterLimit: number,\n strokeOpacity: number,\n strokeWidth: null,\n style: null,\n surfaceScale: number,\n syncBehavior: null,\n syncBehaviorDefault: null,\n syncMaster: null,\n syncTolerance: null,\n syncToleranceDefault: null,\n systemLanguage: commaOrSpaceSeparated,\n tabIndex: number,\n tableValues: null,\n target: null,\n targetX: number,\n targetY: number,\n textAnchor: null,\n textDecoration: null,\n textRendering: null,\n textLength: null,\n timelineBegin: null,\n title: null,\n transformBehavior: null,\n type: null,\n typeOf: commaOrSpaceSeparated,\n to: null,\n transform: null,\n transformOrigin: null,\n u1: null,\n u2: null,\n underlinePosition: number,\n underlineThickness: number,\n unicode: null,\n unicodeBidi: null,\n unicodeRange: null,\n unitsPerEm: number,\n values: null,\n vAlphabetic: number,\n vMathematical: number,\n vectorEffect: null,\n vHanging: number,\n vIdeographic: number,\n version: null,\n vertAdvY: number,\n vertOriginX: number,\n vertOriginY: number,\n viewBox: null,\n viewTarget: null,\n visibility: null,\n width: null,\n widths: null,\n wordSpacing: null,\n writingMode: null,\n x: null,\n x1: null,\n x2: null,\n xChannelSelector: null,\n xHeight: number,\n y: null,\n y1: null,\n y2: null,\n yChannelSelector: null,\n z: null,\n zoomAndPan: null\n },\n space: 'svg',\n transform: caseSensitiveTransform\n})\n","import {create} from './util/create.js'\n\nexport const xlink = create({\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n },\n space: 'xlink',\n transform(_, property) {\n return 'xlink:' + property.slice(5).toLowerCase()\n }\n})\n","import {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const xmlns = create({\n attributes: {xmlnsxlink: 'xmlns:xlink'},\n properties: {xmlnsXLink: null, xmlns: null},\n space: 'xmlns',\n transform: caseInsensitiveTransform\n})\n","import {create} from './util/create.js'\n\nexport const xml = create({\n properties: {xmlBase: null, xmlLang: null, xmlSpace: null},\n space: 'xml',\n transform(_, property) {\n return 'xml:' + property.slice(3).toLowerCase()\n }\n})\n","// Note: types exposed from `index.d.ts`.\nimport {merge} from './lib/util/merge.js'\nimport {aria} from './lib/aria.js'\nimport {html as htmlBase} from './lib/html.js'\nimport {svg as svgBase} from './lib/svg.js'\nimport {xlink} from './lib/xlink.js'\nimport {xmlns} from './lib/xmlns.js'\nimport {xml} from './lib/xml.js'\n\nexport {hastToReact} from './lib/hast-to-react.js'\n\nexport const html = merge([aria, htmlBase, xlink, xmlns, xml], 'html')\n\nexport {find} from './lib/find.js'\nexport {normalize} from './lib/normalize.js'\n\nexport const svg = merge([aria, svgBase, xlink, xmlns, xml], 'svg')\n","/**\n * VDOM Property and Attribute Handler\n * Standards-compliant property/attribute handling with caching and special element support\n * Features: Skip logic for preserving user interactions during VDOM reconciliation\n * Exports: updateProps - Main function for DOM element property updates\n * Updated: 2025-01-14 - Skip logic for focus-sensitive (selection), scroll, and media properties\n */\n\nimport { find, html, svg } from 'property-information';\n\nconst ATTR_PROPS = '_props';\nconst propertyInfoCache = new Map<string, any>();\n\n// Merge old and new props, handling className -> class conversion and null cleanup\nfunction mergeProps(oldProps: { [key: string]: any }, newProps: { [key: string]: any }): { [key: string]: any } {\n if (newProps) {\n newProps['class'] = newProps['class'] || newProps['className'];\n delete newProps['className'];\n }\n\n if (!oldProps || Object.keys(oldProps).length === 0) return newProps || {};\n if (!newProps || Object.keys(newProps).length === 0) {\n const props: { [key: string]: any } = {};\n Object.keys(oldProps).forEach(p => props[p] = null);\n return props;\n }\n\n const props: { [key: string]: any } = {};\n Object.keys(oldProps).forEach(p => {\n if (!(p in newProps)) props[p] = null;\n });\n Object.keys(newProps).forEach(p => props[p] = newProps[p]);\n return props;\n}\n\n// Convert kebab-case to camelCase for dataset keys\nfunction convertKebabToCamelCase(str: string): string {\n if (str.length <= 1) return str.toLowerCase();\n return str.split('-').map((word, index) =>\n index === 0 ? word.toLowerCase() : word.charAt(0).toUpperCase() + word.slice(1).toLowerCase()\n ).join('');\n}\n\n// Cached property information lookup\nfunction getPropertyInfo(name: string, isSvg: boolean) {\n const cacheKey = `${name}:${isSvg}`;\n let info = propertyInfoCache.get(cacheKey);\n if (info === undefined) {\n info = find(isSvg ? svg : html, name) || null;\n propertyInfoCache.set(cacheKey, info);\n }\n return info;\n}\n\n\n// Specialized handlers for different attribute types\nfunction setDatasetAttribute(element: Element, attributeName: string, value: any): void {\n const camelKey = convertKebabToCamelCase(attributeName.slice(5));\n if (value == null) {\n delete (element as HTMLElement).dataset[camelKey];\n } else {\n (element as HTMLElement).dataset[camelKey] = String(value);\n }\n}\n\nfunction setEventHandler(element: Element, name: string, value: any): void {\n if (!name.startsWith('on')) return;\n\n if (!value || typeof value === 'function') {\n (element as any)[name] = value;\n } else if (typeof value === 'string') {\n if (value) element.setAttribute(name, value);\n else element.removeAttribute(name);\n }\n}\n\nfunction setBooleanAttribute(element: Element, attributeName: string, value: any): void {\n if (shouldSetBooleanAttribute(value)) {\n element.setAttribute(attributeName, attributeName);\n } else {\n element.removeAttribute(attributeName);\n }\n}\n\nfunction setElementProperty(element: Element, propertyName: string, value: any): void {\n try {\n (element as any)[propertyName] = value;\n } catch (error) {\n setElementAttribute(element, propertyName, value, false);\n }\n}\n\nfunction setElementAttribute(element: Element, attributeName: string, value: any, isSvg: boolean): void {\n if (value == null) {\n element.removeAttribute(attributeName);\n return;\n }\n\n const stringValue = String(value);\n if (isSvg && attributeName.includes(':')) {\n const [prefix] = attributeName.split(':');\n if (prefix === 'xlink') {\n element.setAttributeNS('http://www.w3.org/1999/xlink', attributeName, stringValue);\n } else {\n element.setAttribute(attributeName, stringValue);\n }\n } else {\n element.setAttribute(attributeName, stringValue);\n }\n}\n\nfunction shouldSetBooleanAttribute(value: any): boolean {\n if (value == null || value === false || value === '') return false;\n if (value === true) return true;\n if (typeof value === 'string') {\n const lowerValue = value.toLowerCase();\n return lowerValue !== 'false' && value !== '0';\n }\n return Boolean(value);\n}\n\n// Core property/attribute setting function - handles all property types with skip logic\nfunction setAttributeOrProperty(element: Element, name: string, value: any, isSvg: boolean): void {\n // Check if we should skip this property update to preserve user interaction\n if (shouldSkipPatch(element as HTMLElement, name)) {\n return;\n }\n\n // Special cases with dedicated handling\n if (name === 'style') {\n if ((element as HTMLElement).style.cssText) (element as HTMLElement).style.cssText = '';\n if (typeof value === 'string') (element as HTMLElement).style.cssText = value;\n else if (value && typeof value === 'object') {\n for (const s in value) {\n if ((element as HTMLElement).style[s] !== value[s]) (element as HTMLElement).style[s] = value[s];\n }\n }\n return;\n }\n\n if (name === 'key') {\n if (value !== undefined && value !== null) (element as any).key = value;\n return;\n }\n\n if (name.startsWith('data-')) {\n setDatasetAttribute(element, name, value);\n return;\n }\n\n if (name.startsWith('on')) {\n setEventHandler(element, name, value);\n return;\n }\n\n // Form elements with special property requirements\n if ((element.tagName === 'INPUT' || element.tagName === 'TEXTAREA' || element.tagName === 'SELECT') &&\n (name === 'value' || name === 'selected' || name === 'selectedIndex')) {\n setElementProperty(element, name, value);\n return;\n }\n\n // Input checked needs both property and attribute\n if (element.tagName === 'INPUT' && name === 'checked') {\n setElementProperty(element, name, value);\n setBooleanAttribute(element, name, value);\n return;\n }\n\n // Use property information for standard attributes\n const info = getPropertyInfo(name, isSvg);\n if (info) {\n if (info.boolean || info.overloadedBoolean) {\n setBooleanAttribute(element, info.attribute, value);\n } else if (info.mustUseProperty && !isSvg) {\n setElementProperty(element, info.property, value);\n } else {\n setElementAttribute(element, info.attribute, value, isSvg);\n }\n } else {\n // Fallback handling for unknown attributes\n if (name.startsWith('aria-') || name === 'role') {\n setElementAttribute(element, name, value, isSvg);\n } else if (name in element || (element as any)[name] !== undefined) {\n setElementProperty(element, name, value);\n } else {\n setElementAttribute(element, name, value, isSvg);\n }\n }\n}\n\n// Skip logic for preventing user interaction disruption during VDOM reconciliation\nfunction shouldSkipPatch(dom: HTMLElement, prop: string): boolean {\n if (document.activeElement === dom) {\n return ['selectionStart', 'selectionEnd', 'selectionDirection']\n .includes(prop);\n }\n if (prop === 'scrollTop' || prop === 'scrollLeft') {\n return true;\n }\n if (dom instanceof HTMLMediaElement &&\n ['currentTime', 'paused', 'playbackRate', 'volume'].includes(prop)) {\n return true;\n }\n return false; // default: allow normal diff logic\n}\n\nfunction isValidAttributeName(name: string): boolean {\n return /^[a-zA-Z_:][\\w\\-:.]*$/.test(name) &&\n !name.includes('<') && !name.includes('>') && !name.includes('\"') && !name.includes(\"'\");\n}\n\n\n// Main exported function for updating element properties\nexport function updateProps(element: Element, props: { [key: string]: any }, isSvg: boolean): void {\n // console.assert(!!element);\n const cached = element[ATTR_PROPS] || {};\n const merged = mergeProps(cached, props);\n element[ATTR_PROPS] = props || {};\n\n applyPropertiesToElement(element, merged, props, isSvg);\n}\n\n// Apply merged properties to element with ref handling\nfunction applyPropertiesToElement(\n element: Element,\n mergedProps: { [key: string]: any },\n originalProps: { [key: string]: any } | null,\n isSvg: boolean\n): void {\n for (const name in mergedProps) {\n if (isValidAttributeName(name)) {\n setAttributeOrProperty(element, name, mergedProps[name], isSvg);\n }\n }\n\n // Handle ref callback\n if (mergedProps && typeof mergedProps['ref'] === 'function') {\n window.requestAnimationFrame(() => mergedProps['ref'](element));\n }\n}\n","/** * VDOM Implementation for AppRun\n * \n * Notes for AppRun’s key prop\n * Use the key prop only if you need to preserve browser-side DOM state (such as cursor \n * position in an <input>, focus, or maintaining state in inline components).\n *\n * For most use cases, especially with stateless or purely data-driven UIs, key is not\n * needed and may decrease performance by forcing DOM moves.\n *\n * AppRun aggressively updates DOM to match your vdom, so DOM node preservation is\n * only valuable when you intentionally depend on browser-managed state.\n *\n * | Use Case | Should I use `key`? | Why |\n * | ----------------------------- | ------------------- | --------------------- |\n * | Preserve input cursor/focus | ✅ Yes | Keeps browser state |\n * | Inline stateful component | ✅ Yes | Preserves component |\n * | Regular data list (stateless) | 🚫 No | Unnecessary DOM moves | \n * | Purely visual updates | 🚫 No | No state to preserve |\n * \n * Features:\n * - Virtual DOM rendering and diffing for efficient DOM updates\n * - JSX Fragment support for both Babel and TypeScript\n * - Element creation with props, children, and event handling\n * - SVG element support with proper namespace handling\n * - Component lifecycle management and caching\n * - Keyed element optimization with automatic cleanup for memory management\n * - Safe HTML insertion and text node creation\n * - Directive processing integration\n * \n * Implementation:\n * - Uses plain JavaScript object for keyCache instead of Map for better performance\n * - Implements automatic cleanup of disconnected elements from keyCache\n * - Supports both string and function-based tags\n * - Handles component mounting and state management\n * - Optimized children updating with minimal DOM operations\n * - Memory-efficient caching with configurable thresholds (500 ops, 1000 max size)\n * \n * Recent Changes:\n * - 2025-07-15: Converted keyCache from Map to plain object ({}) for improved performance\n * - Updated cleanup functions to use object property deletion instead of Map methods\n * - Enhanced memory management with automatic cleanup of disconnected elements\n * - Added comprehensive key prop usage documentation and guidelines\n */\n\nimport { VDOM, VNode } from './types';\nimport directive from './directive';\nimport { updateProps } from './vdom-my-prop-attr';\nexport type Element = any; //HTMLElement | SVGSVGElement | SVGElement;\n\nexport function Fragment(props, ...children): any[] {\n return collect(children);\n}\n\nfunction collect(children) {\n const ch = [];\n const push = (c) => {\n if (c !== null && c !== undefined && c !== '' && c !== false) {\n ch.push((typeof c === 'function' || typeof c === 'object') ? c : `${c}`);\n }\n }\n children && children.forEach(c => {\n if (Array.isArray(c)) {\n c.forEach(i => push(i));\n } else {\n push(c);\n }\n });\n return ch;\n}\n\nconst keyCache: { [key: string]: Element } = {};\nlet cleanupCounter = 0;\nconst CLEANUP_THRESHOLD = 500; // Cleanup every 500 operations\nconst MAX_CACHE_SIZE = 1000;\n\n// Lightweight cleanup function - only runs when needed\nfunction cleanupKeyCache() {\n if (Object.keys(keyCache).length <= MAX_CACHE_SIZE) return; // Skip if under limit\n\n for (const [key, element] of Object.entries(keyCache)) {\n if (!element.isConnected) {\n delete keyCache[key];\n }\n }\n}\n\n// Export cleanup function for manual cleanup if needed\nexport function clearKeyCache() {\n for (const key in keyCache) {\n delete keyCache[key];\n }\n cleanupCounter = 0;\n}\n\nexport function createElement(tag: string | Function | [], props?: {}, ...children) {\n const ch = collect(children);\n if (typeof tag === 'string') return { tag, props, children: ch };\n else if (Array.isArray(tag)) return tag; // JSX fragments - babel\n else if (tag === undefined && children) return ch; // JSX fragments - typescript\n else if (Object.getPrototypeOf(tag).__isAppRunComponent) return { tag, props, children: ch } // createComponent(tag, { ...props, children });\n else if (typeof tag === 'function') return tag(props, ch);\n else throw new Error(`Unknown tag in vdom ${tag}`);\n};\n\nexport const updateElement = (element: Element | string, nodes: VDOM, component = {}) => {\n // tslint:disable-next-line\n if (nodes == null || nodes === false) return;\n const el = (typeof element === 'string' && element) ?\n document.getElementById(element) || document.querySelector(element) : element;\n nodes = directive(nodes, component);\n render(el, nodes, component);\n}\n\nfunction render(element: Element, nodes: VDOM, parent = {}) {\n // tslint:disable-next-line\n if (nodes == null || nodes === false) return;\n nodes = createComponent(nodes, parent);\n if (!element) return;\n const isSvg = element.nodeName === \"SVG\";\n if (Array.isArray(nodes)) {\n updateChildren(element, nodes, isSvg);\n } else {\n updateChildren(element, [nodes], isSvg);\n }\n}\n\nfunction same(el: Element, node: VNode) {\n // if (!el || !node) return false;\n const key1 = el.nodeName;\n const key2 = `${node.tag || ''}`;\n return key1.toUpperCase() === key2.toUpperCase();\n}\n\nfunction update(element: Element, node: VNode, isSvg: boolean) {\n // console.assert(!!element);\n isSvg = isSvg || node.tag === \"svg\";\n if (!same(element, node)) {\n element.parentNode.replaceChild(create(node, isSvg), element);\n return;\n }\n updateChildren(element, node.children, isSvg);\n updateProps(element, node.props, isSvg);\n}\n\nfunction updateChildren(element, children, isSvg: boolean) {\n const old_len = element.childNodes?.length || 0;\n const new_len = children?.length || 0;\n const len = Math.min(old_len, new_len);\n for (let i = 0; i < len; i++) {\n const child = children[i];\n const el = element.childNodes[i];\n if (typeof child === 'string') {\n if (el.textContent !== child) {\n if (el.nodeType === 3) {\n el.nodeValue = child\n } else {\n element.replaceChild(createText(child), el);\n }\n }\n } else if (child instanceof HTMLElement || child instanceof SVGElement) {\n element.insertBefore(child, el);\n } else {\n const key = child.props && child.props['key'];\n if (key) {\n if (el.key === key) {\n update(element.childNodes[i], child, isSvg);\n } else {\n // console.log(el.key, key);\n const old = keyCache[key];\n if (old) {\n // const temp = old.nextSibling;\n element.insertBefore(old, el);\n // temp ? element.insertBefore(el, temp) : element.appendChild(el);\n update(element.childNodes[i], child, isSvg);\n } else {\n element.replaceChild(create(child, isSvg), el);\n }\n }\n } else {\n update(element.childNodes[i], child, isSvg);\n }\n }\n }\n\n let n = element.childNodes?.length || 0;\n while (n > len) {\n element.removeChild(element.lastChild);\n n--;\n }\n\n if (new_len > len) {\n const d = document.createDocumentFragment();\n for (let i = len; i < children.length; i++) {\n d.appendChild(create(children[i], isSvg));\n }\n element.appendChild(d);\n }\n}\n\nexport const safeHTML = (html: string) => {\n const div = document.createElement('section');\n div.insertAdjacentHTML('afterbegin', html)\n return Array.from(div.children);\n}\n\nfunction createText(node) {\n if (node?.indexOf('_html:') === 0) { // ?\n const div = document.createElement('div');\n div.insertAdjacentHTML('afterbegin', node.substring(6))\n return div;\n } else {\n return document.createTextNode(node ?? '');\n }\n}\n\nfunction create(node: VNode | string | HTMLElement | SVGElement, isSvg: boolean): Element {\n // console.assert(node !== null && node !== undefined);\n if ((node instanceof HTMLElement) || (node instanceof SVGElement)) return node;\n if (typeof node === \"string\") return createText(node);\n if (!node.tag || (typeof node.tag === 'function')) return createText(JSON.stringify(node));\n isSvg = isSvg || node.tag === \"svg\";\n const element = isSvg\n ? document.createElementNS(\"http://www.w3.org/2000/svg\", node.tag)\n : document.createElement(node.tag);\n\n updateProps(element, node.props, isSvg);\n if (node.children) node.children.forEach(child => element.appendChild(create(child, isSvg)));\n\n if (node.props && (node.props as any).key !== undefined) {\n (element as any).key = (node.props as any).key;\n keyCache[(node.props as any).key] = element;\n\n // Lightweight cleanup - only when counter reaches threshold\n if (++cleanupCounter >= CLEANUP_THRESHOLD) {\n cleanupKeyCache();\n cleanupCounter = 0;\n }\n }\n return element\n}\n\nfunction render_component(node, parent, idx) {\n const { tag, props, children } = node;\n let key = `_${idx}`;\n let id = props && props['id'];\n if (!id) id = `_${idx}${Date.now()}`;\n else key = id;\n let asTag = 'section';\n if (props && props['as']) {\n asTag = props['as'];\n delete props['as'];\n }\n if (!parent.__componentCache) parent.__componentCache = {};\n let component = parent.__componentCache[key];\n if (!component || !(component instanceof tag) || !component.element) {\n const element = document.createElement(asTag);\n component = parent.__componentCache[key] = new tag({ ...props, children }).mount(element, { render: true });\n } else {\n component.renderState(component.state);\n }\n if (component.mounted) {\n const new_state = component.mounted(props, children, component.state);\n (typeof new_state !== 'undefined') && component.setState(new_state);\n }\n updateProps(component.element, props, false);\n return component.element;\n}\n\nfunction createComponent(node, parent, idx = 0) {\n if (typeof node === 'string') return node;\n if (Array.isArray(node)) return node.map(child => createComponent(child, parent, idx++));\n let vdom = node;\n if (node && typeof node.tag === 'function' && Object.getPrototypeOf(node.tag).__isAppRunComponent) {\n vdom = render_component(node, parent, idx);\n }\n if (vdom && Array.isArray(vdom.children)) {\n const new_parent = vdom.props?._component;\n if (new_parent) {\n let i = 0;\n vdom.children = vdom.children.map(child => createComponent(child, new_parent, i++));\n } else {\n vdom.children = vdom.children.map(child => createComponent(child, parent, idx++));\n }\n }\n return vdom;\n}\n","/**\n * Type Safety Utilities for AppRun\n * \n * This file provides utility functions and types to improve type safety\n * across the AppRun framework, including:\n * 1. Safe type assertions with null checks\n * 2. Global object assignment helpers\n * 3. Event target type guards\n * 4. Function validation utilities\n */\n\n/**\n * Safely cast event target to specific HTML element type with null check\n */\nexport function safeEventTarget<T extends HTMLElement = HTMLElement>(event: Event): T | null {\n return event?.target instanceof HTMLElement ? event.target as T : null;\n}\n\n/**\n * Type guard to check if an object is a valid function\n */\nexport function isFunction(obj: any): obj is Function {\n return typeof obj === 'function';\n}\n\n/**\n * Type guard to check if an object is a valid HTML element\n */\nexport function isHTMLElement(obj: any): obj is HTMLElement {\n return obj instanceof HTMLElement;\n}\n\n/**\n * Safely assign properties to global object with type checking\n */\nexport function safeGlobalAssign<T extends Record<string, any>>(\n globalObj: any,\n assignments: T\n): void {\n if (typeof globalObj === 'object' && globalObj !== null) {\n Object.keys(assignments).forEach(key => {\n globalObj[key] = assignments[key];\n });\n }\n}\n\n/**\n * Safely get property from global object with fallback\n */\nexport function safeGlobalGet<T>(\n globalObj: any,\n property: string,\n fallback?: T\n): T | undefined {\n if (typeof globalObj === 'object' && globalObj !== null) {\n return globalObj[property] ?? fallback;\n }\n return fallback;\n}\n\n/**\n * Type-safe wrapper for DOM element queries\n */\nexport function safeQuerySelector<T extends Element = Element>(\n selector: string,\n context: Document | Element = document\n): T | null {\n try {\n return context.querySelector<T>(selector);\n } catch (error) {\n console.warn(`Invalid selector: ${selector}`, error);\n return null;\n }\n}\n\n/**\n * Type-safe wrapper for DOM element by ID\n */\nexport function safeGetElementById<T extends HTMLElement = HTMLElement>(\n id: string\n): T | null {\n try {\n return document.getElementById(id) as T | null;\n } catch (error) {\n console.warn(`Error getting element by id: ${id}`, error);\n return null;\n }\n}\n\n/**\n * Validate and safely execute a function with error handling\n */\nexport function safeExecute<T extends any[], R>(\n fn: ((...args: T) => R) | undefined | null,\n args: T,\n context?: any,\n errorMessage?: string\n): R | undefined {\n if (!isFunction(fn)) {\n if (errorMessage) {\n console.warn(errorMessage, fn);\n }\n return undefined;\n }\n\n try {\n return context ? fn.apply(context, args) : fn(...args);\n } catch (error) {\n console.error(errorMessage || 'Error executing function:', error);\n return undefined;\n }\n}\n\n/**\n * Type definitions for improved global object safety\n */\nexport interface SafeGlobalWindow {\n Component?: any;\n _React?: any;\n React?: any;\n on?: any;\n customElement?: any;\n safeHTML?: any;\n html?: any;\n svg?: any;\n run?: any;\n [key: string]: any;\n}\n\nexport type SafeGlobalContext = SafeGlobalWindow | typeof globalThis | any;\n","/**\n * Version Management Utility\n * \n * Single source of truth for AppRun version information.\n * This file ensures version consistency across all modules.\n * \n * The version is derived from package.json and should be updated\n * only when the package version changes.\n */\n\n// Import version from package.json to maintain single source of truth\n// This version string is used across the framework\nexport const APPRUN_VERSION = '3.38.0';\n\n// Version string with prefix for global tracking\nexport const APPRUN_VERSION_GLOBAL = `AppRun-${APPRUN_VERSION}`;\n","/**\n * Component Directives Implementation\n * \n * This file provides built-in directives for components:\n * 1. Event Binding ($on directives)\n * - $on: Bind DOM events to component events\n * - Supports event delegation and parameters\n * - Handles function, string, and array event handlers\n * - Type-safe event target handling\n * \n * 2. Two-way Data Binding ($bind directive)\n * - $bind: Sync form elements with component state\n * - Handles input types: text, checkbox, radio, number, range\n * - Supports select (single/multiple) and textarea elements\n * - Automatic value type conversion for numbers\n * - Support for complex property paths\n * \n * 3. Custom Directives\n * - Extensible directive system via '$' events\n * - Processes virtual DOM during rendering\n * - Supports custom attribute directives\n * \n * Features:\n * - Automatic state synchronization\n * - Type conversion for form inputs\n * - Event delegation support\n * - Multiple event handler formats\n * - Nested property binding\n * - Custom directive extensibility\n *\n * Type Safety Improvements (v3.35.1):\n * - Added null checks for event targets before type assertions\n * - Proper typing for different HTML element types\n * - Enhanced error handling for invalid event targets\n * - Safer DOM element property access\n *\n * Nested State Binding Support (v3.37.4):\n * - Enhanced $bind directive to support nested object and array paths\n * - Supports dot notation: 'user.name', 'user.profile.settings.theme'\n * - Supports bracket notation: 'items[0]', 'users[1].name'\n * - Supports mixed notation: 'users[0].settings.theme', 'data[\"key\"].value'\n * - Safe traversal with automatic intermediate object/array creation\n * - Maintains backward compatibility with simple property binding\n *\n * Usage:\n * ```tsx\n * // Event binding\n * <button $onclick=\"event-name\">Click</button>\n * <input $oninput={e => setState(e.target.value)} />\n * \n * // Simple two-way binding\n * <input $bind=\"state.property\" />\n * <select $bind=\"selected\">...</select>\n * \n * // Nested object binding\n * <input $bind=\"user.profile.name\" />\n * <input $bind=\"user.settings.theme\" />\n * \n * // Array element binding\n * <input $bind=\"items[0]\" />\n * <input $bind=\"todos[1].title\" />\n * \n * // Mixed nested binding\n * <input $bind=\"users[0].profile.settings.notifications.email\" />\n * <select $bind=\"config.display.mode\">...</select>\n * \n * // Array handlers\n * <button $onclick={['handler', param1, param2]}>Click</button>\n * ```\n */\n\nimport app from './app';\nimport { safeEventTarget } from './type-utils';\n\n/**\n * Parse a path string into an array of keys and indices\n * Supports paths like: 'a.b', 'a[0]', 'a[0].b', 'a[\"key\"]'\n */\nconst parsePath = (path: string): Array<string | number> => {\n if (!path) return [];\n \n const keys: Array<string | number> = [];\n let current = '';\n let inBracket = false;\n let quoteChar = '';\n \n for (let i = 0; i < path.length; i++) {\n const char = path[i];\n \n if (char === '[' && !inBracket) {\n if (current) {\n keys.push(current);\n current = '';\n }\n inBracket = true;\n } else if (char === ']' && inBracket) {\n if (quoteChar) {\n // Remove quotes from string keys\n current = current.slice(1, -1);\n } else if (/^\\d+$/.test(current)) {\n // Convert numeric strings to numbers\n current = parseInt(current, 10) as any;\n }\n keys.push(current);\n current = '';\n inBracket = false;\n quoteChar = '';\n } else if ((char === '\"' || char === \"'\") && inBracket) {\n if (!quoteChar) {\n quoteChar = char;\n } else if (char === quoteChar) {\n quoteChar = '';\n }\n current += char;\n } else if (char === '.' && !inBracket) {\n if (current) {\n keys.push(current);\n current = '';\n }\n } else {\n current += char;\n }\n }\n \n if (current) {\n keys.push(current);\n }\n \n return keys;\n};\n\n/**\n * Safely get a nested value from an object using a path\n */\nconst getNestedValue = (obj: any, path: Array<string | number>): any => {\n let current = obj;\n for (const key of path) {\n if (current == null) return undefined;\n current = current[key];\n }\n return current;\n};\n\n/**\n * Safely set a nested value in an object using a path\n * Creates intermediate objects/arrays as needed\n */\nconst setNestedValue = (obj: any, path: Array<string | number>, value: any): any => {\n if (path.length === 0) return value;\n \n const result = { ...obj };\n let current = result;\n \n for (let i = 0; i < path.length - 1; i++) {\n const key = path[i];\n const nextKey = path[i + 1];\n \n if (current[key] == null) {\n // Create array if next key is numeric, object otherwise\n current[key] = typeof nextKey === 'number' ? [] : {};\n } else if (Array.isArray(current[key])) {\n current[key] = [...current[key]];\n } else if (typeof current[key] === 'object') {\n current[key] = { ...current[key] };\n }\n \n current = current[key];\n }\n \n current[path[path.length - 1]] = value;\n return result;\n};\n\nconst getStateValue = (component, name) => {\n if (!name) return component['state'] || '';\n \n const path = parsePath(name);\n const value = getNestedValue(component['state'], path);\n return value !== undefined ? value : '';\n}\n\nconst setStateValue = (component, name, value) => {\n if (!name) {\n component.setState(value);\n return;\n }\n \n const path = parsePath(name);\n const currentState = component['state'] || {};\n const newState = setNestedValue(currentState, path, value);\n component.setState(newState);\n}\n\nconst apply_directive = (key: string, props: {}, tag, component) => {\n if (key.startsWith('$on')) {\n const event = props[key];\n key = key.substring(1)\n if (typeof event === 'boolean') {\n props[key] = e => component.run ? component.run(key, e) : app.run(key, e);\n } else if (typeof event === 'string') {\n props[key] = e => component.run ? component.run(event, e) : app.run(event, e);\n } else if (typeof event === 'function') {\n props[key] = e => component.setState(event(component.state, e));\n } else if (Array.isArray(event)) {\n const [handler, ...p] = event;\n if (typeof handler === 'string') {\n props[key] = e => component.run ? component.run(handler, ...p, e) : app.run(handler, ...p, e);\n } else if (typeof handler === 'function') {\n props[key] = e => component.setState(handler(component.state, ...p, e));\n }\n }\n\n } else if (key === '$bind') {\n const type = props['type'] || 'text';\n const name = typeof props[key] === 'string' ? props[key] : props['name'];\n if (tag === 'input') {\n switch (type) {\n case 'checkbox':\n props['checked'] = getStateValue(component, name);\n props['onclick'] = e => {\n const target = safeEventTarget<HTMLInputElement>(e);\n if (target) {\n setStateValue(component, name || target.name, target.checked);\n }\n };\n break;\n case 'radio':\n props['checked'] = getStateValue(component, name) === props['value'];\n props['onclick'] = e => {\n const target = safeEventTarget<HTMLInputElement>(e);\n if (target) {\n setStateValue(component, name || target.name, target.value);\n }\n };\n break;\n case 'number':\n case 'range':\n props['value'] = getStateValue(component, name);\n props['oninput'] = e => {\n const target = safeEventTarget<HTMLInputElement>(e);\n if (target) {\n setStateValue(component, name || target.name, Number(target.value));\n }\n };\n break;\n default:\n props['value'] = getStateValue(component, name);\n props['oninput'] = e => {\n const target = safeEventTarget<HTMLInputElement>(e);\n if (target) {\n setStateValue(component, name || target.name, target.value);\n }\n };\n }\n } else if (tag === 'select') {\n props['value'] = getStateValue(component, name);\n props['onchange'] = e => {\n const target = safeEventTarget<HTMLSelectElement>(e);\n if (target && !target.multiple) { // multiple selection use $bind on option\n setStateValue(component, name || target.name, target.value);\n }\n }\n } else if (tag === 'option') {\n props['selected'] = getStateValue(component, name);\n props['onclick'] = e => {\n const target = safeEventTarget<HTMLOptionElement>(e);\n if (target) {\n setStateValue(component, name || (target as any).name, target.selected);\n }\n };\n } else if (tag === 'textarea') {\n props['innerHTML'] = getStateValue(component, name);\n props['oninput'] = e => {\n const target = safeEventTarget<HTMLTextAreaElement>(e);\n if (target) {\n setStateValue(component, name || target.name, target.value);\n }\n };\n }\n } else {\n app.run('$', { key, tag, props, component });\n }\n}\n\nconst directive = (vdom, component) => {\n if (Array.isArray(vdom)) {\n return vdom.map(element => directive(element, component));\n } else {\n let { type, tag, props, children } = vdom;\n tag = tag || type;\n children = children || props?.children;\n if (props) Object.keys(props).forEach(key => {\n if (key.startsWith('$')) {\n apply_directive(key, props, tag, component);\n delete props[key];\n }\n });\n if (children) directive(children, component);\n return vdom;\n }\n}\n\nexport default directive;\n","/**\n * Core AppRun application class and singleton instance\n *\n * This file provides:\n * 1. App class - The core event system implementation with pub/sub capabilities\n * - on(): Subscribe to events with options (once, delay, global)\n * - off(): Unsubscribe from events with proper cleanup\n * - run(): Publish events synchronously with error handling\n * - runAsync(): Publish events asynchronously with Promise support, returns handler values\n * - query(): Deprecated alias for runAsync() - use runAsync() instead\n *\n * 2. Default app singleton - Global event bus instance\n * - Created once and reused across the application\n * - Stored in global scope (window/global) with version tracking\n * - Prevents duplicate instances across different versions\n *\n * Features:\n * - Event wildcards support (events ending with '*')\n * - Delayed event execution with timeout management\n * - Once-only event subscriptions\n * - Async event handling with Promise.all\n * - Global event bus shared across components\n * - Memory leak prevention with proper cleanup\n *\n * Type Safety Improvements (v3.35.1):\n * - Added validation for event handler functions\n * - Enhanced error handling in event execution\n * - Improved null checks in delayed event handling\n * - Better error reporting for invalid handlers\n *\n * Usage:\n * ```ts\n * // Subscribe to events\n * app.on('event-name', (state, ...args) => {\n * // Handle event\n * });\n *\n * // Publish events (fire-and-forget)\n * app.run('event-name', ...args);\n * \n * // Get return values from event handlers\n * app.runAsync('event-name', data).then(results => {\n * // Handle results array\n * });\n * ```\n */\n\nimport { EventOptions } from './types'\nimport { APPRUN_VERSION_GLOBAL } from './version'\n\nexport class App {\n\n _events: { [key: string]: Array<{ fn: (...args: any[]) => any, options: EventOptions }> };\n\n constructor() {\n this._events = {} as { [key: string]: Array<{ fn: (...args: any[]) => any, options: EventOptions }> };\n }\n\n on(name: string, fn: (...args: any[]) => any, options: EventOptions = {}): void {\n this._events[name] = this._events[name] || [];\n this._events[name].push({ fn, options });\n }\n\n off(name: string, fn: (...args: any[]) => any): void {\n const subscribers = this._events[name] || [];\n\n this._events[name] = subscribers.filter((sub) => sub.fn !== fn);\n }\n\n find(name: string): any {\n return this._events[name];\n }\n\n run(name: string, ...args: any[]): number {\n const subscribers = this.getSubscribers(name, this._events);\n console.assert(subscribers && subscribers.length > 0, 'No subscriber for event: ' + name);\n subscribers.forEach((sub) => {\n const { fn, options } = sub;\n if (!fn || typeof fn !== 'function') {\n console.error(`AppRun event handler for '${name}' is not a function:`, fn);\n return false;\n }\n if (options.delay) {\n this.delay(name, fn, args, options);\n } else {\n try {\n Object.keys(options).length > 0 ? fn.apply(this, [...args, options]) : fn.apply(this, args);\n } catch (error) {\n console.error(`Error in event handler for '${name}':`, error);\n }\n }\n return !sub.options.once;\n });\n\n return subscribers.length;\n }\n\n once(name: string, fn: (...args: any[]) => any, options: EventOptions = {}): void {\n this.on(name, fn, { ...options, once: true });\n }\n\n private delay(name: string, fn: (...args: any[]) => any, args: any[], options: EventOptions): void {\n if (options._t) clearTimeout(options._t);\n options._t = setTimeout(() => {\n clearTimeout(options._t);\n try {\n Object.keys(options).length > 0 ? fn.apply(this, [...args, options]) : fn.apply(this, args);\n } catch (error) {\n console.error(`Error in delayed event handler for '${name}':`, error);\n }\n }, options.delay);\n }\n\n runAsync(name: string, ...args: any[]): Promise<any[]> {\n const subscribers = this.getSubscribers(name, this._events);\n console.assert(subscribers && subscribers.length > 0, 'No subscriber for event: ' + name);\n const promises = subscribers.map(sub => {\n const { fn, options } = sub;\n if (!fn || typeof fn !== 'function') {\n console.error(`AppRun async event handler for '${name}' is not a function:`, fn);\n return Promise.resolve(null);\n }\n try {\n return Object.keys(options).length > 0 ? fn.apply(this, [...args, options]) : fn.apply(this, args);\n } catch (error) {\n console.error(`Error in async event handler for '${name}':`, error);\n return Promise.reject(error);\n }\n });\n return Promise.all(promises);\n }\n\n /**\n * @deprecated Use runAsync() instead. app.query() will be removed in a future version.\n */\n query(name: string, ...args: any[]): Promise<any[]> {\n console.warn('app.query() is deprecated. Use app.runAsync() instead.');\n return this.runAsync(name, ...args);\n }\n\n private getSubscribers(name: string, events: { [key: string]: Array<{ fn: (...args: any[]) => any, options: EventOptions }> }): Array<{ fn: (...args: any[]) => any, options: EventOptions }> {\n const subscribers = events[name] || [];\n\n // Update the list of subscribers by pulling out those which will run once.\n // We must do this update prior to running any of the events in case they\n // cause additional events to be turned off or on.\n events[name] = subscribers.filter((sub) => {\n return !sub.options.once;\n });\n Object.keys(events).filter(evt => evt.endsWith('*') && name.startsWith(evt.replace('*', '')))\n .sort((a, b) => b.length - a.length)\n .forEach(evt => subscribers.push(...events[evt].map(sub => ({\n ...sub,\n options: { ...sub.options, event: name }\n }))));\n return subscribers;\n }\n}\n\nconst AppRunVersions = APPRUN_VERSION_GLOBAL;\nlet _app: App;\nconst root = (typeof window !== 'undefined' ? window :\n typeof global !== 'undefined' ? global :\n typeof self !== 'undefined' ? self : {}) as any;\n\nif (root.app && root._AppRunVersions) {\n _app = root.app;\n} else {\n _app = new App();\n root.app = _app;\n root._AppRunVersions = AppRunVersions;\n}\nexport default _app;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};"],"names":["root","factory","exports","module","define","amd","this","Info","constructor","property","attribute","prototype","booleanish","boolean","commaOrSpaceSeparated","commaSeparated","defined","mustUseProperty","number","overloadedBoolean","spaceSeparated","space","undefined","powers","increment","checks","Object","keys","DefinedInfo","mask","index","super","mark","length","check","values","key","value","normalize","toLowerCase","cap","dash","valid","kebab","$0","camelcase","charAt","toUpperCase","Schema","normal","merge","definitions","definition","assign","create","properties","normals","entries","info","transform","attributes","includes","aria","ariaActiveDescendant","ariaAtomic","ariaAutoComplete","ariaBusy","ariaChecked","ariaColCount","ariaColIndex","ariaColSpan","ariaControls","ariaCurrent","ariaDescribedBy","ariaDetails","ariaDisabled","ariaDropEffect","ariaErrorMessage","ariaExpanded","ariaFlowTo","ariaGrabbed","ariaHasPopup","ariaHidden","ariaInvalid","ariaKeyShortcuts","ariaLabel","ariaLabelledBy","ariaLevel","ariaLive","ariaModal","ariaMultiLine","ariaMultiSelectable","ariaOrientation","ariaOwns","ariaPlaceholder","ariaPosInSet","ariaPressed","ariaReadOnly","ariaRelevant","ariaRequired","ariaRoleDescription","ariaRowCount","ariaRowIndex","ariaRowSpan","ariaSelected","ariaSetSize","ariaSort","ariaValueMax","ariaValueMin","ariaValueNow","ariaValueText","role","_","slice","caseSensitiveTransform","caseInsensitiveTransform","html","acceptcharset","classname","htmlfor","httpequiv","abbr","accept","acceptCharset","accessKey","action","allow","allowFullScreen","allowPaymentRequest","allowUserMedia","alt","as","async","autoCapitalize","autoComplete","autoFocus","autoPlay","blocking","capture","charSet","checked","cite","className","cols","colSpan","content","contentEditable","controls","controlsList","coords","crossOrigin","data","dateTime","decoding","default","defer","dir","dirName","disabled","download","draggable","encType","enterKeyHint","fetchPriority","form","formAction","formEncType","formMethod","formNoValidate","formTarget","headers","height","hidden","high","href","hrefLang","htmlFor","httpEquiv","id","imageSizes","imageSrcSet","inert","inputMode","integrity","is","isMap","itemId","itemProp","itemRef","itemScope","itemType","kind","label","lang","language","list","loading","loop","low","manifest","max","maxLength","media","method","min","minLength","multiple","muted","name","nonce","noModule","noValidate","onAbort","onAfterPrint","onAuxClick","onBeforeMatch","onBeforePrint","onBeforeToggle","onBeforeUnload","onBlur","onCancel","onCanPlay","onCanPlayThrough","onChange","onClick","onClose","onContextLost","onContextMenu","onContextRestored","onCopy","onCueChange","onCut","onDblClick","onDrag","onDragEnd","onDragEnter","onDragExit","onDragLeave","onDragOver","onDragStart","onDrop","onDurationChange","onEmptied","onEnded","onError","onFocus","onFormData","onHashChange","onInput","onInvalid","onKeyDown","onKeyPress","onKeyUp","onLanguageChange","onLoad","onLoadedData","onLoadedMetadata","onLoadEnd","onLoadStart","onMessage","onMessageError","onMouseDown","onMouseEnter","onMouseLeave","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onOffline","onOnline","onPageHide","onPageShow","onPaste","onPause","onPlay","onPlaying","onPopState","onProgress","onRateChange","onRejectionHandled","onReset","onResize","onScroll","onScrollEnd","onSecurityPolicyViolation","onSeeked","onSeeking","onSelect","onSlotChange","onStalled","onStorage","onSubmit","onSuspend","onTimeUpdate","onToggle","onUnhandledRejection","onUnload","onVolumeChange","onWaiting","onWheel","open","optimum","pattern","ping","placeholder","playsInline","popover","popoverTarget","popoverTargetAction","poster","preload","readOnly","referrerPolicy","rel","required","reversed","rows","rowSpan","sandbox","scope","scoped","seamless","selected","shadowRootClonable","shadowRootDelegatesFocus","shadowRootMode","shape","size","sizes","slot","span","spellCheck","src","srcDoc","srcLang","srcSet","start","step","style","tabIndex","target","title","translate","type","typeMustMatch","useMap","width","wrap","writingSuggestions","align","aLink","archive","axis","background","bgColor","border","borderColor","bottomMargin","cellPadding","cellSpacing","char","charOff","classId","clear","code","codeBase","codeType","color","compact","declare","event","face","frame","frameBorder","hSpace","leftMargin","link","longDesc","lowSrc","marginHeight","marginWidth","noResize","noHref","noShade","noWrap","object","profile","prompt","rev","rightMargin","rules","scheme","scrolling","standby","summary","text","topMargin","valueType","version","vAlign","vLink","vSpace","allowTransparency","autoCorrect","autoSave","disablePictureInPicture","disableRemotePlayback","prefix","results","security","unselectable","svg","accentHeight","alignmentBaseline","arabicForm","baselineShift","capHeight","clipPath","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","dataType","dominantBaseline","enableBackground","fillOpacity","fillRule","floodColor","floodOpacity","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","horizAdvX","horizOriginX","horizOriginY","imageRendering","letterSpacing","lightingColor","markerEnd","markerMid","markerStart","navDown","navDownLeft","navDownRight","navLeft","navNext","navPrev","navRight","navUp","navUpLeft","navUpRight","onActivate","onBegin","onEnd","onFocusIn","onFocusOut","onMouseWheel","onRepeat","onShow","onZoom","overlinePosition","overlineThickness","paintOrder","panose1","pointerEvents","renderingIntent","shapeRendering","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","strokeDashArray","strokeDashOffset","strokeLineCap","strokeLineJoin","strokeMiterLimit","strokeOpacity","strokeWidth","textAnchor","textDecoration","textRendering","transformOrigin","typeOf","underlinePosition","underlineThickness","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","vHanging","vIdeographic","vMathematical","vectorEffect","vertAdvY","vertOriginX","vertOriginY","wordSpacing","writingMode","xHeight","playbackOrder","timelineBegin","about","accumulate","additive","alphabetic","amplitude","ascent","attributeName","attributeType","azimuth","bandwidth","baseFrequency","baseProfile","bbox","begin","bias","by","calcMode","clip","clipPathUnits","contentScriptType","contentStyleType","cursor","cx","cy","d","defaultAction","descent","diffuseConstant","direction","display","dur","divisor","dx","dy","edgeMode","editable","elevation","end","exponent","externalResourcesRequired","fill","filter","filterRes","filterUnits","focusable","focusHighlight","format","fr","from","fx","fy","g1","g2","glyphRef","gradientTransform","gradientUnits","handler","hanging","hatchContentUnits","hatchUnits","ideographic","initialVisibility","in","in2","intercept","k","k1","k2","k3","k4","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","kerning","lengthAdjust","limitingConeAngle","local","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","mathematical","mediaCharacterEncoding","mediaContentEncodings","mediaSize","mediaTime","mode","numOctaves","observer","offset","opacity","operator","order","orient","orientation","origin","overflow","overlay","path","pathLength","patternContentUnits","patternTransform","patternUnits","phase","pitch","points","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","propagate","r","radius","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","requiredFonts","requiredFormats","resource","restart","result","rotate","rx","ry","scale","seed","side","slope","snapshotTime","specularConstant","specularExponent","spreadMethod","spacing","startOffset","stdDeviation","stemh","stemv","stitchTiles","string","stroke","surfaceScale","syncBehavior","syncBehaviorDefault","syncMaster","syncTolerance","syncToleranceDefault","systemLanguage","tableValues","targetX","targetY","textLength","transformBehavior","to","u1","u2","unicode","viewBox","viewTarget","visibility","widths","x","x1","x2","xChannelSelector","y","y1","y2","yChannelSelector","z","zoomAndPan","xlink","xLinkActuate","xLinkArcRole","xLinkHref","xLinkRole","xLinkShow","xLinkTitle","xLinkType","xmlns","xmlnsxlink","xmlnsXLink","xml","xmlBase","xmlLang","xmlSpace","ATTR_PROPS","propertyInfoCache","Map","setBooleanAttribute","element","Boolean","shouldSetBooleanAttribute","removeAttribute","setAttribute","setElementProperty","propertyName","error","setElementAttribute","isSvg","stringValue","String","split","setAttributeNS","setAttributeOrProperty","dom","prop","document","activeElement","HTMLMediaElement","cssText","s","startsWith","camelKey","str","map","word","join","dataset","setDatasetAttribute","setEventHandler","tagName","cacheKey","get","schema","Type","test","rest","replace","dashes","find","set","getPropertyInfo","isValidAttributeName","updateProps","props","merged","oldProps","newProps","forEach","p","mergeProps","mergedProps","originalProps","window","requestAnimationFrame","applyPropertiesToElement","Fragment","children","collect","ch","push","c","Array","isArray","i","keyCache","cleanupCounter","createElement","tag","getPrototypeOf","__isAppRunComponent","Error","updateElement","nodes","component","parent","createComponent","nodeName","updateChildren","render","getElementById","querySelector","directive","update","node","el","key1","key2","same","parentNode","replaceChild","old_len","childNodes","new_len","len","Math","child","textContent","nodeType","nodeValue","createText","HTMLElement","SVGElement","insertBefore","old","n","removeChild","lastChild","createDocumentFragment","appendChild","safeHTML","div","insertAdjacentHTML","indexOf","substring","createTextNode","JSON","stringify","createElementNS","isConnected","cleanupKeyCache","idx","vdom","Date","now","asTag","__componentCache","renderState","state","mount","mounted","new_state","setState","render_component","new_parent","_component","safeEventTarget","APPRUN_VERSION_GLOBAL","parsePath","current","inBracket","quoteChar","parseInt","getStateValue","obj","getNestedValue","setStateValue","newState","nextKey","setNestedValue","e","run","Number","apply_directive","AppRunVersions","_app","g","self","app","_AppRunVersions","_events","on","fn","options","off","subscribers","sub","args","getSubscribers","console","assert","delay","apply","once","_t","clearTimeout","setTimeout","runAsync","promises","Promise","resolve","reject","all","query","warn","events","evt","endsWith","sort","a","b","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","o","defineProperty","enumerable","globalThis","Function","hasOwnProperty","call","Symbol","toStringTag"],"sourceRoot":""}
|