@threadlabs/looma 0.5.1 → 0.6.0-rc.1

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 (341) hide show
  1. package/README.md +1 -1
  2. package/components/shared/overlay.js +3 -0
  3. package/components/ui-button/ui-button.html +27 -14
  4. package/components/ui-callout/ui-callout.html +1 -1
  5. package/components/ui-checkbox/ui-checkbox.html +1 -1
  6. package/components/ui-cluster/ui-cluster.html +6 -6
  7. package/components/ui-combobox/ui-combobox.html +35 -27
  8. package/components/ui-container/ui-container.html +4 -4
  9. package/components/ui-context-menu/ui-context-menu.html +2 -2
  10. package/components/ui-dialog/ui-dialog.html +21 -8
  11. package/components/ui-disclosure/ui-disclosure.html +19 -4
  12. package/components/ui-editable/ui-editable.html +6 -6
  13. package/components/ui-editor-insert-table-grid/ui-editor-insert-table-grid.html +21 -21
  14. package/components/ui-editor-mention-menu/ui-editor-mention-menu.html +26 -26
  15. package/components/ui-editor-slash-menu/ui-editor-slash-menu.html +39 -39
  16. package/components/ui-editor-table-context-menu/ui-editor-table-context-menu.html +26 -22
  17. package/components/ui-editor-table-overlay/ui-editor-table-overlay.html +68 -52
  18. package/components/ui-editor-table-toolbar/ui-editor-table-toolbar.html +42 -38
  19. package/components/ui-editor-toolbar/ui-editor-toolbar.html +9 -9
  20. package/components/ui-floating-action-button/ui-floating-action-button.html +16 -22
  21. package/components/ui-form-field/ui-form-field.html +18 -7
  22. package/components/ui-grid/ui-grid.html +6 -6
  23. package/components/ui-icon/ui-icon.html +5 -1
  24. package/components/ui-icon-button/ui-icon-button.html +68 -34
  25. package/components/ui-input/ui-input.html +2 -2
  26. package/components/ui-menu/ui-menu.html +15 -4
  27. package/components/ui-menu-item/ui-menu-item.html +5 -5
  28. package/components/ui-popover/ui-popover.html +3 -3
  29. package/components/ui-popover/ui-popover.js +10 -2
  30. package/components/ui-reel/ui-reel.html +6 -6
  31. package/components/ui-search-result-row/ui-search-result-row.html +9 -9
  32. package/components/ui-search-shell/ui-search-shell.html +10 -3
  33. package/components/ui-search-shell/ui-search-shell.js +9 -0
  34. package/components/ui-select/ui-select.html +2 -2
  35. package/components/ui-sidebar/ui-sidebar.html +11 -11
  36. package/components/ui-stack/ui-stack.html +6 -6
  37. package/components/ui-switcher/ui-switcher.html +6 -6
  38. package/components/ui-tabs/ui-tabs.html +19 -5
  39. package/components/ui-textarea/ui-textarea.html +2 -2
  40. package/components/ui-toast-region/ui-toast-region.html +3 -3
  41. package/components/ui-tooltip/ui-tooltip.html +1 -1
  42. package/components/ui-top-bar/ui-top-bar.html +5 -5
  43. package/components/ui-tree/ui-tree.html +7 -0
  44. package/components/ui-tree-item/ui-tree-item.html +20 -7
  45. package/dist/index.d.ts +1 -1
  46. package/dist/index.js +2 -2
  47. package/package.json +2 -2
  48. package/styles/ui-affordance-scope.css +1 -1
  49. package/styles/ui-avatar-group.css +1 -1
  50. package/styles/ui-avatar.css +1 -1
  51. package/styles/ui-badge.css +1 -1
  52. package/styles/ui-button.css +25 -15
  53. package/styles/ui-callout.css +2 -2
  54. package/styles/ui-checkbox.css +2 -2
  55. package/styles/ui-cluster.css +7 -7
  56. package/styles/ui-combobox.css +24 -24
  57. package/styles/ui-container.css +5 -5
  58. package/styles/ui-context-menu.css +3 -3
  59. package/styles/ui-dialog.css +26 -9
  60. package/styles/ui-disclosure.css +23 -7
  61. package/styles/ui-editable.css +7 -7
  62. package/styles/ui-editor-insert-table-grid.css +21 -21
  63. package/styles/ui-editor-mention-menu.css +26 -26
  64. package/styles/ui-editor-slash-menu.css +40 -40
  65. package/styles/ui-editor-table-context-menu.css +21 -21
  66. package/styles/ui-editor-table-overlay.css +49 -49
  67. package/styles/ui-editor-table-toolbar.css +35 -35
  68. package/styles/ui-editor-toolbar.css +10 -10
  69. package/styles/ui-floating-action-button.css +17 -23
  70. package/styles/ui-form-field.css +24 -10
  71. package/styles/ui-grid.css +7 -7
  72. package/styles/ui-icon-button.css +74 -35
  73. package/styles/ui-icon.css +1 -1
  74. package/styles/ui-input.css +3 -3
  75. package/styles/ui-menu-item.css +6 -6
  76. package/styles/ui-menu.css +19 -7
  77. package/styles/ui-popover.css +4 -4
  78. package/styles/ui-radio-group.css +1 -1
  79. package/styles/ui-radio.css +1 -1
  80. package/styles/ui-reel.css +7 -7
  81. package/styles/ui-search-result-row.css +10 -10
  82. package/styles/ui-search-shell.css +14 -5
  83. package/styles/ui-select.css +3 -3
  84. package/styles/ui-separator.css +1 -1
  85. package/styles/ui-sidebar.css +12 -12
  86. package/styles/ui-stack.css +7 -7
  87. package/styles/ui-switch.css +1 -1
  88. package/styles/ui-switcher.css +7 -7
  89. package/styles/ui-tabs.css +21 -7
  90. package/styles/ui-textarea.css +3 -3
  91. package/styles/ui-toast-region.css +3 -3
  92. package/styles/ui-tooltip.css +2 -2
  93. package/styles/ui-top-bar.css +6 -6
  94. package/styles/ui-tree-item.css +30 -9
  95. package/styles/ui-tree.css +8 -2
  96. package/theme-dark.css +42 -103
  97. package/theme-high-contrast.css +18 -22
  98. package/theme-light.css +15 -41
  99. package/tokens.css +149 -201
  100. package/vanilla/UiAffordanceScope.d.ts +1 -1
  101. package/vanilla/UiAffordanceScope.js +2 -2
  102. package/vanilla/UiAvatar.d.ts +1 -1
  103. package/vanilla/UiAvatar.js +2 -2
  104. package/vanilla/UiAvatarGroup.d.ts +1 -1
  105. package/vanilla/UiAvatarGroup.js +2 -2
  106. package/vanilla/UiBadge.d.ts +1 -1
  107. package/vanilla/UiBadge.js +2 -2
  108. package/vanilla/UiButton.d.ts +3 -1
  109. package/vanilla/UiButton.js +3 -3
  110. package/vanilla/UiCallout.d.ts +1 -1
  111. package/vanilla/UiCallout.js +2 -2
  112. package/vanilla/UiCheckbox.d.ts +1 -1
  113. package/vanilla/UiCheckbox.js +2 -2
  114. package/vanilla/UiCluster.d.ts +1 -1
  115. package/vanilla/UiCluster.js +2 -2
  116. package/vanilla/UiCombobox.d.ts +1 -1
  117. package/vanilla/UiCombobox.js +3 -3
  118. package/vanilla/UiContainer.d.ts +1 -1
  119. package/vanilla/UiContainer.js +2 -2
  120. package/vanilla/UiContextMenu.d.ts +1 -1
  121. package/vanilla/UiContextMenu.js +2 -2
  122. package/vanilla/UiDialog.d.ts +1 -1
  123. package/vanilla/UiDialog.js +2 -2
  124. package/vanilla/UiDisclosure.d.ts +2 -1
  125. package/vanilla/UiDisclosure.js +3 -3
  126. package/vanilla/UiEditable.d.ts +1 -1
  127. package/vanilla/UiEditable.js +2 -2
  128. package/vanilla/UiEditorInsertTableGrid.d.ts +1 -1
  129. package/vanilla/UiEditorInsertTableGrid.js +3 -3
  130. package/vanilla/UiEditorMentionMenu.d.ts +1 -1
  131. package/vanilla/UiEditorMentionMenu.js +3 -3
  132. package/vanilla/UiEditorSlashMenu.d.ts +1 -1
  133. package/vanilla/UiEditorSlashMenu.js +2 -2
  134. package/vanilla/UiEditorTableContextMenu.d.ts +1 -1
  135. package/vanilla/UiEditorTableContextMenu.js +3 -3
  136. package/vanilla/UiEditorTableOverlay.d.ts +1 -1
  137. package/vanilla/UiEditorTableOverlay.js +3 -3
  138. package/vanilla/UiEditorTableToolbar.d.ts +1 -1
  139. package/vanilla/UiEditorTableToolbar.js +3 -3
  140. package/vanilla/UiEditorToolbar.d.ts +1 -1
  141. package/vanilla/UiEditorToolbar.js +2 -2
  142. package/vanilla/UiFloatingActionButton.d.ts +1 -1
  143. package/vanilla/UiFloatingActionButton.js +2 -2
  144. package/vanilla/UiFormField.d.ts +1 -1
  145. package/vanilla/UiFormField.js +15 -6
  146. package/vanilla/UiGrid.d.ts +1 -1
  147. package/vanilla/UiGrid.js +2 -2
  148. package/vanilla/UiIcon.d.ts +1 -1
  149. package/vanilla/UiIcon.js +3 -3
  150. package/vanilla/UiIconButton.d.ts +1 -1
  151. package/vanilla/UiIconButton.js +2 -2
  152. package/vanilla/UiInput.d.ts +1 -1
  153. package/vanilla/UiInput.js +2 -2
  154. package/vanilla/UiMenu.d.ts +2 -1
  155. package/vanilla/UiMenu.js +3 -3
  156. package/vanilla/UiMenuItem.d.ts +1 -1
  157. package/vanilla/UiMenuItem.js +2 -2
  158. package/vanilla/UiPopover.d.ts +1 -1
  159. package/vanilla/UiPopover.js +2 -2
  160. package/vanilla/UiRadio.d.ts +1 -1
  161. package/vanilla/UiRadio.js +2 -2
  162. package/vanilla/UiRadioGroup.d.ts +1 -1
  163. package/vanilla/UiRadioGroup.js +2 -2
  164. package/vanilla/UiReel.d.ts +1 -1
  165. package/vanilla/UiReel.js +2 -2
  166. package/vanilla/UiSearchResultRow.d.ts +1 -1
  167. package/vanilla/UiSearchResultRow.js +2 -2
  168. package/vanilla/UiSearchShell.d.ts +1 -1
  169. package/vanilla/UiSearchShell.js +2 -2
  170. package/vanilla/UiSelect.d.ts +1 -1
  171. package/vanilla/UiSelect.js +2 -2
  172. package/vanilla/UiSeparator.d.ts +1 -1
  173. package/vanilla/UiSeparator.js +2 -2
  174. package/vanilla/UiSidebar.d.ts +1 -1
  175. package/vanilla/UiSidebar.js +2 -2
  176. package/vanilla/UiStack.d.ts +1 -1
  177. package/vanilla/UiStack.js +2 -2
  178. package/vanilla/UiSwitch.d.ts +1 -1
  179. package/vanilla/UiSwitch.js +2 -2
  180. package/vanilla/UiSwitcher.d.ts +1 -1
  181. package/vanilla/UiSwitcher.js +2 -2
  182. package/vanilla/UiTabs.d.ts +2 -1
  183. package/vanilla/UiTabs.js +3 -3
  184. package/vanilla/UiTextarea.d.ts +1 -1
  185. package/vanilla/UiTextarea.js +2 -2
  186. package/vanilla/UiToastRegion.d.ts +1 -1
  187. package/vanilla/UiToastRegion.js +3 -3
  188. package/vanilla/UiTooltip.d.ts +1 -1
  189. package/vanilla/UiTooltip.js +2 -2
  190. package/vanilla/UiTopBar.d.ts +1 -1
  191. package/vanilla/UiTopBar.js +1 -1
  192. package/vanilla/UiTree.d.ts +2 -1
  193. package/vanilla/UiTree.js +3 -3
  194. package/vanilla/UiTreeItem.d.ts +1 -1
  195. package/vanilla/UiTreeItem.js +2 -2
  196. package/vue/UiAffordanceScope.d.ts +2 -2
  197. package/vue/UiAffordanceScope.vue +92 -73
  198. package/vue/UiAvatar.d.ts +7 -7
  199. package/vue/UiAvatar.vue +145 -105
  200. package/vue/UiAvatarGroup.d.ts +4 -4
  201. package/vue/UiAvatarGroup.vue +134 -118
  202. package/vue/UiBadge.d.ts +4 -4
  203. package/vue/UiBadge.vue +113 -114
  204. package/vue/UiButton.d.ts +10 -6
  205. package/vue/UiButton.vue +295 -248
  206. package/vue/UiCallout.d.ts +2 -2
  207. package/vue/UiCallout.vue +154 -87
  208. package/vue/UiCheckbox.d.ts +14 -10
  209. package/vue/UiCheckbox.vue +228 -162
  210. package/vue/UiCluster.d.ts +2 -2
  211. package/vue/UiCluster.vue +53 -60
  212. package/vue/UiCombobox.d.ts +36 -32
  213. package/vue/UiCombobox.vue +1005 -416
  214. package/vue/UiContainer.d.ts +2 -2
  215. package/vue/UiContainer.vue +48 -51
  216. package/vue/UiContextMenu.d.ts +6 -4
  217. package/vue/UiContextMenu.vue +205 -116
  218. package/vue/UiDialog.d.ts +11 -9
  219. package/vue/UiDialog.vue +287 -212
  220. package/vue/UiDisclosure.d.ts +10 -6
  221. package/vue/UiDisclosure.vue +265 -159
  222. package/vue/UiEditable.d.ts +16 -12
  223. package/vue/UiEditable.vue +325 -205
  224. package/vue/UiEditorInsertTableGrid.d.ts +8 -8
  225. package/vue/UiEditorInsertTableGrid.vue +216 -157
  226. package/vue/UiEditorMentionMenu.d.ts +9 -9
  227. package/vue/UiEditorMentionMenu.vue +265 -222
  228. package/vue/UiEditorSlashMenu.d.ts +7 -7
  229. package/vue/UiEditorSlashMenu.vue +286 -240
  230. package/vue/UiEditorTableContextMenu.d.ts +5 -5
  231. package/vue/UiEditorTableContextMenu.vue +306 -193
  232. package/vue/UiEditorTableOverlay.d.ts +2 -2
  233. package/vue/UiEditorTableOverlay.vue +600 -369
  234. package/vue/UiEditorTableToolbar.d.ts +7 -7
  235. package/vue/UiEditorTableToolbar.vue +443 -268
  236. package/vue/UiEditorToolbar.d.ts +2 -2
  237. package/vue/UiEditorToolbar.vue +134 -121
  238. package/vue/UiFloatingActionButton.d.ts +6 -6
  239. package/vue/UiFloatingActionButton.vue +95 -99
  240. package/vue/UiFormField.d.ts +6 -6
  241. package/vue/UiFormField.vue +112 -80
  242. package/vue/UiGrid.d.ts +2 -2
  243. package/vue/UiGrid.vue +51 -57
  244. package/vue/UiIcon.d.ts +2 -2
  245. package/vue/UiIcon.vue +118 -89
  246. package/vue/UiIconButton.d.ts +11 -11
  247. package/vue/UiIconButton.vue +287 -217
  248. package/vue/UiInput.d.ts +9 -9
  249. package/vue/UiInput.vue +153 -127
  250. package/vue/UiMenu.d.ts +10 -6
  251. package/vue/UiMenu.vue +227 -143
  252. package/vue/UiMenuItem.d.ts +4 -4
  253. package/vue/UiMenuItem.vue +53 -46
  254. package/vue/UiPopover.d.ts +8 -6
  255. package/vue/UiPopover.vue +197 -137
  256. package/vue/UiRadio.d.ts +14 -10
  257. package/vue/UiRadio.vue +183 -117
  258. package/vue/UiRadioGroup.d.ts +14 -12
  259. package/vue/UiRadioGroup.vue +172 -111
  260. package/vue/UiReel.d.ts +3 -3
  261. package/vue/UiReel.vue +77 -77
  262. package/vue/UiSearchResultRow.d.ts +4 -4
  263. package/vue/UiSearchResultRow.vue +121 -115
  264. package/vue/UiSearchShell.d.ts +10 -8
  265. package/vue/UiSearchShell.vue +245 -176
  266. package/vue/UiSelect.d.ts +9 -9
  267. package/vue/UiSelect.vue +162 -134
  268. package/vue/UiSeparator.d.ts +2 -2
  269. package/vue/UiSeparator.vue +22 -27
  270. package/vue/UiSidebar.d.ts +20 -18
  271. package/vue/UiSidebar.vue +307 -224
  272. package/vue/UiStack.d.ts +3 -3
  273. package/vue/UiStack.vue +64 -70
  274. package/vue/UiSwitch.d.ts +12 -8
  275. package/vue/UiSwitch.vue +218 -150
  276. package/vue/UiSwitcher.d.ts +3 -3
  277. package/vue/UiSwitcher.vue +73 -75
  278. package/vue/UiTabs.d.ts +12 -8
  279. package/vue/UiTabs.vue +268 -210
  280. package/vue/UiTextarea.d.ts +11 -11
  281. package/vue/UiTextarea.vue +155 -128
  282. package/vue/UiToastRegion.d.ts +10 -8
  283. package/vue/UiToastRegion.vue +261 -198
  284. package/vue/UiTooltip.d.ts +14 -12
  285. package/vue/UiTooltip.vue +241 -177
  286. package/vue/UiTopBar.vue +51 -42
  287. package/vue/UiTree.d.ts +10 -6
  288. package/vue/UiTree.vue +180 -70
  289. package/vue/UiTreeItem.d.ts +24 -22
  290. package/vue/UiTreeItem.vue +464 -339
  291. package/vue/chunks/UiAffordanceScope.js +9 -16
  292. package/vue/chunks/UiAvatar.js +23 -29
  293. package/vue/chunks/UiAvatarGroup.js +16 -39
  294. package/vue/chunks/UiBadge.js +3 -12
  295. package/vue/chunks/UiButton.js +15 -18
  296. package/vue/chunks/UiCallout.js +8 -17
  297. package/vue/chunks/UiCheckbox.js +37 -40
  298. package/vue/chunks/UiCluster.js +3 -12
  299. package/vue/chunks/UiCombobox.js +224 -266
  300. package/vue/chunks/UiContainer.js +3 -12
  301. package/vue/chunks/UiContextMenu.js +39 -34
  302. package/vue/chunks/UiDialog.js +36 -39
  303. package/vue/chunks/UiDisclosure.js +44 -48
  304. package/vue/chunks/UiEditable.js +55 -57
  305. package/vue/chunks/UiEditorInsertTableGrid.js +55 -73
  306. package/vue/chunks/UiEditorMentionMenu.js +40 -81
  307. package/vue/chunks/UiEditorSlashMenu.js +28 -52
  308. package/vue/chunks/UiEditorTableContextMenu.js +32 -56
  309. package/vue/chunks/UiEditorTableOverlay.js +58 -82
  310. package/vue/chunks/UiEditorTableToolbar.js +61 -85
  311. package/vue/chunks/UiEditorToolbar.js +4 -13
  312. package/vue/chunks/UiFloatingActionButton.js +7 -21
  313. package/vue/chunks/UiFormField.js +15 -12
  314. package/vue/chunks/UiGrid.js +3 -12
  315. package/vue/chunks/UiIcon.js +20 -43
  316. package/vue/chunks/UiIconButton.js +16 -28
  317. package/vue/chunks/UiInput.js +20 -25
  318. package/vue/chunks/UiMenu.js +30 -33
  319. package/vue/chunks/UiMenuItem.js +4 -10
  320. package/vue/chunks/UiPopover.js +28 -29
  321. package/vue/chunks/UiRadio.js +36 -39
  322. package/vue/chunks/UiRadioGroup.js +30 -34
  323. package/vue/chunks/UiReel.js +6 -15
  324. package/vue/chunks/UiSearchResultRow.js +6 -19
  325. package/vue/chunks/UiSearchShell.js +25 -28
  326. package/vue/chunks/UiSelect.js +20 -23
  327. package/vue/chunks/UiSeparator.js +2 -8
  328. package/vue/chunks/UiSidebar.js +39 -44
  329. package/vue/chunks/UiStack.js +6 -15
  330. package/vue/chunks/UiSwitch.js +35 -38
  331. package/vue/chunks/UiSwitcher.js +6 -15
  332. package/vue/chunks/UiTabs.js +52 -85
  333. package/vue/chunks/UiTextarea.js +21 -26
  334. package/vue/chunks/UiToastRegion.js +38 -72
  335. package/vue/chunks/UiTooltip.js +34 -35
  336. package/vue/chunks/UiTopBar.js +1 -1
  337. package/vue/chunks/UiTree.js +27 -16
  338. package/vue/chunks/UiTreeItem.js +85 -102
  339. package/vue/components.css +4027 -3800
  340. package/vue/editor/LoomaEditor.d.ts +11 -0
  341. package/vue/editor/index.js +9 -0
