@supersoniks/concorde 5.0.3 → 5.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/.github/workflows/ci.yml +21 -0
  2. package/.github-export-ignore +30 -0
  3. package/CONTRIBUTING.md +59 -0
  4. package/DEV.md +54 -0
  5. package/LICENSE +21 -0
  6. package/OPEN_SOURCE_CHECKPOINT.md +133 -0
  7. package/build-infos.json +1 -1
  8. package/concorde-core.bundle.js +66 -66
  9. package/concorde-core.es.js +1368 -1318
  10. package/dist/concorde-core.bundle.js +66 -66
  11. package/dist/concorde-core.es.js +1368 -1318
  12. package/docs/assets/{index-BnK6OS7w.js → index-D8MVWqY6.js} +1144 -1008
  13. package/docs/assets/index-DiD0qYvE.css +1 -0
  14. package/docs/crawl/core/components/ui/alert/alert.html +71 -101
  15. package/docs/crawl/core/components/ui/badge/badge.html +77 -106
  16. package/docs/crawl/core/components/ui/button/button.html +0 -1
  17. package/docs/crawl/core/components/ui/card/card.html +68 -112
  18. package/docs/crawl/core/components/ui/form/input/input.html +3 -3
  19. package/docs/crawl/core/components/ui/form/textarea/textarea.html +3 -3
  20. package/docs/crawl/core/components/ui/image/image.html +56 -132
  21. package/docs/crawl/core/components/ui/link/link.html +4 -4
  22. package/docs/crawl/core/components/ui/pop/pop.html +3 -79
  23. package/docs/crawl/docs/_getting-started/concorde-outside.html +3 -3
  24. package/docs/crawl/hubs/form-components.html +4 -4
  25. package/docs/index.html +5 -5
  26. package/docs/llms-full.txt +97 -281
  27. package/docs/llms.txt +8 -8
  28. package/docs/src/core/components/functional/fetch/fetch.md +0 -0
  29. package/docs/src/core/components/functional/if/if.md +0 -0
  30. package/docs/src/core/components/functional/list/list.md +0 -0
  31. package/docs/src/core/components/functional/router/router.md +0 -0
  32. package/docs/src/core/components/functional/sdui/sdui.md +0 -0
  33. package/docs/src/core/components/functional/states/states.md +0 -0
  34. package/docs/src/core/components/functional/submit/submit.md +0 -0
  35. package/docs/src/core/components/ui/alert/alert.md +72 -128
  36. package/docs/src/core/components/ui/badge/badge.md +78 -126
  37. package/docs/src/core/components/ui/button/button.md +0 -1
  38. package/docs/src/core/components/ui/captcha/captcha.md +0 -0
  39. package/docs/src/core/components/ui/card/card.md +65 -120
  40. package/docs/src/core/components/ui/form/input/input.md +1 -1
  41. package/docs/src/core/components/ui/form/radio/radio.md +0 -0
  42. package/docs/src/core/components/ui/form/select/select.md +0 -0
  43. package/docs/src/core/components/ui/form/switch/switch.md +0 -0
  44. package/docs/src/core/components/ui/form/textarea/textarea.md +1 -1
  45. package/docs/src/core/components/ui/image/image.md +53 -147
  46. package/docs/src/core/components/ui/link/link.md +2 -2
  47. package/docs/src/core/components/ui/loader/loader.md +0 -0
  48. package/docs/src/core/components/ui/menu/menu.md +0 -0
  49. package/docs/src/core/components/ui/modal/modal.md +0 -0
  50. package/docs/src/core/components/ui/pop/pop.md +1 -105
  51. package/docs/src/core/components/ui/table/table.md +0 -0
  52. package/docs/src/docs/_core-concept/subscriber.md +0 -0
  53. package/docs/src/docs/_getting-started/concorde-outside.md +3 -3
  54. package/docs/src/docs/_getting-started/my-first-subscriber.md +0 -0
  55. package/docs/src/docs/_getting-started/pubsub.md +0 -0
  56. package/docs/src/docs/_getting-started/start.md +0 -0
  57. package/docs/src/docs/search/docs-search.json +25 -655
  58. package/docs/src/tsconfig.declarations.json +22 -0
  59. package/docs/src/tsconfig.emit.json +23 -0
  60. package/docs/src/tsconfig.json +3 -45
  61. package/gitlab/job_github_mirror.sh +39 -0
  62. package/gitlab/job_tests.sh +0 -0
  63. package/package.json +1 -1
  64. package/scripts/github-export.mjs +150 -0
  65. package/scripts/post-build-docs.js +0 -0
  66. package/scripts/post-build.mjs +0 -0
  67. package/src/core/components/functional/fetch/fetch.md +0 -0
  68. package/src/core/components/functional/if/if.md +0 -0
  69. package/src/core/components/functional/list/list.demo.ts +0 -0
  70. package/src/core/components/functional/list/list.md +0 -0
  71. package/src/core/components/functional/router/router.md +0 -0
  72. package/src/core/components/functional/router/router.ts +0 -0
  73. package/src/core/components/functional/sdui/sdui.md +0 -0
  74. package/src/core/components/functional/states/states.md +0 -0
  75. package/src/core/components/functional/submit/submit.md +0 -0
  76. package/src/core/components/functional/subscriber/subscriber.ts +0 -0
  77. package/src/core/components/ui/_css/size.ts +0 -0
  78. package/src/core/components/ui/captcha/altchaStyles.ts +0 -0
  79. package/src/core/components/ui/captcha/captcha.md +0 -0
  80. package/src/core/components/ui/form/radio/radio.md +0 -0
  81. package/src/core/components/ui/form/select/select.md +0 -0
  82. package/src/core/components/ui/form/switch/switch.md +0 -0
  83. package/src/core/components/ui/loader/loader.md +0 -0
  84. package/src/core/components/ui/menu/menu.md +0 -0
  85. package/src/core/components/ui/modal/modal.md +0 -0
  86. package/src/core/components/ui/table/table-caption.ts +0 -0
  87. package/src/core/components/ui/table/table.md +0 -0
  88. package/src/core/decorators/subscriber/ancestorAttribute.spec.ts +26 -0
  89. package/src/core/decorators/subscriber/ancestorAttribute.ts +3 -4
  90. package/src/core/mixins/Subscriber.ts +0 -0
  91. package/src/core/utils/AncestorAttributeObserver.ts +183 -70
  92. package/src/core/utils/DataBindObserver.ts +0 -0
  93. package/src/core/utils/Objects.ts +0 -0
  94. package/src/core/utils/route.ts +0 -0
  95. package/src/css.d.ts +19 -0
  96. package/src/docs/_core-concept/subscriber.md +0 -0
  97. package/src/docs/_decorators/ancestor-attribute.md +3 -2
  98. package/src/docs/_getting-started/my-first-subscriber.md +0 -0
  99. package/src/docs/_getting-started/pubsub.md +0 -0
  100. package/src/docs/_getting-started/start.md +0 -0
  101. package/src/docs/example/users.ts +0 -0
  102. package/src/docs/search/page.ts +0 -0
  103. package/src/tsconfig.declarations.json +22 -0
  104. package/src/tsconfig.emit.json +23 -0
  105. package/src/tsconfig.tsbuildinfo +1 -1
  106. package/docs/assets/index--GpD7R7a.css +0 -1
