@oddkin/components 1.0.0-beta.0 → 1.0.0-beta.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 (234) hide show
  1. package/README.md +2 -2
  2. package/agent/GUIDE.md +4 -12
  3. package/agent/kit.json +57 -9
  4. package/agent/llms.txt +10 -2
  5. package/agent/references/components/odd-alert.md +1 -5
  6. package/agent/references/components/odd-avatar.md +1 -5
  7. package/agent/references/components/odd-badge.md +1 -5
  8. package/agent/references/components/odd-breadcrumbs.md +1 -5
  9. package/agent/references/components/odd-button.md +1 -5
  10. package/agent/references/components/odd-calendar.md +1 -5
  11. package/agent/references/components/odd-card.md +1 -5
  12. package/agent/references/components/odd-carousel.md +1 -5
  13. package/agent/references/components/odd-checkbox-group.md +1 -5
  14. package/agent/references/components/odd-checkbox.md +1 -5
  15. package/agent/references/components/odd-chip.md +1 -5
  16. package/agent/references/components/odd-color-picker.md +1 -5
  17. package/agent/references/components/odd-combobox.md +1 -5
  18. package/agent/references/components/odd-command-palette.md +1 -5
  19. package/agent/references/components/odd-container.md +1 -5
  20. package/agent/references/components/odd-copy-button.md +1 -5
  21. package/agent/references/components/odd-date-picker.md +1 -5
  22. package/agent/references/components/odd-dialog.md +1 -5
  23. package/agent/references/components/odd-disclosure.md +1 -5
  24. package/agent/references/components/odd-drawer.md +1 -5
  25. package/agent/references/components/odd-empty-state.md +1 -5
  26. package/agent/references/components/odd-file-input.md +1 -5
  27. package/agent/references/components/odd-icon.md +1 -5
  28. package/agent/references/components/odd-input.md +1 -5
  29. package/agent/references/components/odd-listbox.md +1 -5
  30. package/agent/references/components/odd-menu.md +1 -5
  31. package/agent/references/components/odd-one-time-code.md +1 -5
  32. package/agent/references/components/odd-pagination.md +1 -5
  33. package/agent/references/components/odd-picker.md +1 -5
  34. package/agent/references/components/odd-popover.md +1 -5
  35. package/agent/references/components/odd-progress.md +1 -5
  36. package/agent/references/components/odd-radio-group.md +1 -5
  37. package/agent/references/components/odd-rating.md +1 -5
  38. package/agent/references/components/odd-relative-time.md +1 -5
  39. package/agent/references/components/odd-scroll-region.md +1 -5
  40. package/agent/references/components/odd-segmented-control.md +1 -5
  41. package/agent/references/components/odd-select.md +1 -5
  42. package/agent/references/components/odd-side-nav.md +1 -5
  43. package/agent/references/components/odd-skeleton.md +1 -5
  44. package/agent/references/components/odd-slider.md +1 -5
  45. package/agent/references/components/odd-spinner.md +1 -5
  46. package/agent/references/components/odd-split-button.md +1 -5
  47. package/agent/references/components/odd-split-panel.md +1 -5
  48. package/agent/references/components/odd-stat.md +1 -5
  49. package/agent/references/components/odd-status-marker.md +1 -5
  50. package/agent/references/components/odd-switch.md +1 -5
  51. package/agent/references/components/odd-tab-panel.md +1 -5
  52. package/agent/references/components/odd-tabs.md +1 -5
  53. package/agent/references/components/odd-textarea.md +1 -5
  54. package/agent/references/components/odd-toast.md +1 -5
  55. package/agent/references/components/odd-toolbar.md +1 -5
  56. package/agent/references/components/odd-tooltip.md +1 -5
  57. package/agent/references/components/odd-tree.md +1 -5
  58. package/agent/references/components/odd-validation-summary.md +1 -5
  59. package/agent/references/composition.md +39 -0
  60. package/agent/references/recipes/breadcrumbs.md +9 -0
  61. package/agent/references/recipes/calendar.md +11 -0
  62. package/agent/references/recipes/dialog.md +10 -0
  63. package/agent/references/recipes/disclosure.md +9 -0
  64. package/agent/references/recipes/file-input.md +13 -0
  65. package/agent/references/recipes/pagination.md +10 -0
  66. package/agent/references/recipes/toolbar.md +13 -0
  67. package/agent/references/recipes/validation-summary.md +11 -0
  68. package/agent/references/stylesheets/layout.md +2 -2
  69. package/dist/breadcrumbs/breadcrumbs.recipe.d.ts +3 -0
  70. package/dist/breadcrumbs/breadcrumbs.recipe.d.ts.map +1 -0
  71. package/dist/breadcrumbs/breadcrumbs.recipe.js +10 -0
  72. package/dist/breadcrumbs/breadcrumbs.recipe.js.map +1 -0
  73. package/dist/breadcrumbs/breadcrumbs.recipe.styles.d.ts +2 -0
  74. package/dist/breadcrumbs/breadcrumbs.recipe.styles.d.ts.map +1 -0
  75. package/dist/breadcrumbs/breadcrumbs.recipe.styles.js +5 -0
  76. package/dist/breadcrumbs/breadcrumbs.recipe.styles.js.map +1 -0
  77. package/dist/breadcrumbs/breadcrumbs.structural.styles.d.ts +2 -1
  78. package/dist/breadcrumbs/breadcrumbs.structural.styles.d.ts.map +1 -1
  79. package/dist/breadcrumbs/breadcrumbs.structural.styles.js +4 -5
  80. package/dist/breadcrumbs/breadcrumbs.structural.styles.js.map +1 -1
  81. package/dist/breadcrumbs/breadcrumbs.styles.d.ts.map +1 -1
  82. package/dist/breadcrumbs/breadcrumbs.styles.js +0 -1
  83. package/dist/breadcrumbs/breadcrumbs.styles.js.map +1 -1
  84. package/dist/calendar/calendar.recipe.d.ts +3 -0
  85. package/dist/calendar/calendar.recipe.d.ts.map +1 -0
  86. package/dist/calendar/calendar.recipe.js +12 -0
  87. package/dist/calendar/calendar.recipe.js.map +1 -0
  88. package/dist/calendar/calendar.recipe.styles.d.ts +2 -0
  89. package/dist/calendar/calendar.recipe.styles.d.ts.map +1 -0
  90. package/dist/calendar/calendar.recipe.styles.js +5 -0
  91. package/dist/calendar/calendar.recipe.styles.js.map +1 -0
  92. package/dist/calendar/calendar.structural.styles.d.ts +2 -1
  93. package/dist/calendar/calendar.structural.styles.d.ts.map +1 -1
  94. package/dist/calendar/calendar.structural.styles.js +4 -11
  95. package/dist/calendar/calendar.structural.styles.js.map +1 -1
  96. package/dist/calendar/calendar.styles.d.ts.map +1 -1
  97. package/dist/calendar/calendar.styles.js +0 -7
  98. package/dist/calendar/calendar.styles.js.map +1 -1
  99. package/dist/css/field.css +1 -0
  100. package/dist/css/index.d.ts +2 -1
  101. package/dist/css/index.d.ts.map +1 -1
  102. package/dist/css/index.js +7 -1
  103. package/dist/css/index.js.map +1 -1
  104. package/dist/css/layout.css +4 -0
  105. package/dist/dialog/dialog.recipe.d.ts +3 -0
  106. package/dist/dialog/dialog.recipe.d.ts.map +1 -0
  107. package/dist/dialog/dialog.recipe.js +11 -0
  108. package/dist/dialog/dialog.recipe.js.map +1 -0
  109. package/dist/dialog/dialog.recipe.styles.d.ts +2 -0
  110. package/dist/dialog/dialog.recipe.styles.d.ts.map +1 -0
  111. package/dist/dialog/dialog.recipe.styles.js +5 -0
  112. package/dist/dialog/dialog.recipe.styles.js.map +1 -0
  113. package/dist/dialog/dialog.structural.styles.d.ts +2 -1
  114. package/dist/dialog/dialog.structural.styles.d.ts.map +1 -1
  115. package/dist/dialog/dialog.structural.styles.js +4 -6
  116. package/dist/dialog/dialog.structural.styles.js.map +1 -1
  117. package/dist/dialog/dialog.styles.d.ts.map +1 -1
  118. package/dist/dialog/dialog.styles.js +0 -2
  119. package/dist/dialog/dialog.styles.js.map +1 -1
  120. package/dist/disclosure/disclosure.recipe.d.ts +3 -0
  121. package/dist/disclosure/disclosure.recipe.d.ts.map +1 -0
  122. package/dist/disclosure/disclosure.recipe.js +10 -0
  123. package/dist/disclosure/disclosure.recipe.js.map +1 -0
  124. package/dist/disclosure/disclosure.recipe.styles.d.ts +2 -0
  125. package/dist/disclosure/disclosure.recipe.styles.d.ts.map +1 -0
  126. package/dist/disclosure/disclosure.recipe.styles.js +5 -0
  127. package/dist/disclosure/disclosure.recipe.styles.js.map +1 -0
  128. package/dist/disclosure/disclosure.structural.styles.d.ts +2 -1
  129. package/dist/disclosure/disclosure.structural.styles.d.ts.map +1 -1
  130. package/dist/disclosure/disclosure.structural.styles.js +4 -3
  131. package/dist/disclosure/disclosure.structural.styles.js.map +1 -1
  132. package/dist/disclosure/disclosure.styles.d.ts.map +1 -1
  133. package/dist/disclosure/disclosure.styles.js +0 -1
  134. package/dist/disclosure/disclosure.styles.js.map +1 -1
  135. package/dist/file-input/file-input.recipe.d.ts +3 -0
  136. package/dist/file-input/file-input.recipe.d.ts.map +1 -0
  137. package/dist/file-input/file-input.recipe.js +14 -0
  138. package/dist/file-input/file-input.recipe.js.map +1 -0
  139. package/dist/file-input/file-input.recipe.styles.d.ts +2 -0
  140. package/dist/file-input/file-input.recipe.styles.d.ts.map +1 -0
  141. package/dist/file-input/file-input.recipe.styles.js +5 -0
  142. package/dist/file-input/file-input.recipe.styles.js.map +1 -0
  143. package/dist/file-input/file-input.structural.styles.d.ts +2 -1
  144. package/dist/file-input/file-input.structural.styles.d.ts.map +1 -1
  145. package/dist/file-input/file-input.structural.styles.js +4 -15
  146. package/dist/file-input/file-input.structural.styles.js.map +1 -1
  147. package/dist/file-input/file-input.styles.d.ts.map +1 -1
  148. package/dist/file-input/file-input.styles.js +0 -8
  149. package/dist/file-input/file-input.styles.js.map +1 -1
  150. package/dist/input/input.styles.d.ts +3 -1
  151. package/dist/input/input.styles.d.ts.map +1 -1
  152. package/dist/input/input.styles.js +7 -1
  153. package/dist/input/input.styles.js.map +1 -1
  154. package/dist/pagination/pagination.recipe.d.ts +3 -0
  155. package/dist/pagination/pagination.recipe.d.ts.map +1 -0
  156. package/dist/pagination/pagination.recipe.js +11 -0
  157. package/dist/pagination/pagination.recipe.js.map +1 -0
  158. package/dist/pagination/pagination.recipe.styles.d.ts +2 -0
  159. package/dist/pagination/pagination.recipe.styles.d.ts.map +1 -0
  160. package/dist/pagination/pagination.recipe.styles.js +5 -0
  161. package/dist/pagination/pagination.recipe.styles.js.map +1 -0
  162. package/dist/pagination/pagination.structural.styles.d.ts +2 -2
  163. package/dist/pagination/pagination.structural.styles.d.ts.map +1 -1
  164. package/dist/pagination/pagination.structural.styles.js +4 -12
  165. package/dist/pagination/pagination.structural.styles.js.map +1 -1
  166. package/dist/pagination/pagination.styles.d.ts.map +1 -1
  167. package/dist/pagination/pagination.styles.js +0 -4
  168. package/dist/pagination/pagination.styles.js.map +1 -1
  169. package/dist/segmented-control/segmented-control.structural.styles.d.ts +5 -3
  170. package/dist/segmented-control/segmented-control.structural.styles.d.ts.map +1 -1
  171. package/dist/segmented-control/segmented-control.structural.styles.js +9 -7
  172. package/dist/segmented-control/segmented-control.structural.styles.js.map +1 -1
  173. package/dist/select/select.structural.styles.d.ts +6 -4
  174. package/dist/select/select.structural.styles.d.ts.map +1 -1
  175. package/dist/select/select.structural.styles.js +9 -4
  176. package/dist/select/select.structural.styles.js.map +1 -1
  177. package/dist/side-nav/side-nav.structural.styles.d.ts.map +1 -1
  178. package/dist/side-nav/side-nav.structural.styles.js +8 -2
  179. package/dist/side-nav/side-nav.structural.styles.js.map +1 -1
  180. package/dist/side-nav/side-nav.styles.d.ts +2 -1
  181. package/dist/side-nav/side-nav.styles.d.ts.map +1 -1
  182. package/dist/side-nav/side-nav.styles.js +10 -3
  183. package/dist/side-nav/side-nav.styles.js.map +1 -1
  184. package/dist/styles/control-indicator.structural.styles.d.ts.map +1 -1
  185. package/dist/styles/control-indicator.structural.styles.js +1 -0
  186. package/dist/styles/control-indicator.structural.styles.js.map +1 -1
  187. package/dist/styles/field.structural.styles.d.ts +1 -0
  188. package/dist/styles/field.structural.styles.d.ts.map +1 -1
  189. package/dist/styles/field.structural.styles.js +2 -0
  190. package/dist/styles/field.structural.styles.js.map +1 -1
  191. package/dist/styles/nav-row.structural.styles.d.ts +4 -2
  192. package/dist/styles/nav-row.structural.styles.d.ts.map +1 -1
  193. package/dist/styles/nav-row.structural.styles.js +12 -5
  194. package/dist/styles/nav-row.structural.styles.js.map +1 -1
  195. package/dist/styles/nav-row.styles.d.ts +2 -0
  196. package/dist/styles/nav-row.styles.d.ts.map +1 -1
  197. package/dist/styles/nav-row.styles.js +8 -4
  198. package/dist/styles/nav-row.styles.js.map +1 -1
  199. package/dist/tabs/tabs.structural.styles.d.ts +2 -1
  200. package/dist/tabs/tabs.structural.styles.d.ts.map +1 -1
  201. package/dist/tabs/tabs.structural.styles.js +6 -1
  202. package/dist/tabs/tabs.structural.styles.js.map +1 -1
  203. package/dist/toolbar/toolbar.recipe.d.ts +3 -0
  204. package/dist/toolbar/toolbar.recipe.d.ts.map +1 -0
  205. package/dist/toolbar/toolbar.recipe.js +20 -0
  206. package/dist/toolbar/toolbar.recipe.js.map +1 -0
  207. package/dist/toolbar/toolbar.recipe.styles.d.ts +2 -0
  208. package/dist/toolbar/toolbar.recipe.styles.d.ts.map +1 -0
  209. package/dist/toolbar/toolbar.recipe.styles.js +5 -0
  210. package/dist/toolbar/toolbar.recipe.styles.js.map +1 -0
  211. package/dist/toolbar/toolbar.structural.styles.d.ts +2 -2
  212. package/dist/toolbar/toolbar.structural.styles.d.ts.map +1 -1
  213. package/dist/toolbar/toolbar.structural.styles.js +4 -13
  214. package/dist/toolbar/toolbar.structural.styles.js.map +1 -1
  215. package/dist/toolbar/toolbar.styles.d.ts.map +1 -1
  216. package/dist/toolbar/toolbar.styles.js +0 -1
  217. package/dist/toolbar/toolbar.styles.js.map +1 -1
  218. package/dist/validation-summary/validation-summary.recipe.d.ts +3 -0
  219. package/dist/validation-summary/validation-summary.recipe.d.ts.map +1 -0
  220. package/dist/validation-summary/validation-summary.recipe.js +12 -0
  221. package/dist/validation-summary/validation-summary.recipe.js.map +1 -0
  222. package/dist/validation-summary/validation-summary.recipe.styles.d.ts +2 -0
  223. package/dist/validation-summary/validation-summary.recipe.styles.d.ts.map +1 -0
  224. package/dist/validation-summary/validation-summary.recipe.styles.js +5 -0
  225. package/dist/validation-summary/validation-summary.recipe.styles.js.map +1 -0
  226. package/dist/validation-summary/validation-summary.structural.styles.d.ts +2 -2
  227. package/dist/validation-summary/validation-summary.structural.styles.d.ts.map +1 -1
  228. package/dist/validation-summary/validation-summary.structural.styles.js +4 -11
  229. package/dist/validation-summary/validation-summary.structural.styles.js.map +1 -1
  230. package/dist/validation-summary/validation-summary.styles.d.ts.map +1 -1
  231. package/dist/validation-summary/validation-summary.styles.js +0 -7
  232. package/dist/validation-summary/validation-summary.styles.js.map +1 -1
  233. package/oddkin.metadata.json +5189 -4595
  234. package/package.json +7 -5