package/tokens.css CHANGED
@@ -1,6 +1,39 @@
1
1
  @layer tokens {
2
+ /* The theme contract.
3
+ These are the values a product sets to theme Looma. Everything else in this file is derived
4
+ from them, so a theme that sets only these still looks coherent. A component reads a derived
5
+ value or its own `--ui-<component>-*` token; it never needs the product to set either. */
2
6
  :root {
3
- --ui-font-stack-system:
7
+ /* Colour: intent and neutrals. */
8
+ --ui-accent: #5b55d6;
9
+ --ui-accent-hover: #4b45bd;
10
+ --ui-accent-active: #3e399e;
11
+ --ui-accent-subtle: #efeffc;
12
+ --ui-on-accent: #ffffff;
13
+ --ui-danger: #b4233f;
14
+ --ui-danger-hover: #941d35;
15
+ --ui-on-danger: #ffffff;
16
+ --ui-success: #007a33;
17
+ --ui-warning: #b45309;
18
+ --ui-info: #0066cc;
19
+ --ui-surface: #ffffff;
20
+ --ui-surface-raised: #ffffff;
21
+ --ui-surface-sunken: #f0f0ec;
22
+ /* The middle neutral step. It defaults to a mix of the two either side, but a palette with its
23
+ own value for it sets this rather than accepting the mix. */
24
+ --ui-surface-muted: color-mix(in srgb, var(--ui-surface-sunken) 50%, var(--ui-surface));
25
+ --ui-text: #1a1a1a;
26
+ --ui-text-secondary: #5c5c5c;
27
+ --ui-text-muted: #9b9b9b;
28
+ --ui-border: #e4e4e0;
29
+ --ui-border-strong: #c8c8c4;
30
+
31
+ /* Focus. */
32
+ --ui-focus-ring: #5b55d6;
33
+ --ui-focus-halo: 0 0 0 3px color-mix(in srgb, var(--ui-focus-ring) 40%, transparent);
34
+
35
+ /* Type. */
36
+ --ui-font-sans:
4
37
  system-ui,
5
38
  -apple-system,
6
39
  BlinkMacSystemFont,
@@ -11,246 +44,161 @@
11
44
  sans-serif,
12
45
  "Apple Color Emoji",
13
46
  "Segoe UI Emoji";
14
- --ui-font-stack-neo-grotesque:
15
- Inter,
16
- Roboto,
17
- "Helvetica Neue",
18
- "Arial Nova",
19
- "Nimbus Sans",
20
- Arial,
21
- sans-serif;
22
- --ui-font-stack-humanist:
23
- Seravek,
24
- "Gill Sans Nova",
25
- Ubuntu,
26
- Calibri,
27
- "DejaVu Sans",
28
- source-sans-pro,
29
- sans-serif;
30
- --ui-font-stack-rounded:
31
- ui-rounded,
32
- "Hiragino Maru Gothic ProN",
33
- Quicksand,
34
- Comfortaa,
35
- Manjari,
36
- "Arial Rounded MT",
37
- "Arial Rounded MT Bold",
38
- Calibri,
39
- source-sans-pro,
40
- sans-serif;
41
- --ui-font-family-sans: var(--ui-font-stack-system);
42
- /* Quiet metadata scale for compact, non-interactive component labels. */
43
- --ui-font-size-2xs: 0.6875rem;
44
- --ui-font-size-xs: 0.75rem;
47
+ --ui-font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;
48
+ --ui-font-size: 1rem;
45
49
  --ui-font-size-sm: 0.875rem;
46
- /* Dense interactive text: legible at 15px without body-copy spacing. */
47
- --ui-font-size-ui: 0.9375rem;
48
- --ui-font-size-md: 1rem;
49
- --ui-font-size-lg: 1.125rem;
50
- --ui-font-size-xl: 1.25rem;
51
- --ui-font-size-2xl: 1.5rem;
52
- --ui-line-height-tight: 1.2;
53
- --ui-line-height-md: 1.4;
54
- --ui-line-height-relaxed: 1.6;
55
-
56
- --ui-font-normal: 400;
57
50
  --ui-font-medium: 500;
58
- --ui-font-semibold: 600;
59
- --ui-font-bold: 700;
51
+ --ui-line-height: 1.4;
60
52
 
61
- --ui-space-0-5: 0.125rem;
53
+ /* Space: the steps components lay out with. */
62
54
  --ui-space-1: 0.25rem;
63
55
  --ui-space-2: 0.5rem;
64
56
  --ui-space-3: 0.75rem;
65
57
  --ui-space-4: 1rem;
66
- --ui-space-5: 1.5rem;
67
- --ui-space-6: 2rem;
68
- --ui-space-7: 2.5rem;
69
- --ui-space-8: 3rem;
70
58
 
71
- --ui-radius-1: 0.25rem;
72
- --ui-radius-2: 0.5rem;
73
- --ui-radius-3: 0.75rem;
74
- --ui-radius-4: 1rem;
75
- --ui-radius-dialog: 1rem;
59
+ /* Radius. */
60
+ --ui-radius-sm: 0.25rem;
61
+ --ui-radius-md: 0.5rem;
62
+ /* Derived from --ui-radius-md by default, in the contract because a product that rounds large
63
+ surfaces differently needs to pin it. */
64
+ --ui-radius-lg: calc(var(--ui-radius-md) * 1.5);
76
65
  --ui-radius-round: 999px;
77
66
 
78
- --ui-shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.04);
67
+ /* Elevation: a resting shadow and a floating one. */
79
68
  --ui-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.08), 0 1px 2px rgba(0, 0, 0, 0.04);
