Commit graph

122 commits

Author SHA1 Message Date
Juro Oravec
04f79a6e6b
refactor: deprecate Component.input and add raw_args, raw_kwargs, raw_slots (#1233)
* refactor: deprecate Component.input and add raw_args, raw_kwargs, raw_slots

* docs: update changelog
2025-06-04 23:38:50 +02:00
Juro Oravec
eceebb9696
feat: on_render (#1231)
* feat: on_render

* docs: fix typos

* refactor: fix linter errors

* refactor: make `error` in on_render_after optional to fix benchmarks

* refactor: benchmark attempt 2

* refactor: fix linter errors

* refactor: fix formatting
2025-06-04 19:30:03 +02:00
Juro Oravec
46e524e37d
refactor: Add Node metadata (#1229)
* refactor: `Slot.source` replaced with `Slot.fill_node`, new `Component.node` property, and `slot_node` available in `on_slot_rendered()` hook.

* refactor: fix windows path error in tests
2025-06-03 12:58:48 +02:00
Juro Oravec
8677ee7941
refactor: deprecate template caching, get_template_name, get_template, assoc template with Comp cls (#1222)
* refactor: deprecate template caching, get_template_name, get_template, assoc template with Comp cls

* refactor: change implementation

* refactor: handle cached template loader

* refactor: fix tests

* refactor: fix test on windows

* refactor: try to  fix type errors

* refactor: Re-cast `context` to fix type errors

* refactor: fix linter error

* refactor: fix typing

* refactor: more linter fixes

* refactor: more linter errors

* refactor: revert extra node metadata
2025-06-01 19:20:22 +02:00
Juro Oravec
bb129aefab
feat: extension defaults + docs + API cleanup (#1215) 2025-05-26 23:36:19 +02:00
Juro Oravec
55b1c8bc62
refecator: move defaults applying back to ext, raise on passing Slot to Slot, and docs cleanup (#1214)
* refecator: move defaults applying back to ext, raise on passing Slot to Slot, and docs cleanup

* docs: fix typo
2025-05-26 11:59:17 +02:00
Juro Oravec
bae0f28813
refactor: Instantiate component when rendering, and remove metadata stack (#1212)
* refactor: Instantiate component when rendering, and remove metadata stack

* refactor: update test

* refactor: fix linter errors

* docs: remove example from changelog
2025-05-25 23:33:38 +02:00
Juro Oravec
2e08af9a13
refactor: move slot escaping inside Slot, remve Slot.escaped, and remove render kwarg escape_slots_content (#1211) 2025-05-25 17:24:45 +02:00
Juro Oravec
046569e16d
fix: KeyError on component_context_cache when slot rendered outside (#1210) 2025-05-25 11:58:17 +02:00
Juro Oravec
6ff2d78a2f
feat: on_slot_rendered extension hook + refactor debug highlight as extension (#1209)
* feat: on_slot_rendered extension hook + refactor debug highlight as extension

* refactor: fix whitespace in test output
2025-05-25 11:20:32 +02:00
Juro Oravec
e054a68715
feat: Component.args/kwargs/slots and {{ component_vars.args/kwargs/s… (#1205)
* feat: Component.args/kwargs/slots and {{ component_vars.args/kwargs/slots }}

* docs: fix typo in changelog
2025-05-24 23:24:34 +02:00
Juro Oravec
f069255b64
refactor: simplify slot API (#1202)
Closes #1096
2025-05-20 09:48:45 +02:00
Juro Oravec
49ad23b21d
refactor: slots cleanup (#1199) 2025-05-19 19:56:27 +02:00
Juro Oravec
b6b574d875
refactor: Rename {% fill default=... %} to {% fill fallback=... %} (#1190) 2025-05-19 19:05:39 +02:00
Juro Oravec
0d05ef4cb2
feat: Expose slot input as Slot.contents (#1180)
* feat: expose slot input as Slot.contents

* refactor: fix linter errors
2025-05-14 11:17:09 +02:00
Juro Oravec
ccf02fa316
chore: util to manage URLs in the codebase (#1179)
* chore: util to manage URLs in the codebase

* docs: mentiion validate_links and supported_versions in docs

* refactor: fix linter errors
2025-05-11 14:59:34 +02:00
Juro Oravec
5f4fbe76e5
feat: add BaseNode.contents (#1177) 2025-05-11 08:11:07 +02:00
Juro Oravec
6253042e9e
refactor: remove middleware, add strategy "raw", and call render_deps() from within Template.render() (#1166)
* refactor: remove middleware, add strategy "raw", and call render_deps() from within Template.render()

* refactor: fix formatting

* refactor: fix benchmark tests

* refactor: avoid processing deps if rendered HTML contains no components

* refactor: remove comments

* refactor: rename "raw" to "ignore"
2025-05-06 21:36:41 +02:00
Juro Oravec
d4d834256a
refactor: rename context_data field to template_data (#1162) 2025-05-04 01:49:54 +02:00
Juro Oravec
28b61c1609
refactor: Update docs and tests to use get_template_data() (#1161)
* refactor: update docs and tests to use get_template_data()

* refactor: fix linting

* docs: add note about difference between the two methods
2025-05-03 12:04:10 +02:00
Juro Oravec
bf7a204e92
feat: add "simple", "prepend", and "append" render types (#1156)
* feat: add "simple", "prepend", and "append" render types

* refactor: explicitly set strategy for "document" in tests
2025-05-02 15:07:16 +02:00
Juro Oravec
59f82307ae
docs: docstrings, fundamentals, and minor changes (#1145)
* docs: docstrings, fundamentals, and minor changes

* refactor: fix tests + linter errors
2025-04-24 12:47:04 +02:00
Juro Oravec
519529d4e4
refactor: move Url.public to View.public (#1140)
* refactor: move Url.public to View.public

* refactor: fix tests / imports
2025-04-21 23:12:40 +02:00
Juro Oravec
b49002b545
refactor: change component typing from generics to class attributes (#1138) 2025-04-20 22:05:29 +02:00
Oliver Haas
e0b718c314
test: test to illustrate bug in component caching when using include tag (#1135)
* test: test to illustrate bug in component caching when using include tag

* fix: add cleanup for render context in component rendering

* refactor: clarify cleanup comment in component rendering logic

* refactor: fix linter errors

* test: formatting and unnecessary test setup

---------

Co-authored-by: Juro Oravec <juraj.oravec.josefson@gmail.com>
2025-04-20 11:53:06 +02:00
Juro Oravec
c650e7f3a5
refactor: prefix component ID with c (#1127) 2025-04-14 12:01:16 +02:00
Juro Oravec
fc026cbd99
docs: update section on working with request object (#1126)
* docs: update section on working with request object

* refactor: fix linting
2025-04-14 11:35:48 +02:00
Juro Oravec
06cad2ec64
refactor: use typevar defaults + raise on conflicting extensions (#1125)
* refactor: use typevar defaults + raise on conflicting extensions

* refactor: fix linter errors
2025-04-14 10:00:18 +02:00
Juro Oravec
613dfea379
refactor: cleanup docs, add docs on Render API, allow get_context_data return None (#1110)
* refactor: cleanup docs, add docs on Render API, allow get_context_data return None

* refactor: fix linter and tests
2025-04-09 15:06:14 +02:00
Juro Oravec
b6994e9ad3
feat: component caching (#1097)
* feat: allow to set defaults

* refactor: remove input validation and link to it

* feat: component URL

* feat: component caching

* refactor: Mark `OnComponentRenderedContext` as extension hook for docs

* docs: update changelog

* refactor: simplify hash methods
2025-04-08 11:54:39 +02:00
Juro Oravec
bb5de86b69
feat: expose _class_hash as class_id (#1094)
* feat: expose _class_hash as class_id

* refactor: fix linting
2025-04-07 11:08:02 +02:00
Juro Oravec
a49f5e51dd
feat: component URL (#1088)
* feat: allow to set defaults

* refactor: remove input validation and link to it

* feat: component URL

* refactor: fix linter errors

* refactor: fix linter errors + update examples to use Component.View..get

* docs: update comment

* refactor: revert change to hash_comp_cls

* docs: update comment
2025-04-07 10:44:41 +02:00
Juro Oravec
7e74831599
refactor: remove input validation and link to it (#1082)
* feat: allow to set defaults

* refactor: remove input validation and link to it

* docs: update changelog

* Update typing_and_validation.md

* Update typing_and_validation.md
2025-04-05 08:19:19 +02:00
Juro Oravec
f07818fc7d
feat: allow to set defaults (#1072)
* feat: allow to set defaults

* docs: update changelog

* refactor: fix new linter errors
2025-03-31 10:38:41 +02:00
Juro Oravec
107284f474
feat: registry.has(); helpers to get all components and registries; access component from ext class (#1030)
* feat: registry.has(); helpers to get all components and registries; access component from ext class

* refactor: add missing import
2025-03-18 11:30:53 +01:00
Juro Oravec
12a64f8e41
feat: allow extensions to add url views (#1025)
* feat: allow extensions to add url views

* refactor: fix linter errors
2025-03-17 08:36:47 +01:00
Juro Oravec
d3d2d0ab08
feat: allow extensions to add commands (#1017)
* feat: allow extensions to add commands

* refactor: fix tests

* refactor: more test fix

* refactor: more test fixes

* refactor: more linter fixes
2025-03-16 12:03:16 +01:00
Juro Oravec
4d35bc97a2
feat: extensions (#1009)
* feat: extensions

* refactor: remove support for passing in extensions as instances
2025-03-08 09:41:28 +01:00
Juro Oravec
7dfcb447c4
feat: add decorator for writing component tests (#1008)
* feat: add decorator for writing component tests

* refactor: udpate changelog + update deps pins

* refactor: fix deps

* refactor: make cached_ref into generic and fix linter errors

* refactor: fix coverage testing

* refactor: use global var instead of env var for is_testing state
2025-03-02 19:46:12 +01:00
lilian D
8b5579d2be
feat:forward context processors variables in context in ISOLATED mode (#975)
* feat:forward context processors variables in context in ISOLATED mode

	provide context_processors_data property to Component to access those variables in Component

* refactor: internalize RequestContext and pass HttpRequest internally

* docs: document HttpRequest and context processors

---------

Co-authored-by: Juro Oravec <juraj.oravec.josefson@gmail.com>
2025-02-20 11:06:49 +01:00
lilian D
58d4c78671
Bug : Relative path in extends and include does not work when using template_file (#976)
Co-authored-by: Juro Oravec <juraj.oravec.josefson@gmail.com>
2025-02-16 13:29:37 +01:00
Juro Oravec
eb3f72ee0d
refactor: fix bug with complex slots and "django" mode + add docs on debugging with AI agents (#956) 2025-02-11 10:57:37 +01:00
Juro Oravec
48bae51ab9
feat: allow to configure media cache (for JS and CSS files) (#946) 2025-02-03 21:24:26 +01:00
Juro Oravec
de32d449d9
feat: allow to highlight slots and components for debugging (#942) 2025-02-02 10:14:47 +01:00
Juro Oravec
96f48bc013
refactor: fix on_render_after hook (#941) 2025-02-01 17:39:56 +01:00
Juro Oravec
588053803d
refactor: fix component recursion (#936) 2025-02-01 17:19:21 +01:00
Oliver Haas
f01ee1fe8a
fix: implement safe retrieval of component classes from registry (#934) 2025-02-01 11:08:35 +01:00
Juro Oravec
0b65761fce
refactor: replace bs4 and perf optimizations (#927) 2025-01-24 10:30:41 +01:00
Juro Oravec
92f5497c74
refactor: change repo name and URL after org migration (#924) 2025-01-22 16:02:46 +01:00
Juro Oravec
f908197850
feat: @template_tag and refactor how template tags are defined (#910) 2025-01-20 22:47:04 +01:00