@f-ewald/components 1.7.0 → 1.8.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.
@@ -5249,6 +5249,26 @@
5249
5249
  }
5250
5250
  ]
5251
5251
  },
5252
+ {
5253
+ "kind": "function",
5254
+ "name": "iconArrowDownTray",
5255
+ "parameters": [
5256
+ {
5257
+ "name": "size",
5258
+ "default": "16"
5259
+ }
5260
+ ]
5261
+ },
5262
+ {
5263
+ "kind": "function",
5264
+ "name": "iconArrowsRightLeft",
5265
+ "parameters": [
5266
+ {
5267
+ "name": "size",
5268
+ "default": "16"
5269
+ }
5270
+ ]
5271
+ },
5252
5272
  {
5253
5273
  "kind": "function",
5254
5274
  "name": "iconLink",
@@ -5623,6 +5643,22 @@
5623
5643
  "module": "src/icons.ts"
5624
5644
  }
5625
5645
  },
5646
+ {
5647
+ "kind": "js",
5648
+ "name": "iconArrowDownTray",
5649
+ "declaration": {
5650
+ "name": "iconArrowDownTray",
5651
+ "module": "src/icons.ts"
5652
+ }
5653
+ },
5654
+ {
5655
+ "kind": "js",
5656
+ "name": "iconArrowsRightLeft",
5657
+ "declaration": {
5658
+ "name": "iconArrowsRightLeft",
5659
+ "module": "src/icons.ts"
5660
+ }
5661
+ },
5626
5662
  {
5627
5663
  "kind": "js",
5628
5664
  "name": "iconLink",
@@ -11390,7 +11426,7 @@
11390
11426
  "declarations": [
11391
11427
  {
11392
11428
  "kind": "class",
11393
- "description": "One event on a `timeline-container`: a dot on the vertical line, an optional\nheadline, a relative timestamp (\"3 hours ago\"), and freely nested content.\nThe connecting line is drawn here — its segment above the dot is hidden on\nthe first entry and the segment below is hidden on the last, so the line caps\nexactly at the first and last dots. Only meaningful inside a\n`timeline-container`; demonstrated through it.\n\n`datetime` is the entry's one timestamp. A nested element that has its own\ntimestamp prop (e.g. `chat-message`'s `timestamp`) should leave it unset —\nsetting both renders the same time twice.\n\nThe dot's `color` types the entry using the shared status-pill palette —\n`primary` by default, plus `neutral`, `info`, `success`, `warning`, and\n`danger`.",
11429
+ "description": "One event on a `timeline-container`: a dot on the vertical line, an optional\nheadline, a relative timestamp (\"3 hours ago\"), and freely nested content.\nThe connecting line is drawn here — its segment above the dot is hidden on\nthe first entry and the segment below is hidden on the last, so the line caps\nexactly at the first and last dots. Only meaningful inside a\n`timeline-container`; demonstrated through it.\n\n`datetime` is the entry's one timestamp. A nested element that has its own\ntimestamp prop (e.g. `chat-message`'s `timestamp`) should leave it unset —\nsetting both renders the same time twice.\n\nThe dot's `color` types the entry using the shared status-pill palette —\n`primary` by default, plus `neutral`, `info`, `success`, `warning`, and\n`danger`.\n\nSet `compact` for dense, one-line system-status entries (running spinners,\nstate changes): it tightens the vertical spacing and renders the content\nsmaller and muted.",
11394
11430
  "name": "TimelineEntry",
11395
11431
  "slots": [
11396
11432
  {
@@ -11423,6 +11459,17 @@
11423
11459
  "description": "Visual type of the entry's dot, from the shared status-pill palette:\n`primary` (default), `neutral`, `info`, `success`, `warning`, or `danger`.",
11424
11460
  "attribute": "color"
11425
11461
  },
11462
+ {
11463
+ "kind": "field",
11464
+ "name": "compact",
11465
+ "type": {
11466
+ "text": "boolean"
11467
+ },
11468
+ "default": "false",
11469
+ "description": "Dense, one-line presentation for system-status entries: tighter vertical\nspacing and smaller, muted content.",
11470
+ "attribute": "compact",
11471
+ "reflects": true
11472
+ },
11426
11473
  {
11427
11474
  "kind": "field",
11428
11475
  "name": "_hasHeadline",
@@ -11471,6 +11518,15 @@
11471
11518
  "default": "\"primary\"",
11472
11519
  "description": "Visual type of the entry's dot, from the shared status-pill palette:\n`primary` (default), `neutral`, `info`, `success`, `warning`, or `danger`.",
11473
11520
  "fieldName": "color"
11521
+ },
11522
+ {
11523
+ "name": "compact",
11524
+ "type": {
11525
+ "text": "boolean"
11526
+ },
11527
+ "default": "false",
11528
+ "description": "Dense, one-line presentation for system-status entries: tighter vertical\nspacing and smaller, muted content.",
11529
+ "fieldName": "compact"
11474
11530
  }
11475
11531
  ],
11476
11532
  "superclass": {
package/dist/icons.d.ts CHANGED
@@ -22,6 +22,8 @@ export declare const iconSun: (size?: number) => import("lit-html").TemplateResu
22
22
  export declare const iconShieldExclamation: (size?: number) => import("lit-html").TemplateResult<2>;
23
23
  export declare const iconArrowPath: (size?: number) => import("lit-html").TemplateResult<2>;
24
24
  export declare const iconArrowRight: (size?: number) => import("lit-html").TemplateResult<2>;
25
+ export declare const iconArrowDownTray: (size?: number) => import("lit-html").TemplateResult<2>;
26
+ export declare const iconArrowsRightLeft: (size?: number) => import("lit-html").TemplateResult<2>;
25
27
  export declare const iconLink: (size?: number) => import("lit-html").TemplateResult<2>;
26
28
  export declare const iconHeart: (size?: number) => import("lit-html").TemplateResult<2>;
27
29
  export declare const iconHeartSolid: (size?: number) => import("lit-html").TemplateResult<2>;
@@ -1 +1 @@
1
- {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../src/icons.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,KAAK,yDAC2O,CAAC;AAE9P,eAAO,MAAM,SAAS,yDAC+P,CAAC;AAEtR,eAAO,MAAM,eAAe,yDACwO,CAAC;AAErQ,eAAO,MAAM,gBAAgB,yDACqO,CAAC;AAEnQ,eAAO,MAAM,OAAO,yDAC2xC,CAAC;AAEhzC,eAAO,MAAM,QAAQ,yDAC4W,CAAC;AAElY,eAAO,MAAM,sBAAsB,yDAC6Y,CAAC;AAEjb,eAAO,MAAM,UAAU,yDACqX,CAAC;AAE7Y,eAAO,MAAM,SAAS,yDACgnB,CAAC;AAEvoB,eAAO,MAAM,QAAQ,yDAC0O,CAAC;AAEhQ,eAAO,MAAM,cAAc,yDACme,CAAC;AAE/f,eAAO,MAAM,kBAAkB,yDACob,CAAC;AAEpd,eAAO,MAAM,QAAQ,yDAC8b,CAAC;AAEpd,eAAO,MAAM,UAAU,yDACiY,CAAC;AAEzZ,eAAO,MAAM,SAAS,yDACmQ,CAAC;AAE1R,eAAO,MAAM,OAAO,yDACif,CAAC;AAEtgB,eAAO,MAAM,YAAY,yDACib,CAAC;AAE3c,eAAO,MAAM,qBAAqB,yDAC4V,CAAC;AAE/X,eAAO,MAAM,OAAO,yDACyhB,CAAC;AAE9iB,eAAO,MAAM,eAAe,yDAC2Q,CAAC;AAExS,eAAO,MAAM,OAAO,yDACsZ,CAAC;AAE3a,eAAO,MAAM,qBAAqB,yDACma,CAAC;AAEtc,eAAO,MAAM,aAAa,yDACsX,CAAC;AAEjZ,eAAO,MAAM,cAAc,yDACiP,CAAC;AAE7Q,eAAO,MAAM,QAAQ,yDAC6X,CAAC;AAEnZ,eAAO,MAAM,SAAS,yDACgX,CAAC;AAEvY,eAAO,MAAM,cAAc,yDAC8f,CAAC;AAE1hB,eAAO,MAAM,OAAO,yDAC4e,CAAC;AAEjgB,eAAO,MAAM,YAAY,yDAC4hB,CAAC;AAEtjB,eAAO,MAAM,eAAe,yDAC+Z,CAAC;AAE5b,eAAO,MAAM,cAAc,yDACqZ,CAAC;AAEjb,eAAO,MAAM,yBAAyB,yDACuxB,CAAC;AAE9zB,eAAO,MAAM,WAAW,yDACge,CAAC;AAEzf,eAAO,MAAM,UAAU,yDACqd,CAAC;AAE7e,eAAO,MAAM,eAAe,yDACuO,CAAC;AAEpQ,eAAO,MAAM,YAAY,yDACid,CAAC;AAE3e,eAAO,MAAM,cAAc,yDACosB,CAAC;AAEhuB,eAAO,MAAM,uBAAuB,yDAC2sB,CAAC;AAEhvB,eAAO,MAAM,yBAAyB,yDACuU,CAAC;AAE9W,eAAO,MAAM,eAAe,yDAC6pB,CAAC;AAE1rB,eAAO,MAAM,aAAa,yDACoU,CAAC;AAE/V,eAAO,MAAM,uBAAuB,yDACqX,CAAC"}
1
+ {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../src/icons.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,KAAK,yDAC2O,CAAC;AAE9P,eAAO,MAAM,SAAS,yDAC+P,CAAC;AAEtR,eAAO,MAAM,eAAe,yDACwO,CAAC;AAErQ,eAAO,MAAM,gBAAgB,yDACqO,CAAC;AAEnQ,eAAO,MAAM,OAAO,yDAC2xC,CAAC;AAEhzC,eAAO,MAAM,QAAQ,yDAC4W,CAAC;AAElY,eAAO,MAAM,sBAAsB,yDAC6Y,CAAC;AAEjb,eAAO,MAAM,UAAU,yDACqX,CAAC;AAE7Y,eAAO,MAAM,SAAS,yDACgnB,CAAC;AAEvoB,eAAO,MAAM,QAAQ,yDAC0O,CAAC;AAEhQ,eAAO,MAAM,cAAc,yDACme,CAAC;AAE/f,eAAO,MAAM,kBAAkB,yDACob,CAAC;AAEpd,eAAO,MAAM,QAAQ,yDAC8b,CAAC;AAEpd,eAAO,MAAM,UAAU,yDACiY,CAAC;AAEzZ,eAAO,MAAM,SAAS,yDACmQ,CAAC;AAE1R,eAAO,MAAM,OAAO,yDACif,CAAC;AAEtgB,eAAO,MAAM,YAAY,yDACib,CAAC;AAE3c,eAAO,MAAM,qBAAqB,yDAC4V,CAAC;AAE/X,eAAO,MAAM,OAAO,yDACyhB,CAAC;AAE9iB,eAAO,MAAM,eAAe,yDAC2Q,CAAC;AAExS,eAAO,MAAM,OAAO,yDACsZ,CAAC;AAE3a,eAAO,MAAM,qBAAqB,yDACma,CAAC;AAEtc,eAAO,MAAM,aAAa,yDACsX,CAAC;AAEjZ,eAAO,MAAM,cAAc,yDACiP,CAAC;AAE7Q,eAAO,MAAM,iBAAiB,yDACuT,CAAC;AAEtV,eAAO,MAAM,mBAAmB,yDACmR,CAAC;AAEpT,eAAO,MAAM,QAAQ,yDAC6X,CAAC;AAEnZ,eAAO,MAAM,SAAS,yDACgX,CAAC;AAEvY,eAAO,MAAM,cAAc,yDAC8f,CAAC;AAE1hB,eAAO,MAAM,OAAO,yDAC4e,CAAC;AAEjgB,eAAO,MAAM,YAAY,yDAC4hB,CAAC;AAEtjB,eAAO,MAAM,eAAe,yDAC+Z,CAAC;AAE5b,eAAO,MAAM,cAAc,yDACqZ,CAAC;AAEjb,eAAO,MAAM,yBAAyB,yDACuxB,CAAC;AAE9zB,eAAO,MAAM,WAAW,yDACge,CAAC;AAEzf,eAAO,MAAM,UAAU,yDACqd,CAAC;AAE7e,eAAO,MAAM,eAAe,yDACuO,CAAC;AAEpQ,eAAO,MAAM,YAAY,yDACid,CAAC;AAE3e,eAAO,MAAM,cAAc,yDACosB,CAAC;AAEhuB,eAAO,MAAM,uBAAuB,yDAC2sB,CAAC;AAEhvB,eAAO,MAAM,yBAAyB,yDACuU,CAAC;AAE9W,eAAO,MAAM,eAAe,yDAC6pB,CAAC;AAE1rB,eAAO,MAAM,aAAa,yDACoU,CAAC;AAE/V,eAAO,MAAM,uBAAuB,yDACqX,CAAC"}
package/dist/icons.js CHANGED
@@ -25,6 +25,8 @@ export const iconSun = (size = 16) => svg `<svg xmlns="http://www.w3.org/2000/sv
25
25
  export const iconShieldExclamation = (size = 16) => svg `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke-width="1.5" stroke="currentColor" width=${size} height=${size} aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M12 9v3.75m0-10.036A11.959 11.959 0 0 1 3.598 6 11.99 11.99 0 0 0 3 9.75c0 5.592 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.31-.21-2.57-.598-3.75h-.152c-3.196 0-6.1-1.25-8.25-3.286Zm0 13.036h.008v.008H12v-.008Z"/></svg>`;
26
26
  export const iconArrowPath = (size = 12) => svg `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke-width="1.5" stroke="currentColor" width=${size} height=${size} aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0 3.181 3.183a8.25 8.25 0 0 0 13.803-3.7M4.031 9.865a8.25 8.25 0 0 1 13.803-3.7l3.181 3.182m0-4.991v4.99"/></svg>`;
27
27
  export const iconArrowRight = (size = 12) => svg `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke-width="1.5" stroke="currentColor" width=${size} height=${size} aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5 21 12m0 0-7.5 7.5M21 12H3"/></svg>`;
28
+ export const iconArrowDownTray = (size = 16) => svg `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke-width="1.5" stroke="currentColor" width=${size} height=${size} aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3"/></svg>`;
29
+ export const iconArrowsRightLeft = (size = 16) => svg `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke-width="1.5" stroke="currentColor" width=${size} height=${size} aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M7.5 21 3 16.5m0 0L7.5 12M3 16.5h13.5m0-13.5L21 7.5m0 0L16.5 12M21 7.5H7.5"/></svg>`;
28
30
  export const iconLink = (size = 16) => svg `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke-width="1.5" stroke="currentColor" width=${size} height=${size} aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M13.19 8.688a4.5 4.5 0 0 1 1.242 7.244l-4.5 4.5a4.5 4.5 0 0 1-6.364-6.364l1.757-1.757m13.35-.622 1.757-1.757a4.5 4.5 0 0 0-6.364-6.364l-4.5 4.5a4.5 4.5 0 0 0 1.242 7.244"/></svg>`;
29
31
  export const iconHeart = (size = 16) => svg `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke-width="1.5" stroke="currentColor" width=${size} height=${size} aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M21 8.25c0-2.485-2.099-4.5-4.688-4.5-1.935 0-3.597 1.126-4.312 2.733-.715-1.607-2.377-2.733-4.313-2.733C5.1 3.75 3 5.765 3 8.25c0 7.22 9 12 9 12s9-4.78 9-12Z"/></svg>`;
30
32
  export const iconHeartSolid = (size = 16) => svg `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" width=${size} height=${size} aria-hidden="true"><path d="m11.645 20.91-.007-.003-.022-.012a15.247 15.247 0 0 1-.383-.218 25.18 25.18 0 0 1-4.244-3.17C4.688 15.36 2.25 12.174 2.25 8.25 2.25 5.322 4.714 3 7.688 3A5.5 5.5 0 0 1 12 5.052 5.5 5.5 0 0 1 16.313 3c2.973 0 5.437 2.322 5.437 5.25 0 3.925-2.438 7.111-4.739 9.256a25.175 25.175 0 0 1-4.244 3.17 15.247 15.247 0 0 1-.383.219l-.022.012-.007.004-.003.001a.752.752 0 0 1-.704 0l-.003-.001Z"/></svg>`;
package/dist/icons.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"icons.js","sourceRoot":"","sources":["../src/icons.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,yDAAyD;AACzD,wEAAwE;AAExE,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CACjC,GAAG,CAAA,0HAA0H,IAAI,WAAW,IAAI,2GAA2G,CAAC;AAE9P,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CACrC,GAAG,CAAA,0HAA0H,IAAI,WAAW,IAAI,mIAAmI,CAAC;AAEtR,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CAC3C,GAAG,CAAA,0HAA0H,IAAI,WAAW,IAAI,kHAAkH,CAAC;AAErQ,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CAC5C,GAAG,CAAA,0HAA0H,IAAI,WAAW,IAAI,gHAAgH,CAAC;AAEnQ,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CACnC,GAAG,CAAA,0HAA0H,IAAI,WAAW,IAAI,6pCAA6pC,CAAC;AAEhzC,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CACpC,GAAG,CAAA,0HAA0H,IAAI,WAAW,IAAI,+OAA+O,CAAC;AAElY,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CAClD,GAAG,CAAA,0HAA0H,IAAI,WAAW,IAAI,8RAA8R,CAAC;AAEjb,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CACtC,GAAG,CAAA,0HAA0H,IAAI,WAAW,IAAI,0PAA0P,CAAC;AAE7Y,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CACrC,GAAG,CAAA,0HAA0H,IAAI,WAAW,IAAI,ofAAof,CAAC;AAEvoB,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CACpC,GAAG,CAAA,0HAA0H,IAAI,WAAW,IAAI,6GAA6G,CAAC;AAEhQ,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CAC1C,GAAG,CAAA,0HAA0H,IAAI,WAAW,IAAI,4WAA4W,CAAC;AAE/f,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CAC9C,GAAG,CAAA,0HAA0H,IAAI,WAAW,IAAI,iUAAiU,CAAC;AAEpd,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CACpC,GAAG,CAAA,0HAA0H,IAAI,WAAW,IAAI,iUAAiU,CAAC;AAEpd,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CACtC,GAAG,CAAA,0HAA0H,IAAI,WAAW,IAAI,sQAAsQ,CAAC;AAEzZ,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CACrC,GAAG,CAAA,0HAA0H,IAAI,WAAW,IAAI,uIAAuI,CAAC;AAE1R,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CACnC,GAAG,CAAA,0HAA0H,IAAI,WAAW,IAAI,mXAAmX,CAAC;AAEtgB,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CACxC,GAAG,CAAA,0HAA0H,IAAI,WAAW,IAAI,wTAAwT,CAAC;AAE3c,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CACjD,GAAG,CAAA,0HAA0H,IAAI,WAAW,IAAI,4OAA4O,CAAC;AAE/X,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CACnC,GAAG,CAAA,0HAA0H,IAAI,WAAW,IAAI,2ZAA2Z,CAAC;AAE9iB,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CAC3C,GAAG,CAAA,0HAA0H,IAAI,WAAW,IAAI,qJAAqJ,CAAC;AAExS,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CACnC,GAAG,CAAA,0HAA0H,IAAI,WAAW,IAAI,wRAAwR,CAAC;AAE3a,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CACjD,GAAG,CAAA,0HAA0H,IAAI,WAAW,IAAI,mTAAmT,CAAC;AAEtc,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CACzC,GAAG,CAAA,0HAA0H,IAAI,WAAW,IAAI,8PAA8P,CAAC;AAEjZ,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CAC1C,GAAG,CAAA,0HAA0H,IAAI,WAAW,IAAI,0HAA0H,CAAC;AAE7Q,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CACpC,GAAG,CAAA,0HAA0H,IAAI,WAAW,IAAI,gQAAgQ,CAAC;AAEnZ,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CACrC,GAAG,CAAA,0HAA0H,IAAI,WAAW,IAAI,oPAAoP,CAAC;AAEvY,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CAC1C,GAAG,CAAA,yFAAyF,IAAI,WAAW,IAAI,waAAwa,CAAC;AAE1hB,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CACnC,GAAG,CAAA,0HAA0H,IAAI,WAAW,IAAI,8WAA8W,CAAC;AAEjgB,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CACxC,GAAG,CAAA,0HAA0H,IAAI,WAAW,IAAI,maAAma,CAAC;AAEtjB,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CAC3C,GAAG,CAAA,0HAA0H,IAAI,WAAW,IAAI,ySAAyS,CAAC;AAE5b,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CAC1C,GAAG,CAAA,0HAA0H,IAAI,WAAW,IAAI,8RAA8R,CAAC;AAEjb,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CACrD,GAAG,CAAA,0HAA0H,IAAI,WAAW,IAAI,2qBAA2qB,CAAC;AAE9zB,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CACvC,GAAG,CAAA,0HAA0H,IAAI,WAAW,IAAI,sWAAsW,CAAC;AAEzf,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CACtC,GAAG,CAAA,0HAA0H,IAAI,WAAW,IAAI,0VAA0V,CAAC;AAE7e,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CAC3C,GAAG,CAAA,0HAA0H,IAAI,WAAW,IAAI,iHAAiH,CAAC;AAEpQ,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CACxC,GAAG,CAAA,0HAA0H,IAAI,WAAW,IAAI,wVAAwV,CAAC;AAE3e,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CAC1C,GAAG,CAAA,0HAA0H,IAAI,WAAW,IAAI,6kBAA6kB,CAAC;AAEhuB,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CACnD,GAAG,CAAA,0HAA0H,IAAI,WAAW,IAAI,6lBAA6lB,CAAC;AAEhvB,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CACrD,GAAG,CAAA,0HAA0H,IAAI,WAAW,IAAI,2NAA2N,CAAC;AAE9W,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CAC3C,GAAG,CAAA,0HAA0H,IAAI,WAAW,IAAI,uiBAAuiB,CAAC;AAE1rB,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CACzC,GAAG,CAAA,0HAA0H,IAAI,WAAW,IAAI,4MAA4M,CAAC;AAE/V,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CACnD,GAAG,CAAA,0HAA0H,IAAI,WAAW,IAAI,uQAAuQ,CAAC","sourcesContent":["import { svg } from \"lit\";\n\n// GENERATED by scripts/generate-icons.mjs — do not edit;\n// add names to the ICONS list in the script and re-run `npm run icons`.\n\nexport const iconX = (size = 18) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M6 18 18 6M6 6l12 12\"/></svg>`;\n\nexport const iconBars3 = (size = 18) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5\"/></svg>`;\n\nexport const iconChevronLeft = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M15.75 19.5 8.25 12l7.5-7.5\"/></svg>`;\n\nexport const iconChevronRight = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"m8.25 4.5 7.5 7.5-7.5 7.5\"/></svg>`;\n\nexport const iconCog = (size = 20) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9.594 3.94c.09-.542.56-.94 1.11-.94h2.593c.55 0 1.02.398 1.11.94l.213 1.281c.063.374.313.686.645.87.074.04.147.083.22.127.325.196.72.257 1.075.124l1.217-.456a1.125 1.125 0 0 1 1.37.49l1.296 2.247a1.125 1.125 0 0 1-.26 1.431l-1.003.827c-.293.241-.438.613-.43.992a7.723 7.723 0 0 1 0 .255c-.008.378.137.75.43.991l1.004.827c.424.35.534.955.26 1.43l-1.298 2.247a1.125 1.125 0 0 1-1.369.491l-1.217-.456c-.355-.133-.75-.072-1.076.124a6.47 6.47 0 0 1-.22.128c-.331.183-.581.495-.644.869l-.213 1.281c-.09.543-.56.94-1.11.94h-2.594c-.55 0-1.019-.398-1.11-.94l-.213-1.281c-.062-.374-.312-.686-.644-.87a6.52 6.52 0 0 1-.22-.127c-.325-.196-.72-.257-1.076-.124l-1.217.456a1.125 1.125 0 0 1-1.369-.49l-1.297-2.247a1.125 1.125 0 0 1 .26-1.431l1.004-.827c.292-.24.437-.613.43-.991a6.932 6.932 0 0 1 0-.255c.007-.38-.138-.751-.43-.992l-1.004-.827a1.125 1.125 0 0 1-.26-1.43l1.297-2.247a1.125 1.125 0 0 1 1.37-.491l1.216.456c.356.133.751.072 1.076-.124.072-.044.146-.086.22-.128.332-.183.582-.495.644-.869l.214-1.28Z\"/> <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z\"/></svg>`;\n\nexport const iconInfo = (size = 20) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"m11.25 11.25.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9-3.75h.008v.008H12V8.25Z\"/></svg>`;\n\nexport const iconQuestionMarkCircle = (size = 20) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 5.25h.008v.008H12v-.008Z\"/></svg>`;\n\nexport const iconPencil = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"m16.862 4.487 1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L6.832 19.82a4.5 4.5 0 0 1-1.897 1.13l-2.685.8.8-2.685a4.5 4.5 0 0 1 1.13-1.897L16.863 4.487Zm0 0L19.5 7.125\"/></svg>`;\n\nexport const iconTrash = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0\"/></svg>`;\n\nexport const iconPlus = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 4.5v15m7.5-7.5h-15\"/></svg>`;\n\nexport const iconListBullet = (size = 18) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M8.25 6.75h12M8.25 12h12m-12 5.25h12M3.75 6.75h.007v.008H3.75V6.75Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0ZM3.75 12h.007v.008H3.75V12Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Zm-.375 5.25h.007v.008H3.75v-.008Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Z\"/></svg>`;\n\nexport const iconCurrencyDollar = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 6v12m-3-2.818.879.659c1.171.879 3.07.879 4.242 0 1.172-.879 1.172-2.303 0-3.182C13.536 12.219 12.768 12 12 12c-.725 0-1.45-.22-2.003-.659-1.106-.879-1.106-2.303 0-3.182s2.9-.879 4.006 0l.415.33M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z\"/></svg>`;\n\nexport const iconHome = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"m2.25 12 8.954-8.955c.44-.439 1.152-.439 1.591 0L21.75 12M4.5 9.75v10.125c0 .621.504 1.125 1.125 1.125H9.75v-4.875c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125V21h4.125c.621 0 1.125-.504 1.125-1.125V9.75M8.25 21h8.25\"/></svg>`;\n\nexport const iconMapPin = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M15 10.5a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z\"/> <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M19.5 10.5c0 7.142-7.5 11.25-7.5 11.25S4.5 17.642 4.5 10.5a7.5 7.5 0 1 1 15 0Z\"/></svg>`;\n\nexport const iconClock = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 6v6h4.5m4.5 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z\"/></svg>`;\n\nexport const iconTag = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9.568 3H5.25A2.25 2.25 0 0 0 3 5.25v4.318c0 .597.237 1.17.659 1.591l9.581 9.581c.699.699 1.78.872 2.607.33a18.095 18.095 0 0 0 5.223-5.223c.542-.827.369-1.908-.33-2.607L11.16 3.66A2.25 2.25 0 0 0 9.568 3Z\"/> <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M6 6h.008v.008H6V6Z\"/></svg>`;\n\nexport const iconCalendar = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 0 1 2.25-2.25h13.5A2.25 2.25 0 0 1 21 7.5v11.25m-18 0A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75m-18 0v-7.5A2.25 2.25 0 0 1 5.25 9h13.5A2.25 2.25 0 0 1 21 11.25v7.5\"/></svg>`;\n\nexport const iconArrowsPointingOut = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3.75 3.75v4.5m0-4.5h4.5m-4.5 0L9 9M3.75 20.25v-4.5m0 4.5h4.5m-4.5 0L9 15M20.25 3.75h-4.5m4.5 0v4.5m0-4.5L15 9m5.25 11.25h-4.5m4.5 0v-4.5m0 4.5L15 15\"/></svg>`;\n\nexport const iconMap = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 6.75V15m6-6v8.25m.503 3.498 4.875-2.437c.381-.19.622-.58.622-1.006V4.82c0-.836-.88-1.38-1.628-1.006l-3.869 1.934c-.317.159-.69.159-1.006 0L9.503 3.252a1.125 1.125 0 0 0-1.006 0L3.622 5.689C3.24 5.88 3 6.27 3 6.695V19.18c0 .836.88 1.38 1.628 1.006l3.869-1.934c.317-.159.69-.159 1.006 0l4.994 2.497c.317.158.69.158 1.006 0Z\"/></svg>`;\n\nexport const iconCheckCircle = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z\"/></svg>`;\n\nexport const iconSun = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 3v2.25m6.364.386-1.591 1.591M21 12h-2.25m-.386 6.364-1.591-1.591M12 18.75V21m-4.773-4.227-1.591 1.591M5.25 12H3m4.227-4.773L5.636 5.636M15.75 12a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0Z\"/></svg>`;\n\nexport const iconShieldExclamation = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 9v3.75m0-10.036A11.959 11.959 0 0 1 3.598 6 11.99 11.99 0 0 0 3 9.75c0 5.592 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.31-.21-2.57-.598-3.75h-.152c-3.196 0-6.1-1.25-8.25-3.286Zm0 13.036h.008v.008H12v-.008Z\"/></svg>`;\n\nexport const iconArrowPath = (size = 12) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0 3.181 3.183a8.25 8.25 0 0 0 13.803-3.7M4.031 9.865a8.25 8.25 0 0 1 13.803-3.7l3.181 3.182m0-4.991v4.99\"/></svg>`;\n\nexport const iconArrowRight = (size = 12) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M13.5 4.5 21 12m0 0-7.5 7.5M21 12H3\"/></svg>`;\n\nexport const iconLink = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M13.19 8.688a4.5 4.5 0 0 1 1.242 7.244l-4.5 4.5a4.5 4.5 0 0 1-6.364-6.364l1.757-1.757m13.35-.622 1.757-1.757a4.5 4.5 0 0 0-6.364-6.364l-4.5 4.5a4.5 4.5 0 0 0 1.242 7.244\"/></svg>`;\n\nexport const iconHeart = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M21 8.25c0-2.485-2.099-4.5-4.688-4.5-1.935 0-3.597 1.126-4.312 2.733-.715-1.607-2.377-2.733-4.313-2.733C5.1 3.75 3 5.765 3 8.25c0 7.22 9 12 9 12s9-4.78 9-12Z\"/></svg>`;\n\nexport const iconHeartSolid = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path d=\"m11.645 20.91-.007-.003-.022-.012a15.247 15.247 0 0 1-.383-.218 25.18 25.18 0 0 1-4.244-3.17C4.688 15.36 2.25 12.174 2.25 8.25 2.25 5.322 4.714 3 7.688 3A5.5 5.5 0 0 1 12 5.052 5.5 5.5 0 0 1 16.313 3c2.973 0 5.437 2.322 5.437 5.25 0 3.925-2.438 7.111-4.739 9.256a25.175 25.175 0 0 1-4.244 3.17 15.247 15.247 0 0 1-.383.219l-.022.012-.007.004-.003.001a.752.752 0 0 1-.704 0l-.003-.001Z\"/></svg>`;\n\nexport const iconEye = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M2.036 12.322a1.012 1.012 0 0 1 0-.639C3.423 7.51 7.36 4.5 12 4.5c4.638 0 8.573 3.007 9.963 7.178.07.207.07.431 0 .639C20.577 16.49 16.64 19.5 12 19.5c-4.638 0-8.573-3.007-9.963-7.178Z\"/> <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z\"/></svg>`;\n\nexport const iconEyeSlash = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3.98 8.223A10.477 10.477 0 0 0 1.934 12C3.226 16.338 7.244 19.5 12 19.5c.993 0 1.953-.138 2.863-.395M6.228 6.228A10.451 10.451 0 0 1 12 4.5c4.756 0 8.773 3.162 10.065 7.498a10.522 10.522 0 0 1-4.293 5.774M6.228 6.228 3 3m3.228 3.228 3.65 3.65m7.894 7.894L21 21m-3.228-3.228-3.65-3.65m0 0a3 3 0 1 0-4.243-4.243m4.242 4.242L9.88 9.88\"/></svg>`;\n\nexport const iconShieldCheck = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 12.75 11.25 15 15 9.75m-3-7.036A11.959 11.959 0 0 1 3.598 6 11.99 11.99 0 0 0 3 9.749c0 5.592 3.824 10.29 9 11.623 5.176-1.332 9-6.03 9-11.622 0-1.31-.21-2.571-.598-3.751h-.152c-3.196 0-6.1-1.248-8.25-3.285Z\"/></svg>`;\n\nexport const iconUserCircle = (size = 20) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M17.982 18.725A7.488 7.488 0 0 0 12 15.75a7.488 7.488 0 0 0-5.982 2.975m11.963 0a9 9 0 1 0-11.963 0m11.963 0A8.966 8.966 0 0 1 12 21a8.966 8.966 0 0 1-5.982-2.275M15 9.75a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z\"/></svg>`;\n\nexport const iconClipboardDocumentList = (size = 18) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 12h3.75M9 15h3.75M9 18h3.75m3 .75H18a2.25 2.25 0 0 0 2.25-2.25V6.108c0-1.135-.845-2.098-1.976-2.192a48.424 48.424 0 0 0-1.123-.08m-5.801 0c-.065.21-.1.433-.1.664 0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75 2.25 2.25 0 0 0-.1-.664m-5.8 0A2.251 2.251 0 0 1 13.5 2.25H15c1.012 0 1.867.668 2.15 1.586m-5.8 0c-.376.023-.75.05-1.124.08C9.095 4.01 8.25 4.973 8.25 6.108V8.25m0 0H4.875c-.621 0-1.125.504-1.125 1.125v11.25c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V9.375c0-.621-.504-1.125-1.125-1.125H8.25ZM6.75 12h.008v.008H6.75V12Zm0 3h.008v.008H6.75V15Zm0 3h.008v.008H6.75V18Z\"/></svg>`;\n\nexport const iconCpuChip = (size = 18) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M8.25 3v1.5M4.5 8.25H3m18 0h-1.5M4.5 12H3m18 0h-1.5m-15 3.75H3m18 0h-1.5M8.25 19.5V21M12 3v1.5m0 15V21m3.75-18v1.5m0 15V21m-9-1.5h10.5a2.25 2.25 0 0 0 2.25-2.25V6.75a2.25 2.25 0 0 0-2.25-2.25H6.75A2.25 2.25 0 0 0 4.5 6.75v10.5a2.25 2.25 0 0 0 2.25 2.25Zm.75-12h9v9h-9v-9Z\"/></svg>`;\n\nexport const iconFolder = (size = 18) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M2.25 12.75V12A2.25 2.25 0 0 1 4.5 9.75h15A2.25 2.25 0 0 1 21.75 12v.75m-8.69-6.44-2.12-2.12a1.5 1.5 0 0 0-1.061-.44H4.5A2.25 2.25 0 0 0 2.25 6v12a2.25 2.25 0 0 0 2.25 2.25h15A2.25 2.25 0 0 0 21.75 18V9a2.25 2.25 0 0 0-2.25-2.25h-5.379a1.5 1.5 0 0 1-1.06-.44Z\"/></svg>`;\n\nexport const iconChevronDown = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"m19.5 8.25-7.5 7.5-7.5-7.5\"/></svg>`;\n\nexport const iconDocument = (size = 18) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z\"/></svg>`;\n\nexport const iconSquares2x2 = (size = 18) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3.75 6A2.25 2.25 0 0 1 6 3.75h2.25A2.25 2.25 0 0 1 10.5 6v2.25a2.25 2.25 0 0 1-2.25 2.25H6a2.25 2.25 0 0 1-2.25-2.25V6ZM3.75 15.75A2.25 2.25 0 0 1 6 13.5h2.25a2.25 2.25 0 0 1 2.25 2.25V18a2.25 2.25 0 0 1-2.25 2.25H6A2.25 2.25 0 0 1 3.75 18v-2.25ZM13.5 6a2.25 2.25 0 0 1 2.25-2.25H18A2.25 2.25 0 0 1 20.25 6v2.25A2.25 2.25 0 0 1 18 10.5h-2.25a2.25 2.25 0 0 1-2.25-2.25V6ZM13.5 15.75a2.25 2.25 0 0 1 2.25-2.25H18a2.25 2.25 0 0 1 2.25 2.25V18A2.25 2.25 0 0 1 18 20.25h-2.25A2.25 2.25 0 0 1 13.5 18v-2.25Z\"/></svg>`;\n\nexport const iconChatBubbleLeftRight = (size = 18) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M20.25 8.511c.884.284 1.5 1.128 1.5 2.097v4.286c0 1.136-.847 2.1-1.98 2.193-.34.027-.68.052-1.02.072v3.091l-3-3c-1.354 0-2.694-.055-4.02-.163a2.115 2.115 0 0 1-.825-.242m9.345-8.334a2.126 2.126 0 0 0-.476-.095 48.64 48.64 0 0 0-8.048 0c-1.131.094-1.976 1.057-1.976 2.192v4.286c0 .837.46 1.58 1.155 1.951m9.345-8.334V6.637c0-1.621-1.152-3.026-2.76-3.235A48.455 48.455 0 0 0 11.25 3c-2.115 0-4.198.137-6.24.402-1.608.209-2.76 1.614-2.76 3.235v6.226c0 1.621 1.152 3.026 2.76 3.235.577.075 1.157.14 1.74.194V21l4.155-4.155\"/></svg>`;\n\nexport const iconArrowTopRightOnSquare = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M13.5 6H5.25A2.25 2.25 0 0 0 3 8.25v10.5A2.25 2.25 0 0 0 5.25 21h10.5A2.25 2.25 0 0 0 18 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25\"/></svg>`;\n\nexport const iconAcademicCap = (size = 18) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.26 10.147a60.438 60.438 0 0 0-.491 6.347A48.62 48.62 0 0 1 12 20.904a48.62 48.62 0 0 1 8.232-4.41 60.46 60.46 0 0 0-.491-6.347m-15.482 0a50.636 50.636 0 0 0-2.658-.813A59.906 59.906 0 0 1 12 3.493a59.903 59.903 0 0 1 10.399 5.84c-.896.248-1.783.52-2.658.814m-15.482 0A50.717 50.717 0 0 1 12 13.489a50.702 50.702 0 0 1 7.74-3.342M6.75 15a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm0 0v-3.675A55.378 55.378 0 0 1 12 8.443m-7.007 11.55A5.981 5.981 0 0 0 6.75 15.75v-1.5\"/></svg>`;\n\nexport const iconQueueList = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3.75 12h16.5m-16.5 3.75h16.5M3.75 19.5h16.5M5.625 4.5h12.75a1.875 1.875 0 0 1 0 3.75H5.625a1.875 1.875 0 0 1 0-3.75Z\"/></svg>`;\n\nexport const iconExclamationTriangle = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126ZM12 15.75h.007v.008H12v-.008Z\"/></svg>`;\n"]}
1
+ {"version":3,"file":"icons.js","sourceRoot":"","sources":["../src/icons.ts"],"names":[],"mappings":"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","sourcesContent":["import { svg } from \"lit\";\n\n// GENERATED by scripts/generate-icons.mjs — do not edit;\n// add names to the ICONS list in the script and re-run `npm run icons`.\n\nexport const iconX = (size = 18) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M6 18 18 6M6 6l12 12\"/></svg>`;\n\nexport const iconBars3 = (size = 18) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5\"/></svg>`;\n\nexport const iconChevronLeft = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M15.75 19.5 8.25 12l7.5-7.5\"/></svg>`;\n\nexport const iconChevronRight = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"m8.25 4.5 7.5 7.5-7.5 7.5\"/></svg>`;\n\nexport const iconCog = (size = 20) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9.594 3.94c.09-.542.56-.94 1.11-.94h2.593c.55 0 1.02.398 1.11.94l.213 1.281c.063.374.313.686.645.87.074.04.147.083.22.127.325.196.72.257 1.075.124l1.217-.456a1.125 1.125 0 0 1 1.37.49l1.296 2.247a1.125 1.125 0 0 1-.26 1.431l-1.003.827c-.293.241-.438.613-.43.992a7.723 7.723 0 0 1 0 .255c-.008.378.137.75.43.991l1.004.827c.424.35.534.955.26 1.43l-1.298 2.247a1.125 1.125 0 0 1-1.369.491l-1.217-.456c-.355-.133-.75-.072-1.076.124a6.47 6.47 0 0 1-.22.128c-.331.183-.581.495-.644.869l-.213 1.281c-.09.543-.56.94-1.11.94h-2.594c-.55 0-1.019-.398-1.11-.94l-.213-1.281c-.062-.374-.312-.686-.644-.87a6.52 6.52 0 0 1-.22-.127c-.325-.196-.72-.257-1.076-.124l-1.217.456a1.125 1.125 0 0 1-1.369-.49l-1.297-2.247a1.125 1.125 0 0 1 .26-1.431l1.004-.827c.292-.24.437-.613.43-.991a6.932 6.932 0 0 1 0-.255c.007-.38-.138-.751-.43-.992l-1.004-.827a1.125 1.125 0 0 1-.26-1.43l1.297-2.247a1.125 1.125 0 0 1 1.37-.491l1.216.456c.356.133.751.072 1.076-.124.072-.044.146-.086.22-.128.332-.183.582-.495.644-.869l.214-1.28Z\"/> <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z\"/></svg>`;\n\nexport const iconInfo = (size = 20) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"m11.25 11.25.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9-3.75h.008v.008H12V8.25Z\"/></svg>`;\n\nexport const iconQuestionMarkCircle = (size = 20) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 5.25h.008v.008H12v-.008Z\"/></svg>`;\n\nexport const iconPencil = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"m16.862 4.487 1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L6.832 19.82a4.5 4.5 0 0 1-1.897 1.13l-2.685.8.8-2.685a4.5 4.5 0 0 1 1.13-1.897L16.863 4.487Zm0 0L19.5 7.125\"/></svg>`;\n\nexport const iconTrash = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0\"/></svg>`;\n\nexport const iconPlus = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 4.5v15m7.5-7.5h-15\"/></svg>`;\n\nexport const iconListBullet = (size = 18) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M8.25 6.75h12M8.25 12h12m-12 5.25h12M3.75 6.75h.007v.008H3.75V6.75Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0ZM3.75 12h.007v.008H3.75V12Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Zm-.375 5.25h.007v.008H3.75v-.008Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Z\"/></svg>`;\n\nexport const iconCurrencyDollar = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 6v12m-3-2.818.879.659c1.171.879 3.07.879 4.242 0 1.172-.879 1.172-2.303 0-3.182C13.536 12.219 12.768 12 12 12c-.725 0-1.45-.22-2.003-.659-1.106-.879-1.106-2.303 0-3.182s2.9-.879 4.006 0l.415.33M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z\"/></svg>`;\n\nexport const iconHome = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"m2.25 12 8.954-8.955c.44-.439 1.152-.439 1.591 0L21.75 12M4.5 9.75v10.125c0 .621.504 1.125 1.125 1.125H9.75v-4.875c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125V21h4.125c.621 0 1.125-.504 1.125-1.125V9.75M8.25 21h8.25\"/></svg>`;\n\nexport const iconMapPin = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M15 10.5a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z\"/> <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M19.5 10.5c0 7.142-7.5 11.25-7.5 11.25S4.5 17.642 4.5 10.5a7.5 7.5 0 1 1 15 0Z\"/></svg>`;\n\nexport const iconClock = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 6v6h4.5m4.5 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z\"/></svg>`;\n\nexport const iconTag = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9.568 3H5.25A2.25 2.25 0 0 0 3 5.25v4.318c0 .597.237 1.17.659 1.591l9.581 9.581c.699.699 1.78.872 2.607.33a18.095 18.095 0 0 0 5.223-5.223c.542-.827.369-1.908-.33-2.607L11.16 3.66A2.25 2.25 0 0 0 9.568 3Z\"/> <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M6 6h.008v.008H6V6Z\"/></svg>`;\n\nexport const iconCalendar = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 0 1 2.25-2.25h13.5A2.25 2.25 0 0 1 21 7.5v11.25m-18 0A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75m-18 0v-7.5A2.25 2.25 0 0 1 5.25 9h13.5A2.25 2.25 0 0 1 21 11.25v7.5\"/></svg>`;\n\nexport const iconArrowsPointingOut = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3.75 3.75v4.5m0-4.5h4.5m-4.5 0L9 9M3.75 20.25v-4.5m0 4.5h4.5m-4.5 0L9 15M20.25 3.75h-4.5m4.5 0v4.5m0-4.5L15 9m5.25 11.25h-4.5m4.5 0v-4.5m0 4.5L15 15\"/></svg>`;\n\nexport const iconMap = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 6.75V15m6-6v8.25m.503 3.498 4.875-2.437c.381-.19.622-.58.622-1.006V4.82c0-.836-.88-1.38-1.628-1.006l-3.869 1.934c-.317.159-.69.159-1.006 0L9.503 3.252a1.125 1.125 0 0 0-1.006 0L3.622 5.689C3.24 5.88 3 6.27 3 6.695V19.18c0 .836.88 1.38 1.628 1.006l3.869-1.934c.317-.159.69-.159 1.006 0l4.994 2.497c.317.158.69.158 1.006 0Z\"/></svg>`;\n\nexport const iconCheckCircle = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z\"/></svg>`;\n\nexport const iconSun = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 3v2.25m6.364.386-1.591 1.591M21 12h-2.25m-.386 6.364-1.591-1.591M12 18.75V21m-4.773-4.227-1.591 1.591M5.25 12H3m4.227-4.773L5.636 5.636M15.75 12a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0Z\"/></svg>`;\n\nexport const iconShieldExclamation = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 9v3.75m0-10.036A11.959 11.959 0 0 1 3.598 6 11.99 11.99 0 0 0 3 9.75c0 5.592 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.31-.21-2.57-.598-3.75h-.152c-3.196 0-6.1-1.25-8.25-3.286Zm0 13.036h.008v.008H12v-.008Z\"/></svg>`;\n\nexport const iconArrowPath = (size = 12) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0 3.181 3.183a8.25 8.25 0 0 0 13.803-3.7M4.031 9.865a8.25 8.25 0 0 1 13.803-3.7l3.181 3.182m0-4.991v4.99\"/></svg>`;\n\nexport const iconArrowRight = (size = 12) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M13.5 4.5 21 12m0 0-7.5 7.5M21 12H3\"/></svg>`;\n\nexport const iconArrowDownTray = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3\"/></svg>`;\n\nexport const iconArrowsRightLeft = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M7.5 21 3 16.5m0 0L7.5 12M3 16.5h13.5m0-13.5L21 7.5m0 0L16.5 12M21 7.5H7.5\"/></svg>`;\n\nexport const iconLink = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M13.19 8.688a4.5 4.5 0 0 1 1.242 7.244l-4.5 4.5a4.5 4.5 0 0 1-6.364-6.364l1.757-1.757m13.35-.622 1.757-1.757a4.5 4.5 0 0 0-6.364-6.364l-4.5 4.5a4.5 4.5 0 0 0 1.242 7.244\"/></svg>`;\n\nexport const iconHeart = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M21 8.25c0-2.485-2.099-4.5-4.688-4.5-1.935 0-3.597 1.126-4.312 2.733-.715-1.607-2.377-2.733-4.313-2.733C5.1 3.75 3 5.765 3 8.25c0 7.22 9 12 9 12s9-4.78 9-12Z\"/></svg>`;\n\nexport const iconHeartSolid = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path d=\"m11.645 20.91-.007-.003-.022-.012a15.247 15.247 0 0 1-.383-.218 25.18 25.18 0 0 1-4.244-3.17C4.688 15.36 2.25 12.174 2.25 8.25 2.25 5.322 4.714 3 7.688 3A5.5 5.5 0 0 1 12 5.052 5.5 5.5 0 0 1 16.313 3c2.973 0 5.437 2.322 5.437 5.25 0 3.925-2.438 7.111-4.739 9.256a25.175 25.175 0 0 1-4.244 3.17 15.247 15.247 0 0 1-.383.219l-.022.012-.007.004-.003.001a.752.752 0 0 1-.704 0l-.003-.001Z\"/></svg>`;\n\nexport const iconEye = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M2.036 12.322a1.012 1.012 0 0 1 0-.639C3.423 7.51 7.36 4.5 12 4.5c4.638 0 8.573 3.007 9.963 7.178.07.207.07.431 0 .639C20.577 16.49 16.64 19.5 12 19.5c-4.638 0-8.573-3.007-9.963-7.178Z\"/> <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z\"/></svg>`;\n\nexport const iconEyeSlash = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3.98 8.223A10.477 10.477 0 0 0 1.934 12C3.226 16.338 7.244 19.5 12 19.5c.993 0 1.953-.138 2.863-.395M6.228 6.228A10.451 10.451 0 0 1 12 4.5c4.756 0 8.773 3.162 10.065 7.498a10.522 10.522 0 0 1-4.293 5.774M6.228 6.228 3 3m3.228 3.228 3.65 3.65m7.894 7.894L21 21m-3.228-3.228-3.65-3.65m0 0a3 3 0 1 0-4.243-4.243m4.242 4.242L9.88 9.88\"/></svg>`;\n\nexport const iconShieldCheck = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 12.75 11.25 15 15 9.75m-3-7.036A11.959 11.959 0 0 1 3.598 6 11.99 11.99 0 0 0 3 9.749c0 5.592 3.824 10.29 9 11.623 5.176-1.332 9-6.03 9-11.622 0-1.31-.21-2.571-.598-3.751h-.152c-3.196 0-6.1-1.248-8.25-3.285Z\"/></svg>`;\n\nexport const iconUserCircle = (size = 20) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M17.982 18.725A7.488 7.488 0 0 0 12 15.75a7.488 7.488 0 0 0-5.982 2.975m11.963 0a9 9 0 1 0-11.963 0m11.963 0A8.966 8.966 0 0 1 12 21a8.966 8.966 0 0 1-5.982-2.275M15 9.75a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z\"/></svg>`;\n\nexport const iconClipboardDocumentList = (size = 18) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 12h3.75M9 15h3.75M9 18h3.75m3 .75H18a2.25 2.25 0 0 0 2.25-2.25V6.108c0-1.135-.845-2.098-1.976-2.192a48.424 48.424 0 0 0-1.123-.08m-5.801 0c-.065.21-.1.433-.1.664 0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75 2.25 2.25 0 0 0-.1-.664m-5.8 0A2.251 2.251 0 0 1 13.5 2.25H15c1.012 0 1.867.668 2.15 1.586m-5.8 0c-.376.023-.75.05-1.124.08C9.095 4.01 8.25 4.973 8.25 6.108V8.25m0 0H4.875c-.621 0-1.125.504-1.125 1.125v11.25c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V9.375c0-.621-.504-1.125-1.125-1.125H8.25ZM6.75 12h.008v.008H6.75V12Zm0 3h.008v.008H6.75V15Zm0 3h.008v.008H6.75V18Z\"/></svg>`;\n\nexport const iconCpuChip = (size = 18) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M8.25 3v1.5M4.5 8.25H3m18 0h-1.5M4.5 12H3m18 0h-1.5m-15 3.75H3m18 0h-1.5M8.25 19.5V21M12 3v1.5m0 15V21m3.75-18v1.5m0 15V21m-9-1.5h10.5a2.25 2.25 0 0 0 2.25-2.25V6.75a2.25 2.25 0 0 0-2.25-2.25H6.75A2.25 2.25 0 0 0 4.5 6.75v10.5a2.25 2.25 0 0 0 2.25 2.25Zm.75-12h9v9h-9v-9Z\"/></svg>`;\n\nexport const iconFolder = (size = 18) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M2.25 12.75V12A2.25 2.25 0 0 1 4.5 9.75h15A2.25 2.25 0 0 1 21.75 12v.75m-8.69-6.44-2.12-2.12a1.5 1.5 0 0 0-1.061-.44H4.5A2.25 2.25 0 0 0 2.25 6v12a2.25 2.25 0 0 0 2.25 2.25h15A2.25 2.25 0 0 0 21.75 18V9a2.25 2.25 0 0 0-2.25-2.25h-5.379a1.5 1.5 0 0 1-1.06-.44Z\"/></svg>`;\n\nexport const iconChevronDown = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"m19.5 8.25-7.5 7.5-7.5-7.5\"/></svg>`;\n\nexport const iconDocument = (size = 18) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z\"/></svg>`;\n\nexport const iconSquares2x2 = (size = 18) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3.75 6A2.25 2.25 0 0 1 6 3.75h2.25A2.25 2.25 0 0 1 10.5 6v2.25a2.25 2.25 0 0 1-2.25 2.25H6a2.25 2.25 0 0 1-2.25-2.25V6ZM3.75 15.75A2.25 2.25 0 0 1 6 13.5h2.25a2.25 2.25 0 0 1 2.25 2.25V18a2.25 2.25 0 0 1-2.25 2.25H6A2.25 2.25 0 0 1 3.75 18v-2.25ZM13.5 6a2.25 2.25 0 0 1 2.25-2.25H18A2.25 2.25 0 0 1 20.25 6v2.25A2.25 2.25 0 0 1 18 10.5h-2.25a2.25 2.25 0 0 1-2.25-2.25V6ZM13.5 15.75a2.25 2.25 0 0 1 2.25-2.25H18a2.25 2.25 0 0 1 2.25 2.25V18A2.25 2.25 0 0 1 18 20.25h-2.25A2.25 2.25 0 0 1 13.5 18v-2.25Z\"/></svg>`;\n\nexport const iconChatBubbleLeftRight = (size = 18) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M20.25 8.511c.884.284 1.5 1.128 1.5 2.097v4.286c0 1.136-.847 2.1-1.98 2.193-.34.027-.68.052-1.02.072v3.091l-3-3c-1.354 0-2.694-.055-4.02-.163a2.115 2.115 0 0 1-.825-.242m9.345-8.334a2.126 2.126 0 0 0-.476-.095 48.64 48.64 0 0 0-8.048 0c-1.131.094-1.976 1.057-1.976 2.192v4.286c0 .837.46 1.58 1.155 1.951m9.345-8.334V6.637c0-1.621-1.152-3.026-2.76-3.235A48.455 48.455 0 0 0 11.25 3c-2.115 0-4.198.137-6.24.402-1.608.209-2.76 1.614-2.76 3.235v6.226c0 1.621 1.152 3.026 2.76 3.235.577.075 1.157.14 1.74.194V21l4.155-4.155\"/></svg>`;\n\nexport const iconArrowTopRightOnSquare = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M13.5 6H5.25A2.25 2.25 0 0 0 3 8.25v10.5A2.25 2.25 0 0 0 5.25 21h10.5A2.25 2.25 0 0 0 18 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25\"/></svg>`;\n\nexport const iconAcademicCap = (size = 18) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.26 10.147a60.438 60.438 0 0 0-.491 6.347A48.62 48.62 0 0 1 12 20.904a48.62 48.62 0 0 1 8.232-4.41 60.46 60.46 0 0 0-.491-6.347m-15.482 0a50.636 50.636 0 0 0-2.658-.813A59.906 59.906 0 0 1 12 3.493a59.903 59.903 0 0 1 10.399 5.84c-.896.248-1.783.52-2.658.814m-15.482 0A50.717 50.717 0 0 1 12 13.489a50.702 50.702 0 0 1 7.74-3.342M6.75 15a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm0 0v-3.675A55.378 55.378 0 0 1 12 8.443m-7.007 11.55A5.981 5.981 0 0 0 6.75 15.75v-1.5\"/></svg>`;\n\nexport const iconQueueList = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3.75 12h16.5m-16.5 3.75h16.5M3.75 19.5h16.5M5.625 4.5h12.75a1.875 1.875 0 0 1 0 3.75H5.625a1.875 1.875 0 0 1 0-3.75Z\"/></svg>`;\n\nexport const iconExclamationTriangle = (size = 16) =>\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\" width=${size} height=${size} aria-hidden=\"true\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126ZM12 15.75h.007v.008H12v-.008Z\"/></svg>`;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"text-area.d.ts","sourceRoot":"","sources":["../src/text-area.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAI5C;;;;;;;;;;GAUG;AACH,qBACa,QAAS,SAAQ,UAAU;IACtC,4BAA4B;IAChB,KAAK,SAAM;IACvB,oDAAoD;IACxB,IAAI,SAAK;IACrC,yCAAyC;IAC7B,WAAW,SAAM;IAC7B,kEAAkE;IACrC,QAAQ,UAAS;IAC9C,4DAA4D;IAC/B,QAAQ,UAAS;IAE9C,OAAgB,MAAM,4BAqDpB;IAEF,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,SAAS;IAOR,MAAM,yCAYd;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,QAAQ,CAAC;KACvB;CACF"}
1
+ {"version":3,"file":"text-area.d.ts","sourceRoot":"","sources":["../src/text-area.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAI5C;;;;;;;;;;GAUG;AACH,qBACa,QAAS,SAAQ,UAAU;IACtC,4BAA4B;IAChB,KAAK,SAAM;IACvB,oDAAoD;IACxB,IAAI,SAAK;IACrC,yCAAyC;IAC7B,WAAW,SAAM;IAC7B,kEAAkE;IACrC,QAAQ,UAAS;IAC9C,4DAA4D;IAC/B,QAAQ,UAAS;IAE9C,OAAgB,MAAM,4BAqDpB;IAEF,OAAO,CAAC,QAAQ;IAahB,OAAO,CAAC,SAAS;IAQR,MAAM,yCAYd;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,QAAQ,CAAC;KACvB;CACF"}
package/dist/text-area.js CHANGED
@@ -87,10 +87,17 @@ let TextArea = class TextArea extends LitElement {
87
87
  `,
88
88
  ]; }
89
89
  _onInput(e) {
90
+ // The native textarea's own "input" event is composed (crosses the shadow
91
+ // boundary) — stop it so only our re-dispatched CustomEvent (carrying
92
+ // `detail.value`) reaches consumers. Otherwise the native event bubbles
93
+ // out afterwards too, re-invoking the same "input" listener with a plain
94
+ // UIEvent whose `detail` defaults to 0, clobbering consumer state.
95
+ e.stopPropagation();
90
96
  this.value = e.target.value;
91
97
  this.dispatchEvent(new CustomEvent("input", { detail: { value: this.value }, bubbles: true, composed: true }));
92
98
  }
93
99
  _onChange(e) {
100
+ e.stopPropagation();
94
101
  this.value = e.target.value;
95
102
  this.dispatchEvent(new CustomEvent("change", { detail: { value: this.value }, bubbles: true, composed: true }));
96
103
  }
@@ -1 +1 @@
1
- {"version":3,"file":"text-area.js","sourceRoot":"","sources":["../src/text-area.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC;;;;;;;;;;GAUG;AAEI,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,UAAU;IAAjC;;QACL,4BAA4B;QAChB,UAAK,GAAG,EAAE,CAAC;QACvB,oDAAoD;QACxB,SAAI,GAAG,CAAC,CAAC;QACrC,yCAAyC;QAC7B,gBAAW,GAAG,EAAE,CAAC;QAC7B,kEAAkE;QACrC,aAAQ,GAAG,KAAK,CAAC;QAC9C,4DAA4D;QAC/B,aAAQ,GAAG,KAAK,CAAC;IAoFhD,CAAC;aAlFiB,WAAM,GAAG;QACvB,MAAM;QACN,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAkDF;KACF,AArDqB,CAqDpB;IAEM,QAAQ,CAAC,CAAQ;QACvB,IAAI,CAAC,KAAK,GAAI,CAAC,CAAC,MAA8B,CAAC,KAAK,CAAC;QACrD,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAC3F,CAAC;IACJ,CAAC;IAEO,SAAS,CAAC,CAAQ;QACxB,IAAI,CAAC,KAAK,GAAI,CAAC,CAAC,MAA8B,CAAC,KAAK,CAAC;QACrD,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAC5F,CAAC;IACJ,CAAC;IAEQ,MAAM;QACb,OAAO,IAAI,CAAA;;iBAEE,IAAI,CAAC,KAAK;eACZ,IAAI,CAAC,IAAI;sBACF,IAAI,CAAC,WAAW;oBAClB,IAAI,CAAC,QAAQ;oBACb,IAAI,CAAC,QAAQ;iBAChB,IAAI,CAAC,QAAQ;kBACZ,IAAI,CAAC,SAAS;;KAE3B,CAAC;IACJ,CAAC;CACF,CAAA;AA5Fa;IAAX,QAAQ,EAAE;uCAAY;AAEK;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;sCAAU;AAEzB;IAAX,QAAQ,EAAE;6CAAkB;AAEA;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;0CAAkB;AAEjB;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;0CAAkB;AAVnC,QAAQ;IADpB,aAAa,CAAC,WAAW,CAAC;GACd,QAAQ,CA8FpB","sourcesContent":["import { LitElement, css, html } from \"lit\";\nimport { customElement, property } from \"lit/decorators.js\";\nimport { tokens } from \"./tokens.js\";\n\n/**\n * Plain multi-line text field — a thin, tokenized wrapper around a native\n * `<textarea>`, styled to match the other value-entry form fields\n * (autocomplete-input, form-select, ...). Not a rich editor; use `readonly`\n * to display pre-formatted text (e.g. an error message) that the user can\n * still select and copy, typically paired with `<copy-link-button>`.\n *\n * @element text-area\n * @fires input - Fires on every keystroke; detail: { value: string }.\n * @fires change - Native change semantics (on blur, if the value changed); detail: { value: string }.\n */\n@customElement(\"text-area\")\nexport class TextArea extends LitElement {\n /** Current text content. */\n @property() value = \"\";\n /** Visible row count (native `<textarea rows>`). */\n @property({ type: Number }) rows = 4;\n /** Placeholder text shown when empty. */\n @property() placeholder = \"\";\n /** When true, the value can be selected/copied but not edited. */\n @property({ type: Boolean }) readonly = false;\n /** Disables the field entirely (no interaction, dimmed). */\n @property({ type: Boolean }) disabled = false;\n\n static override styles = [\n tokens,\n css`\n :host {\n display: block;\n }\n textarea {\n display: block;\n box-sizing: border-box;\n width: 100%;\n font-family: var(\n --ui-font,\n ui-sans-serif,\n system-ui,\n sans-serif,\n \"Apple Color Emoji\",\n \"Segoe UI Emoji\",\n \"Segoe UI Symbol\",\n \"Noto Color Emoji\"\n );\n font-size: var(--ui-font-size-sm, 0.75rem);\n line-height: var(--ui-line-height-normal, 1.5);\n color: var(--ui-text, #0f172a);\n background: var(--ui-surface, #ffffff);\n padding: 0.5rem 0.75rem;\n border: 1px solid var(--ui-border, #e2e8f0);\n border-radius: var(--ui-radius-sm, 0.25rem);\n resize: vertical;\n }\n textarea:read-only {\n background: var(--ui-surface-muted, #f8fafc);\n }\n textarea:disabled {\n cursor: not-allowed;\n opacity: 0.6;\n }\n textarea:focus-visible {\n outline: none;\n border-color: var(--ui-primary, #4f46e5);\n box-shadow: var(--ui-focus-ring, 0 0 0 3px rgb(79 70 229 / 0.35));\n }\n @media (forced-colors: active) {\n textarea:focus-visible {\n outline: 2px solid CanvasText;\n outline-offset: 2px;\n box-shadow: none;\n }\n textarea:disabled {\n color: GrayText;\n opacity: 1;\n }\n }\n `,\n ];\n\n private _onInput(e: Event): void {\n this.value = (e.target as HTMLTextAreaElement).value;\n this.dispatchEvent(\n new CustomEvent(\"input\", { detail: { value: this.value }, bubbles: true, composed: true }),\n );\n }\n\n private _onChange(e: Event): void {\n this.value = (e.target as HTMLTextAreaElement).value;\n this.dispatchEvent(\n new CustomEvent(\"change\", { detail: { value: this.value }, bubbles: true, composed: true }),\n );\n }\n\n override render() {\n return html`\n <textarea\n .value=${this.value}\n rows=${this.rows}\n placeholder=${this.placeholder}\n ?readonly=${this.readonly}\n ?disabled=${this.disabled}\n @input=${this._onInput}\n @change=${this._onChange}\n ></textarea>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"text-area\": TextArea;\n }\n}\n"]}
1
+ {"version":3,"file":"text-area.js","sourceRoot":"","sources":["../src/text-area.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC;;;;;;;;;;GAUG;AAEI,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,UAAU;IAAjC;;QACL,4BAA4B;QAChB,UAAK,GAAG,EAAE,CAAC;QACvB,oDAAoD;QACxB,SAAI,GAAG,CAAC,CAAC;QACrC,yCAAyC;QAC7B,gBAAW,GAAG,EAAE,CAAC;QAC7B,kEAAkE;QACrC,aAAQ,GAAG,KAAK,CAAC;QAC9C,4DAA4D;QAC/B,aAAQ,GAAG,KAAK,CAAC;IA2FhD,CAAC;aAzFiB,WAAM,GAAG;QACvB,MAAM;QACN,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAkDF;KACF,AArDqB,CAqDpB;IAEM,QAAQ,CAAC,CAAQ;QACvB,0EAA0E;QAC1E,sEAAsE;QACtE,wEAAwE;QACxE,yEAAyE;QACzE,mEAAmE;QACnE,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC,KAAK,GAAI,CAAC,CAAC,MAA8B,CAAC,KAAK,CAAC;QACrD,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAC3F,CAAC;IACJ,CAAC;IAEO,SAAS,CAAC,CAAQ;QACxB,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC,KAAK,GAAI,CAAC,CAAC,MAA8B,CAAC,KAAK,CAAC;QACrD,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAC5F,CAAC;IACJ,CAAC;IAEQ,MAAM;QACb,OAAO,IAAI,CAAA;;iBAEE,IAAI,CAAC,KAAK;eACZ,IAAI,CAAC,IAAI;sBACF,IAAI,CAAC,WAAW;oBAClB,IAAI,CAAC,QAAQ;oBACb,IAAI,CAAC,QAAQ;iBAChB,IAAI,CAAC,QAAQ;kBACZ,IAAI,CAAC,SAAS;;KAE3B,CAAC;IACJ,CAAC;CACF,CAAA;AAnGa;IAAX,QAAQ,EAAE;uCAAY;AAEK;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;sCAAU;AAEzB;IAAX,QAAQ,EAAE;6CAAkB;AAEA;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;0CAAkB;AAEjB;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;0CAAkB;AAVnC,QAAQ;IADpB,aAAa,CAAC,WAAW,CAAC;GACd,QAAQ,CAqGpB","sourcesContent":["import { LitElement, css, html } from \"lit\";\nimport { customElement, property } from \"lit/decorators.js\";\nimport { tokens } from \"./tokens.js\";\n\n/**\n * Plain multi-line text field — a thin, tokenized wrapper around a native\n * `<textarea>`, styled to match the other value-entry form fields\n * (autocomplete-input, form-select, ...). Not a rich editor; use `readonly`\n * to display pre-formatted text (e.g. an error message) that the user can\n * still select and copy, typically paired with `<copy-link-button>`.\n *\n * @element text-area\n * @fires input - Fires on every keystroke; detail: { value: string }.\n * @fires change - Native change semantics (on blur, if the value changed); detail: { value: string }.\n */\n@customElement(\"text-area\")\nexport class TextArea extends LitElement {\n /** Current text content. */\n @property() value = \"\";\n /** Visible row count (native `<textarea rows>`). */\n @property({ type: Number }) rows = 4;\n /** Placeholder text shown when empty. */\n @property() placeholder = \"\";\n /** When true, the value can be selected/copied but not edited. */\n @property({ type: Boolean }) readonly = false;\n /** Disables the field entirely (no interaction, dimmed). */\n @property({ type: Boolean }) disabled = false;\n\n static override styles = [\n tokens,\n css`\n :host {\n display: block;\n }\n textarea {\n display: block;\n box-sizing: border-box;\n width: 100%;\n font-family: var(\n --ui-font,\n ui-sans-serif,\n system-ui,\n sans-serif,\n \"Apple Color Emoji\",\n \"Segoe UI Emoji\",\n \"Segoe UI Symbol\",\n \"Noto Color Emoji\"\n );\n font-size: var(--ui-font-size-sm, 0.75rem);\n line-height: var(--ui-line-height-normal, 1.5);\n color: var(--ui-text, #0f172a);\n background: var(--ui-surface, #ffffff);\n padding: 0.5rem 0.75rem;\n border: 1px solid var(--ui-border, #e2e8f0);\n border-radius: var(--ui-radius-sm, 0.25rem);\n resize: vertical;\n }\n textarea:read-only {\n background: var(--ui-surface-muted, #f8fafc);\n }\n textarea:disabled {\n cursor: not-allowed;\n opacity: 0.6;\n }\n textarea:focus-visible {\n outline: none;\n border-color: var(--ui-primary, #4f46e5);\n box-shadow: var(--ui-focus-ring, 0 0 0 3px rgb(79 70 229 / 0.35));\n }\n @media (forced-colors: active) {\n textarea:focus-visible {\n outline: 2px solid CanvasText;\n outline-offset: 2px;\n box-shadow: none;\n }\n textarea:disabled {\n color: GrayText;\n opacity: 1;\n }\n }\n `,\n ];\n\n private _onInput(e: Event): void {\n // The native textarea's own \"input\" event is composed (crosses the shadow\n // boundary) — stop it so only our re-dispatched CustomEvent (carrying\n // `detail.value`) reaches consumers. Otherwise the native event bubbles\n // out afterwards too, re-invoking the same \"input\" listener with a plain\n // UIEvent whose `detail` defaults to 0, clobbering consumer state.\n e.stopPropagation();\n this.value = (e.target as HTMLTextAreaElement).value;\n this.dispatchEvent(\n new CustomEvent(\"input\", { detail: { value: this.value }, bubbles: true, composed: true }),\n );\n }\n\n private _onChange(e: Event): void {\n e.stopPropagation();\n this.value = (e.target as HTMLTextAreaElement).value;\n this.dispatchEvent(\n new CustomEvent(\"change\", { detail: { value: this.value }, bubbles: true, composed: true }),\n );\n }\n\n override render() {\n return html`\n <textarea\n .value=${this.value}\n rows=${this.rows}\n placeholder=${this.placeholder}\n ?readonly=${this.readonly}\n ?disabled=${this.disabled}\n @input=${this._onInput}\n @change=${this._onChange}\n ></textarea>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"text-area\": TextArea;\n }\n}\n"]}
@@ -17,6 +17,10 @@ import type { StatusPillColor } from "./status-pill.js";
17
17
  * `primary` by default, plus `neutral`, `info`, `success`, `warning`, and
18
18
  * `danger`.
19
19
  *
20
+ * Set `compact` for dense, one-line system-status entries (running spinners,
21
+ * state changes): it tightens the vertical spacing and renders the content
22
+ * smaller and muted.
23
+ *
20
24
  * @element timeline-entry
21
25
  * @slot headline - Optional headline/title for the event.
22
26
  * @slot - The event content; nest any elements here.
@@ -29,6 +33,11 @@ export declare class TimelineEntry extends LitElement {
29
33
  * `primary` (default), `neutral`, `info`, `success`, `warning`, or `danger`.
30
34
  */
31
35
  color: StatusPillColor;
36
+ /**
37
+ * Dense, one-line presentation for system-status entries: tighter vertical
38
+ * spacing and smaller, muted content.
39
+ */
40
+ compact: boolean;
32
41
  /** Whether the headline slot currently has assigned content. */
33
42
  private _hasHeadline;
34
43
  static styles: import("lit").CSSResult[];
@@ -1 +1 @@
1
- {"version":3,"file":"timeline-entry.d.ts","sourceRoot":"","sources":["../src/timeline-entry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAErD,OAAO,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBACa,aAAc,SAAQ,UAAU;IAC3C,uEAAuE;IAC3D,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE3C;;;OAGG;IACS,KAAK,EAAE,eAAe,CAAa;IAE/C,gEAAgE;IACvD,OAAO,CAAC,YAAY,CAAS;IAEtC,OAAgB,MAAM,4BAoHpB;IAEO,iBAAiB,IAAI,IAAI,CAGjC;IAED,6EAA6E;IAC7E,OAAO,CAAC,qBAAqB;IAIpB,MAAM,yCAqBd;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,gBAAgB,EAAE,aAAa,CAAC;KACjC;CACF"}
1
+ {"version":3,"file":"timeline-entry.d.ts","sourceRoot":"","sources":["../src/timeline-entry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAErD,OAAO,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBACa,aAAc,SAAQ,UAAU;IAC3C,uEAAuE;IAC3D,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE3C;;;OAGG;IACS,KAAK,EAAE,eAAe,CAAa;IAE/C;;;OAGG;IACyC,OAAO,UAAS;IAE5D,gEAAgE;IACvD,OAAO,CAAC,YAAY,CAAS;IAEtC,OAAgB,MAAM,4BA+HpB;IAEO,iBAAiB,IAAI,IAAI,CAGjC;IAED,6EAA6E;IAC7E,OAAO,CAAC,qBAAqB;IAIpB,MAAM,yCAqBd;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,gBAAgB,EAAE,aAAa,CAAC;KACjC;CACF"}
@@ -24,6 +24,10 @@ import { tokens } from "./tokens.js";
24
24
  * `primary` by default, plus `neutral`, `info`, `success`, `warning`, and
25
25
  * `danger`.
26
26
  *
27
+ * Set `compact` for dense, one-line system-status entries (running spinners,
28
+ * state changes): it tightens the vertical spacing and renders the content
29
+ * smaller and muted.
30
+ *
27
31
  * @element timeline-entry
28
32
  * @slot headline - Optional headline/title for the event.
29
33
  * @slot - The event content; nest any elements here.
@@ -38,6 +42,11 @@ let TimelineEntry = class TimelineEntry extends LitElement {
38
42
  * `primary` (default), `neutral`, `info`, `success`, `warning`, or `danger`.
39
43
  */
40
44
  this.color = "primary";
45
+ /**
46
+ * Dense, one-line presentation for system-status entries: tighter vertical
47
+ * spacing and smaller, muted content.
48
+ */
49
+ this.compact = false;
41
50
  /** Whether the headline slot currently has assigned content. */
42
51
  this._hasHeadline = false;
43
52
  }
@@ -156,6 +165,17 @@ let TimelineEntry = class TimelineEntry extends LitElement {
156
165
  line-height: var(--ui-line-height-normal, 1.5);
157
166
  color: var(--ui-text, #0f172a);
158
167
  }
168
+ :host([compact]) .body {
169
+ padding-bottom: 0.5rem;
170
+ }
171
+ :host([compact]:last-child) .body {
172
+ padding-bottom: 0;
173
+ }
174
+ :host([compact]) .content {
175
+ margin-top: 0.125rem;
176
+ font-size: var(--ui-font-size-sm, 0.75rem);
177
+ color: var(--ui-text-muted, #64748b);
178
+ }
159
179
  `,
160
180
  ]; }
161
181
  connectedCallback() {
@@ -196,6 +216,9 @@ __decorate([
196
216
  __decorate([
197
217
  property()
198
218
  ], TimelineEntry.prototype, "color", void 0);
219
+ __decorate([
220
+ property({ type: Boolean, reflect: true })
221
+ ], TimelineEntry.prototype, "compact", void 0);
199
222
  __decorate([
200
223
  state()
201
224
  ], TimelineEntry.prototype, "_hasHeadline", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"timeline-entry.js","sourceRoot":"","sources":["../src/timeline-entry.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,oBAAoB,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC;;;;;;;;;;;;;;;;;;;GAmBG;AAEI,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,UAAU;IAAtC;;QACL,uEAAuE;QAC3D,aAAQ,GAAkB,IAAI,CAAC;QAE3C;;;WAGG;QACS,UAAK,GAAoB,SAAS,CAAC;QAE/C,gEAAgE;QAC/C,iBAAY,GAAG,KAAK,CAAC;IAwJxC,CAAC;aAtJiB,WAAM,GAAG;QACvB,MAAM;QACN,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAiHF;KACF,AApHqB,CAoHpB;IAEO,iBAAiB;QACxB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;YAAE,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACxE,CAAC;IAED,6EAA6E;IACrE,qBAAqB,CAAC,KAAY;QACxC,IAAI,CAAC,YAAY,GAAI,KAAK,CAAC,MAA0B,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACpG,CAAC;IAEQ,MAAM;QACb,OAAO,IAAI,CAAA;;;;;6BAKc,IAAI,CAAC,KAAK;;;;oCAIH,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO;kDAClB,IAAI,CAAC,qBAAqB;;cAE9D,IAAI,CAAC,QAAQ;YACb,CAAC,CAAC,IAAI,CAAA,wCAAwC,IAAI,CAAC,QAAQ,mBAAmB;YAC9E,CAAC,CAAC,OAAO;;;;;KAKlB,CAAC;IACJ,CAAC;CACF,CAAA;AAjKa;IAAX,QAAQ,EAAE;+CAAgC;AAM/B;IAAX,QAAQ,EAAE;4CAAoC;AAG9B;IAAhB,KAAK,EAAE;mDAA8B;AAX3B,aAAa;IADzB,aAAa,CAAC,gBAAgB,CAAC;GACnB,aAAa,CAmKzB","sourcesContent":["import { LitElement, css, html, nothing } from \"lit\";\nimport { customElement, property, state } from \"lit/decorators.js\";\nimport \"./relative-time.js\";\nimport { tokens } from \"./tokens.js\";\nimport type { StatusPillColor } from \"./status-pill.js\";\n\n/**\n * One event on a `timeline-container`: a dot on the vertical line, an optional\n * headline, a relative timestamp (\"3 hours ago\"), and freely nested content.\n * The connecting line is drawn here — its segment above the dot is hidden on\n * the first entry and the segment below is hidden on the last, so the line caps\n * exactly at the first and last dots. Only meaningful inside a\n * `timeline-container`; demonstrated through it.\n *\n * `datetime` is the entry's one timestamp. A nested element that has its own\n * timestamp prop (e.g. `chat-message`'s `timestamp`) should leave it unset —\n * setting both renders the same time twice.\n *\n * The dot's `color` types the entry using the shared status-pill palette —\n * `primary` by default, plus `neutral`, `info`, `success`, `warning`, and\n * `danger`.\n *\n * @element timeline-entry\n * @slot headline - Optional headline/title for the event.\n * @slot - The event content; nest any elements here.\n */\n@customElement(\"timeline-entry\")\nexport class TimelineEntry extends LitElement {\n /** ISO 8601 or SQLite datetime string, rendered as a relative time. */\n @property() datetime: string | null = null;\n\n /**\n * Visual type of the entry's dot, from the shared status-pill palette:\n * `primary` (default), `neutral`, `info`, `success`, `warning`, or `danger`.\n */\n @property() color: StatusPillColor = \"primary\";\n\n /** Whether the headline slot currently has assigned content. */\n @state() private _hasHeadline = false;\n\n static override styles = [\n tokens,\n css`\n :host {\n display: block;\n font-family: var(\n --ui-font,\n ui-sans-serif,\n system-ui,\n sans-serif,\n \"Apple Color Emoji\",\n \"Segoe UI Emoji\",\n \"Segoe UI Symbol\",\n \"Noto Color Emoji\"\n );\n }\n .entry {\n display: flex;\n gap: 0.75rem;\n }\n .rail {\n position: relative;\n flex: 0 0 auto;\n width: 0.75rem;\n }\n .line {\n position: absolute;\n left: 50%;\n width: 2px;\n transform: translateX(-50%);\n background: var(--ui-border, #e2e8f0);\n }\n .line-top {\n top: 0;\n height: 0.5rem;\n }\n .line-bottom {\n top: 0.5rem;\n bottom: 0;\n }\n .dot {\n position: absolute;\n top: 0.125rem;\n left: 50%;\n width: 0.75rem;\n height: 0.75rem;\n transform: translateX(-50%);\n border-radius: 9999px;\n /* Same lighter-on-top token gradient as map-circle/user-avatar; the\n base color is swapped per the color property via the private\n --_dot var. */\n background: linear-gradient(\n to bottom,\n color-mix(in srgb, var(--_dot, var(--ui-primary, #4f46e5)) 70%, #ffffff) 0%,\n color-mix(in srgb, var(--_dot, var(--ui-primary, #4f46e5)) 70%, #000000) 100%\n );\n }\n .dot.neutral {\n --_dot: var(--ui-text-muted, #64748b);\n }\n .dot.info {\n --_dot: var(--ui-info, #0ea5e9);\n }\n .dot.primary {\n --_dot: var(--ui-primary, #4f46e5);\n }\n .dot.success {\n --_dot: var(--ui-success, #16a34a);\n }\n .dot.warning {\n --_dot: var(--ui-warning, #d97706);\n }\n .dot.danger {\n --_dot: var(--ui-danger, #dc2626);\n }\n :host(:first-child) .line-top {\n display: none;\n }\n :host(:last-child) .line-bottom {\n display: none;\n }\n .body {\n flex: 1 1 auto;\n min-width: 0;\n padding-bottom: 1.5rem;\n }\n :host(:last-child) .body {\n padding-bottom: 0;\n }\n .head {\n display: flex;\n align-items: baseline;\n gap: 0.5rem;\n flex-wrap: wrap;\n }\n .headline {\n font-weight: var(--ui-font-weight-semibold, 600);\n font-size: var(--ui-font-size, 0.875rem);\n line-height: var(--ui-line-height-tight, 1.25);\n color: var(--ui-text, #0f172a);\n }\n .headline.empty {\n display: none;\n }\n .time {\n font-size: var(--ui-font-size-sm, 0.75rem);\n line-height: var(--ui-line-height-tight, 1.25);\n color: var(--ui-text-muted, #64748b);\n }\n .content {\n margin-top: 0.25rem;\n font-size: var(--ui-font-size, 0.875rem);\n line-height: var(--ui-line-height-normal, 1.5);\n color: var(--ui-text, #0f172a);\n }\n `,\n ];\n\n override connectedCallback(): void {\n super.connectedCallback();\n if (!this.hasAttribute(\"role\")) this.setAttribute(\"role\", \"listitem\");\n }\n\n /** Collapses the headline when nothing is slotted so the time sits alone. */\n private _onHeadlineSlotChange(event: Event): void {\n this._hasHeadline = (event.target as HTMLSlotElement).assignedNodes({ flatten: true }).length > 0;\n }\n\n override render() {\n return html`\n <div class=\"entry\">\n <div class=\"rail\" aria-hidden=\"true\">\n <span class=\"line line-top\"></span>\n <span class=\"line line-bottom\"></span>\n <span class=\"dot ${this.color}\"></span>\n </div>\n <div class=\"body\">\n <div class=\"head\">\n <span class=\"headline ${this._hasHeadline ? \"\" : \"empty\"}\">\n <slot name=\"headline\" @slotchange=${this._onHeadlineSlotChange}></slot>\n </span>\n ${this.datetime\n ? html`<relative-time class=\"time\" datetime=${this.datetime}></relative-time>`\n : nothing}\n </div>\n <div class=\"content\"><slot></slot></div>\n </div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"timeline-entry\": TimelineEntry;\n }\n}\n"]}
1
+ {"version":3,"file":"timeline-entry.js","sourceRoot":"","sources":["../src/timeline-entry.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,oBAAoB,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEI,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,UAAU;IAAtC;;QACL,uEAAuE;QAC3D,aAAQ,GAAkB,IAAI,CAAC;QAE3C;;;WAGG;QACS,UAAK,GAAoB,SAAS,CAAC;QAE/C;;;WAGG;QACyC,YAAO,GAAG,KAAK,CAAC;QAE5D,gEAAgE;QAC/C,iBAAY,GAAG,KAAK,CAAC;IAmKxC,CAAC;aAjKiB,WAAM,GAAG;QACvB,MAAM;QACN,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA4HF;KACF,AA/HqB,CA+HpB;IAEO,iBAAiB;QACxB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;YAAE,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACxE,CAAC;IAED,6EAA6E;IACrE,qBAAqB,CAAC,KAAY;QACxC,IAAI,CAAC,YAAY,GAAI,KAAK,CAAC,MAA0B,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACpG,CAAC;IAEQ,MAAM;QACb,OAAO,IAAI,CAAA;;;;;6BAKc,IAAI,CAAC,KAAK;;;;oCAIH,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO;kDAClB,IAAI,CAAC,qBAAqB;;cAE9D,IAAI,CAAC,QAAQ;YACb,CAAC,CAAC,IAAI,CAAA,wCAAwC,IAAI,CAAC,QAAQ,mBAAmB;YAC9E,CAAC,CAAC,OAAO;;;;;KAKlB,CAAC;IACJ,CAAC;CACF,CAAA;AAlLa;IAAX,QAAQ,EAAE;+CAAgC;AAM/B;IAAX,QAAQ,EAAE;4CAAoC;AAMH;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;8CAAiB;AAG3C;IAAhB,KAAK,EAAE;mDAA8B;AAjB3B,aAAa;IADzB,aAAa,CAAC,gBAAgB,CAAC;GACnB,aAAa,CAoLzB","sourcesContent":["import { LitElement, css, html, nothing } from \"lit\";\nimport { customElement, property, state } from \"lit/decorators.js\";\nimport \"./relative-time.js\";\nimport { tokens } from \"./tokens.js\";\nimport type { StatusPillColor } from \"./status-pill.js\";\n\n/**\n * One event on a `timeline-container`: a dot on the vertical line, an optional\n * headline, a relative timestamp (\"3 hours ago\"), and freely nested content.\n * The connecting line is drawn here — its segment above the dot is hidden on\n * the first entry and the segment below is hidden on the last, so the line caps\n * exactly at the first and last dots. Only meaningful inside a\n * `timeline-container`; demonstrated through it.\n *\n * `datetime` is the entry's one timestamp. A nested element that has its own\n * timestamp prop (e.g. `chat-message`'s `timestamp`) should leave it unset —\n * setting both renders the same time twice.\n *\n * The dot's `color` types the entry using the shared status-pill palette —\n * `primary` by default, plus `neutral`, `info`, `success`, `warning`, and\n * `danger`.\n *\n * Set `compact` for dense, one-line system-status entries (running spinners,\n * state changes): it tightens the vertical spacing and renders the content\n * smaller and muted.\n *\n * @element timeline-entry\n * @slot headline - Optional headline/title for the event.\n * @slot - The event content; nest any elements here.\n */\n@customElement(\"timeline-entry\")\nexport class TimelineEntry extends LitElement {\n /** ISO 8601 or SQLite datetime string, rendered as a relative time. */\n @property() datetime: string | null = null;\n\n /**\n * Visual type of the entry's dot, from the shared status-pill palette:\n * `primary` (default), `neutral`, `info`, `success`, `warning`, or `danger`.\n */\n @property() color: StatusPillColor = \"primary\";\n\n /**\n * Dense, one-line presentation for system-status entries: tighter vertical\n * spacing and smaller, muted content.\n */\n @property({ type: Boolean, reflect: true }) compact = false;\n\n /** Whether the headline slot currently has assigned content. */\n @state() private _hasHeadline = false;\n\n static override styles = [\n tokens,\n css`\n :host {\n display: block;\n font-family: var(\n --ui-font,\n ui-sans-serif,\n system-ui,\n sans-serif,\n \"Apple Color Emoji\",\n \"Segoe UI Emoji\",\n \"Segoe UI Symbol\",\n \"Noto Color Emoji\"\n );\n }\n .entry {\n display: flex;\n gap: 0.75rem;\n }\n .rail {\n position: relative;\n flex: 0 0 auto;\n width: 0.75rem;\n }\n .line {\n position: absolute;\n left: 50%;\n width: 2px;\n transform: translateX(-50%);\n background: var(--ui-border, #e2e8f0);\n }\n .line-top {\n top: 0;\n height: 0.5rem;\n }\n .line-bottom {\n top: 0.5rem;\n bottom: 0;\n }\n .dot {\n position: absolute;\n top: 0.125rem;\n left: 50%;\n width: 0.75rem;\n height: 0.75rem;\n transform: translateX(-50%);\n border-radius: 9999px;\n /* Same lighter-on-top token gradient as map-circle/user-avatar; the\n base color is swapped per the color property via the private\n --_dot var. */\n background: linear-gradient(\n to bottom,\n color-mix(in srgb, var(--_dot, var(--ui-primary, #4f46e5)) 70%, #ffffff) 0%,\n color-mix(in srgb, var(--_dot, var(--ui-primary, #4f46e5)) 70%, #000000) 100%\n );\n }\n .dot.neutral {\n --_dot: var(--ui-text-muted, #64748b);\n }\n .dot.info {\n --_dot: var(--ui-info, #0ea5e9);\n }\n .dot.primary {\n --_dot: var(--ui-primary, #4f46e5);\n }\n .dot.success {\n --_dot: var(--ui-success, #16a34a);\n }\n .dot.warning {\n --_dot: var(--ui-warning, #d97706);\n }\n .dot.danger {\n --_dot: var(--ui-danger, #dc2626);\n }\n :host(:first-child) .line-top {\n display: none;\n }\n :host(:last-child) .line-bottom {\n display: none;\n }\n .body {\n flex: 1 1 auto;\n min-width: 0;\n padding-bottom: 1.5rem;\n }\n :host(:last-child) .body {\n padding-bottom: 0;\n }\n .head {\n display: flex;\n align-items: baseline;\n gap: 0.5rem;\n flex-wrap: wrap;\n }\n .headline {\n font-weight: var(--ui-font-weight-semibold, 600);\n font-size: var(--ui-font-size, 0.875rem);\n line-height: var(--ui-line-height-tight, 1.25);\n color: var(--ui-text, #0f172a);\n }\n .headline.empty {\n display: none;\n }\n .time {\n font-size: var(--ui-font-size-sm, 0.75rem);\n line-height: var(--ui-line-height-tight, 1.25);\n color: var(--ui-text-muted, #64748b);\n }\n .content {\n margin-top: 0.25rem;\n font-size: var(--ui-font-size, 0.875rem);\n line-height: var(--ui-line-height-normal, 1.5);\n color: var(--ui-text, #0f172a);\n }\n :host([compact]) .body {\n padding-bottom: 0.5rem;\n }\n :host([compact]:last-child) .body {\n padding-bottom: 0;\n }\n :host([compact]) .content {\n margin-top: 0.125rem;\n font-size: var(--ui-font-size-sm, 0.75rem);\n color: var(--ui-text-muted, #64748b);\n }\n `,\n ];\n\n override connectedCallback(): void {\n super.connectedCallback();\n if (!this.hasAttribute(\"role\")) this.setAttribute(\"role\", \"listitem\");\n }\n\n /** Collapses the headline when nothing is slotted so the time sits alone. */\n private _onHeadlineSlotChange(event: Event): void {\n this._hasHeadline = (event.target as HTMLSlotElement).assignedNodes({ flatten: true }).length > 0;\n }\n\n override render() {\n return html`\n <div class=\"entry\">\n <div class=\"rail\" aria-hidden=\"true\">\n <span class=\"line line-top\"></span>\n <span class=\"line line-bottom\"></span>\n <span class=\"dot ${this.color}\"></span>\n </div>\n <div class=\"body\">\n <div class=\"head\">\n <span class=\"headline ${this._hasHeadline ? \"\" : \"empty\"}\">\n <slot name=\"headline\" @slotchange=${this._onHeadlineSlotChange}></slot>\n </span>\n ${this.datetime\n ? html`<relative-time class=\"time\" datetime=${this.datetime}></relative-time>`\n : nothing}\n </div>\n <div class=\"content\"><slot></slot></div>\n </div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"timeline-entry\": TimelineEntry;\n }\n}\n"]}
@@ -15,6 +15,10 @@ The dot's `color` types the entry using the shared status-pill palette —
15
15
  `primary` by default, plus `neutral`, `info`, `success`, `warning`, and
16
16
  `danger`.
17
17
 
18
+ Set `compact` for dense, one-line system-status entries (running spinners,
19
+ state changes): it tightens the vertical spacing and renders the content
20
+ smaller and muted.
21
+
18
22
  ## Install
19
23
 
20
24
  ```js
@@ -36,6 +40,7 @@ import "@f-ewald/components/timeline-entry.js";
36
40
  | --- | --- | --- | --- | --- |
37
41
  | `datetime` | `datetime` | `string | null` | `null` | ISO 8601 or SQLite datetime string, rendered as a relative time. |
38
42
  | `color` | `color` | `StatusPillColor` | `"primary"` | Visual type of the entry's dot, from the shared status-pill palette: `primary` (default), `neutral`, `info`, `success`, `warning`, or `danger`. |
43
+ | `compact` | `compact` | `boolean` | `false` | Dense, one-line presentation for system-status entries: tighter vertical spacing and smaller, muted content. |
39
44
 
40
45
  ## Events
41
46
 
package/llms.txt CHANGED
@@ -1369,9 +1369,13 @@ The dot's `color` types the entry using the shared status-pill palette —
1369
1369
  `primary` by default, plus `neutral`, `info`, `success`, `warning`, and
1370
1370
  `danger`.
1371
1371
 
1372
+ Set `compact` for dense, one-line system-status entries (running spinners,
1373
+ state changes): it tightens the vertical spacing and renders the content
1374
+ smaller and muted.
1375
+
1372
1376
  Import: `import "@f-ewald/components/timeline-entry.js";`
1373
1377
 
1374
- Properties: `datetime` (attribute `datetime`) : string | null, default null; `color` (attribute `color`) : StatusPillColor, default "primary"
1378
+ Properties: `datetime` (attribute `datetime`) : string | null, default null; `color` (attribute `color`) : StatusPillColor, default "primary"; `compact` (attribute `compact`) : boolean, default false
1375
1379
  Events: none
1376
1380
  CSS custom properties: `--ui-border`, `--ui-danger`, `--ui-font`, `--ui-font-size`, `--ui-font-size-sm`, `--ui-font-weight-semibold`, `--ui-info`, `--ui-line-height-normal`, `--ui-line-height-tight`, `--ui-primary`, `--ui-success`, `--ui-text`, `--ui-text-muted`, `--ui-warning`
1377
1381
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@f-ewald/components",
3
3
  "private": false,
4
- "version": "1.7.0",
4
+ "version": "1.8.0",
5
5
  "description": "A collection of universally usable web components for various tasks.",
6
6
  "type": "module",
7
7
  "main": "dist/index.js",