@usecapsule/core-components 3.4.0 → 3.4.1-dev.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (150) hide show
  1. package/dist/capsule/capsule.esm.js +1 -1
  2. package/dist/capsule/capsule.esm.js.map +1 -1
  3. package/dist/capsule/index.esm.js +1 -1
  4. package/dist/capsule/index.esm.js.map +1 -1
  5. package/dist/capsule/p-286db996.js +2 -0
  6. package/dist/capsule/p-286db996.js.map +1 -0
  7. package/dist/capsule/p-7be8987f.entry.js +20 -0
  8. package/dist/capsule/p-7be8987f.entry.js.map +1 -0
  9. package/dist/capsule/p-9e64a60e.entry.js +2 -0
  10. package/dist/capsule/p-9e64a60e.entry.js.map +1 -0
  11. package/dist/capsule/{p-32cdf894.entry.js → p-b96e357a.entry.js} +2 -2
  12. package/dist/capsule/p-b96e357a.entry.js.map +1 -0
  13. package/dist/capsule/p-c33942ad.entry.js +2 -0
  14. package/dist/capsule/p-c33942ad.entry.js.map +1 -0
  15. package/dist/capsule/p-cfc382c0.entry.js +2 -0
  16. package/dist/capsule/{p-de2a16e4.entry.js → p-d165df27.entry.js} +2 -2
  17. package/dist/capsule/{p-41bc3c58.entry.js → p-f0cd0482.entry.js} +2 -2
  18. package/dist/cjs/capsule.cjs.js +1 -1
  19. package/dist/cjs/cpsl-alert_34.cjs.entry.js +122 -65
  20. package/dist/cjs/cpsl-alert_34.cjs.entry.js.map +1 -1
  21. package/dist/cjs/cpsl-col.cjs.entry.js +1 -1
  22. package/dist/cjs/cpsl-grid.cjs.entry.js +2 -2
  23. package/dist/cjs/cpsl-hero.cjs.entry.js +4 -3
  24. package/dist/cjs/cpsl-hero.cjs.entry.js.map +1 -1
  25. package/dist/cjs/cpsl-identicon.cjs.entry.js +76 -30
  26. package/dist/cjs/cpsl-identicon.cjs.entry.js.map +1 -1
  27. package/dist/cjs/cpsl-nav-button.cjs.entry.js +40 -0
  28. package/dist/cjs/cpsl-nav-button.cjs.entry.js.map +1 -0
  29. package/dist/cjs/cpsl-row.cjs.entry.js +1 -1
  30. package/dist/cjs/index-65f57499.js +4 -4
  31. package/dist/cjs/index.cjs.js +2 -0
  32. package/dist/cjs/index.cjs.js.map +1 -1
  33. package/dist/cjs/loader.cjs.js +1 -1
  34. package/dist/cjs/prand-a35ea6b2.js +209 -0
  35. package/dist/cjs/prand-a35ea6b2.js.map +1 -0
  36. package/dist/collection/assets/icons/check-circle-filled.svg +5 -0
  37. package/dist/collection/assets/icons/cosmos.svg +12 -0
  38. package/dist/collection/assets/icons/ethereum.svg +4 -0
  39. package/dist/collection/assets/icons/folder.svg +5 -0
  40. package/dist/collection/assets/icons/hero-plus-circle-capsule.svg +14 -0
  41. package/dist/collection/assets/icons/hero-plus-circle.svg +7 -0
  42. package/dist/collection/assets/icons/index.js +8 -1
  43. package/dist/collection/assets/icons/index.js.map +1 -1
  44. package/dist/collection/assets/icons/plus-circle.svg +1 -1
  45. package/dist/collection/assets/icons/solana.svg +19 -0
  46. package/dist/collection/collection-manifest.json +1 -1
  47. package/dist/collection/components/cpsl-alert/cpsl-alert.js +1 -1
  48. package/dist/collection/components/cpsl-animation/cpsl-animation.js +44 -104
  49. package/dist/collection/components/cpsl-animation/cpsl-animation.js.map +1 -1
  50. package/dist/collection/components/cpsl-app-bar/cpsl-app-bar.js +3 -3
  51. package/dist/collection/components/cpsl-auth-modal/cpsl-auth-modal.css +2 -1
  52. package/dist/collection/components/cpsl-avatar/cpsl-avatar.js +1 -1
  53. package/dist/collection/components/cpsl-button/cpsl-button.css +1 -1
  54. package/dist/collection/components/cpsl-button/cpsl-button.js +2 -2
  55. package/dist/collection/components/cpsl-button-group/cpsl-button-group.js +1 -1
  56. package/dist/collection/components/cpsl-card/cpsl-card.js +1 -1
  57. package/dist/collection/components/cpsl-checkbox/cpsl-checkbox.js +1 -1
  58. package/dist/collection/components/cpsl-code-input/cpsl-code-input.js +2 -2
  59. package/dist/collection/components/cpsl-col/cpsl-col.js +1 -1
  60. package/dist/collection/components/cpsl-divider/cpsl-divider.js +1 -1
  61. package/dist/collection/components/cpsl-drawer/cpsl-drawer.js +2 -2
  62. package/dist/collection/components/cpsl-dropdown/cpsl-dropdown.js +1 -1
  63. package/dist/collection/components/cpsl-file-upload/cpsl-file-upload.js +1 -1
  64. package/dist/collection/components/cpsl-grid/cpsl-grid.js +2 -2
  65. package/dist/collection/components/cpsl-hero/cpsl-hero.css +29 -2
  66. package/dist/collection/components/cpsl-hero/cpsl-hero.js +6 -5
  67. package/dist/collection/components/cpsl-hero/cpsl-hero.js.map +1 -1
  68. package/dist/collection/components/cpsl-icon/cpsl-icon.js +1 -1
  69. package/dist/collection/components/cpsl-identicon/cpsl-identicon.css +17 -10
  70. package/dist/collection/components/cpsl-identicon/cpsl-identicon.js +101 -36
  71. package/dist/collection/components/cpsl-identicon/cpsl-identicon.js.map +1 -1
  72. package/dist/collection/components/cpsl-identicon/cpsl-identicon.stories.js +1 -1
  73. package/dist/collection/components/cpsl-identicon/cpsl-identicon.stories.js.map +1 -1
  74. package/dist/collection/components/cpsl-input/cpsl-input.js +1 -1
  75. package/dist/collection/components/cpsl-nav-button/cpsl-nav-button.css +107 -0
  76. package/dist/collection/components/cpsl-nav-button/cpsl-nav-button.js +175 -0
  77. package/dist/collection/components/cpsl-nav-button/cpsl-nav-button.js.map +1 -0
  78. package/dist/collection/components/cpsl-nav-button-group/cpsl-nav-button-group.css +0 -42
  79. package/dist/collection/components/cpsl-nav-button-group/cpsl-nav-button-group.js +2 -50
  80. package/dist/collection/components/cpsl-nav-button-group/cpsl-nav-button-group.js.map +1 -1
  81. package/dist/collection/components/cpsl-overlay/cpsl-overlay.js +1 -1
  82. package/dist/collection/components/cpsl-pagination/cpsl-pagination.js +1 -1
  83. package/dist/collection/components/cpsl-pill/cpsl-pill.js +1 -1
  84. package/dist/collection/components/cpsl-popover/cpsl-popover.js +2 -2
  85. package/dist/collection/components/cpsl-qr-code/cpsl-qr-code.js +1 -1
  86. package/dist/collection/components/cpsl-radio/cpsl-radio.js +1 -1
  87. package/dist/collection/components/cpsl-row/cpsl-row.js +1 -1
  88. package/dist/collection/components/cpsl-select/cpsl-select.js +2 -2
  89. package/dist/collection/components/cpsl-select/cpsl-select.js.map +1 -1
  90. package/dist/collection/components/cpsl-select-item/cpsl-select-item.js +1 -1
  91. package/dist/collection/components/cpsl-slide-button/cpsl-slide-button.js +3 -3
  92. package/dist/collection/components/cpsl-spinner/cpsl-spinner.js +2 -2
  93. package/dist/collection/components/cpsl-switch/cpsl-switch.js +1 -1
  94. package/dist/collection/components/cpsl-tab/cpsl-tab.js +1 -1
  95. package/dist/collection/components/cpsl-table/cpsl-table.js +1 -1
  96. package/dist/collection/components/cpsl-tabs/cpsl-tabs.js +1 -1
  97. package/dist/collection/components/cpsl-text/cpsl-text.js +1 -1
  98. package/dist/collection/components/cpsl-tile-button/cpsl-tile-button.js +2 -2
  99. package/dist/collection/index.js +1 -0
  100. package/dist/collection/index.js.map +1 -1
  101. package/dist/collection/lib/prando.js +187 -0
  102. package/dist/collection/lib/prando.js.map +1 -0
  103. package/dist/collection/utils/prand.js +16 -0
  104. package/dist/collection/utils/prand.js.map +1 -0
  105. package/dist/esm/capsule.js +1 -1
  106. package/dist/esm/cpsl-alert_34.entry.js +122 -65
  107. package/dist/esm/cpsl-alert_34.entry.js.map +1 -1
  108. package/dist/esm/cpsl-col.entry.js +1 -1
  109. package/dist/esm/cpsl-grid.entry.js +2 -2
  110. package/dist/esm/cpsl-hero.entry.js +4 -3
  111. package/dist/esm/cpsl-hero.entry.js.map +1 -1
  112. package/dist/esm/cpsl-identicon.entry.js +76 -30
  113. package/dist/esm/cpsl-identicon.entry.js.map +1 -1
  114. package/dist/esm/cpsl-nav-button.entry.js +36 -0
  115. package/dist/esm/cpsl-nav-button.entry.js.map +1 -0
  116. package/dist/esm/cpsl-row.entry.js +1 -1
  117. package/dist/esm/index-91db3414.js +4 -4
  118. package/dist/esm/index.js +1 -0
  119. package/dist/esm/index.js.map +1 -1
  120. package/dist/esm/loader.js +1 -1
  121. package/dist/esm/prand-c8323494.js +205 -0
  122. package/dist/esm/prand-c8323494.js.map +1 -0
  123. package/dist/types/assets/icons/index.d.ts +7 -0
  124. package/dist/types/components/cpsl-animation/cpsl-animation.d.ts +0 -15
  125. package/dist/types/components/cpsl-hero/cpsl-hero.d.ts +2 -2
  126. package/dist/types/components/cpsl-identicon/cpsl-identicon.d.ts +5 -4
  127. package/dist/types/components/cpsl-nav-button/cpsl-nav-button.d.ts +43 -0
  128. package/dist/types/components/cpsl-nav-button-group/cpsl-nav-button-group.d.ts +0 -6
  129. package/dist/types/components.d.ts +93 -39
  130. package/dist/types/index.d.ts +1 -0
  131. package/dist/types/lib/prando.d.ts +92 -0
  132. package/dist/types/utils/prand.d.ts +3 -0
  133. package/package.json +2 -4
  134. package/dist/capsule/p-0e558c7f.entry.js +0 -10
  135. package/dist/capsule/p-0e558c7f.entry.js.map +0 -1
  136. package/dist/capsule/p-0e6007ae.entry.js +0 -20
  137. package/dist/capsule/p-0e6007ae.entry.js.map +0 -1
  138. package/dist/capsule/p-32cdf894.entry.js.map +0 -1
  139. package/dist/capsule/p-3b042fd1.entry.js +0 -2
  140. package/dist/capsule/p-5d62e610.entry.js +0 -2
  141. package/dist/capsule/p-5d62e610.entry.js.map +0 -1
  142. package/dist/cjs/cpsl-animation.cjs.entry.js +0 -20133
  143. package/dist/cjs/cpsl-animation.cjs.entry.js.map +0 -1
  144. package/dist/collection/components/cpsl-animation/cpsl-animation.css +0 -17
  145. package/dist/esm/cpsl-animation.entry.js +0 -20129
  146. package/dist/esm/cpsl-animation.entry.js.map +0 -1
  147. /package/dist/capsule/{p-3b042fd1.entry.js.map → p-cfc382c0.entry.js.map} +0 -0
  148. /package/dist/capsule/{p-de2a16e4.entry.js.map → p-d165df27.entry.js.map} +0 -0
  149. /package/dist/capsule/{p-41bc3c58.entry.js.map → p-f0cd0482.entry.js.map} +0 -0
  150. /package/dist/types/Users/{norwood/capsule-repos → taylorbosch/Documents/GitHub/Capsule}/web-sdk/packages/core-components/.stencil/scripts/buildAssets.d.ts +0 -0