@@ -4,8 +4,8 @@
4
4
  <meta charset="UTF-8">
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title>Card — Concorde</title>
7
- <meta name="description" content="A surface for grouped content: padding, radius, shadow, and semantic type colors via shared theme tokens. Compose sonic-card-header, sonic-card-main, and sonic-card-footer inside the card, or put any ">
8
- <meta name="keywords" content="Concorde, supersoniks, core/components/ui/card/card, card, Card, UI component, sonic-card, web component, type, sonic-card-header, sonic-card-main, sonic-card-footer, base, light, invert, neutral, primary">
7
+ <meta name="description" content="Suffix">
8
+ <meta name="keywords" content="Concorde, supersoniks, core/components/ui/card/card, card, Card, UI component, sonic-card, web component">
9
9
  <meta name="concorde-doc-id" content="core/components/ui/card/card">
10
10
  <link rel="canonical" href="https://concorde.supersoniks.org/crawl/core/components/ui/card/card.html">
11
11
  </head>
@@ -15,126 +15,82 @@
15
15
  </header>
16
16
  <main>
17
17
  <article>
18
- <p class="doc-lead" id="doc-summary"><strong>Concorde UI component — Card</strong>. A surface for grouped content: padding, radius, shadow, and semantic type colors via shared theme tokens. Compose sonic-card-header, sonic-card-main, and sonic-card-footer inside the card, or put any <span>Doc ID: <code>core/components/ui/card/card</code>. Keywords: Concorde, supersoniks, core/components/ui/card/card, card, Card, UI component, sonic-card, web component, type, sonic-card-header, sonic-card-main, sonic-card-footer, base, light, invert, neutral, primary. URL: <a href="https://concorde.supersoniks.org/crawl/core/components/ui/card/card.html">https://concorde.supersoniks.org/crawl/core/components/ui/card/card.html</a>.</span></p>
18
+ <p class="doc-lead" id="doc-summary"><strong>Concorde UI component — Card</strong>. Suffix <span>Doc ID: <code>core/components/ui/card/card</code>. Keywords: Concorde, supersoniks, core/components/ui/card/card, card, Card, UI component, sonic-card, web component. URL: <a href="https://concorde.supersoniks.org/crawl/core/components/ui/card/card.html">https://concorde.supersoniks.org/crawl/core/components/ui/card/card.html</a>.</span></p>
19
19
  <h1 id="card">Card</h1>
20
- <p>A <strong>surface</strong> for grouped content: padding, radius, shadow, and semantic <strong><code>type</code></strong> colors via shared theme tokens. Compose <strong><code>sonic-card-header</code></strong>, <strong><code>sonic-card-main</code></strong>, and <strong><code>sonic-card-footer</code></strong> inside the card, or put any markup in the default slot.</p>
21
- <p>Default <strong><code>type</code></strong> is <code>base</code> (page background). Use <code>light</code> for a subtle gray panel, <code>invert</code> / <code>neutral</code> for high-contrast blocks, and <code>primary</code>, <code>info</code>, <code>success</code>, <code>warning</code>, or <code>danger</code> for tinted surfaces (divider tokens apply on colored types).</p>
22
20
  <h2 id="type">Type</h2>
23
- <pre><code>&lt;div class=&quot;flex flex-wrap gap-3&quot;&gt;
24
- &lt;sonic-card type=&quot;base&quot; class=&quot;min-w-[8rem]&quot;&gt;Base&lt;/sonic-card&gt;
25
- &lt;sonic-card type=&quot;light&quot; class=&quot;min-w-[8rem]&quot;&gt;Light&lt;/sonic-card&gt;
26
- &lt;sonic-card type=&quot;primary&quot; class=&quot;min-w-[8rem]&quot;&gt;Primary&lt;/sonic-card&gt;
27
- &lt;sonic-card type=&quot;info&quot; class=&quot;min-w-[8rem]&quot;&gt;Info&lt;/sonic-card&gt;
28
- &lt;sonic-card type=&quot;success&quot; class=&quot;min-w-[8rem]&quot;&gt;Success&lt;/sonic-card&gt;
29
- &lt;sonic-card type=&quot;warning&quot; class=&quot;min-w-[8rem]&quot;&gt;Warning&lt;/sonic-card&gt;
30
- &lt;sonic-card type=&quot;danger&quot; class=&quot;min-w-[8rem]&quot;&gt;Danger&lt;/sonic-card&gt;
31
- &lt;sonic-card type=&quot;neutral&quot; class=&quot;min-w-[8rem]&quot;&gt;Neutral&lt;/sonic-card&gt;
32
- &lt;sonic-card type=&quot;invert&quot; class=&quot;min-w-[8rem]&quot;&gt;Invert&lt;/sonic-card&gt;
33
- &lt;/div&gt;
21
+ <pre><code>&lt;div class=&quot;grid grid-cols-3 gap-3&quot;&gt;
22
+ &lt;sonic-card type=&quot;base&quot;&gt;Base&lt;/sonic-card&gt;
23
+ &lt;sonic-card type=&quot;light&quot;&gt;Light&lt;/sonic-card&gt;
24
+ &lt;sonic-card type=&quot;primary&quot;&gt;Primary&lt;/sonic-card&gt;
25
+ &lt;sonic-card type=&quot;warning&quot;&gt;Warning&lt;/sonic-card&gt;
26
+ &lt;sonic-card type=&quot;danger&quot;&gt;Danger&lt;/sonic-card&gt;
27
+ &lt;sonic-card type=&quot;success&quot;&gt;Success&lt;/sonic-card&gt;
28
+ &lt;sonic-card type=&quot;info&quot;&gt;Info&lt;/sonic-card&gt;
29
+ &lt;sonic-card type=&quot;neutral&quot;&gt;Neutral&lt;/sonic-card&gt;
30
+ &lt;sonic-card type=&quot;invert&quot;&gt;Invert&lt;/sonic-card&gt;
31
+ &lt;/div&gt;
34
32
  </code></pre>
