@ds-gn/ui 0.5.3 → 0.6.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.
@@ -0,0 +1,35 @@
1
+ // common/helpers/enum-validator.ts
2
+ var enumValidator = (propName, enumSet, candidateValue) => {
3
+ if (!enumSet.has(candidateValue)) {
4
+ throw new Error(`Invalid prop ${propName} of value ${candidateValue}. Expected one of: ${Array.from(enumSet).join(", ")}`);
5
+ }
6
+ };
7
+
8
+ // common/helpers/enum-creator.ts
9
+ var enumCreator = (acceptableValues, propName, type, other = {}) => {
10
+ const acceptableValuesSet = new Set(acceptableValues);
11
+ return {
12
+ type,
13
+ hasChanged(newValue, oldValue) {
14
+ if (newValue !== oldValue) {
15
+ enumValidator(propName, acceptableValuesSet, newValue);
16
+ return true;
17
+ }
18
+ return false;
19
+ },
20
+ ...other
21
+ };
22
+ };
23
+
24
+ // components/Callout/src/Callout.props.ts
25
+ var calloutToneValues = {
26
+ NOTE: "note",
27
+ TIP: "tip",
28
+ WARNING: "warning",
29
+ DANGER: "danger"
30
+ };
31
+ var calloutToneProps = enumCreator(Object.values(calloutToneValues), "tone", String, { reflect: true });
32
+ export {
33
+ calloutToneProps,
34
+ calloutToneValues
35
+ };
@@ -0,0 +1,5 @@
1
+ import { type CalloutToneType } from './Callout.props.js';
2
+ export declare const classNames: (tone: CalloutToneType) => string;
3
+ export declare const iconClassNames: (tone: CalloutToneType) => string;
4
+ export declare const contentClassNames: () => string;
5
+ export declare const titleClassNames: () => string;
@@ -0,0 +1,44 @@
1
+ import '../../../types/global.d.ts';
2
+ import '../../Icon/src/Icon.js';
3
+ import { Base } from '../../../common/Base/Base.js';
4
+ import { type CSSResultGroup } from 'lit';
5
+ /**
6
+ * A framed code sample with an optional filename, language label, and a copy
7
+ * button. Slot in a `<pre>` — plain or pre-highlighted (for example, Shiki
8
+ * output). The copy button copies the slotted text exactly as displayed.
9
+ *
10
+ * @slot - The code, typically a `<pre>` element.
11
+ * @fires dsgn-copy - Fired after the code is copied; `detail` is `{ text }`.
12
+ */
13
+ export declare class CodeSnippet extends Base {
14
+ static styles: CSSResultGroup;
15
+ /**
16
+ * File name shown in the header
17
+ */
18
+ filename: string;
19
+ /**
20
+ * Language label shown in the header
21
+ */
22
+ language: string;
23
+ /**
24
+ * Copy button label. The button is only rendered when a label is supplied.
25
+ */
26
+ copyLabel: string;
27
+ /**
28
+ * Label shown and announced after a successful copy
29
+ */
30
+ copiedLabel: string;
31
+ private _copied;
32
+ private _resetTimer;
33
+ disconnectedCallback(): void;
34
+ /** The text of the slotted code, as displayed. */
35
+ private _codeText;
36
+ private _handleCopy;
37
+ private _renderButton;
38
+ render(): import("lit").TemplateResult<1>;
39
+ }
40
+ declare global {
41
+ interface HTMLElementTagNameMap {
42
+ 'dsgn-code-snippet': CodeSnippet;
43
+ }
44
+ }
@@ -0,0 +1,452 @@
1
+ var __legacyDecorateClassTS = function(decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
4
+ r = Reflect.decorate(decorators, target, key, desc);
5
+ else
6
+ for (var i = decorators.length - 1;i >= 0; i--)
7
+ if (d = decorators[i])
8
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
9
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
10
+ };
11
+
12
+ // components/CodeSnippet/src/CodeSnippet.ts
13
+ import"../../Icon/src/Icon.js";
14
+
15
+ // common/Base/Base.ts
16
+ import { html, LitElement } from "lit";
17
+
18
+ // common/helpers/define-element.ts
19
+ var defineElement = (tag, ctor) => {
20
+ if (typeof customElements === "undefined")
21
+ return;
22
+ if (!customElements.get(tag))
23
+ customElements.define(tag, ctor);
24
+ };
25
+
26
+ // common/Base/Base.css
27
+ import { css } from "lit";
28
+ var styles = css`/* Base reset in @layer base ensures it comes before utilities in Tailwind v4 cascade
29
+ This prevents the reset from overriding component utility classes */
30
+ @layer base {
31
+ :host {
32
+ display: block;
33
+ box-sizing: border-box;
34
+ line-height: 1.5;
35
+ -webkit-text-size-adjust: 100%;
36
+ tab-size: 4;
37
+ font-family: var(
38
+ --default-font-family,
39
+ var(--font-sans, ui-sans-serif, system-ui, sans-serif)
40
+ );
41
+ }
42
+
43
+ *,
44
+ *::before,
45
+ *::after {
46
+ box-sizing: inherit;
47
+ margin: 0;
48
+ padding: 0;
49
+ border: 0 solid;
50
+ }
51
+
52
+ :host h1,
53
+ :host h2,
54
+ :host h3,
55
+ :host h4,
56
+ :host h5,
57
+ :host h6 {
58
+ font-size: inherit;
59
+ font-weight: inherit;
60
+ margin: 0;
61
+ padding: 0;
62
+ }
63
+ }
64
+ `;
65
+ var Base_default = styles;
66
+
67
+ // common/Base/Base.ts
68
+ class Base extends LitElement {
69
+ static styles = Base_default;
70
+ updateTheme(changedProperties, surface) {
71
+ if (changedProperties.has("surface")) {
72
+ if (surface) {
73
+ this.setAttribute("data-theme", surface);
74
+ } else {
75
+ this.removeAttribute("data-theme");
76
+ }
77
+ }
78
+ }
79
+ emit(name, detail, options = {}) {
80
+ return this.dispatchEvent(new CustomEvent(name, {
81
+ detail,
82
+ bubbles: true,
83
+ composed: true,
84
+ cancelable: options.cancelable ?? false
85
+ }));
86
+ }
87
+ render() {
88
+ return html`<slot></slot>`;
89
+ }
90
+ }
91
+ defineElement("dsgn-base", Base);
92
+
93
+ // components/CodeSnippet/src/CodeSnippet.ts
94
+ import { html as html2, nothing } from "lit";
95
+ import { property, state } from "lit/decorators.js";
96
+ // components/Icon/src/icons/check.ts
97
+ import { svg } from "lit";
98
+ var check = svg`<path d="M20 6 9 17l-5-5" />`;
99
+ // components/Icon/src/icons/copy.ts
100
+ import { svg as svg2 } from "lit";
101
+ var copy = svg2`<rect width="14" height="14" x="8" y="8" rx="2" ry="2" /><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2" />`;
102
+ // components/CodeSnippet/src/CodeSnippet.css
103
+ import { css as css2 } from "lit";
104
+ var styles2 = css2`/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */
105
+ @layer properties;
106
+ @layer theme {
107
+ :root, :host {
108
+ --font-sans: ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',
109
+ 'Noto Color Emoji';
110
+ --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New',
111
+ monospace;
112
+ --spacing: 0.25rem;
113
+ --radius-md: 0.375rem;
114
+ --default-transition-duration: 150ms;
115
+ --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
116
+ --color-terminal-bg: var(--terminal-bg, #09090b);
117
+ --color-terminal-border: var(--terminal-border, #1a1a1a);
118
+ --color-terminal-muted: var(--terminal-muted, #a1a1aa);
119
+ --color-terminal-text: var(--terminal-text, #e4e4e7);
120
+ --color-terminal-titlebar: var(--terminal-titlebar, #0d0d0f);
121
+ --color-focus: inherit;
122
+ }
123
+ }
124
+ @layer utilities {
125
+ .visible {
126
+ visibility: visible;
127
+ }
128
+ .absolute {
129
+ position: absolute;
130
+ }
131
+ .static {
132
+ position: static;
133
+ }
134
+ .-m-px {
135
+ margin: -1px;
136
+ }
137
+ .block {
138
+ display: block;
139
+ }
140
+ .flex {
141
+ display: flex;
142
+ }
143
+ .inline-flex {
144
+ display: inline-flex;
145
+ }
146
+ .h-px {
147
+ height: 1px;
148
+ }
149
+ .min-h-10 {
150
+ min-height: calc(var(--spacing) * 10);
151
+ }
152
+ .w-px {
153
+ width: 1px;
154
+ }
155
+ .min-w-0 {
156
+ min-width: calc(var(--spacing) * 0);
157
+ }
158
+ .shrink-0 {
159
+ flex-shrink: 0;
160
+ }
161
+ .cursor-pointer {
162
+ cursor: pointer;
163
+ }
164
+ .items-center {
165
+ align-items: center;
166
+ }
167
+ .justify-between {
168
+ justify-content: space-between;
169
+ }
170
+ .gap-1\\.5 {
171
+ gap: calc(var(--spacing) * 1.5);
172
+ }
173
+ .gap-2 {
174
+ gap: calc(var(--spacing) * 2);
175
+ }
176
+ .gap-3 {
177
+ gap: calc(var(--spacing) * 3);
178
+ }
179
+ .truncate {
180
+ overflow: hidden;
181
+ text-overflow: ellipsis;
182
+ white-space: nowrap;
183
+ }
184
+ .overflow-hidden {
185
+ overflow: hidden;
186
+ }
187
+ .rounded-\\[10px\\] {
188
+ border-radius: 10px;
189
+ }
190
+ .rounded-md {
191
+ border-radius: var(--radius-md);
192
+ }
193
+ .border {
194
+ border-style: var(--tw-border-style);
195
+ border-width: 1px;
196
+ }
197
+ .border-0 {
198
+ border-style: var(--tw-border-style);
199
+ border-width: 0px;
200
+ }
201
+ .border-b {
202
+ border-bottom-style: var(--tw-border-style);
203
+ border-bottom-width: 1px;
204
+ }
205
+ .border-terminal-border {
206
+ border-color: var(--color-terminal-border);
207
+ }
208
+ .bg-terminal-bg {
209
+ background-color: var(--color-terminal-bg);
210
+ }
211
+ .bg-terminal-titlebar {
212
+ background-color: var(--color-terminal-titlebar);
213
+ }
214
+ .bg-transparent {
215
+ background-color: transparent;
216
+ }
217
+ .p-0 {
218
+ padding: calc(var(--spacing) * 0);
219
+ }
220
+ .px-2 {
221
+ padding-inline: calc(var(--spacing) * 2);
222
+ }
223
+ .px-\\[14px\\] {
224
+ padding-inline: 14px;
225
+ }
226
+ .py-1 {
227
+ padding-block: calc(var(--spacing) * 1);
228
+ }
229
+ .py-1\\.5 {
230
+ padding-block: calc(var(--spacing) * 1.5);
231
+ }
232
+ .font-mono {
233
+ font-family: var(--font-mono);
234
+ }
235
+ .font-sans {
236
+ font-family: var(--font-sans);
237
+ }
238
+ .text-\\[12px\\] {
239
+ font-size: 12px;
240
+ }
241
+ .tracking-\\[0\\.02em\\] {
242
+ --tw-tracking: 0.02em;
243
+ letter-spacing: 0.02em;
244
+ }
245
+ .whitespace-nowrap {
246
+ white-space: nowrap;
247
+ }
248
+ .text-terminal-muted {
249
+ color: var(--color-terminal-muted);
250
+ }
251
+ .text-terminal-text {
252
+ color: var(--color-terminal-text);
253
+ }
254
+ .transition-colors {
255
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
256
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
257
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
258
+ }
259
+ .\\[clip\\:rect\\(0\\,0\\,0\\,0\\)\\] {
260
+ clip: rect(0,0,0,0);
261
+ }
262
+ .hover\\:bg-terminal-bg {
263
+ &:hover {
264
+ @media (hover: hover) {
265
+ background-color: var(--color-terminal-bg);
266
+ }
267
+ }
268
+ }
269
+ .focus-visible\\:outline-2 {
270
+ &:focus-visible {
271
+ outline-style: var(--tw-outline-style);
272
+ outline-width: 2px;
273
+ }
274
+ }
275
+ .focus-visible\\:outline-offset-2 {
276
+ &:focus-visible {
277
+ outline-offset: 2px;
278
+ }
279
+ }
280
+ .focus-visible\\:outline-focus {
281
+ &:focus-visible {
282
+ outline-color: var(--color-focus);
283
+ }
284
+ }
285
+ }
286
+ @property --dsgn-border-sweep-angle {
287
+ syntax: '<angle>';
288
+ inherits: false;
289
+ initial-value: 0deg;
290
+ }
291
+ @property --tw-border-style {
292
+ syntax: "*";
293
+ inherits: false;
294
+ initial-value: solid;
295
+ }
296
+ @property --tw-tracking {
297
+ syntax: "*";
298
+ inherits: false;
299
+ }
300
+ @property --tw-outline-style {
301
+ syntax: "*";
302
+ inherits: false;
303
+ initial-value: solid;
304
+ }
305
+ @layer properties {
306
+ @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
307
+ *, ::before, ::after, ::backdrop {
308
+ --tw-border-style: solid;
309
+ --tw-tracking: initial;
310
+ --tw-outline-style: solid;
311
+ --dsgn-border-sweep-angle: 0deg;
312
+ }
313
+ }
314
+ }
315
+ `;
316
+ var CodeSnippet_default = styles2;
317
+
318
+ // components/CodeSnippet/src/CodeSnippet.props.ts
319
+ var codeSnippetCopiedResetMs = 2000;
320
+
321
+ // ../../node_modules/.bun/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs
322
+ function r(e) {
323
+ var t, f, n = "";
324
+ if (typeof e == "string" || typeof e == "number")
325
+ n += e;
326
+ else if (typeof e == "object")
327
+ if (Array.isArray(e)) {
328
+ var o = e.length;
329
+ for (t = 0;t < o; t++)
330
+ e[t] && (f = r(e[t])) && (n && (n += " "), n += f);
331
+ } else
332
+ for (f in e)
333
+ e[f] && (n && (n += " "), n += f);
334
+ return n;
335
+ }
336
+ function clsx() {
337
+ for (var e, t, f = 0, n = "", o = arguments.length;f < o; f++)
338
+ (e = arguments[f]) && (t = r(e)) && (n && (n += " "), n += t);
339
+ return n;
340
+ }
341
+ var clsx_default = clsx;
342
+
343
+ // components/CodeSnippet/src/CodeSnippet.styles.ts
344
+ import { css as css3 } from "lit";
345
+ var slottedStyles = css3`
346
+ ::slotted(pre) {
347
+ margin: 0 !important;
348
+ padding: 1rem 1.25rem !important;
349
+ overflow-x: auto;
350
+ background: transparent !important;
351
+ font-family: var(--font-mono, ui-monospace, monospace);
352
+ font-size: 13px;
353
+ line-height: 1.7;
354
+ tab-size: 2;
355
+ }
356
+ `;
357
+ var classNames = () => clsx_default("overflow-hidden", "rounded-[10px]", "border", "border-terminal-border", "bg-terminal-bg", "font-mono", "text-terminal-text");
358
+ var headerClassNames = () => clsx_default("flex", "items-center", "justify-between", "gap-3", "min-h-10", "px-[14px]", "py-1.5", "border-b", "border-terminal-border", "bg-terminal-titlebar");
359
+ var metaClassNames = () => clsx_default("flex", "min-w-0", "items-center", "gap-2", "text-[12px]", "text-terminal-muted", "tracking-[0.02em]");
360
+ var filenameClassNames = () => clsx_default("truncate", "text-terminal-text");
361
+ var buttonClassNames = () => clsx_default("inline-flex", "shrink-0", "items-center", "gap-1.5", "rounded-md", "border", "border-terminal-border", "bg-transparent", "px-2", "py-1", "font-sans", "text-[12px]", "text-terminal-text", "cursor-pointer", "transition-colors", "hover:bg-terminal-bg", "focus-visible:outline-2", "focus-visible:outline-offset-2", "focus-visible:outline-focus");
362
+ var liveRegionClassNames = () => clsx_default("absolute", "w-px", "h-px", "p-0", "-m-px", "overflow-hidden", "whitespace-nowrap", "border-0", "[clip:rect(0,0,0,0)]");
363
+
364
+ // components/CodeSnippet/src/CodeSnippet.ts
365
+ class CodeSnippet extends Base {
366
+ constructor() {
367
+ super(...arguments);
368
+ this.filename = "";
369
+ this.language = "";
370
+ this.copyLabel = "";
371
+ this.copiedLabel = "";
372
+ this._copied = false;
373
+ }
374
+ static styles = [Base.styles, CodeSnippet_default, slottedStyles];
375
+ disconnectedCallback() {
376
+ super.disconnectedCallback();
377
+ clearTimeout(this._resetTimer);
378
+ }
379
+ _codeText() {
380
+ const slot = this.shadowRoot?.querySelector("slot");
381
+ const nodes = slot?.assignedNodes({ flatten: true }) ?? [];
382
+ return nodes.map((node) => node.textContent ?? "").join("").replace(/^\n+|\s+$/g, "");
383
+ }
384
+ async _handleCopy() {
385
+ const text = this._codeText();
386
+ try {
387
+ await navigator.clipboard.writeText(text);
388
+ } catch {
389
+ return;
390
+ }
391
+ this._copied = true;
392
+ this.emit("dsgn-copy", { text });
393
+ clearTimeout(this._resetTimer);
394
+ this._resetTimer = setTimeout(() => {
395
+ this._copied = false;
396
+ }, codeSnippetCopiedResetMs);
397
+ }
398
+ _renderButton() {
399
+ if (!this.copyLabel)
400
+ return nothing;
401
+ const label = this._copied && this.copiedLabel ? this.copiedLabel : this.copyLabel;
402
+ return html2`<button
403
+ type="button"
404
+ class="${buttonClassNames()}"
405
+ @click=${this._handleCopy}
406
+ >
407
+ <dsgn-icon
408
+ .icon=${this._copied ? check : copy}
409
+ size="sm"
410
+ aria-hidden="true"
411
+ ></dsgn-icon
412
+ ><span>${label}</span>
413
+ </button>`;
414
+ }
415
+ render() {
416
+ const hasHeader = this.filename || this.language || this.copyLabel;
417
+ return html2`<div class="${classNames()}">
418
+ ${hasHeader ? html2`<div class="${headerClassNames()}">
419
+ <span class="${metaClassNames()}">
420
+ ${this.filename ? html2`<span class="${filenameClassNames()}"
421
+ >${this.filename}</span
422
+ >` : nothing}
423
+ ${this.language ? html2`<span>${this.language}</span>` : nothing}
424
+ </span>
425
+ ${this._renderButton()}
426
+ </div>` : nothing}
427
+ <slot></slot>
428
+ <span class="${liveRegionClassNames()}" role="status" aria-live="polite"
429
+ >${this._copied ? this.copiedLabel : ""}</span
430
+ >
431
+ </div>`;
432
+ }
433
+ }
434
+ __legacyDecorateClassTS([
435
+ property({ type: String })
436
+ ], CodeSnippet.prototype, "filename", undefined);
437
+ __legacyDecorateClassTS([
438
+ property({ type: String })
439
+ ], CodeSnippet.prototype, "language", undefined);
440
+ __legacyDecorateClassTS([
441
+ property({ type: String, attribute: "copy-label" })
442
+ ], CodeSnippet.prototype, "copyLabel", undefined);
443
+ __legacyDecorateClassTS([
444
+ property({ type: String, attribute: "copied-label" })
445
+ ], CodeSnippet.prototype, "copiedLabel", undefined);
446
+ __legacyDecorateClassTS([
447
+ state()
448
+ ], CodeSnippet.prototype, "_copied", undefined);
449
+ defineElement("dsgn-code-snippet", CodeSnippet);
450
+ export {
451
+ CodeSnippet
452
+ };
@@ -0,0 +1,2 @@
1
+ /** How long the copied state stays visible before the button resets, in ms. */
2
+ export declare const codeSnippetCopiedResetMs = 2000;
@@ -0,0 +1,5 @@
1
+ // components/CodeSnippet/src/CodeSnippet.props.ts
2
+ var codeSnippetCopiedResetMs = 2000;
3
+ export {
4
+ codeSnippetCopiedResetMs
5
+ };
@@ -0,0 +1,13 @@
1
+ /**
2
+ * The code is consumer-owned light DOM (typically a pre-highlighted `<pre>`),
3
+ * so it can only be reached with `::slotted`, which has no utility equivalent.
4
+ * Highlighters such as Shiki paint their own background; the snippet frame
5
+ * owns the surface, so the slotted block is made transparent.
6
+ */
7
+ export declare const slottedStyles: import("lit").CSSResult;
8
+ export declare const classNames: () => string;
9
+ export declare const headerClassNames: () => string;
10
+ export declare const metaClassNames: () => string;
11
+ export declare const filenameClassNames: () => string;
12
+ export declare const buttonClassNames: () => string;
13
+ export declare const liveRegionClassNames: () => string;
@@ -0,0 +1,6 @@
1
+ import { Callout as CalloutElement } from '@ds-gn/ui/callout';
2
+ /**
3
+ * React wrapper for the `<dsgn-callout>` element. Import-safe under Node SSR: emits an
4
+ * inert `<dsgn-callout>` tag on the server and upgrades on the client.
5
+ */
6
+ export declare const Callout: import("@lit/react").ReactWebComponent<CalloutElement, {}>;
@@ -0,0 +1,13 @@
1
+ // frameworks/react/Callout.ts
2
+ import { Callout as CalloutElement } from "@ds-gn/ui/callout";
3
+ import { createComponent } from "@lit/react";
4
+ import * as React from "react";
5
+ var Callout = createComponent({
6
+ react: React,
7
+ tagName: "dsgn-callout",
8
+ elementClass: CalloutElement,
9
+ events: {}
10
+ });
11
+ export {
12
+ Callout
13
+ };
@@ -0,0 +1,8 @@
1
+ import { CodeSnippet as CodeSnippetElement } from '@ds-gn/ui/code-snippet';
2
+ /**
3
+ * React wrapper for the `<dsgn-code-snippet>` element. Import-safe under Node SSR: emits an
4
+ * inert `<dsgn-code-snippet>` tag on the server and upgrades on the client.
5
+ */
6
+ export declare const CodeSnippet: import("@lit/react").ReactWebComponent<CodeSnippetElement, {
7
+ onDsgnCopy: string;
8
+ }>;
@@ -0,0 +1,13 @@
1
+ // frameworks/react/CodeSnippet.ts
2
+ import { CodeSnippet as CodeSnippetElement } from "@ds-gn/ui/code-snippet";
3
+ import { createComponent } from "@lit/react";
4
+ import * as React from "react";
5
+ var CodeSnippet = createComponent({
6
+ react: React,
7
+ tagName: "dsgn-code-snippet",
8
+ elementClass: CodeSnippetElement,
9
+ events: { onDsgnCopy: "dsgn-copy" }
10
+ });
11
+ export {
12
+ CodeSnippet
13
+ };
@@ -1,8 +1,10 @@
1
1
  export { Background } from './Background.js';