@@ -2,9 +2,13 @@ import { css } from '@oddkin/core/styles';
2
2
  import { token } from '@oddkin/tokens/refs';
3
3
  /**
4
4
  * Oddkin's default visual styles for the side navigation, through `navigation.*` roles. Entry
5
- * rows look as `navRowStyles` draws them; slotted native links take the same look here.
5
+ * rows look as `navRowStyles` draws them; slotted native links take the same look here. A size
6
+ * container reports no content width, so in a shrink-to-fit parent the host takes a sidebar's.
6
7
  */
7
8
  export const sideNavStyles = css `
9
+ :host {
10
+ contain-intrinsic-inline-size: ${token('layout.sidebar-width')};
11
+ }
8
12
  .root {
9
13
  color: ${token('color.text.primary')};
10
14
  font-family: ${token('type.ui.family')};
@@ -21,7 +25,6 @@ export const sideNavStyles = css `
21
25
  gap: ${token('navigation.item.gap')};
22
26
  min-block-size: max(${token('navigation.item.min-height')}, ${token('target.min')});
23
27
  padding: ${token('navigation.item.padding.block')} ${token('navigation.item.padding.inline')};
24
- border-inline-start: ${token('border.width.strong')} solid transparent;
25
28
  border-radius: ${token('control.radius')};