35
33
  <h2 id="header">Header</h2>
36
- <p>Quick titles with <strong><code>label</code></strong> and <strong><code>description</code></strong> attributes, or full control through the default slot. <strong><code>slot=&quot;suffix&quot;</code></strong> aligns badges or actions on the right; suffix content does not shrink when the title wraps.</p>
37
- <pre><code>&lt;div class=&quot;grid gap-4 max-w-xl&quot;&gt;
38
- &lt;sonic-card&gt;
39
- &lt;sonic-card-header
40
- label=&quot;Account settings&quot;
41
- description=&quot;Manage your profile and preferences.&quot;
42
- &gt;&lt;/sonic-card-header&gt;
43
- &lt;p class=&quot;m-0 text-sm opacity-80&quot;&gt;Body content goes in the card slot or in &lt;code&gt;sonic-card-main&lt;/code&gt;.&lt;/p&gt;
44
- &lt;/sonic-card&gt;
45
-
46
- &lt;sonic-card type=&quot;neutral&quot;&gt;
47
- &lt;sonic-card-header label=&quot;Notifications&quot;&gt;
48
- &lt;sonic-card-header-description&gt;
49
- Choose what we email you about.
50
- &lt;/sonic-card-header-description&gt;
51
- &lt;sonic-badge slot=&quot;suffix&quot; type=&quot;warning&quot; size=&quot;xs&quot;&gt;3 new&lt;/sonic-badge&gt;
52
- &lt;/sonic-card-header&gt;
53
- &lt;/sonic-card&gt;
54
-
55
- &lt;sonic-card&gt;
56
- &lt;sonic-card-header label=&quot;Team workspace&quot; description=&quot;Shared with 12 members&quot;&gt;
57
- &lt;sonic-button
58
- slot=&quot;suffix&quot;
59
- shape=&quot;circle&quot;
60
- variant=&quot;outline&quot;
61
- size=&quot;sm&quot;
62
- type=&quot;default&quot;
63
- icon
64
- data-aria-label=&quot;Workspace settings&quot;
65
- &gt;
66
- &lt;sonic-icon library=&quot;iconoir&quot; name=&quot;settings&quot;&gt;&lt;/sonic-icon&gt;
67
- &lt;/sonic-button&gt;
68
- &lt;/sonic-card-header&gt;
69
- &lt;/sonic-card&gt;
70
-
71
- &lt;sonic-card type=&quot;primary&quot;&gt;
72
- &lt;sonic-card-header&gt;
73
- &lt;div&gt;Custom header&lt;/div&gt;
74
- &lt;sonic-card-header-description&gt;
75
- Use the header slot when attributes are not enough.
76
- &lt;/sonic-card-header-description&gt;
77
- &lt;sonic-button slot=&quot;suffix&quot; shape=&quot;circle&quot; variant=&quot;ghost&quot; size=&quot;sm&quot; type=&quot;primary&quot; icon&gt;
78
- &lt;sonic-icon library=&quot;iconoir&quot; name=&quot;nav-arrow-right&quot;&gt;&lt;/sonic-icon&gt;
79
- &lt;/sonic-button&gt;
80
- &lt;/sonic-card-header&gt;
81
- &lt;/sonic-card&gt;
82
- &lt;/div&gt;
34
+ <pre><code>&lt;div class=&quot;grid grid-cols-1 gap-3&quot;&gt;
35
+ &lt;sonic-card &gt;
36
+ &lt;sonic-card-header label=&quot;Header simple, titre géré via l&#39;attribut : label&quot; description=&quot;Description via l&#39;attribut : description&quot;&gt;
37
+ &lt;/sonic-card-header&gt;
38
+ &lt;/sonic-card&gt;
39
+ &lt;sonic-card type=&quot;neutral&quot;&gt;
40
+ &lt;sonic-card-header label=&quot;Header composé&quot;&gt;
41
+ &lt;sonic-card-header-description&gt;Description rendu via le composant : &quot;sonic-card-header-description&quot;&lt;/sonic-card-header-description&gt;
42
+ &lt;div slot=&quot;suffix&quot; class=&quot;flex&quot;&gt;
43
+ Suffix
44
+ &lt;/div&gt;
45
+ &lt;/sonic-card-header&gt;
46
+ &lt;/sonic-card&gt;
47
+ &lt;sonic-card type=&quot;invert&quot;&gt;
48
+ &lt;sonic-card-header&gt;
49
+ &lt;div&gt;Header custom&lt;/div&gt;
50
+ &lt;div class=&quot;text-lg text-danger&quot;&gt;Tout le contenu excepté l&#39;icône ✈ passe par le slot du header&lt;/div&gt;
51
+ &lt;span slot=&quot;suffix&quot; &gt;✈&lt;/span&gt;
52
+ &lt;/sonic-card-header&gt;
53
+ &lt;/sonic-card&gt;
54
+ &lt;/div&gt;
83
55
  </code></pre>
84
- <p><code>label</code> and <code>description</code> accept HTML (rendered as markup). Prefer plain text when possible; use the slot for structured content.</p>
85
56
  <h2 id="main">Main</h2>