80
- --ui-shadow-md: 0 4px 12px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.06);
81
69
  --ui-shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.12), 0 4px 8px rgba(0, 0, 0, 0.06);
82
- --ui-shadow-xl: 0 16px 40px rgba(0, 0, 0, 0.14), 0 8px 16px rgba(0, 0, 0, 0.08);
83
- --ui-shadow-dialog: var(--ui-shadow-xl);
84
-
85
- /* Semantic elevation: every floating surface uses one of these so overlays read consistently. */
86
- --ui-elevation-tooltip: var(--ui-shadow-md);
87
- --ui-elevation-overlay: var(--ui-shadow-lg);
88
- --ui-elevation-dialog: var(--ui-shadow-xl);
89
- --ui-overlay-backdrop: rgba(0, 0, 0, 0.4);
90
70
 
71
+ /* Motion. */
91
72
  --ui-motion-fast: 120ms;
92
- --ui-motion-base: 180ms;
93
73
  --ui-motion-ease: cubic-bezier(0.2, 0, 0.2, 1);
94
- /* Fast start, gentle settle: for reveals that should feel immediate (expanding panels). */
95
- --ui-motion-ease-out: cubic-bezier(0.2, 0.8, 0.2, 1);
96
74
 
97
- /* Anticipatory interaction: guide → near → direct → active. */
98
- --ui-affordance-guide-size: 0.25rem;
99
- --ui-affordance-guide-opacity: 0.42;
100
- --ui-affordance-guide-color: var(--ui-border-strong);
101
- --ui-affordance-near-color: var(--ui-text-secondary);
102
- --ui-affordance-direct-color: var(--ui-accent-solid);
103
- --ui-affordance-active-color: var(--ui-accent-active);
104
- --ui-affordance-motion: var(--ui-motion-fast);
105
-
106
- --ui-surface-canvas: #ffffff;
107
- --ui-surface-default: #ffffff;
108
- --ui-surface-muted: #f8f8f6;
109
- --ui-surface-subtle: #f0f0ec;
110
- --ui-surface-elevated: #ffffff;
111
-
112
- --ui-text-primary: #1a1a1a;
113
- --ui-text-secondary: #5c5c5c;
114
- --ui-text-muted: #9b9b9b;
115
- --ui-text-on-accent: #ffffff;
116
-
117
- --ui-border-subtle: #ecece8;
118
- --ui-border-default: #e4e4e0;
119
- --ui-border-strong: #c8c8c4;
120
- --ui-focus-ring: #5b55d6;
75
+ /* Controls: the contract every button and field shares. */
76
+ --ui-control-size: 2.5rem;
77
+ --ui-control-size-sm: 2rem;
78
+ /* WCAG 2.5.5 counts CSS pixels, so this one stays in px: a smaller root font must not shrink
79
+ a touch target below 44. */
80
+ --ui-control-min-block-size: 44px;
81
+ --ui-control-border: #858580;
82
+ }
121
83
 
