@motiadev/plugin-endpoint 0.7.2-beta.135-745094 → 0.7.2-beta.135-994416

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 (157) hide show
  1. package/dist/components/configuration-list-item.d.ts +12 -0
  2. package/dist/components/configuration-list-item.d.ts.map +1 -0
  3. package/dist/components/configuration-list-item.js +36 -0
  4. package/dist/components/configuration-list-item.js.map +1 -0
  5. package/dist/components/endpoint-badge.d.ts +8 -0
  6. package/dist/components/endpoint-badge.d.ts.map +1 -0
  7. package/dist/components/endpoint-badge.js +29 -0
  8. package/dist/components/endpoint-badge.js.map +1 -0
  9. package/dist/components/endpoint-item.d.ts +11 -0
  10. package/dist/components/endpoint-item.d.ts.map +1 -0
  11. package/dist/components/endpoint-item.js +5 -0
  12. package/dist/components/endpoint-item.js.map +1 -0
  13. package/dist/components/endpoint-path-preview.d.ts +8 -0
  14. package/dist/components/endpoint-path-preview.d.ts.map +1 -0
  15. package/dist/components/endpoint-path-preview.js +22 -0
  16. package/dist/components/endpoint-path-preview.js.map +1 -0
  17. package/dist/components/endpoint-path.d.ts +8 -0
  18. package/dist/components/endpoint-path.d.ts.map +1 -0
  19. package/dist/components/endpoint-path.js +25 -0
  20. package/dist/components/endpoint-path.js.map +1 -0
  21. package/dist/components/endpoints-search.d.ts +8 -0
  22. package/dist/components/endpoints-search.d.ts.map +1 -0
  23. package/dist/components/endpoints-search.js +10 -0
  24. package/dist/components/endpoints-search.js.map +1 -0
  25. package/dist/components/flow-group.d.ts +15 -0
  26. package/dist/components/flow-group.d.ts.map +1 -0
  27. package/dist/components/flow-group.js +13 -0
  28. package/dist/components/flow-group.js.map +1 -0
  29. package/dist/{json-editor.d.ts → components/json-editor.d.ts} +0 -1
  30. package/dist/components/json-editor.d.ts.map +1 -0
  31. package/dist/components/json-editor.js +68 -0
  32. package/dist/components/json-editor.js.map +1 -0
  33. package/dist/endpoints-page.d.ts.map +1 -1
  34. package/dist/endpoints-page.js +24 -10
  35. package/dist/endpoints-page.js.map +1 -1
  36. package/dist/hooks/use-endpoint-configuration.d.ts +78 -0
  37. package/dist/hooks/use-endpoint-configuration.d.ts.map +1 -0
  38. package/dist/hooks/use-endpoint-configuration.js +130 -0
  39. package/dist/hooks/use-endpoint-configuration.js.map +1 -0
  40. package/dist/hooks/use-get-endpoints.d.ts +4 -1
  41. package/dist/hooks/use-get-endpoints.d.ts.map +1 -1
  42. package/dist/hooks/use-get-endpoints.js +15 -1
  43. package/dist/hooks/use-get-endpoints.js.map +1 -1
  44. package/dist/hooks/use-json-schema-to-json.d.ts.map +1 -1
  45. package/dist/hooks/use-json-schema-to-json.js.map +1 -1
  46. package/dist/hooks/use-path-url.d.ts +2 -0
  47. package/dist/hooks/use-path-url.d.ts.map +1 -0
  48. package/dist/hooks/use-path-url.js +15 -0
  49. package/dist/hooks/use-path-url.js.map +1 -0
  50. package/dist/play/reponse-code/utils.d.ts +2 -0
  51. package/dist/play/reponse-code/utils.d.ts.map +1 -0
  52. package/dist/play/reponse-code/utils.js +73 -0
  53. package/dist/play/reponse-code/utils.js.map +1 -0
  54. package/dist/play/response-code.d.ts +7 -0
  55. package/dist/play/response-code.d.ts.map +1 -0
  56. package/dist/play/response-code.js +11 -0
  57. package/dist/play/response-code.js.map +1 -0
  58. package/dist/play/side-panel-body-tab.d.ts +7 -0
  59. package/dist/play/side-panel-body-tab.d.ts.map +1 -0
  60. package/dist/play/side-panel-body-tab.js +24 -0
  61. package/dist/play/side-panel-body-tab.js.map +1 -0
  62. package/dist/play/side-panel-headers-tab.d.ts +2 -0
  63. package/dist/play/side-panel-headers-tab.d.ts.map +1 -0
  64. package/dist/play/side-panel-headers-tab.js +26 -0
  65. package/dist/play/side-panel-headers-tab.js.map +1 -0
  66. package/dist/play/side-panel-params-tab.d.ts +6 -0
  67. package/dist/play/side-panel-params-tab.d.ts.map +1 -0
  68. package/dist/play/side-panel-params-tab.js +39 -0
  69. package/dist/play/side-panel-params-tab.js.map +1 -0
  70. package/dist/play/side-panel-response.d.ts +2 -0
  71. package/dist/play/side-panel-response.d.ts.map +1 -0
  72. package/dist/play/side-panel-response.js +21 -0
  73. package/dist/play/side-panel-response.js.map +1 -0
  74. package/dist/play/side-panel.d.ts +9 -0
  75. package/dist/play/side-panel.d.ts.map +1 -0
  76. package/dist/play/side-panel.js +25 -0
  77. package/dist/play/side-panel.js.map +1 -0
  78. package/dist/play/trigger-button.d.ts +7 -0
  79. package/dist/play/trigger-button.d.ts.map +1 -0
  80. package/dist/play/trigger-button.js +40 -0
  81. package/dist/play/trigger-button.js.map +1 -0
  82. package/dist/{endpoint-body-panel.d.ts → spec/spec-body-panel.d.ts} +2 -4
  83. package/dist/spec/spec-body-panel.d.ts.map +1 -0
  84. package/dist/spec/spec-body-panel.js +13 -0
  85. package/dist/spec/spec-body-panel.js.map +1 -0
  86. package/dist/spec/spec-path-params-panel.d.ts +8 -0
  87. package/dist/spec/spec-path-params-panel.d.ts.map +1 -0
  88. package/dist/spec/spec-path-params-panel.js +11 -0
  89. package/dist/spec/spec-path-params-panel.js.map +1 -0
  90. package/dist/spec/spec-query-params-panel.d.ts +8 -0
  91. package/dist/spec/spec-query-params-panel.d.ts.map +1 -0
  92. package/dist/spec/spec-query-params-panel.js +10 -0
  93. package/dist/spec/spec-query-params-panel.js.map +1 -0
  94. package/dist/{endpoint-response-schema.d.ts → spec/spec-response-schema.d.ts} +1 -1
  95. package/dist/spec/spec-response-schema.d.ts.map +1 -0
  96. package/dist/{endpoint-response-schema.js → spec/spec-response-schema.js} +3 -4
  97. package/dist/spec/spec-response-schema.js.map +1 -0
  98. package/dist/spec/spec-side-panel.d.ts +9 -0
  99. package/dist/spec/spec-side-panel.d.ts.map +1 -0
  100. package/dist/spec/spec-side-panel.js +22 -0
  101. package/dist/spec/spec-side-panel.js.map +1 -0
  102. package/dist/styles.css +707 -74
  103. package/dist/types/endpoint.d.ts +1 -0
  104. package/dist/types/endpoint.d.ts.map +1 -1
  105. package/package.json +3 -4
  106. package/dist/endpoint-badge.d.ts +0 -11
  107. package/dist/endpoint-badge.d.ts.map +0 -1
  108. package/dist/endpoint-badge.js +0 -23
  109. package/dist/endpoint-badge.js.map +0 -1
  110. package/dist/endpoint-body-panel.d.ts.map +0 -1
  111. package/dist/endpoint-body-panel.js +0 -17
  112. package/dist/endpoint-body-panel.js.map +0 -1
  113. package/dist/endpoint-call.d.ts +0 -8
  114. package/dist/endpoint-call.d.ts.map +0 -1
  115. package/dist/endpoint-call.js +0 -59
  116. package/dist/endpoint-call.js.map +0 -1
  117. package/dist/endpoint-description.d.ts +0 -8
  118. package/dist/endpoint-description.d.ts.map +0 -1
  119. package/dist/endpoint-description.js +0 -14
  120. package/dist/endpoint-description.js.map +0 -1
  121. package/dist/endpoint-path-params-panel.d.ts +0 -9
  122. package/dist/endpoint-path-params-panel.d.ts.map +0 -1
  123. package/dist/endpoint-path-params-panel.js +0 -18
  124. package/dist/endpoint-path-params-panel.js.map +0 -1
  125. package/dist/endpoint-query-params-panel.d.ts +0 -9
  126. package/dist/endpoint-query-params-panel.d.ts.map +0 -1
  127. package/dist/endpoint-query-params-panel.js +0 -17
  128. package/dist/endpoint-query-params-panel.js.map +0 -1
  129. package/dist/endpoint-response-schema.d.ts.map +0 -1
  130. package/dist/endpoint-response-schema.js.map +0 -1
  131. package/dist/endpoint-response.d.ts +0 -9
  132. package/dist/endpoint-response.d.ts.map +0 -1
  133. package/dist/endpoint-response.js +0 -51
  134. package/dist/endpoint-response.js.map +0 -1
  135. package/dist/endpoint-side-panel.d.ts +0 -9
  136. package/dist/endpoint-side-panel.d.ts.map +0 -1
  137. package/dist/endpoint-side-panel.js +0 -26
  138. package/dist/endpoint-side-panel.js.map +0 -1
  139. package/dist/hooks/use-global-store.d.ts +0 -27
  140. package/dist/hooks/use-global-store.d.ts.map +0 -1
  141. package/dist/hooks/use-global-store.js +0 -21
  142. package/dist/hooks/use-global-store.js.map +0 -1
  143. package/dist/json-editor.d.ts.map +0 -1
  144. package/dist/json-editor.js +0 -36
  145. package/dist/json-editor.js.map +0 -1
  146. package/dist/response-body.d.ts +0 -8
  147. package/dist/response-body.d.ts.map +0 -1
  148. package/dist/response-body.js +0 -7
  149. package/dist/response-body.js.map +0 -1
  150. package/dist/stores/use-global-store.d.ts +0 -27
  151. package/dist/stores/use-global-store.d.ts.map +0 -1
  152. package/dist/stores/use-global-store.js +0 -21
  153. package/dist/stores/use-global-store.js.map +0 -1
  154. package/dist/stores/use-theme-store.d.ts +0 -19
  155. package/dist/stores/use-theme-store.d.ts.map +0 -1
  156. package/dist/stores/use-theme-store.js +0 -27
  157. package/dist/stores/use-theme-store.js.map +0 -1
@@ -0,0 +1,40 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Button } from '@motiadev/ui';
3
+ import { Loader2, Play } from 'lucide-react';
4
+ import { memo, useState } from 'react';
5
+ import { useShallow } from 'zustand/react/shallow';
6
+ import { getBodySelector, getHeadersSelector, useEndpointConfiguration, } from '../hooks/use-endpoint-configuration';
7
+ import { usePathUrl } from '../hooks/use-path-url';
8
+ export const TriggerButton = memo(({ method, path }) => {
9
+ const { setResponse } = useEndpointConfiguration();
10
+ const headers = useEndpointConfiguration(useShallow(getHeadersSelector));
11
+ const body = useEndpointConfiguration(useShallow(getBodySelector));
12
+ const pathUrl = usePathUrl(path);
13
+ const [isLoading, setIsLoading] = useState(false);
14
+ const onClick = async () => {
15
+ try {
16
+ setIsLoading(true);
17
+ const _headers = Object.values(headers)
18
+ .filter((header) => header.active && header.name !== '' && header.value !== '')
19
+ .reduce((acc, header) => {
20
+ acc[header.name.toLowerCase()] = header.value;
21
+ return acc;
22
+ }, {});
23
+ const startTime = Date.now();
24
+ const response = await fetch(pathUrl, {
25
+ method: method,
26
+ headers: _headers,
27
+ body: ['GET', 'DELETE', 'HEAD', 'OPTIONS'].includes(method) ? null : body,
28
+ });
29
+ setResponse(response, startTime);
30
+ }
31
+ catch (error) {
32
+ console.error('Error triggering endpoint:', error);
33
+ }
34
+ finally {
35
+ setIsLoading(false);
36
+ }
37
+ };
38
+ return (_jsx(Button, { variant: "ghost", size: "icon", onClick: onClick, disabled: isLoading, "data-testid": "endpoint-play-button", children: isLoading ? _jsx(Loader2, { className: "animate-spin" }) : _jsx(Play, { className: "h-4 w-4" }) }));
39
+ });
40
+ //# sourceMappingURL=trigger-button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trigger-button.js","sourceRoot":"","sources":["../../src/play/trigger-button.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAEL,eAAe,EACf,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAOlD,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAsB,EAAE,EAAE;IACzE,MAAM,EAAE,WAAW,EAAE,GAAG,wBAAwB,EAAE,CAAA;IAClD,MAAM,OAAO,GAAG,wBAAwB,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAA;IACxE,MAAM,IAAI,GAAG,wBAAwB,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAA;IAClE,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;IAEhC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAEjD,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;QACzB,IAAI,CAAC;YACH,YAAY,CAAC,IAAI,CAAC,CAAA;YAElB,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;iBACpC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,EAAE,IAAI,MAAM,CAAC,KAAK,KAAK,EAAE,CAAC;iBAC9E,MAAM,CACL,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;gBACd,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,CAAA;gBAC7C,OAAO,GAAG,CAAA;YACZ,CAAC,EACD,EAA4B,CAC7B,CAAA;YAEH,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YAC5B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE;gBACpC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,QAAQ;gBACjB,IAAI,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;aAC1E,CAAC,CAAA;YAEF,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;QAClC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAA;QACpD,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAA;QACrB,CAAC;IACH,CAAC,CAAA;IAED,OAAO,CACL,KAAC,MAAM,IAAC,OAAO,EAAC,OAAO,EAAC,IAAI,EAAC,MAAM,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,iBAAc,sBAAsB,YAC1G,SAAS,CAAC,CAAC,CAAC,KAAC,OAAO,IAAC,SAAS,EAAC,cAAc,GAAG,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,SAAS,EAAC,SAAS,GAAG,GACzE,CACV,CAAA;AACH,CAAC,CAAC,CAAA"}
@@ -1,14 +1,12 @@
1
- import { ApiEndpoint } from './types/endpoint';
2
1
  import { FC } from 'react';
