@threadlabs/looma 0.12.7 → 0.13.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 (196) hide show
  1. package/components/ui-action-bar/ui-action-bar.html +10 -1
  2. package/components/ui-avatar/ui-avatar.html +18 -0
  3. package/components/ui-avatar-group/ui-avatar-group.html +24 -2
  4. package/components/ui-avatar-group/ui-avatar-group.js +3 -1
  5. package/components/ui-badge/ui-badge.html +42 -0
  6. package/components/ui-button/ui-button.html +70 -0
  7. package/components/ui-callout/ui-callout.html +55 -4
  8. package/components/ui-checkbox/ui-checkbox.html +15 -2
  9. package/components/ui-cluster/ui-cluster.html +7 -1
  10. package/components/ui-combobox/ui-combobox.html +64 -10
  11. package/components/ui-container/ui-container.html +12 -1
  12. package/components/ui-context-menu/ui-context-menu.html +10 -1
  13. package/components/ui-dialog/ui-dialog.html +21 -4
  14. package/components/ui-disclosure/ui-disclosure.html +22 -3
  15. package/components/ui-editor-slash-menu/ui-editor-slash-menu.html +2 -2
  16. package/components/ui-editor-table-context-menu/ui-editor-table-context-menu.html +2 -2
  17. package/components/ui-editor-table-overlay/ui-editor-table-overlay.html +8 -8
  18. package/components/ui-editor-table-toolbar/ui-editor-table-toolbar.html +3 -3
  19. package/components/ui-floating-action-button/ui-floating-action-button.html +14 -0
  20. package/components/ui-form-field/ui-form-field.html +10 -1
  21. package/components/ui-grid/ui-grid.html +11 -1
  22. package/components/ui-icon/ui-icon.html +17 -3
  23. package/components/ui-icon-button/ui-icon-button.html +81 -3
  24. package/components/ui-input/ui-input.html +67 -12
  25. package/components/ui-input-group/ui-input-group.html +14 -13
  26. package/components/ui-list/ui-list.html +10 -0
  27. package/components/ui-list-item/ui-list-item.html +22 -1
  28. package/components/ui-menu/ui-menu.html +17 -5
  29. package/components/ui-menu-item/ui-menu-item.html +30 -3
  30. package/components/ui-nav-item/ui-nav-item.html +14 -0
  31. package/components/ui-popover/ui-popover.html +6 -0
  32. package/components/ui-radio/ui-radio.html +15 -2
  33. package/components/ui-reel/ui-reel.html +15 -2
  34. package/components/ui-search-result-row/ui-search-result-row.html +34 -0
  35. package/components/ui-search-shell/ui-search-shell.html +65 -11
  36. package/components/ui-select/ui-select.html +14 -0
  37. package/components/ui-separator/ui-separator.html +9 -2
  38. package/components/ui-sidebar/ui-sidebar.html +22 -1
  39. package/components/ui-stack/ui-stack.html +7 -1
  40. package/components/ui-switch/ui-switch.html +20 -2
  41. package/components/ui-switcher/ui-switcher.html +18 -5
  42. package/components/ui-tabs/ui-tabs.html +21 -2
  43. package/components/ui-textarea/ui-textarea.html +14 -0
  44. package/components/ui-toast-region/ui-toast-region.html +16 -2
  45. package/components/ui-tooltip/ui-tooltip.html +62 -13
  46. package/components/ui-top-bar/ui-top-bar.html +34 -1
  47. package/components/ui-tree/ui-tree.html +27 -4
  48. package/components/ui-tree-item/ui-tree-item.html +39 -10
  49. package/components/ui-tree-item/ui-tree-item.js +1 -1
  50. package/dist/index.js +1 -1
  51. package/package.json +1 -1
  52. package/styles/ui-action-bar.css +14 -3
  53. package/styles/ui-avatar-group.css +26 -4
  54. package/styles/ui-avatar.css +22 -2
  55. package/styles/ui-badge.css +46 -2
  56. package/styles/ui-button.css +74 -2
  57. package/styles/ui-callout.css +59 -6
  58. package/styles/ui-checkbox.css +19 -4
  59. package/styles/ui-cluster.css +10 -2
  60. package/styles/ui-combobox.css +67 -12
  61. package/styles/ui-container.css +14 -2
  62. package/styles/ui-context-menu.css +14 -3
  63. package/styles/ui-dialog.css +25 -6
  64. package/styles/ui-disclosure.css +26 -5
  65. package/styles/ui-editor-slash-menu.css +2 -2
  66. package/styles/ui-editor-table-context-menu.css +2 -2
  67. package/styles/ui-editor-table-overlay.css +8 -8
  68. package/styles/ui-editor-table-toolbar.css +3 -3
  69. package/styles/ui-floating-action-button.css +18 -2
  70. package/styles/ui-form-field.css +14 -3
  71. package/styles/ui-grid.css +14 -2
  72. package/styles/ui-icon-button.css +85 -5
  73. package/styles/ui-icon.css +21 -5
  74. package/styles/ui-input-group.css +14 -13
  75. package/styles/ui-input.css +72 -14
  76. package/styles/ui-list-item.css +26 -3
  77. package/styles/ui-list.css +14 -2
  78. package/styles/ui-menu-item.css +34 -5
  79. package/styles/ui-menu.css +21 -6
  80. package/styles/ui-nav-item.css +18 -2
  81. package/styles/ui-popover.css +10 -2
  82. package/styles/ui-radio.css +19 -4
  83. package/styles/ui-reel.css +18 -3
  84. package/styles/ui-search-result-row.css +38 -2
  85. package/styles/ui-search-shell.css +69 -13
  86. package/styles/ui-select.css +18 -2
  87. package/styles/ui-separator.css +14 -2
  88. package/styles/ui-sidebar.css +26 -3
  89. package/styles/ui-stack.css +10 -2
  90. package/styles/ui-switch.css +24 -4
  91. package/styles/ui-switcher.css +21 -6
  92. package/styles/ui-tabs.css +25 -4
  93. package/styles/ui-textarea.css +18 -2
  94. package/styles/ui-toast-region.css +20 -4
  95. package/styles/ui-tooltip.css +66 -15
  96. package/styles/ui-top-bar.css +38 -3
  97. package/styles/ui-tree-item.css +43 -12
  98. package/styles/ui-tree.css +33 -6
  99. package/vanilla/UiAvatarGroup.d.ts +1 -0
  100. package/vanilla/UiAvatarGroup.js +1 -1
  101. package/vue/UiActionBar.vue +12 -3
  102. package/vue/UiAvatar.vue +18 -0
  103. package/vue/UiAvatarGroup.d.ts +2 -0
  104. package/vue/UiAvatarGroup.vue +40 -4
  105. package/vue/UiBadge.vue +42 -0
  106. package/vue/UiButton.vue +70 -0
  107. package/vue/UiCallout.vue +55 -4
  108. package/vue/UiCheckbox.vue +15 -2
  109. package/vue/UiCluster.vue +6 -0
  110. package/vue/UiCombobox.vue +64 -10
  111. package/vue/UiContainer.vue +10 -0
  112. package/vue/UiContextMenu.vue +10 -1
  113. package/vue/UiDialog.vue +21 -4
  114. package/vue/UiDisclosure.vue +22 -3
  115. package/vue/UiEditorSlashMenu.vue +2 -2
  116. package/vue/UiEditorTableContextMenu.vue +2 -2
  117. package/vue/UiEditorTableOverlay.vue +8 -8
  118. package/vue/UiEditorTableToolbar.vue +3 -3
  119. package/vue/UiFloatingActionButton.vue +14 -0
  120. package/vue/UiFormField.vue +10 -1
  121. package/vue/UiGrid.vue +10 -0
  122. package/vue/UiIcon.vue +17 -3
  123. package/vue/UiIconButton.vue +81 -3
  124. package/vue/UiInput.vue +89 -14
  125. package/vue/UiInputGroup.vue +14 -13
  126. package/vue/UiList.vue +12 -2
  127. package/vue/UiListItem.vue +30 -9
  128. package/vue/UiMenu.vue +17 -5
  129. package/vue/UiMenuItem.vue +42 -4
  130. package/vue/UiNavItem.vue +17 -3
  131. package/vue/UiPopover.vue +6 -0
  132. package/vue/UiRadio.vue +15 -2
  133. package/vue/UiReel.vue +14 -1
  134. package/vue/UiSearchResultRow.vue +34 -0
  135. package/vue/UiSearchShell.vue +66 -12
  136. package/vue/UiSelect.vue +14 -0
  137. package/vue/UiSeparator.vue +9 -2
  138. package/vue/UiSidebar.vue +22 -1
  139. package/vue/UiStack.vue +6 -0
  140. package/vue/UiSwitch.vue +20 -2
  141. package/vue/UiSwitcher.vue +17 -4
  142. package/vue/UiTabs.vue +22 -3
  143. package/vue/UiTextarea.vue +14 -0
  144. package/vue/UiToastRegion.vue +16 -2
  145. package/vue/UiTooltip.vue +62 -13
  146. package/vue/UiTopBar.vue +34 -1
  147. package/vue/UiTree.vue +28 -5
  148. package/vue/UiTreeItem.vue +46 -11
  149. package/vue/chunks/UiActionBar.js +1 -1
  150. package/vue/chunks/UiAvatar.js +1 -1
  151. package/vue/chunks/UiAvatarGroup.js +8 -4
  152. package/vue/chunks/UiBadge.js +1 -1
  153. package/vue/chunks/UiButton.js +1 -1
  154. package/vue/chunks/UiCallout.js +1 -1
  155. package/vue/chunks/UiCheckbox.js +1 -1
  156. package/vue/chunks/UiCluster.js +1 -1
  157. package/vue/chunks/UiCombobox.js +1 -1
  158. package/vue/chunks/UiContainer.js +1 -1
  159. package/vue/chunks/UiContextMenu.js +1 -1
  160. package/vue/chunks/UiDialog.js +1 -1
  161. package/vue/chunks/UiDisclosure.js +1 -1
  162. package/vue/chunks/UiEditorSlashMenu.js +1 -1
  163. package/vue/chunks/UiEditorTableContextMenu.js +1 -1
  164. package/vue/chunks/UiEditorTableOverlay.js +1 -1
  165. package/vue/chunks/UiEditorTableToolbar.js +1 -1
  166. package/vue/chunks/UiFloatingActionButton.js +1 -1
  167. package/vue/chunks/UiFormField.js +1 -1
  168. package/vue/chunks/UiGrid.js +1 -1
  169. package/vue/chunks/UiIcon.js +1 -1
  170. package/vue/chunks/UiIconButton.js +1 -1
  171. package/vue/chunks/UiInput.js +1 -1
  172. package/vue/chunks/UiInputGroup.js +1 -1
  173. package/vue/chunks/UiList.js +1 -1
  174. package/vue/chunks/UiListItem.js +1 -1
  175. package/vue/chunks/UiMenu.js +1 -1
  176. package/vue/chunks/UiMenuItem.js +1 -1
  177. package/vue/chunks/UiNavItem.js +1 -1
  178. package/vue/chunks/UiPopover.js +1 -1
  179. package/vue/chunks/UiRadio.js +1 -1
  180. package/vue/chunks/UiReel.js +1 -1
  181. package/vue/chunks/UiSearchResultRow.js +1 -1
  182. package/vue/chunks/UiSearchShell.js +1 -1
  183. package/vue/chunks/UiSelect.js +1 -1
  184. package/vue/chunks/UiSeparator.js +1 -1
  185. package/vue/chunks/UiSidebar.js +1 -1
  186. package/vue/chunks/UiStack.js +1 -1
  187. package/vue/chunks/UiSwitch.js +1 -1
  188. package/vue/chunks/UiSwitcher.js +1 -1
  189. package/vue/chunks/UiTabs.js +1 -1
  190. package/vue/chunks/UiTextarea.js +1 -1
  191. package/vue/chunks/UiToastRegion.js +1 -1
  192. package/vue/chunks/UiTooltip.js +1 -1
  193. package/vue/chunks/UiTopBar.js +1 -1
  194. package/vue/chunks/UiTree.js +1 -1
  195. package/vue/chunks/UiTreeItem.js +1 -1
  196. package/vue/components.css +1934 -897
