Juro Oravec
c692b7a310
refactor: Fix #1277 + Cache components' JS/CSS scripts at class creation ( #1283 )
...
* refactor: Cache components' JS and CSS scripts at class creation time
* refactor: add test for no template_rendered signal for component with no template
2025-07-03 12:27:21 +02:00
Juro Oravec
3fc96daa9b
refactor: in components ext run
, display only those extensions that actually have subcommands ( #1251 )
2025-06-10 11:11:24 +02:00
Juro Oravec
09bcf8dbcc
feat: on_xx_loaded extension hooks ( #1242 )
...
Run tests / test_sampleproject (3.13) (push) Has been cancelled
Run tests / build (ubuntu-latest, 3.13) (push) Has been cancelled
Run tests / build (ubuntu-latest, 3.8) (push) Has been cancelled
Run tests / build (ubuntu-latest, 3.9) (push) Has been cancelled
Run tests / build (windows-latest, 3.10) (push) Has been cancelled
Run tests / build (windows-latest, 3.11) (push) Has been cancelled
Run tests / build (windows-latest, 3.12) (push) Has been cancelled
Run tests / build (windows-latest, 3.13) (push) Has been cancelled
Run tests / build (windows-latest, 3.8) (push) Has been cancelled
Run tests / build (windows-latest, 3.9) (push) Has been cancelled
Run tests / test_docs (3.13) (push) Has been cancelled
Docs - build & deploy / docs (push) Has been cancelled
Run tests / build (ubuntu-latest, 3.10) (push) Has been cancelled
Run tests / build (ubuntu-latest, 3.11) (push) Has been cancelled
Run tests / build (ubuntu-latest, 3.12) (push) Has been cancelled
* feat: on_xx_loaded extension hooks
* refactor: fix tests
2025-06-08 17:28:10 +02:00
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
09cb8714cc
refactor: don't inherit media if child set to None ( #1224 )
...
* refactor: don't inherit media if child set to None
* refactor: fix typing errors
* refactor: more type fixes
2025-06-02 16:24:27 +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
fa9ae9892f
feat: Slot.extra and Slot.source metadata ( #1221 )
2025-05-31 11:22:45 +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
d514694788
feat: Pass Slots to {% fill %} with 'body' kwarg ( #1203 )
2025-05-22 08:01:21 +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
79c42da2f9
feat: slot caching ( #1196 )
...
* feat: slot caching
Closes #1164
* refactor: fix linter
2025-05-19 19:26:57 +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
661413d4a9
refactor: change caching methods to accept slots + typing fixes ( #1173 )
2025-05-09 10:19:34 +02:00
Juro Oravec
2dacac1f43
temp ( #1172 )
2025-05-06 21:48:18 +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
330578a2c7
refactor: update impl of format_url ( #1163 )
2025-05-04 12:24:04 +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
c69980493d
feat: allow to set query and fragment on get_component_url ( #1160 )
2025-05-03 10:29:38 +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
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
ad402fc619
refactor: fix compat with Django 5.2 Finder.find() ( #1121 )
...
* refactor: fix compat with Django 5.2 Finder.find()
* refactor: fix tests and linters
2025-04-12 09:35:33 +02:00
Juro Oravec
07f747d705
refactor: fix - allow components with Url.public to be defined before django.setup() ( #1112 )
2025-04-09 18:31:07 +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
2499126d1f
refactor: fix ext URLs lookup ( #1086 )
...
* refactor: fix ext URLs lookup
2025-04-05 09:10:04 +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
9f68f0f1a1
refactor: Fix path resolution relative to COMPONENTS.dirs + add CI test to ensure sampleproject works ( #1075 )
...
* refactor: Fix path resolution relative to COMPONENTS.dirs + add CI test to ensure sampleproject works
* refactor: fix compat with Windows by explicitly using utf8 encoding to read component files
* refactor: add missing components to tests
* docs: update changelog
* refactor: fix formatting
2025-03-31 16:09:37 +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
328309a81c
feat: granular handling of class and style in {% html_attrs %} ( #1066 )
...
* feat: granular handling of class and style in {% html_attrs %}
* refactor: fix linter errors
* docs: document deprecation, fix typos, fix broken table of contents
* refactor: remove classes and styles as lists from docs
2025-03-24 17:35:12 +01:00
Juro Oravec
42818ad6ff
refactor: fix component media URLs ( #1067 )
...
* refactor: fix component media URLs
* refactor: remove extraneous check and fix tests
* chore: bump v0.134
2025-03-23 22:32:18 +01:00