2
2
  export { Badge } from './Badge.js';
3
3
  export { Button } from './Button.js';
4
+ export { Callout } from './Callout.js';
4
5
  export { Card } from './Card.js';
5
6
  export { CodeBlock } from './CodeBlock.js';
7
+ export { CodeSnippet } from './CodeSnippet.js';
6
8
  export { Container } from './Container.js';
7
9
  export { Divider } from './Divider.js';
8
10
  export { FeatureItem } from './FeatureItem.js';
@@ -2,8 +2,10 @@
2
2
  export { Background } from './Background.js';
3
3
  export { Badge } from './Badge.js';
4
4
  export { Button } from './Button.js';
5
+ export { Callout } from './Callout.js';
5
6
  export { Card } from './Card.js';
6
7
  export { CodeBlock } from './CodeBlock.js';
8
+ export { CodeSnippet } from './CodeSnippet.js';
7
9
  export { Container } from './Container.js';
8
10
  export { Divider } from './Divider.js';
9
11
  export { FeatureItem } from './FeatureItem.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ds-gn/ui",
3
- "version": "0.5.3",
3
+ "version": "0.6.0",
4
4
  "description": "UI components for the DS-GN Design System",
5
5
  "type": "module",
6
6
  "exports": {
@@ -134,6 +134,16 @@
134
134
  "import": "./dist/components/Card/src/Card.props.js",
135
135
  "default": "./dist/components/Card/src/Card.props.js"
136
136
  },
