@affinda/wc 0.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.
Files changed (97) hide show
  1. package/dist/affinda/af-badge.af-button.af-card.af-icon-button.af-input.entry.esm.js.map +1 -0
  2. package/dist/affinda/affinda.css +1 -0
  3. package/dist/affinda/affinda.esm.js +2 -0
  4. package/dist/affinda/affinda.esm.js.map +1 -0
  5. package/dist/affinda/index.esm.js +2 -0
  6. package/dist/affinda/index.esm.js.map +1 -0
  7. package/dist/affinda/loader.esm.js.map +1 -0
  8. package/dist/affinda/p-bca10492.entry.js +2 -0
  9. package/dist/affinda/p-bca10492.entry.js.map +1 -0
  10. package/dist/affinda/p-o0tfWqnY.js +3 -0
  11. package/dist/affinda/p-o0tfWqnY.js.map +1 -0
  12. package/dist/cjs/af-badge.af-button.af-card.af-icon-button.af-input.entry.cjs.js.map +1 -0
  13. package/dist/cjs/af-badge_5.cjs.entry.js +13 -0
  14. package/dist/cjs/affinda.cjs.js +25 -0
  15. package/dist/cjs/affinda.cjs.js.map +1 -0
  16. package/dist/cjs/index-5BGpYleS.js +1413 -0
  17. package/dist/cjs/index-5BGpYleS.js.map +1 -0
  18. package/dist/cjs/index.cjs.js +139 -0
  19. package/dist/cjs/index.cjs.js.map +1 -0
  20. package/dist/cjs/loader.cjs.js +13 -0
  21. package/dist/cjs/loader.cjs.js.map +1 -0
  22. package/dist/collection/collection-manifest.json +16 -0
  23. package/dist/collection/components/af-badge/af-badge.css +29 -0
  24. package/dist/collection/components/af-badge/af-badge.js +47 -0
  25. package/dist/collection/components/af-badge/af-badge.js.map +1 -0
  26. package/dist/collection/components/af-button/af-button.css +74 -0
  27. package/dist/collection/components/af-button/af-button.js +149 -0
  28. package/dist/collection/components/af-button/af-button.js.map +1 -0
  29. package/dist/collection/components/af-card/af-card.css +69 -0
  30. package/dist/collection/components/af-card/af-card.js +70 -0
  31. package/dist/collection/components/af-card/af-card.js.map +1 -0
  32. package/dist/collection/components/af-icon-button/af-icon-button.css +70 -0
  33. package/dist/collection/components/af-icon-button/af-icon-button.js +145 -0
  34. package/dist/collection/components/af-icon-button/af-icon-button.js.map +1 -0
  35. package/dist/collection/components/af-input/af-input.css +57 -0
  36. package/dist/collection/components/af-input/af-input.js +193 -0
  37. package/dist/collection/components/af-input/af-input.js.map +1 -0
  38. package/dist/collection/components.js +6 -0
  39. package/dist/collection/components.js.map +1 -0
  40. package/dist/collection/index.js +2 -0
  41. package/dist/collection/index.js.map +1 -0
  42. package/dist/components/af-badge.d.ts +11 -0
  43. package/dist/components/af-badge.js +9 -0
  44. package/dist/components/af-badge.js.map +1 -0
  45. package/dist/components/af-button.d.ts +11 -0
  46. package/dist/components/af-button.js +9 -0
  47. package/dist/components/af-button.js.map +1 -0
  48. package/dist/components/af-card.d.ts +11 -0
  49. package/dist/components/af-card.js +9 -0
  50. package/dist/components/af-card.js.map +1 -0
  51. package/dist/components/af-icon-button.d.ts +11 -0
  52. package/dist/components/af-icon-button.js +9 -0
  53. package/dist/components/af-icon-button.js.map +1 -0
  54. package/dist/components/af-input.d.ts +11 -0
  55. package/dist/components/af-input.js +9 -0
  56. package/dist/components/af-input.js.map +1 -0
  57. package/dist/components/index.d.ts +33 -0
  58. package/dist/components/index.js +9 -0
  59. package/dist/components/index.js.map +1 -0
  60. package/dist/components/p-B7I93sz2.js +39 -0
  61. package/dist/components/p-B7I93sz2.js.map +1 -0
  62. package/dist/components/p-CZd1ieht.js +62 -0
  63. package/dist/components/p-CZd1ieht.js.map +1 -0
  64. package/dist/components/p-D6PwARU0.js +59 -0
  65. package/dist/components/p-D6PwARU0.js.map +1 -0
  66. package/dist/components/p-DOtgsZRB.js +1209 -0
  67. package/dist/components/p-DOtgsZRB.js.map +1 -0
  68. package/dist/components/p-DZIXhvI0.js +44 -0
  69. package/dist/components/p-DZIXhvI0.js.map +1 -0
  70. package/dist/components/p-zIKPa48S.js +62 -0
  71. package/dist/components/p-zIKPa48S.js.map +1 -0
  72. package/dist/esm/af-badge.af-button.af-card.af-icon-button.af-input.entry.js.map +1 -0
  73. package/dist/esm/af-badge_5.entry.js +3 -0
  74. package/dist/esm/affinda.js +21 -0
  75. package/dist/esm/affinda.js.map +1 -0
  76. package/dist/esm/index-o0tfWqnY.js +1405 -0
  77. package/dist/esm/index-o0tfWqnY.js.map +1 -0
  78. package/dist/esm/index.js +133 -0
  79. package/dist/esm/index.js.map +1 -0
  80. package/dist/esm/loader.js +11 -0
  81. package/dist/esm/loader.js.map +1 -0
  82. package/dist/index.cjs.js +1 -0
  83. package/dist/index.js +1 -0
  84. package/dist/types/components/af-badge/af-badge.d.ts +5 -0
  85. package/dist/types/components/af-button/af-button.d.ts +15 -0
  86. package/dist/types/components/af-card/af-card.d.ts +7 -0
  87. package/dist/types/components/af-icon-button/af-icon-button.d.ts +15 -0
  88. package/dist/types/components/af-input/af-input.d.ts +24 -0
  89. package/dist/types/components.d.ts +311 -0
  90. package/dist/types/index.d.ts +1 -0
  91. package/dist/types/stencil-public-runtime.d.ts +1756 -0
  92. package/loader/cdn.js +1 -0
  93. package/loader/index.cjs.js +1 -0
  94. package/loader/index.d.ts +24 -0
  95. package/loader/index.es2017.js +1 -0
  96. package/loader/index.js +2 -0
  97. package/package.json +27 -0