86
- <p>Optional wrapper for the primary content area (typography, media, forms).</p>
87
- <pre><code>&lt;sonic-card class=&quot;max-w-xl&quot;&gt;
88
- &lt;sonic-card-header label=&quot;Release notes&quot; description=&quot;Version 2.4&quot;&gt;&lt;/sonic-card-header&gt;
89
- &lt;sonic-card-main&gt;
90
- &lt;p class=&quot;mt-0&quot;&gt;
91
- Improved performance on large lists and fixed an issue with keyboard navigation in menus.
92
- &lt;/p&gt;
93
- &lt;sonic-divider&gt;&lt;/sonic-divider&gt;
94
- &lt;p class=&quot;mb-0 text-sm opacity-80&quot;&gt;See the changelog for details.&lt;/p&gt;
95
- &lt;/sonic-card-main&gt;
96
- &lt;/sonic-card&gt;
57
+ <pre><code>&lt;sonic-card &gt;
58
+ &lt;sonic-card-main &gt;
59
+ &lt;h3&gt;Main area&lt;/h3&gt;
60
+ &lt;p&gt;Lorem ipsum dolor sit, amet consectetur adipisicing elit. Iure id dolor debitis deleniti eligendi natus dolorem a commodi sunt dicta? Ipsa asperiores magni consequuntur dolor voluptatibus. Maxime, nemo? Facere, odio.&lt;/p&gt;
61
+ &lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/aqz-KE-bpKQ&quot; title=&quot;Big Buck Bunny (Blender Foundation)&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;
62
+ &lt;/sonic-card-main&gt;
63
+ &lt;/sonic-card&gt;
97
64
  </code></pre>
98
65
  <h2 id="footer">Footer</h2>
99
- <p>Optional footer for actions, metadata, or secondary text.</p>
100
- <pre><code>&lt;sonic-card class=&quot;max-w-xl&quot;&gt;
101
- &lt;sonic-card-header label=&quot;Confirm deletion&quot;&gt;&lt;/sonic-card-header&gt;
102
- &lt;sonic-card-main&gt;
103
- &lt;p class=&quot;m-0&quot;&gt;This project and all of its data will be removed permanently.&lt;/p&gt;
104
- &lt;/sonic-card-main&gt;
105
- &lt;sonic-card-footer&gt;
106
- &lt;sonic-divider&gt;&lt;/sonic-divider&gt;
107
- &lt;div class=&quot;flex flex-wrap gap-2 justify-end&quot;&gt;
108
- &lt;sonic-button variant=&quot;ghost&quot; size=&quot;sm&quot;&gt;Cancel&lt;/sonic-button&gt;
109
- &lt;sonic-button type=&quot;danger&quot; size=&quot;sm&quot;&gt;Delete&lt;/sonic-button&gt;
66
+ <pre><code>&lt;sonic-card &gt;
67
+ &lt;sonic-card-footer &gt;
68
+ &lt;div &gt;
69
+ &lt;h4 class=&quot;mb-0&quot;&gt;Footer area&lt;/h4&gt;
70
+ &lt;small&gt;Debitis deleniti eligendi natus dolorem aufdh.&lt;/small&gt;
71
+ &lt;div&gt;
72
+ 🛫 ✈ ✈ ✈ ✈ ✈ 🛬
110
73
  &lt;/div&gt;
111
- &lt;/sonic-card-footer&gt;
112
- &lt;/sonic-card&gt;
74
+ &lt;/div&gt;
75
+ &lt;/sonic-card-footer&gt;
76
+ &lt;/sonic-card&gt;
113
77
  </code></pre>
114
- <h2 id="full-example">Full example</h2>
115
- <p>Header, media, body, and footer together.</p>
116
- <pre><code>&lt;sonic-card class=&quot;max-w-md&quot;&gt;
117
- &lt;sonic-card-header label=&quot;Featured route&quot; description=&quot;San Francisco → New York&quot;&gt;
118
- &lt;sonic-icon slot=&quot;suffix&quot; library=&quot;iconoir&quot; name=&quot;airplane&quot;&gt;&lt;/sonic-icon&gt;
119
- &lt;/sonic-card-header&gt;
120
- &lt;sonic-card-main&gt;
121
- &lt;sonic-image
122
- rounded
123
- ratio=&quot;16/9&quot;
124
- src=&quot;https://images.unsplash.com/photo-1436491865332-7a61a109cc05?w=800&amp;q=80&quot;
125
- alt=&quot;&quot;
126
- &gt;&lt;/sonic-image&gt;
127
- &lt;p class=&quot;mb-0&quot;&gt;
128
- Nonstop flight with flexible dates. Prices shown include taxes and fees.
129
- &lt;/p&gt;
130
- &lt;/sonic-card-main&gt;
131
- &lt;sonic-card-footer&gt;
132
- &lt;div class=&quot;flex items-center justify-between gap-3 flex-wrap&quot;&gt;
133
- &lt;span class=&quot;text-sm font-semibold&quot;&gt;From $249&lt;/span&gt;
134
- &lt;sonic-button type=&quot;primary&quot; size=&quot;sm&quot;&gt;Book&lt;/sonic-button&gt;
135
- &lt;/div&gt;
136
- &lt;/sonic-card-footer&gt;
137
- &lt;/sonic-card&gt;
78
+ <h2 id="example-of-use">Example of use</h2>
79
+ <pre><code>&lt;sonic-card &gt;
80
+ &lt;sonic-card-header label=&quot;Header&quot; description=&quot;Header description&quot;&gt;
81
+ &lt;sonic-icon library=&quot;iconoir&quot; name=&quot;nav-arrow-right&quot; slot=&quot;suffix&quot; &gt;&lt;/sonic-icon&gt;
82
+ &lt;/sonic-card-header&gt;
83
+ &lt;sonic-card-main &gt;
84
+ &lt;sonic-image rounded ratio=&quot;11/4&quot; src=&quot;https://thegoodlife.fr/wp-content/uploads/sites/2/2022/03/compagnies-aeriennes-nostalgie-coeur-insert-03-dr.jpg&quot;&gt;
85
+ &lt;/sonic-image&gt;
86
+ &lt;p&gt;&lt;b&gt;Main&lt;/b&gt; - Lorem ipsum dolor sit, amet consectetur adipisicing elit. Iure id dolor debitis deleniti eligendi natus dolorem a commodi sunt dicta? Ipsa asperiores magni consequuntur dolor voluptatibus. Maxime, nemo? Facere, odio.&lt;/p&gt;
87
+ &lt;/sonic-card-main&gt;
88
+ &lt;sonic-card-footer&gt;
89
+ &lt;div&gt;
90
+ &lt;i&gt;Footer&lt;/i&gt; - Amet consectetur adipisicing
91
+ &lt;/div&gt;
92
+ &lt;/sonic-card-footer&gt;
93
+ &lt;/sonic-card&gt;
138
94
  </code></pre>
139
95
 
140
96
  </article>
@@ -4,7 +4,7 @@
4
4
  <meta charset="UTF-8">
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title>Input — Concorde</title>
7
- <meta name="description" content="Native attributes list">
7
+ <meta name="description" content="Native attibutes list">
8
8
  <meta name="keywords" content="Concorde, supersoniks, core/components/ui/form/input/input, input, Input, UI component, form, sonic-input, web component">