122
- --ui-accent-solid: #5b55d6;
123
- --ui-accent-hover: #4b45bd;
124
- --ui-accent-active: #3e399e;
125
- --ui-accent-soft: #efeffc;
84
+ /* Derived values.
85
+ Each is computed from the contract above. A theme may set one to diverge deliberately, but
86
+ never has to: these exist so components share one vocabulary, not to be configured. */
87
+ :root,
88
+ :where([data-theme], [data-contrast]) {
89
+ /* Type scale, from the base size. */
90
+ --ui-font-size-2xs: calc(var(--ui-font-size) * 0.6875);
91
+ --ui-font-size-xs: calc(var(--ui-font-size) * 0.75);
92
+ /* Dense interactive text: legible without body-copy spacing. */
93
+ --ui-font-size-ui: calc(var(--ui-font-size) * 0.9375);
94
+ --ui-font-size-md: var(--ui-font-size);
95
+ --ui-font-size-lg: calc(var(--ui-font-size) * 1.125);
96
+ --ui-line-height-tight: 1.2;
97
+ --ui-line-height-md: var(--ui-line-height);
98
+ --ui-font-normal: 400;
99
+ --ui-font-semibold: 600;
100
+ --ui-font-bold: 700;
101
+ --ui-font-family-sans: var(--ui-font-sans);
102
+ --ui-font-family-mono: var(--ui-font-mono);
126
103
 
127
- --ui-danger-solid: #b4233f;
128
- --ui-danger-hover: #941d35;
129
- --ui-danger-soft: #fceef1;
130
- --ui-success-solid: #007a33;
131
- --ui-success-soft: #edf7f1;
132
- --ui-warning-solid: #cc8800;
133
- --ui-warning-soft: #fdf7e6;
134
- --ui-info-solid: #0066cc;
135
- --ui-info-soft: #e8f0fb;
104
+ /* Space steps either side of the contract's four. */
105
+ --ui-space-0-5: calc(var(--ui-space-1) * 0.5);
106
+ --ui-space-5: calc(var(--ui-space-4) * 1.5);
107
+ --ui-space-6: calc(var(--ui-space-4) * 2);
136
108
 
137
- /* Intent colors split readable foreground use from filled-surface use. */
138
- --ui-accent-strong-surface: #5b55d6;
139
- --ui-accent-on-strong: #ffffff;
140
- --ui-accent-subtle-text: #3e399e;
141
- --ui-danger-strong-surface: #b4233f;
142
- --ui-danger-on-strong: #ffffff;
143
- --ui-danger-subtle-text: #941d35;
144
- --ui-success-strong-surface: #007a33;
145
- --ui-success-on-strong: #ffffff;
146
- --ui-success-subtle-text: #006629;
147
- /* Deeper amber so the solid warning badge carries white text like the other tones (5:1). */
148
- --ui-warning-strong-surface: #b45309;
149
- --ui-warning-on-strong: #ffffff;
150
- --ui-warning-subtle-text: #704800;
151
- --ui-info-strong-surface: #0066cc;
152
- --ui-info-on-strong: #ffffff;
153
- --ui-info-subtle-text: #0058b0;
109
+ --ui-radius-dialog: calc(var(--ui-radius-md) * 2);
154
110
 
155
- /* Depth and focus. Fields read as a shallow well; buttons as gently raised. Focus is a soft halo
156
- that transitions in (no hard outline ring). */
111
+ /* Elevation: one resting shadow, one floating, and the overlays in between. */
112
+ --ui-shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.04);
113
+ --ui-shadow-md: var(--ui-shadow-sm);
114
+ --ui-shadow-xl: var(--ui-shadow-lg);
115
+ --ui-elevation-tooltip: var(--ui-shadow-sm);
116
+ --ui-elevation-overlay: var(--ui-shadow-lg);
117
+ --ui-elevation-dialog: var(--ui-shadow-lg);
118
+ --ui-overlay-backdrop: rgba(0, 0, 0, 0.4);
157
119
  --ui-control-inset: inset 0 1px 2px rgb(0 0 0 / 0.07), inset 0 1px 0 rgb(0 0 0 / 0.02);
