Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: create Code Block Package #2641

Merged
merged 4 commits into from
Sep 6, 2022
Merged

feat: create Code Block Package #2641

merged 4 commits into from
Sep 6, 2022

Conversation

shleewhite
Copy link
Contributor

@shleewhite shleewhite commented Aug 26, 2022

This PR includes:

  • new @twilio-paste/code-block package, which includes:
    • CodeBlock
    • CodeBlockGroup
    • CodeBlockHeader
    • CopyButton
    • ExternalLinkButton
    • StyledCodeBlockGroupTab
    • StyledCodeBlockGroupTabList
  • new @twilio-paste/syntax-highlighter library: all it does is re-export react-syntax-highlighter with the languages we support
  • new docs page for Code Block
  • update Button to allow inverse Buttons as Links

Contributing to Twilio

All third-party contributors acknowledge that any contributions they provide will be made under the same open-source license that the open-source project is provided under.

  • I acknowledge that all my contributions will be made under the project's license.

@changeset-bot
Copy link

changeset-bot bot commented Aug 26, 2022

🦋 Changeset detected

Latest commit: c4d5e48

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 4 packages
Name Type
@twilio-paste/code-block Major
@twilio-paste/core Minor
@twilio-paste/syntax-highlighter-library Major
@twilio-paste/button Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@github-actions github-actions bot added the Status: Do Not Merge This PR is not yet ready to be merged back into the main branch label Aug 26, 2022
@github-actions github-actions bot added Area: Components Related to the component library (core) of this system Area: Core bundle Area: Repo Type: Tests Adds tests to the code labels Aug 26, 2022
@netlify
Copy link

netlify bot commented Aug 26, 2022

Deploy Preview for paste-theme-designer ready!

Name Link
🔨 Latest commit c4d5e48
🔍 Latest deploy log https://app.netlify.com/sites/paste-theme-designer/deploys/6317916f3a602b000811ee02
😎 Deploy Preview https://deploy-preview-2641--paste-theme-designer.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site settings.

@codesandbox-ci
Copy link

codesandbox-ci bot commented Aug 26, 2022

This pull request is automatically built and testable in CodeSandbox.

To see build info of the built libraries, click here or the icon next to each commit SHA.

Latest deployment of this branch, based on commit c4d5e48:

Sandbox Source
@twilio-paste/nextjs-template Configuration
@twilio-paste/token-contrast-checker Configuration

@github-actions
Copy link
Contributor

github-actions bot commented Aug 26, 2022

Size Change: +745 B (0%)

Total Size: 759 kB

