@websolutespa/bom-llm 0.0.27 → 0.0.29

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @websolutespa/bom-llm
2
2
 
3
+ ## 0.0.29
4
+
5
+ ### Patch Changes
6
+
7
+ - Modified: theme settings, Added: Font component
8
+
9
+ ## 0.0.28
10
+
11
+ ### Patch Changes
12
+
13
+ - Modified: Product Card & Product Card Group style
14
+
3
15
  ## 0.0.27
4
16
 
5
17
  ### Patch Changes
@@ -1,5 +1,3 @@
1
- @import url("https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,200..1000;1,200..1000&display=swap");
2
- @import url("https://fonts.googleapis.com/css2?family=Work+Sans:ital,wght@0,100..900;1,100..900&display=swap");
3
1
  .llm html,
4
2
  .llm body,
5
3
  .llm p,
@@ -134,34 +132,46 @@
134
132
  background-color: transparent;
135
133
  }
136
134
 
135
+ /*
136
+ @import url('https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,200..1000;1,200..1000&display=swap');
137
+ @import url('https://fonts.googleapis.com/css2?family=Work+Sans:ital,wght@0,100..900;1,100..900&display=swap');
138
+
137
139
  @font-face {
138
- font-family: "Aeonik";
139
- src: url("https://design.wslabs.it/llm/fonts/Aeonik-Medium.woff2") format("woff2"), url("https://design.wslabs.it/llm/fonts/Aeonik-Medium.woff2") format("woff");
140
+ font-family: 'Aeonik';
141
+ src:
142
+ url('https://design.wslabs.it/llm/fonts/Aeonik-Medium.woff2') format('woff2'),
143
+ url('https://design.wslabs.it/llm/fonts/Aeonik-Medium.woff2') format('woff');
140
144
  font-weight: 500;
141
145
  font-style: normal;
142
146
  font-display: swap;
143
147
  }
148
+
144
149
  @font-face {
145
- font-family: "Aeonik";
146
- src: url("https://design.wslabs.it/llm/fonts/Aeonik-Bold.woff2") format("woff2"), url("https://design.wslabs.it/llm/fonts/Aeonik-Bold.woff") format("woff");
150
+ font-family: 'Aeonik';
151
+ src:
152
+ url('https://design.wslabs.it/llm/fonts/Aeonik-Bold.woff2') format('woff2'),
153
+ url('https://design.wslabs.it/llm/fonts/Aeonik-Bold.woff') format('woff');
147
154
  font-weight: 700;
148
155
  font-style: normal;
149
156
  font-display: swap;
150
157
  }
158
+
151
159
  @font-face {
152
- font-family: "Capraia";
153
- src: url("https://design.wslabs.it/llm/fonts/Capraia-Regular.woff2") format("woff2");
160
+ font-family: 'Capraia';
161
+ src: url('https://design.wslabs.it/llm/fonts/Capraia-Regular.woff2') format('woff2');
154
162
  font-style: normal;
155
163
  font-weight: 400;
156
164
  font-display: swap;
157
165
  }
166
+
158
167
  @font-face {
159
- font-family: "Capraia";
160
- src: url("https://design.wslabs.it/llm/fonts/Capraia-Light_W.woff2") format("woff2");
168
+ font-family: 'Capraia';
169
+ src: url('https://design.wslabs.it/llm/fonts/Capraia-Light_W.woff2') format('woff2');
161
170
  font-weight: 300;
162
171
  font-style: normal;
163
172
  font-display: swap;
164
173
  }
174
+ */
165
175
  /*
166
176
  @font-face {
167
177
  font-family: 'Capraia';
@@ -1015,16 +1025,16 @@ llm-embed {
1015
1025
  }
1016
1026
  }
1017
1027
  @media (hover: hover) {
1018
- .llm .llm__trigger-btn--hover:hover + .llm__trigger-welcome > div {
1028
+ .llm .llm__trigger-btn--hover:hover + .llm__trigger-popup > div {
1019
1029
  opacity: 0;
1020
1030
  translate: -50% 10%;
1021
1031
  }
1022
- .llm .llm__trigger-btn--hover:hover + .llm__trigger-welcome > div + div {
1032
+ .llm .llm__trigger-btn--hover:hover + .llm__trigger-popup > div + div {
1023
1033
  opacity: 1;
1024
1034
  translate: -50% 0%;
1025
1035
  }
1026
1036
  }
1027
- .llm .llm__trigger-welcome > div {
1037
+ .llm .llm__trigger-popup > div {
1028
1038
  position: absolute;
1029
1039
  padding: clamp(16px, 16px + (100vw - 375px) / 1545 * 8, 24px);
1030
1040
  width: calc(100vw - 40px);
@@ -1034,23 +1044,24 @@ llm-embed {
1034
1044
  translate: -50% 0%;
1035
1045
  border-radius: 12px;
1036
1046
  text-align: center;
1037
- background: var(--llm-color-background);
1038
- color: var(--llm-color-foreground);
1047
+ background: var(--llm-popup-background);
1048
+ color: var(--llm-popup-foreground);
1049
+ border: var(--llm-popup-border, none);
1039
1050
  transition: 0.4s;
1040
1051
  pointer-events: auto;
1041
1052
  overflow: hidden;
1042
1053
  cursor: pointer;
1043
1054
  }
1044
- .llm .llm__trigger-welcome > div > span {
1055
+ .llm .llm__trigger-popup > div > span {
1045
1056
  position: relative;
1046
1057
  }
1047
- .llm .llm__trigger-welcome > div + div {
1058
+ .llm .llm__trigger-popup > div + div {
1048
1059
  width: calc(100vw - 40px);
1049
1060
  max-width: var(--llm-popup-max-width);
1050
1061
  translate: -50% 10%;
1051
1062
  opacity: 0;
1052
1063
  }
1053
- .llm .llm__trigger-welcome-cta {
1064
+ .llm .llm__trigger-cta {
1054
1065
  position: relative;
1055
1066
  display: block;
1056
1067
  margin: 12px auto 0 auto;
@@ -1303,7 +1314,7 @@ llm-embed {
1303
1314
  gap: clamp(8px, 8px + (100vw - 375px) / 1545 * 0, 8px);
1304
1315
  text-transform: uppercase;
1305
1316
  user-select: none;
1306
- color: var(--llm-color-foreground);
1317
+ color: var(--llm-color-title-foreground);
1307
1318
  pointer-events: auto;
1308
1319
  cursor: pointer;
1309
1320
  }
@@ -1379,6 +1390,7 @@ llm-embed {
1379
1390
  display: flex;
1380
1391
  flex-direction: column;
1381
1392
  gap: clamp(24px, 24px + (100vw - 375px) / 1545 * 16, 40px);
1393
+ color: var(--llm-color-title-foreground);
1382
1394
  }
1383
1395
  .llm .llm__intro-hints {
1384
1396
  margin-top: clamp(24px, 24px + (100vw - 375px) / 1545 * 16, 40px);
@@ -1444,11 +1456,14 @@ llm-embed {
1444
1456
  align-items: center;
1445
1457
  gap: clamp(8px, 8px + (100vw - 375px) / 1545 * 8, 16px);
1446
1458
  text-transform: uppercase;
1459
+ color: var(--llm-hint-title-color, inherit);
1447
1460
  }
1448
1461
  .llm .llm__hint-title i {
1462
+ flex-shrink: 0;
1449
1463
  display: block;
1450
- width: 18px;
1451
- height: 18px;
1464
+ width: var(--llm-hint-icon-width, 18px);
1465
+ height: var(--llm-hint-icon-height, 18px);
1466
+ color: var(--llm-hint-icon-color, inherit);
1452
1467
  }
1453
1468
  .llm .llm__hint-title i svg {
1454
1469
  fill: currentColor;
@@ -1461,7 +1476,7 @@ llm-embed {
1461
1476
  gap: clamp(8px, 8px + (100vw - 375px) / 1545 * 0, 8px);
1462
1477
  display: flex;
1463
1478
  flex-wrap: nowrap;
1464
- align-items: flex-end;
1479
+ align-items: center;
1465
1480
  }
1466
1481
  .llm .llm__prompt-input {
1467
1482
  position: relative;
@@ -1626,15 +1641,21 @@ llm-embed {
1626
1641
  justify-content: center;
1627
1642
  align-items: center;
1628
1643
  column-gap: 4px;
1629
- padding: 6px 0;
1630
1644
  right: 0;
1631
1645
  left: 0;
1632
- font-size: 12px;
1633
1646
  color: var(--llm-color-foreground);
1634
1647
  opacity: 0.4;
1635
1648
  transition: opacity ease-in-out 250ms;
1636
1649
  pointer-events: auto;
1637
1650
  cursor: pointer;
1651
+ padding: 4px 0 0 0;
1652
+ font-size: 11px;
1653
+ }
1654
+ @media (min-width: 1024px) {
1655
+ .llm .llm__prompt-powered-by {
1656
+ padding: 6px 0;
1657
+ font-size: 12px;
1658
+ }
1638
1659
  }
1639
1660
  .llm .llm__prompt-powered-by:hover {
1640
1661
  opacity: 1;
@@ -1647,8 +1668,9 @@ llm-embed {
1647
1668
  line-height: var(--llm-typography-body1-line-height);
1648
1669
  letter-spacing: var(--llm-typography-body1-letter-spacing);
1649
1670
  font-size: clamp(var(--llm-typography-body1-font-size-min) * 1px, var(--llm-typography-body1-font-size-min) * 1px + (100vw - 375px) / 1545 * (var(--llm-typography-body1-font-size-max) - var(--llm-typography-body1-font-size-min)), var(--llm-typography-body1-font-size-max) * 1px);
1650
- background: linear-gradient(rgba(154, 154, 154, 0.2) 10%, rgba(221, 221, 221, 0.1) 80%);
1651
- border: 1px solid rgba(237, 237, 237, 0.3);
1671
+ background: var(--llm-user-background);
1672
+ color: var(--llm-user-foreground);
1673
+ border: var(--llm-user-border);
1652
1674
  backdrop-filter: blur(20px);
1653
1675
  border-radius: 12px;
1654
1676
  padding: clamp(16px, 16px + (100vw - 375px) / 1545 * 8, 24px) clamp(24px, 24px + (100vw - 375px) / 1545 * 8, 32px);
@@ -1671,6 +1693,9 @@ llm-embed {
1671
1693
  }
1672
1694
  .llm .llm__message--assistant .llm__inner--string .llm__text .llm__text-body {
1673
1695
  font-family: var(--llm-font-primary);
1696
+ background: var(--llm-assistant-background);
1697
+ color: var(--llm-assistant-foreground);
1698
+ border: var(--llm-assistant-border);
1674
1699
  /*
1675
1700
  &,
1676
1701
  p {
@@ -1746,7 +1771,7 @@ llm-embed {
1746
1771
  }
1747
1772
  .llm .llm__message--assistant .llm__inner--string .llm__text .llm__text-body b,
1748
1773
  .llm .llm__message--assistant .llm__inner--string .llm__text .llm__text-body strong {
1749
- font-weight: 900;
1774
+ font-weight: var(--llm-typography-cta2-font-weight);
1750
1775
  }
1751
1776
  .llm .llm__message--assistant .llm__inner--string .llm__text .llm__text-body h1,
1752
1777
  .llm .llm__message--assistant .llm__inner--string .llm__text .llm__text-body h2,
@@ -1782,11 +1807,11 @@ llm-embed {
1782
1807
  .llm .llm__message--assistant .llm__inner--string .llm__text .llm__text-body blockquote {
1783
1808
  margin-bottom: var(--llm-markdown-margin-bottom);
1784
1809
  padding-left: 0.5em;
1785
- border-left: 4px solid rgba(255, 255, 255, 0.2);
1810
+ border-left: var(--llm-markdown-border);
1786
1811
  }
1787
1812
  .llm .llm__message--assistant .llm__inner--string .llm__text .llm__text-body hr {
1788
1813
  border: none;
1789
- border-top: 2px solid rgba(255, 255, 255, 0.2);
1814
+ border-top: var(--llm-markdown-border);
1790
1815
  margin-top: var(--llm-markdown-margin-top);
1791
1816
  margin-bottom: var(--llm-markdown-margin-bottom);
1792
1817
  }
@@ -1794,13 +1819,13 @@ llm-embed {
1794
1819
  text-decoration: underline;
1795
1820
  }
1796
1821
  .llm .llm__message--assistant .llm__inner--string .llm__text .llm__text-body a:link, .llm .llm__message--assistant .llm__inner--string .llm__text .llm__text-body a:active, .llm .llm__message--assistant .llm__inner--string .llm__text .llm__text-body a:visited, .llm .llm__message--assistant .llm__inner--string .llm__text .llm__text-body a:hover {
1797
- color: var(--llm-color-neutral-100);
1822
+ color: var(--llm-markdown-accent);
1798
1823
  }
1799
1824
  .llm .llm__message--assistant .llm__inner--string .llm__text .llm__text-body img {
1800
1825
  max-width: 320px;
1801
1826
  padding: 8px;
1802
1827
  border-radius: 8px;
1803
- border: var(--llm-pill-border);
1828
+ border: var(--llm-markdown-border);
1804
1829
  }
1805
1830
  .llm .llm__message--assistant .llm__inner--string .llm__text .llm__text-body .llm__text-img {
1806
1831
  display: block;
@@ -1831,6 +1856,7 @@ llm-embed {
1831
1856
  display: flex;
1832
1857
  gap: clamp(8px, 8px + (100vw - 375px) / 1545 * 8, 16px);
1833
1858
  padding-top: clamp(16px, 16px + (100vw - 375px) / 1545 * 8, 24px);
1859
+ color: var(--llm-color-foreground);
1834
1860
  }
1835
1861
  .llm .llm__text-disclaimer a {
1836
1862
  text-decoration: underline;
@@ -1840,6 +1866,7 @@ llm-embed {
1840
1866
  width: 18px;
1841
1867
  height: 18px;
1842
1868
  flex-shrink: 0;
1869
+ color: var(--llm-color-accent-foreground);
1843
1870
  }
1844
1871
  .llm .llm__text-disclaimer i svg {
1845
1872
  display: block;
@@ -2213,13 +2240,19 @@ llm-embed {
2213
2240
  .llm .llm__gridrow {
2214
2241
  --grid-columns: var(--llm-grid-columns, 12);
2215
2242
  --grid-size: var(--llm-grid-size, 1fr);
2216
- --grid-column-gap: var(--llm-grid-column-gap, 2rem);
2217
- --grid-row-gap: var(--llm-grid-row-gap, 2rem);
2243
+ --grid-column-gap: var(--llm-grid-column-gap, 1rem);
2244
+ --grid-row-gap: var(--llm-grid-row-gap, 1rem);
2218
2245
  display: grid;
2219
2246
  grid-template-columns: repeat(var(--grid-columns), var(--grid-size));
2220
2247
  grid-column-gap: var(--grid-column-gap);
2221
2248
  grid-row-gap: var(--grid-row-gap);
2222
2249
  }
2250
+ @media (min-width: 768px) {
2251
+ .llm .llm__gridrow {
2252
+ --grid-column-gap: var(--llm-grid-column-gap, 2rem);
2253
+ --grid-row-gap: var(--llm-grid-row-gap, 2rem);
2254
+ }
2255
+ }
2223
2256
  .llm .llm__grid {
2224
2257
  --grid-column: var(--llm-grid-columns, 12);
2225
2258
  grid-column: span var(--grid-column);
@@ -2236,6 +2269,30 @@ llm-embed {
2236
2269
  .llm .llm__grid.--xs-4 {
2237
2270
  --grid-column: 4;
2238
2271
  }
2272
+ .llm .llm__grid.--xs-5 {
2273
+ --grid-column: 5;
2274
+ }
2275
+ .llm .llm__grid.--xs-6 {
2276
+ --grid-column: 6;
2277
+ }
2278
+ .llm .llm__grid.--xs-7 {
2279
+ --grid-column: 7;
2280
+ }
2281
+ .llm .llm__grid.--xs-8 {
2282
+ --grid-column: 8;
2283
+ }
2284
+ .llm .llm__grid.--xs-9 {
2285
+ --grid-column: 9;
2286
+ }
2287
+ .llm .llm__grid.--xs-10 {
2288
+ --grid-column: 10;
2289
+ }
2290
+ .llm .llm__grid.--xs-11 {
2291
+ --grid-column: 11;
2292
+ }
2293
+ .llm .llm__grid.--xs-12 {
2294
+ --grid-column: 12;
2295
+ }
2239
2296
  @media (min-width: 768px) {
2240
2297
  .llm .llm__grid.--sm-1 {
2241
2298
  --grid-column: 1;
@@ -2256,6 +2313,46 @@ llm-embed {
2256
2313
  --grid-column: 4;
2257
2314
  }
2258
2315
  }
2316
+ @media (min-width: 768px) {
2317
+ .llm .llm__grid.--sm-5 {
2318
+ --grid-column: 5;
2319
+ }
2320
+ }
2321
+ @media (min-width: 768px) {
2322
+ .llm .llm__grid.--sm-6 {
2323
+ --grid-column: 6;
2324
+ }
2325
+ }
2326
+ @media (min-width: 768px) {
2327
+ .llm .llm__grid.--sm-7 {
2328
+ --grid-column: 7;
2329
+ }
2330
+ }
2331
+ @media (min-width: 768px) {
2332
+ .llm .llm__grid.--sm-8 {
2333
+ --grid-column: 8;
2334
+ }
2335
+ }
2336
+ @media (min-width: 768px) {
2337
+ .llm .llm__grid.--sm-9 {
2338
+ --grid-column: 9;
2339
+ }
2340
+ }
2341
+ @media (min-width: 768px) {
2342
+ .llm .llm__grid.--sm-10 {
2343
+ --grid-column: 10;
2344
+ }
2345
+ }
2346
+ @media (min-width: 768px) {
2347
+ .llm .llm__grid.--sm-11 {
2348
+ --grid-column: 11;
2349
+ }
2350
+ }
2351
+ @media (min-width: 768px) {
2352
+ .llm .llm__grid.--sm-12 {
2353
+ --grid-column: 12;
2354
+ }
2355
+ }
2259
2356
  @media (min-width: 1024px) {
2260
2357
  .llm .llm__grid.--md-1 {
2261
2358
  --grid-column: 1;
@@ -2449,6 +2546,9 @@ llm-embed {
2449
2546
  overflow: hidden;
2450
2547
  font-weight: 100;
2451
2548
  }
2549
+ .llm .llm__product:hover .llm__product-title {
2550
+ text-decoration: underline;
2551
+ }
2452
2552
  .llm .llm__product-media {
2453
2553
  position: relative;
2454
2554
  padding: 1rem;
@@ -2514,9 +2614,6 @@ llm-embed {
2514
2614
  -webkit-line-clamp: 2;
2515
2615
  -webkit-box-orient: vertical;
2516
2616
  }
2517
- .llm .llm__product-title:hover {
2518
- text-decoration: underline;
2519
- }
2520
2617
  .llm .llm__product-abstract {
2521
2618
  line-height: 1;
2522
2619
  font-family: var(--llm-font-secondary);
package/dist/umd/index.js CHANGED
@@ -17760,7 +17760,8 @@
17760
17760
 
17761
17761
  var font = {
17762
17762
  primary: "Aeonik, Arial, Helvetica, sans-serif",
17763
- secondary: "Capraia, Georgia, serif"
17763
+ secondary: "Capraia, Georgia, serif",
17764
+ source: "<link rel=\"stylesheet\" href=\"https://design.wslabs.it/llm/fonts/aeonik.css\"><link rel=\"stylesheet\" href=\"https://design.wslabs.it/llm/fonts/capraia.css\">"
17764
17765
  };
17765
17766
  var typography = {
17766
17767
  display1: {
@@ -17922,6 +17923,10 @@
17922
17923
  },
17923
17924
  background: "var(--llm-color-base-100)",
17924
17925
  foreground: "var(--llm-color-neutral-100)",
17926
+ title: {
17927
+ background: "var(--llm-color-background)",
17928
+ foreground: "var(--llm-color-foreground)"
17929
+ },
17925
17930
  primary: {
17926
17931
  background: "var(--llm-color-base-200)",
17927
17932
  foreground: "var(--llm-color-neutral-100)"
@@ -17948,13 +17953,16 @@
17948
17953
  foreground: "var(--llm-color-base-100)",
17949
17954
  boxShadow: "0 0 30px rgba(0, 0, 0, 0.3)"
17950
17955
  };
17956
+ var popup = {
17957
+ maxWidth: "210px",
17958
+ background: "var(--llm-color-title-background)",
17959
+ foreground: "var(--llm-color-title-foreground)",
17960
+ border: "none"
17961
+ };
17951
17962
  var triggerCta = {
17952
17963
  background: "var(--llm-color-neutral-100)",
17953
17964
  foreground: "var(--llm-color-base-100)"
17954
17965
  };
17955
- var popup = {
17956
- maxWidth: "210px"
17957
- };
17958
17966
  var hint = {
17959
17967
  fontFamily: "var(--llm-font-primary)",
17960
17968
  background: "linear-gradient(rgba(154, 154, 154, 0.2) 10%, rgba(221, 221, 221, 0.1) 80%)",
@@ -17962,10 +17970,18 @@
17962
17970
  border: "1px solid rgba(237, 237, 237, 0.3)",
17963
17971
  borderRadius: "12px"
17964
17972
  };
17973
+ var hintTitle = {
17974
+ color: "var(--llm-color-foreground)"
17975
+ };
17976
+ var hintIcon = {
17977
+ width: "18px",
17978
+ height: "18px",
17979
+ color: "var(--llm-color-foreground)"
17980
+ };
17965
17981
  var pill = {
17966
17982
  fontFamily: "var(--llm-font-primary)",
17967
17983
  background: "rgba(255, 255, 255, 0.2)",
17968
- foreground: "var(--llm-color-foreground)",
17984
+ foreground: "var(--llm-color-title-foreground)",
17969
17985
  border: "1px solid rgba(237, 237, 237, 0.3)",
17970
17986
  borderRadius: "5px"
17971
17987
  };
@@ -17978,6 +17994,23 @@
17978
17994
  var checkbox = {
17979
17995
  border: "2px solid var(--llm-color-neutral-100)"
17980
17996
  };
17997
+ var user = {
17998
+ background: "linear-gradient(rgba(154, 154, 154, 0.2) 10%, rgba(221, 221, 221, 0.1) 80%)",
17999
+ foreground: "var(--llm-color-title-foreground)",
18000
+ border: "1px solid rgba(237, 237, 237, 0.3)"
18001
+ };
18002
+ var assistant = {
18003
+ background: "none",
18004
+ foreground: "var(--llm-color-foreground)",
18005
+ border: "none"
18006
+ };
18007
+ var markdown = {
18008
+ marginTop: "0.5rem",
18009
+ marginBottom: "1rem",
18010
+ marginLeft: "1rem",
18011
+ accent: "var(--llm-color-foreground)",
18012
+ border: "1px solid rgba(237, 237, 237, 0.3)"
18013
+ };
17981
18014
  var card = {
17982
18015
  background: "var(--llm-color-neutral-100)",
17983
18016
  foreground: "var(--llm-color-neutral-900)",
@@ -17998,11 +18031,6 @@
17998
18031
  background: "var(--llm-color-neutral-100)",
17999
18032
  foreground: "var(--llm-color-neutral-900)"
18000
18033
  };
18001
- var markdown = {
18002
- marginTop: "0.5rem",
18003
- marginBottom: "1rem",
18004
- marginLeft: "1rem"
18005
- };
18006
18034
  var theme = {
18007
18035
  font: font,
18008
18036
  typography: typography,
@@ -18010,17 +18038,21 @@
18010
18038
  border: border,
18011
18039
  canvas: canvas,
18012
18040
  trigger: trigger$1,
18013
- triggerCta: triggerCta,
18014
18041
  popup: popup,
18042
+ triggerCta: triggerCta,
18015
18043
  hint: hint,
18044
+ hintTitle: hintTitle,
18045
+ hintIcon: hintIcon,
18016
18046
  pill: pill,
18017
18047
  input: input,
18018
18048
  checkbox: checkbox,
18049
+ user: user,
18050
+ assistant: assistant,
18051
+ markdown: markdown,
18019
18052
  card: card,
18020
18053
  cardVideo: cardVideo,
18021
18054
  product: product,
18022
- productLabel: productLabel,
18023
- markdown: markdown
18055
+ productLabel: productLabel
18024
18056
  };
18025
18057
 
18026
18058
  const defaultTheme = theme;
@@ -21169,6 +21201,46 @@ void main(void) {
21169
21201
  }, [canvasOffscreen, canvasRef, pixelRatio]);
21170
21202
  };
21171
21203
 
21204
+ /*
21205
+ <link href="https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap" rel="stylesheet">
21206
+ */
21207
+ const Font = () => {
21208
+ const app = useLlm(state => state.app);
21209
+ const theme = useLlm(state => state.theme);
21210
+ reactExports.useEffect(() => {
21211
+ if (app && isBrowser$1) {
21212
+ const head = document.querySelector('head');
21213
+ if (head) {
21214
+ const fontId = v4();
21215
+ const htmlText = theme.font.source || `
21216
+ <link rel="stylesheet" href="https://design.wslabs.it/llm/fonts/aeonik.css">
21217
+ <link rel="stylesheet" href="https://design.wslabs.it/llm/fonts/capraia.css">
21218
+ `;
21219
+ const parser = new DOMParser();
21220
+ const parsedDocument = parser.parseFromString(htmlText, 'text/html');
21221
+ const nodes = Array.from(parsedDocument.querySelectorAll('head>*'));
21222
+ const selector = `llm-font-${fontId}`;
21223
+ nodes.forEach(node => {
21224
+ node.classList.add(selector);
21225
+ head.appendChild(node);
21226
+ console.log('[mixer-llm] added font node', node);
21227
+ });
21228
+ return () => {
21229
+ const addedNodes = Array.from(document.querySelectorAll(`.${selector}`));
21230
+ addedNodes.forEach(node => {
21231
+ if (node.parentNode) {
21232
+ node.parentNode.removeChild(node);
21233
+ console.log('[mixer-llm] removed font node', node);
21234
+ }
21235
+ });
21236
+ };
21237
+ }
21238
+ }
21239
+ return () => {};
21240
+ }, [app]);
21241
+ return /*#__PURE__*/jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, {});
21242
+ };
21243
+
21172
21244
  function Canvas() {
21173
21245
  const ref = reactExports.useRef(null);
21174
21246
  useCanvasOffscreen(ref);
@@ -27298,7 +27370,7 @@ void main(void) {
27298
27370
  })
