@synergy-design-system/components 1.0.0-main.6 → 1.0.0-main.8

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 (26) hide show
  1. package/README.md +144 -1
  2. package/dist/chunks/{chunk.B5LRNM2C.js → chunk.4SJKXOCV.js} +2 -2
  3. package/dist/chunks/{chunk.H2WJIJND.js → chunk.53ZDJY4Q.js} +2 -2
  4. package/dist/chunks/{chunk.H2WJIJND.js.map → chunk.53ZDJY4Q.js.map} +1 -1
  5. package/dist/chunks/{chunk.DAPEYF3L.js → chunk.5SUEJSIW.js} +3 -3
  6. package/dist/chunks/{chunk.3QEOTSBR.js → chunk.5ZMQBOV3.js} +2 -2
  7. package/dist/chunks/{chunk.KV3DM7PM.js → chunk.B7XEALID.js} +2 -2
  8. package/dist/chunks/{chunk.4JYS4LYT.js → chunk.DI6S4YNU.js} +2 -2
  9. package/dist/chunks/{chunk.XBI2LWDH.js → chunk.G3PDKNFK.js} +4 -4
  10. package/dist/components/button/button.component.js +4 -4
  11. package/dist/components/button/button.js +5 -5
  12. package/dist/components/icon/icon.component.js +2 -2
  13. package/dist/components/icon/icon.js +2 -2
  14. package/dist/components/input/input.component.js +3 -3
  15. package/dist/components/input/input.js +4 -4
  16. package/dist/components/spinner/spinner.component.js +2 -2
  17. package/dist/custom-elements.json +1 -1
  18. package/dist/synergy.js +7 -7
  19. package/dist/web-types.json +1 -1
  20. package/package.json +14 -7
  21. /package/dist/chunks/{chunk.B5LRNM2C.js.map → chunk.4SJKXOCV.js.map} +0 -0
  22. /package/dist/chunks/{chunk.DAPEYF3L.js.map → chunk.5SUEJSIW.js.map} +0 -0
  23. /package/dist/chunks/{chunk.3QEOTSBR.js.map → chunk.5ZMQBOV3.js.map} +0 -0
  24. /package/dist/chunks/{chunk.KV3DM7PM.js.map → chunk.B7XEALID.js.map} +0 -0
  25. /package/dist/chunks/{chunk.4JYS4LYT.js.map → chunk.DI6S4YNU.js.map} +0 -0
  26. /package/dist/chunks/{chunk.XBI2LWDH.js.map → chunk.G3PDKNFK.js.map} +0 -0
package/README.md CHANGED
@@ -1,6 +1,149 @@
1
1
  # @synergy-design-system/components
2
2
 
