@thewhatmatters/wmds 0.4.42 → 0.4.45

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 (253) hide show
  1. package/CHANGELOG.md +55 -1
  2. package/dist/components/atoms/Button/ButtonSpinner.js +1 -1
  3. package/dist/components/atoms/Button/ButtonStatusButton.d.ts.map +1 -1
  4. package/dist/components/atoms/Button/ButtonStatusButton.js +57 -38
  5. package/dist/components/atoms/Button/ButtonStatusContent.d.ts.map +1 -1
  6. package/dist/components/atoms/Button/ButtonStatusContent.js +10 -10
  7. package/dist/components/atoms/Button/buttonStatusMotion.d.ts.map +1 -1
  8. package/dist/components/atoms/Button/buttonStatusMotion.js +2 -2
  9. package/dist/components/atoms/Button/buttonStatusStyles.d.ts +4 -0
  10. package/dist/components/atoms/Button/buttonStatusStyles.d.ts.map +1 -1
  11. package/dist/components/atoms/Button/buttonStatusStyles.js +4 -4
  12. package/dist/components/atoms/Checkbox/Checkbox.d.ts.map +1 -1
  13. package/dist/components/atoms/Checkbox/Checkbox.js +41 -40
  14. package/dist/components/atoms/IconButton/IconButton.d.ts.map +1 -1
  15. package/dist/components/atoms/IconButton/IconButton.js +75 -74
  16. package/dist/components/atoms/Input/Input.d.ts +2 -0
  17. package/dist/components/atoms/Input/Input.d.ts.map +1 -1
  18. package/dist/components/atoms/Input/Input.js +87 -81
  19. package/dist/components/atoms/Status/Status.js +1 -1
  20. package/dist/components/atoms/Status/statusRingStyles.d.ts +1 -1
  21. package/dist/components/atoms/Status/statusRingStyles.d.ts.map +1 -1
  22. package/dist/components/atoms/Status/statusRingStyles.js +1 -1
  23. package/dist/components/atoms/Switch/Switch.d.ts.map +1 -1
  24. package/dist/components/atoms/Switch/Switch.js +53 -52
  25. package/dist/components/atoms/TextArea/TextArea.d.ts +2 -0
  26. package/dist/components/atoms/TextArea/TextArea.d.ts.map +1 -1
  27. package/dist/components/atoms/TextArea/TextArea.js +59 -49
  28. package/dist/components/atoms/inputShared/InputTrailingAffordance.d.ts.map +1 -1
  29. package/dist/components/atoms/inputShared/InputTrailingAffordance.js +16 -14
  30. package/dist/components/molecules/CalEmbed/CalEmbed.d.ts.map +1 -1
  31. package/dist/components/molecules/CalEmbed/CalEmbed.js +17 -23
  32. package/dist/components/molecules/EmptyState/EmptyState.d.ts +41 -0
  33. package/dist/components/molecules/EmptyState/EmptyState.d.ts.map +1 -0
  34. package/dist/components/molecules/EmptyState/EmptyState.js +46 -0
  35. package/dist/components/molecules/EmptyState/emptyStateStyles.d.ts +10 -0
  36. package/dist/components/molecules/EmptyState/emptyStateStyles.d.ts.map +1 -0
  37. package/dist/components/molecules/EmptyState/emptyStateStyles.js +11 -0
  38. package/dist/components/molecules/IndexList/IndexList.d.ts +6 -1
  39. package/dist/components/molecules/IndexList/IndexList.d.ts.map +1 -1
  40. package/dist/components/molecules/IndexList/IndexList.js +67 -58
  41. package/dist/components/molecules/LinkTile/LinkTile.d.ts +4 -2
  42. package/dist/components/molecules/LinkTile/LinkTile.d.ts.map +1 -1
  43. package/dist/components/molecules/LinkTile/LinkTile.js +89 -81
  44. package/dist/components/molecules/LogView/LogView.d.ts.map +1 -1
  45. package/dist/components/molecules/LogView/LogView.js +68 -63
  46. package/dist/components/molecules/Progress/Progress.d.ts +38 -0
  47. package/dist/components/molecules/Progress/Progress.d.ts.map +1 -0
  48. package/dist/components/molecules/Progress/Progress.js +96 -0
  49. package/dist/components/molecules/Progress/progressStyles.d.ts +17 -0
  50. package/dist/components/molecules/Progress/progressStyles.d.ts.map +1 -0
  51. package/dist/components/molecules/Progress/progressStyles.js +9 -0
  52. package/dist/components/molecules/Stat/Stat.d.ts.map +1 -1
  53. package/dist/components/molecules/Stat/Stat.js +65 -61
  54. package/dist/components/molecules/TaskRows/TaskRowsTable.d.ts.map +1 -1
  55. package/dist/components/molecules/TaskRows/TaskRowsTable.js +77 -76
  56. package/dist/components/molecules/TileGrid/TileGrid.d.ts +6 -1
  57. package/dist/components/molecules/TileGrid/TileGrid.d.ts.map +1 -1
  58. package/dist/components/molecules/TileGrid/TileGrid.js +52 -47
  59. package/dist/components/organisms/AppShell/AppShell.d.ts +10 -2
  60. package/dist/components/organisms/AppShell/AppShell.d.ts.map +1 -1
  61. package/dist/components/organisms/AppShell/AppShell.js +237 -198
  62. package/dist/components/organisms/AppShell/appShellStyles.d.ts +11 -0
  63. package/dist/components/organisms/AppShell/appShellStyles.d.ts.map +1 -1
  64. package/dist/components/organisms/AppShell/appShellStyles.js +2 -2
  65. package/dist/components/organisms/Chart/ChartSegmentedRing.d.ts +10 -4
  66. package/dist/components/organisms/Chart/ChartSegmentedRing.d.ts.map +1 -1
  67. package/dist/components/organisms/Chart/ChartSegmentedRing.js +7 -2
  68. package/dist/components/organisms/Chart/chartStyles.d.ts +4 -0
  69. package/dist/components/organisms/Chart/chartStyles.d.ts.map +1 -1
  70. package/dist/components/organisms/Chart/chartStyles.js +4 -2
  71. package/dist/components/organisms/SiteNav/SiteNav.d.ts +8 -1
  72. package/dist/components/organisms/SiteNav/SiteNav.d.ts.map +1 -1
  73. package/dist/components/organisms/SiteNav/SiteNav.js +73 -69
  74. package/dist/components/organisms/SiteNav/siteNavStyles.d.ts +6 -0
  75. package/dist/components/organisms/SiteNav/siteNavStyles.d.ts.map +1 -1
  76. package/dist/components/organisms/SiteNav/siteNavStyles.js +6 -6
  77. package/dist/index.d.ts +3 -0
  78. package/dist/index.d.ts.map +1 -1
  79. package/dist/index.js +158 -153
  80. package/dist/lib/useDelayedLoading.d.ts +13 -0
  81. package/dist/lib/useDelayedLoading.d.ts.map +1 -0
  82. package/dist/lib/useDelayedLoading.js +27 -0
  83. package/dist/motion.css +10 -0
  84. package/dist/styles.css +1 -1
  85. package/docs/components.md +1 -1
  86. package/docs/exports.json +26 -1
  87. package/docs/patterns/components-accordion--flush.tsx +1 -1
  88. package/docs/patterns/components-appshell--portal-dashboard-pattern.tsx +1 -1
  89. package/docs/patterns/components-avatar--dropdown-row.tsx +1 -1
  90. package/docs/patterns/components-badge--outline-tags.tsx +1 -1
  91. package/docs/patterns/components-badge--status-pill.tsx +1 -1
  92. package/docs/patterns/components-badge--with-avatar.tsx +1 -1
  93. package/docs/patterns/components-band--page-in-bands.tsx +1 -1
  94. package/docs/patterns/components-breadcrumb--editorial.tsx +1 -1
  95. package/docs/patterns/components-breadcrumb--long-path.tsx +1 -1
  96. package/docs/patterns/components-breadcrumb--path.tsx +1 -1
  97. package/docs/patterns/components-breadcrumb--router-links.tsx +1 -1
  98. package/docs/patterns/components-button-button--copy-button.tsx +1 -1
  99. package/docs/patterns/components-button-button--destructive-action.tsx +1 -1
  100. package/docs/patterns/components-button-button--external-link.tsx +1 -1
  101. package/docs/patterns/components-button-button--ghost-action.tsx +1 -1
  102. package/docs/patterns/components-button-button--inverse-action.tsx +1 -1
  103. package/docs/patterns/components-button-button--link-render.tsx +1 -1
  104. package/docs/patterns/components-button-button--multi-state-badge.tsx +2 -2
  105. package/docs/patterns/components-button-button--outline-mono.tsx +1 -1
  106. package/docs/patterns/components-button-button--primary-action.tsx +1 -1
  107. package/docs/patterns/components-button-button--row-hug.tsx +1 -1
  108. package/docs/patterns/components-button-button--row-layout.tsx +1 -1
  109. package/docs/patterns/components-button-button--secondary-action.tsx +1 -1
  110. package/docs/patterns/components-button-button--suggestion-pills.tsx +1 -1
  111. package/docs/patterns/components-button-button--with-count.tsx +1 -1
  112. package/docs/patterns/components-button-button--with-icon.tsx +1 -1
  113. package/docs/patterns/components-button-floatingactionbutton--vertical-actions.tsx +1 -1
  114. package/docs/patterns/components-calembed--pattern-skip-above.tsx +1 -1
  115. package/docs/patterns/components-card-card--body-slot-occupancy-history.tsx +1 -1
  116. package/docs/patterns/components-card-card--headerless-media.tsx +1 -1
  117. package/docs/patterns/components-card-card--outlined-layout.tsx +1 -1
  118. package/docs/patterns/components-card-card--pinned-height.tsx +1 -1
  119. package/docs/patterns/components-card-card--terminal-frame.tsx +1 -1
  120. package/docs/patterns/components-card-selectablecard--selectable-cards-pattern.tsx +1 -1
  121. package/docs/patterns/components-carousel--image-carousel.tsx +1 -1
  122. package/docs/patterns/components-chart--audience-activity-heatmap.tsx +1 -1
  123. package/docs/patterns/components-chart--cartesian-no-data-gaps.tsx +1 -1
  124. package/docs/patterns/components-chart--occupancy-history-in-card.tsx +1 -1
  125. package/docs/patterns/components-chart--occupancy-in-card.tsx +1 -1
  126. package/docs/patterns/components-chart--post-reach-distribution.tsx +1 -1
  127. package/docs/patterns/components-chart--ranked-audience-breakdown.tsx +1 -1
  128. package/docs/patterns/components-chart--revenue-by-line.tsx +1 -1
  129. package/docs/patterns/components-chart--segmented-ring-pattern.tsx +1 -1
  130. package/docs/patterns/components-chart--unit-grid-composition.tsx +1 -1
  131. package/docs/patterns/components-chatdock--pattern-chat-dock.tsx +1 -1
  132. package/docs/patterns/components-chatdock--pattern-start-project-gate.tsx +1 -1
  133. package/docs/patterns/components-chatqa--pattern-qa-with-reply.tsx +1 -1
  134. package/docs/patterns/components-checkbox-checkbox--default.tsx +1 -1
  135. package/docs/patterns/components-checkbox-checkbox--with-count.tsx +1 -1
  136. package/docs/patterns/components-checkbox-checkbox--with-description.tsx +1 -1
  137. package/docs/patterns/components-checkbox-checkboxgroup--default.tsx +1 -1
  138. package/docs/patterns/components-checkbox-checkboxgroup--option-counts.tsx +1 -1
  139. package/docs/patterns/components-copyfield--clipboard-blocked.tsx +1 -1
  140. package/docs/patterns/components-copyfield--copied.tsx +1 -1
  141. package/docs/patterns/components-copyfield--copy-key.tsx +1 -1
  142. package/docs/patterns/components-copyfield--on-navy.tsx +1 -1
  143. package/docs/patterns/components-descriptionlist--details.tsx +1 -1
  144. package/docs/patterns/components-descriptionlist--post-metadata.tsx +1 -1
  145. package/docs/patterns/components-dialog--alert-dialog-destructive.tsx +1 -1
  146. package/docs/patterns/components-dialog--alert-dialog-typed-confirmation.tsx +1 -1
  147. package/docs/patterns/components-dialog--default-dialog.tsx +1 -1
  148. package/docs/patterns/components-dialog--form-dialog.tsx +1 -1
  149. package/docs/patterns/components-displaycontrols--page-utilities.tsx +1 -1
  150. package/docs/patterns/components-displaycontrols--theme-switch.tsx +1 -1
  151. package/docs/patterns/components-errorsummary--contact-form.tsx +1 -1
  152. package/docs/patterns/components-field--horizontal-input.tsx +1 -1
  153. package/docs/patterns/components-field--horizontal-text-area.tsx +1 -1
  154. package/docs/patterns/components-field--multi-control.tsx +1 -1
  155. package/docs/patterns/components-filterpanel--panel.tsx +1 -1
  156. package/docs/patterns/components-footerreveal--marketing-hero-pattern.tsx +1 -1
  157. package/docs/patterns/components-footerreveal--marketing-hero-ruled-pattern.tsx +1 -1
  158. package/docs/patterns/components-footerreveal--marketing-hero-with-gallery-intro.tsx +1 -1
  159. package/docs/patterns/components-footerreveal--marketing-page-pattern.tsx +1 -1
  160. package/docs/patterns/components-footerreveal--ruled-grid-footer-pattern.tsx +1 -1
  161. package/docs/patterns/components-footerreveal--sequenced-marketing-hero.tsx +1 -1
  162. package/docs/patterns/components-herointro--two-line-intro.tsx +1 -1
  163. package/docs/patterns/components-herointro--with-actions.tsx +1 -1
  164. package/docs/patterns/components-herotilestack--marketing-hero-pattern.tsx +1 -1
  165. package/docs/patterns/components-herotilestack--marketing-hero-text-sequence.tsx +1 -1
  166. package/docs/patterns/components-herotilestack--marketing-hero-with-gallery-intro.tsx +1 -1
  167. package/docs/patterns/components-indexlist--post-index.tsx +1 -1
  168. package/docs/patterns/components-intakeconfirmation--booked-pattern.tsx +1 -1
  169. package/docs/patterns/components-intakeconfirmation--emailed-pattern.tsx +1 -1
  170. package/docs/patterns/components-intakeform--about-you-pattern.tsx +1 -1
  171. package/docs/patterns/components-intakeform--short-form-pattern.tsx +1 -1
  172. package/docs/patterns/components-intakemodal--intake-modal-pattern.tsx +1 -1
  173. package/docs/patterns/components-kbd--command-row.tsx +1 -1
  174. package/docs/patterns/components-kbd--numbered-choices.tsx +1 -1
  175. package/docs/patterns/components-kbd--shortcut.tsx +1 -1
  176. package/docs/patterns/components-linktile--resource-tile.tsx +1 -1
  177. package/docs/patterns/components-linktile--router-link.tsx +1 -1
  178. package/docs/patterns/components-logview--detail-pane.tsx +1 -1
  179. package/docs/patterns/components-logview--log-viewer.tsx +1 -1
  180. package/docs/patterns/components-moremenu--action-menu.tsx +1 -1
  181. package/docs/patterns/components-moremenu--in-card-header.tsx +1 -1
  182. package/docs/patterns/components-navlist--app-sidebar.tsx +1 -1
  183. package/docs/patterns/components-navlist--side-nav-settings.tsx +1 -1
  184. package/docs/patterns/components-notice--account-not-connected.tsx +1 -1
  185. package/docs/patterns/components-notice--holiday-closure.tsx +1 -1
  186. package/docs/patterns/components-notice--private-buyout.tsx +1 -1
  187. package/docs/patterns/components-notice--sync-failed.tsx +1 -1
  188. package/docs/patterns/components-pageheader--app-header-pattern.tsx +1 -1
  189. package/docs/patterns/components-pageheader--page-section-header.tsx +1 -1
  190. package/docs/patterns/components-pageheader--toolbar-header.tsx +1 -1
  191. package/docs/patterns/components-panel--end-detail-rail.tsx +1 -1
  192. package/docs/patterns/components-pillgroup--pill-group-pattern.tsx +1 -1
  193. package/docs/patterns/components-progress--upload-pattern.tsx +9 -0
  194. package/docs/patterns/components-promptbar--pattern-prompt-bar.tsx +1 -1
  195. package/docs/patterns/components-prose--article-body.tsx +1 -1
  196. package/docs/patterns/components-radio-radiogroup--default.tsx +1 -1
  197. package/docs/patterns/components-scrollhorizontal--project-gallery-pattern.tsx +1 -1
  198. package/docs/patterns/components-scrollhorizontal--with-intro.tsx +1 -1
  199. package/docs/patterns/components-sectioncaption--column-caption.tsx +1 -1
  200. package/docs/patterns/components-sectioncaption--with-action.tsx +1 -1
  201. package/docs/patterns/components-sheet--bottom-sheet.tsx +1 -1
  202. package/docs/patterns/components-sheet--end-sheet.tsx +1 -1
  203. package/docs/patterns/components-sheet--side-sheet-header-actions.tsx +1 -1
  204. package/docs/patterns/components-sheet--side-sheet-url-deep-link.tsx +1 -1
  205. package/docs/patterns/components-sheet--side-sheet.tsx +1 -1
  206. package/docs/patterns/components-sitenav--brand-and-cta.tsx +1 -1
  207. package/docs/patterns/components-sitenav--centered-links.tsx +1 -1
  208. package/docs/patterns/components-sitenav--compact.tsx +1 -1
  209. package/docs/patterns/components-sitenav--marketing-header.tsx +1 -1
  210. package/docs/patterns/components-sitenav--mega-menu.tsx +1 -1
  211. package/docs/patterns/components-stat--hero-stat.tsx +1 -1
  212. package/docs/patterns/components-stat--insights-row.tsx +1 -1
  213. package/docs/patterns/components-stepprogress--step-progress-pattern.tsx +1 -1
  214. package/docs/patterns/components-switch--default.tsx +1 -1
  215. package/docs/patterns/components-switch--settings-row.tsx +1 -1
  216. package/docs/patterns/components-tab--settings-pages.tsx +1 -1
  217. package/docs/patterns/components-table--approvals-with-sheet.tsx +1 -1
  218. package/docs/patterns/components-table--approvals.tsx +1 -1
  219. package/docs/patterns/components-table--basic.tsx +1 -1
  220. package/docs/patterns/components-taskrows--action-details.tsx +1 -1
  221. package/docs/patterns/components-taskrows--capsules.tsx +1 -1
  222. package/docs/patterns/components-taskrows--card-with-status-rows.tsx +1 -1
  223. package/docs/patterns/components-taskrows--controlled-expand.tsx +1 -1
  224. package/docs/patterns/components-taskrows--custom-slots.tsx +1 -1
  225. package/docs/patterns/components-taskrows--needs-you-table.tsx +1 -1
  226. package/docs/patterns/components-taskrows--status-list.tsx +1 -1
  227. package/docs/patterns/components-taskrows--tag-chips.tsx +1 -1
  228. package/docs/patterns/components-textarea--save-status.tsx +1 -1
  229. package/docs/patterns/components-textlink--external-destination.tsx +1 -1
  230. package/docs/patterns/components-textlink--inline-prose.tsx +1 -1
  231. package/docs/patterns/components-textlink--quiet-title.tsx +1 -1
  232. package/docs/patterns/components-textlink--supporting-copy.tsx +1 -1
  233. package/docs/patterns/components-textsequence--default.tsx +1 -1
  234. package/docs/patterns/components-textsequence--reduced-motion.tsx +1 -1
  235. package/docs/patterns/components-textsequence--shapes.tsx +1 -1
  236. package/docs/patterns/components-tilegrid--masonry.tsx +1 -1
  237. package/docs/patterns/components-toast--stacked-notifications.tsx +1 -1
  238. package/docs/patterns/components-tooltip--controlled.tsx +1 -1
  239. package/docs/patterns/components-tooltip--disabled-control.tsx +1 -1
  240. package/docs/patterns/components-tooltip--icon-action.tsx +1 -1
  241. package/docs/patterns/components-tooltip--keyboard-shortcut.tsx +1 -1
  242. package/docs/patterns/components-tooltip--placement.tsx +1 -1
  243. package/docs/patterns/foundations-scroll-fade--horizontal-rail.tsx +1 -1
  244. package/docs/patterns/foundations-scroll-fade--overflowing-list.tsx +1 -1
  245. package/docs/patterns/guides-chart-explorations--comparison-gallery.tsx +1 -1
  246. package/docs/patterns/guides-filter-panel--filtered-grid.tsx +1 -1
  247. package/docs/patterns/guides-filter-panel--filtered-index.tsx +1 -1
  248. package/docs/patterns/guides-overlay-flows--notification-preferences.tsx +1 -1
  249. package/docs/patterns/guides-post-page--post-page.tsx +1 -1
  250. package/docs/patterns/guides-profile-typography--editorial-profile.tsx +1 -1
  251. package/docs/patterns/guides-resource-detail--detail.tsx +1 -1
  252. package/docs/patterns/index.json +9 -1
  253. package/package.json +2 -1
