diff --git a/.rat-excludes b/.rat-excludes index 5cdbec0acf1..aacc16ec5cd 100644 --- a/.rat-excludes +++ b/.rat-excludes @@ -76,6 +76,9 @@ snowflake.svg ydb.svg loading.svg +# docs third-party logos, i.e. docs/static/img/logos/* +logos/* + # docs-related erd.puml erd.svg diff --git a/README.md b/README.md index 64b0cd1ada5..f7d59ee6915 100644 --- a/README.md +++ b/README.md @@ -55,7 +55,7 @@ A modern, enterprise-ready business intelligence web application. [**Get Involved**](#get-involved) | [**Contributor Guide**](#contributor-guide) | [**Resources**](#resources) | -[**Organizations Using Superset**](https://github.com/apache/superset/blob/master/RESOURCES/INTHEWILD.md) +[**Organizations Using Superset**](https://superset.apache.org/inTheWild) ## Why Superset? @@ -171,7 +171,7 @@ how to set up a development environment. ## Resources -- [Superset "In the Wild"](https://github.com/apache/superset/blob/master/RESOURCES/INTHEWILD.md) - open a PR to add your org to the list! +- [Superset "In the Wild"](https://superset.apache.org/inTheWild) - see who's using Superset, and [add your organization](https://github.com/apache/superset/edit/master/RESOURCES/INTHEWILD.yaml) to the list! - [Feature Flags](https://github.com/apache/superset/blob/master/RESOURCES/FEATURE_FLAGS.md) - the status of Superset's Feature Flags. - [Standard Roles](https://github.com/apache/superset/blob/master/RESOURCES/STANDARD_ROLES.md) - How RBAC permissions map to roles. - [Superset Wiki](https://github.com/apache/superset/wiki) - Tons of additional community resources: best practices, community content and other information. diff --git a/RESOURCES/INTHEWILD.yaml b/RESOURCES/INTHEWILD.yaml new file mode 100644 index 00000000000..da07a73cb6b --- /dev/null +++ b/RESOURCES/INTHEWILD.yaml @@ -0,0 +1,644 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +# Apache Superset Users in the Wild +# +# To add your organization: +# 1. Find the appropriate category (or add a new one) +# 2. Add an entry with your organization details +# 3. Optionally add a logo file to docs/static/img/logos/ +# +# Required fields: +# - name: Your organization name +# - url: Link to your organization's website +# +# Optional fields: +# - logo: Filename of logo in docs/static/img/logos/ (e.g., "mycompany.svg") +# - contributors: List of GitHub usernames who contributed (e.g., ["@username"]) + +categories: + Sharing Economy: + - name: Airbnb + url: https://github.com/airbnb + + - name: Faasos + url: https://faasos.com/ + contributors: ["@shashanksingh"] + + - name: Free2Move + url: https://www.free2move.com/ + contributors: ["@PaoloTerzi"] + + - name: Hostnfly + url: https://www.hostnfly.com/ + contributors: ["@alexisrosuel"] + + - name: Lime + url: https://www.li.me/ + contributors: ["@cxmcc"] + + - name: Lyft + url: https://www.lyft.com/ + + - name: Ontruck + url: https://www.ontruck.com/ + + Financial Services: + - name: Aktia Bank plc + url: https://www.aktia.com + + - name: American Express + url: https://www.americanexpress.com + contributors: ["@TheLastSultan"] + + - name: bumper + url: https://www.bumper.co/ + contributors: ["@vasu-ram", "@JamiePercival"] + + - name: Cape Crypto + url: https://capecrypto.com + + - name: Capital Service S.A. + url: https://capitalservice.pl + contributors: ["@pkonarzewski"] + + - name: Clark.de + url: https://clark.de/ + + - name: Europace + url: https://europace.de + + - name: KarrotPay + url: https://www.daangnpay.com/ + + - name: Remita + url: https://remita.net + contributors: ["@mujibishola"] + + - name: Taveo + url: https://www.taveo.com + contributors: ["@codek"] + + - name: Unit + url: https://www.unit.co/about-us + contributors: ["@amitmiran137"] + + - name: Wise + url: https://wise.com + contributors: ["@koszti"] + + - name: Xendit + url: https://xendit.co/ + contributors: ["@LieAlbertTriAdrian"] + + - name: Cover Genius + url: https://covergenius.com/ + + Gaming: + - name: Popoko VM Games Studio + url: https://popoko.live + + E-Commerce: + - name: AiHello + url: https://www.aihello.com + contributors: ["@ganeshkrishnan1"] + + - name: Bazaar Technologies + url: https://www.bazaartech.com + contributors: ["@umair-abro"] + + - name: Dragonpass + url: https://www.dragonpass.com.cn/ + contributors: ["@zhxjdwh"] + + - name: Dropit Shopping + url: https://www.dropit.shop/ + contributors: ["@dropit-dev"] + + - name: Fanatics + url: https://www.fanatics.com/ + contributors: ["@coderfender"] + + - name: Fordeal + url: https://www.fordeal.com + contributors: ["@Renkai"] + + - name: Fynd + url: https://www.fynd.com/ + contributors: ["@darpanjain07"] + + - name: GFG - Global Fashion Group + url: https://global-fashion-group.com + contributors: ["@ksaagariconic"] + + - name: GoTo/Gojek + url: https://www.gojek.io/ + contributors: ["@gwthm-in"] + + - name: HuiShouBao + url: https://www.huishoubao.com/ + contributors: ["@Yukinoshita-Yukino"] + + - name: Now + url: https://www.now.vn/ + contributors: ["@davidkohcw"] + + - name: Qunar + url: https://www.qunar.com/ + contributors: ["@flametest"] + + - name: Rakuten Viki + url: https://www.viki.com + + - name: Shopee + url: https://shopee.sg + contributors: ["@xiaohanyu"] + + - name: Shopkick + url: https://www.shopkick.com + contributors: ["@LAlbertalli"] + + - name: ShopUp + url: https://www.shopup.org/ + contributors: ["@gwthm-in"] + + - name: Tails.com + url: https://tails.com/gb/ + contributors: ["@alanmcruickshank"] + + - name: THE ICONIC + url: https://theiconic.com.au/ + contributors: ["@ksaagariconic"] + + - name: Utair + url: https://www.utair.ru + contributors: ["@utair-digital"] + + - name: VkusVill + url: https://vkusvill.ru/ + contributors: ["@ETselikov"] + + - name: Zalando + url: https://www.zalando.com + contributors: ["@dmigo"] + + - name: Zalora + url: https://www.zalora.com + contributors: ["@ksaagariconic"] + + - name: Zepto + url: https://www.zeptonow.com/ + contributors: ["@gwthm-in"] + + Enterprise Technology: + - name: A3Data + url: https://a3data.com.br + contributors: ["@neylsoncrepalde"] + + - name: Analytics Aura + url: https://analyticsaura.com/ + contributors: ["@Analytics-Aura"] + + - name: Apollo GraphQL + url: https://www.apollographql.com/ + contributors: ["@evans"] + + - name: Astronomer + url: https://www.astronomer.io + contributors: ["@ryw"] + + - name: Avesta Technologies + url: https://avestatechnologies.com/ + contributors: ["@TheRum"] + + - name: Caizin + url: https://caizin.com/ + contributors: ["@tejaskatariya"] + + - name: Canonical + url: https://canonical.com + + - name: Careem + url: https://www.careem.com/ + contributors: ["@samraHanif0340"] + + - name: Cloudsmith + url: https://cloudsmith.io + contributors: ["@alancarson"] + + - name: Cyberhaven + url: https://www.cyberhaven.com/ + contributors: ["@toliver-ch"] + + - name: Deepomatic + url: https://deepomatic.com/ + contributors: ["@Zanoellia"] + + - name: Dial Once + url: https://www.dial-once.com/ + + - name: Dremio + url: https://dremio.com + contributors: ["@narendrans"] + + - name: EFinance + url: https://www.efinance.com.eg + contributors: ["@habeeb556"] + + - name: Elestio + url: https://elest.io/ + contributors: ["@kaiwalyakoparkar"] + + - name: ELMO Cloud HR & Payroll + url: https://elmosoftware.com.au/ + + - name: Endress+Hauser + url: https://www.endress.com/ + contributors: ["@rumbin"] + + - name: FBK - ICT center + url: https://ict.fbk.eu + + - name: Formbricks + url: https://formbricks.com + + - name: Gavagai + url: https://gavagai.io + contributors: ["@gavagai-corp"] + + - name: GfK Data Lab + url: https://www.gfk.com/home + contributors: ["@mherr"] + + - name: HPE + url: https://www.hpe.com/in/en/home.html + contributors: ["@anmol-hpe"] + + - name: Hydrolix + url: https://www.hydrolix.io/ + + - name: Intercom + url: https://www.intercom.com/ + contributors: ["@kate-gallo"] + + - name: jampp + url: https://jampp.com/ + + - name: Konfío + url: https://konfio.mx + contributors: ["@uis-rodriguez"] + + - name: Mainstrat + url: https://mainstrat.com/ + + - name: mishmash io + url: https://mishmash.io/ + contributors: ["@mishmash-io"] + + - name: Myra Labs + url: https://www.myralabs.com/ + contributors: ["@viksit"] + + - name: Nielsen + url: https://www.nielsen.com/ + contributors: ["@amitNielsen"] + + - name: Ona + url: https://ona.io + contributors: ["@pld"] + + - name: Orange + url: https://www.orange.com + contributors: ["@icsu"] + + - name: Oslandia + url: https://oslandia.com + + - name: Oxylabs + url: https://oxylabs.io/ + contributors: ["@rytis-ulys"] + + - name: Peak AI + url: https://www.peak.ai/ + contributors: ["@azhar22k"] + + - name: PeopleDoc + url: https://www.people-doc.com + contributors: ["@rodo"] + + - name: PlaidCloud + url: https://www.plaidcloud.com + + - name: Preset, Inc. + url: https://preset.io + logo: preset.svg + contributors: ["@mistercrunch", "@betodealmeida", "@dpgaspar", "@rusackas", "@sadpandajoe", "@Vitor-Avila", "@kgabryje", "@geido", "@eschutho", "@Antonio-RiveroMartnez", "@yousoph"] + + - name: PubNub + url: https://pubnub.com + contributors: ["@jzucker2"] + + - name: ReadyTech + url: https://www.readytech.io + + - name: Reward Gateway + url: https://www.rewardgateway.com + + - name: RIADVICE + url: https://riadvice.tn + contributors: ["@riadvice"] + + - name: ScopeAI + url: https://www.getscopeai.com + contributors: ["@iloveluce"] + + - name: shipmnts + url: https://shipmnts.com + + - name: Showmax + url: https://showmax.com + contributors: ["@bobek"] + + - name: SingleStore + url: https://www.singlestore.com/ + + - name: TechAudit + url: https://www.techaudit.info + contributors: ["@ETselikov"] + + - name: Tenable + url: https://www.tenable.com + contributors: ["@dflionis"] + + - name: Tentacle + url: https://www.linkedin.com/company/tentacle-cmi/ + contributors: ["@jdclarke5"] + + - name: timbr.ai + url: https://timbr.ai/ + contributors: ["@semantiDan"] + + - name: Tobii + url: https://www.tobii.com/ + contributors: ["@dwa"] + + - name: Tooploox + url: https://www.tooploox.com/ + contributors: ["@jakubczaplicki"] + + - name: Unvired + url: https://unvired.com + contributors: ["@srinisubramanian"] + + - name: Virtuoso QA + url: https://www.virtuosoqa.com + + - name: Whale + url: https://whale.im + + - name: Windsor.ai + url: https://www.windsor.ai/ + contributors: ["@octaviancorlade"] + + - name: WinWin Network马上赢 + url: https://brandct.cn/ + contributors: ["@wenbinye"] + + - name: Zeta + url: https://www.zeta.tech/ + contributors: ["@shaikidris"] + + Media & Entertainment: + - name: 6play + url: https://www.6play.fr + contributors: ["@CoryChaplin"] + + - name: bilibili + url: https://www.bilibili.com + contributors: ["@Moinheart"] + + - name: BurdaForward + url: https://www.burda-forward.de/en/ + + - name: Douban + url: https://www.douban.com/ + contributors: ["@luchuan"] + + - name: Kuaishou + url: https://www.kuaishou.com/ + contributors: ["@zhaoyu89730105"] + + - name: Netflix + url: https://www.netflix.com/ + + - name: Prensa Iberica + url: https://www.prensaiberica.es/ + contributors: ["@zamar-roura"] + + - name: TME QQMUSIC/WESING + url: https://www.tencentmusic.com/ + contributors: ["@shenyuanli", "@marklaw"] + + - name: Xite + url: https://xite.com/ + contributors: ["@shashankkoppar"] + + - name: Zaihang + url: https://www.zaih.com/ + + Education: + - name: Aveti Learning + url: https://avetilearning.com/ + contributors: ["@TheShubhendra"] + + - name: Brilliant.org + url: https://brilliant.org/ + + - name: Open edX + url: https://openedx.org/ + + - name: Platzi.com + url: https://platzi.com/ + + - name: Sunbird + url: https://www.sunbird.org/ + contributors: ["@eksteporg"] + + - name: The GRAPH Network + url: https://thegraphnetwork.org/ + contributors: ["@fccoelho"] + + - name: Udemy + url: https://www.udemy.com/ + contributors: ["@sungjuly"] + + - name: VIPKID + url: https://www.vipkid.com.cn/ + contributors: ["@illpanda"] + + - name: WikiMedia Foundation + url: https://wikimediafoundation.org + contributors: ["@vg"] + + Energy: + - name: Airboxlab + url: https://foobot.io + contributors: ["@antoine-galataud"] + + - name: DouroECI + url: https://www.douroeci.com/ + contributors: ["@nunohelibeires"] + + - name: Safaricom + url: https://www.safaricom.co.ke/ + contributors: ["@mmutiso"] + + - name: Scoot + url: https://scoot.co/ + contributors: ["@haaspt"] + + - name: Wattbewerb + url: https://wattbewerb.de/ + contributors: ["@wattbewerb"] + + Healthcare: + - name: Amino + url: https://amino.com + contributors: ["@shkr"] + + - name: Bluesquare + url: https://www.bluesquarehub.com/ + contributors: ["@madewulf"] + + - name: Care + url: https://www.getcare.io/ + contributors: ["@alandao2021"] + + - name: Living Goods + url: https://www.livinggoods.org + contributors: ["@chelule"] + + - name: Maieutical Labs + url: https://maieuticallabs.it + contributors: ["@xrmx"] + + - name: Medic + url: https://medic.org + contributors: ["@1yuv"] + + - name: REDCap Cloud + url: https://www.redcapcloud.com/ + + - name: TrustMedis + url: https://trustmedis.com/ + contributors: ["@famasya"] + + - name: WeSure + url: https://www.wesure.cn/ + + - name: 2070Health + url: https://2070health.com/ + + HR / Staffing: + - name: Swile + url: https://www.swile.co/ + contributors: ["@PaoloTerzi"] + + - name: Symmetrics + url: https://www.symmetrics.fyi + + - name: bluquist + url: https://bluquist.com/ + + Government: + - name: City of Ann Arbor, MI + url: https://www.a2gov.org/ + contributors: ["@sfirke"] + + - name: RIS3 Strategy of CZ, MIT CR + url: https://www.ris3.cz/ + contributors: ["@RIS3CZ"] + + - name: NRLM - Sarathi, India + url: https://pib.gov.in/PressReleasePage.aspx?PRID=1999586 + + Travel: + - name: Agoda + url: https://www.agoda.com/ + contributors: ["@lostseaway", "@maiake", "@obombayo"] + + - name: HomeToGo + url: https://hometogo.com/ + contributors: ["@pedromartinsteenstrup"] + + - name: Skyscanner + url: https://www.skyscanner.net/ + contributors: ["@cleslie", "@stanhoucke"] + + Others: + - name: 10Web + url: https://10web.io/ + + - name: AI inside + url: https://inside.ai/en/ + + - name: Automattic + url: https://automattic.com/ + contributors: ["@Khrol", "@Usiel"] + + - name: Dropbox + url: https://www.dropbox.com/ + contributors: ["@bkyryliuk"] + + - name: Flowbird + url: https://flowbird.com + contributors: ["@EmmanuelCbd"] + + - name: GEOTAB + url: https://www.geotab.com + contributors: ["@JZ6"] + + - name: Grassroot + url: https://www.grassrootinstitute.org/ + + - name: Increff + url: https://www.increff.com/ + contributors: ["@ishansinghania"] + + - name: komoot + url: https://www.komoot.com/ + contributors: ["@christophlingg"] + + - name: Let's Roam + url: https://www.letsroam.com/ + + - name: Machrent SA + url: https://www.machrent.com/ + + - name: Onebeat + url: https://1beat.com/ + contributors: ["@GuyAttia"] + + - name: X + url: https://x.com/ + + - name: VLMedia + url: https://www.vlmedia.com.tr/ + contributors: ["@ibotheperfect"] + + - name: Yahoo! + url: https://yahoo.com/ diff --git a/docs/docusaurus.config.ts b/docs/docusaurus.config.ts index 3a6332361dc..f5590de7d10 100644 --- a/docs/docusaurus.config.ts +++ b/docs/docusaurus.config.ts @@ -429,6 +429,14 @@ const config: Config = { label: 'Stack Overflow', href: 'https://stackoverflow.com/questions/tagged/apache-superset', }, + { + label: 'Community Calendar', + href: '/community#superset-community-calendar', + }, + { + label: 'In the Wild', + href: '/inTheWild', + }, ], }, ...dynamicNavbarItems, diff --git a/docs/package.json b/docs/package.json index 39d0a6bbe3c..c373e7b4f34 100644 --- a/docs/package.json +++ b/docs/package.json @@ -54,6 +54,8 @@ "antd": "^6.1.1", "caniuse-lite": "^1.0.30001760", "docusaurus-plugin-less": "^2.0.2", + "js-yaml": "^4.1.1", + "js-yaml-loader": "^1.2.2", "json-bigint": "^1.0.0", "less": "^4.5.1", "less-loader": "^12.3.0", @@ -74,6 +76,7 @@ "@docusaurus/module-type-aliases": "^3.9.1", "@docusaurus/tsconfig": "^3.9.2", "@eslint/js": "^9.39.2", + "@types/js-yaml": "^4.0.9", "@types/react": "^19.1.8", "@typescript-eslint/eslint-plugin": "^8.37.0", "@typescript-eslint/parser": "^8.50.0", diff --git a/docs/src/pages/inTheWild.tsx b/docs/src/pages/inTheWild.tsx new file mode 100644 index 00000000000..3230e822ce2 --- /dev/null +++ b/docs/src/pages/inTheWild.tsx @@ -0,0 +1,165 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import Layout from '@theme/Layout'; +import { Avatar, Card, Col, Collapse, Row, Typography } from 'antd'; +import BlurredSection from '../components/BlurredSection'; +import SectionHeader from '../components/SectionHeader'; +import DataSet from '../../../RESOURCES/INTHEWILD.yaml'; + +const { Text, Link } = Typography; + +interface Organization { + name: string; + url: string; + logo?: string; + contributors?: string[]; +} + +interface DataSetType { + categories: Record; +} + +const typedDataSet = DataSet as DataSetType; + +const ContributorAvatars = ({ contributors }: { contributors?: string[] }) => { + if (!contributors?.length) return null; + return ( + + {contributors.map((handle) => { + const username = handle.replace('@', ''); + return ( + e.stopPropagation()} + > + + {username.charAt(0).toUpperCase()} + + + ); + })} + + ); +}; + +export default function InTheWild() { + return ( + +
+ + +
+ + Add your name/org! + +
+
+ +
+ { + const logoItems = items.filter(({ logo }) => logo?.trim()); + const textItems = items.filter(({ logo }) => !logo?.trim()); + + return { + key: category, + label: ( + + {category} ({items.length}) + + ), + children: ( + <> + {logoItems.length > 0 && ( + 0 ? 24 : 0 }}> + {logoItems.map(({ name, url, logo, contributors }) => ( + + + + {name} + {contributors?.length && ( +
+ +
+ )} +
+
+ + ))} +
+ )} + + {textItems.length > 0 && ( + + {textItems.map(({ name, url, contributors }) => ( + + + + {name} + + + + + ))} + + )} + + ), + }; + })} + /> +
+
+
+ ); +} diff --git a/docs/src/pages/index.tsx b/docs/src/pages/index.tsx index ee588561a02..acf099a5192 100644 --- a/docs/src/pages/index.tsx +++ b/docs/src/pages/index.tsx @@ -19,15 +19,43 @@ import { useRef, useState, useEffect, JSX } from 'react'; import Layout from '@theme/Layout'; import Link from '@docusaurus/Link'; -import { Carousel } from 'antd'; +import { Card, Carousel, Flex } from 'antd'; import styled from '@emotion/styled'; import GitHubButton from 'react-github-btn'; import { mq } from '../utils'; import { Databases } from '../resources/data'; import SectionHeader from '../components/SectionHeader'; import BlurredSection from '../components/BlurredSection'; +import DataSet from '../../../RESOURCES/INTHEWILD.yaml'; import '../styles/main.less'; +interface Organization { + name: string; + url: string; + logo?: string; +} + +interface DataSetType { + categories: Record; +} + +const typedDataSet = DataSet as DataSetType; + +// Extract all organizations with logos for the carousel +const companiesWithLogos = Object.values(typedDataSet.categories) + .flat() + .filter((org) => org.logo?.trim()); + +// Fisher-Yates shuffle for fair randomization +function shuffleArray(array: T[]): T[] { + const shuffled = [...array]; + for (let i = shuffled.length - 1; i > 0; i--) { + const j = Math.floor(Math.random() * (i + 1)); + [shuffled[i], shuffled[j]] = [shuffled[j], shuffled[i]]; + } + return shuffled; +} + const features = [ { image: 'powerful-yet-easy.jpg', @@ -452,6 +480,7 @@ export default function Home(): JSX.Element { const slider = useRef(null); const [slideIndex, setSlideIndex] = useState(0); + const [shuffledCompanies, setShuffledCompanies] = useState(companiesWithLogos); const onChange = (current, next) => { setSlideIndex(next); @@ -479,6 +508,11 @@ export default function Home(): JSX.Element { } }; + // Shuffle companies on mount for fair rotation + useEffect(() => { + setShuffledCompanies(shuffleArray(companiesWithLogos)); + }, []); + // Set up dark <-> light navbar change useEffect(() => { changeToDark(); @@ -747,6 +781,74 @@ export default function Home(): JSX.Element { + {/* Only show carousel when we have enough logos (>10) for a good display */} + {companiesWithLogos.length > 10 && ( + +
+ +
+ + {shuffledCompanies.map(({ name, url, logo }) => ( + + ))} + +
+ + See all companies + · + + Add yours to the list! + + +
+
+ )} ); diff --git a/docs/src/types/yaml.d.ts b/docs/src/types/yaml.d.ts new file mode 100644 index 00000000000..fc9442c7196 --- /dev/null +++ b/docs/src/types/yaml.d.ts @@ -0,0 +1,28 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +declare module '*.yaml' { + const content: unknown; + export default content; +} + +declare module '*.yml' { + const content: unknown; + export default content; +} diff --git a/docs/src/webpack.extend.ts b/docs/src/webpack.extend.ts index 29737c141f4..5d8e0556f2c 100644 --- a/docs/src/webpack.extend.ts +++ b/docs/src/webpack.extend.ts @@ -25,6 +25,13 @@ export default function webpackExtendPlugin(): Plugin { name: 'custom-webpack-plugin', configureWebpack(config) { const isDev = process.env.NODE_ENV === 'development'; + + // Add YAML loader rule directly to existing rules + config.module?.rules?.push({ + test: /\.ya?ml$/, + use: 'js-yaml-loader', + }); + return { devtool: isDev ? 'eval-source-map' : config.devtool, ...(isDev && { diff --git a/docs/static/img/logos/preset.svg b/docs/static/img/logos/preset.svg new file mode 100644 index 00000000000..b2c75c14259 --- /dev/null +++ b/docs/static/img/logos/preset.svg @@ -0,0 +1,19 @@ + +preset-logo diff --git a/docs/yarn.lock b/docs/yarn.lock index b18bc4aeaab..2ecc1c4a696 100644 --- a/docs/yarn.lock +++ b/docs/yarn.lock @@ -4211,6 +4211,11 @@ dependencies: "@types/istanbul-lib-report" "*" +"@types/js-yaml@^4.0.9": + version "4.0.9" + resolved "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-4.0.9.tgz#cd82382c4f902fed9691a2ed79ec68c5898af4c2" + integrity sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg== + "@types/json-bigint@^1.0.4": version "1.0.4" resolved "https://registry.yarnpkg.com/@types/json-bigint/-/json-bigint-1.0.4.tgz#250d29e593375499d8ba6efaab22d094c3199ef3" @@ -8756,7 +8761,16 @@ js-file-download@^0.4.12: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@=4.1.1, js-yaml@^4.1.0: +js-yaml-loader@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/js-yaml-loader/-/js-yaml-loader-1.2.2.tgz#2c15f93915617acd19676d648945fa3003f8629b" + integrity sha512-H+NeuNrG6uOs/WMjna2SjkaCw13rMWiT/D7l9+9x5n8aq88BDsh2sRmdfxckWPIHtViYHWRG6XiCKYvS1dfyLg== + dependencies: + js-yaml "^3.13.1" + loader-utils "^1.2.3" + un-eval "^1.2.0" + +js-yaml@=4.1.1, js-yaml@^4.1.0, js-yaml@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.1.tgz#854c292467705b699476e1a2decc0c8a3458806b" integrity sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA== @@ -8835,6 +8849,13 @@ json2mq@^0.2.0: dependencies: string-convert "^0.2.0" +json5@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" + integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== + dependencies: + minimist "^1.2.0" + json5@^2.1.2, json5@^2.2.3: version "2.2.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" @@ -8984,6 +9005,15 @@ loader-runner@^4.3.1: resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.1.tgz#6c76ed29b0ccce9af379208299f07f876de737e3" integrity sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q== +loader-utils@^1.2.3: + version "1.4.2" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.2.tgz#29a957f3a63973883eb684f10ffd3d151fec01a3" + integrity sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^1.0.1" + loader-utils@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c" @@ -13437,6 +13467,11 @@ ufo@^1.5.4: resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.6.1.tgz#ac2db1d54614d1b22c1d603e3aef44a85d8f146b" integrity sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA== +un-eval@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/un-eval/-/un-eval-1.2.0.tgz#22a95c650334d59d21697efae32612218ecad65f" + integrity sha512-Wlj/pum6dQtGTPD/lclDtoVPkSfpjPfy1dwnnKw/sZP5DpBH9fLhBgQfsqNhe5/gS1D+vkZUuB771NRMUPA5CA== + unbox-primitive@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.1.0.tgz#8d9d2c9edeea8460c7f35033a88867944934d1e2"