@@ -1,6 +1,24 @@
1
1
  /* Generated by HTML Next 1.0.0-alpha.5. Do not edit. */
2
+ @property --ui-list-item-gap {
3
+ syntax: "*";
4
+ inherits: false;
5
+ }
6
+ @property --ui-list-item-icon-size {
7
+ syntax: "*";
8
+ inherits: false;
9
+ }
10
+ @property --ui-list-item-padding-block {
11
+ syntax: "*";
12
+ inherits: false;
13
+ }
14
+ @property --ui-list-item-padding-inline {
15
+ syntax: "*";
16
+ inherits: false;
17
+ }
2
18
  @scope ([data-component~="ui-list-item"]) to ([data-component], [data-slotted]) {
3
- /* One entry in a list: something to recognise (leading, usually an icon), its name (the default
19
+ /* This component's hooks style the element they are set on, and never a nested one. */
20
+
21
+ /* One entry in a list: something to recognise (leading, usually an icon), its name (the default
4
22
  slot), one line about it (description), and what it offers (trailing, such as a button or a
5
23
  badge). The title and description are one line each and end in an ellipsis, so every item in a
6
24
  list has the same height.
@@ -10,6 +28,9 @@
10
28
  a router, a modified click, and "open in new tab" all work. Trailing controls sit above it and
11
29
  stay their own. */
12
30
  :scope {
31
+ /* Hooks do not inherit, so the parts below read them from the root. */
32
+ --_ui-list-item-icon-size: var(--ui-list-item-icon-size);
33
+
13
34
  position: relative;
14
35
  box-sizing: border-box;
15
36
  display: flex;
@@ -58,7 +79,7 @@
58
79
 
59
80
  .leading {
60
81
  color: var(--ui-text-muted);
61
- font-size: var(--ui-list-item-icon-size, var(--ui-font-size-lg));
82
+ font-size: var(--_ui-list-item-icon-size, var(--ui-font-size-lg));
62
83
  }
63
84
 
64
85
  /* Trailing controls take their own clicks, above the title link's stretched hit area. */
@@ -111,7 +132,9 @@
111
132
  }
112
133
  }
