{"id":15141035,"url":"https://github.com/lazerbeak12345/flow-extras","last_synced_at":"2026-02-26T11:32:05.163Z","repository":{"id":177094048,"uuid":"657874802","full_name":"Lazerbeak12345/flow-extras","owner":"Lazerbeak12345","description":"An experimental collection of widgets for the Minetest Flow formspec replacement","archived":false,"fork":false,"pushed_at":"2024-08-17T21:10:09.000Z","size":1369,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-10-31T00:49:26.654Z","etag":null,"topics":["formspec","lua","minetest-mod","widgets"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Lazerbeak12345.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-06-24T04:46:02.000Z","updated_at":"2024-08-17T21:09:58.000Z","dependencies_parsed_at":"2024-06-13T06:11:56.603Z","dependency_job_id":"83c0080c-6ea8-46e5-86d0-a95224d7d9e2","html_url":"https://github.com/Lazerbeak12345/flow-extras","commit_stats":null,"previous_names":["lazerbeak12345/flow-extras"],"tags_count":60,"template":false,"template_full_name":null,"purl":"pkg:github/Lazerbeak12345/flow-extras","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lazerbeak12345%2Fflow-extras","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lazerbeak12345%2Fflow-extras/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lazerbeak12345%2Fflow-extras/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lazerbeak12345%2Fflow-extras/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Lazerbeak12345","download_url":"https://codeload.github.com/Lazerbeak12345/flow-extras/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lazerbeak12345%2Fflow-extras/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281908614,"owners_count":26582147,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-30T02:00:06.501Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["formspec","lua","minetest-mod","widgets"],"created_at":"2024-09-26T08:43:42.336Z","updated_at":"2025-10-31T00:49:28.948Z","avatar_url":"https://github.com/Lazerbeak12345.png","language":"Lua","readme":"# Flow Extras\n\n[![ContentDB](https://content.minetest.net/packages/lazerbeak12345/flow_extras/shields/downloads/)](https://content.minetest.net/packages/lazerbeak12345/flow_extras/)\n[![Minetest Forums](https://img.shields.io/badge/Minetest_Forums-Flow_Extras-%234faf00?logo=minetest\u0026labelColor=%23161616)](https://forum.minetest.net/viewtopic.php?t=29766)\n[![busted](https://github.com/Lazerbeak12345/flow-extras/actions/workflows/busted.yml/badge.svg)](https://github.com/Lazerbeak12345/flow-extras/actions/workflows/busted.yml)\n[![luacheck](https://github.com/Lazerbeak12345/flow-extras/actions/workflows/luacheck.yml/badge.svg)](https://github.com/Lazerbeak12345/flow-extras/actions/workflows/luacheck.yml)\n[![Coverage Status](https://coveralls.io/repos/github/Lazerbeak12345/flow-extras/badge.svg?branch=master)](https://coveralls.io/github/Lazerbeak12345/flow-extras?branch=master)\n[![versioned: semantically](https://img.shields.io/badge/versioned-semantically-orange)](https://semver.org)\n![image badge containing latest version number](https://img.shields.io/github/v/tag/Lazerbeak12345/flow-extras?filter=*.*.*\u0026label=latest%20version)\n\nAn experimental collection of extra widgets for [flow].\n\n\u003e Not officially associated with flow\n\n[flow]: https://github.com/luk3yx/minetest-flow\n\n## Docs\n\n\u003cspan id=\"widgets\"\u003e\u003c/span\u003e\n\u003cspan id=\"grid\"\u003e\u003c/span\u003e\n\u003cspan id=\"list\"\u003e\u003c/span\u003e\n\u003cspan id=\"tools\"\u003e\u003c/span\u003e\n### Widgets \u0026 tools\n\nSee the LuaCATS documentation in the code, with the busted unit tests for examples.\n\nIf your IDE supports LuaCATS (such as if it uses the `lua_ls` language server), then the documentation should show up in your IDE.\n\n### Textures\n\n- `flow_extras_list_bg.png` is the default background for all list slots rendered by `flow_extras.List`\n- `flow_extras_list_inactive.png` is availiable for use in situations (like craft recepies) where you need a deactivated \"List\".\n\n## Rules\n\nI've seen a lot of libraries like Qt and GTK accumulate hundreds of widgets over the years. I'd like to slow that process down here.\n\n\u003e The key words \"MUST\", \"MUST NOT\", \"REQUIRED\", \"SHALL\", \"SHALL\n\u003e NOT\", \"SHOULD\", \"SHOULD NOT\", \"RECOMMENDED\",  \"MAY\", and\n\u003e \"OPTIONAL\" in this document are to be interpreted as described in\n\u003e [RFC 2119](https://datatracker.ietf.org/doc/html/rfc2119).\n\n1. Widgets MUST NOT require any specific game or mod, except for `flow` or `formspec_ast`.\n2. Widgets SHOULD NOT be a part of Flow. If a widget is added to Flow after it has been included in Flow-Extras, this widget SHOULD be deprecated.\n3. Widgets MUST fulfill an existing need, shown by at least two projects.\n4. Widgets MUST be themable wherever reasonably possible using conventional methods.\n5. Widgets SHOULD encourage the buisness logic to be seperate, and the form generation logic to be inline.\n6. Widgets SHOULD maximise reuse through generalization.\n7. Widgets MAY allow for children widgets using the standard convention set in Flow\n8. Widgets MAY use widgets not yet supported by flow, provided that\n   1. it MUST use a \"fake\" form of the widget by default. However it MAY provide a way to use the unsupported widget\n   2. MUST document use of unsupported widgets\n9. Widgets MAY use widgets not supported by older versions of the Minetest Client, provided this MUST be documented, and that the widget is supported by FS51 or simmilar libraries. If the widget is not supported by such a library, then the widget MUST follow reccomendations in rule 8.1\n\n## TODO\n\n- [ ] `Navabble`\n    - [ ] Accepts a table of callbacks, each returning window contents\n    - [ ] requires a name\n- [ ] `FakeTabbar`\n    - [ ] A fake tabbar with identical API\n- [ ] `Pagnator`\n    - [ ] A pagnator widget for use with `Navabble`\n    - [ ] Custom message text supported (with translation as well, ofc)\n- [ ] Reactive Boxes\n    - [ ] reacts to width of client, if availiable.\n    - [ ] behave like breakpoints from the CSS library Bootstrap\n- [ ] Each type of for loop as a map-like function\n- [ ] `{Widget,table}[][] -\u003e WidgetArgs[]`\n- [ ] Integrate with `flow_inspector`\n\n## Legal\n\n### Code\n\nSee `./LICENSE`\n\n### Media\n\n#### Images\n\n- `flow_extras_list_bg.png`: renamed from `gui_hb_bg.png`, a texture by BlockMen (CC BY-SA 3.0)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flazerbeak12345%2Fflow-extras","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flazerbeak12345%2Fflow-extras","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flazerbeak12345%2Fflow-extras/lists"}