From cc4bd9febc9458246313c82f5ac3078f1ee1ecf4 Mon Sep 17 00:00:00 2001 From: itsig0 Date: Wed, 20 Mar 2024 22:56:17 +0100 Subject: [PATCH] + to the git --- .air.toml | 45 + .gitignore | 3 + Makefile | 9 + README.md | 3 + go.mod | 22 + go.sum | 31 + handler/index.go | 11 + handler/tracker.go | 96 + handler/util.go | 15 + main.go | 32 + public/gopher.png | Bin 0 -> 22774 bytes public/scripts/alpine.js | 5 + public/scripts/htmx.js | 1 + public/stylesheets/custom/_dark.scss | 248 ++ public/stylesheets/custom/_light.scss | 212 ++ public/stylesheets/custom/_schemes.scss | 38 + public/stylesheets/custom/_styles.scss | 475 ++++ public/stylesheets/custom/_theme-colors.scss | 514 +++++ public/stylesheets/pico/_index.scss | 49 + public/stylesheets/pico/_settings.scss | 148 ++ public/stylesheets/pico/colors/_index.scss | 886 ++++++++ .../colors/utilities/_background-colors.scss | 73 + .../pico/colors/utilities/_colors.scss | 50 + .../pico/colors/utilities/_css-vars.scss | 53 + .../pico/colors/utilities/_index.scss | 8 + .../pico/colors/utilities/_settings.scss | 108 + .../pico/colors/utilities/_utils.scss | 56 + .../pico/components/_accordion.scss | 116 + public/stylesheets/pico/components/_card.scss | 46 + .../pico/components/_dropdown.scss | 280 +++ .../stylesheets/pico/components/_group.scss | 120 + .../stylesheets/pico/components/_loading.scss | 46 + .../stylesheets/pico/components/_modal.scss | 176 ++ public/stylesheets/pico/components/_nav.scss | 160 ++ .../pico/components/_progress.scss | 102 + .../stylesheets/pico/components/_tooltip.scss | 215 ++ public/stylesheets/pico/content/_button.scss | 209 ++ public/stylesheets/pico/content/_code.scss | 73 + .../stylesheets/pico/content/_embedded.scss | 53 + public/stylesheets/pico/content/_figure.scss | 19 + public/stylesheets/pico/content/_link.scss | 69 + public/stylesheets/pico/content/_miscs.scss | 38 + public/stylesheets/pico/content/_table.scss | 62 + .../stylesheets/pico/content/_typography.scss | 182 ++ public/stylesheets/pico/forms/_basics.scss | 471 ++++ .../pico/forms/_checkbox-radio-switch.scss | 177 ++ .../stylesheets/pico/forms/_input-color.scss | 37 + .../stylesheets/pico/forms/_input-date.scss | 60 + .../stylesheets/pico/forms/_input-file.scss | 41 + .../stylesheets/pico/forms/_input-range.scss | 100 + .../stylesheets/pico/forms/_input-search.scss | 60 + .../stylesheets/pico/helpers/_copyright.scss | 4 + .../stylesheets/pico/helpers/_functions.scss | 49 + .../stylesheets/pico/layout/_container.scss | 33 + public/stylesheets/pico/layout/_document.scss | 52 + public/stylesheets/pico/layout/_grid.scss | 26 + .../stylesheets/pico/layout/_landmarks.scss | 62 + .../pico/layout/_overflow-auto.scss | 12 + public/stylesheets/pico/layout/_section.scss | 12 + public/stylesheets/pico/pico.classless.scss | 5 + public/stylesheets/pico/pico.colors.scss | 2 + public/stylesheets/pico/pico.conditional.scss | 4 + .../pico/pico.fluid.classless.scss | 6 + public/stylesheets/pico/pico.scss | 2 + public/stylesheets/pico/postcss.config.js | 9 + public/stylesheets/pico/themes/_default.scss | 5 + .../pico/themes/default/_dark.scss | 248 ++ .../pico/themes/default/_light.scss | 212 ++ .../pico/themes/default/_schemes.scss | 39 + .../pico/themes/default/_styles.scss | 433 ++++ .../pico/themes/default/_theme-colors.scss | 490 ++++ .../pico/utilities/_accessibility.scss | 57 + .../pico/utilities/_reduce-motion.scss | 30 + public/stylesheets/tallytome.css | 1998 +++++++++++++++++ public/stylesheets/tallytome.scss | 455 ++++ public/tally-logo-no-bg.png | Bin 0 -> 272753 bytes view/home/home.templ | 11 + view/home/home_templ.go | 52 + view/hptracker/tracker.templ | 170 ++ view/hptracker/tracker_templ.go | 369 +++ view/layout/base.templ | 39 + view/layout/base_templ.go | 58 + view/layout/footer.templ | 7 + view/layout/footer_templ.go | 35 + view/layout/header.templ | 29 + view/layout/header_templ.go | 35 + 86 files changed, 11153 insertions(+) create mode 100644 .air.toml create mode 100644 .gitignore create mode 100644 Makefile create mode 100644 README.md create mode 100644 go.mod create mode 100644 go.sum create mode 100644 handler/index.go create mode 100644 handler/tracker.go create mode 100644 handler/util.go create mode 100644 main.go create mode 100644 public/gopher.png create mode 100644 public/scripts/alpine.js create mode 100644 public/scripts/htmx.js create mode 100644 public/stylesheets/custom/_dark.scss create mode 100644 public/stylesheets/custom/_light.scss create mode 100644 public/stylesheets/custom/_schemes.scss create mode 100644 public/stylesheets/custom/_styles.scss create mode 100644 public/stylesheets/custom/_theme-colors.scss create mode 100644 public/stylesheets/pico/_index.scss create mode 100644 public/stylesheets/pico/_settings.scss create mode 100644 public/stylesheets/pico/colors/_index.scss create mode 100644 public/stylesheets/pico/colors/utilities/_background-colors.scss create mode 100644 public/stylesheets/pico/colors/utilities/_colors.scss create mode 100644 public/stylesheets/pico/colors/utilities/_css-vars.scss create mode 100644 public/stylesheets/pico/colors/utilities/_index.scss create mode 100644 public/stylesheets/pico/colors/utilities/_settings.scss create mode 100644 public/stylesheets/pico/colors/utilities/_utils.scss create mode 100644 public/stylesheets/pico/components/_accordion.scss create mode 100644 public/stylesheets/pico/components/_card.scss create mode 100644 public/stylesheets/pico/components/_dropdown.scss create mode 100644 public/stylesheets/pico/components/_group.scss create mode 100644 public/stylesheets/pico/components/_loading.scss create mode 100644 public/stylesheets/pico/components/_modal.scss create mode 100644 public/stylesheets/pico/components/_nav.scss create mode 100644 public/stylesheets/pico/components/_progress.scss create mode 100644 public/stylesheets/pico/components/_tooltip.scss create mode 100644 public/stylesheets/pico/content/_button.scss create mode 100644 public/stylesheets/pico/content/_code.scss create mode 100644 public/stylesheets/pico/content/_embedded.scss create mode 100644 public/stylesheets/pico/content/_figure.scss create mode 100644 public/stylesheets/pico/content/_link.scss create mode 100644 public/stylesheets/pico/content/_miscs.scss create mode 100644 public/stylesheets/pico/content/_table.scss create mode 100644 public/stylesheets/pico/content/_typography.scss create mode 100644 public/stylesheets/pico/forms/_basics.scss create mode 100644 public/stylesheets/pico/forms/_checkbox-radio-switch.scss create mode 100644 public/stylesheets/pico/forms/_input-color.scss create mode 100644 public/stylesheets/pico/forms/_input-date.scss create mode 100644 public/stylesheets/pico/forms/_input-file.scss create mode 100644 public/stylesheets/pico/forms/_input-range.scss create mode 100644 public/stylesheets/pico/forms/_input-search.scss create mode 100644 public/stylesheets/pico/helpers/_copyright.scss create mode 100644 public/stylesheets/pico/helpers/_functions.scss create mode 100644 public/stylesheets/pico/layout/_container.scss create mode 100644 public/stylesheets/pico/layout/_document.scss create mode 100644 public/stylesheets/pico/layout/_grid.scss create mode 100644 public/stylesheets/pico/layout/_landmarks.scss create mode 100644 public/stylesheets/pico/layout/_overflow-auto.scss create mode 100644 public/stylesheets/pico/layout/_section.scss create mode 100644 public/stylesheets/pico/pico.classless.scss create mode 100644 public/stylesheets/pico/pico.colors.scss create mode 100644 public/stylesheets/pico/pico.conditional.scss create mode 100644 public/stylesheets/pico/pico.fluid.classless.scss create mode 100644 public/stylesheets/pico/pico.scss create mode 100644 public/stylesheets/pico/postcss.config.js create mode 100644 public/stylesheets/pico/themes/_default.scss create mode 100644 public/stylesheets/pico/themes/default/_dark.scss create mode 100644 public/stylesheets/pico/themes/default/_light.scss create mode 100644 public/stylesheets/pico/themes/default/_schemes.scss create mode 100644 public/stylesheets/pico/themes/default/_styles.scss create mode 100644 public/stylesheets/pico/themes/default/_theme-colors.scss create mode 100644 public/stylesheets/pico/utilities/_accessibility.scss create mode 100644 public/stylesheets/pico/utilities/_reduce-motion.scss create mode 100644 public/stylesheets/tallytome.css create mode 100644 public/stylesheets/tallytome.scss create mode 100644 public/tally-logo-no-bg.png create mode 100644 view/home/home.templ create mode 100644 view/home/home_templ.go create mode 100644 view/hptracker/tracker.templ create mode 100644 view/hptracker/tracker_templ.go create mode 100644 view/layout/base.templ create mode 100644 view/layout/base_templ.go create mode 100644 view/layout/footer.templ create mode 100644 view/layout/footer_templ.go create mode 100644 view/layout/header.templ create mode 100644 view/layout/header_templ.go diff --git a/.air.toml b/.air.toml new file mode 100644 index 0000000..031eead --- /dev/null +++ b/.air.toml @@ -0,0 +1,45 @@ +root = "." +tmp_dir = "tmp" + +[build] + args_bin = [] + bin = "./tmp/main" + cmd = "go build -o ./tmp/main ." + delay = 1000 + exclude_dir = ["assets", "tmp", "vendor"] + exclude_file = [] + exclude_regex = ["_test.go"] + exclude_unchanged = false + follow_symlink = false + full_bin = "" + include_dir = [] + include_ext = ["go", "tpl", "tmpl", "templ", "html", "css"] + include_file = [] + kill_delay = "0s" + log = "build-errors.log" + poll = false + poll_interval = 0 + post_cmd = [] + pre_cmd = [] + rerun = false + rerun_delay = 500 + send_interrupt = false + stop_on_error = false + +[color] + app = "" + build = "yellow" + main = "magenta" + runner = "green" + watcher = "cyan" + +[log] + main_only = false + time = false + +[misc] + clean_on_exit = false + +[screen] + clear_on_rebuild = false + keep_scroll = true diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6bd35d1 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +tmp +# we do not want these +*_templ.txt \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..ccd9cf6 --- /dev/null +++ b/Makefile @@ -0,0 +1,9 @@ +run: + @templ generate + @go run main.go + +templ: + @templ generate -watch -proxy=http://localhost:3000 + +sass: + @sass --no-source-map --watch public/stylesheets/tallytome.scss public/stylesheets/tallytome.css \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..0cc30d3 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +## Should have put it to Git sooner + +when will I learn \ No newline at end of file diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..4224f2f --- /dev/null +++ b/go.mod @@ -0,0 +1,22 @@ +module github.com/itsig0/tallytome + +go 1.22.1 + +require ( + github.com/a-h/templ v0.2.598 + github.com/gofiber/fiber/v2 v2.52.2 +) + +require ( + github.com/andybalholm/brotli v1.0.5 // indirect + github.com/google/uuid v1.5.0 // indirect + github.com/klauspost/compress v1.17.0 // indirect + github.com/mattn/go-colorable v0.1.13 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect + github.com/mattn/go-runewidth v0.0.15 // indirect + github.com/rivo/uniseg v0.2.0 // indirect + github.com/valyala/bytebufferpool v1.0.0 // indirect + github.com/valyala/fasthttp v1.51.0 // indirect + github.com/valyala/tcplisten v1.0.0 // indirect + golang.org/x/sys v0.15.0 // indirect +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..c263190 --- /dev/null +++ b/go.sum @@ -0,0 +1,31 @@ +github.com/a-h/templ v0.2.598 h1:6jMIHv6wQZvdPxTuv87erW4RqN/FPU0wk7ZHN5wVuuo= +github.com/a-h/templ v0.2.598/go.mod h1:SA7mtYwVEajbIXFRh3vKdYm/4FYyLQAtPH1+KxzGPA8= +github.com/andybalholm/brotli v1.0.5 h1:8uQZIdzKmjc/iuPu7O2ioW48L81FgatrcpfFmiq/cCs= +github.com/andybalholm/brotli v1.0.5/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= +github.com/gofiber/fiber/v2 v2.52.2 h1:b0rYH6b06Df+4NyrbdptQL8ifuxw/Tf2DgfkZkDaxEo= +github.com/gofiber/fiber/v2 v2.52.2/go.mod h1:KEOE+cXMhXG0zHc9d8+E38hoX+ZN7bhOtgeF2oT6jrQ= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/uuid v1.5.0 h1:1p67kYwdtXjb0gL0BPiP1Av9wiZPo5A8z2cWkTZ+eyU= +github.com/google/uuid v1.5.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/klauspost/compress v1.17.0 h1:Rnbp4K9EjcDuVuHtd0dgA4qNuv9yKDYKK1ulpJwgrqM= +github.com/klauspost/compress v1.17.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= +github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= +github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= +github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= +github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= +github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= +github.com/valyala/fasthttp v1.51.0 h1:8b30A5JlZ6C7AS81RsWjYMQmrZG6feChmgAolCl1SqA= +github.com/valyala/fasthttp v1.51.0/go.mod h1:oI2XroL+lI7vdXyYoQk03bXBThfFl2cVdIA3Xl7cH8g= +github.com/valyala/tcplisten v1.0.0 h1:rBHj/Xf+E1tRGZyWIWwJDiRY0zc1Js+CV5DqwacVSA8= +github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= +golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= diff --git a/handler/index.go b/handler/index.go new file mode 100644 index 0000000..e1c26eb --- /dev/null +++ b/handler/index.go @@ -0,0 +1,11 @@ +package handler + +import ( + "github.com/gofiber/fiber/v2" + "github.com/itsig0/tallytome/view/home" +) + +func Index(c *fiber.Ctx) error { + hx := len(c.GetReqHeaders()["Hx-Request"]) > 0 + return render(c, home.Show(hx)) +} diff --git a/handler/tracker.go b/handler/tracker.go new file mode 100644 index 0000000..7367959 --- /dev/null +++ b/handler/tracker.go @@ -0,0 +1,96 @@ +package handler + +import ( + "github.com/gofiber/fiber/v2" + "github.com/gofiber/fiber/v2/log" + "github.com/itsig0/tallytome/view/hptracker" +) + +func Tracker(c *fiber.Ctx) error { + hx := len(c.GetReqHeaders()["Hx-Request"]) > 0 + + data := hptracker.TrackerData{ + HP: "0", + HPBase: "0", + HPStartPercentage: "0", + HPPercentage: "0", + Mana: "0", + ManaBase: "0", + ManaRegen: "0", + ManaStartPercentage: "0", + ManaPercentage: "0", + } + + return render(c, hptracker.Show(hx, data)) +} + +func TrackerUpdate(c *fiber.Ctx) error { + + _, err := store.Get(c) + if err != nil { + return err + } + + // Parse the form data + formdata := c.Context().PostArgs() + + // Create an instance of TrackerData + data := hptracker.TrackerData{ + HP: string(formdata.Peek("hp")), + HPBase: string(formdata.Peek("hp")), + HPStartPercentage: "0", + HPPercentage: "100", + Mana: string(formdata.Peek("mana")), + ManaBase: string(formdata.Peek("mana")), + ManaRegen: string(formdata.Peek("manaregen")), + ManaStartPercentage: "0", + ManaPercentage: "100", + } + + // why no work? + // values := reflect.ValueOf(data) + // types := values.Type() + // prefix := "tracker_" + // for i := 0; i < values.NumField(); i++ { + // sess.Set(prefix+types.Field(i).Name, values.Field(i)) + // log.Info("test") + // } + // pre := "tracker_" + // sess.Set(pre+"HP", data.HP) + // sess.Set(pre+"HPBase", data.HPBase) + // sess.Set(pre+"HPStartPercentage", data.HPStartPercentage) + // sess.Set(pre+"HPStartPercentage", data.HPStartPercentage) + + // sess.Set(pre+"Mana", data.Mana) + // sess.Set(pre+"ManaBase", data.ManaBase) + // sess.Set(pre+"ManaRegen", data.ManaRegen) + // sess.Set(pre+"ManaStartPercentage", data.ManaStartPercentage) + // sess.Set(pre+"ManaPercentage", data.ManaPercentage) + + // sess.Save() + + return render(c, hptracker.TrackerColumn(data)) +} + +func TrackerDamage(c *fiber.Ctx) error { + + // formdata := c.Context().PostArgs() + + data := hptracker.TrackerData{ + HPStartPercentage: "100", + HPPercentage: "66", + } + + // log.Info(data) + + return render(c, hptracker.HPTracker(data)) +} + +func CheckStore(c *fiber.Ctx) error { + sess, err := store.Get(c) + if err != nil { + return err + } + log.Info(sess.Keys()) + return nil +} diff --git a/handler/util.go b/handler/util.go new file mode 100644 index 0000000..4d4ba4c --- /dev/null +++ b/handler/util.go @@ -0,0 +1,15 @@ +package handler + +import ( + "github.com/a-h/templ" + "github.com/gofiber/fiber/v2" + "github.com/gofiber/fiber/v2/middleware/session" +) + +var store = session.New() + +func render(c *fiber.Ctx, component templ.Component) error { + // or templ wil bork... + c.Set("Content-type", "text/html") + return component.Render(c.Context(), c.Response().BodyWriter()) +} diff --git a/main.go b/main.go new file mode 100644 index 0000000..d319a59 --- /dev/null +++ b/main.go @@ -0,0 +1,32 @@ +package main + +import ( + "github.com/gofiber/fiber/v2" + "github.com/gofiber/fiber/v2/middleware/compress" + "github.com/itsig0/tallytome/handler" +) + +func main() { + + app := fiber.New(fiber.Config{ + ServerHeader: "TallyTome", + }) + + // compression baby + app.Use(compress.New()) + + app.Static("/", "./public") + + app.Get("/", handler.Index) + + tracker := app.Group("/hp-mana-tracker") + tracker.Get("/", handler.Tracker) + tracker.Post("/update", handler.TrackerUpdate) + tracker.Post("/damage", handler.TrackerDamage) + tracker.Get("/check", handler.CheckStore) + // app.Get("/*", func(c *fiber.Ctx) error { + // return c.SendString("Hello, World!") + // }) + + app.Listen(":3000") +} diff --git a/public/gopher.png b/public/gopher.png new file mode 100644 index 0000000000000000000000000000000000000000..e12a5ec487e0e5207178717eb1207ee86727d128 GIT binary patch literal 22774 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 Uly_t2!vFvP07*qoM6N<$f;lW~2mk;8 literal 0 HcmV?d00001 diff --git a/public/scripts/alpine.js b/public/scripts/alpine.js new file mode 100644 index 0000000..f750e64 --- /dev/null +++ b/public/scripts/alpine.js @@ -0,0 +1,5 @@ +(()=>{var rt=!1,nt=!1,U=[],it=-1;function Vt(e){Sn(e)}function Sn(e){U.includes(e)||U.push(e),An()}function ve(e){let t=U.indexOf(e);t!==-1&&t>it&&U.splice(t,1)}function An(){!nt&&!rt&&(rt=!0,queueMicrotask(On))}function On(){rt=!1,nt=!0;for(let e=0;ee.effect(t,{scheduler:r=>{ot?Vt(r):r()}}),st=e.raw}function at(e){D=e}function Wt(e){let t=()=>{};return[n=>{let i=D(n);return e._x_effects||(e._x_effects=new Set,e._x_runEffects=()=>{e._x_effects.forEach(o=>o())}),e._x_effects.add(i),t=()=>{i!==void 0&&(e._x_effects.delete(i),L(i))},i},()=>{t()}]}function Se(e,t){let r=!0,n,i=D(()=>{let o=e();JSON.stringify(o),r?n=o:queueMicrotask(()=>{t(o,n),n=o}),r=!1});return()=>L(i)}function W(e,t,r={}){e.dispatchEvent(new CustomEvent(t,{detail:r,bubbles:!0,composed:!0,cancelable:!0}))}function C(e,t){if(typeof ShadowRoot=="function"&&e instanceof ShadowRoot){Array.from(e.children).forEach(i=>C(i,t));return}let r=!1;if(t(e,()=>r=!0),r)return;let n=e.firstElementChild;for(;n;)C(n,t,!1),n=n.nextElementSibling}function E(e,...t){console.warn(`Alpine Warning: ${e}`,...t)}var Gt=!1;function Jt(){Gt&&E("Alpine has already been initialized on this page. Calling Alpine.start() more than once can cause problems."),Gt=!0,document.body||E("Unable to initialize. Trying to load Alpine before `` is available. Did you forget to add `defer` in Alpine's ` + + + Tallytome + + + +
+ @header() +
+ +
+ { children... } +
+ + //
+ // @footer() + //
+ + + +}else{ + { children... } +} + +} \ No newline at end of file diff --git a/view/layout/base_templ.go b/view/layout/base_templ.go new file mode 100644 index 0000000..c55a746 --- /dev/null +++ b/view/layout/base_templ.go @@ -0,0 +1,58 @@ +// Code generated by templ - DO NOT EDIT. + +// templ: version: v0.2.598 +package layout + +//lint:file-ignore SA4006 This context is only used if a nested component is present. + +import "github.com/a-h/templ" +import "context" +import "io" +import "bytes" + +func Base(hx bool) templ.Component { + return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) { + templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer) + if !templ_7745c5c3_IsBuffer { + templ_7745c5c3_Buffer = templ.GetBuffer() + defer templ.ReleaseBuffer(templ_7745c5c3_Buffer) + } + ctx = templ.InitializeContext(ctx) + templ_7745c5c3_Var1 := templ.GetChildren(ctx) + if templ_7745c5c3_Var1 == nil { + templ_7745c5c3_Var1 = templ.NopComponent + } + ctx = templ.ClearChildren(ctx) + if hx == false { + templ_7745c5c3_Err = templ.WriteWatchModeString(templ_7745c5c3_Buffer, 1) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = header().Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = templ.WriteWatchModeString(templ_7745c5c3_Buffer, 2) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = templ_7745c5c3_Var1.Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = templ.WriteWatchModeString(templ_7745c5c3_Buffer, 3) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + } else { + templ_7745c5c3_Err = templ_7745c5c3_Var1.Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + } + if !templ_7745c5c3_IsBuffer { + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W) + } + return templ_7745c5c3_Err + }) +} diff --git a/view/layout/footer.templ b/view/layout/footer.templ new file mode 100644 index 0000000..41e9718 --- /dev/null +++ b/view/layout/footer.templ @@ -0,0 +1,7 @@ +package layout + +templ footer(){ + +