9
9
  <meta name="concorde-doc-id" content="core/components/ui/form/input/input">
10
10
  <link rel="canonical" href="https://concorde.supersoniks.org/crawl/core/components/ui/form/input/input.html">
@@ -15,11 +15,11 @@
15
15
  </header>
16
16
  <main>
17
17
  <article>
18
- <p class="doc-lead" id="doc-summary"><strong>Concorde UI component — Input</strong>. Native attributes list <span>Doc ID: <code>core/components/ui/form/input/input</code>. Keywords: Concorde, supersoniks, core/components/ui/form/input/input, input, Input, UI component, form, sonic-input, web component. URL: <a href="https://concorde.supersoniks.org/crawl/core/components/ui/form/input/input.html">https://concorde.supersoniks.org/crawl/core/components/ui/form/input/input.html</a>.</span></p>
18
+ <p class="doc-lead" id="doc-summary"><strong>Concorde UI component — Input</strong>. Native attibutes list <span>Doc ID: <code>core/components/ui/form/input/input</code>. Keywords: Concorde, supersoniks, core/components/ui/form/input/input, input, Input, UI component, form, sonic-input, web component. URL: <a href="https://concorde.supersoniks.org/crawl/core/components/ui/form/input/input.html">https://concorde.supersoniks.org/crawl/core/components/ui/form/input/input.html</a>.</span></p>
19
19
  <h1 id="input">Input</h1>
20
20
  <sonic-button type="info" size="sm" target="_blank" href="https://www.w3schools.com/tags/tag_input.asp#midcontentadcontainer">
21
21
  <sonic-icon library="iconoir" name="open-new-window" slot="prefix" ></sonic-icon>
22
- Native attributes list
22
+ Native attibutes list
23
23
  </sonic-button>
24
24
 
25
25
  <h2 id="label">Label</h2>
@@ -4,7 +4,7 @@
4
4
  <meta charset="UTF-8">
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title>Textarea — Concorde</title>
7
- <meta name="description" content="Native attributes list">
7
+ <meta name="description" content="Native attibutes list">
8
8
  <meta name="keywords" content="Concorde, supersoniks, core/components/ui/form/textarea/textarea, textarea, Textarea, UI component, form, sonic-textarea, web component">
9
9
  <meta name="concorde-doc-id" content="core/components/ui/form/textarea/textarea">
10
10
  <link rel="canonical" href="https://concorde.supersoniks.org/crawl/core/components/ui/form/textarea/textarea.html">
@@ -15,11 +15,11 @@
15
15
  </header>
16
16
  <main>
17
17
  <article>
18
- <p class="doc-lead" id="doc-summary"><strong>Concorde UI component — Textarea</strong>. Native attributes list <span>Doc ID: <code>core/components/ui/form/textarea/textarea</code>. Keywords: Concorde, supersoniks, core/components/ui/form/textarea/textarea, textarea, Textarea, UI component, form, sonic-textarea, web component. URL: <a href="https://concorde.supersoniks.org/crawl/core/components/ui/form/textarea/textarea.html">https://concorde.supersoniks.org/crawl/core/components/ui/form/textarea/textarea.html</a>.</span></p>
18
+ <p class="doc-lead" id="doc-summary"><strong>Concorde UI component — Textarea</strong>. Native attibutes list <span>Doc ID: <code>core/components/ui/form/textarea/textarea</code>. Keywords: Concorde, supersoniks, core/components/ui/form/textarea/textarea, textarea, Textarea, UI component, form, sonic-textarea, web component. URL: <a href="https://concorde.supersoniks.org/crawl/core/components/ui/form/textarea/textarea.html">https://concorde.supersoniks.org/crawl/core/components/ui/form/textarea/textarea.html</a>.</span></p>
19
19
  <h1 id="textarea">Textarea</h1>
20
20
  <sonic-button type="info" size="sm" target="_blank" href="https://www.w3schools.com/tags/tag_textarea.asp#midcontentadcontainer">
21
21
  <sonic-icon library="iconoir" name="open-new-window" slot="prefix" ></sonic-icon>
22
- Native attributes list
22
+ Native attibutes list
23
23
  </sonic-button>
24
24
 
25
25
 
@@ -4,8 +4,8 @@
4
4
  <meta charset="UTF-8">
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title>Image — Concorde</title>
7
- <meta name="description" content="Responsive &lt;img&gt; wrapper: aspect ratio, object-fit: cover, rounded corners, and optional fade-in on load. The host uses a light placeholder background (--sc-placeholder-bg) until the file is ready. De">
8
- <meta name="keywords" content="Concorde, supersoniks, core/components/ui/image/image, image, Image, UI component, sonic-image, web component, , object-fit: cover, --sc-placeholder-bg, loading, lazy, loading=&quot;eager&quot;, rounded, --sc-rounded, sm">
7
+ <meta name="description" content="src=&quot;https://thegoodlife.fr/wp-content/uploads/sites/2/2022/03/compagnies-aeriennes-nostalgie-coeur-insert-03-dr.jpg&quot;">
8
+ <meta name="keywords" content="Concorde, supersoniks, core/components/ui/image/image, image, Image, UI component, sonic-image, web component">
9
9
  <meta name="concorde-doc-id" content="core/components/ui/image/image">
10
10
  <link rel="canonical" href="https://concorde.supersoniks.org/crawl/core/components/ui/image/image.html">
11
11
  </head>
@@ -15,169 +15,93 @@
15
15
  </header>
16
16
  <main>
17
17
  <article>
