@ilo-org/twig 0.2.4 → 0.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +14009 -13996
- package/CHANGELOG.md +42 -0
- package/README.md +203 -2
- package/apps/storybook/manager-head.html +2 -0
- package/apps/storybook/patterns/intro.stories.mdx +311 -0
- package/apps/storybook/patterns/welcome.stories.mdx +61 -16
- package/apps/storybook/preview-head.html +0 -6
- package/apps/storybook/preview.js +9 -11
- package/apps/storybook/styles.scss +0 -1
- package/images/favicon.ico +0 -0
- package/package.json +7 -7
- package/src/patterns/components/accordion/accordion.wingsuit.yml +18 -36
- package/src/patterns/components/button/button.wingsuit.yml +34 -33
- package/src/patterns/components/callout/callout.wingsuit.yml +2 -2
- package/src/patterns/components/card/card.twig +1 -1
- package/src/patterns/components/card/card.wingsuit.yml +37 -40
- package/src/patterns/components/cardgroup/cardgroup.wingsuit.yml +0 -4
- package/src/patterns/components/dropdown/dropdown.wingsuit.yml +20 -13
- package/src/patterns/components/hero/hero.wingsuit.yml +4 -3
- package/src/patterns/components/herocard/herocard.wingsuit.yml +14 -9
- package/src/patterns/components/linklist/linklist.stories.jsx +5 -0
- package/src/patterns/components/linklist/linklist.wingsuit.yml +3 -2
- package/src/patterns/components/list/list.wingsuit.yml +4 -4
- package/src/patterns/components/localnav/localnav.twig +58 -4
- package/src/patterns/components/navigation/navigation.twig +0 -1
- package/src/patterns/components/navigation/navigation.wingsuit.yml +2 -2
- package/src/patterns/components/notification/notification.wingsuit.yml +11 -11
- package/src/patterns/components/pagination/pagination.wingsuit.yml +2 -2
- package/src/patterns/components/readmore/readmore.wingsuit.yml +5 -1
- package/src/patterns/components/tags/tag.wingsuit.yml +5 -5
- package/src/patterns/components/tags/tags.wingsuit.yml +2 -2
- package/src/patterns/components/tooltip/tooltip.js +5 -4
- package/src/patterns/components/tooltip/tooltip.wingsuit.yml +4 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,47 @@
|
|
|
1
1
|
# @ilo-org/twig
|
|
2
2
|
|
|
3
|
+
## 0.2.6
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- f7f448c65: Fixes to React radio button, SearchField, add ability to serve different langauge fonts
|
|
8
|
+
- f4b7bcb7f: Local nav fixes for mobile
|
|
9
|
+
- 0dfb90274: Patchfix for Feature card wide version
|
|
10
|
+
- Updated dependencies [f7f448c65]
|
|
11
|
+
- Updated dependencies [f4b7bcb7f]
|
|
12
|
+
- Updated dependencies [0dfb90274]
|
|
13
|
+
- @ilo-org/fonts@0.0.3
|
|
14
|
+
- @ilo-org/styles@0.1.11
|
|
15
|
+
- @ilo-org/themes@0.1.11
|
|
16
|
+
- @ilo-org/utils@0.0.7
|
|
17
|
+
- @ilo-org/icons@0.1.11
|
|
18
|
+
|
|
19
|
+
## 0.2.5
|
|
20
|
+
|
|
21
|
+
### Patch Changes
|
|
22
|
+
|
|
23
|
+
- fdba39df6: Adjust card widths
|
|
24
|
+
- 592c40ae9: Hover fix for data card and breadcrumb for hero
|
|
25
|
+
- 3005bb74c: Fixes to Video, Accordion, List, Checkbox, favicon
|
|
26
|
+
- b72b8aa9e: Update README; various bugfixes with Table, Footer, Notification, Video, RichText
|
|
27
|
+
- d7015e194: - Tag fixes for consistent font size
|
|
28
|
+
- Accordion transition, font size and height fixes
|
|
29
|
+
- Tooltip transition fix
|
|
30
|
+
- Cards padding and anchor the date on feature cards
|
|
31
|
+
- List fix font sizes on mobile
|
|
32
|
+
- Callout fix transition timing
|
|
33
|
+
- 6ba8ee615: Documentation for wingusit
|
|
34
|
+
- Updated dependencies [fdba39df6]
|
|
35
|
+
- Updated dependencies [592c40ae9]
|
|
36
|
+
- Updated dependencies [3005bb74c]
|
|
37
|
+
- Updated dependencies [b72b8aa9e]
|
|
38
|
+
- Updated dependencies [d7015e194]
|
|
39
|
+
- Updated dependencies [6ba8ee615]
|
|
40
|
+
- @ilo-org/styles@0.1.10
|
|
41
|
+
- @ilo-org/icons@0.1.10
|
|
42
|
+
- @ilo-org/themes@0.1.10
|
|
43
|
+
- @ilo-org/utils@0.0.6
|
|
44
|
+
|
|
3
45
|
## 0.2.4
|
|
4
46
|
|
|
5
47
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -1,8 +1,56 @@
|
|
|
1
1
|
# ILO Design System - Twig Package
|
|
2
2
|
|
|
3
|
-
This package provides the implementation of the Design System using [Twig](https://twig.symfony.com/doc/). It also includes a [Storybook](https://storybook.js.org/) project for documentation and development of Twig components, using [Wingsuit](https://wingsuit-designsystem.github.io/).
|
|
3
|
+
This package provides the implementation of the Design System using [Twig](https://twig.symfony.com/doc/). It also includes a [Storybook](https://storybook.js.org/) project for documentation and development of Twig components, using [Wingsuit](https://wingsuit-designsystem.github.io/). Wingsuit uses [Twing](https://www.npmjs.com/package/twing), a Node port of Twig, to compile Twigs to HTML. It has dependencies on the following other @ilo-org packages:
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
- [@ilo-org/themes](./packages/themes)
|
|
6
|
+
- [@ilo-org/fonts](./packages/fonts)
|
|
7
|
+
- [@ilo-org/styles](./packages/styles)
|
|
8
|
+
- [@ilo-org/utils](./packages/utils)
|
|
9
|
+
- [@ilo-org/icons](./packages/icons)
|
|
10
|
+
|
|
11
|
+
#### Architecture
|
|
12
|
+
|
|
13
|
+
Because this is a modified version of Storybook which compliles and displays Twigs instead of React components, there are some notable differences between this and vanilla versions of Storybook. One prominent difference is in directory structure. Each component folder, located in `src/patterns/components`, contains the following files:
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
component.stories.jsx
|
|
17
|
+
component.twig
|
|
18
|
+
component.wingsuit.yml
|
|
19
|
+
index.js
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
and potentially, if Javascript interactivity exists, also the following:
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
component.behavior.js
|
|
26
|
+
component.js
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Wingsuit consumes the `component.wingsuit.yml` file, which is a [UI Pattern YAML](https://wingsuit-designsystem.github.io/components/wingsuit/) borrowed from [Drupal](https://www.drupal.org/project/ui_patterns_settings), and uses this to populate and format the Storybook story for each components. **As such, one is limited in how much one can customize the Storybook experience.**
|
|
30
|
+
|
|
31
|
+
#### Javascript
|
|
32
|
+
|
|
33
|
+
In this package, Javascript is vanilla, with each component that requires Javascript functionality loading an [ES class](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes) named after the component, scoped and bound to the component's outermost element. Wingsuit is configured to instantiate view classes via a function that looks for a [data attribute](https://developer.mozilla.org/en-US/docs/Learn/HTML/Howto/Use_data_attributes) that calls the view name provided in that attribute. On page load, the app looks for elements with the data attribute `data-loadcomponent` and loads whatever modules have corresponding names, passing a reference to the `HTMLElement` containing the data attribute. All the JS is bundled by Webpack into one file, meaning the JS file can be cached and only has to be downloaded from the server once per session.
|
|
34
|
+
|
|
35
|
+
The JS is well-documented in comments, so poke around and you'll get the gist of how it works.
|
|
36
|
+
|
|
37
|
+
Here's an example of HTML component markup that will automatically call some Javascript. Given the following HTML:
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
<section class="component componentname" data-loadcomponent="ComponentName">
|
|
41
|
+
<!-- component HTML goes here -->
|
|
42
|
+
</section>
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Javascript will look in the `ComponentMap` Class for a JS Class called `ComponentName` and then create a new instance of that class and call it. If you've added a new JS Class specific to the module you've built, you'll need to import the JS file to `ComponenetMap` and add it to `ComponenteMap`'s exports. If you've created a new Class, you'll need to make sure to pass the param `element` into the constructor - this is a reference to the DOM element with the `data-loadcomponent` attribute on it. This allows you to scope your JS to each instance of an HTML module.
|
|
46
|
+
|
|
47
|
+
#### Installation and PNPM Commands
|
|
48
|
+
|
|
49
|
+
To install
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
npm i @ilo-org/twig
|
|
53
|
+
```
|
|
6
54
|
|
|
7
55
|
To start storybook
|
|
8
56
|
|
|
@@ -16,8 +64,161 @@ To build storybook
|
|
|
16
64
|
pnpm build:storybook
|
|
17
65
|
```
|
|
18
66
|
|
|
67
|
+
To build and start storybook
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
pnpm build
|
|
71
|
+
```
|
|
72
|
+
|
|
19
73
|
To build Twigs to be used in a CMS like Drupal (this will output Twigs and necessary JavaScript to a `/dist` folder.)
|
|
20
74
|
|
|
21
75
|
```bash
|
|
22
76
|
pnpm output
|
|
23
77
|
```
|
|
78
|
+
|
|
79
|
+
This package imports the `prefix` from the `themes` package; to manually import it, run
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
pnpm import:prefix
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
This package imports icon svgs from the `icons` package; to manually import them, run
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
pnpm import:svgs
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Questions and Feedback
|
|
92
|
+
|
|
93
|
+
(TBD)
|
|
94
|
+
|
|
95
|
+
## Accessibility Standards
|
|
96
|
+
|
|
97
|
+
(TBD)
|
|
98
|
+
|
|
99
|
+
## Contributing
|
|
100
|
+
|
|
101
|
+
ILO Design System is an open-source project and we welcome your contributions! Before submitting a pull request, please take a moment to review the following guidelines.
|
|
102
|
+
|
|
103
|
+
### Branches
|
|
104
|
+
|
|
105
|
+
| Branch | Purpose |
|
|
106
|
+
| --------- | ---------------------------------- |
|
|
107
|
+
| `main` | The latest version of all packages |
|
|
108
|
+
| `develop` | The next release of all packages |
|
|
109
|
+
|
|
110
|
+
### Contribution workflow
|
|
111
|
+
|
|
112
|
+
1. Fork and clone the repo
|
|
113
|
+
2. Create a new branch from the `develop` branch
|
|
114
|
+
3. Make your changes and [add a changeset](#versioning) identifying the changes and affected packages
|
|
115
|
+
4. Push your branch to the forked version of the repo
|
|
116
|
+
5. Open a pull request back to the `develop` branch of the main repo
|
|
117
|
+
|
|
118
|
+
### Versioning
|
|
119
|
+
|
|
120
|
+
The project uses [changesets](https://github.com/changesets/changesets) to manage package versioning. All pull requests that will affect the project's semantic versioning must include a changest.
|
|
121
|
+
|
|
122
|
+
See more information on [how to add a changeset](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md)
|
|
123
|
+
|
|
124
|
+
### Conventions
|
|
125
|
+
|
|
126
|
+
Contributions should respect the following conventions for branch names, commit messages and pull request descriptions
|
|
127
|
+
|
|
128
|
+
#### Commits
|
|
129
|
+
|
|
130
|
+
Commits should follow [Angular Commit Message Guidelines](https://github.com/angular/angular/blob/22b96b9/CONTRIBUTING.md#commit).
|
|
131
|
+
|
|
132
|
+
```
|
|
133
|
+
<type>(<scope>): <subject>
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
Examples:
|
|
137
|
+
|
|
138
|
+
```
|
|
139
|
+
fix(react): change button color on hover
|
|
140
|
+
feat(twig): add button component
|
|
141
|
+
ci(github): add release workflow
|
|
142
|
+
perf(react): improve modal animations
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
#### Types
|
|
146
|
+
|
|
147
|
+
- build: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)
|
|
148
|
+
- ci: Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)
|
|
149
|
+
- docs: Documentation only changes
|
|
150
|
+
- feat: A new feature
|
|
151
|
+
- fix: A bug fix
|
|
152
|
+
- perf: A code change that improves performance
|
|
153
|
+
- refactor: A code change that neither fixes a bug nor adds a feature
|
|
154
|
+
- style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
|
|
155
|
+
- test: Adding missing tests or correcting existing tests
|
|
156
|
+
|
|
157
|
+
#### Scopes
|
|
158
|
+
|
|
159
|
+
This should be a package name or an aspect of the project's configuration.
|
|
160
|
+
|
|
161
|
+
### Branches
|
|
162
|
+
|
|
163
|
+
Branch names should broadly mirror the same convention as commits.
|
|
164
|
+
|
|
165
|
+
Examples:
|
|
166
|
+
|
|
167
|
+
```
|
|
168
|
+
feat/react/modal-wrapper
|
|
169
|
+
fix/twig/modal-wrapper
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
### Pull requests
|
|
173
|
+
|
|
174
|
+
Pull requests should include a descriptive name and detailed explanation of what merging the pull request will accomplish. Authors should make sure to reference Github issues that the the pull request will fix or affect.
|
|
175
|
+
|
|
176
|
+
## Building the project
|
|
177
|
+
|
|
178
|
+
Use [nvm](https://github.com/nvm-sh/nvm) to make sure you have the correct version of node installed.
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
nvm use
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
Install [pnpm](https://pnpm.io/).
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
npm i -g pnpm
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
Install dependencies
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
pnpm recursive install
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
Build all packages.
|
|
197
|
+
|
|
198
|
+
```bash
|
|
199
|
+
pnpm build:all
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
Start React storybook
|
|
203
|
+
|
|
204
|
+
```bash
|
|
205
|
+
pnpm start:react-storybook
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
Start Twig storybook
|
|
209
|
+
|
|
210
|
+
```bash
|
|
211
|
+
pnpm start:twig-storybook
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
Check types
|
|
215
|
+
|
|
216
|
+
```bash
|
|
217
|
+
pnpm check:types
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
Run all tests
|
|
221
|
+
|
|
222
|
+
```bash
|
|
223
|
+
pnpm test:all
|
|
224
|
+
```
|
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
import { Meta, Canvas } from '@storybook/addon-docs/blocks';
|
|
2
|
+
import { Badge } from '@storybook/components';
|
|
3
|
+
import { getStorybook, storiesOf } from '@storybook/react';
|
|
4
|
+
import LinkTo from '@storybook/addon-links/react';
|
|
5
|
+
|
|
6
|
+
<Meta
|
|
7
|
+
title="Introduction"
|
|
8
|
+
parameters={{ viewMode: 'docs', previewTabs: { canvas: { hidden: true } } }}
|
|
9
|
+
/>
|
|
10
|
+
|
|
11
|
+
<div style={{ paddingTop: '40px', color: 'inherit' }}>
|
|
12
|
+
<h2
|
|
13
|
+
style={{
|
|
14
|
+
fontFamily: 'Overpass',
|
|
15
|
+
fontSize: '56.95px',
|
|
16
|
+
fontWeight: '700',
|
|
17
|
+
marginBottom: '40px',
|
|
18
|
+
border: 'none',
|
|
19
|
+
}}
|
|
20
|
+
>
|
|
21
|
+
ILO Design System
|
|
22
|
+
</h2>
|
|
23
|
+
<h3
|
|
24
|
+
style={{ fontFamily: 'Overpass', fontSize: '45.56px', fontWeight: '700', marginBottom: '40px' }}
|
|
25
|
+
>
|
|
26
|
+
Getting Started
|
|
27
|
+
</h3>
|
|
28
|
+
</div>
|
|
29
|
+
|
|
30
|
+
This package provides the implementation of the Design System using [Twig](https://twig.symfony.com/doc/). It also includes a [Storybook](https://storybook.js.org/) project for documentation and development of Twig components, using [Wingsuit](https://wingsuit-designsystem.github.io/). Wingsuit uses [Twing](https://www.npmjs.com/package/twing), a Node port of Twig, to compile Twigs to HTML. It has dependencies on the following other @ilo-org packages:
|
|
31
|
+
|
|
32
|
+
- [@ilo-org/themes](./packages/themes)
|
|
33
|
+
- [@ilo-org/fonts](./packages/fonts)
|
|
34
|
+
- [@ilo-org/styles](./packages/styles)
|
|
35
|
+
- [@ilo-org/utils](./packages/utils)
|
|
36
|
+
- [@ilo-org/icons](./packages/icons)
|
|
37
|
+
|
|
38
|
+
<h4
|
|
39
|
+
style={{
|
|
40
|
+
fontFamily: 'Overpass',
|
|
41
|
+
fontSize: '29px',
|
|
42
|
+
fontWeight: '700',
|
|
43
|
+
marginBottom: '40px',
|
|
44
|
+
marginTop: '40px',
|
|
45
|
+
}}
|
|
46
|
+
>
|
|
47
|
+
Installation and PNPM Commands
|
|
48
|
+
</h4>
|
|
49
|
+
|
|
50
|
+
To install
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
npm i @ilo-org/twig
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
To start storybook
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
pnpm storybook
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
To build storybook
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
pnpm build:storybook
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
To build and start storybook
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
pnpm build
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
To build Twigs to be used in a CMS like Drupal (this will output Twigs and necessary JavaScript to a `/dist` folder.)
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
pnpm output
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
This package imports the `prefix` from the `themes` package; to manually import it, run
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
pnpm import:prefix
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
This package imports icon svgs from the `icons` package; to manually import them, run
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
pnpm import:svgs
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
<h4
|
|
93
|
+
style={{
|
|
94
|
+
fontFamily: 'Overpass',
|
|
95
|
+
fontSize: '29px',
|
|
96
|
+
fontWeight: '700',
|
|
97
|
+
marginBottom: '40px',
|
|
98
|
+
marginTop: '40px',
|
|
99
|
+
}}
|
|
100
|
+
>
|
|
101
|
+
Architecture
|
|
102
|
+
</h4>
|
|
103
|
+
|
|
104
|
+
Because this is a modified version of Storybook which compliles and displays Twigs instead of React components, there are some notable differences between this and vanilla versions of Storybook. One prominent difference is in directory structure. Each component folder, located in `src/patterns/components`, contains the following files:
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
component.stories.jsx
|
|
108
|
+
component.twig
|
|
109
|
+
component.wingsuit.yml
|
|
110
|
+
index.js
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
and potentially, if Javascript interactivity exists, also the following:
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
component.behavior.js
|
|
117
|
+
component.js
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Wingsuit consumes the `component.wingsuit.yml` file, which is a [UI Pattern YAML](https://wingsuit-designsystem.github.io/components/wingsuit/) borrowed from [Drupal](https://www.drupal.org/project/ui_patterns_settings), and uses this to populate and format the Storybook story for each components. **As such, one is limited in how much one can customize the Storybook experience.**
|
|
121
|
+
|
|
122
|
+
<h4
|
|
123
|
+
style={{
|
|
124
|
+
fontFamily: 'Overpass',
|
|
125
|
+
fontSize: '29px',
|
|
126
|
+
fontWeight: '700',
|
|
127
|
+
marginBottom: '40px',
|
|
128
|
+
marginTop: '40px',
|
|
129
|
+
}}
|
|
130
|
+
>
|
|
131
|
+
Javascript
|
|
132
|
+
</h4>
|
|
133
|
+
|
|
134
|
+
In this package, Javascript is vanilla, with each component that requires Javascript functionality loading an [ES class](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes) named after the component, scoped and bound to the component's outermost element. Wingsuit is configured to instantiate view classes via a function that looks for a [data attribute](https://developer.mozilla.org/en-US/docs/Learn/HTML/Howto/Use_data_attributes) that calls the view name provided in that attribute. On page load, the app looks for elements with the data attribute `data-loadcomponent` and loads whatever modules have corresponding names, passing a reference to the `HTMLElement` containing the data attribute. All the JS is bundled by Webpack into one file, meaning the JS file can be cached and only has to be downloaded from the server once per session.
|
|
135
|
+
|
|
136
|
+
The JS is well-documented in comments, so poke around and you'll get the gist of how it works.
|
|
137
|
+
|
|
138
|
+
Here's an example of HTML component markup that will automatically call some Javascript. Given the following HTML:
|
|
139
|
+
|
|
140
|
+
```
|
|
141
|
+
<section class="component componentname" data-loadcomponent="ComponentName">
|
|
142
|
+
<!-- component HTML goes here -->
|
|
143
|
+
</section>
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
Javascript will look in the `ComponentMap` Class for a JS Class called `ComponentName` and then create a new instance of that class and call it. If you've added a new JS Class specific to the module you've built, you'll need to import the JS file to `ComponenetMap` and add it to `ComponenteMap`'s exports. If you've created a new Class, you'll need to make sure to pass the param `element` into the constructor - this is a reference to the DOM element with the `data-loadcomponent` attribute on it. This allows you to scope your JS to each instance of an HTML module.
|
|
147
|
+
|
|
148
|
+
<h4
|
|
149
|
+
style={{
|
|
150
|
+
fontFamily: 'Overpass',
|
|
151
|
+
fontSize: '29px',
|
|
152
|
+
fontWeight: '700',
|
|
153
|
+
marginBottom: '40px',
|
|
154
|
+
marginTop: '40px',
|
|
155
|
+
}}
|
|
156
|
+
>
|
|
157
|
+
Questions and Feedback
|
|
158
|
+
</h4>
|
|
159
|
+
|
|
160
|
+
(TBD)
|
|
161
|
+
|
|
162
|
+
<h4
|
|
163
|
+
style={{
|
|
164
|
+
fontFamily: 'Overpass',
|
|
165
|
+
fontSize: '29px',
|
|
166
|
+
fontWeight: '700',
|
|
167
|
+
marginBottom: '40px',
|
|
168
|
+
marginTop: '40px',
|
|
169
|
+
}}
|
|
170
|
+
>
|
|
171
|
+
Accessibility Standards
|
|
172
|
+
</h4>
|
|
173
|
+
|
|
174
|
+
(TBD)
|
|
175
|
+
|
|
176
|
+
<h4
|
|
177
|
+
style={{
|
|
178
|
+
fontFamily: 'Overpass',
|
|
179
|
+
fontSize: '29px',
|
|
180
|
+
fontWeight: '700',
|
|
181
|
+
marginBottom: '40px',
|
|
182
|
+
marginTop: '40px',
|
|
183
|
+
}}
|
|
184
|
+
>
|
|
185
|
+
Contributing
|
|
186
|
+
</h4>
|
|
187
|
+
|
|
188
|
+
ILO Design System is an open-source project and we welcome your contributions! Before submitting a pull request, please take a moment to review the following guidelines.
|
|
189
|
+
|
|
190
|
+
## Branches
|
|
191
|
+
|
|
192
|
+
| Branch | Purpose |
|
|
193
|
+
| --------- | ---------------------------------- |
|
|
194
|
+
| `main` | The latest version of all packages |
|
|
195
|
+
| `develop` | The next release of all packages |
|
|
196
|
+
|
|
197
|
+
## Contribution workflow
|
|
198
|
+
|
|
199
|
+
1. Fork and clone the repo
|
|
200
|
+
2. Create a new branch from the `develop` branch
|
|
201
|
+
3. Make your changes and [add a changeset](#versioning) identifying the changes and affected packages
|
|
202
|
+
4. Push your branch to the forked version of the repo
|
|
203
|
+
5. Open a pull request back to the `develop` branch of the main repo
|
|
204
|
+
|
|
205
|
+
## Versioning
|
|
206
|
+
|
|
207
|
+
The project uses [changesets](https://github.com/changesets/changesets) to manage package versioning. All pull requests that will affect the project's semantic versioning must include a changest.
|
|
208
|
+
|
|
209
|
+
See more information on [how to add a changeset](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md)
|
|
210
|
+
|
|
211
|
+
## Conventions
|
|
212
|
+
|
|
213
|
+
Contributions should respect the following conventions for branch names, commit messages and pull request descriptions
|
|
214
|
+
|
|
215
|
+
### Commits
|
|
216
|
+
|
|
217
|
+
Commits should follow [Angular Commit Message Guidelines](https://github.com/angular/angular/blob/22b96b9/CONTRIBUTING.md#commit).
|
|
218
|
+
|
|
219
|
+
```
|
|
220
|
+
<type>(<scope>): <subject>
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
Examples:
|
|
224
|
+
|
|
225
|
+
```
|
|
226
|
+
fix(react): change button color on hover
|
|
227
|
+
feat(twig): add button component
|
|
228
|
+
ci(github): add release workflow
|
|
229
|
+
perf(react): improve modal animations
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
#### Types
|
|
233
|
+
|
|
234
|
+
- build: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)
|
|
235
|
+
- ci: Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)
|
|
236
|
+
- docs: Documentation only changes
|
|
237
|
+
- feat: A new feature
|
|
238
|
+
- fix: A bug fix
|
|
239
|
+
- perf: A code change that improves performance
|
|
240
|
+
- refactor: A code change that neither fixes a bug nor adds a feature
|
|
241
|
+
- style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
|
|
242
|
+
- test: Adding missing tests or correcting existing tests
|
|
243
|
+
|
|
244
|
+
#### Scopes
|
|
245
|
+
|
|
246
|
+
This should be a package name or an aspect of the project's configuration.
|
|
247
|
+
|
|
248
|
+
### Branches
|
|
249
|
+
|
|
250
|
+
Branch names should broadly mirror the same convention as commits.
|
|
251
|
+
|
|
252
|
+
Examples:
|
|
253
|
+
|
|
254
|
+
```
|
|
255
|
+
feat/react/modal-wrapper
|
|
256
|
+
fix/twig/modal-wrapper
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
### Pull requests
|
|
260
|
+
|
|
261
|
+
Pull requests should include a descriptive name and detailed explanation of what merging the pull request will accomplish. Authors should make sure to reference Github issues that the the pull request will fix or affect.
|
|
262
|
+
|
|
263
|
+
## Building the project
|
|
264
|
+
|
|
265
|
+
Use [nvm](https://github.com/nvm-sh/nvm) to make sure you have the correct version of node installed.
|
|
266
|
+
|
|
267
|
+
```bash
|
|
268
|
+
nvm use
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
Install [pnpm](https://pnpm.io/).
|
|
272
|
+
|
|
273
|
+
```bash
|
|
274
|
+
npm i -g pnpm
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
Install dependencies
|
|
278
|
+
|
|
279
|
+
```bash
|
|
280
|
+
pnpm recursive install
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
Build all packages.
|
|
284
|
+
|
|
285
|
+
```bash
|
|
286
|
+
pnpm build:all
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
Start React storybook
|
|
290
|
+
|
|
291
|
+
```bash
|
|
292
|
+
pnpm start:react-storybook
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
Start Twig storybook
|
|
296
|
+
|
|
297
|
+
```bash
|
|
298
|
+
pnpm start:twig-storybook
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
Check types
|
|
302
|
+
|
|
303
|
+
```bash
|
|
304
|
+
pnpm check:types
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
Run all tests
|
|
308
|
+
|
|
309
|
+
```bash
|
|
310
|
+
pnpm test:all
|
|
311
|
+
```
|
|
@@ -1,24 +1,69 @@
|
|
|
1
1
|
import { Meta, Canvas } from '@storybook/addon-docs/blocks';
|
|
2
2
|
import { Badge } from '@storybook/components';
|
|
3
|
-
import { getStorybook, storiesOf} from '@storybook/react';
|
|
3
|
+
import { getStorybook, storiesOf } from '@storybook/react';
|
|
4
4
|
import LinkTo from '@storybook/addon-links/react';
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
parameters={{ viewMode: 'docs', previewTabs: { canvas: { hidden: true }}}}
|
|
6
|
+
<Meta
|
|
7
|
+
title="Welcome"
|
|
8
|
+
parameters={{ viewMode: 'docs', previewTabs: { canvas: { hidden: true } } }}
|
|
9
9
|
/>
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
### Current Project Status: _Proof of Concept_
|
|
12
|
+
|
|
13
|
+
Browse example stories now by navigating to them in the sidebar.
|
|
14
|
+
View their code in the `src/stories` directory to learn how they work.
|
|
13
15
|
|
|
14
|
-
<div style={{paddingTop: '40px'}}>
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
16
|
+
<div style={{ paddingTop: '40px', color: 'inherit' }}>
|
|
17
|
+
<h2
|
|
18
|
+
style={{
|
|
19
|
+
fontFamily: 'Overpass',
|
|
20
|
+
fontSize: '56.95px',
|
|
21
|
+
fontWeight: '700',
|
|
22
|
+
marginBottom: '40px',
|
|
23
|
+
border: 'none',
|
|
24
|
+
}}
|
|
25
|
+
>
|
|
26
|
+
ILO Design System
|
|
27
|
+
</h2>
|
|
28
|
+
<h3
|
|
29
|
+
style={{ fontFamily: 'Overpass', fontSize: '45.56px', fontWeight: '700', marginBottom: '40px' }}
|
|
30
|
+
>
|
|
31
|
+
Twig Component Library 0.2.3
|
|
32
|
+
</h3>
|
|
33
|
+
<a
|
|
34
|
+
class="ilo--button ilo--button--large ilo--button--primary optionalclass"
|
|
35
|
+
href="/docs/introduction--page"
|
|
36
|
+
target="true"
|
|
37
|
+
rel="noopener noreferrer"
|
|
38
|
+
style={{ color: 'inherit', marginRight: '20px' }}
|
|
39
|
+
>
|
|
40
|
+
<span class="link__label">Get started</span>
|
|
41
|
+
</a>
|
|
42
|
+
<a
|
|
43
|
+
class="ilo--button ilo--button--large ilo--button--primary optionalclass"
|
|
44
|
+
href="https://github.com/international-labour-organization/designsystem"
|
|
45
|
+
target="true"
|
|
46
|
+
rel="noopener noreferrer"
|
|
47
|
+
style={{ color: 'inherit', marginRight: '20px' }}
|
|
48
|
+
>
|
|
49
|
+
<span class="link__label">Follow on Github</span>
|
|
50
|
+
</a>
|
|
51
|
+
<a
|
|
52
|
+
class="ilo--button ilo--button--large ilo--button--primary optionalclass"
|
|
53
|
+
href="https://brand.ilo.org"
|
|
54
|
+
target="true"
|
|
55
|
+
rel="noopener noreferrer"
|
|
56
|
+
style={{ color: 'inherit', marginRight: '20px' }}
|
|
57
|
+
>
|
|
58
|
+
<span class="link__label">See Design Docs</span>
|
|
59
|
+
</a>
|
|
60
|
+
<a
|
|
61
|
+
class="ilo--button ilo--button--large ilo--button--primary optionalclass"
|
|
62
|
+
href="https://ilo-ui-react.netlify.app"
|
|
63
|
+
target="true"
|
|
64
|
+
rel="noopener noreferrer"
|
|
65
|
+
style={{ color: 'inherit', marginRight: '20px' }}
|
|
66
|
+
>
|
|
67
|
+
<span class="link__label">ILO Design System for React</span>
|
|
68
|
+
</a>
|
|
24
69
|
</div>
|