* Allow adding a label for each specific point in a chart
* Update test fixtures
* Update README with new data format
* Simplify getPreviousDate function code
* Update tooltip dates format
* Add new prop to charts 'tooltipTitle' to override the date tooltip title
* Fix totals not being calculated in charts legend
* Fix JS error when hiding lines in chart
* Fix a couple of issues with chart README
* Add quotes around prop names
* Remove unused variable
* Remove colon after tooltip label
* Disable compare button if less than 2 items are selected
* Add a placeholder prop to the Search component
* Pass a placeholder label from filter configs for Search
* Add support for a label in Search
* Add Clear All link to reset comparison card
* Add a label when compare button is disabled
* Abstract the conditional tooltip/disabled button logic to a new component
* Add helpText as a customizable label
* Add icon to the search field
* Remove the parameter from query by passing in undefined
* Update packages to latest versions
* Update snapshot to match updated jest format
* Add missing packages
* Pin docsify-cli to GitHub commit with security fix
* Update engines settings
* Update packages
Again, some things are already out of date from last week
* Regenerate docs
* Switch to withInstanceId higher order component
* Add checkboxes to the rows in a TableCard, if a compareBy prop is set
* Add Compare button to update query param
* Populate the selected rows from the query parameter
* Update compare filter display & selected table rows when the query changes
* Skip displaying tags if the label is null/undefined
* Style table header with compare button, search placeholder
* Prevent setting just an ID list as the state, as this will wipe out already-fetched tag labels
* Update docs
* Shortcut out of fetching tag labels if the query is empty
* Add a mock table to Products report
* Move onQueryChange to a helper function in nav-utils
* Add function to parse out ID lists from a query parameter
* Add a default value
Prevents undefined query params from erroring on the `.split`
* Use numberFormat rather than forcing type conversion, fix table header name
* Fix duplicate export caused by merge conflict
* remove circles on more than 50 x points
* x-axis interval spacing
* factorial spacing of x-axis ticks
* limit pipes too
* catch recursion infinity issue and add layout
* Hide tooltip when mouse leaves chart bars
* Allow focus on chart lines/bars and show tooltip
* Extract position calculation to a function
* Make columns focusable instead of individual points in line charts
* Make table font-size accessible
* Make TopSellingProducts table load only five products
* Make empty message on TopSellingProducts table the same height than the table
* Update breaking test
* Use font-size mixin in table items/header
react-dates developers recommend using airbnb-browser-shims, but doing some
testing I found loading the required polyfills individually instead of the
entire Airbnb Browser Shims package produces smaller builds.
* Add a new component with product search for the compare card
* Get product names from API when passed through URL
* Abstract out the products-related code into filter settings
* Update filters to provide multiple comparisons
Alternative to the “Compare [dropdown]” approach
* Update documentation
* Wipe selected items when the compare-type is updated
* Update labels & order of items in filter dropdown
* Add getLabels prop & description
* Fix Summary values not visible with IE11
* Fix Summary grid for IE11
* Move grid position mixin to _mixins file, so it can be used for other elements
* Remove set-grid-positions mixin and improve code understandability
* Add loading indiciators for the revenue report.
* Improve accessibility, and fix up some documentation comments.
* Fix top border on mobile
* Add EmptyContent Component and revenue error/empty states. (https://github.com/woocommerce/woocommerce-admin/pull/348)
* Add EmptyContent Component and revenue error/empty states.
* Move relative image handling to ImageAsset, combine secondary and primary action rendering, add some missing isRequired proptypes, add empty error handling.
* Handle PR Feedback: Clean up button css, set a default for illustration, fix deprecation typo, some code cleanup.
Update TopSellingProducts table API connection to correctly work
with the new selectors response format introduced in woocommerce/woocommerce-admin#316.
* Add CSV download to Revenue table
* Set revelant file name for revenue CSV file download
* Add package-lock.json
* Move CSV download logic inside /lib/
* Remove 'totals' from table CSV
* Check parameters are arrays in generateCSVDataFromTable
* Add @TODO comment about downloading large sets of data
* Add generated docs to repo, add command to regenerate docs
* Add docsify to render markdown files & search from GitHub.io
* Add prop type description if it exists
This property is only filled in on descendent proptypes (items in a shape, for example)
* Vaguely woo-themed
* Tweak spacing in markdown file, add final newline to each file
* Switch all components to default exports
This ensures we can read all components for documentation generation (plus, standardizing is good)
* Add documentation to component file
* Fix table exports
* Move readme docs into inline docs
Includes updating new props, adding prop shapes
* Add doc-generation scripts to pull exported component docs into folder
* Remove key propType, causing react special-keys warning
* Fix proptype
* Update incorrect comment
* Remove template import, we can just use string concat
* Fix typo, update docs
* Validate component with helper function
Fixes compat issue with react-docgen
* Switch all components to default exports
This ensures we can read all components for documentation generation (plus, standardizing is good)
* inValidDays -> invalidDays
Invalid is a single word, so by capitalization rules the V should be lowercase
* Export child-components of Chart
* Fix table exports
* Connect Top Selling Products table to the API
* Add tests to TopSellingProducts
* Prepare TopSellingProducts component to render loading/error messages
* Add `Search` & `Tag` components
* Fork the Autocomplete component to support a single completer & input field
* Add results inline, not as popover
* Highlight search term in results list
* Check if the item is already selected
* Update docs
* Remove unused properties
* Remove temporary max-width
Once merged, we can tweak real styles
* Use stringifyQuery
* Filters: Remove filterPaths, add path as property to filters object
* Set a default path, so we only need to configure it for changed paths
* Fix nav & filter fetching for nested lists
* Add “go back” functionality to all subfilter lists, not only ones with components set
* Make label optional on component options
* Update documentation to remove mention of filterpaths
* Add documentation on the filters structure
* Create page helper function
* Enable filtering of report content for extensions to inject new reports
* Add error boundary
* Add documentation for the reports filter
* Importing all components from a root components file
* Update Ratings component to avoid circular dependencies, fix tests
* Export components on `wc.components`, use this for importing
* Move react-dates initialize to the components file
* Push query changes to history
Fixes an issues where native a links do not update the query in `history`
* Update test config for new @woocommerce/components path
* Update chart components import
* Merge simple/complex & alphabetize by first exported name
* Add a readme with info about how to call these components
* Adds data layer functions for fetching the revenue report API
* Handle PR feedback: jsDoc updates, create query string util function, api namespace constat.
* Serialize query args in a consistent order
Add new function to merge query params into a given path
Add a new ReportFilter component, which extracts the date picker & filter picker
Add basic framework for product search
Add new AdvancedFilter to filter options
Remove duplicate CSS
Use library function for merging new query+path
Move filters folder out of reports
Use filter constant
Add README
Add path & query helper functions
Move filters into component folder
Switch to getPath/getQuery helpers
Update classes & merge styles
Remove query/path from READMEs
Add a readme to nav-utils
* Table: Add a hover state for rows
* Expand target area for table links to take over entire cell
* Add a purple link style for default links
* Increase contrast for links-on-hover-color
* Add “isNumeric” column identifier & right-align these cols
* Update style of dropdown on smaller screens
* Switch chevron orientation when dropdown is open
* Update font size/spacing in the dropdown
* animate the chevron
* Switch headers to an object, use `header.label` to display title
* Change sort function to update a query param
* Clean up README
* Get the currently sorted column from the query
* Don’t allow toggling of required columns
* Add in direction-sorting (ascending/descending)
* Switch to aria-describedby so that the actual column name is read aloud
* Fix chevron orientation
* Handle hiding a sorted column
* Fall back to sorting by first item if no defaultSort col is set
* Fix arrow orientation again
* Update order_by to orderby to match wp_query param name
* Move non-reset SCSS to a new file
* Split shared files and “meta” files into two folders
This also creates two new base scss files for the different app vs embedded CSS files
* Move notice & embed-specific css out of reset
* Update README with folder structure notes
* Move isMobileViewport to a helper function in lib
* Switch SummaryList to use navigable menu to support up/down (or left/right) arrow key navigation
* Switch to a dropdown menu/button combo when on a smaller screen
* Ensure aria role & href are only added if the item is a link
* Wrap the entire SummaryNumber in a link to match non-mobile use
* Update card content to be single line on mobile
* Add label to the popover title
* Make SummaryNumbers edge-to-edge on smaller screens
* Switch to the collapsed/dropdown view on screens <1100px
* Adjust offset of arrow icon
* Update mock data to reflect latest API format
* Update Table component to create a TableCard, TableSummary, and plain Table
Use the TableCard container to display mocked revenue data
* Add horizontal scroll only on the table itself
* Remove `sortable` prop, base column sortability on whether the `value` is true/false
Checking against a strict false should prevent any real 0 or ‘’ values from triggering unsortability
* Add a checkbox to the demo table
* Update accepted props
* Update README for TableCard, Table, and TableSummary
* Update README
* Fix confused defaults
* Add first pass + demo of updated SummaryNumber
* Add new larger screen breakpoint
* Remove the max-width from the content wrapper
* Update previous label text
* Fix the border colors/sizing
* Create a mixin to generate the grid template pattern
* Add green/red colors based on trend, with prop to reverse
In some cases, a downward trend is good (ex, refunds), so we want to be able to color those green
* Move selected number containers up to avoid the double-border
* Document className logic, and apply 10-item layout to all cases of 10+ items
* Remove layout notes
* Update component docs, clean up optional displays
* Update style of SummaryNumbers inside cards
* Filter out any `false` or otherwise unrenderable children
* Fix card borders
* Update dashboard component to use new props
* Check that prevValue is defined
a prevValue of 0 was incorrectly outputting `0` for both label and value
* Update no-change datapoint style
* Update default data values
Rather than hiding the prevValue/label or delta section if these are not passed through, use default N/A placeholders
* Change SummaryList & SummaryNumber to a list of links
Add active, hover, and focus styles
* Add a short help text for screen reader users
* Add href to README
* Add the href prop to the readme example
* Fix border colors
The `nth-of-type` rules need to be on the `li` containers
* Fix font-weights on value & delta
* Wrap the previous label/value when the percentage wraps
D3 Chart: legend component and integration
Thanks for the great feedback. I've made updates and will address a few of the styling (and remove code used for testing) in future PRs. Keep an eye on https://github.com/woocommerce/wc-admin/issues/164 for future work planned on this component.
* Mock up an “API response object” for the inbox notices
* Add in a fake “loading” delay
* Add placeholder mixin from Calypso
* Add a placeholder ActivityCard and styles
* Merge exports of placeholder into ActivityCard
* Add tests for placeholder card
* Update readme
* Switch placeholder content prop to a line count, rather than specific children
* Update tests for new lines prop
* Clear timeout when the inbox unmounts
* Add a test for 0 lines
* Activity Panel Outbound Link
* Address PR Feedback: Pass through additional props on ActivityOutboundLink, add comment for activity panel wrapping padding, fix README naming, and use $gap $gutter trick for outbound link padding.
* ActivityCard: Update to match new activity panel designs
* Add spacing rhythm system, add the rest of the base colors
* Add styles for the ActivityCard
* Use the new ActivityCard in the orders panel
* Update text color & size
* Disable timestamped test (string changes based on date)
* Use moment to generate a relative timestamp to match “3 days ago” snapshot
* Rename spacing vars
The difference between gap and gap-med is not intuitive, so let’s switch to -small, and change -small to -smallest.
* Fix Accessibility issues: tabpanel behavior, and reduced motion setting
* Move tabindex to <Section /> and add aria-label to the panel
* move role and aria-label to div component
* Move component lifecycle method to top of component
* Update rows if the rows passed in via props have changed
This lets us bring in API changes, but will wipe out any sorting (revisit in a later PR, perhaps)
* Pass rows through to Table even if we don’t have rows loaded yet
Adds todo comment to remind that we should come back to add a placeholder/loading state
* Update semantics for ActivityPanel
Move the Section wrap to the top-level of ActivityPanel
Use an `aside` for the panel, which will expose the panel as a “complementary” in landmark nav
Add a heading for the Section/aside, which also fixes the heading hierarchy
* Update textdomains to match woo-dash change
* Switch panel container to a `div` so that clickOutside works as expected
* Activity Panel Updates: Unread bubble, animations, cleaned up styles and mobile handling.
* * Color and animation definition cleanup
* Fix animation for tab switch
* Clicking outside the panel will close it
* Hover bubble border
* Aria attributes/tablist
* Fix mobile styles
* Add pagination component
* Refactor query string/route updating so it can be done using a nav-utils helper function
* Fix typo and adjust accessibility attributes for error handling and current page
* Update styles
* Makes the header/sidebar component embeddable on other WooCommerce pages.
* Some mobile CSS fixes to make sure the header bar displays properly on smaller screensizes.
* Refactor notices and pull out success message from the panel
* Handle positioning of screen options, update message handling, css fixes and header height increase to match mockups, some code cleanup
* Only enable the header embed on normal/classic WooCommerce pages, and provide a method for plugins to opt-in.
This change also builds nicer breadcrumbs for pages.
* Code cleanup and consistent naming.
* Some spacing cleanup. Also updated the page title method to correctly set page titles in PHP for classic WC pages
* Add H and Section components for context-aware headings
* Switch to using the new context-aware heading and section components
* Style header by class name, not heading level
* Add our client dir to the modules list for Jest
We already have this setting in webpack, but Jest doesn’t pick up on that
* Update package-lock
* Add data table component
* Add fake data & display revenue on the analytics test report
* Update styling
* Display table inside a card
* Update mock data to be easier to scan for testing ascending/descending
* Fix sorting function to correctly sort all columns
* Check column content before determining “sortability” — objects (links) are not sortable
* Update README
* Add translation to scroll helper text
* Add SummaryList and SummaryNumber components
* Add a demo of SummaryList/SummaryNumbers
* Pages without the sidebar displayed can use a larger max-width
* Adjust layout styles for smaller screens
* Add an activity list component which will fetch and display the respective tabs’ content
* Add currency and order calculation helpers from Calypso
* Add date support to ActivityCard
* Fix the product label when there’s only 1 product
* Only display the orders on the orders tab
* Remove demo component
* PR feedback
- Switch to function components
- Check isLoading for showing loading state
- use v3 of WC API
- Remove getOrderShippingMethod (it’s not a tax-related function)
- Switch to array.reduce
- Add `|| 0` protect to all possible API-based calculations
* Display WP notices behind a button
* Expand WP notices inline when the WP toggle is clicked
* Update setState calls
* Fix string display when only 1 notice is present
* Remove display:none that snuck in during rebase
* Add a label “Total” to the count balloon
* Update README
* Switch to an aria-label, so that we can set a fully translatable string
* Update README to make label default clear
* Add CSS naming conventions following Gutenberg’s standards
* Update `woo-dashboard` to `woocommerce-layout`
* Update admin notice container to new classname standard
* Add an ActivityCard component
* Add font-size mixin, hover-state mixin, and a fake base padding
* Style the ActivityCard
* Style the card image
* Add README
* Address PR feedback
- Add className prop
- children propType is required
- Link to a real image
* Updates wp-admin navigation structure: Dashboard is now under WooCommerce, and Analytics is moved visually under WooCommerce
* Fix focus padding issue and make sure arrow displays for the current submenu
* Add agenda widget with accordion
* Add AgendaItem, README, and do some cleanup
* Handle PR Feedback: Rename AgendaAccordion to AgendaGroup, accept an href prop for a non-accordion state. Accept onClick or href for AgendaItem, a11y fixes, fix some typos, update examples & README.
* Address PR Feedback: Rename AgendaGroup to AgenaHeader, use a direct link for href mode, use IconButton instead of Button & Dashicon, pull out link rendering to its own method. Use <Link /> for app links.
* Combine box-shadow focus/hover rule and add transparent background
* Make `count` optional
* Refactor dashboard layout into new Layout components
* Style the new layout
* Use Slot/Fill for the Header component
* Center cards, fixed size for sidebar
* Only set the box-sizing on things within our app
* Make app the full height of the wp-admin frame
* Add styles to show/hide sidebar
* Toggle the sidebar
* Wrap router around entire Layout, use page setting to show/hide sidebar on page
* Fix the styles on show/hide buttons, add title & close button to the sidebar
* Use a min-height on visible sidebars
* Add/update READMEs
* Update space between main content & sidebar
* Add Jest testing with Gutenberg as a dependency
* Add test using Enzyme
* Update for “element” moving
Something also must have moved api-request, so we mock that import now
* Add EllipsisMenu & MenuItem
* Add styles for menu items
* Don’t disable all keyboard interactions
Was breaking tab
* Move EllipsisMenu to client folder
* Clean up unused props & focus state
* Add an unfocusable MenuTitle component
* Update EllipsisMenu exports so that all menu-related components can be pulled from EllipsisMenu
* Make strings translatable
Even demo content should use translation functions :)
* Add README
* Fix arrow position
* Add box-sizing back to global reset
* Adds SCSS color variables and breakpoint mixins
* Use webpack to pull in shared CSS
* Move notices reset rule to wpadmin-reset
* Prefix breakpoints, colors, and wpadmin reset
* Add a Card component
* Add basic styling
* Update example card
* `instanceOf` doesn’t work like expected, but we can require a specific component by looking at shape + object.type
* Use module-relative paths for components
* Implements a header component with breadcrumbs
* Handle PR Feedback. Also moves admin URL to an object, and adds a README
* README: Card --> Header typo
* Add Gutenberg prereq to the README
I installed `woo-dash` without Gutenberg installed and ended up getting a fatal error. We should probably fix that as well/handle that better, but if we are going to rely on Gutenberg for the feature plugin we should mention it in the README.
* Add mention of WooCommerce as a prereq