18
- <p class="doc-lead" id="doc-summary"><strong>Concorde UI component — Image</strong>. Responsive &lt;img&gt; wrapper: aspect ratio, object-fit: cover, rounded corners, and optional fade-in on load. The host uses a light placeholder background (--sc-placeholder-bg) until the file is ready. De <span>Doc ID: <code>core/components/ui/image/image</code>. Keywords: Concorde, supersoniks, core/components/ui/image/image, image, Image, UI component, sonic-image, web component, , object-fit: cover, --sc-placeholder-bg, loading, lazy, loading=&quot;eager&quot;, rounded, --sc-rounded, sm. URL: <a href="https://concorde.supersoniks.org/crawl/core/components/ui/image/image.html">https://concorde.supersoniks.org/crawl/core/components/ui/image/image.html</a>.</span></p>
18
+ <p class="doc-lead" id="doc-summary"><strong>Concorde UI component — Image</strong>. src=&quot;https://thegoodlife.fr/wp-content/uploads/sites/2/2022/03/compagnies-aeriennes-nostalgie-coeur-insert-03-dr.jpg&quot; <span>Doc ID: <code>core/components/ui/image/image</code>. Keywords: Concorde, supersoniks, core/components/ui/image/image, image, Image, UI component, sonic-image, web component. URL: <a href="https://concorde.supersoniks.org/crawl/core/components/ui/image/image.html">https://concorde.supersoniks.org/crawl/core/components/ui/image/image.html</a>.</span></p>
19
19
  <h1 id="image">Image</h1>
20
- <p>Responsive <strong><code>&lt;img&gt;</code></strong> wrapper: aspect ratio, <code>object-fit: cover</code>, rounded corners, and optional fade-in on load. The host uses a light placeholder background (<code>--sc-placeholder-bg</code>) until the file is ready. Default <strong><code>loading</code></strong> is <code>lazy</code>; set <strong><code>loading=&quot;eager&quot;</code></strong> for above-the-fold heroes.</p>
21
20
  <h2 id="rounded">Rounded</h2>
22
- <p>Omit <code>rounded</code> for square corners. Boolean <strong><code>rounded</code></strong> uses the theme token <code>--sc-rounded</code>. Sizes: <strong><code>sm</code></strong>, <strong><code>md</code></strong>, <strong><code>lg</code></strong>, <strong><code>xl</code></strong>, <strong><code>full</code></strong> (circle — pair with <code>ratio=&quot;1/1&quot;</code>), <strong><code>none</code></strong> (explicit reset).</p>
23
- <pre><code>&lt;div class=&quot;grid gap-6 grid-cols-3 lg:grid-cols-4 items-end text-center text-xs &quot;&gt;
24
- &lt;div&gt;
25
- &lt;sonic-image
26
- ratio=&quot;1/1&quot;
27
- src=&quot;https://thegoodlife.fr/wp-content/uploads/sites/2/2022/03/compagnies-aeriennes-nostalgie-coeur-insert-03-dr.jpg&quot;
28
- &gt;&lt;/sonic-image&gt;
29
- &lt;p class=&quot;mt-2&quot;&gt;default&lt;/p&gt;
30
- &lt;/div&gt;
31
- &lt;div&gt;
32
- &lt;sonic-image
33
- rounded=&quot;sm&quot;
34
- ratio=&quot;1/1&quot;
35
- src=&quot;https://thegoodlife.fr/wp-content/uploads/sites/2/2022/03/compagnies-aeriennes-nostalgie-coeur-insert-03-dr.jpg&quot;
36
- &gt;&lt;/sonic-image&gt;
37
- &lt;p class=&quot;mt-2&quot;&gt;sm&lt;/p&gt;
38
- &lt;/div&gt;
39
- &lt;div&gt;
40
- &lt;sonic-image
41
- rounded
42
- ratio=&quot;1/1&quot;
43
- src=&quot;https://thegoodlife.fr/wp-content/uploads/sites/2/2022/03/compagnies-aeriennes-nostalgie-coeur-insert-03-dr.jpg&quot;
44
- &gt;&lt;/sonic-image&gt;
45
- &lt;p class=&quot;mt-2&quot;&gt;rounded&lt;/p&gt;
46
- &lt;/div&gt;
47
- &lt;div&gt;
48
- &lt;sonic-image
49
- rounded=&quot;md&quot;
50
- ratio=&quot;1/1&quot;
51
- src=&quot;https://thegoodlife.fr/wp-content/uploads/sites/2/2022/03/compagnies-aeriennes-nostalgie-coeur-insert-03-dr.jpg&quot;
52
- &gt;&lt;/sonic-image&gt;
53
- &lt;p class=&quot;mt-2&quot;&gt;md&lt;/p&gt;
54
- &lt;/div&gt;
55
- &lt;div&gt;
56
- &lt;sonic-image
57
- rounded=&quot;lg&quot;
58
- ratio=&quot;1/1&quot;
59
- src=&quot;https://thegoodlife.fr/wp-content/uploads/sites/2/2022/03/compagnies-aeriennes-nostalgie-coeur-insert-03-dr.jpg&quot;
60
- &gt;&lt;/sonic-image&gt;
61
- &lt;p class=&quot;mt-2&quot;&gt;lg&lt;/p&gt;
62
- &lt;/div&gt;
63
- &lt;div&gt;
64
- &lt;sonic-image
65
- rounded=&quot;xl&quot;
66
- ratio=&quot;1/1&quot;
67
- src=&quot;https://thegoodlife.fr/wp-content/uploads/sites/2/2022/03/compagnies-aeriennes-nostalgie-coeur-insert-03-dr.jpg&quot;
68
- &gt;&lt;/sonic-image&gt;
69
- &lt;p class=&quot;mt-2&quot;&gt;xl&lt;/p&gt;
70
- &lt;/div&gt;
71
- &lt;div &gt;
72
- &lt;div &gt;
73
- &lt;sonic-image
74
- rounded=&quot;full&quot;
75
- ratio=&quot;1/1&quot;
76
- src=&quot;https://thegoodlife.fr/wp-content/uploads/sites/2/2022/03/compagnies-aeriennes-nostalgie-coeur-insert-03-dr.jpg&quot;
77
- &gt;&lt;/sonic-image&gt;
78
- &lt;p class=&quot;mt-2&quot;&gt;full&lt;/p&gt;
79
- &lt;/div&gt;
80
- &lt;/div&gt;
21
+ <pre><code>&lt;div class=&quot;grid gap-8 grid-cols-3 items-center&quot;&gt;
22
+ &lt;sonic-image
23
+ src=&quot;https://thegoodlife.fr/wp-content/uploads/sites/2/2022/03/compagnies-aeriennes-nostalgie-coeur-insert-03-dr.jpg&quot;
24
+ ratio=&quot;1/1&quot;
25
+ &gt;
26
+ &lt;/sonic-image&gt;
27
+ &lt;sonic-image
28
+ rounded=&quot;sm&quot;
29
+ ratio=&quot;1/1&quot;
30
+ src=&quot;https://thegoodlife.fr/wp-content/uploads/sites/2/2022/03/compagnies-aeriennes-nostalgie-coeur-insert-03-dr.jpg&quot;
31
+ &gt;
32
+ &lt;/sonic-image&gt;
33
+ &lt;sonic-image
34
+ rounded
35
+ ratio=&quot;1/1&quot;
36
+ src=&quot;https://thegoodlife.fr/wp-content/uploads/sites/2/2022/03/compagnies-aeriennes-nostalgie-coeur-insert-03-dr.jpg&quot;
37
+ &gt;
38
+ &lt;/sonic-image&gt;
39
+ &lt;sonic-image
40
+ rounded=&quot;md&quot;
41
+ ratio=&quot;1/1&quot;
42
+ src=&quot;https://thegoodlife.fr/wp-content/uploads/sites/2/2022/03/compagnies-aeriennes-nostalgie-coeur-insert-03-dr.jpg&quot;
43
+ &gt;
44
+ &lt;/sonic-image&gt;
45
+ &lt;sonic-image
46
+ rounded=&quot;lg&quot;
47
+ ratio=&quot;1/1&quot;
48
+ src=&quot;https://thegoodlife.fr/wp-content/uploads/sites/2/2022/03/compagnies-aeriennes-nostalgie-coeur-insert-03-dr.jpg&quot;
49
+ &gt;
50
+ &lt;/sonic-image&gt;
51
+ &lt;sonic-image
52
+ rounded=&quot;full&quot;
53
+ ratio=&quot;1/1&quot;
54
+ src=&quot;https://thegoodlife.fr/wp-content/uploads/sites/2/2022/03/compagnies-aeriennes-nostalgie-coeur-insert-03-dr.jpg&quot;
55
+ &gt;
56
+ &lt;/sonic-image&gt;
81
57
  &lt;/div&gt;
