@xmesh/system-design 0.0.3 → 0.0.4

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 (65) hide show
  1. package/dist/lit/components/alert/index.d.ts +1 -1
  2. package/dist/lit/components/alert/index.js +1 -0
  3. package/dist/lit/components/app-bar/index.d.ts +1 -1
  4. package/dist/lit/components/app-bar/index.js +1 -0
  5. package/dist/lit/components/artifact/index.d.ts +1 -1
  6. package/dist/lit/components/artifact/index.js +16 -2
  7. package/dist/lit/components/avatar/index.d.ts +1 -1
  8. package/dist/lit/components/avatar/index.js +1 -0
  9. package/dist/lit/components/avatar-group/index.d.ts +1 -1
  10. package/dist/lit/components/avatar-group/index.js +1 -0
  11. package/dist/lit/components/badge/index.d.ts +1 -2
  12. package/dist/lit/components/badge/index.js +1 -0
  13. package/dist/lit/components/brand-mark/index.d.ts +2 -2
  14. package/dist/lit/components/brand-mark/index.js +14 -0
  15. package/dist/lit/components/breadcrumbs/index.d.ts +1 -1
  16. package/dist/lit/components/breadcrumbs/index.js +1 -0
  17. package/dist/lit/components/bubble/index.d.ts +4 -4
  18. package/dist/lit/components/bubble/index.js +18 -0
  19. package/dist/lit/components/button/index.d.ts +1 -1
  20. package/dist/lit/components/button/index.js +1 -0
  21. package/dist/lit/components/card/index.d.ts +1 -1
  22. package/dist/lit/components/card/index.js +1 -0
  23. package/dist/lit/components/chat/index.d.ts +1 -2
  24. package/dist/lit/components/chat/index.js +16 -2
  25. package/dist/lit/components/checkbox/index.d.ts +1 -2
  26. package/dist/lit/components/checkbox/index.js +1 -0
  27. package/dist/lit/components/chip/index.d.ts +1 -1
  28. package/dist/lit/components/chip/index.js +1 -0
  29. package/dist/lit/components/chip-group/index.d.ts +1 -1
  30. package/dist/lit/components/chip-group/index.js +1 -0
  31. package/dist/lit/components/code/index.d.ts +1 -2
  32. package/dist/lit/components/code/index.js +1 -0
  33. package/dist/lit/components/composer/index.d.ts +1 -2
  34. package/dist/lit/components/composer/index.js +14 -0
  35. package/dist/lit/components/divider/index.d.ts +1 -1
  36. package/dist/lit/components/divider/index.js +1 -0
  37. package/dist/lit/components/expansion-panel/index.d.ts +1 -2
  38. package/dist/lit/components/expansion-panel/index.js +1 -0
  39. package/dist/lit/components/grid/index.d.ts +1 -1
  40. package/dist/lit/components/grid/index.js +1 -0
  41. package/dist/lit/components/kbd/index.d.ts +1 -2
  42. package/dist/lit/components/kbd/index.js +1 -0
  43. package/dist/lit/components/list/index.d.ts +1 -1
  44. package/dist/lit/components/list/index.js +1 -0
  45. package/dist/lit/components/list-item/index.d.ts +1 -2
  46. package/dist/lit/components/list-item/index.js +1 -0
  47. package/dist/lit/components/navigation-drawer/index.d.ts +1 -2
  48. package/dist/lit/components/navigation-drawer/index.js +1 -0
  49. package/dist/lit/components/pagination/index.d.ts +1 -1
  50. package/dist/lit/components/pagination/index.js +1 -0
  51. package/dist/lit/components/primitives/index.d.ts +2 -2
  52. package/dist/lit/components/primitives/index.js +14 -0
  53. package/dist/lit/components/sidebar-item/index.d.ts +1 -1
  54. package/dist/lit/components/sidebar-item/index.js +13 -0
  55. package/dist/lit/components/snackbar/index.d.ts +1 -2
  56. package/dist/lit/components/snackbar/index.js +16 -2
  57. package/dist/lit/components/stack/index.d.ts +1 -1
  58. package/dist/lit/components/stack/index.js +1 -0
  59. package/dist/lit/components/table/index.d.ts +1 -2
  60. package/dist/lit/components/table/index.js +1 -0
  61. package/dist/lit/components/tabs/index.d.ts +3 -3
  62. package/dist/lit/components/tabs/index.js +3 -0
  63. package/dist/lit/components/validation/index.d.ts +1 -2
  64. package/dist/lit/components/validation/index.js +16 -1
  65. package/package.json +1 -1
@@ -2,7 +2,7 @@ import { LitElement } from "lit";
2
2
  import type { TemplateResult } from "lit";
3
3
  type AlertSeverity = "info" | "success" | "warning" | "critical";
4
4
  type AlertVariant = "inline" | "banner";
