forgejo/web_src/js/webcomponents
silverwind 1a17c39e00
Use Temporal.PlainDate for absolute dates (#29804)
Use the upcoming
[Temporal.PlainDate](https://tc39.es/proposal-temporal/docs/plaindate.html)
via polyfill. If there is any remaining bugs in `<absolute-date>` this
will iron them out. I opted for the lightweight polyfill because both
seem to achieve our goal of localizeable absolute dates.

- With
[`@js-temporal/polyfill`](https://www.npmjs.com/package/@js-temporal/polyfill)
chunk size goes from 81.4 KiB to 274 KiB
- With
[`temporal-polyfill`](https://www.npmjs.com/package/temporal-polyfill)
chunk size goes from 81.4 KiB to 142 KiB

Also see [this
table](https://github.com/fullcalendar/temporal-polyfill?tab=readme-ov-file#comparison-with-js-temporalpolyfill)
for more comparisons of these polyfills. Soon there will be
[treeshakable
API](https://github.com/fullcalendar/temporal-polyfill?tab=readme-ov-file#tree-shakable-api)
as well which will further reduce size.

(cherry picked from commit 0d3ec8e2adfcf49329b52d74367698b62ffb3f73)
2024-03-20 08:46:29 +01:00
..
absolute-date.js Use Temporal.PlainDate for absolute dates (#29804) 2024-03-20 08:46:29 +01:00
absolute-date.test.js Use Temporal.PlainDate for absolute dates (#29804) 2024-03-20 08:46:29 +01:00
index.js Add <overflow-menu>, rename webcomponents (#29400) 2024-03-20 08:46:29 +01:00
origin-url.js Add <overflow-menu>, rename webcomponents (#29400) 2024-03-20 08:46:29 +01:00
origin-url.test.js Add <overflow-menu>, rename webcomponents (#29400) 2024-03-20 08:46:29 +01:00
overflow-menu.js Add <overflow-menu>, rename webcomponents (#29400) 2024-03-20 08:46:29 +01:00
polyfills.js Add <overflow-menu>, rename webcomponents (#29400) 2024-03-20 08:46:29 +01:00
README.md Add <overflow-menu>, rename webcomponents (#29400) 2024-03-20 08:46:29 +01:00

Web Components

This webcomponents directory contains the source code for the web components used in the Gitea Web UI.

https://developer.mozilla.org/en-US/docs/Web/Web_Components

Guidelines

  • These components are loaded in <head> (before DOM body) in a separate entry point, they need to be lightweight to not affect the page loading time too much.
  • Do not import svg.js into a web component because that file is currently not tree-shakeable, import svg files individually insteat.
  • All our components must be added to webpack.config.js so they work correctly in Vue.