82
58
  </code></pre>
83
- <h2 id="aspect-ratio">Aspect ratio</h2>
84
- <p><strong><code>ratio</code></strong> sets CSS <code>aspect-ratio</code> on the image (default <strong><code>auto</code></strong>). The image still fills the host width (<code>width: 100%</code>).</p>
59
+ <h2 id="ratio">Ratio</h2>
85
60
  <pre><code>&lt;div class=&quot;grid gap-8 grid-cols-2 items-center&quot;&gt;
86
61
  &lt;sonic-image
87
62
  src=&quot;https://thegoodlife.fr/wp-content/uploads/sites/2/2022/03/compagnies-aeriennes-nostalgie-coeur-insert-03-dr.jpg&quot;
88
- &gt;&lt;/sonic-image&gt;
63
+ &gt;
64
+ &lt;/sonic-image&gt;
89
65
  &lt;sonic-image
90
66
  ratio=&quot;16/9&quot;
91
67
  src=&quot;https://thegoodlife.fr/wp-content/uploads/sites/2/2022/03/compagnies-aeriennes-nostalgie-coeur-insert-03-dr.jpg&quot;
92
- &gt;&lt;/sonic-image&gt;
68
+ &gt;
69
+ &lt;/sonic-image&gt;
93
70
  &lt;sonic-image
94
71
  ratio=&quot;1/1&quot;
95
72
  src=&quot;https://thegoodlife.fr/wp-content/uploads/sites/2/2022/03/compagnies-aeriennes-nostalgie-coeur-insert-03-dr.jpg&quot;
96
- &gt;&lt;/sonic-image&gt;
73
+ &gt;
74
+ &lt;/sonic-image&gt;
97
75
  &lt;sonic-image
98
76
  ratio=&quot;2/3&quot;
99
77
  src=&quot;https://thegoodlife.fr/wp-content/uploads/sites/2/2022/03/compagnies-aeriennes-nostalgie-coeur-insert-03-dr.jpg&quot;
100
- &gt;&lt;/sonic-image&gt;
78
+ &gt;
79
+ &lt;/sonic-image&gt;
101
80
  &lt;/div&gt;
102
81
  </code></pre>
103
82
  <h2 id="object-position">Object position</h2>
104
- <p><strong><code>objectPosition</code></strong> maps to CSS <code>object-position</code> (default <strong><code>center center</code></strong>). Useful on wide crops when the subject sits off-center.</p>
105
83
  <pre><code>&lt;div class=&quot;grid gap-8 grid-cols-2 items-center&quot;&gt;
106
84
  &lt;sonic-image
107
- ratio=&quot;11/4&quot;
108
85
  src=&quot;https://thegoodlife.fr/wp-content/uploads/sites/2/2022/03/compagnies-aeriennes-nostalgie-coeur-insert-03-dr.jpg&quot;
109
- &gt;&lt;/sonic-image&gt;
86
+ ratio=&quot;11/4&quot;
87
+ &gt;
88
+ &lt;/sonic-image&gt;
110
89
  &lt;sonic-image
111
90
  objectPosition=&quot;center top&quot;
112
- ratio=&quot;11/4&quot;
113
91
  src=&quot;https://thegoodlife.fr/wp-content/uploads/sites/2/2022/03/compagnies-aeriennes-nostalgie-coeur-insert-03-dr.jpg&quot;
114
- &gt;&lt;/sonic-image&gt;
92
+ ratio=&quot;11/4&quot;
93
+ &gt;
94
+ &lt;/sonic-image&gt;
115
95
  &lt;/div&gt;
116
96
  </code></pre>
117
97
  <h2 id="cover">Cover</h2>
118
- <p><strong><code>cover</code></strong> stretches the image to fill a <strong>positioned</strong> parent (<code>position: relative</code> + fixed height or inset). Aspect ratio on the host is ignored while <code>cover</code> is set.</p>
119
- <pre><code>&lt;div class=&quot;h-96 relative rounded-lg overflow-hidden&quot;&gt;
98
+ <pre><code>&lt;div class=&quot;h-96 relative&quot;&gt;
120
99
  &lt;sonic-image
121
100
  cover
122
101
  src=&quot;https://thegoodlife.fr/wp-content/uploads/sites/2/2022/03/compagnies-aeriennes-nostalgie-coeur-insert-03-dr.jpg&quot;
