@xmesh/system-design 0.0.3 → 0.0.5

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 (293) hide show
  1. package/README.md +2 -1
  2. package/custom-elements.json +18382 -0
  3. package/dist/lit/components/alert/index.d.ts +6 -1
  4. package/dist/lit/components/alert/index.js +9 -2
  5. package/dist/lit/components/alert/index.styles.js +215 -0
  6. package/dist/lit/components/app-bar/index.d.ts +2 -1
  7. package/dist/lit/components/app-bar/index.js +5 -2
  8. package/dist/lit/components/app-bar/index.styles.js +94 -0
  9. package/dist/lit/components/artifact/index.d.ts +6 -1
  10. package/dist/lit/components/artifact/index.js +20 -2
  11. package/dist/lit/components/artifact/index.styles.js +180 -0
  12. package/dist/lit/components/autocomplete/index.d.ts +5 -0
  13. package/dist/lit/components/autocomplete/index.js +11 -2
  14. package/dist/lit/components/autocomplete/index.styles.js +185 -0
  15. package/dist/lit/components/avatar/index.d.ts +2 -1
  16. package/dist/lit/components/avatar/index.js +5 -2
  17. package/dist/lit/components/avatar/index.styles.js +76 -0
  18. package/dist/lit/components/avatar-group/index.d.ts +2 -1
  19. package/dist/lit/components/avatar-group/index.js +5 -2
  20. package/dist/lit/components/avatar-group/index.styles.js +74 -0
  21. package/dist/lit/components/badge/index.d.ts +2 -2
  22. package/dist/lit/components/badge/index.js +5 -2
  23. package/dist/lit/components/badge/index.styles.js +86 -0
  24. package/dist/lit/components/brand-mark/index.d.ts +2 -2
  25. package/dist/lit/components/brand-mark/index.js +13 -0
  26. package/dist/lit/components/brand-mark/index.styles.js +123 -0
  27. package/dist/lit/components/breadcrumbs/index.d.ts +2 -1
  28. package/dist/lit/components/breadcrumbs/index.js +6 -4
  29. package/dist/lit/components/breadcrumbs/index.styles.js +105 -0
  30. package/dist/lit/components/bubble/index.d.ts +8 -4
  31. package/dist/lit/components/bubble/index.js +21 -0
  32. package/dist/lit/components/bubble/index.styles.js +196 -0
  33. package/dist/lit/components/button/index.d.ts +2 -1
  34. package/dist/lit/components/button/index.js +7 -13
  35. package/dist/lit/components/button/index.styles.js +356 -0
  36. package/dist/lit/components/card/index.d.ts +2 -1
  37. package/dist/lit/components/card/index.js +5 -2
  38. package/dist/lit/components/card/index.styles.js +113 -0
  39. package/dist/lit/components/chat/index.d.ts +7 -2
  40. package/dist/lit/components/chat/index.js +21 -2
  41. package/dist/lit/components/chat/index.styles.js +306 -0
  42. package/dist/lit/components/checkbox/index.d.ts +2 -2
  43. package/dist/lit/components/checkbox/index.js +8 -4
  44. package/dist/lit/components/checkbox/index.styles.js +140 -0
  45. package/dist/lit/components/chip/index.d.ts +6 -1
  46. package/dist/lit/components/chip/index.js +9 -2
  47. package/dist/lit/components/chip/index.styles.js +159 -0
  48. package/dist/lit/components/chip-group/index.d.ts +5 -1
  49. package/dist/lit/components/chip-group/index.js +8 -2
  50. package/dist/lit/components/chip-group/index.styles.js +33 -0
  51. package/dist/lit/components/code/index.d.ts +2 -2
  52. package/dist/lit/components/code/index.js +5 -3
  53. package/dist/lit/components/code/index.styles.js +56 -0
  54. package/dist/lit/components/composer/index.d.ts +7 -2
  55. package/dist/lit/components/composer/index.js +19 -0
  56. package/dist/lit/components/composer/index.styles.js +562 -0
  57. package/dist/lit/components/data-table/index.css +18 -0
  58. package/dist/lit/components/data-table/index.d.ts +30 -0
  59. package/dist/lit/components/data-table/index.js +120 -34
  60. package/dist/lit/components/data-table/index.styles.js +198 -0
  61. package/dist/lit/components/date-range/index.d.ts +4 -0
  62. package/dist/lit/components/date-range/index.js +7 -2
  63. package/dist/lit/components/date-range/index.styles.js +338 -0
  64. package/dist/lit/components/dialog/index.d.ts +4 -0
  65. package/dist/lit/components/dialog/index.js +7 -2
  66. package/dist/lit/components/dialog/index.styles.js +138 -0
  67. package/dist/lit/components/divider/index.d.ts +2 -1
  68. package/dist/lit/components/divider/index.js +5 -2
  69. package/dist/lit/components/divider/index.styles.js +41 -0
  70. package/dist/lit/components/empty-state/index.d.ts +1 -0
  71. package/dist/lit/components/empty-state/index.js +4 -2
  72. package/dist/lit/components/empty-state/index.styles.js +83 -0
  73. package/dist/lit/components/expansion-panel/index.d.ts +6 -2
  74. package/dist/lit/components/expansion-panel/index.js +9 -2
  75. package/dist/lit/components/expansion-panel/index.styles.js +134 -0
  76. package/dist/lit/components/field/index.d.ts +4 -0
  77. package/dist/lit/components/field/index.js +9 -4
  78. package/dist/lit/components/field/index.styles.js +237 -0
  79. package/dist/lit/components/file-input/index.d.ts +4 -0
  80. package/dist/lit/components/file-input/index.js +10 -4
  81. package/dist/lit/components/file-input/index.styles.js +271 -0
  82. package/dist/lit/components/form/index.d.ts +4 -0
  83. package/dist/lit/components/form/index.js +7 -2
  84. package/dist/lit/components/form/index.styles.js +43 -0
  85. package/dist/lit/components/grid/index.d.ts +2 -1
  86. package/dist/lit/components/grid/index.js +5 -2
  87. package/dist/lit/components/grid/index.styles.js +67 -0
  88. package/dist/lit/components/kbd/index.d.ts +2 -2
  89. package/dist/lit/components/kbd/index.js +5 -2
  90. package/dist/lit/components/kbd/index.styles.js +49 -0
  91. package/dist/lit/components/list/index.d.ts +5 -1
  92. package/dist/lit/components/list/index.js +8 -2
  93. package/dist/lit/components/list/index.styles.js +29 -0
  94. package/dist/lit/components/list-item/index.d.ts +2 -2
  95. package/dist/lit/components/list-item/index.js +5 -2
  96. package/dist/lit/components/list-item/index.styles.js +133 -0
  97. package/dist/lit/components/menu/index.d.ts +8 -0
  98. package/dist/lit/components/menu/index.js +11 -3
  99. package/dist/lit/components/menu/index.styles.js +108 -0
  100. package/dist/lit/components/multi-select/index.css +156 -0
  101. package/dist/lit/components/multi-select/index.d.ts +70 -0
  102. package/dist/lit/components/multi-select/index.js +497 -0
  103. package/dist/lit/components/multi-select/index.styles.js +170 -0
  104. package/dist/lit/components/navigation-drawer/index.d.ts +5 -2
  105. package/dist/lit/components/navigation-drawer/index.js +8 -2
  106. package/dist/lit/components/navigation-drawer/index.styles.js +128 -0
  107. package/dist/lit/components/overlay/index.d.ts +5 -0
  108. package/dist/lit/components/overlay/index.js +8 -2
  109. package/dist/lit/components/overlay/index.styles.js +185 -0
  110. package/dist/lit/components/pagination/index.d.ts +18 -1
  111. package/dist/lit/components/pagination/index.js +54 -8
  112. package/dist/lit/components/pagination/index.styles.js +116 -0
  113. package/dist/lit/components/popover/index.d.ts +5 -0
  114. package/dist/lit/components/popover/index.js +8 -2
  115. package/dist/lit/components/popover/index.styles.js +48 -0
  116. package/dist/lit/components/primitives/index.d.ts +2 -2
  117. package/dist/lit/components/primitives/index.js +13 -0
  118. package/dist/lit/components/primitives/index.styles.js +518 -0
  119. package/dist/lit/components/progress/index.d.ts +1 -0
  120. package/dist/lit/components/progress/index.js +4 -2
  121. package/dist/lit/components/progress/index.styles.js +157 -0
  122. package/dist/lit/components/radio-group/index.d.ts +5 -0
  123. package/dist/lit/components/radio-group/index.js +10 -6
  124. package/dist/lit/components/radio-group/index.styles.js +192 -0
  125. package/dist/lit/components/select/index.d.ts +4 -0
  126. package/dist/lit/components/select/index.js +10 -2
  127. package/dist/lit/components/select/index.styles.js +165 -0
  128. package/dist/lit/components/sidebar-item/index.d.ts +1 -1
  129. package/dist/lit/components/sidebar-item/index.js +12 -0
  130. package/dist/lit/components/sidebar-item/index.styles.js +147 -0
  131. package/dist/lit/components/skeleton/index.d.ts +1 -0
  132. package/dist/lit/components/skeleton/index.js +4 -2
  133. package/dist/lit/components/skeleton/index.styles.js +95 -0
  134. package/dist/lit/components/slider/index.d.ts +5 -0
  135. package/dist/lit/components/slider/index.js +11 -4
  136. package/dist/lit/components/slider/index.styles.js +185 -0
  137. package/dist/lit/components/snackbar/index.d.ts +5 -2
  138. package/dist/lit/components/snackbar/index.js +20 -2
  139. package/dist/lit/components/snackbar/index.styles.js +293 -0
  140. package/dist/lit/components/stack/index.d.ts +2 -1
  141. package/dist/lit/components/stack/index.js +5 -2
  142. package/dist/lit/components/stack/index.styles.js +55 -0
  143. package/dist/lit/components/switch/index.d.ts +1 -0
  144. package/dist/lit/components/switch/index.js +7 -4
  145. package/dist/lit/components/switch/index.styles.js +140 -0
  146. package/dist/lit/components/table/index.d.ts +2 -2
  147. package/dist/lit/components/table/index.js +5 -2
  148. package/dist/lit/components/table/index.styles.js +99 -0
  149. package/dist/lit/components/tabs/index.d.ts +7 -3
  150. package/dist/lit/components/tabs/index.js +11 -4
  151. package/dist/lit/components/tabs/index.styles.js +130 -0
  152. package/dist/lit/components/text-field/index.d.ts +1 -0
  153. package/dist/lit/components/text-field/index.js +7 -2
  154. package/dist/lit/components/text-field/index.styles.js +104 -0
  155. package/dist/lit/components/textarea/index.d.ts +1 -0
  156. package/dist/lit/components/textarea/index.js +7 -2
  157. package/dist/lit/components/textarea/index.styles.js +69 -0
  158. package/dist/lit/components/tooltip/index.d.ts +1 -0
  159. package/dist/lit/components/tooltip/index.js +4 -2
  160. package/dist/lit/components/tooltip/index.styles.js +51 -0
  161. package/dist/lit/components/validation/index.d.ts +7 -2
  162. package/dist/lit/components/validation/index.js +21 -1
  163. package/dist/lit/components/validation/index.styles.js +400 -0
  164. package/dist/lit/index.d.ts +1 -0
  165. package/dist/lit/index.js +1 -0
  166. package/dist/react/XmAlert.d.ts +99 -0
  167. package/dist/react/XmAlert.js +45 -0
  168. package/dist/react/XmAppBar.d.ts +59 -0
  169. package/dist/react/XmAppBar.js +34 -0
  170. package/dist/react/XmArtifact.d.ts +113 -0
  171. package/dist/react/XmArtifact.js +45 -0
  172. package/dist/react/XmArtifactChip.d.ts +56 -0
  173. package/dist/react/XmArtifactChip.js +32 -0
  174. package/dist/react/XmAutocomplete.d.ts +153 -0
  175. package/dist/react/XmAutocomplete.js +68 -0
  176. package/dist/react/XmAvatar.d.ts +71 -0
  177. package/dist/react/XmAvatar.js +40 -0
  178. package/dist/react/XmAvatarGroup.d.ts +59 -0
  179. package/dist/react/XmAvatarGroup.js +34 -0
  180. package/dist/react/XmBadge.d.ts +67 -0
  181. package/dist/react/XmBadge.js +38 -0
  182. package/dist/react/XmBrandGlyph.d.ts +46 -0
  183. package/dist/react/XmBrandGlyph.js +24 -0
  184. package/dist/react/XmBrandMark.d.ts +71 -0
  185. package/dist/react/XmBrandMark.js +40 -0
  186. package/dist/react/XmBreadcrumbs.d.ts +56 -0
  187. package/dist/react/XmBreadcrumbs.js +32 -0
  188. package/dist/react/XmBubble.d.ts +69 -0
  189. package/dist/react/XmBubble.js +38 -0
  190. package/dist/react/XmBubbleActions.d.ts +59 -0
  191. package/dist/react/XmBubbleActions.js +34 -0
  192. package/dist/react/XmBubbleGroup.d.ts +82 -0
  193. package/dist/react/XmBubbleGroup.js +36 -0
  194. package/dist/react/XmButton.d.ts +89 -0
  195. package/dist/react/XmButton.js +48 -0
  196. package/dist/react/XmCard.d.ts +59 -0
  197. package/dist/react/XmCard.js +34 -0
  198. package/dist/react/XmChatShell.d.ts +110 -0
  199. package/dist/react/XmChatShell.js +44 -0
  200. package/dist/react/XmCheckbox.d.ts +145 -0
  201. package/dist/react/XmCheckbox.js +58 -0
  202. package/dist/react/XmChip.d.ts +99 -0
  203. package/dist/react/XmChip.js +46 -0
  204. package/dist/react/XmChipGroup.d.ts +79 -0
  205. package/dist/react/XmChipGroup.js +35 -0
  206. package/dist/react/XmCode.d.ts +55 -0
  207. package/dist/react/XmCode.js +32 -0
  208. package/dist/react/XmComposer.d.ts +123 -0
  209. package/dist/react/XmComposer.js +52 -0
  210. package/dist/react/XmDataTable.d.ts +125 -0
  211. package/dist/react/XmDataTable.js +65 -0
  212. package/dist/react/XmDateRange.d.ts +93 -0
  213. package/dist/react/XmDateRange.js +41 -0
  214. package/dist/react/XmDialog.d.ts +87 -0
  215. package/dist/react/XmDialog.js +40 -0
  216. package/dist/react/XmDivider.d.ts +55 -0
  217. package/dist/react/XmDivider.js +32 -0
  218. package/dist/react/XmEmptyState.d.ts +61 -0
  219. package/dist/react/XmEmptyState.js +34 -0
  220. package/dist/react/XmExpansionPanel.d.ts +101 -0
  221. package/dist/react/XmExpansionPanel.js +48 -0
  222. package/dist/react/XmFileInput.d.ts +151 -0
  223. package/dist/react/XmFileInput.js +68 -0
  224. package/dist/react/XmFileValidationBlock.d.ts +111 -0
  225. package/dist/react/XmFileValidationBlock.js +45 -0
  226. package/dist/react/XmForm.d.ts +91 -0
  227. package/dist/react/XmForm.js +37 -0
  228. package/dist/react/XmGrid.d.ts +59 -0
  229. package/dist/react/XmGrid.js +34 -0
  230. package/dist/react/XmKbd.d.ts +46 -0
  231. package/dist/react/XmKbd.js +24 -0
  232. package/dist/react/XmList.d.ts +83 -0
  233. package/dist/react/XmList.js +37 -0
  234. package/dist/react/XmListItem.d.ts +67 -0
  235. package/dist/react/XmListItem.js +38 -0
  236. package/dist/react/XmMenu.d.ts +98 -0
  237. package/dist/react/XmMenu.js +42 -0
  238. package/dist/react/XmMenuItem.d.ts +63 -0
  239. package/dist/react/XmMenuItem.js +36 -0
  240. package/dist/react/XmMultiSelect.d.ts +161 -0
  241. package/dist/react/XmMultiSelect.js +72 -0
  242. package/dist/react/XmNavigationDrawer.d.ts +93 -0
  243. package/dist/react/XmNavigationDrawer.js +41 -0
  244. package/dist/react/XmOverlay.d.ts +120 -0
  245. package/dist/react/XmOverlay.js +54 -0
  246. package/dist/react/XmPagination.d.ts +117 -0
  247. package/dist/react/XmPagination.js +57 -0
  248. package/dist/react/XmPopover.d.ts +90 -0
  249. package/dist/react/XmPopover.js +40 -0
  250. package/dist/react/XmProgress.d.ts +75 -0
  251. package/dist/react/XmProgress.js +42 -0
  252. package/dist/react/XmRadio.d.ts +88 -0
  253. package/dist/react/XmRadio.js +41 -0
  254. package/dist/react/XmRadioGroup.d.ts +139 -0
  255. package/dist/react/XmRadioGroup.js +56 -0
  256. package/dist/react/XmSelect.d.ts +152 -0
  257. package/dist/react/XmSelect.js +68 -0
  258. package/dist/react/XmSidebarItem.d.ts +75 -0
  259. package/dist/react/XmSidebarItem.js +42 -0
  260. package/dist/react/XmSkeleton.d.ts +71 -0
  261. package/dist/react/XmSkeleton.js +40 -0
  262. package/dist/react/XmSlider.d.ts +160 -0
  263. package/dist/react/XmSlider.js +74 -0
  264. package/dist/react/XmSnackbar.d.ts +110 -0
  265. package/dist/react/XmSnackbar.js +49 -0
  266. package/dist/react/XmStack.d.ts +71 -0
  267. package/dist/react/XmStack.js +40 -0
  268. package/dist/react/XmSwitch.d.ts +136 -0
  269. package/dist/react/XmSwitch.js +56 -0
  270. package/dist/react/XmTab.d.ts +79 -0
  271. package/dist/react/XmTab.js +37 -0
  272. package/dist/react/XmTabPanel.d.ts +55 -0
  273. package/dist/react/XmTabPanel.js +32 -0
  274. package/dist/react/XmTable.d.ts +57 -0
  275. package/dist/react/XmTable.js +32 -0
  276. package/dist/react/XmTabs.d.ts +82 -0
  277. package/dist/react/XmTabs.js +37 -0
  278. package/dist/react/XmTextField.d.ts +147 -0
  279. package/dist/react/XmTextField.js +60 -0
  280. package/dist/react/XmTextarea.d.ts +155 -0
  281. package/dist/react/XmTextarea.js +64 -0
  282. package/dist/react/XmTooltip.d.ts +67 -0
  283. package/dist/react/XmTooltip.js +38 -0
  284. package/dist/react/index.d.ts +59 -0
  285. package/dist/react/index.js +59 -0
  286. package/dist/react/react-utils.js +67 -0
  287. package/package.json +37 -9
  288. package/styles/_base-typography.css +86 -0
  289. package/styles/_primitives.css +54 -0
  290. package/styles/_reset.css +58 -0
  291. package/styles/base.css +23 -0
  292. package/vscode.css-custom-data.json +6 -0
  293. package/vscode.html-custom-data.json +979 -0
