@thewhatmatters/wmds 0.4.27 → 0.4.29

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 (301) hide show
  1. package/CHANGELOG.md +60 -0
  2. package/CONSUMING.md +62 -1
  3. package/bin/wmds-check.mjs +47 -0
  4. package/dist/colors.css +92 -0
  5. package/dist/components/atoms/Badge/badgeStyles.js +6 -6
  6. package/dist/components/atoms/Band/Band.d.ts +27 -0
  7. package/dist/components/atoms/Band/Band.d.ts.map +1 -0
  8. package/dist/components/atoms/Band/Band.js +22 -0
  9. package/dist/components/atoms/Band/bandStyles.d.ts +20 -0
  10. package/dist/components/atoms/Band/bandStyles.d.ts.map +1 -0
  11. package/dist/components/atoms/Band/bandStyles.js +23 -0
  12. package/dist/components/atoms/Button/ButtonStatusButton.d.ts.map +1 -1
  13. package/dist/components/atoms/Button/ButtonStatusButton.js +12 -5
  14. package/dist/components/atoms/Button/buttonStyles.d.ts +1 -1
  15. package/dist/components/atoms/Button/buttonStyles.d.ts.map +1 -1
  16. package/dist/components/atoms/Button/buttonStyles.js +2 -2
  17. package/dist/components/atoms/Checkbox/Checkbox.d.ts.map +1 -1
  18. package/dist/components/atoms/Checkbox/Checkbox.js +69 -68
  19. package/dist/components/atoms/Checkbox/checkboxStyles.d.ts +1 -1
  20. package/dist/components/atoms/Checkbox/checkboxStyles.d.ts.map +1 -1
  21. package/dist/components/atoms/Checkbox/checkboxStyles.js +1 -1
  22. package/dist/components/atoms/IconButton/IconButton.d.ts.map +1 -1
  23. package/dist/components/atoms/IconButton/IconButton.js +13 -12
  24. package/dist/components/atoms/IconButton/iconButtonStyles.d.ts +2 -2
  25. package/dist/components/atoms/IconButton/iconButtonStyles.d.ts.map +1 -1
  26. package/dist/components/atoms/IconButton/iconButtonStyles.js +1 -1
  27. package/dist/components/atoms/InlinePill/InlinePill.d.ts +42 -0
  28. package/dist/components/atoms/InlinePill/InlinePill.d.ts.map +1 -0
  29. package/dist/components/atoms/InlinePill/InlinePill.js +48 -0
  30. package/dist/components/atoms/InlinePill/inlinePillStyles.d.ts +27 -0
  31. package/dist/components/atoms/InlinePill/inlinePillStyles.d.ts.map +1 -0
  32. package/dist/components/atoms/InlinePill/inlinePillStyles.js +19 -0
  33. package/dist/components/atoms/Input/Input.d.ts +6 -3
  34. package/dist/components/atoms/Input/Input.d.ts.map +1 -1
  35. package/dist/components/atoms/Input/inputShellStyles.d.ts +1 -1
  36. package/dist/components/atoms/Input/inputShellStyles.d.ts.map +1 -1
  37. package/dist/components/atoms/Input/inputShellStyles.js +3 -3
  38. package/dist/components/atoms/Skeleton/skeletonStyles.js +1 -1
  39. package/dist/components/atoms/Switch/Switch.d.ts.map +1 -1
  40. package/dist/components/atoms/Switch/Switch.js +45 -44
  41. package/dist/components/atoms/Switch/switchStyles.d.ts +1 -1
  42. package/dist/components/atoms/Switch/switchStyles.d.ts.map +1 -1
  43. package/dist/components/atoms/Switch/switchStyles.js +1 -1
  44. package/dist/components/atoms/TextArea/textareaShellStyles.js +3 -3
  45. package/dist/components/molecules/Accordion/accordionStyles.d.ts +1 -1
  46. package/dist/components/molecules/Accordion/accordionStyles.d.ts.map +1 -1
  47. package/dist/components/molecules/Accordion/accordionStyles.js +1 -1
  48. package/dist/components/molecules/Breadcrumb/Breadcrumb.d.ts.map +1 -1
  49. package/dist/components/molecules/Breadcrumb/Breadcrumb.js +80 -122
  50. package/dist/components/molecules/Card/cardStyles.js +1 -1
  51. package/dist/components/molecules/ChatQa/chatQaStyles.d.ts +1 -1
  52. package/dist/components/molecules/ChatQa/chatQaStyles.d.ts.map +1 -1
  53. package/dist/components/molecules/ChatQa/chatQaStyles.js +1 -1
  54. package/dist/components/molecules/Chip/chipStyles.js +1 -1
  55. package/dist/components/molecules/Dropdown/Dropdown.d.ts +1 -1
  56. package/dist/components/molecules/Dropdown/DropdownItem.d.ts +2 -2
  57. package/dist/components/molecules/Dropdown/DropdownItem.d.ts.map +1 -1
  58. package/dist/components/molecules/Dropdown/DropdownItem.js +30 -27
  59. package/dist/components/molecules/Dropdown/dropdownStyles.js +1 -1
  60. package/dist/components/molecules/Dropdown/resolveOverflow.d.ts +14 -0
  61. package/dist/components/molecules/Dropdown/resolveOverflow.d.ts.map +1 -0
  62. package/dist/components/{organisms/Tab/tabOverflow.js → molecules/Dropdown/resolveOverflow.js} +2 -2
  63. package/dist/components/molecules/Dropdown/useDropdownMenu.d.ts +70 -0
  64. package/dist/components/molecules/Dropdown/useDropdownMenu.d.ts.map +1 -0
  65. package/dist/components/molecules/Dropdown/useDropdownMenu.js +155 -0
  66. package/dist/components/molecules/Dropdown/useOverflowMenu.d.ts +71 -0
  67. package/dist/components/molecules/Dropdown/useOverflowMenu.d.ts.map +1 -0
  68. package/dist/components/molecules/Dropdown/useOverflowMenu.js +61 -0
  69. package/dist/components/molecules/Field/Field.d.ts.map +1 -1
  70. package/dist/components/molecules/Field/Field.js +11 -10
  71. package/dist/components/molecules/LogView/logViewStyles.d.ts +1 -1
  72. package/dist/components/molecules/LogView/logViewStyles.d.ts.map +1 -1
  73. package/dist/components/molecules/LogView/logViewStyles.js +1 -1
  74. package/dist/components/molecules/PillGroup/pillGroupStyles.js +1 -1
  75. package/dist/components/molecules/Search/searchStyles.js +1 -1
  76. package/dist/components/molecules/SegmentedControl/segmentedControlStyles.d.ts +1 -1
  77. package/dist/components/molecules/SegmentedControl/segmentedControlStyles.d.ts.map +1 -1
  78. package/dist/components/molecules/SegmentedControl/segmentedControlStyles.js +3 -3
  79. package/dist/components/molecules/Select/Select.d.ts +3 -1
  80. package/dist/components/molecules/Select/Select.d.ts.map +1 -1
  81. package/dist/components/molecules/Select/Select.js +75 -119
  82. package/dist/components/molecules/Select/selectStyles.js +3 -3
  83. package/dist/components/molecules/Stat/statStyles.d.ts +1 -1
  84. package/dist/components/molecules/Stat/statStyles.d.ts.map +1 -1
  85. package/dist/components/molecules/Stat/statStyles.js +1 -1
  86. package/dist/components/molecules/TextSequence/TextSequence.d.ts.map +1 -1
  87. package/dist/components/molecules/TextSequence/TextSequence.js +35 -35
  88. package/dist/components/organisms/AppShell/AppShell.d.ts +2 -0
  89. package/dist/components/organisms/AppShell/AppShell.d.ts.map +1 -1
  90. package/dist/components/organisms/AppShell/AppShell.js +138 -129
  91. package/dist/components/organisms/AppShell/appShellStyles.d.ts +2 -0
  92. package/dist/components/organisms/AppShell/appShellStyles.d.ts.map +1 -1
  93. package/dist/components/organisms/AppShell/appShellStyles.js +2 -2
  94. package/dist/components/organisms/Dialog/AlertDialog.d.ts +7 -1
  95. package/dist/components/organisms/Dialog/AlertDialog.d.ts.map +1 -1
  96. package/dist/components/organisms/Dialog/AlertDialog.js +54 -50
  97. package/dist/components/organisms/Dialog/Dialog.d.ts.map +1 -1
  98. package/dist/components/organisms/Dialog/Dialog.js +52 -71
  99. package/dist/components/organisms/Dialog/dialogStyles.d.ts +14 -1
  100. package/dist/components/organisms/Dialog/dialogStyles.d.ts.map +1 -1
  101. package/dist/components/organisms/Dialog/dialogStyles.js +3 -3
  102. package/dist/components/organisms/FilterPanel/FilterPanel.d.ts.map +1 -1
  103. package/dist/components/organisms/FilterPanel/FilterPanel.js +52 -42
  104. package/dist/components/organisms/IntakeModal/IntakeModal.d.ts +6 -1
  105. package/dist/components/organisms/IntakeModal/IntakeModal.d.ts.map +1 -1
  106. package/dist/components/organisms/IntakeModal/IntakeModal.js +54 -66
  107. package/dist/components/organisms/MoreMenu/MoreMenu.d.ts.map +1 -1
  108. package/dist/components/organisms/MoreMenu/MoreMenu.js +45 -101
  109. package/dist/components/organisms/Panel/Panel.d.ts.map +1 -1
  110. package/dist/components/organisms/Panel/Panel.js +44 -53
  111. package/dist/components/organisms/Sheet/Sheet.d.ts +3 -1
  112. package/dist/components/organisms/Sheet/Sheet.d.ts.map +1 -1
  113. package/dist/components/organisms/Sheet/Sheet.js +82 -101
  114. package/dist/components/organisms/SiteNav/SiteNav.d.ts +0 -9
  115. package/dist/components/organisms/SiteNav/SiteNav.d.ts.map +1 -1
  116. package/dist/components/organisms/SiteNav/SiteNav.js +180 -227
  117. package/dist/components/organisms/SiteNav/siteNavStyles.js +1 -1
  118. package/dist/components/organisms/Tab/Tab.d.ts.map +1 -1
  119. package/dist/components/organisms/Tab/Tab.js +77 -127
  120. package/dist/components/organisms/Tab/tabStyles.d.ts +2 -1
  121. package/dist/components/organisms/Tab/tabStyles.d.ts.map +1 -1
  122. package/dist/components/organisms/Tab/tabStyles.js +2 -2
  123. package/dist/fonts.css +10 -0
  124. package/dist/grid.css +38 -0
  125. package/dist/index.d.ts +2 -0
  126. package/dist/index.d.ts.map +1 -1
  127. package/dist/index.js +135 -131
  128. package/dist/lib/contrast.d.ts +11 -0
  129. package/dist/lib/contrast.d.ts.map +1 -0
  130. package/dist/lib/dialogOverlay.d.ts +27 -1
  131. package/dist/lib/dialogOverlay.d.ts.map +1 -1
  132. package/dist/lib/dialogOverlay.js +87 -25
  133. package/dist/lib/typography.d.ts +1 -1
  134. package/dist/lib/typography.d.ts.map +1 -1
  135. package/dist/shape.css +24 -3
  136. package/dist/styles.css +1 -1
  137. package/dist/typography.css +55 -8
  138. package/docs/components.md +4 -2
  139. package/docs/exports.json +55 -1
  140. package/docs/patterns/components-accordion--flush.tsx +1 -1
  141. package/docs/patterns/components-appshell--portal-dashboard-pattern.tsx +1 -1
  142. package/docs/patterns/components-avatar--dropdown-row.tsx +1 -1
  143. package/docs/patterns/components-badge--outline-tags.tsx +1 -1
  144. package/docs/patterns/components-badge--status-pill.tsx +1 -1
  145. package/docs/patterns/components-badge--with-avatar.tsx +1 -1
  146. package/docs/patterns/components-band--page-in-bands.tsx +39 -0
  147. package/docs/patterns/components-breadcrumb--editorial.tsx +1 -1
  148. package/docs/patterns/components-breadcrumb--long-path.tsx +1 -1
  149. package/docs/patterns/components-breadcrumb--path.tsx +1 -1
  150. package/docs/patterns/components-breadcrumb--router-links.tsx +1 -1
  151. package/docs/patterns/components-button-button--copy-button.tsx +1 -1
  152. package/docs/patterns/components-button-button--destructive-action.tsx +1 -1
  153. package/docs/patterns/components-button-button--external-link.tsx +1 -1
  154. package/docs/patterns/components-button-button--ghost-action.tsx +1 -1
  155. package/docs/patterns/components-button-button--inverse-action.tsx +1 -1
  156. package/docs/patterns/components-button-button--link-render.tsx +1 -1
  157. package/docs/patterns/components-button-button--multi-state-badge.tsx +1 -1
  158. package/docs/patterns/components-button-button--outline-mono.tsx +1 -1
  159. package/docs/patterns/components-button-button--primary-action.tsx +1 -1
  160. package/docs/patterns/components-button-button--row-hug.tsx +1 -1
  161. package/docs/patterns/components-button-button--row-layout.tsx +1 -1
  162. package/docs/patterns/components-button-button--secondary-action.tsx +1 -1
  163. package/docs/patterns/components-button-button--suggestion-pills.tsx +1 -1
  164. package/docs/patterns/components-button-button--with-count.tsx +1 -1
  165. package/docs/patterns/components-button-button--with-icon.tsx +1 -1
  166. package/docs/patterns/components-button-floatingactionbutton--vertical-actions.tsx +1 -1
  167. package/docs/patterns/components-calembed--pattern-skip-in-footer.tsx +1 -1
  168. package/docs/patterns/components-card-card--body-slot-occupancy-history.tsx +1 -1
  169. package/docs/patterns/components-card-card--headerless-media.tsx +1 -1
  170. package/docs/patterns/components-card-card--outlined-layout.tsx +1 -1
  171. package/docs/patterns/components-card-card--pinned-height.tsx +1 -1
  172. package/docs/patterns/components-card-card--terminal-frame.tsx +1 -1
  173. package/docs/patterns/components-card-selectablecard--selectable-cards-pattern.tsx +1 -1
  174. package/docs/patterns/components-carousel--image-carousel.tsx +1 -1
  175. package/docs/patterns/components-chart--audience-activity-heatmap.tsx +1 -1
  176. package/docs/patterns/components-chart--cartesian-no-data-gaps.tsx +1 -1
  177. package/docs/patterns/components-chart--occupancy-history-in-card.tsx +1 -1
  178. package/docs/patterns/components-chart--occupancy-in-card.tsx +1 -1
  179. package/docs/patterns/components-chart--post-reach-distribution.tsx +1 -1
  180. package/docs/patterns/components-chart--ranked-audience-breakdown.tsx +1 -1
  181. package/docs/patterns/components-chart--revenue-by-line.tsx +1 -1
  182. package/docs/patterns/components-chart--segmented-ring-pattern.tsx +1 -1
  183. package/docs/patterns/components-chart--unit-grid-composition.tsx +1 -1
  184. package/docs/patterns/components-chatdock--pattern-chat-dock.tsx +1 -1
  185. package/docs/patterns/components-chatdock--pattern-start-project-gate.tsx +1 -1
  186. package/docs/patterns/components-chatqa--pattern-qa-with-reply.tsx +1 -1
  187. package/docs/patterns/components-checkbox-checkbox--default.tsx +1 -1
  188. package/docs/patterns/components-checkbox-checkbox--with-count.tsx +1 -1
  189. package/docs/patterns/components-checkbox-checkbox--with-description.tsx +1 -1
  190. package/docs/patterns/components-checkbox-checkboxgroup--default.tsx +1 -1
  191. package/docs/patterns/components-checkbox-checkboxgroup--option-counts.tsx +1 -1
  192. package/docs/patterns/components-copyfield--clipboard-blocked.tsx +1 -1
  193. package/docs/patterns/components-copyfield--copied.tsx +1 -1
  194. package/docs/patterns/components-copyfield--copy-key.tsx +1 -1
  195. package/docs/patterns/components-copyfield--on-navy.tsx +1 -1
  196. package/docs/patterns/components-descriptionlist--details.tsx +1 -1
  197. package/docs/patterns/components-descriptionlist--post-metadata.tsx +1 -1
  198. package/docs/patterns/components-dialog--alert-dialog-destructive.tsx +1 -1
  199. package/docs/patterns/components-dialog--alert-dialog-typed-confirmation.tsx +54 -0
  200. package/docs/patterns/components-dialog--default-dialog.tsx +1 -1
  201. package/docs/patterns/components-dialog--form-dialog.tsx +1 -1
  202. package/docs/patterns/components-displaycontrols--page-utilities.tsx +1 -1
  203. package/docs/patterns/components-displaycontrols--theme-switch.tsx +1 -1
  204. package/docs/patterns/components-field--horizontal-input.tsx +1 -1
  205. package/docs/patterns/components-field--horizontal-text-area.tsx +1 -1
  206. package/docs/patterns/components-field--multi-control.tsx +1 -1
  207. package/docs/patterns/components-filterpanel--panel.tsx +1 -1
  208. package/docs/patterns/components-footerreveal--marketing-hero-pattern.tsx +1 -1
  209. package/docs/patterns/components-footerreveal--marketing-hero-ruled-pattern.tsx +1 -1
  210. package/docs/patterns/components-footerreveal--marketing-hero-with-gallery-intro.tsx +1 -1
  211. package/docs/patterns/components-footerreveal--marketing-page-pattern.tsx +1 -1
  212. package/docs/patterns/components-footerreveal--ruled-grid-footer-pattern.tsx +1 -1
  213. package/docs/patterns/components-footerreveal--sequenced-marketing-hero.tsx +1 -1
  214. package/docs/patterns/components-herointro--two-line-intro.tsx +1 -1
  215. package/docs/patterns/components-herotilestack--marketing-hero-pattern.tsx +1 -1
  216. package/docs/patterns/components-herotilestack--marketing-hero-text-sequence.tsx +1 -1
  217. package/docs/patterns/components-herotilestack--marketing-hero-with-gallery-intro.tsx +1 -1
  218. package/docs/patterns/components-indexlist--post-index.tsx +1 -1
  219. package/docs/patterns/components-intakeconfirmation--booked-pattern.tsx +1 -1
  220. package/docs/patterns/components-intakeconfirmation--emailed-pattern.tsx +1 -1
  221. package/docs/patterns/components-intakeform--about-you-pattern.tsx +1 -1
  222. package/docs/patterns/components-intakeform--short-form-pattern.tsx +1 -1
  223. package/docs/patterns/components-intakemodal--intake-modal-pattern.tsx +1 -1
  224. package/docs/patterns/components-kbd--command-row.tsx +1 -1
  225. package/docs/patterns/components-kbd--numbered-choices.tsx +1 -1
  226. package/docs/patterns/components-kbd--shortcut.tsx +1 -1
  227. package/docs/patterns/components-linktile--resource-tile.tsx +1 -1
  228. package/docs/patterns/components-linktile--router-link.tsx +1 -1
  229. package/docs/patterns/components-logview--detail-pane.tsx +1 -1
  230. package/docs/patterns/components-logview--log-viewer.tsx +1 -1
  231. package/docs/patterns/components-moremenu--action-menu.tsx +1 -1
  232. package/docs/patterns/components-moremenu--in-card-header.tsx +1 -1
  233. package/docs/patterns/components-navlist--app-sidebar.tsx +1 -1
  234. package/docs/patterns/components-navlist--side-nav-settings.tsx +1 -1
  235. package/docs/patterns/components-pageheader--app-header-pattern.tsx +1 -1
  236. package/docs/patterns/components-pageheader--page-section-header.tsx +1 -1
  237. package/docs/patterns/components-pageheader--toolbar-header.tsx +1 -1
  238. package/docs/patterns/components-panel--end-detail-rail.tsx +1 -1
  239. package/docs/patterns/components-pillgroup--pill-group-pattern.tsx +1 -1
  240. package/docs/patterns/components-promptbar--pattern-prompt-bar.tsx +1 -1
  241. package/docs/patterns/components-prose--article-body.tsx +1 -1
  242. package/docs/patterns/components-radio-radiogroup--default.tsx +1 -1
  243. package/docs/patterns/components-scrollhorizontal--project-gallery-pattern.tsx +1 -1
  244. package/docs/patterns/components-scrollhorizontal--with-intro.tsx +1 -1
  245. package/docs/patterns/components-sectioncaption--column-caption.tsx +1 -1
  246. package/docs/patterns/components-sectioncaption--with-action.tsx +1 -1
  247. package/docs/patterns/components-sheet--bottom-sheet.tsx +1 -1
  248. package/docs/patterns/components-sheet--end-sheet.tsx +1 -1
  249. package/docs/patterns/components-sheet--side-sheet-header-actions.tsx +1 -1
  250. package/docs/patterns/components-sheet--side-sheet-url-deep-link.tsx +1 -1
  251. package/docs/patterns/components-sheet--side-sheet.tsx +1 -1
  252. package/docs/patterns/components-sitenav--brand-and-cta.tsx +1 -1
  253. package/docs/patterns/components-sitenav--centered-links.tsx +1 -1
  254. package/docs/patterns/components-sitenav--compact.tsx +1 -1
  255. package/docs/patterns/components-sitenav--marketing-header.tsx +1 -1
  256. package/docs/patterns/components-sitenav--mega-menu.tsx +1 -1
  257. package/docs/patterns/components-stat--hero-stat.tsx +1 -1
  258. package/docs/patterns/components-stat--insights-row.tsx +1 -1
  259. package/docs/patterns/components-stepprogress--step-progress-pattern.tsx +1 -1
  260. package/docs/patterns/components-switch--default.tsx +1 -1
  261. package/docs/patterns/components-switch--settings-row.tsx +1 -1
  262. package/docs/patterns/components-tab--settings-pages.tsx +1 -1
  263. package/docs/patterns/components-table--approvals-with-sheet.tsx +1 -1
  264. package/docs/patterns/components-table--approvals.tsx +1 -1
  265. package/docs/patterns/components-table--basic.tsx +1 -1
  266. package/docs/patterns/components-taskrows--action-details.tsx +1 -1
  267. package/docs/patterns/components-taskrows--capsules.tsx +1 -1
  268. package/docs/patterns/components-taskrows--card-with-status-rows.tsx +1 -1
  269. package/docs/patterns/components-taskrows--controlled-expand.tsx +1 -1
  270. package/docs/patterns/components-taskrows--custom-slots.tsx +1 -1
  271. package/docs/patterns/components-taskrows--needs-you-table.tsx +1 -1
  272. package/docs/patterns/components-taskrows--status-list.tsx +1 -1
  273. package/docs/patterns/components-taskrows--tag-chips.tsx +1 -1
  274. package/docs/patterns/components-textarea--save-status.tsx +1 -1
  275. package/docs/patterns/components-textlink--external-destination.tsx +1 -1
  276. package/docs/patterns/components-textlink--inline-prose.tsx +1 -1
  277. package/docs/patterns/components-textlink--quiet-title.tsx +1 -1
  278. package/docs/patterns/components-textlink--supporting-copy.tsx +1 -1
  279. package/docs/patterns/components-textsequence--default.tsx +1 -1
  280. package/docs/patterns/components-textsequence--reduced-motion.tsx +1 -1
  281. package/docs/patterns/components-textsequence--shapes.tsx +1 -1
  282. package/docs/patterns/components-tilegrid--masonry.tsx +1 -1
  283. package/docs/patterns/components-toast--stacked-notifications.tsx +1 -1
  284. package/docs/patterns/components-tooltip--controlled.tsx +1 -1
  285. package/docs/patterns/components-tooltip--disabled-control.tsx +1 -1
  286. package/docs/patterns/components-tooltip--icon-action.tsx +1 -1
  287. package/docs/patterns/components-tooltip--keyboard-shortcut.tsx +1 -1
  288. package/docs/patterns/components-tooltip--placement.tsx +1 -1
  289. package/docs/patterns/foundations-scroll-fade--horizontal-rail.tsx +1 -1
  290. package/docs/patterns/foundations-scroll-fade--overflowing-list.tsx +1 -1
  291. package/docs/patterns/guides-chart-explorations--comparison-gallery.tsx +1 -1
  292. package/docs/patterns/guides-filter-panel--filtered-grid.tsx +1 -1
  293. package/docs/patterns/guides-filter-panel--filtered-index.tsx +1 -1
  294. package/docs/patterns/guides-overlay-flows--notification-preferences.tsx +1 -1
  295. package/docs/patterns/guides-post-page--post-page.tsx +1 -1
  296. package/docs/patterns/guides-profile-typography--editorial-profile.tsx +1 -1
  297. package/docs/patterns/guides-resource-detail--detail.tsx +1 -1
  298. package/docs/patterns/index.json +17 -1
  299. package/package.json +1 -1
  300. package/dist/components/organisms/Tab/tabOverflow.d.ts +0 -14
  301. package/dist/components/organisms/Tab/tabOverflow.d.ts.map +0 -1