123
- &gt;&lt;/sonic-image&gt;
124
- &lt;/div&gt;
125
- </code></pre>
126
- <h2 id="load-transition">Load transition</h2>
127
- <p>Set <strong><code>transition</code></strong> to <strong><code>fade</code></strong> (default when the attribute is present) or <strong><code>fade-scale-out</code></strong>. The image stays at <code>opacity: 0</code> until the browser fires <strong><code>load</code></strong>, then the <strong><code>loaded</code></strong> class runs the animation. Changing <code>src</code> on an existing element does not replay the effect — mount a new <code>sonic-image</code> when you need another entrance (galleries, infinite scroll).</p>
128
- <p>Click <strong>Add image</strong> to append small thumbnails and replay the transition. <strong>Clear</strong> resets the row.</p>
129
- <pre><code>&lt;div class=&quot;flex flex-wrap gap-2 mb-4&quot;&gt;
130
- &lt;sonic-button
131
- size=&quot;sm&quot;
132
- onclick=&quot;(function () {
133
- var host = document.getElementById(&#39;sonic-image-transition-host&#39;);
134
- var img = document.createElement(&#39;sonic-image&#39;);
135
- img.transition = &#39;fade&#39;;
136
- img.ratio = &#39;1/1&#39;;
137
- img.rounded = &#39;md&#39;;
138
- img.loading = &#39;eager&#39;;
139
- img.style.width = &#39;5rem&#39;;
140
- img.src = &#39;https://picsum.photos/seed/&#39; + Date.now() + &#39;/120/120&#39;;
141
- host.appendChild(img);
142
- })()&quot;
143
- &gt;
144
- Add image (fade)
145
- &lt;/sonic-button&gt;
146
- &lt;sonic-button
147
- size=&quot;sm&quot;
148
- variant=&quot;outline&quot;
149
- onclick=&quot;(function () {
150
- var host = document.getElementById(&#39;sonic-image-transition-host&#39;);
151
- var img = document.createElement(&#39;sonic-image&#39;);
152
- img.transition = &#39;fade-scale-out&#39;;
153
- img.ratio = &#39;1/1&#39;;
154
- img.rounded = &#39;md&#39;;
155
- img.loading = &#39;eager&#39;;
156
- img.style.width = &#39;5rem&#39;;
157
- img.src = &#39;https://picsum.photos/seed/&#39; + Date.now() + &#39;/120/120&#39;;
158
- host.appendChild(img);
159
- })()&quot;
160
102
  &gt;
161
- Add image (fade-scale-out)
162
- &lt;/sonic-button&gt;
163
- &lt;sonic-button
164
- size=&quot;sm&quot;
165
- variant=&quot;ghost&quot;
166
- onclick=&quot;document.getElementById(&#39;sonic-image-transition-host&#39;).replaceChildren()&quot;
167
- &gt;
168
- Clear
169
- &lt;/sonic-button&gt;
103
+ &lt;/sonic-image&gt;
170
104
  &lt;/div&gt;
171
- &lt;div id=&quot;sonic-image-transition-host&quot; class=&quot;flex flex-wrap gap-2 min-h-[5rem]&quot;&gt;&lt;/div&gt;
172
- </code></pre>
173
- <h2 id="accessibility-and-parts">Accessibility and parts</h2>
174
- <p>Always set meaningful <strong><code>alt</code></strong> text (empty string only for decorative images). </p>
175
- <pre><code>&lt;sonic-image
176
- rounded=&quot;md&quot;
177
- ratio=&quot;16/9&quot;
178
- alt=&quot;Concorde aircraft in flight&quot;
179
- src=&quot;https://thegoodlife.fr/wp-content/uploads/sites/2/2022/03/compagnies-aeriennes-nostalgie-coeur-insert-03-dr.jpg&quot;
180
- &gt;&lt;/sonic-image&gt;
181
105
  </code></pre>
182
106
 
183
107
  </article>
@@ -4,7 +4,7 @@
4
4
  <meta charset="UTF-8">
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title>Link — Concorde</title>
7
- <meta name="description" content="Link: Basic link with href attribute">
7
+ <meta name="description" content="Link: Basic link with href attibute">
8
8
  <meta name="keywords" content="Concorde, supersoniks, core/components/ui/link/link, link, Link, UI component, sonic-link, web component">
9
9
  <meta name="concorde-doc-id" content="core/components/ui/link/link">
10
10
  <link rel="canonical" href="https://concorde.supersoniks.org/crawl/core/components/ui/link/link.html">
@@ -15,13 +15,13 @@
15
15
  </header>
16
16
  <main>
17
17
  <article>
18
- <p class="doc-lead" id="doc-summary"><strong>Concorde UI component — Link</strong>. Link: Basic link with href attribute <span>Doc ID: <code>core/components/ui/link/link</code>. Keywords: Concorde, supersoniks, core/components/ui/link/link, link, Link, UI component, sonic-link, web component. URL: <a href="https://concorde.supersoniks.org/crawl/core/components/ui/link/link.html">https://concorde.supersoniks.org/crawl/core/components/ui/link/link.html</a>.</span></p>
18
+ <p class="doc-lead" id="doc-summary"><strong>Concorde UI component — Link</strong>. Link: Basic link with href attibute <span>Doc ID: <code>core/components/ui/link/link</code>. Keywords: Concorde, supersoniks, core/components/ui/link/link, link, Link, UI component, sonic-link, web component. URL: <a href="https://concorde.supersoniks.org/crawl/core/components/ui/link/link.html">https://concorde.supersoniks.org/crawl/core/components/ui/link/link.html</a>.</span></p>
19
19
  <h1 id="link">Link</h1>
20
20
  <h2 id="href">Href</h2>
21
- <pre><code>&lt;sonic-link href=&quot;/&quot;&gt;Basic link with href attribute&lt;/sonic-link&gt;
21
+ <pre><code>&lt;sonic-link href=&quot;/&quot;&gt;Basic link with href attibute&lt;/sonic-link&gt;
22
22
  </code></pre>
23
23
  <h2 id="target">Target</h2>
24
- <pre><code>&lt;sonic-link href=&quot;/&quot; target=&quot;_blank&quot;&gt;Link with target attribute&lt;/sonic-link&gt;
24
+ <pre><code>&lt;sonic-link href=&quot;/&quot; target=&quot;_blank&quot;&gt;Link with target attibute&lt;/sonic-link&gt;
25
25
  </code></pre>
26
26
  <h2 id="autoactive">AutoActive</h2>
27
27
  <pre><code>&lt;sonic-link href=&quot;/#core/components&quot; class=&quot;[&amp;[active]]:text-success&quot;&gt;autoActive partial (default)&lt;/sonic-link&gt;