Filename Size Change
packages/paste-core/components/button/dist/index.js 6.07 kB +3 B (0%)
packages/paste-core/components/minimizable-dialog/dist/index.js 34.6 kB +3 B (0%)
packages/paste-core/core-bundle/dist/index.js 1.58 kB +26 B (+2%)
packages/paste-core/core-bundle/dist/code-block.js 227 B +227 B (new file) 🆕
packages/paste-core/core-bundle/dist/syntax-highlighter-library.js 243 B +243 B (new file) 🆕
packages/paste-core/core-bundle/dist/syntax-highlighter.js 243 B +243 B (new file) 🆕
ℹ️ View Unchanged
Filename Size
./packages/paste-icons/cjs/AgentIcon.js 1.4 kB
./packages/paste-icons/cjs/ArrowBackIcon.js 1.15 kB
./packages/paste-icons/cjs/ArrowDownIcon.js 1.15 kB
./packages/paste-icons/cjs/ArrowForwardIcon.js 1.16 kB
./packages/paste-icons/cjs/ArrowUpIcon.js 1.18 kB
./packages/paste-icons/cjs/AttachIcon.js 1.3 kB
./packages/paste-icons/cjs/AttachmentIcon.js 1.22 kB
./packages/paste-icons/cjs/BoldIcon.js 1.37 kB
./packages/paste-icons/cjs/BuiltInIcon.js 1.19 kB
./packages/paste-icons/cjs/CalendarIcon.js 1.25 kB
./packages/paste-icons/cjs/ChatIcon.js 1.28 kB
./packages/paste-icons/cjs/CheckboxCheckIcon.js 1.06 kB
./packages/paste-icons/cjs/CheckboxLineIcon.js 1.01 kB
./packages/paste-icons/cjs/CheckmarkCircleIcon.js 1.14 kB
./packages/paste-icons/cjs/ChevronDisclosureCollapsedIcon.js 1.08 kB
./packages/paste-icons/cjs/ChevronDisclosureExpandedIcon.js 1.08 kB
./packages/paste-icons/cjs/ChevronDisclosureIcon.js 1.08 kB
./packages/paste-icons/cjs/ChevronDoubleLeftIcon.js 1.1 kB
./packages/paste-icons/cjs/ChevronDoubleRightIcon.js 1.13 kB
./packages/paste-icons/cjs/ChevronDownIcon.js 1.05 kB
./packages/paste-icons/cjs/ChevronExpandIcon.js 1.09 kB
./packages/paste-icons/cjs/ChevronLeftIcon.js 1.05 kB
./packages/paste-icons/cjs/ChevronRightIcon.js 1.05 kB
./packages/paste-icons/cjs/ChevronUpIcon.js 1.04 kB
./packages/paste-icons/cjs/CloseCircleIcon.js 1.1 kB
./packages/paste-icons/cjs/CloseIcon.js 1.05 kB
./packages/paste-icons/cjs/ColorPickerIcon.js 1.28 kB
./packages/paste-icons/cjs/ConnectivityAvailableIcon.js 975 B
./packages/paste-icons/cjs/ConnectivityBusyIcon.js 972 B
./packages/paste-icons/cjs/ConnectivityNeutralIcon.js 974 B
./packages/paste-icons/cjs/ConnectivityOfflineIcon.js 1.02 kB
./packages/paste-icons/cjs/ConnectivityUnavailableIcon.js 977 B
./packages/paste-icons/cjs/CopyIcon.js 1.26 kB
./packages/paste-icons/cjs/CreditCardIcon.js 1.08 kB
./packages/paste-icons/cjs/CustomIcon.js 1.35 kB
./packages/paste-icons/cjs/DarkModeIcon.js 1.12 kB
./packages/paste-icons/cjs/DataBarChartIcon.js 1.1 kB
./packages/paste-icons/cjs/DataLineChartIcon.js 1.12 kB
./packages/paste-icons/cjs/DataPieChartIcon.js 1.11 kB
./packages/paste-icons/cjs/DataTableIcon.js 1.1 kB
./packages/paste-icons/cjs/DeleteIcon.js 1.24 kB
./packages/paste-icons/cjs/DownloadIcon.js 1.1 kB
./packages/paste-icons/cjs/EditIcon.js 1.23 kB
./packages/paste-icons/cjs/ElasticSIPTrunkingCapableIcon.js 1.53 kB
./packages/paste-icons/cjs/ErrorIcon.js 1.13 kB
./packages/paste-icons/cjs/ExpandIcon.js 1.22 kB
./packages/paste-icons/cjs/ExportIcon.js 1.09 kB
./packages/paste-icons/cjs/FaxCapableIcon.js 1.4 kB
./packages/paste-icons/cjs/FileIcon.js 1.1 kB
./packages/paste-icons/cjs/FilterIcon.js 1 kB
./packages/paste-icons/cjs/helpers/IconWrapper.js 1.1 kB
./packages/paste-icons/cjs/HideIcon.js 1.46 kB
./packages/paste-icons/cjs/HistoryIcon.js 1.16 kB
./packages/paste-icons/cjs/InformationIcon.js 1.05 kB
./packages/paste-icons/cjs/ItalicIcon.js 1.1 kB
./packages/paste-icons/cjs/LightModeIcon.js 1.23 kB
./packages/paste-icons/cjs/LinkExternalIcon.js 1.15 kB
./packages/paste-icons/cjs/LinkIcon.js 1.3 kB
./packages/paste-icons/cjs/LoadingIcon.js 1.36 kB
./packages/paste-icons/cjs/LogoTwilioIcon.js 1.11 kB
./packages/paste-icons/cjs/LowerHandIcon.js 1.58 kB
./packages/paste-icons/cjs/MicrophoneOffIcon.js 1.37 kB
./packages/paste-icons/cjs/MicrophoneOnIcon.js 1.2 kB
./packages/paste-icons/cjs/MinusIcon.js 1.05 kB
./packages/paste-icons/cjs/MMSCapableIcon.js 1.34 kB
./packages/paste-icons/cjs/MoreIcon.js 1.02 kB
./packages/paste-icons/cjs/NeutralIcon.js 1.27 kB
./packages/paste-icons/cjs/NewIcon.js 1.36 kB
./packages/paste-icons/cjs/OrderedListIcon.js 1.32 kB
./packages/paste-icons/cjs/PauseIcon.js 1.08 kB
./packages/paste-icons/cjs/PinIcon.js 1.28 kB
./packages/paste-icons/cjs/PlayIcon.js 1.1 kB
./packages/paste-icons/cjs/PlusIcon.js 1.02 kB
./packages/paste-icons/cjs/ProcessDisabledIcon.js 1.05 kB
./packages/paste-icons/cjs/ProcessDraftIcon.js 1.32 kB
./packages/paste-icons/cjs/ProcessErrorIcon.js 1.04 kB
./packages/paste-icons/cjs/ProcessInProgressIcon.js 1.06 kB
./packages/paste-icons/cjs/ProcessNeutralIcon.js 1.06 kB
./packages/paste-icons/cjs/ProcessSuccessIcon.js 971 B
./packages/paste-icons/cjs/ProcessWarningIcon.js 1.08 kB
./packages/paste-icons/cjs/ProductAddOnsIcon.js 1.45 kB
./packages/paste-icons/cjs/ProductAdminAccessControlIcon.js 1.68 kB
./packages/paste-icons/cjs/ProductAdminAccountsIcon.js 1.19 kB
./packages/paste-icons/cjs/ProductAdminDomainsIcon.js 1.92 kB
./packages/paste-icons/cjs/ProductAdminResoldCustomersIcon.js 1.48 kB
./packages/paste-icons/cjs/ProductAdminSSOIcon.js 1.67 kB
./packages/paste-icons/cjs/ProductAdminUsersIcon.js 1.56 kB
./packages/paste-icons/cjs/ProductAlarmsIcon.js 1.38 kB
./packages/paste-icons/cjs/ProductAPIExplorerIcon.js 1.34 kB
./packages/paste-icons/cjs/ProductAssetsIcon.js 1.15 kB
./packages/paste-icons/cjs/ProductAuthyIcon.js 1.29 kB
./packages/paste-icons/cjs/ProductAutopilotIcon.js 1.5 kB
./packages/paste-icons/cjs/ProductBillingIcon.js 1.4 kB
./packages/paste-icons/cjs/ProductChannelsIcon.js 1.13 kB
./packages/paste-icons/cjs/ProductChatIcon.js 1.23 kB
./packages/paste-icons/cjs/ProductCLIIcon.js 1.17 kB
./packages/paste-icons/cjs/ProductCodeExchangeCommunityIcon.js 1.82 kB
./packages/paste-icons/cjs/ProductCodeExchangePartnerIcon.js 1.74 kB
./packages/paste-icons/cjs/ProductConnectedDevicesIcon.js 1.6 kB
./packages/paste-icons/cjs/ProductConversationsIcon.js 1.3 kB
./packages/paste-icons/cjs/ProductDebuggerIcon.js 1.52 kB
./packages/paste-icons/cjs/ProductElasticSIPTrunkingIcon.js 1.54 kB
./packages/paste-icons/cjs/ProductEmailAPIIcon.js 1.16 kB
./packages/paste-icons/cjs/ProductEngagementIntelligencePlatformIcon.js 1.34 kB
./packages/paste-icons/cjs/ProductEventStreamsIcon.js 1.4 kB
./packages/paste-icons/cjs/ProductFaxIcon.js 1.42 kB
./packages/paste-icons/cjs/ProductFlexIcon.js 1.17 kB
./packages/paste-icons/cjs/ProductFrontlineIcon.js 1.16 kB
./packages/paste-icons/cjs/ProductFunctionsIcon.js 1.29 kB
./packages/paste-icons/cjs/ProductHomeIcon.js 1.16 kB
./packages/paste-icons/cjs/ProductInsightsIcon.js 1.44 kB
./packages/paste-icons/cjs/ProductInterconnectIcon.js 1.17 kB
./packages/paste-icons/cjs/ProductInternetOfThingsEmbeddedSIMIcon.js 1.21 kB
./packages/paste-icons/cjs/ProductInternetOfThingsIcon.js 1.22 kB
./packages/paste-icons/cjs/ProductInternetOfThingsNarrowbandIcon.js 1.36 kB
./packages/paste-icons/cjs/ProductInternetOfThingsSuperSIMIcon.js 1.4 kB
./packages/paste-icons/cjs/ProductInternetOfThingsTrustOnboardIcon.js 1.43 kB
./packages/paste-icons/cjs/ProductInternetOfThingsWirelessIcon.js 1.32 kB
./packages/paste-icons/cjs/ProductKeysIcon.js 1.51 kB
./packages/paste-icons/cjs/ProductLiveIcon.js 1.32 kB
./packages/paste-icons/cjs/ProductLogsIcon.js 1.35 kB
./packages/paste-icons/cjs/ProductLookupIcon.js 1.09 kB
./packages/paste-icons/cjs/ProductMarketingCampaignsIcon.js 1.22 kB
./packages/paste-icons/cjs/ProductMessagingIcon.js 1.19 kB
./packages/paste-icons/cjs/ProductMicrovisorIcon.js 1.36 kB
./packages/paste-icons/cjs/ProductNotifyIcon.js 1.3 kB
./packages/paste-icons/cjs/ProductPhoneNumbersIcon.js 1.3 kB
./packages/paste-icons/cjs/ProductProxyIcon.js 1.36 kB
./packages/paste-icons/cjs/ProductRegionalIcon.js 1.89 kB
./packages/paste-icons/cjs/ProductSDKIcon.js 1.26 kB
./packages/paste-icons/cjs/ProductSegmentIcon.js 1.31 kB
./packages/paste-icons/cjs/ProductSettingsIcon.js 1.65 kB
./packages/paste-icons/cjs/ProductStudioIcon.js 1.1 kB
./packages/paste-icons/cjs/ProductSupportIcon.js 1.18 kB
./packages/paste-icons/cjs/ProductSyncIcon.js 1.33 kB
./packages/paste-icons/cjs/ProductTaskRouterIcon.js 1.15 kB
./packages/paste-icons/cjs/ProductTrustHubIcon.js 1.38 kB
./packages/paste-icons/cjs/ProductTwilioOrgIcon.js 1.37 kB
./packages/paste-icons/cjs/ProductTwiMLBinsIcon.js 1.09 kB
./packages/paste-icons/cjs/ProductUsageIcon.js 1.54 kB
./packages/paste-icons/cjs/ProductVerifyIcon.js 1.28 kB
./packages/paste-icons/cjs/ProductVideoIcon.js 1.2 kB
./packages/paste-icons/cjs/ProductVoiceIcon.js 1.4 kB
./packages/paste-icons/cjs/RaiseHandIcon.js 2.29 kB
./packages/paste-icons/cjs/ScreenShareIcon.js 1.14 kB
./packages/paste-icons/cjs/SearchIcon.js 1.06 kB
./packages/paste-icons/cjs/SendIcon.js 1.21 kB
./packages/paste-icons/cjs/ShowIcon.js 1.33 kB
./packages/paste-icons/cjs/ShrinkIcon.js 1.26 kB
./packages/paste-icons/cjs/SkipBackIcon.js 1.17 kB
./packages/paste-icons/cjs/SkipForwardIcon.js 1.17 kB
./packages/paste-icons/cjs/SMSCapableIcon.js 1.12 kB
./packages/paste-icons/cjs/StopScreenShareIcon.js 1.13 kB
./packages/paste-icons/cjs/StrikethroughIcon.js 1.29 kB
./packages/paste-icons/cjs/SuccessIcon.js 1.08 kB
./packages/paste-icons/cjs/SupportIcon.js 1.19 kB
./packages/paste-icons/cjs/TextFormatIcon.js 1.16 kB
./packages/paste-icons/cjs/ThemeIcon.js 1.45 kB
./packages/paste-icons/cjs/ThumbsDownIcon.js 1.76 kB
./packages/paste-icons/cjs/ThumbsUpIcon.js 1.75 kB
./packages/paste-icons/cjs/UnderlineIcon.js 1.14 kB
./packages/paste-icons/cjs/UnorderedListIcon.js 1.1 kB
./packages/paste-icons/cjs/UnpinIcon.js 1.16 kB
./packages/paste-icons/cjs/UnsortedIcon.js 1.17 kB
./packages/paste-icons/cjs/UploadToCloudIcon.js 1.53 kB
./packages/paste-icons/cjs/UserIcon.js 1.07 kB
./packages/paste-icons/cjs/VideoOffIcon.js 1.28 kB
./packages/paste-icons/cjs/VideoOnIcon.js 1.22 kB
./packages/paste-icons/cjs/VoiceCapableIcon.js 1.32 kB
./packages/paste-icons/cjs/VolumeOffIcon.js 1.33 kB
./packages/paste-icons/cjs/VolumeOnIcon.js 1.44 kB
./packages/paste-icons/cjs/WarningIcon.js 1.19 kB
packages/paste-color-contrast-utils/dist/index.js 15.3 kB
packages/paste-core/components/alert-dialog/dist/index.js 2.08 kB
packages/paste-core/components/alert/dist/index.js 1.83 kB
packages/paste-core/components/anchor/dist/index.js 1.86 kB
packages/paste-core/components/avatar/dist/index.js 3.34 kB
packages/paste-core/components/badge/dist/index.js 2.29 kB
packages/paste-core/components/base-radio-checkbox/dist/index.js 1.64 kB
packages/paste-core/components/breadcrumb/dist/index.js 1.58 kB
packages/paste-core/components/callout/dist/index.js 4.11 kB
packages/paste-core/components/card/dist/index.js 1.13 kB
packages/paste-core/components/chat-log/dist/index.js 7.66 kB
packages/paste-core/components/checkbox/dist/index.js 2.92 kB
packages/paste-core/components/code-block/dist/index.js 71.5 kB
packages/paste-core/components/combobox/dist/index.js 16.8 kB
packages/paste-core/components/data-grid/dist/index.js 5.13 kB
packages/paste-core/components/date-picker/dist/index.js 8.06 kB
packages/paste-core/components/disclosure/dist/index.js 2.59 kB
packages/paste-core/components/display-pill-group/dist/index.js 1.3 kB
packages/paste-core/components/form-pill-group/dist/index.js 3.71 kB
packages/paste-core/components/heading/dist/index.js 1.3 kB
packages/paste-core/components/help-text/dist/index.js 1.3 kB
packages/paste-core/components/inline-code/dist/index.js 1.09 kB
packages/paste-core/components/inline-control-group/dist/index.js 1.43 kB
packages/paste-core/components/input-box/dist/index.js 2.54 kB
packages/paste-core/components/input/dist/index.js 1.84 kB
packages/paste-core/components/label/dist/index.js 1.65 kB
packages/paste-core/components/list/dist/index.js 1.35 kB
packages/paste-core/components/menu/dist/index.js 2.44 kB
packages/paste-core/components/modal/dist/index.js 3.35 kB
packages/paste-core/components/pagination/dist/index.js 3.44 kB
packages/paste-core/components/paragraph/dist/index.js 1.05 kB
packages/paste-core/components/popover/dist/index.js 2.36 kB
packages/paste-core/components/radio-group/dist/index.js 2.26 kB
packages/paste-core/components/screen-reader-only/dist/index.js 1.06 kB
packages/paste-core/components/select/dist/index.js 1.95 kB
packages/paste-core/components/separator/dist/index.js 1.18 kB
packages/paste-core/components/skeleton-loader/dist/index.js 1.47 kB
packages/paste-core/components/spinner/dist/index.js 1.65 kB
packages/paste-core/components/switch/dist/index.js 2.57 kB
packages/paste-core/components/table/dist/index.js 2.48 kB
packages/paste-core/components/tabs/dist/index.js 2.57 kB
packages/paste-core/components/textarea/dist/index.js 1.61 kB
packages/paste-core/components/time-picker/dist/index.js 8.08 kB
packages/paste-core/components/toast/dist/index.js 3.67 kB
packages/paste-core/components/tooltip/dist/index.js 1.56 kB
packages/paste-core/components/truncate/dist/index.js 1.04 kB
packages/paste-core/core-bundle/dist/alert-dialog.js 229 B
packages/paste-core/core-bundle/dist/alert.js 219 B
packages/paste-core/core-bundle/dist/anchor.js 220 B
packages/paste-core/core-bundle/dist/animation-library.js 232 B
packages/paste-core/core-bundle/dist/aspect-ratio.js 228 B
packages/paste-core/core-bundle/dist/avatar.js 220 B
packages/paste-core/core-bundle/dist/badge.js 220 B
packages/paste-core/core-bundle/dist/base-radio-checkbox.js 236 B
packages/paste-core/core-bundle/dist/box.js 218 B
packages/paste-core/core-bundle/dist/breadcrumb.js 224 B
packages/paste-core/core-bundle/dist/button.js 220 B
packages/paste-core/core-bundle/dist/callout.js 220 B
packages/paste-core/core-bundle/dist/card.js 219 B
packages/paste-core/core-bundle/dist/chat-log.js 225 B
packages/paste-core/core-bundle/dist/checkbox.js 223 B
packages/paste-core/core-bundle/dist/clipboard-copy-library.js 241 B
packages/paste-core/core-bundle/dist/color-contrast-utils.js 239 B
packages/paste-core/core-bundle/dist/combobox-primitive.js 234 B
packages/paste-core/core-bundle/dist/combobox.js 222 B
packages/paste-core/core-bundle/dist/customization.js 225 B
packages/paste-core/core-bundle/dist/data-grid.js 226 B
packages/paste-core/core-bundle/dist/data-visualization-library.js 243 B
packages/paste-core/core-bundle/dist/date-picker.js 227 B
packages/paste-core/core-bundle/dist/design-tokens.js 230 B
packages/paste-core/core-bundle/dist/disclosure-primitive.js 234 B
packages/paste-core/core-bundle/dist/disclosure.js 223 B
packages/paste-core/core-bundle/dist/display-pill-group.js 236 B
packages/paste-core/core-bundle/dist/dropdown-library.js 232 B
packages/paste-core/core-bundle/dist/flex.js 219 B
packages/paste-core/core-bundle/dist/form-pill-group.js 234 B
packages/paste-core/core-bundle/dist/grid.js 220 B
packages/paste-core/core-bundle/dist/heading.js 221 B
packages/paste-core/core-bundle/dist/help-text.js 226 B
packages/paste-core/core-bundle/dist/inline-code.js 227 B
packages/paste-core/core-bundle/dist/inline-control-group.js 238 B
packages/paste-core/core-bundle/dist/input-box.js 226 B
packages/paste-core/core-bundle/dist/input.js 219 B
packages/paste-core/core-bundle/dist/label.js 220 B
packages/paste-core/core-bundle/dist/list.js 219 B
packages/paste-core/core-bundle/dist/media-object.js 226 B
packages/paste-core/core-bundle/dist/menu-primitive.js 230 B
packages/paste-core/core-bundle/dist/menu.js 219 B
packages/paste-core/core-bundle/dist/minimizable-dialog.js 235 B
packages/paste-core/core-bundle/dist/modal-dialog-primitive.js 241 B
packages/paste-core/core-bundle/dist/modal.js 220 B
packages/paste-core/core-bundle/dist/non-modal-dialog-primitive.js 244 B
packages/paste-core/core-bundle/dist/pagination.js 224 B
packages/paste-core/core-bundle/dist/paragraph.js 224 B
packages/paste-core/core-bundle/dist/popover.js 220 B
packages/paste-core/core-bundle/dist/radio-group.js 228 B
packages/paste-core/core-bundle/dist/react-textarea-autosize-library.js 248 B
packages/paste-core/core-bundle/dist/reakit-library.js 229 B
packages/paste-core/core-bundle/dist/screen-reader-only.js 235 B
packages/paste-core/core-bundle/dist/select.js 218 B
packages/paste-core/core-bundle/dist/separator.js 223 B
packages/paste-core/core-bundle/dist/sibling-box.js 228 B
packages/paste-core/core-bundle/dist/skeleton-loader.js 230 B
packages/paste-core/core-bundle/dist/spinner.js 221 B
packages/paste-core/core-bundle/dist/stack.js 220 B
packages/paste-core/core-bundle/dist/style-props.js 226 B
packages/paste-core/core-bundle/dist/styling-library.js 230 B
packages/paste-core/core-bundle/dist/switch.js 221 B
packages/paste-core/core-bundle/dist/table.js 218 B
packages/paste-core/core-bundle/dist/tabs-primitive.js 230 B
packages/paste-core/core-bundle/dist/tabs.js 219 B
packages/paste-core/core-bundle/dist/text.js 219 B
packages/paste-core/core-bundle/dist/textarea.js 221 B
packages/paste-core/core-bundle/dist/theme.js 220 B
packages/paste-core/core-bundle/dist/time-picker.js 228 B
packages/paste-core/core-bundle/dist/toast.js 218 B
packages/paste-core/core-bundle/dist/tooltip-primitive.js 231 B
packages/paste-core/core-bundle/dist/tooltip.js 221 B
packages/paste-core/core-bundle/dist/truncate.js 221 B
packages/paste-core/core-bundle/dist/types.js 220 B
packages/paste-core/core-bundle/dist/uid-library.js 227 B
packages/paste-core/core-bundle/dist/utils.js 219 B
packages/paste-core/layout/aspect-ratio/dist/index.js 1.05 kB
packages/paste-core/layout/flex/dist/index.js 2.33 kB
packages/paste-core/layout/grid/dist/index.js 2.26 kB
packages/paste-core/layout/media-object/dist/index.js 1.34 kB
packages/paste-core/layout/stack/dist/index.js 1.52 kB
packages/paste-core/primitives/box/dist/index.js 3.39 kB
packages/paste-core/primitives/combobox/dist/index.js 583 B
packages/paste-core/primitives/disclosure/dist/index.js 479 B
packages/paste-core/primitives/menu/dist/index.js 546 B
packages/paste-core/primitives/modal-dialog/dist/index.js 23.9 kB
packages/paste-core/primitives/non-modal-dialog/dist/index.js 502 B
packages/paste-core/primitives/sibling-box/dist/index.js 1.5 kB
packages/paste-core/primitives/tabs/dist/index.js 482 B
packages/paste-core/primitives/text/dist/index.js 2.94 kB
packages/paste-core/primitives/tooltip/dist/index.js 489 B
packages/paste-customization/dist/index.js 2.27 kB
packages/paste-design-tokens/dist/themes/dark/tokens.common.js 4.14 kB
packages/paste-design-tokens/dist/themes/dark/tokens.generic.js 5.78 kB
packages/paste-design-tokens/dist/themes/sendgrid/tokens.common.js 4.11 kB
packages/paste-design-tokens/dist/themes/sendgrid/tokens.generic.js 6.28 kB
packages/paste-design-tokens/dist/tokens.common.js 4.76 kB
packages/paste-design-tokens/dist/tokens.generic.js 6.34 kB
packages/paste-libraries/animation/dist/index.js 23.2 kB
packages/paste-libraries/clipboard-copy/dist/index.js 1.58 kB
packages/paste-libraries/data-visualization/dist/index.js 2.08 kB
packages/paste-libraries/dropdown/dist/index.js 23.5 kB
packages/paste-libraries/react-textarea-autosize/dist/index.js 8.22 kB
packages/paste-libraries/reakit/dist/index.js 42.2 kB
packages/paste-libraries/styling/dist/index.js 27.3 kB
packages/paste-libraries/syntax-highlighter/dist/index.js 47 kB
packages/paste-libraries/uid/dist/index.js 4.61 kB
packages/paste-style-props/dist/index.js 6.35 kB
packages/paste-theme/dist/index.js 3.66 kB
packages/paste-types/dist/index.js 328 B
packages/paste-utils/dist/index.js 2.79 kB