26
29
  transition-property: background-color, color;
27
30
  transition-duration: ${token('motion.duration.fast')};
@@ -34,10 +37,14 @@ export const sideNavStyles = css `
34
37
  }
35
38
  /* The current page is marked by a bar and weight, not colour alone. */
36
39
  ::slotted(a[aria-current='page']) {
37
- border-inline-start-color: ${token('color.action.default')};
38
40
  background: ${token('color.surface.hover')};
39
41
  font-weight: ${token('font.weight.semibold')};
40
42
  }
43
+ ::slotted(a[aria-current='page'])::before {
44
+ inset-block: ${token('navigation.item.padding.block')};
45
+ inline-size: ${token('border.width.strong')};
46
+ background: ${token('color.action.default')};
47
+ }
41
48
  .badge {
42
49
  flex: none;
43
50
  padding-inline: ${token('space.xs')};
@@ -1 +1 @@
1
- {"version":3,"file":"side-nav.styles.js","sourceRoot":"","sources":["../../src/side-nav/side-nav.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAA;;aAEnB,KAAK,CAAC,oBAAoB,CAAC;mBACrB,KAAK,CAAC,gBAAgB,CAAC;iBACzB,KAAK,CAAC,cAAc,CAAC;mBACnB,KAAK,CAAC,gBAAgB,CAAC;mBACvB,KAAK,CAAC,qBAAqB,CAAC;sBACzB,KAAK,CAAC,wBAAwB,CAAC;;;0BAG3B,KAAK,CAAC,qBAAqB,CAAC;4BAC1B,KAAK,CAAC,mBAAmB,CAAC;;;WAG3C,KAAK,CAAC,qBAAqB,CAAC;0BACb,KAAK,CAAC,4BAA4B,CAAC,KAAK,KAAK,CAAC,YAAY,CAAC;eACtE,KAAK,CAAC,+BAA+B,CAAC,IAAI,KAAK,CAAC,gCAAgC,CAAC;2BACrE,KAAK,CAAC,qBAAqB,CAAC;qBAClC,KAAK,CAAC,gBAAgB,CAAC;;2BAEjB,KAAK,CAAC,sBAAsB,CAAC;kCACtB,KAAK,CAAC,wBAAwB,CAAC;;;;oBAI7C,KAAK,CAAC,qBAAqB,CAAC;;;;;iCAKf,KAAK,CAAC,sBAAsB,CAAC;kBAC5C,KAAK,CAAC,qBAAqB,CAAC;mBAC3B,KAAK,CAAC,sBAAsB,CAAC;;;;sBAI1B,KAAK,CAAC,UAAU,CAAC;qBAClB,KAAK,CAAC,aAAa,CAAC;kBACvB,KAAK,CAAC,sBAAsB,CAAC;aAClC,KAAK,CAAC,sBAAsB,CAAC;iBACzB,KAAK,CAAC,iBAAiB,CAAC;mBACtB,KAAK,CAAC,wBAAwB,CAAC;;;;;;;yBAOzB,KAAK,CAAC,qBAAqB,CAAC;wBAC7B,KAAK,CAAC,qBAAqB,CAAC;;4BAExB,KAAK,CAAC,sBAAsB,CAAC,IAAI,KAAK,CAAC,wBAAwB,CAAC;;;;;CAK3F,CAAC"}
1
+ {"version":3,"file":"side-nav.styles.js","sourceRoot":"","sources":["../../src/side-nav/side-nav.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAA;;qCAEK,KAAK,CAAC,sBAAsB,CAAC;;;aAGrD,KAAK,CAAC,oBAAoB,CAAC;mBACrB,KAAK,CAAC,gBAAgB,CAAC;iBACzB,KAAK,CAAC,cAAc,CAAC;mBACnB,KAAK,CAAC,gBAAgB,CAAC;mBACvB,KAAK,CAAC,qBAAqB,CAAC;sBACzB,KAAK,CAAC,wBAAwB,CAAC;;;0BAG3B,KAAK,CAAC,qBAAqB,CAAC;4BAC1B,KAAK,CAAC,mBAAmB,CAAC;;;WAG3C,KAAK,CAAC,qBAAqB,CAAC;0BACb,KAAK,CAAC,4BAA4B,CAAC,KAAK,KAAK,CAAC,YAAY,CAAC;eACtE,KAAK,CAAC,+BAA+B,CAAC,IAAI,KAAK,CAAC,gCAAgC,CAAC;qBAC3E,KAAK,CAAC,gBAAgB,CAAC;;2BAEjB,KAAK,CAAC,sBAAsB,CAAC;kCACtB,KAAK,CAAC,wBAAwB,CAAC;;;;oBAI7C,KAAK,CAAC,qBAAqB,CAAC;;;;;kBAK9B,KAAK,CAAC,qBAAqB,CAAC;mBAC3B,KAAK,CAAC,sBAAsB,CAAC;;;mBAG7B,KAAK,CAAC,+BAA+B,CAAC;mBACtC,KAAK,CAAC,qBAAqB,CAAC;kBAC7B,KAAK,CAAC,sBAAsB,CAAC;;;;sBAIzB,KAAK,CAAC,UAAU,CAAC;qBAClB,KAAK,CAAC,aAAa,CAAC;kBACvB,KAAK,CAAC,sBAAsB,CAAC;aAClC,KAAK,CAAC,sBAAsB,CAAC;iBACzB,KAAK,CAAC,iBAAiB,CAAC;mBACtB,KAAK,CAAC,wBAAwB,CAAC;;;;;;;yBAOzB,KAAK,CAAC,qBAAqB,CAAC;wBAC7B,KAAK,CAAC,qBAAqB,CAAC;;4BAExB,KAAK,CAAC,sBAAsB,CAAC,IAAI,KAAK,CAAC,wBAAwB,CAAC;;;;;CAK3F,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"control-indicator.structural.styles.d.ts","sourceRoot":"","sources":["../../src/styles/control-indicator.structural.styles.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,eAAO,MAAM,gCAAgC,yCAsD5C,CAAC"}
1
+ {"version":3,"file":"control-indicator.structural.styles.d.ts","sourceRoot":"","sources":["../../src/styles/control-indicator.structural.styles.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,eAAO,MAAM,gCAAgC,yCAuD5C,CAAC"}
@@ -39,6 +39,7 @@ export const controlIndicatorStructuralStyles = css `
39
39
  cursor: inherit;
