@hotosm/ui 0.3.4-b3 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/README.md +18 -7
  2. package/dist/chunks/chunk.3RPYDHJV.js +1 -0
  3. package/dist/chunks/chunk.5NFC3HMD.js +1 -0
  4. package/dist/chunks/chunk.7BVHA4G6.js +71 -0
  5. package/dist/chunks/{chunk.SLQC3DLQ.js → chunk.7G6VEQ2R.js} +2 -2
  6. package/dist/chunks/chunk.ARF626EG.js +59 -0
  7. package/dist/chunks/{chunk.SHZIJ2ZS.js → chunk.BD4Q32VT.js} +1 -1
  8. package/dist/chunks/chunk.CQO3GWTI.js +32 -0
  9. package/dist/chunks/chunk.EB2T3VFE.js +122 -0
  10. package/dist/chunks/chunk.GEAU3JJH.js +187 -0
  11. package/dist/chunks/{chunk.NA3GD2QI.js → chunk.GLN7KYWH.js} +1 -1
  12. package/dist/chunks/{chunk.CY4WTDL2.js → chunk.LHZ7Q2M3.js} +1 -1
  13. package/dist/chunks/{chunk.SVLPRECX.js → chunk.PBBH42B6.js} +1 -1
  14. package/dist/chunks/chunk.PLECT4NZ.js +20 -0
  15. package/dist/chunks/chunk.QABMDRWR.js +28 -0
  16. package/dist/chunks/chunk.SLA5IPJG.js +1 -0
  17. package/dist/chunks/chunk.TMMJP2DW.js +1 -0
  18. package/dist/chunks/chunk.VXTJYHK5.js +1 -0
  19. package/dist/chunks/chunk.W372S2KG.js +1 -0
  20. package/dist/chunks/chunk.WTTPHBL3.js +105 -0
  21. package/dist/chunks/chunk.XDXYJBLZ.js +1 -0
  22. package/dist/chunks/{chunk.TYOVPHVD.js → chunk.XNZFLEXO.js} +1 -1
  23. package/dist/chunks/chunk.ZETV7TDG.js +25 -0
  24. package/dist/components/consent/consent.component.js +1 -1
  25. package/dist/components/consent/consent.js +1 -1
  26. package/dist/components/consent/consent.styles.js +1 -1
  27. package/dist/components/file-input-dropzone/file-input-dropzone.component.d.ts +39 -0
  28. package/dist/components/file-input-dropzone/file-input-dropzone.component.js +1 -0
  29. package/dist/components/file-input-dropzone/file-input-dropzone.d.ts +8 -0
  30. package/dist/components/file-input-dropzone/file-input-dropzone.js +1 -0
  31. package/dist/components/file-input-dropzone/file-input-dropzone.styles.d.ts +2 -0
  32. package/dist/components/file-input-dropzone/file-input-dropzone.styles.js +1 -0
  33. package/dist/components/header/header.component.d.ts +0 -2
  34. package/dist/components/header/header.component.js +1 -1
  35. package/dist/components/header/header.js +1 -1
  36. package/dist/components/header/header.styles.js +1 -1
  37. package/dist/components/list-card/list-card.component.d.ts +16 -0
  38. package/dist/components/list-card/list-card.component.js +1 -0
  39. package/dist/components/list-card/list-card.d.ts +7 -0
  40. package/dist/components/list-card/list-card.js +1 -0
  41. package/dist/components/list-card/list-card.styles.d.ts +2 -0
  42. package/dist/components/list-card/list-card.styles.js +1 -0
  43. package/dist/components/logo/logo.component.js +1 -1
  44. package/dist/components/logo/logo.js +1 -1
  45. package/dist/components/logo/logo.styles.js +1 -1
  46. package/dist/components/tool-menu/tool-menu.component.d.ts +13 -0
  47. package/dist/components/tool-menu/tool-menu.component.js +1 -0
  48. package/dist/components/tool-menu/tool-menu.d.ts +7 -0
  49. package/dist/components/tool-menu/tool-menu.js +1 -0
  50. package/dist/components/tool-menu/tool-menu.styles.d.ts +1 -0
  51. package/dist/components/tool-menu/tool-menu.styles.js +1 -0
  52. package/dist/components/tracking/tracking.component.js +1 -1
  53. package/dist/components/tracking/tracking.js +1 -1
  54. package/dist/hotosm-ui.d.ts +9 -6
  55. package/dist/hotosm-ui.js +1 -1
  56. package/dist/style.css +4 -3
  57. package/dist/themes/{hot-wa-override.css → hot-wa.css} +122 -323
  58. package/dist/themes/hot.css +15 -15
  59. package/dist/utils/shadow-dom-css.d.ts +3 -17
  60. package/package.json +21 -6
  61. package/dist/chunks/chunk.2LYFUHTS.js +0 -633
  62. package/dist/chunks/chunk.5EPWWJMT.js +0 -1
  63. package/dist/chunks/chunk.7M3AMUDU.js +0 -1
  64. package/dist/chunks/chunk.FT6RSQVB.js +0 -25
  65. package/dist/chunks/chunk.JHIEUZ7A.js +0 -1
  66. package/dist/chunks/chunk.WSMXFTSE.js +0 -28
  67. package/dist/chunks/chunk.XB4PECPF.js +0 -1
  68. package/dist/themes/hot-button-override.css +0 -246