3
- Synergy Web Component library based on [shoelace](https://shoelace.style/).
3
+ This package provides the base of the Synergy Design System as native web components.
4
+ It uses [lit](https://www.lit.dev) and parts of [shoelace](https://shoelace.style/).
5
+
6
+ ## Getting started
7
+
8
+ ### 1. Package installation
9
+
10
+ Run the following steps to install the required packages.
11
+
12
+ ```bash
13
+ # Install the base library and required css files
14
+ npm install --save @synergy-design-system/components @synergy-design-system/tokens
15
+ ```
16
+
17
+ ---
18
+
19
+ ### 2. Load the design tokens
20
+
21
+ The shipped components make heavy use of design tokens, which are provided via [@synergy-design-system/tokens](https://github.com/SickDesignSystem/synergy/tree/main/packages/tokens). Make sure to follow the installation steps there for help on setting the tokens up. Usually it is enough to load the light or dark theme included there.
22
+
23
+ ---
24
+
25
+ ### 3. Define the elements
26
+
27
+ There are multiple ways to load the components:
28
+
29
+ #### Loading all available components
30
+
31
+ To make all components available, just load the main package file. It will make sure that all components and needed dependencies are loaded and available directly.
32
+
33
+ > Please keep in mind that this way of loading the components will create larger bundle sizes!
34
+
35
+ ```html
36
+ <!-- Example 1: Loading via script type module -->
37
+ <!doctype html>
38
+ <html lang="en">
39
+ <head>
40
+ <meta charset="UTF-8" />
41
+ </head>
42
+ <body>
43
+ <div id="root">
44
+ <syn-button variant="text">Button</syn-button>
45
+ <syn-input></syn-input>
46
+ </div>
47
+ <!-- As we are loading all modules, syn-button and syn-input will render correctly -->
48
+ <script type="module" src="../node_modules/@synergy-design-system/components/dist/synergy.js"></script>
49
+ </body>
50
+ </html>
51
+ ```
52
+
53
+ When using a build system, you should load the bundle in JavaScript or TypeScript directly, for example when using vite:
54
+
55
+ ```typescript
56
+ // main.ts
57
+
58
+ // Do not forget to load the design tokens!
59
+ import '@synergy-design-system/tokens/themes/light.css';
60
+
61
+ // This will load synergy.js via the exports map
62
+ import '@synergy-design-system/components';
63
+ ```
64
+
65
+ #### Loading selected components only
66
+
67
+ Use this when you need complete control about which components are loaded. This will usually lead to smaller bundle sizes, which might be preferable for your application. As a downside, you will have to remember adding missing components to your bundle.
68
+
69
+ ```html
70
+ <!-- Example 1: Loading via script type module -->
71
+ <!doctype html>
72
+ <html lang="en">
73
+ <head>
74
+ <meta charset="UTF-8" />
75
+ </head>
76
+ <body>
77
+ <div id="root">
78
+ <syn-button variant="text">Button</syn-button>
79
+ <syn-input></syn-input>
80
+ </div>
81
+ <!-- We are only loading the button, syn-input will render as an empty div! -->
82
+ <script type="module" src="../node_modules/@synergy-design-system/components/dist/components/button/button.js"></script>
83
+ </body>
84
+ </html>
85
+ ```
86
+
87
+ When using a build system, you may also load the bundle in JavaScript or TypeScript directly, for example when using vite:
88
+
89
+ ```typescript
90
+ // main.ts
91
+
92
+ // Do not forget to load the design tokens!
93
+ import '@synergy-design-system/tokens/themes/light.css';
94
+
95
+ // This will only load and define the button itself
96
+ import '@synergy-design-system/components/components/button/button.js';
97
+ ```
98
+
99
+ ---
100
+
101
+ ### 4. Using the provided types
102
+
103
+ The components are built using typescript and provide types for elements and events out of the box. These can be used for working with the dom when working in a typescript environment. You may use them by importing the needed types and using them for elements, like shown in this example:
104
+
105
+ ```typescript
106
+ // main.ts
107
+
108
+ // Do not forget to load the design tokens!
109
+ import '@synergy-design-system/tokens/themes/light.css';
110
+
111
+ // Example 1: Load the type for syn-button from the root:
112
+ import type { SynButton, SynInvalidEvent } from '@synergy-design-system/components';
113
+
114
+ // Example 2: Load the type from the syn-button dir directly.
115
+ // In this case you will have to load the event type from another file!
116
+ import type { SynButton } from '@synergy-design-system/components/components/button/button';
117
+ import type { SynInvalidEvent } from '@synergy-design-system/components/events/syn-invalid';
118
+
119
+ document.addEventListener('load', () => {
120
+ const loadedSynButtons = document.querySelectorAll<SynButton>('syn-button');
121
+
122
+ // Attach a syn-invalid event that is fired every time a button becomes invalid
123
+ Array
124
+ .from(loadedSynButtons) // Type: SynButton[]
125
+ .addEventListener('syn-invalid', (e: SynInvalidEvent) => {
126
+ console.log('Button is now invalid!', e);
127
+ });
128
+ });
129
+ ```
130
+
131
+ ---
132
+
133
+ ### 5. Add html autocompletion to VSCode (optional)
134
+
135
+ This package ships with a [custom-elements-manifest](https://github.com/webcomponents/custom-elements-manifest) that may be used to provide typings for tags. To enable code completion, please proceed the following way:
136
+
137
+ 1. Install the `@synergy-design-system/components` package.
138
+ 2. If you do **not** have a `.vscode/settings.json` file yet, create it.
139
+ 3. Add support for [vscode-custom-data](https://github.com/microsoft/vscode-custom-data) by adding the following setting to your `.vscode/settings.json`: `"html.customData": ["./node_modules/@synergy-design-system/components/dist/vscode.html-custom-data.json"]`
140
+ 4. Restart VSCode.
141
+ 5. Switch to an html (or similar) file and type `<syn`. Auto-complete now provides a list of available components along with its attributes.
142
+
143
+ > Note the path above is valid for installations using npm.
144
+ > When using another package manager, make sure to set the proper path to `vscode.html-custom-data.json`!
145
+
146
+ ---
4
147
 
5
148
  ## Local setup
6
149
 
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SynButton
3
- } from "./chunk.XBI2LWDH.js";
3
+ } from "./chunk.G3PDKNFK.js";
4
4
 
5
5
  // src/components/button/button.ts
6
6
  var button_default = SynButton;
@@ -9,4 +9,4 @@ SynButton.define("syn-button");
9
9
  export {
10
10
  button_default
11
11
  };
12
- //# sourceMappingURL=chunk.B5LRNM2C.js.map
12
+ //# sourceMappingURL=chunk.4SJKXOCV.js.map
@@ -48,7 +48,7 @@ var SynergyElement = class extends LitElement {
48
48
  };
49
49
  /* eslint-disable */
50
50
  // @ts-expect-error This is auto-injected at build time.
51
- SynergyElement.version = "1.0.0-main.6";
51
+ SynergyElement.version = "1.0.0-main.8";
52
52
  SynergyElement.dependencies = {};
53
53
  __decorateClass([
54
54
  property()
@@ -60,4 +60,4 @@ __decorateClass([
60
60
  export {
61
61
  SynergyElement
62
62
  };
63
- //# sourceMappingURL=chunk.H2WJIJND.js.map
63
+ //# sourceMappingURL=chunk.53ZDJY4Q.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/internal/synergy-element.ts"],
4
- "sourcesContent": ["// ---------------------------------------------------------------------\n// \uD83D\uDD12 AUTOGENERATED BY VENDORISM\n// Removing this comment will prevent it from being managed by it.\n// ---------------------------------------------------------------------\n\n/* eslint-disable */\nimport { LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\n\n// Match event type name strings that are registered on GlobalEventHandlersEventMap...\ntype EventTypeRequiresDetail<T> = T extends keyof GlobalEventHandlersEventMap\n ? // ...where the event detail is an object...\n GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, unknown>>\n ? // ...that is non-empty...\n GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, never>>\n ? never\n : // ...and has at least one non-optional property\n Partial<GlobalEventHandlersEventMap[T]['detail']> extends GlobalEventHandlersEventMap[T]['detail']\n ? never\n : T\n : never\n : never;\n\n// The inverse of the above (match any type that doesn't match EventTypeRequiresDetail)\ntype EventTypeDoesNotRequireDetail<T> = T extends keyof GlobalEventHandlersEventMap\n ? GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, unknown>>\n ? GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, never>>\n ? T\n : Partial<GlobalEventHandlersEventMap[T]['detail']> extends GlobalEventHandlersEventMap[T]['detail']\n ? T\n : never\n : T\n : T;\n\n// `keyof EventTypesWithRequiredDetail` lists all registered event types that require detail\ntype EventTypesWithRequiredDetail = {\n [EventType in keyof GlobalEventHandlersEventMap as EventTypeRequiresDetail<EventType>]: true;\n};\n\n// `keyof EventTypesWithoutRequiredDetail` lists all registered event types that do NOT require detail\ntype EventTypesWithoutRequiredDetail = {\n [EventType in keyof GlobalEventHandlersEventMap as EventTypeDoesNotRequireDetail<EventType>]: true;\n};\n\n// Helper to make a specific property of an object non-optional\ntype WithRequired<T, K extends keyof T> = T & { [P in K]-?: T[P] };\n\n// Given an event name string, get a valid type for the options to initialize the event that is more restrictive than\n// just CustomEventInit when appropriate (validate the type of the event detail, and require it to be provided if the\n// event requires it)\ntype SynEventInit<T> = T extends keyof GlobalEventHandlersEventMap\n ? GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, unknown>>\n ? GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, never>>\n ? CustomEventInit<GlobalEventHandlersEventMap[T]['detail']>\n : Partial<GlobalEventHandlersEventMap[T]['detail']> extends GlobalEventHandlersEventMap[T]['detail']\n ? CustomEventInit<GlobalEventHandlersEventMap[T]['detail']>\n : WithRequired<CustomEventInit<GlobalEventHandlersEventMap[T]['detail']>, 'detail'>\n : CustomEventInit\n : CustomEventInit;\n\n// Given an event name string, get the type of the event\ntype GetCustomEventType<T> = T extends keyof GlobalEventHandlersEventMap\n ? GlobalEventHandlersEventMap[T] extends CustomEvent<unknown>\n ? GlobalEventHandlersEventMap[T]\n : CustomEvent<unknown>\n : CustomEvent<unknown>;\n\n// `keyof ValidEventTypeMap` is equivalent to `keyof GlobalEventHandlersEventMap` but gives a nicer error message\ntype ValidEventTypeMap = EventTypesWithRequiredDetail | EventTypesWithoutRequiredDetail;\n\nexport default class SynergyElement extends LitElement {\n // Make localization attributes reactive\n @property() dir: string;\n @property() lang: string;\n\n /** Emits a custom event with more convenient defaults. */\n emit<T extends string & keyof EventTypesWithoutRequiredDetail>(\n name: EventTypeDoesNotRequireDetail<T>,\n options?: SynEventInit<T> | undefined\n ): GetCustomEventType<T>;\n emit<T extends string & keyof EventTypesWithRequiredDetail>(\n name: EventTypeRequiresDetail<T>,\n options: SynEventInit<T>\n ): GetCustomEventType<T>;\n emit<T extends string & keyof ValidEventTypeMap>(\n name: T,\n options?: SynEventInit<T> | undefined\n ): GetCustomEventType<T> {\n const event = new CustomEvent(name, {\n bubbles: true,\n cancelable: false,\n composed: true,\n detail: {},\n ...options\n });\n\n this.dispatchEvent(event);\n\n return event as GetCustomEventType<T>;\n }\n\n /* eslint-disable */\n // @ts-expect-error This is auto-injected at build time.\n static version = \"1.0.0-main.6\";\n \n\n static define(name: string, elementConstructor = this, options: ElementDefinitionOptions = {}) {\n const currentlyRegisteredConstructor = customElements.get(name) as\n | CustomElementConstructor\n | typeof SynergyElement;\n\n if (!currentlyRegisteredConstructor) {\n customElements.define(name, class extends elementConstructor {} as unknown as CustomElementConstructor, options);\n return;\n }\n\n let newVersion = ' (unknown version)';\n let existingVersion = newVersion;\n\n if ('version' in elementConstructor && elementConstructor.version) {\n newVersion = ' v' + elementConstructor.version;\n }\n\n if ('version' in currentlyRegisteredConstructor && currentlyRegisteredConstructor.version) {\n existingVersion = ' v' + currentlyRegisteredConstructor.version;\n }\n\n // Need to make sure we're not working with null or empty strings before doing version comparisons.\n if (newVersion && existingVersion && newVersion === existingVersion) {\n // If versions match, we don't need to warn anyone. Carry on.\n return;\n }\n\n console.warn(\n `Attempted to register <${name}>${newVersion}, but <${name}>${existingVersion} has already been registered.`\n );\n }\n\n static dependencies: Record<string, typeof SynergyElement> = {};\n\n constructor() {\n super();\n Object.entries((this.constructor as typeof SynergyElement).dependencies).forEach(([name, component]) => {\n (this.constructor as typeof SynergyElement).define(name, component);\n });\n }\n}\n\nexport interface SynergyFormControl extends SynergyElement {\n // Form attributes\n name: string;\n value: unknown;\n disabled?: boolean;\n defaultValue?: unknown;\n defaultChecked?: boolean;\n form?: string;\n\n // Constraint validation attributes\n pattern?: string;\n min?: number | string | Date;\n max?: number | string | Date;\n step?: number | 'any';\n required?: boolean;\n minlength?: number;\n maxlength?: number;\n\n // Form validation properties\n readonly validity: ValidityState;\n readonly validationMessage: string;\n\n // Form validation methods\n checkValidity: () => boolean;\n getForm: () => HTMLFormElement | null;\n reportValidity: () => boolean;\n setCustomValidity: (message: string) => void;\n}\n"],
4
+ "sourcesContent": ["// ---------------------------------------------------------------------\n// \uD83D\uDD12 AUTOGENERATED BY VENDORISM\n// Removing this comment will prevent it from being managed by it.\n// ---------------------------------------------------------------------\n\n/* eslint-disable */\nimport { LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\n\n// Match event type name strings that are registered on GlobalEventHandlersEventMap...\ntype EventTypeRequiresDetail<T> = T extends keyof GlobalEventHandlersEventMap\n ? // ...where the event detail is an object...\n GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, unknown>>\n ? // ...that is non-empty...\n GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, never>>\n ? never\n : // ...and has at least one non-optional property\n Partial<GlobalEventHandlersEventMap[T]['detail']> extends GlobalEventHandlersEventMap[T]['detail']\n ? never\n : T\n : never\n : never;\n\n// The inverse of the above (match any type that doesn't match EventTypeRequiresDetail)\ntype EventTypeDoesNotRequireDetail<T> = T extends keyof GlobalEventHandlersEventMap\n ? GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, unknown>>\n ? GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, never>>\n ? T\n : Partial<GlobalEventHandlersEventMap[T]['detail']> extends GlobalEventHandlersEventMap[T]['detail']\n ? T\n : never\n : T\n : T;\n\n// `keyof EventTypesWithRequiredDetail` lists all registered event types that require detail\ntype EventTypesWithRequiredDetail = {\n [EventType in keyof GlobalEventHandlersEventMap as EventTypeRequiresDetail<EventType>]: true;\n};\n\n// `keyof EventTypesWithoutRequiredDetail` lists all registered event types that do NOT require detail\ntype EventTypesWithoutRequiredDetail = {\n [EventType in keyof GlobalEventHandlersEventMap as EventTypeDoesNotRequireDetail<EventType>]: true;\n};\n\n// Helper to make a specific property of an object non-optional\ntype WithRequired<T, K extends keyof T> = T & { [P in K]-?: T[P] };\n\n// Given an event name string, get a valid type for the options to initialize the event that is more restrictive than\n// just CustomEventInit when appropriate (validate the type of the event detail, and require it to be provided if the\n// event requires it)\ntype SynEventInit<T> = T extends keyof GlobalEventHandlersEventMap\n ? GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, unknown>>\n ? GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, never>>\n ? CustomEventInit<GlobalEventHandlersEventMap[T]['detail']>\n : Partial<GlobalEventHandlersEventMap[T]['detail']> extends GlobalEventHandlersEventMap[T]['detail']\n ? CustomEventInit<GlobalEventHandlersEventMap[T]['detail']>\n : WithRequired<CustomEventInit<GlobalEventHandlersEventMap[T]['detail']>, 'detail'>\n : CustomEventInit\n : CustomEventInit;\n\n// Given an event name string, get the type of the event\ntype GetCustomEventType<T> = T extends keyof GlobalEventHandlersEventMap\n ? GlobalEventHandlersEventMap[T] extends CustomEvent<unknown>\n ? GlobalEventHandlersEventMap[T]\n : CustomEvent<unknown>\n : CustomEvent<unknown>;\n\n// `keyof ValidEventTypeMap` is equivalent to `keyof GlobalEventHandlersEventMap` but gives a nicer error message\ntype ValidEventTypeMap = EventTypesWithRequiredDetail | EventTypesWithoutRequiredDetail;\n\nexport default class SynergyElement extends LitElement {\n // Make localization attributes reactive\n @property() dir: string;\n @property() lang: string;\n\n /** Emits a custom event with more convenient defaults. */\n emit<T extends string & keyof EventTypesWithoutRequiredDetail>(\n name: EventTypeDoesNotRequireDetail<T>,\n options?: SynEventInit<T> | undefined\n ): GetCustomEventType<T>;\n emit<T extends string & keyof EventTypesWithRequiredDetail>(\n name: EventTypeRequiresDetail<T>,\n options: SynEventInit<T>\n ): GetCustomEventType<T>;\n emit<T extends string & keyof ValidEventTypeMap>(\n name: T,\n options?: SynEventInit<T> | undefined\n ): GetCustomEventType<T> {\n const event = new CustomEvent(name, {\n bubbles: true,\n cancelable: false,\n composed: true,\n detail: {},\n ...options\n });\n\n this.dispatchEvent(event);\n\n return event as GetCustomEventType<T>;\n }\n\n /* eslint-disable */\n // @ts-expect-error This is auto-injected at build time.\n static version = \"1.0.0-main.8\";\n \n\n static define(name: string, elementConstructor = this, options: ElementDefinitionOptions = {}) {\n const currentlyRegisteredConstructor = customElements.get(name) as\n | CustomElementConstructor\n | typeof SynergyElement;\n\n if (!currentlyRegisteredConstructor) {\n customElements.define(name, class extends elementConstructor {} as unknown as CustomElementConstructor, options);\n return;\n }\n\n let newVersion = ' (unknown version)';\n let existingVersion = newVersion;\n\n if ('version' in elementConstructor && elementConstructor.version) {\n newVersion = ' v' + elementConstructor.version;\n }\n\n if ('version' in currentlyRegisteredConstructor && currentlyRegisteredConstructor.version) {\n existingVersion = ' v' + currentlyRegisteredConstructor.version;\n }\n\n // Need to make sure we're not working with null or empty strings before doing version comparisons.\n if (newVersion && existingVersion && newVersion === existingVersion) {\n // If versions match, we don't need to warn anyone. Carry on.\n return;\n }\n\n console.warn(\n `Attempted to register <${name}>${newVersion}, but <${name}>${existingVersion} has already been registered.`\n );\n }\n\n static dependencies: Record<string, typeof SynergyElement> = {};\n\n constructor() {\n super();\n Object.entries((this.constructor as typeof SynergyElement).dependencies).forEach(([name, component]) => {\n (this.constructor as typeof SynergyElement).define(name, component);\n });\n }\n}\n\nexport interface SynergyFormControl extends SynergyElement {\n // Form attributes\n name: string;\n value: unknown;\n disabled?: boolean;\n defaultValue?: unknown;\n defaultChecked?: boolean;\n form?: string;\n\n // Constraint validation attributes\n pattern?: string;\n min?: number | string | Date;\n max?: number | string | Date;\n step?: number | 'any';\n required?: boolean;\n minlength?: number;\n maxlength?: number;\n\n // Form validation properties\n readonly validity: ValidityState;\n readonly validationMessage: string;\n\n // Form validation methods\n checkValidity: () => boolean;\n getForm: () => HTMLFormElement | null;\n reportValidity: () => boolean;\n setCustomValidity: (message: string) => void;\n}\n"],
5
5
  "mappings": ";;;;;;AAMA,SAAS,kBAAkB;AAC3B,SAAS,gBAAgB;AA+DzB,IAAqB,iBAArB,cAA4C,WAAW;AAAA,EAsErD,cAAc;AACZ,UAAM;AACN,WAAO,QAAS,KAAK,YAAsC,YAAY,EAAE,QAAQ,CAAC,CAAC,MAAM,SAAS,MAAM;AACtG,MAAC,KAAK,YAAsC,OAAO,MAAM,SAAS;AAAA,IACpE,CAAC;AAAA,EACH;AAAA,EA7DA,KACE,MACA,SACuB;AACvB,UAAM,QAAQ,IAAI,YAAY,MAAM;AAAA,MAClC,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,MACV,QAAQ,CAAC;AAAA,OACN,QACJ;AAED,SAAK,cAAc,KAAK;AAExB,WAAO;AAAA,EACT;AAAA,EAOA,OAAO,OAAO,MAAc,qBAAqB,MAAM,UAAoC,CAAC,GAAG;AAC7F,UAAM,iCAAiC,eAAe,IAAI,IAAI;AAI9D,QAAI,CAAC,gCAAgC;AACnC,qBAAe,OAAO,MAAM,cAAc,mBAAmB;AAAA,MAAC,GAA0C,OAAO;AAC/G;AAAA,IACF;AAEA,QAAI,aAAa;AACjB,QAAI,kBAAkB;AAEtB,QAAI,aAAa,sBAAsB,mBAAmB,SAAS;AACjE,mBAAa,OAAO,mBAAmB;AAAA,IACzC;AAEA,QAAI,aAAa,kCAAkC,+BAA+B,SAAS;AACzF,wBAAkB,OAAO,+BAA+B;AAAA,IAC1D;AAGA,QAAI,cAAc,mBAAmB,eAAe,iBAAiB;AAEnE;AAAA,IACF;AAEA,YAAQ;AAAA,MACN,0BAA0B,IAAI,IAAI,UAAU,UAAU,IAAI,IAAI,eAAe;AAAA,IAC/E;AAAA,EACF;AAUF;AAAA;AAAA;AA5EqB,eAiCZ,UAAU;AAjCE,eAoEZ,eAAsD,CAAC;AAlElD;AAAA,EAAX,SAAS;AAAA,GAFS,eAEP;AACA;AAAA,EAAX,SAAS;AAAA,GAHS,eAGP;",
6
6
  "names": []
7
7
  }
@@ -13,10 +13,10 @@ import {
13
13
  import {
14
14
  SynIcon,
15
15
  watch
16
- } from "./chunk.4JYS4LYT.js";
16
+ } from "./chunk.DI6S4YNU.js";
17
17
  import {
18
18
  SynergyElement
19
- } from "./chunk.H2WJIJND.js";
19
+ } from "./chunk.53ZDJY4Q.js";
20
20
  import {
21
21
  __decorateClass
22
22
  } from "./chunk.DJOAQ4JU.js";
@@ -495,4 +495,4 @@ __decorateClass([
495
495
  export {
496
496
  SynInput
497
497
  };
498
- //# sourceMappingURL=chunk.DAPEYF3L.js.map
498
+ //# sourceMappingURL=chunk.5SUEJSIW.js.map
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk.R6VNLE6N.js";
7
7
  import {
8
8
  SynergyElement
9
- } from "./chunk.H2WJIJND.js";
9
+ } from "./chunk.53ZDJY4Q.js";
10
10
 
11
11
  // src/components/spinner/spinner.component.ts
12
12
  import { html } from "lit";
@@ -29,4 +29,4 @@ SynSpinner.styles = spinner_styles_default;
29
29
  export {
30
30
  SynSpinner
31
31
  };
32
- //# sourceMappingURL=chunk.3QEOTSBR.js.map
32
+ //# sourceMappingURL=chunk.5ZMQBOV3.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SynInput
3
- } from "./chunk.DAPEYF3L.js";
3
+ } from "./chunk.5SUEJSIW.js";
4
4
 
5
5
  // src/components/input/input.ts
6
6
  var input_default = SynInput;
@@ -9,4 +9,4 @@ SynInput.define("syn-input");
9
9
  export {
10
10
  input_default
11
11
  };
12
- //# sourceMappingURL=chunk.KV3DM7PM.js.map
12
+ //# sourceMappingURL=chunk.B7XEALID.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SynergyElement
3
- } from "./chunk.H2WJIJND.js";
3
+ } from "./chunk.53ZDJY4Q.js";
4
4
  import {
5
5
  icon_styles_default
6
6
  } from "./chunk.BREU4ILT.js";
@@ -199,4 +199,4 @@ export {
199
199
  watch,
200
200
  SynIcon
201
201
  };
202
- //# sourceMappingURL=chunk.4JYS4LYT.js.map
202
+ //# sourceMappingURL=chunk.DI6S4YNU.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SynSpinner
3
- } from "./chunk.3QEOTSBR.js";
3
+ } from "./chunk.5ZMQBOV3.js";
4
4
  import {
5
5
  HasSlotController
6
6
  } from "./chunk.XGXFE6IF.js";