Feet

+ +} \ No newline at end of file diff --git a/view/layout/footer_templ.go b/view/layout/footer_templ.go new file mode 100644 index 0000000..9d6fd89 --- /dev/null +++ b/view/layout/footer_templ.go @@ -0,0 +1,35 @@ +// Code generated by templ - DO NOT EDIT. + +// templ: version: v0.2.598 +package layout + +//lint:file-ignore SA4006 This context is only used if a nested component is present. + +import "github.com/a-h/templ" +import "context" +import "io" +import "bytes" + +func footer() templ.Component { + return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) { + templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer) + if !templ_7745c5c3_IsBuffer { + templ_7745c5c3_Buffer = templ.GetBuffer() + defer templ.ReleaseBuffer(templ_7745c5c3_Buffer) + } + ctx = templ.InitializeContext(ctx) + templ_7745c5c3_Var1 := templ.GetChildren(ctx) + if templ_7745c5c3_Var1 == nil { + templ_7745c5c3_Var1 = templ.NopComponent + } + ctx = templ.ClearChildren(ctx) + templ_7745c5c3_Err = templ.WriteWatchModeString(templ_7745c5c3_Buffer, 1) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + if !templ_7745c5c3_IsBuffer { + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W) + } + return templ_7745c5c3_Err + }) +} diff --git a/view/layout/header.templ b/view/layout/header.templ new file mode 100644 index 0000000..12c7bc9 --- /dev/null +++ b/view/layout/header.templ @@ -0,0 +1,29 @@ +package layout + +templ header(){ + + + +} \ No newline at end of file diff --git a/view/layout/header_templ.go b/view/layout/header_templ.go new file mode 100644 index 0000000..6db5e21 --- /dev/null +++ b/view/layout/header_templ.go @@ -0,0 +1,35 @@ +// Code generated by templ - DO NOT EDIT. + +// templ: version: v0.2.598 +package layout + +//lint:file-ignore SA4006 This context is only used if a nested component is present. + +import "github.com/a-h/templ" +import "context" +import "io" +import "bytes" + +func header() templ.Component { + return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) { + templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer) + if !templ_7745c5c3_IsBuffer { + templ_7745c5c3_Buffer = templ.GetBuffer() + defer templ.ReleaseBuffer(templ_7745c5c3_Buffer) + } + ctx = templ.InitializeContext(ctx) + templ_7745c5c3_Var1 := templ.GetChildren(ctx) + if templ_7745c5c3_Var1 == nil { + templ_7745c5c3_Var1 = templ.NopComponent + } + ctx = templ.ClearChildren(ctx) + templ_7745c5c3_Err = templ.WriteWatchModeString(templ_7745c5c3_Buffer, 1) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + if !templ_7745c5c3_IsBuffer { + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W) + } + return templ_7745c5c3_Err + }) +}