@@ -1 +1 @@
1
- import{a}from"../../chunks/chunk.JHIEUZ7A.js";import"../../chunks/chunk.SHZIJ2ZS.js";import"../../chunks/chunk.SVLPRECX.js";import"../../chunks/chunk.FT6RSQVB.js";import"../../chunks/chunk.WSMXFTSE.js";import"../../chunks/chunk.N2W26RCT.js";export{a as default};
1
+ import{a}from"../../chunks/chunk.5NFC3HMD.js";import"../../chunks/chunk.BD4Q32VT.js";import"../../chunks/chunk.PBBH42B6.js";import"../../chunks/chunk.ZETV7TDG.js";import"../../chunks/chunk.QABMDRWR.js";import"../../chunks/chunk.N2W26RCT.js";export{a as default};
@@ -1 +1 @@
1
- import{a}from"../../chunks/chunk.SVLPRECX.js";import"../../chunks/chunk.WSMXFTSE.js";import"../../chunks/chunk.N2W26RCT.js";export{a as default};
1
+ import{a}from"../../chunks/chunk.PBBH42B6.js";import"../../chunks/chunk.QABMDRWR.js";import"../../chunks/chunk.N2W26RCT.js";export{a as default};
@@ -0,0 +1,13 @@
1
+ import "@awesome.me/webawesome/dist/components/dropdown/dropdown";
2
+ import "@awesome.me/webawesome/dist/components/button/button";
3
+ import "@awesome.me/webawesome/dist/components/icon/icon";
4
+ import { LitElement } from "lit";
5
+ export declare class HotToolMenu extends LitElement {
6
+ static styles: import("lit").CSSResult;
7
+ showLogos: boolean;
8
+ private tools;
9
+ private getToolsBySection;
10
+ private handleSelect;
11
+ render(): import("lit").TemplateResult<1>;
12
+ }
13
+ export default HotToolMenu;
@@ -0,0 +1 @@
1
+ import{a,b}from"../../chunks/chunk.CQO3GWTI.js";import"../../chunks/chunk.ARF626EG.js";import"../../chunks/chunk.ZETV7TDG.js";import"../../chunks/chunk.QABMDRWR.js";import"../../chunks/chunk.N2W26RCT.js";export{a as HotToolMenu,b as default};
@@ -0,0 +1,7 @@
1
+ import HotToolMenu from './tool-menu.component.js';
2
+ export default HotToolMenu;
3
+ declare global {
4
+ interface HTMLElementTagNameMap {
5
+ 'hotosm-tool-menu': HotToolMenu;
6
+ }
7
+ }
@@ -0,0 +1 @@
1
+ import{a}from"../../chunks/chunk.XDXYJBLZ.js";import"../../chunks/chunk.CQO3GWTI.js";import"../../chunks/chunk.ARF626EG.js";import"../../chunks/chunk.ZETV7TDG.js";import"../../chunks/chunk.QABMDRWR.js";import"../../chunks/chunk.N2W26RCT.js";export{a as default};
@@ -0,0 +1 @@
1
+ export declare const styles: import("lit").CSSResult;
@@ -0,0 +1 @@
1
+ import{a}from"../../chunks/chunk.ARF626EG.js";import"../../chunks/chunk.QABMDRWR.js";import"../../chunks/chunk.N2W26RCT.js";export{a as styles};
@@ -1 +1 @@
1
- import{a,b}from"../../chunks/chunk.SLQC3DLQ.js";import"../../chunks/chunk.FT6RSQVB.js";import"../../chunks/chunk.WSMXFTSE.js";import"../../chunks/chunk.N2W26RCT.js";export{a as MatomoTracking,b as default};
1
+ import{a,b}from"../../chunks/chunk.7G6VEQ2R.js";import"../../chunks/chunk.ZETV7TDG.js";import"../../chunks/chunk.QABMDRWR.js";import"../../chunks/chunk.N2W26RCT.js";export{a as MatomoTracking,b as default};
@@ -1 +1 @@
1
- import{a}from"../../chunks/chunk.5EPWWJMT.js";import"../../chunks/chunk.SLQC3DLQ.js";import"../../chunks/chunk.FT6RSQVB.js";import"../../chunks/chunk.WSMXFTSE.js";import"../../chunks/chunk.N2W26RCT.js";export{a as default};
1
+ import{a}from"../../chunks/chunk.SLA5IPJG.js";import"../../chunks/chunk.7G6VEQ2R.js";import"../../chunks/chunk.ZETV7TDG.js";import"../../chunks/chunk.QABMDRWR.js";import"../../chunks/chunk.N2W26RCT.js";export{a as default};
@@ -1,6 +1,9 @@
1
- import HotHeader from './components/header/header.js';
2
- import HotLogo from './components/logo/logo.js';
3
- import HotTracking from './components/tracking/tracking.js';
4
- import HotConsent from './components/consent/consent.js';
5
- export { setupAutoInjection, injectHOTThemeIntoButtons, injectHOTThemeIntoAllComponents, injectCSSIntoShadowDOM } from './utils/shadow-dom-css.js';
6
- export { HotHeader as Header, HotLogo as Logo, HotConsent as Consent, HotTracking as Tracking, };
1
+ import HotHeader from "./components/header/header.js";
2
+ import HotLogo from "./components/logo/logo.js";
3
+ import HotTracking from "./components/tracking/tracking.js";
4
+ import HotConsent from "./components/consent/consent.js";
5
+ import HotFileInputDropzone from "./components/file-input-dropzone/file-input-dropzone.js";
6
+ import HotListCard from "./components/list-card/list-card.js";
7
+ import HotToolMenu from "./components/tool-menu/tool-menu.js";
8
+ export { injectCSSIntoShadowDOM } from "./utils/shadow-dom-css.js";
9
+ export { HotHeader as Header, HotLogo as Logo, HotConsent as Consent, HotTracking as Tracking, HotFileInputDropzone as FileInputDropzone, HotListCard as ListCard, HotToolMenu as ToolMenu, };
package/dist/hotosm-ui.js CHANGED
@@ -1 +1 @@
1
- import{a as m}from"./chunks/chunk.JHIEUZ7A.js";import"./chunks/chunk.SHZIJ2ZS.js";import"./chunks/chunk.SVLPRECX.js";import{a as i}from"./chunks/chunk.5EPWWJMT.js";import"./chunks/chunk.SLQC3DLQ.js";import{a}from"./chunks/chunk.XB4PECPF.js";import"./chunks/chunk.NA3GD2QI.js";import"./chunks/chunk.TYOVPHVD.js";import{a as r}from"./chunks/chunk.7M3AMUDU.js";import{a as o,b as t,c as e,d as n}from"./chunks/chunk.2LYFUHTS.js";import"./chunks/chunk.FT6RSQVB.js";import"./chunks/chunk.M3ZIZPKF.js";import"./chunks/chunk.CY4WTDL2.js";import"./chunks/chunk.WSMXFTSE.js";import"./chunks/chunk.N2W26RCT.js";export{a as Consent,r as Header,m as Logo,i as Tracking,o as injectCSSIntoShadowDOM,e as injectHOTThemeIntoAllComponents,t as injectHOTThemeIntoButtons,n as setupAutoInjection};
1
+ import{a as d}from"./chunks/chunk.5NFC3HMD.js";import{a as S}from"./chunks/chunk.XDXYJBLZ.js";import"./chunks/chunk.CQO3GWTI.js";import"./chunks/chunk.ARF626EG.js";import{a as p}from"./chunks/chunk.SLA5IPJG.js";import"./chunks/chunk.7G6VEQ2R.js";import{a as m}from"./chunks/chunk.VXTJYHK5.js";import"./chunks/chunk.EB2T3VFE.js";import"./chunks/chunk.LHZ7Q2M3.js";import"./chunks/chunk.BD4Q32VT.js";import"./chunks/chunk.PBBH42B6.js";import{a as u}from"./chunks/chunk.3RPYDHJV.js";import"./chunks/chunk.GLN7KYWH.js";import"./chunks/chunk.M3ZIZPKF.js";import"./chunks/chunk.XNZFLEXO.js";import{a as h}from"./chunks/chunk.W372S2KG.js";import"./chunks/chunk.WTTPHBL3.js";import{a as f}from"./chunks/chunk.TMMJP2DW.js";import"./chunks/chunk.PLECT4NZ.js";import"./chunks/chunk.7BVHA4G6.js";import"./chunks/chunk.ZETV7TDG.js";import"./chunks/chunk.GEAU3JJH.js";import"./chunks/chunk.QABMDRWR.js";import"./chunks/chunk.N2W26RCT.js";function a(o,e=document){let t=[],r=e.querySelectorAll(o);return t.push(...Array.from(r)),e.querySelectorAll("*").forEach(i=>{i.shadowRoot&&t.push(...a(o,i.shadowRoot))}),t}function y(o){let{css:e,selector:t="wa-button",all:r=!0,styleId:s="hot-theme-injection"}=o;(r?a(t):[a(t)[0]].filter(Boolean)).forEach(n=>{if(!n)return;let c=()=>{if(!n.shadowRoot){setTimeout(c,10);return}if(n.shadowRoot.getElementById(s))return;let l=document.createElement("style");l.id=s,l.textContent=e,n.shadowRoot.appendChild(l)};c()})}export{u as Consent,h as FileInputDropzone,m as Header,f as ListCard,d as Logo,S as ToolMenu,p as Tracking,y as injectCSSIntoShadowDOM};
package/dist/style.css CHANGED
@@ -1,3 +1,6 @@
1
+ /* Import fonts */
2
+ @import url('https://fonts.googleapis.com/css2?family=Archivo:wght@300;400;500;700&family=Barlow:wght@400;500;700&family=Barlow+Condensed:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Space+Mono:ital,wght@0,400;0,700;1,400;1,700&display=swap');
3
+
1
4
  /* First import WebAwesome base styles */