158
- --ui-control-focus-halo-shadow: 0 0 0 3px var(--ui-control-focus-halo, color-mix(in srgb, var(--ui-focus-ring) 24%, transparent));
159
120
  --ui-raised: 0 1px 2px rgb(0 0 0 / 0.07), 0 1px 1px rgb(0 0 0 / 0.04);
160
121
  --ui-raised-highlight: linear-gradient(rgb(255 255 255 / 0.5), rgb(255 255 255 / 0));
161
- --ui-focus-halo: 0 0 0 3px color-mix(in srgb, var(--ui-focus-ring) 40%, transparent);
162
-
163
- /* Icon sizes, used by icon buttons and field affordances. */
164
- --ui-icon-size-sm: 1rem;
165
- --ui-icon-size-md: 1.25rem;
166
- --ui-icon-size-lg: 1.5rem;
167
122
 
168
- /* One height scale for every form control and button size. */
169
- --ui-control-size-sm: 2rem;
170
- --ui-control-size-md: 2.5rem;
171
- --ui-control-size-lg: 3rem;
172
- /* Touch-target floor applied under coarse pointers. */
173
- --ui-control-min-block-size: 2.75rem;
123
+ --ui-motion-base: calc(var(--ui-motion-fast) * 1.5);
124
+ /* Fast start, gentle settle: for reveals that should feel immediate. */
125
+ --ui-motion-ease-out: cubic-bezier(0.2, 0.8, 0.2, 1);
174
126
 
175
- /* Compatibility aliases used by the editor's public styling surface.
176
- Each alias resolves through the canonical semantic token so an app only
177
- needs to override the canonical Looma theme contract. */
178
- --ui-surface: var(--ui-surface-elevated);
127
+ /* Surfaces and text, in the names components use. */
128
+ --ui-surface-canvas: var(--ui-surface);
129
+ --ui-surface-default: var(--ui-surface);
130
+ --ui-surface-elevated: var(--ui-surface-raised);
131
+ --ui-surface-subtle: var(--ui-surface-sunken);
179
132
  --ui-surface-hover: var(--ui-surface-muted);
