@peculiar/certificates-viewer 3.1.0 → 3.2.0

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 (72) hide show
  1. package/dist/cjs/{certification_request-878e786a.js → certification_request-cde57123.js} +137 -266
  2. package/dist/cjs/csr-78378ed0.js +150 -0
  3. package/dist/cjs/download-6724f3a7.js +79 -0
  4. package/dist/cjs/{download-5e7d5455.js → index-ff818d4d.js} +0 -72
  5. package/dist/cjs/index.cjs.js +2 -1
  6. package/dist/cjs/l10n-a048a686.js +145 -0
  7. package/dist/cjs/loader.cjs.js +1 -1
  8. package/dist/cjs/peculiar-attribute-certificate-viewer_2.cjs.entry.js +479 -0
  9. package/dist/cjs/peculiar-button_5.cjs.entry.js +148 -0
  10. package/dist/cjs/peculiar-certificate-decoder.cjs.entry.js +173 -0
  11. package/dist/cjs/peculiar-certificate-summary_3.cjs.entry.js +1 -1
  12. package/dist/cjs/peculiar-certificate-viewer.cjs.entry.js +124 -0
  13. package/dist/cjs/peculiar-certificates-viewer.cjs.entry.js +6 -4
  14. package/dist/cjs/peculiar.cjs.js +1 -1
  15. package/dist/cjs/public_key-e56dbe52.js +1104 -0
  16. package/dist/cjs/x509_attribute_certificate-cc325b70.js +87 -0
  17. package/dist/cjs/x509_certificate-51a97033.js +139 -0
  18. package/dist/collection/components/certificate-decoder/certificate-decoder.js +54 -23
  19. package/dist/collection/utils/index.js +0 -1
  20. package/dist/collection/www-copy/index.js +80 -0
  21. package/dist/esm/{certification_request-3402a181.js → certification_request-c0674647.js} +76 -205
  22. package/dist/esm/csr-c1b6a176.js +147 -0
  23. package/dist/esm/download-735fb2eb.js +76 -0
  24. package/dist/esm/{download-cf68ac2c.js → index-0ba131b0.js} +1 -71
  25. package/dist/esm/index.js +2 -1
  26. package/dist/esm/l10n-ac28fa92.js +141 -0
  27. package/dist/esm/loader.js +1 -1
  28. package/dist/esm/peculiar-attribute-certificate-viewer_2.entry.js +474 -0
  29. package/dist/esm/peculiar-button_5.entry.js +140 -0
  30. package/dist/esm/peculiar-certificate-decoder.entry.js +169 -0
  31. package/dist/esm/peculiar-certificate-summary_3.entry.js +1 -1
  32. package/dist/esm/peculiar-certificate-viewer.entry.js +120 -0
  33. package/dist/esm/peculiar-certificates-viewer.entry.js +5 -3
  34. package/dist/esm/peculiar.js +1 -1
  35. package/dist/esm/public_key-43b2cbf0.js +1089 -0
  36. package/dist/esm/x509_attribute_certificate-a6d4aa15.js +85 -0
  37. package/dist/esm/x509_certificate-12f6d344.js +137 -0
  38. package/dist/peculiar/index.esm.js +1 -1
  39. package/dist/peculiar/p-006865d7.js +4 -0
  40. package/dist/peculiar/p-17c4da7b.js +11 -0
  41. package/dist/peculiar/p-1ebab45c.js +78 -0
  42. package/dist/peculiar/{p-b09a1f0b.entry.js → p-38635919.entry.js} +1 -1
  43. package/dist/peculiar/p-3f8d1008.entry.js +4 -0
  44. package/dist/peculiar/p-42da7f97.js +11 -0
  45. package/dist/peculiar/p-464e0943.js +87 -0
  46. package/dist/peculiar/p-4f4c1d30.js +12 -0
  47. package/dist/peculiar/p-530afe84.entry.js +11 -0
  48. package/dist/peculiar/p-6011646e.entry.js +11 -0
  49. package/dist/peculiar/p-6c510523.js +18 -0
  50. package/dist/peculiar/p-d7a13cb4.js +18 -0
  51. package/dist/peculiar/p-dafae164.entry.js +4 -0
  52. package/dist/peculiar/p-e77d0ccc.entry.js +18 -0
  53. package/dist/peculiar/peculiar.esm.js +1 -1
  54. package/dist/types/components/certificate-decoder/certificate-decoder.d.ts +13 -1
  55. package/dist/types/components.d.ts +20 -0
  56. package/dist/types/utils/index.d.ts +0 -1
  57. package/package.json +2 -3
  58. package/dist/cjs/l10n-d4a77087.js +0 -767
  59. package/dist/cjs/peculiar-attribute-certificate-viewer_9.cjs.entry.js +0 -2187
  60. package/dist/collection/utils/history.js +0 -19
  61. package/dist/collection/utils/parse_hash.js +0 -28
  62. package/dist/collection/utils/query_stringify.js +0 -21
  63. package/dist/esm/l10n-9ac63748.js +0 -762
  64. package/dist/esm/peculiar-attribute-certificate-viewer_9.entry.js +0 -2175
  65. package/dist/peculiar/p-08538084.entry.js +0 -113
  66. package/dist/peculiar/p-3fc37750.entry.js +0 -4
  67. package/dist/peculiar/p-8ad24aa3.js +0 -87
  68. package/dist/peculiar/p-99797a49.js +0 -34
  69. package/dist/peculiar/p-c774ec0b.js +0 -18
  70. package/dist/types/utils/history.d.ts +0 -9
  71. package/dist/types/utils/parse_hash.d.ts +0 -9
  72. package/dist/types/utils/query_stringify.d.ts +0 -8