@@ -17,10 +17,10 @@ import {
17
17
  import {
18
18
  SynIcon,
19
19
  watch
20
- } from "./chunk.4JYS4LYT.js";
20
+ } from "./chunk.DI6S4YNU.js";
21
21
  import {
22
22
  SynergyElement
23
- } from "./chunk.H2WJIJND.js";
23
+ } from "./chunk.53ZDJY4Q.js";
24
24
  import {
25
25
  __decorateClass
26
26
  } from "./chunk.DJOAQ4JU.js";
@@ -275,4 +275,4 @@ __decorateClass([
275
275
  export {
276
276
  SynButton
277
277
  };
278
- //# sourceMappingURL=chunk.XBI2LWDH.js.map
278
+ //# sourceMappingURL=chunk.G3PDKNFK.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  SynButton
3
- } from "../../chunks/chunk.XBI2LWDH.js";
4
- import "../../chunks/chunk.3QEOTSBR.js";
3
+ } from "../../chunks/chunk.G3PDKNFK.js";
4
+ import "../../chunks/chunk.5ZMQBOV3.js";
5
5
  import "../../chunks/chunk.N2I6HVX3.js";
6
6
  import "../../chunks/chunk.XGXFE6IF.js";
7
7
  import "../../chunks/chunk.R6VNLE6N.js";
