Rulpane Gallery

Gallery / Views / reny-develop/budget-ja-view

The screen reny-develop/budget-ja-view@1 opens in its sample
reny-develop/budget-ja-view@1 in its sample, samples/budget-ja.json, as Rulpane opens it

Reads

It does not say: it reads the names its bindings give, so it fits rules that have those names.

Use it

A link or a paneset names it in v. Rules that keep what it reads under other names are matched to it by b:

{ "$schema": "rulpane/paneset/v1", "r": "<rules>", "v": "reny-develop/budget-ja-view@1", "b": { … } }

Fits as it is

The rule sets that have every name it reads, which it opens with no b: Rulealize.RuleSet.Budget@1.0.0.

Releases

ReleaseRead from
reny-develop/budget-ja-view@1 views/budget-ja.json @ db1640a Open

The document

As its author committed it.

{
  "$schema": "rulealize/view/v1",
  "ruleSet": "Rulealize.RuleSet.Budget@1",
  "title": "家計簿",
  "layout": [
    {
      "c": "text",
      "text": "今月は {summary.total} 円使いました。予算の残りは {summary.left} 円です。",
      "format": {},
      "showWhen": "summary.within"
    },
    {
      "c": "text",
      "text": "今月は {summary.total} 円使いました。予算を {summary.overBy} 円超えています。",
      "format": {},
      "showWhen": "summary.over"
    },
    {
      "c": "columns",
      "widths": [
        3,
        2
      ],
      "blocks": [
        {
          "c": "chart",
          "as": "pie",
          "title": "使いみち",
          "bind": "byCategory",
          "x": "category",
          "value": "amount",
          "format": {
            "suffix": " 円"
          }
        },
        {
          "c": "fields",
          "title": "今月",
          "rows": [
            {
              "label": "使った",
              "bind": "summary.total",
              "format": {
                "suffix": " 円"
              }
            },
            {
              "label": "予算",
              "bind": "summary.budget",
              "format": {
                "suffix": " 円"
              }
            },
            {
              "label": "残り",
              "bind": "summary.left",
              "format": {
                "suffix": " 円"
              }
            },
            {
              "label": "状態",
              "bind": "summary.state",
              "tone": {
                "over": "danger",
                "within": "ok"
              }
            }
          ]
        }
      ]
    },
    {
      "c": "columns",
      "widths": [
        2,
        1
      ],
      "blocks": [
        {
          "c": "actions",
          "title": "支出を記録する",
          "inputs": [
            "spend"
          ],
          "controls": {
            "date": "date"
          }
        },
        {
          "c": "actions",
          "title": "予算",
          "inputs": [
            "budget"
          ],
          "fill": {
            "budget": "summary.budget"
          }
        }
      ]
    },
    {
      "c": "table",
      "title": "支出",
      "bind": "spent",
      "columns": [
        {
          "key": "date",
          "label": "日付"
        },
        {
          "key": "category",
          "label": "分類"
        },
        {
          "key": "what",
          "label": "内容"
        },
        {
          "key": "amount",
          "label": "金額",
          "format": {
            "suffix": " 円"
          }
        }
      ],
      "rowActions": [
        {
          "input": "remove",
          "args": {
            "n": "n"
          }
        }
      ]
    },
    {
      "c": "actions",
      "title": "来月にする",
      "inputs": [
        "clear"
      ]
    }
  ],
  "names": {
    "inputs": {
      "spend": "記録する",
      "budget": "変える",
      "remove": "消す",
      "clear": "支出を全部消す"
    },
    "params": {
      "date": "日付",
      "category": "分類",
      "what": "内容",
      "amount": "金額",
      "budget": "予算"
    },
    "codes": {
      "date.form": "日付は 2026-11-03 の形で入れてください。"
    },
    "values": {
      "food": "食費",
      "home": "住まい",
      "utilities": "光熱費",
      "transport": "交通",
      "fun": "娯楽",
      "other": "その他",
      "over": "予算オーバー",
      "within": "予算内"
    }
  }
}

Its sample

The paneset samples/budget-ja.json, which it was tried in.

{
  "$schema": "rulpane/paneset/v1",
  "r": "Rulealize.RuleSet.Budget@1.0.0",
  "s": {
    "spent": [
      {
        "date": "2026-11-01",
        "category": "home",
        "what": "家賃",
        "amount": 72000
      },
      {
        "date": "2026-11-01",
        "category": "food",
        "what": "スーパー",
        "amount": 4800
      },
      {
        "date": "2026-11-02",
        "category": "transport",
        "what": "定期券",
        "amount": 9800
      },
      {
        "date": "2026-11-02",
        "category": "fun",
        "what": "映画",
        "amount": 1900
      },
      {
        "date": "2026-11-03",
        "category": "food",
        "what": "スーパー",
        "amount": 3600
      },
      {
        "date": "2026-11-03",
        "category": "utilities",
        "what": "電気",
        "amount": 6400
      }
    ],
    "budget": 200000
  }
}
Licence (MIT-0)
MIT No Attribution

Copyright 2026 reny-develop

Permission is hereby granted, free of charge, to any person obtaining a copy of this
software and associated documentation files (the "Software"), to deal in the Software
without restriction, including without limitation the rights to use, copy, modify,
merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.