@@ -0,0 +1,338 @@
1
+ // GENERATED by scripts/gen-styles.mjs — do not edit. Source: lit/components/date-range/index.css
2
+ // SSR-safe: constructable stylesheets need the DOM, so in a non-DOM context
3
+ // (Node/SSR import) this exports [] instead of throwing. The CSS self-declares
4
+ // the @layer order so the override contract holds even without ./base (AD-2).
5
+ let sheets = [];
6
+ if (typeof CSSStyleSheet !== "undefined") {
7
+ const sheet = new CSSStyleSheet();
8
+ sheet.replaceSync(`@layer reset, base, tokens, components, utilities;
9
+ @layer components {
10
+ /* ============================================
11
+ <xm-date-range /> — preset rail + calendar range picker.
12
+
13
+ A field-styled trigger opens an anchored popover (role="dialog") holding a
14
+ vertical preset rail and a calendar grid. The popover surface chrome
15
+ (inverse-surface fill, hairline border, level3 elevation, edge-flip, motion)
16
+ is owned by the composed <xm-overlay> in the \`menu\` tier; this file styles the
17
+ trigger and the panel that rides inside the overlay body. Inputs are the
18
+ card tier, so all ink is inverse-on-surface (POLICIES 7a).
19
+
20
+ Selected endpoints fill with --md-sys-color-primary-container (circular,
21
+ corner-full). The in-range band is a softer translucent coral derived from
22
+ that same container via color-mix (token-only ingredients) so the run between
23
+ the two endpoints reads as one continuous selection. The active preset is a
24
+ solid --md-sys-color-primary pill. Severity is never hue here — no error
25
+ tokens; the invalid-range message is icon + copy (AD-11).
26
+
27
+ BEM block: \`date-range\`. Registered in scripts/check-bem.sh STRICT_BLOCKS.
28
+ Elements: __trigger __icon __value __panel __layout __rail __preset
29
+ __calendar __cal-head __month __nav __grid __weekday __cell __day __sr-only
30
+ __alert __alert-icon __footer __btn.
31
+ Modifiers: __trigger--open · __value--placeholder · __preset--active ·
32
+ __cell--in-range/--start/--end · __day--today/--selected/--muted ·
33
+ __btn--apply.
34
+ ============================================ */
35
+
36
+ /* ---------- Trigger ---------- */
37
+ .date-range__trigger {
38
+ appearance: none;
39
+ display: inline-flex;
40
+ align-items: center;
41
+ gap: var(--s-2);
42
+ min-width: 220px;
43
+ padding: var(--s-2) var(--s-3);
44
+ background: var(--md-sys-color-inverse-surface);
45
+ border: 1px solid var(--md-sys-color-outline-variant);
46
+ border-radius: var(--md-sys-shape-corner-button);
47
+ color: var(--md-sys-color-inverse-on-surface);
48
+ cursor: pointer;
49
+ text-align: start;
50
+ font:
51
+ var(--md-sys-typescale-body-small-weight)
52
+ var(--md-sys-typescale-body-small-size) /
53
+ var(--md-sys-typescale-body-small-line-height)
54
+ var(--md-sys-typescale-body-small-font);
55
+ transition:
56
+ border-color var(--md-sys-motion-duration-short3) var(--md-sys-motion-easing-standard),
57
+ box-shadow var(--md-sys-motion-duration-short3) var(--md-sys-motion-easing-standard);
58
+ }
59
+ .date-range__trigger:hover { border-color: var(--md-sys-color-outline); }
60
+ .date-range__trigger:focus { outline: none; }
61
+ .date-range__trigger:focus-visible,
62
+ .date-range__trigger--open {
63
+ border-color: var(--md-sys-color-primary);
64
+ box-shadow: var(--xm-state-focus-ring);
65
+ }
66
+
67
+ .date-range__icon {
68
+ display: inline-flex;
69
+ flex-shrink: 0;
70
+ color: var(--xm-color-inverse-on-surface-muted);
71
+ }
72
+
73
+ .date-range__value {
74
+ flex: 1;
75
+ min-width: 0;
76
+ overflow: hidden;
77
+ text-overflow: ellipsis;
78
+ white-space: nowrap;
79
+ }
80
+ .date-range__value--placeholder {
81
+ color: var(--xm-color-inverse-on-surface-muted);
82
+ }
83
+
84
+ /* ---------- Panel (rides inside overlay body; no chrome of its own) ---------- */
85
+ .date-range__panel {
86
+ display: flex;
87
+ flex-direction: column;
88
+ outline: none;
89
+ }
90
+
91
+ .date-range__layout {
92
+ display: flex;
93
+ gap: var(--s-4);
94
+ }
95
+
96
+ /* ---------- Preset rail ---------- */
97
+ .date-range__rail {
98
+ display: flex;
99
+ flex-direction: column;
100
+ gap: var(--s-1);
101
+ min-width: 132px;
102
+ padding-inline-end: var(--s-3);
103
+ border-inline-end: 1px solid var(--md-sys-color-outline-variant);
104
+ }
105
+
106
+ .date-range__preset {
107
+ appearance: none;
108
+ text-align: start;
109
+ padding: var(--s-2) var(--s-3);
110
+ background: transparent;
111
+ border: 1px solid transparent;
112
+ border-radius: var(--md-sys-shape-corner-full);
113
+ color: var(--md-sys-color-inverse-on-surface);
114
+ cursor: pointer;
115
+ font:
116
+ var(--md-sys-typescale-label-large-weight)
117
+ var(--md-sys-typescale-label-large-size) /
118
+ var(--md-sys-typescale-label-large-line-height)
119
+ var(--md-sys-typescale-label-large-font);
120
+ transition: background var(--md-sys-motion-duration-short3) var(--md-sys-motion-easing-standard);
121
+ }
122
+ .date-range__preset:hover {
123
+ background: color-mix(in oklab, var(--md-sys-color-inverse-on-surface) var(--md-sys-state-hover-state-layer-opacity), transparent);
124
+ }
125
+ .date-range__preset:focus { outline: none; }
126
+ .date-range__preset:focus-visible { box-shadow: var(--xm-state-focus-ring); }
127
+ .date-range__preset--active {
128
+ background: var(--md-sys-color-primary);
129
+ color: var(--md-sys-color-on-primary);
130
+ }
131
+ .date-range__preset--active:hover { background: var(--md-sys-color-primary); }
132
+
133
+ /* ---------- Calendar ---------- */
134
+ .date-range__calendar {
135
+ display: flex;
136
+ flex-direction: column;
137
+ gap: var(--s-2);
138
+ }
139
+
140
+ .date-range__cal-head {
141
+ display: flex;
142
+ align-items: center;
143
+ justify-content: space-between;
144
+ gap: var(--s-2);
145
+ }
146
+
147
+ .date-range__month {
148
+ flex: 1;
149
+ text-align: center;
150
+ color: var(--md-sys-color-inverse-on-surface);
151
+ font:
152
+ var(--md-sys-typescale-title-small-weight)
153
+ var(--md-sys-typescale-title-small-size) /
154
+ var(--md-sys-typescale-title-small-line-height)
155
+ var(--md-sys-typescale-title-small-font);
156
+ }
157
+
158
+ .date-range__nav {
159
+ appearance: none;
160
+ display: inline-flex;
161
+ align-items: center;
162
+ justify-content: center;
163
+ width: 28px;
164
+ height: 28px;
165
+ padding: 0;
166
+ background: none;
167
+ border: none;
168
+ border-radius: var(--md-sys-shape-corner-extra-small);
169
+ color: var(--xm-color-inverse-on-surface-muted);
170
+ cursor: pointer;
171
+ transition: color var(--md-sys-motion-duration-short3) var(--md-sys-motion-easing-standard);
172
+ }
173
+ .date-range__nav:hover { color: var(--md-sys-color-inverse-on-surface); }
174
+ .date-range__nav:focus { outline: none; }
175
+ .date-range__nav:focus-visible { box-shadow: var(--xm-state-focus-ring); }
176
+
177
+ .date-range__grid {
178
+ display: grid;
179
+ grid-template-columns: repeat(7, 36px);
180
+ gap: 0;
181
+ }
182
+
183
+ /* Row wrappers carry role="row" for the ARIA grid; display:contents keeps the
184
+ columnheaders/gridcells as direct items of the 7-column grid so the visual
185
+ layout is unchanged. */
186
+ .date-range__weekdays,
187
+ .date-range__week {
188
+ display: contents;
189
+ }
190
+
191
+ .date-range__weekday {
192
+ display: inline-flex;
193
+ align-items: center;
194
+ justify-content: center;
195
+ height: 28px;
196
+ color: var(--xm-color-inverse-on-surface-muted);
197
+ font:
198
+ var(--md-sys-typescale-label-medium-weight)
199
+ var(--md-sys-typescale-label-medium-size) /
200
+ var(--md-sys-typescale-label-medium-line-height)
201
+ var(--md-sys-typescale-label-medium-font);
202
+ }
203
+
204
+ /* The cell carries the in-range band so it spans the full 36px column with no
205
+ inter-cell gap — the band reads continuous across a week. */
206
+ .date-range__cell {
207
+ display: inline-flex;
208
+ align-items: center;
209
+ justify-content: center;
210
+ width: 36px;
211
+ height: 36px;
212
+ }
213
+
214
+ .date-range__cell--in-range {
215
+ background: color-mix(in oklab, var(--md-sys-color-primary-container) 55%, transparent);
216
+ }
217
+ /* Round the band ends at the endpoints so the run has soft caps. */
218
+ .date-range__cell--start {
219
+ background: color-mix(in oklab, var(--md-sys-color-primary-container) 55%, transparent);
220
+ border-start-start-radius: var(--md-sys-shape-corner-full);
221
+ border-end-start-radius: var(--md-sys-shape-corner-full);
222
+ }
223
+ .date-range__cell--end {
224
+ background: color-mix(in oklab, var(--md-sys-color-primary-container) 55%, transparent);
225
+ border-start-end-radius: var(--md-sys-shape-corner-full);
226
+ border-end-end-radius: var(--md-sys-shape-corner-full);
227
+ }
228
+
229
+ .date-range__day {
230
+ appearance: none;
231
+ display: inline-flex;
232
+ align-items: center;
233
+ justify-content: center;
234
+ width: 32px;
235
+ height: 32px;
236
+ padding: 0;
237
+ background: transparent;
238
+ border: 1px solid transparent;
239
+ border-radius: var(--md-sys-shape-corner-full);
240
+ color: var(--md-sys-color-inverse-on-surface);
241
+ cursor: pointer;
242
+ font:
243
+ var(--md-sys-typescale-body-small-weight)
244
+ var(--md-sys-typescale-body-small-size) /
245
+ var(--md-sys-typescale-body-small-line-height)
246
+ var(--md-sys-typescale-body-small-font);
247
+ transition: background var(--md-sys-motion-duration-short3) var(--md-sys-motion-easing-standard);
248
+ }
249
+ .date-range__day:hover {
250
+ background: color-mix(in oklab, var(--md-sys-color-inverse-on-surface) var(--md-sys-state-hover-state-layer-opacity), transparent);
251
+ }
252
+ .date-range__day:focus { outline: none; }
253
+ .date-range__day:focus-visible { box-shadow: var(--xm-state-focus-ring); }
254
+
255
+ .date-range__day--muted { color: var(--xm-color-inverse-on-surface-muted); }
256
+
257
+ .date-range__day--today { border-color: var(--md-sys-color-primary); }
258
+
259
+ .date-range__day--selected {
260
+ background: var(--md-sys-color-primary-container);
261
+ color: var(--md-sys-color-on-primary-container);
262
+ }
263
+ .date-range__day--selected:hover { background: var(--md-sys-color-primary-container); }
264
+
265
+ /* ---------- Screen-reader-only live region + invalid alert ---------- */
266
+ .date-range__sr-only {
267
+ position: absolute;
268
+ width: 1px;
269
+ height: 1px;
270
+ overflow: hidden;
271
+ clip: rect(0 0 0 0);
272
+ white-space: nowrap;
273
+ }
274
+
275
+ .date-range__alert {
276
+ display: flex;
277
+ align-items: center;
278
+ gap: var(--s-2);
279
+ margin-top: var(--s-2);
280
+ color: var(--md-sys-color-inverse-on-surface);
281
+ font:
282
+ var(--md-sys-typescale-label-medium-weight)
283
+ var(--md-sys-typescale-label-medium-size) /
284
+ var(--md-sys-typescale-label-medium-line-height)
285
+ var(--md-sys-typescale-label-medium-font);
286
+ }
287
+ .date-range__alert-icon {
288
+ display: inline-flex;
289
+ flex-shrink: 0;
290
+ color: var(--md-sys-color-primary);
291
+ }
292
+
293
+ /* ---------- Footer ---------- */
294
+ .date-range__footer {
295
+ display: flex;
296
+ justify-content: flex-end;
297
+ gap: var(--s-2);
298
+ margin-top: var(--s-3);
299
+ padding-top: var(--s-3);
300
+ border-top: 1px solid var(--md-sys-color-outline-variant);
301
+ }
302
+
303
+ .date-range__btn {
304
+ appearance: none;
305
+ padding: var(--s-2) var(--s-4);
306
+ border-radius: var(--md-sys-shape-corner-button);
307
+ border: 1px solid var(--md-sys-color-outline-variant);
308
+ background: transparent;
309
+ color: var(--md-sys-color-inverse-on-surface);
310
+ cursor: pointer;
311
+ font:
312
+ var(--md-sys-typescale-label-large-weight)
313
+ var(--md-sys-typescale-label-large-size) /
314
+ var(--md-sys-typescale-label-large-line-height)
315
+ var(--md-sys-typescale-label-large-font);
316
+ transition: background var(--md-sys-motion-duration-short3) var(--md-sys-motion-easing-standard);
317
+ }
318
+ .date-range__btn:hover {
319
+ background: color-mix(in oklab, var(--md-sys-color-inverse-on-surface) var(--md-sys-state-hover-state-layer-opacity), transparent);
320
+ }
321
+ .date-range__btn:focus { outline: none; }
322
+ .date-range__btn:focus-visible { box-shadow: var(--xm-state-focus-ring); }
323
+
324
+ .date-range__btn--apply {
325
+ background: var(--md-sys-color-primary);
326
+ border-color: transparent;
327
+ color: var(--md-sys-color-on-primary);
328
+ }
329
+ .date-range__btn--apply:hover { background: var(--md-sys-color-primary); }
330
+ .date-range__btn--apply[aria-disabled="true"] {
331
+ opacity: 0.45;
332
+ cursor: not-allowed;
333
+ }
334
+
335
+ }`);
336
+ sheets = [sheet];
337
+ }
338
+ export default sheets;
@@ -1,6 +1,10 @@
1
1
  import { LitElement } from "lit";