180
- --ui-text: var(--ui-text-primary);
181
- --ui-border: var(--ui-border-default);
182
- --ui-accent: var(--ui-accent-solid);
183
- --ui-accent-subtle: var(--ui-accent-soft);
184
- --ui-accent-contrast: var(--ui-text-on-accent);
185
- --ui-danger: var(--ui-danger-solid);
186
- --ui-radius-sm: var(--ui-radius-1);
187
- --ui-radius-md: var(--ui-radius-2);
188
- --ui-radius-lg: var(--ui-radius-3);
189
- --ui-radius-xl: var(--ui-radius-4);
190
- --ui-text-sm: var(--ui-font-size-sm);
191
- }
192
-
193
- /* Custom-property references resolve where declared, before inheritance.
194
- Rebind semantic roles at theme boundaries to use the local palette. */
195
- :root,
196
- :where([data-theme], [data-contrast]) {
197
- /* Semantic interaction roles. Products can theme intent without coupling
198
- every component to a single brand accent. */
199
- --ui-action-primary-surface: var(--ui-accent-solid);
133
+ --ui-text-primary: var(--ui-text);
134
+ --ui-text-on-accent: var(--ui-on-accent);
135
+ --ui-border-subtle: color-mix(in srgb, var(--ui-border) 55%, var(--ui-surface));
136
+ --ui-border-default: var(--ui-border);
137
+
138
+ /* Intent tones: a solid surface, its foreground, and a soft tint of each. */
139
+ --ui-accent-solid: var(--ui-accent);
140
+ --ui-accent-soft: var(--ui-accent-subtle);
141
+ --ui-accent-contrast: var(--ui-on-accent);
142
+ --ui-accent-strong-surface: var(--ui-accent);
143
+ --ui-accent-on-strong: var(--ui-on-accent);
144
+ --ui-accent-subtle-text: var(--ui-accent-active);
145
+ --ui-danger-solid: var(--ui-danger);
146
+ --ui-danger-soft: color-mix(in srgb, var(--ui-danger) 8%, var(--ui-surface));
147
+ --ui-danger-strong-surface: var(--ui-danger);
148
+ --ui-danger-on-strong: var(--ui-on-danger);
149
+ --ui-danger-subtle-text: var(--ui-danger-hover);
150
+ --ui-success-solid: var(--ui-success);
151
+ --ui-success-hover: color-mix(in srgb, var(--ui-success) 85%, var(--ui-text));
152
+ --ui-success-soft: color-mix(in srgb, var(--ui-success) 8%, var(--ui-surface));
153
+ --ui-success-strong-surface: var(--ui-success);
154
+ --ui-success-on-strong: var(--ui-on-accent);
155
+ --ui-success-subtle-text: color-mix(in srgb, var(--ui-success) 85%, var(--ui-text));
156
+ --ui-warning-solid: var(--ui-warning);
157
+ --ui-warning-soft: color-mix(in srgb, var(--ui-warning) 8%, var(--ui-surface));
158
+ --ui-warning-strong-surface: var(--ui-warning);
159
+ --ui-warning-on-strong: var(--ui-on-accent);
160
+ --ui-warning-subtle-text: color-mix(in srgb, var(--ui-warning) 85%, var(--ui-text));
161
+ --ui-info-solid: var(--ui-info);
162
+ --ui-info-soft: color-mix(in srgb, var(--ui-info) 8%, var(--ui-surface));
163
+ --ui-info-strong-surface: var(--ui-info);
164
+ --ui-info-on-strong: var(--ui-on-accent);
165
+ --ui-info-subtle-text: color-mix(in srgb, var(--ui-info) 85%, var(--ui-text));
166
+
167
+ /* Interaction roles: what a control paints, whatever its intent. */
168
+ --ui-action-primary-surface: var(--ui-accent);
200
169
  --ui-action-primary-surface-hover: var(--ui-accent-hover);
201
170
  --ui-action-primary-surface-active: var(--ui-accent-active);
202
- --ui-action-primary-text: var(--ui-text-on-accent);
203
- --ui-action-secondary-surface: var(--ui-surface-default);
171
+ --ui-action-primary-text: var(--ui-on-accent);
204
172
  --ui-action-secondary-surface-hover: var(--ui-surface-muted);
205
- --ui-action-secondary-text: var(--ui-text-primary);
206
- --ui-control-surface: var(--ui-surface-default);
173
+ --ui-action-secondary-text: var(--ui-text);
174
+ --ui-control-surface: var(--ui-surface);
207
175
  --ui-control-surface-disabled: var(--ui-surface-muted);
208
- --ui-control-border: var(--ui-border-default);
209
176
  --ui-control-border-hover: var(--ui-border-strong);
177
+ --ui-control-placeholder: var(--ui-text-secondary);
210
178
  --ui-control-focus: var(--ui-focus-ring);
211
- /* Derived from the ring, not the near-white accent tint, so the halo shows on any surface. */
179
+ /* Derived from the ring, not a near-white tint, so the halo shows on any surface. */
212
180
  --ui-control-focus-halo: color-mix(in srgb, var(--ui-focus-ring) 24%, transparent);
213
- }
214
-
215
- @supports (color: oklch(0.5 0.1 240)) {
216
- :root {
217
- --ui-surface-canvas: oklch(0.99 0.01 250);
218
- --ui-surface-default: oklch(1 0 0);
219
- --ui-surface-muted: oklch(0.97 0.01 250);
220
- --ui-surface-subtle: oklch(0.95 0.01 250);
221
- --ui-surface-elevated: oklch(1 0 0);
181
+ --ui-control-focus-halo-shadow: 0 0 0 3px var(--ui-control-focus-halo);
182
+ --ui-control-size-md: var(--ui-control-size);
183
+ --ui-control-size-lg: calc(var(--ui-control-size) * 1.2);
222
184
 
223
- --ui-text-primary: oklch(0.23 0.02 260);
224
- --ui-text-secondary: oklch(0.36 0.02 260);
225
- --ui-text-muted: oklch(0.5 0.02 260);
226
- --ui-text-on-accent: oklch(0.99 0.01 250);
227
-
228
- --ui-border-subtle: oklch(0.9 0.01 250);
229
- --ui-border-default: oklch(0.84 0.01 250);
230
- --ui-border-strong: oklch(0.7 0.02 250);
231
- --ui-focus-ring: oklch(0.57 0.17 285);
232
-
233
- --ui-accent-solid: oklch(0.57 0.17 285);
234
- --ui-accent-hover: oklch(0.52 0.18 285);
235
- --ui-accent-active: oklch(0.46 0.16 285);
236
- --ui-accent-soft: oklch(0.96 0.025 285);
185
+ /* Icon sizes, used by icon buttons and field affordances. */
186
+ --ui-icon-size-sm: var(--ui-font-size);
187
+ --ui-icon-size-md: calc(var(--ui-font-size) * 1.25);
188
+ --ui-icon-size-lg: calc(var(--ui-font-size) * 1.5);
237
189
 
238
- --ui-danger-solid: oklch(0.5 0.17 18);
239
- --ui-danger-hover: oklch(0.44 0.16 18);
240
- --ui-danger-soft: oklch(0.97 0.025 18);
241
- --ui-success-solid: oklch(0.5 0.15 145);
242
- --ui-success-soft: oklch(0.96 0.03 145);
243
- --ui-warning-solid: oklch(0.7 0.15 85);
244
- --ui-warning-soft: oklch(0.97 0.04 85);
245
- --ui-info-solid: oklch(0.62 0.18 250);
246
- --ui-info-soft: oklch(0.95 0.03 250);
247
- }
190
+ /* Anticipatory interaction: guide → near → direct. */
191
+ --ui-affordance-guide-size: var(--ui-space-1);
192
+ --ui-affordance-guide-opacity: 0.42;
193
+ --ui-affordance-guide-color: var(--ui-border-strong);
194
+ --ui-affordance-near-color: var(--ui-text-secondary);
195
+ --ui-affordance-direct-color: var(--ui-accent);
196
+ --ui-affordance-motion: var(--ui-motion-fast);
248
197
  }
249
198
 
250
199
  @media (prefers-reduced-motion: reduce) {
251
200
  :root {
252
201
  --ui-motion-fast: 0ms;
253
- --ui-motion-base: 0ms;
254
202
  }
255
203
  }
256
204
  }
@@ -1,4 +1,4 @@
1
- // Generated by HTML Next 1.0.0-alpha.1 for Vanilla DOM. Do not edit.
1
+ // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
2
2
  export interface UiAffordanceScopeEventMap {
3
3
  }