113
134
  @scope ([data-component~="ui-list-item"]) to ([data-component]) {
114
- /* One entry in a list: something to recognise (leading, usually an icon), its name (the default
135
+ /* This component's hooks style the element they are set on, and never a nested one. */
136
+
137
+ /* One entry in a list: something to recognise (leading, usually an icon), its name (the default
115
138
  slot), one line about it (description), and what it offers (trailing, such as a button or a
116
139
  badge). The title and description are one line each and end in an ellipsis, so every item in a
117
140
  list has the same height.
@@ -1,6 +1,16 @@
1
1
  /* Generated by HTML Next 1.0.0-alpha.5. Do not edit. */
2
+ @property --ui-list-gap {
3
+ syntax: "*";
4
+ inherits: false;
5
+ }
6
+ @property --ui-list-min-item-width {
7
+ syntax: "*";
8
+ inherits: false;
9
+ }
2
10
  @scope ([data-component~="ui-list"]) to ([data-component], [data-slotted]) {
3
- /* A list of items (ui-list-item). It owns the spacing between them, so a view never sets it. The
11
+ /* This component's hooks style the element they are set on, and never a nested one. */
12
+
13
+ /* A list of items (ui-list-item). It owns the spacing between them, so a view never sets it. The
4
14
  explicit list role keeps the list announced as one: some browsers drop it from a list with no
5
15
  markers. */
6
16
  :scope {
@@ -34,7 +44,9 @@
34
44
  }
35
45
  }
36
46
  @scope ([data-component~="ui-list"]) to ([data-component]) {
37
- /* A list of items (ui-list-item). It owns the spacing between them, so a view never sets it. The
47
+ /* This component's hooks style the element they are set on, and never a nested one. */
48
+
49
+ /* A list of items (ui-list-item). It owns the spacing between them, so a view never sets it. The
38
50
  explicit list role keeps the list announced as one: some browsers drop it from a list with no
39
51
  markers. */
40
52
 
@@ -1,14 +1,41 @@
1
1
  /* Generated by HTML Next 1.0.0-alpha.5. Do not edit. */
2
+ @property --ui-menu-item-font-size {
3
+ syntax: "*";
4
+ inherits: false;
5
+ }
6
+ @property --ui-menu-item-hover-surface {
7
+ syntax: "*";
8
+ inherits: false;
9
+ }
10
+ @property --ui-menu-item-min-block-size {
11
+ syntax: "*";
12
+ inherits: false;
13
+ }
14
+ @property --ui-menu-item-padding-block {
15
+ syntax: "*";
16
+ inherits: false;
17
+ }
18
+ @property --ui-menu-item-padding-inline {
19
+ syntax: "*";
20
+ inherits: false;
21
+ }
22
+ @property --ui-menu-item-radius {
23
+ syntax: "*";
24
+ inherits: false;
25
+ }
2
26
  @scope ([data-component~="ui-menu-item"]) to ([data-component], [data-slotted]) {
3
- :scope {
27
+ /* This component's hooks style the element they are set on, and never a nested one. */
28
+
29
+ :scope {
4
30
  display: block;
5
31
  box-sizing: border-box;
6
32
  width: 100%;
7
- padding: var(--ui-menu-item-padding-block, var(--ui-space-2)) var(--ui-menu-item-padding-inline, var(--ui-space-3));
33
+ padding: var(--ui-menu-item-padding-block, var(--_ui-default-menu-item-padding-block, var(--ui-space-2)))
34
+ var(--ui-menu-item-padding-inline, var(--_ui-default-menu-item-padding-inline, var(--ui-space-3)));
8
35
  text-align: left;
9
- border-radius: var(--ui-menu-item-radius, var(--ui-radius-md));
36
+ border-radius: var(--ui-menu-item-radius, var(--_ui-default-menu-item-radius, var(--ui-radius-md)));
10
37
  color: var(--ui-text-primary);
11
- font-size: var(--ui-menu-item-font-size, var(--ui-font-size-md));
38
+ font-size: var(--ui-menu-item-font-size, var(--_ui-default-menu-item-font-size, var(--ui-font-size-md)));
12
39
  font-weight: var(--ui-font-medium);
13
40
  cursor: pointer;
14
41
  outline: none;
@@ -43,7 +70,9 @@
43
70
  }
44
71
  }
45
72
  @scope ([data-component~="ui-menu-item"]) to ([data-component]) {
46
- /* Centre the glyphs, not the line box: a label without descenders otherwise reads high. */
73
+ /* This component's hooks style the element they are set on, and never a nested one. */
74
+
75
+ /* Centre the glyphs, not the line box: a label without descenders otherwise reads high. */
47
76
  /* Centre the glyphs, not the line box: a label without descenders otherwise reads high.
48
77
  * Trimming applies to block containers, so the box is a block with centred content. */
49
78
  @supports (text-box-trim: trim-both) {
@@ -1,16 +1,28 @@
1
1
  /* Generated by HTML Next 1.0.0-alpha.5. Do not edit. */
2
+ @property --ui-menu-viewport-gap {
3
+ syntax: "*";
4
+ inherits: false;
5
+ }
2
6
  @scope ([data-component~="ui-menu"]) to ([data-component], [data-slotted]) {
3
- /* Compact sets the part tokens its items read, so nothing has to rescale a global. */
7
+ /* This component's hooks style the element they are set on, and never a nested one. */
8
+
9
+ /* Compact sets its items' defaults, so nothing has to rescale a global; an item's own hooks
10
+ still win. */
4
11
  :scope[data-ui-menu-state~="density=compact"] {
5
- --ui-menu-item-padding-block: var(--ui-space-1);
6
- --ui-menu-item-padding-inline: var(--ui-space-2);
7
- --ui-menu-item-font-size: var(--ui-font-size-sm);
8
- --ui-menu-item-radius: var(--ui-radius-sm);
12
+ --_ui-default-menu-item-padding-block: var(--ui-space-1);
13
+ --_ui-default-menu-item-padding-inline: var(--ui-space-2);
14
+ --_ui-default-menu-item-font-size: var(--ui-font-size-sm);
15
+ --_ui-default-menu-item-radius: var(--ui-radius-sm);
9
16
  padding: var(--ui-space-1);
10
17
  gap: 0;
11
18
  }
12
19
 
13
20
  :scope {
21
+ /* A menu nested in a compact one starts again from its own density. */
22
+ --_ui-default-menu-item-padding-block: initial;
23
+ --_ui-default-menu-item-padding-inline: initial;
24
+ --_ui-default-menu-item-font-size: initial;
25
+ --_ui-default-menu-item-radius: initial;
14
26
  display: flex;
15
27
  flex-direction: column;
16
28
  box-sizing: border-box;
@@ -82,7 +94,10 @@
82
94
  }
83
95
  }
84
96
  @scope ([data-component~="ui-menu"]) to ([data-component]) {
85
- /* Compact sets the part tokens its items read, so nothing has to rescale a global. */
97
+ /* This component's hooks style the element they are set on, and never a nested one. */
98
+
99
+ /* Compact sets its items' defaults, so nothing has to rescale a global; an item's own hooks
100
+ still win. */
86
101
 
87
102
  @starting-style {
88
103
  }
@@ -1,6 +1,20 @@
1
1
  /* Generated by HTML Next 1.0.0-alpha.5. Do not edit. */
2
+ @property --ui-nav-item-current-surface {
3
+ syntax: "*";
4
+ inherits: false;
5
+ }
6
+ @property --ui-nav-item-indicator-color {
7
+ syntax: "*";
8
+ inherits: false;
9
+ }
10
+ @property --ui-nav-item-indicator-width {
11
+ syntax: "*";
12
+ inherits: false;
13
+ }
2
14
  @scope ([data-component~="ui-nav-item"]) to ([data-component], [data-slotted]) {
3
- /* One destination in a side or rail navigation: an icon to find it by (leading), its name (the
15
+ /* This component's hooks style the element they are set on, and never a nested one. */
16
+
17
+ /* One destination in a side or rail navigation: an icon to find it by (leading), its name (the
4
18
  default slot), and an optional line under it (description), such as the record a section
5
19
  belongs to. Label and description are one line each and end in an ellipsis, so every item in a
6
20
  navigation has the same height and the rail never grows sideways. */
@@ -120,7 +134,9 @@
120
134
  }
121
135
  }
122
136
  @scope ([data-component~="ui-nav-item"]) to ([data-component]) {
123
- /* One destination in a side or rail navigation: an icon to find it by (leading), its name (the
137
+ /* This component's hooks style the element they are set on, and never a nested one. */
138
+
139
+ /* One destination in a side or rail navigation: an icon to find it by (leading), its name (the
124
140
  default slot), and an optional line under it (description), such as the record a section
125
141
  belongs to. Label and description are one line each and end in an ellipsis, so every item in a
126
142
  navigation has the same height and the rail never grows sideways. */
@@ -1,6 +1,12 @@
1
1
  /* Generated by HTML Next 1.0.0-alpha.5. Do not edit. */
2
+ @property --ui-popover-viewport-gap {
3
+ syntax: "*";
4
+ inherits: false;
5
+ }
2
6
  @scope ([data-component~="ui-popover"]) to ([data-component], [data-slotted]) {
3
- :scope {
7
+ /* This component's hooks style the element they are set on, and never a nested one. */
8
+
9
+ :scope {
4
10
  box-sizing: border-box;
5
11
  max-inline-size: min(
6
12
  20rem,
@@ -68,7 +74,9 @@
68
74
  }
69
75
  }
70
76
  @scope ([data-component~="ui-popover"]) to ([data-component]) {
71
- @starting-style {
77
+ /* This component's hooks style the element they are set on, and never a nested one. */
78
+
79
+ @starting-style {
72
80
  }
73
81
 
74
82
  @media (prefers-reduced-motion: reduce) {
@@ -1,6 +1,19 @@
1
1
  /* Generated by HTML Next 1.0.0-alpha.5. Do not edit. */
2
+ @property --ui-radio-gap {
3
+ syntax: "*";
4
+ inherits: false;
5
+ }
6
+ @property --ui-radio-size {
7
+ syntax: "*";
8
+ inherits: false;
9
+ }
2
10
  @scope ([data-component~="ui-radio"]) to ([data-component], [data-slotted]) {
3
- :scope {
11
+ /* This component's hooks style the element they are set on, and never a nested one. */
12
+
13
+ :scope {
14
+ /* Hooks do not inherit, so the parts below read them from the root. */
15
+ --_ui-radio-size: var(--ui-radio-size);
16
+
4
17
  display: inline-flex;
5
18
  align-items: flex-start;
6
19
  gap: var(--ui-radio-gap, var(--ui-space-2));
@@ -34,8 +47,8 @@
34
47
 
35
48
  input {
36
49
  flex: 0 0 auto;
37
- inline-size: var(--ui-radio-size, 1.125rem);
38
- block-size: var(--ui-radio-size, 1.125rem);
50
+ inline-size: var(--_ui-radio-size, 1.125rem);
51
+ block-size: var(--_ui-radio-size, 1.125rem);
39
52
  margin: 0.125em 0 0;
40
53
  accent-color: var(--ui-accent-solid);
41
54
  cursor: pointer;
@@ -60,7 +73,9 @@
60
73
  }
61
74
  }
62
75
  @scope ([data-component~="ui-radio"]) to ([data-component]) {
63
- /* The label, and under it an optional line saying what the choice means. */
76
+ /* This component's hooks style the element they are set on, and never a nested one. */
77
+
78
+ /* The label, and under it an optional line saying what the choice means. */
64
79
 
65
80
  /* A component that sets its display still honours the hidden attribute on its root. */
66
81
  }
@@ -1,6 +1,19 @@
1
1
  /* Generated by HTML Next 1.0.0-alpha.5. Do not edit. */
2
+ @property --ui-reel-gap {
3
+ syntax: "*";
4
+ inherits: false;
5
+ }
6
+ @property --ui-reel-item-width {
7
+ syntax: "*";
8
+ inherits: false;
9
+ }
2
10
  @scope ([data-component~="ui-reel"]) to ([data-component], [data-slotted]) {
3
- :scope {
11
+ /* This component's hooks style the element they are set on, and never a nested one. */
12
+
13
+ :scope {
14
+ /* Hooks do not inherit, so the parts below read them from the root. */
15
+ --_ui-reel-item-width: var(--ui-reel-item-width);
16
+
4
17
  --_reel-gap: var(--ui-space-4);
5
18
  --_reel-item-width: auto;
6
19
  display: flex;
@@ -72,11 +85,13 @@
72
85
  }
73
86
  }
74
87
  @scope ([data-component~="ui-reel"]) to ([data-component]) {
75
- /* Each end that hides items fades: the scroll fade every Looma scroller uses (see ui-scroll-area). */
88
+ /* This component's hooks style the element they are set on, and never a nested one. */
89
+
90
+ /* Each end that hides items fades: the scroll fade every Looma scroller uses (see ui-scroll-area). */
76
91
 
77
92
  :scope > :where([data-slotted], [data-slotted] *):is(*) {
78
93
  min-inline-size: 0;
79
- flex: 0 0 var(--ui-reel-item-width, var(--_reel-item-width));
94
+ flex: 0 0 var(--_ui-reel-item-width, var(--_reel-item-width));
80
95
  }
81
96
  :scope[data-ui-reel-state~="snap=start"] > :where([data-slotted], [data-slotted] *):is(*) {
82
97
  scroll-snap-align: start;
@@ -1,6 +1,40 @@
1
1
  /* Generated by HTML Next 1.0.0-alpha.5. Do not edit. */
2
+ @property --ui-search-result-row-border {
3
+ syntax: "*";
4
+ inherits: false;
5
+ }
6
+ @property --ui-search-result-row-gap {
7
+ syntax: "*";
8
+ inherits: false;
9
+ }
10
+ @property --ui-search-result-row-hover-surface {
11
+ syntax: "*";
12
+ inherits: false;
13
+ }
14
+ @property --ui-search-result-row-min-height {
15
+ syntax: "*";
16
+ inherits: false;
17
+ }
18
+ @property --ui-search-result-row-padding-block {
19
+ syntax: "*";
20
+ inherits: false;
21
+ }
22
+ @property --ui-search-result-row-padding-inline {
23
+ syntax: "*";
24
+ inherits: false;
25
+ }
26
+ @property --ui-search-result-row-selected-bg {
27
+ syntax: "*";
28
+ inherits: false;
29
+ }
30
+ @property --ui-search-result-row-surface {
31
+ syntax: "*";
32
+ inherits: false;
33
+ }
2
34
  @scope ([data-component~="ui-search-result-row"]) to ([data-component], [data-slotted]) {
3
- :scope {
35
+ /* This component's hooks style the element they are set on, and never a nested one. */
36
+
37
+ :scope {
4
38
  appearance: none;
5
39
  inline-size: 100%;
6
40
  min-block-size: var(--ui-search-result-row-min-height, 56px);
@@ -79,7 +113,9 @@
79
113
  }
80
114
  }
81
115
  @scope ([data-component~="ui-search-result-row"]) to ([data-component]) {
82
- /* An unused region takes no space. */
116
+ /* This component's hooks style the element they are set on, and never a nested one. */
117
+
118
+ /* An unused region takes no space. */
83
119
 
84
120
  :where([data-slotted], [data-slotted] *):is([slot="title"]),
85
121
  :where([data-slotted], [data-slotted] *):is([slot="meta"]),
@@ -1,21 +1,75 @@
1
1
  /* Generated by HTML Next 1.0.0-alpha.5. Do not edit. */
2
+ @property --ui-search-shell-border {
3
+ syntax: "*";
4
+ inherits: false;
5
+ }
6
+ @property --ui-search-shell-focus-color {
7
+ syntax: "*";
8
+ inherits: false;
9
+ }
10
+ @property --ui-search-shell-max-height {
11
+ syntax: "*";
12
+ inherits: false;
13
+ }
14
+ @property --ui-search-shell-max-width {
15
+ syntax: "*";
16
+ inherits: false;
17
+ }
18
+ @property --ui-search-shell-padding-top {
19
+ syntax: "*";
20
+ inherits: false;
21
+ }
22
+ @property --ui-search-shell-radius {
23
+ syntax: "*";
24
+ inherits: false;
25
+ }
26
+ @property --ui-search-shell-shadow {
27
+ syntax: "*";
28
+ inherits: false;
29
+ }
30
+ @property --ui-search-shell-surface {
31
+ syntax: "*";
32
+ inherits: false;
33
+ }
34
+ @property --ui-search-shell-viewport-gap {
35
+ syntax: "*";
36
+ inherits: false;
37
+ }
38
+ @property --ui-search-shell-z-index {
39
+ syntax: "*";
40
+ inherits: false;
41
+ }
2
42
  @scope ([data-component~="ui-search-shell"]) to ([data-component], [data-slotted]) {
3
- :scope {
43
+ /* This component's hooks style the element they are set on, and never a nested one. */
44
+
45
+ :scope {
46
+ /* Hooks do not inherit, so the parts below read them from the root. */
47
+ --_ui-search-shell-z-index: var(--ui-search-shell-z-index);
48
+ --_ui-search-shell-padding-top: var(--ui-search-shell-padding-top);
49
+ --_ui-search-shell-viewport-gap: var(--ui-search-shell-viewport-gap);
50
+ --_ui-search-shell-max-width: var(--ui-search-shell-max-width);
51
+ --_ui-search-shell-max-height: var(--ui-search-shell-max-height);
52
+ --_ui-search-shell-surface: var(--ui-search-shell-surface);
53
+ --_ui-search-shell-border: var(--ui-search-shell-border);
54
+ --_ui-search-shell-radius: var(--ui-search-shell-radius);
55
+ --_ui-search-shell-shadow: var(--ui-search-shell-shadow);
56
+ --_ui-search-shell-focus-color: var(--ui-search-shell-focus-color);
57
+
4
58
  display: contents;
5
59
  }
6
60
 
7
61
  dialog {
8
62
  position: fixed;
9
63
  inset: 0;
10
- z-index: var(--ui-search-shell-z-index, 400);
64
+ z-index: var(--_ui-search-shell-z-index, 400);
11
65
  box-sizing: border-box;
12
66
  inline-size: 100%;
13
67
  max-inline-size: none;
14
68
  block-size: 100%;
15
69
  max-block-size: none;
16
70
  margin: 0;
17
- padding: var(--ui-search-shell-padding-top, 10vh) var(--ui-search-shell-viewport-gap, var(--ui-space-4))
18
- var(--ui-search-shell-viewport-gap, var(--ui-space-4));
71
+ padding: var(--_ui-search-shell-padding-top, 10vh) var(--_ui-search-shell-viewport-gap, var(--ui-space-4))
72
+ var(--_ui-search-shell-viewport-gap, var(--ui-space-4));
19
73
  overflow: auto;
20
74
  border: 0;
21
75
  background: var(--ui-overlay-backdrop);
@@ -30,14 +84,14 @@
30
84
  position: relative;
31
85
  display: flex;
32
86
  flex-direction: column;
33
- inline-size: min(100%, var(--ui-search-shell-max-width, 40rem));
34
- max-block-size: var(--ui-search-shell-max-height, 80vh);
87
+ inline-size: min(100%, var(--_ui-search-shell-max-width, 40rem));
88
+ max-block-size: var(--_ui-search-shell-max-height, 80vh);
35
89
  margin-inline: auto;
36
90
  overflow: hidden;
37
- background: var(--ui-search-shell-surface, var(--ui-surface-elevated));
38
- border: 1px solid var(--ui-search-shell-border, var(--ui-border-default));
39
- border-radius: var(--ui-search-shell-radius, var(--ui-radius-dialog));
40
- box-shadow: var(--ui-search-shell-shadow, var(--ui-elevation-dialog, var(--ui-shadow-xl)));
91
+ background: var(--_ui-search-shell-surface, var(--ui-surface-elevated));
92
+ border: 1px solid var(--_ui-search-shell-border, var(--ui-border-default));
93
+ border-radius: var(--_ui-search-shell-radius, var(--ui-radius-dialog));
94
+ box-shadow: var(--_ui-search-shell-shadow, var(--ui-elevation-dialog, var(--ui-shadow-xl)));
41
95
  }
42
96
 
43
97
  .search {
@@ -48,8 +102,8 @@
48
102
 
49
103
  /* The search region shows where typing goes, whatever the author put in it. */
50
104
  .search:focus-within {
51
- border-block-end-color: var(--ui-search-shell-focus-color, var(--ui-control-focus));
52
- box-shadow: inset 0 -1px 0 var(--ui-search-shell-focus-color, var(--ui-control-focus));
105
+ border-block-end-color: var(--_ui-search-shell-focus-color, var(--ui-control-focus));
106
+ box-shadow: inset 0 -1px 0 var(--_ui-search-shell-focus-color, var(--ui-control-focus));
53
107
  }
54
108
 
55
109
  .status,
@@ -124,7 +178,9 @@
124
178
  }
125
179
  }
126
180
  @scope ([data-component~="ui-search-shell"]) to ([data-component]) {
127
- /* The search region shows where typing goes, whatever the author put in it. */
181
+ /* This component's hooks style the element they are set on, and never a nested one. */
182
+
183
+ /* The search region shows where typing goes, whatever the author put in it. */
128
184
 
129
185
  :where([data-slotted], [data-slotted] *):is(input[slot="search"]) {
130
186
  box-sizing: border-box;
@@ -1,6 +1,20 @@
1
1
  /* Generated by HTML Next 1.0.0-alpha.5. Do not edit. */
2
+ @property --ui-select-focus-shadow {
3
+ syntax: "*";
4
+ inherits: false;
5
+ }
6
+ @property --ui-select-radius {
7
+ syntax: "*";
8
+ inherits: false;
9
+ }
10
+ @property --ui-select-shadow {
11
+ syntax: "*";
12
+ inherits: false;
13
+ }
2
14
  @scope ([data-component~="ui-select"]) to ([data-component], [data-slotted]) {
3
- :scope {
15
+ /* This component's hooks style the element they are set on, and never a nested one. */
16
+
17
+ :scope {
4
18
  box-sizing: border-box;
5
19
  display: inline-block;
6
20
  inline-size: 100%;
@@ -76,7 +90,9 @@
76
90
  }
77
91
  }
78
92
  @scope ([data-component~="ui-select"]) to ([data-component]) {
79
- /* The select draws its own chevron: the native caret cannot be inset or sized consistently.
93
+ /* This component's hooks style the element they are set on, and never a nested one. */
94
+
95
+ /* The select draws its own chevron: the native caret cannot be inset or sized consistently.
80
96
  * The root stays a native <s-lect>, so the icon is a background image rather than an element. */
81
97
 
82
98
  /* The app's invalid flag, or the browser's own verdict once the user has left an invalid field. */
@@ -1,6 +1,13 @@
1
1
  /* Generated by HTML Next 1.0.0-alpha.5. Do not edit. */
2
+ @property --ui-separator-color {
3
+ syntax: "*";
4
+ inherits: false;
5
+ }
2
6
  @scope ([data-component~="ui-separator"]) to ([data-component], [data-slotted]) {
3
- hr {
7
+ /* This component's hooks style the element they are set on, and never a nested one. */
8
+
9
+ /* The root is the hr, so the rules name :host; a bare hr matches only a descendant. */
10
+ :scope {
4
11
  box-sizing: border-box;
5
12
  align-self: stretch;
6
13
  margin: 0;
@@ -8,9 +15,14 @@ hr {
8
15
  border-block-start: 1px solid var(--ui-separator-color, var(--ui-border-default));
9
16
  }
10
17
 
11
- hr[aria-orientation="vertical"] {
18
+ :scope[aria-orientation="vertical"] {
12
19
  block-size: auto;
13
20
  border-block-start: 0;
14
21
  border-inline-start: 1px solid var(--ui-separator-color, var(--ui-border-default));
15
22
  }
16
23
  }
24
+ @scope ([data-component~="ui-separator"]) to ([data-component]) {
25
+ /* This component's hooks style the element they are set on, and never a nested one. */
26
+
27
+ /* The root is the hr, so the rules name :host; a bare hr matches only a descendant. */
28
+ }
@@ -1,6 +1,27 @@
1
1
  /* Generated by HTML Next 1.0.0-alpha.5. Do not edit. */
2
+ @property --ui-sidebar-backdrop {
3
+ syntax: "*";
4
+ inherits: false;
5
+ }
6
+ @property --ui-sidebar-border {
7
+ syntax: "*";
8
+ inherits: false;
9
+ }
10
+ @property --ui-sidebar-surface {
11
+ syntax: "*";
12
+ inherits: false;
13
+ }
14
+ @property --ui-sidebar-width {
15
+ syntax: "*";
16
+ inherits: false;
17
+ }
2
18
  @scope ([data-component~="ui-sidebar"]) to ([data-component], [data-slotted]) {
3
- :scope {
19
+ /* This component's hooks style the element they are set on, and never a nested one. */
20
+
21
+ :scope {
22
+ /* Hooks do not inherit, so the parts below read them from the root. */
23
+ --_ui-sidebar-backdrop: var(--ui-sidebar-backdrop);
24
+
4
25
  position: relative;
5
26
  box-sizing: border-box;
6
27
  display: flex;
@@ -153,7 +174,7 @@
153
174
  }
154
175
 
155
176
  :scope[popover]::backdrop {
156
- background: var(--ui-sidebar-backdrop, rgb(0 0 0 / 0.32));
177
+ background: var(--_ui-sidebar-backdrop, rgb(0 0 0 / 0.32));
157
178
  }
158
179
 
159
180
  @media (prefers-reduced-motion: reduce) {
@@ -168,7 +189,9 @@
168
189
  }
169
190
  }
170
191
  @scope ([data-component~="ui-sidebar"]) to ([data-component]) {
171
- /* The panel's content scrolls, and each edge that hides content fades: the scroll fade every
192
+ /* This component's hooks style the element they are set on, and never a nested one. */
193
+
194
+ /* The panel's content scrolls, and each edge that hides content fades: the scroll fade every
172
195
  Looma scroller uses (see ui-scroll-area). */
173
196
 
174
197
  /* Collapsed while docked. */
@@ -1,6 +1,12 @@
1
1
  /* Generated by HTML Next 1.0.0-alpha.5. Do not edit. */
2
+ @property --ui-stack-gap {
3
+ syntax: "*";
4
+ inherits: false;
5
+ }
2
6
  @scope ([data-component~="ui-stack"]) to ([data-component], [data-slotted]) {
3
- :scope {
7
+ /* This component's hooks style the element they are set on, and never a nested one. */
8
+
9
+ :scope {
4
10
  --_layout-gap: var(--ui-space-4);
5
11
  display: flex;
6
12
  flex-direction: column;
@@ -51,5 +57,7 @@
51
57
  }
52
58
  }
53
59
  @scope ([data-component~="ui-stack"]) to ([data-component]) {
54
- /* A component that sets its display still honours the hidden attribute on its root. */
60
+ /* This component's hooks style the element they are set on, and never a nested one. */
61
+
62
+ /* A component that sets its display still honours the hidden attribute on its root. */
55
63
  }