@@ -9,8 +9,8 @@ import "../../chunks/chunk.A3SKDWCT.js";
9
9
  import "../../chunks/chunk.WDCAHRYG.js";
10
10
  import "../../chunks/chunk.P22LQI5J.js";
11
11
  import "../../chunks/chunk.DREO4ZTN.js";
12
- import "../../chunks/chunk.4JYS4LYT.js";
13
- import "../../chunks/chunk.H2WJIJND.js";
12
+ import "../../chunks/chunk.DI6S4YNU.js";
13
+ import "../../chunks/chunk.53ZDJY4Q.js";
14
14
  import "../../chunks/chunk.BREU4ILT.js";
15
15
  import "../../chunks/chunk.5OIEI73E.js";
16
16
  import "../../chunks/chunk.6C4JXZZN.js";
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  button_default
3
- } from "../../chunks/chunk.B5LRNM2C.js";
4
- import "../../chunks/chunk.XBI2LWDH.js";
5
- import "../../chunks/chunk.3QEOTSBR.js";
3
+ } from "../../chunks/chunk.4SJKXOCV.js";
4
+ import "../../chunks/chunk.G3PDKNFK.js";
5
+ import "../../chunks/chunk.5ZMQBOV3.js";
6
6
  import "../../chunks/chunk.N2I6HVX3.js";
