@sebgroup/green-core 3.6.3 → 3.8.0

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.
Files changed (81) hide show
  1. package/assets/icons/regular/arrows-repeat-right.svg +1 -0
  2. package/assets/icons/regular/asterisk.svg +1 -1
  3. package/assets/icons/regular/calendar-repeat.svg +3 -0
  4. package/assets/icons/solid/arrows-repeat-right.svg +2 -0
  5. package/assets/icons/solid/calendar-repeat.svg +3 -0
  6. package/assets/icons/solid/credit-card-add.svg +2 -2
  7. package/components/avatar/avatar-group/avatar-group.component.d.ts +21 -0
  8. package/components/avatar/avatar-group/avatar-group.component.js +32 -0
  9. package/components/avatar/avatar-group/avatar-group.d.ts +2 -0
  10. package/components/avatar/avatar-group/avatar-group.js +6 -0
  11. package/components/avatar/avatar-group/avatar-group.styles.d.ts +2 -0
  12. package/components/avatar/avatar-group/avatar-group.styles.js +21 -0
  13. package/components/avatar/avatar-group/index.d.ts +1 -0
  14. package/components/avatar/avatar-group/index.js +1 -0
  15. package/components/avatar/avatar.component.d.ts +51 -0
  16. package/components/avatar/avatar.component.js +100 -0
  17. package/components/avatar/avatar.d.ts +2 -0
  18. package/components/avatar/avatar.js +6 -0
  19. package/components/avatar/avatar.styles.d.ts +2 -0
  20. package/components/avatar/avatar.styles.js +124 -0
  21. package/components/avatar/index.d.ts +2 -0
  22. package/components/avatar/index.js +2 -0
  23. package/components/details/details.styles.js +0 -1
  24. package/components/icon/icons/arrows-repeat-right.component.d.ts +18 -0
  25. package/components/icon/icons/arrows-repeat-right.component.js +25 -0
  26. package/components/icon/icons/arrows-repeat-right.d.ts +2 -0
  27. package/components/icon/icons/arrows-repeat-right.js +6 -0
  28. package/components/icon/icons/asterisk.component.js +1 -1
  29. package/components/icon/icons/calendar-repeat.component.d.ts +18 -0
  30. package/components/icon/icons/calendar-repeat.component.js +25 -0
  31. package/components/icon/icons/calendar-repeat.d.ts +2 -0
  32. package/components/icon/icons/calendar-repeat.js +6 -0
  33. package/components/icon/icons/credit-card-add.component.js +1 -1
  34. package/components/icon/icons/index.d.ts +2 -0
  35. package/components/icon/icons/index.js +2 -0
  36. package/components/icon/icons/pure.d.ts +2 -0
  37. package/components/icon/icons/pure.js +2 -0
  38. package/components/index.d.ts +1 -0
  39. package/components/index.js +1 -0
  40. package/custom-elements.json +12273 -9763
  41. package/gds-element.js +1 -1
  42. package/generated/mcp/avatar/angular.md +17 -0
  43. package/generated/mcp/avatar/api.md +49 -0
  44. package/generated/mcp/avatar/guidelines.md +40 -0
  45. package/generated/mcp/avatar/index.json +9 -0
  46. package/generated/mcp/avatar/react.md +17 -0
  47. package/generated/mcp/avatar-group/angular.md +17 -0
  48. package/generated/mcp/avatar-group/api.md +38 -0
  49. package/generated/mcp/avatar-group/index.json +8 -0
  50. package/generated/mcp/avatar-group/react.md +17 -0
  51. package/generated/mcp/components.json +26 -1
  52. package/generated/mcp/concepts/architecture.md +40 -5
  53. package/generated/mcp/guides/installing.md +10 -69
  54. package/generated/mcp/icon-arrows-repeat-right/angular.md +15 -0
  55. package/generated/mcp/icon-arrows-repeat-right/api.md +31 -0
  56. package/generated/mcp/icon-arrows-repeat-right/index.json +8 -0
  57. package/generated/mcp/icon-arrows-repeat-right/react.md +15 -0
  58. package/generated/mcp/icon-calendar-repeat/angular.md +15 -0
  59. package/generated/mcp/icon-calendar-repeat/api.md +31 -0
  60. package/generated/mcp/icon-calendar-repeat/index.json +8 -0
  61. package/generated/mcp/icon-calendar-repeat/react.md +15 -0
  62. package/generated/mcp/icons.json +25 -1
  63. package/generated/mcp/index.json +1 -1
  64. package/generated/mcp/switch/guidelines.md +2 -2
  65. package/generated/mcp/tokens.json +1 -1
  66. package/generated/react/avatar/index.d.ts +681 -0
  67. package/generated/react/avatar/index.js +14 -0
  68. package/generated/react/avatar-group/index.d.ts +671 -0
  69. package/generated/react/avatar-group/index.js +14 -0
  70. package/generated/react/card-pattern-01/index.d.ts +1 -1
  71. package/generated/react/icons/icon-arrows-repeat-right/index.d.ts +672 -0
  72. package/generated/react/icons/icon-arrows-repeat-right/index.js +16 -0
  73. package/generated/react/icons/icon-calendar-repeat/index.d.ts +672 -0
  74. package/generated/react/icons/icon-calendar-repeat/index.js +16 -0
  75. package/generated/react/index.d.ts +11 -7
  76. package/generated/react/index.js +11 -7
  77. package/package.json +7 -1
  78. package/patterns/card-pattern-01/card-pattern-01.component.js +0 -1
  79. package/pure.d.ts +2 -0
  80. package/pure.js +2 -0
  81. package/utils/helpers/custom-element-scoping.js +1 -1