5
- declare class XmAlert extends LitElement {
5
+ export declare class XmAlert extends LitElement {
6
6
  severity: AlertSeverity;
7
7
  heading: string;
8
8
  dismissible: boolean;
@@ -189,3 +189,4 @@ __decorate([
189
189
  XmAlert = __decorate([
190
190
  customElement("xm-alert")
191
191
  ], XmAlert);
192
+ export { XmAlert };
@@ -1,7 +1,7 @@
1
1
  import { LitElement } from "lit";
2
2
  import type { TemplateResult } from "lit";
3
3
  type AppBarSize = "xs" | "sm" | "md" | "lg";
4
- declare class XmAppBar extends LitElement {
4
+ export declare class XmAppBar extends LitElement {
5
5
  size: AppBarSize;
6
6
  sticky: boolean;
7
7
  private _mo;
@@ -118,3 +118,4 @@ __decorate([
118
118
  XmAppBar = __decorate([
119
119
  customElement("xm-app-bar")
120
120
  ], XmAppBar);
121
+ export { XmAppBar };
@@ -2,7 +2,7 @@ import { LitElement } from "lit";
2
2
  import type { TemplateResult } from "lit";
3
3
  import "../button/index.js";
4
4
  type ArtifactView = "preview" | "code";
5
- declare class XmArtifact extends LitElement {
5
+ export declare class XmArtifact extends LitElement {
6
6
  title: string;
7
7
  sub: string[] | null;
8
8
  subCsv: string;
@@ -29,8 +29,8 @@
29
29
  refresh
30
30
  close
31
31
 
32
- Light DOM. components/artifact/index.css + components/button/index.css +
33
- components/primitives/index.css must be loaded in the host page.
32
+ Light DOM. This module appends its stylesheets (artifact + primitives) to
33
+ document.head on import; <xm-button> brings its own CSS via its shadow root.
34
34
  */
35
35
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
36
36
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -42,6 +42,19 @@ import { LitElement, html, svg, nothing } from "lit";
42
42
  import { customElement, property, state } from "lit/decorators.js";
43
43
  // Side-effect import: registers <xm-button> for use in the head toolbar.
44
44
  import "../button/index.js";
45
+ if (typeof document !== "undefined") {
46
+ for (const href of [
47
+ new URL("../artifact/index.css", import.meta.url).href,
48
+ new URL("../primitives/index.css", import.meta.url).href,
49
+ ]) {
50
+ if (document.querySelector(`link[rel="stylesheet"][href="${href}"]`))
51
+ continue;
52
+ const link = document.createElement("link");
53
+ link.rel = "stylesheet";
54
+ link.href = href;
55
+ document.head.appendChild(link);
56
+ }
57
+ }
45
58
  const ICON_EYE = (size = 14) => svg `
46
59
  <svg width="${size}" height="${size}" viewBox="0 0 24 24" fill="none"
47
60
  stroke="currentColor" stroke-width="1.8" stroke-linecap="round"
@@ -292,3 +305,4 @@ __decorate([
292
305
  XmArtifact = __decorate([
293
306
  customElement("xm-artifact")
294
307
  ], XmArtifact);
308
+ export { XmArtifact };
@@ -1,7 +1,7 @@
1
1
  import { LitElement } from "lit";
2
2
  import type { TemplateResult } from "lit";
3
3
  type AvatarSize = "xs" | "sm" | "md" | "lg";
4
- declare class XmAvatar extends LitElement {
4
+ export declare class XmAvatar extends LitElement {
5
5
  title: string;
6
6
  name: string;
7
7
  initials: string;
@@ -110,3 +110,4 @@ __decorate([
110
110
  XmAvatar = __decorate([
111
111
  customElement("xm-avatar")
112
112
  ], XmAvatar);
113
+ export { XmAvatar };
@@ -1,7 +1,7 @@
1
1
  import { LitElement } from "lit";
2
2
  import type { TemplateResult } from "lit";
3
3
  type AvatarSize = "xs" | "sm" | "md" | "lg";
4
- declare class XmAvatarGroup extends LitElement {
4
+ export declare class XmAvatarGroup extends LitElement {
5
5
  max: number;
6
6
  size: AvatarSize;
7
7
  private _overflow;
@@ -95,3 +95,4 @@ __decorate([
95
95
  XmAvatarGroup = __decorate([
96
96
  customElement("xm-avatar-group")
97
97
  ], XmAvatarGroup);
98
+ export { XmAvatarGroup };
@@ -1,6 +1,6 @@
1
1
  import { LitElement } from "lit";
2
2
  import type { TemplateResult } from "lit";
3
- declare class XmBadge extends LitElement {
3
+ export declare class XmBadge extends LitElement {
4
4
  count: number | null;
5
5
  dot: boolean;
6
6
  max: number;
@@ -15,4 +15,3 @@ declare global {
15
15
  "xm-badge": XmBadge;
16
16
  }
17
17
  }
18
- export {};
@@ -113,3 +113,4 @@ __decorate([
113
113
  XmBadge = __decorate([
114
114
  customElement("xm-badge")
115
115
  ], XmBadge);
116
+ export { XmBadge };
@@ -4,10 +4,10 @@ type BrandSize = "sm" | "md" | "lg";
4
4
  declare class LightElement extends LitElement {
5
5
  createRenderRoot(): HTMLElement | DocumentFragment;
6
6
  }
7
- declare class XmBrandGlyph extends LightElement {
7
+ export declare class XmBrandGlyph extends LightElement {
8
8
  render(): TemplateResult;
9
9
  }
10
- declare class XmBrandMark extends LightElement {
10
+ export declare class XmBrandMark extends LightElement {
11
11
  size: BrandSize;
12
12
  showGlyph: boolean;
13
13
  showWordmark: boolean;
@@ -23,6 +23,18 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
23
23
  };
24
24
  import { LitElement, html, nothing } from "lit";
25
25
  import { customElement, property } from "lit/decorators.js";
26
+ if (typeof document !== "undefined") {
27
+ for (const href of [
28
+ new URL("../brand-mark/index.css", import.meta.url).href,
29
+ ]) {
30
+ if (document.querySelector(`link[rel="stylesheet"][href="${href}"]`))
31
+ continue;
32
+ const link = document.createElement("link");
33
+ link.rel = "stylesheet";
34
+ link.href = href;
35
+ document.head.appendChild(link);
36
+ }
37
+ }
26
38
  const DEFAULT_TAGLINE = "Smart-routing AI chat. The mark is an X-mesh — four nodes routing to a single hub through the letterform itself.";
27
39
  class LightElement extends LitElement {
28
40
  createRenderRoot() {
@@ -59,6 +71,7 @@ let XmBrandGlyph = class XmBrandGlyph extends LightElement {
59
71
  XmBrandGlyph = __decorate([
60
72
  customElement("xm-brand-glyph")
61
73
  ], XmBrandGlyph);
74
+ export { XmBrandGlyph };
62
75
  let XmBrandMark = class XmBrandMark extends LightElement {
63
76
  constructor() {
64
77
  super(...arguments);
@@ -114,3 +127,4 @@ __decorate([
114
127
  XmBrandMark = __decorate([
115
128
  customElement("xm-brand-mark")
116
129
  ], XmBrandMark);
130
+ export { XmBrandMark };
@@ -5,7 +5,7 @@ export interface BreadcrumbItem {
5
5
  href?: string;
6
6
  }
7
7
  type BreadcrumbSeparator = "chevron" | "slash";
8
- declare class XmBreadcrumbs extends LitElement {
8
+ export declare class XmBreadcrumbs extends LitElement {
9
9
  items: BreadcrumbItem[];
10
10
  separator: BreadcrumbSeparator;
11
11
  render(): TemplateResult;
@@ -102,3 +102,4 @@ __decorate([
102
102
  XmBreadcrumbs = __decorate([
103
103
  customElement("xm-breadcrumbs")
104
104
  ], XmBreadcrumbs);
105
+ export { XmBreadcrumbs };
@@ -16,14 +16,14 @@ export interface BubbleArtifact {
16
16
  declare class LightElement extends LitElement {
17
17
  createRenderRoot(): HTMLElement | DocumentFragment;
18
18
  }
19
- declare class XmBubbleGroup extends LightElement {
19
+ export declare class XmBubbleGroup extends LightElement {
20
20
  variant: BubbleVariant;
21
21
  private _authoredChildren;
22
22
  connectedCallback(): void;
23
23
  render(): TemplateResult;
24
24
  updated(): void;
25
25
  }
26
- declare class XmBubble extends LightElement {
26
+ export declare class XmBubble extends LightElement {
27
27
  variant: BubbleVariant;
28
28
  attachments: BubbleAttachment[];
29
29
  artifact: BubbleArtifact | null;
@@ -39,7 +39,7 @@ declare class XmBubble extends LightElement {
39
39
  render(): TemplateResult;
40
40
  updated(): void;
41
41
  }
42
- declare class XmBubbleActions extends LightElement {
42
+ export declare class XmBubbleActions extends LightElement {
43
43
  ts: string;
44
44
  ariaLabel: string;
45
45
  private _authored;
@@ -54,7 +54,7 @@ declare class XmBubbleActions extends LightElement {
54
54
  render(): TemplateResult;
55
55
  updated(): void;
56
56
  }
57
- declare class XmArtifactChip extends LightElement {
57
+ export declare class XmArtifactChip extends LightElement {
58
58
  artifact: BubbleArtifact | null;
59
59
  download: boolean;
60
60
  private _open;
@@ -36,6 +36,20 @@ import { unsafeHTML } from "lit/directives/unsafe-html.js";
36
36
  import { customElement, property } from "lit/decorators.js";
37
37
  // Register <xm-button> for the artifact "Download" action below.
38
38
  import "../button/index.js";
39
+ if (typeof document !== "undefined") {
40
+ for (const href of [
41
+ new URL("../bubble/index.css", import.meta.url).href,
42
+ new URL("../composer/index.css", import.meta.url).href,
43
+ new URL("../primitives/index.css", import.meta.url).href,
44
+ ]) {
45
+ if (document.querySelector(`link[rel="stylesheet"][href="${href}"]`))
46
+ continue;
47
+ const link = document.createElement("link");
48
+ link.rel = "stylesheet";
49
+ link.href = href;
50
+ document.head.appendChild(link);
51
+ }
52
+ }
39
53
  class LightElement extends LitElement {
40
54
  createRenderRoot() {
41
55
  return this;
@@ -143,6 +157,7 @@ __decorate([
143
157
  XmBubbleGroup = __decorate([
144
158
  customElement("xm-bubble-group")
145
159
  ], XmBubbleGroup);
160
+ export { XmBubbleGroup };
146
161
  /* ─────────────────────────────────────────────────────────────
147
162
  <xm-bubble> — the message body.
148
163
 
@@ -349,6 +364,7 @@ __decorate([
349
364
  XmBubble = __decorate([
350
365
  customElement("xm-bubble")
351
366
  ], XmBubble);
367
+ export { XmBubble };
352
368
  /* ─────────────────────────────────────────────────────────────
353
369
  <xm-bubble-actions> — hover-reveal toolbar.
354
370
 
@@ -530,6 +546,7 @@ __decorate([
530
546
  XmBubbleActions = __decorate([
531
547
  customElement("xm-bubble-actions")
532
548
  ], XmBubbleActions);
549
+ export { XmBubbleActions };
533
550
  /* ─────────────────────────────────────────────────────────────
534
551
  <xm-artifact-chip> — standalone chip for surfaces other than
535
552
  xm-bubble (e.g. snackbar, drawer). xm-bubble renders the same
@@ -615,3 +632,4 @@ __decorate([
615
632
  XmArtifactChip = __decorate([
616
633
  customElement("xm-artifact-chip")
617
634
  ], XmArtifactChip);
635
+ export { XmArtifactChip };
@@ -4,7 +4,7 @@ type ButtonVariant = "primary" | "secondary" | "outline" | "ghost" | "ghost-acce
4
4
  type ButtonSize = "xs" | "sm" | "md" | "lg";
5
5
  type ButtonType = "button" | "submit" | "reset";
6
6
  type ForceState = "hover" | "active" | "focus" | null;
7
- declare class XmButton extends LitElement {
7
+ export declare class XmButton extends LitElement {
8
8
  static shadowRootOptions: ShadowRootInit;
9
9
  variant: ButtonVariant;
10
10
  size: ButtonSize;
@@ -200,3 +200,4 @@ __decorate([
200
200
  XmButton = __decorate([
201
201
  customElement("xm-button")
202
202
  ], XmButton);
203
+ export { XmButton };
@@ -2,7 +2,7 @@ import { LitElement } from "lit";
2
2
  import type { TemplateResult } from "lit";
3
3
  type CardSize = "xs" | "sm" | "md" | "lg";
4
4
  type CardElevation = 0 | 1 | 2 | 3 | 4 | 5;
5
- declare class XmCard extends LitElement {
5
+ export declare class XmCard extends LitElement {
6
6
  elevation: CardElevation;
7
7
  size: CardSize;
8
8
  private _mo;
@@ -131,3 +131,4 @@ __decorate([
131
131
  XmCard = __decorate([
132
132
  customElement("xm-card")
133
133
  ], XmCard);
134
+ export { XmCard };
@@ -25,7 +25,7 @@ export interface ThreadMessage {
25
25
  atts?: BubbleAttachment[];
26
26
  artifact?: BubbleArtifact | null;
27
27
  }
28
- declare class XmChatShell extends LitElement {
28
+ export declare class XmChatShell extends LitElement {
29
29
  conversations: ConversationGroup[];
30
30
  thread: ThreadMessage[];
31
31
  processing: boolean;
@@ -71,4 +71,3 @@ declare global {
71
71
  "xm-chat-shell": XmChatShell;
72
72
  }
73
73
  }
74
- export {};
@@ -31,8 +31,8 @@
31
31
  (opens the artifact slot).
32
32
  artifact-close
33
33
 
34
- Light DOM. Loads the entire palette of dependent stylesheets at the
35
- preview level. Composes the previously-ported xm-* elements.
34
+ Light DOM. This module and the xm-* elements it composes each append their
35
+ own stylesheets to document.head on import; nothing extra is needed.
36
36
  */
37
37
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
38
38
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -52,6 +52,19 @@ import "../sidebar-item/index.js";
52
52
  import "../bubble/index.js";
53
53
  import "../composer/index.js";
54
54
  import "../artifact/index.js";
55
+ if (typeof document !== "undefined") {
56
+ for (const href of [
57
+ new URL("../chat/index.css", import.meta.url).href,
58
+ new URL("../primitives/index.css", import.meta.url).href,
59
+ ]) {
60
+ if (document.querySelector(`link[rel="stylesheet"][href="${href}"]`))
61
+ continue;
62
+ const link = document.createElement("link");
63
+ link.rel = "stylesheet";
64
+ link.href = href;
65
+ document.head.appendChild(link);
66
+ }
67
+ }
55
68
  /* ---------- Inline icon SVG fragments (used in topbar / sidebar chrome) */
56
69
  const I_PANEL = (size = 16) => svg `
57
70
  <svg width="${size}" height="${size}" viewBox="0 0 24 24" fill="none"
@@ -587,3 +600,4 @@ __decorate([
587
600
  XmChatShell = __decorate([
588
601
  customElement("xm-chat-shell")
589
602
  ], XmChatShell);
603
+ export { XmChatShell };
@@ -1,6 +1,6 @@
1
1
  import type { TemplateResult } from "lit";
2
2
  import { XmField } from "../field/index.js";
3
- declare class XmCheckbox extends XmField {
3
+ export declare class XmCheckbox extends XmField {
4
4
  /** Indeterminate (mixed) state — shows the dash mark on the coral fill and
5
5
  reports aria-checked="mixed". Cleared on the first user toggle. */
6
6
  indeterminate: boolean;
@@ -18,4 +18,3 @@ declare global {
18
18
  "xm-checkbox": XmCheckbox;
19
19
  }
20
20
  }
21
- export {};
@@ -136,3 +136,4 @@ __decorate([
136
136
  XmCheckbox = __decorate([
137
137
  customElement("xm-checkbox")
138
138
  ], XmCheckbox);
139
+ export { XmCheckbox };
@@ -2,7 +2,7 @@ import { LitElement } from "lit";
2
2
  import type { TemplateResult } from "lit";
3
3
  type ChipSize = "xs" | "sm" | "md" | "lg";
4
4
  type ChipCategory = "get" | "post" | "put" | "delete" | "patch" | "yml" | "json" | "";
5
- declare class XmChip extends LitElement {
5
+ export declare class XmChip extends LitElement {
6
6
  value: string;
7
7
  size: ChipSize;
8
8
  selected: boolean;
@@ -228,3 +228,4 @@ __decorate([
228
228
  XmChip = __decorate([
229
229
  customElement("xm-chip")
230
230
  ], XmChip);
231
+ export { XmChip };
@@ -1,7 +1,7 @@
1
1
  import { LitElement } from "lit";
2
2
  import type { TemplateResult } from "lit";
3
3
  type Primitive = string | number;
4
- declare class XmChipGroup extends LitElement {
4
+ export declare class XmChipGroup extends LitElement {
5
5
  multiple: boolean;
6
6
  value: Primitive | Primitive[] | null;
7
7
  connectedCallback(): void;
@@ -169,3 +169,4 @@ __decorate([
169
169
  XmChipGroup = __decorate([
170
170
  customElement("xm-chip-group")
171
171
  ], XmChipGroup);
172
+ export { XmChipGroup };
@@ -1,6 +1,6 @@
1
1
  import { LitElement } from "lit";
2
2
  import type { TemplateResult } from "lit";
3
- declare class XmCode extends LitElement {
3
+ export declare class XmCode extends LitElement {
4
4
  block: boolean;
5
5
  render(): TemplateResult;
6
6
  }
@@ -9,4 +9,3 @@ declare global {
9
9
  "xm-code": XmCode;
10
10
  }
11
11
  }
12
- export {};
@@ -66,3 +66,4 @@ __decorate([
66
66
  XmCode = __decorate([
67
67
  customElement("xm-code")
68
68
  ], XmCode);
69
+ export { XmCode };
@@ -12,7 +12,7 @@ export interface ComposerAttachment {
12
12
  pages?: number;
13
13
  dims?: string;
14
14
  }
15
- declare class XmComposer extends LitElement {
15
+ export declare class XmComposer extends LitElement {
16
16
  initialValue: string;
17
17
  initialFocus: boolean;
18
18
  processing: boolean;
@@ -64,4 +64,3 @@ declare global {
64
64
  "xm-composer": XmComposer;
65
65
  }
66
66
  }
67
- export {};
@@ -36,6 +36,19 @@ import { LitElement, html, svg, nothing } from "lit";
36
36
  import { customElement, property, state } from "lit/decorators.js";
37
37
  // Side-effect import: registers <xm-button> for use in the toolbar.
38
38
  import "../button/index.js";
39
+ if (typeof document !== "undefined") {
40
+ for (const href of [
41
+ new URL("../composer/index.css", import.meta.url).href,
42
+ new URL("../primitives/index.css", import.meta.url).href,
43
+ ]) {
44
+ if (document.querySelector(`link[rel="stylesheet"][href="${href}"]`))
45
+ continue;
46
+ const link = document.createElement("link");
47
+ link.rel = "stylesheet";
48
+ link.href = href;
49
+ document.head.appendChild(link);
50
+ }
51
+ }
39
52
  /* ---------- attachment helpers (verbatim from JSX) ---------- */
40
53
  const STRIP_LIMIT = 10;
41
54
  const HARD_CAP = 50;
@@ -711,3 +724,4 @@ __decorate([
711
724
  XmComposer = __decorate([
712
725
  customElement("xm-composer")
713
726
  ], XmComposer);
727
+ export { XmComposer };
@@ -1,7 +1,7 @@
1
1
  import { LitElement } from "lit";
2
2
  import type { TemplateResult } from "lit";
3
3
  type DividerOrientation = "horizontal" | "vertical";
4
- declare class XmDivider extends LitElement {
4
+ export declare class XmDivider extends LitElement {
5
5
  orientation: DividerOrientation;
6
6
  render(): TemplateResult;
7
7
  }
@@ -65,3 +65,4 @@ __decorate([
65
65
  XmDivider = __decorate([
66
66
  customElement("xm-divider")
67
67
  ], XmDivider);
68
+ export { XmDivider };
@@ -1,6 +1,6 @@
1
1
  import { LitElement } from "lit";
2
2
  import type { TemplateResult } from "lit";
3
- declare class XmExpansionPanel extends LitElement {
3
+ export declare class XmExpansionPanel extends LitElement {
4
4
  open: boolean;
5
5
  heading: string;
6
6
  disabled: boolean;
@@ -19,4 +19,3 @@ declare global {
19
19
  "xm-expansion-panel": XmExpansionPanel;
20
20
  }
21
21
  }
22
- export {};
@@ -172,3 +172,4 @@ __decorate([
172
172
  XmExpansionPanel = __decorate([
173
173
  customElement("xm-expansion-panel")
174
174
  ], XmExpansionPanel);
175
+ export { XmExpansionPanel };
@@ -1,7 +1,7 @@
1
1
  import { LitElement } from "lit";
2
2
  import type { TemplateResult } from "lit";
3
3
  type GridGap = "none" | "xs" | "sm" | "md" | "lg" | "xl";
4
- declare class XmGrid extends LitElement {
4
+ export declare class XmGrid extends LitElement {
5
5
  columns: number;
6
6
  gap: GridGap;
7
7
  render(): TemplateResult;
@@ -80,3 +80,4 @@ __decorate([
80
80
  XmGrid = __decorate([
81
81
  customElement("xm-grid")
82
82
  ], XmGrid);
83
+ export { XmGrid };
@@ -1,6 +1,6 @@
1
1
  import { LitElement } from "lit";
2
2
  import type { TemplateResult } from "lit";
3
- declare class XmKbd extends LitElement {
3
+ export declare class XmKbd extends LitElement {
4
4
  render(): TemplateResult;
5
5
  }
6
6
  declare global {
@@ -8,4 +8,3 @@ declare global {
8
8
  "xm-kbd": XmKbd;
9
9
  }
10
10
  }
11
- export {};
@@ -41,3 +41,4 @@ let XmKbd = class XmKbd extends LitElement {
41
41
  XmKbd = __decorate([
42
42
  customElement("xm-kbd")
43
43
  ], XmKbd);
44
+ export { XmKbd };
@@ -1,7 +1,7 @@
1
1
  import { LitElement } from "lit";
2
2
  import type { TemplateResult } from "lit";
3
3
  type Primitive = string | number;
4
- declare class XmList extends LitElement {
4
+ export declare class XmList extends LitElement {
5
5
  interactive: boolean;
6
6
  selectable: boolean;
7
7
  value: Primitive | null;
@@ -186,3 +186,4 @@ __decorate([
186
186
  XmList = __decorate([
187
187
  customElement("xm-list")
188
188
  ], XmList);
189
+ export { XmList };
@@ -1,6 +1,6 @@
1
1
  import { LitElement } from "lit";
2
2
  import type { TemplateResult } from "lit";
3
- declare class XmListItem extends LitElement {
3
+ export declare class XmListItem extends LitElement {
4
4
  value: string;
5
5
  selected: boolean;
6
6
  disabled: boolean;
@@ -17,4 +17,3 @@ declare global {
17
17
  "xm-list-item": XmListItem;
18
18
  }
19
19
  }
20
- export {};
@@ -125,3 +125,4 @@ __decorate([
125
125
  XmListItem = __decorate([
126
126
  customElement("xm-list-item")
127
127
  ], XmListItem);
128
+ export { XmListItem };
@@ -1,6 +1,6 @@
1
1
  import { LitElement } from "lit";
2
2
  import type { PropertyValues, TemplateResult } from "lit";
3
- declare class XmNavigationDrawer extends LitElement {
3
+ export declare class XmNavigationDrawer extends LitElement {
4
4
  static shadowRootOptions: ShadowRootInit;
5
5
  open: boolean;
6
6
  collapsed: boolean;
@@ -26,4 +26,3 @@ declare global {
26
26
  "xm-navigation-drawer": XmNavigationDrawer;
27
27
  }
28
28
  }
29
- export {};
@@ -216,3 +216,4 @@ __decorate([
216
216
  XmNavigationDrawer = __decorate([
217
217
  customElement("xm-navigation-drawer")
218
218
  ], XmNavigationDrawer);
219
+ export { XmNavigationDrawer };
@@ -4,7 +4,7 @@ type PaginationSize = "xs" | "sm" | "md" | "lg";
4
4
  export interface PaginationPageChangeDetail {
5
5
  page: number;
6
6
  }
7
- declare class XmPagination extends LitElement {
7
+ export declare class XmPagination extends LitElement {
8
8
  page: number;
9
9
  total: number;
10
10
  siblings: number;
@@ -182,3 +182,4 @@ __decorate([
182
182
  XmPagination = __decorate([
183
183
  customElement("xm-pagination")
184
184
  ], XmPagination);
185
+ export { XmPagination };
@@ -3,7 +3,7 @@ import type { TemplateResult } from "lit";
3
3
  declare class LightElement extends LitElement {
4
4
  createRenderRoot(): HTMLElement | DocumentFragment;
5
5
  }
6
- declare class XmIcon extends LightElement {
6
+ export declare class XmIcon extends LightElement {
7
7
  size: number;
8
8
  viewBox: string;
9
9
  strokeWidth: number;
@@ -11,7 +11,7 @@ declare class XmIcon extends LightElement {
11
11
  title: string;
12
12
  render(): TemplateResult;
13
13
  }
14
- declare class XmSpinner extends LightElement {
14
+ export declare class XmSpinner extends LightElement {
15
15
  size: number;
16
16
  className: string;
17
17
  render(): TemplateResult;
@@ -22,6 +22,18 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
22
22
  };
23
23
  import { LitElement, html, svg, nothing } from "lit";
24
24
  import { customElement, property } from "lit/decorators.js";
25
+ if (typeof document !== "undefined") {
26
+ for (const href of [
27
+ new URL("../primitives/index.css", import.meta.url).href,
28
+ ]) {
29
+ if (document.querySelector(`link[rel="stylesheet"][href="${href}"]`))
30
+ continue;
31
+ const link = document.createElement("link");
32
+ link.rel = "stylesheet";
33
+ link.href = href;
34
+ document.head.appendChild(link);
35
+ }
36
+ }
25
37
  class LightElement extends LitElement {
26
38
  createRenderRoot() {
27
39
  return this;
@@ -84,6 +96,7 @@ __decorate([
84
96
  XmIcon = __decorate([
85
97
  customElement("xm-icon")
86
98
  ], XmIcon);
99
+ export { XmIcon };
87
100
  /* ─────────────────────────────────────────────────────────────
88
101
  <xm-spinner> — circular indeterminate spinner. Used by Button
89
102
  for the loading state. Mirrors Spinner({ size }) in the JSX:
@@ -116,6 +129,7 @@ __decorate([
116
129
  XmSpinner = __decorate([
117
130
  customElement("xm-spinner")
118
131
  ], XmSpinner);
132
+ export { XmSpinner };
119
133
  const namedIcon = (tag, defaults, paths) => {
120
134
  class NamedIcon extends LightElement {
121
135
  constructor() {
@@ -1,7 +1,7 @@
1
1
  import { LitElement } from "lit";
2
2
  import type { TemplateResult } from "lit";
3
3
  type SidebarLayout = "row" | "stacked";
4
- declare class XmSidebarItem extends LitElement {
4
+ export declare class XmSidebarItem extends LitElement {
5
5
  title: string;
6
6
  layout: SidebarLayout;
7
7
  active: boolean;
@@ -26,6 +26,18 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
26
26
  };
27
27
  import { LitElement, html } from "lit";
28
28
  import { customElement, property } from "lit/decorators.js";
29
+ if (typeof document !== "undefined") {
30
+ for (const href of [
31
+ new URL("../sidebar-item/index.css", import.meta.url).href,
32
+ ]) {
33
+ if (document.querySelector(`link[rel="stylesheet"][href="${href}"]`))
34
+ continue;
35
+ const link = document.createElement("link");
36
+ link.rel = "stylesheet";
37
+ link.href = href;
38
+ document.head.appendChild(link);
39
+ }
40
+ }
29
41
  let XmSidebarItem = class XmSidebarItem extends LitElement {
30
42
  constructor() {
31
43
  super(...arguments);
@@ -103,3 +115,4 @@ __decorate([
103
115
  XmSidebarItem = __decorate([
104
116
  customElement("xm-sidebar-item")
105
117
  ], XmSidebarItem);
118
+ export { XmSidebarItem };
@@ -10,7 +10,7 @@ export interface SnackPreset {
10
10
  secondaryLabel: string;
11
11
  }
12
12
  export declare const SNACK_PRESETS: Record<SnackKind, SnackPreset>;
13
- declare class XmSnackbar extends LitElement {
13
+ export declare class XmSnackbar extends LitElement {
14
14
  kind: SnackKind;
15
15
  code: string;
16
16
  title: string;
@@ -30,4 +30,3 @@ declare global {
30
30
  "xm-snackbar": XmSnackbar;
31
31
  }
32
32
  }
33
- export {};
@@ -20,8 +20,8 @@
20
20
  snackbar-primary — primary action clicked (Retry / Open settings)
21
21
  snackbar-dismiss — secondary/dismiss action clicked
22
22
 
23
- Light DOM. components/snackbar/index.css and components/primitives/index.css
24
- must be loaded in the host page.
23
+ Light DOM. This module appends its stylesheets (snackbar + primitives) to
24
+ document.head on import.
25
25
 
26
26
  SNACK_PRESETS is also exported so previews can spread a preset onto
27
27
  the element via JS.
@@ -34,6 +34,19 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
34
34
  };
35
35
  import { LitElement, html, svg, nothing } from "lit";
36
36
  import { customElement, property } from "lit/decorators.js";
37
+ if (typeof document !== "undefined") {
38
+ for (const href of [
39
+ new URL("../snackbar/index.css", import.meta.url).href,
40
+ new URL("../primitives/index.css", import.meta.url).href,
41
+ ]) {
42
+ if (document.querySelector(`link[rel="stylesheet"][href="${href}"]`))
43
+ continue;
44
+ const link = document.createElement("link");
45
+ link.rel = "stylesheet";
46
+ link.href = href;
47
+ document.head.appendChild(link);
48
+ }
49
+ }
37
50
  export const SNACK_PRESETS = {
38
51
  auth: {
39
52
  kind: "auth",
@@ -193,3 +206,4 @@ __decorate([
193
206
  XmSnackbar = __decorate([
194
207
  customElement("xm-snackbar")
195
208
  ], XmSnackbar);
209
+ export { XmSnackbar };
@@ -4,7 +4,7 @@ type StackDirection = "vertical" | "horizontal";
4
4
  type StackGap = "none" | "xs" | "sm" | "md" | "lg" | "xl";
5
5
  type StackAlign = "start" | "center" | "end" | "stretch";
6
6
  type StackJustify = "start" | "center" | "end" | "between";
7
- declare class XmStack extends LitElement {
7
+ export declare class XmStack extends LitElement {
8
8
  direction: StackDirection;
9
9
  gap: StackGap;
10
10
  align: StackAlign;
@@ -101,3 +101,4 @@ __decorate([
101
101
  XmStack = __decorate([
102
102
  customElement("xm-stack")
103
103
  ], XmStack);
104
+ export { XmStack };
@@ -8,7 +8,7 @@ export interface TableColumn {
8
8
  muted?: boolean;
9
9
  }
10
10
  export type TableRow = Record<string, string | number>;
11
- declare class XmTable extends LitElement {
11
+ export declare class XmTable extends LitElement {
12
12
  columns: TableColumn[];
13
13
  rows: TableRow[];
14
14
  caption: string;
@@ -22,4 +22,3 @@ declare global {
22
22
  "xm-table": XmTable;
23
23
  }
24
24
  }
25
- export {};
@@ -132,3 +132,4 @@ __decorate([
132
132
  XmTable = __decorate([
133
133
  customElement("xm-table")
134
134
  ], XmTable);
135
+ export { XmTable };
@@ -4,20 +4,20 @@ type TabsSize = "xs" | "sm" | "md" | "lg";
4
4
  export interface TabsChangeDetail {
5
5
  value: string;
6
6
  }
7
- declare class XmTab extends LitElement {
7
+ export declare class XmTab extends LitElement {
8
8
  value: string;
9
9
  disabled: boolean;
10
10
  createRenderRoot(): HTMLElement | DocumentFragment;
11
11
  connectedCallback(): void;
12
12
  render(): TemplateResult;
13
13
  }
14
- declare class XmTabPanel extends LitElement {
14
+ export declare class XmTabPanel extends LitElement {
15
15
  value: string;
16
16
  createRenderRoot(): HTMLElement | DocumentFragment;
17
17
  connectedCallback(): void;
18
18
  render(): TemplateResult;
19
19
  }
20
- declare class XmTabs extends LitElement {
20
+ export declare class XmTabs extends LitElement {
21
21
  value: string;
22
22
  size: TabsSize;
23
23
  private _list;
@@ -85,6 +85,7 @@ __decorate([
85
85
  XmTab = __decorate([
86
86
  customElement("xm-tab")
87
87
  ], XmTab);
88
+ export { XmTab };
88
89
  /* ─────────────────────────────────────────────────────────────
89
90
  <xm-tab-panel> — one panel. Light DOM: the host is role="tabpanel".
90
91
  ─────────────────────────────────────────────────────────────*/
@@ -111,6 +112,7 @@ __decorate([
111
112
  XmTabPanel = __decorate([
112
113
  customElement("xm-tab-panel")
113
114
  ], XmTabPanel);
115
+ export { XmTabPanel };
114
116
  /* ─────────────────────────────────────────────────────────────
115
117
  <xm-tabs> — the tablist container.
116
118
  ─────────────────────────────────────────────────────────────*/
@@ -318,3 +320,4 @@ __decorate([
318
320
  XmTabs = __decorate([
319
321
  customElement("xm-tabs")
320
322
  ], XmTabs);
323
+ export { XmTabs };
@@ -19,7 +19,7 @@ export interface ValidationPreset extends ValidationError {
19
19
  }
20
20
  export declare const VALIDATION_TITLE: Record<ValidationCode, string>;
21
21
  export declare const VALIDATION_PRESETS: Record<ValidationCode, ValidationPreset>;
22
- declare class XmFileValidationBlock extends LitElement {
22
+ export declare class XmFileValidationBlock extends LitElement {
23
23
  state: ValidationState;
24
24
  file: ValidationFile | null;
25
25
  error: ValidationError | null;
@@ -42,4 +42,3 @@ declare global {
42
42
  "xm-file-validation-block": XmFileValidationBlock;
43
43
  }
44
44
  }
45
- export {};
@@ -20,7 +20,8 @@
20
20
  error-dismiss
21
21
  copy-path — detail: { path }
22
22
 
23
- Light DOM. components/validation/index.css must be loaded in the host page.
23
+ Light DOM. This module appends its stylesheets (validation + primitives) to
24
+ document.head on import.
24
25
 
25
26
  VALIDATION_PRESETS and VALIDATION_TITLE are also exported for reuse.
26
27
  */
@@ -32,6 +33,19 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
32
33
  };
33
34
  import { LitElement, html, svg, nothing } from "lit";
34
35
  import { customElement, property, state } from "lit/decorators.js";
36
+ if (typeof document !== "undefined") {
37
+ for (const href of [
38
+ new URL("../validation/index.css", import.meta.url).href,
39
+ new URL("../primitives/index.css", import.meta.url).href,
40
+ ]) {
41
+ if (document.querySelector(`link[rel="stylesheet"][href="${href}"]`))
42
+ continue;
43
+ const link = document.createElement("link");
44
+ link.rel = "stylesheet";
45
+ link.href = href;
46
+ document.head.appendChild(link);
47
+ }
48
+ }
35
49
  export const VALIDATION_TITLE = {
36
50
  size: "File too large",
37
51
  ext: "Wrong file type",
@@ -316,3 +330,4 @@ __decorate([
316
330
  XmFileValidationBlock = __decorate([
317
331
  customElement("xm-file-validation-block")
318
332
  ], XmFileValidationBlock);
333
+ export { XmFileValidationBlock };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xmesh/system-design",
3
- "version": "0.0.3",
3
+ "version": "0.0.4",
4
4
  "private": false,
5
5
  "publishConfig": {
6
6
  "access": "public"