compressed-size-action

@netlify
Copy link

netlify bot commented Aug 26, 2022

Deploy Preview for paste-docs ready!

Name Link
🔨 Latest commit c4d5e48
🔍 Latest deploy log https://app.netlify.com/sites/paste-docs/deploys/6317916f0307ad000887b0b6
😎 Deploy Preview https://deploy-preview-2641--paste-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site settings.

@cypress
Copy link

cypress bot commented Aug 26, 2022



Test summary

163 0 0 0Flakiness 0


Run details

Project Paste
Status Passed
Commit 6c93fd7 ℹ️
Started Sep 6, 2022 6:46 PM
Ended Sep 6, 2022 6:50 PM
Duration 04:25 💡
OS Linux Ubuntu - 20.04
Browser Electron 94

View run in Cypress Dashboard ➡️


This comment has been generated by cypress-bot as a result of this project's GitHub integration settings. You can manage this integration in this project's settings in the Cypress Dashboard

@github-actions github-actions bot added Area: Doc Site Related to the documentation website Type: Documentation Improvements or additions to documentation labels Aug 27, 2022
@shleewhite shleewhite changed the title [WIP] feat: create Code Block Package feat: create Code Block Package Aug 27, 2022
@shleewhite shleewhite marked this pull request as ready for review August 29, 2022 21:57
@shleewhite shleewhite requested review from a team as code owners August 29, 2022 21:57
packages/paste-libraries/syntax-highlighter/package.json Outdated Show resolved Hide resolved
.changeset/lucky-balloons-joke.md Outdated Show resolved Hide resolved
Comment on lines +37 to +39
MozTabSize: '4',
OTabSize: '4',
tabSize: '4',
Copy link
Contributor

