@kerfjs/ui 5.0.0-beta.49 → 5.0.0-beta.50

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 (257) hide show
  1. package/README.md +41 -11
  2. package/ai/catalog-authoring.json +12 -1
  3. package/ai/catalog-authoring.schema.json +49 -1
  4. package/ai/compile-time-contracts-v1.json +14 -0
  5. package/ai/compile-time-contracts-v1.schema.json +1 -0
  6. package/ai/component-catalog-v2-overrides.json +7 -0
  7. package/ai/component-catalog-v2.json +79 -23
  8. package/ai/component-catalog.json +86 -27
  9. package/ai/public-api-signatures-v1.md +217 -169
  10. package/ai/skill.md +23 -9
  11. package/ai/webawesome-jsx-signatures-v1.md +1 -1
  12. package/dist/app-tab.d.ts +3 -1
  13. package/dist/app-tab.js +1 -1
  14. package/dist/badge.d.ts +24 -0
  15. package/dist/badge.js +3 -0
  16. package/dist/badge.js.map +1 -0
  17. package/dist/browser/badge.js +3 -0
  18. package/dist/browser/list-header.js +1 -0
  19. package/dist/browser/state-banner.js +1 -0
  20. package/dist/catalog-resources.d.ts +2 -2
  21. package/dist/catalog.d.ts +24 -125
  22. package/dist/catalog.js +387 -261
  23. package/dist/catalog.js.map +1 -1
  24. package/dist/{chunk-OGTJNHRG.js → chunk-2WMSE4MK.js} +5 -3
  25. package/dist/chunk-2WMSE4MK.js.map +1 -0
  26. package/dist/{chunk-GYGM363P.js → chunk-2YOUUEWR.js} +16 -6
  27. package/dist/chunk-2YOUUEWR.js.map +1 -0
  28. package/dist/{chunk-UDHHKZWO.js → chunk-3V75EQIP.js} +8 -4
  29. package/dist/chunk-3V75EQIP.js.map +1 -0
  30. package/dist/{chunk-W2FK7ZNY.js → chunk-4R777DUZ.js} +10 -2
  31. package/dist/chunk-4R777DUZ.js.map +1 -0
  32. package/dist/{chunk-T7DOWS6T.js → chunk-54HM36IQ.js} +6 -3
  33. package/dist/chunk-54HM36IQ.js.map +1 -0
  34. package/dist/{chunk-DAO2VFTT.js → chunk-5CE64WGC.js} +6 -4
  35. package/dist/chunk-5CE64WGC.js.map +1 -0
  36. package/dist/{chunk-SOK5EUF7.js → chunk-6ZXOQEAN.js} +4 -2
  37. package/dist/chunk-6ZXOQEAN.js.map +1 -0
  38. package/dist/{chunk-OGNE3OFT.js → chunk-AQSKJ6U6.js} +4 -2
  39. package/dist/chunk-AQSKJ6U6.js.map +1 -0
  40. package/dist/{chunk-VDUJZF5G.js → chunk-CMUIXJZM.js} +2 -2
  41. package/dist/{chunk-VDUJZF5G.js.map → chunk-CMUIXJZM.js.map} +1 -1
  42. package/dist/{chunk-OMSRSL3B.js → chunk-COUPLRZG.js} +5 -3
  43. package/dist/chunk-COUPLRZG.js.map +1 -0
  44. package/dist/{chunk-2TYUFZUC.js → chunk-D7GWXIAS.js} +4 -2
  45. package/dist/chunk-D7GWXIAS.js.map +1 -0
  46. package/dist/{chunk-AQFWBG23.js → chunk-DARTMI5Z.js} +5 -3
  47. package/dist/chunk-DARTMI5Z.js.map +1 -0
  48. package/dist/{chunk-V6GQKOX2.js → chunk-DJKWFYAA.js} +5 -3
  49. package/dist/chunk-DJKWFYAA.js.map +1 -0
  50. package/dist/{chunk-6NDBE2OK.js → chunk-E36EVCKG.js} +5 -3
  51. package/dist/chunk-E36EVCKG.js.map +1 -0
  52. package/dist/{chunk-IU4QUY5I.js → chunk-ELRMBQEC.js} +4 -2
  53. package/dist/chunk-ELRMBQEC.js.map +1 -0
  54. package/dist/{chunk-TIGSG6BX.js → chunk-HJKRCKDR.js} +7 -3
  55. package/dist/chunk-HJKRCKDR.js.map +1 -0
  56. package/dist/{chunk-Y6LYKFXY.js → chunk-HMQ2ZDGG.js} +5 -3
  57. package/dist/chunk-HMQ2ZDGG.js.map +1 -0
  58. package/dist/{chunk-WN52USHV.js → chunk-J3EE6XWD.js} +2 -2
  59. package/dist/{chunk-WN52USHV.js.map → chunk-J3EE6XWD.js.map} +1 -1
  60. package/dist/{chunk-CK6P5AUK.js → chunk-KKNK3JUT.js} +7 -4
  61. package/dist/chunk-KKNK3JUT.js.map +1 -0
  62. package/dist/{chunk-ZPWZIVI6.js → chunk-N3GKMPDW.js} +7 -3
  63. package/dist/chunk-N3GKMPDW.js.map +1 -0
  64. package/dist/{chunk-DYBPI5O2.js → chunk-NDUGJ4TU.js} +4 -2
  65. package/dist/chunk-NDUGJ4TU.js.map +1 -0
  66. package/dist/{chunk-WSXUPSID.js → chunk-NN6GYOA2.js} +7 -3
  67. package/dist/chunk-NN6GYOA2.js.map +1 -0
  68. package/dist/{chunk-VXFGMDA7.js → chunk-OQI7RCRP.js} +10 -2
  69. package/dist/chunk-OQI7RCRP.js.map +1 -0
  70. package/dist/{chunk-E34TE2ZI.js → chunk-S6ZTTTV7.js} +5 -3
  71. package/dist/chunk-S6ZTTTV7.js.map +1 -0
  72. package/dist/{chunk-V6HCTCVD.js → chunk-SIU2AC5W.js} +8 -4
  73. package/dist/chunk-SIU2AC5W.js.map +1 -0
  74. package/dist/{chunk-WVLMZ5SG.js → chunk-UMGY5JSP.js} +4 -2
  75. package/dist/chunk-UMGY5JSP.js.map +1 -0
  76. package/dist/{chunk-I4V3UDSA.js → chunk-V6RZWDII.js} +7 -5
  77. package/dist/chunk-V6RZWDII.js.map +1 -0
  78. package/dist/{chunk-CAB6NQ2T.js → chunk-VOCPXGQN.js} +3 -1
  79. package/dist/chunk-VOCPXGQN.js.map +1 -0
  80. package/dist/chunk-XD7DWYXG.js +34 -0
  81. package/dist/chunk-XD7DWYXG.js.map +1 -0
  82. package/dist/{chunk-B6JYRX3P.js → chunk-ZIYOJFZD.js} +43 -4
  83. package/dist/chunk-ZIYOJFZD.js.map +1 -0
  84. package/dist/{chunk-EYALJQQD.js → chunk-ZK5EGVFP.js} +4 -2
  85. package/dist/chunk-ZK5EGVFP.js.map +1 -0
  86. package/dist/{chunk-6WTETUZ6.js → chunk-ZLWQZUGF.js} +8 -2
  87. package/dist/chunk-ZLWQZUGF.js.map +1 -0
  88. package/dist/{chunk-XKFRMGMW.js → chunk-ZNZ2JDBW.js} +3 -1
  89. package/dist/chunk-ZNZ2JDBW.js.map +1 -0
  90. package/dist/{chunk-I45QO2IZ.js → chunk-ZSYLBVWG.js} +6 -4
  91. package/dist/chunk-ZSYLBVWG.js.map +1 -0
  92. package/dist/collapsible-panel.d.ts +3 -1
  93. package/dist/collapsible-panel.js +4 -2
  94. package/dist/collapsible-panel.js.map +1 -1
  95. package/dist/disclosure-arrow.d.ts +3 -1
  96. package/dist/disclosure-arrow.js +1 -1
  97. package/dist/empty-state.d.ts +3 -1
  98. package/dist/empty-state.js +1 -1
  99. package/dist/floating-toolbar.d.ts +3 -1
  100. package/dist/floating-toolbar.js +1 -1
  101. package/dist/grid.d.ts +3 -1
  102. package/dist/grid.js +1 -1
  103. package/dist/index.d.ts +3 -2
  104. package/dist/index.js +33 -32
  105. package/dist/list-action-row.d.ts +3 -1
  106. package/dist/list-action-row.js +1 -1
  107. package/dist/list-header.d.ts +6 -1
  108. package/dist/list-header.js +2 -1
  109. package/dist/list-inset-control.d.ts +3 -1
  110. package/dist/list-inset-control.js +1 -1
  111. package/dist/list-inset-text.d.ts +3 -1
  112. package/dist/list-inset-text.js +1 -1
  113. package/dist/list-item.d.ts +3 -1
  114. package/dist/list-item.js +1 -1
  115. package/dist/list.d.ts +3 -1
  116. package/dist/list.js +1 -1
  117. package/dist/loading-spinner.d.ts +3 -1
  118. package/dist/loading-spinner.js +1 -1
  119. package/dist/lucide-icon.d.ts +3 -1
  120. package/dist/lucide-icon.js +1 -1
  121. package/dist/nav-stack.d.ts +3 -1
  122. package/dist/nav-stack.js +1 -1
  123. package/dist/pane.d.ts +3 -1
  124. package/dist/pane.js +1 -1
  125. package/dist/resizable-region.d.ts +5 -2
  126. package/dist/resizable-region.js +1 -1
  127. package/dist/row.d.ts +3 -1
  128. package/dist/row.js +1 -1
  129. package/dist/segmented-control.d.ts +3 -1
  130. package/dist/segmented-control.js +1 -1
  131. package/dist/select.d.ts +3 -1
  132. package/dist/select.js +1 -1
  133. package/dist/skeleton.d.ts +3 -1
  134. package/dist/skeleton.js +1 -1
  135. package/dist/spacer.d.ts +3 -1
  136. package/dist/spacer.js +1 -1
  137. package/dist/split-view.d.ts +3 -1
  138. package/dist/split-view.js +24 -5
  139. package/dist/split-view.js.map +1 -1
  140. package/dist/state-banner.d.ts +3 -1
  141. package/dist/state-banner.js +2 -1
  142. package/dist/styles/badge.css +86 -0
  143. package/dist/styles/catalog/components/catalog-detail.css +35 -0
  144. package/dist/styles/catalog/components/catalog-example-stack.css +6 -0
  145. package/dist/styles/catalog/components/catalog-example.css +35 -0
  146. package/dist/styles/catalog/components/catalog-resource-footer.css +37 -0
  147. package/dist/styles/catalog/components/catalog-secondary-sections.css +38 -0
  148. package/dist/styles/catalog/components/catalog-section-list.css +22 -0
  149. package/dist/styles/catalog/components/catalog-sidebar.css +82 -0
  150. package/dist/styles/catalog/components/catalog-stage.css +60 -0
  151. package/dist/styles/catalog/components/catalog.css +22 -0
  152. package/dist/styles/catalog.css +10 -587
  153. package/dist/styles/list-header.css +4 -60
  154. package/dist/styles/resizable-region.css +24 -0
  155. package/dist/styles/select.css +0 -3
  156. package/dist/styles/split-view.css +1 -1
  157. package/dist/styles/state-banner.css +0 -27
  158. package/dist/styles/styles.css +1 -0
  159. package/dist/styles/tab-bar.css +6 -1
  160. package/dist/styles/text.css +4 -0
  161. package/dist/styles/token-search-field.css +5 -40
  162. package/dist/styles/toolbar-control-group.css +110 -16
  163. package/dist/styles/toolbar-text.css +4 -0
  164. package/dist/styles/toolbar.css +72 -0
  165. package/dist/styles/webawesome.css +22 -7
  166. package/dist/sunken-panel.d.ts +3 -1
  167. package/dist/sunken-panel.js +1 -1
  168. package/dist/surface-scaffold.d.ts +6 -2
  169. package/dist/surface-scaffold.js +1 -1
  170. package/dist/tab-bar.d.ts +8 -1
  171. package/dist/tab-bar.js +1 -1
  172. package/dist/tab-scaffold.d.ts +3 -1
  173. package/dist/tab-scaffold.js +3 -1
  174. package/dist/tab-scaffold.js.map +1 -1
  175. package/dist/text.d.ts +5 -2
  176. package/dist/text.js +1 -1
  177. package/dist/token-search-field.d.ts +5 -1
  178. package/dist/token-search-field.js +1 -1
  179. package/dist/toolbar-control-group.d.ts +33 -3
  180. package/dist/toolbar-control-group.js +1 -1
  181. package/dist/toolbar-text.d.ts +3 -1
  182. package/dist/toolbar-text.js +1 -1
  183. package/dist/toolbar.d.ts +9 -1
  184. package/dist/toolbar.js +1 -1
  185. package/dist/types-CzgSrFXP.d.ts +64 -0
  186. package/dist/value-table.d.ts +6 -2
  187. package/dist/value-table.js +1 -1
  188. package/dist/wire-resizable-regions.js +1 -1
  189. package/dist/wire-token-search-fields.js +1 -1
  190. package/dist/workbench.d.ts +3 -1
  191. package/dist/workbench.js +3 -1
  192. package/dist/workbench.js.map +1 -1
  193. package/docs/accessibility.md +11 -1
  194. package/docs/catalog.md +25 -7
  195. package/docs/component-contract.md +71 -22
  196. package/docs/component-selection.md +11 -9
  197. package/docs/design-philosophy.md +6 -5
  198. package/docs/recipes.md +5 -5
  199. package/docs/type-contracts.md +1 -0
  200. package/docs/ux-demo.md +4 -4
  201. package/docs/webawesome-theme.md +5 -4
  202. package/llms.txt +30 -10
  203. package/package.json +9 -2
  204. package/ux-demo/recipes/app-shell.css +87 -0
  205. package/ux-demo/recipes/app-shell.tsx +207 -178
  206. package/ux-demo/recipes/collapsible-sidebar.css +83 -0
  207. package/ux-demo/recipes/collapsible-sidebar.tsx +152 -122
  208. package/ux-demo/recipes/compact-toolbar.css +35 -0
  209. package/ux-demo/recipes/compact-toolbar.tsx +104 -100
  210. package/ux-demo/recipes/composer-form.css +19 -0
  211. package/ux-demo/recipes/composer-form.tsx +19 -15
  212. package/ux-demo/recipes/list-detail-dialog.css +42 -0
  213. package/ux-demo/recipes/list-detail-dialog.tsx +127 -125
  214. package/ux-demo/recipes/list-workspace-states.css +30 -0
  215. package/ux-demo/recipes/list-workspace-states.tsx +66 -60
  216. package/ux-demo/recipes/loading-inspector.css +7 -0
  217. package/ux-demo/recipes/loading-inspector.tsx +151 -131
  218. package/ux-demo/recipes/navigation-sidebar.css +12 -0
  219. package/ux-demo/recipes/navigation-sidebar.tsx +116 -105
  220. package/ux-demo/recipes/navigation-stack.css +12 -0
  221. package/ux-demo/recipes/navigation-stack.tsx +47 -37
  222. package/ux-demo/recipes/recipe-root.css +67 -0
  223. package/ux-demo/recipes/recipe-root.tsx +87 -0
  224. package/ux-demo/recipes/workspace-header.css +7 -0
  225. package/ux-demo/recipes/workspace-header.tsx +60 -61
  226. package/dist/chunk-2TYUFZUC.js.map +0 -1
  227. package/dist/chunk-6NDBE2OK.js.map +0 -1
  228. package/dist/chunk-6WTETUZ6.js.map +0 -1
  229. package/dist/chunk-AQFWBG23.js.map +0 -1
  230. package/dist/chunk-B6JYRX3P.js.map +0 -1
  231. package/dist/chunk-CAB6NQ2T.js.map +0 -1
  232. package/dist/chunk-CK6P5AUK.js.map +0 -1
  233. package/dist/chunk-DAO2VFTT.js.map +0 -1
  234. package/dist/chunk-DYBPI5O2.js.map +0 -1
  235. package/dist/chunk-E34TE2ZI.js.map +0 -1
  236. package/dist/chunk-EYALJQQD.js.map +0 -1
  237. package/dist/chunk-GYGM363P.js.map +0 -1
  238. package/dist/chunk-I45QO2IZ.js.map +0 -1
  239. package/dist/chunk-I4V3UDSA.js.map +0 -1
  240. package/dist/chunk-IU4QUY5I.js.map +0 -1
  241. package/dist/chunk-OGNE3OFT.js.map +0 -1
  242. package/dist/chunk-OGTJNHRG.js.map +0 -1
  243. package/dist/chunk-OMSRSL3B.js.map +0 -1
  244. package/dist/chunk-SOK5EUF7.js.map +0 -1
  245. package/dist/chunk-T7DOWS6T.js.map +0 -1
  246. package/dist/chunk-TIGSG6BX.js.map +0 -1
  247. package/dist/chunk-UDHHKZWO.js.map +0 -1
  248. package/dist/chunk-V6GQKOX2.js.map +0 -1
  249. package/dist/chunk-V6HCTCVD.js.map +0 -1
  250. package/dist/chunk-VXFGMDA7.js.map +0 -1
  251. package/dist/chunk-W2FK7ZNY.js.map +0 -1
  252. package/dist/chunk-WSXUPSID.js.map +0 -1
  253. package/dist/chunk-WVLMZ5SG.js.map +0 -1
  254. package/dist/chunk-XKFRMGMW.js.map +0 -1
  255. package/dist/chunk-Y6LYKFXY.js.map +0 -1
  256. package/dist/chunk-ZPWZIVI6.js.map +0 -1
  257. package/ux-demo/recipes/recipes.css +0 -453
