@hgdc/ui 0.42.0 → 0.43.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.
@@ -15,7 +15,7 @@ export declare const APP_ORIGIN = "https://app.hgdc.ch";
15
15
  * console seule, `status.hgdc.ch` garde les pages publiques et la console de secours. Vérifiée contre
16
16
  * le manifeste privé de la famille (`famille check`) : un produit relayé s'ajoute ici et là.
17
17
  */
18
- export declare const APP_PRODUCTS: readonly ["analytics", "mail", "host", "docs", "status"];
18
+ export declare const APP_PRODUCTS: readonly ["analytics", "mail", "host", "docs", "status", "iassistant"];
19
19
  /** Vrai si le produit est servi sous `app.hgdc.ch`. */
20
20
  export declare function isAppProduct(product: string): boolean;
21
21
  /**
package/dist/addresses.js CHANGED
@@ -15,7 +15,7 @@ export const APP_ORIGIN = "https://app.hgdc.ch";
15
15
  * console seule, `status.hgdc.ch` garde les pages publiques et la console de secours. Vérifiée contre
16
16
  * le manifeste privé de la famille (`famille check`) : un produit relayé s'ajoute ici et là.
17
17
  */
18
- export const APP_PRODUCTS = ["analytics", "mail", "host", "docs", "status"];
18
+ export const APP_PRODUCTS = ["analytics", "mail", "host", "docs", "status", "iassistant"];
19
19
  /** Vrai si le produit est servi sous `app.hgdc.ch`. */