2
2
  import type { TemplateResult } from "lit";
3
+ /**
4
+ * @fires close - Fired when the element requests to close.
5
+ */
3
6
  export declare class XmDialog extends LitElement {
7
+ static styles: CSSStyleSheet[];
4
8
  open: boolean;
5
9
  noScrimClose: boolean;
6
10
  static: boolean;
@@ -48,7 +48,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
48
48
  };
49
49
  import { LitElement, html, svg, nothing } from "lit";
50
50
  import { customElement, property, query, state } from "lit/decorators.js";
51
- const DIALOG_CSS = new URL("../dialog/index.css", import.meta.url).href;
51
+ import dialogSheets from "./index.styles.js";
52
52
  let dialogSeq = 0;
53
53
  const CLOSE_ICON = () => svg `
54
54
  <svg width="18" height="18" viewBox="0 0 24 24" fill="none"
@@ -57,6 +57,9 @@ const CLOSE_ICON = () => svg `
57
57
  <path d="M6 6l12 12M18 6L6 18" />
58
58
  </svg>
59
59
  `;
60
+ /**
61
+ * @fires close - Fired when the element requests to close.
62
+ */
60
63
  let XmDialog = class XmDialog extends LitElement {
61
64
  constructor() {
62
65
  super(...arguments);
@@ -115,10 +118,12 @@ let XmDialog = class XmDialog extends LitElement {
115
118
  this._hasAction = slot.assignedElements().length > 0;
116
119
  };
117
120
  }
121
+ // Adopted from the build-generated sheets (scripts/gen-styles.mjs) — no
122
+ // runtime URL fetch (ADR 0012). Cascade order preserved from the old <link>s.
123
+ static { this.styles = [...dialogSheets]; }
118
124
  render() {
119
125
  const cls = `dialog${this.static ? " dialog--static" : ""}`;
120
126
  return html `