@@ -1,453 +0,0 @@
1
- .kui-recipe {
2
- width: 100%;
3
- min-width: 0;
4
- color: var(--kui-color-text);
5
- container-type: inline-size;
6
- }
7
- .kui-recipe button {
8
- font: inherit;
9
- }
10
- .kui-recipe__button {
11
- min-height: 2rem;
12
- padding: var(--kui-space-xs) var(--kui-space-s);
13
- border: 1px solid var(--kui-color-border);
14
- border-radius: var(--kui-radius-m);
15
- color: var(--kui-color-text);
16
- background: var(--kui-color-surface);
17
- cursor: pointer;
18
- }
19
- .kui-recipe__button[data-primary="true"] {
20
- color: var(--kui-color-brand-on-normal);
21
- border-color: var(--kui-color-brand-border-normal);
22
- background: var(--kui-color-brand-fill-normal);
23
- }
24
- .kui-recipe__button:focus-visible {
25
- outline: var(--kui-focus-ring);
26
- outline-offset: 2px;
27
- }
28
- .kui-recipe__surface {
29
- min-width: 0;
30
- overflow: hidden;
31
- border: 1px solid var(--kui-color-border);
32
- border-radius: var(--kui-radius-l);
33
- background: var(--kui-color-surface);
34
- box-shadow: var(--kui-shadow-s);
35
- }
36
- .kui-recipe__pane-title {
37
- margin: 0;
38
- font-size: var(--kui-font-s);
39
- }
40
- .kui-recipe__muted {
41
- color: var(--kui-color-text-quiet);
42
- font-size: var(--kui-font-s);
43
- }
44
- .kui-recipe__ownership {
45
- margin: 0;
46
- color: var(--kui-color-text-quiet);
47
- font-size: var(--kui-font-xs);
48
- }
49
-
50
- .recipe-shell {
51
- display: grid;
52
- height: min(37rem, 70vh);
53
- grid-template-rows: auto minmax(0, 1fr);
54
- }
55
- .recipe-shell__body {
56
- display: flex;
57
- min-width: 0;
58
- min-height: 0;
59
- }
60
- .recipe-shell__toolbar-actions {
61
- display: flex;
62
- min-width: 0;
63
- align-items: center;
64
- }
65
- .recipe-shell__responsive-controls {
66
- display: none;
67
- }
68
- .recipe-shell__nav,
69
- .recipe-shell__inspector {
70
- min-height: 0;
71
- background: var(--kui-color-surface);
72
- }
73
- .recipe-shell__nav-list,
74
- .recipe-shell__inspector-body,
75
- .recipe-shell__main-body {
76
- min-height: 0;
77
- }
78
- .recipe-shell__main {
79
- display: grid;
80
- min-width: 16rem;
81
- min-height: 0;
82
- flex: 1;
83
- grid-template-rows: auto minmax(0, 1fr);
84
- background: var(--kui-color-surface-lowered);
85
- }
86
- .recipe-shell__cards {
87
- display: grid;
88
- grid-template-columns: repeat(2, minmax(0, 1fr));
89
- gap: var(--kui-layout-content-gap);
90
- }
91
- .recipe-shell__card {
92
- --kui-content-item-border: var(--kui-color-border-quiet);
93
- --kui-content-item-background: var(--kui-color-surface);
94
- }
95
-
96
- .recipe-sidebar {
97
- display: grid;
98
- width: min(22rem, 100%);
99
- min-height: 32rem;
100
- margin-inline: auto;
101
- grid-template-rows: minmax(0, 1fr) auto;
102
- }
103
- .recipe-sidebar__body {
104
- min-height: 0;
105
- }
106
- .recipe-sidebar__footer {
107
- border-block-start: 1px solid var(--kui-color-border);
108
- }
109
-
110
- .recipe-header {
111
- min-height: 20rem;
112
- }
113
- .recipe-header__context {
114
- margin: 0;
115
- }
116
-
117
- .recipe-list-detail {
118
- display: grid;
119
- width: 100%;
120
- min-height: 25rem;
121
- grid-template-columns: minmax(13rem, 0.8fr) minmax(18rem, 1.4fr);
122
- }
123
- .recipe-list-detail__list {
124
- border-inline-end: 1px solid var(--kui-color-border);
125
- }
126
- .recipe-list-detail__detail {
127
- min-width: 0;
128
- }
129
- .recipe-list-detail__body {
130
- padding-block: var(--kui-layout-item-gap);
131
- }
132
- .recipe-list-detail__title {
133
- margin-inline: var(--kui-layout-inline-margin, remify(8px));
134
- }
135
- .recipe-list-detail__actions {
136
- margin-inline: var(--kui-layout-inline-margin, remify(8px));
137
- }
138
- .recipe-dialog {
139
- --spacing: 0;
140
- --width: min(62rem, calc(100vw - 2rem));
141
- }
142
- .kui-recipe__heading-summary {
143
- min-width: 0;
144
- margin: 0 var(--kui-layout-inline-margin, remify(8px));
145
- overflow: hidden;
146
- color: var(--kui-color-text-quiet);
147
- text-overflow: ellipsis;
148
- white-space: nowrap;
149
- }
150
-
151
- .recipe-form {
152
- width: min(38rem, 100%);
153
- margin-inline: auto;
154
- padding-block: var(--kui-layout-item-gap);
155
- }
156
- .recipe-form__section {
157
- display: grid;
158
- min-width: 0;
159
- margin-inline: var(--kui-layout-inline-margin, remify(8px));
160
- gap: var(--kui-layout-item-gap);
161
- }
162
- .recipe-form__fields {
163
- align-content: start;
164
- }
165
- .recipe-form__fields wa-input::part(form-control-label),
166
- .recipe-form__fields wa-input::part(hint),
167
- .recipe-form__fields wa-textarea::part(form-control-label),
168
- .recipe-form__fields wa-textarea::part(hint),
169
- .recipe-form__fields .kui-select::part(form-control-label) {
170
- padding-inline: remify(8px);
171
- }
172
- .recipe-form__fields wa-textarea::part(textarea) {
173
- padding-inline: remify(8px);
174
- }
175
- .recipe-form__footer {
176
- align-content: start;
177
- }
178
-
179
- .recipe-list {
180
- display: grid;
181
- min-height: 27rem;
182
- grid-template-rows: auto minmax(0, 1fr);
183
- }
184
- .recipe-list__body {
185
- min-height: 0;
186
- }
187
- .recipe-list__items {
188
- display: grid;
189
- margin: 0 var(--kui-layout-inline-margin);
190
- padding: var(--kui-layout-item-padding);
191
- border: var(--kui-layout-item-border-width) solid
192
- var(--kui-color-border-quiet);
193
- border-radius: var(--kui-layout-rounded-radius);
194
- background: var(--kui-color-surface);
195
- list-style: none;
196
- }
197
- .recipe-list__items li {
198
- display: grid;
199
- padding: var(--kui-layout-item-padding);
200
- border-block-end: 1px solid var(--kui-color-border-quiet);
201
- gap: var(--kui-layout-metadata-gap);
202
- }
203
- .recipe-list__items li:last-child {
204
- border-block-end: 0;
205
- }
206
-
207
- .recipe-compact-toolbar {
208
- display: flex;
209
- flex-direction: column;
210
- gap: var(--kui-layout-content-gap);
211
- }
212
- .recipe-compact-toolbar__guide {
213
- /* Span the toolbar's full width instead of the 8px content-item inset — under a
214
- full-bleed toolbar/divider the inset read as the boxes floating too far in. */
215
- display: grid;
216
- grid-template-columns: repeat(4, minmax(0, 1fr));
217
- margin-inline: 0;
218
- gap: var(--kui-layout-control-gap);
219
- }
220
- .recipe-compact-toolbar__guide > div {
221
- padding: var(--kui-layout-item-padding);
222
- border: var(--kui-layout-item-border-width) solid
223
- var(--kui-color-border-quiet);
224
- border-radius: var(--kui-layout-rounded-radius);
225
- }
226
- .recipe-compact-toolbar__guide strong,
227
- .recipe-compact-toolbar__guide span {
228
- display: block;
229
- }
230
-
231
- @container (max-width: 44rem) {
232
- .recipe-shell__inspector-region {
233
- display: none;
234
- }
235
- .recipe-shell__responsive-controls {
236
- display: inline-flex;
237
- }
238
- .recipe-shell[data-responsive-pane="inspector"] .recipe-shell__nav-region,
239
- .recipe-shell[data-responsive-pane="inspector"] .recipe-shell__main {
240
- display: none;
241
- }
242
- .recipe-shell[data-responsive-pane="inspector"]
243
- .recipe-shell__inspector-region {
244
- display: flex;
245
- min-width: 0;
246
- flex: 1;
247
- }
248
- .recipe-shell[data-responsive-pane="inspector"]
249
- .recipe-shell__inspector-region
250
- .kui-resizable-region {
251
- width: 100%;
252
- flex: 1;
253
- }
254
- .recipe-shell[data-responsive-pane="inspector"]
255
- .recipe-shell__inspector-region
256
- .kui-resizable-region__handle {
257
- display: none;
258
- }
259
- .recipe-shell__responsive-controls [data-recipe-command="show-navigation"] {
260
- display: none;
261
- }
262
- .recipe-shell__cards,
263
- .recipe-compact-toolbar__guide {
264
- grid-template-columns: 1fr 1fr;
265
- }
266
- .recipe-list-detail {
267
- grid-template-columns: 1fr;
268
- }
269
- .recipe-list-detail__list {
270
- border-inline-end: 0;
271
- border-block-end: 1px solid var(--kui-color-border);
272
- }
273
- .recipe-compact-toolbar .kui-toolbar {
274
- height: auto;
275
- grid-template-columns: minmax(0, 1fr);
276
- grid-template-areas: "leading" "center" "trailing";
277
- row-gap: var(--kui-toolbar-gap);
278
- }
279
- .recipe-compact-toolbar .kui-toolbar__leading {
280
- grid-area: leading;
281
- padding-inline-end: 0;
282
- }
283
- .recipe-compact-toolbar .kui-toolbar__center {
284
- grid-area: center;
285
- }
286
- .recipe-compact-toolbar .kui-toolbar__trailing {
287
- grid-area: trailing;
288
- justify-content: flex-start;
289
- }
290
- .recipe-compact-toolbar .kui-toolbar__trailing > .kui-control-cluster {
291
- width: 100%;
292
- }
293
- .recipe-compact-toolbar .kui-toolbar__trailing wa-select {
294
- min-width: min(12rem, 100%);
295
- flex: 1 1 12rem;
296
- }
297
- }
298
-
299
- @container (max-width: 28rem) {
300
- .recipe-shell__nav-region {
301
- display: none;
302
- }
303
- .recipe-shell[data-responsive-pane="navigation"] .recipe-shell__main,
304
- .recipe-shell[data-responsive-pane="navigation"]
305
- .recipe-shell__inspector-region {
306
- display: none;
307
- }
308
- .recipe-shell[data-responsive-pane="navigation"] .recipe-shell__nav-region {
309
- display: flex;
310
- min-width: 0;
311
- flex: 1;
312
- }
313
- .recipe-shell[data-responsive-pane="navigation"]
314
- .recipe-shell__nav-region
315
- .kui-resizable-region {
316
- width: 100%;
317
- flex: 1;
318
- }
319
- .recipe-shell[data-responsive-pane="navigation"]
320
- .recipe-shell__nav-region
321
- .kui-resizable-region__handle {
322
- display: none;
323
- }
324
- .recipe-shell__responsive-controls [data-recipe-command="show-navigation"] {
325
- display: grid;
326
- }
327
- .recipe-shell__cards,
328
- .recipe-compact-toolbar__guide {
329
- grid-template-columns: 1fr;
330
- }
331
- }
332
-
333
- @media (forced-colors: active) {
334
- .recipe-form__section {
335
- border-color: Canvas;
336
- }
337
- }
338
-
339
- @media (prefers-reduced-motion: reduce) {
340
- .kui-recipe *,
341
- .kui-recipe *::before,
342
- .kui-recipe *::after {
343
- scroll-behavior: auto !important;
344
- animation-duration: 1ms !important;
345
- transition-duration: 1ms !important;
346
- }
347
- }
348
-
349
- .recipe-navstack {
350
- display: flex;
351
- width: min(28rem, 100%);
352
- margin-inline: auto;
353
- flex-direction: column;
354
- }
355
- .recipe-navstack__stage {
356
- height: 24rem;
357
- }
358
- .recipe-navstack__view {
359
- /* The view is a .kui-content stack whose rows own their 8px margins; add only a
360
- little block breathing room, not an inline pad that would double-inset them. */
361
- padding-block: var(--kui-space-2xs);
362
- }
363
-
364
- .recipe-inspector {
365
- width: min(remify(560px), 100%);
366
- }
367
-
368
- /* The bare Select + SegmentedControl carry no content-item geometry, so inset
369
- them to the shared inline margin to line up with the ValueTable / list / banner
370
- content-items, and group the two related controls closer than the 24px
371
- between-region content gap. */
372
- .recipe-inspector__controls {
373
- display: flex;
374
- min-width: 0;
375
- flex-direction: column;
376
- margin-inline: var(--kui-layout-inline-margin, remify(8px));
377
- gap: var(--kui-space-s);
378
- }
379
-
380
- /* Collapsible-sidebar recipe: a mini app frame with a left rail (CollapsiblePanel)
381
- full-height at the leading edge, the main pane, and a bottom drawer under it.
382
- `contain: paint` bounds the wire's compact overlay (a viewport-`fixed` panel +
383
- backdrop) to this frame so the embedded demo does not cover the whole catalog. */
384
- .recipe-collapsible-sidebar {
385
- display: grid;
386
- height: min(34rem, 70vh);
387
- contain: paint;
388
- grid-template-areas:
389
- "rail main"
390
- "rail drawer";
391
- grid-template-columns: auto minmax(0, 1fr);
392
- grid-template-rows: minmax(0, 1fr) auto;
393
- }
394
- .recipe-collapsible-sidebar__rail {
395
- grid-area: rail;
396
- display: flex;
397
- min-height: 0;
398
- flex-direction: column;
399
- }
400
- .recipe-collapsible-sidebar__rail-head {
401
- display: flex;
402
- align-items: center;
403
- justify-content: space-between;
404
- padding: var(--kui-space-2xs) var(--kui-layout-inline-margin, remify(8px));
405
- border-block-end: 1px solid var(--kui-color-border);
406
- }
407
- .recipe-collapsible-sidebar__nav {
408
- min-height: 0;
409
- }
410
- .recipe-collapsible-sidebar__main {
411
- display: grid;
412
- grid-area: main;
413
- min-width: 0;
414
- min-height: 0;
415
- grid-template-rows: auto minmax(0, 1fr);
416
- background: var(--kui-color-surface-lowered);
417
- }
418
- .recipe-collapsible-sidebar__body {
419
- min-height: 0;
420
- }
421
- .recipe-collapsible-sidebar__card strong {
422
- display: block;
423
- }
424
- .recipe-collapsible-sidebar__drawer {
425
- grid-area: drawer;
426
- display: flex;
427
- min-height: 0;
428
- flex-direction: column;
429
- }
430
- .recipe-collapsible-sidebar__drawer-body {
431
- min-height: 0;
432
- }
433
- .recipe-collapsible-sidebar__log {
434
- display: flex;
435
- min-width: 0;
436
- flex-direction: column;
437
- margin: 0;
438
- margin-inline: var(--kui-layout-inline-margin, remify(8px));
439
- padding: 0;
440
- list-style: none;
441
- gap: var(--kui-space-xs);
442
- }
443
- .recipe-collapsible-sidebar__log li {
444
- display: flex;
445
- align-items: center;
446
- color: var(--kui-color-text-quiet);
447
- font-size: var(--kui-font-s);
448
- gap: var(--kui-space-xs);
449
- }
450
- .recipe-collapsible-sidebar__log svg {
451
- width: remify(16px);
452
- height: remify(16px);
453
- }