Skip to content

Commit f553f52

Browse files
authored
Merge pull request #2 from fsecada01/feat/form-granular-class-props
Add input_class and control_class props to form components
2 parents dd3de85 + cefb3a0 commit f553f52

12 files changed

Lines changed: 232 additions & 20 deletions

File tree

.github/workflows/ci.yml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,14 @@ jobs:
1818

1919
- name: Install uv
2020
uses: astral-sh/setup-uv@v3
21-
22-
- name: Set up Python ${{ matrix.python-version }}
23-
run: uv python install ${{ matrix.python-version }}
21+
with:
22+
python-version: ${{ matrix.python-version }}
2423

2524
- name: Install dependencies
26-
run: uv pip install -e ".[dev]"
25+
run: |
26+
uv venv
27+
uv pip install -e ".[dev]"
28+
echo "$GITHUB_WORKSPACE/.venv/bin" >> $GITHUB_PATH
2729
2830
- name: Install Playwright browsers
2931
run: playwright install chromium --with-deps

pyproject.toml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,9 @@ django = [
2727
]
2828
fastapi = [
2929
"fastapi>=0.109.0",
30+
"uvicorn[standard]>=0.27.0",
3031
"jinjax>=0.41",
32+
"python-multipart>=0.0.5",
3133
]
3234
litestar = [
3335
"litestar>=2.0",
@@ -70,6 +72,9 @@ testpaths = ["tests"]
7072
pythonpath = ["src"]
7173
asyncio_mode = "auto"
7274

75+
[tool.uv.sources]
76+
component-framework = { git = "https://github.com/fsecada01/component-framework.git" }
77+
7378
[tool.ruff]
7479
line-length = 100
7580
target-version = "py311"

src/cf_ui/templates/cotton/bulma/cf/checkbox-group.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
<c-vars name label error="" choices="[]" selected="[]" class="" />
1+
<c-vars name label error="" choices="[]" selected="[]" control_class="" class="" />
22
<div class="field {{ class }}">
33
<label class="label">{{ label }}</label>
4-
<div class="control">
4+
<div class="control{% if control_class %} {{ control_class }}{% endif %}">
55
{% for choice in choices %}
66
<label class="checkbox mr-3">
77
<input type="checkbox"

src/cf_ui/templates/cotton/bulma/cf/form-field.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
<c-vars name label value="" error="" type="text" required="false" class="" />
1+
<c-vars name label value="" error="" type="text" required="false" input_class="" class="" />
22
<div class="field {{ class }}">
33
<label class="label" for="{{ name }}">{{ label }}</label>
44
<div class="control">
5-
<input class="input{% if error %} is-danger{% endif %}"
5+
<input class="input{% if error %} is-danger{% endif %}{% if input_class %} {{ input_class }}{% endif %}"
66
id="{{ name }}"
77
type="{{ type }}"
88
name="{{ name }}"

src/cf_ui/templates/cotton/bulma/cf/select.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
<c-vars name label value="" error="" options="[]" class="" />
1+
<c-vars name label value="" error="" options="[]" input_class="" class="" />
22
<div class="field {{ class }}">
33
<label class="label" for="{{ name }}">{{ label }}</label>
44
<div class="control">
55
<div class="select{% if error %} is-danger{% endif %} is-fullwidth">
6-
<select id="{{ name }}" name="{{ name }}">
6+
<select id="{{ name }}" name="{{ name }}"{% if input_class %} class="{{ input_class }}"{% endif %}>
77
{% for opt in options %}
88
<option value="{{ opt.value }}"{% if opt.value|stringformat:"s" == value|stringformat:"s" %} selected{% endif %}>
99
{{ opt.label }}

src/cf_ui/templates/cotton/bulma/cf/textarea.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
<c-vars name label value="" error="" rows="4" class="" />
1+
<c-vars name label value="" error="" rows="4" input_class="" class="" />
22
<div class="field {{ class }}">
33
<label class="label" for="{{ name }}">{{ label }}</label>
44
<div class="control">
5-
<textarea class="textarea{% if error %} is-danger{% endif %}"
5+
<textarea class="textarea{% if error %} is-danger{% endif %}{% if input_class %} {{ input_class }}{% endif %}"
66
id="{{ name }}"
77
name="{{ name }}"
88
rows="{{ rows }}">{{ value }}</textarea>

src/cf_ui/templates/jinja/bulma/CheckboxGroup.jinja

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
{#def name, label, choices=[], selected=[], error="", extra_class="" #}
1+
{#def name, label, choices=[], selected=[], error="", extra_class="", control_class="" #}
22
<div class="field {{ extra_class }}">
33
<label class="label">{{ label }}</label>
4-
<div class="control">
4+
<div class="control{% if control_class %} {{ control_class }}{% endif %}">
55
{% for choice in choices %}
66
<label class="checkbox mr-3">
77
<input type="checkbox"

src/cf_ui/templates/jinja/bulma/FormField.jinja

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
{#def name, label, value="", error="", type="text", required=false, extra_class="" #}
1+
{#def name, label, value="", error="", type="text", required=false, extra_class="", input_class="" #}
22
<div class="field {{ extra_class }}">
33
<label class="label" for="{{ name }}">{{ label }}</label>
44
<div class="control">
5-
<input class="input{% if error %} is-danger{% endif %}"
5+
<input class="input{% if error %} is-danger{% endif %}{% if input_class %} {{ input_class }}{% endif %}"
66
id="{{ name }}"
77
type="{{ type }}"
88
name="{{ name }}"

src/cf_ui/templates/jinja/bulma/Select.jinja

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
{#def name, label, value="", error="", options=[], extra_class="" #}
1+
{#def name, label, value="", error="", options=[], extra_class="", input_class="" #}
22
<div class="field {{ extra_class }}">
33
<label class="label" for="{{ name }}">{{ label }}</label>
44
<div class="control">
55
<div class="select{% if error %} is-danger{% endif %} is-fullwidth">
6-
<select id="{{ name }}" name="{{ name }}">
6+
<select id="{{ name }}" name="{{ name }}"{% if input_class %} class="{{ input_class }}"{% endif %}>
77
{% for opt in options %}
88
<option value="{{ opt.value }}"{% if opt.value|string == value|string %} selected{% endif %}>
99
{{ opt.label }}

src/cf_ui/templates/jinja/bulma/Textarea.jinja

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
{#def name, label, value="", error="", rows=4, extra_class="" #}
1+
{#def name, label, value="", error="", rows=4, extra_class="", input_class="" #}
22
<div class="field {{ extra_class }}">
33
<label class="label" for="{{ name }}">{{ label }}</label>
44
<div class="control">
5-
<textarea class="textarea{% if error %} is-danger{% endif %}"
5+
<textarea class="textarea{% if error %} is-danger{% endif %}{% if input_class %} {{ input_class }}{% endif %}"
66
id="{{ name }}"
77
name="{{ name }}"
88
rows="{{ rows }}">{{ value }}</textarea>

0 commit comments

Comments
 (0)