@haiilo/catalyst 0.15.2 → 1.0.1
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/dist/catalyst/catalyst.css +2 -2
- package/dist/catalyst/catalyst.esm.js +1 -1
- package/dist/catalyst/catalyst.esm.js.map +1 -1
- package/dist/catalyst/index.cdn.js +7 -17
- package/dist/catalyst/index.esm.js +1 -1
- package/dist/catalyst/p-081aece8.entry.js +10 -0
- package/dist/catalyst/p-081aece8.entry.js.map +1 -0
- package/dist/catalyst/p-10b0d7a2.js +10 -0
- package/dist/catalyst/p-10b0d7a2.js.map +1 -0
- package/dist/catalyst/{p-a255bd64.js → p-f80e3399.js} +1 -1
- package/dist/catalyst/p-f80e3399.js.map +1 -0
- package/dist/catalyst/scss/_variables.scss +4 -13
- package/dist/catalyst/scss/core/_nav.scss +1 -1
- package/dist/catalyst/scss/core/_typography.scss +20 -11
- package/dist/catalyst/scss/index.scss +0 -52
- package/dist/cjs/cat-alert_23.cjs.entry.js +7534 -0
- package/dist/cjs/cat-alert_23.cjs.entry.js.map +1 -0
- package/dist/cjs/{cat-notification-6a438ad1.js → cat-notification-bcb9fb86.js} +14 -12
- package/dist/cjs/cat-notification-bcb9fb86.js.map +1 -0
- package/dist/cjs/catalyst.cjs.js +2 -2
- package/dist/cjs/catalyst.cjs.js.map +1 -1
- package/dist/cjs/{index-c7955116.js → index-8ab22379.js} +1 -1
- package/dist/cjs/index-8ab22379.js.map +1 -0
- package/dist/cjs/index.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/loader.cjs.js.map +1 -1
- package/dist/collection/collection-manifest.json +1 -2
- package/dist/collection/components/cat-alert/cat-alert.css +12 -13
- package/dist/collection/components/cat-badge/cat-badge.css +7 -9
- package/dist/collection/components/cat-card/cat-card.css +1 -1
- package/dist/collection/components/cat-checkbox/cat-checkbox.css +15 -1
- package/dist/collection/components/cat-input/cat-input.css +12 -1
- package/dist/collection/components/cat-radio/cat-radio.css +12 -1
- package/dist/collection/components/cat-select/cat-select.css +121 -552
- package/dist/collection/components/cat-select/cat-select.js +534 -343
- package/dist/collection/components/cat-select/cat-select.js.map +1 -1
- package/dist/collection/components/{cat-select-remote-test/cat-select-remote-test.js → cat-select-demo/cat-select-demo.js} +71 -7
- package/dist/collection/components/cat-select-demo/cat-select-demo.js.map +1 -0
- package/dist/collection/components/cat-tabs/cat-tabs.css +1 -1
- package/dist/collection/components/cat-textarea/cat-textarea.css +5 -1
- package/dist/collection/components/cat-toggle/cat-toggle.css +16 -1
- package/dist/collection/index.cdn.js +7 -17
- package/dist/collection/index.js.map +1 -1
- package/dist/collection/scss/_variables.scss +4 -13
- package/dist/collection/scss/core/_nav.scss +1 -1
- package/dist/collection/scss/core/_typography.scss +20 -11
- package/dist/collection/scss/index.scss +0 -52
- package/dist/components/cat-alert.js +1 -1
- package/dist/components/cat-alert.js.map +1 -1
- package/dist/components/cat-avatar.js +1 -118
- package/dist/components/cat-avatar.js.map +1 -1
- package/dist/components/cat-avatar2.js +122 -0
- package/dist/components/cat-avatar2.js.map +1 -0
- package/dist/components/cat-badge.js +1 -1
- package/dist/components/cat-badge.js.map +1 -1
- package/dist/components/cat-button2.js.map +1 -1
- package/dist/components/cat-card.js +1 -1
- package/dist/components/cat-card.js.map +1 -1
- package/dist/components/cat-checkbox2.js +1 -1
- package/dist/components/cat-checkbox2.js.map +1 -1
- package/dist/components/cat-input.js +1 -1
- package/dist/components/cat-input.js.map +1 -1
- package/dist/components/cat-modal.js.map +1 -1
- package/dist/components/cat-radio.js +1 -1
- package/dist/components/cat-radio.js.map +1 -1
- package/dist/components/cat-scrollable2.js.map +1 -1
- package/dist/components/{cat-select-remote.d.ts → cat-select-demo.d.ts} +4 -4
- package/dist/components/{cat-select-remote-test.js → cat-select-demo.js} +81 -13
- package/dist/components/cat-select-demo.js.map +1 -0
- package/dist/components/cat-select.js +1 -7864
- package/dist/components/cat-select.js.map +1 -1
- package/dist/components/{cat-select-remote2.js → cat-select2.js} +26 -19
- package/dist/components/cat-select2.js.map +1 -0
- package/dist/components/cat-tabs.js +1 -1
- package/dist/components/cat-tabs.js.map +1 -1
- package/dist/components/cat-textarea.js +1 -1
- package/dist/components/cat-textarea.js.map +1 -1
- package/dist/components/cat-toast-demo.js +13 -5
- package/dist/components/cat-toast-demo.js.map +1 -1
- package/dist/components/cat-toggle.js +1 -1
- package/dist/components/cat-toggle.js.map +1 -1
- package/dist/components/first-tabbable.js +110 -12
- package/dist/components/first-tabbable.js.map +1 -1
- package/dist/components/focus-trap.esm.js +27 -10
- package/dist/components/focus-trap.esm.js.map +1 -1
- package/dist/components/index.d.ts +1 -2
- package/dist/components/index.js +1 -2
- package/dist/components/index.js.map +1 -1
- package/dist/components/loglevel.js +1 -5
- package/dist/components/loglevel.js.map +1 -1
- package/dist/esm/cat-alert_23.entry.js +7508 -0
- package/dist/esm/cat-alert_23.entry.js.map +1 -0
- package/dist/esm/{cat-notification-5b6a2cd9.js → cat-notification-8bcf6fa2.js} +15 -11
- package/dist/esm/cat-notification-8bcf6fa2.js.map +1 -0
- package/dist/esm/catalyst.js +2 -2
- package/dist/esm/catalyst.js.map +1 -1
- package/dist/esm/{index-17d2bcf3.js → index-df195301.js} +1 -1
- package/dist/esm/index-df195301.js.map +1 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/loader.js +2 -2
- package/dist/esm/loader.js.map +1 -1
- package/dist/types/components/{cat-select-remote → cat-select}/autosize.d.ts +0 -0
- package/dist/types/components/cat-select/cat-select.d.ts +116 -58
- package/dist/types/components/cat-select-demo/cat-select-demo.d.ts +8 -0
- package/dist/types/components.d.ts +16 -138
- package/dist/types/index.d.ts +1 -4
- package/package.json +9 -11
- package/dist/catalyst/p-7fff102c.entry.js +0 -12
- package/dist/catalyst/p-7fff102c.entry.js.map +0 -1
- package/dist/catalyst/p-933b6a7a.js +0 -10
- package/dist/catalyst/p-933b6a7a.js.map +0 -1
- package/dist/catalyst/p-a255bd64.js.map +0 -1
- package/dist/cjs/cat-alert_24.cjs.entry.js +0 -15171
- package/dist/cjs/cat-alert_24.cjs.entry.js.map +0 -1
- package/dist/cjs/cat-notification-6a438ad1.js.map +0 -1
- package/dist/cjs/index-c7955116.js.map +0 -1
- package/dist/collection/components/cat-select-remote/cat-select-remote.css +0 -210
- package/dist/collection/components/cat-select-remote/cat-select-remote.js +0 -818
- package/dist/collection/components/cat-select-remote/cat-select-remote.js.map +0 -1
- package/dist/collection/components/cat-select-remote-test/cat-select-remote-test.js.map +0 -1
- package/dist/components/cat-select-remote-test.d.ts +0 -11
- package/dist/components/cat-select-remote-test.js.map +0 -1
- package/dist/components/cat-select-remote.js +0 -8
- package/dist/components/cat-select-remote.js.map +0 -1
- package/dist/components/cat-select-remote2.js.map +0 -1
- package/dist/esm/cat-alert_24.entry.js +0 -15144
- package/dist/esm/cat-alert_24.entry.js.map +0 -1
- package/dist/esm/cat-notification-5b6a2cd9.js.map +0 -1
- package/dist/esm/index-17d2bcf3.js.map +0 -1
- package/dist/types/components/cat-select-remote/cat-select-remote.d.ts +0 -164
- package/dist/types/components/cat-select-remote-test/cat-select-remote-test.d.ts +0 -6
|
@@ -13,9 +13,12 @@ h6,
|
|
|
13
13
|
.cat-h4,
|
|
14
14
|
.cat-h5,
|
|
15
15
|
.cat-h6 {
|
|
16
|
+
font-weight: cat-token('font.weight.head');
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
:where(h1, h2, h3, h4, h5, h6, .cat-h1, .cat-h2, .cat-h3, .cat-h4, .cat-h5, .cat-h6) {
|
|
16
20
|
margin-top: 0;
|
|
17
21
|
margin-bottom: $cat-head-margin-bottom;
|
|
18
|
-
font-weight: cat-token('font.weight.head');
|
|
19
22
|
}
|
|
20
23
|
|
|
21
24
|
// -- head styles
|
|
@@ -40,7 +43,7 @@ h6,
|
|
|
40
43
|
}
|
|
41
44
|
}
|
|
42
45
|
|
|
43
|
-
p {
|
|
46
|
+
:where(p) {
|
|
44
47
|
margin-top: 0;
|
|
45
48
|
margin-bottom: $cat-body-margin-bottom;
|
|
46
49
|
}
|
|
@@ -122,9 +125,6 @@ ul {
|
|
|
122
125
|
ol,
|
|
123
126
|
ul,
|
|
124
127
|
dl {
|
|
125
|
-
margin-top: 0;
|
|
126
|
-
margin-bottom: 1rem;
|
|
127
|
-
|
|
128
128
|
ol,
|
|
129
129
|
ul,
|
|
130
130
|
dl {
|
|
@@ -132,6 +132,11 @@ dl {
|
|
|
132
132
|
}
|
|
133
133
|
}
|
|
134
134
|
|
|
135
|
+
:where(ol, ul, dl) {
|
|
136
|
+
margin-top: 0;
|
|
137
|
+
margin-bottom: $cat-body-margin-bottom;
|
|
138
|
+
}
|
|
139
|
+
|
|
135
140
|
nav ol,
|
|
136
141
|
nav ul,
|
|
137
142
|
ol.cat-plain,
|
|
@@ -159,19 +164,16 @@ dd {
|
|
|
159
164
|
// ----- blockquotes & figures
|
|
160
165
|
|
|
161
166
|
blockquote {
|
|
162
|
-
margin: 0 0 $cat-body-margin-bottom;
|
|
163
167
|
font-style: italic;
|
|
164
168
|
@include cat-body('l');
|
|
165
169
|
color: cat-token('color.ui.font.quote');
|
|
166
170
|
|
|
167
171
|
> :last-child {
|
|
168
|
-
margin-bottom: 0;
|
|
172
|
+
margin-bottom: 0 !important;
|
|
169
173
|
}
|
|
170
174
|
}
|
|
171
175
|
|
|
172
176
|
figure {
|
|
173
|
-
margin: 0 0 $cat-body-margin-bottom;
|
|
174
|
-
|
|
175
177
|
figcaption {
|
|
176
178
|
margin-top: -$cat-body-margin-bottom * 0.5;
|
|
177
179
|
margin-bottom: 0;
|
|
@@ -184,6 +186,10 @@ figure {
|
|
|
184
186
|
}
|
|
185
187
|
}
|
|
186
188
|
|
|
189
|
+
:where(blockquote, figure) {
|
|
190
|
+
margin: 0 0 $cat-body-margin-bottom;
|
|
191
|
+
}
|
|
192
|
+
|
|
187
193
|
// ----- code
|
|
188
194
|
|
|
189
195
|
code,
|
|
@@ -195,8 +201,6 @@ pre {
|
|
|
195
201
|
}
|
|
196
202
|
|
|
197
203
|
pre {
|
|
198
|
-
margin-top: 0;
|
|
199
|
-
margin-bottom: $cat-body-margin-bottom;
|
|
200
204
|
overflow: auto;
|
|
201
205
|
|
|
202
206
|
code {
|
|
@@ -211,6 +215,11 @@ pre {
|
|
|
211
215
|
}
|
|
212
216
|
}
|
|
213
217
|
|
|
218
|
+
:where(pre) {
|
|
219
|
+
margin-top: 0;
|
|
220
|
+
margin-bottom: $cat-body-margin-bottom;
|
|
221
|
+
}
|
|
222
|
+
|
|
214
223
|
kbd,
|
|
215
224
|
code {
|
|
216
225
|
margin: 0 0.125rem;
|
|
@@ -29,55 +29,3 @@
|
|
|
29
29
|
// -- Includes
|
|
30
30
|
$cat-font-path: 'assets/fonts' !default;
|
|
31
31
|
@include cat-fonts($cat-font-path);
|
|
32
|
-
|
|
33
|
-
// -- Styles
|
|
34
|
-
|
|
35
|
-
.wrapper {
|
|
36
|
-
width: 48rem;
|
|
37
|
-
margin: 8rem auto;
|
|
38
|
-
display: flex;
|
|
39
|
-
flex-direction: row-reverse;
|
|
40
|
-
gap: 8rem;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
.content {
|
|
44
|
-
flex: 3 0 0;
|
|
45
|
-
min-width: 0;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
#nav {
|
|
49
|
-
align-self: flex-start;
|
|
50
|
-
position: sticky;
|
|
51
|
-
top: 8rem;
|
|
52
|
-
flex: 1 0 0;
|
|
53
|
-
min-width: 0;
|
|
54
|
-
|
|
55
|
-
ul {
|
|
56
|
-
display: flex;
|
|
57
|
-
flex-direction: column;
|
|
58
|
-
gap: 0.5rem;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
.active {
|
|
62
|
-
font-weight: bold;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
section {
|
|
67
|
-
flex: 0 1 auto;
|
|
68
|
-
padding: 2rem 0;
|
|
69
|
-
|
|
70
|
-
&:not(:last-of-type) {
|
|
71
|
-
border-bottom: 1px solid rgba(0, 0, 0, 10%);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
> h2:not(:first-child),
|
|
75
|
-
> h3:not(:first-child) {
|
|
76
|
-
margin-top: 2rem;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
> h2:not(:last-child),
|
|
80
|
-
> h3:not(:last-child) {
|
|
81
|
-
margin-bottom: 1rem;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
|
|
2
2
|
import { d as defineCustomElement$2 } from './cat-icon2.js';
|
|
3
3
|
|
|
4
|
-
const catAlertCss = ":host{display:block;margin-bottom:1rem}:host(:focus-visible){outline:2px solid rgb(var(--cat-border-color-focus, 0, 113, 255));outline-offset:1px}
|
|
4
|
+
const catAlertCss = ":host{display:block;border-radius:0.5rem;margin-bottom:1rem}:host([hidden]){display:none}:host(:focus-visible){outline:2px solid rgb(var(--cat-border-color-focus, 0, 113, 255));outline-offset:1px}.alert{font:inherit;display:flex;gap:0.5rem;padding:1.25rem;border-radius:0.5rem}.content{align-self:center}::slotted(:last-child){margin-bottom:0 !important}.alert-primary{background-color:rgba(var(--cat-primary-bg, 32, 127, 138), 0.1)}.alert-primary cat-icon{color:#207f8a}.alert-secondary{background-color:rgba(105, 118, 135, 0.1)}.alert-secondary cat-icon{color:#697687}.alert-success{background-color:rgba(0, 132, 88, 0.1)}.alert-success cat-icon{color:#008458}.alert-warning{background-color:rgba(255, 206, 128, 0.1)}.alert-warning cat-icon{color:#ebb663}.alert-danger{background-color:rgba(217, 52, 13, 0.1)}.alert-danger cat-icon{color:#d9340d}";
|
|
5
5
|
|
|
6
6
|
const CatAlert$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
7
7
|
constructor() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"cat-alert.js","mappings":";;;AAAA,MAAM,WAAW,GAAG,
|
|
1
|
+
{"file":"cat-alert.js","mappings":";;;AAAA,MAAM,WAAW,GAAG,k1BAAk1B;;MCaz1BA,UAAQ;EALrB;;;;IAMmB,YAAO,GAAwB,IAAI,GAAG,CAAC;MACtD,CAAC,SAAS,EAAE,oBAAoB,CAAC;MACjC,CAAC,WAAW,EAAE,cAAc,CAAC;MAC7B,CAAC,SAAS,EAAE,qBAAqB,CAAC;MAClC,CAAC,SAAS,EAAE,eAAe,CAAC;MAC5B,CAAC,QAAQ,EAAE,qBAAqB,CAAC;KAClC,CAAC,CAAC;;;;IAKK,UAAK,GAA+D,SAAS,CAAC;;;;IAU9E,WAAM,GAAG,KAAK,CAAC;GA8BxB;EA5BC,MAAM;IACJ,QACE,EAAC,IAAI,IAAC,QAAQ,EAAC,GAAG,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,IAChC,WACE,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE;QACL,KAAK,EAAE,IAAI;QACX,CAAC,SAAS,IAAI,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;OAC7C,IAEA,CAAC,IAAI,CAAC,MAAM,IAAI,gBAAU,IAAI,EAAC,GAAG,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAa,EAC3G,WAAK,KAAK,EAAC,SAAS,IAClB,eAAa,CACT,CACF,CACD,EACP;GACH;EAED,IAAY,IAAI;IACd,QAAQ,IAAI,CAAC,KAAK;MAChB,KAAK,QAAQ,CAAC;MACd,KAAK,SAAS;QACZ,OAAO,OAAO,CAAC;MACjB;QACE,OAAO,QAAQ,CAAC;KACnB;GACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["CatAlert"],"sources":["./src/components/cat-alert/cat-alert.scss?tag=cat-alert&encapsulation=shadow","./src/components/cat-alert/cat-alert.tsx"],"sourcesContent":["@use 'variables' as *;\n@use 'mixins' as *;\n@use 'sass:map';\n\n// -----\n\n$-background-colors: (\n 'primary': cat-token('color.theme.primary.bg', 0.1),\n 'secondary': cat-token('color.theme.secondary.bg', 0.1),\n 'success': cat-token('color.theme.success.bg', 0.1),\n 'warning': cat-token('color.theme.warning.bg', 0.1),\n 'danger': cat-token('color.theme.danger.bg', 0.1)\n);\n$-icon-colors: (\n 'primary': cat-token('color.base.brand.400'),\n 'secondary': cat-token('color.base.neutral.400'),\n 'success': cat-token('color.base.green.400'),\n 'warning': cat-token('color.base.orange.400'),\n 'danger': cat-token('color.base.red.400')\n);\n\n// -----\n\n:host {\n display: block;\n border-radius: cat-border-radius('l');\n margin-bottom: $cat-body-margin-bottom;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n:host(:focus-visible) {\n outline: 2px solid cat-token('color.ui.border.focus');\n outline-offset: 1px;\n}\n\n.alert {\n font: inherit;\n display: flex;\n gap: 0.5rem;\n padding: 1.25rem;\n border-radius: cat-border-radius('l');\n}\n\n.content {\n align-self: center;\n}\n\n::slotted(:last-child) {\n margin-bottom: 0 !important;\n}\n\n// ----- theme\n\n@mixin theme($theme) {\n .alert-#{$theme} {\n background-color: map.get($-background-colors, $theme);\n\n cat-icon {\n color: map.get($-icon-colors, $theme);\n }\n }\n}\n\n@include theme('primary');\n@include theme('secondary');\n@include theme('success');\n@include theme('warning');\n@include theme('danger');\n","import { Component, h, Host, Prop } from '@stencil/core';\n\n/**\n * Informs user about important changes or conditions in the interface. Use this\n * component if you need to capture user’s attention in a prominent way.\n *\n * @part alert - The alert element.\n */\n@Component({\n tag: 'cat-alert',\n styleUrl: 'cat-alert.scss',\n shadow: true\n})\nexport class CatAlert {\n private readonly mapIcon: Map<string, string> = new Map([\n ['primary', 'star-circle-filled'],\n ['secondary', 'clock-filled'],\n ['success', 'check-circle-filled'],\n ['warning', 'danger-filled'],\n ['danger', 'cross-circle-filled']\n ]);\n\n /**\n * The color palette of the alert.\n */\n @Prop() color: 'primary' | 'secondary' | 'danger' | 'success' | 'warning' = 'primary';\n\n /**\n * The name of an icon to be displayed in the alert.\n */\n @Prop() icon?: string;\n\n /**\n * Whether the icon of the alert is deactivated.\n */\n @Prop() noIcon = false;\n\n render() {\n return (\n <Host tabindex=\"0\" role={this.role}>\n <div\n part=\"alert\"\n class={{\n alert: true,\n [`alert-${this.color}`]: Boolean(this.color)\n }}\n >\n {!this.noIcon && <cat-icon size=\"l\" icon={this.icon ? this.icon : this.mapIcon.get(this.color)}></cat-icon>}\n <div class=\"content\">\n <slot></slot>\n </div>\n </div>\n </Host>\n );\n }\n\n private get role() {\n switch (this.color) {\n case 'danger':\n case 'warning':\n return 'alert';\n default:\n return 'status';\n }\n }\n}\n"],"version":3}
|
|
@@ -1,121 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { l as loglevel } from './loglevel.js';
|
|
3
|
-
import { d as defineCustomElement$2 } from './cat-icon2.js';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Loads an image and wraps the result in a promise.
|
|
7
|
-
*
|
|
8
|
-
* @param src the image URL
|
|
9
|
-
* @returns a promise
|
|
10
|
-
*/
|
|
11
|
-
const loadImg = (src) => {
|
|
12
|
-
return new Promise((resolve, reject) => {
|
|
13
|
-
const image = new Image();
|
|
14
|
-
image.addEventListener('load', resolve);
|
|
15
|
-
image.addEventListener('error', reject);
|
|
16
|
-
image.src = src;
|
|
17
|
-
});
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
const catAvatarCss = ":host{display:inline-block;vertical-align:middle;-webkit-user-select:none;-ms-user-select:none;user-select:none;}:host([hidden]){display:none}.avatar{display:flex;align-items:center;justify-content:center;border-radius:0.25rem;text-decoration:inherit;color:var(--cat-avatar-fill, white);background-color:var(--cat-avatar-bg, #697687);background-size:cover;background-position:center;white-space:nowrap;overflow:hidden}.avatar:focus-visible{outline:2px solid rgb(var(--cat-border-color-focus, 0, 113, 255));outline-offset:1px}.avatar-round{border-radius:50%}.avatar-xs{width:var(--cat-avatar-size, 1.5rem);height:var(--cat-avatar-size, 1.5rem);line-height:var(--cat-avatar-size, 1.5rem);font-size:var(--cat-avatar-font-size, 0.75rem)}.avatar-s{width:var(--cat-avatar-size, 2rem);height:var(--cat-avatar-size, 2rem);line-height:var(--cat-avatar-size, 2rem);font-size:var(--cat-avatar-font-size, 0.875rem)}.avatar-m{width:var(--cat-avatar-size, 2.5rem);height:var(--cat-avatar-size, 2.5rem);line-height:var(--cat-avatar-size, 2.5rem);font-size:var(--cat-avatar-font-size, 0.9375rem)}.avatar-l{width:var(--cat-avatar-size, 3rem);height:var(--cat-avatar-size, 3rem);line-height:var(--cat-avatar-size, 3rem);font-size:var(--cat-avatar-font-size, 1.125rem)}.avatar-xl{width:var(--cat-avatar-size, 3.5rem);height:var(--cat-avatar-size, 3.5rem);line-height:var(--cat-avatar-size, 3.5rem);font-size:var(--cat-avatar-font-size, 1.25rem)}";
|
|
21
|
-
|
|
22
|
-
const CatAvatar$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
23
|
-
constructor() {
|
|
24
|
-
super();
|
|
25
|
-
this.__registerHost();
|
|
26
|
-
this.__attachShadow();
|
|
27
|
-
/**
|
|
28
|
-
* The size of the avatar.
|
|
29
|
-
*/
|
|
30
|
-
this.size = 'm';
|
|
31
|
-
/**
|
|
32
|
-
* Use round avatar edges.
|
|
33
|
-
*/
|
|
34
|
-
this.round = false;
|
|
35
|
-
/**
|
|
36
|
-
* The label of the avatar.
|
|
37
|
-
*/
|
|
38
|
-
this.label = '';
|
|
39
|
-
}
|
|
40
|
-
onSrcChanged(value) {
|
|
41
|
-
if (value) {
|
|
42
|
-
loadImg(value).then(() => (this.backgroundImage = `url(${value})`), () => (this.backgroundImage = undefined));
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
this.backgroundImage = undefined;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
componentWillLoad() {
|
|
49
|
-
this.onSrcChanged(this.src);
|
|
50
|
-
}
|
|
51
|
-
componentWillRender() {
|
|
52
|
-
if (!this.label) {
|
|
53
|
-
loglevel.warn('[A11y] Missing ARIA label on avatar', this);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
render() {
|
|
57
|
-
if (this.url) {
|
|
58
|
-
return (h("a", { href: this.url, target: this.urlTarget, style: this.cssStyle, class: this.cssClass, "aria-label": this.label }, this.content));
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
return (h("span", { style: this.cssStyle, class: this.cssClass, "aria-label": this.label }, this.content));
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
get content() {
|
|
65
|
-
return !this.backgroundImage
|
|
66
|
-
? [this.icon ? h("cat-icon", { icon: this.icon, size: this.size }) : this.getInitials()]
|
|
67
|
-
: [];
|
|
68
|
-
}
|
|
69
|
-
get cssStyle() {
|
|
70
|
-
return { 'background-image': this.backgroundImage };
|
|
71
|
-
}
|
|
72
|
-
get cssClass() {
|
|
73
|
-
return {
|
|
74
|
-
avatar: true,
|
|
75
|
-
'avatar-round': this.round,
|
|
76
|
-
[`avatar-${this.size}`]: Boolean(this.size)
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
getInitials() {
|
|
80
|
-
var _a, _b;
|
|
81
|
-
return ((_a = this.initials) !== null && _a !== void 0 ? _a : ((_b = this.label) !== null && _b !== void 0 ? _b : '')
|
|
82
|
-
.split(' ')
|
|
83
|
-
.map(n => n[0])
|
|
84
|
-
.join(''));
|
|
85
|
-
}
|
|
86
|
-
static get watchers() { return {
|
|
87
|
-
"src": ["onSrcChanged"]
|
|
88
|
-
}; }
|
|
89
|
-
static get style() { return catAvatarCss; }
|
|
90
|
-
}, [1, "cat-avatar", {
|
|
91
|
-
"size": [1],
|
|
92
|
-
"round": [4],
|
|
93
|
-
"label": [1],
|
|
94
|
-
"initials": [1],
|
|
95
|
-
"src": [1],
|
|
96
|
-
"icon": [1],
|
|
97
|
-
"url": [1],
|
|
98
|
-
"urlTarget": [1, "url-target"],
|
|
99
|
-
"backgroundImage": [32]
|
|
100
|
-
}]);
|
|
101
|
-
function defineCustomElement$1() {
|
|
102
|
-
if (typeof customElements === "undefined") {
|
|
103
|
-
return;
|
|
104
|
-
}
|
|
105
|
-
const components = ["cat-avatar", "cat-icon"];
|
|
106
|
-
components.forEach(tagName => { switch (tagName) {
|
|
107
|
-
case "cat-avatar":
|
|
108
|
-
if (!customElements.get(tagName)) {
|
|
109
|
-
customElements.define(tagName, CatAvatar$1);
|
|
110
|
-
}
|
|
111
|
-
break;
|
|
112
|
-
case "cat-icon":
|
|
113
|
-
if (!customElements.get(tagName)) {
|
|
114
|
-
defineCustomElement$2();
|
|
115
|
-
}
|
|
116
|
-
break;
|
|
117
|
-
} });
|
|
118
|
-
}
|
|
1
|
+
import { C as CatAvatar$1, d as defineCustomElement$1 } from './cat-avatar2.js';
|
|
119
2
|
|
|
120
3
|
const CatAvatar = CatAvatar$1;
|
|
121
4
|
const defineCustomElement = defineCustomElement$1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"cat-avatar.js","mappings":"
|
|
1
|
+
{"file":"cat-avatar.js","mappings":";;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';
|
|
2
|
+
import { l as loglevel } from './loglevel.js';
|
|
3
|
+
import { d as defineCustomElement$1 } from './cat-icon2.js';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Loads an image and wraps the result in a promise.
|
|
7
|
+
*
|
|
8
|
+
* @param src the image URL
|
|
9
|
+
* @returns a promise
|
|
10
|
+
*/
|
|
11
|
+
const loadImg = (src) => {
|
|
12
|
+
return new Promise((resolve, reject) => {
|
|
13
|
+
const image = new Image();
|
|
14
|
+
image.addEventListener('load', resolve);
|
|
15
|
+
image.addEventListener('error', reject);
|
|
16
|
+
image.src = src;
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
const catAvatarCss = ":host{display:inline-block;vertical-align:middle;-webkit-user-select:none;-ms-user-select:none;user-select:none;}:host([hidden]){display:none}.avatar{display:flex;align-items:center;justify-content:center;border-radius:0.25rem;text-decoration:inherit;color:var(--cat-avatar-fill, white);background-color:var(--cat-avatar-bg, #697687);background-size:cover;background-position:center;white-space:nowrap;overflow:hidden}.avatar:focus-visible{outline:2px solid rgb(var(--cat-border-color-focus, 0, 113, 255));outline-offset:1px}.avatar-round{border-radius:50%}.avatar-xs{width:var(--cat-avatar-size, 1.5rem);height:var(--cat-avatar-size, 1.5rem);line-height:var(--cat-avatar-size, 1.5rem);font-size:var(--cat-avatar-font-size, 0.75rem)}.avatar-s{width:var(--cat-avatar-size, 2rem);height:var(--cat-avatar-size, 2rem);line-height:var(--cat-avatar-size, 2rem);font-size:var(--cat-avatar-font-size, 0.875rem)}.avatar-m{width:var(--cat-avatar-size, 2.5rem);height:var(--cat-avatar-size, 2.5rem);line-height:var(--cat-avatar-size, 2.5rem);font-size:var(--cat-avatar-font-size, 0.9375rem)}.avatar-l{width:var(--cat-avatar-size, 3rem);height:var(--cat-avatar-size, 3rem);line-height:var(--cat-avatar-size, 3rem);font-size:var(--cat-avatar-font-size, 1.125rem)}.avatar-xl{width:var(--cat-avatar-size, 3.5rem);height:var(--cat-avatar-size, 3.5rem);line-height:var(--cat-avatar-size, 3.5rem);font-size:var(--cat-avatar-font-size, 1.25rem)}";
|
|
21
|
+
|
|
22
|
+
const CatAvatar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
23
|
+
constructor() {
|
|
24
|
+
super();
|
|
25
|
+
this.__registerHost();
|
|
26
|
+
this.__attachShadow();
|
|
27
|
+
/**
|
|
28
|
+
* The size of the avatar.
|
|
29
|
+
*/
|
|
30
|
+
this.size = 'm';
|
|
31
|
+
/**
|
|
32
|
+
* Use round avatar edges.
|
|
33
|
+
*/
|
|
34
|
+
this.round = false;
|
|
35
|
+
/**
|
|
36
|
+
* The label of the avatar.
|
|
37
|
+
*/
|
|
38
|
+
this.label = '';
|
|
39
|
+
}
|
|
40
|
+
onSrcChanged(value) {
|
|
41
|
+
if (value) {
|
|
42
|
+
loadImg(value).then(() => (this.backgroundImage = `url(${value})`), () => (this.backgroundImage = undefined));
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
this.backgroundImage = undefined;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
componentWillLoad() {
|
|
49
|
+
this.onSrcChanged(this.src);
|
|
50
|
+
}
|
|
51
|
+
componentWillRender() {
|
|
52
|
+
if (!this.label) {
|
|
53
|
+
loglevel.warn('[A11y] Missing ARIA label on avatar', this);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
render() {
|
|
57
|
+
if (this.url) {
|
|
58
|
+
return (h("a", { href: this.url, target: this.urlTarget, style: this.cssStyle, class: this.cssClass, "aria-label": this.label }, this.content));
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
return (h("span", { style: this.cssStyle, class: this.cssClass, "aria-label": this.label }, this.content));
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
get content() {
|
|
65
|
+
return !this.backgroundImage
|
|
66
|
+
? [this.icon ? h("cat-icon", { icon: this.icon, size: this.size }) : this.getInitials()]
|
|
67
|
+
: [];
|
|
68
|
+
}
|
|
69
|
+
get cssStyle() {
|
|
70
|
+
return { 'background-image': this.backgroundImage };
|
|
71
|
+
}
|
|
72
|
+
get cssClass() {
|
|
73
|
+
return {
|
|
74
|
+
avatar: true,
|
|
75
|
+
'avatar-round': this.round,
|
|
76
|
+
[`avatar-${this.size}`]: Boolean(this.size)
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
getInitials() {
|
|
80
|
+
var _a, _b;
|
|
81
|
+
return ((_a = this.initials) !== null && _a !== void 0 ? _a : ((_b = this.label) !== null && _b !== void 0 ? _b : '')
|
|
82
|
+
.split(' ')
|
|
83
|
+
.map(n => n[0])
|
|
84
|
+
.join(''));
|
|
85
|
+
}
|
|
86
|
+
static get watchers() { return {
|
|
87
|
+
"src": ["onSrcChanged"]
|
|
88
|
+
}; }
|
|
89
|
+
static get style() { return catAvatarCss; }
|
|
90
|
+
}, [1, "cat-avatar", {
|
|
91
|
+
"size": [1],
|
|
92
|
+
"round": [4],
|
|
93
|
+
"label": [1],
|
|
94
|
+
"initials": [1],
|
|
95
|
+
"src": [1],
|
|
96
|
+
"icon": [1],
|
|
97
|
+
"url": [1],
|
|
98
|
+
"urlTarget": [1, "url-target"],
|
|
99
|
+
"backgroundImage": [32]
|
|
100
|
+
}]);
|
|
101
|
+
function defineCustomElement() {
|
|
102
|
+
if (typeof customElements === "undefined") {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
const components = ["cat-avatar", "cat-icon"];
|
|
106
|
+
components.forEach(tagName => { switch (tagName) {
|
|
107
|
+
case "cat-avatar":
|
|
108
|
+
if (!customElements.get(tagName)) {
|
|
109
|
+
customElements.define(tagName, CatAvatar);
|
|
110
|
+
}
|
|
111
|
+
break;
|
|
112
|
+
case "cat-icon":
|
|
113
|
+
if (!customElements.get(tagName)) {
|
|
114
|
+
defineCustomElement$1();
|
|
115
|
+
}
|
|
116
|
+
break;
|
|
117
|
+
} });
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
export { CatAvatar as C, defineCustomElement as d };
|
|
121
|
+
|
|
122
|
+
//# sourceMappingURL=cat-avatar2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"cat-avatar2.js","mappings":";;;;AAAA;;;;;;AAMA,MAAM,OAAO,GAAG,CAAC,GAAW;EAC1B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM;IACjC,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;IAC1B,KAAK,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACxC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;GACjB,CAAC,CAAC;AACL,CAAC;;ACbD,MAAM,YAAY,GAAG,o5CAAo5C;;MCY55C,SAAS;EALtB;;;;;;;IAWU,SAAI,GAAkC,GAAG,CAAC;;;;IAK1C,UAAK,GAAG,KAAK,CAAC;;;;IAKd,UAAK,GAAG,EAAE,CAAC;GA4FpB;EAhEC,YAAY,CAAC,KAAc;IACzB,IAAI,KAAK,EAAE;MACT,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CACjB,OAAO,IAAI,CAAC,eAAe,GAAG,OAAO,KAAK,GAAG,CAAC,EAC9C,OAAO,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC,CACzC,CAAC;KACH;SAAM;MACL,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;KAClC;GACF;EAED,iBAAiB;IACf,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;GAC7B;EAED,mBAAmB;IACjB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;MACfA,QAAG,CAAC,IAAI,CAAC,qCAAqC,EAAE,IAAI,CAAC,CAAC;KACvD;GACF;EAED,MAAM;IACJ,IAAI,IAAI,CAAC,GAAG,EAAE;MACZ,QACE,SAAG,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,gBAAc,IAAI,CAAC,KAAK,IAC1G,IAAI,CAAC,OAAO,CACX,EACJ;KACH;SAAM;MACL,QACE,YAAM,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,gBAAc,IAAI,CAAC,KAAK,IACrE,IAAI,CAAC,OAAO,CACR,EACP;KACH;GACF;EAED,IAAY,OAAO;IACjB,OAAO,CAAC,IAAI,CAAC,eAAe;QACxB,CAAC,IAAI,CAAC,IAAI,GAAG,gBAAU,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,GAAa,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1F,EAAE,CAAC;GACR;EAED,IAAY,QAAQ;IAClB,OAAO,EAAE,kBAAkB,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;GACrD;EAED,IAAY,QAAQ;IAClB,OAAO;MACL,MAAM,EAAE,IAAI;MACZ,cAAc,EAAE,IAAI,CAAC,KAAK;MAC1B,CAAC,UAAU,IAAI,CAAC,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;KAC5C,CAAC;GACH;EAEO,WAAW;;IACjB,QACE,MAAA,IAAI,CAAC,QAAQ,mCACb,CAAC,MAAA,IAAI,CAAC,KAAK,mCAAI,EAAE;OACd,KAAK,CAAC,GAAG,CAAC;OACV,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;OACd,IAAI,CAAC,EAAE,CAAC,EACX;GACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["log"],"sources":["./src/utils/load-img.ts","./src/components/cat-avatar/cat-avatar.scss?tag=cat-avatar&encapsulation=shadow","./src/components/cat-avatar/cat-avatar.tsx"],"sourcesContent":["/**\n * Loads an image and wraps the result in a promise.\n *\n * @param src the image URL\n * @returns a promise\n */\nconst loadImg = (src: string): Promise<Event> => {\n return new Promise((resolve, reject) => {\n const image = new Image();\n image.addEventListener('load', resolve);\n image.addEventListener('error', reject);\n image.src = src;\n });\n};\n\nexport default loadImg;\n","@use 'variables' as *;\n@use 'mixins' as *;\n@use 'sass:map';\n\n// -----\n\n$-background-color: cat-token('color.base.neutral.400');\n$-color: cat-token('color.base.neutral.0');\n$-sizes: (\n 'xl': 3.5rem,\n 'l': 3rem,\n 'm': 2.5rem,\n 's': 2rem,\n 'xs': 1.5rem\n);\n\n// -----\n\n:host {\n /**\n * @prop --cat-avatar-bg: The background color of the avatar.\n * @prop --cat-avatar-fill: The text color of the avatar.\n * @prop --cat-avatar-size: The size of the avatar.\n * @prop --cat-avatar-font-size: The font size of the avatar.\n */\n display: inline-block;\n vertical-align: middle;\n @include cat-select(none);\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.avatar {\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: cat-border-radius('m');\n text-decoration: inherit;\n color: var(--cat-avatar-fill, $-color);\n background-color: var(--cat-avatar-bg, $-background-color);\n background-size: cover;\n background-position: center;\n white-space: nowrap;\n overflow: hidden;\n\n &:focus-visible {\n outline: 2px solid cat-token('color.ui.border.focus');\n outline-offset: 1px;\n }\n}\n\n.avatar-round {\n border-radius: 50%;\n}\n\n// ----- size\n\n@mixin size($size, $fontSize) {\n .avatar-#{$size} {\n width: var(--cat-avatar-size, map.get($-sizes, $size));\n height: var(--cat-avatar-size, map.get($-sizes, $size));\n line-height: var(--cat-avatar-size, map.get($-sizes, $size));\n font-size: var(--cat-avatar-font-size, cat-body-font-size($fontSize));\n }\n}\n\n@include size('xs', 'xs');\n@include size('s', 's');\n@include size('m', 'm');\n@include size('l', 'l');\n@include size('xl', 'xl');\n","import { Component, h, Prop, State, Watch } from '@stencil/core';\nimport log from 'loglevel';\nimport loadImg from '../../utils/load-img';\n\n/**\n * Avatars are used to represent a person or object.\n */\n@Component({\n tag: 'cat-avatar',\n styleUrl: 'cat-avatar.scss',\n shadow: true\n})\nexport class CatAvatar {\n @State() backgroundImage?: string;\n\n /**\n * The size of the avatar.\n */\n @Prop() size: 'xs' | 's' | 'm' | 'l' | 'xl' = 'm';\n\n /**\n * Use round avatar edges.\n */\n @Prop() round = false;\n\n /**\n * The label of the avatar.\n */\n @Prop() label = '';\n\n /**\n * Custom initials for the avatar.\n */\n @Prop() initials?: string;\n\n /**\n * An optional avatar image.\n */\n @Prop() src?: string;\n\n /**\n * An icon to be used instead of the initials.\n */\n @Prop() icon?: string;\n\n /**\n * A destination to link to, rendered in the href attribute of a link.\n */\n @Prop() url?: string;\n\n /**\n * Specifies where to open the linked document.\n */\n @Prop() urlTarget?: '_blank' | '_self';\n\n @Watch('src')\n onSrcChanged(value?: string): void {\n if (value) {\n loadImg(value).then(\n () => (this.backgroundImage = `url(${value})`),\n () => (this.backgroundImage = undefined)\n );\n } else {\n this.backgroundImage = undefined;\n }\n }\n\n componentWillLoad(): void {\n this.onSrcChanged(this.src);\n }\n\n componentWillRender(): void {\n if (!this.label) {\n log.warn('[A11y] Missing ARIA label on avatar', this);\n }\n }\n\n render() {\n if (this.url) {\n return (\n <a href={this.url} target={this.urlTarget} style={this.cssStyle} class={this.cssClass} aria-label={this.label}>\n {this.content}\n </a>\n );\n } else {\n return (\n <span style={this.cssStyle} class={this.cssClass} aria-label={this.label}>\n {this.content}\n </span>\n );\n }\n }\n\n private get content() {\n return !this.backgroundImage\n ? [this.icon ? <cat-icon icon={this.icon} size={this.size}></cat-icon> : this.getInitials()]\n : [];\n }\n\n private get cssStyle() {\n return { 'background-image': this.backgroundImage };\n }\n\n private get cssClass() {\n return {\n avatar: true,\n 'avatar-round': this.round,\n [`avatar-${this.size}`]: Boolean(this.size)\n };\n }\n\n private getInitials(): string {\n return (\n this.initials ??\n (this.label ?? '')\n .split(' ')\n .map(n => n[0])\n .join('')\n );\n }\n}\n"],"version":3}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';
|
|
2
2
|
|
|
3
|
-
const catBadgeCss = ":host{display:inline-
|
|
3
|
+
const catBadgeCss = ":host{display:inline-block;max-width:100%;vertical-align:baseline}:host([hidden]){display:none}.badge{font:inherit;display:inline-flex;align-items:center;justify-content:center;border-radius:0.125rem;text-decoration:none;box-sizing:border-box;width:100%;line-height:1}.badge slot{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.badge-round{border-radius:10rem}.badge-filled{background-color:rgb(var(--bg));color:rgb(var(--fill));font-weight:600;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:greyscale}.badge-outlined{background-color:white;box-shadow:inset 0 0 0 1px rgba(var(--border), 0.2);color:rgb(var(--text))}.badge-primary{--bg:var(--cat-primary-bg, 32, 127, 138);--fill:var(--cat-primary-fill, 255, 255, 255);--text:var(--cat-primary-text, 32, 127, 138);--border:var(--cat-primary-text, 32, 127, 138)}.badge-secondary{--bg:105, 118, 135;--fill:255, 255, 255;--text:0, 0, 0;--border:105, 118, 135}.badge-success{--bg:0, 132, 88;--fill:255, 255, 255;--text:0, 132, 88;--border:0, 132, 88}.badge-warning{--bg:255, 206, 128;--fill:0, 0, 0;--text:159, 97, 0;--border:159, 97, 0}.badge-danger{--bg:217, 52, 13;--fill:255, 255, 255;--text:217, 52, 13;--border:217, 52, 13}.badge-xs{height:1rem;min-width:1rem;font-size:0.75rem;padding:0 0.25rem}.badge-s{height:1.5rem;min-width:1.5rem;font-size:0.75rem;padding:0 0.5rem}.badge-m{height:2rem;min-width:2rem;font-size:0.875rem;padding:0 0.75rem}.badge-l{height:2.5rem;min-width:2.5rem;font-size:0.9375rem;padding:0 1rem}.badge-xl{height:3rem;min-width:3rem;font-size:1.125rem;padding:0 1rem}.badge-pulse.badge-filled{animation:1.5s ease 0s infinite normal none running pulse}.badge-pulse.badge-outlined{animation:1.5s ease 0s infinite normal none running pulse-outlined}@keyframes pulse{0%{box-shadow:0 0 0 0 rgb(var(--bg))}70%{box-shadow:transparent 0 0 0 0.5rem}100%{box-shadow:transparent 0 0 0 0}}@keyframes pulse-outlined{0%{box-shadow:0 0 0 0 rgb(var(--bg)), inset 0 0 0 1px rgba(var(--border), 0.2)}70%{box-shadow:transparent 0 0 0 0.5rem, inset 0 0 0 1px rgba(var(--border), 0.2)}100%{box-shadow:transparent 0 0 0 0, inset 0 0 0 1px rgba(var(--border), 0.2)}}";
|
|
4
4
|
|
|
5
5
|
const CatBadge$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
6
6
|
constructor() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"cat-badge.js","mappings":";;AAAA,MAAM,WAAW,GAAG,
|
|
1
|
+
{"file":"cat-badge.js","mappings":";;AAAA,MAAM,WAAW,GAAG,onEAAonE;;MCa3nEA,UAAQ;EALrB;;;;;;;IASU,YAAO,GAA0B,QAAQ,CAAC;;;;IAK1C,UAAK,GAA+D,SAAS,CAAC;;;;IAK9E,SAAI,GAAkC,GAAG,CAAC;;;;IAK1C,UAAK,GAAG,KAAK,CAAC;;;;IAKd,UAAK,GAAG,KAAK,CAAC;GAmBvB;EAjBC,MAAM;IACJ,QACE,YACE,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE;QACL,KAAK,EAAE,IAAI;QACX,aAAa,EAAE,IAAI,CAAC,KAAK;QACzB,aAAa,EAAE,IAAI,CAAC,KAAK;QACzB,CAAC,SAAS,IAAI,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;QAChD,CAAC,SAAS,IAAI,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;QAC5C,CAAC,SAAS,IAAI,CAAC,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;OAC3C,IAED,eAAa,CACR,EACP;GACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["CatBadge"],"sources":["./src/components/cat-badge/cat-badge.scss?tag=cat-badge&encapsulation=shadow","./src/components/cat-badge/cat-badge.tsx"],"sourcesContent":["@use 'variables' as *;\n@use 'mixins' as *;\n@use 'sass:map';\n\n// -----\n\n$-sizes: (\n 'xl': 3rem,\n 'l': 2.5rem,\n 'm': 2rem,\n 's': 1.5rem,\n 'xs': 1rem\n);\n$-paddings: (\n 'xl': 0 1rem,\n 'l': 0 1rem,\n 'm': 0 0.75rem,\n 's': 0 0.5rem,\n 'xs': 0 0.25rem\n);\n\n// -----\n\n:host {\n display: inline-block;\n max-width: 100%;\n vertical-align: baseline;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.badge {\n font: inherit;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border-radius: cat-border-radius('s');\n text-decoration: none;\n box-sizing: border-box;\n width: 100%;\n line-height: 1;\n\n slot {\n display: inline-block;\n @include cat-ellipsis;\n }\n}\n\n// ----- round\n\n.badge-round {\n border-radius: 10rem;\n}\n\n// ----- theme\n\n.badge-filled {\n background-color: cat-token-wrap(var(--bg));\n color: cat-token-wrap(var(--fill));\n font-weight: 600;\n @include cat-font-smooth;\n}\n\n$-outline: inset 0 0 0 1px cat-token-wrap(var(--border), $alpha: 0.2);\n\n.badge-outlined {\n background-color: cat-token('color.ui.background.body');\n box-shadow: $-outline;\n color: cat-token-wrap(var(--text));\n}\n\n@mixin theme($theme) {\n .badge-#{$theme} {\n --bg: #{cat-token('color.theme.#{$theme}.bg', $wrap: false)};\n --fill: #{cat-token('color.theme.#{$theme}.fill', $wrap: false)};\n --text: #{cat-token('color.theme.#{$theme}.text', $wrap: false)};\n @if $theme == 'secondary' {\n --border: #{cat-token('color.theme.#{$theme}.bg', $wrap: false)};\n } @else {\n --border: #{cat-token('color.theme.#{$theme}.text', $wrap: false)};\n }\n }\n}\n\n@include theme('primary');\n@include theme('secondary');\n@include theme('success');\n@include theme('warning');\n@include theme('danger');\n\n// ----- size\n\n@mixin size($size, $fontSize) {\n .badge-#{$size} {\n height: map.get($-sizes, $size);\n min-width: map.get($-sizes, $size);\n font-size: cat-body-font-size($fontSize);\n padding: map.get($-paddings, $size);\n }\n}\n\n@include size('xs', 'xs');\n@include size('s', 'xs');\n@include size('m', 's');\n@include size('l', 'm');\n@include size('xl', 'l');\n\n// ----- pulse\n\n$-pulse-0: 0 0 0 0 cat-token-wrap(var(--bg));\n$-pulse-70: transparent 0 0 0 0.5rem;\n$-pulse-100: transparent 0 0 0 0;\n\n.badge-pulse {\n &.badge-filled {\n animation: 1.5s ease 0s infinite normal none running pulse;\n }\n\n &.badge-outlined {\n animation: 1.5s ease 0s infinite normal none running pulse-outlined;\n }\n}\n\n@keyframes pulse {\n 0% {\n box-shadow: $-pulse-0;\n }\n\n 70% {\n box-shadow: $-pulse-70;\n }\n\n 100% {\n box-shadow: $-pulse-100;\n }\n}\n\n@keyframes pulse-outlined {\n 0% {\n box-shadow: $-pulse-0, $-outline;\n }\n\n 70% {\n box-shadow: $-pulse-70, $-outline;\n }\n\n 100% {\n box-shadow: $-pulse-100, $-outline;\n }\n}\n","import { Component, h, Prop } from '@stencil/core';\n\n/**\n * Badges are used to inform users of the status of an object or of an action\n * that’s been taken.\n *\n * @part badge - The badge element.\n */\n@Component({\n tag: 'cat-badge',\n styleUrl: 'cat-badge.scss',\n shadow: true\n})\nexport class CatBadge {\n /**\n * The rendering style of the badge.\n */\n @Prop() variant: 'filled' | 'outlined' = 'filled';\n\n /**\n * The color palette of the badge.\n */\n @Prop() color: 'primary' | 'secondary' | 'danger' | 'success' | 'warning' = 'primary';\n\n /**\n * The size of the badge.\n */\n @Prop() size: 'xs' | 's' | 'm' | 'l' | 'xl' = 'm';\n\n /**\n * Use round badge edges.\n */\n @Prop() round = false;\n\n /**\n * Draw attention to the badge with a subtle animation.\n */\n @Prop() pulse = false;\n\n render() {\n return (\n <span\n part=\"badge\"\n class={{\n badge: true,\n 'badge-round': this.round,\n 'badge-pulse': this.pulse,\n [`badge-${this.variant}`]: Boolean(this.variant),\n [`badge-${this.color}`]: Boolean(this.color),\n [`badge-${this.size}`]: Boolean(this.size)\n }}\n >\n <slot></slot>\n </span>\n );\n }\n}\n"],"version":3}
|