121
- <link rel="stylesheet" href="${DIALOG_CSS}" />
122
127
  <style>
123
128
  :host { display: contents; }
124
129
  </style>
@@ -0,0 +1,138 @@
1
+ // GENERATED by scripts/gen-styles.mjs — do not edit. Source: lit/components/dialog/index.css
2
+ // SSR-safe: constructable stylesheets need the DOM, so in a non-DOM context
3
+ // (Node/SSR import) this exports [] instead of throwing. The CSS self-declares
4
+ // the @layer order so the override contract holds even without ./base (AD-2).
5
+ let sheets = [];
6
+ if (typeof CSSStyleSheet !== "undefined") {
7
+ const sheet = new CSSStyleSheet();
8
+ sheet.replaceSync(`@layer reset, base, tokens, components, utilities;
9
+ @layer components {
10
+ /* ============================================
11
+ Dialog — a centered modal panel.
12
+
13
+ The panel chrome (inverse-surface fill, inverse-on-surface ink, hairline
14
+ border, corner-large radius, level5 elevation, the scrim ::backdrop, and the
15
+ centered modal positioning) is owned by the composed <xm-overlay> in the
16
+ \`dialog\` tier (modal mode). This file styles the panel's internal layout:
17
+ the header row + close control, the body, and the singular action row.
18
+
19
+ All ink is inverse-on-surface (AD-13) — the card-stack ink, matching the
20
+ theme-following panel surface (ADR 0006). Scrim is a flat alpha on
21
+ --md-sys-color-scrim (owned by the overlay); NO gradient (the snackbar scrim
22
+ is the only sanctioned one).
23
+
24
+ Entry/exit is opacity + a small translateY at short4 standard — no scale-in
25
+ reveal, no spring. The overlay owns the fade; this adds the lift.
26
+
27
+ BEM block: \`dialog\`. Registered in scripts/check-bem.sh STRICT_BLOCKS.
28
+ Elements: __head, __header, __close, __body, __actions. Modifier: --static.
29
+ ============================================ */
30
+
31
+ .dialog {
32
+ display: flex;
33
+ flex-direction: column;
34
+ gap: var(--s-4);
35
+ min-width: 0;
36
+ color: var(--md-sys-color-inverse-on-surface);
37
+ padding: var(--s-5);
38
+ animation: dialog-in var(--md-sys-motion-duration-short4)
39
+ var(--md-sys-motion-easing-standard) both;
40
+ }
41
+ .dialog--static {
42
+ animation: none;
43
+ }
44
+
45
+ @keyframes dialog-in {
46
+ from {
47
+ opacity: 0;
48
+ transform: translateY(8px);
49
+ }
50
+ to {
51
+ opacity: 1;
52
+ transform: translateY(0);
53
+ }
54
+ }
55
+
56
+ .dialog__head {
57
+ display: flex;
58
+ align-items: flex-start;
59
+ justify-content: space-between;
60
+ gap: var(--s-3);
61
+ }
62
+ .dialog__head.is-empty {
63
+ /* No header text — keep the close control but drop the title row height. */
64
+ justify-content: flex-end;
65
+ }
66
+
67
+ .dialog__header {
68
+ font-family: var(--md-sys-typescale-title-large-font);
69
+ font-size: var(--md-sys-typescale-title-large-size);
70
+ line-height: var(--md-sys-typescale-title-large-line-height);
71
+ font-weight: var(--md-sys-typescale-title-large-weight);
72
+ letter-spacing: var(--md-sys-typescale-title-large-tracking);
73
+ color: var(--md-sys-color-inverse-on-surface);
74
+ text-wrap: pretty;
75
+ }
76
+
77
+ .dialog__close {
78
+ appearance: none;
79
+ border: none;
80
+ background: transparent;
81
+ color: color-mix(
82
+ in oklch,
83
+ var(--md-sys-color-inverse-on-surface) 70%,
84
+ transparent
85
+ );
86
+ width: 32px;
87
+ height: 32px;
88
+ border-radius: var(--md-sys-shape-corner-small);
89
+ cursor: pointer;
90
+ display: inline-flex;
91
+ align-items: center;
92
+ justify-content: center;
93
+ flex-shrink: 0;
94
+ margin: calc(-1 * var(--s-1)) calc(-1 * var(--s-1)) 0 0;
95
+ transition: background var(--md-sys-motion-duration-short3)
96
+ var(--md-sys-motion-easing-standard);
97
+ }
98
+ .dialog__close:hover {
99
+ background: color-mix(
100
+ in oklch,
101
+ var(--md-sys-color-inverse-on-surface) 10%,
102
+ transparent
103
+ );
104
+ color: var(--md-sys-color-inverse-on-surface);
105
+ }
106
+ .dialog__close:focus-visible {
107
+ outline: none;
108
+ box-shadow: var(--xm-state-focus-ring);
109
+ }
110
+
111
+ .dialog__body {
112
+ min-width: 0;
113
+ font-family: var(--md-sys-typescale-body-medium-font);
114
+ font-size: var(--md-sys-typescale-body-medium-size);
115
+ line-height: var(--md-sys-typescale-body-medium-line-height);
116
+ color: color-mix(
117
+ in oklch,
118
+ var(--md-sys-color-inverse-on-surface) 88%,
119
+ transparent
120
+ );
121
+ text-wrap: pretty;
122
+ }
123
+
124
+ .dialog__actions {
125
+ display: flex;
126
+ align-items: center;
127
+ justify-content: flex-end;
128
+ gap: var(--s-2);
129
+ flex-wrap: wrap;
130
+ }
131
+ .dialog__actions.is-empty {
132
+ display: none;
133
+ }
134
+
135
+ }`);
136
+ sheets = [sheet];
137
+ }
138
+ export default sheets;
@@ -1,7 +1,8 @@
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
+ static styles: CSSStyleSheet[];
5
6
  orientation: DividerOrientation;