@@ -89,6 +89,22 @@
89
89
  --text-display-3-weight: var(--font-weight-semibold);
90
90
  --text-display-3-leading: 1.24;
91
91
 
92
+ /**
93
+ * Hero — the one oversized moment on a marketing page (a poster headline). Fluid to 16vw:
94
+ * 62px at 390, 230px at 1440. A brand kit may set `--text-display-hero-size` for its face
95
+ * (a condensed face carries more vw). Tight leading; long words break instead of overflowing.
96
+ */
97
+ --text-display-hero-size: clamp(3.5rem, 16vw, 16rem);
98
+ --text-display-hero-weight: var(--font-weight-bold);
99
+ --text-display-hero-leading: 0.92;
100
+ --text-display-hero-tracking: -0.04em;
101
+
102
+ /** XL — big statement rows under a hero (section titles, price rows): 44px → 136px. */
103
+ --text-display-xl-size: clamp(2.75rem, 9vw, 8.5rem);
104
+ --text-display-xl-weight: var(--font-weight-bold);
105
+ --text-display-xl-leading: 0.9;
106
+ --text-display-xl-tracking: -0.03em;
107
+
92
108
  /* Body & UI */
93
109
  --text-large-size: var(--font-size-lg);
94
110
  --text-large-weight: var(--font-weight-semibold);