7
7
  import "../../chunks/chunk.XGXFE6IF.js";
8
8
  import "../../chunks/chunk.R6VNLE6N.js";
@@ -10,8 +10,8 @@ import "../../chunks/chunk.A3SKDWCT.js";
10
10
  import "../../chunks/chunk.WDCAHRYG.js";
11
11
  import "../../chunks/chunk.P22LQI5J.js";
12
12
  import "../../chunks/chunk.DREO4ZTN.js";
13
- import "../../chunks/chunk.4JYS4LYT.js";
14
- import "../../chunks/chunk.H2WJIJND.js";
13
+ import "../../chunks/chunk.DI6S4YNU.js";
14
+ import "../../chunks/chunk.53ZDJY4Q.js";
15
15
  import "../../chunks/chunk.BREU4ILT.js";
16
16
  import "../../chunks/chunk.5OIEI73E.js";
17
17
  import "../../chunks/chunk.6C4JXZZN.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  SynIcon
3
- } from "../../chunks/chunk.4JYS4LYT.js";
4
- import "../../chunks/chunk.H2WJIJND.js";
3
+ } from "../../chunks/chunk.DI6S4YNU.js";
4
+ import "../../chunks/chunk.53ZDJY4Q.js";
5
5
  import "../../chunks/chunk.BREU4ILT.js";