@@ -24,6 +24,8 @@ export interface TextAreaProps extends Omit<TextareaHTMLAttributes<HTMLTextAreaE
24
24
  liveStatus?: string;
25
25
  /** Trailing spinner — async validation. */
26
26
  loading?: boolean;
27
+ /** Read out while `loading` (Loading states Y4). Default "Checking…". */
28
+ loadingLabel?: string;
27
29
  /** Visible row count — default **4**. */
28
30
  rows?: number;
29
31
  /** Native resize — default **`vertical`**. */
@@ -1 +1 @@
1
- {"version":3,"file":"TextArea.d.ts","sourceRoot":"","sources":["../../../../src/components/atoms/TextArea/TextArea.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,sBAAsB,EAAE,MAAM,OAAO,CAAC;AAKvE,OAAO,EAqBL,KAAK,oBAAoB,EACzB,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EAAE,oBAAoB,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC1G,OAAO,EAAE,qBAAqB,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE1G,sEAAsE;AACtE,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAE7C,MAAM,WAAW,aACf,SAAQ,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACjE,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oFAAoF;IACpF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kDAAkD;IAClD,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,eAAe,CAAC,EAAE,oBAAoB,CAAC;IACvC;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,uBAAuB,CAAC;CACrC;AAqBD;;;GAGG;AACH,eAAO,MAAM,QAAQ,+GAgKnB,CAAC"}
1
+ {"version":3,"file":"TextArea.d.ts","sourceRoot":"","sources":["../../../../src/components/atoms/TextArea/TextArea.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,sBAAsB,EAAE,MAAM,OAAO,CAAC;AAKvE,OAAO,EAqBL,KAAK,oBAAoB,EACzB,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EAAE,oBAAoB,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC1G,OAAO,EAAE,qBAAqB,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE1G,sEAAsE;AACtE,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAE7C,MAAM,WAAW,aACf,SAAQ,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACjE,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oFAAoF;IACpF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kDAAkD;IAClD,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,eAAe,CAAC,EAAE,oBAAoB,CAAC;IACvC;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yEAAyE;IACzE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,uBAAuB,CAAC;CACrC;AAqBD;;;GAGG;AACH,eAAO,MAAM,QAAQ,+GAyKnB,CAAC"}
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
  import { cn as e } from "../../../lib/cn.js";
3
3
  import { typographyClass as t } from "../../../lib/typography.js";
4
- import { inputAttachedFieldClasses as n, inputCompoundShellClassesFor as r, inputControlStackClasses as i, inputDisabledClasses as a, inputFieldStackClasses as o, inputStatusGapClasses as ee } from "../Input/inputShellStyles.js";
5
- import { InputStatusBanner as s, warnStatusWithoutMessage as c } from "../inputShared/InputStatusBanner.js";
4
+ import { inputAttachedFieldClasses as n, inputCompoundShellClassesFor as r, inputControlStackClasses as i, inputDisabledClasses as a, inputFieldStackClasses as o, inputStatusGapClasses as s } from "../Input/inputShellStyles.js";
5
+ import { InputStatusBanner as c, warnStatusWithoutMessage as ee } from "../inputShared/InputStatusBanner.js";
6
6
  import { InputTrailingAffordance as l } from "../inputShared/InputTrailingAffordance.js";
7
7
  import { textareaBaseClasses as u, textareaCompoundFieldPaddingClasses as d, textareaCompoundInnerFieldClassesFor as f, textareaFixedPaddingClasses as p, textareaInlineClasses as m, textareaMinHeightClasses as h, textareaResizeClasses as g, textareaResizes as _, textareaShellFieldClasses as v, textareaSoloShellClassesFor as te, textareaStatusBannerClassesFor as y, textareaTrailingInsetClasses as b, textareaTrailingInsetPositionClasses as x } from "./textareaShellStyles.js";
8
8
  import { forwardRef as S, useId as C } from "react";
@@ -14,88 +14,98 @@ function D(e) {
14
14
  function O(e) {
15
15
  e.message != null && e.status == null && console.warn("[WMDS TextArea] `message` requires `status`."), e.inline && (e.label != null || e.description != null || e.liveStatus != null || e.status != null || e.message != null) && console.warn("[WMDS TextArea] `inline` is for PromptBar only — omit label, description, and validation.");
16
16
  }
17
- var k = S(function({ size: s = "md", label: _, description: y, status: S, message: k, liveStatus: A, messagePosition: j = "bottom", loading: M = !1, rows: N = 4, resize: P = "vertical", inline: F = !1, className: I, disabled: L, id: R, "aria-describedby": z, ...B }, V) {
18
- c("TextArea", S, k);
19
- let H = C(), U = R ?? H;
17
+ var k = S(function({ size: c = "md", label: _, description: y, status: S, message: k, liveStatus: A, messagePosition: j = "bottom", loading: M = !1, loadingLabel: N = "Checking…", rows: P = 4, resize: F = "vertical", inline: I = !1, className: L, disabled: R, id: z, "aria-describedby": B, ...V }, H) {
18
+ ee("TextArea", S, k);
19
+ let U = C(), W = z ?? U;
20
20
  D({
21
21
  label: _,
22
- "aria-label": B["aria-label"],
23
- "aria-labelledby": B["aria-labelledby"]
22
+ "aria-label": V["aria-label"],
23
+ "aria-labelledby": V["aria-labelledby"]
24
24
  }), O({
25
25
  status: S,
26
26
  message: k,
27
- inline: F,
27
+ inline: I,
28
28
  label: _,
29
29
  description: y,
30
30
  liveStatus: A
31
31
  });
32
- let W = k != null && k.length > 0 && S != null, G = !W && (M || S != null), K = y == null ? void 0 : `${U}-description`, q = W ? `${U}-message` : void 0, J = [
33
- z,
34
- K,
35
- q
32
+ let G = k != null && k.length > 0 && S != null, K = !G && (M || S != null), q = y == null ? void 0 : `${W}-description`, J = G ? `${W}-message` : void 0, Y = [
33
+ B,
34
+ q,
35
+ J
36
36
  ].filter(Boolean).join(" ") || void 0;
37
- if (F) return /* @__PURE__ */ T("textarea", {
38
- ...B,
39
- ref: V,
40
- id: U,
41
- rows: N,
42
- disabled: L,
37
+ if (I) return /* @__PURE__ */ T("textarea", {
38
+ ...V,
39
+ ref: H,
40
+ id: W,
41
+ rows: P,
42
+ disabled: R,
43
43
  "aria-invalid": S === "error" || void 0,
44
- "aria-describedby": J,
45
- className: e(a, m, I)
44
+ "aria-busy": M || void 0,
45
+ "aria-describedby": Y,
46
+ className: e(a, m, L)
46
47
  });
47
- let Y = /* @__PURE__ */ T("textarea", {
48
- ...B,
49
- ref: V,
50
- id: U,
51
- rows: N,
52
- disabled: L,
48
+ let X = /* @__PURE__ */ T("textarea", {
49
+ ...V,
50
+ ref: H,
51
+ id: W,
52
+ rows: P,
53
+ disabled: R,
53
54
  "aria-invalid": S === "error" || void 0,
54
- "aria-describedby": J,
55
- className: e(a, g[P], u, p[s], h[s], v, G && ee[s], W && e(n, "rounded-none border-0 shadow-none focus-visible:!outline-none focus-visible:!ring-0", "rounded-none"))
56
- }), X = G ? /* @__PURE__ */ T("span", {
57
- className: e(b, x[s]),
55
+ "aria-busy": M || void 0,
56
+ "aria-describedby": Y,
57
+ className: e(a, g[F], u, p[c], h[c], v, K && s[c], G && e(n, "rounded-none border-0 shadow-none focus-visible:!outline-none focus-visible:!ring-0", "rounded-none"))
58
+ }), re = K ? /* @__PURE__ */ T("span", {
59
+ className: e(b, x[c]),
58
60
  children: /* @__PURE__ */ T(l, {
59
- size: s,
61
+ size: c,
60
62
  status: M ? void 0 : S,
61
63
  loading: M
62
64
  })
63
- }) : null, Z = /* @__PURE__ */ E(w, { children: [Y, X] }), re = /* @__PURE__ */ T("div", {
64
- className: e(te(s, S === "success" ? void 0 : S, P), I),
65
+ }) : null, Z = /* @__PURE__ */ E(w, { children: [
66
+ X,
67
+ re,
68
+ M ? /* @__PURE__ */ T("span", {
69
+ role: "status",
70
+ className: "sr-only",
71
+ children: N
72
+ }) : null
73
+ ] }), ie = /* @__PURE__ */ T("div", {
74
+ className: e(te(c, S === "success" ? void 0 : S, F), L),
65
75
  children: Z
66
- }), ie = /* @__PURE__ */ T("div", {
67
- className: e("relative w-full", d(P, s)),
76
+ }), ae = /* @__PURE__ */ T("div", {
77
+ className: e("relative w-full", d(F, c)),
68
78
  children: Z
69
- }), Q = W && S != null && q != null ? /* @__PURE__ */ T(ne, {
79
+ }), Q = G && S != null && J != null ? /* @__PURE__ */ T(ne, {
70
80
  status: S,
71
81
  message: k,
72
- messageId: q,
73
- size: s,
82
+ messageId: J,
83
+ size: c,
74
84
  messagePosition: j
75
- }) : null, $ = W && S != null ? /* @__PURE__ */ E("div", {
76
- className: r(s, S),
85
+ }) : null, $ = G && S != null ? /* @__PURE__ */ E("div", {
86
+ className: r(c, S),
77
87
  children: [
78
88
  j === "top" ? Q : null,
79
89
  /* @__PURE__ */ T("div", {
80
- className: f(s, S, j),
81
- children: ie
90
+ className: f(c, S, j),
91
+ children: ae
82
92
  }),
83
93
  j === "bottom" ? Q : null
84
94
  ]
85
95
  }) : /* @__PURE__ */ T("div", {
86
96
  className: i,
87
- children: re
97
+ children: ie
88
98
  });
89
99
  return _ == null && y == null && A == null ? $ : /* @__PURE__ */ E("div", {
90
100
  className: o,
91
101
  children: [
92
102
  _ == null ? null : /* @__PURE__ */ T("label", {
93
- htmlFor: U,
94
- className: e(t("ui-label"), L && "opacity-50"),
103
+ htmlFor: W,
104
+ className: e(t("ui-label"), R && "opacity-50"),
95
105
  children: _
96
106
  }),
97
- K == null ? null : /* @__PURE__ */ T("p", {
98
- id: K,
107
+ q == null ? null : /* @__PURE__ */ T("p", {
108
+ id: q,
99
109
  className: t("caption"),
100
110
  children: y
101
111
  }),
@@ -103,7 +113,7 @@ var k = S(function({ size: s = "md", label: _, description: y, status: S, messag
103
113
  A == null ? null : /* @__PURE__ */ T("p", {
104
114
  role: "status",
105
115
  "aria-live": "polite",
106
- id: `${U}-live-status`,
116
+ id: `${W}-live-status`,
107
117
  className: t("caption"),
108
118
  children: A
109
119
  })
@@ -111,7 +121,7 @@ var k = S(function({ size: s = "md", label: _, description: y, status: S, messag
111
121
  });
112
122
  });
113
123
  function ne({ status: e, message: t, messageId: n, size: r, messagePosition: i }) {
114
- return /* @__PURE__ */ T(s, {
124
+ return /* @__PURE__ */ T(c, {
115
125
  status: e,
116
126
  message: t,
117
127
  messageId: n,
@@ -1 +1 @@
1
- {"version":3,"file":"InputTrailingAffordance.d.ts","sourceRoot":"","sources":["../../../../src/components/atoms/inputShared/InputTrailingAffordance.tsx"],"names":[],"mappings":"AAEA,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,WAAW,EACjB,MAAM,2BAA2B,CAAC;AAenC,8EAA8E;AAC9E,wBAAgB,uBAAuB,CAAC,EACtC,IAAI,EACJ,MAAM,EACN,OAAO,GACR,EAAE;IACD,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,sCAmBA"}
1
+ {"version":3,"file":"InputTrailingAffordance.d.ts","sourceRoot":"","sources":["../../../../src/components/atoms/inputShared/InputTrailingAffordance.tsx"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,WAAW,EACjB,MAAM,2BAA2B,CAAC;AAenC,8EAA8E;AAC9E,wBAAgB,uBAAuB,CAAC,EACtC,IAAI,EACJ,MAAM,EACN,OAAO,GACR,EAAE;IACD,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,sCAsBA"}
@@ -1,26 +1,28 @@
1
1
  "use client";
2
2
  import { cn as e } from "../../../lib/cn.js";
3
- import { inputSpinnerSizeClasses as t, inputStatusIconClasses as n, inputStatusIconSizeClasses as r } from "../Input/inputShellStyles.js";
4
- import { CheckCircle2 as i, CircleX as a, Loader2 as o, TriangleAlert as s } from "lucide-react";
5
- import { jsx as c } from "react/jsx-runtime";
3
+ import { useDelayedLoading as t } from "../../../lib/useDelayedLoading.js";
4
+ import { inputSpinnerSizeClasses as n, inputStatusIconClasses as r, inputStatusIconSizeClasses as i } from "../Input/inputShellStyles.js";
5
+ import { CheckCircle2 as a, CircleX as o, Loader2 as s, TriangleAlert as c } from "lucide-react";
6
+ import { jsx as l } from "react/jsx-runtime";
6
7
  //#region src/components/atoms/inputShared/InputTrailingAffordance.tsx
7
- function l({ status: t, size: o }) {
8
- let l = e(r[o], n[t]);
9
- return c(t === "error" ? a : t === "warning" ? s : i, {
10
- className: l,
8
+ function u({ status: t, size: n }) {
9
+ let s = e(i[n], r[t]);
10
+ return l(t === "error" ? o : t === "warning" ? c : a, {
11
+ className: s,
11
12
  strokeWidth: 2,
12
13
  "aria-hidden": !0
13
14
  });
14
15
  }
15
- function u({ size: n, status: r, loading: i }) {
16
- return i ? /* @__PURE__ */ c(o, {
17
- className: e(t[n], "animate-spin stroke-current text-muted"),
16
+ function d({ size: r, status: i, loading: a }) {
17
+ let o = t(a === !0);
18
+ return a ? o ? /* @__PURE__ */ l(s, {
19
+ className: e(n[r], "animate-spin motion-reduce:animate-none stroke-current text-muted"),
18
20
  strokeWidth: 2,
19
21
  "aria-hidden": !0
20
- }) : r == null ? null : /* @__PURE__ */ c(l, {
21
- status: r,
22
- size: n
22
+ }) : null : i == null ? null : /* @__PURE__ */ l(u, {
23
+ status: i,
24
+ size: r
23
25
  });
24
26
  }
25
27
  //#endregion
26
- export { u as InputTrailingAffordance };
28
+ export { d as InputTrailingAffordance };
@@ -1 +1 @@
1
- {"version":3,"file":"CalEmbed.d.ts","sourceRoot":"","sources":["../../../../src/components/molecules/CalEmbed/CalEmbed.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,SAAS,EAAE,MAAM,OAAO,CAAC;AAUnD,qCAAqC;AACrC,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAE7C,eAAO,MAAM,gBAAgB,WAAW,CAAC;AACzC,eAAO,MAAM,iBAAiB,wBAAwB,CAAC;AACvD,eAAO,MAAM,kBAAkB,2CAAsC,CAAC;AACtE,eAAO,MAAM,wBAAwB,4DAAuD,CAAC;AAE7F,MAAM,WAAW,iBAAiB;IAChC,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,uBAAuB,CAAC;CACrC;AAED,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,iGAAiG;IACjG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B;;;;;OAKG;IACH,IAAI,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC;IACzB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,uBAAuB,CAAC;CACrC;AAcD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EAC3B,QAA2B,EAC3B,SAA6B,EAC7B,MAAM,EACN,SAAS,GACV,EAAE,iBAAiB,+BAWnB;AAED;;;;GAIG;AACH,iBAAS,YAAY,CAAC,EACpB,QAAQ,EACR,UAA+B,EAC/B,gBAA2C,EAC3C,IAAI,EACJ,QAA2B,EAC3B,SAA6B,EAC7B,MAAM,EACN,SAAS,GACV,EAAE,aAAa,+BAsBf;AAED,eAAO,MAAM,QAAQ;;CAEnB,CAAC"}
1
+ {"version":3,"file":"CalEmbed.d.ts","sourceRoot":"","sources":["../../../../src/components/molecules/CalEmbed/CalEmbed.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,SAAS,EAAE,MAAM,OAAO,CAAC;AAUnD,qCAAqC;AACrC,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAE7C,eAAO,MAAM,gBAAgB,WAAW,CAAC;AACzC,eAAO,MAAM,iBAAiB,wBAAwB,CAAC;AACvD,eAAO,MAAM,kBAAkB,2CAAsC,CAAC;AACtE,eAAO,MAAM,wBAAwB,4DAAuD,CAAC;AAE7F,MAAM,WAAW,iBAAiB;IAChC,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,uBAAuB,CAAC;CACrC;AAED,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,iGAAiG;IACjG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B;;;;;OAKG;IACH,IAAI,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC;IACzB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,uBAAuB,CAAC;CACrC;AAcD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EAC3B,QAA2B,EAC3B,SAA6B,EAC7B,MAAM,EACN,SAAS,GACV,EAAE,iBAAiB,+BAWnB;AAED;;;;GAIG;AACH,iBAAS,YAAY,CAAC,EACpB,QAAQ,EACR,UAA+B,EAC/B,gBAA2C,EAC3C,IAAI,EACJ,QAA2B,EAC3B,SAA6B,EAC7B,MAAM,EACN,SAAS,GACV,EAAE,aAAa,+BAoBf;AAED,eAAO,MAAM,QAAQ;;CAEnB,CAAC"}
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
  import { cn as e } from "../../../lib/cn.js";
3
- import { typographyClass as t } from "../../../lib/typography.js";
4
- import { TextLink as n } from "../../atoms/TextLink/TextLink.js";
5
- import { calEmbedClasses as r, calEmbedEmptyClasses as i, calEmbedFrameClasses as a } from "./calEmbedStyles.js";
3
+ import { TextLink as t } from "../../atoms/TextLink/TextLink.js";
4
+ import { calEmbedClasses as n, calEmbedEmptyClasses as r, calEmbedFrameClasses as i } from "./calEmbedStyles.js";
5
+ import { EmptyState as a } from "../EmptyState/EmptyState.js";
6
6
  import { jsx as o, jsxs as s } from "react/jsx-runtime";
7
7
  //#region src/components/molecules/CalEmbed/CalEmbed.tsx
8
8
  var c = "#email", l = "Skip, just email me", u = "Booking isn’t available right now", d = "We’ll follow up by email with a few times instead.";
@@ -12,40 +12,34 @@ function f(e) {
12
12
  function p(e, t) {
13
13
  e != null && (t.preventDefault(), e());
14
14
  }
15
- function m({ skipHref: e = c, skipLabel: t = l, onSkip: r, className: i }) {
16
- return /* @__PURE__ */ o(n, {
15
+ function m({ skipHref: e = c, skipLabel: n = l, onSkip: r, className: i }) {
16
+ return /* @__PURE__ */ o(t, {
17
17
  href: e,
18
18
  className: i,
19
19
  "data-cal-embed-skip": "",
20
20
  onClick: (e) => p(r, e),
21
- children: t
21
+ children: n
22
22
  });
23
23
  }
24
- function h({ children: n, emptyTitle: p = u, emptyDescription: h = d, skip: g, skipHref: _ = c, skipLabel: v = l, onSkip: y, className: b }) {
25
- let x = f(n), S = g === void 0 ? /* @__PURE__ */ o(m, {
24
+ function h({ children: t, emptyTitle: p = u, emptyDescription: h = d, skip: g, skipHref: _ = c, skipLabel: v = l, onSkip: y, className: b }) {
25
+ let x = f(t), S = g === void 0 ? /* @__PURE__ */ o(m, {
26
26
  skipHref: _,
27
27
  skipLabel: v,
28
28
  onSkip: y
29
29
  }) : null;
30
30
  return /* @__PURE__ */ s("div", {
31
- className: e(r, b),
31
+ className: e(n, b),
32
32
  "data-cal-embed": "",
33
33
  children: [x ? S : null, /* @__PURE__ */ o("div", {
34
- className: a,
35
- children: x ? n : /* @__PURE__ */ s("div", {
36
- className: i,
34
+ className: i,
35
+ children: x ? t : /* @__PURE__ */ o("div", {
36
+ className: r,
37
37
  "data-cal-embed-empty": "",
38
- children: [
39
- /* @__PURE__ */ o("p", {
40
- className: t("subheading"),
41
- children: p
42
- }),
43
- /* @__PURE__ */ o("p", {
44
- className: e(t("caption"), "text-muted"),
45
- children: h
46
- }),
47
- S
48
- ]
38
+ children: /* @__PURE__ */ o(a, {
39
+ title: p,
40
+ description: h,
41
+ action: S
42
+ })
49
43
  })
50
44
  })]
51
45
  });
@@ -0,0 +1,41 @@
1
+ import type { ReactNode } from "react";
2
+ import { type EmptyStateKind } from "./emptyStateStyles";
3
+ export { emptyStateKinds, type EmptyStateKind } from "./emptyStateStyles";
4
+ /** Layout-only — width or margin. */
5
+ export type EmptyStateLayoutClassName = string;
6
+ export interface EmptyStateProps {
7
+ /**
8
+ * - `first-use`: nothing here yet. Say what shows up here and give the main action ("No projects yet" /
9
+ * "Projects you start show up here." / Start a project).
10
+ * - `no-results`: a search or filter found nothing. Name the words or filters ("No work matches Restaurants
11
+ * and Video") and offer Clear filters (`onClearFilters`, required).
12
+ * - `done`: everything is handled ("You’re all caught up"). A short positive line, no action.
13
+ */
14
+ kind?: EmptyStateKind;
15
+ /** The one line that says what’s going on, in the feature’s words. */
16
+ title: ReactNode;
17
+ /** Optional: what shows up here, or why nothing matched. One sentence. */
18
+ description?: ReactNode;
19
+ /**
20
+ * `first-use`: one way forward, a **Button**. `role="primary"` when the empty state is the page’s main
21
+ * content (nothing else on the page asks for an action); `secondary` only when the page already has a
22
+ * primary (Z3, U7).
23
+ */
24
+ action?: ReactNode;
25
+ /** `no-results`: clears the search and filters. */
26
+ onClearFilters?: () => void;
27
+ clearFiltersLabel?: string;
28
+ /** At most a quiet "Learn more" **TextLink**. */
29
+ learnMore?: ReactNode;
30
+ /** A 24px glyph that names the thing (Lucide). No illustrations. */
31
+ icon?: ReactNode;
32
+ className?: EmptyStateLayoutClassName;
33
+ }
34
+ /**
35
+ * Empty states (Rule 22): what takes a list’s place when there’s nothing in it. The page around it stays
36
+ * (heading, search, filters). Looks different from loading (Skeleton) and from an error.
37
+ */
38
+ export declare function EmptyState({ kind, title, description, action, onClearFilters, clearFiltersLabel, learnMore, icon, className, }: EmptyStateProps): import("react").JSX.Element;
39
+ /** A plain string in an `empty` slot becomes an **EmptyState** (Z7); anything else is used as given. */
40
+ export declare function emptySlot(empty: ReactNode, kind?: EmptyStateKind): ReactNode;
41
+ //# sourceMappingURL=EmptyState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmptyState.d.ts","sourceRoot":"","sources":["../../../../src/components/molecules/EmptyState/EmptyState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,EAML,KAAK,cAAc,EACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE1E,qCAAqC;AACrC,MAAM,MAAM,yBAAyB,GAAG,MAAM,CAAC;AAE/C,MAAM,WAAW,eAAe;IAC9B;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,sEAAsE;IACtE,KAAK,EAAE,SAAS,CAAC;IACjB,0EAA0E;IAC1E,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB;;;;OAIG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,mDAAmD;IACnD,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iDAAiD;IACjD,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,oEAAoE;IACpE,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,SAAS,CAAC,EAAE,yBAAyB,CAAC;CACvC;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,EACzB,IAAkB,EAClB,KAAK,EACL,WAAW,EACX,MAAM,EACN,cAAc,EACd,iBAAmC,EACnC,SAAS,EACT,IAAI,EACJ,SAAS,GACV,EAAE,eAAe,+BA+BjB;AAED,wGAAwG;AACxG,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,GAAE,cAA4B,GAAG,SAAS,CAEzF"}
@@ -0,0 +1,46 @@
1
+ "use client";
2
+ import { cn as e } from "../../../lib/cn.js";
3
+ import { Button as t } from "../../atoms/Button/Button.js";
4
+ import { emptyStateActionsClasses as n, emptyStateClasses as r, emptyStateDescriptionClasses as i, emptyStateIconClasses as a, emptyStateKinds as o, emptyStateTitleClasses as s } from "./emptyStateStyles.js";
5
+ import { jsx as c, jsxs as l } from "react/jsx-runtime";
6
+ //#region src/components/molecules/EmptyState/EmptyState.tsx
7
+ function u({ kind: o = "first-use", title: u, description: d, action: f, onClearFilters: p, clearFiltersLabel: m = "Clear filters", learnMore: h, icon: g, className: _ }) {
8
+ o === "no-results" && p == null && console.warn("[WMDS EmptyState] `kind=\"no-results\"` needs `onClearFilters` (a way back to everything)."), o === "done" && f != null && console.warn("[WMDS EmptyState] `kind=\"done\"` takes no action: a short positive line is enough.");
9
+ let v = o === "done" ? null : o === "no-results" ? o === "no-results" && p != null ? /* @__PURE__ */ c(t, {
10
+ role: "secondary",
11
+ size: "sm",
12
+ onClick: p,
13
+ children: m
14
+ }) : null : f;
15
+ return /* @__PURE__ */ l("div", {
16
+ className: e(r, _),
17
+ "data-empty-state": o,
18
+ children: [
19
+ g == null ? null : /* @__PURE__ */ c("span", {
20
+ className: a,
21
+ "aria-hidden": !0,
22
+ children: g
23
+ }),
24
+ /* @__PURE__ */ c("p", {
25
+ className: s,
26
+ children: u
27
+ }),
28
+ d == null ? null : /* @__PURE__ */ c("p", {
29
+ className: i,
30
+ children: d
31
+ }),
32
+ v != null || h != null ? /* @__PURE__ */ l("div", {
33
+ className: n,
34
+ children: [v, h]
35
+ }) : null
36
+ ]
37
+ });
38
+ }
39
+ function d(e, t = "first-use") {
40
+ return typeof e == "string" ? /* @__PURE__ */ c(u, {
41
+ kind: t,
42
+ title: e
43
+ }) : e;
44
+ }
45
+ //#endregion
46
+ export { u as EmptyState, d as emptySlot, o as emptyStateKinds };
@@ -0,0 +1,10 @@
1
+ export declare const emptyStateKinds: readonly ["first-use", "no-results", "done"];
2
+ export type EmptyStateKind = (typeof emptyStateKinds)[number];
3
+ /** Takes the list’s place only: centred, compact, so the action shows without scrolling at 390 (Z9). */
4
+ export declare const emptyStateClasses = "flex w-full flex-col items-center gap-2 px-4 py-8 text-center";
5
+ /** 24px, only when it names the thing (Z9). No illustrations. */
6
+ export declare const emptyStateIconClasses = "mb-1 inline-flex text-muted [&>svg]:size-6 [&>svg]:shrink-0 [&>svg]:stroke-current";
7
+ export declare const emptyStateTitleClasses: string;
8
+ export declare const emptyStateDescriptionClasses: string;
9
+ export declare const emptyStateActionsClasses = "mt-2 flex flex-wrap items-center justify-center gap-3";
10
+ //# sourceMappingURL=emptyStateStyles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emptyStateStyles.d.ts","sourceRoot":"","sources":["../../../../src/components/molecules/EmptyState/emptyStateStyles.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,eAAe,8CAA+C,CAAC;AAC5E,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9D,wGAAwG;AACxG,eAAO,MAAM,iBAAiB,kEAAkE,CAAC;AACjG,iEAAiE;AACjE,eAAO,MAAM,qBAAqB,uFAAuF,CAAC;AAC1H,eAAO,MAAM,sBAAsB,QAA+C,CAAC;AACnF,eAAO,MAAM,4BAA4B,QAAwE,CAAC;AAClH,eAAO,MAAM,wBAAwB,0DAA0D,CAAC"}
@@ -0,0 +1,11 @@
1
+ "use client";
2
+ import { cn as e } from "../../../lib/cn.js";
3
+ import { typographyClass as t } from "../../../lib/typography.js";
4
+ //#region src/components/molecules/EmptyState/emptyStateStyles.ts
5
+ var n = [
6
+ "first-use",
7
+ "no-results",
8
+ "done"
9
+ ], r = "flex w-full flex-col items-center gap-2 px-4 py-8 text-center", i = "mb-1 inline-flex text-muted [&>svg]:size-6 [&>svg]:shrink-0 [&>svg]:stroke-current", a = e(t("subheading"), "text-fg"), o = e(t("caption"), "max-w-[40ch] text-pretty text-muted"), s = "mt-2 flex flex-wrap items-center justify-center gap-3";
10
+ //#endregion
11
+ export { s as emptyStateActionsClasses, r as emptyStateClasses, o as emptyStateDescriptionClasses, i as emptyStateIconClasses, n as emptyStateKinds, a as emptyStateTitleClasses };
@@ -22,6 +22,11 @@ export interface IndexListProps {
22
22
  titleAs?: IndexListTitleElement;
23
23
  /** Shown in place of the rows when there are none — for example "No posts match these filters." */
24
24
  empty?: ReactNode;
25
+ /**
26
+ * The result count, read out when it changes (Empty states Z6): "12 projects", "0 projects match".
27
+ * Kept in a status line that's always there, so the change is announced.
28
+ */
29
+ resultsLabel?: string;
25
30
  /** Names the list for screen readers, for example "Posts". */
26
31
  "aria-label"?: string;
27
32
  "aria-labelledby"?: string;
@@ -53,7 +58,7 @@ export interface IndexListItemProps {
53
58
  * Editorial index — a ruled list where each row has a meta column, a large linked title, and an
54
59
  * optional preview that expands under the title. Optional column captions share the rows' tracks.
55
60
  */
56
- declare function IndexListRoot({ captions, size, titleAs, empty, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, children, className, }: IndexListProps): import("react").JSX.Element;
61
+ declare function IndexListRoot({ captions, size, titleAs, empty, resultsLabel, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, children, className, }: IndexListProps): import("react").JSX.Element;
57
62
  declare function IndexListItem({ title, href, render, meta, preview, defaultOpen, open: openProp, onOpenChange, previewLabel, className, }: IndexListItemProps): import("react").JSX.Element;
58
63
  export declare const IndexList: typeof IndexListRoot & {
59
64
  Item: typeof IndexListItem;
@@ -1 +1 @@
1
- {"version":3,"file":"IndexList.d.ts","sourceRoot":"","sources":["../../../../src/components/molecules/IndexList/IndexList.tsx"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,YAAY,EACjB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAKf,OAAO,EAiBL,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC3B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,KAAK,aAAa,EAClB,KAAK,qBAAqB,GAC3B,MAAM,mBAAmB,CAAC;AAE3B,sDAAsD;AACtD,MAAM,MAAM,wBAAwB,GAAG,MAAM,CAAC;AAE9C,MAAM,WAAW,iBAAiB;IAChC,iGAAiG;IACjG,IAAI,EAAE,SAAS,CAAC;IAChB,2CAA2C;IAC3C,KAAK,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,4FAA4F;IAC5F,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC,mGAAmG;IACnG,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,wBAAwB,CAAC;CACtC;AAED,MAAM,WAAW,kBAAkB;IACjC,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,gFAAgF;IAChF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2GAA2G;IAC3G,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,6FAA6F;IAC7F,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,wFAAwF;IACxF,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,kCAAkC;IAClC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gCAAgC;IAChC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,wBAAwB,CAAC;CACtC;AASD;;;GAGG;AACH,iBAAS,aAAa,CAAC,EACrB,QAAQ,EACR,IAAW,EACX,OAAc,EACd,KAAK,EACL,YAAY,EAAE,SAAS,EACvB,iBAAiB,EAAE,cAAc,EACjC,QAAQ,EACR,SAAS,GACV,EAAE,cAAc,+BA8BhB;AAED,iBAAS,aAAa,CAAC,EACrB,KAAK,EACL,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,OAAO,EACP,WAAmB,EACnB,IAAI,EAAE,QAAQ,EACd,YAAY,EACZ,YAAY,EACZ,SAAS,GACV,EAAE,kBAAkB,+BA6CpB;AAED,eAAO,MAAM,SAAS;;CAEpB,CAAC"}
1
+ {"version":3,"file":"IndexList.d.ts","sourceRoot":"","sources":["../../../../src/components/molecules/IndexList/IndexList.tsx"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,YAAY,EACjB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAKf,OAAO,EAiBL,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC3B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,KAAK,aAAa,EAClB,KAAK,qBAAqB,GAC3B,MAAM,mBAAmB,CAAC;AAG3B,sDAAsD;AACtD,MAAM,MAAM,wBAAwB,GAAG,MAAM,CAAC;AAE9C,MAAM,WAAW,iBAAiB;IAChC,iGAAiG;IACjG,IAAI,EAAE,SAAS,CAAC;IAChB,2CAA2C;IAC3C,KAAK,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,4FAA4F;IAC5F,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC,mGAAmG;IACnG,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,wBAAwB,CAAC;CACtC;AAED,MAAM,WAAW,kBAAkB;IACjC,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,gFAAgF;IAChF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2GAA2G;IAC3G,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,6FAA6F;IAC7F,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,wFAAwF;IACxF,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,kCAAkC;IAClC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gCAAgC;IAChC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,wBAAwB,CAAC;CACtC;AASD;;;GAGG;AACH,iBAAS,aAAa,CAAC,EACrB,QAAQ,EACR,IAAW,EACX,OAAc,EACd,KAAK,EACL,YAAY,EACZ,YAAY,EAAE,SAAS,EACvB,iBAAiB,EAAE,cAAc,EACjC,QAAQ,EACR,SAAS,GACV,EAAE,cAAc,+BAmChB;AAED,iBAAS,aAAa,CAAC,EACrB,KAAK,EACL,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,OAAO,EACP,WAAmB,EACnB,IAAI,EAAE,QAAQ,EACd,YAAY,EACZ,YAAY,EACZ,SAAS,GACV,EAAE,kBAAkB,+BA6CpB;AAED,eAAO,MAAM,SAAS;;CAEpB,CAAC"}