@@ -143,27 +159,58 @@
143
159
  --text-control-leading: 1;
144
160
  }
145
161
 
146
- /* Semantic type utilities — size + weight + leading from tokens; color via text-fg / text-muted. */
162
+ /*
163
+ * Semantic type utilities — size + weight + leading from tokens; color via text-fg / text-muted.
164
+ * Display steps read the brand-kit knobs (fonts.css) with the step's own value as the fallback.
165
+ * With no fallback (display-2/3 tracking, case), an unset knob leaves the inherited value alone.
166
+ */
167
+ @utility type-display-hero {
168
+ font-family: var(--font-display, var(--font-family-heading));
169
+ font-size: var(--text-display-hero-size);
170
+ font-weight: var(--font-display-weight, var(--text-display-hero-weight));
171
+ line-height: var(--text-display-hero-leading);
172
+ letter-spacing: var(--font-display-tracking, var(--text-display-hero-tracking));
173
+ text-transform: var(--font-display-case);
174
+ overflow-wrap: break-word;
175
+ text-wrap: balance;
176
+ }
177
+
178
+ @utility type-display-xl {
179
+ font-family: var(--font-display, var(--font-family-heading));
180
+ font-size: var(--text-display-xl-size);
181
+ font-weight: var(--font-display-weight, var(--text-display-xl-weight));
182
+ line-height: var(--text-display-xl-leading);
183
+ letter-spacing: var(--font-display-tracking, var(--text-display-xl-tracking));
184
+ text-transform: var(--font-display-case);
185
+ overflow-wrap: break-word;
186
+ text-wrap: balance;
187
+ }
188
+
147
189
  @utility type-display-1 {
148
- font-family: var(--font-family-heading);
190
+ font-family: var(--font-display, var(--font-family-heading));
149
191
  font-size: var(--text-display-1-size);
150
- font-weight: var(--text-display-1-weight);
192
+ font-weight: var(--font-display-weight, var(--text-display-1-weight));
151
193
  line-height: var(--text-display-1-leading);
152
- letter-spacing: var(--text-display-1-tracking);
194
+ letter-spacing: var(--font-display-tracking, var(--text-display-1-tracking));
195
+ text-transform: var(--font-display-case);
153
196
  }
154
197
 
155
198
  @utility type-display-2 {
156
- font-family: var(--font-family-heading);
199
+ font-family: var(--font-display, var(--font-family-heading));
157
200
  font-size: var(--text-display-2-size);
158
- font-weight: var(--text-display-2-weight);
201
+ font-weight: var(--font-display-weight, var(--text-display-2-weight));
159
202
  line-height: var(--text-display-2-leading);
203
+ letter-spacing: var(--font-display-tracking);
204
+ text-transform: var(--font-display-case);
160
205
  }
161
206
 
162
207
  @utility type-display-3 {
163
- font-family: var(--font-family-heading);
208
+ font-family: var(--font-display, var(--font-family-heading));
164
209
  font-size: var(--text-display-3-size);
165
- font-weight: var(--text-display-3-weight);
210
+ font-weight: var(--font-display-weight, var(--text-display-3-weight));
166
211
  line-height: var(--text-display-3-leading);
212
+ letter-spacing: var(--font-display-tracking);
213
+ text-transform: var(--font-display-case);
167
214
  }
168
215
 
169
216
  @utility type-heading-1 {
@@ -1,13 +1,13 @@
1
1
  # @thewhatmatters/wmds — component contracts
2
2
 
3
- Version 0.4.27. Generated from the WMDS repository's AGENTS.md (Storybook-first) by `scripts/generate-package-docs.mjs` — do not edit here.
3
+ Version 0.4.29. Generated from the WMDS repository's AGENTS.md (Storybook-first) by `scripts/generate-package-docs.mjs` — do not edit here.
4
4
 
5
5
  Storybook paths such as **Components/Button/Button → Pattern — …** name a story; its Show code is in `patterns/` (see `patterns/index.json`). Longer contracts for FooterReveal, HeroTileStack, TextSequence, ScrollHorizontal, RiveHand, and PromptBar are in `component-contracts.md`. ADR numbers refer to decision records in the WMDS repository.
6
6
 
7
7
  - **Theme** lives in `src/theme/` — `colors.css` (semantic roles) + `theme.css` (Tailwind `@theme` bridge). Storybook is the source of truth, not Paper.
8
8
  - **Dark mode:** `[data-theme="dark"]` on `<html>` or any ancestor — same token names, swapped values in `colors.css`.
9
9
  - **Consuming apps:** use exported components and typed props; `className` for layout only — not re-theming. Page layout utilities (`gap`, `grid`, `max-w`) are fine between components.
10
- - **Theme tokens:** Semantic roles in **`src/theme/colors.css`**; typography in **`src/theme/typography.css`** (`type-*` utilities, geometric scale; **display-1/2/3** are fluid via `clamp` — display-1 hits **5rem** on desktop and scales down to **2.5rem** on mobile); motion in **`src/theme/motion.css`**; page spine in **`src/theme/grid.css`** (`--grid-*`, `grid-page` / `band`, `--leading-base`). **`--spacing` stays 4px** — do not re-scale; baseline is 8px. See **ADR-0007**, **ADR-0008**, **ADR-0009**, **ADR-0010**, **DESIGN.md → Grid**. Use **`typographyClass()`** — not raw `text-sm` in document copy. **`type-eyebrow`** (`typographyClass("eyebrow")`) is the small uppercase mono caption for editorial labels — **SectionCaption**, **IndexList** captions, **DescriptionList** `variant="mono"` names; write the text in sentence case — the "/" marker comes from the component, `aria-hidden`. Not for app UI section labels (`overline`) or secondary text (`caption`). **`type-caption`** (`typographyClass("caption-tight")`, 12px on a 16px line) is a single line directly under a label — **LinkTile**'s meta line only, for now; never wrapped text, which stays on `caption` (`type-supporting`, 12px on 20px). **`type-reading`** (`typographyClass("reading")`, 17px at a 28px line) is long-form article text — **Prose** sets it; UI copy stays on `type-body`. A dotted hairline is **DescriptionList** `rule="dotted"`. See **ADR-0040**, **ADR-0041**.
10
+ - **Theme tokens:** Semantic roles in **`src/theme/colors.css`**; typography in **`src/theme/typography.css`** (`type-*` utilities, geometric scale; **display-1/2/3** are fluid via `clamp` — display-1 hits **5rem** on desktop and scales down to **2.5rem** on mobile; above them **`type-display-hero`** (the one oversized moment, to 16vw) and **`type-display-xl`** (statement rows); every display step reads the brand-kit knobs `--font-display*`, CONSUMING.md → Brand kit); motion in **`src/theme/motion.css`**; page spine in **`src/theme/grid.css`** (`--grid-*`, `grid-page` / `band`, `--leading-base`). **`--spacing` stays 4px** — do not re-scale; baseline is 8px. See **ADR-0007**, **ADR-0008**, **ADR-0009**, **ADR-0010**, **DESIGN.md → Grid**. Use **`typographyClass()`** — not raw `text-sm` in document copy. **`type-eyebrow`** (`typographyClass("eyebrow")`) is the small uppercase mono caption for editorial labels — **SectionCaption**, **IndexList** captions, **DescriptionList** `variant="mono"` names; write the text in sentence case — the "/" marker comes from the component, `aria-hidden`. Not for app UI section labels (`overline`) or secondary text (`caption`). **`type-caption`** (`typographyClass("caption-tight")`, 12px on a 16px line) is a single line directly under a label — **LinkTile**'s meta line only, for now; never wrapped text, which stays on `caption` (`type-supporting`, 12px on 20px). **`type-reading`** (`typographyClass("reading")`, 17px at a 28px line) is long-form article text — **Prose** sets it; UI copy stays on `type-body`. A dotted hairline is **DescriptionList** `rule="dotted"`. See **ADR-0040**, **ADR-0041**.
11
11
  - **Page layout:** Every Storybook **Guides** page and consuming product page starts on **`grid-page`**; use **`band`** + responsive column spans for content alignment. Constrain a specific experience by overriding **`--grid-max`** on that wrapper (for example, `960px`) rather than replacing the grid with an arbitrary centered container.
12
12
  - **Scroll fade:** use **`scroll-fade-y`** / **`scroll-fade-x`** on the element that owns overflow to hint at clipped list or rail content. The mask is scroll-aware, disappears when no overflow exists in supporting browsers, and follows inline direction for RTL. Keep the surface fill/border on a wrapper; customize with `--scroll-fade-size` only when the default 12% / 40px cap does not fit. Copy **Foundations → Scroll fade → Pattern — …**.
13
13
  - **Motion:** Duration tiers in **`src/theme/motion.css`** — **fast** (hover/focus), **medium** (panels/layout), **slow** (rare). Single **`--ease-standard`**. CSS via `motionTransition()`; Motion via `motionTransitionProp()`. Choreography tokens `--motion-stagger`, `--motion-beat`, `--motion-blur-reveal` through `motionStaggerSeconds()`, `motionBeatSeconds(n)`, `motionBlurReveal(reduce)`, and `readMotionDurationSeconds(tier)` — Show code never hard-codes a blur, stagger, or duration. See **ADR-0008**. Storybook wraps `<MotionConfig reducedMotion="user">`.
@@ -41,6 +41,8 @@ Storybook paths such as **Components/Button/Button → Pattern — …** name a
41
41
  - **Accordion:** generic expand/collapse — **leading**, **label**, **trailing**, built-in chevron, `motion-collapse` panel. Variants: `list`, `capsule`, `plain`; **`flush`** (plain only) drops the inset so labels line up with surrounding text — filter side panels. A closed panel turns `visibility: hidden` once it folds, so Tab skips its controls. **TaskRows** is the task-status pattern on top.
42
42
  - **DescriptionList:** a list of facts — `dl` > **DescriptionList.Item** (`div` > `dt` `name` + `dd` value). `layout` `inline` (value beside the name, 2 : 3 tracks, default) or `stacked` (value under it — tags, actions), per list or per item. `rule` `solid` (default) / `dotted` (quieter — beside caption rules) / `none`. `variant` `sans` (caption name, body value) or `mono` (eyebrow name, mono caps value, tabular figures — post metadata). Values take text, `<time>`, **Badge** tags, or **Button** actions; several wrap in a row. Not form fields (**Field**), metrics (**Stat**), or status rows (**TaskRows**). Paste **Components/DescriptionList → Pattern — post metadata** or **Pattern — details**. See **ADR-0041**.
43
43
  - **SectionCaption:** the small uppercase mono caption over a page column ("/ Metadata", "/ Article", "/ Filters") — `type-eyebrow` on a `border-border-emphasized` rule; the "/" `marker` is `aria-hidden`. `as` `h2` (default — pair `id` with the region's `aria-labelledby`) or `p` (labels a column that has its own heading); `end` holds a **Button** `size="xs"` (Clear all) without growing the row; `rule` / `marker` can be turned off. Write `children` in sentence case. Copy **Components/SectionCaption → Pattern — column caption**. See **ADR-0041**.
44
+ - **Band:** a full-bleed page section in a brand-kit tone. `tone` `default` / `inverse` (the brand surface, `--color-brand-surface`; also `data-theme="dark"`) / `field` (the saturated section colour, `--color-field`) sets `data-tone`, which remaps the surface, text, border and fill roles so every component inside re-skins; never re-colour what's inside with `className`. It holds its own `grid-page` on the shared `--grid-*` tokens: standing alone it's a full-width section; inside a `grid-page` it spans every column, paints to the viewport edges (border-image outset, no scrollbar) and its page becomes a subgrid, so its columns stay the page's. `spacing` `md` (48px, default) / `lg` (96px) / `none`; `as` `section` (default) / `div` / `header` / `footer` / `aside`. Status colours aren't remapped on `field`. Paste **Components/Band → Pattern — page in bands**; the brand kit and its contrast check are **Foundations/Brand kit → Theme a client**.
45
+ - **InlinePill:** a key word inside running text (a display headline, a lead line) in a soft pill that scales with the text (em-sized), with an optional decorative `media` picture on its left. Pop the pictures in with `useInlinePillsPopIn()` spread on the heading. Not a control: use `Chip` for filters and tokens, `Badge` for status. Keep 2–3 pills of one or two words per sentence.
44
46
  - **Prose:** long-form content set from plain HTML elements (rendered markdown) — headings, paragraphs, lists, quotes, inline code, code blocks, rules, images, figures, and tables, with the spacing between them. `size` `lg` (default — `type-reading`, headings a step up) or `md` (`type-body`, denser notes); `measure` `reading` (40rem, default) or `none`; `as` `div` / `article` / `section`. Wide tables scroll in their own box. Map markdown `#` to `h2` under a page `h1`, and links to **TextLink** (`external` for other sites). Never add classes to the elements inside. Paste **Components/Prose → Pattern — article body**; the full page is **Guides/Post page → Pattern — post page** (`metadataSide` `start` / `end` and `metadataColumns` 4 / 3 place the panel from `lg`; `metadataStack` `after` (default) / `before` places it below `lg`, where it stacks, and in the markup — `after` adds a date and reading-time line under the title below `lg`; pair `end` with `after` or `start` with `before` so tab order matches the layout at every width — never edit its classes). See **ADR-0041**.
45
47
  - **IndexList:** editorial index for list pages (blog, case studies) — **IndexList.Item** rows with `meta` (a `<time>`), a linked `title` (`href`, or `render={<Link href />}` for the app's router; a quiet **TextLink** in an `h2` by default — `titleAs`), and an optional `preview` an **IconButton** disclosure expands under the title. Optional `captions={{ meta, title }}` in sentence case (`type-eyebrow`, the "/" marker and the **SectionCaption** rule, `aria-hidden`) share the rows' tracks. Two tracks (7.5rem meta, title) once the list is 32rem wide (container query); one column below, captions hidden. `size` `lg` (type-display-3, default) / `md` / `sm`. `empty` replaces the rows when there are none. `className` is layout only. Not tabular data — **Table**. Paste **Components/IndexList → Pattern — post index**; with filters, **Guides/Filter panel → Pattern — filtered index** (a post's `facets` take one option or several per group; `defaultSelection` opens the page filtered, `selection` + `onSelectionChange` hold it in the URL). See **ADR-0040**.
46
48
  - **LinkTile:** a resource tile that is one link — `title`, `href` (or `render={<Link href />}` for a router link), `media` (an `<img>` or `next/image` with its `width` and `height`; one image, not a video), `meta` (one line, for example the domain), optional `tag` (a **Badge**, over the image's top-start corner) and `source` (**Avatar** `size="xsm"` or a 20px favicon, before the title). The whole tile is the anchor: one hit area, one focus ring; never put a link or a button inside it. `external` opens a new tab with a safe `rel`, the trailing mark **TextLink** uses, and spoken "(opens in a new tab)" — never hand-write `target`. Screen readers hear the title, the meta, the tag, then the new-tab hint; the image's `alt` is not in the link's name. The image keeps its own ratio by default, so tiles vary in height and hold their space before the image loads; `ratio` (width / height, `4 / 3`) fixes the frame and crops the image. A hairline inside the frame keeps an edge on a light image in light mode and a dark image in dark mode; hover and focus darken it and underline the title. The caption is 12px under the image; the title (two lines at most) and the meta line (`type-caption`, 16px) have no gap between them. `loading` is a **Skeleton** placeholder of the same height, not a link. `className` is layout only. Not a **Card** (a surface with slots that can hold several controls). Paste **Components/LinkTile → Pattern — resource tile** or **Pattern — router link**. See **ADR-0044**.
package/docs/exports.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "package": "@thewhatmatters/wmds",
3
- "version": "0.4.27",
3
+ "version": "0.4.29",
4
4
  "import": "import { Button } from \"@thewhatmatters/wmds\";",
5
5
  "styles": [
6
6
  "@thewhatmatters/wmds/styles.css",
@@ -81,6 +81,19 @@
81
81
  "components-badge--with-avatar"
82
82
  ]
83
83
  },
84
+ {
85
+ "name": "Band",
86
+ "tier": "atom",
87
+ "category": "Layout",
88
+ "summary": "Full-bleed page section in a brand tone (inverse, field) on the page's own columns.",
89
+ "storybook": {
90
+ "title": "Components/Band",
91
+ "docs": "?path=/docs/components-band--docs"
92
+ },
93
+ "patterns": [
94
+ "components-band--page-in-bands"
95
+ ]
96
+ },
84
97
  {
85
98
  "name": "Breadcrumb",
86
99
  "tier": "molecule",
@@ -307,6 +320,7 @@
307
320
  },
308
321
  "patterns": [
309
322
  "components-dialog--alert-dialog-destructive",
323
+ "components-dialog--alert-dialog-typed-confirmation",
310
324
  "components-dialog--default-dialog",
311
325
  "components-dialog--form-dialog"
312
326
  ]
@@ -447,6 +461,17 @@
447
461
  "components-indexlist--post-index"
448
462
  ]
449
463
  },
464
+ {
465
+ "name": "InlinePill",
466
+ "tier": "atom",
467
+ "category": "Content",
468
+ "summary": "A key word inside running text in a soft pill that scales with the text, with an optional picture that can pop in on scroll.",
469
+ "storybook": {
470
+ "title": "Components/InlinePill",
471
+ "docs": "?path=/docs/components-inlinepill--docs"
472
+ },
473
+ "patterns": []
474
+ },
450
475
  {
451
476
  "name": "Input",
452
477
  "tier": "atom",
@@ -990,12 +1015,41 @@
990
1015
  "cn",
991
1016
  "buttonSizeForCluster",
992
1017
  "iconButtonSizeForCluster",
1018
+ "clusterComponentSizeMap",
1019
+ "clusterTiers",
993
1020
  "motionTransition",
994
1021
  "motionTransitionProp",
995
1022
  "focusRingTransitionClasses",
996
1023
  "pressScaleClass",
1024
+ "motionBeatSeconds",
1025
+ "motionBlurReveal",
1026
+ "motionStaggerSeconds",
1027
+ "readMotionDurationSeconds",
1028
+ "chartBucketPeriodData",
1029
+ "chartCategoricalCount",
1030
+ "chartCategoricalPalette",
1031
+ "chartFormatAxisValue",
1032
+ "chartFormatTooltipLabel",
1033
+ "chartFormatTooltipValue",
1034
+ "chartNormalizePeriodData",
1035
+ "chartPeriodKindFromValue",
1036
+ "chartSeriesColor",
1037
+ "chartSeriesConfigFromKeys",
1038
+ "chartSeriesConfigFromTone",
1039
+ "chartTooltipIndicators",
1040
+ "chartTooltipItemsFromConfig",
1041
+ "resolveChartPeriodDayCount",
1042
+ "resolvePeriodSegmentPreset",
1043
+ "resolvePeriodSegments",
1044
+ "backgroundPatterns",
1045
+ "backgroundPatternDiagonalLinesClasses",
1046
+ "backgroundPatternDotGridClasses",
997
1047
  "GridOverlay",
998
1048
  "GRID_ON_CLASS",
1049
+ "gridOverlayKeyShouldToggle",
1050
+ "isEditableGridOverlayTarget",
1051
+ "readGridColumnCount",
1052
+ "setDocumentGridOn",
999
1053
  "useSheetParam",
1000
1054
  "readSheetParam",
1001
1055
  "withSheetParam"
@@ -1,4 +1,4 @@
1
- // @thewhatmatters/wmds@0.4.27 · Pattern — flush
1
+ // @thewhatmatters/wmds@0.4.29 · Pattern — flush
2
2
  // Storybook: Components/Accordion → Pattern — flush (?path=/story/components-accordion--flush)
3
3
  // Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
4
4
 
@@ -1,4 +1,4 @@
1
- // @thewhatmatters/wmds@0.4.27 · Pattern — portal dashboard
1
+ // @thewhatmatters/wmds@0.4.29 · Pattern — portal dashboard
2
2
  // Storybook: Components/AppShell → Pattern — portal dashboard (?path=/story/components-appshell--portal-dashboard-pattern)
3
3
  // Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
4
4
 
@@ -1,4 +1,4 @@
1
- // @thewhatmatters/wmds@0.4.27 · Pattern — dropdown row
1
+ // @thewhatmatters/wmds@0.4.29 · Pattern — dropdown row
2
2
  // Storybook: Components/Avatar → Pattern — dropdown row (?path=/story/components-avatar--dropdown-row)
3
3
  // Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
4
4
 
@@ -1,4 +1,4 @@
1
- // @thewhatmatters/wmds@0.4.27 · Pattern — outline tags
1
+ // @thewhatmatters/wmds@0.4.29 · Pattern — outline tags
2
2
  // Storybook: Components/Badge → Pattern — outline tags (?path=/story/components-badge--outline-tags)
3
3
  // Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
4
4
 
@@ -1,4 +1,4 @@
1
- // @thewhatmatters/wmds@0.4.27 · Pattern — status pill
1
+ // @thewhatmatters/wmds@0.4.29 · Pattern — status pill
2
2
  // Storybook: Components/Badge → Pattern — status pill (?path=/story/components-badge--status-pill)
3
3
  // Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
4
4
 
@@ -1,4 +1,4 @@
1
- // @thewhatmatters/wmds@0.4.27 · Pattern — with avatar
1
+ // @thewhatmatters/wmds@0.4.29 · Pattern — with avatar
2
2
  // Storybook: Components/Badge → Pattern — with avatar (?path=/story/components-badge--with-avatar)
3
3
  // Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
4
4
 
@@ -0,0 +1,39 @@
1
+ // @thewhatmatters/wmds@0.4.29 · Pattern — page in bands
2
+ // Storybook: Components/Band → Pattern — page in bands (?path=/story/components-band--page-in-bands)
3
+ // Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
4
+
5
+ import { Band, Button } from "@thewhatmatters/wmds";
6
+
7
+ export function PageInBandsExample() {
8
+ return (
9
+ <main className="grid-page !py-0">
10
+ <Band tone="inverse" spacing="lg" aria-labelledby="hero-title">
11
+ <div className="col-span-full flex flex-col gap-6 lg:col-span-10">
12
+ <h1 id="hero-title" className="type-display-hero text-fg">
13
+ Smoke and chili
14
+ </h1>
15
+ <p className="type-reading text-muted">Wood-fired tacos on East Cesar Chavez, open late.</p>
16
+ <div className="flex flex-wrap gap-2">
17
+ <Button role="primary">Book a table</Button>
18
+ <Button role="secondary">See the menu</Button>
19
+ </div>
20
+ </div>
21
+ </Band>
22
+ <Band aria-labelledby="menu-title">
23
+ <h2 id="menu-title" className="type-display-xl col-span-full text-fg">
24
+ The menu
25
+ </h2>
26
+ <p className="type-reading col-span-full text-muted md:col-span-4">Six tacos, two salsas, one mezcal list.</p>
27
+ </Band>
28
+ <Band tone="field" aria-labelledby="catering-title">
29
+ <h2 id="catering-title" className="type-display-1 col-span-full text-fg md:col-span-6">
30
+ Catering for forty
31
+ </h2>
32
+ <div className="col-span-full flex flex-col items-start gap-4 md:col-span-2">
33
+ <p className="type-body text-fg">From $1,500, staff included.</p>
34
+ <Button role="outline">Ask for a date</Button>
35
+ </div>
36
+ </Band>
37
+ </main>
38
+ );
39
+ }
@@ -1,4 +1,4 @@
1
- // @thewhatmatters/wmds@0.4.27 · Pattern — editorial
1
+ // @thewhatmatters/wmds@0.4.29 · Pattern — editorial
2
2
  // Storybook: Components/Breadcrumb → Pattern — editorial (?path=/story/components-breadcrumb--editorial)
3
3
  // Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
4
4
 
@@ -1,4 +1,4 @@
1
- // @thewhatmatters/wmds@0.4.27 · Pattern — long path
1
+ // @thewhatmatters/wmds@0.4.29 · Pattern — long path
2
2
  // Storybook: Components/Breadcrumb → Pattern — long path (?path=/story/components-breadcrumb--long-path)
3
3
  // Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
4
4
 
@@ -1,4 +1,4 @@
1
- // @thewhatmatters/wmds@0.4.27 · Pattern — path
1
+ // @thewhatmatters/wmds@0.4.29 · Pattern — path
2
2
  // Storybook: Components/Breadcrumb → Pattern — path (?path=/story/components-breadcrumb--path)
3
3
  // Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
4
4
 
@@ -1,4 +1,4 @@
1
- // @thewhatmatters/wmds@0.4.27 · Pattern — router links
1
+ // @thewhatmatters/wmds@0.4.29 · Pattern — router links
2
2
  // Storybook: Components/Breadcrumb → Pattern — router links (?path=/story/components-breadcrumb--router-links)
3
3
  // Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
4
4
 
@@ -1,4 +1,4 @@
1
- // @thewhatmatters/wmds@0.4.27 · Pattern — copy button
1
+ // @thewhatmatters/wmds@0.4.29 · Pattern — copy button
2
2
  // Storybook: Components/Button/Button → Pattern — copy button (?path=/story/components-button-button--copy-button)
3
3
  // Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
4
4
 
@@ -1,4 +1,4 @@
1
- // @thewhatmatters/wmds@0.4.27 · Pattern — destructive action
1
+ // @thewhatmatters/wmds@0.4.29 · Pattern — destructive action
2
2
  // Storybook: Components/Button/Button → Pattern — destructive action (?path=/story/components-button-button--destructive-action)
3
3
  // Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
4
4
 
@@ -1,4 +1,4 @@
1
- // @thewhatmatters/wmds@0.4.27 · Pattern — external link
1
+ // @thewhatmatters/wmds@0.4.29 · Pattern — external link
2
2
  // Storybook: Components/Button/Button → Pattern — external link (?path=/story/components-button-button--external-link)
3
3
  // Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
4
4
 
@@ -1,4 +1,4 @@
1
- // @thewhatmatters/wmds@0.4.27 · Pattern — ghost action
1
+ // @thewhatmatters/wmds@0.4.29 · Pattern — ghost action
2
2
  // Storybook: Components/Button/Button → Pattern — ghost action (?path=/story/components-button-button--ghost-action)
3
3
  // Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
4
4
 
@@ -1,4 +1,4 @@
1
- // @thewhatmatters/wmds@0.4.27 · Pattern — inverse action
1
+ // @thewhatmatters/wmds@0.4.29 · Pattern — inverse action
2
2
  // Storybook: Components/Button/Button → Pattern — inverse action (?path=/story/components-button-button--inverse-action)
3
3
  // Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
4
4
 
@@ -1,4 +1,4 @@
1
- // @thewhatmatters/wmds@0.4.27 · Pattern — link
1
+ // @thewhatmatters/wmds@0.4.29 · Pattern — link
2
2
  // Storybook: Components/Button/Button → Pattern — link (?path=/story/components-button-button--link-render)
3
3
  // Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
4
4
 
@@ -1,4 +1,4 @@
1
- // @thewhatmatters/wmds@0.4.27 · Pattern — submit / async
1
+ // @thewhatmatters/wmds@0.4.29 · Pattern — submit / async
2
2
  // Storybook: Components/Button/Button → Pattern — submit / async (?path=/story/components-button-button--multi-state-badge)
3
3
  // Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
4
4
 
@@ -1,4 +1,4 @@
1
- // @thewhatmatters/wmds@0.4.27 · Pattern — outline mono
1
+ // @thewhatmatters/wmds@0.4.29 · Pattern — outline mono
2
2
  // Storybook: Components/Button/Button → Pattern — outline mono (?path=/story/components-button-button--outline-mono)
3
3
  // Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
4
4
 
@@ -1,4 +1,4 @@
1
- // @thewhatmatters/wmds@0.4.27 · Pattern — primary action
1
+ // @thewhatmatters/wmds@0.4.29 · Pattern — primary action
2
2
  // Storybook: Components/Button/Button → Pattern — primary action (?path=/story/components-button-button--primary-action)
3
3
  // Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
4
4
 
@@ -1,4 +1,4 @@
1
- // @thewhatmatters/wmds@0.4.27 · Pattern — row (hug)
1
+ // @thewhatmatters/wmds@0.4.29 · Pattern — row (hug)
2
2
  // Storybook: Components/Button/Button → Pattern — row (hug) (?path=/story/components-button-button--row-hug)
3
3
  // Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
4
4
 
@@ -1,4 +1,4 @@
1
- // @thewhatmatters/wmds@0.4.27 · Pattern — row
1
+ // @thewhatmatters/wmds@0.4.29 · Pattern — row
2
2
  // Storybook: Components/Button/Button → Pattern — row (?path=/story/components-button-button--row-layout)
3
3
  // Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
4
4
 
@@ -1,4 +1,4 @@
1
- // @thewhatmatters/wmds@0.4.27 · Pattern — secondary action
1
+ // @thewhatmatters/wmds@0.4.29 · Pattern — secondary action
2
2
  // Storybook: Components/Button/Button → Pattern — secondary action (?path=/story/components-button-button--secondary-action)
3
3
  // Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
4
4
 
@@ -1,4 +1,4 @@
1
- // @thewhatmatters/wmds@0.4.27 · Pattern — suggestion pills
1
+ // @thewhatmatters/wmds@0.4.29 · Pattern — suggestion pills
2
2
  // Storybook: Components/Button/Button → Pattern — suggestion pills (?path=/story/components-button-button--suggestion-pills)
3
3
  // Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
4
4
 
@@ -1,4 +1,4 @@
1
- // @thewhatmatters/wmds@0.4.27 · Pattern — with count
1
+ // @thewhatmatters/wmds@0.4.29 · Pattern — with count
2
2
  // Storybook: Components/Button/Button → Pattern — with count (?path=/story/components-button-button--with-count)
3
3
  // Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
4
4
 
@@ -1,4 +1,4 @@
1
- // @thewhatmatters/wmds@0.4.27 · Pattern — with icon
1
+ // @thewhatmatters/wmds@0.4.29 · Pattern — with icon
2
2
  // Storybook: Components/Button/Button → Pattern — with icon (?path=/story/components-button-button--with-icon)
3
3
  // Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
4
4
 
@@ -1,4 +1,4 @@
1
- // @thewhatmatters/wmds@0.4.27 · Pattern — vertical actions
1
+ // @thewhatmatters/wmds@0.4.29 · Pattern — vertical actions
2
2
  // Storybook: Components/Button/FloatingActionButton → Pattern — vertical actions (?path=/story/components-button-floatingactionbutton--vertical-actions)
3
3
  // Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
4
4
 
@@ -1,4 +1,4 @@
1
- // @thewhatmatters/wmds@0.4.27 · Pattern — skip in footer
1
+ // @thewhatmatters/wmds@0.4.29 · Pattern — skip in footer
2
2
  // Storybook: Components/CalEmbed → Pattern — skip in footer (?path=/story/components-calembed--pattern-skip-in-footer)
3
3
  // Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
4
4
 
@@ -1,4 +1,4 @@
1
- // @thewhatmatters/wmds@0.4.27 · Example — body slot (occupancy history)
1
+ // @thewhatmatters/wmds@0.4.29 · Example — body slot (occupancy history)
2
2
  // Storybook: Components/Card/Card → Example — body slot (occupancy history) (?path=/story/components-card-card--body-slot-occupancy-history)
3
3
  // Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
4
4
 
@@ -1,4 +1,4 @@
1
- // @thewhatmatters/wmds@0.4.27 · Pattern — headerless media
1
+ // @thewhatmatters/wmds@0.4.29 · Pattern — headerless media
2
2
  // Storybook: Components/Card/Card → Pattern — headerless media (?path=/story/components-card-card--headerless-media)
3
3
  // Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
4
4
 
@@ -1,4 +1,4 @@
1
- // @thewhatmatters/wmds@0.4.27 · Pattern — outlined layout
1
+ // @thewhatmatters/wmds@0.4.29 · Pattern — outlined layout
2
2
  // Storybook: Components/Card/Card → Pattern — outlined layout (?path=/story/components-card-card--outlined-layout)
3
3
  // Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
4
4
 
@@ -1,4 +1,4 @@
1
- // @thewhatmatters/wmds@0.4.27 · Pattern — pinned height
1
+ // @thewhatmatters/wmds@0.4.29 · Pattern — pinned height
2
2
  // Storybook: Components/Card/Card → Pattern — pinned height (?path=/story/components-card-card--pinned-height)
3
3
  // Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
4
4
 
@@ -1,4 +1,4 @@
1
- // @thewhatmatters/wmds@0.4.27 · Pattern — terminal frame
1
+ // @thewhatmatters/wmds@0.4.29 · Pattern — terminal frame
2
2
  // Storybook: Components/Card/Card → Pattern — terminal frame (?path=/story/components-card-card--terminal-frame)
3
3
  // Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
4
4
 
@@ -1,4 +1,4 @@
1
- // @thewhatmatters/wmds@0.4.27 · Pattern — selectable cards
1
+ // @thewhatmatters/wmds@0.4.29 · Pattern — selectable cards
2
2
  // Storybook: Components/Card/SelectableCard → Pattern — selectable cards (?path=/story/components-card-selectablecard--selectable-cards-pattern)
3
3
  // Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
4
4
 
@@ -1,4 +1,4 @@
1
- // @thewhatmatters/wmds@0.4.27 · Pattern — image carousel
1
+ // @thewhatmatters/wmds@0.4.29 · Pattern — image carousel
2
2
  // Storybook: Components/Carousel → Pattern — image carousel (?path=/story/components-carousel--image-carousel)
3
3
  // Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
4
4
 
@@ -1,4 +1,4 @@
1
- // @thewhatmatters/wmds@0.4.27 · Pattern — matrix heatmap
1
+ // @thewhatmatters/wmds@0.4.29 · Pattern — matrix heatmap
2
2
  // Storybook: Components/Chart → Pattern — matrix heatmap (?path=/story/components-chart--audience-activity-heatmap)
3
3
  // Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
4
4
 
@@ -1,4 +1,4 @@
1
- // @thewhatmatters/wmds@0.4.27 · Pattern — Cartesian no-data gaps
1
+ // @thewhatmatters/wmds@0.4.29 · Pattern — Cartesian no-data gaps
2
2
  // Storybook: Components/Chart → Pattern — Cartesian no-data gaps (?path=/story/components-chart--cartesian-no-data-gaps)
3
3
  // Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
4
4
 
@@ -1,4 +1,4 @@
1
- // @thewhatmatters/wmds@0.4.27 · Pattern — occupancy history in Card
1
+ // @thewhatmatters/wmds@0.4.29 · Pattern — occupancy history in Card
2
2
  // Storybook: Components/Chart → Pattern — occupancy history in Card (?path=/story/components-chart--occupancy-history-in-card)
3
3
  // Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
4
4
 
@@ -1,4 +1,4 @@
1
- // @thewhatmatters/wmds@0.4.27 · Pattern — occupancy KPI in Card
1
+ // @thewhatmatters/wmds@0.4.29 · Pattern — occupancy KPI in Card
2
2
  // Storybook: Components/Chart → Pattern — occupancy KPI in Card (?path=/story/components-chart--occupancy-in-card)
3
3
  // Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
4
4
 
@@ -1,4 +1,4 @@
1
- // @thewhatmatters/wmds@0.4.27 · Pattern — distribution strip
1
+ // @thewhatmatters/wmds@0.4.29 · Pattern — distribution strip
2
2
  // Storybook: Components/Chart → Pattern — distribution strip (?path=/story/components-chart--post-reach-distribution)
3
3
  // Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
4
4
 
@@ -1,4 +1,4 @@
1
- // @thewhatmatters/wmds@0.4.27 · Pattern — ranked audience breakdown
1
+ // @thewhatmatters/wmds@0.4.29 · Pattern — ranked audience breakdown
2
2
  // Storybook: Components/Chart → Pattern — ranked audience breakdown (?path=/story/components-chart--ranked-audience-breakdown)
3
3
  // Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
4
4
 
@@ -1,4 +1,4 @@
1
- // @thewhatmatters/wmds@0.4.27 · Pattern — revenue by line
1
+ // @thewhatmatters/wmds@0.4.29 · Pattern — revenue by line
2
2
  // Storybook: Components/Chart → Pattern — revenue by line (?path=/story/components-chart--revenue-by-line)
3
3
  // Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
4
4
 
@@ -1,4 +1,4 @@
1
- // @thewhatmatters/wmds@0.4.27 · Pattern — segmented ring
1
+ // @thewhatmatters/wmds@0.4.29 · Pattern — segmented ring
2
2
  // Storybook: Components/Chart → Pattern — segmented ring (?path=/story/components-chart--segmented-ring-pattern)
3
3
  // Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
4
4
 
@@ -1,4 +1,4 @@
1
- // @thewhatmatters/wmds@0.4.27 · Pattern — 100-unit composition
1
+ // @thewhatmatters/wmds@0.4.29 · Pattern — 100-unit composition
2
2
  // Storybook: Components/Chart → Pattern — 100-unit composition (?path=/story/components-chart--unit-grid-composition)
3
3
  // Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
4
4
 
@@ -1,4 +1,4 @@
1
- // @thewhatmatters/wmds@0.4.27 · Pattern — chat dock
1
+ // @thewhatmatters/wmds@0.4.29 · Pattern — chat dock
2
2
  // Storybook: Components/ChatDock → Pattern — chat dock (?path=/story/components-chatdock--pattern-chat-dock)
3
3
  // Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
4
4
 
@@ -1,4 +1,4 @@
1
- // @thewhatmatters/wmds@0.4.27 · Pattern — start a project gate
1
+ // @thewhatmatters/wmds@0.4.29 · Pattern — start a project gate
2
2
  // Storybook: Components/ChatDock → Pattern — start a project gate (?path=/story/components-chatdock--pattern-start-project-gate)
3
3
  // Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
4
4
 
@@ -1,4 +1,4 @@
1
- // @thewhatmatters/wmds@0.4.27 · Pattern — Q&A with reply
1
+ // @thewhatmatters/wmds@0.4.29 · Pattern — Q&A with reply
2
2
  // Storybook: Components/ChatQa → Pattern — Q&A with reply (?path=/story/components-chatqa--pattern-qa-with-reply)
3
3
  // Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
4
4