Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
22 changes: 11 additions & 11 deletions bcl-builder.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ const path = require("path");

const outputFolder = path.resolve(__dirname);
const nodeModules = path.resolve(__dirname, "./node_modules");
const bclThemeDefault = path.resolve(__dirname, "bootstrap-component-library/src/themes/default");

// SCSS includePaths
const includePaths = [nodeModules];

module.exports = {
Expand All @@ -20,47 +20,47 @@ module.exports = {
],
copy: [
{
from: ["node_modules/@openeuropa/bcl-theme-default/css/**"],
from: [path.join(bclThemeDefault, "css/**")],
to: path.resolve(outputFolder, "assets/css"),
options: { up: true },
},
{
from: ["node_modules/@openeuropa/bcl-theme-default/js/**"],
from: [path.join(bclThemeDefault, "js/**")],
to: path.resolve(outputFolder, "assets"),
options: { up: 3 },
options: { up: 9 },
},
{
from: ["node_modules/bootstrap-ie11/css/**"],
to: path.resolve(outputFolder, "assets/css"),
options: { up: true },
},
{
from: ["node_modules/@openeuropa/bcl-theme-default/icons/bcl-default-icons.svg"],
from: [path.join(bclThemeDefault, "icons/bcl-default-icons.svg")],
to: path.resolve(outputFolder, "assets/icons"),
options: { up: true },
},
{
from: ["node_modules/@openeuropa/bcl-theme-default/templates/**/*.twig"],
from: [path.join(bclThemeDefault, "templates/**/*.twig")],
to: path.resolve(outputFolder, "assets/bcl"),
options: { up: 4 },
options: { up: 10 },
},
{
from: ["node_modules/@openeuropa/bcl-theme-default/logos/ec/positive/*.svg"],
from: [path.join(bclThemeDefault, "logos/ec/positive/*.svg")],
to: path.resolve(outputFolder, "assets/logos/ec"),
options: { up: true },
},
{
from: ["node_modules/@openeuropa/bcl-theme-default/logos/eu/standard-version/**"],
from: [path.join(bclThemeDefault, "logos/eu/standard-version/**")],
to: path.resolve(outputFolder, "assets/logos/eu"),
options: { up: true },
},
{
from: ["node_modules/@openeuropa/bcl-theme-default/logos/eu/condensed-version/**"],
from: [path.join(bclThemeDefault, "logos/eu/condensed-version/**")],
to: path.resolve(outputFolder, "assets/logos/eu/mobile"),
options: { up: true },
},
],
"rename": [
rename: [
{
from: path.resolve(outputFolder, "assets/bcl/**/*"),
to: "bcl-",
Expand Down
29 changes: 29 additions & 0 deletions bootstrap-component-library/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
.cache
.changelog
yarn-error.log
.yarn/install-state.gz
node_modules
build
assets
bootstrap/plugins
bootstrap/js
bootstrap/scss
bootstrap/*.svg
bootstrap/icons/*.svg
src/themes/*/css
src/themes/*/js
src/themes/**/bcl-stories
src/themes/ecl/storybook/.storybook/*.js
src/themes/joinup/storybook/.storybook/*.js
src/themes/ucpkn/storybook/.storybook/*.js
src/themes/*/logo*
src/themes/*/templates
src/themes/*/icons
src/themes/*/fonts
src/components/bcl-twig-templates/templates/
vendor
composer.lock

# Logs
logs
*.log
34 changes: 34 additions & 0 deletions bootstrap-component-library/.storybook/environment.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
const path = require("path");
const { getDummyText } = require("@openeuropa/bcl-data-utils");
const {
TwingEnvironment,
TwingLoaderFilesystem,
TwingFunction,
} = require("twing");
const drupalAttribute = require("drupal-attribute");

const projComponentsAbsPath = path.resolve(__dirname, "../src/components");
const projCompositionsAbsPath = path.resolve(__dirname, "../src/compositions");
const loader = new TwingLoaderFilesystem(projComponentsAbsPath);

// In storybook we get this returned as an instance of
// TWigLoaderNull, we need to avoid processing this.
if (typeof loader.addPath === "function") {
// Add namespace oe.
loader.addPath(projComponentsAbsPath, "oe-bcl");
loader.addPath(projCompositionsAbsPath, "oe-bcl");
}

const createAttribute = new TwingFunction("create_attribute", function () {
return new drupalAttribute();
});

const dummyText = new TwingFunction("get_dummy_text", function (count, paragraph, paragraphs, classes) {
return getDummyText(count, paragraph, paragraphs, classes);
});

const environment = new TwingEnvironment(loader, { autoescape: false });
environment.addFunction(createAttribute);
environment.addFunction(dummyText);

module.exports = environment;
97 changes: 97 additions & 0 deletions bootstrap-component-library/.storybook/main.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
const path = require("path");
const { dirname, join } = path;

const getAbsolutePath = (value) => {
return dirname(require.resolve(join(value, "package.json")));
};

const resolvePath = (relativePath) => path.resolve(__dirname, relativePath);

const stories = ["../src/*/*/*.story.js"];

const addons = [
getAbsolutePath("@storybook/addon-controls"),
];

const webpackFinal = async (config) => {
// Add .twig loader
config.module.rules.push({
test: /\.twig$/,
loader: "twing-loader",
options: {
environmentModulePath: resolvePath("environment.js"),
},
});

// Remove ProgressPlugin
config.plugins = config.plugins.filter(
(plugin) => plugin.constructor.name !== "ProgressPlugin"
);

// Add fallbacks for browser compatibility
config.resolve = {
...config.resolve,
alias: {
...config.resolve?.alias,

// Components
"@openeuropa/bcl-accordion": resolvePath("../src/components/bcl-accordion"),
"@openeuropa/bcl-heading": resolvePath("../src/components/bcl-heading"),

// Compositions
"@openeuropa/bcl-base-templates": resolvePath("../src/compositions/bcl-base-templates"),
"@openeuropa/bcl-contact-form": resolvePath("../src/compositions/bcl-contact-form"),
"@openeuropa/bcl-multilingual": resolvePath("../src/compositions/bcl-multilingual"),
"@openeuropa/bcl-project": resolvePath("../src/compositions/bcl-project"),
"@openeuropa/bcl-file": resolvePath("../src/compositions/bcl-file"),
"@openeuropa/bcl-featured-media": resolvePath("../src/compositions/bcl-featured-media"),
"@openeuropa/bcl-banner": resolvePath("../src/compositions/bcl-banner"),
"@openeuropa/bcl-language-list": resolvePath("../src/compositions/bcl-language-list"),
"@openeuropa/bcl-links-block": resolvePath("../src/compositions/bcl-links-block"),
"@openeuropa/bcl-inpage-navigation": resolvePath("../src/compositions/bcl-inpage-navigation"),
"@openeuropa/bcl-content-banner": resolvePath("../src/compositions/bcl-content-banner"),
"@openeuropa/bcl-user": resolvePath("../src/compositions/bcl-user"),
"@openeuropa/bcl-project-status": resolvePath("../src/compositions/bcl-project-status"),
"@openeuropa/bcl-timeline": resolvePath("../src/compositions/bcl-timeline"),
"@openeuropa/bcl-search-form": resolvePath("../src/compositions/bcl-search-form"),
"@openeuropa/bcl-listing": resolvePath("../src/compositions/bcl-listing"),
"@openeuropa/bcl-recent-activities": resolvePath("../src/compositions/bcl-recent-activities"),
"@openeuropa/bcl-color-scheme": resolvePath("../src/compositions/bcl-color-scheme"),

// Data
"@openeuropa/bcl-data-accordion": resolvePath("../src/data/accordion"),
"@openeuropa/bcl-data-blockquote": resolvePath("../src/data/blockquote"),
"@openeuropa/bcl-data-link": resolvePath("../src/data/link"),

// Add any others you need here
},
fallback: {
...config.resolve?.fallback,
fs: false,
path: require.resolve("path-browserify"),
},
};

// Fix for pnpm + webpack snapshot issues
config.snapshot = {
...config.snapshot,
managedPaths: [/(^|[/\\])node_modules([/\\]|$)/],
};

return config;
};

module.exports = {
framework: {
name: getAbsolutePath("@storybook/html-webpack5"),
options: {},
},
staticDirs: ['../assets'],
stories,
addons,
webpackFinal,
features: {
postcss: false,
},
docs: {},
};
46 changes: 46 additions & 0 deletions bootstrap-component-library/.storybook/manager.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
import { addons } from "@storybook/manager-api";
import browserUpdate from "browser-update";
import { create } from "@storybook/theming";

addons.setConfig({
isFullscreen: false,
showNav: true,
showPanel: true,
panelPosition: "bottom",
sidebarAnimations: true,
enableShortcuts: true,
isToolshown: true,
theme: create({
base: "light",
brandTitle: `OE-BCL`,
brandUrl: "https://github.com/openeuropa/bootstrap-component-library",
brandImage: undefined,
}),
selectedPanel: "controls",
initialActive: "sidebar",
sidebar: {
showRoots: false,
},
});

browserUpdate({
required: {
i: 11,
e: -4,
f: -4,
c: -4,
s: -2,
},
text: {
msg: 'This websites uses <a href="http://storybook.js.org" title="storybook ui">storybook<a> which doesn\'t fully support <b>{brow_name}</b>.',
msgmore:
"(supported browsers are: chrome latest 5, firefox latest 5, safari latest 3, Edge latest 5)",
},
text_for_i: {
msg: "Sorry, the minimal required version of Internet Explorer is 11 on this website",
msgmore: "",
},
noclose: false,
no_permanent_hide: false,
});

7 changes: 7 additions & 0 deletions bootstrap-component-library/.storybook/preview-head.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<link rel="stylesheet" type="text/css" href="oe-bcl-default.min.css" />
<link rel="stylesheet" type="text/css" href="color-scheme.min.css" />
<script
type="text/javascript"
src="oe-bcl-default.bundle.min.js"
></script>
<script src="slim-select-2/slimselect.min.js"></script>
50 changes: 50 additions & 0 deletions bootstrap-component-library/.storybook/preview.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
import { Buffer } from 'buffer';

global.Buffer = Buffer;

export const parameters = {
a11y: {
element: "#storybook-root",
config: {},
options: {
checks: { "color-contrast": { options: { noScroll: true } } },
restoreScroll: true,
},
manual: false,
},
docs: {
canvas: { sourceState: 'shown' },
},
viewMode: 'story',
controls: { expanded: true },
layout: "padded",
viewport: {
defaultViewport: "responsive",
viewports: {
responsive: {
name: "responsive",
styles: {
width: "100%",
height: "100%",
border: 0,
margin: 0,
boxShadow: "none",
borderRadius: 0,
position: "absolute",
},
},
},
},
options: {
storySort: {
method: "alphabetical",
order: [
"Components",
"Compositions",
"Paragraphs",
"Features"
],
},
},
};
export const tags = ["autodocs"];
19 changes: 19 additions & 0 deletions bootstrap-component-library/babel.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
module.exports = (api) => {
if (api.env("test")) {
return {
presets: [
[
"@babel/preset-env",
{
useBuiltIns: "usage",
corejs: 3,
},
],
"@babel/preset-react",
],
plugins: ["@babel/plugin-transform-runtime"],
sourceType: "unambiguous",
};
}
return {};
};
Loading