6
7
  render(): TemplateResult;
7
8
  }
@@ -27,18 +27,20 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
27
27
  };
28
28
  import { LitElement, html } from "lit";
29
29
  import { customElement, property } from "lit/decorators.js";
30
+ import dividerSheets from "./index.styles.js";
30
31
  // Resolve CSS relative to the *built* file:
31
32
  // lit/build/components/divider/index.js → ../divider/index.css.
32
- const DIVIDER_CSS = new URL("../divider/index.css", import.meta.url).href;
33
33
  let XmDivider = class XmDivider extends LitElement {
34
34
  constructor() {
35
35
  super(...arguments);
36
36
  this.orientation = "horizontal";
37
37
  }
38
+ // Adopted from the build-generated sheets (scripts/gen-styles.mjs) — no
39
+ // runtime URL fetch (ADR 0012). Cascade order preserved from the old <link>s.
40
+ static { this.styles = [...dividerSheets]; }
38
41
  render() {
39
42
  const orientation = this.orientation === "vertical" ? "vertical" : "horizontal";
40
43
  return html `
41
- <link rel="stylesheet" href="${DIVIDER_CSS}" />
42
44
  <style>
43
45
  :host {
44
46
  display: block;
@@ -65,3 +67,4 @@ __decorate([
65
67
  XmDivider = __decorate([
66
68
  customElement("xm-divider")
67
69
  ], XmDivider);
70
+ export { XmDivider };
@@ -0,0 +1,41 @@
1
+ // GENERATED by scripts/gen-styles.mjs — do not edit. Source: lit/components/divider/index.css
2
+ // SSR-safe: constructable stylesheets need the DOM, so in a non-DOM context
3
+ // (Node/SSR import) this exports [] instead of throwing. The CSS self-declares
4
+ // the @layer order so the override contract holds even without ./base (AD-2).
5
+ let sheets = [];
6
+ if (typeof CSSStyleSheet !== "undefined") {
7
+ const sheet = new CSSStyleSheet();
8
+ sheet.replaceSync(`@layer reset, base, tokens, components, utilities;
9
+ @layer components {
10
+ /* ============================================
11
+ <xm-divider> — standalone hairline rule.
12
+
13
+ Exactly 1px using --md-sys-color-outline-variant (the default hairline
14
+ weight; the same rule a card's header/footer split uses). Never 2px —
15
+ 2px is reserved for the drag-active field state only. No thickness
16
+ variants, no status hue: a divider is always a neutral hairline that
17
+ traces its host surface and reads on both surface families (AD-13).
18
+
19
+ BEM: block \`divider\`; modifiers \`--horizontal\` / \`--vertical\`.
20
+ ============================================ */
21
+
22
+ .divider {
23
+ background: var(--md-sys-color-outline-variant);
24
+ border: 0;
25
+ }
26
+
27
+ .divider--horizontal {
28
+ width: 100%;
29
+ height: 1px;
30
+ }
31
+
32
+ .divider--vertical {
33
+ width: 1px;
34
+ height: 100%;
35
+ min-height: 1em;
36
+ }
37
+
38
+ }`);
39
+ sheets = [sheet];
40
+ }
41
+ export default sheets;
@@ -1,6 +1,7 @@
1
1
  import { LitElement } from "lit";
2
2
  import type { TemplateResult } from "lit";
3
3
  export declare class XmEmptyState extends LitElement {
4
+ static styles: CSSStyleSheet[];
4
5
  heading: string;
5
6
  /** A primitives icon element name (e.g. "xm-search-icon"). Used only when no
6
7
  slot="icon" content is supplied. */
@@ -38,7 +38,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
38
38
  };
39
39
  import { LitElement, html, nothing } from "lit";
40
40
  import { customElement, property, state } from "lit/decorators.js";
41
- const EMPTY_STATE_CSS = new URL("../empty-state/index.css", import.meta.url).href;
41
+ import emptyStateSheets from "./index.styles.js";
42
42
  let XmEmptyState = class XmEmptyState extends LitElement {
43
43
  constructor() {
44
44
  super(...arguments);
@@ -69,10 +69,12 @@ let XmEmptyState = class XmEmptyState extends LitElement {
69
69
  this._hasAction = slot.assignedElements().length > 0;
70
70
  };
71
71
  }
72
+ // Adopted from the build-generated sheets (scripts/gen-styles.mjs) — no
73
+ // runtime URL fetch (ADR 0012). Cascade order preserved from the old <link>s.
74
+ static { this.styles = [...emptyStateSheets]; }
72
75
  render() {
73
76
  const showFallbackIcon = !this._hasIconSlot && this.icon !== "";
74
77
  return html `
75
- <link rel="stylesheet" href="${EMPTY_STATE_CSS}" />
76
78
  <style>
77
79
  :host { display: block; }
78
80
  :host([hidden]) { display: none; }