4
4
  export interface UiAffordanceScopeElement extends HTMLSpanElement {
@@ -1,5 +1,5 @@
1
- // Generated by HTML Next 1.0.0-alpha.1 for Vanilla DOM. Do not edit.
2
- import { manageComponentLifecycle } from "@nextwebwg/declarative-components/runtime";
1
+ // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
2
+ import { manageComponentLifecycle } from "@nextwebwg/html-next/runtime";
3
3
  import * as controller from "../components/ui-affordance-scope/ui-affordance-scope.js";
4
4
  import "../styles/ui-affordance-scope.css";
5
5
 
@@ -1,4 +1,4 @@
1
- // Generated by HTML Next 1.0.0-alpha.1 for Vanilla DOM. Do not edit.
1
+ // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
2
2
  export interface UiAvatarEventMap {
3
3
  }
4
4
  export interface UiAvatarElement extends HTMLSpanElement {
@@ -1,5 +1,5 @@
1
- // Generated by HTML Next 1.0.0-alpha.1 for Vanilla DOM. Do not edit.
2
- import { manageComponentLifecycle } from "@nextwebwg/declarative-components/runtime";
1
+ // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
2
+ import { manageComponentLifecycle } from "@nextwebwg/html-next/runtime";
3
3
  import * as controller from "../components/ui-avatar/ui-avatar.js";
4
4
  import "../styles/ui-avatar.css";
5
5
 
@@ -1,4 +1,4 @@
1
- // Generated by HTML Next 1.0.0-alpha.1 for Vanilla DOM. Do not edit.
1
+ // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
2
2
  export interface UiAvatarGroupEventMap {
3
3
  }
4
4
  export interface UiAvatarGroupElement extends HTMLDivElement {
@@ -1,5 +1,5 @@
1
- // Generated by HTML Next 1.0.0-alpha.1 for Vanilla DOM. Do not edit.
2
- import { manageComponentLifecycle } from "@nextwebwg/declarative-components/runtime";
1
+ // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
2
+ import { manageComponentLifecycle } from "@nextwebwg/html-next/runtime";
3
3
  import * as controller from "../components/ui-avatar-group/ui-avatar-group.js";
4
4
  import "../styles/ui-avatar-group.css";
5
5
 
@@ -1,4 +1,4 @@
1
- // Generated by HTML Next 1.0.0-alpha.1 for Vanilla DOM. Do not edit.
1
+ // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
2
2
  export interface UiBadgeEventMap {
3
3
  }
4
4
  export interface UiBadgeElement extends HTMLSpanElement {
@@ -1,5 +1,5 @@
1
- // Generated by HTML Next 1.0.0-alpha.1 for Vanilla DOM. Do not edit.
2
- import { manageGeneratedProps } from "@nextwebwg/declarative-components/generated-runtime";
1
+ // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
2
+ import { manageGeneratedProps } from "@nextwebwg/html-next/generated-runtime";
3
3
  import "../styles/ui-badge.css";
4
4
 
5
5
  export function createUiBadge(options = {}) {
@@ -1,4 +1,4 @@
1
- // Generated by HTML Next 1.0.0-alpha.1 for Vanilla DOM. Do not edit.
1
+ // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
2
2
  export interface UiButtonEventMap {
3
3
  }
4
4
  export interface UiButtonElement extends HTMLButtonElement {
@@ -6,8 +6,10 @@ export interface UiButtonElement extends HTMLButtonElement {
6
6
  removeEventListener<K extends keyof UiButtonEventMap>(type: K, listener: (this: UiButtonElement, event: UiButtonEventMap[K]) => unknown, options?: boolean | EventListenerOptions): void;
7
7
  }
8
8
  export interface UiButtonProps {
9
+ align?: "center" | "start" | null;
9
10
  disabled?: boolean | null;
10
11
  size?: "sm" | "md" | "lg" | null;
12
+ stretch?: boolean | null;
11
13
  variant?: "outline" | "solid" | "danger" | "ghost" | "link" | null;
12
14
  attributes?: Readonly<Record<string, string | number | boolean | null | undefined>>;
13
15
  children?: readonly (string | Node)[];
@@ -1,8 +1,8 @@
1
- // Generated by HTML Next 1.0.0-alpha.1 for Vanilla DOM. Do not edit.
2
- import { manageComponentLifecycle } from "@nextwebwg/declarative-components/runtime";
1
+ // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
2
+ import { manageComponentLifecycle } from "@nextwebwg/html-next/runtime";
3
3
  import "../styles/ui-button.css";
4
4
 
5
- const definition = {...{"contract":{"tag":"ui-button","props":{"disabled":{"type":"boolean","required":false,"target":{"attribute":"disabled"},"default":false},"size":{"type":{"enum":["sm","md","lg"]},"required":false,"target":{"attribute":"size"},"default":"md"},"variant":{"type":{"enum":["outline","solid","danger","ghost","link"]},"required":false,"target":{"attribute":"variant"},"default":"outline"}}},"template":{"kind":"element","name":"button","attributes":[{"kind":"literal","name":"type","value":"button"},{"kind":"attribute","name":"disabled","expression":"disabled","expressionPlan":{"source":"disabled","ast":{"kind":"id","name":"disabled"},"dependencies":["disabled"]}}],"children":[{"kind":"slot"}]},"declarations":[],"root":{"kind":"native","element":"button","choices":["button"]}},source:{file:import.meta.url},css:""};
5
+ const definition = {...{"contract":{"tag":"ui-button","props":{"align":{"type":{"enum":["center","start"]},"required":false,"target":{"attribute":"align"},"default":"center"},"disabled":{"type":"boolean","required":false,"target":{"attribute":"disabled"},"default":false},"size":{"type":{"enum":["sm","md","lg"]},"required":false,"target":{"attribute":"size"},"default":"md"},"stretch":{"type":"boolean","required":false,"target":{"attribute":"stretch"},"default":false},"variant":{"type":{"enum":["outline","solid","danger","ghost","link"]},"required":false,"target":{"attribute":"variant"},"default":"outline"}}},"template":{"kind":"element","name":"button","attributes":[{"kind":"literal","name":"type","value":"button"},{"kind":"attribute","name":"disabled","expression":"disabled","expressionPlan":{"source":"disabled","ast":{"kind":"id","name":"disabled"},"dependencies":["disabled"]}}],"children":[{"kind":"slot"}]},"declarations":[],"root":{"kind":"native","element":"button","choices":["button"]}},source:{file:import.meta.url},css:""};
6
6
 
7
7
  export function createUiButton(options = {}) {
8
8
  const { attributes = {}, children = [], slots = {}, as, ...componentProps } = options;
@@ -1,4 +1,4 @@
1
- // Generated by HTML Next 1.0.0-alpha.1 for Vanilla DOM. Do not edit.
1
+ // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
2
2
  export interface UiCalloutEventMap {
3
3
  }
4
4
  export interface UiCalloutElement extends HTMLDivElement {
@@ -1,5 +1,5 @@
1
- // Generated by HTML Next 1.0.0-alpha.1 for Vanilla DOM. Do not edit.
2
- import { manageComponentLifecycle } from "@nextwebwg/declarative-components/runtime";
1
+ // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
2
+ import { manageComponentLifecycle } from "@nextwebwg/html-next/runtime";
3
3
  import "../styles/ui-callout.css";
4
4
 
5
5
  const definition = {...{"contract":{"tag":"ui-callout","props":{"tone":{"type":{"enum":["info","note","warning","success","danger"]},"required":false,"target":{"attribute":"tone"},"default":"info"}}},"template":{"kind":"element","name":"div","attributes":[{"kind":"literal","name":"role","value":"note"}],"children":[{"kind":"element","name":"span","attributes":[{"kind":"literal","name":"class","value":"icon"},{"kind":"literal","name":"aria-hidden","value":"true"}],"children":[{"kind":"element","name":"svg","attributes":[{"kind":"literal","name":"viewBox","value":"0 0 24 24"},{"kind":"literal","name":"fill","value":"none"},{"kind":"literal","name":"stroke","value":"currentColor"},{"kind":"literal","name":"stroke-width","value":"2"},{"kind":"literal","name":"stroke-linecap","value":"round"},{"kind":"literal","name":"stroke-linejoin","value":"round"}],"children":[{"kind":"element","name":"circle","attributes":[{"kind":"literal","name":"cx","value":"12"},{"kind":"literal","name":"cy","value":"12"},{"kind":"literal","name":"r","value":"10"}],"children":[]},{"kind":"element","name":"path","attributes":[{"kind":"literal","name":"d","value":"M12 16v-4"}],"children":[]},{"kind":"element","name":"path","attributes":[{"kind":"literal","name":"d","value":"M12 8h.01"}],"children":[]}],"flow":{"kind":"if","test":"tone = 'info'","testPlan":{"source":"tone = 'info'","ast":{"kind":"binary","op":"=","left":{"kind":"id","name":"tone"},"right":{"kind":"literal","value":"info"}},"dependencies":["tone"]}}},{"kind":"element","name":"svg","attributes":[{"kind":"literal","name":"viewBox","value":"0 0 24 24"},{"kind":"literal","name":"fill","value":"none"},{"kind":"literal","name":"stroke","value":"currentColor"},{"kind":"literal","name":"stroke-width","value":"2"},{"kind":"literal","name":"stroke-linecap","value":"round"},{"kind":"literal","name":"stroke-linejoin","value":"round"}],"children":[{"kind":"element","name":"path","attributes":[{"kind":"literal","name":"d","value":"M13.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8.5L13.5 2Z"}],"children":[]},{"kind":"element","name":"path","attributes":[{"kind":"literal","name":"d","value":"M13 2v7h7"}],"children":[]},{"kind":"element","name":"path","attributes":[{"kind":"literal","name":"d","value":"m9.5 17.5 4-4 2 2-4 4H9.5v-2Z"}],"children":[]}],"flow":{"kind":"if","test":"tone = 'note'","testPlan":{"source":"tone = 'note'","ast":{"kind":"binary","op":"=","left":{"kind":"id","name":"tone"},"right":{"kind":"literal","value":"note"}},"dependencies":["tone"]}}},{"kind":"element","name":"svg","attributes":[{"kind":"literal","name":"viewBox","value":"0 0 24 24"},{"kind":"literal","name":"fill","value":"none"},{"kind":"literal","name":"stroke","value":"currentColor"},{"kind":"literal","name":"stroke-width","value":"2"},{"kind":"literal","name":"stroke-linecap","value":"round"},{"kind":"literal","name":"stroke-linejoin","value":"round"}],"children":[{"kind":"element","name":"path","attributes":[{"kind":"literal","name":"d","value":"m21.73 18-8-14a2 2 0 0 0-3.46 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z"}],"children":[]},{"kind":"element","name":"path","attributes":[{"kind":"literal","name":"d","value":"M12 9v4"}],"children":[]},{"kind":"element","name":"path","attributes":[{"kind":"literal","name":"d","value":"M12 17h.01"}],"children":[]}],"flow":{"kind":"if","test":"tone = 'warning'","testPlan":{"source":"tone = 'warning'","ast":{"kind":"binary","op":"=","left":{"kind":"id","name":"tone"},"right":{"kind":"literal","value":"warning"}},"dependencies":["tone"]}}},{"kind":"element","name":"svg","attributes":[{"kind":"literal","name":"viewBox","value":"0 0 24 24"},{"kind":"literal","name":"fill","value":"none"},{"kind":"literal","name":"stroke","value":"currentColor"},{"kind":"literal","name":"stroke-width","value":"2"},{"kind":"literal","name":"stroke-linecap","value":"round"},{"kind":"literal","name":"stroke-linejoin","value":"round"}],"children":[{"kind":"element","name":"circle","attributes":[{"kind":"literal","name":"cx","value":"12"},{"kind":"literal","name":"cy","value":"12"},{"kind":"literal","name":"r","value":"10"}],"children":[]},{"kind":"element","name":"path","attributes":[{"kind":"literal","name":"d","value":"m9 12 2 2 4-4"}],"children":[]}],"flow":{"kind":"if","test":"tone = 'success'","testPlan":{"source":"tone = 'success'","ast":{"kind":"binary","op":"=","left":{"kind":"id","name":"tone"},"right":{"kind":"literal","value":"success"}},"dependencies":["tone"]}}},{"kind":"element","name":"svg","attributes":[{"kind":"literal","name":"viewBox","value":"0 0 24 24"},{"kind":"literal","name":"fill","value":"none"},{"kind":"literal","name":"stroke","value":"currentColor"},{"kind":"literal","name":"stroke-width","value":"2"},{"kind":"literal","name":"stroke-linecap","value":"round"},{"kind":"literal","name":"stroke-linejoin","value":"round"}],"children":[{"kind":"element","name":"circle","attributes":[{"kind":"literal","name":"cx","value":"12"},{"kind":"literal","name":"cy","value":"12"},{"kind":"literal","name":"r","value":"10"}],"children":[]},{"kind":"element","name":"path","attributes":[{"kind":"literal","name":"d","value":"m15 9-6 6"}],"children":[]},{"kind":"element","name":"path","attributes":[{"kind":"literal","name":"d","value":"m9 9 6 6"}],"children":[]}],"flow":{"kind":"if","test":"tone = 'danger'","testPlan":{"source":"tone = 'danger'","ast":{"kind":"binary","op":"=","left":{"kind":"id","name":"tone"},"right":{"kind":"literal","value":"danger"}},"dependencies":["tone"]}}}]},{"kind":"element","name":"div","attributes":[{"kind":"literal","name":"class","value":"content"}],"children":[{"kind":"slot"}]}]},"declarations":[],"root":{"kind":"native","element":"div","choices":["div"]}},source:{file:import.meta.url},css:""};
@@ -1,4 +1,4 @@
1
- // Generated by HTML Next 1.0.0-alpha.1 for Vanilla DOM. Do not edit.
1
+ // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
2
2
  export interface UiCheckboxEventMap {
3
3
  change: CustomEvent<{ readonly checked: boolean; readonly value: string; readonly trigger: "keyboard" | "pointer" | "programmatic" }>;
4
4
  }
@@ -1,5 +1,5 @@
1
- // Generated by HTML Next 1.0.0-alpha.1 for Vanilla DOM. Do not edit.
2
- import { manageComponentLifecycle } from "@nextwebwg/declarative-components/runtime";
1
+ // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
2
+ import { manageComponentLifecycle } from "@nextwebwg/html-next/runtime";
3
3
  import * as controller from "../components/ui-checkbox/ui-checkbox.js";
4
4
  import "../styles/ui-checkbox.css";
5
5
 
@@ -1,4 +1,4 @@
1
- // Generated by HTML Next 1.0.0-alpha.1 for Vanilla DOM. Do not edit.
1
+ // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
2
2
  export interface UiClusterEventMap {
3
3
  }
4
4
  export interface UiClusterElement extends HTMLDivElement {
@@ -1,5 +1,5 @@
1
- // Generated by HTML Next 1.0.0-alpha.1 for Vanilla DOM. Do not edit.
2
- import { manageGeneratedProps } from "@nextwebwg/declarative-components/generated-runtime";
1
+ // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
2
+ import { manageGeneratedProps } from "@nextwebwg/html-next/generated-runtime";
3
3
  import "../styles/ui-cluster.css";
4
4
 
5
5
  export function createUiCluster(options = {}) {
@@ -1,4 +1,4 @@
1
- // Generated by HTML Next 1.0.0-alpha.1 for Vanilla DOM. Do not edit.
1
+ // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
2
2
  export interface UiComboboxEventMap {
3
3
  "query-change": CustomEvent<{ readonly query: string; readonly display: string; readonly trigger: "keyboard" | "pointer" | "programmatic" }>;
4
4
  "value-change": CustomEvent<{ readonly value: string | null; readonly query: string; readonly option: { readonly id: string; readonly value: string; readonly label: string; readonly group?: string; readonly disabled?: boolean } | null; readonly kind: "selection" | "clear" | "free-entry" | "create"; readonly trigger: "keyboard" | "pointer" | "programmatic" } | readonly ({ readonly id: string; readonly value: string; readonly label: string; readonly group?: string; readonly disabled?: boolean })[]>;