juxscript 1.1.393 → 1.1.395

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/bin/cli.js +9 -9
  2. package/dist/components/barChart.d.ts +103 -0
  3. package/dist/components/barChart.d.ts.map +1 -0
  4. package/dist/components/barChart.js +520 -0
  5. package/dist/components/barChart.js.map +1 -0
  6. package/dist/components/c.d.ts.map +1 -1
  7. package/dist/components/c.js +16 -12
  8. package/dist/components/c.js.map +1 -1
  9. package/dist/components/g.d.ts +21 -0
  10. package/dist/components/g.d.ts.map +1 -0
  11. package/dist/components/g.js +52 -0
  12. package/dist/components/g.js.map +1 -0
  13. package/dist/components/gateway.d.ts +97 -0
  14. package/dist/components/gateway.d.ts.map +1 -0
  15. package/dist/components/gateway.js +188 -0
  16. package/dist/components/gateway.js.map +1 -0
  17. package/dist/components/lineChart.d.ts +87 -0
  18. package/dist/components/lineChart.d.ts.map +1 -0
  19. package/dist/components/lineChart.js +330 -0
  20. package/dist/components/lineChart.js.map +1 -0
  21. package/dist/components/pieChart.d.ts +86 -0
  22. package/dist/components/pieChart.d.ts.map +1 -0
  23. package/dist/components/pieChart.js +300 -0
  24. package/dist/components/pieChart.js.map +1 -0
  25. package/dist/index.d.ts +15 -0
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +16 -1
  28. package/dist/index.js.map +1 -1
  29. package/dist/primitives/button.d.ts +53 -0
  30. package/dist/primitives/button.d.ts.map +1 -0
  31. package/dist/primitives/button.js +170 -0
  32. package/dist/primitives/button.js.map +1 -0
  33. package/dist/primitives/c.d.ts +53 -0
  34. package/dist/primitives/c.d.ts.map +1 -0
  35. package/dist/primitives/c.js +127 -0
  36. package/dist/primitives/c.js.map +1 -0
  37. package/dist/primitives/checkbox.d.ts +92 -0
  38. package/dist/primitives/checkbox.d.ts.map +1 -0
  39. package/dist/primitives/checkbox.js +217 -0
  40. package/dist/primitives/checkbox.js.map +1 -0
  41. package/dist/primitives/data.d.ts +58 -0
  42. package/dist/primitives/data.d.ts.map +1 -0
  43. package/dist/primitives/data.js +131 -0
  44. package/dist/primitives/data.js.map +1 -0
  45. package/dist/primitives/grid.d.ts +58 -0
  46. package/dist/primitives/grid.d.ts.map +1 -0
  47. package/dist/primitives/grid.js +128 -0
  48. package/dist/primitives/grid.js.map +1 -0
  49. package/dist/primitives/include.d.ts +86 -0
  50. package/dist/primitives/include.d.ts.map +1 -0
  51. package/dist/primitives/include.js +239 -0
  52. package/dist/primitives/include.js.map +1 -0
  53. package/dist/primitives/indexDb.d.ts +80 -0
  54. package/dist/primitives/indexDb.d.ts.map +1 -0
  55. package/dist/primitives/indexDb.js +253 -0
  56. package/dist/primitives/indexDb.js.map +1 -0
  57. package/dist/primitives/input.d.ts +88 -0
  58. package/dist/primitives/input.d.ts.map +1 -0
  59. package/dist/primitives/input.js +216 -0
  60. package/dist/primitives/input.js.map +1 -0
  61. package/dist/primitives/link.d.ts +51 -0
  62. package/dist/primitives/link.d.ts.map +1 -0
  63. package/dist/primitives/link.js +178 -0
  64. package/dist/primitives/link.js.map +1 -0
  65. package/dist/primitives/list.d.ts +66 -0
  66. package/dist/primitives/list.d.ts.map +1 -0
  67. package/dist/primitives/list.js +233 -0
  68. package/dist/primitives/list.js.map +1 -0
  69. package/dist/primitives/nav.d.ts +64 -0
  70. package/dist/primitives/nav.d.ts.map +1 -0
  71. package/dist/primitives/nav.js +236 -0
  72. package/dist/primitives/nav.js.map +1 -0
  73. package/dist/primitives/radio.d.ts +58 -0
  74. package/dist/primitives/radio.d.ts.map +1 -0
  75. package/dist/primitives/radio.js +135 -0
  76. package/dist/primitives/radio.js.map +1 -0
  77. package/dist/primitives/routes.d.ts +15 -0
  78. package/dist/primitives/routes.d.ts.map +1 -0
  79. package/dist/primitives/routes.js +34 -0
  80. package/dist/primitives/routes.js.map +1 -0
  81. package/dist/primitives/select.d.ts +67 -0
  82. package/dist/primitives/select.d.ts.map +1 -0
  83. package/dist/primitives/select.js +160 -0
  84. package/dist/primitives/select.js.map +1 -0
  85. package/dist/primitives/style.d.ts +27 -0
  86. package/dist/primitives/style.d.ts.map +1 -0
  87. package/dist/primitives/style.js +53 -0
  88. package/dist/primitives/style.js.map +1 -0
  89. package/dist/primitives/table.d.ts +83 -0
  90. package/dist/primitives/table.d.ts.map +1 -0
  91. package/dist/primitives/table.js +264 -0
  92. package/dist/primitives/table.js.map +1 -0
  93. package/dist/primitives/tabs.d.ts +75 -0
  94. package/dist/primitives/tabs.d.ts.map +1 -0
  95. package/dist/primitives/tabs.js +263 -0
  96. package/dist/primitives/tabs.js.map +1 -0
  97. package/dist/primitives/tag.d.ts +92 -0
  98. package/dist/primitives/tag.d.ts.map +1 -0
  99. package/dist/primitives/tag.js +151 -0
  100. package/dist/primitives/tag.js.map +1 -0
  101. package/dist/services/db.d.ts +44 -0
  102. package/dist/services/db.d.ts.map +1 -0
  103. package/dist/services/db.js +59 -0
  104. package/dist/services/db.js.map +1 -0
  105. package/dist/services/email.d.ts +50 -0
  106. package/dist/services/email.d.ts.map +1 -0
  107. package/dist/services/email.js +60 -0
  108. package/dist/services/email.js.map +1 -0
  109. package/dist/services/s3.d.ts +61 -0
  110. package/dist/services/s3.d.ts.map +1 -0
  111. package/dist/services/s3.js +79 -0
  112. package/dist/services/s3.js.map +1 -0
  113. package/juxconfig.example.js +7 -0
  114. package/machinery/build3.js +2 -1
  115. package/machinery/compiler4.js +2 -0
  116. package/machinery/serve.js +6 -26
  117. package/machinery/validate-jux.js +4 -0
  118. package/package.json +2 -2
  119. /package/{presets → components}/calendar/calendar-usage.jux +0 -0
  120. /package/{presets → components}/calendar/calendar.jux +0 -0
  121. /package/{presets → components}/sidebar/index.jux +0 -0
  122. /package/{presets → components}/sidebar/usage.jux +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"c.js","sourceRoot":"","sources":["../../lib/components/c.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"c.js","sourceRoot":"","sources":["../../lib/components/c.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,mBAAmB,CAAC;AAE3C,SAAS,gBAAgB,CAAC,KAAa;IACnC,6CAA6C;IAC7C,OAAO,KAAK,CAAC,OAAO,CAAC,iCAAiC,EAAE,UAAU,CAAC,CAAC;AACxE,CAAC;AAUD,MAAM,CAAC;IAKH,YAAY,KAAa,EAAE,MAAe,EAAE,OAAgB,EAAE,MAAe,EAAE,MAAe,EAAE,MAAe,EAAE,QAAiB,EAAE,UAAoB,EAAE;QACtJ,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;QAE3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,YAAY,CAAC;QAC7C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;QAEnC,IAAI,KAAK;YAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC/D,IAAI,MAAM;YAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAClE,IAAI,OAAO;YAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACrE,IAAI,MAAM;YAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACxE,IAAI,MAAM;YAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAClE,IAAI,MAAM;YAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAClE,IAAI,QAAQ;YAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACtD,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAC/D,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEtH,0BAA0B;QAC1B,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QACpD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACnD,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,SAAS;YACrC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,GAAG,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7D,CAAC;QAED,aAAa;QACb,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,MAAM,EAAE,CAAC;QAClB,CAAC;IACL,CAAC;IAED,8DAA8D;IAC9D,iBAAiB;IACjB,8DAA8D;IAE9D,IAAI,OAAO,KAAkB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACpD,UAAU,KAAkB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEnD,8DAA8D;IAC9D,qBAAqB;IACrB,8DAA8D;IAE9D,MAAM,CAAC,KAAa,IAAU,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;IACvF,KAAK,CAAC,KAAa,IAAU,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;IACrG,KAAK,CAAC,GAAW;QACb,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;QACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC3D,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,CAAC,KAAa,IAAU,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;IAC/H,MAAM,CAAC,KAAa,IAAU,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;IAClI,MAAM,CAAC,KAAa,IAAU,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;IAC5H,MAAM,CAAC,KAAa,IAAU,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;IAC5H,QAAQ,CAAC,KAAa,IAAU,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;IAChH,KAAK,CAAC,KAAa,IAAU,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;IAChG,MAAM,CAAC,KAAa,IAAU,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;IAClG,UAAU,CAAC,KAAa,IAAU,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;IAE1E,8DAA8D;IAC9D,iCAAiC;IACjC,8DAA8D;IAE9D,KAAK,KAAa,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACnC,QAAQ,KAAa,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;IACpD,QAAQ,KAAa,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;IACpD,UAAU,KAAa,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;IACxD,SAAS,KAAa,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;IACtD,SAAS,KAAa,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;IACtD,SAAS,KAAa,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;IACtD,WAAW,KAAa,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;IAC1D,SAAS,KAAa,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;IACtD,QAAQ,KAAa,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC;IAE9D,KAAK,CAAC,GAAW,IAAU,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACrD,QAAQ,CAAC,GAAW,IAAU,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACvD,QAAQ,CAAC,GAAW,IAAU,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACvD,UAAU,CAAC,GAAW,IAAU,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3D,SAAS,CAAC,GAAW,IAAU,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACzD,SAAS,CAAC,GAAW,IAAU,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACzD,SAAS,CAAC,GAAW,IAAU,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACzD,WAAW,CAAC,GAAW,IAAU,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC7D,SAAS,CAAC,GAAW,IAAU,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC7D,QAAQ,CAAC,GAAW,IAAU,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;IAC7E,YAAY,CAAC,GAAW,IAAU,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;IAE/E,8DAA8D;IAC9D,gBAAgB;IAChB,8DAA8D;IAE9D,MAAM,CAAC,KAAsB;QACzB,MAAM,IAAI,GAAG,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;QACxD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,MAAiC;QACpC,IAAI,MAA0B,CAAC;QAC/B,IAAI,MAAM,YAAY,CAAC,EAAE,CAAC;YACtB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;QAC5B,CAAC;aAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACpC,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAgB,CAAC;QAC9F,CAAC;aAAM,CAAC;YACJ,MAAM,GAAG,MAAM,IAAI,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACtD,CAAC;QACD,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAED,8DAA8D;AAC9D,YAAY;AACZ,8DAA8D;AAE9D,MAAM,UAAU,CAAC,CAAC,KAAa,EAAE,MAAe,EAAE,OAAgB,EAAE,MAAe,EAAE,MAAe,EAAE,MAAe,EAAE,QAAiB,EAAE,OAAkB;IACxJ,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACtF,OAAO,IAAI,CAAC;AAChB,CAAC;AAGD,OAAO,EAAE,CAAC,EAAY,CAAC,IAAI,SAAS,EAAE,CAAC;AACvC,eAAe,CAAC,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { C } from "./c.js";
2
+ type GChild = C | HTMLElement | {
3
+ element: HTMLElement;
4
+ };
5
+ declare class G {
6
+ private _children;
7
+ constructor(children: GChild[]);
8
+ private _resolveNode;
9
+ private _resolveParent;
10
+ render(target?: string | HTMLElement | C | {
11
+ element: HTMLElement;
12
+ }): this;
13
+ into(target?: string | HTMLElement | C | {
14
+ element: HTMLElement;
15
+ }): this;
16
+ get children(): GChild[];
17
+ }
18
+ export declare function g(children: GChild[]): G;
19
+ export { G, GChild, g as group };
20
+ export default g;
21
+ //# sourceMappingURL=g.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"g.d.ts","sourceRoot":"","sources":["../../lib/components/g.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,KAAK,MAAM,GAAG,CAAC,GAAG,WAAW,GAAG;IAAE,OAAO,EAAE,WAAW,CAAA;CAAE,CAAC;AAEzD,cAAM,CAAC;IACH,OAAO,CAAC,SAAS,CAAW;gBAEhB,QAAQ,EAAE,MAAM,EAAE;IAI9B,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,cAAc;IAStB,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,CAAC,GAAG;QAAE,OAAO,EAAE,WAAW,CAAA;KAAE,GAAG,IAAI;IAS1E,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,CAAC,GAAG;QAAE,OAAO,EAAE,WAAW,CAAA;KAAE,GAAG,IAAI;IAIxE,IAAI,QAAQ,IAAI,MAAM,EAAE,CAEvB;CACJ;AAMD,wBAAgB,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,CAEvC;AAED,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC;AACjC,eAAe,CAAC,CAAC"}
@@ -0,0 +1,52 @@
1
+ import { C } from "./c.js";
2
+ class G {
3
+ constructor(children) {
4
+ this._children = children;
5
+ }
6
+ _resolveNode(child) {
7
+ if (child instanceof C)
8
+ return child.element;
9
+ if (child instanceof HTMLElement)
10
+ return child;
11
+ if (child && typeof child === 'object' && 'element' in child)
12
+ return child.element;
13
+ throw new Error('G: child is not a valid node');
14
+ }
15
+ _resolveParent(target) {
16
+ if (!target)
17
+ return document.getElementById('app');
18
+ if (target instanceof C)
19
+ return target.element;
20
+ if (target instanceof HTMLElement)
21
+ return target;
22
+ if (typeof target === 'string')
23
+ return document.getElementById(target) || document.querySelector(target);
24
+ if (typeof target === 'object' && 'element' in target)
25
+ return target.element;
26
+ return null;
27
+ }
28
+ render(target) {
29
+ const parent = this._resolveParent(target);
30
+ if (!parent)
31
+ return this;
32
+ for (const child of this._children) {
33
+ parent.appendChild(this._resolveNode(child));
34
+ }
35
+ return this;
36
+ }
37
+ into(target) {
38
+ return this.render(target);
39
+ }
40
+ get children() {
41
+ return this._children;
42
+ }
43
+ }
44
+ // ═══════════════════════════════════════════════════════════
45
+ // FACTORY
46
+ // ═══════════════════════════════════════════════════════════
47
+ export function g(children) {
48
+ return new G(children);
49
+ }
50
+ export { G, g as group };
51
+ export default g;
52
+ //# sourceMappingURL=g.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"g.js","sourceRoot":"","sources":["../../lib/components/g.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAI3B,MAAM,CAAC;IAGH,YAAY,QAAkB;QAC1B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC9B,CAAC;IAEO,YAAY,CAAC,KAAa;QAC9B,IAAI,KAAK,YAAY,CAAC;YAAE,OAAO,KAAK,CAAC,OAAO,CAAC;QAC7C,IAAI,KAAK,YAAY,WAAW;YAAE,OAAO,KAAK,CAAC;QAC/C,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,SAAS,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC,OAAO,CAAC;QACnF,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IACpD,CAAC;IAEO,cAAc,CAAC,MAA4D;QAC/E,IAAI,CAAC,MAAM;YAAE,OAAO,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,MAAM,YAAY,CAAC;YAAE,OAAO,MAAM,CAAC,OAAO,CAAC;QAC/C,IAAI,MAAM,YAAY,WAAW;YAAE,OAAO,MAAM,CAAC;QACjD,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,OAAO,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAgB,CAAC;QACxH,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,SAAS,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC,OAAO,CAAC;QAC7E,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,MAA4D;QAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACzB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,MAA4D;QAC7D,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;CACJ;AAED,8DAA8D;AAC9D,UAAU;AACV,8DAA8D;AAE9D,MAAM,UAAU,CAAC,CAAC,QAAkB;IAChC,OAAO,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;AAC3B,CAAC;AAED,OAAO,EAAE,CAAC,EAAU,CAAC,IAAI,KAAK,EAAE,CAAC;AACjC,eAAe,CAAC,CAAC"}
@@ -0,0 +1,97 @@
1
+ export interface GatewayOptions {
2
+ serverUrl?: string;
3
+ storageKey?: string;
4
+ }
5
+ /**
6
+ * Authenticated HTTP client bound to a specific downstream service.
7
+ * Obtained via ApiGateway.dbClient(), .s3Client(), or .emailClient().
8
+ */
9
+ export declare class ServiceClient {
10
+ private _gateway;
11
+ private _service;
12
+ constructor(gateway: ApiGateway, service: string);
13
+ /** Make an authenticated request to the service proxy. */
14
+ fetch(path: string, body?: any, method?: string): Promise<any>;
15
+ query(sql: string, params?: any[]): Promise<any>;
16
+ execute(sql: string, params?: any[]): Promise<any>;
17
+ upload(key: string, data: any, contentType?: string): Promise<any>;
18
+ download(key: string): Promise<any>;
19
+ list(prefix?: string): Promise<any>;
20
+ send(to: string, subject: string, body: string, html?: string): Promise<any>;
21
+ }
22
+ /**
23
+ * Client-side API gateway that handles JWT auth and proxies calls
24
+ * to jux-server downstream services (db, storage, email).
25
+ *
26
+ * Tokens are persisted in localStorage so they survive page reloads.
27
+ */
28
+ export declare class ApiGateway {
29
+ id: string;
30
+ options: GatewayOptions;
31
+ private _accessToken;
32
+ private _refreshToken;
33
+ private _tenantId;
34
+ constructor(id: string, options?: GatewayOptions);
35
+ serverUrl(value: string): this;
36
+ storageKey(value: string): this;
37
+ private _key;
38
+ private _loadTokens;
39
+ private _saveTokens;
40
+ private _clearTokens;
41
+ getAccessToken(): string | null;
42
+ getRefreshToken(): string | null;
43
+ getTenantId(): string | null;
44
+ getValue(): boolean;
45
+ isAuthenticated(): boolean;
46
+ setServerUrl(value: string): void;
47
+ getServerUrl(): string | undefined;
48
+ setStorageKey(value: string): void;
49
+ getStorageKey(): string | undefined;
50
+ _request(path: string, method?: string, body?: any): Promise<any>;
51
+ /** Register a new tenant account. */
52
+ register(email: string, password: string, plan?: string): Promise<any>;
53
+ /**
54
+ * Log in and persist the returned JWT tokens to localStorage.
55
+ * After a successful login, `isAuthenticated()` returns true.
56
+ */
57
+ login(email: string, password: string): Promise<any>;
58
+ /** Clear stored tokens and notify pageState listeners. */
59
+ logout(): void;
60
+ /** Returns an authenticated client for the db-service. */
61
+ dbClient(): ServiceClient;
62
+ /** Returns an authenticated client for the storage-service (S3). */
63
+ s3Client(): ServiceClient;
64
+ /** Returns an authenticated client for the email-service (SES). */
65
+ emailClient(): ServiceClient;
66
+ /** Returns the reactive pageState proxy for this component. */
67
+ get state(): any;
68
+ }
69
+ /**
70
+ * Create an API gateway client that handles JWT auth, browser-side token
71
+ * storage, and proxied calls to jux-server downstream services.
72
+ *
73
+ * @example
74
+ * // Configure once (e.g. in a boot file)
75
+ * const gw = await jux.gateway('auth', { serverUrl: 'https://api.example.com' });
76
+ *
77
+ * // Register
78
+ * await gw.register('alice@example.com', 'p4ssw0rd');
79
+ *
80
+ * // Login (tokens saved to localStorage automatically)
81
+ * await gw.login('alice@example.com', 'p4ssw0rd');
82
+ *
83
+ * // Call downstream services
84
+ * const db = gw.dbClient();
85
+ * const rows = await db.query('SELECT * FROM users');
86
+ *
87
+ * const s3 = gw.s3Client();
88
+ * await s3.upload('avatar.jpg', fileBlob, 'image/jpeg');
89
+ *
90
+ * const email = gw.emailClient();
91
+ * await email.send('bob@example.com', 'Hello', 'World');
92
+ *
93
+ * // Logout (tokens cleared from localStorage)
94
+ * gw.logout();
95
+ */
96
+ export declare function gateway(id: string, options?: GatewayOptions): Promise<ApiGateway>;
97
+ //# sourceMappingURL=gateway.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../../lib/components/gateway.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,188 @@
1
+ import generateId from '../utils/idgen.js';
2
+ import { pageState } from '../state/pageState.js';
3
+ /**
4
+ * Authenticated HTTP client bound to a specific downstream service.
5
+ * Obtained via ApiGateway.dbClient(), .s3Client(), or .emailClient().
6
+ */
7
+ export class ServiceClient {
8
+ constructor(gateway, service) {
9
+ this._gateway = gateway;
10
+ this._service = service;
11
+ }
12
+ /** Make an authenticated request to the service proxy. */
13
+ async fetch(path, body, method = body !== undefined ? 'POST' : 'GET') {
14
+ return this._gateway._request(`/proxy/${this._service}${path}`, method, body);
15
+ }
16
+ // ── db-service helpers ──
17
+ async query(sql, params = []) {
18
+ return this.fetch('/', { action: 'query', sql, params }, 'POST');
19
+ }
20
+ async execute(sql, params = []) {
21
+ return this.fetch('/', { action: 'execute', sql, params }, 'POST');
22
+ }
23
+ // ── storage-service helpers ──
24
+ async upload(key, data, contentType = 'application/octet-stream') {
25
+ return this.fetch(`/${key}`, { data, contentType }, 'PUT');
26
+ }
27
+ async download(key) {
28
+ return this.fetch(`/${key}`, undefined, 'GET');
29
+ }
30
+ async list(prefix = '') {
31
+ return this.fetch(`/?prefix=${encodeURIComponent(prefix)}`, undefined, 'GET');
32
+ }
33
+ // ── email-service helpers ──
34
+ async send(to, subject, body, html) {
35
+ return this.fetch('/', { to, subject, body, html }, 'POST');
36
+ }
37
+ }
38
+ /**
39
+ * Client-side API gateway that handles JWT auth and proxies calls
40
+ * to jux-server downstream services (db, storage, email).
41
+ *
42
+ * Tokens are persisted in localStorage so they survive page reloads.
43
+ */
44
+ export class ApiGateway {
45
+ constructor(id, options = {}) {
46
+ this._accessToken = null;
47
+ this._refreshToken = null;
48
+ this._tenantId = null;
49
+ this.id = id || generateId();
50
+ // Fall back to juxConfig.proxy.url when no serverUrl is supplied
51
+ const configUrl = (typeof window !== 'undefined' && window.juxConfig?.proxy?.url) || '';
52
+ this.options = { storageKey: 'jux_auth', serverUrl: configUrl, ...options };
53
+ this._loadTokens();
54
+ }
55
+ // ── Fluent setters ──
56
+ serverUrl(value) { this.options.serverUrl = value; return this; }
57
+ storageKey(value) { this.options.storageKey = value; return this; }
58
+ // ── Token persistence ──
59
+ _key(suffix) {
60
+ return `${this.options.storageKey}_${suffix}`;
61
+ }
62
+ _loadTokens() {
63
+ if (typeof localStorage === 'undefined')
64
+ return;
65
+ this._accessToken = localStorage.getItem(this._key('access'));
66
+ this._refreshToken = localStorage.getItem(this._key('refresh'));
67
+ this._tenantId = localStorage.getItem(this._key('tenant'));
68
+ }
69
+ _saveTokens(accessToken, refreshToken, tenantId) {
70
+ this._accessToken = accessToken;
71
+ if (typeof localStorage === 'undefined')
72
+ return;
73
+ localStorage.setItem(this._key('access'), accessToken);
74
+ if (refreshToken) {
75
+ this._refreshToken = refreshToken;
76
+ localStorage.setItem(this._key('refresh'), refreshToken);
77
+ }
78
+ if (tenantId) {
79
+ this._tenantId = tenantId;
80
+ localStorage.setItem(this._key('tenant'), tenantId);
81
+ }
82
+ }
83
+ _clearTokens() {
84
+ this._accessToken = null;
85
+ this._refreshToken = null;
86
+ this._tenantId = null;
87
+ if (typeof localStorage === 'undefined')
88
+ return;
89
+ localStorage.removeItem(this._key('access'));
90
+ localStorage.removeItem(this._key('refresh'));
91
+ localStorage.removeItem(this._key('tenant'));
92
+ }
93
+ // ── Getters ──
94
+ getAccessToken() { return this._accessToken; }
95
+ getRefreshToken() { return this._refreshToken; }
96
+ getTenantId() { return this._tenantId; }
97
+ getValue() { return this.isAuthenticated(); }
98
+ isAuthenticated() { return !!this._accessToken; }
99
+ // ── Setters (for pageState delegation) ──
100
+ setServerUrl(value) { this.options.serverUrl = value; }
101
+ getServerUrl() { return this.options.serverUrl; }
102
+ setStorageKey(value) { this.options.storageKey = value; }
103
+ getStorageKey() { return this.options.storageKey; }
104
+ // ── HTTP helper (used by ServiceClient) ──
105
+ async _request(path, method = 'GET', body) {
106
+ const base = this.options.serverUrl || '';
107
+ const url = `${base}${path}`;
108
+ const headers = { 'Content-Type': 'application/json' };
109
+ if (this._accessToken) {
110
+ headers['Authorization'] = `Bearer ${this._accessToken}`;
111
+ }
112
+ const init = { method, headers };
113
+ if (body !== undefined) {
114
+ init.body = JSON.stringify(body);
115
+ }
116
+ const res = await globalThis.fetch(url, init);
117
+ const ct = res.headers.get('content-type') || '';
118
+ const data = ct.includes('application/json') ? await res.json() : await res.text();
119
+ if (!res.ok) {
120
+ throw new Error(data?.message || data?.error || `HTTP ${res.status}`);
121
+ }
122
+ return data;
123
+ }
124
+ // ── Auth methods ──
125
+ /** Register a new tenant account. */
126
+ async register(email, password, plan = 'free') {
127
+ return this._request('/auth/register', 'POST', { email, password, plan });
128
+ }
129
+ /**
130
+ * Log in and persist the returned JWT tokens to localStorage.
131
+ * After a successful login, `isAuthenticated()` returns true.
132
+ */
133
+ async login(email, password) {
134
+ const data = await this._request('/auth/login', 'POST', { email, password });
135
+ if (data.accessToken) {
136
+ this._saveTokens(data.accessToken, data.refreshToken, data.tenantId);
137
+ pageState.__notify(`${this.id}.authenticated`);
138
+ }
139
+ return data;
140
+ }
141
+ /** Clear stored tokens and notify pageState listeners. */
142
+ logout() {
143
+ this._clearTokens();
144
+ pageState.__notify(`${this.id}.authenticated`);
145
+ }
146
+ // ── Service client factories ──
147
+ /** Returns an authenticated client for the db-service. */
148
+ dbClient() { return new ServiceClient(this, 'db'); }
149
+ /** Returns an authenticated client for the storage-service (S3). */
150
+ s3Client() { return new ServiceClient(this, 'storage'); }
151
+ /** Returns an authenticated client for the email-service (SES). */
152
+ emailClient() { return new ServiceClient(this, 'email'); }
153
+ /** Returns the reactive pageState proxy for this component. */
154
+ get state() { return pageState[this.id]; }
155
+ }
156
+ /**
157
+ * Create an API gateway client that handles JWT auth, browser-side token
158
+ * storage, and proxied calls to jux-server downstream services.
159
+ *
160
+ * @example
161
+ * // Configure once (e.g. in a boot file)
162
+ * const gw = await jux.gateway('auth', { serverUrl: 'https://api.example.com' });
163
+ *
164
+ * // Register
165
+ * await gw.register('alice@example.com', 'p4ssw0rd');
166
+ *
167
+ * // Login (tokens saved to localStorage automatically)
168
+ * await gw.login('alice@example.com', 'p4ssw0rd');
169
+ *
170
+ * // Call downstream services
171
+ * const db = gw.dbClient();
172
+ * const rows = await db.query('SELECT * FROM users');
173
+ *
174
+ * const s3 = gw.s3Client();
175
+ * await s3.upload('avatar.jpg', fileBlob, 'image/jpeg');
176
+ *
177
+ * const email = gw.emailClient();
178
+ * await email.send('bob@example.com', 'Hello', 'World');
179
+ *
180
+ * // Logout (tokens cleared from localStorage)
181
+ * gw.logout();
182
+ */
183
+ export async function gateway(id, options = {}) {
184
+ const gw = new ApiGateway(id, options);
185
+ pageState.__register(gw);
186
+ return gw;
187
+ }
188
+ //# sourceMappingURL=gateway.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gateway.js","sourceRoot":"","sources":["../../lib/components/gateway.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ interface LineDataItem {
2
+ x: number;
3
+ label?: string;
4
+ [key: string]: any;
5
+ }
6
+ interface LineClickDetail {
7
+ chartId: string;
8
+ index: number;
9
+ label: string;
10
+ value: number;
11
+ item: LineDataItem;
12
+ }
13
+ interface LineChartOptions {
14
+ title?: string;
15
+ subtitle?: string;
16
+ colors?: string | string[];
17
+ aspectRatio?: string | number;
18
+ showValues?: boolean;
19
+ showDots?: boolean;
20
+ showGrid?: boolean;
21
+ smooth?: boolean;
22
+ filled?: boolean;
23
+ lineWidth?: number;
24
+ dotRadius?: number;
25
+ ticks?: number;
26
+ animate?: boolean;
27
+ responsive?: boolean;
28
+ maintainAspectRatio?: boolean;
29
+ width?: number;
30
+ class?: string;
31
+ style?: string;
32
+ disabled?: boolean;
33
+ content?: string;
34
+ onClick?: (event: LineClickDetail) => void;
35
+ }
36
+ declare class LineChart {
37
+ id: string;
38
+ private _values;
39
+ private _opts;
40
+ private _palette;
41
+ private _wrapperEl;
42
+ private _stateEl;
43
+ private _resizeObserver;
44
+ private _lastClickDetail;
45
+ private _onChange;
46
+ private _listeners;
47
+ constructor(id: string, values: LineDataItem[], options?: LineChartOptions);
48
+ title(val: string): this;
49
+ subtitle(val: string): this;
50
+ content(val: string): this;
51
+ disabled(val: boolean): this;
52
+ style(val: string): this;
53
+ class(val: string): this;
54
+ getValue(): LineClickDetail | null;
55
+ setValue(val: any): this;
56
+ getElement(): HTMLButtonElement;
57
+ setContent(val: string): this;
58
+ getTitle(): string;
59
+ getSubtitle(): string;
60
+ getContent(): string;
61
+ getDisabled(): boolean;
62
+ getClass(): string;
63
+ getStyle(): string;
64
+ setTitle(val: string): this;
65
+ setSubtitle(val: string): this;
66
+ setDisabled(val: boolean): this;
67
+ setClass(val: string): this;
68
+ setStyle(val: string): this;
69
+ onChange(fn: (value: any) => void): this;
70
+ get state(): any;
71
+ get element(): HTMLDivElement;
72
+ private _handleDotClick;
73
+ private _buildChart;
74
+ render(target?: string | HTMLElement | {
75
+ element: HTMLElement;
76
+ }): this;
77
+ into(target?: string | HTMLElement | {
78
+ element: HTMLElement;
79
+ }): this;
80
+ on(event: string, fn: Function): this;
81
+ off(event: string, fn: Function): this;
82
+ destroy(): void;
83
+ }
84
+ export declare function lineChart(id: string, values: LineDataItem[], options?: LineChartOptions): LineChart;
85
+ export { LineChart, LineChartOptions, LineDataItem, LineClickDetail };
86
+ export default lineChart;
87
+ //# sourceMappingURL=lineChart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lineChart.d.ts","sourceRoot":"","sources":["../../lib/components/lineChart.ts"],"names":[],"mappings":"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"}