Skip to content

Storybook for Core UI, plus propTypes across the component library - #314

Closed
caseylocker wants to merge 2 commits into
mainfrom
feature/storybook-mui
Closed

Storybook for Core UI, plus propTypes across the component library#314
caseylocker wants to merge 2 commits into
mainfrom
feature/storybook-mui

Conversation

@caseylocker

Copy link
Copy Markdown

ref: https://app.clickup.com/t/86bbcy9rt

Adds a Storybook covering the component library, and the propTypes needed to make its props tables useful. Answers the "show every Core UI component and the options you can adjust" ask from the design system work.

A hosted preview is available for review, credentials in the ClickUp ticket.

Two commits, reviewable separately

1. feat(storybook) — stories and Storybook config only. Nothing under src/, so it cannot affect the published library.

304 index entries: 194 stories and 110 generated docs pages. 35 new story files cover the non-MUI components (inputs, the four tables, forms, uploads, schedule builder, plus one grouped file for the async entity selects), alongside the existing MUI stories.

Two config details worth knowing. The webpack5 builder ships neither a JS compiler nor .less/.scss handling, so main.js adds rules for both in module and global form. And the legacy components emit bootstrap classes and fa icons that the library does not declare as dependencies, so preview-head.html links bootstrap 3.3.7 from the same CDN summit-admin uses in src/index.ejs, and preview.jsx imports font-awesome the same way summit-admin does in src/index.js. Thirteen of the fifteen consumers load that same bootstrap build.

2. docs(components)propTypes on 43 components under src/. This is the commit worth real review.

All 53 components covered by stories now declare types, required flags, defaults and per-prop descriptions. Previously ten did, and most props tables rendered empty.

What the audit turned up

Writing these surfaced behaviour that was only visible by reading the source:

  • A family of props gated on hasOwnProperty rather than value, so passing false still enables them: multi, clearable, small, big, noAlert, textArea, allowCreate, shouldUseId. This splits on class vs function components. SponsorInput, AttendeeInput and OperatorInput read the value normally.
  • Input is uncontrolled. SteppedSelect throws on a value matching no option. ScheduleBuilderView requires summit.time_zone.name. RsvpForm requires errors. RegistrationCompanyInput requires onError.

Each is now stated in the relevant props table.

Risk

propTypes are dev-time only and change no rendering behaviour. One exception: stepped-select exported an anonymous arrow, so it had no displayName and nowhere to attach propTypes. It is now a named const with the same default export.

Also replaces the SummitAddonSelect stories with AddonTypeSelect to follow the rename in #303, and gitignores storybook-static.

Verification

Rebased onto main at v5.0.47. npm run build passes, jest is 916/916 across 113 suites, and npm run build-storybook completes with all 304 entries.

Not included

The preview is hosted from a personal Cloudflare account as a throwaway review link. Where a permanent component site gets published is still open, since the mkdocs pipeline behind the docs site has no Node and no Core UI checkout and so cannot build a Storybook bundle. Tracked in the ClickUp ticket.

…verage

Adds Storybook 10 (react-webpack5) covering the component library:
304 index entries across 194 stories and 110 generated docs pages.

* 35 story files for the non-MUI Core UI components: inputs, the four
  tables, forms, uploads, schedule builder, plus one grouped file for the
  async entity selects
* Autodocs enabled globally, so each component gets a props table with
  live controls
* webpack rules for .less/.scss in module and global form, which the
  webpack5 builder does not ship
* font-awesome imported and bootstrap 3.3.7 linked via preview-head.html,
  matching what summit-admin and the other consumers load, so legacy
  components render with their icons and bootstrap classes
* replaces SummitAddonSelect stories with AddonTypeSelect following the
  rename in #303

storybook-static is gitignored.
Adds propTypes with types, required flags, defaults and per-prop
descriptions to 43 components, so all 53 components covered by stories
document their interface. Previously only ten declared them and most
generated props tables were empty.

Documents behaviour that was only discoverable by reading the source:

* a family of props gated on hasOwnProperty rather than value, where
  passing false still enables the behaviour: multi, clearable, small,
  big, noAlert, textArea, allowCreate, shouldUseId. This splits on class
  vs function components; SponsorInput, AttendeeInput and OperatorInput
  read the value normally