3
2
  import 'react18-json-view/src/dark.css';
4
3
  import 'react18-json-view/src/style.css';
4
+ import { ApiEndpoint } from '../types/endpoint';
5
5
  type Props = {
6
6
  endpoint: ApiEndpoint;
7
7
  value: string;
8
- onChange?: (body: string) => void;
9
- onValidate?: (isValid: boolean) => void;
10
8
  panelName: string;
11
9
  };
12
10
  export declare const EndpointBodyPanel: FC<Props>;
13
11
  export {};
14
- //# sourceMappingURL=endpoint-body-panel.d.ts.map
12
+ //# sourceMappingURL=spec-body-panel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec-body-panel.d.ts","sourceRoot":"","sources":["../../src/spec/spec-body-panel.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAE1B,OAAO,gCAAgC,CAAA;AACvC,OAAO,iCAAiC,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/C,KAAK,KAAK,GAAG;IACX,QAAQ,EAAE,WAAW,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,EAAE,CAAC,KAAK,CAiBvC,CAAA"}
@@ -0,0 +1,13 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Panel } from '@motiadev/ui';
3
+ import ReactJson from 'react18-json-view';
4
+ import 'react18-json-view/src/dark.css';
5
+ import 'react18-json-view/src/style.css';
6
+ export const EndpointBodyPanel = ({ endpoint, panelName, value }) => {
7
+ const shouldHaveBody = ['post', 'put', 'patch'].includes(endpoint.method.toLowerCase());
8
+ if (!shouldHaveBody) {
9
+ return null;
10
+ }
11
+ return (_jsx(Panel, { title: "Body", size: "sm", contentClassName: "p-0", "data-testid": `endpoint-body-panel__${panelName}`, children: _jsx(ReactJson, { src: value ? JSON.parse(value) : {}, theme: "default", enableClipboard: false, style: { backgroundColor: 'transparent' } }) }));
12
+ };
13
+ //# sourceMappingURL=spec-body-panel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec-body-panel.js","sourceRoot":"","sources":["../../src/spec/spec-body-panel.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAEpC,OAAO,SAAS,MAAM,mBAAmB,CAAA;AACzC,OAAO,gCAAgC,CAAA;AACvC,OAAO,iCAAiC,CAAA;AASxC,MAAM,CAAC,MAAM,iBAAiB,GAAc,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE;IAC7E,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAA;IAEvF,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,CACL,KAAC,KAAK,IAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,gBAAgB,EAAC,KAAK,iBAAc,wBAAwB,SAAS,EAAE,YACnG,KAAC,SAAS,IACR,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EACnC,KAAK,EAAC,SAAS,EACf,eAAe,EAAE,KAAK,EACtB,KAAK,EAAE,EAAE,eAAe,EAAE,aAAa,EAAE,GACzC,GACI,CACT,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { FC } from 'react';
2
+ import { ApiEndpoint } from '../types/endpoint';
3
+ type Props = {
4
+ endpoint: ApiEndpoint;
5
+ };
6
+ export declare const EndpointPathParamsPanel: FC<Props>;
7
+ export {};
8
+ //# sourceMappingURL=spec-path-params-panel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec-path-params-panel.d.ts","sourceRoot":"","sources":["../../src/spec/spec-path-params-panel.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAE1B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/C,KAAK,KAAK,GAAG;IACX,QAAQ,EAAE,WAAW,CAAA;CACtB,CAAA;AAED,eAAO,MAAM,uBAAuB,EAAE,EAAE,CAAC,KAAK,CAkB7C,CAAA"}
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Panel } from '@motiadev/ui';
3
+ import { usePathParams } from '../hooks/use-path-params';
4
+ export const EndpointPathParamsPanel = ({ endpoint }) => {
5
+ const pathParams = usePathParams(endpoint.path);
6
+ if (!pathParams.length) {
7
+ return null;
8
+ }
9
+ return (_jsx(Panel, { title: "Path params", size: "sm", variant: "default", children: _jsx("div", { className: "grid gap-3", style: { gridTemplateColumns: '1fr 2fr' }, children: pathParams.map((param) => (_jsx("div", { className: "font-bold leading-[36px] flex text-xs", children: param }, param))) }) }));
10
+ };
11
+ //# sourceMappingURL=spec-path-params-panel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec-path-params-panel.js","sourceRoot":"","sources":["../../src/spec/spec-path-params-panel.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAEpC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAOxD,MAAM,CAAC,MAAM,uBAAuB,GAAc,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;IACjE,MAAM,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAE/C,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QACvB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,CACL,KAAC,KAAK,IAAC,KAAK,EAAC,aAAa,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAC,SAAS,YACpD,cAAK,SAAS,EAAC,YAAY,EAAC,KAAK,EAAE,EAAE,mBAAmB,EAAE,SAAS,EAAE,YAClE,UAAU,CAAC,GAAG,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,CACjC,cAAiB,SAAS,EAAC,uCAAuC,YAC/D,KAAK,IADE,KAAK,CAET,CACP,CAAC,GACE,GACA,CACT,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { FC } from 'react';
2
+ import { ApiEndpoint } from '../types/endpoint';
3
+ type Props = {
4
+ endpoint: ApiEndpoint;
5
+ };
6
+ export declare const EndpointQueryParamsPanel: FC<Props>;
7
+ export {};
8
+ //# sourceMappingURL=spec-query-params-panel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec-query-params-panel.d.ts","sourceRoot":"","sources":["../../src/spec/spec-query-params-panel.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAY,MAAM,OAAO,CAAA;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/C,KAAK,KAAK,GAAG;IACX,QAAQ,EAAE,WAAW,CAAA;CACtB,CAAA;AAED,eAAO,MAAM,wBAAwB,EAAE,EAAE,CAAC,KAAK,CAmB9C,CAAA"}
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Panel } from '@motiadev/ui';
3
+ import { Fragment } from 'react';
4
+ export const EndpointQueryParamsPanel = ({ endpoint }) => {
5
+ if (!endpoint.queryParams?.length) {
6
+ return null;
7
+ }
8
+ return (_jsx(Panel, { title: "Query params", size: "sm", variant: "outlined", children: _jsx("div", { className: "grid gap-3", style: { gridTemplateColumns: '1fr 2fr', gridTemplateRows: '1fr 1fr' }, children: endpoint.queryParams.map((param) => (_jsxs(Fragment, { children: [_jsx("div", { className: "font-bold leading-[36px] flex text-xs", children: param.name }), _jsx("div", { className: "flex items-center text-xs ", children: _jsx("span", { children: param.description }) })] }, param.name))) }) }));
9
+ };
10
+ //# sourceMappingURL=spec-query-params-panel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec-query-params-panel.js","sourceRoot":"","sources":["../../src/spec/spec-query-params-panel.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AACpC,OAAO,EAAM,QAAQ,EAAE,MAAM,OAAO,CAAA;AAOpC,MAAM,CAAC,MAAM,wBAAwB,GAAc,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;IAClE,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;QAClC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,CACL,KAAC,KAAK,IAAC,KAAK,EAAC,cAAc,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAC,UAAU,YACtD,cAAK,SAAS,EAAC,YAAY,EAAC,KAAK,EAAE,EAAE,mBAAmB,EAAE,SAAS,EAAE,gBAAgB,EAAE,SAAS,EAAE,YAC/F,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAA4C,EAAE,EAAE,CAAC,CAC1E,MAAC,QAAQ,eACP,cAAK,SAAS,EAAC,uCAAuC,YAAE,KAAK,CAAC,IAAI,GAAO,EACzE,cAAK,SAAS,EAAC,4BAA4B,YACzC,yBAAO,KAAK,CAAC,WAAW,GAAQ,GAC5B,KAJO,KAAK,CAAC,IAAI,CAKd,CACZ,CAAC,GACE,GACA,CACT,CAAA;AACH,CAAC,CAAA"}
@@ -8,4 +8,4 @@ type EndpointResponseProps = {
8
8
  };
