@affinda/wc 0.0.1 → 0.0.3
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/affinda/af-aspect-ratio.entry.esm.js.map +1 -0
- package/dist/affinda/af-button-group.entry.esm.js.map +1 -0
- package/dist/affinda/af-button.entry.esm.js.map +1 -0
- package/dist/affinda/af-color-swatch.entry.esm.js.map +1 -0
- package/dist/affinda/af-container.entry.esm.js.map +1 -0
- package/dist/affinda/af-heading.af-logo.af-nav-item.af-navbar.af-text.entry.esm.js.map +1 -0
- package/dist/affinda/af-icon-button.entry.esm.js.map +1 -0
- package/dist/affinda/af-typography-lockup.entry.esm.js.map +1 -0
- package/dist/affinda/affinda.css +1 -1
- package/dist/affinda/affinda.esm.js +1 -1
- package/dist/affinda/index.esm.js +1 -1
- package/dist/affinda/index.esm.js.map +1 -1
- package/dist/affinda/p-540af9d9.entry.js +2 -0
- package/dist/affinda/p-540af9d9.entry.js.map +1 -0
- package/dist/affinda/p-619bc077.entry.js +2 -0
- package/dist/affinda/p-619bc077.entry.js.map +1 -0
- package/dist/affinda/p-6b07f590.entry.js +2 -0
- package/dist/affinda/p-6b07f590.entry.js.map +1 -0
- package/dist/affinda/p-8d3b4917.entry.js +2 -0
- package/dist/affinda/p-8d3b4917.entry.js.map +1 -0
- package/dist/affinda/p-9d0e6ed1.entry.js +2 -0
- package/dist/affinda/p-9d0e6ed1.entry.js.map +1 -0
- package/dist/affinda/p-DxVtR6vj.js +3 -0
- package/dist/affinda/p-DxVtR6vj.js.map +1 -0
- package/dist/affinda/p-afbe9cb3.entry.js +2 -0
- package/dist/affinda/p-afbe9cb3.entry.js.map +1 -0
- package/dist/affinda/p-cbb06a14.entry.js +2 -0
- package/dist/affinda/p-cbb06a14.entry.js.map +1 -0
- package/dist/affinda/p-e274e11a.entry.js +2 -0
- package/dist/affinda/p-e274e11a.entry.js.map +1 -0
- package/dist/cjs/af-aspect-ratio.cjs.entry.js +83 -0
- package/dist/cjs/af-aspect-ratio.entry.cjs.js.map +1 -0
- package/dist/cjs/af-button-group.cjs.entry.js +30 -0
- package/dist/cjs/af-button-group.entry.cjs.js.map +1 -0
- package/dist/cjs/af-button.cjs.entry.js +48 -0
- package/dist/cjs/af-button.entry.cjs.js.map +1 -0
- package/dist/cjs/af-color-swatch.cjs.entry.js +23 -0
- package/dist/cjs/af-color-swatch.entry.cjs.js.map +1 -0
- package/dist/cjs/af-container.cjs.entry.js +26 -0
- package/dist/cjs/af-container.entry.cjs.js.map +1 -0
- package/dist/cjs/af-heading.af-logo.af-nav-item.af-navbar.af-text.entry.cjs.js.map +1 -0
- package/dist/cjs/af-heading_5.cjs.entry.js +128 -0
- package/dist/cjs/af-icon-button.cjs.entry.js +44 -0
- package/dist/cjs/af-icon-button.entry.cjs.js.map +1 -0
- package/dist/cjs/af-typography-lockup.cjs.entry.js +45 -0
- package/dist/cjs/af-typography-lockup.entry.cjs.js.map +1 -0
- package/dist/cjs/affinda.cjs.js +2 -2
- package/dist/cjs/{index-5BGpYleS.js → index-E2jkaTPt.js} +92 -61
- package/dist/cjs/index-E2jkaTPt.js.map +1 -0
- package/dist/cjs/index.cjs.js +24 -136
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/collection/collection-manifest.json +10 -3
- package/dist/collection/components/af-aspect-ratio/af-aspect-ratio.css +17 -0
- package/dist/collection/components/af-aspect-ratio/af-aspect-ratio.js +117 -0
- package/dist/collection/components/af-aspect-ratio/af-aspect-ratio.js.map +1 -0
- package/dist/collection/components/af-button/af-button.css +151 -42
- package/dist/collection/components/af-button/af-button.js +62 -57
- package/dist/collection/components/af-button/af-button.js.map +1 -1
- package/dist/collection/components/af-button-group/af-button-group.css +22 -0
- package/dist/collection/components/af-button-group/af-button-group.js +77 -0
- package/dist/collection/components/af-button-group/af-button-group.js.map +1 -0
- package/dist/collection/components/af-color-swatch/af-color-swatch.css +42 -0
- package/dist/collection/components/af-color-swatch/af-color-swatch.js +88 -0
- package/dist/collection/components/af-color-swatch/af-color-swatch.js.map +1 -0
- package/dist/collection/components/af-container/af-container.css +76 -0
- package/dist/collection/components/af-container/af-container.js +57 -0
- package/dist/collection/components/af-container/af-container.js.map +1 -0
- package/dist/collection/components/af-heading/af-heading.css +99 -0
- package/dist/collection/components/af-heading/af-heading.js +86 -0
- package/dist/collection/components/af-heading/af-heading.js.map +1 -0
- package/dist/collection/components/af-icon-button/af-icon-button.css +140 -41
- package/dist/collection/components/af-icon-button/af-icon-button.js +81 -57
- package/dist/collection/components/af-icon-button/af-icon-button.js.map +1 -1
- package/dist/collection/components/af-logo/af-logo.css +10 -0
- package/dist/collection/components/af-logo/af-logo.js +22 -0
- package/dist/collection/components/af-logo/af-logo.js.map +1 -0
- package/dist/collection/components/af-nav-item/af-nav-item.css +146 -0
- package/dist/collection/components/af-nav-item/af-nav-item.js +134 -0
- package/dist/collection/components/af-nav-item/af-nav-item.js.map +1 -0
- package/dist/collection/components/af-navbar/af-navbar.css +119 -0
- package/dist/collection/components/af-navbar/af-navbar.js +23 -0
- package/dist/collection/components/af-navbar/af-navbar.js.map +1 -0
- package/dist/collection/components/af-text/af-text.css +61 -0
- package/dist/collection/components/af-text/af-text.js +96 -0
- package/dist/collection/components/af-text/af-text.js.map +1 -0
- package/dist/collection/components/af-typography-lockup/af-typography-lockup.css +168 -0
- package/dist/collection/components/af-typography-lockup/af-typography-lockup.js +151 -0
- package/dist/collection/components/af-typography-lockup/af-typography-lockup.js.map +1 -0
- package/dist/collection/components.js +10 -3
- package/dist/collection/components.js.map +1 -1
- package/dist/components/af-aspect-ratio.d.ts +11 -0
- package/dist/components/af-aspect-ratio.js +9 -0
- package/dist/components/af-aspect-ratio.js.map +1 -0
- package/dist/components/af-button-group.d.ts +11 -0
- package/dist/components/af-button-group.js +9 -0
- package/dist/components/af-button-group.js.map +1 -0
- package/dist/components/af-button.js +1 -1
- package/dist/components/af-color-swatch.d.ts +11 -0
- package/dist/components/af-color-swatch.js +9 -0
- package/dist/components/af-color-swatch.js.map +1 -0
- package/dist/components/af-container.d.ts +11 -0
- package/dist/components/af-container.js +9 -0
- package/dist/components/af-container.js.map +1 -0
- package/dist/components/af-heading.d.ts +11 -0
- package/dist/components/af-heading.js +9 -0
- package/dist/components/af-heading.js.map +1 -0
- package/dist/components/af-icon-button.js +1 -1
- package/dist/components/{af-card.d.ts → af-logo.d.ts} +4 -4
- package/dist/components/af-logo.js +9 -0
- package/dist/components/af-logo.js.map +1 -0
- package/dist/components/af-nav-item.d.ts +11 -0
- package/dist/components/af-nav-item.js +9 -0
- package/dist/components/af-nav-item.js.map +1 -0
- package/dist/components/{af-badge.d.ts → af-navbar.d.ts} +4 -4
- package/dist/components/af-navbar.js +9 -0
- package/dist/components/af-navbar.js.map +1 -0
- package/dist/components/{af-input.d.ts → af-text.d.ts} +4 -4
- package/dist/components/af-text.js +9 -0
- package/dist/components/af-text.js.map +1 -0
- package/dist/components/af-typography-lockup.d.ts +11 -0
- package/dist/components/af-typography-lockup.js +9 -0
- package/dist/components/af-typography-lockup.js.map +1 -0
- package/dist/components/index.js +13 -6
- package/dist/components/index.js.map +1 -1
- package/dist/components/p-B17zxKkI.js +35 -0
- package/dist/components/p-B17zxKkI.js.map +1 -0
- package/dist/components/p-BJDmHNDi.js +59 -0
- package/dist/components/p-BJDmHNDi.js.map +1 -0
- package/dist/components/p-BfmeW04T.js +50 -0
- package/dist/components/p-BfmeW04T.js.map +1 -0
- package/dist/components/p-BoU5qaPt.js +68 -0
- package/dist/components/p-BoU5qaPt.js.map +1 -0
- package/dist/components/p-CT_9_xN3.js +50 -0
- package/dist/components/p-CT_9_xN3.js.map +1 -0
- package/dist/components/{p-DOtgsZRB.js → p-CzaQ1fCu.js} +92 -65
- package/dist/components/p-CzaQ1fCu.js.map +1 -0
- package/dist/components/p-DG7Mtz0G.js +66 -0
- package/dist/components/p-DG7Mtz0G.js.map +1 -0
- package/dist/components/p-DcFGu6up.js +68 -0
- package/dist/components/p-DcFGu6up.js.map +1 -0
- package/dist/components/p-DfIqdEs7.js +45 -0
- package/dist/components/p-DfIqdEs7.js.map +1 -0
- package/dist/components/p-DqIqR4VU.js +102 -0
- package/dist/components/p-DqIqR4VU.js.map +1 -0
- package/dist/components/p-LEksuu7O.js +44 -0
- package/dist/components/p-LEksuu7O.js.map +1 -0
- package/dist/components/p-uhOM63Ux.js +71 -0
- package/dist/components/p-uhOM63Ux.js.map +1 -0
- package/dist/components/p-zBrKMKWE.js +35 -0
- package/dist/components/p-zBrKMKWE.js.map +1 -0
- package/dist/esm/af-aspect-ratio.entry.js +81 -0
- package/dist/esm/af-aspect-ratio.entry.js.map +1 -0
- package/dist/esm/af-button-group.entry.js +28 -0
- package/dist/esm/af-button-group.entry.js.map +1 -0
- package/dist/esm/af-button.entry.js +46 -0
- package/dist/esm/af-button.entry.js.map +1 -0
- package/dist/esm/af-color-swatch.entry.js +21 -0
- package/dist/esm/af-color-swatch.entry.js.map +1 -0
- package/dist/esm/af-container.entry.js +24 -0
- package/dist/esm/af-container.entry.js.map +1 -0
- package/dist/esm/af-heading.af-logo.af-nav-item.af-navbar.af-text.entry.js.map +1 -0
- package/dist/esm/af-heading_5.entry.js +122 -0
- package/dist/esm/af-icon-button.entry.js +42 -0
- package/dist/esm/af-icon-button.entry.js.map +1 -0
- package/dist/esm/af-typography-lockup.entry.js +43 -0
- package/dist/esm/af-typography-lockup.entry.js.map +1 -0
- package/dist/esm/affinda.js +3 -3
- package/dist/esm/{index-o0tfWqnY.js → index-DxVtR6vj.js} +92 -61
- package/dist/esm/index-DxVtR6vj.js.map +1 -0
- package/dist/esm/index.js +9 -132
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/loader.js +3 -3
- package/dist/types/components/af-aspect-ratio/af-aspect-ratio.d.ts +18 -0
- package/dist/types/components/af-button/af-button.d.ts +19 -11
- package/dist/types/components/af-button-group/af-button-group.d.ts +11 -0
- package/dist/types/components/af-color-swatch/af-color-swatch.d.ts +9 -0
- package/dist/types/components/af-container/af-container.d.ts +15 -0
- package/dist/types/components/af-heading/af-heading.d.ts +8 -0
- package/dist/types/components/af-icon-button/af-icon-button.d.ts +23 -11
- package/dist/types/components/af-logo/af-logo.d.ts +6 -0
- package/dist/types/components/af-nav-item/af-nav-item.d.ts +27 -0
- package/dist/types/components/af-navbar/af-navbar.d.ts +7 -0
- package/dist/types/components/af-text/af-text.d.ts +9 -0
- package/dist/types/components/af-typography-lockup/af-typography-lockup.d.ts +23 -0
- package/dist/types/components.d.ts +416 -163
- package/package.json +13 -13
- package/dist/affinda/af-badge.af-button.af-card.af-icon-button.af-input.entry.esm.js.map +0 -1
- package/dist/affinda/p-bca10492.entry.js +0 -2
- package/dist/affinda/p-bca10492.entry.js.map +0 -1
- package/dist/affinda/p-o0tfWqnY.js +0 -3
- package/dist/affinda/p-o0tfWqnY.js.map +0 -1
- package/dist/cjs/af-badge.af-button.af-card.af-icon-button.af-input.entry.cjs.js.map +0 -1
- package/dist/cjs/af-badge_5.cjs.entry.js +0 -13
- package/dist/cjs/index-5BGpYleS.js.map +0 -1
- package/dist/collection/components/af-badge/af-badge.css +0 -29
- package/dist/collection/components/af-badge/af-badge.js +0 -47
- package/dist/collection/components/af-badge/af-badge.js.map +0 -1
- package/dist/collection/components/af-card/af-card.css +0 -69
- package/dist/collection/components/af-card/af-card.js +0 -70
- package/dist/collection/components/af-card/af-card.js.map +0 -1
- package/dist/collection/components/af-input/af-input.css +0 -57
- package/dist/collection/components/af-input/af-input.js +0 -193
- package/dist/collection/components/af-input/af-input.js.map +0 -1
- package/dist/components/af-badge.js +0 -9
- package/dist/components/af-badge.js.map +0 -1
- package/dist/components/af-card.js +0 -9
- package/dist/components/af-card.js.map +0 -1
- package/dist/components/af-input.js +0 -9
- package/dist/components/af-input.js.map +0 -1
- package/dist/components/p-B7I93sz2.js +0 -39
- package/dist/components/p-B7I93sz2.js.map +0 -1
- package/dist/components/p-CZd1ieht.js +0 -62
- package/dist/components/p-CZd1ieht.js.map +0 -1
- package/dist/components/p-D6PwARU0.js +0 -59
- package/dist/components/p-D6PwARU0.js.map +0 -1
- package/dist/components/p-DOtgsZRB.js.map +0 -1
- package/dist/components/p-DZIXhvI0.js +0 -44
- package/dist/components/p-DZIXhvI0.js.map +0 -1
- package/dist/components/p-zIKPa48S.js +0 -62
- package/dist/components/p-zIKPa48S.js.map +0 -1
- package/dist/esm/af-badge.af-button.af-card.af-icon-button.af-input.entry.js.map +0 -1
- package/dist/esm/af-badge_5.entry.js +0 -3
- package/dist/esm/index-o0tfWqnY.js.map +0 -1
- package/dist/types/components/af-badge/af-badge.d.ts +0 -5
- package/dist/types/components/af-card/af-card.d.ts +0 -7
- package/dist/types/components/af-input/af-input.d.ts +0 -24
package/dist/cjs/index.cjs.js
CHANGED
|
@@ -1,139 +1,27 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
}
|
|
28
|
-
render() {
|
|
29
|
-
const classes = {
|
|
30
|
-
[`variant-${this.variant}`]: true,
|
|
31
|
-
[`size-${this.size}`]: true,
|
|
32
|
-
'is-loading': this.loading
|
|
33
|
-
};
|
|
34
|
-
return (index.h("button", { key: '11e06f0158591b7aaf60633fa12e91a2904d2f57', class: classes, part: "base", disabled: this.disabled || this.loading, onClick: this.handleClick }, index.h("span", { key: 'bdea09a13233b2e9c682e3c0a3d02fc8fe791668', class: "spinner", part: "spinner", "aria-hidden": !this.loading }), index.h("span", { key: '24a80ba696aecacda181203379345b28e741583c', class: "content", part: "label" }, index.h("slot", { key: 'bdd3731c9c98091503e1c87a7fe940bb72579d27' }))));
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
AfButton.style = afButtonCss;
|
|
38
|
-
|
|
39
|
-
const afBadgeCss = ":host{display:inline-block}span{display:inline-flex;align-items:center;justify-content:center;padding:2px var(--af-space-2);border-radius:var(--af-radius-pill);font:var(--af-font-weight-semibold) var(--af-size-font-sm) / 1 var(--af-font-family-sans);letter-spacing:0.02em;text-transform:uppercase}span.tone-brand{background:rgba(124, 58, 237, 0.12);color:var(--af-color-brand-primary-500)}span.tone-neutral{background:rgba(18, 15, 31, 0.1);color:var(--af-color-fg-default)}span.tone-success{background:rgba(16, 185, 129, 0.12);color:#0f766e}";
|
|
40
|
-
|
|
41
|
-
const AfBadge = class {
|
|
42
|
-
constructor(hostRef) {
|
|
43
|
-
index.registerInstance(this, hostRef);
|
|
44
|
-
/** Color theme of the badge */
|
|
45
|
-
this.tone = 'brand';
|
|
46
|
-
}
|
|
47
|
-
render() {
|
|
48
|
-
return (index.h("span", { key: '1f9d4015b429e012eade75e331c991d5c785482d', class: `tone-${this.tone}`, part: "base" }, index.h("slot", { key: 'b69b37a3e996c43cb16d04d829232d9539f45e06' })));
|
|
49
|
-
}
|
|
50
|
-
};
|
|
51
|
-
AfBadge.style = afBadgeCss;
|
|
52
|
-
|
|
53
|
-
const afIconButtonCss = ":host{display:inline-flex}button{--button-size-sm:36px;--button-size-md:44px;width:var(--button-size-md);height:var(--button-size-md);border-radius:50%;border:none;display:inline-flex;align-items:center;justify-content:center;background:transparent;color:var(--af-color-brand-primary-500);cursor:pointer;transition:transform 120ms ease, box-shadow 160ms ease, background-color 160ms ease;box-shadow:none}button.size-sm{width:var(--button-size-sm);height:var(--button-size-sm)}button:disabled{cursor:not-allowed;opacity:0.5;box-shadow:none}button.variant-solid{background:linear-gradient(135deg, var(--af-color-brand-primary-500), var(--af-color-brand-primary-600));color:var(--af-color-fg-inverse);box-shadow:0 10px 24px rgba(124, 58, 237, 0.24)}button.variant-soft{background:rgba(124, 58, 237, 0.14);color:var(--af-color-brand-primary-500)}button.variant-ghost{border:1px solid rgba(124, 58, 237, 0.4);background:transparent}button:is(:hover,:focus-visible){transform:translateY(-1px);box-shadow:0 14px 30px rgba(124, 58, 237, 0.28)}button:active{transform:translateY(0);box-shadow:0 8px 18px rgba(124, 58, 237, 0.2)}.icon{display:inline-flex;align-items:center;justify-content:center;width:1.5em;height:1.5em}:host([disabled]) button{transform:none;box-shadow:none}";
|
|
54
|
-
|
|
55
|
-
const AfIconButton = class {
|
|
56
|
-
constructor(hostRef) {
|
|
57
|
-
index.registerInstance(this, hostRef);
|
|
58
|
-
this.afClick = index.createEvent(this, "afClick");
|
|
59
|
-
/** Visual style of the icon button */
|
|
60
|
-
this.variant = 'solid';
|
|
61
|
-
/** Size preset */
|
|
62
|
-
this.size = 'md';
|
|
63
|
-
/** Disabled state */
|
|
64
|
-
this.disabled = false;
|
|
65
|
-
this.onClick = (event) => {
|
|
66
|
-
if (this.disabled) {
|
|
67
|
-
event.preventDefault();
|
|
68
|
-
event.stopPropagation();
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
|
-
this.afClick.emit(event);
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
render() {
|
|
75
|
-
const classes = {
|
|
76
|
-
[`variant-${this.variant}`]: true,
|
|
77
|
-
[`size-${this.size}`]: true
|
|
78
|
-
};
|
|
79
|
-
return (index.h("button", { key: '0f63eddac5f4dab95835506b896e437218aa50e1', type: "button", class: classes, part: "base", disabled: this.disabled, "aria-label": this.label, onClick: this.onClick }, index.h("span", { key: '6400064df3b666cbcc0a4a51523f1cd08dcbe81a', part: "icon", class: "icon" }, index.h("slot", { key: 'a74fff21c0a3af05da37b12e45db8ca8913bbdea' }))));
|
|
80
|
-
}
|
|
81
|
-
};
|
|
82
|
-
AfIconButton.style = afIconButtonCss;
|
|
83
|
-
|
|
84
|
-
const afCardCss = ":host{display:block}article{position:relative;border-radius:var(--af-radius-md);background:var(--af-color-bg-surface);color:var(--af-color-fg-default);padding:calc(var(--af-space-4) * 1.5);box-shadow:none;border:1px solid rgba(18, 15, 31, 0.06);transition:box-shadow 160ms ease, transform 160ms ease;display:block;overflow:hidden}article.variant-elevated{box-shadow:0 18px 36px rgba(47, 22, 94, 0.18);border:none}article:hover{transform:translateY(-2px);box-shadow:0 24px 44px rgba(47, 22, 94, 0.24)}.accent{position:absolute;inset:0;width:6px;left:0;right:auto;background:linear-gradient(180deg, var(--af-color-brand-primary-500), var(--af-color-brand-primary-600))}article.accent-brand .accent{background:linear-gradient(180deg, var(--af-color-brand-primary-500), var(--af-color-brand-primary-600))}article.accent-success .accent{background:linear-gradient(180deg, #22c55e, #16a34a)}article.accent-neutral .accent{background:rgba(18, 15, 31, 0.18)}.content{margin-left:12px;display:grid;gap:var(--af-space-3)}.header:empty,.footer:empty{display:none}.header ::slotted(*){font-size:1.125rem;font-weight:var(--af-font-weight-semibold)}.footer ::slotted(*){display:inline-flex;gap:var(--af-space-2);align-items:center}";
|
|
85
|
-
|
|
86
|
-
const AfCard = class {
|
|
87
|
-
constructor(hostRef) {
|
|
88
|
-
index.registerInstance(this, hostRef);
|
|
89
|
-
/** Visual style of the card */
|
|
90
|
-
this.variant = 'surface';
|
|
91
|
-
}
|
|
92
|
-
render() {
|
|
93
|
-
const classes = {
|
|
94
|
-
[`variant-${this.variant}`]: true,
|
|
95
|
-
[`accent-${this.accent}`]: Boolean(this.accent)
|
|
96
|
-
};
|
|
97
|
-
return (index.h("article", { key: '6341b7150eb902027923228343dd017fee6aef32', class: classes, part: "base" }, this.accent ? index.h("span", { class: "accent", part: "accent", "aria-hidden": "true" }) : null, index.h("div", { key: '06256637c0e9e3a150b59fbc6f73d5b2867729ad', class: "content", part: "content" }, index.h("header", { key: '8f8c893d528cece13d1e9de7115b490a5ed84c88', class: "header", part: "header" }, index.h("slot", { key: 'b404fcc38918bb952678d78c035e9e7ad6e797ef', name: "header" })), index.h("div", { key: '2028736e547446fe12469cf74aec97daf6e3f10a', class: "body", part: "body" }, index.h("slot", { key: 'a2110bc4cfa174e4514d572d7a9cd28652c7da9a' })), index.h("footer", { key: '221a8202625e2794846ff7d68af45f9046fcfe58', class: "footer", part: "footer" }, index.h("slot", { key: 'b20d0e41962dbe766116845e2ef20c68003be7a7', name: "footer" })))));
|
|
98
|
-
}
|
|
99
|
-
};
|
|
100
|
-
AfCard.style = afCardCss;
|
|
101
|
-
|
|
102
|
-
const afInputCss = ":host{display:block;font-family:var(--af-font-family-sans)}label{display:grid;gap:var(--af-space-2);color:var(--af-color-fg-default)}.label{font-size:0.95rem;font-weight:var(--af-font-weight-semibold)}.control{position:relative}input{width:100%;padding:calc(var(--af-space-2) + 2px) calc(var(--af-space-4) + 8px);border-radius:var(--af-radius-md);border:1px solid rgba(18, 15, 31, 0.18);background:rgba(255, 255, 255, 0.9);color:inherit;font:inherit;transition:border-color 160ms ease, box-shadow 160ms ease;box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.6)}input::placeholder{color:var(--af-color-fg-muted);opacity:0.8}input:focus-visible{outline:none;border-color:var(--af-color-brand-primary-500);box-shadow:0 0 0 4px rgba(124, 58, 237, 0.18)}label.disabled{opacity:0.55;cursor:not-allowed}input:disabled{background:rgba(241, 240, 247, 0.7);cursor:not-allowed}.description{font-size:0.825rem;color:var(--af-color-fg-muted)}";
|
|
103
|
-
|
|
104
|
-
let inputIds = 0;
|
|
105
|
-
const AfInput = class {
|
|
106
|
-
constructor(hostRef) {
|
|
107
|
-
index.registerInstance(this, hostRef);
|
|
108
|
-
this.afInput = index.createEvent(this, "afInput");
|
|
109
|
-
this.afChange = index.createEvent(this, "afChange");
|
|
110
|
-
this.inputId = `af-input-${++inputIds}`;
|
|
111
|
-
this.descriptionId = `${this.inputId}-desc`;
|
|
112
|
-
/** Input type attribute */
|
|
113
|
-
this.type = 'text';
|
|
114
|
-
/** Current value (mutable so the component stays in sync) */
|
|
115
|
-
this.value = '';
|
|
116
|
-
/** Disabled state */
|
|
117
|
-
this.disabled = false;
|
|
118
|
-
this.handleInput = (event) => {
|
|
119
|
-
const target = event.target;
|
|
120
|
-
this.value = target.value;
|
|
121
|
-
this.afInput.emit(this.value);
|
|
122
|
-
};
|
|
123
|
-
this.handleChange = () => {
|
|
124
|
-
this.afChange.emit(this.value);
|
|
125
|
-
};
|
|
126
|
-
}
|
|
127
|
-
render() {
|
|
128
|
-
const describedBy = this.description ? this.descriptionId : undefined;
|
|
129
|
-
return (index.h("label", { key: 'd14267dee125c07311c07bc31f0151448095dba6', part: "label", class: { disabled: this.disabled }, htmlFor: this.inputId }, this.label ? (index.h("span", { class: "label", part: "label-text" }, this.label)) : null, index.h("div", { key: 'd3b6428100e25c981650f5faa23df549d587ac10', class: "control" }, index.h("input", { key: '9e26981c32775b79ce9c3458a4890968fab04ef6', part: "field", id: this.inputId, type: this.type, placeholder: this.placeholder, value: this.value, disabled: this.disabled, "aria-describedby": describedBy, onInput: this.handleInput, onChange: this.handleChange })), this.description ? (index.h("p", { id: this.descriptionId, class: "description", part: "description" }, this.description)) : null));
|
|
130
|
-
}
|
|
131
|
-
};
|
|
132
|
-
AfInput.style = afInputCss;
|
|
133
|
-
|
|
134
|
-
exports.AfBadge = AfBadge;
|
|
135
|
-
exports.AfButton = AfButton;
|
|
136
|
-
exports.AfCard = AfCard;
|
|
137
|
-
exports.AfIconButton = AfIconButton;
|
|
138
|
-
exports.AfInput = AfInput;
|
|
3
|
+
var afHeading_afLogo_afNavItem_afNavbar_afText_entry = require('./af-heading_5.cjs.entry.js');
|
|
4
|
+
var afColorSwatch_entry = require('./af-color-swatch.cjs.entry.js');
|
|
5
|
+
var afContainer_entry = require('./af-container.cjs.entry.js');
|
|
6
|
+
var afAspectRatio_entry = require('./af-aspect-ratio.cjs.entry.js');
|
|
7
|
+
var afButton_entry = require('./af-button.cjs.entry.js');
|
|
8
|
+
var afIconButton_entry = require('./af-icon-button.cjs.entry.js');
|
|
9
|
+
var afButtonGroup_entry = require('./af-button-group.cjs.entry.js');
|
|
10
|
+
var afTypographyLockup_entry = require('./af-typography-lockup.cjs.entry.js');
|
|
11
|
+
require('./index-E2jkaTPt.js');
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
exports.AfHeading = afHeading_afLogo_afNavItem_afNavbar_afText_entry.af_heading;
|
|
16
|
+
exports.AfLogo = afHeading_afLogo_afNavItem_afNavbar_afText_entry.af_logo;
|
|
17
|
+
exports.AfNavItem = afHeading_afLogo_afNavItem_afNavbar_afText_entry.af_nav_item;
|
|
18
|
+
exports.AfNavbar = afHeading_afLogo_afNavItem_afNavbar_afText_entry.af_navbar;
|
|
19
|
+
exports.AfText = afHeading_afLogo_afNavItem_afNavbar_afText_entry.af_text;
|
|
20
|
+
exports.AfColorSwatch = afColorSwatch_entry.af_color_swatch;
|
|
21
|
+
exports.AfContainer = afContainer_entry.af_container;
|
|
22
|
+
exports.AfAspectRatio = afAspectRatio_entry.af_aspect_ratio;
|
|
23
|
+
exports.AfButton = afButton_entry.af_button;
|
|
24
|
+
exports.AfIconButton = afIconButton_entry.af_icon_button;
|
|
25
|
+
exports.AfButtonGroup = afButtonGroup_entry.af_button_group;
|
|
26
|
+
exports.AfTypographyLockup = afTypographyLockup_entry.af_typography_lockup;
|
|
139
27
|
//# sourceMappingURL=index.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","sources":["src/components/af-button/af-button.css?tag=af-button&encapsulation=shadow","src/components/af-button/af-button.tsx","src/components/af-badge/af-badge.css?tag=af-badge&encapsulation=shadow","src/components/af-badge/af-badge.tsx","src/components/af-icon-button/af-icon-button.css?tag=af-icon-button&encapsulation=shadow","src/components/af-icon-button/af-icon-button.tsx","src/components/af-card/af-card.css?tag=af-card&encapsulation=shadow","src/components/af-card/af-card.tsx","src/components/af-input/af-input.css?tag=af-input&encapsulation=shadow","src/components/af-input/af-input.tsx"],"sourcesContent":[":host {\n display: inline-block;\n}\n\nbutton {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--af-space-2);\n font: var(--af-font-weight-semibold) var(--af-size-font-md) / 1 var(--af-font-family-sans);\n border-radius: var(--af-radius-md);\n padding: var(--af-space-2) var(--af-space-4);\n border: none;\n cursor: pointer;\n transition: transform 120ms ease, box-shadow 160ms ease;\n box-shadow: 0 8px 20px rgba(124, 58, 237, 0.18);\n}\n\nbutton:is(:hover, :focus-visible) {\n transform: translateY(-1px);\n box-shadow: 0 12px 24px rgba(124, 58, 237, 0.24);\n}\n\nbutton:active {\n transform: translateY(0);\n box-shadow: 0 6px 16px rgba(124, 58, 237, 0.16);\n}\n\nbutton:disabled {\n cursor: not-allowed;\n opacity: 0.6;\n transform: none;\n box-shadow: none;\n}\n\nbutton.variant-primary {\n background: linear-gradient(135deg, var(--af-color-brand-primary-500), var(--af-color-brand-primary-600));\n color: var(--af-color-fg-inverse);\n}\n\nbutton.variant-secondary {\n background: var(--af-color-bg-subtle);\n color: var(--af-color-fg-default);\n box-shadow: inset 0 0 0 1px rgba(18, 15, 31, 0.08);\n}\n\nbutton.variant-ghost {\n background: transparent;\n color: var(--af-color-brand-primary-500);\n box-shadow: inset 0 0 0 1px rgba(124, 58, 237, 0.3);\n}\n\nbutton.size-lg {\n padding: calc(var(--af-space-3)) calc(var(--af-space-4) + 4px);\n font-size: var(--af-size-font-lg);\n}\n\nbutton .spinner {\n position: absolute;\n inset: 0;\n border-radius: inherit;\n background: radial-gradient(circle at center, rgba(255, 255, 255, 0.18), transparent 55%);\n opacity: 0;\n transition: opacity 120ms ease;\n}\n\nbutton.is-loading .spinner {\n opacity: 1;\n}\n\nbutton.is-loading .content {\n opacity: 0.6;\n}\n","import { Component, Event, EventEmitter, h, Prop } from '@stencil/core';\n\n@Component({\n tag: 'af-button',\n styleUrl: 'af-button.css',\n shadow: true\n})\nexport class AfButton {\n /** Visual style of the button */\n @Prop() variant: 'primary' | 'secondary' | 'ghost' = 'primary';\n\n /** Size of the button */\n @Prop() size: 'md' | 'lg' = 'md';\n\n /** Disabled state */\n @Prop({ reflect: true }) disabled = false;\n\n /** Loading state */\n @Prop({ reflect: true }) loading = false;\n\n /** Fired when the button is clicked while enabled */\n @Event() afClick!: EventEmitter<MouseEvent>;\n\n private handleClick = (event: MouseEvent) => {\n if (this.disabled || this.loading) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n this.afClick.emit(event);\n };\n\n render() {\n const classes = {\n [`variant-${this.variant}`]: true,\n [`size-${this.size}`]: true,\n 'is-loading': this.loading\n };\n\n return (\n <button\n class={classes}\n part=\"base\"\n disabled={this.disabled || this.loading}\n onClick={this.handleClick}\n >\n <span class=\"spinner\" part=\"spinner\" aria-hidden={!this.loading}></span>\n <span class=\"content\" part=\"label\">\n <slot />\n </span>\n </button>\n );\n }\n}\n",":host {\n display: inline-block;\n}\n\nspan {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: 2px var(--af-space-2);\n border-radius: var(--af-radius-pill);\n font: var(--af-font-weight-semibold) var(--af-size-font-sm) / 1 var(--af-font-family-sans);\n letter-spacing: 0.02em;\n text-transform: uppercase;\n}\n\nspan.tone-brand {\n background: rgba(124, 58, 237, 0.12);\n color: var(--af-color-brand-primary-500);\n}\n\nspan.tone-neutral {\n background: rgba(18, 15, 31, 0.1);\n color: var(--af-color-fg-default);\n}\n\nspan.tone-success {\n background: rgba(16, 185, 129, 0.12);\n color: #0f766e;\n}\n","import { Component, h, Prop } from '@stencil/core';\n\n@Component({\n tag: 'af-badge',\n styleUrl: 'af-badge.css',\n shadow: true\n})\nexport class AfBadge {\n /** Color theme of the badge */\n @Prop() tone: 'brand' | 'neutral' | 'success' = 'brand';\n\n render() {\n return (\n <span class={`tone-${this.tone}`} part=\"base\">\n <slot />\n </span>\n );\n }\n}\n",":host {\n display: inline-flex;\n}\n\nbutton {\n --button-size-sm: 36px;\n --button-size-md: 44px;\n width: var(--button-size-md);\n height: var(--button-size-md);\n border-radius: 50%;\n border: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n color: var(--af-color-brand-primary-500);\n cursor: pointer;\n transition: transform 120ms ease, box-shadow 160ms ease, background-color 160ms ease;\n box-shadow: none;\n}\n\nbutton.size-sm {\n width: var(--button-size-sm);\n height: var(--button-size-sm);\n}\n\nbutton:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n box-shadow: none;\n}\n\nbutton.variant-solid {\n background: linear-gradient(135deg, var(--af-color-brand-primary-500), var(--af-color-brand-primary-600));\n color: var(--af-color-fg-inverse);\n box-shadow: 0 10px 24px rgba(124, 58, 237, 0.24);\n}\n\nbutton.variant-soft {\n background: rgba(124, 58, 237, 0.14);\n color: var(--af-color-brand-primary-500);\n}\n\nbutton.variant-ghost {\n border: 1px solid rgba(124, 58, 237, 0.4);\n background: transparent;\n}\n\nbutton:is(:hover, :focus-visible) {\n transform: translateY(-1px);\n box-shadow: 0 14px 30px rgba(124, 58, 237, 0.28);\n}\n\nbutton:active {\n transform: translateY(0);\n box-shadow: 0 8px 18px rgba(124, 58, 237, 0.2);\n}\n\n.icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 1.5em;\n height: 1.5em;\n}\n\n:host([disabled]) button {\n transform: none;\n box-shadow: none;\n}\n","import { Component, Event, EventEmitter, h, Prop } from '@stencil/core';\n\n@Component({\n tag: 'af-icon-button',\n styleUrl: 'af-icon-button.css',\n shadow: true\n})\nexport class AfIconButton {\n /** Visual style of the icon button */\n @Prop() variant: 'solid' | 'soft' | 'ghost' = 'solid';\n\n /** Size preset */\n @Prop() size: 'sm' | 'md' = 'md';\n\n /** Accessible label text */\n @Prop() label?: string;\n\n /** Disabled state */\n @Prop({ reflect: true }) disabled = false;\n\n /** Raised when the button is activated */\n @Event() afClick!: EventEmitter<MouseEvent>;\n\n private onClick = (event: MouseEvent) => {\n if (this.disabled) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n this.afClick.emit(event);\n };\n\n render() {\n const classes = {\n [`variant-${this.variant}`]: true,\n [`size-${this.size}`]: true\n };\n\n return (\n <button\n type=\"button\"\n class={classes}\n part=\"base\"\n disabled={this.disabled}\n aria-label={this.label}\n onClick={this.onClick}\n >\n <span part=\"icon\" class=\"icon\">\n <slot />\n </span>\n </button>\n );\n }\n}\n",":host {\n display: block;\n}\n\narticle {\n position: relative;\n border-radius: var(--af-radius-md);\n background: var(--af-color-bg-surface);\n color: var(--af-color-fg-default);\n padding: calc(var(--af-space-4) * 1.5);\n box-shadow: none;\n border: 1px solid rgba(18, 15, 31, 0.06);\n transition: box-shadow 160ms ease, transform 160ms ease;\n display: block;\n overflow: hidden;\n}\n\narticle.variant-elevated {\n box-shadow: 0 18px 36px rgba(47, 22, 94, 0.18);\n border: none;\n}\n\narticle:hover {\n transform: translateY(-2px);\n box-shadow: 0 24px 44px rgba(47, 22, 94, 0.24);\n}\n\n.accent {\n position: absolute;\n inset: 0;\n width: 6px;\n left: 0;\n right: auto;\n background: linear-gradient(180deg, var(--af-color-brand-primary-500), var(--af-color-brand-primary-600));\n}\n\narticle.accent-brand .accent {\n background: linear-gradient(180deg, var(--af-color-brand-primary-500), var(--af-color-brand-primary-600));\n}\n\narticle.accent-success .accent {\n background: linear-gradient(180deg, #22c55e, #16a34a);\n}\n\narticle.accent-neutral .accent {\n background: rgba(18, 15, 31, 0.18);\n}\n\n.content {\n margin-left: 12px;\n display: grid;\n gap: var(--af-space-3);\n}\n\n.header:empty,\n.footer:empty {\n display: none;\n}\n\n.header ::slotted(*) {\n font-size: 1.125rem;\n font-weight: var(--af-font-weight-semibold);\n}\n\n.footer ::slotted(*) {\n display: inline-flex;\n gap: var(--af-space-2);\n align-items: center;\n}\n","import { Component, h, Prop } from '@stencil/core';\n\n@Component({\n tag: 'af-card',\n styleUrl: 'af-card.css',\n shadow: true\n})\nexport class AfCard {\n /** Visual style of the card */\n @Prop() variant: 'surface' | 'elevated' = 'surface';\n\n /** Optional accent colour strip */\n @Prop() accent?: 'brand' | 'success' | 'neutral';\n\n render() {\n const classes = {\n [`variant-${this.variant}`]: true,\n [`accent-${this.accent}`]: Boolean(this.accent)\n };\n\n return (\n <article class={classes} part=\"base\">\n {this.accent ? <span class=\"accent\" part=\"accent\" aria-hidden=\"true\"></span> : null}\n <div class=\"content\" part=\"content\">\n <header class=\"header\" part=\"header\">\n <slot name=\"header\"></slot>\n </header>\n <div class=\"body\" part=\"body\">\n <slot></slot>\n </div>\n <footer class=\"footer\" part=\"footer\">\n <slot name=\"footer\"></slot>\n </footer>\n </div>\n </article>\n );\n }\n}\n",":host {\n display: block;\n font-family: var(--af-font-family-sans);\n}\n\nlabel {\n display: grid;\n gap: var(--af-space-2);\n color: var(--af-color-fg-default);\n}\n\n.label {\n font-size: 0.95rem;\n font-weight: var(--af-font-weight-semibold);\n}\n\n.control {\n position: relative;\n}\n\ninput {\n width: 100%;\n padding: calc(var(--af-space-2) + 2px) calc(var(--af-space-4) + 8px);\n border-radius: var(--af-radius-md);\n border: 1px solid rgba(18, 15, 31, 0.18);\n background: rgba(255, 255, 255, 0.9);\n color: inherit;\n font: inherit;\n transition: border-color 160ms ease, box-shadow 160ms ease;\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.6);\n}\n\ninput::placeholder {\n color: var(--af-color-fg-muted);\n opacity: 0.8;\n}\n\ninput:focus-visible {\n outline: none;\n border-color: var(--af-color-brand-primary-500);\n box-shadow: 0 0 0 4px rgba(124, 58, 237, 0.18);\n}\n\nlabel.disabled {\n opacity: 0.55;\n cursor: not-allowed;\n}\n\ninput:disabled {\n background: rgba(241, 240, 247, 0.7);\n cursor: not-allowed;\n}\n\n.description {\n font-size: 0.825rem;\n color: var(--af-color-fg-muted);\n}\n","import { Component, Event, EventEmitter, h, Prop } from '@stencil/core';\n\nlet inputIds = 0;\n\n@Component({\n tag: 'af-input',\n styleUrl: 'af-input.css',\n shadow: true\n})\nexport class AfInput {\n private inputId = `af-input-${++inputIds}`;\n private descriptionId = `${this.inputId}-desc`;\n\n /** Optional label text */\n @Prop() label?: string;\n\n /** Assistive description shown below the field */\n @Prop() description?: string;\n\n /** Input type attribute */\n @Prop() type: 'text' | 'email' | 'password' | 'search' = 'text';\n\n /** Placeholder text */\n @Prop() placeholder?: string;\n\n /** Current value (mutable so the component stays in sync) */\n @Prop({ mutable: true }) value = '';\n\n /** Disabled state */\n @Prop({ reflect: true }) disabled = false;\n\n /** Fired as the user types */\n @Event() afInput!: EventEmitter<string>;\n\n /** Fired when the field loses focus after a change */\n @Event() afChange!: EventEmitter<string>;\n\n private handleInput = (event: Event) => {\n const target = event.target as HTMLInputElement;\n this.value = target.value;\n this.afInput.emit(this.value);\n };\n\n private handleChange = () => {\n this.afChange.emit(this.value);\n };\n\n render() {\n const describedBy = this.description ? this.descriptionId : undefined;\n\n return (\n <label part=\"label\" class={{ disabled: this.disabled }} htmlFor={this.inputId}>\n {this.label ? (\n <span class=\"label\" part=\"label-text\">\n {this.label}\n </span>\n ) : null}\n <div class=\"control\">\n <input\n part=\"field\"\n id={this.inputId}\n type={this.type}\n placeholder={this.placeholder}\n value={this.value}\n disabled={this.disabled}\n aria-describedby={describedBy}\n onInput={this.handleInput}\n onChange={this.handleChange}\n />\n </div>\n {this.description ? (\n <p id={this.descriptionId} class=\"description\" part=\"description\">\n {this.description}\n </p>\n ) : null}\n </label>\n );\n }\n}\n"],"names":["h"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/cjs/loader.cjs.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
3
|
+
var index = require('./index-E2jkaTPt.js');
|
|
4
4
|
|
|
5
5
|
const defineCustomElements = async (win, options) => {
|
|
6
6
|
if (typeof window === 'undefined') return undefined;
|
|
7
7
|
await index.globalScripts();
|
|
8
|
-
return index.bootstrapLazy([["af-
|
|
8
|
+
return index.bootstrapLazy([["af-heading_5.cjs",[[257,"af-heading",{"level":[1],"align":[1]}],[257,"af-logo"],[257,"af-nav-item",{"hierarchy":[1],"variant":[1],"href":[1],"active":[4]}],[257,"af-navbar"],[257,"af-text",{"variant":[1],"align":[1],"as":[1]}]]],["af-aspect-ratio.cjs",[[257,"af-aspect-ratio",{"ratio":[1]}]]],["af-button.cjs",[[257,"af-button",{"variant":[1],"size":[1],"disabled":[4],"href":[1],"type":[1]}]]],["af-button-group.cjs",[[257,"af-button-group",{"direction":[1],"gap":[1]}]]],["af-color-swatch.cjs",[[257,"af-color-swatch",{"color":[1],"name":[1],"size":[1]}]]],["af-container.cjs",[[257,"af-container",{"maxWidth":[1,"max-width"]}]]],["af-icon-button.cjs",[[257,"af-icon-button",{"variant":[1],"size":[1],"disabled":[4],"href":[1],"type":[1],"ariaLabel":[1,"aria-label"]}]]],["af-typography-lockup.cjs",[[257,"af-typography-lockup",{"headingSize":[2,"heading-size"],"breakpoint":[1],"textAlignment":[1,"text-alignment"],"buttonAlignment":[1,"button-alignment"],"maxWidth":[2,"max-width"]}]]]], options);
|
|
9
9
|
};
|
|
10
10
|
|
|
11
11
|
exports.setNonce = index.setNonce;
|
|
@@ -1,10 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"entries": [
|
|
3
|
+
"components/af-heading/af-heading.js",
|
|
4
|
+
"components/af-text/af-text.js",
|
|
5
|
+
"components/af-color-swatch/af-color-swatch.js",
|
|
6
|
+
"components/af-container/af-container.js",
|
|
7
|
+
"components/af-aspect-ratio/af-aspect-ratio.js",
|
|
8
|
+
"components/af-nav-item/af-nav-item.js",
|
|
9
|
+
"components/af-navbar/af-navbar.js",
|
|
10
|
+
"components/af-logo/af-logo.js",
|
|
3
11
|
"components/af-button/af-button.js",
|
|
4
|
-
"components/af-badge/af-badge.js",
|
|
5
12
|
"components/af-icon-button/af-icon-button.js",
|
|
6
|
-
"components/af-
|
|
7
|
-
"components/af-
|
|
13
|
+
"components/af-button-group/af-button-group.js",
|
|
14
|
+
"components/af-typography-lockup/af-typography-lockup.js"
|
|
8
15
|
],
|
|
9
16
|
"compiler": {
|
|
10
17
|
"name": "@stencil/core",
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
:host {
|
|
2
|
+
display: block;
|
|
3
|
+
width: 100%;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
.aspect-ratio-container {
|
|
7
|
+
width: 100%;
|
|
8
|
+
position: relative;
|
|
9
|
+
overflow: hidden;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/* Ensure slotted content fills the container */
|
|
13
|
+
.aspect-ratio-container ::slotted(*) {
|
|
14
|
+
width: 100%;
|
|
15
|
+
height: 100%;
|
|
16
|
+
object-fit: cover;
|
|
17
|
+
}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { h } from "@stencil/core";
|
|
2
|
+
/**
|
|
3
|
+
* A container component that maintains a fixed aspect ratio for its content.
|
|
4
|
+
* Useful for images, videos, or any content that needs to maintain specific proportions.
|
|
5
|
+
*/
|
|
6
|
+
export class AfAspectRatio {
|
|
7
|
+
constructor() {
|
|
8
|
+
/**
|
|
9
|
+
* The aspect ratio to maintain. Can be:
|
|
10
|
+
* - A predefined ratio: '1:1', '16:9', '4:3', 'golden-portrait', 'golden-landscape', 'a4-portrait', 'a4-landscape', 'letter-portrait', 'letter-landscape', etc.
|
|
11
|
+
* - A custom ratio in format 'width / height': '16 / 9', '4 / 3', '1.618 / 1', etc.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* <af-aspect-ratio ratio="16:9">Content</af-aspect-ratio>
|
|
15
|
+
* <af-aspect-ratio ratio="1.618 / 1">Content</af-aspect-ratio>
|
|
16
|
+
*/
|
|
17
|
+
this.ratio = '1:1';
|
|
18
|
+
}
|
|
19
|
+
getRatioValue() {
|
|
20
|
+
// Map common ratio shortcuts to actual CSS aspect-ratio values
|
|
21
|
+
const ratioMap = {
|
|
22
|
+
// Common ratios
|
|
23
|
+
'1:1': '1 / 1',
|
|
24
|
+
'1:2': '1 / 2',
|
|
25
|
+
'2:1': '2 / 1',
|
|
26
|
+
'2:3': '2 / 3',
|
|
27
|
+
'3:1': '3 / 1',
|
|
28
|
+
'3:2': '3 / 2',
|
|
29
|
+
'3:4': '3 / 4',
|
|
30
|
+
'4:1': '4 / 1',
|
|
31
|
+
'4:3': '4 / 3',
|
|
32
|
+
'4:5': '4 / 5',
|
|
33
|
+
'5:2': '5 / 2',
|
|
34
|
+
'5:4': '5 / 4',
|
|
35
|
+
'8:3': '8 / 3',
|
|
36
|
+
'8:5': '8 / 5',
|
|
37
|
+
// Screen ratios
|
|
38
|
+
'9:8': '9 / 8',
|
|
39
|
+
'9:16': '9 / 16',
|
|
40
|
+
'9:21': '9 / 21',
|
|
41
|
+
'10:16': '10 / 16',
|
|
42
|
+
'14:3': '14 / 3',
|
|
43
|
+
'16:5': '16 / 5',
|
|
44
|
+
'16:9': '16 / 9',
|
|
45
|
+
'16:10': '16 / 10',
|
|
46
|
+
'21:9': '21 / 9',
|
|
47
|
+
'32:9': '32 / 9',
|
|
48
|
+
// Golden ratio variants
|
|
49
|
+
'golden-portrait': '1 / 1.618',
|
|
50
|
+
'golden-landscape': '1.618 / 1',
|
|
51
|
+
'golden-portrait-half': '1 / 0.809',
|
|
52
|
+
'golden-landscape-half': '0.809 / 1',
|
|
53
|
+
// Paper sizes - A4
|
|
54
|
+
'a4-portrait': '1 / 1.414',
|
|
55
|
+
'a4-landscape': '1.414 / 1',
|
|
56
|
+
'a4-portrait-half': '1 / 0.707',
|
|
57
|
+
'a4-landscape-half': '0.707 / 1',
|
|
58
|
+
// Paper sizes - Letter
|
|
59
|
+
'letter-portrait': '1 / 1.294',
|
|
60
|
+
'letter-landscape': '1.294 / 1',
|
|
61
|
+
'letter-portrait-half': '1 / 0.647',
|
|
62
|
+
'letter-landscape-half': '0.647 / 1',
|
|
63
|
+
// Special
|
|
64
|
+
'6:7': '6 / 7'
|
|
65
|
+
};
|
|
66
|
+
// If it's a predefined ratio, return the mapped value
|
|
67
|
+
if (ratioMap[this.ratio]) {
|
|
68
|
+
return ratioMap[this.ratio];
|
|
69
|
+
}
|
|
70
|
+
// Otherwise, assume it's a custom ratio already in the correct format
|
|
71
|
+
return this.ratio;
|
|
72
|
+
}
|
|
73
|
+
render() {
|
|
74
|
+
const ratioValue = this.getRatioValue();
|
|
75
|
+
return (h("div", { key: '02bfa5463911ecd25903521e90a0570bb3bca0ad', class: "aspect-ratio-container", style: { aspectRatio: ratioValue } }, h("slot", { key: '9575c859052e8f1b1b362d9395fdfdf43d46b0b4' })));
|
|
76
|
+
}
|
|
77
|
+
static get is() { return "af-aspect-ratio"; }
|
|
78
|
+
static get encapsulation() { return "shadow"; }
|
|
79
|
+
static get originalStyleUrls() {
|
|
80
|
+
return {
|
|
81
|
+
"$": ["af-aspect-ratio.css"]
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
static get styleUrls() {
|
|
85
|
+
return {
|
|
86
|
+
"$": ["af-aspect-ratio.css"]
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
static get properties() {
|
|
90
|
+
return {
|
|
91
|
+
"ratio": {
|
|
92
|
+
"type": "string",
|
|
93
|
+
"mutable": false,
|
|
94
|
+
"complexType": {
|
|
95
|
+
"original": "string",
|
|
96
|
+
"resolved": "string",
|
|
97
|
+
"references": {}
|
|
98
|
+
},
|
|
99
|
+
"required": false,
|
|
100
|
+
"optional": false,
|
|
101
|
+
"docs": {
|
|
102
|
+
"tags": [{
|
|
103
|
+
"name": "example",
|
|
104
|
+
"text": "<af-aspect-ratio ratio=\"16:9\">Content</af-aspect-ratio>\n<af-aspect-ratio ratio=\"1.618 / 1\">Content</af-aspect-ratio>"
|
|
105
|
+
}],
|
|
106
|
+
"text": "The aspect ratio to maintain. Can be:\n- A predefined ratio: '1:1', '16:9', '4:3', 'golden-portrait', 'golden-landscape', 'a4-portrait', 'a4-landscape', 'letter-portrait', 'letter-landscape', etc.\n- A custom ratio in format 'width / height': '16 / 9', '4 / 3', '1.618 / 1', etc."
|
|
107
|
+
},
|
|
108
|
+
"getter": false,
|
|
109
|
+
"setter": false,
|
|
110
|
+
"reflect": false,
|
|
111
|
+
"attribute": "ratio",
|
|
112
|
+
"defaultValue": "'1:1'"
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=af-aspect-ratio.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"af-aspect-ratio.js","sourceRoot":"","sources":["../../../src/components/af-aspect-ratio/af-aspect-ratio.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAEnD;;;GAGG;AAMH,MAAM,OAAO,aAAa;IAL1B;QAME;;;;;;;;WAQG;QACK,UAAK,GAAW,KAAK,CAAC;KAuE/B;IArES,aAAa;QACnB,+DAA+D;QAC/D,MAAM,QAAQ,GAA8B;YAC1C,gBAAgB;YAChB,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,OAAO;YACd,gBAAgB;YAChB,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,SAAS;YAClB,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,SAAS;YAClB,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,QAAQ;YAChB,wBAAwB;YACxB,iBAAiB,EAAE,WAAW;YAC9B,kBAAkB,EAAE,WAAW;YAC/B,sBAAsB,EAAE,WAAW;YACnC,uBAAuB,EAAE,WAAW;YACpC,mBAAmB;YACnB,aAAa,EAAE,WAAW;YAC1B,cAAc,EAAE,WAAW;YAC3B,kBAAkB,EAAE,WAAW;YAC/B,mBAAmB,EAAE,WAAW;YAChC,uBAAuB;YACvB,iBAAiB,EAAE,WAAW;YAC9B,kBAAkB,EAAE,WAAW;YAC/B,sBAAsB,EAAE,WAAW;YACnC,uBAAuB,EAAE,WAAW;YACpC,UAAU;YACV,KAAK,EAAE,OAAO;SACf,CAAC;QAEF,sDAAsD;QACtD,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;QAED,sEAAsE;QACtE,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,MAAM;QACJ,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAExC,OAAO,CACL,4DACE,KAAK,EAAC,wBAAwB,EAC9B,KAAK,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE;YAElC,8DAAa,CACT,CACP,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Prop } from '@stencil/core';\n\n/**\n * A container component that maintains a fixed aspect ratio for its content.\n * Useful for images, videos, or any content that needs to maintain specific proportions.\n */\n@Component({\n tag: 'af-aspect-ratio',\n styleUrl: 'af-aspect-ratio.css',\n shadow: true\n})\nexport class AfAspectRatio {\n /**\n * The aspect ratio to maintain. Can be:\n * - A predefined ratio: '1:1', '16:9', '4:3', 'golden-portrait', 'golden-landscape', 'a4-portrait', 'a4-landscape', 'letter-portrait', 'letter-landscape', etc.\n * - A custom ratio in format 'width / height': '16 / 9', '4 / 3', '1.618 / 1', etc.\n *\n * @example\n * <af-aspect-ratio ratio=\"16:9\">Content</af-aspect-ratio>\n * <af-aspect-ratio ratio=\"1.618 / 1\">Content</af-aspect-ratio>\n */\n @Prop() ratio: string = '1:1';\n\n private getRatioValue(): string {\n // Map common ratio shortcuts to actual CSS aspect-ratio values\n const ratioMap: { [key: string]: string } = {\n // Common ratios\n '1:1': '1 / 1',\n '1:2': '1 / 2',\n '2:1': '2 / 1',\n '2:3': '2 / 3',\n '3:1': '3 / 1',\n '3:2': '3 / 2',\n '3:4': '3 / 4',\n '4:1': '4 / 1',\n '4:3': '4 / 3',\n '4:5': '4 / 5',\n '5:2': '5 / 2',\n '5:4': '5 / 4',\n '8:3': '8 / 3',\n '8:5': '8 / 5',\n // Screen ratios\n '9:8': '9 / 8',\n '9:16': '9 / 16',\n '9:21': '9 / 21',\n '10:16': '10 / 16',\n '14:3': '14 / 3',\n '16:5': '16 / 5',\n '16:9': '16 / 9',\n '16:10': '16 / 10',\n '21:9': '21 / 9',\n '32:9': '32 / 9',\n // Golden ratio variants\n 'golden-portrait': '1 / 1.618',\n 'golden-landscape': '1.618 / 1',\n 'golden-portrait-half': '1 / 0.809',\n 'golden-landscape-half': '0.809 / 1',\n // Paper sizes - A4\n 'a4-portrait': '1 / 1.414',\n 'a4-landscape': '1.414 / 1',\n 'a4-portrait-half': '1 / 0.707',\n 'a4-landscape-half': '0.707 / 1',\n // Paper sizes - Letter\n 'letter-portrait': '1 / 1.294',\n 'letter-landscape': '1.294 / 1',\n 'letter-portrait-half': '1 / 0.647',\n 'letter-landscape-half': '0.647 / 1',\n // Special\n '6:7': '6 / 7'\n };\n\n // If it's a predefined ratio, return the mapped value\n if (ratioMap[this.ratio]) {\n return ratioMap[this.ratio];\n }\n\n // Otherwise, assume it's a custom ratio already in the correct format\n return this.ratio;\n }\n\n render() {\n const ratioValue = this.getRatioValue();\n\n return (\n <div\n class=\"aspect-ratio-container\"\n style={{ aspectRatio: ratioValue }}\n >\n <slot></slot>\n </div>\n );\n }\n}\n"]}
|
|
@@ -2,73 +2,182 @@
|
|
|
2
2
|
display: inline-block;
|
|
3
3
|
}
|
|
4
4
|
|
|
5
|
-
button {
|
|
6
|
-
position: relative;
|
|
5
|
+
.button {
|
|
7
6
|
display: inline-flex;
|
|
8
7
|
align-items: center;
|
|
9
8
|
justify-content: center;
|
|
10
|
-
gap:
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
9
|
+
gap: 0;
|
|
10
|
+
border-radius: 9999px;
|
|
11
|
+
font-family: var(--typography-primaryfont, 'NeuSans', sans-serif);
|
|
12
|
+
font-weight: 500;
|
|
13
|
+
text-decoration: none;
|
|
15
14
|
cursor: pointer;
|
|
16
|
-
transition:
|
|
17
|
-
|
|
15
|
+
transition: all 0.2s ease;
|
|
16
|
+
border: 1px solid transparent;
|
|
17
|
+
box-sizing: border-box;
|
|
18
|
+
white-space: nowrap;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/* Size variants */
|
|
22
|
+
.size-default {
|
|
23
|
+
padding: 12px 24px;
|
|
24
|
+
font-size: 17px;
|
|
25
|
+
line-height: 20px;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.size-small {
|
|
29
|
+
padding: 8px 16px;
|
|
30
|
+
font-size: 14px;
|
|
31
|
+
line-height: 16px;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/* Icon slots */
|
|
35
|
+
.icon-left:empty,
|
|
36
|
+
.icon-right:empty {
|
|
37
|
+
display: none;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.icon-left,
|
|
41
|
+
.icon-right {
|
|
42
|
+
display: flex;
|
|
43
|
+
align-items: center;
|
|
44
|
+
justify-content: center;
|
|
45
|
+
flex-shrink: 0;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.size-default .icon-left,
|
|
49
|
+
.size-default .icon-right {
|
|
50
|
+
width: 24px;
|
|
51
|
+
height: 24px;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.size-small .icon-left,
|
|
55
|
+
.size-small .icon-right {
|
|
56
|
+
width: 20px;
|
|
57
|
+
height: 20px;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/* Label has additional padding on each side */
|
|
61
|
+
.label {
|
|
62
|
+
flex: 0 1 auto;
|
|
63
|
+
display: flex;
|
|
64
|
+
align-items: center;
|
|
65
|
+
justify-content: center;
|
|
66
|
+
height: 24px;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.size-default .label {
|
|
70
|
+
padding: 0 12px;
|
|
71
|
+
height: 24px;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.size-small .label {
|
|
75
|
+
padding: 0 8px;
|
|
76
|
+
height: 20px;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/* Primary variant (ice) */
|
|
80
|
+
.variant-primary {
|
|
81
|
+
background: var(--colour-brand-ice, #A6FFFB);
|
|
82
|
+
border-color: var(--colour-brand-inkwell, #14343B);
|
|
83
|
+
color: var(--colour-brand-inkwell, #14343B);
|
|
18
84
|
}
|
|
19
85
|
|
|
20
|
-
|
|
86
|
+
.variant-primary:hover:not(.disabled) {
|
|
87
|
+
background: #8FEBE3;
|
|
21
88
|
transform: translateY(-1px);
|
|
22
|
-
box-shadow: 0
|
|
89
|
+
box-shadow: 0 2px 8px rgba(20, 52, 59, 0.15);
|
|
23
90
|
}
|
|
24
91
|
|
|
25
|
-
|
|
92
|
+
.variant-primary:active:not(.disabled) {
|
|
93
|
+
background: #7FE2D4;
|
|
26
94
|
transform: translateY(0);
|
|
27
|
-
box-shadow: 0 6px 16px rgba(124, 58, 237, 0.16);
|
|
28
95
|
}
|
|
29
96
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
97
|
+
/* Secondary variant (white) */
|
|
98
|
+
.variant-secondary {
|
|
99
|
+
background: var(--colour-brand-white, #FFFFFF);
|
|
100
|
+
border-color: var(--colour-brand-inkwell, #14343B);
|
|
101
|
+
color: var(--colour-brand-inkwell, #14343B);
|
|
35
102
|
}
|
|
36
103
|
|
|
37
|
-
|
|
38
|
-
background:
|
|
39
|
-
|
|
104
|
+
.variant-secondary:hover:not(.disabled) {
|
|
105
|
+
background: #F6FAF9;
|
|
106
|
+
transform: translateY(-1px);
|
|
107
|
+
box-shadow: 0 2px 8px rgba(20, 52, 59, 0.15);
|
|
40
108
|
}
|
|
41
109
|
|
|
42
|
-
|
|
43
|
-
background:
|
|
44
|
-
|
|
45
|
-
box-shadow: inset 0 0 0 1px rgba(18, 15, 31, 0.08);
|
|
110
|
+
.variant-secondary:active:not(.disabled) {
|
|
111
|
+
background: #E8F1EF;
|
|
112
|
+
transform: translateY(0);
|
|
46
113
|
}
|
|
47
114
|
|
|
48
|
-
|
|
115
|
+
/* Outline variant */
|
|
116
|
+
.variant-outline {
|
|
49
117
|
background: transparent;
|
|
50
|
-
color: var(--
|
|
51
|
-
|
|
118
|
+
border-color: var(--colour-brand-inkwell, #14343B);
|
|
119
|
+
color: var(--colour-brand-inkwell, #14343B);
|
|
52
120
|
}
|
|
53
121
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
122
|
+
.variant-outline:hover:not(.disabled) {
|
|
123
|
+
background: rgba(20, 52, 59, 0.04);
|
|
124
|
+
transform: translateY(-1px);
|
|
57
125
|
}
|
|
58
126
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
border-radius: inherit;
|
|
63
|
-
background: radial-gradient(circle at center, rgba(255, 255, 255, 0.18), transparent 55%);
|
|
64
|
-
opacity: 0;
|
|
65
|
-
transition: opacity 120ms ease;
|
|
127
|
+
.variant-outline:active:not(.disabled) {
|
|
128
|
+
background: rgba(20, 52, 59, 0.08);
|
|
129
|
+
transform: translateY(0);
|
|
66
130
|
}
|
|
67
131
|
|
|
68
|
-
|
|
69
|
-
|
|
132
|
+
/* Ghost variant (text only) */
|
|
133
|
+
.variant-ghost {
|
|
134
|
+
background: transparent;
|
|
135
|
+
border-color: transparent;
|
|
136
|
+
color: var(--colour-brand-inkwell, #14343B);
|
|
137
|
+
padding-left: 0;
|
|
138
|
+
padding-right: 0;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
.variant-ghost:hover:not(.disabled) {
|
|
142
|
+
text-decoration: underline;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
.variant-ghost:active:not(.disabled) {
|
|
146
|
+
opacity: 0.7;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/* Disabled state */
|
|
150
|
+
.disabled {
|
|
151
|
+
opacity: 0.4;
|
|
152
|
+
cursor: not-allowed;
|
|
153
|
+
pointer-events: none;
|
|
70
154
|
}
|
|
71
155
|
|
|
72
|
-
button
|
|
73
|
-
|
|
156
|
+
/* Remove default button styles */
|
|
157
|
+
button.button {
|
|
158
|
+
background: none;
|
|
159
|
+
border: none;
|
|
160
|
+
font: inherit;
|
|
161
|
+
color: inherit;
|
|
162
|
+
cursor: pointer;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
button.button.variant-primary {
|
|
166
|
+
background: var(--colour-brand-ice, #A6FFFB);
|
|
167
|
+
border: 1px solid var(--colour-brand-inkwell, #14343B);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
button.button.variant-secondary {
|
|
171
|
+
background: var(--colour-brand-white, #FFFFFF);
|
|
172
|
+
border: 1px solid var(--colour-brand-inkwell, #14343B);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
button.button.variant-outline {
|
|
176
|
+
background: transparent;
|
|
177
|
+
border: 1px solid var(--colour-brand-inkwell, #14343B);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
button.button.variant-ghost {
|
|
181
|
+
background: transparent;
|
|
182
|
+
border: 1px solid transparent;
|
|
74
183
|
}
|