2
5
  @import url('https://early.webawesome.com/webawesome@3.0.0-beta.1/dist/styles/webawesome.css');
3
6
 
@@ -5,7 +8,5 @@
5
8
  @import 'themes/hot.css';
6
9
 
7
10
  /* Then our WebAwesome overrides */
8
- @import 'themes/hot-wa-override.css';
11
+ @import 'themes/hot-wa.css';
9
12
 
10
- /* Finally our specific button component override */
11
- @import 'themes/hot-button-override.css';
@@ -1,7 +1,15 @@
1
+ /* HOT theme for WebAwesome
1
2
 
2
- /* HOT colour palette for WebAwesome */
3
+ 1. First import WebAwesome base styles
4
+ @import url("https://early.webawesome.com/webawesome@3.0.0-beta.1/dist/styles/webawesome.css");
3
5
 
4
- @import url('https://early.webawesome.com/webawesome@3.0.0-beta.3/dist/styles/color/palettes/base.css');
6
+ 2. Then import our HOT theme variables
7
+ @import "./hot.css";
8
+ @import "./hot-font-face.css";
9
+
10
+ 3. Then HOT WebAwesome overrides
11
+ @import "./hot-wa.css";
12
+ */
5
13
 
6
14
  @layer wa-color-palette {
7
15
  :where(:root),
@@ -226,83 +234,6 @@
226
234
  --wa-color-pink: var(--wa-color-pink-50);
227
235
  --wa-color-pink-key: 50;
228
236
 
229
- /*
230
- * WebAwesome Theme Override
231
- * This defines all the semantic color variants used by WebAwesome components
232
- */
233
- :where(:root), .wa-theme-default, .wa-light, .wa-dark .wa-invert, .wa-light .wa-theme-default, .wa-dark .wa-theme-default.wa-invert, .wa-dark .wa-theme-default .wa-invert {
234
- color-scheme: light;
235
- color: var(--wa-color-text-normal);
236
- --wa-color-surface-raised: white;
237
- --wa-color-surface-default: white;
238
- --wa-color-surface-lowered: var(--wa-color-neutral-95);
239
- --wa-color-surface-border: var(--wa-color-neutral-90);
240
- --wa-color-text-normal: var(--wa-color-neutral-10);
241
- --wa-color-text-quiet: var(--wa-color-neutral-40);
242
- --wa-color-text-link: var(--wa-color-brand-40);
243
- --wa-color-overlay-modal:
244
- color-mix(in oklab, var(--wa-color-neutral-05) 50%, transparent);
245
- --wa-color-overlay-inline:
246
- color-mix(in oklab, var(--wa-color-neutral-80) 25%, transparent);
247
- --wa-color-shadow:
248
- color-mix(in oklab, var(--wa-color-neutral-05) calc(var(--wa-shadow-blur-scale) * 4% + 8%), transparent);
249
- --wa-color-focus: var(--wa-color-brand-60);
250
- --wa-color-mix-hover: black 10%;
251
- --wa-color-mix-active: black 20%;
252
- --wa-color-brand-fill-quiet: var(--wa-color-brand-95);
253
- --wa-color-brand-fill-normal: var(--wa-color-brand-90);
254
- --wa-color-brand-fill-loud: var(--wa-color-brand-50);
255
- --wa-color-brand-border-quiet: var(--wa-color-brand-90);
256
- --wa-color-brand-border-normal: var(--wa-color-brand-80);
257
- --wa-color-brand-border-loud: var(--wa-color-brand-60);
258
- --wa-color-brand-on-quiet: var(--wa-color-brand-40);
259
- --wa-color-brand-on-normal: var(--wa-color-brand-30);
260
- --wa-color-brand-on-loud: white;
261
- --wa-color-success-fill-quiet: var(--wa-color-success-95);
262
- --wa-color-success-fill-normal: var(--wa-color-success-90);
263
- --wa-color-success-fill-loud: var(--wa-color-success-50);
264
- --wa-color-success-border-quiet: var(--wa-color-success-90);
265
- --wa-color-success-border-normal: var(--wa-color-success-80);
266
- --wa-color-success-border-loud: var(--wa-color-success-60);
267
- --wa-color-success-on-quiet: var(--wa-color-success-40);
268
- --wa-color-success-on-normal: var(--wa-color-success-30);
269
- --wa-color-success-on-loud: white;
270
- --wa-color-warning-fill-quiet: var(--wa-color-warning-95);
271
- --wa-color-warning-fill-normal: var(--wa-color-warning-90);
272
- --wa-color-warning-fill-loud: var(--wa-color-warning-50);
273
- --wa-color-warning-border-quiet: var(--wa-color-warning-90);
274
- --wa-color-warning-border-normal: var(--wa-color-warning-80);
275
- --wa-color-warning-border-loud: var(--wa-color-warning-60);
276
- --wa-color-warning-on-quiet: var(--wa-color-warning-40);
277
- --wa-color-warning-on-normal: var(--wa-color-warning-30);
278
- --wa-color-warning-on-loud: white;
279
- --wa-color-danger-fill-quiet: var(--wa-color-danger-95);
280
- --wa-color-danger-fill-normal: var(--wa-color-danger-90);
281
- --wa-color-danger-fill-loud: var(--wa-color-danger-50);
282
- --wa-color-danger-border-quiet: var(--wa-color-danger-90);
283
- --wa-color-danger-border-normal: var(--wa-color-danger-80);
284
- --wa-color-danger-border-loud: var(--wa-color-danger-60);
285
- --wa-color-danger-on-quiet: var(--wa-color-danger-40);
286
- --wa-color-danger-on-normal: var(--wa-color-danger-30);
287
- --wa-color-danger-on-loud: white;
288
- --wa-color-neutral-fill-quiet: var(--wa-color-neutral-95);
289
- --wa-color-neutral-fill-normal: var(--wa-color-neutral-90);
290
- --wa-color-neutral-fill-loud: var(--wa-color-neutral-20);
291
- --wa-color-neutral-border-quiet: var(--wa-color-neutral-90);
292
- --wa-color-neutral-border-normal: var(--wa-color-neutral-80);
293
- --wa-color-neutral-border-loud: var(--wa-color-neutral-60);
294
- --wa-color-neutral-on-quiet: var(--wa-color-neutral-40);
295
- --wa-color-neutral-on-normal: var(--wa-color-neutral-30);
296
- --wa-color-neutral-on-loud: white;
297
- }
298
-
299
- /*
300
- * Typography
301
- *
302
- * See https://early.webawesome.com/webawesome@3.0.0-beta.1/dist/styles/themes/default.css for all options
303
- */
304
- /* */
305
-
306
237
  /* Fonts */
307
238
  --wa-font-family-body: var(--hot-font-sans);
308
239
  --wa-font-family-heading: var(--hot-font-sans-variant);
@@ -311,11 +242,11 @@
311
242
 
312
243
  /* Font sizes */
313
244
  --wa-font-size-2xs: var(--hot-font-size-2x-small); /* 10px */
314
- --wa-font-size-xs: var(--hot-font-size-x-small); /* 12px */
315
- --wa-font-size-s: var(--hot-font-size-small); /* 14px */
316
- --wa-font-size-m: var(--hot-font-size-medium); /* 16px */
317
- --wa-font-size-l: var(--hot-font-size-large); /* 20px */
318
- --wa-font-size-xl: var(--hot-font-size-x-large); /* 24px */
245
+ --wa-font-size-xs: var(--hot-font-size-x-small); /* 12px */
246
+ --wa-font-size-s: var(--hot-font-size-small); /* 14px */
247
+ --wa-font-size-m: var(--hot-font-size-medium); /* 16px */
248
+ --wa-font-size-l: var(--hot-font-size-large); /* 20px */
249
+ --wa-font-size-xl: var(--hot-font-size-x-large); /* 24px */
319
250
  --wa-font-size-2xl: var(--hot-font-size-2x-large); /* 36px */
320
251
  --wa-font-size-3xl: var(--hot-font-size-3x-large); /* 48px */
321
252
  --wa-font-size-4xl: var(--hot-font-size-4x-large); /* 72px */
@@ -347,246 +278,114 @@
347
278
  */
348
279
  /* */
349
280
 
350
- --wa-space-3xs: var(--hot-spacing-3x-small); /* 2px */
351
- --wa-space-2xs: var(--hot-spacing-2x-small); /* 4px */
352
- --wa-space-xs: var(--hot-spacing-x-small); /* 8px */
353
- --wa-space-s: var(--hot-spacing-small); /* 12px */
354
- --wa-space-m: var(--hot-spacing-medium); /* 16px */
355
- --wa-space-l: var(--hot-spacing-large); /* 20px */
356
- --wa-space-xl: var(--hot-spacing-x-large); /* 28px */
357
- --wa-space-2xl: var(--hot-spacing-2x-large); /* 36px */
358
- --wa-space-3xl: var(--hot-spacing-3x-large); /* 48px */
359
- --wa-space-4xl: var(--hot-spacing-4x-large); /* 72px */
360
-
361
- --wa-border-radius-s: var(--hot-border-radius-small); /* 3px */
362
- --wa-border-radius-m: var(--hot-border-radius-medium); /* 4px */
363
- --wa-border-radius-l: var(--hot-border-radius-large); /* 8px */
364
- --wa-border-radius-pill: var(--hot-border-radius-pill); /* 9999px */
365
- --wa-border-radius-circle: var(--hot-border-radius-circle); /* 50% */
281
+ --wa-space-3xs: var(--hot-spacing-3x-small); /* 2px */
282
+ --wa-space-2xs: var(--hot-spacing-2x-small); /* 4px */
283
+ --wa-space-xs: var(--hot-spacing-x-small); /* 8px */
284
+ --wa-space-s: var(--hot-spacing-small); /* 12px */
285
+ --wa-space-m: var(--hot-spacing-medium); /* 16px */
286
+ --wa-space-l: var(--hot-spacing-large); /* 20px */
287
+ --wa-space-xl: var(--hot-spacing-x-large); /* 28px */
288
+ --wa-space-2xl: var(--hot-spacing-2x-large); /* 36px */
289
+ --wa-space-3xl: var(--hot-spacing-3x-large); /* 48px */
290
+ --wa-space-4xl: var(--hot-spacing-4x-large); /* 72px */
291
+
292
+ --wa-border-radius-s: var(--hot-border-radius-small); /* 3px */
293
+ --wa-border-radius-m: var(--hot-border-radius-medium); /* 4px */
294
+ --wa-border-radius-l: var(--hot-border-radius-large); /* 8px */
295
+ --wa-border-radius-pill: var(--hot-border-radius-pill); /* 9999px */
296
+ --wa-border-radius-circle: var(--hot-border-radius-circle); /* 50% */
366
297
  }