9
9
  export declare const EndpointResponseSchema: FC<EndpointResponseProps>;
10
10
  export {};
11
- //# sourceMappingURL=endpoint-response-schema.d.ts.map
11
+ //# sourceMappingURL=spec-response-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec-response-schema.d.ts","sourceRoot":"","sources":["../../src/spec/spec-response-schema.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAW,MAAM,OAAO,CAAA;AAInC,MAAM,MAAM,oBAAoB,GAAG;IACjC,YAAY,EAAE,MAAM,CAAA;IAEpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAA;CAChD,CAAA;AAED,KAAK,qBAAqB,GAAG;IAC3B,KAAK,EAAE,oBAAoB,EAAE,CAAA;CAC9B,CAAA;AAoBD,eAAO,MAAM,sBAAsB,EAAE,EAAE,CAAC,qBAAqB,CA4B5D,CAAA"}
@@ -1,9 +1,8 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { convertJsonSchemaToJson } from './hooks/utils';
3
- import { useThemeStore } from './stores/use-theme-store';
4
- import { Tabs, TabsContent, TabsList, TabsTrigger } from '@motiadev/ui';
2
+ import { Tabs, TabsContent, TabsList, TabsTrigger, useThemeStore } from '@motiadev/ui';
5
3
  import { useMemo } from 'react';
