@thewhatmatters/wmds 0.4.29 → 0.4.31
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.
- package/CHANGELOG.md +65 -0
- package/CONSUMING.md +2 -1
- package/dist/components/atoms/Badge/Badge.js +1 -1
- package/dist/components/atoms/Badge/badgeStyles.d.ts +1 -1
- package/dist/components/atoms/Badge/badgeStyles.js +1 -1
- package/dist/components/atoms/Band/Band.d.ts +1 -1
- package/dist/components/atoms/Band/Band.d.ts.map +1 -1
- package/dist/components/atoms/Band/bandStyles.d.ts +4 -1
- package/dist/components/atoms/Band/bandStyles.d.ts.map +1 -1
- package/dist/components/atoms/Band/bandStyles.js +1 -1
- package/dist/components/atoms/Button/Button.d.ts +22 -4
- package/dist/components/atoms/Button/Button.d.ts.map +1 -1
- package/dist/components/atoms/Button/Button.js +132 -124
- package/dist/components/atoms/Button/buttonStyles.d.ts +3 -1
- package/dist/components/atoms/Button/buttonStyles.d.ts.map +1 -1
- package/dist/components/atoms/Button/buttonStyles.js +5 -4
- package/dist/components/atoms/IconButton/IconButton.d.ts +5 -0
- package/dist/components/atoms/IconButton/IconButton.d.ts.map +1 -1
- package/dist/components/atoms/IconButton/IconButton.js +4 -3
- package/dist/components/atoms/SectionCaption/SectionCaption.d.ts +5 -1
- package/dist/components/atoms/SectionCaption/SectionCaption.d.ts.map +1 -1
- package/dist/components/atoms/SectionCaption/SectionCaption.js +1 -1
- package/dist/components/atoms/TextLink/TextLink.d.ts +10 -2
- package/dist/components/atoms/TextLink/TextLink.d.ts.map +1 -1
- package/dist/components/atoms/TextLink/TextLink.js +18 -14
- package/dist/components/molecules/Accordion/Accordion.d.ts +9 -4
- package/dist/components/molecules/Accordion/Accordion.d.ts.map +1 -1
- package/dist/components/molecules/Accordion/Accordion.js +58 -51
- package/dist/components/molecules/Accordion/accordionStyles.d.ts +5 -0
- package/dist/components/molecules/Accordion/accordionStyles.d.ts.map +1 -1
- package/dist/components/molecules/Accordion/accordionStyles.js +5 -2
- package/dist/components/molecules/Breadcrumb/breadcrumbStyles.d.ts +5 -2
- package/dist/components/molecules/Breadcrumb/breadcrumbStyles.d.ts.map +1 -1
- package/dist/components/molecules/Breadcrumb/breadcrumbStyles.js +2 -2
- package/dist/components/molecules/Field/fieldStyles.d.ts +1 -1
- package/dist/components/molecules/Field/fieldStyles.js +1 -1
- package/dist/components/molecules/HeroIntro/HeroIntro.d.ts +22 -8
- package/dist/components/molecules/HeroIntro/HeroIntro.d.ts.map +1 -1
- package/dist/components/molecules/HeroIntro/HeroIntro.js +30 -18
- package/dist/components/molecules/HeroIntro/heroIntroStyles.d.ts +19 -3
- package/dist/components/molecules/HeroIntro/heroIntroStyles.d.ts.map +1 -1
- package/dist/components/molecules/HeroIntro/heroIntroStyles.js +2 -2
- package/dist/components/molecules/LinkTile/LinkTile.d.ts +6 -4
- package/dist/components/molecules/LinkTile/LinkTile.d.ts.map +1 -1
- package/dist/components/molecules/LinkTile/LinkTile.js +29 -29
- package/dist/components/molecules/PageHeader/PageHeader.d.ts +8 -1
- package/dist/components/molecules/PageHeader/PageHeader.d.ts.map +1 -1
- package/dist/components/molecules/PageHeader/PageHeader.js +19 -15
- package/dist/components/molecules/TileGrid/tileGridStyles.js +1 -1
- package/dist/components/organisms/Carousel/carouselStyles.js +3 -3
- package/dist/components/organisms/ChatDock/chatDockStyles.d.ts +4 -0
- package/dist/components/organisms/ChatDock/chatDockStyles.d.ts.map +1 -1
- package/dist/components/organisms/FooterReveal/FooterReveal.d.ts +4 -2
- package/dist/components/organisms/FooterReveal/FooterReveal.d.ts.map +1 -1
- package/dist/components/organisms/FooterReveal/FooterReveal.js +85 -85
- package/dist/components/organisms/FooterReveal/FooterRevealRuled.d.ts.map +1 -1
- package/dist/components/organisms/FooterReveal/FooterRevealRuled.js +49 -50
- package/dist/components/organisms/FooterReveal/footerRevealStyles.d.ts +9 -7
- package/dist/components/organisms/FooterReveal/footerRevealStyles.d.ts.map +1 -1
- package/dist/components/organisms/FooterReveal/footerRevealStyles.js +2 -9
- package/dist/components/organisms/IntakeConfirmation/intakeConfirmationStyles.d.ts +2 -1
- package/dist/components/organisms/IntakeConfirmation/intakeConfirmationStyles.d.ts.map +1 -1
- package/dist/components/organisms/IntakeConfirmation/intakeConfirmationStyles.js +1 -1
- package/dist/components/organisms/SiteNav/SiteNav.d.ts +17 -8
- package/dist/components/organisms/SiteNav/SiteNav.d.ts.map +1 -1
- package/dist/components/organisms/SiteNav/SiteNav.js +310 -256
- package/dist/components/organisms/SiteNav/siteNavStyles.d.ts +34 -6
- package/dist/components/organisms/SiteNav/siteNavStyles.d.ts.map +1 -1
- package/dist/components/organisms/SiteNav/siteNavStyles.js +3 -3
- package/dist/components/organisms/SiteNav/useSiteNavMobileMenu.d.ts +17 -0
- package/dist/components/organisms/SiteNav/useSiteNavMobileMenu.d.ts.map +1 -0
- package/dist/components/organisms/SiteNav/useSiteNavMobileMenu.js +47 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +107 -107
- package/dist/lib/dialogOverlay.d.ts +8 -0
- package/dist/lib/dialogOverlay.d.ts.map +1 -1
- package/dist/lib/dialogOverlay.js +45 -26
- package/dist/lib/motion.d.ts +2 -1
- package/dist/lib/motion.d.ts.map +1 -1
- package/dist/lib/motion.js +1 -1
- package/dist/lib/typography.d.ts +2 -2
- package/dist/lib/typography.d.ts.map +1 -1
- package/dist/lib/typography.js +14 -3
- package/dist/styles.css +1 -1
- package/dist/typography.css +46 -11
- package/docs/components.md +6 -6
- package/docs/exports.json +3 -2
- package/docs/patterns/components-accordion--flush.tsx +1 -1
- package/docs/patterns/components-appshell--portal-dashboard-pattern.tsx +1 -1
- package/docs/patterns/components-avatar--dropdown-row.tsx +1 -1
- package/docs/patterns/components-badge--outline-tags.tsx +1 -1
- package/docs/patterns/components-badge--status-pill.tsx +1 -1
- package/docs/patterns/components-badge--with-avatar.tsx +1 -1
- package/docs/patterns/components-band--page-in-bands.tsx +1 -1
- package/docs/patterns/components-breadcrumb--editorial.tsx +1 -1
- package/docs/patterns/components-breadcrumb--long-path.tsx +1 -1
- package/docs/patterns/components-breadcrumb--path.tsx +1 -1
- package/docs/patterns/components-breadcrumb--router-links.tsx +1 -1
- package/docs/patterns/components-button-button--copy-button.tsx +1 -1
- package/docs/patterns/components-button-button--destructive-action.tsx +1 -1
- package/docs/patterns/components-button-button--external-link.tsx +1 -1
- package/docs/patterns/components-button-button--ghost-action.tsx +1 -1
- package/docs/patterns/components-button-button--inverse-action.tsx +1 -1
- package/docs/patterns/components-button-button--link-render.tsx +1 -1
- package/docs/patterns/components-button-button--multi-state-badge.tsx +1 -1
- package/docs/patterns/components-button-button--outline-mono.tsx +1 -1
- package/docs/patterns/components-button-button--primary-action.tsx +1 -1
- package/docs/patterns/components-button-button--row-hug.tsx +1 -1
- package/docs/patterns/components-button-button--row-layout.tsx +1 -1
- package/docs/patterns/components-button-button--secondary-action.tsx +1 -1
- package/docs/patterns/components-button-button--suggestion-pills.tsx +1 -1
- package/docs/patterns/components-button-button--with-count.tsx +1 -1
- package/docs/patterns/components-button-button--with-icon.tsx +1 -1
- package/docs/patterns/components-button-floatingactionbutton--vertical-actions.tsx +1 -1
- package/docs/patterns/components-calembed--pattern-skip-in-footer.tsx +1 -1
- package/docs/patterns/components-card-card--body-slot-occupancy-history.tsx +1 -1
- package/docs/patterns/components-card-card--headerless-media.tsx +1 -1
- package/docs/patterns/components-card-card--outlined-layout.tsx +1 -1
- package/docs/patterns/components-card-card--pinned-height.tsx +1 -1
- package/docs/patterns/components-card-card--terminal-frame.tsx +1 -1
- package/docs/patterns/components-card-selectablecard--selectable-cards-pattern.tsx +1 -1
- package/docs/patterns/components-carousel--image-carousel.tsx +1 -1
- package/docs/patterns/components-chart--audience-activity-heatmap.tsx +1 -1
- package/docs/patterns/components-chart--cartesian-no-data-gaps.tsx +1 -1
- package/docs/patterns/components-chart--occupancy-history-in-card.tsx +1 -1
- package/docs/patterns/components-chart--occupancy-in-card.tsx +1 -1
- package/docs/patterns/components-chart--post-reach-distribution.tsx +1 -1
- package/docs/patterns/components-chart--ranked-audience-breakdown.tsx +1 -1
- package/docs/patterns/components-chart--revenue-by-line.tsx +1 -1
- package/docs/patterns/components-chart--segmented-ring-pattern.tsx +1 -1
- package/docs/patterns/components-chart--unit-grid-composition.tsx +1 -1
- package/docs/patterns/components-chatdock--pattern-chat-dock.tsx +1 -1
- package/docs/patterns/components-chatdock--pattern-start-project-gate.tsx +1 -1
- package/docs/patterns/components-chatqa--pattern-qa-with-reply.tsx +1 -1
- package/docs/patterns/components-checkbox-checkbox--default.tsx +1 -1
- package/docs/patterns/components-checkbox-checkbox--with-count.tsx +1 -1
- package/docs/patterns/components-checkbox-checkbox--with-description.tsx +1 -1
- package/docs/patterns/components-checkbox-checkboxgroup--default.tsx +1 -1
- package/docs/patterns/components-checkbox-checkboxgroup--option-counts.tsx +1 -1
- package/docs/patterns/components-copyfield--clipboard-blocked.tsx +1 -1
- package/docs/patterns/components-copyfield--copied.tsx +1 -1
- package/docs/patterns/components-copyfield--copy-key.tsx +1 -1
- package/docs/patterns/components-copyfield--on-navy.tsx +1 -1
- package/docs/patterns/components-descriptionlist--details.tsx +1 -1
- package/docs/patterns/components-descriptionlist--post-metadata.tsx +1 -1
- package/docs/patterns/components-dialog--alert-dialog-destructive.tsx +1 -1
- package/docs/patterns/components-dialog--alert-dialog-typed-confirmation.tsx +1 -1
- package/docs/patterns/components-dialog--default-dialog.tsx +1 -1
- package/docs/patterns/components-dialog--form-dialog.tsx +1 -1
- package/docs/patterns/components-displaycontrols--page-utilities.tsx +1 -1
- package/docs/patterns/components-displaycontrols--theme-switch.tsx +1 -1
- package/docs/patterns/components-field--horizontal-input.tsx +1 -1
- package/docs/patterns/components-field--horizontal-text-area.tsx +1 -1
- package/docs/patterns/components-field--multi-control.tsx +1 -1
- package/docs/patterns/components-filterpanel--panel.tsx +1 -1
- package/docs/patterns/components-footerreveal--marketing-hero-pattern.tsx +6 -6
- package/docs/patterns/components-footerreveal--marketing-hero-ruled-pattern.tsx +2 -2
- package/docs/patterns/components-footerreveal--marketing-hero-with-gallery-intro.tsx +6 -6
- package/docs/patterns/components-footerreveal--marketing-page-pattern.tsx +5 -5
- package/docs/patterns/components-footerreveal--ruled-grid-footer-pattern.tsx +2 -2
- package/docs/patterns/components-footerreveal--sequenced-marketing-hero.tsx +5 -5
- package/docs/patterns/components-herointro--two-line-intro.tsx +3 -3
- package/docs/patterns/components-herointro--with-actions.tsx +22 -0
- package/docs/patterns/components-herotilestack--marketing-hero-pattern.tsx +3 -3
- package/docs/patterns/components-herotilestack--marketing-hero-text-sequence.tsx +2 -2
- package/docs/patterns/components-herotilestack--marketing-hero-with-gallery-intro.tsx +3 -3
- package/docs/patterns/components-indexlist--post-index.tsx +1 -1
- package/docs/patterns/components-intakeconfirmation--booked-pattern.tsx +1 -1
- package/docs/patterns/components-intakeconfirmation--emailed-pattern.tsx +1 -1
- package/docs/patterns/components-intakeform--about-you-pattern.tsx +1 -1
- package/docs/patterns/components-intakeform--short-form-pattern.tsx +1 -1
- package/docs/patterns/components-intakemodal--intake-modal-pattern.tsx +1 -1
- package/docs/patterns/components-kbd--command-row.tsx +1 -1
- package/docs/patterns/components-kbd--numbered-choices.tsx +1 -1
- package/docs/patterns/components-kbd--shortcut.tsx +1 -1
- package/docs/patterns/components-linktile--resource-tile.tsx +2 -2
- package/docs/patterns/components-linktile--router-link.tsx +1 -1
- package/docs/patterns/components-logview--detail-pane.tsx +1 -1
- package/docs/patterns/components-logview--log-viewer.tsx +1 -1
- package/docs/patterns/components-moremenu--action-menu.tsx +1 -1
- package/docs/patterns/components-moremenu--in-card-header.tsx +1 -1
- package/docs/patterns/components-navlist--app-sidebar.tsx +1 -1
- package/docs/patterns/components-navlist--side-nav-settings.tsx +1 -1
- package/docs/patterns/components-pageheader--app-header-pattern.tsx +1 -1
- package/docs/patterns/components-pageheader--page-section-header.tsx +1 -1
- package/docs/patterns/components-pageheader--toolbar-header.tsx +1 -1
- package/docs/patterns/components-panel--end-detail-rail.tsx +1 -1
- package/docs/patterns/components-pillgroup--pill-group-pattern.tsx +1 -1
- package/docs/patterns/components-promptbar--pattern-prompt-bar.tsx +1 -1
- package/docs/patterns/components-prose--article-body.tsx +1 -1
- package/docs/patterns/components-radio-radiogroup--default.tsx +1 -1
- package/docs/patterns/components-scrollhorizontal--project-gallery-pattern.tsx +1 -1
- package/docs/patterns/components-scrollhorizontal--with-intro.tsx +1 -1
- package/docs/patterns/components-sectioncaption--column-caption.tsx +1 -1
- package/docs/patterns/components-sectioncaption--with-action.tsx +1 -1
- package/docs/patterns/components-sheet--bottom-sheet.tsx +1 -1
- package/docs/patterns/components-sheet--end-sheet.tsx +1 -1
- package/docs/patterns/components-sheet--side-sheet-header-actions.tsx +1 -1
- package/docs/patterns/components-sheet--side-sheet-url-deep-link.tsx +1 -1
- package/docs/patterns/components-sheet--side-sheet.tsx +1 -1
- package/docs/patterns/components-sitenav--brand-and-cta.tsx +1 -1
- package/docs/patterns/components-sitenav--centered-links.tsx +1 -1
- package/docs/patterns/components-sitenav--compact.tsx +1 -1
- package/docs/patterns/components-sitenav--marketing-header.tsx +2 -1
- package/docs/patterns/components-sitenav--mega-menu.tsx +1 -1
- package/docs/patterns/components-stat--hero-stat.tsx +1 -1
- package/docs/patterns/components-stat--insights-row.tsx +1 -1
- package/docs/patterns/components-stepprogress--step-progress-pattern.tsx +1 -1
- package/docs/patterns/components-switch--default.tsx +1 -1
- package/docs/patterns/components-switch--settings-row.tsx +1 -1
- package/docs/patterns/components-tab--settings-pages.tsx +1 -1
- package/docs/patterns/components-table--approvals-with-sheet.tsx +1 -1
- package/docs/patterns/components-table--approvals.tsx +3 -3
- package/docs/patterns/components-table--basic.tsx +1 -1
- package/docs/patterns/components-taskrows--action-details.tsx +1 -1
- package/docs/patterns/components-taskrows--capsules.tsx +1 -1
- package/docs/patterns/components-taskrows--card-with-status-rows.tsx +1 -1
- package/docs/patterns/components-taskrows--controlled-expand.tsx +1 -1
- package/docs/patterns/components-taskrows--custom-slots.tsx +1 -1
- package/docs/patterns/components-taskrows--needs-you-table.tsx +1 -1
- package/docs/patterns/components-taskrows--status-list.tsx +1 -1
- package/docs/patterns/components-taskrows--tag-chips.tsx +1 -1
- package/docs/patterns/components-textarea--save-status.tsx +1 -1
- package/docs/patterns/components-textlink--external-destination.tsx +1 -1
- package/docs/patterns/components-textlink--inline-prose.tsx +1 -1
- package/docs/patterns/components-textlink--quiet-title.tsx +1 -1
- package/docs/patterns/components-textlink--supporting-copy.tsx +1 -1
- package/docs/patterns/components-textsequence--default.tsx +1 -1
- package/docs/patterns/components-textsequence--reduced-motion.tsx +1 -1
- package/docs/patterns/components-textsequence--shapes.tsx +2 -2
- package/docs/patterns/components-tilegrid--masonry.tsx +2 -2
- package/docs/patterns/components-toast--stacked-notifications.tsx +1 -1
- package/docs/patterns/components-tooltip--controlled.tsx +1 -1
- package/docs/patterns/components-tooltip--disabled-control.tsx +1 -1
- package/docs/patterns/components-tooltip--icon-action.tsx +1 -1
- package/docs/patterns/components-tooltip--keyboard-shortcut.tsx +1 -1
- package/docs/patterns/components-tooltip--placement.tsx +1 -1
- package/docs/patterns/foundations-scroll-fade--horizontal-rail.tsx +1 -1
- package/docs/patterns/foundations-scroll-fade--overflowing-list.tsx +1 -1
- package/docs/patterns/guides-chart-explorations--comparison-gallery.tsx +1 -1
- package/docs/patterns/guides-filter-panel--filtered-grid.tsx +4 -4
- package/docs/patterns/guides-filter-panel--filtered-index.tsx +3 -3
- package/docs/patterns/guides-overlay-flows--notification-preferences.tsx +1 -1
- package/docs/patterns/guides-post-page--post-page.tsx +3 -3
- package/docs/patterns/guides-profile-typography--editorial-profile.tsx +6 -6
- package/docs/patterns/guides-resource-detail--detail.tsx +2 -2
- package/docs/patterns/index.json +9 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,71 @@ Every release of `@thewhatmatters/wmds` is listed here, newest first.
|
|
|
7
7
|
- **Pasted patterns:** when a release changes a **Pattern — …** story's Show code, it is named under Consumer actions so apps re-copy it.
|
|
8
8
|
- **How to add an entry** (contributors): add your change to the top entry. If that version is already on npm (`npm view @thewhatmatters/wmds versions`), start a new entry above it and bump `version` in `package.json` to match. `npm run check:changelog` enforces the format.
|
|
9
9
|
|
|
10
|
+
## 0.4.31
|
|
11
|
+
|
|
12
|
+
**SiteNav's phone menu follows the Header rule: a "Menu" button that becomes "Close", a full-height panel under the bar, and a link tap closes it.**
|
|
13
|
+
|
|
14
|
+
- **HeroIntro** `actions` (new): the CTA row under the heading and description, one primary and an optional secondary (Hero rule R2); left on phones, centred from `md`. New story **Pattern — with description and actions**. Story copy is shorter, so the intro holds 3 lines at 390: "A design studio in Austin. / We help brands stand out online." (**HeroIntro**, **HeroTileStack**, **FooterReveal** stories).
|
|
15
|
+
- **SiteNav** `mobile` menu (below `md`), rebuilt to Header and mobile menu rules N5–N8:
|
|
16
|
+
- The trigger is a **Button** with an icon and a visible word, "☰ Menu", that becomes "✕ Close" in the same place (QA #28). The word is the accessible name (was an icon-only button named "Open menu" / "Close menu"). At least 44px tall.
|
|
17
|
+
- The menu opens as a full-height panel **under the bar**, not a side **Sheet**. The bar stays live, so Close sits where Menu was. The panel is a dialog: focus moves to its first link, Tab cycles through the bar and the panel, the page behind is inert and doesn't scroll, Escape or Close closes it, and focus returns to Menu. It closes when the window widens past `md`.
|
|
18
|
+
- **Tapping any link in the menu closes it** (QA #25; it used to stay open over the page).
|
|
19
|
+
- **SiteNav.MobileLink** rows are 56px and full width. The current page is marked by weight and the selected fill plus `aria-current="page"`, not colour alone.
|
|
20
|
+
- `mobileAction` (new): the main action, pinned to the bottom of the open menu.
|
|
21
|
+
- With `mobile`, the bar's `end` actions give way when brand + actions + Menu don't fit (measured, not a fixed width), so Menu keeps its word; `mobileAction` carries the main button there. Below `md` the actions and Menu sit at the trailing edge.
|
|
22
|
+
- `mobileTitle` is now a string (the dialog's accessible name).
|
|
23
|
+
- New interaction tests **Internal/Interactions/SiteNav → phone menu…** (390), **phone menu at 320** (N7) and **phone bar: trailing edge**.
|
|
24
|
+
- **SiteNav** full bar: a wordmark **SiteNav.Brand** and the Menu button pull their own 16px padding past the edges, so the wordmark and the Menu word line up with the content edges (hit areas unchanged; the compact pill keeps its padding). The bar's give-way check measures the slots' margin boxes instead of `scrollWidth`, so that pull doesn't hide a CTA that fits: "Get my free sketch" stays in the bar from 390 (N9). The Menu/Close button is quiet in both states (ghost hover and press fill only). While the phone menu is open, the bar's actions hide, so the menu's own action is the one CTA on screen. New interaction test **phone bar: wordmark and Menu word sit on the content edges**.
|
|
25
|
+
- **Breakpoints rule P5:** every `sm:` (640px) variant in WMDS moves to `md:` (768px): **Field** label column, **TileGrid** `--tile-grid-cols-sm` (now from `md`), **Breadcrumb** gap and label width, **FooterReveal** wordmark size, **Carousel** `--carousel-item-sm` and caption width, the Post page / Resource detail / Filter panel / Profile typography guides, and story Show code. Layout changes only between 640 and 767px, where these now keep their phone layout. New unit test: no `sm:` and no one-off `min-[…]` / `max-[…]` breakpoints anywhere in `src`.
|
|
26
|
+
- `lib/dialogOverlay` exports `tabbablesIn` and `inertAllBut` (internal helpers, also used by SiteNav).
|
|
27
|
+
- **ChatDock**: its 40rem chat column is documented as the text-only exception to Container width W5.
|
|
28
|
+
|
|
29
|
+
### Consumer actions
|
|
30
|
+
|
|
31
|
+
If you pass `mobile` to **SiteNav**, also pass `mobileAction` (usually the same **Button** as your bar CTA) so small phones still reach it when the bar is too tight for it. Keep the bar's CTA label short (about 12 characters) so it fits beside Menu at 390. Tests that find the trigger by `aria-label="Open menu"` now find it by its text, `getByRole("button", { name: "Menu" })`, and the open menu is a `dialog` named by `mobileTitle` (default "Menu"). `mobileTitle` must be a string. Re-copy any **Pattern** whose Show code used `sm:` (the generated `docs/patterns` show which changed). `--tile-grid-cols-sm` and `--carousel-item-sm` keep their names but now apply from 768px.
|
|
32
|
+
|
|
33
|
+
## 0.4.30
|
|
34
|
+
|
|
35
|
+
**Capitals are tracked 0.08–0.12em (Eyebrow rule E3).**
|
|
36
|
+
|
|
37
|
+
- **HeroIntro** is left-aligned on phones, where it runs 3+ lines, and centred from `md` (Headings H8). The default step's heading now spans columns 2–11 from `lg` (was 4–9), so a 12-word intro holds 2 lines; `description` keeps the 6-column measure (4–9). Story copy is 12 words or fewer ("A design studio in Austin, Texas. / We help brands stand out online.") across **HeroIntro**, **HeroTileStack** and **FooterReveal** stories.
|
|
38
|
+
- **`type-lead`, `type-large`, `type-body` and `type-reading`** set `text-wrap: pretty`, so a lone word doesn't end a paragraph.
|
|
39
|
+
- **HeroIntro** `lead` is renamed **`firstLine`** (it's the heading's first line, not a lead paragraph). `lead` still works as a deprecated alias and warns in development. New optional **`description`**: a lead paragraph under the heading, `type-lead` in ink (Lead rules L7, L8). Story Show code updated: **Components/HeroIntro**, **Components/FooterReveal** and **Components/HeroTileStack** marketing hero patterns.
|
|
40
|
+
- **Accordion** `size` (new): `ui` (default, 14px muted panel text) or `reading` (17px regular in ink) for FAQ answers and service descriptions (Body rules B7, B9). New unit test.
|
|
41
|
+
- **IntakeConfirmation** body is `type-large` (regular), not `type-heading-2`: it's a paragraph (B4).
|
|
42
|
+
- **Guides/PostPage** lead sits in ink (was muted) and is shorter, about 2 lines at 390 (B9, L8).
|
|
43
|
+
- **Foundations/Typography** docs: `type-body` 14px is for app UI; marketing paragraphs use `type-large` or `type-reading` (B7); `type-reading` 1.65 is the long-form exception (B1).
|
|
44
|
+
- **`type-large` is regular weight (was semibold; Body rule B4, Randy 2026-10-26: "regular or lighter when it's 1.5rem and below").** `--text-large-weight` is a documented knob for a face that needs more weight.
|
|
45
|
+
- **`type-eyebrow`** tracking is **0.08em** (was 0.05em): `--text-eyebrow-tracking`. Affects **SectionCaption**, **IndexList** captions, **DescriptionList** `variant="mono"`, **FilterPanel** titles and anything on `typographyClass("eyebrow")`.
|
|
46
|
+
- **`typographyClass("overline")`** tracks 0.08em (was `tracking-wider`, 0.05em).
|
|
47
|
+
- **Badge** `mono` and **Button** `mono` track 0.12em (was 0.14em).
|
|
48
|
+
- Story Show code updated: **Components/FooterReveal → Marketing page pattern** (its column labels).
|
|
49
|
+
- New unit test: every uppercase class string in WMDS tracks 0.08–0.12em.
|
|
50
|
+
- **SectionCaption** `as` defaults to **`p`** (was `h2`): a caption in capitals is an eyebrow, not a heading (Headings H6, Eyebrow E6). It still names a region through `id` + `aria-labelledby`. **FilterPanel**'s "/ Filters" title and the post page's "/ Metadata" follow.
|
|
51
|
+
- **PageHeader** `as` (new): `h1` / `h2` / `h3`, so the title's level follows the page outline (Headings H1). Defaults are unchanged (`app` → `h1`, `page` → `h2`).
|
|
52
|
+
- New interaction test **Internal/Interactions/Heading levels**.
|
|
53
|
+
- **Every display step** (`type-display-hero`, `-xl`, `-1`, `-2`, `-3`) sets `overflow-wrap: anywhere` (Display rule D5, WCAG 1.4.10): a long word breaks instead of widening its flex or grid track and scrolling a 320px page sideways. `type-display-hero` and `-xl` used `break-word`, which still overflowed inside flex and grid. Normal copy sets as before. New interaction test **Internal/Interactions/Display type**.
|
|
54
|
+
- **`type-lead`** (new, `typographyClass("lead")`): the one paragraph under a page's H1 that sums the page up (Lead paragraph rule L7). 18px on phones to 21px (`--text-lead-size`, about 1.25× the 17px reading body), regular weight, 1.45 leading; use it at the 42rem measure in `text-fg`. Nothing uses it yet, so nothing changes until you adopt it.
|
|
55
|
+
- **Button** and **IconButton** `disabled` stays in the tab order (Buttons rule U6): it sets `aria-disabled` instead of native `disabled`, ignores clicks, Enter and Space (a disabled submit button no longer submits its form, including on Enter in a field), and shows no hover or press feedback. Disabled dims to **70%** (was 50%), so every role's label keeps 3:1 against its fill in light and dark (unit test). **Button** `disabledReason` (new) shows why beside the button (`type-supporting`, muted) and is read with it through `aria-describedby`. `pressScaleClass` skips `aria-disabled`. Story **Components/Button/Button → Reference — disabled**; new interaction test **Internal/Interactions/Button disabled**.
|
|
56
|
+
- **Band** `spacing="lg"` is **64px on phones** and 96px from `md` (was 96px everywhere; Spacing rule S8). `md` stays 48px. A hero or closing band on a phone loses 32px above and below.
|
|
57
|
+
- **Button**, **LinkTile** and **SiteNav** menu links follow the same rule: `external` keeps the same tab (with the external icon on Button and LinkTile), and new **`newTab`** opts in to a new tab and the spoken hint. **PostPage** share links and **ResourceDetail** "Visit" now stay in the tab. **Minor behaviour change.**
|
|
58
|
+
- **TextLink** `external` opens in the **same tab** (was a new tab; Links K9). It still shows the external icon. New **`newTab`** opt-in sets `target="_blank"`, `rel="noopener noreferrer"` and adds "(opens in a new tab)" to the accessible name. **Minor behaviour change.**
|
|
59
|
+
- **FooterReveal** social links open in the same tab (were a new tab for `https`; K9) and are at least 24px wide (K6). `FooterRevealSocialLink` gains an optional **`ariaLabel`**. **FooterRevealRuled**'s email link no longer opens a new tab. Story hrefs are real-looking, and the X link is named "WhatMatters on X".
|
|
60
|
+
- **IconButton** docs: don't disable icon buttons (U6). Hide the action, or keep it enabled and explain on press. No reason slot was added.
|
|
61
|
+
- **Button** `role` docs: on a page background the secondary level is `outline` (U1/U4). The filled `secondary` pill doesn't reach 3:1 against the page (logged as a gap; no visual change in this release).
|
|
62
|
+
- **SiteNav** docs record the **K7 navigation exception**: nav links have no underline; hover shows the ghost pill and darker ink, and the focus ring stays.
|
|
63
|
+
- **Breadcrumb** link crumbs are 24px tall targets (were 20px; Links rule K6, WCAG 2.5.8). Padding plus an equal negative margin, so the row does not move; the focus ring is 2px taller. New interaction test **Internal/Interactions/Link targets**.
|
|
64
|
+
- **Display type (Rule 3, D1/D2):** `type-display-1` leading **1.05** (was 1.15) and tracking **−0.03em** (was −0.04em); `type-display-2` **1.1** (was 1.2), new `--text-display-2-tracking` **−0.02em**; `type-display-3` **1.15** (was 1.24), new `--text-display-3-tracking` **−0.01em**; `type-display-hero` tracking **−0.03em** (was −0.04em). `--font-display-tracking` still overrides every step for a caps face. New unit test.
|
|
65
|
+
- **FooterReveal** headline is `type-heading-1` (was `type-display-1`): the fitted wordmark is the footer's one display moment (D9). The wordmark stays hidden from screen readers and is exempt from D1/D2 as a logo graphic.
|
|
66
|
+
- **Foundations/Typography** docs: heading steps sit two apart on the 1.2× ramp (≥ 1.25× between levels, Headings H7); an eyebrow and its heading are one spacing unit (H4, E5). The ramp is unchanged.
|
|
67
|
+
- **FooterReveal** sample headline is sentence case, "We build WhatMatters" (was Title Case; Headings H6). Show code changed in **Components/FooterReveal → Marketing page pattern**, **Marketing hero pattern**, **Marketing hero with gallery intro** and **Sequenced marketing hero**.
|
|
68
|
+
|
|
69
|
+
### Consumer actions
|
|
70
|
+
|
|
71
|
+
Re-copy the four **Components/FooterReveal** patterns named above if you pasted them (and write your own headline in sentence case). In your own code, give uppercase text `tracking-[0.08em]` (or use `type-eyebrow`) instead of `tracking-wider`. Labels are slightly wider; check eyebrows and mono badges at 390. A **SectionCaption** that should stay in the heading outline needs `as="h2"`; a test that finds it with `getByRole("heading")` now needs `getByText`. If your app sets subtext in `type-large` and wants the old weight, set `--text-large-weight: 600`. **HeroIntro:** rename `lead=` to `firstLine=` (re-copy the FooterReveal and HeroTileStack hero patterns); `lead` keeps working until a later release. **Disabled buttons are now focusable** (`aria-disabled`): a test that used `toBeDisabled()` on a WMDS Button or IconButton needs `toHaveAttribute("aria-disabled", "true")`, and code that read `button.disabled` reads `aria-disabled`. Prefer an enabled button plus an error on submit; when you keep one disabled, pass `disabledReason`.
|
|
72
|
+
|
|
73
|
+
If a **TextLink**, **Button**, **LinkTile** or **SiteNav** menu link with `external` must keep opening a new tab, add `newTab`. Give a one-letter FooterReveal social label an `ariaLabel`.
|
|
74
|
+
|
|
10
75
|
## 0.4.29
|
|
11
76
|
|
|
12
77
|
**SiteNav's phone menu button says what it does.**
|
package/CONSUMING.md
CHANGED
|
@@ -342,6 +342,7 @@ A client's brand on WMDS is a short `brand.css` (imported after `styles.css`, un
|
|
|
342
342
|
| Knob | Default | Reads it |
|
|
343
343
|
|------|---------|----------|
|
|
344
344
|
| `--font-family-heading` | Geist | `type-heading-*`, and every display step when `--font-display` is unset |
|
|
345
|
+
| `--text-large-weight` | `400` (regular) | `type-large` subtext. Body and subtext at 1.5rem and below stay regular or lighter; raise it only for a face that reads too thin |
|
|
345
346
|
| `--font-display` | unset (the heading face) | every `type-display-*` step (`hero`, `xl`, `1`, `2`, `3`) |
|
|
346
347
|
| `--font-display-weight` | each step's own (700 / 600) | display steps: set `400` for a one-weight face, so nothing is faux-bolded |
|
|
347
348
|
| `--font-display-tracking` | each step's own | display steps: `0` for a condensed face |
|
|
@@ -355,7 +356,7 @@ A client's brand on WMDS is a short `brand.css` (imported after `styles.css`, un
|
|
|
355
356
|
|
|
356
357
|
The font knobs also work on a section wrapper (`[--font-display:…]`); set the colour pairs on `:root` (and `[data-theme="dark"]` if they differ there). Load the face yourself (`next/font` or `@fontsource/*`).
|
|
357
358
|
|
|
358
|
-
**Display steps:** `type-display-hero` (fluid to 16vw, 0.92 leading) and `type-display-xl` (44px → 136px, 0.9 leading) sit above `type-display-1`;
|
|
359
|
+
**Display steps:** `type-display-hero` (fluid to 16vw, 0.92 leading) and `type-display-xl` (44px → 136px, 0.9 leading) sit above `type-display-1`; every display step breaks a long word rather than overflow a phone (`overflow-wrap: anywhere`, also inside flex and grid). **TextSequence** word masks keep 0.08em headroom above and to the sides, so tall caps and outline strokes aren't clipped.
|
|
359
360
|
|
|
360
361
|
**Contrast:** every on-colour and muted step needs **4.5:1** on its colour. `npx wmds-check` reads the app's CSS and fails a hex pair under that (`brand-contrast`, an error). Pairs it can't resolve (a `var()` or `color-mix`) aren't checked, so check those yourself.
|
|
361
362
|
|
|
@@ -58,7 +58,7 @@ function T({ children: a, variant: h = "neutral", size: _ = "sm", emphasis: x =
|
|
|
58
58
|
}) : /* @__PURE__ */ b(w, {
|
|
59
59
|
render: E,
|
|
60
60
|
id: N,
|
|
61
|
-
className: e(r, V, R ? p[_] : L ? n[_] : l[_], !R && z && o[_], T && "!font-mono !text-[length:var(--font-size-sm)] !font-normal !uppercase !tracking-[0.
|
|
61
|
+
className: e(r, V, R ? p[_] : L ? n[_] : l[_], !R && z && o[_], T && "!font-mono !text-[length:var(--font-size-sm)] !font-normal !uppercase !tracking-[0.12em]", E != null && c, E != null && x === "outline" && "hover:border-fg", P),
|
|
62
62
|
"data-variant": h,
|
|
63
63
|
"data-size": _,
|
|
64
64
|
"data-emphasis": R ? "muted" : x,
|
|
@@ -32,7 +32,7 @@ export declare const badgeMutedClasses: Record<BadgeVariant, string>;
|
|
|
32
32
|
export declare const badgeOutlineClasses: Record<BadgeVariant, string>;
|
|
33
33
|
export declare function badgeSurfaceClasses(variant: BadgeVariant, emphasis: BadgeEmphasis): string;
|
|
34
34
|
/** Mono uppercase label — the same face, size, and tracking as **Button** `mono`. `!` beats the sans medium shell. */
|
|
35
|
-
export declare const badgeMonoClasses = "!font-mono !text-[length:var(--font-size-sm)] !font-normal !uppercase !tracking-[0.
|
|
35
|
+
export declare const badgeMonoClasses = "!font-mono !text-[length:var(--font-size-sm)] !font-normal !uppercase !tracking-[0.12em]";
|
|
36
36
|
/**
|
|
37
37
|
* A badge composed onto a link (`render`): an underline on hover, the hairline darkens on an
|
|
38
38
|
* outline badge, the focus ring, and a 44px-tall hit area around the 20–24px pill.
|
|
@@ -56,7 +56,7 @@ var r = [
|
|
|
56
56
|
function h(e, t) {
|
|
57
57
|
return t === "outline" ? m[e] : t === "muted" ? p[e] : f[e];
|
|
58
58
|
}
|
|
59
|
-
var g = "!font-mono !text-[length:var(--font-size-sm)] !font-normal !uppercase !tracking-[0.
|
|
59
|
+
var g = "!font-mono !text-[length:var(--font-size-sm)] !font-normal !uppercase !tracking-[0.12em]", _ = e("relative cursor-pointer decoration-1 underline-offset-2 hover:underline", "after:absolute after:inset-x-0 after:top-1/2 after:h-11 after:-translate-y-1/2 after:content-['']", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-focus-ring focus-visible:ring-offset-2 focus-visible:ring-offset-body", "transition-[border-color,text-decoration-color]", n("fast")), v = "hover:border-fg", y = {
|
|
60
60
|
sm: "h-5 rounded-[var(--radius-control)] px-2 text-xs leading-none",
|
|
61
61
|
md: "h-6 rounded-[var(--radius-control)] px-2.5 text-sm leading-none"
|
|
62
62
|
}, b = {
|
|
@@ -8,7 +8,7 @@ export interface BandProps {
|
|
|
8
8
|
children: ReactNode;
|
|
9
9
|
/** `default` keeps the page's colours; `inverse` (brand surface) and `field` re-skin everything inside. */
|
|
10
10
|
tone?: BandTone;
|
|
11
|
-
/** Space above and below the content: `md` (default) 48px, `lg` 96px
|
|
11
|
+
/** Space above and below the content: `md` (default) 48px, `lg` 64px on phones → 96px from `md`, `none`. */
|
|
12
12
|
spacing?: BandSpacing;
|
|
13
13
|
/** The band element. Default: `section`. */
|
|
14
14
|
as?: BandElement;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Band.d.ts","sourceRoot":"","sources":["../../../../src/components/atoms/Band/Band.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvD,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,QAAQ,EACd,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,QAAQ,GACd,MAAM,cAAc,CAAC;AAEtB,iEAAiE;AACjE,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAEzC,MAAM,WAAW,SAAS;IACxB,uGAAuG;IACvG,QAAQ,EAAE,SAAS,CAAC;IACpB,2GAA2G;IAC3G,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,
|
|
1
|
+
{"version":3,"file":"Band.d.ts","sourceRoot":"","sources":["../../../../src/components/atoms/Band/Band.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvD,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,QAAQ,EACd,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,QAAQ,GACd,MAAM,cAAc,CAAC;AAEtB,iEAAiE;AACjE,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAEzC,MAAM,WAAW,SAAS;IACxB,uGAAuG;IACvG,QAAQ,EAAE,SAAS,CAAC;IACpB,2GAA2G;IAC3G,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,4GAA4G;IAC5G,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,4CAA4C;IAC5C,EAAE,CAAC,EAAE,WAAW,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC;IAC5C,iBAAiB,CAAC,EAAE,cAAc,CAAC,iBAAiB,CAAC,CAAC;IACtD,SAAS,CAAC,EAAE,mBAAmB,CAAC;CACjC;AAED;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,EACnB,QAAQ,EACR,IAAgB,EAChB,OAAc,EACd,EAAE,EAAE,OAAmB,EACvB,EAAE,EACF,YAAY,EAAE,SAAS,EACvB,iBAAiB,EAAE,cAAc,EACjC,SAAS,GACV,EAAE,SAAS,+BAeX"}
|
|
@@ -5,7 +5,10 @@ export declare const bandTones: readonly ["default", "inverse", "field"];
|
|
|
5
5
|
*/
|
|
6
6
|
export type BandTone = (typeof bandTones)[number];
|
|
7
7
|
export declare const bandSpacings: readonly ["md", "lg", "none"];
|
|
8
|
-
/**
|
|
8
|
+
/**
|
|
9
|
+
* Space above and below the content (Spacing rule S8): `md` (default) 48px at every width, `lg` 64px on
|
|
10
|
+
* phones and 96px from `md` (the hero and the closing section), `none` 0.
|
|
11
|
+
*/
|
|
9
12
|
export type BandSpacing = (typeof bandSpacings)[number];
|
|
10
13
|
export declare const bandElements: readonly ["section", "div", "header", "footer", "aside"];
|
|
11
14
|
export type BandElement = (typeof bandElements)[number];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bandStyles.d.ts","sourceRoot":"","sources":["../../../../src/components/atoms/Band/bandStyles.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,0CAA2C,CAAC;AAElE;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAElD,eAAO,MAAM,YAAY,+BAAgC,CAAC;AAE1D
|
|
1
|
+
{"version":3,"file":"bandStyles.d.ts","sourceRoot":"","sources":["../../../../src/components/atoms/Band/bandStyles.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,0CAA2C,CAAC;AAElE;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAElD,eAAO,MAAM,YAAY,+BAAgC,CAAC;AAE1D;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAExD,eAAO,MAAM,YAAY,0DAA2D,CAAC;AAErF,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAExD;;;GAGG;AACH,eAAO,MAAM,WAAW,6CAA6C,CAAC;AAEtE,mFAAmF;AACnF,eAAO,MAAM,eAAe,oBAAoB,CAAC;AAEjD,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAI1D,CAAC"}
|
|
@@ -16,7 +16,7 @@ var e = [
|
|
|
16
16
|
"aside"
|
|
17
17
|
], r = "relative col-[1/-1] block w-full min-w-0", i = "grid-page !py-0", a = {
|
|
18
18
|
md: "py-[calc(var(--leading-base)*2)]",
|
|
19
|
-
lg: "py-[calc(var(--leading-base)*4)]",
|
|
19
|
+
lg: "py-[calc(var(--grid-baseline)*8)] md:py-[calc(var(--leading-base)*4)]",
|
|
20
20
|
none: ""
|
|
21
21
|
};
|
|
22
22
|
//#endregion
|
|
@@ -10,7 +10,11 @@ export type ButtonLayoutClassName = string;
|
|
|
10
10
|
export interface ButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, "children" | "className" | "role" | "size"> {
|
|
11
11
|
/** Button label. */
|
|
12
12
|
children: ReactNode;
|
|
13
|
-
/**
|
|
13
|
+
/**
|
|
14
|
+
* Action role — primary, secondary, ghost, destructive, inverse, outline, or inverse-outline (on-brand hairline). Default: `primary`.
|
|
15
|
+
* On a page background the secondary level is `outline` (a 3:1 edge, Buttons U1/U4); the filled `secondary` pill
|
|
16
|
+
* sits near 1:1 against the page.
|
|
17
|
+
*/
|
|
14
18
|
role?: ButtonRole;
|
|
15
19
|
/** `pill` (default) or `row` — flat full-width lines for detail / settings rows. */
|
|
16
20
|
layout?: ButtonLayout;
|
|
@@ -30,7 +34,16 @@ export interface ButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement
|
|
|
30
34
|
*/
|
|
31
35
|
emphasis?: ButtonEmphasis;
|
|
32
36
|
size?: ButtonSize;
|
|
37
|
+
/**
|
|
38
|
+
* Disabled (Buttons rule U6): stays in the tab order (`aria-disabled`), ignores presses, dims to 70%
|
|
39
|
+
* with no hover or press feedback. Prefer an enabled button that explains the error on submit.
|
|
40
|
+
*/
|
|
33
41
|
disabled?: boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Why it's disabled, shown beside the button (`type-supporting`, muted) and read with it
|
|
44
|
+
* (`aria-describedby`). Renders only while `disabled`. Pill, row and nav layouts.
|
|
45
|
+
*/
|
|
46
|
+
disabledReason?: ReactNode;
|
|
34
47
|
type?: "button" | "submit" | "reset";
|
|
35
48
|
/**
|
|
36
49
|
* Async / submit morph — whole pill animates idle → loading → success → error.
|
|
@@ -65,11 +78,16 @@ export interface ButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement
|
|
|
65
78
|
*/
|
|
66
79
|
render?: ReactElement;
|
|
67
80
|
/**
|
|
68
|
-
* With `render={<a href />}` to another site:
|
|
69
|
-
*
|
|
81
|
+
* With `render={<a href />}` to another site: shows the trailing external icon **TextLink** uses and
|
|
82
|
+
* opens in the same tab (Links K9). Add `newTab` to open a new tab.
|
|
70
83
|
*/
|
|
71
84
|
external?: boolean;
|
|
72
|
-
/**
|
|
85
|
+
/**
|
|
86
|
+
* `external` only — opt in to a new tab (`target="_blank"`, a safe `rel`); adds "(opens in a new tab)"
|
|
87
|
+
* to the accessible name. Only when leaving would lose the reader's work.
|
|
88
|
+
*/
|
|
89
|
+
newTab?: boolean;
|
|
90
|
+
/** `external` only — `false` drops the trailing icon. */
|
|
73
91
|
externalIcon?: boolean;
|
|
74
92
|
/** Layout-only: width, margin, flex placement. */
|
|
75
93
|
className?: ButtonLayoutClassName;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../../src/components/atoms/Button/Button.tsx"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../../src/components/atoms/Button/Button.tsx"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,YAAY,EACjB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAKf,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAgBL,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,WAAW,EACjB,MAAM,gBAAgB,CAAC;AAExB,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACrH,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACxG,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEpG,sEAAsE;AACtE,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAE3C,MAAM,WAAW,WACf,SAAQ,IAAI,CACV,oBAAoB,CAAC,iBAAiB,CAAC,EACvC,UAAU,GAAG,WAAW,GAAG,MAAM,GAAG,MAAM,CAC3C;IACD,oBAAoB;IACpB,QAAQ,EAAE,SAAS,CAAC;IACpB;;;;OAIG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,oFAAoF;IACpF,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB;;;OAGG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB;;;OAGG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB;;;OAGG;IACH,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IACrC;;;;;OAKG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;IACrD,+EAA+E;IAC/E,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gHAAgH;IAChH,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,oFAAoF;IACpF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;OAGG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,sFAAsF;IACtF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,yDAAyD;IACzD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kDAAkD;IAClD,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IACrD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAoHD,eAAO,MAAM,MAAM,2GAkMjB,CAAC"}
|
|
@@ -1,177 +1,185 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { cn as e } from "../../../lib/cn.js";
|
|
3
3
|
import { ButtonBadge as t } from "./ButtonBadge.js";
|
|
4
|
-
import { buttonAlignClasses as n, buttonAligns as r, buttonBaseClasses as i, buttonEmphases as a, buttonEndIconSquareClasses as o, buttonExternalIconClasses as
|
|
5
|
-
import { ButtonIcon as
|
|
6
|
-
import { buttonStatusHoldMs as
|
|
7
|
-
import { ButtonStatusButton as
|
|
8
|
-
import { forwardRef as
|
|
9
|
-
import { SquareArrowOutUpRight as
|
|
10
|
-
import { jsx as
|
|
11
|
-
import { useRender as
|
|
4
|
+
import { buttonAlignClasses as n, buttonAligns as r, buttonBaseClasses as i, buttonDisabledReasonClasses as ee, buttonEmphases as a, buttonEndIconSquareClasses as o, buttonExternalIconClasses as te, buttonLayouts as s, buttonMonoLabelClasses as ne, buttonNavLayoutClasses as re, buttonNavStateClasses as ie, buttonOutlineQuietClasses as c, buttonPillClass as l, buttonRoleClasses as u, buttonRoles as d, buttonRowBaseClasses as f, buttonRowLayoutClasses as p, buttonRowWidthClasses as ae, buttonSizeClasses as oe, buttonWidths as m } from "./buttonStyles.js";
|
|
5
|
+
import { ButtonIcon as h } from "./ButtonIcon.js";
|
|
6
|
+
import { buttonStatusHoldMs as g, defaultStatusLabels as _, getNextButtonStatus as v } from "./buttonStatusStyles.js";
|
|
7
|
+
import { ButtonStatusButton as se } from "./ButtonStatusButton.js";
|
|
8
|
+
import { forwardRef as y, useId as ce } from "react";
|
|
9
|
+
import { SquareArrowOutUpRight as b } from "lucide-react";
|
|
10
|
+
import { Fragment as x, jsx as S, jsxs as C } from "react/jsx-runtime";
|
|
11
|
+
import { useRender as w } from "@base-ui/react/use-render";
|
|
12
12
|
//#region src/components/atoms/Button/Button.tsx
|
|
13
|
-
function
|
|
13
|
+
function T(e) {
|
|
14
14
|
e.external && (e.render == null || e.layout !== "pill") && console.warn("[WMDS Button] `external` needs `render={<a href />}` on a pill button."), e.external && e.endIcon != null && console.warn("[WMDS Button] `external` is mutually exclusive with `endIcon`."), e.width != null && e.layout !== "row" && console.warn("[WMDS Button] `width` applies to `layout=\"row\"` only."), e.align != null && (e.layout === "row" || e.layout === "nav") && console.warn("[WMDS Button] `align` applies to pill buttons only."), e.emphasis != null && e.role !== "outline" && console.warn("[WMDS Button] `emphasis` applies to `role=\"outline\"` only."), (e.layout === "row" || e.layout === "nav") && (e.status != null || e.icon != null || e.count != null || e.endIcon != null || e.mono) && console.warn(`[WMDS Button] \`layout="${e.layout}"\` is mutually exclusive with \`status\`, \`icon\`, \`count\`, \`endIcon\`, and \`mono\`.`), e.status != null && (e.count != null || e.endIcon != null || e.mono) && console.warn("[WMDS Button] `status` is mutually exclusive with `count`, `endIcon`, and `mono`."), e.endIcon != null && e.count != null && console.warn("[WMDS Button] `endIcon` is mutually exclusive with `count`."), e.render != null && (e.layout === "row" || e.status != null) && console.warn("[WMDS Button] `render` is supported on `layout=\"pill\"` and `layout=\"nav\"` without `status` only.");
|
|
15
15
|
}
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
function E(e) {
|
|
17
|
+
e.preventDefault(), e.stopPropagation();
|
|
18
|
+
}
|
|
19
|
+
var le = y(function({ render: e, type: t, disabled: n, ...r }, i) {
|
|
20
|
+
return w({
|
|
18
21
|
render: e,
|
|
19
22
|
ref: i,
|
|
20
23
|
defaultTagName: "button",
|
|
21
|
-
props:
|
|
24
|
+
props: {
|
|
22
25
|
...r,
|
|
26
|
+
...e ? null : { type: t },
|
|
23
27
|
"aria-disabled": n ? !0 : void 0,
|
|
24
28
|
"data-disabled": n ? "" : void 0,
|
|
25
|
-
|
|
26
|
-
} : {
|
|
27
|
-
...r,
|
|
28
|
-
type: t,
|
|
29
|
-
disabled: n
|
|
29
|
+
onClick: n ? E : r.onClick
|
|
30
30
|
}
|
|
31
31
|
});
|
|
32
|
-
}),
|
|
33
|
-
return
|
|
32
|
+
}), ue = y(function({ render: e, type: t, disabled: n, ...r }, i) {
|
|
33
|
+
return w({
|
|
34
34
|
render: e,
|
|
35
35
|
ref: i,
|
|
36
36
|
defaultTagName: "button",
|
|
37
|
-
props:
|
|
37
|
+
props: {
|
|
38
38
|
...r,
|
|
39
|
+
...e ? null : { type: t },
|
|
39
40
|
"aria-disabled": n ? !0 : void 0,
|
|
40
41
|
"data-disabled": n ? "" : void 0,
|
|
41
|
-
|
|
42
|
-
} : {
|
|
43
|
-
...r,
|
|
44
|
-
type: t,
|
|
45
|
-
disabled: n
|
|
42
|
+
onClick: n ? E : r.onClick
|
|
46
43
|
}
|
|
47
44
|
});
|
|
48
|
-
}),
|
|
49
|
-
|
|
50
|
-
status:
|
|
51
|
-
icon:
|
|
52
|
-
count:
|
|
53
|
-
layout:
|
|
54
|
-
render:
|
|
55
|
-
endIcon:
|
|
56
|
-
mono:
|
|
57
|
-
width:
|
|
58
|
-
align:
|
|
59
|
-
emphasis:
|
|
45
|
+
}), D = y(function({ children: r, role: a = "primary", layout: s = "pill", width: d, align: m, emphasis: g, size: _ = "md", disabled: v, disabledReason: y, type: w = "button", status: D, statusLabels: O, disableOnError: k, icon: A, count: j, mono: M = !1, endIcon: N, selected: P = !1, render: F, external: I = !1, newTab: L = !1, externalIcon: de = !0, className: R, onClick: z, "aria-label": B, "aria-pressed": V, "aria-keyshortcuts": H, id: U, name: W, form: G, ...K }, q) {
|
|
46
|
+
T({
|
|
47
|
+
status: D,
|
|
48
|
+
icon: A,
|
|
49
|
+
count: j,
|
|
50
|
+
layout: s,
|
|
51
|
+
render: F,
|
|
52
|
+
endIcon: N,
|
|
53
|
+
mono: M,
|
|
54
|
+
width: d,
|
|
55
|
+
align: m,
|
|
56
|
+
emphasis: g,
|
|
60
57
|
role: a,
|
|
61
|
-
external:
|
|
62
|
-
})
|
|
63
|
-
|
|
64
|
-
ref: Q,
|
|
65
|
-
status: k,
|
|
66
|
-
role: a,
|
|
67
|
-
size: S,
|
|
68
|
-
statusLabels: N,
|
|
69
|
-
icon: F,
|
|
70
|
-
disableOnError: P,
|
|
71
|
-
disabled: C,
|
|
72
|
-
className: U,
|
|
73
|
-
type: T,
|
|
74
|
-
onClick: W,
|
|
75
|
-
"aria-label": G,
|
|
76
|
-
"aria-pressed": K,
|
|
77
|
-
"aria-keyshortcuts": q,
|
|
58
|
+
external: I
|
|
59
|
+
});
|
|
60
|
+
let J = ce(), Y = !!v && y != null && D == null, X = [K["aria-describedby"], Y ? J : void 0].filter(Boolean).join(" ") || void 0, Z = (e) => Y ? /* @__PURE__ */ C(x, { children: [e, /* @__PURE__ */ S("span", {
|
|
78
61
|
id: J,
|
|
79
|
-
|
|
80
|
-
|
|
62
|
+
className: ee,
|
|
63
|
+
"data-disabled-reason": "",
|
|
64
|
+
children: y
|
|
65
|
+
})] }) : e;
|
|
66
|
+
if (D != null) return /* @__PURE__ */ S(se, {
|
|
67
|
+
...K,
|
|
68
|
+
ref: q,
|
|
69
|
+
status: D,
|
|
70
|
+
role: a,
|
|
71
|
+
size: _,
|
|
72
|
+
statusLabels: O,
|
|
73
|
+
icon: A,
|
|
74
|
+
disableOnError: k,
|
|
75
|
+
disabled: v,
|
|
76
|
+
className: R,
|
|
77
|
+
type: w,
|
|
78
|
+
onClick: z,
|
|
79
|
+
"aria-label": B,
|
|
80
|
+
"aria-pressed": V,
|
|
81
|
+
"aria-keyshortcuts": H,
|
|
82
|
+
id: U,
|
|
83
|
+
name: W,
|
|
84
|
+
form: G,
|
|
81
85
|
children: r
|
|
82
86
|
});
|
|
83
|
-
if (
|
|
84
|
-
...
|
|
85
|
-
ref:
|
|
86
|
-
type:
|
|
87
|
-
disabled:
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
"aria-
|
|
91
|
-
"aria-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
87
|
+
if (s === "row") return Z(/* @__PURE__ */ S("button", {
|
|
88
|
+
...K,
|
|
89
|
+
ref: q,
|
|
90
|
+
type: w,
|
|
91
|
+
"aria-disabled": v || void 0,
|
|
92
|
+
"data-disabled": v ? "" : void 0,
|
|
93
|
+
onClick: v ? E : z,
|
|
94
|
+
"aria-label": B,
|
|
95
|
+
"aria-pressed": V,
|
|
96
|
+
"aria-keyshortcuts": H,
|
|
97
|
+
"aria-describedby": X,
|
|
98
|
+
id: U,
|
|
99
|
+
name: W,
|
|
100
|
+
form: G,
|
|
101
|
+
className: e(f, u[a], p, ae[d ?? "fill"], R),
|
|
96
102
|
"data-role": a,
|
|
97
103
|
"data-layout": "row",
|
|
98
|
-
"data-width":
|
|
104
|
+
"data-width": d ?? "fill",
|
|
99
105
|
children: r
|
|
100
|
-
});
|
|
101
|
-
if (
|
|
102
|
-
...
|
|
103
|
-
ref:
|
|
104
|
-
render:
|
|
105
|
-
type:
|
|
106
|
-
disabled:
|
|
107
|
-
onClick:
|
|
108
|
-
"aria-label":
|
|
109
|
-
"aria-pressed":
|
|
110
|
-
"aria-keyshortcuts":
|
|
111
|
-
"aria-current":
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
106
|
+
}));
|
|
107
|
+
if (s === "nav") return Z(/* @__PURE__ */ S(le, {
|
|
108
|
+
...K,
|
|
109
|
+
ref: q,
|
|
110
|
+
render: F,
|
|
111
|
+
type: w,
|
|
112
|
+
disabled: v,
|
|
113
|
+
onClick: z,
|
|
114
|
+
"aria-label": B,
|
|
115
|
+
"aria-pressed": V,
|
|
116
|
+
"aria-keyshortcuts": H,
|
|
117
|
+
"aria-current": P ? "page" : void 0,
|
|
118
|
+
"aria-describedby": X,
|
|
119
|
+
id: U,
|
|
120
|
+
name: W,
|
|
121
|
+
form: G,
|
|
122
|
+
className: e(f, re, ie(P), R),
|
|
116
123
|
"data-role": a,
|
|
117
|
-
"data-size":
|
|
124
|
+
"data-size": _,
|
|
118
125
|
"data-layout": "nav",
|
|
119
|
-
"data-selected":
|
|
126
|
+
"data-selected": P ? "" : void 0,
|
|
120
127
|
children: r
|
|
121
|
-
});
|
|
122
|
-
let
|
|
123
|
-
return /* @__PURE__ */
|
|
124
|
-
...
|
|
128
|
+
}));
|
|
129
|
+
let Q = I && F != null, $ = Q && L;
|
|
130
|
+
return Z(/* @__PURE__ */ C(ue, {
|
|
131
|
+
...K,
|
|
125
132
|
...$ ? {
|
|
126
133
|
target: "_blank",
|
|
127
134
|
rel: "noopener noreferrer"
|
|
128
135
|
} : null,
|
|
129
|
-
ref:
|
|
130
|
-
render:
|
|
131
|
-
type:
|
|
132
|
-
disabled:
|
|
133
|
-
onClick:
|
|
134
|
-
"aria-label":
|
|
135
|
-
"aria-pressed":
|
|
136
|
-
"aria-keyshortcuts":
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
136
|
+
ref: q,
|
|
137
|
+
render: F,
|
|
138
|
+
type: w,
|
|
139
|
+
disabled: v,
|
|
140
|
+
onClick: z,
|
|
141
|
+
"aria-label": B,
|
|
142
|
+
"aria-pressed": V,
|
|
143
|
+
"aria-keyshortcuts": H,
|
|
144
|
+
"aria-describedby": X,
|
|
145
|
+
id: U,
|
|
146
|
+
name: W,
|
|
147
|
+
form: G,
|
|
148
|
+
className: e(i, n[m ?? "center"], a === "outline" && g === "quiet" ? c : u[a], oe[_], l, "gap-2", R),
|
|
141
149
|
"data-role": a,
|
|
142
|
-
"data-size":
|
|
143
|
-
"data-align":
|
|
144
|
-
"data-emphasis": a === "outline" ?
|
|
145
|
-
"data-mono":
|
|
146
|
-
"data-end-icon":
|
|
147
|
-
"data-external":
|
|
150
|
+
"data-size": _,
|
|
151
|
+
"data-align": m,
|
|
152
|
+
"data-emphasis": a === "outline" ? g ?? "strong" : void 0,
|
|
153
|
+
"data-mono": M ? "" : void 0,
|
|
154
|
+
"data-end-icon": N ? "" : void 0,
|
|
155
|
+
"data-external": Q ? "" : void 0,
|
|
148
156
|
children: [
|
|
149
|
-
|
|
150
|
-
size:
|
|
151
|
-
children:
|
|
157
|
+
A ? /* @__PURE__ */ S(h, {
|
|
158
|
+
size: _,
|
|
159
|
+
children: A
|
|
152
160
|
}) : null,
|
|
153
|
-
/* @__PURE__ */
|
|
154
|
-
className:
|
|
155
|
-
children: [r, $ ? /* @__PURE__ */
|
|
161
|
+
/* @__PURE__ */ C("span", {
|
|
162
|
+
className: M ? ne : void 0,
|
|
163
|
+
children: [r, $ ? /* @__PURE__ */ S("span", {
|
|
156
164
|
className: "sr-only",
|
|
157
165
|
children: " (opens in a new tab)"
|
|
158
166
|
}) : null]
|
|
159
167
|
}),
|
|
160
|
-
|
|
161
|
-
className:
|
|
168
|
+
Q && de ? /* @__PURE__ */ S(b, {
|
|
169
|
+
className: te,
|
|
162
170
|
strokeWidth: 2,
|
|
163
171
|
"aria-hidden": !0
|
|
164
172
|
}) : null,
|
|
165
|
-
|
|
173
|
+
N ? /* @__PURE__ */ S("span", {
|
|
166
174
|
className: o,
|
|
167
|
-
children: /* @__PURE__ */
|
|
175
|
+
children: /* @__PURE__ */ S(h, {
|
|
168
176
|
size: "xs",
|
|
169
|
-
children:
|
|
177
|
+
children: N
|
|
170
178
|
})
|
|
171
179
|
}) : null,
|
|
172
|
-
|
|
180
|
+
j == null ? null : /* @__PURE__ */ S(t, { value: j })
|
|
173
181
|
]
|
|
174
|
-
});
|
|
182
|
+
}));
|
|
175
183
|
});
|
|
176
184
|
//#endregion
|
|
177
|
-
export {
|
|
185
|
+
export { D as Button, r as buttonAligns, a as buttonEmphases, s as buttonLayouts, d as buttonRoles, g as buttonStatusHoldMs, m as buttonWidths, _ as defaultStatusLabels, v as getNextButtonStatus };
|
|
@@ -26,7 +26,7 @@ export declare const buttonAlignClasses: Record<ButtonAlign, string>;
|
|
|
26
26
|
* Mono uppercase label. `!` beats the sans medium shell.
|
|
27
27
|
* Size is `--font-size-sm` (12px) — small, still a control label.
|
|
28
28
|
*/
|
|
29
|
-
export declare const buttonMonoLabelClasses = "!font-mono !text-[length:var(--font-size-sm)] !font-normal !uppercase !leading-none !tracking-[0.
|
|
29
|
+
export declare const buttonMonoLabelClasses = "!font-mono !text-[length:var(--font-size-sm)] !font-normal !uppercase !leading-none !tracking-[0.12em]";
|
|
30
30
|
/** Trailing new-tab glyph on an `external` link button — the icon **TextLink** `external` shows. */
|
|
31
31
|
export declare const buttonExternalIconClasses = "-ml-0.5 size-[0.85em] shrink-0 stroke-current";
|
|
32
32
|
/** Trailing accent square for a Lucide glyph (`endIcon`). */
|
|
@@ -46,4 +46,6 @@ export declare const buttonRowWidthClasses: Record<ButtonWidth, string>;
|
|
|
46
46
|
/** Inset nav row — **NavList** rows (icon + label + optional count as children). */
|
|
47
47
|
export declare const buttonNavLayoutClasses: string;
|
|
48
48
|
export declare function buttonNavStateClasses(selected: boolean): string;
|
|
49
|
+
/** The reason beside a disabled button (Buttons rule U6): supporting type, muted ink (9.8:1). */
|
|
50
|
+
export declare const buttonDisabledReasonClasses = "type-supporting text-muted";
|
|
49
51
|
//# sourceMappingURL=buttonStyles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buttonStyles.d.ts","sourceRoot":"","sources":["../../../../src/components/atoms/Button/buttonStyles.ts"],"names":[],"mappings":"AAMA,uEAAuE;AACvE,eAAO,MAAM,WAAW,oGAQd,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtD,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEnD,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC;AAExC,iGAAiG;AACjG,eAAO,MAAM,eAAe,oCAAoC,CAAC;AAEjE,eAAO,MAAM,aAAa,iCAAkC,CAAC;AAE7D,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1D,8FAA8F;AAC9F,eAAO,MAAM,YAAY,0BAA2B,CAAC;AAErD,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAExD,uGAAuG;AACvG,eAAO,MAAM,YAAY,8BAA+B,CAAC;AAEzD,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAExD,sGAAsG;AACtG,eAAO,MAAM,cAAc,8BAA+B,CAAC;AAE3D,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"buttonStyles.d.ts","sourceRoot":"","sources":["../../../../src/components/atoms/Button/buttonStyles.ts"],"names":[],"mappings":"AAMA,uEAAuE;AACvE,eAAO,MAAM,WAAW,oGAQd,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtD,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEnD,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC;AAExC,iGAAiG;AACjG,eAAO,MAAM,eAAe,oCAAoC,CAAC;AAEjE,eAAO,MAAM,aAAa,iCAAkC,CAAC;AAE7D,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1D,8FAA8F;AAC9F,eAAO,MAAM,YAAY,0BAA2B,CAAC;AAErD,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAExD,uGAAuG;AACvG,eAAO,MAAM,YAAY,8BAA+B,CAAC;AAEzD,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAExD,sGAAsG;AACtG,eAAO,MAAM,cAAc,8BAA+B,CAAC;AAE3D,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D,eAAO,MAAM,iBAAiB,QAWd,CAAC;AAEjB,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAmBxD,CAAC;AAEF,yGAAyG;AACzG,eAAO,MAAM,yBAAyB,4FACqD,CAAC;AAE5F,4FAA4F;AAC5F,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAG1D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,2GACuE,CAAC;AAE3G,oGAAoG;AACpG,eAAO,MAAM,yBAAyB,kDAAkD,CAAC;AAEzF,6DAA6D;AAC7D,eAAO,MAAM,0BAA0B,kGAC0D,CAAC;AAElG,2FAA2F;AAC3F,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAK9D,CAAC;AAEF,8FAA8F;AAC9F,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAKxD,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAK5D,CAAC;AAEF,0FAA0F;AAC1F,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAKhE,CAAC;AAEF,kHAAkH;AAClH,eAAO,MAAM,oBAAoB,QAM8D,CAAC;AAEhG,eAAO,MAAM,sBAAsB,QAEqB,CAAC;AAEzD,mHAAmH;AACnH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAG7D,CAAC;AAEF,oFAAoF;AACpF,eAAO,MAAM,sBAAsB,QAGqB,CAAC;AAEzD,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,CAI/D;AAED,iGAAiG;AACjG,eAAO,MAAM,2BAA2B,+BAA+B,CAAC"}
|