forked from extern/egroupware
55 lines
1.5 KiB
TypeScript
55 lines
1.5 KiB
TypeScript
import sl_css from '@shoelace-style/shoelace/dist/themes/light.styles.js';
|
|
import {css} from "lit";
|
|
|
|
import {registerIconLibrary} from '@shoelace-style/shoelace/dist/utilities/icon-library.js';
|
|
import {egw} from "../../jsapi/egw_global";
|
|
|
|
/**
|
|
* This makes sure the built-in icons can be found
|
|
*/
|
|
registerIconLibrary('default', {
|
|
resolver: name => `${egw.webserverUrl}/node_modules/@shoelace-style/shoelace/dist/assets/icons/${name}.svg`,
|
|
});
|
|
|
|
/**
|
|
* Override some shoelace icons with EGroupware icons
|
|
* In particular, the data: ones give errors with our CSP
|
|
* hacky hack to temporarily work around until CSP issue is fixed
|
|
*
|
|
* @see https://my.egroupware.org/egw/index.php?menuaction=tracker.tracker_ui.edit&tr_id=68774
|
|
*/
|
|
const egw_icons = {'chevron-down': 'arrow_down', 'x': 'close', 'x-circle-fill': 'close'}
|
|
registerIconLibrary("system", {
|
|
resolver: (name) =>
|
|
{
|
|
if(egw_icons[name])
|
|
{
|
|
return `${egw.webserverUrl}/pixelegg/images/${egw_icons[name]}.svg`;
|
|
}
|
|
return "";
|
|
}
|
|
});
|
|
|
|
|
|
/**
|
|
* Customise shoelace styles to match our stuff
|
|
* External CSS will override this
|
|
*/
|
|
export default [sl_css, css`
|
|
:root,
|
|
:host,
|
|
.sl-theme-light {
|
|
--sl-font-size-medium: 11px;
|
|
|
|
--sl-input-height-small: 18px;
|
|
--sl-input-height-medium: 24px;
|
|
|
|
--sl-spacing-small: 0.1rem;
|
|
--sl-spacing-medium: 0.5rem;
|
|
|
|
--sl-input-border-radius-small: 2px;
|
|
--sl-input-border-radius-medium: 3px;
|
|
--sl-input-border-color-focus: #E6E6E6;
|
|
}
|
|
|
|
`]; |