6
4
  import ReactJson from 'react18-json-view';
5
+ import { convertJsonSchemaToJson } from '../hooks/utils';
7
6
  const EndpointResponseSchemaItem = ({ responseCode, bodySchema }) => {
8
7
  const theme = useThemeStore((store) => store.theme);
9
8
  const schema = useMemo(() => convertJsonSchemaToJson(bodySchema), [bodySchema]);
@@ -15,4 +14,4 @@ export const EndpointResponseSchema = ({ items }) => {
15
14
  }
16
15
  return (_jsx("div", { className: "flex flex-col rounded-lg border", children: _jsxs(Tabs, { defaultValue: items[0].responseCode, children: [_jsx("div", { className: "flex items-center justify-between bg-card", children: _jsx(TabsList, { className: "bg-transparent p-0", children: items.map((item) => (_jsx(TabsTrigger, { value: item.responseCode, className: "text-xs font-bold cursor-pointer", children: item.responseCode }, item.responseCode))) }) }), items.map((props) => (_jsx(EndpointResponseSchemaItem, { ...props }, props.responseCode)))] }) }));
17
16
  };
18
- //# sourceMappingURL=endpoint-response-schema.js.map
17
+ //# sourceMappingURL=spec-response-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec-response-schema.js","sourceRoot":"","sources":["../../src/spec/spec-response-schema.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACtF,OAAO,EAAM,OAAO,EAAE,MAAM,OAAO,CAAA;AACnC,OAAO,SAAS,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;AAYxD,MAAM,0BAA0B,GAA6B,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,EAAE;IAC5F,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,KAAwB,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACtE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,uBAAuB,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAA;IAE/E,OAAO,CACL,KAAC,WAAW,IAAC,KAAK,EAAE,YAAY,EAAqB,SAAS,EAAC,UAAU,YACvE,cAAK,SAAS,EAAC,kDAAkD,YAC/D,KAAC,SAAS,IACR,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,KAAK,KAAK,MAAM,EACtB,eAAe,EAAE,KAAK,EACtB,KAAK,EAAE,EAAE,eAAe,EAAE,aAAa,EAAE,GACzC,GACE,IAR+B,YAAY,CASrC,CACf,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,sBAAsB,GAA8B,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IAC7E,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,CACL,cAAK,SAAS,EAAC,iCAAiC,YAC9C,MAAC,IAAI,IAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,aACvC,cAAK,SAAS,EAAC,2CAA2C,YACxD,KAAC,QAAQ,IAAC,SAAS,EAAC,oBAAoB,YACrC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,KAAC,WAAW,IACV,KAAK,EAAE,IAAI,CAAC,YAAY,EAExB,SAAS,EAAC,kCAAkC,YAE3C,IAAI,CAAC,YAAY,IAHb,IAAI,CAAC,YAAY,CAIV,CACf,CAAC,GACO,GACP,EAEL,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACpB,KAAC,0BAA0B,OAA8B,KAAK,IAA7B,KAAK,CAAC,YAAY,CAAe,CACnE,CAAC,IACG,GACH,CACP,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,9 @@
1
+ import { FC } from 'react';
2
+ import { ApiEndpoint } from '../types/endpoint';
3
+ type Props = {
4
+ endpoint: ApiEndpoint;
5
+ onClose: () => void;
6
+ };
7
+ export declare const SpecSidePanel: FC<Props>;
8
+ export {};
9
+ //# sourceMappingURL=spec-side-panel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec-side-panel.d.ts","sourceRoot":"","sources":["../../src/spec/spec-side-panel.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAG1B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAM/C,KAAK,KAAK,GAAG;IAAE,QAAQ,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,CAAA;AAE3D,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,KAAK,CA2BnC,CAAA"}
@@ -0,0 +1,22 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Sidebar } from '@motiadev/ui';
3
+ import { X } from 'lucide-react';
4
+ import { EndpointPath } from '../components/endpoint-path';
5
+ import { useJsonSchemaToJson } from '../hooks/use-json-schema-to-json';
6
+ import { EndpointBodyPanel } from './spec-body-panel';
7
+ import { EndpointPathParamsPanel } from './spec-path-params-panel';
8
+ import { EndpointQueryParamsPanel } from './spec-query-params-panel';
9
+ import { EndpointResponseSchema } from './spec-response-schema';
10
+ export const SpecSidePanel = ({ endpoint, onClose }) => {
11
+ const { body } = useJsonSchemaToJson(endpoint.bodySchema);
12
+ return (_jsxs(Sidebar, { initialWidth: 600, subtitle: endpoint.description, title: _jsx(EndpointPath, { method: endpoint.method, path: endpoint.path }), onClose: onClose, actions: [
13
+ {
14
+ icon: _jsx(X, { className: "cursor-pointer w-4 h-4", onClick: onClose }),
15
+ onClick: onClose,
16
+ },
17
+ ], children: [_jsx(EndpointPathParamsPanel, { endpoint: endpoint }), _jsx(EndpointQueryParamsPanel, { endpoint: endpoint }), _jsx(EndpointBodyPanel, { endpoint: endpoint, panelName: "details", value: body }), _jsx(EndpointResponseSchema, { items: Object.entries(endpoint?.responseSchema ?? {}).map(([status, schema]) => ({
18
+ responseCode: status,
19
+ bodySchema: schema,
20
+ })) })] }));
21
+ };
22
+ //# sourceMappingURL=spec-side-panel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec-side-panel.js","sourceRoot":"","sources":["../../src/spec/spec-side-panel.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,CAAC,EAAE,MAAM,cAAc,CAAA;AAEhC,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AAEtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AAI/D,MAAM,CAAC,MAAM,aAAa,GAAc,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;IAChE,MAAM,EAAE,IAAI,EAAE,GAAG,mBAAmB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;IAEzD,OAAO,CACL,MAAC,OAAO,IACN,YAAY,EAAE,GAAG,EACjB,QAAQ,EAAE,QAAQ,CAAC,WAAW,EAC9B,KAAK,EAAE,KAAC,YAAY,IAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAI,EACrE,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,KAAC,CAAC,IAAC,SAAS,EAAC,wBAAwB,EAAC,OAAO,EAAE,OAAO,GAAI;gBAChE,OAAO,EAAE,OAAO;aACjB;SACF,aAED,KAAC,uBAAuB,IAAC,QAAQ,EAAE,QAAQ,GAAI,EAC/C,KAAC,wBAAwB,IAAC,QAAQ,EAAE,QAAQ,GAAI,EAChD,KAAC,iBAAiB,IAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAC,SAAS,EAAC,KAAK,EAAE,IAAI,GAAI,EAC1E,KAAC,sBAAsB,IACrB,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,cAAc,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC/E,YAAY,EAAE,MAAM;oBACpB,UAAU,EAAE,MAAM;iBACnB,CAAC,CAAC,GACH,IACM,CACX,CAAA;AACH,CAAC,CAAA"}