6
6
  import "../../chunks/chunk.5OIEI73E.js";
7
7
  import "../../chunks/chunk.6C4JXZZN.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  SynIcon
3
- } from "../../chunks/chunk.4JYS4LYT.js";
4
- import "../../chunks/chunk.H2WJIJND.js";
3
+ } from "../../chunks/chunk.DI6S4YNU.js";
4
+ import "../../chunks/chunk.53ZDJY4Q.js";
5
5
  import "../../chunks/chunk.BREU4ILT.js";
6
6
  import "../../chunks/chunk.5OIEI73E.js";
7
7
  import "../../chunks/chunk.6C4JXZZN.js";
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  SynInput
3
- } from "../../chunks/chunk.DAPEYF3L.js";
3
+ } from "../../chunks/chunk.5SUEJSIW.js";
4
4
  import "../../chunks/chunk.Q77OTWF2.js";
5
5
  import "../../chunks/chunk.ILONRPL4.js";
6
6
  import "../../chunks/chunk.XGXFE6IF.js";
7
7
  import "../../chunks/chunk.R6VNLE6N.js";
8
8
  import "../../chunks/chunk.A3SKDWCT.js";
9
9
  import "../../chunks/chunk.WDCAHRYG.js";
10
- import "../../chunks/chunk.4JYS4LYT.js";
11
- import "../../chunks/chunk.H2WJIJND.js";
10
+ import "../../chunks/chunk.DI6S4YNU.js";
11
+ import "../../chunks/chunk.53ZDJY4Q.js";
12
12
  import "../../chunks/chunk.BREU4ILT.js";