27299
27371
  }), /*#__PURE__*/jsxRuntimeExports.jsx(motion.div, {
27300
27372
  variants: motionItem,
27301
- className: "llm__intro-title -llm-t-display-3",
27373
+ className: "llm__intro-title -llm-t-display-2",
27302
27374
  children: app?.contents.extendedWelcomeText
27303
27375
  })]
27304
27376
  }), /*#__PURE__*/jsxRuntimeExports.jsx(motion.div, {
@@ -32562,7 +32634,14 @@ void main(void) {
32562
32634
  } = _ref;
32563
32635
  // const label = useLabel();
32564
32636
  const classNames = getClassNames('llm__product', `llm__product--${props.productType}`);
32565
- return /*#__PURE__*/jsxRuntimeExports.jsx("div", {
32637
+ return props.url ? /*#__PURE__*/jsxRuntimeExports.jsx("a", {
32638
+ className: classNames,
32639
+ href: props.url,
32640
+ target: "_blank",
32641
+ rel: "noreferrer",
32642
+ "aria-label": props.title,
32643
+ children: children
32644
+ }) : /*#__PURE__*/jsxRuntimeExports.jsx("div", {
32566
32645
  className: classNames,
32567
32646
  children: children
32568
32647
  });
@@ -32581,12 +32660,8 @@ void main(void) {
32581
32660
  const labelKey = props.label ? `-${bundle_umd_minExports.slugify(props.label)}` : '';
32582
32661
  return /*#__PURE__*/jsxRuntimeExports.jsxs(ProductWrapper, {
32583
32662
  ...props,
32584
- children: [props.media.type === 'image' && props.url && /*#__PURE__*/jsxRuntimeExports.jsxs("a", {
32663
+ children: [props.media.type === 'image' && /*#__PURE__*/jsxRuntimeExports.jsxs("div", {
32585
32664
  className: "llm__product-media",
32586
- href: props.url,
32587
- target: "_blank",
32588
- rel: "noreferrer",
32589
- "aria-label": label('llm.tellMeMore'),
32590
32665
  children: [/*#__PURE__*/jsxRuntimeExports.jsx("div", {
32591
32666
  className: "llm__product-asset",
32592
32667
  children: /*#__PURE__*/jsxRuntimeExports.jsx("img", {
@@ -32601,18 +32676,6 @@ void main(void) {
32601
32676
  },
32602
32677
  children: props.label
32603
32678
  })]
32604
- }), props.media.type === 'image' && !props.url && /*#__PURE__*/jsxRuntimeExports.jsxs("div", {
32605
- className: "llm__product-media",
32606
- children: [/*#__PURE__*/jsxRuntimeExports.jsx("div", {
32607
- className: "llm__product-asset",
32608
- children: /*#__PURE__*/jsxRuntimeExports.jsx("img", {
32609
- src: props.media.src,
32610
- alt: props.title
32611
- })
32612
- }), props.label && /*#__PURE__*/jsxRuntimeExports.jsx("div", {
32613
- className: "llm__product-label",
32614
- children: props.label
32615
- })]
32616
32679
  }), /*#__PURE__*/jsxRuntimeExports.jsxs("div", {
32617
32680
  className: "llm__product-content",
32618
32681
  children: [props.sku && /*#__PURE__*/jsxRuntimeExports.jsx("div", {
@@ -32620,15 +32683,7 @@ void main(void) {
32620
32683
  children: props.sku
32621
32684
  }), /*#__PURE__*/jsxRuntimeExports.jsxs("div", {
32622
32685
  className: "llm__product-grow",
32623
- children: [props.title && props.url && /*#__PURE__*/jsxRuntimeExports.jsx("a", {
32624
- className: "llm__product-title",
32625
- href: props.url,
32626
- target: "_blank",
32627
- rel: "noreferrer",
32628
- dangerouslySetInnerHTML: {
32629
- __html: props.title
32630
- }
32631
- }), props.title && !props.url && /*#__PURE__*/jsxRuntimeExports.jsx("div", {
32686
+ children: [props.title && /*#__PURE__*/jsxRuntimeExports.jsx("div", {
32632
32687
  className: "llm__product-title",
32633
32688
  dangerouslySetInnerHTML: {
32634
32689
  __html: props.title
@@ -32656,11 +32711,8 @@ void main(void) {
32656
32711
  }) : /*#__PURE__*/jsxRuntimeExports.jsx("div", {
32657
32712
  className: "llm__product-soldout",
32658
32713
  children: label('llm.soldOut')
32659
- })), props.cta && props.url && /*#__PURE__*/jsxRuntimeExports.jsxs("a", {
32714
+ })), props.cta && /*#__PURE__*/jsxRuntimeExports.jsxs("div", {
32660
32715
  className: "llm__product-cta",
32661
- href: props.url,
32662
- target: "_blank",
32663
- rel: "noreferrer",
32664
32716
  children: [/*#__PURE__*/jsxRuntimeExports.jsx("span", {
32665
32717
  children: props.cta
32666
32718
  }), " ", /*#__PURE__*/jsxRuntimeExports.jsx(IconLlmChevronRightCircle, {})]
@@ -32696,7 +32748,7 @@ void main(void) {
32696
32748
  children: /*#__PURE__*/jsxRuntimeExports.jsx(GridRow, {
32697
32749
  rowGap: "2rem",
32698
32750
  children: props.items.map((item, i) => /*#__PURE__*/jsxRuntimeExports.jsx(Grid, {
32699
- sm: 6,
32751
+ xs: 6,
32700
32752
  md: 4,
32701
32753
  lg: 3,
32702
32754
  children: /*#__PURE__*/jsxRuntimeExports.jsx(Product, {
@@ -33080,7 +33132,7 @@ void main(void) {
33080
33132
  children: label('llm.button')
33081
33133
  })]
33082
33134
  }), !opened && /*#__PURE__*/jsxRuntimeExports.jsxs("div", {
33083
- className: "llm__trigger-welcome -llm-t-body-2",
33135
+ className: "llm__trigger-popup -llm-t-body-2",
33084
33136
  children: [/*#__PURE__*/jsxRuntimeExports.jsxs(motion.div, {
33085
33137
  exit: {
33086
33138
  opacity: 0
@@ -33089,7 +33141,7 @@ void main(void) {
33089
33141
  text: app?.contents.collapsedWelcomeText
33090
33142
  }), app?.contents.collapsedWelcomeTextCta && /*#__PURE__*/jsxRuntimeExports.jsx("button", {
33091
33143
  type: "button",
33092
- className: "llm__trigger-welcome-cta",
33144
+ className: "llm__trigger-cta",
33093
33145
  children: app?.contents.collapsedWelcomeTextCta
33094
33146
  })]
33095
33147
  }), app?.contents.collapsedWelcomeTextHover && /*#__PURE__*/jsxRuntimeExports.jsxs(motion.div, {
@@ -33152,8 +33204,8 @@ void main(void) {
33152
33204
  });
33153
33205
  if (mounted) {
33154
33206
  return /*#__PURE__*/jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, {
33155
- children: app && /*#__PURE__*/jsxRuntimeExports.jsx(CanvasOffscreenProvider, {
33156
- children: /*#__PURE__*/jsxRuntimeExports.jsxs("div", {
33207
+ children: app && /*#__PURE__*/jsxRuntimeExports.jsxs(CanvasOffscreenProvider, {
33208
+ children: [/*#__PURE__*/jsxRuntimeExports.jsx(Font, {}), /*#__PURE__*/jsxRuntimeExports.jsxs("div", {
33157
33209
  ref: innerRef,
33158
33210
  className: classNames,
33159
33211
  ...props,
@@ -33166,7 +33218,7 @@ void main(void) {
33166
33218
  initial: false,
33167
33219
  children: shouldShowTrigger && /*#__PURE__*/jsxRuntimeExports.jsx(Trigger, {}, "trigger")
33168
33220
  })]
33169
- })
33221
+ })]
33170
33222
  })
33171
33223
  });
33172
33224
  } else {