40
40
  }
41
41
  .indicator-mark {
42
+ display: grid;
42
43
  pointer-events: none;
43
44
  visibility: hidden;
44
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"control-indicator.structural.styles.js","sourceRoot":"","sources":["../../src/styles/control-indicator.structural.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAE1C;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsDlD,CAAC"}
1
+ {"version":3,"file":"control-indicator.structural.styles.js","sourceRoot":"","sources":["../../src/styles/control-indicator.structural.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAE1C;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuDlD,CAAC"}
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * Layout of the field anatomy every Oddkin form control renders (`.field` holding `.label`,
3
3
  * `.description`, `.control`, and `.error`): stacked, wrapping, the control filling the field.
4
+ * Adornments are positioned, so they paint above a positioned control box (combobox).
4
5
  * No brand tokens. The `.odd-field` recipe is generated from these rules.
5
6
  */
6
7
  export declare const fieldStructuralStyles: import("@oddkin/core/styles").CSSResult;
@@ -1 +1 @@
1
- {"version":3,"file":"field.structural.styles.d.ts","sourceRoot":"","sources":["../../src/styles/field.structural.styles.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,yCA6CjC,CAAC"}
1
+ {"version":3,"file":"field.structural.styles.d.ts","sourceRoot":"","sources":["../../src/styles/field.structural.styles.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,yCA8CjC,CAAC"}
@@ -2,6 +2,7 @@ import { css } from '@oddkin/core/styles';
2
2
  /**
3
3
  * Layout of the field anatomy every Oddkin form control renders (`.field` holding `.label`,
4
4
  * `.description`, `.control`, and `.error`): stacked, wrapping, the control filling the field.
5
+ * Adornments are positioned, so they paint above a positioned control box (combobox).
5
6
  * No brand tokens. The `.odd-field` recipe is generated from these rules.
6
7
  */
7
8
  export const fieldStructuralStyles = css `
@@ -29,6 +30,7 @@ export const fieldStructuralStyles = css `
29
30
  .control-start,
30
31
  .control-end {
31
32
  display: flex;
33
+ position: relative;
32
34
  pointer-events: none;
33
35
  }
34
36
  .control-start {
@@ -1 +1 @@
1
- {"version":3,"file":"field.structural.styles.js","sourceRoot":"","sources":["../../src/styles/field.structural.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAE1C;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6CvC,CAAC"}
1
+ {"version":3,"file":"field.structural.styles.js","sourceRoot":"","sources":["../../src/styles/field.structural.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAE1C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8CvC,CAAC"}
@@ -1,8 +1,10 @@
1
1
  /**
2
2
  * Navigation rows (component-catalog.md §6 "nav-row"), shared by `odd-side-nav` and `odd-tree`:
3
3
  * full-width `.entry` rows (a link, a button, or a treeitem) with a `.label` that wraps long text.
4
- * Structural rules here; the look is `navRowStyles`. The forced-colours markers are prefixed with
5
- * `.root` (the element's container) to outrank a skin's state rules, which load later.
4
+ * Structural rules here; the look is `navRowStyles`. The current or selected row's marker is a
5
+ * `::before` bar at the inline start, sized and coloured by the skin. The forced-colours markers
6
+ * are prefixed with `.root` (the element's container) to outrank a skin's state rules, which load
7
+ * later.
6
8
  */
7
9
  export declare const navRowStructuralStyles: import("@oddkin/core/styles").CSSResult;
8
10
  //# sourceMappingURL=nav-row.structural.styles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"nav-row.structural.styles.d.ts","sourceRoot":"","sources":["../../src/styles/nav-row.structural.styles.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,yCAmClC,CAAC"}
1
+ {"version":3,"file":"nav-row.structural.styles.d.ts","sourceRoot":"","sources":["../../src/styles/nav-row.structural.styles.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,yCAwClC,CAAC"}
@@ -2,11 +2,14 @@ import { css } from '@oddkin/core/styles';
2
2
  /**
3
3
  * Navigation rows (component-catalog.md §6 "nav-row"), shared by `odd-side-nav` and `odd-tree`:
4
4
  * full-width `.entry` rows (a link, a button, or a treeitem) with a `.label` that wraps long text.
5
- * Structural rules here; the look is `navRowStyles`. The forced-colours markers are prefixed with
6
- * `.root` (the element's container) to outrank a skin's state rules, which load later.
5
+ * Structural rules here; the look is `navRowStyles`. The current or selected row's marker is a
6
+ * `::before` bar at the inline start, sized and coloured by the skin. The forced-colours markers
7
+ * are prefixed with `.root` (the element's container) to outrank a skin's state rules, which load
8
+ * later.
7
9
  */
8
10
  export const navRowStructuralStyles = css `
9
11
  .entry {
12
+ position: relative;
10
13
  box-sizing: border-box;
11
14
  display: flex;
12
15
  align-items: center;
@@ -30,10 +33,14 @@ export const navRowStructuralStyles = css `
30
33
  .entry[aria-disabled='true'] {
31
34
  cursor: not-allowed;
32
35
  }
36
+ .entry:is([aria-current='page'], [aria-selected='true'])::before {
37
+ content: '';
38
+ position: absolute;
39
+ inset-inline-start: 0;
40
+ }
33
41
  @media (forced-colors: active) {
34
- .root .entry[aria-current='page'],
35
- .root .entry[aria-selected='true'] {
36
- border-inline-start-color: Highlight;
42
+ .root .entry:is([aria-current='page'], [aria-selected='true'])::before {
43
+ background: Highlight;
37
44
  }
38
45
  .root .entry:disabled,
39
46
  .root .entry[aria-disabled='true'] {
@@ -1 +1 @@
1
- {"version":3,"file":"nav-row.structural.styles.js","sourceRoot":"","sources":["../../src/styles/nav-row.structural.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAE1C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmCxC,CAAC"}
1
+ {"version":3,"file":"nav-row.structural.styles.js","sourceRoot":"","sources":["../../src/styles/nav-row.structural.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAE1C;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwCxC,CAAC"}
@@ -1,6 +1,8 @@
1
1
  /**
2
2
  * The navigation-row look through the `navigation.*` roles: padding, minimum target size, hover,
3
3
  * and the current or selected row marked by an inline-start bar and weight, not colour alone.
4
+ * The bar is straight and inset by the row's block padding (Figma NavigationItem, State=Current),
5
+ * so the row's rounded corners never bend it.
4
6
  */
5
7
  export declare const navRowStyles: import("@oddkin/core/styles").CSSResult;
6
8
  //# sourceMappingURL=nav-row.styles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"nav-row.styles.d.ts","sourceRoot":"","sources":["../../src/styles/nav-row.styles.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,eAAO,MAAM,YAAY,yCA0BxB,CAAC"}
1
+ {"version":3,"file":"nav-row.styles.d.ts","sourceRoot":"","sources":["../../src/styles/nav-row.styles.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,eAAO,MAAM,YAAY,yCA4BxB,CAAC"}
@@ -3,13 +3,14 @@ import { token } from '@oddkin/tokens/refs';
3
3
  /**
4
4
  * The navigation-row look through the `navigation.*` roles: padding, minimum target size, hover,
5
5
  * and the current or selected row marked by an inline-start bar and weight, not colour alone.
6
+ * The bar is straight and inset by the row's block padding (Figma NavigationItem, State=Current),
7
+ * so the row's rounded corners never bend it.
6
8
  */
7
9
  export const navRowStyles = css `
8
10
  .entry {
9
11
  gap: ${token('navigation.item.gap')};
10
12
  min-block-size: max(${token('navigation.item.min-height')}, ${token('target.min')});
11
13
  padding: ${token('navigation.item.padding.block')} ${token('navigation.item.padding.inline')};
12
- border-inline-start: ${token('border.width.strong')} solid transparent;
13
14
  border-radius: ${token('control.radius')};
14
15
  transition-property: background-color, color;
15
16
  transition-duration: ${token('motion.duration.fast')};
@@ -20,12 +21,15 @@ export const navRowStyles = css `
20
21
  background: ${token('color.surface.hover')};
21
22
  }
22
23
  }
23
- .entry[aria-current='page'],
24
- .entry[aria-selected='true'] {
25
- border-inline-start-color: ${token('color.action.default')};
24
+ .entry:is([aria-current='page'], [aria-selected='true']) {
26
25
  background: ${token('color.surface.hover')};
27
26
  font-weight: ${token('font.weight.semibold')};
28
27
  }
28
+ .entry:is([aria-current='page'], [aria-selected='true'])::before {
29
+ inset-block: ${token('navigation.item.padding.block')};
30
+ inline-size: ${token('border.width.strong')};
31
+ background: ${token('color.action.default')};
32
+ }
29
33
  .entry:disabled,
30
34
  .entry[aria-disabled='true'] {
31
35
  color: ${token('color.text.disabled')};
@@ -1 +1 @@
1
- {"version":3,"file":"nav-row.styles.js","sourceRoot":"","sources":["../../src/styles/nav-row.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAA;;WAEpB,KAAK,CAAC,qBAAqB,CAAC;0BACb,KAAK,CAAC,4BAA4B,CAAC,KAAK,KAAK,CAAC,YAAY,CAAC;eACtE,KAAK,CAAC,+BAA+B,CAAC,IAAI,KAAK,CAAC,gCAAgC,CAAC;2BACrE,KAAK,CAAC,qBAAqB,CAAC;qBAClC,KAAK,CAAC,gBAAgB,CAAC;;2BAEjB,KAAK,CAAC,sBAAsB,CAAC;kCACtB,KAAK,CAAC,wBAAwB,CAAC;;;;oBAI7C,KAAK,CAAC,qBAAqB,CAAC;;;;;iCAKf,KAAK,CAAC,sBAAsB,CAAC;kBAC5C,KAAK,CAAC,qBAAqB,CAAC;mBAC3B,KAAK,CAAC,sBAAsB,CAAC;;;;aAInC,KAAK,CAAC,qBAAqB,CAAC;;CAExC,CAAC"}
1
+ {"version":3,"file":"nav-row.styles.js","sourceRoot":"","sources":["../../src/styles/nav-row.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAA;;WAEpB,KAAK,CAAC,qBAAqB,CAAC;0BACb,KAAK,CAAC,4BAA4B,CAAC,KAAK,KAAK,CAAC,YAAY,CAAC;eACtE,KAAK,CAAC,+BAA+B,CAAC,IAAI,KAAK,CAAC,gCAAgC,CAAC;qBAC3E,KAAK,CAAC,gBAAgB,CAAC;;2BAEjB,KAAK,CAAC,sBAAsB,CAAC;kCACtB,KAAK,CAAC,wBAAwB,CAAC;;;;oBAI7C,KAAK,CAAC,qBAAqB,CAAC;;;;kBAI9B,KAAK,CAAC,qBAAqB,CAAC;mBAC3B,KAAK,CAAC,sBAAsB,CAAC;;;mBAG7B,KAAK,CAAC,+BAA+B,CAAC;mBACtC,KAAK,CAAC,qBAAqB,CAAC;kBAC7B,KAAK,CAAC,sBAAsB,CAAC;;;;aAIlC,KAAK,CAAC,qBAAqB,CAAC;;CAExC,CAAC"}
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * A row of tabs above the panels (a column beside them when vertical); tabs wrap rather than
3
- * overflow. No brand or visual tokens.
3
+ * overflow. A vertical list takes up to 40% of the width, and at least its longest word, so tab
4
+ * labels wrap between words. No brand or visual tokens.
4
5
  */
5
6
  export declare const tabsStructuralStyles: import("@oddkin/core/styles").CSSResult;
6
7
  //# sourceMappingURL=tabs.structural.styles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.structural.styles.d.ts","sourceRoot":"","sources":["../../src/tabs/tabs.structural.styles.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,oBAAoB,yCAmEhC,CAAC"}
1
+ {"version":3,"file":"tabs.structural.styles.d.ts","sourceRoot":"","sources":["../../src/tabs/tabs.structural.styles.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,yCAuEhC,CAAC"}
@@ -1,7 +1,8 @@
1
1
  import { css } from '@oddkin/core/styles';
2
2
  /**
3
3
  * A row of tabs above the panels (a column beside them when vertical); tabs wrap rather than
4
- * overflow. No brand or visual tokens.
4
+ * overflow. A vertical list takes up to 40% of the width, and at least its longest word, so tab
5
+ * labels wrap between words. No brand or visual tokens.
5
6
  */
6
7
  export const tabsStructuralStyles = css `
7
8
  :host {
@@ -53,8 +54,12 @@ export const tabsStructuralStyles = css `
53
54
  flex: none;
54
55
  flex-direction: column;
55
56
  flex-wrap: nowrap;
57
+ min-inline-size: min-content;
56
58
  max-inline-size: 40%;
57
59
  }
60
+ :host([orientation='vertical']) .tab {
61
+ overflow-wrap: break-word;
62
+ }
58
63
  :host([orientation='vertical']) .panel {
59
64
  flex: 1 1 auto;
60
65
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.structural.styles.js","sourceRoot":"","sources":["../../src/tabs/tabs.structural.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAE1C;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmEtC,CAAC"}
1
+ {"version":3,"file":"tabs.structural.styles.js","sourceRoot":"","sources":["../../src/tabs/tabs.structural.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAE1C;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuEtC,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** Arrangement of the toolbar (layout-recipes.md §14): the controls in a row that wraps, or with `orientation="vertical"` in a column that does not. */
2
+ export declare const toolbarRecipe: import("../layout/index.js").LayoutRecipe;
3
+ //# sourceMappingURL=toolbar.recipe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolbar.recipe.d.ts","sourceRoot":"","sources":["../../src/toolbar/toolbar.recipe.ts"],"names":[],"mappings":"AAGA,wJAAwJ;AACxJ,eAAO,MAAM,aAAa,2CAexB,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { token } from '@oddkin/tokens/refs';
2
+ import { declarations, defineLayoutRecipe, row, stack } from '../layout/index.js';
3
+ /** Arrangement of the toolbar (layout-recipes.md §14): the controls in a row that wraps, or with `orientation="vertical"` in a column that does not. */
4
+ export const toolbarRecipe = defineLayoutRecipe({
5
+ name: 'toolbar',
6
+ regions: {
7
+ toolbar: row({ gap: token('space.sm'), wrap: true }),
8
+ },
9
+ variants: {
10
+ orientation: {
11
+ vertical: {
12
+ toolbar: [
13
+ stack({ gap: token('space.sm'), align: 'stretch' }),
14
+ declarations({ 'flex-wrap': 'nowrap' }),
15
+ ],
16
+ },
17
+ },
18
+ },
19
+ });
20
+ //# sourceMappingURL=toolbar.recipe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolbar.recipe.js","sourceRoot":"","sources":["../../src/toolbar/toolbar.recipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAElF,wJAAwJ;AACxJ,MAAM,CAAC,MAAM,aAAa,GAAG,kBAAkB,CAAC;IAC9C,IAAI,EAAE,SAAS;IACf,OAAO,EAAE;QACP,OAAO,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;KACrD;IACD,QAAQ,EAAE;QACR,WAAW,EAAE;YACX,QAAQ,EAAE;gBACR,OAAO,EAAE;oBACP,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;oBACnD,YAAY,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;iBACxC;aACF;SACF;KACF;CACF,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const toolbarRecipeStyles: import("@oddkin/core/styles").CSSResult;
2
+ //# sourceMappingURL=toolbar.recipe.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolbar.recipe.styles.d.ts","sourceRoot":"","sources":["../../src/toolbar/toolbar.recipe.styles.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,mBAAmB,yCAE/B,CAAC"}
@@ -0,0 +1,5 @@
1
+ // Generated from ./toolbar.recipe.ts by packages/components/test/recipes.test.ts (UPDATE_FIXTURES=1).
2
+ // Do not edit: change the recipe and regenerate.
3
+ import { unsafeCSS } from '@oddkin/core/styles';
4
+ export const toolbarRecipeStyles = unsafeCSS('@layer odd.layout.base, odd.layout.variant, odd.layout.condition;\n@layer odd.layout.base {\n .toolbar {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: var(--odd-space-sm);\n flex-wrap: wrap;\n min-inline-size: 0;\n }\n}\n@layer odd.layout.variant {\n :host(:where([orientation="vertical"])) .toolbar {\n flex-direction: column;\n align-items: stretch;\n flex-wrap: nowrap;\n }\n}\n');
5
+ //# sourceMappingURL=toolbar.recipe.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolbar.recipe.styles.js","sourceRoot":"","sources":["../../src/toolbar/toolbar.recipe.styles.ts"],"names":[],"mappings":"AAAA,sGAAsG;AACtG,iDAAiD;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,MAAM,CAAC,MAAM,mBAAmB,GAAG,SAAS,CAC1C,sbAAsb,CACvb,CAAC"}
@@ -1,6 +1,6 @@
1
1
  /**
2
- * Controls in a wrapping row (a column when vertical); an `<hr>` child is a line across the row.
3
- * No brand or visual tokens.
2
+ * Controls in a wrapping row (a column when vertical: the layout recipe in `toolbar.recipe.ts`);
3
+ * an `<hr>` child is a line across the row. No brand or visual tokens.
4
4
  */
5
5
  export declare const toolbarStructuralStyles: import("@oddkin/core/styles").CSSResult;
6
6
  //# sourceMappingURL=toolbar.structural.styles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"toolbar.structural.styles.d.ts","sourceRoot":"","sources":["../../src/toolbar/toolbar.structural.styles.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,uBAAuB,yCA6BnC,CAAC"}
1
+ {"version":3,"file":"toolbar.structural.styles.d.ts","sourceRoot":"","sources":["../../src/toolbar/toolbar.structural.styles.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,eAAO,MAAM,uBAAuB,yCAmBnC,CAAC"}
@@ -1,23 +1,14 @@
1
1
  import { css } from '@oddkin/core/styles';
2
+ import { toolbarRecipeStyles } from './toolbar.recipe.styles.js';
2
3
  /**
3
- * Controls in a wrapping row (a column when vertical); an `<hr>` child is a line across the row.
4
- * No brand or visual tokens.
4
+ * Controls in a wrapping row (a column when vertical: the layout recipe in `toolbar.recipe.ts`);
5
+ * an `<hr>` child is a line across the row. No brand or visual tokens.
5
6
  */
6
7
  export const toolbarStructuralStyles = css `
8
+ ${toolbarRecipeStyles}
7
9
  :host {
8
10
  display: block;
9
11
  }
10
- .toolbar {
11
- display: flex;
12
- flex-wrap: wrap;
13
- align-items: center;
14
- min-inline-size: 0;
15
- }
16
- :host([orientation='vertical']) .toolbar {
17
- flex-direction: column;
18
- flex-wrap: nowrap;
19
- align-items: stretch;
20
- }
21
12
  ::slotted(hr) {
22
13
  align-self: stretch;
23
14
  margin: 0;
@@ -1 +1 @@
1
- {"version":3,"file":"toolbar.structural.styles.js","sourceRoot":"","sources":["../../src/toolbar/toolbar.structural.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAE1C;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BzC,CAAC"}
1
+ {"version":3,"file":"toolbar.structural.styles.js","sourceRoot":"","sources":["../../src/toolbar/toolbar.structural.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAA;IACtC,mBAAmB;;;;;;;;;;;;;;;;;;CAkBtB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"toolbar.styles.d.ts","sourceRoot":"","sources":["../../src/toolbar/toolbar.styles.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,eAAO,MAAM,aAAa,yCAqBzB,CAAC"}
1
+ {"version":3,"file":"toolbar.styles.d.ts","sourceRoot":"","sources":["../../src/toolbar/toolbar.styles.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,eAAO,MAAM,aAAa,yCAoBzB,CAAC"}
@@ -6,7 +6,6 @@ import { token } from '@oddkin/tokens/refs';
6
6
  */
7
7
  export const toolbarStyles = css `
8
8
  .toolbar {
9
- gap: ${token('space.sm')};
10
9
  padding: ${token('space.md')};
11
10
  border: ${token('border.width.default')} solid ${token('color.border.default')};
12
11
  border-radius: var(--odd-toolbar-radius, ${token('card.radius')});
@@ -1 +1 @@
1
- {"version":3,"file":"toolbar.styles.js","sourceRoot":"","sources":["../../src/toolbar/toolbar.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAA;;WAErB,KAAK,CAAC,UAAU,CAAC;eACb,KAAK,CAAC,UAAU,CAAC;cAClB,KAAK,CAAC,sBAAsB,CAAC,UAAU,KAAK,CAAC,sBAAsB,CAAC;+CACnC,KAAK,CAAC,aAAa,CAAC;gDACnB,KAAK,CAAC,uBAAuB,CAAC;aACjE,KAAK,CAAC,oBAAoB,CAAC;mBACrB,KAAK,CAAC,gBAAgB,CAAC;iBACzB,KAAK,CAAC,cAAc,CAAC;mBACnB,KAAK,CAAC,gBAAgB,CAAC;mBACvB,KAAK,CAAC,qBAAqB,CAAC;;;mBAG5B,KAAK,CAAC,sBAAsB,CAAC;kBAC9B,KAAK,CAAC,sBAAsB,CAAC;;;;kBAI7B,KAAK,CAAC,sBAAsB,CAAC;;CAE9C,CAAC"}
1
+ {"version":3,"file":"toolbar.styles.js","sourceRoot":"","sources":["../../src/toolbar/toolbar.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAA;;eAEjB,KAAK,CAAC,UAAU,CAAC;cAClB,KAAK,CAAC,sBAAsB,CAAC,UAAU,KAAK,CAAC,sBAAsB,CAAC;+CACnC,KAAK,CAAC,aAAa,CAAC;gDACnB,KAAK,CAAC,uBAAuB,CAAC;aACjE,KAAK,CAAC,oBAAoB,CAAC;mBACrB,KAAK,CAAC,gBAAgB,CAAC;iBACzB,KAAK,CAAC,cAAc,CAAC;mBACnB,KAAK,CAAC,gBAAgB,CAAC;mBACvB,KAAK,CAAC,qBAAqB,CAAC;;;mBAG5B,KAAK,CAAC,sBAAsB,CAAC;kBAC9B,KAAK,CAAC,sBAAsB,CAAC;;;;kBAI7B,KAAK,CAAC,sBAAsB,CAAC;;CAE9C,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** Arrangement of the validation summary (layout-recipes.md §14): the summary and its list in columns, and the heading row with its marker. */
2
+ export declare const validationSummaryRecipe: import("../layout/index.js").LayoutRecipe;
3
+ //# sourceMappingURL=validation-summary.recipe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation-summary.recipe.d.ts","sourceRoot":"","sources":["../../src/validation-summary/validation-summary.recipe.ts"],"names":[],"mappings":"AAGA,+IAA+I;AAC/I,eAAO,MAAM,uBAAuB,2CAOlC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { token } from '@oddkin/tokens/refs';
2
+ import { defineLayoutRecipe, row, stack } from '../layout/index.js';
3
+ /** Arrangement of the validation summary (layout-recipes.md §14): the summary and its list in columns, and the heading row with its marker. */
4
+ export const validationSummaryRecipe = defineLayoutRecipe({
5
+ name: 'validation-summary',
6
+ regions: {
7
+ summary: stack({ gap: token('space.sm') }),
8
+ header: row({ gap: token('space.xs'), align: 'start' }),
9
+ list: stack({ gap: token('space.sm') }),
10
+ },
11
+ });
12
+ //# sourceMappingURL=validation-summary.recipe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation-summary.recipe.js","sourceRoot":"","sources":["../../src/validation-summary/validation-summary.recipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEpE,+IAA+I;AAC/I,MAAM,CAAC,MAAM,uBAAuB,GAAG,kBAAkB,CAAC;IACxD,IAAI,EAAE,oBAAoB;IAC1B,OAAO,EAAE;QACP,OAAO,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QACvD,IAAI,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;KACxC;CACF,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const validationSummaryRecipeStyles: import("@oddkin/core/styles").CSSResult;
2
+ //# sourceMappingURL=validation-summary.recipe.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation-summary.recipe.styles.d.ts","sourceRoot":"","sources":["../../src/validation-summary/validation-summary.recipe.styles.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,6BAA6B,yCAEzC,CAAC"}
@@ -0,0 +1,5 @@
1
+ // Generated from ./validation-summary.recipe.ts by packages/components/test/recipes.test.ts (UPDATE_FIXTURES=1).
2
+ // Do not edit: change the recipe and regenerate.
3
+ import { unsafeCSS } from '@oddkin/core/styles';
4
+ export const validationSummaryRecipeStyles = unsafeCSS('@layer odd.layout.base, odd.layout.variant, odd.layout.condition;\n@layer odd.layout.base {\n .summary {\n display: flex;\n flex-direction: column;\n gap: var(--odd-space-sm);\n min-inline-size: 0;\n }\n .header {\n display: flex;\n flex-direction: row;\n align-items: start;\n gap: var(--odd-space-xs);\n flex-wrap: nowrap;\n min-inline-size: 0;\n }\n .list {\n display: flex;\n flex-direction: column;\n gap: var(--odd-space-sm);\n min-inline-size: 0;\n }\n}\n');
5
+ //# sourceMappingURL=validation-summary.recipe.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation-summary.recipe.styles.js","sourceRoot":"","sources":["../../src/validation-summary/validation-summary.recipe.styles.ts"],"names":[],"mappings":"AAAA,iHAAiH;AACjH,iDAAiD;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,MAAM,CAAC,MAAM,6BAA6B,GAAG,SAAS,CACpD,ggBAAggB,CACjgB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  /**
2
- * The heading row (glyph and heading) above the list, in one column that wraps long text. No
3
- * brand or visual tokens.
2
+ * The heading row (glyph and heading) above the list, in one column that wraps long text (the
3
+ * layout recipe in `validation-summary.recipe.ts`). No brand or visual tokens.
4
4
  */
5
5
  export declare const validationSummaryStructuralStyles: import("@oddkin/core/styles").CSSResult;
6
6
  //# sourceMappingURL=validation-summary.structural.styles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validation-summary.structural.styles.d.ts","sourceRoot":"","sources":["../../src/validation-summary/validation-summary.structural.styles.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,iCAAiC,yCA4B7C,CAAC"}
1
+ {"version":3,"file":"validation-summary.structural.styles.d.ts","sourceRoot":"","sources":["../../src/validation-summary/validation-summary.structural.styles.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,eAAO,MAAM,iCAAiC,yCAoB7C,CAAC"}
@@ -1,22 +1,17 @@
1
1
  import { css } from '@oddkin/core/styles';
2
+ import { validationSummaryRecipeStyles } from './validation-summary.recipe.styles.js';
2
3
  /**
3
- * The heading row (glyph and heading) above the list, in one column that wraps long text. No
4
- * brand or visual tokens.
4
+ * The heading row (glyph and heading) above the list, in one column that wraps long text (the
5
+ * layout recipe in `validation-summary.recipe.ts`). No brand or visual tokens.
5
6
  */
6
7
  export const validationSummaryStructuralStyles = css `
8
+ ${validationSummaryRecipeStyles}
7
9
  :host {
8
10
  display: block;
9
11
  }
10
12
  .summary {
11
- display: flex;
12
- flex-direction: column;
13
- min-inline-size: 0;
14
13
  overflow-wrap: anywhere;
15
14
  }
16
- .header {
17
- display: flex;
18
- align-items: flex-start;
19
- }
20
15
  .marker {
21
16
  display: inline-flex;
22
17
  flex: none;
@@ -25,8 +20,6 @@ export const validationSummaryStructuralStyles = css `
25
20
  margin: 0;
26
21
  }
27
22
  .list {
28
- display: flex;
29
- flex-direction: column;
30
23
  margin: 0;
31
24
  padding: 0;
32
25
  list-style: none;
@@ -1 +1 @@
1
- {"version":3,"file":"validation-summary.structural.styles.js","sourceRoot":"","sources":["../../src/validation-summary/validation-summary.structural.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAE1C;;;GAGG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BnD,CAAC"}
1
+ {"version":3,"file":"validation-summary.structural.styles.js","sourceRoot":"","sources":["../../src/validation-summary/validation-summary.structural.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AAEtF;;;GAGG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,GAAG,CAAA;IAChD,6BAA6B;;;;;;;;;;;;;;;;;;;CAmBhC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"validation-summary.styles.d.ts","sourceRoot":"","sources":["../../src/validation-summary/validation-summary.styles.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,eAAO,MAAM,uBAAuB,yCAqCnC,CAAC"}
1
+ {"version":3,"file":"validation-summary.styles.d.ts","sourceRoot":"","sources":["../../src/validation-summary/validation-summary.styles.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,eAAO,MAAM,uBAAuB,yCA8BnC,CAAC"}
@@ -6,16 +6,12 @@ import { token } from '@oddkin/tokens/refs';
6
6
  */
7
7
  export const validationSummaryStyles = css `
8
8
  .summary {
9
- gap: ${token('space.sm')};
10
9
  padding: ${token('space.md')};
11
10
  border: ${token('border.width.default')} solid var(--_tone-foreground);
12
11
  border-radius: ${token('control.radius')};
13
12
  background: var(--_tone-surface);
14
13
  color: ${token('color.text.primary')};
15
14
  }
16
- .header {
17
- gap: ${token('space.xs')};
18
- }
19
15
  .marker,
20
16
  .label {
21
17
  color: var(--_tone-foreground);
@@ -29,9 +25,6 @@ export const validationSummaryStyles = css `
29
25
  font-weight: ${token('type.ui.weight')};
30
26
  line-height: ${token('type.ui.line-height')};
31
27
  }
32
- .list {
33
- gap: ${token('space.sm')};
34
- }
35
28
  .link {
36
29
  color: ${token('color.link')};
37
30
  font-family: ${token('type.body.family')};
@@ -1 +1 @@
1
- {"version":3,"file":"validation-summary.styles.js","sourceRoot":"","sources":["../../src/validation-summary/validation-summary.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAA;;WAE/B,KAAK,CAAC,UAAU,CAAC;eACb,KAAK,CAAC,UAAU,CAAC;cAClB,KAAK,CAAC,sBAAsB,CAAC;qBACtB,KAAK,CAAC,gBAAgB,CAAC;;aAE/B,KAAK,CAAC,oBAAoB,CAAC;;;WAG7B,KAAK,CAAC,UAAU,CAAC;;;;;;;iBAOX,KAAK,CAAC,cAAc,CAAC;;;mBAGnB,KAAK,CAAC,gBAAgB,CAAC;iBACzB,KAAK,CAAC,cAAc,CAAC;mBACnB,KAAK,CAAC,gBAAgB,CAAC;mBACvB,KAAK,CAAC,qBAAqB,CAAC;;;WAGpC,KAAK,CAAC,UAAU,CAAC;;;aAGf,KAAK,CAAC,YAAY,CAAC;mBACb,KAAK,CAAC,kBAAkB,CAAC;iBAC3B,KAAK,CAAC,gBAAgB,CAAC;mBACrB,KAAK,CAAC,kBAAkB,CAAC;mBACzB,KAAK,CAAC,uBAAuB,CAAC;;;;CAIhD,CAAC"}
1
+ {"version":3,"file":"validation-summary.styles.js","sourceRoot":"","sources":["../../src/validation-summary/validation-summary.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAA;;eAE3B,KAAK,CAAC,UAAU,CAAC;cAClB,KAAK,CAAC,sBAAsB,CAAC;qBACtB,KAAK,CAAC,gBAAgB,CAAC;;aAE/B,KAAK,CAAC,oBAAoB,CAAC;;;;;;;iBAOvB,KAAK,CAAC,cAAc,CAAC;;;mBAGnB,KAAK,CAAC,gBAAgB,CAAC;iBACzB,KAAK,CAAC,cAAc,CAAC;mBACnB,KAAK,CAAC,gBAAgB,CAAC;mBACvB,KAAK,CAAC,qBAAqB,CAAC;;;aAGlC,KAAK,CAAC,YAAY,CAAC;mBACb,KAAK,CAAC,kBAAkB,CAAC;iBAC3B,KAAK,CAAC,gBAAgB,CAAC;mBACrB,KAAK,CAAC,kBAAkB,CAAC;mBACzB,KAAK,CAAC,uBAAuB,CAAC;;;;CAIhD,CAAC"}