13
13
  import "../../chunks/chunk.5OIEI73E.js";
14
14
  import "../../chunks/chunk.6C4JXZZN.js";
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  input_default
3
- } from "../../chunks/chunk.KV3DM7PM.js";
4
- import "../../chunks/chunk.DAPEYF3L.js";
3
+ } from "../../chunks/chunk.B7XEALID.js";
4
+ import "../../chunks/chunk.5SUEJSIW.js";
5
5
  import "../../chunks/chunk.Q77OTWF2.js";
6
6
  import "../../chunks/chunk.ILONRPL4.js";
7
7
  import "../../chunks/chunk.XGXFE6IF.js";
8
8
  import "../../chunks/chunk.R6VNLE6N.js";
9
9
  import "../../chunks/chunk.A3SKDWCT.js";
10
10
  import "../../chunks/chunk.WDCAHRYG.js";
11
- import "../../chunks/chunk.4JYS4LYT.js";
12
- import "../../chunks/chunk.H2WJIJND.js";
11
+ import "../../chunks/chunk.DI6S4YNU.js";
12
+ import "../../chunks/chunk.53ZDJY4Q.js";
13
13
  import "../../chunks/chunk.BREU4ILT.js";
14
14
  import "../../chunks/chunk.5OIEI73E.js";
15
15
  import "../../chunks/chunk.6C4JXZZN.js";
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  SynSpinner
3
- } from "../../chunks/chunk.3QEOTSBR.js";
3
+ } from "../../chunks/chunk.5ZMQBOV3.js";
4
4
  import "../../chunks/chunk.N2I6HVX3.js";
5
5
  import "../../chunks/chunk.R6VNLE6N.js";
6
6
  import "../../chunks/chunk.A3SKDWCT.js";
7
- import "../../chunks/chunk.H2WJIJND.js";
7
+ import "../../chunks/chunk.53ZDJY4Q.js";
8
8
  import "../../chunks/chunk.O7USYXBT.js";
9
9
  import "../../chunks/chunk.DJOAQ4JU.js";
10
10
  export {
@@ -1859,7 +1859,7 @@
1859
1859
  "package": {
1860
1860
  "name": "@synergy-design-system/components",
1861
1861
  "description": "",
1862
- "version": "1.0.0-main.6",
1862
+ "version": "1.0.0-main.8",
1863
1863
  "author": {
1864
1864
  "name": "SICK Global UX Foundation",
1865
1865
  "url": "https://www.sick.com"
package/dist/synergy.js CHANGED
@@ -1,18 +1,18 @@
1
1
  import {
2
2
  input_default
3
- } from "./chunks/chunk.KV3DM7PM.js";
3
+ } from "./chunks/chunk.B7XEALID.js";
4
4
  import {
5
5
  getFormControls,
6
6
  serialize
7
7
  } from "./chunks/chunk.WTCUSH7V.js";
8
- import "./chunks/chunk.DAPEYF3L.js";
8
+ import "./chunks/chunk.5SUEJSIW.js";
9
9
  import "./chunks/chunk.Q77OTWF2.js";
10
10
  import "./chunks/chunk.ILONRPL4.js";
11
11
  import {
12
12
  button_default
13
- } from "./chunks/chunk.B5LRNM2C.js";
14
- import "./chunks/chunk.XBI2LWDH.js";
15
- import "./chunks/chunk.3QEOTSBR.js";
13
+ } from "./chunks/chunk.4SJKXOCV.js";
14
+ import "./chunks/chunk.G3PDKNFK.js";
15
+ import "./chunks/chunk.5ZMQBOV3.js";
16
16
  import "./chunks/chunk.N2I6HVX3.js";
17
17
  import "./chunks/chunk.XGXFE6IF.js";
18
18
  import "./chunks/chunk.R6VNLE6N.js";
@@ -20,8 +20,8 @@ import "./chunks/chunk.A3SKDWCT.js";
20
20
  import "./chunks/chunk.WDCAHRYG.js";
21
21
  import "./chunks/chunk.P22LQI5J.js";
22
22
  import "./chunks/chunk.DREO4ZTN.js";
23
- import "./chunks/chunk.4JYS4LYT.js";
24
- import "./chunks/chunk.H2WJIJND.js";
23
+ import "./chunks/chunk.DI6S4YNU.js";
24
+ import "./chunks/chunk.53ZDJY4Q.js";
25
25
  import "./chunks/chunk.BREU4ILT.js";
26
26
  import "./chunks/chunk.5OIEI73E.js";
27
27
  import "./chunks/chunk.6C4JXZZN.js";
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://raw.githubusercontent.com/JetBrains/web-types/master/schema/web-types.json",
3
3
  "name": "@synergy-design-system/components",
4
- "version": "1.0.0-main.6",
4
+ "version": "1.0.0-main.8",
5
5
  "description-markup": "markdown",
6
6
  "contributions": {
7
7
  "html": {
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "url": "https://www.sick.com"
5
5
  },
6
6
  "name": "@synergy-design-system/components",
7
- "version": "1.0.0-main.6",
7
+ "version": "1.0.0-main.8",
8
8
  "description": "",
9
9
  "repository": {
10
10
  "type": "git",
@@ -27,6 +27,7 @@
27
27
  "dist"
28
28
  ],
29
29
  "type": "module",
30
+ "types": "./dist/synergy.d.ts",
30
31
  "homepage": "https://github.com/SickDesignSystem/synergy/tree/main/packages/components",
31
32
  "keywords": [
32
33
  "Web Components",
@@ -46,8 +47,6 @@
46
47
  "@semantic-release/changelog": "^6.0.3",
47
48
  "@semantic-release/exec": "^6.0.3",
48
49
  "@semantic-release/git": "^10.0.1",
49
- "@shoelace-style/animations": "^1.1.0",
50
- "@shoelace-style/localize": "^3.1.2",
51
50
  "@types/mocha": "^10.0.2",
52
51
  "@typescript-eslint/eslint-plugin": "^6.9.0",
53
52
  "@typescript-eslint/parser": "^6.9.0",
@@ -72,6 +71,7 @@
72
71
  "eslint-plugin-wc": "^2.0.4",
73
72
  "globby": "^13.2.2",
74
73
  "jsdom": "^22.1.0",
74
+ "ng-packagr": "^17.0.0",
75
75
  "ora": "^7.0.1",
76
76
  "pascal-case": "^4.0.0",
77
77
  "prettier": "^3.0.3",
@@ -86,7 +86,8 @@
86
86
  "user-agent-data-types": "^0.4.2",
87
87
  "vendorism": "github:mariohamann/vendorism",
88
88
  "@synergy-design-system/eslint-config-syn": "0.1.0",
89
- "@synergy-design-system/stylelint-config-syn": "0.1.0"
89
+ "@synergy-design-system/stylelint-config-syn": "0.1.0",
90
+ "@synergy-design-system/tokens": "1.0.0-main.6"
90
91
  },
91
92
  "release": {
92
93
  "branches": [
@@ -123,7 +124,7 @@
123
124
  [
124
125
  "@semantic-release/exec",
125
126
  {
126
- "prepareCmd": "pnpm build && git add ../react && git commit -m \"chore(release/react) via component release [skip actions]\""
127
+ "prepareCmd": "pnpm build && pnpm release.angular && pnpm release.react"
127
128
  }
128
129
  ],
129
130
  [
@@ -145,12 +146,16 @@
145
146
  ]
146
147
  },
147
148
  "dependencies": {
149
+ "@floating-ui/dom": "^1.5.3",
150
+ "@shoelace-style/animations": "^1.1.0",
151
+ "@shoelace-style/localize": "^3.1.2",
152
+ "composed-offset-position": "^0.0.4",
148
153
  "lit": "^3.0.0"
149
154
  },
150
155
  "web-types": "./dist/web-types.json",
151
156
  "scripts": {
152
157
  "build": "node scripts/build.js",
153
- "test": "pnpm build && web-test-runner --group default",
158
+ "test": "web-test-runner --group default",
154
159
  "vendor": "node scripts/vendorism.js",
155
160
  "vendor.get": "node scripts/vendorism.js -g",
156
161
  "vendor.set": "node scripts/vendorism.js -s",
@@ -158,6 +163,8 @@
158
163
  "lint:css": "stylelint \"src/**/*.{css,js,ts}\"",
159
164
  "lint:js": "eslint src",
160
165
  "lint": "pnpm run /^lint:.*/",
161
- "release": "semantic-release --tagFormat 'components/${version}' -e semantic-release-monorepo"
166
+ "release": "semantic-release --tagFormat 'components/${version}' -e semantic-release-monorepo",
167
+ "release.angular": "git add ../angular && git commit -m \"chore(release/angular) via component release [skip actions]\"",
168
+ "release.react": "git add ../react && git commit -m \"chore(release/react) via component release [skip actions]\""
162
169
  }
163
170
  }