@@ -0,0 +1,70 @@
1
+ import { h } from "@stencil/core";
2
+ export class AfCard {
3
+ constructor() {
4
+ /** Visual style of the card */
5
+ this.variant = 'surface';
6
+ }
7
+ render() {
8
+ const classes = {
9
+ [`variant-${this.variant}`]: true,
10
+ [`accent-${this.accent}`]: Boolean(this.accent)
11
+ };
12
+ return (h("article", { key: '6341b7150eb902027923228343dd017fee6aef32', class: classes, part: "base" }, this.accent ? h("span", { class: "accent", part: "accent", "aria-hidden": "true" }) : null, h("div", { key: '06256637c0e9e3a150b59fbc6f73d5b2867729ad', class: "content", part: "content" }, h("header", { key: '8f8c893d528cece13d1e9de7115b490a5ed84c88', class: "header", part: "header" }, h("slot", { key: 'b404fcc38918bb952678d78c035e9e7ad6e797ef', name: "header" })), h("div", { key: '2028736e547446fe12469cf74aec97daf6e3f10a', class: "body", part: "body" }, h("slot", { key: 'a2110bc4cfa174e4514d572d7a9cd28652c7da9a' })), h("footer", { key: '221a8202625e2794846ff7d68af45f9046fcfe58', class: "footer", part: "footer" }, h("slot", { key: 'b20d0e41962dbe766116845e2ef20c68003be7a7', name: "footer" })))));
13
+ }
14
+ static get is() { return "af-card"; }
15
+ static get encapsulation() { return "shadow"; }
16
+ static get originalStyleUrls() {
17
+ return {
18
+ "$": ["af-card.css"]
19
+ };
20
+ }
21
+ static get styleUrls() {
22
+ return {
23
+ "$": ["af-card.css"]
24
+ };
25
+ }
26
+ static get properties() {
27
+ return {
28
+ "variant": {
29
+ "type": "string",
30
+ "mutable": false,
31
+ "complexType": {
32
+ "original": "'surface' | 'elevated'",
33
+ "resolved": "\"elevated\" | \"surface\"",
34
+ "references": {}
35
+ },
36
+ "required": false,
37
+ "optional": false,
38
+ "docs": {
39
+ "tags": [],
40
+ "text": "Visual style of the card"
41
+ },
42
+ "getter": false,
43
+ "setter": false,
44
+ "reflect": false,
45
+ "attribute": "variant",
46
+ "defaultValue": "'surface'"
47
+ },
48
+ "accent": {
49
+ "type": "string",
50
+ "mutable": false,
51
+ "complexType": {
52
+ "original": "'brand' | 'success' | 'neutral'",
53
+ "resolved": "\"brand\" | \"neutral\" | \"success\" | undefined",
54
+ "references": {}
55
+ },
56
+ "required": false,
57
+ "optional": true,
58
+ "docs": {
59
+ "tags": [],
60
+ "text": "Optional accent colour strip"
61
+ },
62
+ "getter": false,
63
+ "setter": false,
64
+ "reflect": false,
65
+ "attribute": "accent"
66
+ }
67
+ };
68
+ }
69
+ }
70
+ //# sourceMappingURL=af-card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"af-card.js","sourceRoot":"","sources":["../../../src/components/af-card/af-card.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAOnD,MAAM,OAAO,MAAM;IALnB;QAME,+BAA+B;QACvB,YAAO,GAA2B,SAAS,CAAC;KA4BrD;IAvBC,MAAM;QACJ,MAAM,OAAO,GAAG;YACd,CAAC,WAAW,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI;YACjC,CAAC,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;SAChD,CAAC;QAEF,OAAO,CACL,gEAAS,KAAK,EAAE,OAAO,EAAE,IAAI,EAAC,MAAM;YACjC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,YAAM,KAAK,EAAC,QAAQ,EAAC,IAAI,EAAC,QAAQ,iBAAa,MAAM,GAAQ,CAAC,CAAC,CAAC,IAAI;YACnF,4DAAK,KAAK,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS;gBACjC,+DAAQ,KAAK,EAAC,QAAQ,EAAC,IAAI,EAAC,QAAQ;oBAClC,6DAAM,IAAI,EAAC,QAAQ,GAAQ,CACpB;gBACT,4DAAK,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,MAAM;oBAC3B,8DAAa,CACT;gBACN,+DAAQ,KAAK,EAAC,QAAQ,EAAC,IAAI,EAAC,QAAQ;oBAClC,6DAAM,IAAI,EAAC,QAAQ,GAAQ,CACpB,CACL,CACE,CACX,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["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"]}
@@ -0,0 +1,70 @@
1
+ :host {
2
+ display: inline-flex;
3
+ }
4
+
5
+ button {
6
+ --button-size-sm: 36px;
7
+ --button-size-md: 44px;
8
+ width: var(--button-size-md);
9
+ height: var(--button-size-md);
10
+ border-radius: 50%;
11
+ border: none;
12
+ display: inline-flex;
13
+ align-items: center;
14
+ justify-content: center;
15
+ background: transparent;
16
+ color: var(--af-color-brand-primary-500);
17
+ cursor: pointer;
18
+ transition: transform 120ms ease, box-shadow 160ms ease, background-color 160ms ease;
19
+ box-shadow: none;
20
+ }
21
+
22
+ button.size-sm {
23
+ width: var(--button-size-sm);
24
+ height: var(--button-size-sm);
25
+ }
26
+
27
+ button:disabled {
28
+ cursor: not-allowed;
29
+ opacity: 0.5;
30
+ box-shadow: none;
31
+ }
32
+
33
+ button.variant-solid {
34
+ background: linear-gradient(135deg, var(--af-color-brand-primary-500), var(--af-color-brand-primary-600));
35
+ color: var(--af-color-fg-inverse);
36
+ box-shadow: 0 10px 24px rgba(124, 58, 237, 0.24);
37
+ }
38
+
39
+ button.variant-soft {
40
+ background: rgba(124, 58, 237, 0.14);
41
+ color: var(--af-color-brand-primary-500);
42
+ }
43
+
44
+ button.variant-ghost {
45
+ border: 1px solid rgba(124, 58, 237, 0.4);
46
+ background: transparent;
47
+ }
48
+
49
+ button:is(:hover, :focus-visible) {
50
+ transform: translateY(-1px);
51
+ box-shadow: 0 14px 30px rgba(124, 58, 237, 0.28);
52
+ }
53
+
54
+ button:active {
55
+ transform: translateY(0);
56
+ box-shadow: 0 8px 18px rgba(124, 58, 237, 0.2);
57
+ }
58
+
59
+ .icon {
60
+ display: inline-flex;
61
+ align-items: center;
62
+ justify-content: center;
63
+ width: 1.5em;
64
+ height: 1.5em;
65
+ }
66
+
67
+ :host([disabled]) button {
68
+ transform: none;
69
+ box-shadow: none;
70
+ }
@@ -0,0 +1,145 @@
1
+ import { h } from "@stencil/core";
2
+ export class AfIconButton {
3
+ constructor() {
4
+ /** Visual style of the icon button */
5
+ this.variant = 'solid';
6
+ /** Size preset */
7
+ this.size = 'md';
8
+ /** Disabled state */
9
+ this.disabled = false;
10
+ this.onClick = (event) => {
11
+ if (this.disabled) {
12
+ event.preventDefault();
13
+ event.stopPropagation();
14
+ return;
15
+ }
16
+ this.afClick.emit(event);
17
+ };
18
+ }
19
+ render() {
20
+ const classes = {
21
+ [`variant-${this.variant}`]: true,
22
+ [`size-${this.size}`]: true
23
+ };
24
+ return (h("button", { key: '0f63eddac5f4dab95835506b896e437218aa50e1', type: "button", class: classes, part: "base", disabled: this.disabled, "aria-label": this.label, onClick: this.onClick }, h("span", { key: '6400064df3b666cbcc0a4a51523f1cd08dcbe81a', part: "icon", class: "icon" }, h("slot", { key: 'a74fff21c0a3af05da37b12e45db8ca8913bbdea' }))));
25
+ }
26
+ static get is() { return "af-icon-button"; }
27
+ static get encapsulation() { return "shadow"; }
28
+ static get originalStyleUrls() {
29
+ return {
30
+ "$": ["af-icon-button.css"]
31
+ };
32
+ }
33
+ static get styleUrls() {
34
+ return {
35
+ "$": ["af-icon-button.css"]
36
+ };
37
+ }
38
+ static get properties() {
39
+ return {
40
+ "variant": {
41
+ "type": "string",
42
+ "mutable": false,
43
+ "complexType": {
44
+ "original": "'solid' | 'soft' | 'ghost'",
45
+ "resolved": "\"ghost\" | \"soft\" | \"solid\"",
46
+ "references": {}
47
+ },
48
+ "required": false,
49
+ "optional": false,
50
+ "docs": {
51
+ "tags": [],
52
+ "text": "Visual style of the icon button"
53
+ },
54
+ "getter": false,
55
+ "setter": false,
56
+ "reflect": false,
57
+ "attribute": "variant",
58
+ "defaultValue": "'solid'"
59
+ },
60
+ "size": {
61
+ "type": "string",
62
+ "mutable": false,
63
+ "complexType": {
64
+ "original": "'sm' | 'md'",
65
+ "resolved": "\"md\" | \"sm\"",
66
+ "references": {}
67
+ },
68
+ "required": false,
69
+ "optional": false,
70
+ "docs": {
71
+ "tags": [],
72
+ "text": "Size preset"
73
+ },
74
+ "getter": false,
75
+ "setter": false,
76
+ "reflect": false,
77
+ "attribute": "size",
78
+ "defaultValue": "'md'"
79
+ },
80
+ "label": {
81
+ "type": "string",
82
+ "mutable": false,
83
+ "complexType": {
84
+ "original": "string",
85
+ "resolved": "string | undefined",
86
+ "references": {}
87
+ },
88
+ "required": false,
89
+ "optional": true,
90
+ "docs": {
91
+ "tags": [],
92
+ "text": "Accessible label text"
93
+ },
94
+ "getter": false,
95
+ "setter": false,
96
+ "reflect": false,
97
+ "attribute": "label"
98
+ },
99
+ "disabled": {
100
+ "type": "boolean",
101
+ "mutable": false,
102
+ "complexType": {
103
+ "original": "boolean",
104
+ "resolved": "boolean",
105
+ "references": {}
106
+ },
107
+ "required": false,
108
+ "optional": false,
109
+ "docs": {
110
+ "tags": [],
111
+ "text": "Disabled state"
112
+ },
113
+ "getter": false,
114
+ "setter": false,
115
+ "reflect": true,
116
+ "attribute": "disabled",
117
+ "defaultValue": "false"
118
+ }
119
+ };
120
+ }
121
+ static get events() {
122
+ return [{
123
+ "method": "afClick",
124
+ "name": "afClick",
125
+ "bubbles": true,
126
+ "cancelable": true,
127
+ "composed": true,
128
+ "docs": {
129
+ "tags": [],
130
+ "text": "Raised when the button is activated"
131
+ },
132
+ "complexType": {
133
+ "original": "MouseEvent",
134
+ "resolved": "MouseEvent",
135
+ "references": {
136
+ "MouseEvent": {
137
+ "location": "global",
138
+ "id": "global::MouseEvent"
139
+ }
140
+ }
141
+ }
142
+ }];
143
+ }
144
+ }
145
+ //# sourceMappingURL=af-icon-button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"af-icon-button.js","sourceRoot":"","sources":["../../../src/components/af-icon-button/af-icon-button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAgB,CAAC,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAOxE,MAAM,OAAO,YAAY;IALzB;QAME,sCAAsC;QAC9B,YAAO,GAA+B,OAAO,CAAC;QAEtD,kBAAkB;QACV,SAAI,GAAgB,IAAI,CAAC;QAKjC,qBAAqB;QACI,aAAQ,GAAG,KAAK,CAAC;QAKlC,YAAO,GAAG,CAAC,KAAiB,EAAE,EAAE;YACtC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,KAAK,CAAC,eAAe,EAAE,CAAC;gBACxB,OAAO;YACT,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC,CAAC;KAuBH;IArBC,MAAM;QACJ,MAAM,OAAO,GAAG;YACd,CAAC,WAAW,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI;YACjC,CAAC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;SAC5B,CAAC;QAEF,OAAO,CACL,+DACE,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,OAAO,EACd,IAAI,EAAC,MAAM,EACX,QAAQ,EAAE,IAAI,CAAC,QAAQ,gBACX,IAAI,CAAC,KAAK,EACtB,OAAO,EAAE,IAAI,CAAC,OAAO;YAErB,6DAAM,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM;gBAC5B,8DAAQ,CACH,CACA,CACV,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["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"]}
@@ -0,0 +1,57 @@
1
+ :host {
2
+ display: block;
3
+ font-family: var(--af-font-family-sans);
4
+ }
5
+
6
+ label {
7
+ display: grid;
8
+ gap: var(--af-space-2);
9
+ color: var(--af-color-fg-default);
10
+ }
11
+
12
+ .label {
13
+ font-size: 0.95rem;
14
+ font-weight: var(--af-font-weight-semibold);
15
+ }
16
+
17
+ .control {
18
+ position: relative;
19
+ }
20
+
21
+ input {
22
+ width: 100%;
23
+ padding: calc(var(--af-space-2) + 2px) calc(var(--af-space-4) + 8px);
24
+ border-radius: var(--af-radius-md);
25
+ border: 1px solid rgba(18, 15, 31, 0.18);
26
+ background: rgba(255, 255, 255, 0.9);
27
+ color: inherit;
28
+ font: inherit;
29
+ transition: border-color 160ms ease, box-shadow 160ms ease;
30
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.6);
31
+ }
32
+
33
+ input::placeholder {
34
+ color: var(--af-color-fg-muted);
35
+ opacity: 0.8;
36
+ }
37
+
38
+ input:focus-visible {
39
+ outline: none;
40
+ border-color: var(--af-color-brand-primary-500);
41
+ box-shadow: 0 0 0 4px rgba(124, 58, 237, 0.18);
42
+ }
43
+
44
+ label.disabled {
45
+ opacity: 0.55;
46
+ cursor: not-allowed;
47
+ }
48
+
49
+ input:disabled {
50
+ background: rgba(241, 240, 247, 0.7);
51
+ cursor: not-allowed;
52
+ }
53
+
54
+ .description {
55
+ font-size: 0.825rem;
56
+ color: var(--af-color-fg-muted);
57
+ }
@@ -0,0 +1,193 @@
1
+ import { h } from "@stencil/core";
2
+ let inputIds = 0;
3
+ export class AfInput {
4
+ constructor() {
5
+ this.inputId = `af-input-${++inputIds}`;
6
+ this.descriptionId = `${this.inputId}-desc`;
7
+ /** Input type attribute */
8
+ this.type = 'text';
9
+ /** Current value (mutable so the component stays in sync) */
10
+ this.value = '';
11
+ /** Disabled state */
12
+ this.disabled = false;
13
+ this.handleInput = (event) => {
14
+ const target = event.target;
15
+ this.value = target.value;
16
+ this.afInput.emit(this.value);
17
+ };
18
+ this.handleChange = () => {
19
+ this.afChange.emit(this.value);
20
+ };
21
+ }
22
+ render() {
23
+ const describedBy = this.description ? this.descriptionId : undefined;
24
+ return (h("label", { key: 'd14267dee125c07311c07bc31f0151448095dba6', part: "label", class: { disabled: this.disabled }, htmlFor: this.inputId }, this.label ? (h("span", { class: "label", part: "label-text" }, this.label)) : null, h("div", { key: 'd3b6428100e25c981650f5faa23df549d587ac10', class: "control" }, 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 ? (h("p", { id: this.descriptionId, class: "description", part: "description" }, this.description)) : null));
25
+ }
26
+ static get is() { return "af-input"; }
27
+ static get encapsulation() { return "shadow"; }
28
+ static get originalStyleUrls() {
29
+ return {
30
+ "$": ["af-input.css"]
31
+ };
32
+ }
33
+ static get styleUrls() {
34
+ return {
35
+ "$": ["af-input.css"]
36
+ };
37
+ }
38
+ static get properties() {
39
+ return {
40
+ "label": {
41
+ "type": "string",
42
+ "mutable": false,
43
+ "complexType": {
44
+ "original": "string",
45
+ "resolved": "string | undefined",
46
+ "references": {}
47
+ },
48
+ "required": false,
49
+ "optional": true,
50
+ "docs": {
51
+ "tags": [],
52
+ "text": "Optional label text"
53
+ },
54
+ "getter": false,
55
+ "setter": false,
56
+ "reflect": false,
57
+ "attribute": "label"
58
+ },
59
+ "description": {
60
+ "type": "string",
61
+ "mutable": false,
62
+ "complexType": {
63
+ "original": "string",
64
+ "resolved": "string | undefined",
65
+ "references": {}
66
+ },
67
+ "required": false,
68
+ "optional": true,
69
+ "docs": {
70
+ "tags": [],
71
+ "text": "Assistive description shown below the field"
72
+ },
73
+ "getter": false,
74
+ "setter": false,
75
+ "reflect": false,
76
+ "attribute": "description"
77
+ },
78
+ "type": {
79
+ "type": "string",
80
+ "mutable": false,
81
+ "complexType": {
82
+ "original": "'text' | 'email' | 'password' | 'search'",
83
+ "resolved": "\"email\" | \"password\" | \"search\" | \"text\"",
84
+ "references": {}
85
+ },
86
+ "required": false,
87
+ "optional": false,
88
+ "docs": {
89
+ "tags": [],
90
+ "text": "Input type attribute"
91
+ },
92
+ "getter": false,
93
+ "setter": false,
94
+ "reflect": false,
95
+ "attribute": "type",
96
+ "defaultValue": "'text'"
97
+ },
98
+ "placeholder": {
99
+ "type": "string",
100
+ "mutable": false,
101
+ "complexType": {
102
+ "original": "string",
103
+ "resolved": "string | undefined",
104
+ "references": {}
105
+ },
106
+ "required": false,
107
+ "optional": true,
108
+ "docs": {
109
+ "tags": [],
110
+ "text": "Placeholder text"
111
+ },
112
+ "getter": false,
113
+ "setter": false,
114
+ "reflect": false,
115
+ "attribute": "placeholder"
116
+ },
117
+ "value": {
118
+ "type": "string",
119
+ "mutable": true,
120
+ "complexType": {
121
+ "original": "string",
122
+ "resolved": "string",
123
+ "references": {}
124
+ },
125
+ "required": false,
126
+ "optional": false,
127
+ "docs": {
128
+ "tags": [],
129
+ "text": "Current value (mutable so the component stays in sync)"
130
+ },
131
+ "getter": false,
132
+ "setter": false,
133
+ "reflect": false,
134
+ "attribute": "value",
135
+ "defaultValue": "''"
136
+ },
137
+ "disabled": {
138
+ "type": "boolean",
139
+ "mutable": false,
140
+ "complexType": {
141
+ "original": "boolean",
142
+ "resolved": "boolean",
143
+ "references": {}
144
+ },
145
+ "required": false,
146
+ "optional": false,
147
+ "docs": {
148
+ "tags": [],
149
+ "text": "Disabled state"
150
+ },
151
+ "getter": false,
152
+ "setter": false,
153
+ "reflect": true,
154
+ "attribute": "disabled",
155
+ "defaultValue": "false"
156
+ }
157
+ };
158
+ }
159
+ static get events() {
160
+ return [{
161
+ "method": "afInput",
162
+ "name": "afInput",
163
+ "bubbles": true,
164
+ "cancelable": true,
165
+ "composed": true,
166
+ "docs": {
167
+ "tags": [],
168
+ "text": "Fired as the user types"
169
+ },
170
+ "complexType": {
171
+ "original": "string",
172
+ "resolved": "string",
173
+ "references": {}
174
+ }
175
+ }, {
176
+ "method": "afChange",
177
+ "name": "afChange",
178
+ "bubbles": true,
179
+ "cancelable": true,
180
+ "composed": true,
181
+ "docs": {
182
+ "tags": [],
183
+ "text": "Fired when the field loses focus after a change"
184
+ },
185
+ "complexType": {
186
+ "original": "string",
187
+ "resolved": "string",
188
+ "references": {}
189
+ }
190
+ }];
191
+ }
192
+ }
193
+ //# sourceMappingURL=af-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"af-input.js","sourceRoot":"","sources":["../../../src/components/af-input/af-input.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAgB,CAAC,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAExE,IAAI,QAAQ,GAAG,CAAC,CAAC;AAOjB,MAAM,OAAO,OAAO;IALpB;QAMU,YAAO,GAAG,YAAY,EAAE,QAAQ,EAAE,CAAC;QACnC,kBAAa,GAAG,GAAG,IAAI,CAAC,OAAO,OAAO,CAAC;QAQ/C,2BAA2B;QACnB,SAAI,GAA6C,MAAM,CAAC;QAKhE,6DAA6D;QACpC,UAAK,GAAG,EAAE,CAAC;QAEpC,qBAAqB;QACI,aAAQ,GAAG,KAAK,CAAC;QAQlC,gBAAW,GAAG,CAAC,KAAY,EAAE,EAAE;YACrC,MAAM,MAAM,GAAG,KAAK,CAAC,MAA0B,CAAC;YAChD,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAC1B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC,CAAC;QAEM,iBAAY,GAAG,GAAG,EAAE;YAC1B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC,CAAC;KAiCH;IA/BC,MAAM;QACJ,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;QAEtE,OAAO,CACL,8DAAO,IAAI,EAAC,OAAO,EAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO;YAC1E,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CACZ,YAAM,KAAK,EAAC,OAAO,EAAC,IAAI,EAAC,YAAY,IAClC,IAAI,CAAC,KAAK,CACN,CACR,CAAC,CAAC,CAAC,IAAI;YACR,4DAAK,KAAK,EAAC,SAAS;gBAClB,8DACE,IAAI,EAAC,OAAO,EACZ,EAAE,EAAE,IAAI,CAAC,OAAO,EAChB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ,sBACL,WAAW,EAC7B,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,QAAQ,EAAE,IAAI,CAAC,YAAY,GAC3B,CACE;YACL,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAClB,SAAG,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE,KAAK,EAAC,aAAa,EAAC,IAAI,EAAC,aAAa,IAC9D,IAAI,CAAC,WAAW,CACf,CACL,CAAC,CAAC,CAAC,IAAI,CACF,CACT,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["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"]}
@@ -0,0 +1,6 @@
1
+ export { AfButton } from './components/af-button/af-button';
2
+ export { AfBadge } from './components/af-badge/af-badge';
3
+ export { AfIconButton } from './components/af-icon-button/af-icon-button';
4
+ export { AfCard } from './components/af-card/af-card';
5
+ export { AfInput } from './components/af-input/af-input';
6
+ //# sourceMappingURL=components.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components.js","sourceRoot":"","sources":["../src/components.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC","sourcesContent":["export { AfButton } from './components/af-button/af-button';\nexport { AfBadge } from './components/af-badge/af-badge';\nexport { AfIconButton } from './components/af-icon-button/af-icon-button';\nexport { AfCard } from './components/af-card/af-card';\nexport { AfInput } from './components/af-input/af-input';\n"]}
@@ -0,0 +1,2 @@
1
+ export * from './components';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC","sourcesContent":["export * from './components';\n"]}
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface AfBadge extends Components.AfBadge, HTMLElement {}
4
+ export const AfBadge: {
5
+ prototype: AfBadge;
6
+ new (): AfBadge;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,9 @@
1
+ import { A as AfBadge$1, d as defineCustomElement$1 } from './p-B7I93sz2.js';
2
+
3
+ const AfBadge = AfBadge$1;
4
+ const defineCustomElement = defineCustomElement$1;
5
+
6
+ export { AfBadge, defineCustomElement };
7
+ //# sourceMappingURL=af-badge.js.map
8
+
9
+ //# sourceMappingURL=af-badge.js.map
@@ -0,0 +1 @@
1
+ {"file":"af-badge.js","mappings":";;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3}
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface AfButton extends Components.AfButton, HTMLElement {}
4
+ export const AfButton: {
5
+ prototype: AfButton;
6
+ new (): AfButton;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,9 @@
1
+ import { A as AfButton$1, d as defineCustomElement$1 } from './p-zIKPa48S.js';
2
+
3
+ const AfButton = AfButton$1;
4
+ const defineCustomElement = defineCustomElement$1;
5
+
6
+ export { AfButton, defineCustomElement };
7
+ //# sourceMappingURL=af-button.js.map
8
+
9
+ //# sourceMappingURL=af-button.js.map
@@ -0,0 +1 @@
1
+ {"file":"af-button.js","mappings":";;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3}
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface AfCard extends Components.AfCard, HTMLElement {}
4
+ export const AfCard: {
5
+ prototype: AfCard;
6
+ new (): AfCard;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,9 @@
1
+ import { A as AfCard$1, d as defineCustomElement$1 } from './p-DZIXhvI0.js';
2
+
3
+ const AfCard = AfCard$1;
4
+ const defineCustomElement = defineCustomElement$1;
5
+
6
+ export { AfCard, defineCustomElement };
7
+ //# sourceMappingURL=af-card.js.map
8
+
9
+ //# sourceMappingURL=af-card.js.map
@@ -0,0 +1 @@
1
+ {"file":"af-card.js","mappings":";;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3}