367
298
  }
368
299
 
369
- /*
370
- * Button Customizations
371
- * Based on WebAwesome documentation: https://webawesome.com/docs/customizing/
372
- */
373
-
374
- /* Custom Properties for Button Components */
375
- wa-button {
376
- /* Button sizing */
377
- --size: var(--wa-space-l); /* 20px - default button height */
378
- --padding-x: var(--wa-space-m); /* 16px horizontal padding */
379
- --padding-y: var(--wa-space-s); /* 12px vertical padding */
380
-
381
- /* Button appearance */
382
- --border-radius: var(--wa-border-radius-m); /* 4px border radius */
383
- --border-width: 1px;
384
- --font-size: var(--wa-font-size-s); /* 14px font size */
385
- --font-weight: var(--wa-font-weight-action); /* semibold */
386
-
387
- /* Button states */
388
- --transition-duration: 150ms;
389
- --transition-timing: ease-out;
390
- }
391
-
392
- /* Button size variants */
393
- wa-button[size="small"] {
394
- --size: var(--wa-space-m); /* 16px */
395
- --padding-x: var(--wa-space-s); /* 12px */
396
- --padding-y: var(--wa-space-xs); /* 8px */
397
- --font-size: var(--wa-font-size-xs); /* 12px */
398
- }
399
-
400
- wa-button[size="large"] {
401
- --size: var(--wa-space-xl); /* 28px */
402
- --padding-x: var(--wa-space-l); /* 20px */
403
- --padding-y: var(--wa-space-m); /* 16px */
404
- --font-size: var(--wa-font-size-m); /* 16px */
405
- }
406
-
407
- /* CSS Parts for advanced button styling */
408
- wa-button::part(base) {
409
- /* Base button styling */
410
- border-radius: var(--border-radius);
411
- border-width: var(--border-width);
412
- font-size: var(--font-size);
413
- font-weight: var(--font-weight);
414
- padding: var(--padding-y) var(--padding-x);
415
- min-height: var(--size);
416
- transition: all var(--transition-duration) var(--transition-timing);
417
-
418
- /* HOT-specific styling */
419
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
420
- }
421
-
422
- wa-button::part(base):hover {
423
- /* Hover state */
424
- transform: translateY(-1px);
425
- box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
426
- }
427
-
428
- wa-button::part(base):active {
429
- /* Active state */
430
- transform: translateY(0);
431
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
432
- }
433
-
434
- wa-button::part(base):focus-visible {
435
- /* Focus state */
436
- outline: 2px solid var(--wa-color-focus);
437
- outline-offset: 2px;
438
- }
439
-
440
- wa-button::part(label) {
441
- /* Button text styling */
442
- font-family: var(--wa-font-family-body);
443
- letter-spacing: 0.025em;
444
- }
445
-
446
- /* Button variant-specific styling */
447
- wa-button[variant="primary"]::part(base) {
448
- background: linear-gradient(135deg, var(--wa-color-brand-fill-loud), var(--wa-color-brand-fill-normal));
449
- border-color: var(--wa-color-brand-border-loud);
450
- color: var(--wa-color-brand-on-loud);
451
- }
452
-
453
- wa-button[variant="primary"]::part(base):hover {
454
- background: linear-gradient(135deg, var(--wa-color-brand-fill-normal), var(--wa-color-brand-fill-quiet));
455
- border-color: var(--wa-color-brand-border-normal);
456
- }
457
-
458
- wa-button[variant="secondary"]::part(base) {
459
- background: var(--wa-color-neutral-fill-quiet);
460
- border-color: var(--wa-color-neutral-border-normal);
461
- color: var(--wa-color-neutral-on-quiet);
462
- }
463
-
464
- wa-button[variant="secondary"]::part(base):hover {
465
- background: var(--wa-color-neutral-fill-normal);
466
- border-color: var(--wa-color-neutral-border-loud);
467
- color: var(--wa-color-neutral-on-normal);
468
- }
469
-
470
- wa-button[variant="outline"]::part(base) {
471
- background: transparent;
472
- border-color: var(--wa-color-brand-border-normal);
473
- color: var(--wa-color-brand-on-normal);
474
- }
475
-
476
- wa-button[variant="outline"]::part(base):hover {
477
- background: var(--wa-color-brand-fill-quiet);
478
- border-color: var(--wa-color-brand-border-loud);
479
- color: var(--wa-color-brand-on-quiet);
480
- }
481
-
482
- /* Success, warning, danger variants */
483
- wa-button[variant="success"]::part(base) {
484
- background: linear-gradient(135deg, var(--wa-color-success-fill-loud), var(--wa-color-success-fill-normal));
485
- border-color: var(--wa-color-success-border-loud);
486
- color: var(--wa-color-success-on-loud);
487
- }
488
-
489
- wa-button[variant="warning"]::part(base) {
490
- background: linear-gradient(135deg, var(--wa-color-warning-fill-loud), var(--wa-color-warning-fill-normal));
491
- border-color: var(--wa-color-warning-border-loud);
492
- color: var(--wa-color-warning-on-loud);
493
- }
494
-
495
- wa-button[variant="danger"]::part(base) {
496
- background: linear-gradient(135deg, var(--wa-color-danger-fill-loud), var(--wa-color-danger-fill-normal));
497
- border-color: var(--wa-color-danger-border-loud);
498
- color: var(--wa-color-danger-on-loud);
499
- }
500
-
501
- /* Custom states using :state() selector */
502
- wa-button:state(disabled)::part(base) {
503
- opacity: 0.5;
504
- cursor: not-allowed;
505
- transform: none;
506
- box-shadow: none;
507
- }
508
-
509
- wa-button:state(loading)::part(base) {
510
- cursor: wait;
511
- }
512
-
513
- /* Custom button classes for specific use cases */
514
- wa-button.hot-gradient::part(base) {
515
- background: linear-gradient(217deg, var(--wa-color-red-50), var(--wa-color-orange-50), var(--wa-color-yellow-50));
516
- border: solid 1px var(--wa-color-orange-50);
517
- color: white;
518
- text-shadow: rgba(0, 0, 0, 0.3) 0 -1px;
519
- }
520
-
521
- wa-button.hot-gradient::part(base):hover {
522
- box-shadow: var(--wa-shadow-m);
523
- transform: translateY(-3px);
524
- }
525
-
526
- wa-button.hot-gradient::part(base):active {
527
- box-shadow: inset var(--wa-shadow-s);
528
- transform: translateY(0);
529
- }
530
-
531
- /* Icon button styling */
532
- wa-button[appearance="icon"] {
533
- --padding-x: var(--wa-space-xs);
534
- --padding-y: var(--wa-space-xs);
535
- --size: var(--wa-space-xl);
536
- }
537
-
538
- wa-button[appearance="icon"]::part(base) {
539
- border-radius: var(--wa-border-radius-circle);
540
- padding: var(--padding-y);
541
- min-width: var(--size);
542
- min-height: var(--size);
543
- display: flex;
544
- align-items: center;
545
- justify-content: center;
546
- }
547
-
548
- /* Native button element support */
549
- button {
550
- /* Apply same custom properties to native buttons */
551
- --size: var(--wa-space-l);
552
- --padding-x: var(--wa-space-m);
553
- --padding-y: var(--wa-space-s);
554
- --border-radius: var(--wa-border-radius-m);
555
- --border-width: 1px;
556
- --font-size: var(--wa-font-size-s);
557
- --font-weight: var(--wa-font-weight-action);
558
- --transition-duration: 150ms;
559
- --transition-timing: ease-out;
560
-
561
- border-radius: var(--border-radius);
562
- border-width: var(--border-width);
563
- font-size: var(--font-size);
564
- font-weight: var(--font-weight);
565
- padding: var(--padding-y) var(--padding-x);
566
- min-height: var(--size);
567
- transition: all var(--transition-duration) var(--transition-timing);
568
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
569
- cursor: pointer;
570
- }
571
-
572
- button:hover {
573
- transform: translateY(-1px);
574
- box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
575
- }
576
-
577
- button:active {
578
- transform: translateY(0);
579
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
580
- }
581
-
582
- button:focus-visible {
583
- outline: 2px solid var(--wa-color-focus);
584
- outline-offset: 2px;
585
- }
586
-
587
- button:disabled {
588
- opacity: 0.5;
589
- cursor: not-allowed;
590
- transform: none;
591
- box-shadow: none;
300
+ /* Theme layer - semantic color mappings (must be in wa-theme layer, not wa-color-palette) */
301
+ @layer wa-theme {
302
+ :where(:root),
303
+ .wa-theme-default,
304
+ .wa-light,
305
+ .wa-dark .wa-invert,
306
+ .wa-light .wa-theme-default,
307
+ .wa-dark .wa-theme-default.wa-invert,
308
+ .wa-dark .wa-theme-default .wa-invert {
309
+ color-scheme: light;
310
+ color: var(--wa-color-text-normal);
311
+
312
+ --wa-color-surface-raised: white;
313
+ --wa-color-surface-default: white;
314
+ --wa-color-surface-lowered: var(--hot-color-neutral-50);
315
+ --wa-color-surface-border: var(--hot-color-neutral-100);
316
+
317
+ --wa-color-text-normal: var(--hot-color-neutral-900);
318
+ --wa-color-text-quiet: var(--hot-color-neutral-600);
319
+ --wa-color-text-link: var(--hot-color-primary-600);
320
+
321
+ --wa-color-overlay-modal: color-mix(
322
+ in oklab,
323
+ var(--hot-color-neutral-950) 50%,
324
+ transparent
325
+ );
326
+ --wa-color-overlay-inline: color-mix(
327
+ in oklab,
328
+ var(--hot-color-neutral-200) 25%,
329
+ transparent
330
+ );
331
+
332
+ --wa-color-shadow: color-mix(
333
+ in oklab,
334
+ var(--hot-color-neutral-950) calc(var(--wa-shadow-blur-scale) * 4% + 8%),
335
+ transparent
336
+ );
337
+ --wa-color-focus: var(--hot-color-primary-400);
338
+ --wa-color-mix-hover: black 10%;
339
+ --wa-color-mix-active: black 20%;
340
+
341
+ --wa-color-brand-fill-quiet: var(--hot-color-blue-50);
342
+ --wa-color-brand-fill-normal: var(--hot-color-blue-50);
343
+ --wa-color-brand-fill-loud: var(--hot-color-blue-600);
344
+ --wa-color-brand-border-quiet: var(--hot-color-blue-100);
345
+ --wa-color-brand-border-normal: var(--hot-color-blue-100);
346
+ --wa-color-brand-border-loud: var(--hot-color-blue-400);
347
+ --wa-color-brand-on-quiet: var(--hot-color-blue-700);
348
+ --wa-color-brand-on-normal: var(--hot-color-blue-700);
349
+ --wa-color-brand-on-loud: white;
350
+
351
+ --wa-color-success-fill-quiet: var(--hot-color-success-50);
352
+ --wa-color-success-fill-normal: var(--hot-color-success-100);
353
+ --wa-color-success-fill-loud: var(--hot-color-success-700);
354
+ --wa-color-success-border-quiet: var(--hot-color-success-100);
355
+ --wa-color-success-border-normal: var(--hot-color-success-800);
356
+ --wa-color-success-border-loud: var(--hot-color-success-700);
357
+ --wa-color-success-on-quiet: var(--hot-color-success-800);
358
+ --wa-color-success-on-normal: var(--hot-color-success-800);
359
+ --wa-color-success-on-loud: white;
360
+
361
+ --wa-color-warning-fill-quiet: var(--hot-color-warning-50);
362
+ --wa-color-warning-fill-normal: var(--hot-color-warning-100);
363
+ --wa-color-warning-fill-loud: var(--hot-color-warning-950);
364
+ --wa-color-warning-border-quiet: var(--hot-color-warning-100);
365
+ --wa-color-warning-border-normal: var(--hot-color-warning-950);
366
+ --wa-color-warning-border-loud: var(--hot-color-warning-950);
367
+ --wa-color-warning-on-quiet: var(--hot-color-warning-950);
368
+ --wa-color-warning-on-normal: var(--hot-color-warning-950);
369
+ --wa-color-warning-on-loud: white;
370
+
371
+ --wa-color-danger-fill-quiet: var(--hot-color-danger-50);
372
+ --wa-color-danger-fill-normal: var(--hot-color-danger-100);
373
+ --wa-color-danger-fill-loud: var(--hot-color-danger-500);
374
+ --wa-color-danger-border-quiet: var(--hot-color-danger-100);
375
+ --wa-color-danger-border-normal: var(--hot-color-danger-950);
376
+ --wa-color-danger-border-loud: var(--hot-color-danger-500);
377
+ --wa-color-danger-on-quiet: var(--hot-color-danger-950);
378
+ --wa-color-danger-on-normal: var(--hot-color-danger-950);
379
+ --wa-color-danger-on-loud: white;
380
+
381
+ --wa-color-neutral-fill-quiet: var(--hot-color-neutral-50);
382
+ --wa-color-neutral-fill-normal: var(--hot-color-neutral-100);
383
+ --wa-color-neutral-fill-loud: var(--hot-color-neutral-950);
384
+ --wa-color-neutral-border-quiet: var(--hot-color-neutral-950);
385
+ --wa-color-neutral-border-normal: var(--hot-color-neutral-200);
386
+ --wa-color-neutral-border-loud: var(--hot-color-neutral-400);
387
+ --wa-color-neutral-on-quiet: var(--hot-color-neutral-950);
388
+ --wa-color-neutral-on-normal: var(--hot-color-neutral-950);
389
+ --wa-color-neutral-on-loud: white;
390
+ }
592
391
  }
@@ -17,11 +17,11 @@
17
17
  --hot-color-red-800: #B83032;
18
18
  --hot-color-red-700: #C53639;
19
19
  --hot-color-red-600: #D73F3F;
20
- --hot-color-red-500: #F34D47;
20
+ --hot-color-red-500: #D43F3F;
21
21
  --hot-color-red-400: #ED5C5E;
22
22
  --hot-color-red-300: #E27A7D;
23
23
  --hot-color-red-200: #EC9EA1;
24
- --hot-color-red-100: #FDD0D6;
24
+ --hot-color-red-100: #FED1D7;
25
25
  --hot-color-red-50: #FEECEF;
26
26
 
27
27
  /* rose - persian plum */
@@ -49,7 +49,7 @@
49
49
  --hot-color-yellow-400: #FAE62E;
50
50
  --hot-color-yellow-300: #FDEB51;
51
51
  --hot-color-yellow-200: #FFF072;
52
- --hot-color-yellow-100: #FFF59B;
52
+ --hot-color-yellow-100: #FFEBCF;
53
53
  --hot-color-yellow-50: #FFF9C3;
54
54
 
55
55
  /* blue - space cadet */
@@ -138,18 +138,18 @@
138
138
  --hot-color-warning-100: var(--hot-color-yellow-100);
139
139
  --hot-color-warning-50: var(--hot-color-yellow-50);
140
140
 
141
- /* Success colors (green - using WebAwesome green values) */
142
- --hot-color-success-950: #031608;
143
- --hot-color-success-900: #052310;
144
- --hot-color-success-800: #0a3a1d;
145
- --hot-color-success-700: #0a5027;
146
- --hot-color-success-600: #036730;
147
- --hot-color-success-500: #00883c;
148
- --hot-color-success-400: #00ac49;
149
- --hot-color-success-300: #5dc36f;
150
- --hot-color-success-200: #93da98;
151
- --hot-color-success-100: #c2f2c1;
152
- --hot-color-success-50: #e3f9e3;
141
+ /* Success colors (green) */
142
+ --hot-color-success-950: #2B514F;
143
+ --hot-color-success-900: #366361;
144
+ --hot-color-success-800: #408789;
145
+ --hot-color-success-700: #459BA0;
146
+ --hot-color-success-600: #4BB1B9;
147
+ --hot-color-success-500: #50C1CB;
148
+ --hot-color-success-400: #58CBD1;
149
+ --hot-color-success-300: #6AD4D9;
150
+ --hot-color-success-200: #8FE1E3;
151
+ --hot-color-success-100: #B9EDED;
152
+ --hot-color-success-50: #E3F8F8;
153
153
 
154
154
  /* Neutral colors (gray) */
155
155
  --hot-color-neutral-1000: #ffffff;