├── .nvmrc ├── lang └── events-gutenberg.pot ├── plugins ├── events-pro │ ├── src │ │ ├── styles │ │ │ ├── editor │ │ │ │ └── index.js │ │ │ ├── additional-fields │ │ │ │ ├── frontend.js │ │ │ │ └── frontend.pcss │ │ │ └── admin │ │ │ │ ├── additional-fields.js │ │ │ │ └── additional-fields.pcss │ │ ├── modules │ │ │ ├── elements │ │ │ │ ├── panel │ │ │ │ │ └── style.pcss │ │ │ │ ├── type-picker │ │ │ │ │ ├── frequency-select │ │ │ │ │ │ └── style.pcss │ │ │ │ │ └── style.pcss │ │ │ │ ├── from-time-range-picker │ │ │ │ │ └── style.pcss │ │ │ │ ├── recurring-to-date-time-picker │ │ │ │ │ └── style.pcss │ │ │ │ ├── on-date-picker │ │ │ │ │ ├── style.pcss │ │ │ │ │ └── __tests__ │ │ │ │ │ │ └── template.spec.js │ │ │ │ ├── row │ │ │ │ │ ├── style.pcss │ │ │ │ │ ├── __tests__ │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ └── element.spec.js.snap │ │ │ │ │ │ └── element.spec.js │ │ │ │ │ └── element.js │ │ │ │ ├── single-to-date-time-picker │ │ │ │ │ └── style.pcss │ │ │ │ ├── attribute-sync │ │ │ │ │ ├── __tests__ │ │ │ │ │ │ └── __snapshots__ │ │ │ │ │ │ │ └── template.spec.js.snap │ │ │ │ │ └── template.js │ │ │ │ ├── fieldset │ │ │ │ │ ├── style.pcss │ │ │ │ │ ├── __tests__ │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ └── element.spec.js.snap │ │ │ │ │ │ └── element.spec.js │ │ │ │ │ └── element.js │ │ │ │ ├── day-of-week-picker │ │ │ │ │ ├── style.pcss │ │ │ │ │ └── day-of-week │ │ │ │ │ │ └── __tests__ │ │ │ │ │ │ └── element.spec.js │ │ │ │ ├── series-ends │ │ │ │ │ └── style.pcss │ │ │ │ ├── remove-field │ │ │ │ │ ├── style.pcss │ │ │ │ │ ├── __tests__ │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ └── element.spec.js.snap │ │ │ │ │ │ └── element.spec.js │ │ │ │ │ └── element.js │ │ │ │ ├── labeled-row │ │ │ │ │ ├── style.pcss │ │ │ │ │ └── __tests__ │ │ │ │ │ │ ├── element.spec.js │ │ │ │ │ │ └── __snapshots__ │ │ │ │ │ │ └── element.spec.js.snap │ │ │ │ ├── label │ │ │ │ │ ├── __tests__ │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ └── element.spec.js.snap │ │ │ │ │ │ └── element.spec.js │ │ │ │ │ ├── style.pcss │ │ │ │ │ └── element.js │ │ │ │ ├── add-field │ │ │ │ │ └── __tests__ │ │ │ │ │ │ ├── element.spec.js │ │ │ │ │ │ └── __snapshots__ │ │ │ │ │ │ └── element.spec.js.snap │ │ │ │ ├── exception-add-field │ │ │ │ │ ├── __tests__ │ │ │ │ │ │ ├── element.spec.js │ │ │ │ │ │ └── __snapshots__ │ │ │ │ │ │ │ └── element.spec.js.snap │ │ │ │ │ └── element.js │ │ │ │ ├── recurring-add-field │ │ │ │ │ ├── __tests__ │ │ │ │ │ │ ├── element.spec.js │ │ │ │ │ │ └── __snapshots__ │ │ │ │ │ │ │ └── element.spec.js.snap │ │ │ │ │ └── element.js │ │ │ │ ├── month-picker │ │ │ │ │ └── month-tag │ │ │ │ │ │ └── __tests__ │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ └── element.spec.js.snap │ │ │ │ │ │ └── element.spec.js │ │ │ │ └── multi-day-checkbox │ │ │ │ │ └── __tests__ │ │ │ │ │ ├── element.spec.js │ │ │ │ │ └── __snapshots__ │ │ │ │ │ └── element.spec.js.snap │ │ │ ├── data │ │ │ │ ├── prefix.js │ │ │ │ ├── blocks │ │ │ │ │ ├── additional-fields │ │ │ │ │ │ ├── reducers │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── index.js │ │ │ │ │ ├── sagas.js │ │ │ │ │ ├── exception │ │ │ │ │ │ ├── __tests__ │ │ │ │ │ │ │ ├── types.spec.js │ │ │ │ │ │ │ ├── options.spec.js │ │ │ │ │ │ │ └── __snapshots__ │ │ │ │ │ │ │ │ └── options.spec.js.snap │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── recurring │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ └── types.js │ │ │ │ │ └── reducer.js │ │ │ │ ├── status │ │ │ │ │ ├── __tests__ │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ ├── types.spec.js.snap │ │ │ │ │ │ │ ├── reducer.spec.js.snap │ │ │ │ │ │ │ ├── actions.spec.js.snap │ │ │ │ │ │ │ └── selectors.spec.js.snap │ │ │ │ │ │ ├── types.spec.js │ │ │ │ │ │ ├── actions.spec.js │ │ │ │ │ │ ├── reducer.spec.js │ │ │ │ │ │ └── selectors.spec.js │ │ │ │ │ ├── actions.js │ │ │ │ │ ├── types.js │ │ │ │ │ ├── index.js │ │ │ │ │ ├── reducer.js │ │ │ │ │ └── selectors.js │ │ │ │ ├── ui │ │ │ │ │ └── index.js │ │ │ │ ├── reducers.js │ │ │ │ ├── index.js │ │ │ │ └── sagas.js │ │ │ └── blocks │ │ │ │ └── additional-fields │ │ │ │ ├── dropdown │ │ │ │ └── index.js │ │ │ │ ├── radio │ │ │ │ └── style.pcss │ │ │ │ ├── checkbox │ │ │ │ ├── style.pcss │ │ │ │ └── settings │ │ │ │ │ └── style.pcss │ │ │ │ ├── elements │ │ │ │ ├── preview │ │ │ │ │ ├── style.pcss │ │ │ │ │ └── __tests__ │ │ │ │ │ │ ├── element.test.js │ │ │ │ │ │ └── __snapshots__ │ │ │ │ │ │ └── element.test.js.snap │ │ │ │ └── index.js │ │ │ │ └── index.js │ │ ├── resources │ │ │ └── icons │ │ │ │ ├── arrow.svg │ │ │ │ └── trash.svg │ │ ├── views │ │ │ └── blocks │ │ │ │ └── additional-fields │ │ │ │ ├── radio.php │ │ │ │ ├── text.php │ │ │ │ ├── checkbox.php │ │ │ │ ├── dropdown.php │ │ │ │ ├── textarea.php │ │ │ │ └── url.php │ │ └── Tribe │ │ │ ├── Blocks │ │ │ └── Additional_Fields.php │ │ │ └── Template │ │ │ └── Admin.php │ ├── .gitignore │ └── scripts │ │ └── linkDependencies ├── events │ ├── src │ │ ├── modules │ │ │ ├── blocks │ │ │ │ ├── event-tags │ │ │ │ │ └── style.pcss │ │ │ │ ├── event-category │ │ │ │ │ └── style.pcss │ │ │ │ ├── event-datetime │ │ │ │ │ ├── hooks │ │ │ │ │ │ └── index.js │ │ │ │ │ └── human-readable-input │ │ │ │ │ │ ├── style.pcss │ │ │ │ │ │ └── __tests__ │ │ │ │ │ │ ├── template.test.js │ │ │ │ │ │ └── __snapshots__ │ │ │ │ │ │ └── template.test.js.snap │ │ │ │ └── classic-event-details │ │ │ │ │ └── event-details-organizers │ │ │ │ │ └── event-details-organizer │ │ │ │ │ ├── style.pcss │ │ │ │ │ └── container.js │ │ │ ├── editor │ │ │ │ ├── utils │ │ │ │ │ └── index.js │ │ │ │ ├── index.js │ │ │ │ └── __tests__ │ │ │ │ │ └── post-types.test.js │ │ │ ├── hoc │ │ │ │ └── index.js │ │ │ ├── data │ │ │ │ ├── search │ │ │ │ │ ├── reducers │ │ │ │ │ │ └── index.js │ │ │ │ │ └── index.js │ │ │ │ ├── details │ │ │ │ │ ├── reducers │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── __tests__ │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ ├── reducer.test.js.snap │ │ │ │ │ │ │ └── thunks.test.js.snap │ │ │ │ │ │ └── types.test.js │ │ │ │ │ ├── index.js │ │ │ │ │ ├── types.js │ │ │ │ │ └── reducer.js │ │ │ │ ├── blocks │ │ │ │ │ ├── organizers │ │ │ │ │ │ ├── reducers │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ ├── block.js │ │ │ │ │ │ │ └── classic.js │ │ │ │ │ │ ├── reducer.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── __tests__ │ │ │ │ │ │ │ └── __snapshots__ │ │ │ │ │ │ │ │ └── selectors.test.js.snap │ │ │ │ │ │ └── types.js │ │ │ │ │ ├── index.js │ │ │ │ │ ├── classic │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── __tests__ │ │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ │ └── reducer.test.js.snap │ │ │ │ │ │ │ └── types.test.js │ │ │ │ │ │ ├── types.js │ │ │ │ │ │ ├── selectors.js │ │ │ │ │ │ ├── actions.js │ │ │ │ │ │ └── reducer.js │ │ │ │ │ ├── price │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── types.js │ │ │ │ │ │ └── selectors.js │ │ │ │ │ ├── sharing │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── website │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── types.js │ │ │ │ │ │ ├── __tests__ │ │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ │ └── reducer.test.js.snap │ │ │ │ │ │ │ └── types.test.js │ │ │ │ │ │ ├── selectors.js │ │ │ │ │ │ ├── actions.js │ │ │ │ │ │ └── reducer.js │ │ │ │ │ ├── venue │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── selectors.js │ │ │ │ │ │ └── types.js │ │ │ │ │ ├── datetime │ │ │ │ │ │ └── index.js │ │ │ │ │ └── reducer.js │ │ │ │ ├── ui │ │ │ │ │ ├── index.js │ │ │ │ │ ├── types.js │ │ │ │ │ ├── selectors.js │ │ │ │ │ └── __tests__ │ │ │ │ │ │ └── types.test.js │ │ │ │ ├── reducers.js │ │ │ │ └── index.js │ │ │ ├── elements │ │ │ │ ├── timezone │ │ │ │ │ └── style.pcss │ │ │ │ ├── edit-link │ │ │ │ │ └── style.pcss │ │ │ │ ├── input │ │ │ │ │ └── style.pcss │ │ │ │ ├── loading │ │ │ │ │ ├── style.pcss │ │ │ │ │ └── index.js │ │ │ │ ├── year-month-form │ │ │ │ │ └── style.pcss │ │ │ │ ├── upsell │ │ │ │ │ └── style.pcss │ │ │ │ ├── terms-list │ │ │ │ │ └── style.pcss │ │ │ │ └── google-map │ │ │ │ │ └── style.pcss │ │ │ └── icons │ │ │ │ ├── website.svg │ │ │ │ ├── tags.svg │ │ │ │ ├── organizer.svg │ │ │ │ ├── sharing.svg │ │ │ │ ├── checkbox-on.svg │ │ │ │ ├── checkbox-off.svg │ │ │ │ └── featured-image.svg │ │ ├── views │ │ │ ├── silence.php │ │ │ └── blocks │ │ │ │ ├── featured-image.php │ │ │ │ ├── event-tags.php │ │ │ │ ├── parts │ │ │ │ └── map.php │ │ │ │ ├── event-category.php │ │ │ │ ├── event-price.php │ │ │ │ ├── event-venue.php │ │ │ │ └── event-website.php │ │ └── styles │ │ │ ├── event-tags │ │ │ ├── frontend.js │ │ │ └── frontend.pcss │ │ │ ├── event-category │ │ │ ├── frontend.js │ │ │ └── frontend.pcss │ │ │ ├── event-datetime │ │ │ └── frontend.js │ │ │ ├── event-links │ │ │ └── frontend.js │ │ │ ├── event-organizer │ │ │ ├── frontend.js │ │ │ └── frontend.pcss │ │ │ ├── event-price │ │ │ └── frontend.js │ │ │ ├── event-venue │ │ │ └── frontend.js │ │ │ ├── event-website │ │ │ ├── frontend.js │ │ │ └── frontend.pcss │ │ │ ├── classic-event-details │ │ │ ├── frontend.js │ │ │ └── frontend.pcss │ │ │ └── style.pcss │ ├── .gitignore │ └── scripts │ │ └── linkDependencies ├── tickets │ ├── .gitignore │ ├── src │ │ ├── styles │ │ │ ├── rsvp │ │ │ │ └── frontend.js │ │ │ ├── attendees │ │ │ │ ├── frontend.js │ │ │ │ └── frontend.pcss │ │ │ ├── tickets │ │ │ │ └── frontend.js │ │ │ ├── index.js │ │ │ └── style.pcss │ │ ├── modules │ │ │ ├── data │ │ │ │ ├── blocks │ │ │ │ │ ├── index.js │ │ │ │ │ ├── ticket │ │ │ │ │ │ ├── reducers │ │ │ │ │ │ │ ├── settings │ │ │ │ │ │ │ │ ├── __tests__ │ │ │ │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ │ │ │ ├── tmp.spec.js.snap │ │ │ │ │ │ │ │ │ │ └── settings.spec.js.snap │ │ │ │ │ │ │ │ │ └── tmp.spec.js │ │ │ │ │ │ │ │ └── tmp.js │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ └── constants.js │ │ │ │ │ ├── attendees │ │ │ │ │ │ ├── __tests__ │ │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ │ ├── reducer.test.js.snap │ │ │ │ │ │ │ │ └── actions.test.js.snap │ │ │ │ │ │ │ ├── reducer.test.js │ │ │ │ │ │ │ └── types.test.js │ │ │ │ │ │ ├── selectors.js │ │ │ │ │ │ ├── types.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── actions.js │ │ │ │ │ │ ├── reducer.js │ │ │ │ │ │ └── sagas.js │ │ │ │ │ ├── rsvp │ │ │ │ │ │ ├── reducers │ │ │ │ │ │ │ └── __tests__ │ │ │ │ │ │ │ │ └── __snapshots__ │ │ │ │ │ │ │ │ └── header-image.test.js.snap │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── reducer.js │ │ │ │ │ └── sagas.js │ │ │ │ ├── reducers.js │ │ │ │ └── index.js │ │ │ ├── blocks │ │ │ │ ├── tickets │ │ │ │ │ ├── controls │ │ │ │ │ │ └── style.pcss │ │ │ │ │ ├── action-buttons │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ └── settings │ │ │ │ │ │ │ └── container.js │ │ │ │ │ ├── __tests__ │ │ │ │ │ │ └── index.test.js │ │ │ │ │ ├── container │ │ │ │ │ │ └── style.pcss │ │ │ │ │ ├── style.pcss │ │ │ │ │ ├── capacity-table │ │ │ │ │ │ ├── utils.js │ │ │ │ │ │ ├── __tests__ │ │ │ │ │ │ │ └── utils.test.js │ │ │ │ │ │ └── schema.js │ │ │ │ │ ├── settings │ │ │ │ │ │ └── container.js │ │ │ │ │ └── availability │ │ │ │ │ │ └── style.pcss │ │ │ │ ├── rsvp │ │ │ │ │ ├── action-buttons │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── __tests__ │ │ │ │ │ │ └── index.test.js │ │ │ │ │ ├── duration-picker │ │ │ │ │ │ └── style.pcss │ │ │ │ │ ├── counters │ │ │ │ │ │ └── style.pcss │ │ │ │ │ ├── settings-dashboard │ │ │ │ │ │ └── style.pcss │ │ │ │ │ ├── duration │ │ │ │ │ │ ├── style.pcss │ │ │ │ │ │ └── template.js │ │ │ │ │ ├── header-image │ │ │ │ │ │ └── style.pcss │ │ │ │ │ ├── attendee-registration │ │ │ │ │ │ └── style.pcss │ │ │ │ │ ├── dashboard │ │ │ │ │ │ └── container.js │ │ │ │ │ ├── inactive-block │ │ │ │ │ │ └── container.js │ │ │ │ │ └── container │ │ │ │ │ │ └── style.pcss │ │ │ │ └── ticket │ │ │ │ │ ├── __tests__ │ │ │ │ │ └── index.test.js │ │ │ │ │ ├── edit-container │ │ │ │ │ └── content │ │ │ │ │ │ ├── attendees-registration │ │ │ │ │ │ └── style.pcss │ │ │ │ │ │ └── advanced-options │ │ │ │ │ │ └── duration │ │ │ │ │ │ └── __tests__ │ │ │ │ │ │ └── template.test.js │ │ │ │ │ └── display-container │ │ │ │ │ ├── status-icon │ │ │ │ │ └── __tests__ │ │ │ │ │ │ └── __snapshots__ │ │ │ │ │ │ └── element.test.js.snap │ │ │ │ │ └── display │ │ │ │ │ └── quantity-bar │ │ │ │ │ └── __tests__ │ │ │ │ │ └── __snapshots__ │ │ │ │ │ └── bar.test.js.snap │ │ │ ├── icons │ │ │ │ ├── rsvp.svg │ │ │ │ ├── attendees.svg │ │ │ │ ├── inactive │ │ │ │ │ └── rsvp.svg │ │ │ │ └── tickets.svg │ │ │ └── elements │ │ │ │ ├── label-with-tooltip │ │ │ │ └── style.pcss │ │ │ │ └── index.js │ │ └── views │ │ │ └── blocks │ │ │ ├── tickets │ │ │ ├── commerce │ │ │ │ ├── fields-edd.php │ │ │ │ ├── fields-tpp.php │ │ │ │ ├── fields-woo.php │ │ │ │ └── fields.php │ │ │ ├── extra-available-unlimited.php │ │ │ ├── icon.php │ │ │ ├── registration │ │ │ │ ├── summary │ │ │ │ │ ├── ticket-title.php │ │ │ │ │ ├── ticket-icon.php │ │ │ │ │ ├── ticket-price.php │ │ │ │ │ ├── ticket-quantity.php │ │ │ │ │ ├── title.php │ │ │ │ │ ├── description.php │ │ │ │ │ ├── tickets.php │ │ │ │ │ └── content.php │ │ │ │ ├── content.php │ │ │ │ └── attendee │ │ │ │ │ ├── content.php │ │ │ │ │ └── fields.php │ │ │ ├── content-title.php │ │ │ ├── submit-login.php │ │ │ ├── quantity-add.php │ │ │ ├── submit-button.php │ │ │ ├── extra-price.php │ │ │ ├── quantity-remove.php │ │ │ ├── quantity-unavailable.php │ │ │ ├── extra-available-quantity.php │ │ │ ├── content-description.php │ │ │ ├── submit.php │ │ │ ├── extra.php │ │ │ └── content.php │ │ │ ├── rsvp │ │ │ ├── status │ │ │ │ ├── full.php │ │ │ │ ├── going.php │ │ │ │ ├── not-going-icon.php │ │ │ │ └── going-icon.php │ │ │ ├── details │ │ │ │ ├── title.php │ │ │ │ └── description.php │ │ │ ├── loader.php │ │ │ ├── form │ │ │ │ ├── quantity-minus.php │ │ │ │ ├── quantity-plus.php │ │ │ │ ├── submit-login.php │ │ │ │ ├── error.php │ │ │ │ ├── submit-button.php │ │ │ │ ├── quantity.php │ │ │ │ ├── submit.php │ │ │ │ ├── name.php │ │ │ │ └── email.php │ │ │ ├── form.php │ │ │ ├── icon.php │ │ │ ├── messages │ │ │ │ └── success.php │ │ │ ├── details.php │ │ │ ├── content.php │ │ │ └── status.php │ │ │ └── attendees │ │ │ ├── gravatar.php │ │ │ ├── title.php │ │ │ └── description.php │ └── scripts │ │ └── linkDependencies └── common │ ├── src │ ├── modules │ │ ├── data │ │ │ ├── index.js │ │ │ ├── utils.js │ │ │ ├── plugins │ │ │ │ ├── constants.js │ │ │ │ ├── types.js │ │ │ │ ├── selectors.js │ │ │ │ ├── actions.js │ │ │ │ ├── index.js │ │ │ │ ├── __tests__ │ │ │ │ │ ├── actions.test.js │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ └── actions.test.js.snap │ │ │ │ │ └── types.test.js │ │ │ │ ├── proptypes.js │ │ │ │ └── reducer.js │ │ │ ├── forms │ │ │ │ ├── reducers │ │ │ │ │ ├── index.js │ │ │ │ │ └── volatile.js │ │ │ │ └── index.js │ │ │ ├── editor │ │ │ │ └── post-types.js │ │ │ ├── __tests__ │ │ │ │ └── utils.test.js │ │ │ └── reducers.js │ │ ├── components │ │ │ ├── form │ │ │ │ ├── index.js │ │ │ │ └── select │ │ │ │ │ └── index.js │ │ │ ├── plugin-block-hooks │ │ │ │ ├── index.js │ │ │ │ └── container.js │ │ │ ├── prevent-block-close │ │ │ │ ├── index.js │ │ │ │ └── __tests__ │ │ │ │ │ └── component.spec.js │ │ │ └── index.js │ │ ├── store │ │ │ ├── middlewares │ │ │ │ ├── index.js │ │ │ │ └── request │ │ │ │ │ ├── actions.js │ │ │ │ │ ├── types.js │ │ │ │ │ ├── index.js │ │ │ │ │ └── __tests__ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ └── actions.test.js.snap │ │ │ │ │ ├── actions.test.js │ │ │ │ │ └── types.test.js │ │ │ └── index.js │ │ ├── elements │ │ │ ├── style.pcss │ │ │ ├── accordion │ │ │ │ └── style.pcss │ │ │ ├── placeholder │ │ │ │ ├── style.pcss │ │ │ │ ├── __tests__ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ └── element.test.js.snap │ │ │ │ │ └── element.test.js │ │ │ │ └── element.js │ │ │ ├── block-icon │ │ │ │ ├── index.js │ │ │ │ └── style.pcss │ │ │ ├── heading │ │ │ │ └── style.pcss │ │ │ ├── paragraph │ │ │ │ ├── style.pcss │ │ │ │ └── __tests__ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ └── element.test.js.snap │ │ │ │ │ └── element.test.js │ │ │ ├── input │ │ │ │ ├── style.pcss │ │ │ │ ├── __tests__ │ │ │ │ │ └── __snapshots__ │ │ │ │ │ │ └── element.test.js.snap │ │ │ │ └── element.js │ │ │ ├── counter │ │ │ │ └── style.pcss │ │ │ ├── textarea │ │ │ │ └── element.js │ │ │ ├── tooltip │ │ │ │ └── __tests__ │ │ │ │ │ └── __snapshots__ │ │ │ │ │ └── element.test.js.snap │ │ │ ├── image │ │ │ │ ├── element.js │ │ │ │ └── __tests__ │ │ │ │ │ └── __snapshots__ │ │ │ │ │ └── element.test.js.snap │ │ │ └── checkbox-input │ │ │ │ └── style.pcss │ │ ├── icons │ │ │ ├── user.svg │ │ │ ├── close.svg │ │ │ ├── info.svg │ │ │ ├── clipboard.svg │ │ │ ├── tag.svg │ │ │ ├── index.js │ │ │ ├── alert.svg │ │ │ └── cog.svg │ │ ├── hoc │ │ │ ├── index.js │ │ │ ├── __tests__ │ │ │ │ └── __snapshots__ │ │ │ │ │ ├── with-form.test.js.snap │ │ │ │ │ └── with-store.test.js.snap │ │ │ └── with-store.js │ │ └── utils │ │ │ ├── __tests__ │ │ │ ├── slide.test.js │ │ │ └── input.test.js │ │ │ ├── input.js │ │ │ └── number.js │ └── Tribe │ │ └── Meta_Interface.php │ ├── .gitignore │ └── scripts │ └── linkDependencies ├── __mocks__ ├── icons.js ├── uniqid.js ├── @wordpress │ ├── blocks.js │ ├── element.js │ ├── i18n.js │ ├── editor.js │ ├── data.js │ └── components.js └── chrono-node.js ├── .gitattributes ├── webpack ├── externals │ ├── vendor.js │ ├── index.js │ ├── wp.js │ └── tribe │ │ └── common.js ├── module │ └── rules │ │ ├── javascript.js │ │ ├── svg.js │ │ ├── images.js │ │ └── styles.js ├── entry │ └── tribe.js └── utils │ └── directories.js ├── package-whitelist.json ├── .travis.yml ├── lerna.json ├── postcss.config.js ├── .gitignore ├── jsconfig.json ├── .editorconfig └── jest.setup.js /.nvmrc: -------------------------------------------------------------------------------- 1 | 8.9.4 2 | -------------------------------------------------------------------------------- /lang/events-gutenberg.pot: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plugins/events-pro/src/styles/editor/index.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plugins/events-pro/src/modules/elements/panel/style.pcss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plugins/events/src/modules/blocks/event-tags/style.pcss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /__mocks__/icons.js: -------------------------------------------------------------------------------- 1 | module.exports = 'icon mock'; 2 | -------------------------------------------------------------------------------- /plugins/events/src/modules/blocks/event-category/style.pcss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plugins/events/src/views/silence.php: -------------------------------------------------------------------------------- 1 | text; 2 | 3 | export default uniqid; 4 | -------------------------------------------------------------------------------- /plugins/common/src/modules/components/form/index.js: -------------------------------------------------------------------------------- 1 | export { default as Select } from './select'; 2 | -------------------------------------------------------------------------------- /plugins/common/src/modules/components/form/select/index.js: -------------------------------------------------------------------------------- 1 | export { default } from './component'; 2 | -------------------------------------------------------------------------------- /plugins/events/src/modules/blocks/event-datetime/hooks/index.js: -------------------------------------------------------------------------------- 1 | export { default } from './blocks'; 2 | -------------------------------------------------------------------------------- /plugins/events/src/modules/hoc/index.js: -------------------------------------------------------------------------------- 1 | export { default as withDetails } from './with-details'; 2 | -------------------------------------------------------------------------------- /__mocks__/@wordpress/blocks.js: -------------------------------------------------------------------------------- 1 | import noop from 'lodash/noop'; 2 | 3 | export const createBlock = noop; 4 | -------------------------------------------------------------------------------- /plugins/common/.gitignore: -------------------------------------------------------------------------------- 1 | /hoc 2 | /data 3 | /store 4 | /utils 5 | /elements 6 | /icons 7 | /components 8 | -------------------------------------------------------------------------------- /plugins/common/src/modules/components/plugin-block-hooks/index.js: -------------------------------------------------------------------------------- 1 | export { default } from './container'; 2 | -------------------------------------------------------------------------------- /plugins/common/src/modules/store/middlewares/index.js: -------------------------------------------------------------------------------- 1 | export { default as wpRequest } from './request'; 2 | -------------------------------------------------------------------------------- /plugins/events-pro/src/modules/data/prefix.js: -------------------------------------------------------------------------------- 1 | export const PREFIX_EVENTS_PRO_STORE = '@@MT/EVENTS-PRO'; 2 | -------------------------------------------------------------------------------- /plugins/events/src/modules/data/search/reducers/index.js: -------------------------------------------------------------------------------- 1 | export { default as search } from './search'; 2 | -------------------------------------------------------------------------------- /plugins/common/src/modules/components/prevent-block-close/index.js: -------------------------------------------------------------------------------- 1 | export { default } from './component'; 2 | -------------------------------------------------------------------------------- /plugins/events/src/modules/data/details/reducers/index.js: -------------------------------------------------------------------------------- 1 | export { default as details } from './details'; 2 | -------------------------------------------------------------------------------- /plugins/events-pro/src/modules/blocks/additional-fields/dropdown/index.js: -------------------------------------------------------------------------------- 1 | export { default as Dropdown } from './template'; 2 | -------------------------------------------------------------------------------- /plugins/common/src/modules/elements/style.pcss: -------------------------------------------------------------------------------- 1 | .post-type-tribe_events .editor-styles-wrapper { 2 | max-width: none!important; 3 | } -------------------------------------------------------------------------------- /plugins/events/src/styles/event-tags/frontend.pcss: -------------------------------------------------------------------------------- 1 | /** 2 | * Event Tags block view styles 3 | * 4 | * @since 0.2.4-alpha 5 | */ -------------------------------------------------------------------------------- /plugins/events-pro/src/modules/elements/type-picker/frequency-select/style.pcss: -------------------------------------------------------------------------------- 1 | .tribe-editor__frequency-select { 2 | width: 85px; 3 | } 4 | -------------------------------------------------------------------------------- /plugins/events/src/styles/event-category/frontend.pcss: -------------------------------------------------------------------------------- 1 | /** 2 | * Event Category block view styles 3 | * 4 | * @since 0.2.4-alpha 5 | */ -------------------------------------------------------------------------------- /plugins/tickets/src/modules/data/blocks/index.js: -------------------------------------------------------------------------------- 1 | import reducer from './reducer'; 2 | import './sagas'; 3 | 4 | export default reducer; 5 | -------------------------------------------------------------------------------- /webpack/externals/vendor.js: -------------------------------------------------------------------------------- 1 | const vendor = { 2 | 'react-dom': 'ReactDOM', 3 | 'react': 'React', 4 | }; 5 | 6 | module.exports = vendor; 7 | -------------------------------------------------------------------------------- /webpack/module/rules/javascript.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | test: /\.js$/, 3 | exclude: /node_modules/, 4 | use: 'babel-loader', 5 | }; 6 | -------------------------------------------------------------------------------- /package-whitelist.json: -------------------------------------------------------------------------------- 1 | [ 2 | "events-gutenberg.php", 3 | "plugins/", 4 | "lang/", 5 | "readme.md", 6 | "readme.txt", 7 | "license.md" 8 | ] -------------------------------------------------------------------------------- /plugins/common/src/modules/data/plugins/constants.js: -------------------------------------------------------------------------------- 1 | export const EVENTS_PLUGIN = 'events'; 2 | export const EVENTS_PRO_PLUGIN = 'events-pro'; 3 | -------------------------------------------------------------------------------- /webpack/module/rules/svg.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | test: /\.(svg)$/, 3 | use: [ 4 | 'babel-loader', 5 | 'react-svg-loader', 6 | ], 7 | }; 8 | -------------------------------------------------------------------------------- /plugins/common/src/modules/data/forms/reducers/index.js: -------------------------------------------------------------------------------- 1 | export { default as form } from './form'; 2 | export { default as volatile } from './volatile'; 3 | -------------------------------------------------------------------------------- /plugins/events/src/styles/classic-event-details/frontend.pcss: -------------------------------------------------------------------------------- 1 | /** 2 | * Classic Event Details block view styles 3 | * 4 | * @since 0.2.4-alpha 5 | */ 6 | -------------------------------------------------------------------------------- /plugins/events-pro/src/modules/blocks/additional-fields/radio/style.pcss: -------------------------------------------------------------------------------- 1 | .tribe-editor__additional-fields__field--radio { 2 | display: inline-block; 3 | } 4 | -------------------------------------------------------------------------------- /plugins/events-pro/src/modules/blocks/additional-fields/checkbox/style.pcss: -------------------------------------------------------------------------------- 1 | .tribe-editor__additional-fields__field--checkbox { 2 | display: inline-block; 3 | } 4 | -------------------------------------------------------------------------------- /plugins/events-pro/src/modules/elements/from-time-range-picker/style.pcss: -------------------------------------------------------------------------------- 1 | .tribe-editor__from-time-range-picker__multi-day-checkbox { 2 | margin-left: 5px; 3 | } 4 | -------------------------------------------------------------------------------- /plugins/events-pro/src/modules/elements/recurring-to-date-time-picker/style.pcss: -------------------------------------------------------------------------------- 1 | .tribe-editor__recurring-to-date-time-picker__select { 2 | width: 150px; 3 | } 4 | -------------------------------------------------------------------------------- /plugins/events-pro/src/styles/additional-fields/frontend.pcss: -------------------------------------------------------------------------------- 1 | .tribe-block__additional-field { 2 | padding: 15px 0; 3 | border-bottom: 1px solid #e5e5e5; 4 | } 5 | -------------------------------------------------------------------------------- /plugins/events/src/views/blocks/featured-image.php: -------------------------------------------------------------------------------- 1 | get( 'post_id' ); ?> 2 | 9 | -------------------------------------------------------------------------------- /plugins/common/src/modules/elements/accordion/style.pcss: -------------------------------------------------------------------------------- 1 | .tribe-editor__accordion__row-content { 2 | max-height: 0; 3 | overflow: hidden; 4 | 5 | &.active { 6 | max-height: none; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /plugins/events-pro/src/modules/elements/row/style.pcss: -------------------------------------------------------------------------------- 1 | .tribe-editor__events-pro__row { 2 | display: flex; 3 | margin-bottom: 15px; 4 | 5 | &:last-child { 6 | margin-bottom: 0; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /plugins/events/src/modules/elements/input/style.pcss: -------------------------------------------------------------------------------- 1 | input.tribe-editor--valid { 2 | border: 1px solid #e62f2f; 3 | 4 | &:focus { 5 | border: 1px solid #e62f2f; 6 | outline: none; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /plugins/events-pro/src/modules/elements/single-to-date-time-picker/style.pcss: -------------------------------------------------------------------------------- 1 | .tribe-editor__day-picker-input { 2 | 3 | .tribe-editor__single-to-date-time-picker & { 4 | width: 175px; 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /plugins/tickets/src/modules/blocks/tickets/controls/style.pcss: -------------------------------------------------------------------------------- 1 | .tribe-editor__tickets-controls-provider { 2 | legend { 3 | font-weight: bold; 4 | margin-bottom: 10px; 5 | padding: 0; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /webpack/module/rules/images.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | test: /\.(png|woff|woff2|eot|ttf)$/, 3 | use: { 4 | loader: 'url-loader', 5 | options: { 6 | limit: 100000, 7 | }, 8 | }, 9 | }; 10 | -------------------------------------------------------------------------------- /plugins/events-pro/scripts/linkDependencies: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | ln -sf "$(pwd)/src/modules/blocks" "$(pwd)" 4 | ln -sf "$(pwd)/src/modules/data" "$(pwd)" 5 | ln -sf "$(pwd)/src/modules/elements" "$(pwd)" 6 | -------------------------------------------------------------------------------- /plugins/events/src/modules/blocks/classic-event-details/event-details-organizers/event-details-organizer/style.pcss: -------------------------------------------------------------------------------- 1 | .tribe-editor__btn--action { 2 | position: absolute; 3 | right: 0; 4 | top: -5px; 5 | } 6 | -------------------------------------------------------------------------------- /plugins/events/src/modules/elements/loading/style.pcss: -------------------------------------------------------------------------------- 1 | .tribe-editor__spinner-container { 2 | display: flex; 3 | width: 100%; 4 | justify-content: center; 5 | align-items: center; 6 | padding: 20px; 7 | } 8 | -------------------------------------------------------------------------------- /plugins/events-pro/src/modules/elements/attribute-sync/__tests__/__snapshots__/template.spec.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`AttributeSync should match snapshot 1`] = `null`; 4 | -------------------------------------------------------------------------------- /plugins/events/src/modules/blocks/event-datetime/human-readable-input/style.pcss: -------------------------------------------------------------------------------- 1 | .tribe-editor__date-input { 2 | width: 100%; 3 | 4 | input[type="text"] { 5 | width: 100%; 6 | padding: 10px; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /plugins/tickets/src/views/blocks/rsvp/status/full.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plugins/events-pro/src/modules/data/status/__tests__/__snapshots__/types.spec.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Status types SET_SERIES_QUEUE_STATUS 1`] = `"@@MT/EVENTS-PRO/SET_SERIES_QUEUE_STATUS"`; 4 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "8" 4 | env: 5 | - NODE_ENV=test 6 | install: false 7 | script: 8 | - npm run bootstrap 9 | - npm run test:travis 10 | cache: 11 | directories: 12 | - "node_modules" 13 | -------------------------------------------------------------------------------- /__mocks__/@wordpress/element.js: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import Element, { Component } from 'react'; 5 | import { compose } from 'redux'; 6 | 7 | export { 8 | Element, 9 | Component, 10 | compose, 11 | }; 12 | -------------------------------------------------------------------------------- /__mocks__/@wordpress/i18n.js: -------------------------------------------------------------------------------- 1 | export const __ = ( value ) => value; 2 | export const _n = ( singular, plural, num ) => num <= 1 ? singular : plural; 3 | export const sprintf = ( text, replacement ) => text.replace( /%d|%s/, replacement ); 4 | -------------------------------------------------------------------------------- /plugins/events/src/styles/style.pcss: -------------------------------------------------------------------------------- 1 | /** 2 | * Generic block view styles 3 | * 4 | * @since 0.2.4-alpha 5 | */ 6 | .tribe-block { 7 | display: block; 8 | 9 | *, *:before, *:after { 10 | box-sizing: border-box; 11 | } 12 | } -------------------------------------------------------------------------------- /plugins/tickets/src/styles/style.pcss: -------------------------------------------------------------------------------- 1 | /** 2 | * Generic block view styles 3 | * 4 | * @since 0.2.4-alpha 5 | */ 6 | .tribe-block { 7 | display: block; 8 | 9 | *, *:before, *:after { 10 | box-sizing: border-box; 11 | } 12 | } -------------------------------------------------------------------------------- /plugins/common/src/modules/icons/close.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plugins/tickets/src/modules/blocks/rsvp/action-buttons/index.js: -------------------------------------------------------------------------------- 1 | export { default as AttendeesActionButton } from './attendees-action-button/container'; 2 | export { default as SettingsActionButton } from './settings-action-button/container'; 3 | -------------------------------------------------------------------------------- /plugins/tickets/src/views/blocks/tickets/extra-available-unlimited.php: -------------------------------------------------------------------------------- 1 | 9 |

-------------------------------------------------------------------------------- /plugins/common/src/modules/store/middlewares/request/actions.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Internal dependencies 3 | */ 4 | import * as types from './types'; 5 | 6 | export const wpRequest = ( meta ) => ( { 7 | type: types.WP_REQUEST, 8 | meta, 9 | } ); 10 | -------------------------------------------------------------------------------- /plugins/common/src/modules/store/middlewares/request/types.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Internal dependencies 3 | */ 4 | import { PREFIX_COMMON_STORE } from '@moderntribe/common/data/utils'; 5 | 6 | export const WP_REQUEST = `${ PREFIX_COMMON_STORE }/WP_REQUEST`; 7 | -------------------------------------------------------------------------------- /plugins/events-pro/src/modules/elements/fieldset/style.pcss: -------------------------------------------------------------------------------- 1 | .tribe-editor__events-pro__fieldset { 2 | padding: 20px 50px; 3 | border-bottom: 1px solid #e1e3e6; 4 | position: relative; 5 | 6 | &:last-child { 7 | border-bottom-width: 0; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /webpack/externals/index.js: -------------------------------------------------------------------------------- 1 | const wpExternals = require( './wp' ); 2 | const vendor = require( './vendor' ); 3 | const tribeCommon = require( './tribe/common' ); 4 | 5 | module.exports = { 6 | ...wpExternals, 7 | ...vendor, 8 | ...tribeCommon, 9 | }; 10 | -------------------------------------------------------------------------------- /plugins/events-pro/src/modules/data/blocks/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Internal dependencies 3 | */ 4 | import * as constants from './constants'; 5 | import reducer from './reducer'; 6 | import './sagas'; 7 | 8 | export default reducer; 9 | export { constants }; 10 | -------------------------------------------------------------------------------- /plugins/tickets/src/modules/data/blocks/ticket/reducers/settings/__tests__/__snapshots__/tmp.spec.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Temporarily reducer shared capacity 1`] = ` 4 | Object { 5 | "sharedCapacity": 100, 6 | } 7 | `; 8 | -------------------------------------------------------------------------------- /__mocks__/@wordpress/editor.js: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import React from 'react'; 5 | 6 | export const RichText = () =>
Rich Text
; 7 | export const InspectorControls = ({ children }) =>
{ children }
8 | -------------------------------------------------------------------------------- /plugins/common/src/modules/icons/info.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plugins/events-pro/src/modules/data/status/actions.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Internal dependencies 3 | */ 4 | import * as types from './types'; 5 | 6 | export const setSeriesQueueStatus = ( payload ) => ( { 7 | type: types.SET_SERIES_QUEUE_STATUS, 8 | payload, 9 | } ); 10 | -------------------------------------------------------------------------------- /__mocks__/@wordpress/data.js: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import { noop } from 'lodash'; 5 | import { Component } from 'react'; 6 | 7 | export const withSelect = () => ( component ) => component; 8 | export const withDispatch = () => ( component ) => component; 9 | -------------------------------------------------------------------------------- /plugins/tickets/src/modules/data/blocks/attendees/__tests__/__snapshots__/reducer.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`[STORE] - Attendees reducer Should set the title value 1`] = ` 4 | Object { 5 | "title": "Who's coming?", 6 | } 7 | `; 8 | -------------------------------------------------------------------------------- /plugins/common/src/modules/store/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import 'regenerator-runtime/runtime'; 5 | 6 | /** 7 | * Internal dependencies 8 | */ 9 | import configureStore from './configure-store'; 10 | 11 | export const store = configureStore(); 12 | -------------------------------------------------------------------------------- /plugins/tickets/src/modules/blocks/tickets/action-buttons/index.js: -------------------------------------------------------------------------------- 1 | export { default as SettingsActionButton } from './settings/container'; 2 | export { default as OrdersActionButton } from './orders/container'; 3 | export { default as AttendeesActionButton } from './attendees/container'; 4 | -------------------------------------------------------------------------------- /plugins/tickets/src/views/blocks/rsvp/details/title.php: -------------------------------------------------------------------------------- 1 | 9 |
10 | name ); ?> 11 |
-------------------------------------------------------------------------------- /plugins/events-pro/src/modules/blocks/additional-fields/elements/preview/style.pcss: -------------------------------------------------------------------------------- 1 | .tribe-editor__additional-fields__preview { 2 | font-family: 'Helvetica', 'Arial', 'sans-serif'; 3 | } 4 | 5 | .tribe-editor__additional-fields__preview-title { 6 | line-height: 1; 7 | margin: 10px 0; 8 | } 9 | -------------------------------------------------------------------------------- /plugins/tickets/src/modules/data/blocks/ticket/reducers/settings/__tests__/__snapshots__/settings.spec.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Settings reducer Shared capacity 1`] = ` 4 | Object { 5 | "sharedCapacity": 50, 6 | "tmp": Object {}, 7 | } 8 | `; 9 | -------------------------------------------------------------------------------- /plugins/tickets/src/modules/data/reducers.js: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import { combineReducers } from 'redux'; 5 | 6 | /** 7 | * Internal dependencies 8 | */ 9 | import blocks from './blocks'; 10 | 11 | export default combineReducers( { 12 | blocks, 13 | } ); 14 | -------------------------------------------------------------------------------- /plugins/events-pro/src/modules/elements/day-of-week-picker/style.pcss: -------------------------------------------------------------------------------- 1 | .tribe-editor__day-of-week-picker { 2 | display: flex; 3 | } 4 | 5 | .tribe-editor__day-of-week-picker__day { 6 | flex: none; 7 | margin-right: 10px; 8 | 9 | &:last-child { 10 | margin-right: 0; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /plugins/tickets/src/views/blocks/rsvp/loader.php: -------------------------------------------------------------------------------- 1 | 9 |
10 | template( 'blocks/rsvp/loader-svg' ); ?> 11 |
12 | -------------------------------------------------------------------------------- /plugins/common/src/modules/icons/clipboard.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plugins/events-pro/src/modules/data/status/__tests__/__snapshots__/actions.spec.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Status actions setSeriesQueueStatus 1`] = ` 4 | Object { 5 | "payload": Object {}, 6 | "type": "@@MT/EVENTS-PRO/SET_SERIES_QUEUE_STATUS", 7 | } 8 | `; 9 | -------------------------------------------------------------------------------- /plugins/common/src/modules/components/index.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable max-len */ 2 | export { default as PluginBlockHooks } from '@moderntribe/common/components/plugin-block-hooks'; 3 | export { default as PreventBlockClose } from '@moderntribe/common/components/prevent-block-close'; 4 | export * from './form'; 5 | -------------------------------------------------------------------------------- /lerna.json: -------------------------------------------------------------------------------- 1 | { 2 | "packages": [ 3 | "plugins/*" 4 | ], 5 | "version": "independent", 6 | "command": { 7 | "bootstrap": { 8 | "npmClientArgs": ["--no-optional"] 9 | }, 10 | "build": { 11 | "npmClientArgs": ["--production", "--no-optional"] 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /plugins/common/src/modules/data/plugins/types.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Internal dependencies 3 | */ 4 | import { PREFIX_COMMON_STORE } from '@moderntribe/common/data/utils'; 5 | 6 | export const ADD_PLUGIN = `${ PREFIX_COMMON_STORE }/ADD_PLUGIN`; 7 | export const REMOVE_PLUGIN = `${ PREFIX_COMMON_STORE }/REMOVE_PLUGIN`; 8 | -------------------------------------------------------------------------------- /plugins/events-pro/src/modules/data/status/types.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable max-len */ 2 | /** 3 | * Internal dependencies 4 | */ 5 | import { PREFIX_EVENTS_PRO_STORE } from '@moderntribe/events-pro/data/prefix'; 6 | 7 | export const SET_SERIES_QUEUE_STATUS = `${ PREFIX_EVENTS_PRO_STORE }/SET_SERIES_QUEUE_STATUS`; 8 | -------------------------------------------------------------------------------- /plugins/tickets/src/views/blocks/rsvp/form/quantity-minus.php: -------------------------------------------------------------------------------- 1 | 9 | -------------------------------------------------------------------------------- /plugins/tickets/src/views/blocks/rsvp/form/quantity-plus.php: -------------------------------------------------------------------------------- 1 | 9 | -------------------------------------------------------------------------------- /plugins/common/src/modules/store/middlewares/request/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Internal dependencies 3 | */ 4 | import * as types from './types'; 5 | import * as actions from './actions'; 6 | import * as utils from './utils'; 7 | 8 | export { default } from './wp-request'; 9 | export { types, actions, utils }; 10 | -------------------------------------------------------------------------------- /plugins/tickets/src/views/blocks/tickets/icon.php: -------------------------------------------------------------------------------- 1 | 9 |
12 | template( 'blocks/tickets/icon-svg' ); ?> 13 |
14 | -------------------------------------------------------------------------------- /plugins/tickets/src/modules/blocks/rsvp/__tests__/index.test.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Internal dependencies 3 | */ 4 | import RSVP from '@moderntribe/tickets/blocks/rsvp'; 5 | 6 | describe( 'RSVP block declaration', () => { 7 | it( 'register the RSVP block', () => { 8 | expect( RSVP ).toMatchSnapshot(); 9 | } ); 10 | } ); 11 | -------------------------------------------------------------------------------- /plugins/tickets/src/modules/data/blocks/rsvp/reducers/__tests__/__snapshots__/header-image.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Header image reducer should set the header image state 1`] = ` 4 | Object { 5 | "alt": "test-alt", 6 | "id": 42, 7 | "src": "test-src", 8 | } 9 | `; 10 | -------------------------------------------------------------------------------- /plugins/tickets/src/views/blocks/tickets/registration/summary/ticket-title.php: -------------------------------------------------------------------------------- 1 | 9 |
10 | name; ?> 11 |
-------------------------------------------------------------------------------- /plugins/common/src/Tribe/Meta_Interface.php: -------------------------------------------------------------------------------- 1 | 10 | 11 |
-------------------------------------------------------------------------------- /plugins/common/src/modules/data/__tests__/utils.test.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Internal dependencies 3 | */ 4 | import { PREFIX_COMMON_STORE } from '@moderntribe/common/data/utils'; 5 | 6 | describe( 'prefix', () => { 7 | it( 'Should return the prefix', () => { 8 | expect( PREFIX_COMMON_STORE ).toBe('@@MT/COMMON'); 9 | } ); 10 | } ); 11 | -------------------------------------------------------------------------------- /plugins/events-pro/src/modules/data/ui/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Internal dependencies 3 | */ 4 | import reducer from './reducer'; 5 | import * as types from './types'; 6 | import * as actions from './actions'; 7 | import * as selectors from './selectors'; 8 | 9 | export default reducer; 10 | export { types, actions, selectors }; 11 | -------------------------------------------------------------------------------- /plugins/events-pro/src/modules/elements/remove-field/style.pcss: -------------------------------------------------------------------------------- 1 | .tribe-editor__events-pro__remove-field { 2 | background: transparent; 3 | border: 0; 4 | cursor: pointer; 5 | outline: none; 6 | position: absolute; 7 | right: 20px; 8 | top: 20px; 9 | 10 | & svg { 11 | height: 15px; 12 | width: 11px; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /plugins/events-pro/src/modules/elements/row/__tests__/__snapshots__/element.spec.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Row should render component 1`] = ` 4 |
7 | 8 | Test children 9 | 10 |
11 | `; 12 | -------------------------------------------------------------------------------- /plugins/common/src/modules/hoc/index.js: -------------------------------------------------------------------------------- 1 | export { default as withStore } from './with-store'; 2 | export { default as withSaveData } from './with-save-data'; 3 | export { default as withForm } from './with-form'; 4 | export { default as withBlockCloser } from './with-block-closer'; 5 | export { default as withSelected } from './with-selected'; 6 | -------------------------------------------------------------------------------- /plugins/common/src/modules/icons/tag.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plugins/events-pro/src/modules/data/status/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Internal dependencies 3 | */ 4 | import reducer from './reducer'; 5 | import * as types from './types'; 6 | import * as actions from './actions'; 7 | import * as selectors from './selectors'; 8 | 9 | export default reducer; 10 | export { types, actions, selectors }; 11 | -------------------------------------------------------------------------------- /plugins/events/scripts/linkDependencies: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | ln -sf "$(pwd)"/src/modules/blocks "$(pwd)" 4 | ln -sf "$(pwd)"/src/modules/data "$(pwd)" 5 | ln -sf "$(pwd)"/src/modules/editor "$(pwd)" 6 | ln -sf "$(pwd)"/src/modules/elements "$(pwd)" 7 | ln -sf "$(pwd)"/src/modules/icons "$(pwd)" 8 | ln -sf "$(pwd)"/src/modules/hoc "$(pwd)" 9 | -------------------------------------------------------------------------------- /plugins/events/src/modules/data/blocks/organizers/reducer.js: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import { combineReducers } from 'redux'; 5 | 6 | /** 7 | * Internal dependencies 8 | */ 9 | import { classic, blocks } from './reducers'; 10 | 11 | export default combineReducers( { 12 | blocks, 13 | classic, 14 | } ); 15 | -------------------------------------------------------------------------------- /plugins/tickets/src/modules/blocks/tickets/__tests__/index.test.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Internal dependencies 3 | */ 4 | import Tickets from '@moderntribe/tickets/blocks/tickets'; 5 | 6 | describe( 'Ticket block declaration', () => { 7 | it( 'register the ticket block', () => { 8 | expect( Tickets ).toMatchSnapshot(); 9 | } ); 10 | } ); 11 | -------------------------------------------------------------------------------- /plugins/common/src/modules/data/forms/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Internal dependencies 3 | */ 4 | import reducer from './reducer'; 5 | 6 | import * as types from './types'; 7 | import * as actions from './actions'; 8 | import * as selectors from './selectors'; 9 | 10 | export default reducer; 11 | 12 | export { types, actions, selectors }; 13 | -------------------------------------------------------------------------------- /plugins/common/src/modules/data/plugins/selectors.js: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import { includes } from 'lodash'; 5 | import { curry } from 'lodash/fp'; 6 | 7 | export const getPlugins = ( state ) => state.plugins; 8 | 9 | export const hasPlugin = curry( ( state, plugin ) => includes( getPlugins( state ), plugin ) ); 10 | -------------------------------------------------------------------------------- /plugins/events-pro/src/resources/icons/arrow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /plugins/events/src/modules/data/blocks/organizers/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Internal dependencies 3 | */ 4 | import reducer from './reducer'; 5 | import * as types from './types'; 6 | import * as actions from './actions'; 7 | import * as selectors from './selectors'; 8 | 9 | export default reducer; 10 | export { types, actions, selectors }; 11 | -------------------------------------------------------------------------------- /plugins/events/src/views/blocks/event-tags.php: -------------------------------------------------------------------------------- 1 | get( 'post_id' ); 3 | ?> 4 |
5 | 6 |
7 | -------------------------------------------------------------------------------- /plugins/tickets/src/views/blocks/rsvp/form/submit-login.php: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /plugins/tickets/src/views/blocks/rsvp/icon.php: -------------------------------------------------------------------------------- 1 | 9 |
10 | template( 'blocks/rsvp/icon-svg' ); ?> 11 | 12 |
13 | -------------------------------------------------------------------------------- /plugins/tickets/src/views/blocks/tickets/content-title.php: -------------------------------------------------------------------------------- 1 | get( 'ticket' ); 10 | ?> 11 |
14 | name; ?> 15 |
-------------------------------------------------------------------------------- /plugins/tickets/src/modules/blocks/ticket/__tests__/index.test.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Internal dependencies 3 | */ 4 | import TicketBlock from '@moderntribe/tickets/blocks/ticket'; 5 | 6 | describe( 'Single ticket block declaration', () => { 7 | test( 'Block declaration', () => { 8 | expect( TicketBlock ).toMatchSnapshot(); 9 | } ); 10 | } ); 11 | -------------------------------------------------------------------------------- /plugins/tickets/src/views/blocks/tickets/registration/summary/ticket-icon.php: -------------------------------------------------------------------------------- 1 | 9 |
10 | template( 'blocks/tickets/icon-svg' ); ?> 11 |
-------------------------------------------------------------------------------- /plugins/tickets/src/views/blocks/tickets/submit-login.php: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /plugins/events-pro/src/modules/elements/fieldset/__tests__/__snapshots__/element.spec.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Fieldset should match snapshot 1`] = ` 4 |
7 | 8 | Test children 9 | 10 |
11 | `; 12 | -------------------------------------------------------------------------------- /plugins/events/src/modules/data/details/__tests__/__snapshots__/reducer.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`[STORE] - Details reducer Should set the details 1`] = ` 4 | Object { 5 | "20": Object { 6 | "details": Object {}, 7 | "isLoading": false, 8 | "postType": "tribe_events", 9 | }, 10 | } 11 | `; 12 | -------------------------------------------------------------------------------- /plugins/events/src/modules/icons/website.svg: -------------------------------------------------------------------------------- 1 | block-icon-website -------------------------------------------------------------------------------- /plugins/tickets/src/modules/blocks/tickets/container/style.pcss: -------------------------------------------------------------------------------- 1 | .tribe-editor__tickets-body { 2 | .editor-inner-blocks { 3 | .editor-block-list__block { 4 | &.is-hovered, 5 | &.is-selected { 6 | 7 | > .editor-block-list__block-edit::before { 8 | outline: none; 9 | transition: none 10 | } 11 | } 12 | } 13 | 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /webpack/entry/tribe.js: -------------------------------------------------------------------------------- 1 | const { resolve } = require( 'path' ); 2 | 3 | const generateEntries = ( source, directoryNames ) => ( 4 | directoryNames.reduce( ( result, directory ) => { 5 | result[ directory ] = resolve( source, `src/modules/${ directory }/index.js` ); 6 | return result; 7 | }, {} ) 8 | ); 9 | 10 | module.exports = { generateEntries }; 11 | -------------------------------------------------------------------------------- /plugins/common/src/modules/data/reducers.js: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import { setupCreateReducer } from '@nfen/redux-reducer-injector'; 5 | import forms from './forms'; 6 | 7 | /** 8 | * Internal dependencies 9 | */ 10 | import plugins from './plugins'; 11 | 12 | export default setupCreateReducer( { 13 | plugins, 14 | forms, 15 | } ); 16 | -------------------------------------------------------------------------------- /plugins/tickets/src/modules/blocks/ticket/edit-container/content/attendees-registration/style.pcss: -------------------------------------------------------------------------------- 1 | .tribe-editor__ticket__attendee-registration { 2 | margin-top: 30px; 3 | } 4 | 5 | .tribe-editor__ticket__attendee-registration-helper-text { 6 | display: block; 7 | color: #8D949B; 8 | font-size: 12px; 9 | line-height: 14px; 10 | margin-top: 10px; 11 | } 12 | -------------------------------------------------------------------------------- /plugins/tickets/src/modules/data/blocks/attendees/selectors.js: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import { createSelector } from 'reselect'; 5 | 6 | export const getAttendeesBlock = ( state ) => state.tickets.blocks.attendees; 7 | 8 | export const getTitle = createSelector( 9 | [ getAttendeesBlock ], 10 | ( attendees ) => attendees.title, 11 | ); 12 | -------------------------------------------------------------------------------- /plugins/tickets/src/modules/data/blocks/attendees/types.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Internal dependencies 3 | */ 4 | import { PREFIX_TICKETS_STORE } from '@moderntribe/tickets/data/utils'; 5 | 6 | export const SET_ATTENDEES_INITIAL_STATE = `${ PREFIX_TICKETS_STORE }/SET_ATTENDEES_INITIAL_STATE`; 7 | 8 | export const SET_ATTENDEES_TITLE = `${ PREFIX_TICKETS_STORE }/SET_ATTENDEES_TITLE`; -------------------------------------------------------------------------------- /plugins/tickets/src/views/blocks/tickets/registration/summary/ticket-price.php: -------------------------------------------------------------------------------- 1 | 9 |
10 | get_provider()->get_price_html( $ticket->ID ); ?> 11 |
-------------------------------------------------------------------------------- /plugins/events-pro/src/modules/blocks/additional-fields/elements/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Internal dependencies 3 | */ 4 | export { default as Settings } from './settings/container'; 5 | export { default as Preview } from './preview/element'; 6 | export { default as EditContainer } from './edit-container/element'; 7 | export { default as Field } from './field-container/container'; 8 | -------------------------------------------------------------------------------- /plugins/tickets/src/views/blocks/tickets/quantity-add.php: -------------------------------------------------------------------------------- 1 | get( 'ticket' ); 10 | ?> 11 | -------------------------------------------------------------------------------- /plugins/events-pro/src/modules/data/blocks/sagas.js: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import { store } from '@moderntribe/common/store'; 5 | 6 | /** 7 | * Internal dependencies 8 | */ 9 | import * as fields from '@moderntribe/events-pro/src/modules/data/blocks/additional-fields'; 10 | 11 | [ 12 | fields.sagas, 13 | ].forEach( sagas => store.run( sagas ) ); 14 | -------------------------------------------------------------------------------- /plugins/events/src/modules/elements/year-month-form/style.pcss: -------------------------------------------------------------------------------- 1 | .tribe-editor__year-month-form { 2 | display: table-caption; 3 | text-align: center; 4 | margin-bottom: 18px; 5 | 6 | .tribe-editor__year-month-form__month, 7 | .tribe-editor__year-month-form__year { 8 | font-size: 16px; 9 | border: none; 10 | box-shadow: 0 1px 0 rgba(0, 0, 0, .1) 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /plugins/tickets/src/views/blocks/rsvp/details/description.php: -------------------------------------------------------------------------------- 1 | show_description() ) { 9 | return; 10 | } 11 | ?> 12 |
13 | description ) ); ?> 14 |
-------------------------------------------------------------------------------- /plugins/tickets/src/views/blocks/tickets/submit-button.php: -------------------------------------------------------------------------------- 1 | 10 | -------------------------------------------------------------------------------- /plugins/common/src/modules/elements/placeholder/style.pcss: -------------------------------------------------------------------------------- 1 | .tribe-editor__placeholder { 2 | border: 2px dashed #E1E3E6; 3 | padding: 12px 15px 14px; 4 | text-align: center; 5 | font-family: 'Helvetica', 'Arial', 'sans-serif'; 6 | font-size: 1rem; 7 | line-height: 1.5; 8 | font-weight: bold; 9 | color: #8D949B; 10 | min-width: 260px; 11 | display: inline-block; 12 | } 13 | -------------------------------------------------------------------------------- /plugins/events-pro/src/modules/data/reducers.js: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import { combineReducers } from 'redux'; 5 | 6 | /** 7 | * Internal dependencies 8 | */ 9 | import ui from './ui'; 10 | import blocks from './blocks'; 11 | import status from './status'; 12 | 13 | export default combineReducers( { 14 | ui, 15 | blocks, 16 | status, 17 | } ); 18 | -------------------------------------------------------------------------------- /plugins/events-pro/src/modules/data/status/__tests__/__snapshots__/selectors.spec.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Status selectors getProgress 1`] = `60`; 4 | 5 | exports[`Status selectors getStatus 1`] = ` 6 | Object { 7 | "done": true, 8 | "progress": 60, 9 | } 10 | `; 11 | 12 | exports[`Status selectors isCompleted 1`] = `true`; 13 | -------------------------------------------------------------------------------- /plugins/events-pro/src/modules/data/status/__tests__/types.spec.js: -------------------------------------------------------------------------------- 1 | /** 2 | * External Dependencies 3 | */ 4 | import * as types from '../types'; 5 | 6 | describe( 'Status types', () => { 7 | const keys = Object.keys( types ); 8 | 9 | keys.forEach( ( key ) => { 10 | test( key, () => { 11 | expect( types[ key ] ).toMatchSnapshot(); 12 | } ); 13 | } ); 14 | } ); 15 | -------------------------------------------------------------------------------- /plugins/events-pro/src/resources/icons/trash.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /plugins/events/src/modules/data/details/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Internal dependencies 3 | */ 4 | import reducer from './reducer'; 5 | import * as types from './types'; 6 | import * as actions from './actions'; 7 | import * as thunks from './thunks'; 8 | import * as selectors from './selectors'; 9 | 10 | export default reducer; 11 | export { types, actions, thunks, selectors }; 12 | -------------------------------------------------------------------------------- /plugins/events/src/modules/data/search/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Internal dependencies 3 | */ 4 | import reducer from './reducer'; 5 | import * as actions from './actions'; 6 | import * as thunks from './thunks'; 7 | import * as types from './types'; 8 | import * as selectors from './selectors'; 9 | 10 | export default reducer; 11 | export { actions, thunks, types, selectors }; 12 | -------------------------------------------------------------------------------- /plugins/tickets/src/views/blocks/rsvp/form/error.php: -------------------------------------------------------------------------------- 1 | 9 |
10 | 11 | 12 | 13 |
-------------------------------------------------------------------------------- /plugins/tickets/src/views/blocks/tickets/commerce/fields-tpp.php: -------------------------------------------------------------------------------- 1 | get( 'provider' ); 9 | $provider_id = $this->get( 'provider_id' ); 10 | ?> 11 | -------------------------------------------------------------------------------- /plugins/tickets/src/views/blocks/tickets/extra-price.php: -------------------------------------------------------------------------------- 1 | get( 'ticket' ); 10 | ?> 11 |
14 | get_provider()->get_price_html( $ticket->ID ); ?> 15 |
-------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = ( { file, options, env } ) => ( { // eslint-disable-line no-unused-vars 2 | plugins: [ 3 | require( 'postcss-import' )( { root: file.dirname } ), 4 | require( 'postcss-preset-env' ), 5 | require( 'postcss-nested' ), 6 | require( 'postcss-mixins' ), 7 | require( 'postcss-hexrgba' ), 8 | require( 'css-mqpacker' ), 9 | ], 10 | } ); 11 | -------------------------------------------------------------------------------- /__mocks__/chrono-node.js: -------------------------------------------------------------------------------- 1 | import moment from 'moment'; 2 | 3 | export default { 4 | parse: ( label ) => { 5 | const start = label ? moment( label ) : null; 6 | const results = []; 7 | if ( start && start.isValid() ) { 8 | const date = { 9 | date: () => start 10 | } 11 | results.push( { start: date, end: date } ); 12 | } 13 | return results; 14 | } 15 | }; 16 | -------------------------------------------------------------------------------- /plugins/common/src/modules/store/middlewares/request/__tests__/__snapshots__/actions.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`[STORE] - Request actions WP Request action 1`] = ` 4 | Object { 5 | "meta": Object { 6 | "actions": Object {}, 7 | "path": "tribe_organizer/1225", 8 | }, 9 | "type": "@@MT/COMMON/WP_REQUEST", 10 | } 11 | `; 12 | -------------------------------------------------------------------------------- /plugins/events-pro/src/modules/elements/remove-field/__tests__/__snapshots__/element.spec.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`RemoveField should render component 1`] = ` 4 | 11 | `; 12 | -------------------------------------------------------------------------------- /plugins/events/src/modules/data/blocks/classic/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Internal dependencies 3 | */ 4 | import reducer from './reducer'; 5 | 6 | import * as selectors from './selectors'; 7 | import * as actions from './actions'; 8 | import * as types from './types'; 9 | import sagas from './sagas'; 10 | 11 | export default reducer; 12 | export { selectors, actions, types, sagas }; 13 | -------------------------------------------------------------------------------- /plugins/events/src/modules/data/blocks/price/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Internal dependencies 3 | */ 4 | import reducer from './reducer'; 5 | 6 | import * as selectors from './selectors'; 7 | import * as actions from './actions'; 8 | import * as types from './types'; 9 | import sagas from './sagas'; 10 | 11 | export default reducer; 12 | export { selectors, actions, types, sagas }; 13 | -------------------------------------------------------------------------------- /plugins/events/src/modules/data/blocks/sharing/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Internal dependencies 3 | */ 4 | import reducer from './reducer'; 5 | 6 | import * as selectors from './selectors'; 7 | import * as actions from './actions'; 8 | import * as types from './types'; 9 | import sagas from './sagas'; 10 | 11 | export default reducer; 12 | export { selectors, actions, types, sagas }; 13 | -------------------------------------------------------------------------------- /plugins/events/src/modules/data/blocks/website/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Internal dependencies 3 | */ 4 | import reducer from './reducer'; 5 | 6 | import * as selectors from './selectors'; 7 | import * as actions from './actions'; 8 | import * as types from './types'; 9 | import sagas from './sagas'; 10 | 11 | export default reducer; 12 | export { selectors, actions, types, sagas }; 13 | -------------------------------------------------------------------------------- /plugins/tickets/src/views/blocks/tickets/quantity-remove.php: -------------------------------------------------------------------------------- 1 | get( 'ticket' ); 10 | ?> 11 | -------------------------------------------------------------------------------- /plugins/tickets/src/views/blocks/tickets/registration/summary/ticket-quantity.php: -------------------------------------------------------------------------------- 1 | 10 |
11 | 12 |
-------------------------------------------------------------------------------- /plugins/events-pro/src/modules/data/blocks/exception/__tests__/types.spec.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Internal Dependencies 3 | */ 4 | import * as types from '../types'; 5 | 6 | describe( 'Exception Types', () => { 7 | const keys = Object.keys( types ); 8 | 9 | keys.forEach( ( key ) => { 10 | test( key, () => { 11 | expect( types[ key ] ).toMatchSnapshot(); 12 | } ); 13 | } ); 14 | } ); 15 | -------------------------------------------------------------------------------- /plugins/events-pro/src/modules/elements/labeled-row/style.pcss: -------------------------------------------------------------------------------- 1 | .tribe-editor__labeled-row__content { 2 | display: flex; 3 | align-items: center; 4 | 5 | & > span { 6 | font-size: 16px; 7 | line-height: 24px; 8 | color: #8D949B; 9 | } 10 | 11 | & > * { 12 | flex: none; 13 | margin-right: 15px; 14 | 15 | &:last-child { 16 | margin-right: 0; 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /plugins/tickets/src/modules/data/blocks/attendees/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Internal dependencies 3 | */ 4 | import reducer from './reducer'; 5 | 6 | import * as selectors from './selectors'; 7 | import * as actions from './actions'; 8 | import * as types from './types'; 9 | import sagas from './sagas'; 10 | 11 | export default reducer; 12 | export { selectors, actions, types, sagas }; 13 | -------------------------------------------------------------------------------- /plugins/tickets/src/views/blocks/rsvp/messages/success.php: -------------------------------------------------------------------------------- 1 | 9 |
10 | 11 | 12 | 13 |
-------------------------------------------------------------------------------- /plugins/tickets/src/views/blocks/tickets/registration/summary/title.php: -------------------------------------------------------------------------------- 1 | 9 |
10 |
11 |

12 |
13 |
14 | 15 | 16 | -------------------------------------------------------------------------------- /plugins/common/scripts/linkDependencies: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | ln -sf "$(pwd)"/src/modules/hoc "$(pwd)" 4 | ln -sf "$(pwd)"/src/modules/data "$(pwd)" 5 | ln -sf "$(pwd)"/src/modules/store "$(pwd)" 6 | ln -sf "$(pwd)"/src/modules/utils "$(pwd)" 7 | ln -sf "$(pwd)"/src/modules/elements "$(pwd)" 8 | ln -sf "$(pwd)"/src/modules/icons "$(pwd)" 9 | ln -sf "$(pwd)"/src/modules/components "$(pwd)" 10 | -------------------------------------------------------------------------------- /plugins/common/src/modules/data/plugins/actions.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Internal dependencies 3 | */ 4 | import * as types from './types'; 5 | 6 | export const addPlugin = ( name ) => ( { 7 | type: types.ADD_PLUGIN, 8 | payload: { 9 | name, 10 | }, 11 | } ); 12 | 13 | export const removePlugin = ( name ) => ( { 14 | type: types.REMOVE_PLUGIN, 15 | payload: { 16 | name, 17 | }, 18 | } ); 19 | -------------------------------------------------------------------------------- /plugins/events-pro/src/modules/data/blocks/additional-fields/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Internal dependencies 3 | */ 4 | import reducer from './reducers'; 5 | import * as types from './types'; 6 | import * as actions from './actions'; 7 | import * as selectors from './selectors'; 8 | import sagas from './sagas'; 9 | 10 | export default reducer; 11 | export { types, actions, selectors, sagas }; 12 | -------------------------------------------------------------------------------- /plugins/events-pro/src/modules/data/status/__tests__/actions.spec.js: -------------------------------------------------------------------------------- 1 | /** 2 | * External Dependencies 3 | */ 4 | import * as actions from '../actions'; 5 | 6 | describe( 'Status actions', () => { 7 | const keys = Object.keys( actions ); 8 | 9 | keys.forEach( ( key ) => { 10 | test( key, () => { 11 | expect( actions[ key ]( {} ) ).toMatchSnapshot(); 12 | } ); 13 | } ); 14 | } ); 15 | -------------------------------------------------------------------------------- /plugins/tickets/src/modules/data/blocks/reducer.js: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import { combineReducers } from 'redux'; 5 | 6 | /** 7 | * Internal dependencies 8 | */ 9 | import rsvp from './rsvp'; 10 | import ticket from './ticket'; 11 | import attendees from './attendees'; 12 | 13 | export default combineReducers( { 14 | rsvp, 15 | ticket, 16 | attendees, 17 | } ); 18 | -------------------------------------------------------------------------------- /plugins/events-pro/src/modules/elements/label/__tests__/__snapshots__/element.spec.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Label should match snapshot 1`] = ` 4 |
7 | 10 | Test label 11 | 12 |
13 | `; 14 | -------------------------------------------------------------------------------- /plugins/tickets/src/views/blocks/tickets/quantity-unavailable.php: -------------------------------------------------------------------------------- 1 | get( 'ticket' ); 10 | ?> 11 |
14 | 15 |
-------------------------------------------------------------------------------- /plugins/events-pro/src/modules/data/blocks/exception/__tests__/options.spec.js: -------------------------------------------------------------------------------- 1 | /** 2 | * External Dependencies 3 | */ 4 | import * as options from '../options'; 5 | 6 | describe( 'Exception options', () => { 7 | const keys = Object.keys( options ); 8 | 9 | keys.forEach( ( key ) => { 10 | test( key, () => { 11 | expect( options[ key ] ).toMatchSnapshot(); 12 | } ); 13 | } ); 14 | } ); 15 | -------------------------------------------------------------------------------- /plugins/tickets/src/views/blocks/rsvp/form/submit-button.php: -------------------------------------------------------------------------------- 1 | 9 | 17 | -------------------------------------------------------------------------------- /plugins/tickets/src/views/blocks/tickets/commerce/fields-woo.php: -------------------------------------------------------------------------------- 1 | get( 'provider' ); 9 | $provider_id = $this->get( 'provider_id' ); 10 | ?> 11 | -------------------------------------------------------------------------------- /plugins/common/src/modules/elements/block-icon/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import React from 'react'; 5 | 6 | /** 7 | * Internal dependencies 8 | */ 9 | import { TEC } from '@moderntribe/common/icons'; 10 | import './style.pcss'; 11 | 12 | export default () => ( 13 |
14 | 15 |
16 | ); 17 | -------------------------------------------------------------------------------- /plugins/common/src/modules/elements/heading/style.pcss: -------------------------------------------------------------------------------- 1 | .tribe-editor__heading { 2 | font-family: 'Helvetica', 'Arial', 'sans-serif'; 3 | color: #000; 4 | } 5 | 6 | .tribe-editor__heading--h1 { 7 | font-size: 2.375rem; /* 38pts */ 8 | } 9 | 10 | .tribe-editor__heading--h2 { 11 | font-size: 1.3125rem; /* 21pts */ 12 | } 13 | 14 | .tribe-editor__heading--h3 { 15 | font-size: 1rem; /* 16pts */ 16 | } 17 | -------------------------------------------------------------------------------- /plugins/tickets/src/modules/data/blocks/attendees/actions.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Internal dependencies 3 | */ 4 | import * as types from './types'; 5 | 6 | export const setTitle = ( title ) => ( { 7 | type: types.SET_ATTENDEES_TITLE, 8 | payload: { 9 | title, 10 | }, 11 | } ); 12 | 13 | export const setInitialState = ( payload ) => ( { 14 | type: types.SET_ATTENDEES_INITIAL_STATE, 15 | payload, 16 | } ); 17 | -------------------------------------------------------------------------------- /plugins/tickets/src/modules/data/blocks/ticket/reducers/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import { combineReducers } from 'redux'; 5 | 6 | /** 7 | * Internal dependencies 8 | */ 9 | import ui from './ui'; 10 | import tickets from './tickets'; 11 | import settings from './settings/index'; 12 | 13 | export default combineReducers( { 14 | ui, 15 | tickets, 16 | settings, 17 | } ); 18 | -------------------------------------------------------------------------------- /plugins/events-pro/src/modules/blocks/additional-fields/index.js: -------------------------------------------------------------------------------- 1 | export { default as Text } from './text/container'; 2 | export { default as URL } from './url/container'; 3 | export { default as TextArea } from './text-area/container'; 4 | export { default as Dropdown } from './dropdown/container'; 5 | export { default as Radio } from './radio/container'; 6 | export { default as Checkbox } from './checkbox/container'; 7 | -------------------------------------------------------------------------------- /plugins/events/src/modules/data/details/types.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Internal dependencies 3 | */ 4 | import { PREFIX_EVENTS_STORE } from '@moderntribe/events/data/utils'; 5 | 6 | export const SET_DETAILS = `${ PREFIX_EVENTS_STORE }/SET_DETAILS`; 7 | export const SET_DETAILS_POST_TYPE = `${ PREFIX_EVENTS_STORE }/SET_DETAILS_POST_TYPE`; 8 | export const SET_DETAILS_IS_LOADING = `${ PREFIX_EVENTS_STORE }/SET_DETAILS_IS_LOADING`; 9 | -------------------------------------------------------------------------------- /plugins/common/src/modules/utils/__tests__/slide.test.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Internal dependencies 3 | */ 4 | import { checkRequestIds } from '@moderntribe/common/utils/slide'; 5 | 6 | describe( 'Tests for slide.js', () => { 7 | it( 'should return null for up and down', () => { 8 | const ids = checkRequestIds( 'test-id' ); 9 | expect( ids.up ).toEqual( null ); 10 | expect( ids.down ).toEqual( null ); 11 | } ); 12 | } ); 13 | -------------------------------------------------------------------------------- /plugins/events/src/modules/data/blocks/venue/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Internal dependencies 3 | */ 4 | import reducer from './reducer'; 5 | import * as selectors from './selectors'; 6 | import * as actions from './actions'; 7 | import * as types from './types'; 8 | import * as utils from './utils'; 9 | import sagas from './sagas'; 10 | 11 | export default reducer; 12 | export { selectors, actions, types, utils, sagas }; 13 | -------------------------------------------------------------------------------- /plugins/tickets/src/modules/data/blocks/rsvp/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Internal dependencies 3 | */ 4 | import * as types from './types'; 5 | import * as actions from './actions'; 6 | import * as selectors from './selectors'; 7 | import * as thunks from './thunks'; 8 | import reducer from './reducer'; 9 | import sagas from './sagas'; 10 | 11 | export default reducer; 12 | export { types, actions, sagas, selectors, thunks }; 13 | -------------------------------------------------------------------------------- /plugins/tickets/src/views/blocks/tickets/extra-available-quantity.php: -------------------------------------------------------------------------------- 1 | get( 'ticket' ); 9 | ?> 10 | available() ); ?> 11 | -------------------------------------------------------------------------------- /plugins/events-pro/src/modules/blocks/additional-fields/checkbox/settings/style.pcss: -------------------------------------------------------------------------------- 1 | .tribe-editor__additional-fields__divider-settings { 2 | .components-base-control__field { 3 | display: flex; 4 | align-items: center; 5 | } 6 | 7 | .components-base-control__label { 8 | flex: auto; 9 | margin-bottom: 0; 10 | } 11 | 12 | .components-text-control__input { 13 | flex: none; 14 | width: 52px; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /plugins/events/src/modules/data/blocks/datetime/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Internal dependencies 3 | */ 4 | import reducer from './reducer'; 5 | import * as types from './types'; 6 | import * as actions from './actions'; 7 | import * as thunks from './thunks'; 8 | import * as selectors from './selectors'; 9 | import sagas from './sagas'; 10 | 11 | export default reducer; 12 | export { types, actions, thunks, selectors, sagas }; 13 | -------------------------------------------------------------------------------- /plugins/events-pro/src/modules/data/blocks/exception/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Internal dependencies 3 | */ 4 | import reducer from './reducer'; 5 | import * as types from './types'; 6 | import * as actions from './actions'; 7 | import * as selectors from './selectors'; 8 | import * as options from './options'; 9 | import sagas from './sagas'; 10 | 11 | export default reducer; 12 | export { types, actions, selectors, options, sagas }; 13 | -------------------------------------------------------------------------------- /plugins/events-pro/src/modules/elements/type-picker/style.pcss: -------------------------------------------------------------------------------- 1 | .tribe-editor__type-picker__type-select { 2 | width: 195px; 3 | 4 | .tribe-editor__select__option:last-child { 5 | position: relative; 6 | margin-top: 9px; 7 | 8 | &:after { 9 | content: ''; 10 | position: absolute; 11 | width: 100%; 12 | height: 1px; 13 | left: 0; 14 | top: -5px; 15 | background-color: #E1E3E6; 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /plugins/events/src/modules/data/reducers.js: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import { combineReducers } from 'redux'; 5 | 6 | /** 7 | * Internal dependencies 8 | */ 9 | import blocks from './blocks'; 10 | import ui from './ui'; 11 | import search from './search'; 12 | import details from './details'; 13 | 14 | export default combineReducers( { 15 | blocks, 16 | ui, 17 | search, 18 | details, 19 | } ); 20 | 21 | -------------------------------------------------------------------------------- /plugins/tickets/src/views/blocks/tickets/registration/content.php: -------------------------------------------------------------------------------- 1 | 9 |
10 | 11 | template( 'blocks/tickets/registration/summary/content' ); ?> 12 | template( 'blocks/tickets/registration/attendee/content' ); ?> 13 | 14 |
-------------------------------------------------------------------------------- /plugins/tickets/src/views/blocks/tickets/registration/summary/description.php: -------------------------------------------------------------------------------- 1 | 9 |
10 | 11 |
12 | -------------------------------------------------------------------------------- /plugins/events-pro/src/modules/data/status/reducer.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Internal dependencies 3 | */ 4 | import * as types from './types'; 5 | 6 | export const DEFAULT_STATE = {}; 7 | 8 | export default ( state = DEFAULT_STATE, action ) => { 9 | switch ( action.type ) { 10 | case types.SET_SERIES_QUEUE_STATUS: 11 | return { 12 | ...state, 13 | ...action.payload, 14 | }; 15 | default: 16 | return state; 17 | } 18 | }; 19 | -------------------------------------------------------------------------------- /plugins/common/src/modules/data/plugins/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Internal dependencies 3 | */ 4 | import reducer from './reducer'; 5 | import * as types from './types'; 6 | import * as actions from './actions'; 7 | import * as selectors from './selectors'; 8 | import * as constants from './constants'; 9 | import * as proptypes from './proptypes'; 10 | 11 | export default reducer; 12 | export { types, actions, selectors, constants, proptypes }; 13 | -------------------------------------------------------------------------------- /plugins/events-pro/src/modules/elements/add-field/__tests__/element.spec.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import renderer from 'react-test-renderer'; 3 | import AddField from '../element'; 4 | 5 | describe( 'AddField', () => { 6 | test( 'should match snapshot', () => { 7 | const component = renderer.create( 8 | 9 | ); 10 | expect( component.toJSON() ).toMatchSnapshot(); 11 | } ); 12 | } ); 13 | -------------------------------------------------------------------------------- /plugins/tickets/src/views/blocks/tickets/content-description.php: -------------------------------------------------------------------------------- 1 | get( 'ticket' ); 10 | 11 | if ( ! $ticket->show_description() ) { 12 | return false; 13 | } 14 | ?> 15 |
18 | description; ?> 19 |
-------------------------------------------------------------------------------- /plugins/events/src/modules/data/blocks/website/types.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Internal dependencies 3 | */ 4 | import { PREFIX_EVENTS_STORE } from '@moderntribe/events/data/utils'; 5 | 6 | export const SET_INITIAL_STATE = `${ PREFIX_EVENTS_STORE }/WEBSITE_BLOCK/SET_INITIAL_STATE`; 7 | 8 | export const SET_WEBSITE_URL = `${ PREFIX_EVENTS_STORE }/SET_WEBSITE_URL`; 9 | 10 | export const SET_WEBSITE_LABEL = `${ PREFIX_EVENTS_STORE }/SET_WEBSITE_LABEL`; 11 | -------------------------------------------------------------------------------- /plugins/tickets/src/modules/data/blocks/ticket/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Internal dependencies 3 | */ 4 | import reducer from './reducers'; 5 | 6 | import * as constants from './constants'; 7 | import * as types from './types'; 8 | import * as actions from './actions'; 9 | import * as selectors from './selectors'; 10 | import sagas from './sagas'; 11 | 12 | export default reducer; 13 | 14 | export { constants, types, actions, selectors, sagas }; 15 | -------------------------------------------------------------------------------- /plugins/events-pro/src/modules/elements/remove-field/__tests__/element.spec.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import renderer from 'react-test-renderer'; 3 | import RemoveField from '../element'; 4 | 5 | describe( 'RemoveField', () => { 6 | test( 'should render component', () => { 7 | const component = renderer.create( 8 | 9 | ); 10 | expect( component.toJSON() ).toMatchSnapshot(); 11 | } ); 12 | } ); 13 | -------------------------------------------------------------------------------- /plugins/events/src/modules/data/blocks/classic/__tests__/__snapshots__/reducer.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`[STORE] - Classic reducer Details title 1`] = ` 4 | Object { 5 | "detailsTitle": "Event", 6 | "organizerTitle": "", 7 | } 8 | `; 9 | 10 | exports[`[STORE] - Classic reducer Organizer title 1`] = ` 11 | Object { 12 | "detailsTitle": "", 13 | "organizerTitle": "Modern Tribe", 14 | } 15 | `; 16 | -------------------------------------------------------------------------------- /plugins/common/src/modules/data/plugins/__tests__/actions.test.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Internal dependencies 3 | */ 4 | import { actions } from '@moderntribe/common/data/plugins'; 5 | 6 | describe( 'Plugin actions', () => { 7 | test( 'Add Plugin', () => { 8 | expect( actions.addPlugin( 'events' ) ).toMatchSnapshot(); 9 | } ); 10 | 11 | test( 'Remove Plugin', () => { 12 | expect( actions.removePlugin( 'events' ) ).toMatchSnapshot(); 13 | } ); 14 | } ); 15 | -------------------------------------------------------------------------------- /plugins/tickets/src/modules/blocks/rsvp/counters/style.pcss: -------------------------------------------------------------------------------- 1 | .tribe-editor__rsvp-container-header__counters { 2 | flex: none; 3 | display: flex; 4 | } 5 | 6 | .tribe-editor__rsvp-container-header__going-counter, 7 | .tribe-editor__rsvp-container-header__not-going-counter { 8 | flex: none; 9 | } 10 | 11 | .tribe-editor__rsvp-container-header__going-counter { 12 | margin-right: 25px; 13 | 14 | &:last-child { 15 | margin-right: 0; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /plugins/tickets/src/modules/blocks/rsvp/settings-dashboard/style.pcss: -------------------------------------------------------------------------------- 1 | .tribe-editor__settings-dashboard__header-left { 2 | 3 | .tribe-editor__rsvp__settings-dashboard--loading & { 4 | 5 | & > svg { 6 | 7 | &, 8 | & path { 9 | fill: #AEB4BB; 10 | } 11 | } 12 | } 13 | } 14 | 15 | .tribe-editor__settings-dashboard__header-left-text { 16 | 17 | .tribe-editor__rsvp__settings-dashboard--loading & { 18 | color: #AEB4BB; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /plugins/tickets/src/views/blocks/rsvp/status/going.php: -------------------------------------------------------------------------------- 1 | 9 | 10 | 14 | -------------------------------------------------------------------------------- /plugins/common/src/modules/store/middlewares/request/__tests__/actions.test.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Internal dependencies 3 | */ 4 | import { actions } from '@moderntribe/common/store/middlewares/request'; 5 | 6 | describe( '[STORE] - Request actions', () => { 7 | test( 'WP Request action', () => { 8 | const meta = { 9 | path: 'tribe_organizer/1225', 10 | actions: {}, 11 | }; 12 | expect( actions.wpRequest( meta ) ).toMatchSnapshot(); 13 | } ); 14 | } ); 15 | -------------------------------------------------------------------------------- /plugins/events-pro/src/modules/elements/label/__tests__/element.spec.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import renderer from 'react-test-renderer'; 3 | import Label from '../element'; 4 | 5 | describe( 'Label', () => { 6 | test( 'should match snapshot', () => { 7 | const component = renderer.create( 8 | 11 | ); 12 | expect( component.toJSON() ).toMatchSnapshot(); 13 | } ); 14 | } ); 15 | -------------------------------------------------------------------------------- /plugins/events/src/modules/data/blocks/organizers/__tests__/__snapshots__/selectors.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`[STORE] - Organizers selectors Should return the mapped organizers 1`] = ` 4 | Array [ 5 | Object { 6 | "block": false, 7 | "id": 98, 8 | }, 9 | Object { 10 | "block": false, 11 | "id": 99, 12 | }, 13 | Object { 14 | "block": true, 15 | "id": 100, 16 | }, 17 | ] 18 | `; 19 | -------------------------------------------------------------------------------- /plugins/events/src/modules/data/blocks/website/__tests__/__snapshots__/reducer.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`[STORE] - Website reducer Should set the website label 1`] = ` 4 | Object { 5 | "label": "Modern Tribe", 6 | "url": undefined, 7 | } 8 | `; 9 | 10 | exports[`[STORE] - Website reducer Should set the website value 1`] = ` 11 | Object { 12 | "label": "", 13 | "url": "https://tri.be/", 14 | } 15 | `; 16 | -------------------------------------------------------------------------------- /plugins/events/src/modules/data/blocks/website/selectors.js: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import { createSelector } from 'reselect'; 5 | 6 | export const getWebsiteBlock = ( state ) => state.events.blocks.website; 7 | 8 | export const getUrl = createSelector( 9 | [ getWebsiteBlock ], 10 | ( website ) => website.url, 11 | ); 12 | 13 | export const getLabel = createSelector( 14 | [ getWebsiteBlock ], 15 | ( website ) => website.label, 16 | ); 17 | -------------------------------------------------------------------------------- /plugins/common/src/modules/elements/paragraph/style.pcss: -------------------------------------------------------------------------------- 1 | .tribe-editor__paragraph { 2 | font-family: 'Helvetica', 'Arial', 'sans-serif'; 3 | line-height: 1.5; 4 | font-weight: normal; 5 | 6 | &--medium { 7 | /* 16pt */ 8 | font-size: 1rem; 9 | } 10 | 11 | &--small { 12 | /* 14pt */ 13 | font-size: 0.875rem; 14 | } 15 | 16 | a { 17 | color: #11A0D2; 18 | 19 | &:hover { 20 | text-decoration: none; 21 | color: #007BB4; 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /plugins/common/src/modules/store/middlewares/request/__tests__/types.test.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Internal dependencies 3 | */ 4 | import { PREFIX_COMMON_STORE } from '@moderntribe/common/data/utils'; 5 | import { types } from '@moderntribe/common/store/middlewares/request'; 6 | 7 | describe( '[STORE] - Request types', () => { 8 | it( 'Should return the types values', () => { 9 | expect( types.WP_REQUEST ).toBe( `${ PREFIX_COMMON_STORE }/WP_REQUEST` ); 10 | } ); 11 | } ); 12 | -------------------------------------------------------------------------------- /plugins/events-pro/src/modules/elements/row/__tests__/element.spec.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import renderer from 'react-test-renderer'; 3 | import Row from '../element'; 4 | 5 | describe( 'Row', () => { 6 | test( 'should render component', () => { 7 | const component = renderer.create( 8 | 9 | Test children 10 | 11 | ); 12 | expect( component.toJSON() ).toMatchSnapshot(); 13 | } ); 14 | } ); 15 | -------------------------------------------------------------------------------- /plugins/events/src/modules/icons/tags.svg: -------------------------------------------------------------------------------- 1 | block-icon-tags -------------------------------------------------------------------------------- /plugins/common/src/modules/data/plugins/proptypes.js: -------------------------------------------------------------------------------- 1 | /** 2 | * External Dependencies 3 | */ 4 | import PropTypes from 'prop-types'; 5 | 6 | // 7 | // ─── VENDOR ───────────────────────────────────────────────────────────────────── 8 | // 9 | 10 | export const ReactSelectOption = PropTypes.shape( { 11 | label: PropTypes.string.isRequired, 12 | value: PropTypes.any.isRequired, 13 | } ); 14 | 15 | export const ReactSelectOptions = PropTypes.arrayOf( ReactSelectOption ); 16 | -------------------------------------------------------------------------------- /plugins/events-pro/src/modules/elements/exception-add-field/__tests__/element.spec.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import renderer from 'react-test-renderer'; 3 | import ExceptionAddField from '../element'; 4 | 5 | describe( 'ExceptionAddField', () => { 6 | test( 'should match snapshot', () => { 7 | const component = renderer.create( 8 | 9 | ); 10 | expect( component.toJSON() ).toMatchSnapshot(); 11 | } ); 12 | } ); 13 | -------------------------------------------------------------------------------- /plugins/events-pro/src/modules/elements/recurring-add-field/__tests__/element.spec.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import renderer from 'react-test-renderer'; 3 | import RecurringAddField from '../element'; 4 | 5 | describe( 'RecurringAddField', () => { 6 | test( 'should match snapshot', () => { 7 | const component = renderer.create( 8 | 9 | ); 10 | expect( component.toJSON() ).toMatchSnapshot(); 11 | } ); 12 | } ); 13 | -------------------------------------------------------------------------------- /plugins/events/src/modules/blocks/event-datetime/human-readable-input/__tests__/template.test.js: -------------------------------------------------------------------------------- 1 | import HumanReadableInput from '../template'; 2 | 3 | describe( 'Human readable input', () => { 4 | test( 'render component', () => { 5 | const component = renderer.create( 6 | 10 | ); 11 | expect( component.toJSON() ).toMatchSnapshot(); 12 | } ); 13 | } ); 14 | -------------------------------------------------------------------------------- /plugins/events/src/modules/editor/__tests__/post-types.test.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Internal dependencies 3 | */ 4 | import { EVENT, ORGANIZER, VENUE } from '@moderntribe/common/data/editor/post-types'; 5 | 6 | describe( 'Tests for post-types.js', () => { 7 | test( 'It should match the TEC post types', () => { 8 | expect( EVENT ).toEqual( 'tribe_events' ); 9 | expect( ORGANIZER ).toEqual( 'tribe_organizer' ); 10 | expect( VENUE ).toEqual( 'tribe_venue' ); 11 | } ); 12 | } ); 13 | -------------------------------------------------------------------------------- /plugins/events/src/views/blocks/parts/map.php: -------------------------------------------------------------------------------- 1 | 14 | 15 |
16 | 22 |
23 | -------------------------------------------------------------------------------- /plugins/tickets/src/modules/data/blocks/attendees/reducer.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Internal dependencies 3 | */ 4 | import * as types from './types'; 5 | 6 | export const DEFAULT_STATE = { 7 | title: '', 8 | }; 9 | 10 | export default ( state = DEFAULT_STATE, action ) => { 11 | switch ( action.type ) { 12 | case types.SET_ATTENDEES_TITLE: 13 | return { 14 | ...state, 15 | title: action.payload.title, 16 | }; 17 | default: 18 | return state; 19 | } 20 | }; 21 | -------------------------------------------------------------------------------- /plugins/events-pro/src/modules/data/status/selectors.js: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import { createSelector } from 'reselect'; 5 | import { constants } from '@moderntribe/common/data/plugins'; 6 | 7 | export const getStatus = ( state ) => state[ constants.EVENTS_PRO_PLUGIN ].status; 8 | 9 | export const isCompleted = createSelector( getStatus, status => !! status.done ); 10 | export const getProgress = createSelector( getStatus, status => status.progress ); 11 | -------------------------------------------------------------------------------- /plugins/events-pro/src/views/blocks/additional-fields/radio.php: -------------------------------------------------------------------------------- 1 | attr( 'isPristine' ); 3 | $label = $this->attr( 'label' ); 4 | $output = $this->attr( 'output' ); 5 | 6 | if ( $is_pristine ) { 7 | return; 8 | } 9 | ?> 10 |
11 | : 12 | 13 |
14 | -------------------------------------------------------------------------------- /plugins/events-pro/src/views/blocks/additional-fields/text.php: -------------------------------------------------------------------------------- 1 | attr( 'isPristine' ); 3 | $label = $this->attr( 'label' ); 4 | $output = $this->attr( 'output' ); 5 | 6 | if ( $is_pristine ) { 7 | return; 8 | } 9 | ?> 10 |
11 | : 12 | 13 |
14 | -------------------------------------------------------------------------------- /plugins/events/src/modules/data/blocks/classic/types.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Internal dependencies 3 | */ 4 | import { PREFIX_EVENTS_STORE } from '@moderntribe/events/data/utils'; 5 | 6 | export const SET_INITIAL_STATE = `${ PREFIX_EVENTS_STORE }/CLASSIC_BLOCK/SET_INITIAL_STATE`; 7 | 8 | export const SET_CLASSIC_DETAILS_TITLE = `${ PREFIX_EVENTS_STORE }/SET_CLASSIC_DETAILS_TITLE`; 9 | export const SET_CLASSIC_ORGANIZERS_TITLE = `${ PREFIX_EVENTS_STORE }/SET_CLASSIC_ORGANIZERS_TITLE`; 10 | -------------------------------------------------------------------------------- /plugins/common/src/modules/data/forms/reducers/volatile.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Internal dependencies 3 | */ 4 | import * as types from '@moderntribe/common/data/forms/types'; 5 | 6 | export default ( state = [], action ) => { 7 | switch ( action.type ) { 8 | case types.ADD_VOLATILE_ID: 9 | return [ ...state, action.payload.id ]; 10 | case types.REMOVE_VOLATILE_ID: 11 | return state.filter( ( id ) => id !== action.payload.id ); 12 | default: 13 | return state; 14 | } 15 | }; 16 | -------------------------------------------------------------------------------- /plugins/events-pro/src/modules/data/blocks/recurring/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Internal dependencies 3 | */ 4 | import reducer from './reducer'; 5 | import * as types from './types'; 6 | import * as actions from './actions'; 7 | import * as selectors from './selectors'; 8 | import * as constants from './constants'; 9 | import * as options from './options'; 10 | import sagas from './sagas'; 11 | 12 | export default reducer; 13 | export { types, actions, selectors, options, constants, sagas }; 14 | -------------------------------------------------------------------------------- /plugins/events-pro/src/modules/elements/fieldset/__tests__/element.spec.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import renderer from 'react-test-renderer'; 3 | import Fieldset from '../element'; 4 | 5 | describe( 'Fieldset', () => { 6 | test( 'should match snapshot', () => { 7 | const component = renderer.create( 8 |
9 | Test children 10 |
11 | ); 12 | expect( component.toJSON() ).toMatchSnapshot(); 13 | } ); 14 | } ); 15 | -------------------------------------------------------------------------------- /plugins/events-pro/src/modules/elements/month-picker/month-tag/__tests__/__snapshots__/element.spec.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`MonthTag should render component 1`] = ` 4 | 16 | `; 17 | -------------------------------------------------------------------------------- /plugins/events-pro/src/views/blocks/additional-fields/checkbox.php: -------------------------------------------------------------------------------- 1 | attr( 'isPristine' ); 3 | $label = $this->attr( 'label' ); 4 | $output = $this->attr( 'output' ); 5 | 6 | if ( $is_pristine ) { 7 | return; 8 | } 9 | ?> 10 |
11 | : 12 | 13 |
14 | -------------------------------------------------------------------------------- /plugins/events-pro/src/views/blocks/additional-fields/dropdown.php: -------------------------------------------------------------------------------- 1 | attr( 'isPristine' ); 3 | $label = $this->attr( 'label' ); 4 | $output = $this->attr( 'output' ); 5 | 6 | if ( $is_pristine ) { 7 | return; 8 | } 9 | ?> 10 |
11 | : 12 | 13 |
14 | -------------------------------------------------------------------------------- /plugins/events/src/modules/blocks/event-datetime/human-readable-input/__tests__/__snapshots__/template.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Human readable input render component 1`] = ` 4 |
7 | 14 |
15 | `; 16 | -------------------------------------------------------------------------------- /plugins/events/src/modules/data/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import reducer from './reducers'; 5 | 6 | import { actions } from '@moderntribe/common/data/plugins'; 7 | import { store } from '@moderntribe/common/store'; 8 | 9 | export const initStore = () => { 10 | const { dispatch, injectReducers } = store; 11 | 12 | dispatch( actions.addPlugin( 'events' ) ); 13 | injectReducers( { events: reducer } ); 14 | }; 15 | 16 | export const getStore = () => store; 17 | -------------------------------------------------------------------------------- /plugins/events/src/modules/icons/organizer.svg: -------------------------------------------------------------------------------- 1 | block-icon-organizer -------------------------------------------------------------------------------- /plugins/events/src/modules/icons/sharing.svg: -------------------------------------------------------------------------------- 1 | block-icon-share -------------------------------------------------------------------------------- /plugins/common/src/modules/elements/paragraph/__tests__/__snapshots__/element.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[` default paragraph 1`] = ` 4 |

7 | Modern Tribe 8 |

9 | `; 10 | 11 | exports[` smaller paragraph 1`] = ` 12 |

15 | Modern Tribe 16 |

17 | `; 18 | -------------------------------------------------------------------------------- /plugins/common/src/modules/elements/placeholder/__tests__/__snapshots__/element.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[` component Custom Class name attached 1`] = ` 4 |
7 | Custom Text 8 |
9 | `; 10 | 11 | exports[` component Default behavior 1`] = ` 12 |
15 | Custom Text 16 |
17 | `; 18 | -------------------------------------------------------------------------------- /plugins/common/src/modules/icons/index.js: -------------------------------------------------------------------------------- 1 | export { default as TEC } from './tec.svg'; 2 | export { default as Close } from './close.svg'; 3 | export { default as Alert } from './alert.svg'; 4 | export { default as Clipboard } from './clipboard.svg'; 5 | export { default as Cog } from './cog.svg'; 6 | export { default as Info } from './info.svg'; 7 | export { default as Pencil } from './pencil.svg'; 8 | export { default as Tag } from './tag.svg'; 9 | export { default as User } from './user.svg'; 10 | -------------------------------------------------------------------------------- /plugins/tickets/src/modules/icons/rsvp.svg: -------------------------------------------------------------------------------- 1 | block-icon-rsvp -------------------------------------------------------------------------------- /plugins/tickets/src/views/blocks/rsvp/form/quantity.php: -------------------------------------------------------------------------------- 1 | 9 |
10 | template( 'blocks/rsvp/form/quantity-minus' ); ?> 11 | 12 | template( 'blocks/rsvp/form/quantity-input', array( 'ticket' => $ticket ) ); ?> 13 | 14 | template( 'blocks/rsvp/form/quantity-plus' ); ?> 15 |
-------------------------------------------------------------------------------- /plugins/tickets/src/views/blocks/tickets/registration/summary/tickets.php: -------------------------------------------------------------------------------- 1 | 9 |
10 | 11 | $ticket ) : ?> 12 | 13 | template( 'blocks/tickets/registration/summary/ticket', array( 'ticket' => $ticket, 'key' => $key ) ); ?> 14 | 15 | 16 | 17 |
-------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Directories/files that may be generated by this project 2 | build 3 | plugins/**/src/resources/*/* 4 | !plugins/**/src/resources/js/views 5 | node_modules 6 | 7 | # Directories/files that may appear in your environment 8 | .DS_Store 9 | *.log 10 | phpcs.xml 11 | docker-compose.override.yml 12 | cypress.env.json 13 | .idea 14 | /node_modules/ 15 | npm-debug.log 16 | yarn-error.log 17 | .vscode 18 | yarn.lock 19 | stats.json 20 | report.html 21 | !/plugins/common/src/resources/icons/ 22 | -------------------------------------------------------------------------------- /plugins/common/src/modules/data/plugins/__tests__/__snapshots__/actions.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Plugin actions Add Plugin 1`] = ` 4 | Object { 5 | "payload": Object { 6 | "name": "events", 7 | }, 8 | "type": "@@MT/COMMON/ADD_PLUGIN", 9 | } 10 | `; 11 | 12 | exports[`Plugin actions Remove Plugin 1`] = ` 13 | Object { 14 | "payload": Object { 15 | "name": "events", 16 | }, 17 | "type": "@@MT/COMMON/REMOVE_PLUGIN", 18 | } 19 | `; 20 | -------------------------------------------------------------------------------- /plugins/tickets/src/modules/blocks/rsvp/duration/style.pcss: -------------------------------------------------------------------------------- 1 | .tribe-editor__rsvp-duration { 2 | display: flex; 3 | align-items: flex-start; 4 | padding-top: 30px; 5 | 6 | 7 | .tribe-editor__timepicker-label-container { 8 | border-width: 1px; 9 | border-color: #e1e3e6; 10 | 11 | .tribe-editor__btn-input { 12 | padding-top: 11px; 13 | padding-bottom: 10px; 14 | font-size: 14px; 15 | } 16 | 17 | input[type="time"]:focus { 18 | box-shadow: none; 19 | } 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /plugins/tickets/src/modules/blocks/rsvp/header-image/style.pcss: -------------------------------------------------------------------------------- 1 | .tribe-editor__image-upload__title { 2 | 3 | .tribe-editor__rsvp__settings-dashboard--loading & { 4 | color: #AEB4BB; 5 | } 6 | } 7 | 8 | .tribe-editor__image-upload__description { 9 | 10 | .tribe-editor__rsvp__settings-dashboard--loading & { 11 | color: #AEB4BB; 12 | } 13 | } 14 | 15 | .tribe-editor__image-upload__image { 16 | 17 | .tribe-editor__rsvp__settings-dashboard--loading & { 18 | opacity: 0.5; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /plugins/tickets/src/views/blocks/attendees/description.php: -------------------------------------------------------------------------------- 1 | get( 'post_id' ); 9 | $attendees_total = count( $attendees ); 10 | $message = _n( 'One person is attending %2$s', '%d people are attending %s', $attendees_total, 'events-gutenberg' ); 11 | ?> 12 |

-------------------------------------------------------------------------------- /jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES6", 4 | "module": "commonjs", 5 | "jsx": "react", 6 | "allowSyntheticDefaultImports": true, 7 | "baseUrl": "./plugins", 8 | "paths": { 9 | "@moderntribe/*": ["./*/src/modules"] 10 | } 11 | }, 12 | "include": [ 13 | "plugins" 14 | ], 15 | "exclude": [ 16 | "**/node_modules/*", 17 | "**/resources/*", 18 | "**/Tribe/*" 19 | ] 20 | } -------------------------------------------------------------------------------- /plugins/common/src/modules/elements/input/style.pcss: -------------------------------------------------------------------------------- 1 | /* increased specificity required to override gutenberg editor styles */ 2 | input.tribe-editor__input { 3 | 4 | /* @todo: type=number is in input styles because this list will grow (common input styles) */ 5 | &[type=number] { 6 | color: #000000; 7 | font-size: 16px; 8 | line-height: 24px; 9 | border: 1px solid #E1E3E6; 10 | padding: 7px 15px; 11 | height: 40px; 12 | 13 | &:disabled { 14 | color: #AEB4BB; 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /plugins/events/src/modules/data/blocks/classic/selectors.js: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import { createSelector } from 'reselect'; 5 | 6 | export const classicSelector = ( state ) => state.events.blocks.classic; 7 | 8 | export const detailsTitleSelector = createSelector( 9 | [ classicSelector ], 10 | ( values ) => values.detailsTitle, 11 | ); 12 | 13 | export const organizerTitleSelector = createSelector( 14 | [ classicSelector ], 15 | ( values ) => values.organizerTitle, 16 | ); 17 | -------------------------------------------------------------------------------- /plugins/common/src/modules/elements/counter/style.pcss: -------------------------------------------------------------------------------- 1 | .tribe-editor__counter { 2 | display: flex; 3 | flex-direction: column; 4 | align-items: center; 5 | } 6 | 7 | .tribe-editor__counter__count { 8 | flex: none; 9 | color: #AEB4BB; 10 | font-size: 32px; 11 | font-weight: bold; 12 | line-height: 40px; 13 | margin-bottom: 10px; 14 | } 15 | 16 | .tribe-editor__counter__label { 17 | flex: none; 18 | color: #AEB4BB; 19 | font-size: 12px; 20 | line-height: 14px; 21 | letter-spacing: 0.04px; 22 | } 23 | -------------------------------------------------------------------------------- /plugins/events/src/modules/elements/loading/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * External dependencies 3 | */ 4 | import React from 'react'; 5 | import classNames from 'classnames'; 6 | 7 | /** 8 | * Wordpress dependencies 9 | */ 10 | import { Spinner } from '@wordpress/components'; 11 | 12 | import './style.pcss'; 13 | 14 | export default ( { className } ) => { 15 | return ( 16 | 17 | 18 | 19 | ); 20 | }; 21 | -------------------------------------------------------------------------------- /plugins/tickets/src/modules/data/blocks/sagas.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Internal dependencies 3 | */ 4 | import { store } from '@moderntribe/common/store'; 5 | import { sagas as RSVPSagas } from '@moderntribe/tickets/data/blocks/rsvp'; 6 | import { sagas as TicketSagas } from '@moderntribe/tickets/data/blocks/ticket'; 7 | import { sagas as AttendeesSagas } from '@moderntribe/tickets/data/blocks/attendees'; 8 | 9 | [ 10 | RSVPSagas, 11 | TicketSagas, 12 | AttendeesSagas 13 | ].forEach( sagas => store.run( sagas ) ); 14 | -------------------------------------------------------------------------------- /plugins/tickets/src/views/blocks/tickets/registration/summary/content.php: -------------------------------------------------------------------------------- 1 | 9 |
10 | 11 | template( 'blocks/tickets/registration/summary/title' ); ?> 12 | 13 | template( 'blocks/tickets/registration/summary/description' ); ?> 14 | 15 | template( 'blocks/tickets/registration/summary/tickets' ); ?> 16 | 17 |
-------------------------------------------------------------------------------- /plugins/events-pro/src/views/blocks/additional-fields/textarea.php: -------------------------------------------------------------------------------- 1 | attr( 'isPristine' ); 3 | $label = $this->attr( 'label' ); 4 | $output = $this->attr( 'output' ); 5 | 6 | if ( $is_pristine ) { 7 | return; 8 | } 9 | ?> 10 |
11 | : 12 |
13 | 14 |
15 |
16 | -------------------------------------------------------------------------------- /plugins/events/src/styles/event-website/frontend.pcss: -------------------------------------------------------------------------------- 1 | /** 2 | * Website block view styles 3 | * 4 | * @since 0.2.4-alpha 5 | */ 6 | 7 | .tribe-block__event-website { 8 | a { 9 | align-items: center; 10 | border: 1px solid #e1e3e6; 11 | background-color: #009fd4; 12 | color: #fff; 13 | display: inline-flex; 14 | font-size: 1.125rem; 15 | justify-content: center; 16 | min-height: 54px; 17 | padding: 0 20px; 18 | max-width: 100%; 19 | 20 | &:hover { 21 | color: #fff; 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /plugins/tickets/src/modules/blocks/tickets/style.pcss: -------------------------------------------------------------------------------- 1 | .tribe-editor__tickets-container { 2 | color: #545D66; 3 | font-family: Helvetica, sans-serif, arial; 4 | 5 | .editor-inserter { 6 | display: none; 7 | } 8 | 9 | .editor-block-list__block { 10 | font-family: inherit; 11 | } 12 | } 13 | 14 | .tribe-editor__tickets-container--loading { 15 | display: flex; 16 | align-items: center; 17 | justify-content: center; 18 | padding: 20px; 19 | 20 | .components-spinner { 21 | flex: none; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset=utf - 8 5 | end_of_line = lf 6 | insert_final_newline = true 7 | trim_trailing_whitespace = true 8 | 9 | [*.php] 10 | indent_style = tab 11 | indent_size = 4 12 | end_of_line = lf 13 | 14 | [*.{js,jsx}] 15 | indent_style = tab 16 | end_of_line = lf 17 | spaces_within_imports = true 18 | indent_size = 2 19 | 20 | [*.{css,pcss}] 21 | indent_style = tab 22 | end_of_line = lf 23 | indent_size = 4 24 | 25 | [*.{json,yml}] 26 | indent_style = space 27 | indent_size = 2 28 | -------------------------------------------------------------------------------- /plugins/common/src/modules/hoc/__tests__/__snapshots__/with-form.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`HOC - With Form Should register the postType by dispatching the actions 1`] = ` 4 | Array [ 5 | Object { 6 | "payload": Object { 7 | "id": "posts", 8 | "type": "post", 9 | }, 10 | "type": "@@MT/COMMON/ADD_FORM", 11 | }, 12 | ] 13 | `; 14 | 15 | exports[`HOC - With Form Should render a component 1`] = ` 16 |
17 | With Form! 18 |
19 | `; 20 | -------------------------------------------------------------------------------- /plugins/tickets/src/styles/attendees/frontend.pcss: -------------------------------------------------------------------------------- 1 | /** 2 | * Attendees block view styles 3 | * 4 | * @since TBD 5 | */ 6 | .tribe-block__attendees { 7 | margin-top: 30px; 8 | margin-bottom: 30px; 9 | 10 | img { 11 | border-radius: 100%; 12 | width: 60px; 13 | height: 60px; 14 | } 15 | } 16 | 17 | .tribe-block__attendees__title { 18 | display: block; 19 | font-style: normal; 20 | font-family: 'Helvetica', sans-serif, arial; 21 | font-size: 21px; 22 | font-weight: bold; 23 | line-height: normal; 24 | } -------------------------------------------------------------------------------- /plugins/tickets/src/views/blocks/tickets/registration/attendee/content.php: -------------------------------------------------------------------------------- 1 | 9 |
12 | $ticket ) : ?> 13 | template( 'blocks/tickets/registration/attendee/fields', array( 'ticket' => $ticket, 'key' => $key ) ); ?> 14 | 15 |
16 | 17 | -------------------------------------------------------------------------------- /plugins/common/src/modules/data/plugins/__tests__/types.test.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Internal dependencies 3 | */ 4 | import { PREFIX_COMMON_STORE } from '@moderntribe/common/data/utils'; 5 | import { types } from '@moderntribe/common/data/plugins'; 6 | 7 | describe( 'Plugin types', () => { 8 | it( 'Should return the types with a prefix', () => { 9 | expect( types.ADD_PLUGIN ).toBe( `${ PREFIX_COMMON_STORE }/ADD_PLUGIN` ); 10 | expect( types.REMOVE_PLUGIN ).toBe( `${ PREFIX_COMMON_STORE }/REMOVE_PLUGIN` ); 11 | } ); 12 | } ); 13 | -------------------------------------------------------------------------------- /plugins/events-pro/src/views/blocks/additional-fields/url.php: -------------------------------------------------------------------------------- 1 | attr( 'isPristine' ); 3 | $label = $this->attr( 'label' ); 4 | $output = $this->attr( 'output' ); 5 | 6 | if ( $is_pristine ) { 7 | return; 8 | } 9 | ?> 10 |
11 | : 12 | 13 |
14 | -------------------------------------------------------------------------------- /plugins/events/src/modules/elements/upsell/style.pcss: -------------------------------------------------------------------------------- 1 | .tribe-editor__subtitle__footer-upsell { 2 | padding: 15px 22px; 3 | background-color: #e7f5fa; 4 | border-top: 1px solid #e3e4e8; 5 | } 6 | 7 | p.tribe-editor__subtitle__footer-upsell-text { 8 | font-size: 16px; 9 | font-style: normal; 10 | font-family: Helvetica, sans-serif, arial; 11 | font-weight: normal; 12 | line-height: 1.3; 13 | color: #191e22; 14 | margin: 0; 15 | } 16 | 17 | .tribe-editor__subtitle__footer-upsell-link { 18 | color: #191e22; 19 | } 20 | -------------------------------------------------------------------------------- /plugins/events/src/modules/icons/checkbox-on.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /plugins/events/src/modules/data/blocks/website/actions.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Internal dependencies 3 | */ 4 | import * as types from './types'; 5 | 6 | export const setWebsite = ( url ) => ( { 7 | type: types.SET_WEBSITE_URL, 8 | payload: { 9 | url, 10 | }, 11 | } ); 12 | 13 | export const setLabel = ( label ) => ( { 14 | type: types.SET_WEBSITE_LABEL, 15 | payload: { 16 | label, 17 | }, 18 | } ); 19 | 20 | export const setInitialState = ( props ) => ( { 21 | type: types.SET_INITIAL_STATE, 22 | payload: props, 23 | } ); 24 | -------------------------------------------------------------------------------- /plugins/common/src/modules/elements/textarea/element.js: -------------------------------------------------------------------------------- 1 | /** 2 | * External Dependencies 3 | */ 4 | import React from 'react'; 5 | import PropTypes from 'prop-types'; 6 | import classNames from 'classnames'; 7 | 8 | /** 9 | * Internal dependencies 10 | */ 11 | 12 | const Textarea = ( { className, ...rest } ) => ( 13 |