@@ -0,0 +1,479 @@
1
+ /*!
2
+ * © Peculiar Ventures https://peculiarventures.com/ - MIT License
3
+ */
4
+ 'use strict';
5
+
6
+ Object.defineProperty(exports, '__esModule', { value: true });
7
+
8
+ const index = require('./index-064e95c7.js');
9
+ const certification_request = require('./certification_request-cde57123.js');
10
+ const index$1 = require('./index-ff818d4d.js');
11
+ const l10n = require('./l10n-a048a686.js');
12
+ const x509_attribute_certificate = require('./x509_attribute_certificate-cc325b70.js');
13
+ const public_key = require('./public_key-e56dbe52.js');
14
+ const csr = require('./csr-78378ed0.js');
15
+ require('./_commonjsHelpers-cb1f949a.js');
16
+ require('./download-6724f3a7.js');
17
+
18
+ /**
19
+ * @license
20
+ * Copyright (c) Peculiar Ventures, LLC.
21
+ *
22
+ * This source code is licensed under the MIT license found in the
23
+ * LICENSE file in the root directory of this source tree.
24
+ */
25
+ const BasicAttribute = (props, children) => {
26
+ const { attribute } = props;
27
+ return ([
28
+ index.h(public_key.RowValue, { name: "Name", value: public_key.getStringByOID(attribute.asn.type) }),
29
+ children,
30
+ index.h("tr", null,
31
+ index.h("td", { colSpan: 2, class: "divider" },
32
+ index.h("span", { class: "bg_fill" }))),
33
+ ]);
34
+ };
35
+
36
+ /**
37
+ * @license
38
+ * Copyright (c) Peculiar Ventures, LLC.
39
+ *
40
+ * This source code is licensed under the MIT license found in the
41
+ * LICENSE file in the root directory of this source tree.
42
+ */
43
+ const NamePart = (props) => {
44
+ const { name } = props;
45
+ if (!name) {
46
+ return null;
47
+ }
48
+ return name.map((relativeDistinguishedName) => (relativeDistinguishedName.map((attributeTypeAndValue) => (index.h(public_key.RowValue, { name: certification_request.OIDs[attributeTypeAndValue.type] || attributeTypeAndValue.type, value: attributeTypeAndValue.value.toString() })))));
49
+ };
50
+
51
+ /**
52
+ * @license
53
+ * Copyright (c) Peculiar Ventures, LLC.
54
+ *
55
+ * This source code is licensed under the MIT license found in the
56
+ * LICENSE file in the root directory of this source tree.
57
+ */
58
+ const NameAttribute = (props) => {
59
+ const { attribute } = props;
60
+ return (index.h(BasicAttribute, { attribute: attribute },
61
+ index.h(NamePart, { name: attribute.value })));
62
+ };
63
+
64
+ /**
65
+ * @license
66
+ * Copyright (c) Peculiar Ventures, LLC.
67
+ *
68
+ * This source code is licensed under the MIT license found in the
69
+ * LICENSE file in the root directory of this source tree.
70
+ */
71
+ const ActivityDescriptionAttribute = (props) => {
72
+ const { attribute } = props;
73
+ return (index.h(BasicAttribute, { attribute: attribute },
74
+ index.h(public_key.RowValue, { name: "Code Authority", value: "" }),
75
+ index.h(public_key.GeneralNamePart, { generalName: attribute.value.codeAuthority, getDNSNameLink: () => '', getIPAddressLink: () => '' }),
76
+ index.h(public_key.RowValue, { name: "Code Id", value: "" }),
77
+ index.h(public_key.GeneralNamePart, { generalName: attribute.value.codeId, getDNSNameLink: () => '', getIPAddressLink: () => '' }),
78
+ index.h(public_key.RowValue, { name: "Short Name", value: attribute.value.shortName }),
79
+ index.h(public_key.RowValue, { name: "Short Description", value: attribute.value.shortDescription })));
80
+ };
81
+
82
+ /**
83
+ * @license
84
+ * Copyright (c) Peculiar Ventures, LLC.
85
+ *
86
+ * This source code is licensed under the MIT license found in the
87
+ * LICENSE file in the root directory of this source tree.
88
+ */
89
+ const WebGdprAttribute = (props) => {
90
+ const { attribute } = props;
91
+ return (index.h(BasicAttribute, { attribute: attribute },
92
+ index.h(public_key.RowValue, { name: "Assessment Authority", value: "" }),
93
+ index.h(public_key.GeneralNamePart, { generalName: attribute.value.assessmentAuthority, getDNSNameLink: () => '', getIPAddressLink: () => '' }),
94
+ index.h(public_key.RowValue, { name: "Assessment Location", value: "" }),
95
+ index.h(public_key.GeneralNamePart, { generalName: attribute.value.assessmentLocation, getDNSNameLink: () => '', getIPAddressLink: () => '' }),
96
+ index.h(public_key.RowValue, { name: "Assessment Ref", value: "" }),
97
+ index.h(public_key.GeneralNamePart, { generalName: attribute.value.assessmentRef, getDNSNameLink: () => '', getIPAddressLink: () => '' }),
98
+ index.h(public_key.RowValue, { name: "Data Storage Territory", value: attribute.value.dataStorageTerritory }),
99
+ index.h(public_key.RowValue, { name: "Description", value: attribute.value.description })));
100
+ };
101
+
102
+ /**
103
+ * @license
104
+ * Copyright (c) Peculiar Ventures, LLC.
105
+ *
106
+ * This source code is licensed under the MIT license found in the
107
+ * LICENSE file in the root directory of this source tree.
108
+ */
109
+ const InsuranceValueAttribute = (props) => {
110
+ const { attribute } = props;
111
+ const value = `${attribute.value.base} * 10^${attribute.value.degree} ${attribute.value.location}`;
112
+ return (index.h(BasicAttribute, { attribute: attribute },
113
+ index.h(public_key.RowValue, { name: "Value", value: value })));
114
+ };
115
+
116
+ /**
117
+ * @license
118
+ * Copyright (c) Peculiar Ventures, LLC.
119
+ *
120
+ * This source code is licensed under the MIT license found in the
121
+ * LICENSE file in the root directory of this source tree.
122
+ */
123
+ const TypeRelationshipAttribute = (props) => {
124
+ const { attribute } = props;
125
+ return (index.h(BasicAttribute, { attribute: attribute }, Object.keys(attribute.value).map((keyName) => (index.h(public_key.RowValue, { name: keyName, value: attribute.value[keyName].toNumber() ? 'YES' : 'NO' })))));
126
+ };
127
+
128
+ /**
129
+ * @license
130
+ * Copyright (c) Peculiar Ventures, LLC.
131
+ *
132
+ * This source code is licensed under the MIT license found in the
133
+ * LICENSE file in the root directory of this source tree.
134
+ */
135
+ const getValueRank = (value) => {
136
+ let ratio = 1;
137
+ if (value / 100 > 1) {
138
+ ratio = 100;
139
+ }
140
+ else if (value / 10 > 1) {
141
+ ratio = 10;
142
+ }
143
+ return `${value}/${5 * ratio}`;
144
+ };
145
+ const ValuationRankingAttribute = (props) => {
146
+ const { attribute } = props;
147
+ const values = Object.keys(attribute.value).map((keyName) => ([
148
+ getValueRank(attribute.value[keyName]),
149
+ index.h("br", null),
150
+ ]));
151
+ return (index.h(BasicAttribute, { attribute: attribute },
152
+ index.h(public_key.RowValue, { name: "Value", value: values })));
153
+ };
154
+
155
+ /**
156
+ * @license
157
+ * Copyright (c) Peculiar Ventures, LLC.
158
+ *
159
+ * This source code is licensed under the MIT license found in the
160
+ * LICENSE file in the root directory of this source tree.
161
+ */
162
+ const AsStringAttribute = (props) => {
163
+ const { attribute } = props;
164
+ return (index.h(BasicAttribute, { attribute: attribute },
165
+ index.h(public_key.RowValue, { name: "Value", value: attribute.value, monospace: true })));
166
+ };
167
+
168
+ /**
169
+ * @license
170
+ * Copyright (c) Peculiar Ventures, LLC.
171
+ *
172
+ * This source code is licensed under the MIT license found in the
173
+ * LICENSE file in the root directory of this source tree.
174
+ */
175
+ const UnstructuredNameAttribute = (props) => {
176
+ const { attribute } = props;
177
+ return (index.h(BasicAttribute, { attribute: attribute },
178
+ index.h(public_key.RowValue, { name: "Value", value: attribute.value.utf8String })));
179
+ };
180
+
181
+ /**
182
+ * @license
183
+ * Copyright (c) Peculiar Ventures, LLC.
184
+ *
185
+ * This source code is licensed under the MIT license found in the
186
+ * LICENSE file in the root directory of this source tree.
187
+ */
188
+ const ChallengePasswordAttribute = (props) => {
189
+ const { attribute } = props;
190
+ return (index.h(BasicAttribute, { attribute: attribute },
191
+ index.h(public_key.RowValue, { name: "Value", value: attribute.value.toString() })));
192
+ };
193
+
194
+ /**
195
+ * @license
196
+ * Copyright (c) Peculiar Ventures, LLC.
197
+ *
198
+ * This source code is licensed under the MIT license found in the
199
+ * LICENSE file in the root directory of this source tree.
200
+ */
201
+ const Attributes = (props) => {
202
+ const { attributes } = props;
203
+ if (!attributes || !attributes.length) {
204
+ return null;
205
+ }
206
+ return ([
207
+ index.h(public_key.RowTitle, { value: "Attributes" }),
208
+ attributes.map((attribute) => {
209
+ try {
210
+ if (attribute.value instanceof certification_request.Name$1) {
211
+ return (index.h(NameAttribute, { attribute: attribute }));
212
+ }
213
+ if (attribute.value instanceof certification_request.ActivityDescription) {
214
+ return (index.h(ActivityDescriptionAttribute, { attribute: attribute }));
215
+ }
216
+ if (attribute.value instanceof certification_request.WebGDPR) {
217
+ return (index.h(WebGdprAttribute, { attribute: attribute }));
218
+ }
219
+ if (attribute.value instanceof certification_request.InsuranceValue) {
220
+ return (index.h(InsuranceValueAttribute, { attribute: attribute }));
221
+ }
222
+ if (attribute.value instanceof certification_request.TypeRelationship) {
223
+ return (index.h(TypeRelationshipAttribute, { attribute: attribute }));
224
+ }
225
+ if (attribute.value instanceof certification_request.ValuationRanking) {
226
+ return (index.h(ValuationRankingAttribute, { attribute: attribute }));
227
+ }
228
+ if (attribute.value instanceof certification_request.UnstructuredName) {
229
+ return (index.h(UnstructuredNameAttribute, { attribute: attribute }));
230
+ }
231
+ if (attribute.value instanceof certification_request.ChallengePassword) {
232
+ return (index.h(ChallengePasswordAttribute, { attribute: attribute }));
233
+ }
234
+ if (typeof attribute.value === 'string') {
235
+ return (index.h(AsStringAttribute, { attribute: attribute }));
236
+ }
237
+ return (index.h(BasicAttribute, { attribute: attribute }));
238
+ }
239
+ catch (error) {
240
+ console.error('Error render attribute:', attribute.asn.type);
241
+ return null;
242
+ }
243
+ }),
244
+ ]);
245
+ };
246
+
247
+ /**
248
+ * @license
249
+ * Copyright (c) Peculiar Ventures, LLC.
250
+ *
251
+ * This source code is licensed under the MIT license found in the
252
+ * LICENSE file in the root directory of this source tree.
253
+ */
254
+ const Issuer = (props) => {
255
+ const { issuer } = props;
256
+ if (!issuer) {
257
+ return null;
258
+ }
259
+ return [
260
+ index.h(public_key.RowTitle, { value: l10n.l10n.getString('issuer') }),
261
+ issuer.map((item) => (index.h(public_key.GeneralNamePart, { generalName: item, getDNSNameLink: () => '', getIPAddressLink: () => '' }))),
262
+ ];
263
+ };
264
+
265
+ /**
266
+ * @license
267
+ * Copyright (c) Peculiar Ventures, LLC.
268
+ *
269
+ * This source code is licensed under the MIT license found in the
270
+ * LICENSE file in the root directory of this source tree.
271
+ */
272
+ const Holder = (props) => {
273
+ const { holder } = props;
274
+ if (!holder) {
275
+ return null;
276
+ }
277
+ const { baseCertificateID, objectDigestInfo } = holder;
278
+ return [
279
+ index.h(public_key.RowTitle, { value: l10n.l10n.getString('holder') }),
280
+ baseCertificateID && ([
281
+ baseCertificateID.issuer.map((item) => (index.h(public_key.GeneralNamePart, { generalName: item, getDNSNameLink: () => '', getIPAddressLink: () => '' }))),
282
+ index.h("tr", null,
283
+ index.h("td", null),
284
+ index.h("td", null)),
285
+ index.h(public_key.RowValue, { name: l10n.l10n.getString('serialNumber'), value: index$1.build.Convert.ToHex(baseCertificateID.serial), monospace: true }),
286
+ index.h("tr", null,
287
+ index.h("td", null),
288
+ index.h("td", null)),
289
+ ]),
290
+ objectDigestInfo && ([
291
+ index.h(public_key.RowValue, { name: l10n.l10n.getString('digestInfo'), value: "" }),
292
+ index.h(public_key.RowValue, { name: l10n.l10n.getString('algorithm'), value: public_key.getStringByOID(objectDigestInfo.digestAlgorithm.algorithm) }),
293
+ index.h(public_key.RowValue, { name: l10n.l10n.getString('value'), value: index$1.build.Convert.ToHex(objectDigestInfo.objectDigest), monospace: true }),
294
+ index.h(public_key.RowValue, { name: l10n.l10n.getString('type'), value: objectDigestInfo.digestedObjectType }),
295
+ ]),
296
+ ];
297
+ };
298
+
299
+ const certificateViewerCss$1 = ":host{-webkit-box-sizing:border-box;box-sizing:border-box}:host *,:host *:before,:host *:after{-webkit-box-sizing:inherit;box-sizing:inherit}:host{display:block;width:100%;word-wrap:break-word;position:relative;min-width:280px;min-height:300px;background:white;background:rgba(var(--pv-color-light-rgb), 1)}th,td{border:none}table{width:100%;margin-bottom:30px;border-spacing:0;border-collapse:collapse}table .title td{border-color:rgba(209, 213, 217, 0.5);border-color:rgba(var(--pv-color-grey_3-rgb), 0.5);padding-top:60px;padding-bottom:15px;border-bottom-width:1px;border-bottom-style:solid}table td:first-child{padding-left:30px;width:130px;padding-right:10px}table td:last-child{padding-right:30px;width:calc(100% - 130px)}table td{vertical-align:top;padding-top:5px;padding-bottom:5px}table td.vertical_align_middle{vertical-align:middle}table .title:first-child td{padding-top:15px}table .title+tr td{padding-top:15px}table td.monospace{max-width:0}table .divider{padding-top:15px;padding-bottom:15px}.divider .bg_fill{background-color:rgba(209, 213, 217, 0.5);background-color:rgba(var(--pv-color-grey_3-rgb), 0.5)}table tr:last-child .divider{padding-top:0;opacity:0}.divider span{display:block;height:1px}.status_wrapper{min-height:inherit;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}.interaction_text{padding:15px 0;width:300px;margin:auto;text-align:center}@media (max-width: 900px){table,tr,td{display:block}table td:last-child,table td:first-child{padding-right:15px;padding-left:15px;width:100%}table .title+tr td{padding-top:5px}table .title+tr td:first-child{padding-top:15px}table td.monospace{width:100%;max-width:none}}:host([data-view=mobile]) table,:host([data-view=mobile]) tr,:host([data-view=mobile]) td{display:block}:host([data-view=mobile]) table td:last-child,:host([data-view=mobile]) table td:first-child{padding-right:15px;padding-left:15px;width:100%}:host([data-view=mobile]) table .title+tr td{padding-top:5px}:host([data-view=mobile]) table .title+tr td:first-child{padding-top:15px}:host([data-view=mobile]) table td.monospace{width:100%;max-width:none}";
300
+
301
+ const AttributeCertificateViewer = class {
302
+ constructor(hostRef) {
303
+ index.registerInstance(this, hostRef);
304
+ this.isDecodeInProcess = true;
305
+ this.getAuthKeyIdParentLink = (value) => {
306
+ var _a;
307
+ return (_a = this.authKeyIdParentLink) === null || _a === void 0 ? void 0 : _a.replace('{{authKeyId}}', value);
308
+ };
309
+ this.getAuthKeyIdSiblingsLink = (value) => {
310
+ var _a;
311
+ return (_a = this.authKeyIdSiblingsLink) === null || _a === void 0 ? void 0 : _a.replace('{{authKeyId}}', value);
312
+ };
313
+ this.getSubjectKeyIdChildrenLink = (value) => {
314
+ var _a;
315
+ return (_a = this.subjectKeyIdChildrenLink) === null || _a === void 0 ? void 0 : _a.replace('{{subjectKeyId}}', value);
316
+ };
317
+ this.getSubjectKeyIdSiblingsLink = (value) => {
318
+ var _a;
319
+ return (_a = this.subjectKeyIdSiblingsLink) === null || _a === void 0 ? void 0 : _a.replace('{{subjectKeyId}}', value);
320
+ };
321
+ }
322
+ componentWillLoad() {
323
+ this.decodeCertificate(this.certificate);
324
+ }
325
+ async decodeCertificate(certificate) {
326
+ this.isDecodeInProcess = true;
327
+ try {
328
+ if (certificate instanceof x509_attribute_certificate.X509AttributeCertificate) {
329
+ this.certificateDecoded = certificate;
330
+ }
331
+ else if (typeof certificate === 'string') {
332
+ this.certificateDecoded = new x509_attribute_certificate.X509AttributeCertificate(certificate);
333
+ }
334
+ else {
335
+ return;
336
+ }
337
+ this.certificateDecoded.parseExtensions();
338
+ this.certificateDecoded.parseAttributes();
339
+ await this.certificateDecoded.getThumbprint('SHA-1');
340
+ await this.certificateDecoded.getThumbprint('SHA-256');
341
+ }
342
+ catch (error) {
343
+ this.certificateDecodeError = error;
344
+ console.error('Error certificate parse:', error);
345
+ }
346
+ this.isDecodeInProcess = false;
347
+ }
348
+ /**
349
+ * Rerun decodeCertificate if previuos value not equal current value
350
+ */
351
+ watchCertificateAndDecode(newValue, oldValue) {
352
+ if (typeof newValue === 'string' && typeof oldValue === 'string') {
353
+ if (newValue !== oldValue) {
354
+ this.decodeCertificate(newValue);
355
+ }
356
+ return;
357
+ }
358
+ if (newValue instanceof x509_attribute_certificate.X509AttributeCertificate
359
+ && oldValue instanceof x509_attribute_certificate.X509AttributeCertificate) {
360
+ if (newValue.serialNumber !== oldValue.serialNumber) {
361
+ this.decodeCertificate(newValue);
362
+ }
363
+ }
364
+ }
365
+ // eslint-disable-next-line class-methods-use-this
366
+ renderErrorState() {
367
+ return (index.h("div", { class: "status_wrapper" }, index.h("peculiar-typography", { type: "b1", class: "interaction_text" }, "There was an error decoding this attribute certificate.")));
368
+ }
369
+ // eslint-disable-next-line class-methods-use-this
370
+ renderEmptyState() {
371
+ return (index.h("div", { class: "status_wrapper" }, index.h("peculiar-typography", { type: "b1", class: "interaction_text" }, "There is no attribute certificate available.")));
372
+ }
373
+ render() {
374
+ if (this.certificateDecodeError) {
375
+ return this.renderErrorState();
376
+ }
377
+ if (!this.certificateDecoded) {
378
+ return this.renderEmptyState();
379
+ }
380
+ return (index.h(index.Host, null, index.h("table", null, index.h(public_key.BasicInformation, Object.assign({}, this.certificateDecoded)), index.h(Issuer, { issuer: this.certificateDecoded.issuer }), index.h(Holder, { holder: this.certificateDecoded.holder }), index.h(public_key.Signature, { signature: this.certificateDecoded.signature }), index.h(public_key.Thumbprints, { thumbprints: this.certificateDecoded.thumbprints }), index.h(Attributes, { attributes: this.certificateDecoded.attributes, getLEILink: public_key.getLEILink, getDNSNameLink: public_key.getDNSNameLink, getIPAddressLink: public_key.getIPAddressLink, getAuthKeyIdParentLink: this.getAuthKeyIdParentLink, getAuthKeyIdSiblingsLink: this.getAuthKeyIdSiblingsLink, getSubjectKeyIdChildrenLink: this.getSubjectKeyIdChildrenLink, getSubjectKeyIdSiblingsLink: this.getSubjectKeyIdSiblingsLink }), index.h(public_key.Extensions, { extensions: this.certificateDecoded.extensions, getLEILink: public_key.getLEILink, getDNSNameLink: public_key.getDNSNameLink, getIPAddressLink: public_key.getIPAddressLink, getAuthKeyIdParentLink: this.getAuthKeyIdParentLink, getAuthKeyIdSiblingsLink: this.getAuthKeyIdSiblingsLink, getSubjectKeyIdChildrenLink: this.getSubjectKeyIdChildrenLink, getSubjectKeyIdSiblingsLink: this.getSubjectKeyIdSiblingsLink }), this.download && (index.h(public_key.Miscellaneous, { certificate: this.certificateDecoded })))));
381
+ }
382
+ static get watchers() { return {
383
+ "certificate": ["watchCertificateAndDecode"]
384
+ }; }
385
+ };
386
+ AttributeCertificateViewer.style = certificateViewerCss$1;
387
+
388
+ const certificateViewerCss = ":host{-webkit-box-sizing:border-box;box-sizing:border-box}:host *,:host *:before,:host *:after{-webkit-box-sizing:inherit;box-sizing:inherit}:host{display:block;width:100%;word-wrap:break-word;position:relative;min-width:280px;min-height:300px;background:white;background:rgba(var(--pv-color-light-rgb), 1)}th,td{border:none}table{width:100%;margin-bottom:30px;border-spacing:0;border-collapse:collapse}table .title td{border-color:rgba(209, 213, 217, 0.5);border-color:rgba(var(--pv-color-grey_3-rgb), 0.5);padding-top:60px;padding-bottom:15px;border-bottom-width:1px;border-bottom-style:solid}table td:first-child{padding-left:30px;width:130px;padding-right:10px}table td:last-child{padding-right:30px;width:calc(100% - 130px)}table td{vertical-align:top;padding-top:5px;padding-bottom:5px}table td.vertical_align_middle{vertical-align:middle}table .title:first-child td{padding-top:15px}table .title+tr td{padding-top:15px}table td.monospace{max-width:0}table .divider{padding-top:15px;padding-bottom:15px}.divider .bg_fill{background-color:rgba(209, 213, 217, 0.5);background-color:rgba(var(--pv-color-grey_3-rgb), 0.5)}table tr:last-child .divider{padding-top:0;opacity:0}.divider span{display:block;height:1px}.status_wrapper{min-height:inherit;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}.interaction_text{padding:15px 0;width:300px;margin:auto;text-align:center}@media (max-width: 900px){table,tr,td{display:block}table td:last-child,table td:first-child{padding-right:15px;padding-left:15px;width:100%}table .title+tr td{padding-top:5px}table .title+tr td:first-child{padding-top:15px}table td.monospace{width:100%;max-width:none}}:host([data-view=mobile]) table,:host([data-view=mobile]) tr,:host([data-view=mobile]) td{display:block}:host([data-view=mobile]) table td:last-child,:host([data-view=mobile]) table td:first-child{padding-right:15px;padding-left:15px;width:100%}:host([data-view=mobile]) table .title+tr td{padding-top:5px}:host([data-view=mobile]) table .title+tr td:first-child{padding-top:15px}:host([data-view=mobile]) table td.monospace{width:100%;max-width:none}";
389
+
390
+ const CsrViewer = class {
391
+ constructor(hostRef) {
392
+ index.registerInstance(this, hostRef);
393
+ this.isDecodeInProcess = true;
394
+ this.getAuthKeyIdParentLink = (value) => value;
395
+ this.getAuthKeyIdSiblingsLink = (value) => value;
396
+ this.getSubjectKeyIdChildrenLink = (value) => {
397
+ var _a;
398
+ return (_a = this.subjectKeyIdChildrenLink) === null || _a === void 0 ? void 0 : _a.replace('{{subjectKeyId}}', value);
399
+ };
400
+ this.getSubjectKeyIdSiblingsLink = (value) => {
401
+ var _a;
402
+ return (_a = this.subjectKeyIdSiblingsLink) === null || _a === void 0 ? void 0 : _a.replace('{{subjectKeyId}}', value);
403
+ };
404
+ }
405
+ componentWillLoad() {
406
+ this.decodeCertificate(this.certificate);
407
+ }
408
+ async decodeCertificate(certificate) {
409
+ this.isDecodeInProcess = true;
410
+ try {
411
+ if (certificate instanceof csr.CSR) {
412
+ this.certificateDecoded = certificate;
413
+ }
414
+ else if (typeof certificate === 'string') {
415
+ this.certificateDecoded = new csr.CSR(certificate);
416
+ }
417
+ else {
418
+ return;
419
+ }
420
+ this.certificateDecoded.parseAttributes();
421
+ await this.certificateDecoded.getThumbprint('SHA-1');
422
+ await this.certificateDecoded.getThumbprint('SHA-256');
423
+ }
424
+ catch (error) {
425
+ this.certificateDecodeError = error;
426
+ console.error('Error certificate parse:', error);
427
+ }
428
+ this.isDecodeInProcess = false;
429
+ }
430
+ /**
431
+ * Rerun decodeCertificate if previuos value not equal current value
432
+ */
433
+ watchCertificateAndDecode(newValue, oldValue) {
434
+ if (typeof newValue === 'string' && typeof oldValue === 'string') {
435
+ if (newValue !== oldValue) {
436
+ this.decodeCertificate(newValue);
437
+ }
438
+ return;
439
+ }
440
+ if (newValue instanceof csr.CSR
441
+ && oldValue instanceof csr.CSR) {
442
+ if (newValue.commonName !== oldValue.commonName) {
443
+ this.decodeCertificate(newValue);
444
+ }
445
+ }
446
+ }
447
+ // eslint-disable-next-line class-methods-use-this
448
+ renderErrorState() {
449
+ return (index.h("div", { class: "status_wrapper" }, index.h("peculiar-typography", { type: "b1", class: "interaction_text" }, "There was an error decoding this certificate request.")));
450
+ }
451
+ // eslint-disable-next-line class-methods-use-this
452
+ renderEmptyState() {
453
+ return (index.h("div", { class: "status_wrapper" }, index.h("peculiar-typography", { type: "b1", class: "interaction_text" }, "There is no certificate request available.")));
454
+ }
455
+ getExtensionRequestAttribute() {
456
+ if (!this.certificateDecoded) {
457
+ return undefined;
458
+ }
459
+ return this.certificateDecoded.attributes
460
+ .find((attribute) => attribute.asn.type === '1.2.840.113549.1.9.14');
461
+ }
462
+ render() {
463
+ if (this.certificateDecodeError) {
464
+ return this.renderErrorState();
465
+ }
466
+ if (!this.certificateDecoded) {
467
+ return this.renderEmptyState();
468
+ }
469
+ const extensionRequestAttribute = this.getExtensionRequestAttribute();
470
+ return (index.h(index.Host, { "data-view": this.view }, index.h("table", null, index.h(public_key.BasicInformation, Object.assign({}, this.certificateDecoded)), index.h(public_key.SubjectName, { name: this.certificateDecoded.subject }), index.h(public_key.PublicKey, { publicKey: this.certificateDecoded.publicKey }), index.h(public_key.Signature, { signature: this.certificateDecoded.signature }), index.h(public_key.Thumbprints, { thumbprints: this.certificateDecoded.thumbprints }), index.h(Attributes, { attributes: this.certificateDecoded.attributes, getLEILink: public_key.getLEILink, getDNSNameLink: public_key.getDNSNameLink, getIPAddressLink: public_key.getIPAddressLink, getAuthKeyIdParentLink: this.getAuthKeyIdParentLink, getAuthKeyIdSiblingsLink: this.getAuthKeyIdSiblingsLink, getSubjectKeyIdChildrenLink: this.getSubjectKeyIdChildrenLink, getSubjectKeyIdSiblingsLink: this.getSubjectKeyIdSiblingsLink }), index.h(public_key.Extensions, { extensions: extensionRequestAttribute === null || extensionRequestAttribute === void 0 ? void 0 : extensionRequestAttribute.value, title: "Extension Request", getLEILink: public_key.getLEILink, getDNSNameLink: public_key.getDNSNameLink, getIPAddressLink: public_key.getIPAddressLink, getAuthKeyIdParentLink: this.getAuthKeyIdParentLink, getAuthKeyIdSiblingsLink: this.getAuthKeyIdSiblingsLink, getSubjectKeyIdChildrenLink: this.getSubjectKeyIdChildrenLink, getSubjectKeyIdSiblingsLink: this.getSubjectKeyIdSiblingsLink }), this.download && (index.h(public_key.Miscellaneous, { certificate: this.certificateDecoded })))));
471
+ }
472
+ static get watchers() { return {
473
+ "certificate": ["watchCertificateAndDecode"]
474
+ }; }
475
+ };
476
+ CsrViewer.style = certificateViewerCss;
477
+
478
+ exports.peculiar_attribute_certificate_viewer = AttributeCertificateViewer;
479
+ exports.peculiar_csr_viewer = CsrViewer;
@@ -0,0 +1,148 @@
1
+ /*!
2
+ * © Peculiar Ventures https://peculiarventures.com/ - MIT License
3
+ */
4
+ 'use strict';
5
+
6
+ Object.defineProperty(exports, '__esModule', { value: true });
7
+
8
+ const index = require('./index-064e95c7.js');
9
+
10
+ const buttonCss = ":host{-webkit-box-sizing:border-box;box-sizing:border-box}:host *,:host *:before,:host *:after{-webkit-box-sizing:inherit;box-sizing:inherit}:host{display:inline-block;width:auto;cursor:pointer;position:relative;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-ms-touch-action:manipulation;touch-action:manipulation;-webkit-user-drag:none;-ms-content-zooming:none;word-wrap:break-word;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;-ms-text-size-adjust:none;text-size-adjust:none;--pv-button-padding-end:5px;--pv-button-padding-start:5px}.button{font-family:\"Open Sans\", \"Arial\", sans-serif;font-family:var(--pv-font-family);font-size:13px;font-size:var(--pv-font-size-b3);letter-spacing:0.03em;letter-spacing:var(--pv-letter-spacing-normal);display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;border-style:solid;border-width:1px;font-weight:400;text-decoration:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;vertical-align:middle;cursor:inherit;height:30px;line-height:30px;border-radius:2px;padding:0 5px;padding:0 var(--pv-button-padding-end) 0 var(--pv-button-padding-start)}.button::-moz-focus-inner{border:0}.button:focus{outline:none;-webkit-box-shadow:0 4px 10px 0 rgba(var(--pv-color-dark-rgb), 0.1);box-shadow:0 4px 10px 0 rgba(var(--pv-color-dark-rgb), 0.1)}.button[disabled]{opacity:0.5;cursor:not-allowed}.button_stroke{border-color:rgba(53, 132, 247, 0.3);border-color:rgba(var(--pv-color-primary-rgb), 0.3);color:#3584f7;color:rgba(var(--pv-color-primary-rgb), 1);background-color:transparent}.button_fill{border-color:#3584f7;border-color:rgba(var(--pv-color-primary-rgb), 1);background-color:#3584f7;background-color:rgba(var(--pv-color-primary-rgb), 1);color:white;color:rgba(var(--pv-color-light-rgb), 1)}.button_label{-webkit-transition:opacity 200ms;transition:opacity 200ms}.button:hover .button_label{opacity:0.7}";
11
+
12
+ const Button = class {
13
+ constructor(hostRef) {
14
+ index.registerInstance(this, hostRef);
15
+ this.fill = 'stroke';
16
+ this.handleClick = (event) => {
17
+ if (this.disabled) {
18
+ event.preventDefault();
19
+ event.stopPropagation();
20
+ return;
21
+ }
22
+ if (this.onClick) {
23
+ this.onClick(event);
24
+ }
25
+ };
26
+ }
27
+ render() {
28
+ const isLink = !!this.href;
29
+ const TagType = isLink ? 'a' : 'button';
30
+ return (index.h(TagType, { class: {
31
+ button: true,
32
+ button_stroke: this.fill === 'stroke',
33
+ button_fill: this.fill === 'fill',
34
+ button_disabled: this.disabled,
35
+ }, disabled: this.disabled, type: !isLink && 'button', href: isLink && this.href, target: isLink && this.target ? this.target : null, rel: isLink && 'noreferrer noopener', onClick: this.handleClick, part: "base" }, index.h("span", { part: "label", class: "button_label" }, index.h("slot", null))));
36
+ }
37
+ };
38
+ Button.style = buttonCss;
39
+
40
+ const buttonSplitCss = ":host{-webkit-box-sizing:border-box;box-sizing:border-box}:host *,:host *:before,:host *:after{-webkit-box-sizing:inherit;box-sizing:inherit}:host{display:inline-block;vertical-align:top;position:relative;white-space:nowrap;font-size:0}.button_split_icon{width:7px;height:5px;display:inline-block;vertical-align:middle}.button_split_with_icon{width:25px;border-bottom-left-radius:0;border-top-left-radius:0}.button_split_with_icon.m_open::part(base):before{position:fixed;width:100%;height:100%;top:0;left:0;content:\"\"}.button_split_action{width:100%}.button_split_container{position:absolute;bottom:calc(100% + 1px);left:0;width:100%;border-radius:2px;-webkit-box-shadow:0px -2px 1px rgb(var(--pv-color-light-rgb)), 0px 0px 10px rgba(var(--pv-color-dark-rgb), 0.0241168);box-shadow:0px -2px 1px rgb(var(--pv-color-light-rgb)), 0px 0px 10px rgba(var(--pv-color-dark-rgb), 0.0241168);z-index:1}.button_split>peculiar-button:first-of-type::part(base){border-top-right-radius:0;border-bottom-right-radius:0}.button_split>peculiar-button:last-of-type::part(base){border-top-left-radius:0;border-bottom-left-radius:0}.button_split>peculiar-button:not(:first-child){margin-left:-1px}";
41
+
42
+ const ButtonSplit = class {
43
+ constructor(hostRef) {
44
+ index.registerInstance(this, hostRef);
45
+ this.fill = 'stroke';
46
+ this.actions = [];
47
+ this.open = false;
48
+ this.onClickSplitButton = (event) => {
49
+ event.stopPropagation();
50
+ this.open = !this.open;
51
+ };
52
+ }
53
+ onClickActiveButton(action, event) {
54
+ this.open = false;
55
+ action(event);
56
+ }
57
+ renderActiveSplitState() {
58
+ if (!this.open) {
59
+ return null;
60
+ }
61
+ return (index.h("div", { class: "button_split_container" }, this.actions.map((action) => (index.h("peculiar-button", { fill: "fill", class: "button_split_action", onClick: this.onClickActiveButton.bind(this, action.onClick) }, action.text)))));
62
+ }
63
+ render() {
64
+ return (index.h("div", { class: {
65
+ button_split: true,
66
+ } }, index.h("peculiar-button", { fill: this.fill, onClick: this.onClick }, index.h("slot", null)), index.h("peculiar-button", { fill: this.fill, onClick: this.onClickSplitButton, class: {
67
+ button_split_with_icon: true,
68
+ m_open: this.open,
69
+ } }, index.h("svg", { viewBox: "0 0 7 5", xmlns: "http://www.w3.org/2000/svg", class: "button_split_icon" }, index.h("path", { fill: "currentColor", "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M5.459.124c.934.001 1.442.994.84 1.644L4.425 3.794c-.44.475-1.244.475-1.684 0L.862 1.764C.26 1.115.77.12 1.705.122l3.754.003z" }))), this.renderActiveSplitState()));
70
+ }
71
+ };
72
+ ButtonSplit.style = buttonSplitCss;
73
+
74
+ const linkCss = ":host{-webkit-box-sizing:border-box;box-sizing:border-box}:host *,:host *:before,:host *:after{-webkit-box-sizing:inherit;box-sizing:inherit}:host{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-ms-touch-action:manipulation;touch-action:manipulation;-webkit-user-drag:none;-ms-content-zooming:none;word-wrap:break-word;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;-ms-text-size-adjust:none;text-size-adjust:none;display:inline-block}.link{font-family:\"Open Sans\", \"Arial\", sans-serif;font-family:var(--pv-font-family);letter-spacing:0.03em;letter-spacing:var(--pv-letter-spacing-normal);line-height:1.4;line-height:var(--pv-line-height-normal);color:#3584f7;color:rgba(var(--pv-color-primary-rgb), 1);font-weight:400;margin:0;padding:0;word-break:break-all}.link_type_h4{font-size:17px;font-size:var(--pv-font-size-h4);font-weight:600}.link_type_h6{font-size:15px;font-size:var(--pv-font-size-h6);font-weight:600}.link_type_h7{font-size:14px;font-size:var(--pv-font-size-h7);font-weight:600}.link_type_b1{font-size:15px;font-size:var(--pv-font-size-b1)}.link_type_b3{font-size:13px;font-size:var(--pv-font-size-b3)}.link:hover{text-decoration:none}";
75
+
76
+ const Link = class {
77
+ constructor(hostRef) {
78
+ index.registerInstance(this, hostRef);
79
+ /**
80
+ * Typography type.
81
+ */
82
+ this.type = 'b3';
83
+ }
84
+ render() {
85
+ return (index.h("a", { href: this.href, target: "_blank", rel: "noreferrer noopener", class: {
86
+ link: true,
87
+ [`link_type_${this.type || 'b3'}`]: true,
88
+ } }, index.h("slot", null)));
89
+ }
90
+ };
91
+ Link.style = linkCss;
92
+
93
+ const textHiderCss = ":host{-webkit-box-sizing:border-box;box-sizing:border-box}:host *,:host *:before,:host *:after{-webkit-box-sizing:inherit;box-sizing:inherit}:host{display:block;width:100%}.text{display:inline-block;width:calc(100% - 60px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:0}.text.m_opened{white-space:initial}.action{vertical-align:top;display:inline-block;width:60px;text-align:right;position:relative;top:-6px}.button_action{width:30px}.expand_icon{width:7px;height:5px;display:inline-block}.m_opened .expand_icon{-webkit-transform:rotate(180deg);transform:rotate(180deg)}";
94
+
95
+ const TextHider = class {
96
+ constructor(hostRef) {
97
+ index.registerInstance(this, hostRef);
98
+ this.textExpand = index.createEvent(this, "textExpand", 7);
99
+ this.opened = false;
100
+ }
101
+ textExpandHandler() {
102
+ this.opened = !this.opened;
103
+ }
104
+ render() {
105
+ return (index.h(index.Host, null, index.h("div", { class: "root" }, index.h("div", { class: {
106
+ text: true,
107
+ m_opened: this.opened,
108
+ } }, index.h("slot", null)), index.h("div", { class: "action" }, index.h("peculiar-button", { onClick: this.textExpand.emit, class: {
109
+ button_action: true,
110
+ m_opened: this.opened,
111
+ }, fill: this.opened ? 'fill' : 'stroke' }, index.h("svg", { viewBox: "0 0 7 5", xmlns: "http://www.w3.org/2000/svg", class: "expand_icon" }, index.h("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", fill: "currentColor", d: "M5.459.124c.934.001 1.442.994.84 1.644L4.425 3.794c-.44.475-1.244.475-1.684 0L.862 1.764C.26 1.115.77.12 1.705.122l3.754.003z" })))))));
112
+ }
113
+ };
114
+ TextHider.style = textHiderCss;
115
+
116
+ const typographyCss = ":host{-webkit-box-sizing:border-box;box-sizing:border-box}:host *,:host *:before,:host *:after{-webkit-box-sizing:inherit;box-sizing:inherit}:host{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-ms-touch-action:manipulation;touch-action:manipulation;-webkit-user-drag:none;-ms-content-zooming:none;word-wrap:break-word;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;-ms-text-size-adjust:none;text-size-adjust:none;display:block}.typography{font-family:\"Open Sans\", \"Arial\", sans-serif;font-family:var(--pv-font-family);letter-spacing:0.03em;letter-spacing:var(--pv-letter-spacing-normal);line-height:1.4;line-height:var(--pv-line-height-normal);font-weight:400;margin:0;padding:0;display:block}.typography_type_h4{font-size:17px;font-size:var(--pv-font-size-h4);font-weight:600}.typography_type_h6{font-size:15px;font-size:var(--pv-font-size-h6);font-weight:600}.typography_type_h7{font-size:14px;font-size:var(--pv-font-size-h7);font-weight:600}.typography_type_b1{font-size:15px;font-size:var(--pv-font-size-b1)}.typography_type_b3{font-size:13px;font-size:var(--pv-font-size-b3)}.typography_color_dark{color:#2a3134;color:rgba(var(--pv-color-dark-rgb), 1)}.typography_color_light{color:white;color:rgba(var(--pv-color-light-rgb), 1)}.typography_color_grey_3{color:#d1d5d9;color:rgba(var(--pv-color-grey_3-rgb), 1)}.typography_color_grey_5{color:#869196;color:rgba(var(--pv-color-grey_5-rgb), 1)}.typography_color_attention{color:#f7a831;color:rgba(var(--pv-color-attention-rgb), 1)}.typography_color_primary{color:#3584f7;color:rgba(var(--pv-color-primary-rgb), 1)}.typography_ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.typography_monospace{font-family:monospace}.typography_align_left{text-align:left}.typography_align_center{text-align:center}.typography_align_right{text-align:right}";
117
+
118
+ const PeculiarTypography = class {
119
+ constructor(hostRef) {
120
+ index.registerInstance(this, hostRef);
121
+ /**
122
+ * Typography type.
123
+ */
124
+ this.type = 'b3';
125
+ /**
126
+ * Component color from theme.
127
+ */
128
+ this.color = 'dark';
129
+ }
130
+ render() {
131
+ const TagType = this.type && this.type.includes('h') ? this.type : 'p';
132
+ return (index.h(TagType, { class: {
133
+ typography: true,
134
+ [`typography_type_${this.type || 'b3'}`]: true,
135
+ [`typography_color_${this.color || 'dark'}`]: true,
136
+ [`typography_align_${this.align}`]: !!this.align,
137
+ typography_ellipsis: this.ellipsis,
138
+ typography_monospace: this.monospace,
139
+ } }, index.h("slot", null)));
140
+ }
141
+ };
142
+ PeculiarTypography.style = typographyCss;
143
+
144
+ exports.peculiar_button = Button;
145
+ exports.peculiar_button_split = ButtonSplit;
146
+ exports.peculiar_link = Link;
147
+ exports.peculiar_text_hider = TextHider;
148
+ exports.peculiar_typography = PeculiarTypography;