package/gds-element.js CHANGED
@@ -16,7 +16,7 @@ class GdsElement extends LitElement {
16
16
  /**
17
17
  * The semantic version of this element. Can be used for troubleshooting to verify the version being used.
18
18
  */
19
- this.semanticVersion = "3.6.3";
19
+ this.semanticVersion = "3.8.0";
20
20
  this.syncFirstRender = false;
21
21
  this._isUsingTransitionalStyles = false;
22
22
  this._dynamicStylesController = new DynamicStylesController(this);
@@ -0,0 +1,17 @@
1
+ # gds-avatar - Angular
2
+
3
+ ## Import
4
+
5
+ ```typescript
6
+ import { GdsAvatarComponent } from '@sebgroup/green-core-ng'
7
+ ```
8
+
9
+ ## Usage
10
+
11
+ Use the component in your Angular templates:
12
+
13
+ ```html
14
+ <gds-avatar>
15
+ <!-- content -->
16
+ </gds-avatar>
17
+ ```
@@ -0,0 +1,49 @@
1
+ # gds-avatar
2
+
3
+ `gds-avatar` is a visual element used to represent a user or entity.
4
+ It supports displaying an image, slotted text content, or a fallback icon.
5
+
6
+ **Class**: `GdsAvatar`
7
+
8
+ **Tag**: `<gds-avatar>`
9
+
10
+
11
+ ## Properties
12
+
13
+ > Some properties accept design token names. Use `get_tokens` with the appropriate category to discover valid token names and their resolved values.
14
+
15
+ | Name | Type | Default | Description |
16
+ |------|------|---------|-------------|
17
+ | `src` | `string` | `-` | Image URL to display inside the avatar. When set, an `<img>` is rendered directly in the shadow DOM. |
18
+ | `alt` | `string` | `-` | Alt text for the image when using the `src` property. |
19
+ | `size` | `'xs' \| 's' \| 'm' \| 'l'` | `-` | The size of the avatar. |
20
+ | `shape` | `'circular' \| 'square'` | `-` | The shape of the avatar. |
21
+ | `level` | `GdsColorLevel` | `-` | The color level used when resolving color tokens for style expression properties. |
22
+ | `background` | `string \| undefined` | `-` | Style Expression Property that controls the `background` color of the avatar shape. Only accepts color tokens and optional transparency values. |
23
+ | `color` | `string \| undefined` | `-` | Style Expression Property that controls the text/icon `color` of the avatar. Accepts content color tokens and optional transparency values. |
24
+ | `width` | `string \| undefined` | `-` | Style Expression Property that controls the `width` property. Supports space tokens and all valid CSS `width` values. |
25
+ | `'min-width'` | `string \| undefined` | `-` | Style Expression Property that controls the `min-width` property. Supports space tokens and all valid CSS `min-width` values. |
26
+ | `'max-width'` | `string \| undefined` | `-` | Style Expression Property that controls the `max-width` property. Supports space tokens and all valid CSS `max-width` values. |
27
+ | `'inline-size'` | `string \| undefined` | `-` | Style Expression Property that controls the `inline-size` property. Supports space tokens and all valid CSS `inline-size` values |
28
+ | `'min-inline-size'` | `string \| undefined` | `-` | Style Expression Property that controls the `min-inline-size` property. Supports space tokens and all valid CSS `min-inline-size` values. |
29
+ | `'max-inline-size'` | `string \| undefined` | `-` | Style Expression Property that controls the `max-inline-size` property. Supports space tokens and all valid CSS `max-inline-size` values. |
30
+ | `margin` | `string \| undefined` | `-` | Style Expression Property that controls the `margin` property. Only accepts space tokens. |
31
+ | `'margin-inline'` | `string \| undefined` | `-` | Style Expression Property that controls the `margin-inline` property. Only accepts space tokens. |
32
+ | `'margin-block'` | `string \| undefined` | `-` | Style Expression Property that controls the `margin-block` property. Only accepts space tokens. |
33
+ | `'align-self'` | `string \| undefined` | `-` | Style Expression Property that controls the `align-self` property. Supports all valid CSS `align-self` values. |
34
+ | `'justify-self'` | `string \| undefined` | `-` | Style Expression Property that controls the `justify-self` property. Supports all valid CSS `justify-self` values. |
35
+ | `'place-self'` | `string \| undefined` | `-` | Style Expression Property that controls the `place-self` property. Supports all valid CSS `place-self` values. |
36
+ | `'grid-column'` | `string \| undefined` | `-` | Style Expression Property that controls the `grid-column` property. Supports all valid CSS grid-column values. Documentation: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-column |
37
+ | `'grid-row'` | `string \| undefined` | `-` | Style Expression Property that controls the `grid-row` property. Supports all valid CSS `grid-row` values. |
38
+ | `'grid-area'` | `string \| undefined` | `-` | Style Expression Property that controls the `grid-area` property. Supports all valid CSS `grid-area` values. |
39
+ | `flex` | `string \| undefined` | `-` | Style Expression Property that controls the `flex` property. Supports all valid CSS `flex` values. |
40
+ | `order` | `string \| undefined` | `-` | Style Expression Property that controls the `order` property. Supports all valid CSS `order` values. |
41
+ | `syncFirstRender` | `boolean` | `-` | Force the element to perform a synchronous first render and apply style expression properties in `connectedCallback`. This guarantees that the child DOM always remains projected in DOM, since the element will attach the shadowRoot and run the first render pass in the same event loop cycle, and that declarative layout will be applied once slotted DOM is projected. Note: This will cause the first render pass to be blocking. Use sparingly and only when necessary, such as when the element needs to be measured synchronously after being added to the DOM. |
42
+
43
+
44
+ ## Slots
45
+
46
+ | Name | Description |
47
+ |------|-------------|
48
+ | `(default)` | Default slot for avatar content (`<img>` or short text) |
49
+ | `badge` | Optional slot rendered in the top-right corner. Use a `gds-badge` here. |
@@ -0,0 +1,40 @@
1
+ # Avatar
2
+
3
+ An avatar represents a user, entity, or object. It is typically displayed as an image, initials, or icon, and helps identify ownership, participation, or presence in the interface.
4
+
5
+
6
+ ## Overview
7
+
8
+ ### Usage
9
+
10
+ Use an avatar when you need to represent a user, such as in lists, messages, or account-related contexts. It provides quick visual recognition and helps users understand who is involved in a specific action or piece of content. Avatars are especially useful in collaborative or communication-heavy interfaces where multiple people are present.
11
+
12
+ ### Variants
13
+
14
+ The avatar comes in two shapes:
15
+
16
+ - **Circular**
17
+ Used in more prominent or personal contexts, such as the top header or profile-related areas.
18
+ - **Squared**
19
+ Used to represent products, accounts, or organizations. This includes cases like specific account types, funds, or company logos.
20
+
21
+
22
+
23
+ ### Sizes
24
+
25
+ The avatar is available in four sizes:
26
+
27
+ - **XS**
28
+ - **S**
29
+ - **M**
30
+ - **L**
31
+
32
+
33
+
34
+ ### Grouped avatars
35
+
36
+ Avatars can be grouped to represent multiple users, for example in shared ownership or collaborative contexts. The avatars are displayed in a horizontal stack with a slight overlap to save space and create a cohesive visual unit.
37
+
38
+ To maintain clarity, a maximum of three avatars should be visible at the same time. If more users are included, the remaining count is shown as a “+X” indicator, such as “+2”.
39
+
40
+
@@ -0,0 +1,9 @@
1
+ {
2
+ "name": "gds-avatar",
3
+ "files": {
4
+ "api": "api.md",
5
+ "guidelines": "guidelines.md",
6
+ "angular": "angular.md",
7
+ "react": "react.md"
8
+ }
9
+ }
@@ -0,0 +1,17 @@
1
+ # gds-avatar - React
2
+
3
+ ## Import
4
+
5
+ ```typescript
6
+ import { GdsAvatar } from '@sebgroup/green-core/react'
7
+ ```
8
+
9
+ ## Usage
10
+
11
+ Use the component as a React JSX element:
12
+
13
+ ```tsx
14
+ <GdsAvatar>
15
+ {/* content */}
16
+ </GdsAvatar>
17
+ ```
@@ -0,0 +1,17 @@
1
+ # gds-avatar-group - Angular
2
+
3
+ ## Import
4
+
5
+ ```typescript
6
+ import { GdsAvatarGroupComponent } from '@sebgroup/green-core-ng'
7
+ ```
8
+
9
+ ## Usage
10
+
11
+ Use the component in your Angular templates:
12
+
13
+ ```html
14
+ <gds-avatar-group>
15
+ <!-- content -->
16
+ </gds-avatar-group>
17
+ ```
@@ -0,0 +1,38 @@
1
+ # gds-avatar-group
2
+
3
+ `gds-avatar-group` stacks multiple avatars with an overlapping ring cutout effect.
4
+
5
+ Accessibility:
6
+ - Exposes `role="group"` by default.
7
+ - Provide an `aria-label` (for example `aria-label="Authors"`) to describe the group context.
8
+
9
+ **Class**: `GdsAvatarGroup`
10
+
11
+ **Tag**: `<gds-avatar-group>`
12
+
13
+
14
+ ## Properties
15
+
16
+ > Some properties accept design token names. Use `get_tokens` with the appropriate category to discover valid token names and their resolved values.
17
+
18
+ | Name | Type | Default | Description |
19
+ |------|------|---------|-------------|
20
+ | `margin` | `string \| undefined` | `-` | Style Expression Property that controls the `margin` property. Only accepts space tokens. |
21
+ | `'margin-inline'` | `string \| undefined` | `-` | Style Expression Property that controls the `margin-inline` property. Only accepts space tokens. |
22
+ | `'margin-block'` | `string \| undefined` | `-` | Style Expression Property that controls the `margin-block` property. Only accepts space tokens. |
23
+ | `'align-self'` | `string \| undefined` | `-` | Style Expression Property that controls the `align-self` property. Supports all valid CSS `align-self` values. |
24
+ | `'justify-self'` | `string \| undefined` | `-` | Style Expression Property that controls the `justify-self` property. Supports all valid CSS `justify-self` values. |
25
+ | `'place-self'` | `string \| undefined` | `-` | Style Expression Property that controls the `place-self` property. Supports all valid CSS `place-self` values. |
26
+ | `'grid-column'` | `string \| undefined` | `-` | Style Expression Property that controls the `grid-column` property. Supports all valid CSS grid-column values. Documentation: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-column |
27
+ | `'grid-row'` | `string \| undefined` | `-` | Style Expression Property that controls the `grid-row` property. Supports all valid CSS `grid-row` values. |
28
+ | `'grid-area'` | `string \| undefined` | `-` | Style Expression Property that controls the `grid-area` property. Supports all valid CSS `grid-area` values. |
29
+ | `flex` | `string \| undefined` | `-` | Style Expression Property that controls the `flex` property. Supports all valid CSS `flex` values. |
30
+ | `order` | `string \| undefined` | `-` | Style Expression Property that controls the `order` property. Supports all valid CSS `order` values. |
31
+ | `syncFirstRender` | `boolean` | `-` | Force the element to perform a synchronous first render and apply style expression properties in `connectedCallback`. This guarantees that the child DOM always remains projected in DOM, since the element will attach the shadowRoot and run the first render pass in the same event loop cycle, and that declarative layout will be applied once slotted DOM is projected. Note: This will cause the first render pass to be blocking. Use sparingly and only when necessary, such as when the element needs to be measured synchronously after being added to the DOM. |
32
+
33
+
34
+ ## Slots
35
+
36
+ | Name | Description |
37
+ |------|-------------|
38
+ | `(default)` | Slot for `gds-avatar` elements |
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "gds-avatar-group",
3
+ "files": {
4
+ "api": "api.md",
5
+ "angular": "angular.md",
6
+ "react": "react.md"
7
+ }
8
+ }
@@ -0,0 +1,17 @@
1
+ # gds-avatar-group - React
2
+
3
+ ## Import
4
+
5
+ ```typescript
6
+ import { GdsAvatarGroup } from '@sebgroup/green-core/react'
7
+ ```
8
+
9
+ ## Usage
10
+
11
+ Use the component as a React JSX element:
12
+
13
+ ```tsx
14
+ <GdsAvatarGroup>
15
+ {/* content */}
16
+ </GdsAvatarGroup>
17
+ ```
@@ -1,5 +1,5 @@
1
1
  {
2
- "generatedAt": "2026-04-29T15:59:02.891Z",
2
+ "generatedAt": "2026-05-04T08:15:17.615Z",
3
3
  "components": [
4
4
  {
5
5
  "name": "gds-alert",
@@ -14,6 +14,31 @@
14
14
  "react"
15
15
  ]
16
16
  },
17
+ {
18
+ "name": "gds-avatar",
19
+ "tagName": "gds-avatar",
20
+ "className": "GdsAvatar",
21
+ "description": "`gds-avatar` is a visual element used to represent a user or entity.\nIt supports displaying an image, slotted text content, or a fallback icon.",
22
+ "path": "avatar/",
23
+ "files": [
24
+ "api",
25
+ "guidelines",
26
+ "angular",
27
+ "react"
28
+ ]
29
+ },
30
+ {
31
+ "name": "gds-avatar-group",
32
+ "tagName": "gds-avatar-group",
33
+ "className": "GdsAvatarGroup",
34
+ "description": "`gds-avatar-group` stacks multiple avatars with an overlapping ring cutout effect.\n\nAccessibility:\n- Exposes `role=\"group\"` by default.\n- Provide an `aria-label` (for example `aria-label=\"Authors\"`) to describe the group context.",
35
+ "path": "avatar-group/",
36
+ "files": [
37
+ "api",
38
+ "angular",
39
+ "react"
40
+ ]
41
+ },
17
42
  {
18
43
  "name": "gds-backdrop",
19
44
  "tagName": "gds-backdrop",
@@ -1,11 +1,46 @@
1
+ import '../../components/dialog/dialog'
2
+ import '../../components/img/img'
3
+ import '../../components/theme/theme'
4
+
5
+ import archImage from './arch-overview.png';
6
+
1
7
  # Green architecture
2
8
 
3
- Green Core is the foundation of the Green Design System, and consists of a set of Web Components that underpins the React and Angular components that are typically used when building applications.
9
+ Green Core is the foundation of the Green Design System, and consists of a set of framework agnostic Web Components. These components can be used in any front-end framework, or without a framework, for example rendered on the server side. The Web Components are built using the Lit library, but this is an implementation detail that is typically not exposed to consumers, and consumers are not expected or required to use Lit.
10
+
11
+ The Green architecture roughly looks like this:
12
+
13
+ <gds-theme>
14
+ <gds-dialog heading="Architecture overview" width="95vw" height="95vh" scrollable><gds-link slot="trigger"><gds-img src={archImage} width="800px"></gds-img></gds-link><img></gds-dialog>
15
+ </gds-theme>
16
+
17
+ The dashed curvy lines illustrate roughly how different roles, like designers and developers, interact with the system, while the straight black lines illustrate actual code flows.
18
+
19
+ Public API Boundry before Web Components means that anything that is lower level than a complete component is considered internal to the framework and should not be used by consumers. We only guarantee semantic versioning for the public api. Anything that is considered internal could change in breaking ways in any release.
20
+
21
+ ## Web Components
22
+
23
+ All the components in Green Core are implemented as [Web Components](https://developer.mozilla.org/en-US/docs/Web/API/Web_components) using the [Lit](https://lit.dev/) library. The components makes use of [Shadow DOM](https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_shadow_DOM) to encapsulate their styles and behavior, so they won't interfere with the rest of your application.
24
+
25
+ The reason the components use Shadow DOM is twofold:
26
+
27
+ - Provide style encapsulation to protect against styling conflicts which can occur in a micro-frontend environment
28
+ - Put constraints on the design itself. When a feature is missing, it is important that it is implemented in the Design System and designed according to brand guidelines following all the principles that are in place. If every team were to add their own tweaks, consistency becomes very difficult to maintain. So while this restriction can feel like a limitation at times, it serves an important purpose in the larger context of the Design System.
29
+
30
+ Internally, these Web Components are often composed of a hierarchy of smaller Web Componentes that defines the various atomic pieces that make up a component. These atomic parts could either be other public components from the library, or they could be private components that are not exposed to consumers. In Green Core, those private components are called 'primitives'. This internal composition serves to both make the library more efficient by rusing code, but also as a consistency constraint: It ensures that the design of these atoms does not accidentally drift appart over time.
31
+
32
+ ## Fonts
33
+
34
+ Fonts are not imported automatically in the Core library, so applications need to add this separately. There are plenty of strategies for how static files like fonts are handled and hosted, and often they are already loaded and avaible in the shells.
35
+
36
+ The CSS `font-family` property is inherited though shadow DOM boundaries, so the components will render whichever font is used in the parent document.
37
+
38
+ ## Wrappers
4
39
 
5
- The Web Components are themselves often composed of a hierarchy of smaller Web Componentes, called primitives, that defines the various atomic pieces that make up a component.
40
+ Since React and Angular are the most commmonly used frameworks at SEB, we generate dedicated wrapper components for those frameworks, so that components can be used in a more idiomatic way, side-stepping some of the common comporomises associated with using plain web components directly.
6
41
 
7
- The Green architecture roughly looks something like this:
42
+ The wrappers are generated automatically based on Custom Elements Schema.
8
43
 
9
- Of course, design tokens, markup and styles can be used on all levels of composition, but are only drawn at the top here in order to simplify the diagram.
44
+ ## MCP / CLI
10
45
 
11
- Public API Boundry before Web Components means that anything that is lower level than a complete component is considered internal to the framework and should not be used by consumers. We only guarantee semantic versioning for the public api. Anything that is considered internal could change in breaking ways in any release.
46
+ From the same schematic data, context docs for AI coding agents are also generated. This is included in the Core package as a local MCP server as well as a command line interface (CLI)
@@ -1,17 +1,15 @@
1
- ## Install
1
+ # Getting started
2
2
 
3
- ```bash
4
- yarn install @sebgroup/green-core
3
+ The components in Green Core are standard web components, so you can use them with or without any framework, but since most consumers will be using Angular or React, idiomatic wrappers are provided for those frameworks.
5
4
 
6
- # or use npm
7
- npm install @sebgroup/green-core
8
- ```
5
+ ### [Go here for Angular](/docs/guides-angular--docs)
6
+ ### [Go here for React](/docs/guides-react--docs)
9
7
 
10
- ## Use
8
+ Keep reading below for other usages
11
9
 
12
- The components in Green Core are standard web components, so you can use them with or without any framework, but since most consumers will be useing Angular or React, some extra convenience features are provided for these frameworks.
10
+ ### Defining and tree-shaking
13
11
 
14
- Web components needs to be defined in the custom elements registry before they can be used, and there are a few different ways of handling this:
12
+ Web components needs to be defined in the custom elements registry before they can be used, and there are a few different ways to handle this.
15
13
 
16
14
  - Use a sub-path side-effect import:
17
15
  ```ts
@@ -34,8 +32,10 @@ Web components needs to be defined in the custom elements registry before they c
34
32
  ```
35
33
  This will import all components and icons, and register them in the custom elements registry. This is not tree-shakable and not recommended for production use, as it will include everything in your bundle (~700kb).
36
34
 
35
+ When using Green with Angular or React, the importing and defining is done automatically in a tree-shakable way.
36
+
37
37
  ### Scoping
38
- Finally, you need to handle [scoping](/docs/concepts-scoping--docs) of the element names. This is done automatically for React, and for Lit and Angular we provide simple solutions (see below), but if you are using the components in some other way, you need to set up your own solution or disable scoping.
38
+ Scoping is done automatically for React, and for Lit and Angular we provide simple solutions (see below for Lit, and link above for Angular), but if you are using the components in some other way, you need to set up your own solution or disable scoping.
39
39
 
40
40
  For POCs and prototyping, you can disable scoping by setting the `GDS_DISABLE_VERSIONED_ELEMENTS` global variable to `true` before importing any components. This will make all components use their original element names (e.g. `<gds-button>` instead of `<gds-button-abc123>`).
41
41
 
@@ -48,65 +48,6 @@ For POCs and prototyping, you can disable scoping by setting the `GDS_DISABLE_VE
48
48
 
49
49
  ***Warning:** Never disable scoping for a microfrontend or production application, as this will cause conflicts with other applications using the same components.*
50
50
 
51
- ## Using with Angular
52
-
53
- Angular has support for using web components directly. To enable this support, you need to do the following:
54
-
55
- - Add the `CUSTOM_ELEMENTS_SCHEMA` in the module where you plan to use the components.
56
- - Provide `NggCoreRenderer` or import `NggCoreWrapperModule` to handle Green Core's element name scoping.
57
-
58
- The renderer is more convenient, but the wrapper module can provide more explicit control.
59
-
60
- For a more detailed break-down of how to use Green Core components with Angular, and some additional information about use with the router, see the full [Angular guide](/docs/guides-angular--docs).
61
-
62
- Below is a minimal example using the renderer.
63
-
64
- **In your module:**
65
- ```ts
66
-
67
- @NgModule({
68
- // Provides `NggCoreRenderer` as a custom renderer
69
- providers: [provideCoreRenderer(getScopedTagName)],
70
- // CUSTOM_ELEMENTS_SCHEMA is still needed
71
- schemas: [CUSTOM_ELEMENTS_SCHEMA],
72
- })
73
- ```
74
-
75
- If you need animations, use `provideCoreRendererWithAnimations()` instead, and make sure to import `BrowserAnimationsModule` too.
76
-
77
- **In your component:**
78
-
79
- ```ts
80
- import '@sebgroup/green-core/components/button/index.js'
81
- ```
82
-
83
- **In your template:**
84
- ```html
85
- <gds-button (click)="handleEvent($event)">Click me!</gds-button>
86
- ```
87
-
88
- ## Using with React
89
-
90
- React 19 has built-in support for web components, and Green Core automatically generates typed JSX wrappers for all components and icons. This means you can use the components directly in your JSX templates.
91
-
92
- For example:
93
-
94
- ```ts
95
-
96
- ```
97
-
98
- Then, in your JSX template:
99
-
100
- ```tsx
101
- console.log('Hello')}>
102
- Click me!
103
-
104
- ```
105
-
106
- These imports are tree-shakable and the underlying web components will be defined automatically on first use.
107
-
108
- For full details on how to use Green Core with React, and how to handle older React versions (pre 19), see the full [React guide](/docs/guides-react--docs).
109
-
110
51
  ## Using with Lit
111
52
 
112
53
  The components in Green core rely on the Lit framework for their internal implementations, and it is of course also possible to use the components in applications or other components using Lit.
@@ -0,0 +1,15 @@
1
+ # gds-icon-arrows-repeat-right - Angular
2
+
3
+ ## Import
4
+
5
+ ```typescript
6
+ import { IconArrowsRepeatRightComponent } from '@sebgroup/green-core-ng'
7
+ ```
8
+
9
+ ## Usage
10
+
11
+ Use the component in your Angular templates:
12
+
13
+ ```html
14
+ <gds-icon-arrows-repeat-right></gds-icon-arrows-repeat-right>
15
+ ```
@@ -0,0 +1,31 @@
1
+ # gds-icon-arrows-repeat-right
2
+
3
+ **Class**: `IconArrowsRepeatRight`
4
+
5
+ **Tag**: `<gds-icon-arrows-repeat-right>`
6
+
7
+
8
+ ## Properties
9
+
10
+ > Some properties accept design token names. Use `get_tokens` with the appropriate category to discover valid token names and their resolved values.
11
+
12
+ | Name | Type | Default | Description |
13
+ |------|------|---------|-------------|
14
+ | `margin` | `string \| undefined` | `-` | Style Expression Property that controls the `margin` property. Only accepts space tokens. |
15
+ | `'margin-inline'` | `string \| undefined` | `-` | Style Expression Property that controls the `margin-inline` property. Only accepts space tokens. |
16
+ | `'margin-block'` | `string \| undefined` | `-` | Style Expression Property that controls the `margin-block` property. Only accepts space tokens. |
17
+ | `'align-self'` | `string \| undefined` | `-` | Style Expression Property that controls the `align-self` property. Supports all valid CSS `align-self` values. |
18
+ | `'justify-self'` | `string \| undefined` | `-` | Style Expression Property that controls the `justify-self` property. Supports all valid CSS `justify-self` values. |
19
+ | `'place-self'` | `string \| undefined` | `-` | Style Expression Property that controls the `place-self` property. Supports all valid CSS `place-self` values. |
20
+ | `'grid-column'` | `string \| undefined` | `-` | Style Expression Property that controls the `grid-column` property. Supports all valid CSS grid-column values. Documentation: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-column |
21
+ | `'grid-row'` | `string \| undefined` | `-` | Style Expression Property that controls the `grid-row` property. Supports all valid CSS `grid-row` values. |
22
+ | `'grid-area'` | `string \| undefined` | `-` | Style Expression Property that controls the `grid-area` property. Supports all valid CSS `grid-area` values. |
23
+ | `flex` | `string \| undefined` | `-` | Style Expression Property that controls the `flex` property. Supports all valid CSS `flex` values. |
24
+ | `order` | `string \| undefined` | `-` | Style Expression Property that controls the `order` property. Supports all valid CSS `order` values. |
25
+ | `size` | `string \| undefined` | `-` | This property allow you to set the size of the icon with the token and custom values. If not provided, uses the icon's default size. The size is a shorthand for setting both width and height at once. |
26
+ | `solid` | `boolean` | `-` | When set to true, the solid version of the icon is displayed. When set to false or not provided, the regular version of the icon is displayed. |
27
+ | `stroke` | `number \| undefined` | `-` | When set to true, you can apply custom stroke width to the icon. |
28
+ | `level` | `GdsColorLevel` | `-` | The level of the icon is used to resolve the color tokens from the corresponding level. Check the [Color System documentation page](./?path=/docs/style-colors--docs) for more information. Default for `gds-icon-*` is level 2. |
29
+ | `color` | `string \| undefined` | `-` | Style Expression Property that controls the `color` property. Only accepts color tokens and an optional transparency value, in the format tokenName/transparency. ```html <gds-icon-ai color="neutral-01/0.2"></gds-icon-ai> ``` |
30
+ | `label` | `string` | `-` | This property allow you to set the accessible label of the icon. If not provided, the icon will be presentational. |
31
+ | `syncFirstRender` | `boolean` | `-` | Force the element to perform a synchronous first render and apply style expression properties in `connectedCallback`. This guarantees that the child DOM always remains projected in DOM, since the element will attach the shadowRoot and run the first render pass in the same event loop cycle, and that declarative layout will be applied once slotted DOM is projected. Note: This will cause the first render pass to be blocking. Use sparingly and only when necessary, such as when the element needs to be measured synchronously after being added to the DOM. |
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "gds-icon-arrows-repeat-right",
3
+ "files": {
4
+ "api": "api.md",
5
+ "angular": "angular.md",
6
+ "react": "react.md"
7
+ }
8
+ }
@@ -0,0 +1,15 @@
1
+ # gds-icon-arrows-repeat-right - React
2
+
3
+ ## Import
4
+
5
+ ```typescript
6
+ import { IconArrowsRepeatRight } from '@sebgroup/green-core/react'
7
+ ```
8
+
9
+ ## Usage
10
+
11
+ Use the component as a React JSX element:
12
+
13
+ ```tsx
14
+ <GdsIconArrowsRepeatRight />
15
+ ```
@@ -0,0 +1,15 @@
1
+ # gds-icon-calendar-repeat - Angular
2
+
3
+ ## Import
4
+
5
+ ```typescript
6
+ import { IconCalendarRepeatComponent } from '@sebgroup/green-core-ng'
7
+ ```
8
+
9
+ ## Usage
10
+
11
+ Use the component in your Angular templates:
12
+
13
+ ```html
14
+ <gds-icon-calendar-repeat></gds-icon-calendar-repeat>
15
+ ```
@@ -0,0 +1,31 @@
1
+ # gds-icon-calendar-repeat
2
+
3
+ **Class**: `IconCalendarRepeat`
4
+
5
+ **Tag**: `<gds-icon-calendar-repeat>`
6
+
7
+
8
+ ## Properties
9
+
10
+ > Some properties accept design token names. Use `get_tokens` with the appropriate category to discover valid token names and their resolved values.
11
+
12
+ | Name | Type | Default | Description |
13
+ |------|------|---------|-------------|
14
+ | `margin` | `string \| undefined` | `-` | Style Expression Property that controls the `margin` property. Only accepts space tokens. |
15
+ | `'margin-inline'` | `string \| undefined` | `-` | Style Expression Property that controls the `margin-inline` property. Only accepts space tokens. |
16
+ | `'margin-block'` | `string \| undefined` | `-` | Style Expression Property that controls the `margin-block` property. Only accepts space tokens. |
17
+ | `'align-self'` | `string \| undefined` | `-` | Style Expression Property that controls the `align-self` property. Supports all valid CSS `align-self` values. |
18
+ | `'justify-self'` | `string \| undefined` | `-` | Style Expression Property that controls the `justify-self` property. Supports all valid CSS `justify-self` values. |
19
+ | `'place-self'` | `string \| undefined` | `-` | Style Expression Property that controls the `place-self` property. Supports all valid CSS `place-self` values. |
20
+ | `'grid-column'` | `string \| undefined` | `-` | Style Expression Property that controls the `grid-column` property. Supports all valid CSS grid-column values. Documentation: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-column |
21
+ | `'grid-row'` | `string \| undefined` | `-` | Style Expression Property that controls the `grid-row` property. Supports all valid CSS `grid-row` values. |
22
+ | `'grid-area'` | `string \| undefined` | `-` | Style Expression Property that controls the `grid-area` property. Supports all valid CSS `grid-area` values. |
23
+ | `flex` | `string \| undefined` | `-` | Style Expression Property that controls the `flex` property. Supports all valid CSS `flex` values. |
24
+ | `order` | `string \| undefined` | `-` | Style Expression Property that controls the `order` property. Supports all valid CSS `order` values. |
25
+ | `size` | `string \| undefined` | `-` | This property allow you to set the size of the icon with the token and custom values. If not provided, uses the icon's default size. The size is a shorthand for setting both width and height at once. |
26
+ | `solid` | `boolean` | `-` | When set to true, the solid version of the icon is displayed. When set to false or not provided, the regular version of the icon is displayed. |
27
+ | `stroke` | `number \| undefined` | `-` | When set to true, you can apply custom stroke width to the icon. |
28
+ | `level` | `GdsColorLevel` | `-` | The level of the icon is used to resolve the color tokens from the corresponding level. Check the [Color System documentation page](./?path=/docs/style-colors--docs) for more information. Default for `gds-icon-*` is level 2. |
29
+ | `color` | `string \| undefined` | `-` | Style Expression Property that controls the `color` property. Only accepts color tokens and an optional transparency value, in the format tokenName/transparency. ```html <gds-icon-ai color="neutral-01/0.2"></gds-icon-ai> ``` |
30
+ | `label` | `string` | `-` | This property allow you to set the accessible label of the icon. If not provided, the icon will be presentational. |
31
+ | `syncFirstRender` | `boolean` | `-` | Force the element to perform a synchronous first render and apply style expression properties in `connectedCallback`. This guarantees that the child DOM always remains projected in DOM, since the element will attach the shadowRoot and run the first render pass in the same event loop cycle, and that declarative layout will be applied once slotted DOM is projected. Note: This will cause the first render pass to be blocking. Use sparingly and only when necessary, such as when the element needs to be measured synchronously after being added to the DOM. |
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "gds-icon-calendar-repeat",
3
+ "files": {
4
+ "api": "api.md",
5
+ "angular": "angular.md",
6
+ "react": "react.md"
7
+ }
8
+ }
@@ -0,0 +1,15 @@
1
+ # gds-icon-calendar-repeat - React
2
+
3
+ ## Import
4
+
5
+ ```typescript
6
+ import { IconCalendarRepeat } from '@sebgroup/green-core/react'
7
+ ```
8
+
9
+ ## Usage
10
+
11
+ Use the component as a React JSX element:
12
+
13
+ ```tsx
14
+ <GdsIconCalendarRepeat />
15
+ ```
@@ -1,5 +1,5 @@
1
1
  {
2
- "generatedAt": "2026-04-29T15:59:02.891Z",
2
+ "generatedAt": "2026-05-04T08:15:17.615Z",
3
3
  "icons": [
4
4
  {
5
5
  "name": "gds-icon-ai",
@@ -349,6 +349,18 @@
349
349
  "react"
350
350
  ]
351
351
  },
352
+ {
353
+ "name": "gds-icon-arrows-repeat-right",
354
+ "tagName": "gds-icon-arrows-repeat-right",
355
+ "className": "IconArrowsRepeatRight",
356
+ "description": "",
357
+ "path": "icon-arrows-repeat-right/",
358
+ "files": [
359
+ "api",
360
+ "angular",
361
+ "react"
362
+ ]
363
+ },
352
364
  {
353
365
  "name": "gds-icon-asterisk",
354
366
  "tagName": "gds-icon-asterisk",
@@ -925,6 +937,18 @@
925
937
  "react"
926
938
  ]
927
939
  },
940
+ {
941
+ "name": "gds-icon-calendar-repeat",
942
+ "tagName": "gds-icon-calendar-repeat",
943
+ "className": "IconCalendarRepeat",
944
+ "description": "",
945
+ "path": "icon-calendar-repeat/",
946
+ "files": [
947
+ "api",
948
+ "angular",
949
+ "react"
950
+ ]
951
+ },
928
952
  {
929
953
  "name": "gds-icon-calender-add",
930
954
  "tagName": "gds-icon-calender-add",
@@ -1,5 +1,5 @@
1
1
  {
2
- "generatedAt": "2026-04-29T15:59:02.891Z",
2
+ "generatedAt": "2026-05-04T08:15:17.615Z",
3
3
  "instructions": "./INSTRUCTIONS.md",
4
4
  "components": "./components.json",
5
5
  "icons": "./icons.json",