@@ -1,4 +1,6 @@
1
1
  import { Host, h } from "@stencil/core";
2
+ import Prando from "../../lib/prando";
3
+ import { COLORS } from "../../utils/prand";
2
4
  const SingleArc = (rotation) => (h("svg", { class: {
3
5
  rotate90: rotation === 1,
4
6
  rotate180: rotation === 2,
@@ -9,35 +11,72 @@ const DoubleArc = (rotation) => (h("svg", { class: {
9
11
  rotate180: rotation === 2,
10
12
  rotate270: rotation === 3,
11
13
  }, viewBox: "0 0 12 12", xmlns: "http://www.w3.org/2000/svg" }, h("g", { "clip-path": "url(#clip0_674_255)" }, h("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M12 24C18.6274 24 24 18.6274 24 12C24 5.37258 18.6274 0 12 0C5.37258 0 0 5.37258 0 12C0 18.6274 5.37258 24 12 24ZM12 21C16.9706 21 21 16.9706 21 12C21 7.02944 16.9706 3 12 3C7.02944 3 3 7.02944 3 12C3 16.9706 7.02944 21 12 21Z" }), h("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M12 18C15.3137 18 18 15.3137 18 12C18 8.68629 15.3137 6 12 6C8.68629 6 6 8.68629 6 12C6 15.3137 8.68629 18 12 18ZM12 15C13.6569 15 15 13.6569 15 12C15 10.3431 13.6569 9 12 9C10.3431 9 9 10.3431 9 12C9 13.6569 10.3431 15 12 15Z" })), h("defs", null, h("clipPath", { id: "clip0_674_255" }, h("rect", { width: "12", height: "12" })))));
14
+ const BASE_PATTERNS = [
15
+ [
16
+ [0, 0, 0, 0],
17
+ [0, 1, 3, 2],
18
+ ],
19
+ [
20
+ [1, 1, 0, 0],
21
+ [0, 1, 3, 2],
22
+ ],
23
+ [
24
+ [0, 1, 0, 1],
25
+ [0, 1, 3, 2],
26
+ ],
27
+ [
28
+ [0, 0, 1, 1],
29
+ [0, 1, 3, 2],
30
+ ],
31
+ [
32
+ [1, 0, 1, 0],
33
+ [0, 1, 3, 2],
34
+ ],
35
+ [
36
+ [1, 1, 1, 1],
37
+ [0, 1, 3, 2],
38
+ ],
39
+ [
40
+ [0, 0, 0, 0],
41
+ [2, 3, 1, 0],
42
+ ],
43
+ [
44
+ [1, 1, 1, 1],
45
+ [2, 3, 1, 0],
46
+ ],
47
+ [
48
+ [1, 1, 1, 1],
49
+ [0, 1, 2, 3],
50
+ ],
51
+ ];
12
52
  export class CpslIdenticon {
13
53
  constructor() {
14
54
  this.hash = undefined;
15
- this.size = 40;
55
+ this.size = '40px';
56
+ this.variant = 'default';
16
57
  }
17
58
  render() {
18
- const [code, color] = stringToBinaryAndColor(this.hash);
19
- const shapeA = ((code >> 2) & 1) !== 0;
20
- const shapeB = ((code >> 3) & 1) !== 0;
21
- const shapeC = ((code >> 4) & 1) !== 0;
22
- const shapeD = ((code >> 5) & 1) !== 0;
23
- const rotationA = (code >> 6) & 3;
24
- const rotationB = (code >> 7) & 3;
25
- const rotationC = (code >> 8) & 3;
26
- const rotationD = (code >> 9) & 3;
27
- const [shapes, rotations] = [
28
- [shapeA, shapeB, shapeC, shapeD],
29
- [rotationA, rotationB, rotationC, rotationD],
30
- ];
31
- return (h(Host, { key: '39bcae00e3fd58ff94639fbb43c77fd942899e51', class: {
32
- red: color === 'red',
33
- orange: color === 'orange',
34
- yellow: color === 'yellow',
35
- green: color === 'green',
36
- blue: color === 'blue',
37
- purple: color === 'purple',
38
- } }, shapes.map((isDouble, index) => {
39
- return isDouble ? DoubleArc(rotations[index]) : SingleArc(rotations[index]);
40
- })));
59
+ let props;
60
+ const isEmpty = !this.hash;
61
+ if (!isEmpty)
62
+ props = getIdenticonProps(this.hash);
63
+ return (h(Host, { key: 'dca30d0d61d0e29f2ec3ad657225ac51db09940d', class: {
64
+ red: (props === null || props === void 0 ? void 0 : props.color) === 'red',
65
+ orange: (props === null || props === void 0 ? void 0 : props.color) === 'orange',
66
+ yellow: (props === null || props === void 0 ? void 0 : props.color) === 'yellow',
67
+ green: (props === null || props === void 0 ? void 0 : props.color) === 'green',
68
+ blue: (props === null || props === void 0 ? void 0 : props.color) === 'blue',
69
+ purple: (props === null || props === void 0 ? void 0 : props.color) === 'purple',
70
+ empty: !(props === null || props === void 0 ? void 0 : props.color) && !this.hash,
71
+ avatar: this.variant === 'avatar',
72
+ }, style: {
73
+ width: this.size,
74
+ height: this.size,
75
+ } }, (props === null || props === void 0 ? void 0 : props.shapes) &&
76
+ (props === null || props === void 0 ? void 0 : props.rotations) &&
77
+ props.shapes.map((isDouble, index) => {
78
+ return isDouble ? DoubleArc(props.rotations[index]) : SingleArc(props.rotations[index]);
79
+ })));
41
80
  }
42
81
  static get is() { return "cpsl-identicon"; }
43
82
  static get encapsulation() { return "shadow"; }
@@ -57,12 +96,12 @@ export class CpslIdenticon {
57
96
  "type": "string",
58
97
  "mutable": false,
59
98
  "complexType": {
60
- "original": "string",
99
+ "original": "string | undefined",
61
100
  "resolved": "string",
62
101
  "references": {}
63
102
  },
64
103
  "required": false,
65
- "optional": false,
104
+ "optional": true,
66
105
  "docs": {
67
106
  "tags": [],
68
107
  "text": ""
@@ -71,30 +110,56 @@ export class CpslIdenticon {
71
110
  "reflect": false
72
111
  },
73
112
  "size": {
74
- "type": "number",
113
+ "type": "string",
75
114
  "mutable": false,
76
115
  "complexType": {
77
- "original": "number",
78
- "resolved": "number",
116
+ "original": "string",
117
+ "resolved": "string",
79
118
  "references": {}
80
119
  },
81
120
  "required": false,
82
121
  "optional": false,
83
122
  "docs": {
84
123
  "tags": [],
85
- "text": "The size of the identicon.\nDefault is: 40."
124
+ "text": "The CSS width and height of the identicon.\nDefault is: 40px."
86
125
  },
87
126
  "attribute": "size",
88
127
  "reflect": false,
89
- "defaultValue": "40"
128
+ "defaultValue": "'40px'"
129
+ },
130
+ "variant": {
131
+ "type": "string",
132
+ "mutable": false,
133
+ "complexType": {
134
+ "original": "'default' | 'avatar'",
135
+ "resolved": "\"avatar\" | \"default\"",
136
+ "references": {}
137
+ },
138
+ "required": false,
139
+ "optional": false,
140
+ "docs": {
141
+ "tags": [],
142
+ "text": ""
143
+ },
144
+ "attribute": "variant",
145
+ "reflect": false,
146
+ "defaultValue": "'default'"
90
147
  }
91
148
  };
92
149
  }
93
150
  }
94
- const COLORS = ['red', 'orange', 'yellow', 'green', 'blue', 'purple'];
95
- function stringToBinaryAndColor(hash) {
96
- const code = (hash.charCodeAt(0) << 24) | (hash.charCodeAt(1) << 16) | (hash.charCodeAt(2) << 8) | hash.charCodeAt(3);
97
- const color = COLORS[Math.abs(code % 6)];
98
- return [code, color];
151
+ const PRANDO_INTS = [COLORS.length, BASE_PATTERNS.length, 16];
152
+ function getIdenticonProps(seed) {
153
+ const rng = new Prando(seed);
154
+ const [iColor, iPattern, iDeviation] = PRANDO_INTS.map(len => rng.nextInt(0, len - 1));
155
+ const deviationIndex = Math.floor(iDeviation / 4);
156
+ const [isDeviateShape, isDeviateFlip] = [iDeviation % 2 === 1, iDeviation % 4 >= 2];
157
+ return {
158
+ color: COLORS[iColor],
159
+ shapes: BASE_PATTERNS[iPattern][0].map((s, i) => {
160
+ return i === deviationIndex ? (isDeviateShape ? (s === 1 ? false : true) : s === 1) : s === 1;
161
+ }),
162
+ rotations: BASE_PATTERNS[iPattern][1].map((r, i) => (i === deviationIndex ? (isDeviateFlip ? (r + 2) % 4 : r) : r)),
163
+ };
99
164
  }
100
165
  //# sourceMappingURL=cpsl-identicon.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cpsl-identicon.js","sourceRoot":"","sources":["../../../../src/components/cpsl-identicon/cpsl-identicon.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, Prop, h } from '@stencil/core';\n\nconst SingleArc = (rotation: number) => (\n <svg\n class={{\n rotate90: rotation === 1,\n rotate180: rotation === 2,\n rotate270: rotation === 3,\n }}\n viewBox=\"0 0 12 12\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clip-path=\"url(#clip0_674_66)\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M12 24C18.6274 24 24 18.6274 24 12C24 5.37258 18.6274 0 12 0C5.37258 0 0 5.37258 0 12C0 18.6274 5.37258 24 12 24ZM12 21C16.9706 21 21 16.9706 21 12C21 7.02944 16.9706 3 12 3C7.02944 3 3 7.02944 3 12C3 16.9706 7.02944 21 12 21Z\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_674_66\">\n <rect width=\"12\" height=\"12\" />\n </clipPath>\n </defs>\n </svg>\n);\n\nconst DoubleArc = (rotation: number) => (\n <svg\n class={{\n rotate90: rotation === 1,\n rotate180: rotation === 2,\n rotate270: rotation === 3,\n }}\n viewBox=\"0 0 12 12\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clip-path=\"url(#clip0_674_255)\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M12 24C18.6274 24 24 18.6274 24 12C24 5.37258 18.6274 0 12 0C5.37258 0 0 5.37258 0 12C0 18.6274 5.37258 24 12 24ZM12 21C16.9706 21 21 16.9706 21 12C21 7.02944 16.9706 3 12 3C7.02944 3 3 7.02944 3 12C3 16.9706 7.02944 21 12 21Z\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M12 18C15.3137 18 18 15.3137 18 12C18 8.68629 15.3137 6 12 6C8.68629 6 6 8.68629 6 12C6 15.3137 8.68629 18 12 18ZM12 15C13.6569 15 15 13.6569 15 12C15 10.3431 13.6569 9 12 9C10.3431 9 9 10.3431 9 12C9 13.6569 10.3431 15 12 15Z\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_674_255\">\n <rect width=\"12\" height=\"12\" />\n </clipPath>\n </defs>\n </svg>\n);\n\n@Component({\n tag: 'cpsl-identicon',\n styleUrl: 'cpsl-identicon.scss',\n shadow: true,\n})\nexport class CpslIdenticon {\n @Prop() hash: string;\n\n /**\n * The size of the identicon.\n * Default is: 40.\n */\n @Prop() size: number = 40;\n\n render() {\n const [code, color] = stringToBinaryAndColor(this.hash);\n const shapeA = ((code >> 2) & 1) !== 0;\n const shapeB = ((code >> 3) & 1) !== 0;\n const shapeC = ((code >> 4) & 1) !== 0;\n const shapeD = ((code >> 5) & 1) !== 0;\n const rotationA = (code >> 6) & 3;\n const rotationB = (code >> 7) & 3;\n const rotationC = (code >> 8) & 3;\n const rotationD = (code >> 9) & 3;\n\n const [shapes, rotations] = [\n [shapeA, shapeB, shapeC, shapeD],\n [rotationA, rotationB, rotationC, rotationD],\n ];\n\n return (\n <Host\n class={{\n red: color === 'red',\n orange: color === 'orange',\n yellow: color === 'yellow',\n green: color === 'green',\n blue: color === 'blue',\n purple: color === 'purple',\n }}\n >\n {shapes.map((isDouble, index) => {\n return isDouble ? DoubleArc(rotations[index]) : SingleArc(rotations[index]);\n })}\n </Host>\n );\n }\n}\n\ntype Color = 'red' | 'orange' | 'yellow' | 'green' | 'blue' | 'purple';\n\nconst COLORS: Color[] = ['red', 'orange', 'yellow', 'green', 'blue', 'purple'];\n\nfunction stringToBinaryAndColor(hash: string): [number, Color] {\n const code = (hash.charCodeAt(0) << 24) | (hash.charCodeAt(1) << 16) | (hash.charCodeAt(2) << 8) | hash.charCodeAt(3);\n\n const color = COLORS[Math.abs(code % 6)];\n\n return [code, color];\n}\n"]}
1
+ {"version":3,"file":"cpsl-identicon.js","sourceRoot":"","sources":["../../../../src/components/cpsl-identicon/cpsl-identicon.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, Prop, h } from '@stencil/core';\nimport Prando from '../../lib/prando';\nimport { Color, COLORS } from '../../utils/prand';\n\nconst SingleArc = (rotation: number) => (\n <svg\n class={{\n rotate90: rotation === 1,\n rotate180: rotation === 2,\n rotate270: rotation === 3,\n }}\n viewBox=\"0 0 12 12\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clip-path=\"url(#clip0_674_66)\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M12 24C18.6274 24 24 18.6274 24 12C24 5.37258 18.6274 0 12 0C5.37258 0 0 5.37258 0 12C0 18.6274 5.37258 24 12 24ZM12 21C16.9706 21 21 16.9706 21 12C21 7.02944 16.9706 3 12 3C7.02944 3 3 7.02944 3 12C3 16.9706 7.02944 21 12 21Z\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_674_66\">\n <rect width=\"12\" height=\"12\" />\n </clipPath>\n </defs>\n </svg>\n);\n\nconst DoubleArc = (rotation: number) => (\n <svg\n class={{\n rotate90: rotation === 1,\n rotate180: rotation === 2,\n rotate270: rotation === 3,\n }}\n viewBox=\"0 0 12 12\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clip-path=\"url(#clip0_674_255)\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M12 24C18.6274 24 24 18.6274 24 12C24 5.37258 18.6274 0 12 0C5.37258 0 0 5.37258 0 12C0 18.6274 5.37258 24 12 24ZM12 21C16.9706 21 21 16.9706 21 12C21 7.02944 16.9706 3 12 3C7.02944 3 3 7.02944 3 12C3 16.9706 7.02944 21 12 21Z\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M12 18C15.3137 18 18 15.3137 18 12C18 8.68629 15.3137 6 12 6C8.68629 6 6 8.68629 6 12C6 15.3137 8.68629 18 12 18ZM12 15C13.6569 15 15 13.6569 15 12C15 10.3431 13.6569 9 12 9C10.3431 9 9 10.3431 9 12C9 13.6569 10.3431 15 12 15Z\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_674_255\">\n <rect width=\"12\" height=\"12\" />\n </clipPath>\n </defs>\n </svg>\n);\n\nconst BASE_PATTERNS = [\n [\n [0, 0, 0, 0],\n [0, 1, 3, 2],\n ],\n [\n [1, 1, 0, 0],\n [0, 1, 3, 2],\n ],\n [\n [0, 1, 0, 1],\n [0, 1, 3, 2],\n ],\n [\n [0, 0, 1, 1],\n [0, 1, 3, 2],\n ],\n [\n [1, 0, 1, 0],\n [0, 1, 3, 2],\n ],\n [\n [1, 1, 1, 1],\n [0, 1, 3, 2],\n ],\n [\n [0, 0, 0, 0],\n [2, 3, 1, 0],\n ],\n [\n [1, 1, 1, 1],\n [2, 3, 1, 0],\n ],\n [\n [1, 1, 1, 1],\n [0, 1, 2, 3],\n ],\n];\n\n@Component({\n tag: 'cpsl-identicon',\n styleUrl: 'cpsl-identicon.scss',\n shadow: true,\n})\nexport class CpslIdenticon {\n @Prop() hash?: string | undefined;\n\n /**\n * The CSS width and height of the identicon.\n * Default is: 40px.\n */\n @Prop() size: string = '40px';\n\n @Prop() variant: 'default' | 'avatar' = 'default';\n\n render() {\n let props;\n const isEmpty = !this.hash;\n if (!isEmpty) props = getIdenticonProps(this.hash);\n\n return (\n <Host\n class={{\n red: props?.color === 'red',\n orange: props?.color === 'orange',\n yellow: props?.color === 'yellow',\n green: props?.color === 'green',\n blue: props?.color === 'blue',\n purple: props?.color === 'purple',\n empty: !props?.color && !this.hash,\n avatar: this.variant === 'avatar',\n }}\n style={{\n width: this.size,\n height: this.size,\n }}\n >\n {props?.shapes &&\n props?.rotations &&\n props.shapes.map((isDouble, index) => {\n return isDouble ? DoubleArc(props.rotations[index]) : SingleArc(props.rotations[index]);\n })}\n </Host>\n );\n }\n}\n\nconst PRANDO_INTS = [COLORS.length, BASE_PATTERNS.length, 16];\n\nfunction getIdenticonProps(seed: string): { color: Color; shapes: boolean[]; rotations: number[] } {\n const rng = new Prando(seed);\n\n const [iColor, iPattern, iDeviation] = PRANDO_INTS.map(len => rng.nextInt(0, len - 1));\n\n const deviationIndex = Math.floor(iDeviation / 4);\n const [isDeviateShape, isDeviateFlip] = [iDeviation % 2 === 1, iDeviation % 4 >= 2];\n\n return {\n color: COLORS[iColor],\n shapes: BASE_PATTERNS[iPattern][0].map((s, i) => {\n return i === deviationIndex ? (isDeviateShape ? (s === 1 ? false : true) : s === 1) : s === 1;\n }),\n rotations: BASE_PATTERNS[iPattern][1].map((r, i) => (i === deviationIndex ? (isDeviateFlip ? (r + 2) % 4 : r) : r)),\n };\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  const meta = {
2
2
  title: 'Components/CpslIdenticon',
3
- args: { hash: 'wruvbwic8932nc4u3cr9394n3cibj3892438cr', size: 40 },
3
+ args: { hash: 'wruvbwic8932nc4u3cr9394n3cibj3892438cr', size: '40px' },
4
4
  argTypes: {
5
5
  hash: { control: 'text' },
6
6
  size: { control: 'number' },
@@ -1 +1 @@
1
- {"version":3,"file":"cpsl-identicon.stories.js","sourceRoot":"","sources":["../../../../src/components/cpsl-identicon/cpsl-identicon.stories.tsx"],"names":[],"mappings":"AAGA,MAAM,IAAI,GAA+C;IACvD,KAAK,EAAE,0BAA0B;IACjC,IAAI,EAAE,EAAE,IAAI,EAAE,wCAAwC,EAAE,IAAI,EAAE,EAAE,EAAE;IAClE,QAAQ,EAAE;QACR,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;QACzB,IAAI,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;KAC5B;CACF,CAAC;AAEF,eAAe,IAAI,CAAC;AAIpB,MAAM,QAAQ,GAAU,IAAI,CAAC,EAAE,CAAC,wBAAwB,IAAI,CAAC,IAAI,IAAI,CAAC;AAEtE,MAAM,CAAC,MAAM,OAAO,GAAU,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC","sourcesContent":["import type { Meta, StoryFn } from '@storybook/html';\nimport { type CpslIdenticon } from './cpsl-identicon';\n\nconst meta: Meta<CpslIdenticon & { content?: string }> = {\n title: 'Components/CpslIdenticon',\n args: { hash: 'wruvbwic8932nc4u3cr9394n3cibj3892438cr', size: 40 },\n argTypes: {\n hash: { control: 'text' },\n size: { control: 'number' },\n },\n};\n\nexport default meta;\n\ntype Story = StoryFn<CpslIdenticon & { content?: string }>;\n\nconst Template: Story = args => `<cpsl-identicon hash=${args.hash}/>`;\n\nexport const Primary: Story = Template.bind({});\n"]}
1
+ {"version":3,"file":"cpsl-identicon.stories.js","sourceRoot":"","sources":["../../../../src/components/cpsl-identicon/cpsl-identicon.stories.tsx"],"names":[],"mappings":"AAGA,MAAM,IAAI,GAA+C;IACvD,KAAK,EAAE,0BAA0B;IACjC,IAAI,EAAE,EAAE,IAAI,EAAE,wCAAwC,EAAE,IAAI,EAAE,MAAM,EAAE;IACtE,QAAQ,EAAE;QACR,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;QACzB,IAAI,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;KAC5B;CACF,CAAC;AAEF,eAAe,IAAI,CAAC;AAIpB,MAAM,QAAQ,GAAU,IAAI,CAAC,EAAE,CAAC,wBAAwB,IAAI,CAAC,IAAI,IAAI,CAAC;AAEtE,MAAM,CAAC,MAAM,OAAO,GAAU,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC","sourcesContent":["import type { Meta, StoryFn } from '@storybook/html';\nimport { type CpslIdenticon } from './cpsl-identicon';\n\nconst meta: Meta<CpslIdenticon & { content?: string }> = {\n title: 'Components/CpslIdenticon',\n args: { hash: 'wruvbwic8932nc4u3cr9394n3cibj3892438cr', size: '40px' },\n argTypes: {\n hash: { control: 'text' },\n size: { control: 'number' },\n },\n};\n\nexport default meta;\n\ntype Story = StoryFn<CpslIdenticon & { content?: string }>;\n\nconst Template: Story = args => `<cpsl-identicon hash=${args.hash}/>`;\n\nexport const Primary: Story = Template.bind({});\n"]}
@@ -675,7 +675,7 @@ export class CpslInput {
675
675
  "mutable": false,
676
676
  "complexType": {
677
677
  "original": "IconType",
678
- "resolved": "\"search\" | \"alertCircle\" | \"angelListBrand\" | \"angelList\" | \"appleBrand\" | \"apple\" | \"arrowCircleBrokenDownLeft\" | \"arrowNarrow\" | \"arrow\" | \"backupKit\" | \"bank\" | \"brush\" | \"capsuleLogo\" | \"capsuleRingsDark\" | \"capsuleRings\" | \"capsule\" | \"checkCircle\" | \"check\" | \"chevronUp\" | \"clock\" | \"close\" | \"clubhouseBrand\" | \"clubhouse\" | \"copy\" | \"creditCard\" | \"cube\" | \"decentBrand\" | \"decent\" | \"discordBrand\" | \"discord\" | \"dot\" | \"downloadCloud\" | \"download\" | \"dribbbleBrand\" | \"dribbble\" | \"earth\" | \"eyeOff\" | \"eye\" | \"facebookBrand\" | \"facebook\" | \"farcasterBrand\" | \"farcaster\" | \"figmaBrand\" | \"figma\" | \"file\" | \"githubBrand\" | \"github\" | \"globe\" | \"googleBrand\" | \"google\" | \"helpCircle\" | \"heroAlertCircle\" | \"heroCheckmarkCapsule\" | \"heroCheckmark\" | \"heroEmail\" | \"heroExternalConnection\" | \"heroLock\" | \"heroPasskey\" | \"heroPhone\" | \"heroWallet\" | \"home\" | \"image\" | \"infoCircle\" | \"instagramBrand\" | \"instagram\" | \"key\" | \"lightning01\" | \"lightning\" | \"linkExternal\" | \"linkedinBrand\" | \"linkedin\" | \"logOut\" | \"mail\" | \"menu\" | \"moonpayBrand\" | \"moreLoginOptions\" | \"phone\" | \"pintrestBrand\" | \"pintrest\" | \"plusCircle\" | \"puzzlePiece\" | \"qrCode02\" | \"qrCode\" | \"rampNetworkBrand\" | \"rampNetwork\" | \"redditBrand\" | \"reddit\" | \"refresh\" | \"send\" | \"settings\" | \"shield\" | \"signalBrand\" | \"signal\" | \"snapchatBrand\" | \"snapchat\" | \"stars\" | \"stripeBrand\" | \"telegramBrand\" | \"telegram\" | \"tikTokBrand\" | \"tikTok\" | \"tumblrBrand\" | \"tumblr\" | \"twitterBrand\" | \"twitter\" | \"wallet\" | \"x\" | \"youtubeBrand\" | \"youtube\" | \"AD\" | \"AE\" | \"AF\" | \"AG\" | \"AI\" | \"AL\" | \"AM\" | \"AO\" | \"AR\" | \"AS\" | \"AT\" | \"AU\" | \"AW\" | \"AX\" | \"AZ\" | \"BA\" | \"BB\" | \"BD\" | \"BE\" | \"BF\" | \"BG\" | \"BH\" | \"BI\" | \"BJ\" | \"BL\" | \"BM\" | \"BN\" | \"BO\" | \"BQ\" | \"BQ2\" | \"BQ3\" | \"BR\" | \"BS\" | \"BT\" | \"BW\" | \"BY\" | \"BZ\" | \"CA\" | \"CC\" | \"CD\" | \"CD2\" | \"CF\" | \"CH\" | \"CK\" | \"CL\" | \"CM\" | \"CN\" | \"CO\" | \"CR\" | \"CU\" | \"CW\" | \"CX\" | \"CY\" | \"CZ\" | \"DE\" | \"DJ\" | \"DK\" | \"DM\" | \"DO\" | \"DS\" | \"DZ\" | \"EC\" | \"EE\" | \"EG\" | \"EH\" | \"ER\" | \"ES\" | \"ET\" | \"FI\" | \"FJ\" | \"FK\" | \"FM\" | \"FO\" | \"FR\" | \"GA\" | \"GB2\" | \"GB\" | \"GD\" | \"GE\" | \"GG\" | \"GH\" | \"GI\" | \"GL\" | \"GM\" | \"GN\" | \"GQ\" | \"GR\" | \"GT\" | \"GU\" | \"GW\" | \"GY\" | \"HK\" | \"HN\" | \"HR\" | \"HT\" | \"HU\" | \"ID\" | \"IE\" | \"IL\" | \"IM\" | \"IN\" | \"IO\" | \"IQ\" | \"IR\" | \"IS\" | \"IT\" | \"JE\" | \"JM\" | \"JO\" | \"JP\" | \"KE\" | \"KG\" | \"KH\" | \"KI\" | \"KM\" | \"KN\" | \"KP\" | \"KR\" | \"KW\" | \"KY\" | \"KZ\" | \"LA\" | \"LB\" | \"LC\" | \"LI\" | \"LK\" | \"LR\" | \"LS\" | \"LT\" | \"LU\" | \"LV\" | \"LY\" | \"MA\" | \"MC\" | \"MD\" | \"ME\" | \"MG\" | \"MH\" | \"MK\" | \"ML\" | \"MM\" | \"MN\" | \"MO\" | \"MP\" | \"MQ\" | \"MR\" | \"MS\" | \"MT\" | \"MU\" | \"MV\" | \"MW\" | \"MX\" | \"MY\" | \"MZ\" | \"NA\" | \"NE\" | \"NF\" | \"NG\" | \"NI\" | \"NL\" | \"NO\" | \"NP\" | \"NR\" | \"NU\" | \"NZ\" | \"OM\" | \"PA\" | \"PE\" | \"PF\" | \"PG\" | \"PH\" | \"PK\" | \"PL\" | \"PN\" | \"PR\" | \"PS\" | \"PT\" | \"PW\" | \"PY\" | \"QA\" | \"RO\" | \"RS\" | \"RU\" | \"RW\" | \"SA\" | \"SB\" | \"SC\" | \"SE\" | \"SG\" | \"SI\" | \"SK\" | \"SL\" | \"SM\" | \"SN\" | \"SO\" | \"SR\" | \"SS\" | \"ST\" | \"SV\" | \"SX\" | \"SY\" | \"SZ\" | \"TC\" | \"TD\" | \"TG\" | \"TH\" | \"TJ\" | \"TK\" | \"TL\" | \"TM\" | \"TN\" | \"TO\" | \"TR\" | \"TT\" | \"TV\" | \"TW\" | \"TZ\" | \"UA\" | \"UG\" | \"US\" | \"UY\" | \"UZ\" | \"VC\" | \"VE\" | \"VG\" | \"VI\" | \"VN\" | \"VU\" | \"WS\" | \"YE\" | \"ZA\" | \"ZM\" | \"ZW\"",
678
+ "resolved": "\"search\" | \"alertCircle\" | \"angelListBrand\" | \"angelList\" | \"appleBrand\" | \"apple\" | \"arrowCircleBrokenDownLeft\" | \"arrowNarrow\" | \"arrow\" | \"backupKit\" | \"bank\" | \"brush\" | \"capsuleLogo\" | \"capsuleRingsDark\" | \"capsuleRings\" | \"capsule\" | \"checkCircleFilled\" | \"checkCircle\" | \"check\" | \"chevronUp\" | \"clock\" | \"close\" | \"clubhouseBrand\" | \"clubhouse\" | \"copy\" | \"cosmos\" | \"creditCard\" | \"cube\" | \"decentBrand\" | \"decent\" | \"discordBrand\" | \"discord\" | \"dot\" | \"downloadCloud\" | \"download\" | \"dribbbleBrand\" | \"dribbble\" | \"earth\" | \"ethereum\" | \"eyeOff\" | \"eye\" | \"facebookBrand\" | \"facebook\" | \"farcasterBrand\" | \"farcaster\" | \"figmaBrand\" | \"figma\" | \"file\" | \"folder\" | \"githubBrand\" | \"github\" | \"globe\" | \"googleBrand\" | \"google\" | \"helpCircle\" | \"heroAlertCircle\" | \"heroCheckmarkCapsule\" | \"heroCheckmark\" | \"heroEmail\" | \"heroExternalConnection\" | \"heroLock\" | \"heroPasskey\" | \"heroPhone\" | \"heroPlusCircleCapsule\" | \"heroPlusCircle\" | \"heroWallet\" | \"home\" | \"image\" | \"infoCircle\" | \"instagramBrand\" | \"instagram\" | \"key\" | \"lightning01\" | \"lightning\" | \"linkExternal\" | \"linkedinBrand\" | \"linkedin\" | \"logOut\" | \"mail\" | \"menu\" | \"moonpayBrand\" | \"moreLoginOptions\" | \"phone\" | \"pintrestBrand\" | \"pintrest\" | \"plusCircle\" | \"puzzlePiece\" | \"qrCode02\" | \"qrCode\" | \"rampNetworkBrand\" | \"rampNetwork\" | \"redditBrand\" | \"reddit\" | \"refresh\" | \"send\" | \"settings\" | \"shield\" | \"signalBrand\" | \"signal\" | \"snapchatBrand\" | \"snapchat\" | \"solana\" | \"stars\" | \"stripeBrand\" | \"telegramBrand\" | \"telegram\" | \"tikTokBrand\" | \"tikTok\" | \"tumblrBrand\" | \"tumblr\" | \"twitterBrand\" | \"twitter\" | \"wallet\" | \"x\" | \"youtubeBrand\" | \"youtube\" | \"AD\" | \"AE\" | \"AF\" | \"AG\" | \"AI\" | \"AL\" | \"AM\" | \"AO\" | \"AR\" | \"AS\" | \"AT\" | \"AU\" | \"AW\" | \"AX\" | \"AZ\" | \"BA\" | \"BB\" | \"BD\" | \"BE\" | \"BF\" | \"BG\" | \"BH\" | \"BI\" | \"BJ\" | \"BL\" | \"BM\" | \"BN\" | \"BO\" | \"BQ\" | \"BQ2\" | \"BQ3\" | \"BR\" | \"BS\" | \"BT\" | \"BW\" | \"BY\" | \"BZ\" | \"CA\" | \"CC\" | \"CD\" | \"CD2\" | \"CF\" | \"CH\" | \"CK\" | \"CL\" | \"CM\" | \"CN\" | \"CO\" | \"CR\" | \"CU\" | \"CW\" | \"CX\" | \"CY\" | \"CZ\" | \"DE\" | \"DJ\" | \"DK\" | \"DM\" | \"DO\" | \"DS\" | \"DZ\" | \"EC\" | \"EE\" | \"EG\" | \"EH\" | \"ER\" | \"ES\" | \"ET\" | \"FI\" | \"FJ\" | \"FK\" | \"FM\" | \"FO\" | \"FR\" | \"GA\" | \"GB2\" | \"GB\" | \"GD\" | \"GE\" | \"GG\" | \"GH\" | \"GI\" | \"GL\" | \"GM\" | \"GN\" | \"GQ\" | \"GR\" | \"GT\" | \"GU\" | \"GW\" | \"GY\" | \"HK\" | \"HN\" | \"HR\" | \"HT\" | \"HU\" | \"ID\" | \"IE\" | \"IL\" | \"IM\" | \"IN\" | \"IO\" | \"IQ\" | \"IR\" | \"IS\" | \"IT\" | \"JE\" | \"JM\" | \"JO\" | \"JP\" | \"KE\" | \"KG\" | \"KH\" | \"KI\" | \"KM\" | \"KN\" | \"KP\" | \"KR\" | \"KW\" | \"KY\" | \"KZ\" | \"LA\" | \"LB\" | \"LC\" | \"LI\" | \"LK\" | \"LR\" | \"LS\" | \"LT\" | \"LU\" | \"LV\" | \"LY\" | \"MA\" | \"MC\" | \"MD\" | \"ME\" | \"MG\" | \"MH\" | \"MK\" | \"ML\" | \"MM\" | \"MN\" | \"MO\" | \"MP\" | \"MQ\" | \"MR\" | \"MS\" | \"MT\" | \"MU\" | \"MV\" | \"MW\" | \"MX\" | \"MY\" | \"MZ\" | \"NA\" | \"NE\" | \"NF\" | \"NG\" | \"NI\" | \"NL\" | \"NO\" | \"NP\" | \"NR\" | \"NU\" | \"NZ\" | \"OM\" | \"PA\" | \"PE\" | \"PF\" | \"PG\" | \"PH\" | \"PK\" | \"PL\" | \"PN\" | \"PR\" | \"PS\" | \"PT\" | \"PW\" | \"PY\" | \"QA\" | \"RO\" | \"RS\" | \"RU\" | \"RW\" | \"SA\" | \"SB\" | \"SC\" | \"SE\" | \"SG\" | \"SI\" | \"SK\" | \"SL\" | \"SM\" | \"SN\" | \"SO\" | \"SR\" | \"SS\" | \"ST\" | \"SV\" | \"SX\" | \"SY\" | \"SZ\" | \"TC\" | \"TD\" | \"TG\" | \"TH\" | \"TJ\" | \"TK\" | \"TL\" | \"TM\" | \"TN\" | \"TO\" | \"TR\" | \"TT\" | \"TV\" | \"TW\" | \"TZ\" | \"UA\" | \"UG\" | \"US\" | \"UY\" | \"UZ\" | \"VC\" | \"VE\" | \"VG\" | \"VI\" | \"VN\" | \"VU\" | \"WS\" | \"YE\" | \"ZA\" | \"ZM\" | \"ZW\"",
679
679
  "references": {
680
680
  "IconType": {
681
681
  "location": "import",
@@ -0,0 +1,107 @@
1
+ :host {
2
+ display: flex;
3
+ flex-direction: column;
4
+ gap: 8px;
5
+ padding: 0px;
6
+ box-sizing: border-box;
7
+ width: 100%;
8
+ background: var(--cpsl-color-background-4);
9
+ border-radius: var(--cpsl-border-radius-primary-button);
10
+ overflow: hidden;
11
+ }
12
+
13
+ .sub-route-container {
14
+ display: flex;
15
+ flex-direction: column;
16
+ gap: 8px;
17
+ border-left: 1px solid var(--cpsl-color-background-16);
18
+ padding-left: 16px;
19
+ margin-left: 16px;
20
+ margin-bottom: 8px;
21
+ margin-right: 8px;
22
+ background: var(--cpsl-color-background-4);
23
+ }
24
+
25
+ .sub-route {
26
+ --button-padding-start: 8px;
27
+ --button-padding-end: 8px;
28
+ --button-padding-top: 8px;
29
+ --button-padding-bottom: 8px;
30
+ --button-justify-content: start;
31
+ --button-primary-color: var(--cpsl-color-background-48);
32
+ --button-primary-background-color: var(--cpsl-color-background-4);
33
+ --button-primary-border-color: var(--cpsl-color-background-4);
34
+ --button-primary-icon-color: var(--cpsl-color-text-primary);
35
+ --button-primary-disabled-color: var(--cpsl-color-text-primary);
36
+ --button-primary-disabled-background-color: var(--cpsl-color-background-4);
37
+ --button-primary-disabled-border-color: var(--cpsl-color-background-4);
38
+ --button-primary-disabled-icon-color: var(--cpsl-color-text-primary);
39
+ --button-primary-hover-color: var(--cpsl-color-background-48);
40
+ --button-primary-hover-background-color: var(--cpsl-color-background-0);
41
+ --button-primary-hover-border-color: var(--cpsl-color-background-4);
42
+ --button-primary-hover-icon-color: var(--cpsl-color-background-48);
43
+ --button-primary-active-color: var(--cpsl-color-text-primary);
44
+ --button-primary-active-background-color: var(--cpsl-color-background-4);
45
+ --button-primary-active-border-color: var(--cpsl-color-background-4);
46
+ --button-primary-active-icon-color: var(--cpsl-color-text-primary);
47
+ }
48
+ .sub-route.selected {
49
+ --button-primary-color: var(--cpsl-color-text-primary);
50
+ --button-primary-background-color: var(--cpsl-color-background-0);
51
+ --button-primary-border-color: var(--cpsl-color-background-0);
52
+ --button-primary-icon-color: var(--cpsl-color-background-48);
53
+ --button-primary-disabled-color: var(--cpsl-color-background-48);
54
+ --button-primary-disabled-background-color: var(--cpsl-color-background-0);
55
+ --button-primary-disabled-border-color: var(--cpsl-color-background-0);
56
+ --button-primary-disabled-icon-color: var(--cpsl-color-background-48);
57
+ --button-primary-hover-color: var(--cpsl-color-text-primary);
58
+ --button-primary-hover-background-color: var(--cpsl-color-background-0);
59
+ --button-primary-hover-border-color: var(--cpsl-color-background-4);
60
+ --button-primary-hover-icon-color: var(--cpsl-color-background-48);
61
+ --button-primary-active-color: var(--cpsl-color-background-48);
62
+ --button-primary-active-background-color: var(--cpsl-color-background-4);
63
+ --button-primary-active-border-color: var(--cpsl-color-background-4);
64
+ --button-primary-active-icon-color: var(--cpsl-color-background-48);
65
+ }
66
+
67
+ .main-route {
68
+ --button-padding-start: 8px;
69
+ --button-padding-end: 8px;
70
+ --button-padding-top: 8px;
71
+ --button-padding-bottom: 8px;
72
+ --button-justify-content: start;
73
+ --button-primary-color: var(--cpsl-color-background-48);
74
+ --button-primary-background-color: var(--cpsl-color-background-0);
75
+ --button-primary-border-color: var(--cpsl-color-background-0);
76
+ --button-primary-icon-color: var(--cpsl-color-background-48);
77
+ --button-primary-disabled-color: var(--cpsl-color-background-48);
78
+ --button-primary-disabled-background-color: var(--cpsl-color-background-0);
79
+ --button-primary-disabled-border-color: var(--cpsl-color-background-0);
80
+ --button-primary-disabled-icon-color: var(--cpsl-color-background-48);
81
+ --button-primary-hover-color: var(--cpsl-color-background-48);
82
+ --button-primary-hover-background-color: var(--cpsl-color-background-4);
83
+ --button-primary-hover-border-color: var(--cpsl-color-background-4);
84
+ --button-primary-hover-icon-color: var(--cpsl-color-background-48);
85
+ --button-primary-active-color: var(--cpsl-color-background-48);
86
+ --button-primary-active-background-color: var(--cpsl-color-background-4);
87
+ --button-primary-active-border-color: var(--cpsl-color-background-4);
88
+ --button-primary-active-icon-color: var(--cpsl-color-background-48);
89
+ }
90
+ .main-route.selected {
91
+ --button-primary-color: var(--cpsl-color-text-primary);
92
+ --button-primary-background-color: var(--cpsl-color-background-4);
93
+ --button-primary-border-color: var(--cpsl-color-background-4);
94
+ --button-primary-icon-color: var(--cpsl-color-text-primary);
95
+ --button-primary-disabled-color: var(--cpsl-color-text-primary);
96
+ --button-primary-disabled-background-color: var(--cpsl-color-background-4);
97
+ --button-primary-disabled-border-color: var(--cpsl-color-background-4);
98
+ --button-primary-disabled-icon-color: var(--cpsl-color-text-primary);
99
+ --button-primary-hover-color: var(--cpsl-color-text-primary);
100
+ --button-primary-hover-background-color: var(--cpsl-color-background-4);
101
+ --button-primary-hover-border-color: var(--cpsl-color-background-4);
102
+ --button-primary-hover-icon-color: var(--cpsl-color-text-primary);
103
+ --button-primary-active-color: var(--cpsl-color-text-primary);
104
+ --button-primary-active-background-color: var(--cpsl-color-background-4);
105
+ --button-primary-active-border-color: var(--cpsl-color-background-4);
106
+ --button-primary-active-icon-color: var(--cpsl-color-text-primary);
107
+ }
@@ -0,0 +1,175 @@
1
+ import { Host, h } from "@stencil/core";
2
+ export class CpslNavButton {
3
+ constructor() {
4
+ this.handleNavButtonClick = () => {
5
+ this.cpslNavButtonClick.emit(this.route);
6
+ };
7
+ this.handleSubRouteClick = (route) => () => {
8
+ this.cpslNavButtonSubRouteClick.emit(route);
9
+ };
10
+ this.disabled = false;
11
+ this.exactMainRouteMatch = undefined;
12
+ this.exactSubRouteMatch = undefined;
13
+ this.route = undefined;
14
+ this.subRoutes = undefined;
15
+ this.path = undefined;
16
+ }
17
+ render() {
18
+ var _a, _b;
19
+ const selectedSubRoute = (_a = this.subRoutes) === null || _a === void 0 ? void 0 : _a.find(sr => (this.exactSubRouteMatch ? this.path === `${this.route}/${sr.value}` : this.path.includes(`${this.route}/${sr.value}`)));
20
+ const isMainRouteSelected = this.exactMainRouteMatch ? this.path === this.route : this.path.includes(this.route);
21
+ return (h(Host, { key: '8f8bd86051b11efc848491e7f5628c331ad2b208' }, h("cpsl-button", { key: '1e7a1a43032764760d4240a9af75a80fbf432d7e', id: this.route, class: { 'main-route': true, 'selected': !!selectedSubRoute || isMainRouteSelected }, fullWidth: true, variant: "primary", disabled: this.disabled, onClick: this.handleNavButtonClick }, h("slot", { key: '3adfced15f2744d0e49e5627e7b3d1ae35fe2e64', name: "start" }), h("slot", { key: '0a0480f72a68d0af0a279ba086a9915138212bd6' }), h("slot", { key: '624cf7807db283f33e7c727f00e32083d2b483b1', name: "end" })), (!!selectedSubRoute || isMainRouteSelected) && !!((_b = this.subRoutes) === null || _b === void 0 ? void 0 : _b.length) && (h("div", { key: '88039fa248445cc6f0cd641abdfdc2a3a5c45f26', class: "sub-route-container" }, this.subRoutes.map(sr => (h("cpsl-button", { key: sr.value, id: `${this.route}/${sr.value}`, class: { 'sub-route': true, 'selected': sr.value === (selectedSubRoute === null || selectedSubRoute === void 0 ? void 0 : selectedSubRoute.value) }, onClick: this.handleSubRouteClick(`${this.route}/${sr.value}`), fullWidth: true, variant: "primary" }, sr.label)))))));
22
+ }
23
+ static get is() { return "cpsl-nav-button"; }
24
+ static get encapsulation() { return "shadow"; }
25
+ static get originalStyleUrls() {
26
+ return {
27
+ "$": ["cpsl-nav-button.scss"]
28
+ };
29
+ }
30
+ static get styleUrls() {
31
+ return {
32
+ "$": ["cpsl-nav-button.css"]
33
+ };
34
+ }
35
+ static get properties() {
36
+ return {
37
+ "disabled": {
38
+ "type": "boolean",
39
+ "mutable": false,
40
+ "complexType": {
41
+ "original": "boolean",
42
+ "resolved": "boolean",
43
+ "references": {}
44
+ },
45
+ "required": false,
46
+ "optional": true,
47
+ "docs": {
48
+ "tags": [],
49
+ "text": "If the button is disabled.\nDefault is: false."
50
+ },
51
+ "attribute": "disabled",
52
+ "reflect": true,
53
+ "defaultValue": "false"
54
+ },
55
+ "exactMainRouteMatch": {
56
+ "type": "boolean",
57
+ "mutable": false,
58
+ "complexType": {
59
+ "original": "boolean",
60
+ "resolved": "boolean",
61
+ "references": {}
62
+ },
63
+ "required": false,
64
+ "optional": true,
65
+ "docs": {
66
+ "tags": [],
67
+ "text": "Whether or not to use exact matching for the selected main route."
68
+ },
69
+ "attribute": "exact-main-route-match",
70
+ "reflect": false
71
+ },
72
+ "exactSubRouteMatch": {
73
+ "type": "boolean",
74
+ "mutable": false,
75
+ "complexType": {
76
+ "original": "boolean",
77
+ "resolved": "boolean",
78
+ "references": {}
79
+ },
80
+ "required": false,
81
+ "optional": true,
82
+ "docs": {
83
+ "tags": [],
84
+ "text": "Whether or not to use exact matching for the selected sub route."
85
+ },
86
+ "attribute": "exact-sub-route-match",
87
+ "reflect": false
88
+ },
89
+ "route": {
90
+ "type": "string",
91
+ "mutable": false,
92
+ "complexType": {
93
+ "original": "string",
94
+ "resolved": "string",
95
+ "references": {}
96
+ },
97
+ "required": false,
98
+ "optional": false,
99
+ "docs": {
100
+ "tags": [],
101
+ "text": "The route for the button."
102
+ },
103
+ "attribute": "route",
104
+ "reflect": false
105
+ },
106
+ "subRoutes": {
107
+ "type": "unknown",
108
+ "mutable": false,
109
+ "complexType": {
110
+ "original": "{ label: string; value: string }[]",
111
+ "resolved": "{ label: string; value: string; }[]",
112
+ "references": {}
113
+ },
114
+ "required": false,
115
+ "optional": true,
116
+ "docs": {
117
+ "tags": [],
118
+ "text": "The id of the selected button."
119
+ }
120
+ },
121
+ "path": {
122
+ "type": "string",
123
+ "mutable": false,
124
+ "complexType": {
125
+ "original": "string",
126
+ "resolved": "string",
127
+ "references": {}
128
+ },
129
+ "required": false,
130
+ "optional": true,
131
+ "docs": {
132
+ "tags": [],
133
+ "text": "Path used to determine what button is selected"
134
+ },
135
+ "attribute": "path",
136
+ "reflect": false
137
+ }
138
+ };
139
+ }
140
+ static get events() {
141
+ return [{
142
+ "method": "cpslNavButtonClick",
143
+ "name": "cpslNavButtonClick",
144
+ "bubbles": true,
145
+ "cancelable": true,
146
+ "composed": true,
147
+ "docs": {
148
+ "tags": [],
149
+ "text": "Called when the nav button is clicked."
150
+ },
151
+ "complexType": {
152
+ "original": "string",
153
+ "resolved": "string",
154
+ "references": {}
155
+ }
156
+ }, {
157
+ "method": "cpslNavButtonSubRouteClick",
158
+ "name": "cpslNavButtonSubRouteClick",
159
+ "bubbles": true,
160
+ "cancelable": true,
161
+ "composed": true,
162
+ "docs": {
163
+ "tags": [],
164
+ "text": "Called when a nav button sub route is clicked."
165
+ },
166
+ "complexType": {
167
+ "original": "string",
168
+ "resolved": "string",
169
+ "references": {}
170
+ }
171
+ }];
172
+ }
173
+ static get elementRef() { return "el"; }
174
+ }
175
+ //# sourceMappingURL=cpsl-nav-button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cpsl-nav-button.js","sourceRoot":"","sources":["../../../../src/components/cpsl-nav-button/cpsl-nav-button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAgB,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAOvF,MAAM,OAAO,aAAa;;QAuChB,yBAAoB,GAAG,GAAG,EAAE;YAClC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC,CAAC;QAOM,wBAAmB,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,GAAG,EAAE;YACpD,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC,CAAC;wBA3C4C,KAAK;;;;;;;IA6CnD,MAAM;;QACJ,MAAM,gBAAgB,GAAG,MAAA,IAAI,CAAC,SAAS,0CAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7K,MAAM,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEjH,OAAO,CACL,EAAC,IAAI;YACH,oEACE,EAAE,EAAE,IAAI,CAAC,KAAK,EACd,KAAK,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,gBAAgB,IAAI,mBAAmB,EAAE,EACpF,SAAS,QACT,OAAO,EAAC,SAAS,EACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,OAAO,EAAE,IAAI,CAAC,oBAAoB;gBAElC,6DAAM,IAAI,EAAC,OAAO,GAAQ;gBAC1B,8DAAa;gBACb,6DAAM,IAAI,EAAC,KAAK,GAAQ,CACZ;YACb,CAAC,CAAC,CAAC,gBAAgB,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,MAAM,CAAA,IAAI,CAC1E,4DAAK,KAAK,EAAC,qBAAqB,IAC7B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CACxB,mBACE,GAAG,EAAE,EAAE,CAAC,KAAK,EACb,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,EAAE,EAC/B,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,KAAK,MAAK,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,KAAK,CAAA,EAAE,EAC9E,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,EAC9D,SAAS,QACT,OAAO,EAAC,SAAS,IAEhB,EAAE,CAAC,KAAK,CACG,CACf,CAAC,CACE,CACP,CACI,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, EventEmitter, Host, Prop, h, Event, Element } from '@stencil/core';\n\n@Component({\n tag: 'cpsl-nav-button',\n styleUrl: 'cpsl-nav-button.scss',\n shadow: true,\n})\nexport class CpslNavButton {\n @Element() el!: HTMLCpslNavButtonElement;\n\n /**\n * If the button is disabled.\n * Default is: false.\n */\n @Prop({ reflect: true }) disabled?: boolean = false;\n\n /**\n * Whether or not to use exact matching for the selected main route.\n */\n @Prop() exactMainRouteMatch?: boolean;\n\n /**\n * Whether or not to use exact matching for the selected sub route.\n */\n @Prop() exactSubRouteMatch?: boolean;\n\n /**\n * The route for the button.\n */\n @Prop() route: string;\n\n /**\n * The id of the selected button.\n */\n @Prop() subRoutes?: { label: string; value: string }[];\n\n /**\n * Path used to determine what button is selected\n */\n @Prop() path?: string;\n\n /**\n * Called when the nav button is clicked.\n */\n @Event() cpslNavButtonClick: EventEmitter<string>;\n\n private handleNavButtonClick = () => {\n this.cpslNavButtonClick.emit(this.route);\n };\n\n /**\n * Called when a nav button sub route is clicked.\n */\n @Event() cpslNavButtonSubRouteClick: EventEmitter<string>;\n\n private handleSubRouteClick = (route: string) => () => {\n this.cpslNavButtonSubRouteClick.emit(route);\n };\n\n render() {\n const selectedSubRoute = this.subRoutes?.find(sr => (this.exactSubRouteMatch ? this.path === `${this.route}/${sr.value}` : this.path.includes(`${this.route}/${sr.value}`)));\n const isMainRouteSelected = this.exactMainRouteMatch ? this.path === this.route : this.path.includes(this.route);\n\n return (\n <Host>\n <cpsl-button\n id={this.route}\n class={{ 'main-route': true, 'selected': !!selectedSubRoute || isMainRouteSelected }}\n fullWidth\n variant=\"primary\"\n disabled={this.disabled}\n onClick={this.handleNavButtonClick}\n >\n <slot name=\"start\"></slot>\n <slot></slot>\n <slot name=\"end\"></slot>\n </cpsl-button>\n {(!!selectedSubRoute || isMainRouteSelected) && !!this.subRoutes?.length && (\n <div class=\"sub-route-container\">\n {this.subRoutes.map(sr => (\n <cpsl-button\n key={sr.value}\n id={`${this.route}/${sr.value}`}\n class={{ 'sub-route': true, 'selected': sr.value === selectedSubRoute?.value }}\n onClick={this.handleSubRouteClick(`${this.route}/${sr.value}`)}\n fullWidth\n variant=\"primary\"\n >\n {sr.label}\n </cpsl-button>\n ))}\n </div>\n )}\n </Host>\n );\n }\n}\n"]}