137
+ "./callout": {
138
+ "types": "./dist/components/Callout/src/Callout.d.ts",
139
+ "import": "./dist/components/Callout/src/Callout.js",
140
+ "default": "./dist/components/Callout/src/Callout.js"
141
+ },
142
+ "./callout/props": {
143
+ "types": "./dist/components/Callout/src/Callout.props.d.ts",
144
+ "import": "./dist/components/Callout/src/Callout.props.js",
145
+ "default": "./dist/components/Callout/src/Callout.props.js"
146
+ },
137
147
  "./feature-item": {
138
148
  "types": "./dist/components/FeatureItem/src/FeatureItem.d.ts",
139
149
  "import": "./dist/components/FeatureItem/src/FeatureItem.js",
@@ -149,6 +159,11 @@
149
159
  "import": "./dist/components/CodeBlock/src/CodeBlock.js",
150
160
  "default": "./dist/components/CodeBlock/src/CodeBlock.js"
151
161
  },
162
+ "./code-snippet": {
163
+ "types": "./dist/components/CodeSnippet/src/CodeSnippet.d.ts",
164
+ "import": "./dist/components/CodeSnippet/src/CodeSnippet.js",
165
+ "default": "./dist/components/CodeSnippet/src/CodeSnippet.js"
166
+ },
152
167
  "./feature-tabs": {
153
168
  "types": "./dist/components/FeatureTabs/src/FeatureTabs.d.ts",
154
169
  "import": "./dist/components/FeatureTabs/src/FeatureTabs.js",