20
20
  export function isAppProduct(product) {
21
21
  return APP_PRODUCTS.includes(product.toLowerCase());
@@ -1,5 +1,5 @@
1
1
  /** Les produits de la H Collection qui ont une icône, par leur mot en minuscules. */
2
- export declare const FAMILY_PRODUCTS: readonly ["account", "host", "mail", "portal", "status", "analytics", "docs"];
2
+ export declare const FAMILY_PRODUCTS: readonly ["account", "host", "mail", "portal", "status", "analytics", "docs", "iassistant"];
3
3
  export type FamilyProduct = (typeof FAMILY_PRODUCTS)[number];
4
4
  /** Vrai si le mot en minuscules (« host ») désigne un produit qui a une icône. */
5
5
  export declare function isFamilyProduct(word: string): word is FamilyProduct;
@@ -1,6 +1,15 @@
1
1
  // Généré par `bun scripts/family.ts` depuis `packages/ui/family/`. Ne pas modifier à la main.
2
2
  /** Les produits de la H Collection qui ont une icône, par leur mot en minuscules. */
3
- export const FAMILY_PRODUCTS = ["account", "host", "mail", "portal", "status", "analytics", "docs"];
3
+ export const FAMILY_PRODUCTS = [
4
+ "account",
5
+ "host",
6
+ "mail",
7
+ "portal",
8
+ "status",
9
+ "analytics",
10
+ "docs",
11
+ "iassistant",
12
+ ];
4
13
  /** Vrai si le mot en minuscules (« host ») désigne un produit qui a une icône. */
5
14
  export function isFamilyProduct(word) {
6
15
  return FAMILY_PRODUCTS.includes(word);
@@ -17,6 +26,7 @@ export const PRODUCT_BADGE_SVG = {
17
26
  status: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64"><svg x="0" y="0" width="64" height="64" viewBox="14 14 36 36"><defs><linearGradient id="g" x1="14" y1="14" x2="50" y2="50" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#11ce8b"/><stop offset="1" stop-color="#09b077"/></linearGradient></defs><path d="M14 32A18 18 0 1 0 50 32A18 18 0 1 0 14 32Z" fill="url(#g)" fill-opacity="0.22" fill-rule="evenodd"/><path d="M19.5 32A12.5 12.5 0 1 0 44.5 32A12.5 12.5 0 1 0 19.5 32Z" fill="url(#g)" fill-opacity="0.45" fill-rule="evenodd"/><path d="M25 32A7 7 0 1 0 39 32A7 7 0 1 0 25 32Z" fill="url(#g)" fill-rule="evenodd"/></svg></svg>',
18
27
  analytics: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64"><svg x="0" y="0" width="64" height="64" viewBox="15 15 34 34"><defs><linearGradient id="g" x1="14" y1="14" x2="50" y2="50" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffb020"/><stop offset="1" stop-color="#e58309"/></linearGradient></defs><path d="M18.3 34H21.7A2.8 2.8 0 0 1 24.5 36.8V46.2A2.8 2.8 0 0 1 21.7 49H18.3A2.8 2.8 0 0 1 15.5 46.2V36.8A2.8 2.8 0 0 1 18.3 34Z" fill="url(#g)" fill-opacity="0.4" fill-rule="evenodd"/><path d="M30.3 25H33.7A2.8 2.8 0 0 1 36.5 27.8V46.2A2.8 2.8 0 0 1 33.7 49H30.3A2.8 2.8 0 0 1 27.5 46.2V27.8A2.8 2.8 0 0 1 30.3 25Z" fill="url(#g)" fill-opacity="0.7" fill-rule="evenodd"/><path d="M42.3 15H45.7A2.8 2.8 0 0 1 48.5 17.8V46.2A2.8 2.8 0 0 1 45.7 49H42.3A2.8 2.8 0 0 1 39.5 46.2V17.8A2.8 2.8 0 0 1 42.3 15Z" fill="url(#g)" fill-rule="evenodd"/></svg></svg>',
19
28
  docs: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64"><svg x="0" y="0" width="64" height="64" viewBox="14 13 36 36"><defs><linearGradient id="g" x1="14" y1="14" x2="50" y2="50" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#0ec1dc"/><stop offset="1" stop-color="#0aa3c1"/></linearGradient></defs><path d="M26 13H46A3 3 0 0 1 49 16V43A3 3 0 0 1 46 46H26A3 3 0 0 1 23 43V16A3 3 0 0 1 26 13Z" fill="url(#g)" fill-opacity="0.22" fill-rule="evenodd"/><path d="M18 18H32V24.5A2.5 2.5 0 0 0 34.5 27H41V46A3 3 0 0 1 38 49H18A3 3 0 0 1 15 46V21A3 3 0 0 1 18 18ZM21.3 33H34.7A1.3 1.3 0 0 1 36 34.3V34.300000000000004A1.3 1.3 0 0 1 34.7 35.6H21.3A1.3 1.3 0 0 1 20 34.300000000000004V34.3A1.3 1.3 0 0 1 21.3 33ZM21.3 39H29.7A1.3 1.3 0 0 1 31 40.3V40.300000000000004A1.3 1.3 0 0 1 29.7 41.6H21.3A1.3 1.3 0 0 1 20 40.300000000000004V40.3A1.3 1.3 0 0 1 21.3 39Z" fill="url(#g)" fill-rule="evenodd"/><path d="M32 18L41 27H34.5A2.5 2.5 0 0 1 32 24.5Z" fill="url(#g)" fill-opacity="0.45" fill-rule="evenodd"/></svg></svg>',
29
+ iassistant: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64"><svg x="0" y="0" width="64" height="64" viewBox="16 18 34 34"><defs><linearGradient id="g" x1="14" y1="14" x2="50" y2="50" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#d946ef"/><stop offset="1" stop-color="#c026d3"/></linearGradient></defs><path d="M24 18H38A6 6 0 0 1 44 24V32A6 6 0 0 1 38 38H27L21 43V37.2A6 6 0 0 1 18 32V24A6 6 0 0 1 24 18Z" fill="url(#g)" fill-opacity="0.4" fill-rule="evenodd"/><path d="M29 27H43A6 6 0 0 1 49 33V41A6 6 0 0 1 43 47V51.5L37.5 47H29A6 6 0 0 1 23 41V33A6 6 0 0 1 29 27ZM28.1 37A1.9 1.9 0 1 0 31.9 37A1.9 1.9 0 1 0 28.1 37ZM34.1 37A1.9 1.9 0 1 0 37.9 37A1.9 1.9 0 1 0 34.1 37ZM40.1 37A1.9 1.9 0 1 0 43.9 37A1.9 1.9 0 1 0 40.1 37Z" fill="url(#g)" fill-rule="evenodd"/></svg></svg>',
20
30
  };
21
31
  /**
22
32
  * Empreinte de chaque icône d'e-mail (`email-icons/<mot>.png`), ajoutée à son adresse : un client
@@ -30,6 +40,7 @@ export const EMAIL_ICON_VERSION = {
30
40
  status: "90f70c05",
31
41
  analytics: "83add9fb",
32
42
  docs: "77f11f0b",
43
+ iassistant: "2b9ed0e0",
33
44
  };
34
45
  /** SVG du H « Double », la marque de la H Collection, sans fond (`family/hcollection-icon(-dark).svg`). */
35
46
  export const FAMILY_MARK_SVG = {
@@ -14,6 +14,7 @@ export const PRODUCT_GRADIENT = {
14
14
  status: { from: "#11ce8b", to: "#09b077" },
15
15
  analytics: { from: "#ffb020", to: "#e58309" },
16
16
  docs: { from: "#0ec1dc", to: "#0aa3c1" },
17
+ iassistant: { from: "#d946ef", to: "#c026d3" },
17
18
  };
18
19
  // En image plutôt qu'en SVG en ligne : chaque icône garde ses identifiants de dégradé pour elle,
19
20
  // plusieurs icônes dans une même page ne se marchent pas dessus.
package/dist/products.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import Activity01Icon from "@hugeicons/core-free-icons/Activity01Icon";
2
2
  import Analytics01Icon from "@hugeicons/core-free-icons/Analytics01Icon";
3
3
  import BookOpen01Icon from "@hugeicons/core-free-icons/BookOpen01Icon";
4
+ import BubbleChatIcon from "@hugeicons/core-free-icons/BubbleChatIcon";
4
5
  import Briefcase01Icon from "@hugeicons/core-free-icons/Briefcase01Icon";
5
6
  import Mail01Icon from "@hugeicons/core-free-icons/Mail01Icon";
6
7
  import Rocket01Icon from "@hugeicons/core-free-icons/Rocket01Icon";
@@ -73,6 +74,7 @@ export const HGDC_PRODUCTS = [
73
74
  product("Status", "La surveillance de tes sites et ta page de statut.", Activity01Icon, "live"),
74
75
  product("Analytics", "Tes visiteurs mesurés, sans cookies ni bannière.", Analytics01Icon, "live"),
75
76
  product("Docs", "Ta documentation en ligne, avec un assistant qui y répond.", BookOpen01Icon, "live"),
77
+ product("IAssistant", "Une bulle de chat IA sur ton site, qui répond à tes visiteurs.", BubbleChatIcon, "soon"),
76
78
  ];
77
79
  /** Vrai si le produit répond déjà (en service ou en préversion). */
78
80
  export function isProductOpen(item) {
Binary file
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64"><style>.d{display:none}@media (prefers-color-scheme:dark){.l{display:none}.d{display:inline}}</style><g class="l"><svg x="2.56" y="2.56" width="58.88" height="58.88" viewBox="16 18 34 34"><defs><linearGradient id="lg" x1="14" y1="14" x2="50" y2="50" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#d946ef"/><stop offset="1" stop-color="#c026d3"/></linearGradient></defs><path d="M24 18H38A6 6 0 0 1 44 24V32A6 6 0 0 1 38 38H27L21 43V37.2A6 6 0 0 1 18 32V24A6 6 0 0 1 24 18Z" fill="url(#lg)" fill-opacity="0.4" fill-rule="evenodd"/><path d="M29 27H43A6 6 0 0 1 49 33V41A6 6 0 0 1 43 47V51.5L37.5 47H29A6 6 0 0 1 23 41V33A6 6 0 0 1 29 27ZM28.1 37A1.9 1.9 0 1 0 31.9 37A1.9 1.9 0 1 0 28.1 37ZM34.1 37A1.9 1.9 0 1 0 37.9 37A1.9 1.9 0 1 0 34.1 37ZM40.1 37A1.9 1.9 0 1 0 43.9 37A1.9 1.9 0 1 0 40.1 37Z" fill="url(#lg)" fill-rule="evenodd"/></svg></g><g class="d"><svg x="2.56" y="2.56" width="58.88" height="58.88" viewBox="16 18 34 34"><defs><linearGradient id="dg" x1="14" y1="14" x2="50" y2="50" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ef8cfb"/><stop offset="1" stop-color="#d946ef"/></linearGradient></defs><path d="M24 18H38A6 6 0 0 1 44 24V32A6 6 0 0 1 38 38H27L21 43V37.2A6 6 0 0 1 18 32V24A6 6 0 0 1 24 18Z" fill="url(#dg)" fill-opacity="0.61" fill-rule="evenodd"/><path d="M29 27H43A6 6 0 0 1 49 33V41A6 6 0 0 1 43 47V51.5L37.5 47H29A6 6 0 0 1 23 41V33A6 6 0 0 1 29 27ZM28.1 37A1.9 1.9 0 1 0 31.9 37A1.9 1.9 0 1 0 28.1 37ZM34.1 37A1.9 1.9 0 1 0 37.9 37A1.9 1.9 0 1 0 34.1 37ZM40.1 37A1.9 1.9 0 1 0 43.9 37A1.9 1.9 0 1 0 40.1 37Z" fill="url(#dg)" fill-rule="evenodd"/></svg></g></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="12.5 14 42 42"><defs><linearGradient id="g" x1="14" y1="14" x2="50" y2="50" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ef8cfb"/><stop offset="1" stop-color="#d946ef"/></linearGradient></defs><path d="M24 18H38A6 6 0 0 1 44 24V32A6 6 0 0 1 38 38H27L21 43V37.2A6 6 0 0 1 18 32V24A6 6 0 0 1 24 18Z" fill="url(#g)" fill-opacity="0.61" fill-rule="evenodd"/><path d="M29 27H43A6 6 0 0 1 49 33V41A6 6 0 0 1 43 47V51.5L37.5 47H29A6 6 0 0 1 23 41V33A6 6 0 0 1 29 27ZM28.1 37A1.9 1.9 0 1 0 31.9 37A1.9 1.9 0 1 0 28.1 37ZM34.1 37A1.9 1.9 0 1 0 37.9 37A1.9 1.9 0 1 0 34.1 37ZM40.1 37A1.9 1.9 0 1 0 43.9 37A1.9 1.9 0 1 0 40.1 37Z" fill="url(#g)" fill-rule="evenodd"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="12.5 14 42 42"><defs><linearGradient id="g" x1="14" y1="14" x2="50" y2="50" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#d946ef"/><stop offset="1" stop-color="#c026d3"/></linearGradient></defs><path d="M24 18H38A6 6 0 0 1 44 24V32A6 6 0 0 1 38 38H27L21 43V37.2A6 6 0 0 1 18 32V24A6 6 0 0 1 24 18Z" fill="url(#g)" fill-opacity="0.4" fill-rule="evenodd"/><path d="M29 27H43A6 6 0 0 1 49 33V41A6 6 0 0 1 43 47V51.5L37.5 47H29A6 6 0 0 1 23 41V33A6 6 0 0 1 29 27ZM28.1 37A1.9 1.9 0 1 0 31.9 37A1.9 1.9 0 1 0 28.1 37ZM34.1 37A1.9 1.9 0 1 0 37.9 37A1.9 1.9 0 1 0 34.1 37ZM40.1 37A1.9 1.9 0 1 0 43.9 37A1.9 1.9 0 1 0 40.1 37Z" fill="url(#g)" fill-rule="evenodd"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64"><svg x="0" y="0" width="64" height="64" viewBox="16 18 34 34"><defs><linearGradient id="g" x1="14" y1="14" x2="50" y2="50" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#d946ef"/><stop offset="1" stop-color="#c026d3"/></linearGradient></defs><path d="M24 18H38A6 6 0 0 1 44 24V32A6 6 0 0 1 38 38H27L21 43V37.2A6 6 0 0 1 18 32V24A6 6 0 0 1 24 18Z" fill="url(#g)" fill-opacity="0.4" fill-rule="evenodd"/><path d="M29 27H43A6 6 0 0 1 49 33V41A6 6 0 0 1 43 47V51.5L37.5 47H29A6 6 0 0 1 23 41V33A6 6 0 0 1 29 27ZM28.1 37A1.9 1.9 0 1 0 31.9 37A1.9 1.9 0 1 0 28.1 37ZM34.1 37A1.9 1.9 0 1 0 37.9 37A1.9 1.9 0 1 0 34.1 37ZM40.1 37A1.9 1.9 0 1 0 43.9 37A1.9 1.9 0 1 0 40.1 37Z" fill="url(#g)" fill-rule="evenodd"/></svg></svg>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hgdc/ui",
3
- "version": "0.42.0",
3
+ "version": "0.43.0",
4
4
  "description": "Interface de la H Collection : jetons de la DA, thèmes, polices et composants.",
5
5
  "license": "UNLICENSED",
6
6
  "homepage": "https://github.com/hugogebel-boop/hgdc-kit/tree/main/packages/ui#readme",
package/styles.css CHANGED
@@ -295,6 +295,8 @@
295
295
  --product-analytics-to: #e58309;
296
296
  --product-docs-from: #0ec1dc;
297
297
  --product-docs-to: #0aa3c1;
298
+ --product-iassistant-from: #d946ef;
299
+ --product-iassistant-to: #c026d3;
298
300
  --glow-blue: #2c78fd;
299
301
  --glow-violet: #7343fe;
300
302
  --glow-pink: #fe5292;
@@ -859,7 +861,8 @@
859
861
  :root[data-hgdc-product="portal"] [data-slot="shell-frame"] [data-product="portal"],
860
862
  :root[data-hgdc-product="status"] [data-slot="shell-frame"] [data-product="status"],
861
863
  :root[data-hgdc-product="analytics"] [data-slot="shell-frame"] [data-product="analytics"],
862
- :root[data-hgdc-product="docs"] [data-slot="shell-frame"] [data-product="docs"] {
864
+ :root[data-hgdc-product="docs"] [data-slot="shell-frame"] [data-product="docs"],
865
+ :root[data-hgdc-product="iassistant"] [data-slot="shell-frame"] [data-product="iassistant"] {
863
866
  display: contents;
864
867
  }
865
868
  :root[data-hgdc-product="account"] [data-slot="shell-frame-rail"] [data-product="account"],
@@ -868,7 +871,8 @@
868
871
  :root[data-hgdc-product="portal"] [data-slot="shell-frame-rail"] [data-product="portal"],
869
872
  :root[data-hgdc-product="status"] [data-slot="shell-frame-rail"] [data-product="status"],
870
873
  :root[data-hgdc-product="analytics"] [data-slot="shell-frame-rail"] [data-product="analytics"],
871
- :root[data-hgdc-product="docs"] [data-slot="shell-frame-rail"] [data-product="docs"] {
874
+ :root[data-hgdc-product="docs"] [data-slot="shell-frame-rail"] [data-product="docs"],
875
+ :root[data-hgdc-product="iassistant"] [data-slot="shell-frame-rail"] [data-product="iassistant"] {
872
876
  display: flex;
873
877
  background: var(--shell-active);
874
878
  color: var(--shell-foreground);