Choose a reason for hiding this comment

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

question: what does this translate to?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

It changes the size of the tab character: https://developer.mozilla.org/en-US/docs/Web/CSS/tab-size

kelseycavitt
kelseycavitt previously approved these changes Sep 1, 2022
ghost
ghost previously approved these changes Sep 1, 2022
Copy link

@ghost ghost left a comment

Choose a reason for hiding this comment

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

thanks for this @shleewhite !

"CodeBlockTab": "@twilio-paste/core/code-block",
"CodeBlockTabList": "@twilio-paste/core/code-block",
"CodeBlockTabPanel": "@twilio-paste/core/code-block",
"CodeBlockWrapper": "@twilio-paste/core/code-block",
Copy link

Choose a reason for hiding this comment

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

for my own edification what do these changes in the .cache/mappings.json file do?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This is for a codemod that helps people transition from barreled to unbarreled imports. It is used here: https://github.com/twilio-labs/paste/blob/main/packages/paste-codemods/transforms/barreled-to-unbarreled.js to check what people are importing and change it from import {whatevs} from '@twilio-paste/whatevs' to import {whatevs} from '@twilio-paste/core/whatevs'

@@ -0,0 +1,9 @@
declare module 'react-syntax-highlighter/dist/esm/languages/prism/shell-session' {
const language: any;
Copy link

Choose a reason for hiding this comment

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

minor, but this isn't a string?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@TheSisb @gloriliale do either of you have context for why this file is needed?

Copy link

@ghost ghost Sep 6, 2022

Choose a reason for hiding this comment

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

@shleewhite typically I write an ambient module declaration like this when a 3rd party package doesn't ship with its own type annotations or a type repository like DefinitelyTyped doesn't have community types available. That all said my guess is that this package react-syntax-highlighter was missing some types so we added them. Going a bit further to my original question, generally we'd want to avoid any types if possible, even preferring something like unknown if we don't have time to determine which type it should be.

if (variant !== 'primary' && variant !== 'secondary' && variant !== 'reset') {
throw new Error(`[Paste: Button] <Button as="a"> only works with the following variants: primary or secondary.`);
if (variant !== 'primary' && variant !== 'secondary' && variant !== 'reset' && variant !== 'inverse') {
throw new Error(`[Paste: Button] <Button as="a"> only works with the following variants: primary and secondary.`);
Copy link

@ghost ghost Sep 1, 2022

Choose a reason for hiding this comment

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

its interesting that we include usage enforcement code like this as part of the run time! One thing we might explore in the future is handling this kind of thing through dev time only type annotations or react propTypes! cc @TheSisb

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Totally.. I don't have full context here but I think we usually try to do this stuff with types/propTypes, but for really important things we actually throw errors. We throw errors in Avatar and Badge too.

export const CopyButton: React.FC<CopyButtonProps> = ({
text,
i18nCopyLabelBefore = 'Copy code block',
i18nCopyLabelAfter = 'Copied!',
Copy link

Choose a reason for hiding this comment

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

oh are these english strings default values? we don't worry about I18n english leaks like this to allow for a more minimal default API perhaps?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Can you clarify what you mean by i18n english leaks?

Copy link

Choose a reason for hiding this comment

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

oh just that for products that are internationalized, when a developer does not provide a translated string here the UI will show in english which could be incorrect. Some design systems will enforce that all strings are injected and provide no defaults to avoid that.

Copy link
Contributor

@gloriliale gloriliale left a comment

Choose a reason for hiding this comment

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

Yaaaassssss. it's alive! The only imperative thing I found was that white horizontal line that shows up at the bottom of CodeBlock. Lemme know if you want to get together to figure out where it's coming from.

.changeset/lucky-balloons-joke.md Outdated Show resolved Hide resolved

type CodeBlockVariants = 'multi-line' | 'single-line';

export interface CodeBlockProps extends Partial<Omit<HTMLDivElement, 'children'>> {
Copy link
Contributor

Choose a reason for hiding this comment

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

suggestion(non-blocking): I'd like to figure out if this is the best possible way to get to the type we're looking for. Way out of scope for here, but just wanted to note that somewhere.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Totally, I kinda just guessed on how to do this.

Copy link
Collaborator

@nkrantz nkrantz left a comment

Choose a reason for hiding this comment

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

This is awesome, really good work and digestible code 💯

packages/paste-core/components/code-block/package.json Outdated Show resolved Hide resolved
{...safelySpreadBoxProps(props)}
ref={ref}
element={element}
as={as}
Copy link
Collaborator

Choose a reason for hiding this comment

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

question: passing h1/h2/h3/etc doesn't change the CodeBlockHeader visually, so why do we allow for the different options? The docs say "use the correct heading level" to ensure a11y but in what situation would one be correct over another? Do we really want people to have h1 code block headers?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

It all depends on the heading hierarchy of the page. I doubt there would ever be an H1 code block header, but I can totally believe other heading levels - it all depends on the other headers on the page. For example, if the code block is underneath an H3, then the code block heading should be an h4.

You can read more about heading levels here: https://www.w3.org/WAI/tutorials/page-structure/headings/

Copy link
Collaborator

Choose a reason for hiding this comment

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

totally non-blocking but might be helpful to add a bit of this context to the a11y section of the docs page

nkrantz
nkrantz previously approved these changes Sep 2, 2022
shleewhite and others added 2 commits September 2, 2022 10:33
Co-authored-by: Shadi <TheSisb@users.noreply.github.com>
Co-authored-by: gloriliale <77117846+gloriliale@users.noreply.github.com>
@shleewhite shleewhite dismissed stale reviews from nkrantz, ghost , and kelseycavitt via 214bc65 September 2, 2022 18:54
@shleewhite shleewhite added the 🕵🏻‍♀️ Run website visual regression When applied, we will run a full suite of visual regression tests across the doc site label Sep 6, 2022
@shleewhite shleewhite merged commit 280c872 into main Sep 6, 2022
@shleewhite shleewhite deleted the component/code-block branch September 6, 2022 19:42
@TwilioPasteBot TwilioPasteBot mentioned this pull request Sep 6, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: Components Related to the component library (core) of this system Area: Core bundle Area: Doc Site Related to the documentation website Area: Repo 🕵🏻‍♀️ Run website visual regression When applied, we will run a full suite of visual regression tests across the doc site Status: Do Not Merge This PR is not yet ready to be merged back into the main branch Type: Documentation Improvements or additions to documentation Type: Tests Adds tests to the code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants