@thewhatmatters/wmds 0.4.9 → 0.4.28
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 +303 -0
- package/CONSUMING.md +62 -1
- package/README.md +1 -1
- package/bin/wmds-check.mjs +47 -0
- package/dist/colors.css +92 -0
- package/dist/components/atoms/Badge/Badge.d.ts +13 -5
- package/dist/components/atoms/Badge/Badge.d.ts.map +1 -1
- package/dist/components/atoms/Badge/Badge.js +56 -48
- package/dist/components/atoms/Badge/badgeStyles.d.ts +15 -0
- package/dist/components/atoms/Badge/badgeStyles.d.ts.map +1 -1
- package/dist/components/atoms/Badge/badgeStyles.js +42 -20
- package/dist/components/atoms/Band/Band.d.ts +27 -0
- package/dist/components/atoms/Band/Band.d.ts.map +1 -0
- package/dist/components/atoms/Band/Band.js +22 -0
- package/dist/components/atoms/Band/bandStyles.d.ts +20 -0
- package/dist/components/atoms/Band/bandStyles.d.ts.map +1 -0
- package/dist/components/atoms/Band/bandStyles.js +23 -0
- package/dist/components/atoms/Button/Button.d.ts +1 -1
- package/dist/components/atoms/Button/Button.d.ts.map +1 -1
- package/dist/components/atoms/Button/Button.js +67 -48
- package/dist/components/atoms/Button/ButtonStatusButton.d.ts.map +1 -1
- package/dist/components/atoms/Button/ButtonStatusButton.js +12 -5
- package/dist/components/atoms/Button/buttonStatusMotion.d.ts.map +1 -1
- package/dist/components/atoms/Button/buttonStatusMotion.js +6 -1
- package/dist/components/atoms/Button/buttonStyles.d.ts +2 -2
- package/dist/components/atoms/Button/buttonStyles.d.ts.map +1 -1
- package/dist/components/atoms/Button/buttonStyles.js +16 -14
- package/dist/components/atoms/Checkbox/Checkbox.d.ts.map +1 -1
- package/dist/components/atoms/Checkbox/Checkbox.js +69 -68
- package/dist/components/atoms/Checkbox/checkboxStyles.d.ts +1 -1
- package/dist/components/atoms/Checkbox/checkboxStyles.d.ts.map +1 -1
- package/dist/components/atoms/Checkbox/checkboxStyles.js +1 -1
- package/dist/components/atoms/IconButton/IconButton.d.ts.map +1 -1
- package/dist/components/atoms/IconButton/IconButton.js +13 -12
- package/dist/components/atoms/IconButton/iconButtonStyles.d.ts +2 -2
- package/dist/components/atoms/IconButton/iconButtonStyles.d.ts.map +1 -1
- package/dist/components/atoms/IconButton/iconButtonStyles.js +1 -1
- package/dist/components/atoms/InlinePill/InlinePill.d.ts +42 -0
- package/dist/components/atoms/InlinePill/InlinePill.d.ts.map +1 -0
- package/dist/components/atoms/InlinePill/InlinePill.js +48 -0
- package/dist/components/atoms/InlinePill/inlinePillStyles.d.ts +27 -0
- package/dist/components/atoms/InlinePill/inlinePillStyles.d.ts.map +1 -0
- package/dist/components/atoms/InlinePill/inlinePillStyles.js +19 -0
- package/dist/components/atoms/Input/Input.d.ts +9 -4
- package/dist/components/atoms/Input/Input.d.ts.map +1 -1
- package/dist/components/atoms/Input/Input.js +59 -59
- package/dist/components/atoms/Input/inputShellStyles.d.ts +10 -4
- package/dist/components/atoms/Input/inputShellStyles.d.ts.map +1 -1
- package/dist/components/atoms/Input/inputShellStyles.js +40 -40
- package/dist/components/atoms/RiveHand/RiveHand.d.ts.map +1 -1
- package/dist/components/atoms/RiveHand/RiveHand.js +83 -81
- package/dist/components/atoms/Skeleton/skeletonStyles.js +1 -1
- package/dist/components/atoms/Switch/Switch.d.ts.map +1 -1
- package/dist/components/atoms/Switch/Switch.js +45 -44
- package/dist/components/atoms/Switch/switchStyles.d.ts +1 -1
- package/dist/components/atoms/Switch/switchStyles.d.ts.map +1 -1
- package/dist/components/atoms/Switch/switchStyles.js +1 -1
- package/dist/components/atoms/Table/Table.d.ts +54 -0
- package/dist/components/atoms/Table/Table.d.ts.map +1 -0
- package/dist/components/atoms/Table/Table.js +66 -0
- package/dist/components/atoms/Table/tableStyles.d.ts +18 -0
- package/dist/components/atoms/Table/tableStyles.d.ts.map +1 -0
- package/dist/components/atoms/Table/tableStyles.js +14 -0
- package/dist/components/atoms/TextArea/TextArea.d.ts +6 -0
- package/dist/components/atoms/TextArea/TextArea.d.ts.map +1 -1
- package/dist/components/atoms/TextArea/TextArea.js +86 -78
- package/dist/components/atoms/TextArea/textareaShellStyles.d.ts +2 -2
- package/dist/components/atoms/TextArea/textareaShellStyles.d.ts.map +1 -1
- package/dist/components/atoms/TextArea/textareaShellStyles.js +5 -5
- package/dist/components/molecules/Accordion/accordionStyles.d.ts +1 -1
- package/dist/components/molecules/Accordion/accordionStyles.d.ts.map +1 -1
- package/dist/components/molecules/Accordion/accordionStyles.js +1 -1
- package/dist/components/molecules/Breadcrumb/Breadcrumb.d.ts.map +1 -1
- package/dist/components/molecules/Breadcrumb/Breadcrumb.js +80 -122
- package/dist/components/molecules/Card/Card.d.ts +28 -6
- package/dist/components/molecules/Card/Card.d.ts.map +1 -1
- package/dist/components/molecules/Card/Card.js +83 -42
- package/dist/components/molecules/Card/cardStyles.d.ts +16 -1
- package/dist/components/molecules/Card/cardStyles.d.ts.map +1 -1
- package/dist/components/molecules/Card/cardStyles.js +19 -5
- package/dist/components/molecules/ChatQa/chatQaStyles.d.ts +1 -1
- package/dist/components/molecules/ChatQa/chatQaStyles.d.ts.map +1 -1
- package/dist/components/molecules/ChatQa/chatQaStyles.js +1 -1
- package/dist/components/molecules/Chip/chipStyles.js +9 -9
- package/dist/components/molecules/CopyField/CopyField.d.ts +41 -0
- package/dist/components/molecules/CopyField/CopyField.d.ts.map +1 -0
- package/dist/components/molecules/CopyField/CopyField.js +120 -0
- package/dist/components/molecules/CopyField/copyFieldStyles.d.ts +28 -0
- package/dist/components/molecules/CopyField/copyFieldStyles.d.ts.map +1 -0
- package/dist/components/molecules/CopyField/copyFieldStyles.js +7 -0
- package/dist/components/molecules/DisplayControls/DisplayControls.d.ts +16 -7
- package/dist/components/molecules/DisplayControls/DisplayControls.d.ts.map +1 -1
- package/dist/components/molecules/DisplayControls/DisplayControls.js +41 -39
- package/dist/components/molecules/DisplayControls/displayControlsState.d.ts +21 -0
- package/dist/components/molecules/DisplayControls/displayControlsState.d.ts.map +1 -1
- package/dist/components/molecules/DisplayControls/displayControlsState.js +46 -4
- package/dist/components/molecules/Dropdown/Dropdown.d.ts +1 -1
- package/dist/components/molecules/Dropdown/DropdownItem.d.ts +2 -2
- package/dist/components/molecules/Dropdown/DropdownItem.d.ts.map +1 -1
- package/dist/components/molecules/Dropdown/DropdownItem.js +30 -27
- package/dist/components/molecules/Dropdown/dropdownStyles.js +1 -1
- package/dist/components/molecules/Dropdown/resolveOverflow.d.ts +14 -0
- package/dist/components/molecules/Dropdown/resolveOverflow.d.ts.map +1 -0
- package/dist/components/{organisms/Tab/tabOverflow.js → molecules/Dropdown/resolveOverflow.js} +2 -2
- package/dist/components/molecules/Dropdown/useDropdownMenu.d.ts +70 -0
- package/dist/components/molecules/Dropdown/useDropdownMenu.d.ts.map +1 -0
- package/dist/components/molecules/Dropdown/useDropdownMenu.js +155 -0
- package/dist/components/molecules/Dropdown/useOverflowMenu.d.ts +71 -0
- package/dist/components/molecules/Dropdown/useOverflowMenu.d.ts.map +1 -0
- package/dist/components/molecules/Dropdown/useOverflowMenu.js +61 -0
- package/dist/components/molecules/Field/Field.d.ts.map +1 -1
- package/dist/components/molecules/Field/Field.js +11 -10
- package/dist/components/molecules/LogView/LogView.d.ts +31 -0
- package/dist/components/molecules/LogView/LogView.d.ts.map +1 -0
- package/dist/components/molecules/LogView/LogView.js +109 -0
- package/dist/components/molecules/LogView/logViewStyles.d.ts +11 -0
- package/dist/components/molecules/LogView/logViewStyles.d.ts.map +1 -0
- package/dist/components/molecules/LogView/logViewStyles.js +6 -0
- package/dist/components/molecules/NavList/NavList.d.ts +23 -4
- package/dist/components/molecules/NavList/NavList.d.ts.map +1 -1
- package/dist/components/molecules/NavList/NavList.js +65 -52
- package/dist/components/molecules/NavList/navListStyles.d.ts +2 -0
- package/dist/components/molecules/NavList/navListStyles.d.ts.map +1 -1
- package/dist/components/molecules/NavList/navListStyles.js +3 -3
- package/dist/components/molecules/PageHeader/PageHeader.js +3 -3
- package/dist/components/molecules/PillGroup/pillGroupStyles.js +1 -1
- package/dist/components/molecules/Search/searchStyles.js +1 -1
- package/dist/components/molecules/SegmentedControl/segmentedControlStyles.d.ts +1 -1
- package/dist/components/molecules/SegmentedControl/segmentedControlStyles.d.ts.map +1 -1
- package/dist/components/molecules/SegmentedControl/segmentedControlStyles.js +8 -8
- package/dist/components/molecules/Select/Select.d.ts +3 -1
- package/dist/components/molecules/Select/Select.d.ts.map +1 -1
- package/dist/components/molecules/Select/Select.js +75 -119
- package/dist/components/molecules/Select/selectStyles.js +3 -3
- package/dist/components/molecules/Stat/Stat.d.ts +31 -5
- package/dist/components/molecules/Stat/Stat.d.ts.map +1 -1
- package/dist/components/molecules/Stat/Stat.js +83 -49
- package/dist/components/molecules/Stat/statStyles.d.ts +24 -4
- package/dist/components/molecules/Stat/statStyles.d.ts.map +1 -1
- package/dist/components/molecules/Stat/statStyles.js +30 -13
- package/dist/components/molecules/TaskRows/TaskRows.d.ts +13 -3
- package/dist/components/molecules/TaskRows/TaskRows.d.ts.map +1 -1
- package/dist/components/molecules/TaskRows/TaskRows.js +81 -57
- package/dist/components/molecules/TaskRows/TaskRowsTable.d.ts +54 -0
- package/dist/components/molecules/TaskRows/TaskRowsTable.d.ts.map +1 -0
- package/dist/components/molecules/TaskRows/TaskRowsTable.js +200 -0
- package/dist/components/molecules/TaskRows/taskRowsStyles.d.ts +19 -1
- package/dist/components/molecules/TaskRows/taskRowsStyles.d.ts.map +1 -1
- package/dist/components/molecules/TaskRows/taskRowsStyles.js +7 -3
- package/dist/components/molecules/TextSequence/TextSequence.d.ts.map +1 -1
- package/dist/components/molecules/TextSequence/TextSequence.js +35 -35
- package/dist/components/organisms/AppShell/AppShell.d.ts +84 -0
- package/dist/components/organisms/AppShell/AppShell.d.ts.map +1 -0
- package/dist/components/organisms/AppShell/AppShell.js +231 -0
- package/dist/components/organisms/AppShell/appShellStyles.d.ts +20 -0
- package/dist/components/organisms/AppShell/appShellStyles.d.ts.map +1 -0
- package/dist/components/organisms/AppShell/appShellStyles.js +8 -0
- package/dist/components/organisms/Carousel/Carousel.d.ts +9 -1
- package/dist/components/organisms/Carousel/Carousel.d.ts.map +1 -1
- package/dist/components/organisms/Carousel/Carousel.js +220 -182
- package/dist/components/organisms/Carousel/carouselMath.d.ts +5 -0
- package/dist/components/organisms/Carousel/carouselMath.d.ts.map +1 -1
- package/dist/components/organisms/Carousel/carouselMath.js +9 -1
- package/dist/components/organisms/Carousel/carouselStyles.d.ts +2 -0
- package/dist/components/organisms/Carousel/carouselStyles.d.ts.map +1 -1
- package/dist/components/organisms/Carousel/carouselStyles.js +8 -7
- package/dist/components/organisms/Chart/Chart.d.ts +5 -1
- package/dist/components/organisms/Chart/Chart.d.ts.map +1 -1
- package/dist/components/organisms/Chart/Chart.js +126 -62
- package/dist/components/organisms/Chart/ChartLegend.d.ts +8 -1
- package/dist/components/organisms/Chart/ChartLegend.d.ts.map +1 -1
- package/dist/components/organisms/Chart/ChartLegend.js +43 -13
- package/dist/components/organisms/Chart/ChartSegmentedRing.d.ts +52 -0
- package/dist/components/organisms/Chart/ChartSegmentedRing.d.ts.map +1 -0
- package/dist/components/organisms/Chart/ChartSegmentedRing.js +95 -0
- package/dist/components/organisms/Chart/chartStyles.d.ts +32 -0
- package/dist/components/organisms/Chart/chartStyles.d.ts.map +1 -1
- package/dist/components/organisms/Chart/chartStyles.js +15 -3
- package/dist/components/organisms/ChatDock/ChatDock.d.ts.map +1 -1
- package/dist/components/organisms/ChatDock/ChatDock.js +29 -25
- package/dist/components/organisms/Dialog/AlertDialog.d.ts +7 -1
- package/dist/components/organisms/Dialog/AlertDialog.d.ts.map +1 -1
- package/dist/components/organisms/Dialog/AlertDialog.js +54 -50
- package/dist/components/organisms/Dialog/Dialog.d.ts.map +1 -1
- package/dist/components/organisms/Dialog/Dialog.js +52 -71
- package/dist/components/organisms/Dialog/OverlayPanelHeader.d.ts.map +1 -1
- package/dist/components/organisms/Dialog/OverlayPanelHeader.js +1 -0
- package/dist/components/organisms/Dialog/dialogStyles.d.ts +14 -1
- package/dist/components/organisms/Dialog/dialogStyles.d.ts.map +1 -1
- package/dist/components/organisms/Dialog/dialogStyles.js +3 -3
- package/dist/components/organisms/FilterPanel/FilterPanel.d.ts.map +1 -1
- package/dist/components/organisms/FilterPanel/FilterPanel.js +52 -42
- package/dist/components/organisms/IntakeModal/IntakeModal.d.ts +6 -1
- package/dist/components/organisms/IntakeModal/IntakeModal.d.ts.map +1 -1
- package/dist/components/organisms/IntakeModal/IntakeModal.js +54 -66
- package/dist/components/organisms/MoreMenu/MoreMenu.d.ts.map +1 -1
- package/dist/components/organisms/MoreMenu/MoreMenu.js +45 -101
- package/dist/components/organisms/Panel/Panel.d.ts.map +1 -1
- package/dist/components/organisms/Panel/Panel.js +44 -53
- package/dist/components/organisms/Sheet/Sheet.d.ts +3 -1
- package/dist/components/organisms/Sheet/Sheet.d.ts.map +1 -1
- package/dist/components/organisms/Sheet/Sheet.js +66 -81
- package/dist/components/organisms/Sheet/sheetStyles.d.ts +8 -2
- package/dist/components/organisms/Sheet/sheetStyles.d.ts.map +1 -1
- package/dist/components/organisms/Sheet/sheetStyles.js +16 -11
- package/dist/components/organisms/SiteNav/SiteNav.d.ts +0 -9
- package/dist/components/organisms/SiteNav/SiteNav.d.ts.map +1 -1
- package/dist/components/organisms/SiteNav/SiteNav.js +236 -286
- package/dist/components/organisms/SiteNav/siteNavStyles.js +1 -1
- package/dist/components/organisms/Tab/Tab.d.ts.map +1 -1
- package/dist/components/organisms/Tab/Tab.js +77 -127
- package/dist/components/organisms/Tab/tabStyles.d.ts +2 -1
- package/dist/components/organisms/Tab/tabStyles.d.ts.map +1 -1
- package/dist/components/organisms/Tab/tabStyles.js +7 -7
- package/dist/fonts.css +10 -0
- package/dist/grid.css +38 -0
- package/dist/index.d.ts +16 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +152 -139
- package/dist/lib/chartTheme.d.ts +11 -0
- package/dist/lib/chartTheme.d.ts.map +1 -1
- package/dist/lib/compositionAudit.d.ts.map +1 -1
- package/dist/lib/contrast.d.ts +11 -0
- package/dist/lib/contrast.d.ts.map +1 -0
- package/dist/lib/dialogOverlay.d.ts +34 -1
- package/dist/lib/dialogOverlay.d.ts.map +1 -1
- package/dist/lib/dialogOverlay.js +100 -23
- package/dist/lib/sheetParam/index.d.ts +3 -0
- package/dist/lib/sheetParam/index.d.ts.map +1 -0
- package/dist/lib/sheetParam/sheetParam.d.ts +15 -0
- package/dist/lib/sheetParam/sheetParam.d.ts.map +1 -0
- package/dist/lib/sheetParam/sheetParam.js +26 -0
- package/dist/lib/sheetParam/useSheetParam.d.ts +25 -0
- package/dist/lib/sheetParam/useSheetParam.d.ts.map +1 -0
- package/dist/lib/sheetParam/useSheetParam.js +29 -0
- package/dist/lib/typography.d.ts +1 -1
- package/dist/lib/typography.d.ts.map +1 -1
- package/dist/shape.css +24 -3
- package/dist/styles.css +1 -1
- package/dist/typography.css +55 -8
- package/docs/README.md +1 -1
- package/docs/component-contracts.md +101 -0
- package/docs/components.md +19 -12
- package/docs/exports.json +142 -15
- package/docs/patterns/components-accordion--flush.tsx +1 -1
- package/docs/patterns/components-appshell--portal-dashboard-pattern.tsx +176 -0
- 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 +31 -0
- package/docs/patterns/components-badge--with-avatar.tsx +1 -1
- package/docs/patterns/components-band--page-in-bands.tsx +39 -0
- 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 +48 -0
- 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 +68 -0
- package/docs/patterns/components-chart--segmented-ring-pattern.tsx +144 -0
- 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 +9 -0
- package/docs/patterns/components-copyfield--copied.tsx +9 -0
- package/docs/patterns/components-copyfield--copy-key.tsx +9 -0
- package/docs/patterns/components-copyfield--on-navy.tsx +29 -0
- 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 +54 -0
- 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 +35 -0
- 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 +1 -1
- package/docs/patterns/components-footerreveal--marketing-hero-ruled-pattern.tsx +1 -1
- package/docs/patterns/components-footerreveal--marketing-hero-with-gallery-intro.tsx +1 -1
- package/docs/patterns/components-footerreveal--marketing-page-pattern.tsx +1 -1
- package/docs/patterns/components-footerreveal--ruled-grid-footer-pattern.tsx +1 -1
- package/docs/patterns/components-footerreveal--sequenced-marketing-hero.tsx +1 -1
- package/docs/patterns/components-herointro--two-line-intro.tsx +1 -1
- package/docs/patterns/components-herotilestack--marketing-hero-pattern.tsx +1 -1
- package/docs/patterns/components-herotilestack--marketing-hero-text-sequence.tsx +1 -1
- package/docs/patterns/components-herotilestack--marketing-hero-with-gallery-intro.tsx +1 -1
- 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 +1 -1
- package/docs/patterns/components-linktile--router-link.tsx +1 -1
- package/docs/patterns/components-logview--detail-pane.tsx +80 -0
- package/docs/patterns/components-logview--log-viewer.tsx +20 -0
- 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 +118 -0
- 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 +50 -0
- package/docs/patterns/components-sheet--side-sheet-url-deep-link.tsx +51 -0
- package/docs/patterns/components-sheet--side-sheet.tsx +38 -0
- 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 +1 -1
- package/docs/patterns/components-sitenav--mega-menu.tsx +1 -1
- package/docs/patterns/components-stat--hero-stat.tsx +54 -0
- 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 +81 -0
- package/docs/patterns/components-table--approvals.tsx +223 -0
- package/docs/patterns/components-table--basic.tsx +60 -0
- 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 +62 -0
- 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 +32 -0
- 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 +1 -1
- package/docs/patterns/components-tilegrid--masonry.tsx +1 -1
- 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 +1 -1
- package/docs/patterns/guides-filter-panel--filtered-index.tsx +1 -1
- package/docs/patterns/guides-overlay-flows--notification-preferences.tsx +1 -1
- package/docs/patterns/guides-post-page--post-page.tsx +1 -1
- package/docs/patterns/guides-profile-typography--editorial-profile.tsx +1 -1
- package/docs/patterns/guides-resource-detail--detail.tsx +1 -1
- package/docs/patterns/index.json +193 -1
- package/package.json +1 -1
- package/dist/components/organisms/Tab/tabOverflow.d.ts +0 -14
- package/dist/components/organisms/Tab/tabOverflow.d.ts.map +0 -1
package/docs/exports.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"package": "@thewhatmatters/wmds",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.28",
|
|
4
4
|
"import": "import { Button } from \"@thewhatmatters/wmds\";",
|
|
5
5
|
"styles": [
|
|
6
6
|
"@thewhatmatters/wmds/styles.css",
|
|
@@ -40,6 +40,19 @@
|
|
|
40
40
|
"components-accordion--flush"
|
|
41
41
|
]
|
|
42
42
|
},
|
|
43
|
+
{
|
|
44
|
+
"name": "AppShell",
|
|
45
|
+
"tier": "organism",
|
|
46
|
+
"category": "Layout",
|
|
47
|
+
"summary": "App chrome: a sidebar on the page background, the page as an inset raised surface with a title bar, a phone Sheet menu, and an optional aside.",
|
|
48
|
+
"storybook": {
|
|
49
|
+
"title": "Components/AppShell",
|
|
50
|
+
"docs": "?path=/docs/components-appshell--docs"
|
|
51
|
+
},
|
|
52
|
+
"patterns": [
|
|
53
|
+
"components-appshell--portal-dashboard-pattern"
|
|
54
|
+
]
|
|
55
|
+
},
|
|
43
56
|
{
|
|
44
57
|
"name": "Avatar",
|
|
45
58
|
"tier": "atom",
|
|
@@ -57,16 +70,30 @@
|
|
|
57
70
|
"name": "Badge",
|
|
58
71
|
"tier": "atom",
|
|
59
72
|
"category": "Feedback & status",
|
|
60
|
-
"summary": "Compact semantic label in solid or muted fill, with count, icon, and
|
|
73
|
+
"summary": "Compact semantic label in solid or muted fill, with count, icon, avatar, and status-pill patterns.",
|
|
61
74
|
"storybook": {
|
|
62
75
|
"title": "Components/Badge",
|
|
63
76
|
"docs": "?path=/docs/components-badge--docs"
|
|
64
77
|
},
|
|
65
78
|
"patterns": [
|
|
66
79
|
"components-badge--outline-tags",
|
|
80
|
+
"components-badge--status-pill",
|
|
67
81
|
"components-badge--with-avatar"
|
|
68
82
|
]
|
|
69
83
|
},
|
|
84
|
+
{
|
|
85
|
+
"name": "Band",
|
|
86
|
+
"tier": "atom",
|
|
87
|
+
"category": "Layout",
|
|
88
|
+
"summary": "Full-bleed page section in a brand tone (inverse, field) on the page's own columns.",
|
|
89
|
+
"storybook": {
|
|
90
|
+
"title": "Components/Band",
|
|
91
|
+
"docs": "?path=/docs/components-band--docs"
|
|
92
|
+
},
|
|
93
|
+
"patterns": [
|
|
94
|
+
"components-band--page-in-bands"
|
|
95
|
+
]
|
|
96
|
+
},
|
|
70
97
|
{
|
|
71
98
|
"name": "Breadcrumb",
|
|
72
99
|
"tier": "molecule",
|
|
@@ -127,7 +154,7 @@
|
|
|
127
154
|
"name": "Card",
|
|
128
155
|
"tier": "molecule",
|
|
129
156
|
"category": "Container",
|
|
130
|
-
"summary": "Surface with header, body, and footer slots
|
|
157
|
+
"summary": "Surface with header, body, and footer slots, including a dark terminal frame.",
|
|
131
158
|
"storybook": {
|
|
132
159
|
"title": "Components/Card/Card",
|
|
133
160
|
"docs": "?path=/docs/components-card-card--docs"
|
|
@@ -136,7 +163,8 @@
|
|
|
136
163
|
"components-card-card--body-slot-occupancy-history",
|
|
137
164
|
"components-card-card--headerless-media",
|
|
138
165
|
"components-card-card--outlined-layout",
|
|
139
|
-
"components-card-card--pinned-height"
|
|
166
|
+
"components-card-card--pinned-height",
|
|
167
|
+
"components-card-card--terminal-frame"
|
|
140
168
|
]
|
|
141
169
|
},
|
|
142
170
|
{
|
|
@@ -156,7 +184,7 @@
|
|
|
156
184
|
"name": "Chart",
|
|
157
185
|
"tier": "organism",
|
|
158
186
|
"category": "Data visualization",
|
|
159
|
-
"summary": "visx-based charts: capacity bars, ranked bars, unit grids, heatmaps, and
|
|
187
|
+
"summary": "visx-based charts: capacity bars, segmented rings, ranked bars, unit grids, heatmaps, time series, and a stat column.",
|
|
160
188
|
"storybook": {
|
|
161
189
|
"title": "Components/Chart",
|
|
162
190
|
"docs": "?path=/docs/components-chart--docs"
|
|
@@ -168,6 +196,8 @@
|
|
|
168
196
|
"components-chart--occupancy-in-card",
|
|
169
197
|
"components-chart--post-reach-distribution",
|
|
170
198
|
"components-chart--ranked-audience-breakdown",
|
|
199
|
+
"components-chart--revenue-by-line",
|
|
200
|
+
"components-chart--segmented-ring-pattern",
|
|
171
201
|
"components-chart--unit-grid-composition"
|
|
172
202
|
]
|
|
173
203
|
},
|
|
@@ -249,6 +279,22 @@
|
|
|
249
279
|
},
|
|
250
280
|
"patterns": []
|
|
251
281
|
},
|
|
282
|
+
{
|
|
283
|
+
"name": "CopyField",
|
|
284
|
+
"tier": "molecule",
|
|
285
|
+
"category": "Form controls",
|
|
286
|
+
"summary": "Read-only monospace value with Copy key seated inside the pill.",
|
|
287
|
+
"storybook": {
|
|
288
|
+
"title": "Components/CopyField",
|
|
289
|
+
"docs": "?path=/docs/components-copyfield--docs"
|
|
290
|
+
},
|
|
291
|
+
"patterns": [
|
|
292
|
+
"components-copyfield--clipboard-blocked",
|
|
293
|
+
"components-copyfield--copied",
|
|
294
|
+
"components-copyfield--copy-key",
|
|
295
|
+
"components-copyfield--on-navy"
|
|
296
|
+
]
|
|
297
|
+
},
|
|
252
298
|
{
|
|
253
299
|
"name": "DescriptionList",
|
|
254
300
|
"tier": "molecule",
|
|
@@ -274,6 +320,7 @@
|
|
|
274
320
|
},
|
|
275
321
|
"patterns": [
|
|
276
322
|
"components-dialog--alert-dialog-destructive",
|
|
323
|
+
"components-dialog--alert-dialog-typed-confirmation",
|
|
277
324
|
"components-dialog--default-dialog",
|
|
278
325
|
"components-dialog--form-dialog"
|
|
279
326
|
]
|
|
@@ -282,13 +329,14 @@
|
|
|
282
329
|
"name": "DisplayControls",
|
|
283
330
|
"tier": "molecule",
|
|
284
331
|
"category": "Layout",
|
|
285
|
-
"summary": "Grid visibility and theme mode controls
|
|
332
|
+
"summary": "Grid visibility and theme mode controls, including a theme-only appearance switch.",
|
|
286
333
|
"storybook": {
|
|
287
334
|
"title": "Components/DisplayControls",
|
|
288
335
|
"docs": "?path=/docs/components-displaycontrols--docs"
|
|
289
336
|
},
|
|
290
337
|
"patterns": [
|
|
291
|
-
"components-displaycontrols--page-utilities"
|
|
338
|
+
"components-displaycontrols--page-utilities",
|
|
339
|
+
"components-displaycontrols--theme-switch"
|
|
292
340
|
]
|
|
293
341
|
},
|
|
294
342
|
{
|
|
@@ -413,6 +461,17 @@
|
|
|
413
461
|
"components-indexlist--post-index"
|
|
414
462
|
]
|
|
415
463
|
},
|
|
464
|
+
{
|
|
465
|
+
"name": "InlinePill",
|
|
466
|
+
"tier": "atom",
|
|
467
|
+
"category": "Content",
|
|
468
|
+
"summary": "A key word inside running text in a soft pill that scales with the text, with an optional picture that can pop in on scroll.",
|
|
469
|
+
"storybook": {
|
|
470
|
+
"title": "Components/InlinePill",
|
|
471
|
+
"docs": "?path=/docs/components-inlinepill--docs"
|
|
472
|
+
},
|
|
473
|
+
"patterns": []
|
|
474
|
+
},
|
|
416
475
|
{
|
|
417
476
|
"name": "Input",
|
|
418
477
|
"tier": "atom",
|
|
@@ -494,6 +553,20 @@
|
|
|
494
553
|
"components-linktile--router-link"
|
|
495
554
|
]
|
|
496
555
|
},
|
|
556
|
+
{
|
|
557
|
+
"name": "LogView",
|
|
558
|
+
"tier": "molecule",
|
|
559
|
+
"category": "Content",
|
|
560
|
+
"summary": "Scrolling log with a line count, copy, and follow.",
|
|
561
|
+
"storybook": {
|
|
562
|
+
"title": "Components/LogView",
|
|
563
|
+
"docs": "?path=/docs/components-logview--docs"
|
|
564
|
+
},
|
|
565
|
+
"patterns": [
|
|
566
|
+
"components-logview--detail-pane",
|
|
567
|
+
"components-logview--log-viewer"
|
|
568
|
+
]
|
|
569
|
+
},
|
|
497
570
|
{
|
|
498
571
|
"name": "MoreMenu",
|
|
499
572
|
"tier": "organism",
|
|
@@ -512,12 +585,13 @@
|
|
|
512
585
|
"name": "NavList",
|
|
513
586
|
"tier": "molecule",
|
|
514
587
|
"category": "Navigation",
|
|
515
|
-
"summary": "Sectioned secondary navigation with inset pill rows.",
|
|
588
|
+
"summary": "Sectioned secondary navigation with inset pill rows, link items, and a trailing mark.",
|
|
516
589
|
"storybook": {
|
|
517
590
|
"title": "Components/NavList",
|
|
518
591
|
"docs": "?path=/docs/components-navlist--docs"
|
|
519
592
|
},
|
|
520
593
|
"patterns": [
|
|
594
|
+
"components-navlist--app-sidebar",
|
|
521
595
|
"components-navlist--side-nav-settings"
|
|
522
596
|
]
|
|
523
597
|
},
|
|
@@ -712,7 +786,10 @@
|
|
|
712
786
|
},
|
|
713
787
|
"patterns": [
|
|
714
788
|
"components-sheet--bottom-sheet",
|
|
715
|
-
"components-sheet--end-sheet"
|
|
789
|
+
"components-sheet--end-sheet",
|
|
790
|
+
"components-sheet--side-sheet",
|
|
791
|
+
"components-sheet--side-sheet-header-actions",
|
|
792
|
+
"components-sheet--side-sheet-url-deep-link"
|
|
716
793
|
]
|
|
717
794
|
},
|
|
718
795
|
{
|
|
@@ -747,12 +824,13 @@
|
|
|
747
824
|
"name": "Stat",
|
|
748
825
|
"tier": "molecule",
|
|
749
826
|
"category": "Data visualization",
|
|
750
|
-
"summary": "At-a-glance metric tile with label, value, and optional
|
|
827
|
+
"summary": "At-a-glance metric tile with label, value, optional trend, a hero size with a visible vs line, and an optional detail line.",
|
|
751
828
|
"storybook": {
|
|
752
829
|
"title": "Components/Stat",
|
|
753
830
|
"docs": "?path=/docs/components-stat--docs"
|
|
754
831
|
},
|
|
755
832
|
"patterns": [
|
|
833
|
+
"components-stat--hero-stat",
|
|
756
834
|
"components-stat--insights-row"
|
|
757
835
|
]
|
|
758
836
|
},
|
|
@@ -807,11 +885,26 @@
|
|
|
807
885
|
"components-tab--settings-pages"
|
|
808
886
|
]
|
|
809
887
|
},
|
|
888
|
+
{
|
|
889
|
+
"name": "Table",
|
|
890
|
+
"tier": "atom",
|
|
891
|
+
"category": "Table & list",
|
|
892
|
+
"summary": "Semantic table in a horizontal-scroll box, with a row-actions pattern for approvals.",
|
|
893
|
+
"storybook": {
|
|
894
|
+
"title": "Components/Table",
|
|
895
|
+
"docs": "?path=/docs/components-table--docs"
|
|
896
|
+
},
|
|
897
|
+
"patterns": [
|
|
898
|
+
"components-table--approvals",
|
|
899
|
+
"components-table--approvals-with-sheet",
|
|
900
|
+
"components-table--basic"
|
|
901
|
+
]
|
|
902
|
+
},
|
|
810
903
|
{
|
|
811
904
|
"name": "TaskRows",
|
|
812
905
|
"tier": "molecule",
|
|
813
906
|
"category": "Table & list",
|
|
814
|
-
"summary": "Expandable task rows with status,
|
|
907
|
+
"summary": "Expandable task rows, and a needs-you table with a status dot, waiting pill, and metric.",
|
|
815
908
|
"storybook": {
|
|
816
909
|
"title": "Components/TaskRows",
|
|
817
910
|
"docs": "?path=/docs/components-taskrows--docs"
|
|
@@ -822,6 +915,7 @@
|
|
|
822
915
|
"components-taskrows--card-with-status-rows",
|
|
823
916
|
"components-taskrows--controlled-expand",
|
|
824
917
|
"components-taskrows--custom-slots",
|
|
918
|
+
"components-taskrows--needs-you-table",
|
|
825
919
|
"components-taskrows--status-list",
|
|
826
920
|
"components-taskrows--tag-chips"
|
|
827
921
|
]
|
|
@@ -835,7 +929,9 @@
|
|
|
835
929
|
"title": "Components/TextArea",
|
|
836
930
|
"docs": "?path=/docs/components-textarea--docs"
|
|
837
931
|
},
|
|
838
|
-
"patterns": [
|
|
932
|
+
"patterns": [
|
|
933
|
+
"components-textarea--save-status"
|
|
934
|
+
]
|
|
839
935
|
},
|
|
840
936
|
{
|
|
841
937
|
"name": "TextLink",
|
|
@@ -913,19 +1009,50 @@
|
|
|
913
1009
|
}
|
|
914
1010
|
],
|
|
915
1011
|
"planned": [
|
|
916
|
-
"Pagination"
|
|
917
|
-
"Table"
|
|
1012
|
+
"Pagination"
|
|
918
1013
|
],
|
|
919
1014
|
"lib": [
|
|
920
1015
|
"cn",
|
|
921
1016
|
"buttonSizeForCluster",
|
|
922
1017
|
"iconButtonSizeForCluster",
|
|
1018
|
+
"clusterComponentSizeMap",
|
|
1019
|
+
"clusterTiers",
|
|
923
1020
|
"motionTransition",
|
|
924
1021
|
"motionTransitionProp",
|
|
925
1022
|
"focusRingTransitionClasses",
|
|
926
1023
|
"pressScaleClass",
|
|
1024
|
+
"motionBeatSeconds",
|
|
1025
|
+
"motionBlurReveal",
|
|
1026
|
+
"motionStaggerSeconds",
|
|
1027
|
+
"readMotionDurationSeconds",
|
|
1028
|
+
"chartBucketPeriodData",
|
|
1029
|
+
"chartCategoricalCount",
|
|
1030
|
+
"chartCategoricalPalette",
|
|
1031
|
+
"chartFormatAxisValue",
|
|
1032
|
+
"chartFormatTooltipLabel",
|
|
1033
|
+
"chartFormatTooltipValue",
|
|
1034
|
+
"chartNormalizePeriodData",
|
|
1035
|
+
"chartPeriodKindFromValue",
|
|
1036
|
+
"chartSeriesColor",
|
|
1037
|
+
"chartSeriesConfigFromKeys",
|
|
1038
|
+
"chartSeriesConfigFromTone",
|
|
1039
|
+
"chartTooltipIndicators",
|
|
1040
|
+
"chartTooltipItemsFromConfig",
|
|
1041
|
+
"resolveChartPeriodDayCount",
|
|
1042
|
+
"resolvePeriodSegmentPreset",
|
|
1043
|
+
"resolvePeriodSegments",
|
|
1044
|
+
"backgroundPatterns",
|
|
1045
|
+
"backgroundPatternDiagonalLinesClasses",
|
|
1046
|
+
"backgroundPatternDotGridClasses",
|
|
927
1047
|
"GridOverlay",
|
|
928
|
-
"GRID_ON_CLASS"
|
|
1048
|
+
"GRID_ON_CLASS",
|
|
1049
|
+
"gridOverlayKeyShouldToggle",
|
|
1050
|
+
"isEditableGridOverlayTarget",
|
|
1051
|
+
"readGridColumnCount",
|
|
1052
|
+
"setDocumentGridOn",
|
|
1053
|
+
"useSheetParam",
|
|
1054
|
+
"readSheetParam",
|
|
1055
|
+
"withSheetParam"
|
|
929
1056
|
],
|
|
930
1057
|
"guides": [
|
|
931
1058
|
"Guides/Chart explorations",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// @thewhatmatters/wmds@0.4.
|
|
1
|
+
// @thewhatmatters/wmds@0.4.28 · Pattern — flush
|
|
2
2
|
// Storybook: Components/Accordion → Pattern — flush (?path=/story/components-accordion--flush)
|
|
3
3
|
// Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
|
|
4
4
|
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
// @thewhatmatters/wmds@0.4.28 · Pattern — portal dashboard
|
|
2
|
+
// Storybook: Components/AppShell → Pattern — portal dashboard (?path=/story/components-appshell--portal-dashboard-pattern)
|
|
3
|
+
// Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
|
|
4
|
+
|
|
5
|
+
"use client";
|
|
6
|
+
|
|
7
|
+
import { useState, useSyncExternalStore } from "react";
|
|
8
|
+
import { ChartColumn, Download, FileText, FolderOpen, LayoutDashboard, Megaphone, Settings, Users } from "lucide-react";
|
|
9
|
+
import {
|
|
10
|
+
AppShell,
|
|
11
|
+
Avatar,
|
|
12
|
+
Badge,
|
|
13
|
+
Button,
|
|
14
|
+
Card,
|
|
15
|
+
DescriptionList,
|
|
16
|
+
DisplayControls,
|
|
17
|
+
NavList,
|
|
18
|
+
Stat,
|
|
19
|
+
TaskRows,
|
|
20
|
+
commitDisplayTheme,
|
|
21
|
+
readDisplayTheme,
|
|
22
|
+
subscribeDisplayTheme,
|
|
23
|
+
cardLayoutBodyOccupantInsetXClasses,
|
|
24
|
+
cardLayoutBodyOccupantPadYClasses,
|
|
25
|
+
cardTitleClasses,
|
|
26
|
+
type DisplayControlThemeMode,
|
|
27
|
+
type NavListSectionDef,
|
|
28
|
+
type TaskRowsColumn,
|
|
29
|
+
} from "@thewhatmatters/wmds";
|
|
30
|
+
|
|
31
|
+
const sections: NavListSectionDef[] = [
|
|
32
|
+
{
|
|
33
|
+
items: [
|
|
34
|
+
{ id: "dashboard", label: "Dashboard", icon: <LayoutDashboard strokeWidth={1.75} /> },
|
|
35
|
+
{ id: "campaigns", label: "Campaigns", icon: <Megaphone strokeWidth={1.75} />, count: 12 },
|
|
36
|
+
{ id: "creators", label: "Creators", icon: <Users strokeWidth={1.75} /> },
|
|
37
|
+
{ id: "reports", label: "Reports", icon: <ChartColumn strokeWidth={1.75} /> },
|
|
38
|
+
],
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
label: "Workspace",
|
|
42
|
+
items: [
|
|
43
|
+
{ id: "library", label: "Library", icon: <FolderOpen strokeWidth={1.75} /> },
|
|
44
|
+
{ id: "invoices", label: "Invoices", icon: <FileText strokeWidth={1.75} /> },
|
|
45
|
+
{ id: "settings", label: "Settings", icon: <Settings strokeWidth={1.75} /> },
|
|
46
|
+
],
|
|
47
|
+
},
|
|
48
|
+
];
|
|
49
|
+
|
|
50
|
+
const columns: TaskRowsColumn[] = [
|
|
51
|
+
{ id: "title", header: "Campaign" },
|
|
52
|
+
{ id: "waiting", header: "Waiting on you" },
|
|
53
|
+
{ id: "metric", header: "Live posts", align: "end" },
|
|
54
|
+
];
|
|
55
|
+
|
|
56
|
+
const wellClasses = [
|
|
57
|
+
"flex flex-col",
|
|
58
|
+
cardLayoutBodyOccupantPadYClasses,
|
|
59
|
+
cardLayoutBodyOccupantInsetXClasses,
|
|
60
|
+
].join(" ");
|
|
61
|
+
|
|
62
|
+
function themeServerSnapshot(): DisplayControlThemeMode {
|
|
63
|
+
return "auto";
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
interface PortalDashboardProps {
|
|
67
|
+
defaultSidebarOpen?: boolean;
|
|
68
|
+
defaultAsideOpen?: boolean;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
export function PortalDashboard({
|
|
72
|
+
defaultSidebarOpen = true,
|
|
73
|
+
defaultAsideOpen = false,
|
|
74
|
+
}: PortalDashboardProps) {
|
|
75
|
+
const [activeId, setActiveId] = useState("dashboard");
|
|
76
|
+
const [asideOpen, setAsideOpen] = useState(defaultAsideOpen);
|
|
77
|
+
const theme = useSyncExternalStore(subscribeDisplayTheme, readDisplayTheme, themeServerSnapshot);
|
|
78
|
+
|
|
79
|
+
return (
|
|
80
|
+
<AppShell
|
|
81
|
+
title="Dashboard"
|
|
82
|
+
defaultSidebarOpen={defaultSidebarOpen}
|
|
83
|
+
asideOpen={asideOpen}
|
|
84
|
+
onAsideOpenChange={setAsideOpen}
|
|
85
|
+
asideTitle="Stir in strength"
|
|
86
|
+
asideDescription="Campaign details"
|
|
87
|
+
brand={
|
|
88
|
+
<>
|
|
89
|
+
<Avatar name="WhatMatters" size="sm" />
|
|
90
|
+
<span className="type-label text-fg">WhatMatters</span>
|
|
91
|
+
</>
|
|
92
|
+
}
|
|
93
|
+
sidebar={
|
|
94
|
+
<NavList
|
|
95
|
+
aria-label="Portal"
|
|
96
|
+
className="w-full"
|
|
97
|
+
sections={sections}
|
|
98
|
+
activeId={activeId}
|
|
99
|
+
onSelect={setActiveId}
|
|
100
|
+
/>
|
|
101
|
+
}
|
|
102
|
+
sidebarFooter={
|
|
103
|
+
<div className="flex items-center justify-between gap-3">
|
|
104
|
+
<span className="type-label">Appearance</span>
|
|
105
|
+
<DisplayControls
|
|
106
|
+
controls="theme"
|
|
107
|
+
aria-label="Appearance"
|
|
108
|
+
theme={theme}
|
|
109
|
+
onThemeChange={commitDisplayTheme}
|
|
110
|
+
/>
|
|
111
|
+
</div>
|
|
112
|
+
}
|
|
113
|
+
header={
|
|
114
|
+
<>
|
|
115
|
+
<Button role="secondary" size="sm" icon={<Download strokeWidth={2} />} className="max-sm:!hidden">
|
|
116
|
+
Export
|
|
117
|
+
</Button>
|
|
118
|
+
<Button role="primary" size="sm" onClick={() => setAsideOpen(true)}>
|
|
119
|
+
Details
|
|
120
|
+
</Button>
|
|
121
|
+
</>
|
|
122
|
+
}
|
|
123
|
+
aside={
|
|
124
|
+
<DescriptionList rule="dotted">
|
|
125
|
+
<DescriptionList.Item name="Status">
|
|
126
|
+
<Badge status="success" dot>Active · day 41</Badge>
|
|
127
|
+
</DescriptionList.Item>
|
|
128
|
+
<DescriptionList.Item name="Creators">22</DescriptionList.Item>
|
|
129
|
+
<DescriptionList.Item name="Waiting">4 over 5 days</DescriptionList.Item>
|
|
130
|
+
<DescriptionList.Item name="Live posts">49</DescriptionList.Item>
|
|
131
|
+
</DescriptionList>
|
|
132
|
+
}
|
|
133
|
+
>
|
|
134
|
+
<div className="grid gap-6">
|
|
135
|
+
<Stat.Group aria-label="Key figures" columns={4}>
|
|
136
|
+
<Stat label="Live posts" value="49" trend={{ value: "+12.5%", direction: "up" }} context="vs 43 last month" />
|
|
137
|
+
<Stat label="Creators" value="128" trend={{ value: "+4.1%", direction: "up" }} context="vs 123 last month" />
|
|
138
|
+
<Stat label="Reach" value="256K" trend={{ value: "-1.2%", direction: "down" }} context="vs 259K last month" />
|
|
139
|
+
<Stat label="Waiting on you" value="26" trend={{ value: "0%", direction: "neutral" }} context="across 3 campaigns" />
|
|
140
|
+
</Stat.Group>
|
|
141
|
+
<section aria-labelledby="needs-you-heading">
|
|
142
|
+
<Card>
|
|
143
|
+
<Card.Header start={<h2 id="needs-you-heading" className={cardTitleClasses}>Campaigns that need you</h2>} />
|
|
144
|
+
<Card.Body>
|
|
145
|
+
<div className={wellClasses}>
|
|
146
|
+
<TaskRows variant="table" columns={columns} empty="Nothing waiting">
|
|
147
|
+
<TaskRows.Row
|
|
148
|
+
title="Stir in strength"
|
|
149
|
+
href="/campaigns/stir"
|
|
150
|
+
status={{ tone: "success", label: "Active · day 41" }}
|
|
151
|
+
waiting={{ label: "22 creators", detail: "4 waiting over 5 days" }}
|
|
152
|
+
metric={{ value: "49", detail: "12 this week" }}
|
|
153
|
+
/>
|
|
154
|
+
<TaskRows.Row
|
|
155
|
+
title="Healthier every day"
|
|
156
|
+
href="/campaigns/healthier"
|
|
157
|
+
status={{ tone: "warning", label: "Open · 2d" }}
|
|
158
|
+
waiting={{ label: "4 creators", detail: "all within 48h target" }}
|
|
159
|
+
metric={{ value: "10", detail: "2 this week" }}
|
|
160
|
+
/>
|
|
161
|
+
<TaskRows.Row
|
|
162
|
+
title="Summer launch"
|
|
163
|
+
href="/campaigns/summer"
|
|
164
|
+
status={{ tone: "destructive", label: "Paused · 9d" }}
|
|
165
|
+
waiting={{ label: "9 creators", detail: "brief needs approval" }}
|
|
166
|
+
metric={{ value: "3", detail: "none this week" }}
|
|
167
|
+
/>
|
|
168
|
+
</TaskRows>
|
|
169
|
+
</div>
|
|
170
|
+
</Card.Body>
|
|
171
|
+
</Card>
|
|
172
|
+
</section>
|
|
173
|
+
</div>
|
|
174
|
+
</AppShell>
|
|
175
|
+
);
|
|
176
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// @thewhatmatters/wmds@0.4.
|
|
1
|
+
// @thewhatmatters/wmds@0.4.28 · Pattern — dropdown row
|
|
2
2
|
// Storybook: Components/Avatar → Pattern — dropdown row (?path=/story/components-avatar--dropdown-row)
|
|
3
3
|
// Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// @thewhatmatters/wmds@0.4.
|
|
1
|
+
// @thewhatmatters/wmds@0.4.28 · Pattern — outline tags
|
|
2
2
|
// Storybook: Components/Badge → Pattern — outline tags (?path=/story/components-badge--outline-tags)
|
|
3
3
|
// Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
|
|
4
4
|
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// @thewhatmatters/wmds@0.4.28 · Pattern — status pill
|
|
2
|
+
// Storybook: Components/Badge → Pattern — status pill (?path=/story/components-badge--status-pill)
|
|
3
|
+
// Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
|
|
4
|
+
|
|
5
|
+
import { Badge } from "@thewhatmatters/wmds";
|
|
6
|
+
import { Calendar, CircleCheck } from "lucide-react";
|
|
7
|
+
|
|
8
|
+
export function RoutineStatus() {
|
|
9
|
+
return (
|
|
10
|
+
<div className="flex flex-wrap items-center gap-2">
|
|
11
|
+
<Badge status="active" dot>
|
|
12
|
+
Active
|
|
13
|
+
</Badge>
|
|
14
|
+
<Badge status="idle" icon={<Calendar strokeWidth={2} />}>
|
|
15
|
+
Every 2 days
|
|
16
|
+
</Badge>
|
|
17
|
+
<Badge status="idle" icon={<CircleCheck strokeWidth={2} />}>
|
|
18
|
+
Last checked 1d ago
|
|
19
|
+
</Badge>
|
|
20
|
+
<Badge status="success" dot>
|
|
21
|
+
Succeeded
|
|
22
|
+
</Badge>
|
|
23
|
+
<Badge status="failed" dot>
|
|
24
|
+
Failed
|
|
25
|
+
</Badge>
|
|
26
|
+
<Badge status="warning" dot>
|
|
27
|
+
Needs a look
|
|
28
|
+
</Badge>
|
|
29
|
+
</div>
|
|
30
|
+
);
|
|
31
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// @thewhatmatters/wmds@0.4.
|
|
1
|
+
// @thewhatmatters/wmds@0.4.28 · Pattern — with avatar
|
|
2
2
|
// Storybook: Components/Badge → Pattern — with avatar (?path=/story/components-badge--with-avatar)
|
|
3
3
|
// Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
|
|
4
4
|
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
// @thewhatmatters/wmds@0.4.28 · Pattern — page in bands
|
|
2
|
+
// Storybook: Components/Band → Pattern — page in bands (?path=/story/components-band--page-in-bands)
|
|
3
|
+
// Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
|
|
4
|
+
|
|
5
|
+
import { Band, Button } from "@thewhatmatters/wmds";
|
|
6
|
+
|
|
7
|
+
export function PageInBandsExample() {
|
|
8
|
+
return (
|
|
9
|
+
<main className="grid-page !py-0">
|
|
10
|
+
<Band tone="inverse" spacing="lg" aria-labelledby="hero-title">
|
|
11
|
+
<div className="col-span-full flex flex-col gap-6 lg:col-span-10">
|
|
12
|
+
<h1 id="hero-title" className="type-display-hero text-fg">
|
|
13
|
+
Smoke and chili
|
|
14
|
+
</h1>
|
|
15
|
+
<p className="type-reading text-muted">Wood-fired tacos on East Cesar Chavez, open late.</p>
|
|
16
|
+
<div className="flex flex-wrap gap-2">
|
|
17
|
+
<Button role="primary">Book a table</Button>
|
|
18
|
+
<Button role="secondary">See the menu</Button>
|
|
19
|
+
</div>
|
|
20
|
+
</div>
|
|
21
|
+
</Band>
|
|
22
|
+
<Band aria-labelledby="menu-title">
|
|
23
|
+
<h2 id="menu-title" className="type-display-xl col-span-full text-fg">
|
|
24
|
+
The menu
|
|
25
|
+
</h2>
|
|
26
|
+
<p className="type-reading col-span-full text-muted md:col-span-4">Six tacos, two salsas, one mezcal list.</p>
|
|
27
|
+
</Band>
|
|
28
|
+
<Band tone="field" aria-labelledby="catering-title">
|
|
29
|
+
<h2 id="catering-title" className="type-display-1 col-span-full text-fg md:col-span-6">
|
|
30
|
+
Catering for forty
|
|
31
|
+
</h2>
|
|
32
|
+
<div className="col-span-full flex flex-col items-start gap-4 md:col-span-2">
|
|
33
|
+
<p className="type-body text-fg">From $1,500, staff included.</p>
|
|
34
|
+
<Button role="outline">Ask for a date</Button>
|
|
35
|
+
</div>
|
|
36
|
+
</Band>
|
|
37
|
+
</main>
|
|
38
|
+
);
|
|
39
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// @thewhatmatters/wmds@0.4.
|
|
1
|
+
// @thewhatmatters/wmds@0.4.28 · Pattern — editorial
|
|
2
2
|
// Storybook: Components/Breadcrumb → Pattern — editorial (?path=/story/components-breadcrumb--editorial)
|
|
3
3
|
// Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// @thewhatmatters/wmds@0.4.
|
|
1
|
+
// @thewhatmatters/wmds@0.4.28 · Pattern — long path
|
|
2
2
|
// Storybook: Components/Breadcrumb → Pattern — long path (?path=/story/components-breadcrumb--long-path)
|
|
3
3
|
// Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// @thewhatmatters/wmds@0.4.
|
|
1
|
+
// @thewhatmatters/wmds@0.4.28 · Pattern — path
|
|
2
2
|
// Storybook: Components/Breadcrumb → Pattern — path (?path=/story/components-breadcrumb--path)
|
|
3
3
|
// Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// @thewhatmatters/wmds@0.4.
|
|
1
|
+
// @thewhatmatters/wmds@0.4.28 · Pattern — router links
|
|
2
2
|
// Storybook: Components/Breadcrumb → Pattern — router links (?path=/story/components-breadcrumb--router-links)
|
|
3
3
|
// Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// @thewhatmatters/wmds@0.4.
|
|
1
|
+
// @thewhatmatters/wmds@0.4.28 · Pattern — copy button
|
|
2
2
|
// Storybook: Components/Button/Button → Pattern — copy button (?path=/story/components-button-button--copy-button)
|
|
3
3
|
// Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// @thewhatmatters/wmds@0.4.
|
|
1
|
+
// @thewhatmatters/wmds@0.4.28 · Pattern — destructive action
|
|
2
2
|
// Storybook: Components/Button/Button → Pattern — destructive action (?path=/story/components-button-button--destructive-action)
|
|
3
3
|
// Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// @thewhatmatters/wmds@0.4.
|
|
1
|
+
// @thewhatmatters/wmds@0.4.28 · Pattern — external link
|
|
2
2
|
// Storybook: Components/Button/Button → Pattern — external link (?path=/story/components-button-button--external-link)
|
|
3
3
|
// Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// @thewhatmatters/wmds@0.4.
|
|
1
|
+
// @thewhatmatters/wmds@0.4.28 · Pattern — ghost action
|
|
2
2
|
// Storybook: Components/Button/Button → Pattern — ghost action (?path=/story/components-button-button--ghost-action)
|
|
3
3
|
// Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// @thewhatmatters/wmds@0.4.
|
|
1
|
+
// @thewhatmatters/wmds@0.4.28 · Pattern — inverse action
|
|
2
2
|
// Storybook: Components/Button/Button → Pattern — inverse action (?path=/story/components-button-button--inverse-action)
|
|
3
3
|
// Show code — copy verbatim and keep this header; upgrades find pasted patterns by it.
|
|
4
4
|
|