* Input is uncontrolled, SteppedSelect throws on a value matching no
  option, ScheduleBuilderView requires summit.time_zone.name, RsvpForm
  requires errors, RegistrationCompanyInput requires onError

propTypes are dev-time only and change no rendering behaviour. The one
exception is stepped-select, which exported an anonymous arrow and so
had no displayName and nowhere to attach propTypes; it is now a named
const with the same default export.
@coderabbitai

coderabbitai Bot commented Aug 12, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 160 files, which is 60 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 5d9899cb-4181-4763-b6cd-416111548e0b

📥 Commits

Reviewing files that changed from the base of the PR and between 848fc18 and 948943d.

⛔ Files ignored due to path filters (1)
  • yarn.lock is excluded by !**/yarn.lock, !**/*.lock
📒 Files selected for processing (160)
  • .gitignore
  • .storybook/main.js
  • .storybook/preview-head.html
  • .storybook/preview.jsx
  • package.json
  • src/components/ajaxloader/index.js
  • src/components/bulk-actions-selector/index.js
  • src/components/clock.js
  • src/components/exclusive-wrapper.js
  • src/components/forms/rsvp-form.js
  • src/components/forms/simple-form.js
  • src/components/inputs/access-levels-input.js
  • src/components/inputs/action-dropdown/index.js
  • src/components/inputs/attendee-input.js
  • src/components/inputs/company-input.js
  • src/components/inputs/country-dropdown.js
  • src/components/inputs/country-input.js
  • src/components/inputs/datetimepicker/index.js
  • src/components/inputs/dropdown.js
  • src/components/inputs/editor-input/index.js
  • src/components/inputs/event-input.js
  • src/components/inputs/free-multi-text-input.js
  • src/components/inputs/group-input.js
  • src/components/inputs/grouped-dropdown/index.js
  • src/components/inputs/language-input.js
  • src/components/inputs/member-input.js
  • src/components/inputs/operator-input.js
  • src/components/inputs/organization-input.js
  • src/components/inputs/speaker-input.js
  • src/components/inputs/sponsor-input.js
  • src/components/inputs/sponsored-project-input.js
  • src/components/inputs/stepped-select/index.jsx
  • src/components/inputs/summit-days-select.js
  • src/components/inputs/summit-input.js
  • src/components/inputs/summit-venues-select.js
  • src/components/inputs/text-input.js
  • src/components/inputs/textarea-input.js
  • src/components/inputs/upload-input-v2/index.js
  • src/components/inputs/upload-input-v3/index.js
  • src/components/inputs/upload-input/index.js
  • src/components/raw-html/index.js
  • src/components/schedule-builder-view/index.js
  • src/components/sections/panel.js
  • src/components/summit-dropdown/index.js
  • src/components/table-editable/EditableTable.js
  • src/components/table-selectable/SelectableTable.js
  • src/components/table/Table.js
  • src/components/video-stream.js
  • stories/AddonTypeSelect.stories.jsx
  • stories/AlertButton.stories.jsx
  • stories/AlertModal.stories.jsx
  • stories/AuthButton.stories.jsx
  • stories/BulkEditTable.stories.jsx
  • stories/CartButton.stories.jsx
  • stories/CheckboxList.stories.jsx
  • stories/ChipList.stories.jsx
  • stories/ChipNotify.stories.jsx
  • stories/ChipSelectInput.stories.jsx
  • stories/ConfirmDeleteDialog.stories.jsx
  • stories/ConfirmDialog.stories.jsx
  • stories/CustomAlert.stories.jsx
  • stories/CustomTablePagination.stories.jsx
  • stories/DndList.stories.jsx
  • stories/DownloadBtn.stories.jsx
  • stories/DragNDropList.stories.jsx
  • stories/Dropdown.stories.jsx
  • stories/DropdownCheckbox.stories.jsx
  • stories/EditableTable.stories.jsx
  • stories/ExtraRows.stories.jsx
  • stories/FormItemTable.stories.jsx
  • stories/FormikAdditionalInput.stories.jsx
  • stories/FormikAdditionalInputList.stories.jsx
  • stories/FormikAddonTypeSelect.stories.jsx
  • stories/FormikAsyncSelect.stories.jsx
  • stories/FormikCheckbox.stories.jsx
  • stories/FormikCheckboxGroup.stories.jsx
  • stories/FormikCompanyInput.stories.jsx
  • stories/FormikDatepicker.stories.jsx
  • stories/FormikDiscountField.stories.jsx
  • stories/FormikDropdownCheckbox.stories.jsx
  • stories/FormikDropdownRadio.stories.jsx
  • stories/FormikFileSizeField.stories.jsx
  • stories/FormikItemPriceTiers.stories.jsx
  • stories/FormikPriceField.stories.jsx
  • stories/FormikQuantityField.stories.jsx
  • stories/FormikRadioGroup.stories.jsx
  • stories/FormikSelect.stories.jsx
  • stories/FormikSelectGroup.stories.jsx
  • stories/FormikSelectV2.stories.jsx
  • stories/FormikSponsorInput.stories.jsx
  • stories/FormikSponsorshipInput.stories.jsx
  • stories/FormikSponsorshipSummitSelect.stories.jsx
  • stories/FormikSwitch.stories.jsx
  • stories/FormikTextEditor.stories.jsx
  • stories/FormikTextField.stories.jsx
  • stories/FormikTimepicker.stories.jsx
  • stories/FormikUpload.stories.jsx
  • stories/GridFilter.stories.jsx
  • stories/InfiniteTable.stories.jsx
  • stories/InfoNote.stories.jsx
  • stories/InlineCard.stories.jsx
  • stories/ItemSettingsModal.stories.jsx
  • stories/ListCard.stories.jsx
  • stories/LoadingOverlay.stories.jsx
  • stories/MenuButton.stories.jsx
  • stories/NavBar.stories.jsx
  • stories/NotesModal.stories.jsx
  • stories/OrderSummary.stories.jsx
  • stories/RoundButton.stories.jsx
  • stories/SearchInput.stories.jsx
  • stories/ShowConfirmDialog.stories.jsx
  • stories/SnackbarNotification.stories.jsx
  • stories/SortableTable.stories.jsx
  • stories/SponsorAddonSelect.stories.jsx
  • stories/SponsorOrderGrid.stories.jsx
  • stories/StatusChip.stories.jsx
  • stories/StripePayment.stories.jsx
  • stories/SummitsDropdown.stories.jsx
  • stories/Table.stories.jsx
  • stories/TableCard.stories.jsx
  • stories/ToggleButtons.stories.jsx
  • stories/UploadBtn.stories.jsx
  • stories/UploadDialog.stories.jsx
  • stories/_form-item-fixture.js
  • stories/_helpers.jsx
  • stories/core/ActionDropdown.stories.jsx
  • stories/core/AjaxLoader.stories.jsx
  • stories/core/AsyncEntityInputs.stories.jsx
  • stories/core/BulkActionsSelector.stories.jsx
  • stories/core/CheckboxList.stories.jsx
  • stories/core/CircleButton.stories.jsx
  • stories/core/Clock.stories.jsx
  • stories/core/DateTimePicker.stories.jsx
  • stories/core/Dropdown.stories.jsx
  • stories/core/EditableTable.stories.jsx
  • stories/core/Exclusive.stories.jsx
  • stories/core/FreeMultiTextInput.stories.jsx
  • stories/core/FreeTextSearch.stories.jsx
  • stories/core/GroupedDropdown.stories.jsx
  • stories/core/Panel.stories.jsx
  • stories/core/RadioList.stories.jsx
  • stories/core/RawHTML.stories.jsx
  • stories/core/RsvpForm.stories.jsx
  • stories/core/ScheduleBuilderView.stories.jsx
  • stories/core/SelectableTable.stories.jsx
  • stories/core/SimpleForm.stories.jsx
  • stories/core/SimpleLinkList.stories.jsx
  • stories/core/SortableTable.stories.jsx
  • stories/core/SteppedSelect.stories.jsx
  • stories/core/SummitDaysSelect.stories.jsx
  • stories/core/SummitDropdown.stories.jsx
  • stories/core/SummitVenuesSelect.stories.jsx
  • stories/core/Table.stories.jsx
  • stories/core/TextArea.stories.jsx
  • stories/core/TextEditor.stories.jsx
  • stories/core/TextInput.stories.jsx
  • stories/core/UploadInput.stories.jsx
  • stories/core/UploadInputV2.stories.jsx
  • stories/core/UploadInputV3.stories.jsx
  • stories/core/VideoStream.stories.jsx

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@caseylocker

Copy link
Copy Markdown
Author

Superseded by two PRs. Closing this one.

Split along that line because they have different blast radii. #316 changes the library that every FN app installs; #315 changes nothing that ships in the package. Different reviewers care about each, and if the propTypes cause trouble downstream they can be reverted without touching the gallery.

Worth noting for anyone comparing: #316's version of the propTypes is not the same as this PR's. Reviewing them against the actual component behaviour turned up a set of declarations that contradicted it, which is worse than having none, since propTypes run in the development build of every consuming app and produce false console warnings. Those are corrected in #316. Examples: props marked optional that the component dereferences with no guard, props the component reads but never declared, and JSDoc describing behaviour the component does not have.

Leaving the feature/storybook-mui branch in place rather than deleting it, since e5a2a10 and 948943d are the provenance for the content in both replacement PRs.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces a Storybook instance to showcase the Core UI component library and adds/expands propTypes across many components so Storybook Docs can generate meaningful props tables (types, defaults, required flags, and descriptions).

Changes:

  • Added Storybook configuration and a large set of stories covering both MUI and legacy Core UI components.
  • Added/updated propTypes (and one displayName-enabling refactor for SteppedSelect) across the component library under src/.
  • Updated project scripts/deps to support running and building Storybook; ignored storybook-static output.

Reviewed changes

Copilot reviewed 159 out of 161 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
.gitignore Ignores Storybook static build output (storybook-static).
.storybook/main.js Storybook framework/addons plus LESS/SCSS handling in webpack.
.storybook/preview-head.html Loads Bootstrap CSS into the Storybook preview iframe for legacy components.
.storybook/preview.jsx Adds Redux + MUI theme providers and store setup for stories that rely on them.
package.json Adds Storybook scripts and dev dependencies.
src/components/ajaxloader/index.js Adds propTypes for AjaxLoader.
src/components/bulk-actions-selector/index.js Adds propTypes for bulk actions selector.
src/components/clock.js Adds propTypes for Clock.
src/components/exclusive-wrapper.js Adds propTypes for Exclusive wrapper.
src/components/forms/rsvp-form.js Adds propTypes for RSVP form contract.
src/components/forms/simple-form.js Adds propTypes for SimpleForm field/entity contract.
src/components/inputs/access-levels-input.js Adds propTypes for async access-level select.
src/components/inputs/action-dropdown/index.js Adds propTypes for ActionDropdown.
src/components/inputs/attendee-input.js Adds propTypes for async attendee select.
src/components/inputs/company-input.js Adds propTypes for async/creatable company select.
src/components/inputs/country-dropdown.js Adds propTypes for country dropdown wrapper.
src/components/inputs/country-input.js Adds propTypes for country select.
src/components/inputs/datetimepicker/index.js Adds propTypes for DateTimePicker.
src/components/inputs/dropdown.js Adds propTypes for react-select Dropdown wrapper.
src/components/inputs/editor-input/index.js Adds propTypes for rich text editor input.
src/components/inputs/event-input.js Adds propTypes for async event select.
src/components/inputs/free-multi-text-input.js Adds propTypes for creatable multi-tag input.
src/components/inputs/group-input.js Adds propTypes for async group select.
src/components/inputs/grouped-dropdown/index.js Adds propTypes for native grouped dropdown.
src/components/inputs/language-input.js Adds propTypes for language select.
src/components/inputs/member-input.js Adds propTypes for async member select.
src/components/inputs/operator-input.js Adds propTypes for operator select input.
src/components/inputs/organization-input.js Adds propTypes for async/creatable organization select.
src/components/inputs/speaker-input.js Adds propTypes for async speaker select.
src/components/inputs/sponsor-input.js Adds propTypes for async sponsor select.
src/components/inputs/sponsored-project-input.js Adds propTypes for async sponsored-project select.
src/components/inputs/stepped-select/index.jsx Names the component and adds propTypes (enables docs table).
src/components/inputs/summit-days-select.js Adds propTypes for summit days select.
src/components/inputs/summit-input.js Adds propTypes for async summit select.
src/components/inputs/summit-venues-select.js Adds propTypes for summit venues/rooms select.
src/components/inputs/text-input.js Adds propTypes clarifying uncontrolled behavior and required handlers.
src/components/inputs/textarea-input.js Adds propTypes for textarea input behavior/limits.
src/components/inputs/upload-input-v2/index.js Adds propTypes for legacy dropzone upload v2.
src/components/inputs/upload-input-v3/index.js Adds propTypes for chunked upload v3.
src/components/inputs/upload-input/index.js Adds propTypes for legacy upload input.
src/components/raw-html/index.js Adds propTypes documenting dangerouslySetInnerHTML usage.
src/components/schedule-builder-view/index.js Adds propTypes for schedule builder view contract.
src/components/sections/panel.js Adds propTypes for Panel component.
src/components/summit-dropdown/index.js Adds propTypes for SummitDropdown.
src/components/table-editable/EditableTable.js Adds propTypes for editable table rows/options.
src/components/table-selectable/SelectableTable.js Adds propTypes for selectable table contract.
src/components/table/Table.js Adds propTypes for base table columns/data/options/actions.
src/components/video-stream.js Adds propTypes for VideoStream.
stories/_form-item-fixture.js Adds a shared fixture for FormItemTable stories.
stories/_helpers.jsx Adds shared Storybook helpers/decorators and sample table data.
stories/AddonTypeSelect.stories.jsx Adds Storybook story for AddonTypeSelect.
stories/AlertButton.stories.jsx Adds Storybook story for AlertButton.
stories/AlertModal.stories.jsx Adds Storybook story for AlertModal.
stories/AuthButton.stories.jsx Adds Storybook story for AuthButton.
stories/BulkEditTable.stories.jsx Adds Storybook story for BulkEditTable.
stories/CartButton.stories.jsx Adds Storybook story for CartButton.
stories/CheckboxList.stories.jsx Adds Storybook story for MUI CheckboxList.
stories/ChipList.stories.jsx Adds Storybook story for ChipList.
stories/ChipNotify.stories.jsx Adds Storybook story for ChipNotify.
stories/ChipSelectInput.stories.jsx Adds Storybook story for ChipSelectInput.
stories/ConfirmDeleteDialog.stories.jsx Adds Storybook story for ConfirmDeleteDialog.
stories/ConfirmDialog.stories.jsx Adds Storybook story for ConfirmDialog.
stories/CustomAlert.stories.jsx Adds Storybook story for CustomAlert.
stories/CustomTablePagination.stories.jsx Adds Storybook story for CustomTablePagination.
stories/DndList.stories.jsx Adds Storybook story for legacy react-beautiful-dnd list.
stories/DownloadBtn.stories.jsx Adds Storybook story for DownloadBtn.
stories/DragNDropList.stories.jsx Adds Storybook story for dnd-kit list.
stories/Dropdown.stories.jsx Adds Storybook story for Dropdown.
stories/DropdownCheckbox.stories.jsx Adds Storybook story for DropdownCheckbox.
stories/EditableTable.stories.jsx Adds Storybook story for editable MUI table.
stories/ExtraRows.stories.jsx Adds Storybook stories for extra table summary rows.
stories/FormikAdditionalInput.stories.jsx Adds Storybook story for Formik AdditionalInput.
stories/FormikAdditionalInputList.stories.jsx Adds Storybook story for Formik AdditionalInputList.
stories/FormikAddonTypeSelect.stories.jsx Adds Storybook story for Formik AddonTypeSelect.
stories/FormikAsyncSelect.stories.jsx Adds Storybook story for Formik async select (stubbed query).
stories/FormikCheckbox.stories.jsx Adds Storybook story for Formik checkbox.
stories/FormikCheckboxGroup.stories.jsx Adds Storybook story for Formik checkbox group.
stories/FormikCompanyInput.stories.jsx Adds Storybook story for Formik company input.
stories/FormikDatepicker.stories.jsx Adds Storybook story for Formik datepicker.
stories/FormikDiscountField.stories.jsx Adds Storybook story for Formik discount field.
stories/FormikDropdownCheckbox.stories.jsx Adds Storybook story for Formik dropdown checkbox.
stories/FormikDropdownRadio.stories.jsx Adds Storybook story for Formik dropdown radio.
stories/FormikFileSizeField.stories.jsx Adds Storybook story for Formik file size field.
stories/FormikItemPriceTiers.stories.jsx Adds Storybook story for Formik item price tiers.
stories/FormikPriceField.stories.jsx Adds Storybook story for Formik price field.
stories/FormikQuantityField.stories.jsx Adds Storybook story for Formik quantity field.
stories/FormikRadioGroup.stories.jsx Adds Storybook story for Formik radio group.
stories/FormikSelect.stories.jsx Adds Storybook story for Formik select.
stories/FormikSelectGroup.stories.jsx Adds Storybook story for Formik select group.
stories/FormikSelectV2.stories.jsx Adds Storybook story for Formik Select v2.
stories/FormikSponsorInput.stories.jsx Adds Storybook story for Formik sponsor input.
stories/FormikSponsorshipInput.stories.jsx Adds Storybook story for Formik sponsorship input.
stories/FormikSponsorshipSummitSelect.stories.jsx Adds Storybook story for Formik sponsorship summit select.
stories/FormikSwitch.stories.jsx Adds Storybook story for Formik switch.
stories/FormikTextEditor.stories.jsx Adds Storybook story for Formik text editor.
stories/FormikTextField.stories.jsx Adds Storybook story for Formik text field.
stories/FormikTimepicker.stories.jsx Adds Storybook story for Formik timepicker.
stories/FormikUpload.stories.jsx Adds Storybook story for Formik upload.
stories/FormItemTable.stories.jsx Adds Storybook stories for FormItemTable with live Formik host.
stories/GridFilter.stories.jsx Adds Storybook stories for GridFilter criteria contract.
stories/InfiniteTable.stories.jsx Adds Storybook story for InfiniteTable.
stories/InfoNote.stories.jsx Adds Storybook story for InfoNote.
stories/InlineCard.stories.jsx Adds Storybook story for InlineCard.
stories/ItemSettingsModal.stories.jsx Adds Storybook story for ItemSettingsModal.
stories/ListCard.stories.jsx Adds Storybook story for ListCard.
stories/LoadingOverlay.stories.jsx Adds Storybook story for LoadingOverlay.
stories/MenuButton.stories.jsx Adds Storybook story for MenuButton.
stories/NavBar.stories.jsx Adds Storybook story for NavBar.
stories/NotesModal.stories.jsx Adds Storybook story for NotesModal (Formik-decorated).
stories/OrderSummary.stories.jsx Adds Storybook story for OrderSummary.
stories/RoundButton.stories.jsx Adds Storybook story for RoundButton.
stories/SearchInput.stories.jsx Adds Storybook story for SearchInput.
stories/ShowConfirmDialog.stories.jsx Adds Storybook story for imperative confirm dialog API.
stories/SnackbarNotification.stories.jsx Adds Storybook stories for SnackbarNotification hook/store paths.
stories/SortableTable.stories.jsx Adds Storybook story for sortable MUI table (react-beautiful-dnd).
stories/SponsorAddonSelect.stories.jsx Adds Storybook story for SponsorAddonSelect (API-backed).
stories/SponsorOrderGrid.stories.jsx Adds Storybook story for SponsorOrderGrid.
stories/StatusChip.stories.jsx Adds Storybook story for StatusChip.
stories/StripePayment.stories.jsx Adds Storybook story with guidance for required Stripe credentials.
stories/SummitsDropdown.stories.jsx Adds Storybook stories documenting SummitsDropdown fetch behavior.
stories/Table.stories.jsx Adds Storybook stories for MUI Table variants (sorted/paginated/empty).
stories/TableCard.stories.jsx Adds Storybook story for TableCard.
stories/ToggleButtons.stories.jsx Adds Storybook stories for ToggleButtons.
stories/UploadBtn.stories.jsx Adds Storybook story for UploadBtn.
stories/UploadDialog.stories.jsx Adds Storybook story for UploadDialog.
stories/core/ActionDropdown.stories.jsx Adds Storybook story for Core ActionDropdown.
stories/core/AjaxLoader.stories.jsx Adds Storybook story for Core AjaxLoader.
stories/core/AsyncEntityInputs.stories.jsx Adds grouped Storybook stories for many async Core entity inputs.
stories/core/BulkActionsSelector.stories.jsx Adds Storybook story for Core BulkActionsSelector.
stories/core/CheckboxList.stories.jsx Adds Storybook story for Core CheckboxList.
stories/core/CircleButton.stories.jsx Adds Storybook stories for Core CircleButton states.
stories/core/Clock.stories.jsx Adds Storybook story for Core Clock.
stories/core/DateTimePicker.stories.jsx Adds Storybook stories for Core DateTimePicker variants.
stories/core/Dropdown.stories.jsx Adds Storybook stories for Core Dropdown variants (single/multi).
stories/core/EditableTable.stories.jsx Adds Storybook story for Core EditableTable.
stories/core/Exclusive.stories.jsx Adds Storybook stories for Core Exclusive wrapper behavior.
stories/core/FreeMultiTextInput.stories.jsx Adds Storybook story for Core FreeMultiTextInput.
stories/core/FreeTextSearch.stories.jsx Adds Storybook story for Core FreeTextSearch.
stories/core/GroupedDropdown.stories.jsx Adds Storybook story for Core GroupedDropdown.
stories/core/Panel.stories.jsx Adds Storybook story for Core Panel.
stories/core/RadioList.stories.jsx Adds Storybook stories for Core RadioList variants.
stories/core/RawHTML.stories.jsx Adds Storybook stories for Core RawHTML behavior.
stories/core/RsvpForm.stories.jsx Adds Storybook story for Core RsvpForm.
stories/core/ScheduleBuilderView.stories.jsx Adds Storybook story for Core ScheduleBuilderView with DnD provider.
stories/core/SelectableTable.stories.jsx Adds Storybook story for Core SelectableTable.
stories/core/SimpleForm.stories.jsx Adds Storybook stories for Core SimpleForm with/without errors.
stories/core/SimpleLinkList.stories.jsx Adds Storybook story for Core SimpleLinkList with injected search.
stories/core/SortableTable.stories.jsx Adds Storybook story for Core SortableTable.
stories/core/SteppedSelect.stories.jsx Adds Storybook story for Core SteppedSelect.
stories/core/SummitDaysSelect.stories.jsx Adds Storybook story for Core SummitDaysSelect.
stories/core/SummitDropdown.stories.jsx Adds Storybook story for Core SummitDropdown.
stories/core/SummitVenuesSelect.stories.jsx Adds Storybook story for Core SummitVenuesSelect.
stories/core/Table.stories.jsx Adds Storybook stories for Core Table (default + actions).
stories/core/TextArea.stories.jsx Adds Storybook stories for Core TextArea variants.
stories/core/TextEditor.stories.jsx Adds Storybook stories for Core TextEditor variants.
stories/core/TextInput.stories.jsx Adds Storybook stories for Core text Input variants.
stories/core/UploadInput.stories.jsx Adds Storybook stories for Core UploadInput variants.
stories/core/UploadInputV2.stories.jsx Adds Storybook story for Core UploadInputV2 (API note).
stories/core/UploadInputV3.stories.jsx Adds Storybook story for Core UploadInputV3 (API note).
stories/core/VideoStream.stories.jsx Adds Storybook story for Core VideoStream.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread .storybook/preview.jsx
Comment on lines +2 to +6
import {
legacy_createStore as createStore,
combineReducers,
applyMiddleware
} from "redux";
end_date: PropTypes.number.isRequired,
time_zone_id: PropTypes.string,
/** Required: schedule-event-list reads time_zone.name. */
time_zone: PropTypes.shape({ name: PropTypes.string }),
Comment on lines +1 to +13
import Exclusive from "../../src/components/exclusive-wrapper";

export default {
title: "Core/Display/Exclusive",
component: Exclusive,
// gated by window.EXCLUSIVE_SECTIONS — simulate the host app setting it
decorators: [
(Story) => {
window.EXCLUSIVE_SECTIONS = ["beta-feature"];
return <Story />;
}
]
};
Comment on lines +156 to +159
options: PropTypes.arrayOf(PropTypes.shape({
value: PropTypes.string,
label: PropTypes.string
})).isRequired,
Comment on lines 14 to 16
import React from 'react';
import PropTypes from 'prop-types';
import videojs from 'video.js'
Comment on lines +8 to +10
export const Youtube = {
args: { url: "https://www.youtube.com/embed/dQw4w9WgXcQ", title: "Keynote replay" }
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants