@elixir-cloud/cloud-registry 2.0.0-alpha.28

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 (39) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +12 -0
  3. package/dist/chunks/chunk.3WU6NPWM.js +1 -0
  4. package/dist/chunks/chunk.HIA3DP4L.js +158 -0
  5. package/dist/chunks/chunk.HM342EMQ.js +574 -0
  6. package/dist/chunks/chunk.S3NI7NKU.js +30 -0
  7. package/dist/chunks/chunk.SG7Q2SX3.js +25 -0
  8. package/dist/chunks/chunk.U3XZVV4K.js +1 -0
  9. package/dist/chunks/chunk.V3D32NZ5.js +717 -0
  10. package/dist/chunks/chunk.XMLA2YKQ.js +10 -0
  11. package/dist/components/index.d.ts +1 -0
  12. package/dist/components/index.js +6 -0
  13. package/dist/components/service-create/index.d.ts +8 -0
  14. package/dist/components/service-create/index.js +5 -0
  15. package/dist/components/service-create/service-create.d.ts +41 -0
  16. package/dist/components/service-create/service-create.js +4 -0
  17. package/dist/components/service-create/tw-styles.d.ts +1 -0
  18. package/dist/components/service-create/tw-styles.js +2 -0
  19. package/dist/custom-elements.json +303 -0
  20. package/dist/events/ecc-service-create-failed.d.ts +8 -0
  21. package/dist/events/ecc-service-create-validation-failed.d.ts +8 -0
  22. package/dist/events/ecc-service-created.d.ts +11 -0
  23. package/dist/events/index.d.ts +3 -0
  24. package/dist/global.d.ts +4 -0
  25. package/dist/index.d.ts +1 -0
  26. package/dist/index.js +6 -0
  27. package/dist/providers/cr-provider.d.ts +50 -0
  28. package/dist/providers/cr-provider.js +1 -0
  29. package/dist/providers/index.d.ts +3 -0
  30. package/dist/providers/index.js +3 -0
  31. package/dist/providers/rest-cr-provider.d.ts +62 -0
  32. package/dist/providers/rest-cr-provider.js +2 -0
  33. package/dist/react/index.d.ts +1 -0
  34. package/dist/react/index.js +5 -0
  35. package/dist/react/service-create/index.d.ts +25 -0
  36. package/dist/react/service-create/index.js +5 -0
  37. package/dist/vscode.html-custom-data.json +17 -0
  38. package/dist/web-types.json +66 -0
  39. package/package.json +77 -0
@@ -0,0 +1,10 @@
1
+ import { service_create_default } from './chunk.V3D32NZ5.js';
2
+
3
+ // src/components/service-create/index.ts
4
+ var service_create_default2 = service_create_default;
5
+ window.customElements.define(
6
+ "ecc-client-elixir-cloud-registry-service-create",
7
+ service_create_default
8
+ );
9
+
10
+ export { service_create_default2 as service_create_default };
@@ -0,0 +1 @@
1
+ import "./service-create/index.js";
@@ -0,0 +1,6 @@
1
+ import '../chunks/chunk.3WU6NPWM.js';
2
+ import '../chunks/chunk.XMLA2YKQ.js';
3
+ import '../chunks/chunk.V3D32NZ5.js';
4
+ import '../chunks/chunk.HM342EMQ.js';
5
+ import '../chunks/chunk.HIA3DP4L.js';
6
+ import '../chunks/chunk.S3NI7NKU.js';
@@ -0,0 +1,8 @@
1
+ import ECCClientElixirCloudRegistryServiceCreate from "./service-create.js";
2
+ export * from "./service-create.js";
3
+ export default ECCClientElixirCloudRegistryServiceCreate;
4
+ declare global {
5
+ interface HTMLElementTagNameMap {
6
+ "ecc-client-elixir-cloud-registry-service-create": ECCClientElixirCloudRegistryServiceCreate;
7
+ }
8
+ }
@@ -0,0 +1,5 @@
1
+ export { service_create_default as default } from '../../chunks/chunk.XMLA2YKQ.js';
2
+ export { ECCClientElixirCloudRegistryServiceCreate } from '../../chunks/chunk.V3D32NZ5.js';
3
+ import '../../chunks/chunk.HM342EMQ.js';
4
+ import '../../chunks/chunk.HIA3DP4L.js';
5
+ import '../../chunks/chunk.S3NI7NKU.js';
@@ -0,0 +1,41 @@
1
+ import { LitElement } from "lit";
2
+ import { CloudRegistryProvider } from "../../providers/index.js";
3
+ import "@elixir-cloud/design/components/button/index.js";
4
+ import "@elixir-cloud/design/components/input/index.js";
5
+ import "@elixir-cloud/design/components/select/index.js";
6
+ import "@elixir-cloud/design/components/label/index.js";
7
+ import "@elixir-cloud/design/components/textarea/index.js";
8
+ import "@elixir-cloud/design/components/collapsible/index.js";
9
+ /**
10
+ * @summary Component for creating new services in Cloud Registry
11
+ * @since 2.0.0
12
+ *
13
+ * @property {string} baseUrl - Base URL of the Cloud Registry instance/gateway
14
+ * @property {CloudRegistryProvider} provider - Custom data provider (optional, overrides baseUrl)
15
+ *
16
+ * @fires ecc-service-created - Fired when a service is successfully created (includes serviceId, serviceData, and success message)
17
+ * @fires ecc-service-create-failed - Fired when service creation fails
18
+ * @fires ecc-service-create-validation-failed - Fired when there are validation errors during service creation
19
+ */
20
+ export declare class ECCClientElixirCloudRegistryServiceCreate extends LitElement {
21
+ static styles: import("lit").CSSResult[];
22
+ baseUrl: string;
23
+ provider?: CloudRegistryProvider;
24
+ private serviceTypes;
25
+ private loading;
26
+ private error;
27
+ private success;
28
+ private formData;
29
+ private _provider;
30
+ protected firstUpdated(): Promise<void>;
31
+ protected updated(changedProperties: Map<PropertyKey, unknown>): void;
32
+ private loadServiceTypes;
33
+ private handleInputChange;
34
+ private handleNestedInputChange;
35
+ private handleSubmit;
36
+ private resetForm;
37
+ private renderBasicFields;
38
+ private renderAdvancedFields;
39
+ render(): import("lit").TemplateResult<1>;
40
+ }
41
+ export default ECCClientElixirCloudRegistryServiceCreate;
@@ -0,0 +1,4 @@
1
+ export { ECCClientElixirCloudRegistryServiceCreate, service_create_default as default } from '../../chunks/chunk.V3D32NZ5.js';
2
+ import '../../chunks/chunk.HM342EMQ.js';
3
+ import '../../chunks/chunk.HIA3DP4L.js';
4
+ import '../../chunks/chunk.S3NI7NKU.js';
@@ -0,0 +1 @@
1
+ export declare const ComponentStyles: import("lit").CSSResult;
@@ -0,0 +1,2 @@
1
+ export { ComponentStyles } from '../../chunks/chunk.HM342EMQ.js';
2
+ import '../../chunks/chunk.S3NI7NKU.js';
@@ -0,0 +1,303 @@
1
+ {
2
+ "schemaVersion": "1.0.0",
3
+ "readme": "",
4
+ "modules": [
5
+ {
6
+ "kind": "javascript-module",
7
+ "path": "components/index.js",
8
+ "declarations": [],
9
+ "exports": []
10
+ },
11
+ {
12
+ "kind": "javascript-module",
13
+ "path": "components/service-create/index.js",
14
+ "declarations": [],
15
+ "exports": [
16
+ {
17
+ "kind": "js",
18
+ "name": "*",
19
+ "declaration": {
20
+ "name": "*",
21
+ "package": "\"./service-create.js\""
22
+ }
23
+ },
24
+ {
25
+ "kind": "js",
26
+ "name": "default",
27
+ "declaration": {
28
+ "name": "ECCClientElixirCloudRegistryServiceCreate",
29
+ "module": "components/service-create/index.js"
30
+ }
31
+ },
32
+ {
33
+ "kind": "custom-element-definition",
34
+ "name": "ecc-client-elixir-cloud-registry-service-create",
35
+ "declaration": {
36
+ "name": "ECCClientElixirCloudRegistryServiceCreate",
37
+ "module": "/src/components/service-create/service-create.js"
38
+ }
39
+ }
40
+ ]
41
+ },
42
+ {
43
+ "kind": "javascript-module",
44
+ "path": "components/service-create/service-create.js",
45
+ "declarations": [
46
+ {
47
+ "kind": "class",
48
+ "description": "",
49
+ "name": "ECCClientElixirCloudRegistryServiceCreate",
50
+ "members": [
51
+ {
52
+ "kind": "field",
53
+ "name": "baseUrl",
54
+ "type": {
55
+ "text": "string"
56
+ },
57
+ "default": "\"\"",
58
+ "description": "Base URL of the Cloud Registry instance/gateway"
59
+ },
60
+ {
61
+ "kind": "field",
62
+ "name": "provider",
63
+ "type": {
64
+ "text": "CloudRegistryProvider"
65
+ },
66
+ "description": "Custom data provider (optional, overrides baseUrl)"
67
+ },
68
+ {
69
+ "kind": "field",
70
+ "name": "serviceTypes",
71
+ "type": {
72
+ "text": "ServiceType[]"
73
+ },
74
+ "privacy": "private",
75
+ "default": "[]"
76
+ },
77
+ {
78
+ "kind": "field",
79
+ "name": "loading",
80
+ "type": {
81
+ "text": "boolean"
82
+ },
83
+ "privacy": "private",
84
+ "default": "false"
85
+ },
86
+ {
87
+ "kind": "field",
88
+ "name": "error",
89
+ "type": {
90
+ "text": "string | null"
91
+ },
92
+ "privacy": "private",
93
+ "default": "null"
94
+ },
95
+ {
96
+ "kind": "field",
97
+ "name": "success",
98
+ "type": {
99
+ "text": "string | null"
100
+ },
101
+ "privacy": "private",
102
+ "default": "null"
103
+ },
104
+ {
105
+ "kind": "field",
106
+ "name": "formData",
107
+ "type": {
108
+ "text": "{\n name: string;\n url: string;\n organization: {\n name: string;\n url: string;\n };\n type: {\n group: string;\n artifact: string;\n version: string;\n };\n version: string;\n description: string;\n contactUrl: string;\n documentationUrl: string;\n environment: string;\n createdAt: string;\n updatedAt: string;\n customServiceId: string;\n useCustomId: boolean;\n }"
109
+ },
110
+ "privacy": "private",
111
+ "default": "{\n name: \"\",\n url: \"\",\n organization: {\n name: \"\",\n url: \"\",\n },\n type: {\n group: \"org.ga4gh\",\n artifact: \"\",\n version: \"\",\n },\n version: \"\",\n description: \"\",\n contactUrl: \"\",\n documentationUrl: \"\",\n environment: \"\",\n createdAt: \"\",\n updatedAt: \"\",\n customServiceId: \"\",\n useCustomId: false,\n }"
112
+ },
113
+ {
114
+ "kind": "field",
115
+ "name": "_provider",
116
+ "type": {
117
+ "text": "CloudRegistryProvider | null"
118
+ },
119
+ "privacy": "private",
120
+ "default": "null"
121
+ },
122
+ {
123
+ "kind": "method",
124
+ "name": "loadServiceTypes",
125
+ "privacy": "private",
126
+ "return": {
127
+ "type": {
128
+ "text": "Promise<void>"
129
+ }
130
+ }
131
+ },
132
+ {
133
+ "kind": "method",
134
+ "name": "handleInputChange",
135
+ "privacy": "private",
136
+ "return": {
137
+ "type": {
138
+ "text": "void"
139
+ }
140
+ },
141
+ "parameters": [
142
+ {
143
+ "name": "field",
144
+ "type": {
145
+ "text": "keyof typeof this.formData"
146
+ }
147
+ },
148
+ {
149
+ "name": "value",
150
+ "type": {
151
+ "text": "string | boolean"
152
+ }
153
+ }
154
+ ]
155
+ },
156
+ {
157
+ "kind": "method",
158
+ "name": "handleNestedInputChange",
159
+ "privacy": "private",
160
+ "return": {
161
+ "type": {
162
+ "text": "void"
163
+ }
164
+ },
165
+ "parameters": [
166
+ {
167
+ "name": "parent",
168
+ "type": {
169
+ "text": "keyof typeof this.formData"
170
+ }
171
+ },
172
+ {
173
+ "name": "field",
174
+ "type": {
175
+ "text": "string"
176
+ }
177
+ },
178
+ {
179
+ "name": "value",
180
+ "type": {
181
+ "text": "string"
182
+ }
183
+ }
184
+ ]
185
+ },
186
+ {
187
+ "kind": "method",
188
+ "name": "handleSubmit",
189
+ "privacy": "private",
190
+ "return": {
191
+ "type": {
192
+ "text": "Promise<void>"
193
+ }
194
+ }
195
+ },
196
+ {
197
+ "kind": "method",
198
+ "name": "resetForm",
199
+ "privacy": "private",
200
+ "return": {
201
+ "type": {
202
+ "text": "void"
203
+ }
204
+ }
205
+ },
206
+ {
207
+ "kind": "method",
208
+ "name": "renderBasicFields",
209
+ "privacy": "private"
210
+ },
211
+ {
212
+ "kind": "method",
213
+ "name": "renderAdvancedFields",
214
+ "privacy": "private"
215
+ }
216
+ ],
217
+ "events": [
218
+ {
219
+ "name": "ecc-service-create-validation-failed",
220
+ "type": {
221
+ "text": "CustomEvent"
222
+ },
223
+ "description": "Fired when there are validation errors during service creation",
224
+ "reactName": "onEccServiceCreateValidationFailed",
225
+ "eventName": "EccServiceCreateValidationFailedEvent"
226
+ },
227
+ {
228
+ "name": "ecc-service-create-failed",
229
+ "type": {
230
+ "text": "CustomEvent"
231
+ },
232
+ "description": "Fired when service creation fails",
233
+ "reactName": "onEccServiceCreateFailed",
234
+ "eventName": "EccServiceCreateFailedEvent"
235
+ },
236
+ {
237
+ "name": "ecc-service-created",
238
+ "type": {
239
+ "text": "CustomEvent"
240
+ },
241
+ "description": "Fired when a service is successfully created (includes serviceId, serviceData, and success message)",
242
+ "reactName": "onEccServiceCreated",
243
+ "eventName": "EccServiceCreatedEvent"
244
+ }
245
+ ],
246
+ "superclass": {
247
+ "name": "LitElement",
248
+ "package": "lit"
249
+ },
250
+ "summary": "Component for creating new services in Cloud Registry",
251
+ "jsDoc": "/**\n * @summary Component for creating new services in Cloud Registry\n * @since 2.0.0\n *\n * @property {string} baseUrl - Base URL of the Cloud Registry instance/gateway\n * @property {CloudRegistryProvider} provider - Custom data provider (optional, overrides baseUrl)\n *\n * @fires ecc-service-created - Fired when a service is successfully created (includes serviceId, serviceData, and success message)\n * @fires ecc-service-create-failed - Fired when service creation fails\n * @fires ecc-service-create-validation-failed - Fired when there are validation errors during service creation\n */",
252
+ "tagName": "ecc-client-elixir-cloud-registry-service-create",
253
+ "customElement": true
254
+ }
255
+ ],
256
+ "exports": [
257
+ {
258
+ "kind": "js",
259
+ "name": "ECCClientElixirCloudRegistryServiceCreate",
260
+ "declaration": {
261
+ "name": "ECCClientElixirCloudRegistryServiceCreate",
262
+ "module": "components/service-create/service-create.js"
263
+ }
264
+ },
265
+ {
266
+ "kind": "js",
267
+ "name": "default",
268
+ "declaration": {
269
+ "name": "ECCClientElixirCloudRegistryServiceCreate",
270
+ "module": "components/service-create/service-create.js"
271
+ }
272
+ }
273
+ ]
274
+ },
275
+ {
276
+ "kind": "javascript-module",
277
+ "path": "components/service-create/tw-styles.js",
278
+ "declarations": [
279
+ {
280
+ "kind": "variable",
281
+ "name": "ComponentStyles",
282
+ "default": "css` /*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */\n@layer properties;\n@layer theme, base, components, utilities;\n@layer theme {\n :root, :host {\n --font-sans: ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\",\n \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\",\n \"Courier New\", monospace;\n --spacing: 0.25rem;\n --text-sm: 0.875rem;\n --text-sm--line-height: calc(1.25 / 0.875);\n --font-weight-medium: 500;\n --default-transition-duration: 150ms;\n --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --default-font-family: var(--font-sans);\n --default-mono-font-family: var(--font-mono);\n }\n}\n@layer base {\n *, ::after, ::before, ::backdrop, ::file-selector-button {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n }\n html, :host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");\n font-feature-settings: var(--default-font-feature-settings, normal);\n font-variation-settings: var(--default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n h1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n b, strong {\n font-weight: bolder;\n }\n code, kbd, samp, pre {\n font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-variation-settings: var(--default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\n small {\n font-size: 80%;\n }\n sub, sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n :-moz-focusring {\n outline: auto;\n }\n progress {\n vertical-align: baseline;\n }\n summary {\n display: list-item;\n }\n ol, ul, menu {\n list-style: none;\n }\n img, svg, video, canvas, audio, iframe, embed, object {\n display: block;\n vertical-align: middle;\n }\n img, video {\n max-width: 100%;\n height: auto;\n }\n button, input, select, optgroup, textarea, ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n }\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n ::placeholder {\n opacity: 1;\n }\n @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {\n ::placeholder {\n color: currentcolor;\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\n textarea {\n resize: vertical;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n :-moz-ui-invalid {\n box-shadow: none;\n }\n button, input:where([type=\"button\"], [type=\"reset\"], [type=\"submit\"]), ::file-selector-button {\n appearance: button;\n }\n ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {\n height: auto;\n }\n [hidden]:where(:not([hidden=\"until-found\"])) {\n display: none !important;\n }\n}\n@layer utilities {\n .static {\n position: static;\n }\n .mt-4 {\n margin-top: calc(var(--spacing) * 4);\n }\n .flex {\n display: flex;\n }\n .grid {\n display: grid;\n }\n .h-4 {\n height: calc(var(--spacing) * 4);\n }\n .h-10 {\n height: calc(var(--spacing) * 10);\n }\n .w-4 {\n width: calc(var(--spacing) * 4);\n }\n .w-full {\n width: 100%;\n }\n .shrink-0 {\n flex-shrink: 0;\n }\n .cursor-pointer {\n cursor: pointer;\n }\n .resize-none {\n resize: none;\n }\n .grid-cols-1 {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n }\n .items-center {\n align-items: center;\n }\n .justify-between {\n justify-content: space-between;\n }\n .gap-2 {\n gap: calc(var(--spacing) * 2);\n }\n .gap-4 {\n gap: calc(var(--spacing) * 4);\n }\n .space-y-0\\\\.5 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 0.5) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 0.5) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-4 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-6 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-x-2 {\n :where(& > :not(:last-child)) {\n --tw-space-x-reverse: 0;\n margin-inline-start: calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));\n margin-inline-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)));\n }\n }\n .rounded-t {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n }\n .border-t {\n border-top-style: var(--tw-border-style);\n border-top-width: 1px;\n }\n .border-border\\\\/50 {\n border-color: var(--border);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--border) 50%, transparent);\n }\n }\n .px-2 {\n padding-inline: calc(var(--spacing) * 2);\n }\n .py-2 {\n padding-block: calc(var(--spacing) * 2);\n }\n .pt-4 {\n padding-top: calc(var(--spacing) * 4);\n }\n .text-left {\n text-align: left;\n }\n .text-sm {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n .font-medium {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n .text-destructive {\n color: var(--destructive);\n }\n .text-muted-foreground {\n color: var(--muted-foreground);\n }\n .text-muted-foreground\\\\/60 {\n color: var(--muted-foreground);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--muted-foreground) 60%, transparent);\n }\n }\n .outline {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n .transition-colors {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-transform {\n transition-property: transform, translate, scale, rotate;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .duration-200 {\n --tw-duration: 200ms;\n transition-duration: 200ms;\n }\n .hover\\\\:bg-muted\\\\/50 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--muted);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--muted) 50%, transparent);\n }\n }\n }\n }\n .focus\\\\:ring-1 {\n &:focus {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus\\\\:ring-ring {\n &:focus {\n --tw-ring-color: var(--ring);\n }\n }\n .focus\\\\:outline-none {\n &:focus {\n --tw-outline-style: none;\n outline-style: none;\n }\n }\n .md\\\\:grid-cols-2 {\n @media (width >= 48rem) {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n }\n .md\\\\:grid-cols-3 {\n @media (width >= 48rem) {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n }\n}\n@property --tw-animation-delay {\n syntax: \"*\";\n inherits: false;\n initial-value: 0s;\n}\n@property --tw-animation-direction {\n syntax: \"*\";\n inherits: false;\n initial-value: normal;\n}\n@property --tw-animation-duration {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-animation-fill-mode {\n syntax: \"*\";\n inherits: false;\n initial-value: none;\n}\n@property --tw-animation-iteration-count {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-enter-opacity {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-enter-rotate {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-enter-scale {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-enter-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-enter-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-exit-opacity {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-exit-rotate {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-exit-scale {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-exit-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-exit-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@layer base {\n * {\n border-color: var(--border);\n outline-color: var(--ring);\n @supports (color: color-mix(in lab, red, red)) {\n outline-color: color-mix(in oklab, var(--ring) 50%, transparent);\n }\n }\n body {\n background-color: var(--background);\n color: var(--foreground);\n }\n}\n:host {\n font-family: inherit;\n line-height: inherit;\n}\n@property --tw-space-y-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-space-x-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-border-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-font-weight {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-outline-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-duration {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-inset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-ring-inset {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-offset-width {\n syntax: \"<length>\";\n inherits: false;\n initial-value: 0px;\n}\n@property --tw-ring-offset-color {\n syntax: \"*\";\n inherits: false;\n initial-value: #fff;\n}\n@property --tw-ring-offset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@layer properties {\n @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\n *, ::before, ::after, ::backdrop {\n --tw-space-y-reverse: 0;\n --tw-space-x-reverse: 0;\n --tw-border-style: solid;\n --tw-font-weight: initial;\n --tw-outline-style: solid;\n --tw-duration: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-animation-delay: 0s;\n --tw-animation-direction: normal;\n --tw-animation-duration: initial;\n --tw-animation-fill-mode: none;\n --tw-animation-iteration-count: 1;\n --tw-enter-opacity: 1;\n --tw-enter-rotate: 0;\n --tw-enter-scale: 1;\n --tw-enter-translate-x: 0;\n --tw-enter-translate-y: 0;\n --tw-exit-opacity: 1;\n --tw-exit-rotate: 0;\n --tw-exit-scale: 1;\n --tw-exit-translate-x: 0;\n --tw-exit-translate-y: 0;\n }\n }\n}\n `"
283
+ }
284
+ ],
285
+ "exports": [
286
+ {
287
+ "kind": "js",
288
+ "name": "ComponentStyles",
289
+ "declaration": {
290
+ "name": "ComponentStyles",
291
+ "module": "components/service-create/tw-styles.js"
292
+ }
293
+ }
294
+ ]
295
+ }
296
+ ],
297
+ "package": {
298
+ "name": "@elixir-cloud/cloud-registry",
299
+ "description": "Web Component for interacting with Elixir Cloud Registry",
300
+ "version": "2.0.0-alpha.28",
301
+ "license": "Apache-2.0"
302
+ }
303
+ }
@@ -0,0 +1,8 @@
1
+ export type EccServiceCreateFailedEvent = CustomEvent<{
2
+ error: string;
3
+ }>;
4
+ declare global {
5
+ interface GlobalEventHandlersEventMap {
6
+ "ecc-service-create-failed": EccServiceCreateFailedEvent;
7
+ }
8
+ }
@@ -0,0 +1,8 @@
1
+ export type EccServiceCreateValidationFailedEvent = CustomEvent<{
2
+ error: string;
3
+ }>;
4
+ declare global {
5
+ interface GlobalEventHandlersEventMap {
6
+ "ecc-service-create-validation-failed": EccServiceCreateValidationFailedEvent;
7
+ }
8
+ }
@@ -0,0 +1,11 @@
1
+ import { ExternalServiceRegister } from "../providers/index.js";
2
+ export type EccServiceCreatedEvent = CustomEvent<{
3
+ serviceId: string;
4
+ serviceData: ExternalServiceRegister;
5
+ message: string;
6
+ }>;
7
+ declare global {
8
+ interface GlobalEventHandlersEventMap {
9
+ "ecc-service-created": EccServiceCreatedEvent;
10
+ }
11
+ }
@@ -0,0 +1,3 @@
1
+ export type { EccServiceCreatedEvent } from "./ecc-service-created.js";
2
+ export type { EccServiceCreateFailedEvent } from "./ecc-service-create-failed.js";
3
+ export type { EccServiceCreateValidationFailedEvent } from "./ecc-service-create-validation-failed.js";
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Global styles that can be applied to all components
3
+ */
4
+ export declare const GlobalStyles: import("lit").CSSResult;
@@ -0,0 +1 @@
1
+ import "./components/index.js";
package/dist/index.js ADDED
@@ -0,0 +1,6 @@
1
+ import './chunks/chunk.3WU6NPWM.js';
2
+ import './chunks/chunk.XMLA2YKQ.js';
3
+ import './chunks/chunk.V3D32NZ5.js';
4
+ import './chunks/chunk.HM342EMQ.js';
5
+ import './chunks/chunk.HIA3DP4L.js';
6
+ import './chunks/chunk.S3NI7NKU.js';
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Types for the ELIXIR Cloud Registry API based on OpenAPI specification v1.0.0
3
+ */
4
+ import { ServiceRegistryProvider, ServiceType, Organization, Service, ExternalService, Error } from "@elixir-cloud/service-registry/dist/providers";
5
+ export type { ServiceType, Organization, Service, ExternalService, Error };
6
+ /**
7
+ * Cloud Registry specific types that extend the base GA4GH Service Registry types
8
+ */
9
+ export interface ServiceTypeRegister {
10
+ group: string;
11
+ artifact: string;
12
+ version: string;
13
+ }
14
+ export interface ServiceRegister {
15
+ id: string;
16
+ name: string;
17
+ type: ServiceTypeRegister;
18
+ description?: string;
19
+ organization: Organization;
20
+ contactUrl?: string;
21
+ documentationUrl?: string;
22
+ createdAt?: string;
23
+ updatedAt?: string;
24
+ environment?: string;
25
+ version: string;
26
+ }
27
+ export interface ExternalServiceRegister {
28
+ name: string;
29
+ type: ServiceTypeRegister;
30
+ description?: string;
31
+ organization: Organization;
32
+ contactUrl?: string;
33
+ documentationUrl?: string;
34
+ createdAt?: string;
35
+ updatedAt?: string;
36
+ environment?: string;
37
+ version: string;
38
+ url: string;
39
+ }
40
+ /**
41
+ * Interface defining the operations required for Cloud Registry data providers
42
+ * Extends the base ServiceRegistryProvider with Cloud Registry specific creation and deletion operations
43
+ */
44
+ export interface CloudRegistryProvider extends ServiceRegistryProvider {
45
+ createService(service: ExternalServiceRegister): Promise<string>;
46
+ createServiceWithId(id: string, service: ExternalServiceRegister): Promise<string>;
47
+ updateService(id: string, service: ExternalServiceRegister): Promise<string>;
48
+ deleteService?(id: string): Promise<string>;
49
+ createOrUpdateServiceInfo?(service: ServiceRegister): Promise<void>;
50
+ }
@@ -0,0 +1 @@
1
+ import '../chunks/chunk.U3XZVV4K.js';
@@ -0,0 +1,3 @@
1
+ export { CloudRegistryProvider } from "./cr-provider.js";
2
+ export { RestCloudRegistryProvider } from "./rest-cr-provider.js";
3
+ export type { Service, ServiceType, Organization, ExternalService, Error, ServiceTypeRegister, ServiceRegister, ExternalServiceRegister, } from "./cr-provider.js";
@@ -0,0 +1,3 @@
1
+ import '../chunks/chunk.U3XZVV4K.js';
2
+ export { RestCloudRegistryProvider } from '../chunks/chunk.HIA3DP4L.js';
3
+ import '../chunks/chunk.S3NI7NKU.js';
@@ -0,0 +1,62 @@
1
+ import { CloudRegistryProvider, ExternalService, Service, ServiceType, ExternalServiceRegister, ServiceRegister } from "./cr-provider.js";
2
+ /**
3
+ * Implementation of the CloudRegistryProvider interface using direct REST API calls
4
+ * This class combines the functionality of ServiceRegistryAPI and RestCloudRegistryProvider
5
+ */
6
+ export declare class RestCloudRegistryProvider implements CloudRegistryProvider {
7
+ readonly baseUrl: string;
8
+ constructor(baseUrl: string);
9
+ /**
10
+ * Fetch list of services from the registry
11
+ * @returns Promise resolving to array of services
12
+ */
13
+ getServices(): Promise<ExternalService[]>;
14
+ /**
15
+ * Fetch a specific service by ID
16
+ * @param serviceId ID of the service to fetch
17
+ * @returns Promise resolving to service details
18
+ */
19
+ getServiceById(serviceId: string): Promise<ExternalService>;
20
+ /**
21
+ * Fetch types of services exposed by the registry
22
+ * @returns Promise resolving to array of service types
23
+ */
24
+ getServiceTypes(): Promise<ServiceType[]>;
25
+ /**
26
+ * Fetch information about the registry
27
+ * @returns Promise resolving to service information
28
+ */
29
+ getServiceInfo(): Promise<Service>;
30
+ /**
31
+ * Create a service in the registry
32
+ * @param service Service metadata to register
33
+ * @returns Promise resolving to service identifier
34
+ */
35
+ createService(service: ExternalServiceRegister): Promise<string>;
36
+ /**
37
+ * Create or update a service with a specific ID
38
+ * @param id Service identifier
39
+ * @param service Service metadata to register
40
+ * @returns Promise resolving to service identifier
41
+ */
42
+ createServiceWithId(id: string, service: ExternalServiceRegister): Promise<string>;
43
+ /**
44
+ * Update a service in the registry
45
+ * @param id Service identifier
46
+ * @param service Service metadata to update
47
+ * @returns Promise resolving to service identifier
48
+ */
49
+ updateService(id: string, service: ExternalServiceRegister): Promise<string>;
50
+ /**
51
+ * Delete a service from the registry
52
+ * @param id Service identifier
53
+ * @returns Promise resolving to service identifier
54
+ */
55
+ deleteService(id: string): Promise<string>;
56
+ /**
57
+ * Create or update the service info
58
+ * @param service Service info to register
59
+ * @returns Promise resolving when service info is updated
60
+ */
61
+ createOrUpdateServiceInfo(service: ServiceRegister): Promise<void>;
62
+ }
@@ -0,0 +1,2 @@
1
+ export { RestCloudRegistryProvider } from '../chunks/chunk.HIA3DP4L.js';
2
+ import '../chunks/chunk.S3NI7NKU.js';
@@ -0,0 +1 @@
1
+ export { default as ECCClientElixirCloudRegistryServiceCreate } from './service-create/index.js';
@@ -0,0 +1,5 @@
1
+ export { service_create_default as ECCClientElixirCloudRegistryServiceCreate } from '../chunks/chunk.SG7Q2SX3.js';
2
+ import '../chunks/chunk.V3D32NZ5.js';
3
+ import '../chunks/chunk.HM342EMQ.js';
4
+ import '../chunks/chunk.HIA3DP4L.js';
5
+ import '../chunks/chunk.S3NI7NKU.js';
@@ -0,0 +1,25 @@
1
+ import { ECCClientElixirCloudRegistryServiceCreate as Component } from "../../components/service-create/service-create.js";
2
+ import type { EventName } from "@lit/react";
3
+ import type { EccServiceCreateValidationFailedEvent } from "../../events/index.js";
4
+ import type { EccServiceCreateFailedEvent } from "../../events/index.js";
5
+ import type { EccServiceCreatedEvent } from "../../events/index.js";
6
+ export type { EccServiceCreateValidationFailedEvent } from "../../events/index.js";
7
+ export type { EccServiceCreateFailedEvent } from "../../events/index.js";
8
+ export type { EccServiceCreatedEvent } from "../../events/index.js";
9
+ /**
10
+ * @summary Component for creating new services in Cloud Registry
11
+ * @since 2.0.0
12
+ *
13
+ * @property {string} baseUrl - Base URL of the Cloud Registry instance/gateway
14
+ * @property {CloudRegistryProvider} provider - Custom data provider (optional, overrides baseUrl)
15
+ *
16
+ * @fires ecc-service-created - Fired when a service is successfully created (includes serviceId, serviceData, and success message)
17
+ * @fires ecc-service-create-failed - Fired when service creation fails
18
+ * @fires ecc-service-create-validation-failed - Fired when there are validation errors during service creation
19
+ */
20
+ declare const reactWrapper: import("@lit/react").ReactWebComponent<Component, {
21
+ onEccServiceCreateValidationFailed: EventName<EccServiceCreateValidationFailedEvent>;
22
+ onEccServiceCreateFailed: EventName<EccServiceCreateFailedEvent>;
23
+ onEccServiceCreated: EventName<EccServiceCreatedEvent>;
24
+ }>;
25
+ export default reactWrapper;