@quickflo/quickview 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/README.md +222 -0
  2. package/dist/components/QuickView.vue.d.ts +20 -0
  3. package/dist/components/QuickView.vue.d.ts.map +1 -0
  4. package/dist/components/SmartValue.vue.d.ts +18 -0
  5. package/dist/components/SmartValue.vue.d.ts.map +1 -0
  6. package/dist/composables/useExpansionState.d.ts +38 -0
  7. package/dist/composables/useExpansionState.d.ts.map +1 -0
  8. package/dist/index.d.ts +26 -0
  9. package/dist/index.d.ts.map +1 -0
  10. package/dist/quickview.css +1 -0
  11. package/dist/quickview.js +9168 -0
  12. package/dist/quickview.umd.cjs +1 -0
  13. package/dist/registry.d.ts +40 -0
  14. package/dist/registry.d.ts.map +1 -0
  15. package/dist/renderers/domain/ErrorObjectRenderer.vue.d.ts +5 -0
  16. package/dist/renderers/domain/ErrorObjectRenderer.vue.d.ts.map +1 -0
  17. package/dist/renderers/domain/FileObjectRenderer.vue.d.ts +5 -0
  18. package/dist/renderers/domain/FileObjectRenderer.vue.d.ts.map +1 -0
  19. package/dist/renderers/domain/HttpResponseRenderer.vue.d.ts +5 -0
  20. package/dist/renderers/domain/HttpResponseRenderer.vue.d.ts.map +1 -0
  21. package/dist/renderers/primitives/BooleanRenderer.vue.d.ts +5 -0
  22. package/dist/renderers/primitives/BooleanRenderer.vue.d.ts.map +1 -0
  23. package/dist/renderers/primitives/NullRenderer.vue.d.ts +5 -0
  24. package/dist/renderers/primitives/NullRenderer.vue.d.ts.map +1 -0
  25. package/dist/renderers/primitives/NumberRenderer.vue.d.ts +5 -0
  26. package/dist/renderers/primitives/NumberRenderer.vue.d.ts.map +1 -0
  27. package/dist/renderers/primitives/StringRenderer.vue.d.ts +5 -0
  28. package/dist/renderers/primitives/StringRenderer.vue.d.ts.map +1 -0
  29. package/dist/renderers/primitives/UndefinedRenderer.vue.d.ts +5 -0
  30. package/dist/renderers/primitives/UndefinedRenderer.vue.d.ts.map +1 -0
  31. package/dist/renderers/smart/Base64Renderer.vue.d.ts +5 -0
  32. package/dist/renderers/smart/Base64Renderer.vue.d.ts.map +1 -0
  33. package/dist/renderers/smart/ColorRenderer.vue.d.ts +5 -0
  34. package/dist/renderers/smart/ColorRenderer.vue.d.ts.map +1 -0
  35. package/dist/renderers/smart/DateRenderer.vue.d.ts +5 -0
  36. package/dist/renderers/smart/DateRenderer.vue.d.ts.map +1 -0
  37. package/dist/renderers/smart/EmailRenderer.vue.d.ts +5 -0
  38. package/dist/renderers/smart/EmailRenderer.vue.d.ts.map +1 -0
  39. package/dist/renderers/smart/JsonStringRenderer.vue.d.ts +5 -0
  40. package/dist/renderers/smart/JsonStringRenderer.vue.d.ts.map +1 -0
  41. package/dist/renderers/smart/LongStringRenderer.vue.d.ts +5 -0
  42. package/dist/renderers/smart/LongStringRenderer.vue.d.ts.map +1 -0
  43. package/dist/renderers/smart/UrlRenderer.vue.d.ts +5 -0
  44. package/dist/renderers/smart/UrlRenderer.vue.d.ts.map +1 -0
  45. package/dist/renderers/structures/ArrayRenderer.vue.d.ts +5 -0
  46. package/dist/renderers/structures/ArrayRenderer.vue.d.ts.map +1 -0
  47. package/dist/renderers/structures/EmptyRenderer.vue.d.ts +5 -0
  48. package/dist/renderers/structures/EmptyRenderer.vue.d.ts.map +1 -0
  49. package/dist/renderers/structures/ObjectRenderer.vue.d.ts +5 -0
  50. package/dist/renderers/structures/ObjectRenderer.vue.d.ts.map +1 -0
  51. package/dist/setup.d.ts +7 -0
  52. package/dist/setup.d.ts.map +1 -0
  53. package/dist/testers.d.ts +51 -0
  54. package/dist/testers.d.ts.map +1 -0
  55. package/dist/types.d.ts +89 -0
  56. package/dist/types.d.ts.map +1 -0
  57. package/dist/utils.d.ts +49 -0
  58. package/dist/utils.d.ts.map +1 -0
  59. package/dist/vite.config.d.ts +4 -0
  60. package/dist/vite.config.d.ts.map +1 -0
  61. package/package.json +60 -0
@@ -0,0 +1,40 @@
1
+ import { Component } from 'vue';
2
+ import { RegisteredRenderer, TesterFunction, RendererContext } from './types';
3
+ /**
4
+ * Registry for QuickView renderers
5
+ * Uses a tester-based system similar to QuickForms
6
+ */
7
+ export declare class RendererRegistry {
8
+ private renderers;
9
+ /**
10
+ * Register a renderer with its tester function
11
+ */
12
+ register(name: string, component: Component, tester: TesterFunction): void;
13
+ /**
14
+ * Unregister a renderer by name
15
+ */
16
+ unregister(name: string): boolean;
17
+ /**
18
+ * Get the best matching renderer for a value
19
+ * Returns the renderer with the highest tester score
20
+ */
21
+ getRenderer(value: unknown, context: RendererContext): RegisteredRenderer | null;
22
+ /**
23
+ * Get all registered renderers (for debugging/inspection)
24
+ */
25
+ getAllRenderers(): RegisteredRenderer[];
26
+ /**
27
+ * Check if a renderer is registered
28
+ */
29
+ has(name: string): boolean;
30
+ /**
31
+ * Clear all registered renderers
32
+ */
33
+ clear(): void;
34
+ /**
35
+ * Clone the registry (useful for creating scoped registries)
36
+ */
37
+ clone(): RendererRegistry;
38
+ }
39
+ export declare const defaultRegistry: RendererRegistry;
40
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,CAAA;AACpC,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAElF;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,SAAS,CAA6C;IAE9D;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI;IAI1E;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIjC;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,GAAG,kBAAkB,GAAG,IAAI;IAehF;;OAEG;IACH,eAAe,IAAI,kBAAkB,EAAE;IAIvC;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,KAAK,IAAI,gBAAgB;CAO1B;AAGD,eAAO,MAAM,eAAe,kBAAyB,CAAA"}
@@ -0,0 +1,5 @@
1
+ import { RendererProps } from '../../types';
2
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
3
+ declare const _default: DefineComponent<RendererProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<RendererProps> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
4
+ export default _default;
5
+ //# sourceMappingURL=ErrorObjectRenderer.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorObjectRenderer.vue.d.ts","sourceRoot":"","sources":["../../../renderers/domain/ErrorObjectRenderer.vue"],"names":[],"mappings":";AA4CA;AA8MA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;;AA8OhD,wBAOG"}
@@ -0,0 +1,5 @@
1
+ import { RendererProps } from '../../types';
2
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
3
+ declare const _default: DefineComponent<RendererProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<RendererProps> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
4
+ export default _default;
5
+ //# sourceMappingURL=FileObjectRenderer.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileObjectRenderer.vue.d.ts","sourceRoot":"","sources":["../../../renderers/domain/FileObjectRenderer.vue"],"names":[],"mappings":";AAwFA;AA2ZA,OAAO,KAAK,EAAE,aAAa,EAAc,MAAM,aAAa,CAAA;;AAgjB5D,wBAOG"}
@@ -0,0 +1,5 @@
1
+ import { RendererProps } from '../../types';
2
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
3
+ declare const _default: DefineComponent<RendererProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<RendererProps> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
4
+ export default _default;
5
+ //# sourceMappingURL=HttpResponseRenderer.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpResponseRenderer.vue.d.ts","sourceRoot":"","sources":["../../../renderers/domain/HttpResponseRenderer.vue"],"names":[],"mappings":";AA8KA;AA4nBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;;AA4vBhD,wBAOG"}
@@ -0,0 +1,5 @@
1
+ import { RendererProps } from '../../types';
2
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
3
+ declare const _default: DefineComponent<RendererProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<RendererProps> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLSpanElement>;
4
+ export default _default;
5
+ //# sourceMappingURL=BooleanRenderer.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BooleanRenderer.vue.d.ts","sourceRoot":"","sources":["../../../renderers/primitives/BooleanRenderer.vue"],"names":[],"mappings":";AAWA;AA2BA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;;AA8DhD,wBAOG"}
@@ -0,0 +1,5 @@
1
+ import { RendererProps } from '../../types';
2
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
3
+ declare const _default: DefineComponent<RendererProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<RendererProps> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLSpanElement>;
4
+ export default _default;
5
+ //# sourceMappingURL=NullRenderer.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NullRenderer.vue.d.ts","sourceRoot":"","sources":["../../../renderers/primitives/NullRenderer.vue"],"names":[],"mappings":";AAGA;AAkBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;;AA6ChD,wBAOG"}
@@ -0,0 +1,5 @@
1
+ import { RendererProps } from '../../types';
2
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
3
+ declare const _default: DefineComponent<RendererProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<RendererProps> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLSpanElement>;
4
+ export default _default;
5
+ //# sourceMappingURL=NumberRenderer.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NumberRenderer.vue.d.ts","sourceRoot":"","sources":["../../../renderers/primitives/NumberRenderer.vue"],"names":[],"mappings":";AAKA;AAuCA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;;AAmEhD,wBAOG"}
@@ -0,0 +1,5 @@
1
+ import { RendererProps } from '../../types';
2
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
3
+ declare const _default: DefineComponent<RendererProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<RendererProps> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLSpanElement>;
4
+ export default _default;
5
+ //# sourceMappingURL=StringRenderer.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StringRenderer.vue.d.ts","sourceRoot":"","sources":["../../../renderers/primitives/StringRenderer.vue"],"names":[],"mappings":";AAOA;AA2CA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;;AAoEhD,wBAOG"}
@@ -0,0 +1,5 @@
1
+ import { RendererProps } from '../../types';
2
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
3
+ declare const _default: DefineComponent<RendererProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<RendererProps> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLSpanElement>;
4
+ export default _default;
5
+ //# sourceMappingURL=UndefinedRenderer.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UndefinedRenderer.vue.d.ts","sourceRoot":"","sources":["../../../renderers/primitives/UndefinedRenderer.vue"],"names":[],"mappings":";AAGA;AAkBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;;AA6ChD,wBAOG"}
@@ -0,0 +1,5 @@
1
+ import { RendererProps } from '../../types';
2
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
3
+ declare const _default: DefineComponent<RendererProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<RendererProps> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
4
+ export default _default;
5
+ //# sourceMappingURL=Base64Renderer.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Base64Renderer.vue.d.ts","sourceRoot":"","sources":["../../../renderers/smart/Base64Renderer.vue"],"names":[],"mappings":";AA4BA;AAkJA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;;AA2OhD,wBAOG"}
@@ -0,0 +1,5 @@
1
+ import { RendererProps } from '../../types';
2
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
3
+ declare const _default: DefineComponent<RendererProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<RendererProps> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLSpanElement>;
4
+ export default _default;
5
+ //# sourceMappingURL=ColorRenderer.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColorRenderer.vue.d.ts","sourceRoot":"","sources":["../../../renderers/smart/ColorRenderer.vue"],"names":[],"mappings":";AAMA;AAuCA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;;AA0DhD,wBAOG"}
@@ -0,0 +1,5 @@
1
+ import { RendererProps } from '../../types';
2
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
3
+ declare const _default: DefineComponent<RendererProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<RendererProps> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLSpanElement>;
4
+ export default _default;
5
+ //# sourceMappingURL=DateRenderer.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateRenderer.vue.d.ts","sourceRoot":"","sources":["../../../renderers/smart/DateRenderer.vue"],"names":[],"mappings":";AAOA;AAiDA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;;AAiFhD,wBAOG"}
@@ -0,0 +1,5 @@
1
+ import { RendererProps } from '../../types';
2
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
3
+ declare const _default: DefineComponent<RendererProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<RendererProps> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLSpanElement>;
4
+ export default _default;
5
+ //# sourceMappingURL=EmailRenderer.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmailRenderer.vue.d.ts","sourceRoot":"","sources":["../../../renderers/smart/EmailRenderer.vue"],"names":[],"mappings":";AAQA;AA0CA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;;AAqEhD,wBAOG"}
@@ -0,0 +1,5 @@
1
+ import { RendererProps } from '../../types';
2
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
3
+ declare const _default: DefineComponent<RendererProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<RendererProps> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
4
+ export default _default;
5
+ //# sourceMappingURL=JsonStringRenderer.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JsonStringRenderer.vue.d.ts","sourceRoot":"","sources":["../../../renderers/smart/JsonStringRenderer.vue"],"names":[],"mappings":";AAiBA;AA+EA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;;AAuIhD,wBAOG"}
@@ -0,0 +1,5 @@
1
+ import { RendererProps } from '../../types';
2
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
3
+ declare const _default: DefineComponent<RendererProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<RendererProps> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
4
+ export default _default;
5
+ //# sourceMappingURL=LongStringRenderer.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LongStringRenderer.vue.d.ts","sourceRoot":"","sources":["../../../renderers/smart/LongStringRenderer.vue"],"names":[],"mappings":";AAuBA;AA+FA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;;AA6JhD,wBAOG"}
@@ -0,0 +1,5 @@
1
+ import { RendererProps } from '../../types';
2
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
3
+ declare const _default: DefineComponent<RendererProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<RendererProps> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLSpanElement>;
4
+ export default _default;
5
+ //# sourceMappingURL=UrlRenderer.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UrlRenderer.vue.d.ts","sourceRoot":"","sources":["../../../renderers/smart/UrlRenderer.vue"],"names":[],"mappings":";AAmBA;AAiFA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;;AAiIhD,wBAOG"}
@@ -0,0 +1,5 @@
1
+ import { RendererProps } from '../../types';
2
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
3
+ declare const _default: DefineComponent<RendererProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<RendererProps> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
4
+ export default _default;
5
+ //# sourceMappingURL=ArrayRenderer.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArrayRenderer.vue.d.ts","sourceRoot":"","sources":["../../../renderers/structures/ArrayRenderer.vue"],"names":[],"mappings":";AAqHA;AAiWA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;;AA4fhD,wBAOG"}
@@ -0,0 +1,5 @@
1
+ import { RendererProps } from '../../types';
2
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
3
+ declare const _default: DefineComponent<RendererProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<RendererProps> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLSpanElement>;
4
+ export default _default;
5
+ //# sourceMappingURL=EmptyRenderer.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmptyRenderer.vue.d.ts","sourceRoot":"","sources":["../../../renderers/structures/EmptyRenderer.vue"],"names":[],"mappings":";AAMA;AAoCA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;;AAyDhD,wBAOG"}
@@ -0,0 +1,5 @@
1
+ import { RendererProps } from '../../types';
2
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
3
+ declare const _default: DefineComponent<RendererProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<RendererProps> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
4
+ export default _default;
5
+ //# sourceMappingURL=ObjectRenderer.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ObjectRenderer.vue.d.ts","sourceRoot":"","sources":["../../../renderers/structures/ObjectRenderer.vue"],"names":[],"mappings":";AA0EA;AAkQA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;;AAuThD,wBAOG"}
@@ -0,0 +1,7 @@
1
+ import { RendererRegistry } from './registry';
2
+ /**
3
+ * Create and configure the default registry with all built-in renderers
4
+ */
5
+ export declare function createDefaultRegistry(): RendererRegistry;
6
+ export declare const defaultRegistry: RendererRegistry;
7
+ //# sourceMappingURL=setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AA0B7C;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,gBAAgB,CA4CxD;AAGD,eAAO,MAAM,eAAe,kBAA0B,CAAA"}
@@ -0,0 +1,51 @@
1
+ import { TesterFunction } from './types';
2
+ /**
3
+ * Helper to create a tester that returns a rank if predicate is true
4
+ */
5
+ export declare function rankWith(rank: number, predicate: boolean): number;
6
+ /**
7
+ * Combine multiple testers with AND logic
8
+ */
9
+ export declare function and(...testers: TesterFunction[]): TesterFunction;
10
+ /**
11
+ * Combine multiple testers with OR logic (returns highest passing rank)
12
+ */
13
+ export declare function or(...testers: TesterFunction[]): TesterFunction;
14
+ export declare const isNull: TesterFunction;
15
+ export declare const isUndefined: TesterFunction;
16
+ export declare const isBoolean: TesterFunction;
17
+ export declare const isNumber: TesterFunction;
18
+ export declare const isString: TesterFunction;
19
+ export declare const isArray: TesterFunction;
20
+ export declare const isObject: TesterFunction;
21
+ export declare const isUrl: TesterFunction;
22
+ export declare const isEmail: TesterFunction;
23
+ export declare const isIsoDate: TesterFunction;
24
+ export declare const isBase64: TesterFunction;
25
+ export declare const isColor: TesterFunction;
26
+ export declare const isLongString: TesterFunction;
27
+ export declare const isJsonString: TesterFunction;
28
+ export declare const isEmptyArray: TesterFunction;
29
+ export declare const isHomogeneousObjectArray: TesterFunction;
30
+ export declare const isEmptyObject: TesterFunction;
31
+ /**
32
+ * Detects HTTP response shape: { status, headers, body }
33
+ */
34
+ export declare const isHttpResponse: TesterFunction;
35
+ /**
36
+ * Detects file object shape: { url, mimeType } or { content, filename }
37
+ */
38
+ export declare const isFileObject: TesterFunction;
39
+ /**
40
+ * Detects error object shape: { message } or { error }
41
+ */
42
+ export declare const isErrorObject: TesterFunction;
43
+ /**
44
+ * Detects Date object
45
+ */
46
+ export declare const isDateObject: TesterFunction;
47
+ /**
48
+ * Check if object has specific keys (for custom shape detection)
49
+ */
50
+ export declare function hasShape(requiredKeys: string[], optionalKeys?: string[]): TesterFunction;
51
+ //# sourceMappingURL=testers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testers.d.ts","sourceRoot":"","sources":["../testers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,cAAc,EAAE,MAAM,SAAS,CAAA;AAE9D;;GAEG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,MAAM,CAEjE;AAED;;GAEG;AACH,wBAAgB,GAAG,CAAC,GAAG,OAAO,EAAE,cAAc,EAAE,GAAG,cAAc,CAMhE;AAED;;GAEG;AACH,wBAAgB,EAAE,CAAC,GAAG,OAAO,EAAE,cAAc,EAAE,GAAG,cAAc,CAM/D;AAMD,eAAO,MAAM,MAAM,EAAE,cAAuD,CAAA;AAE5E,eAAO,MAAM,WAAW,EAAE,cAA4D,CAAA;AAEtF,eAAO,MAAM,SAAS,EAAE,cAAmE,CAAA;AAE3F,eAAO,MAAM,QAAQ,EAAE,cACkC,CAAA;AAEzD,eAAO,MAAM,QAAQ,EAAE,cAAkE,CAAA;AAEzF,eAAO,MAAM,OAAO,EAAE,cAA6D,CAAA;AAEnF,eAAO,MAAM,QAAQ,EAAE,cAC4D,CAAA;AAanF,eAAO,MAAM,KAAK,EAAE,cAC8C,CAAA;AAElE,eAAO,MAAM,OAAO,EAAE,cAC8C,CAAA;AAEpE,eAAO,MAAM,SAAS,EAAE,cAC+C,CAAA;AAEvE,eAAO,MAAM,QAAQ,EAAE,cAIpB,CAAA;AAEH,eAAO,MAAM,OAAO,EAAE,cAInB,CAAA;AAEH,eAAO,MAAM,YAAY,EAAE,cACmC,CAAA;AAE9D,eAAO,MAAM,YAAY,EAAE,cAa1B,CAAA;AAMD,eAAO,MAAM,YAAY,EAAE,cAC8B,CAAA;AAEzD,eAAO,MAAM,wBAAwB,EAAE,cAStC,CAAA;AAMD,eAAO,MAAM,aAAa,EAAE,cAC0E,CAAA;AAEtG;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,cAO5B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,cAM1B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,cAO3B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,cAA+D,CAAA;AAE1F;;GAEG;AACH,wBAAgB,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,YAAY,GAAE,MAAM,EAAO,GAAG,cAAc,CAS5F"}
@@ -0,0 +1,89 @@
1
+ import { Component } from 'vue';
2
+ /**
3
+ * File object shape for file renderer and download handler
4
+ */
5
+ export interface FileObject {
6
+ /** Storage URL (gs://, s3://, sftp://, or https://) */
7
+ url?: string;
8
+ /** File content (base64 or text) */
9
+ content?: string;
10
+ /** Filename with extension */
11
+ filename?: string;
12
+ /** MIME type */
13
+ mimeType?: string;
14
+ /** File size in bytes */
15
+ size?: number;
16
+ /** Whether content is base64 encoded */
17
+ isBase64?: boolean;
18
+ /** Additional metadata */
19
+ metadata?: Record<string, unknown>;
20
+ }
21
+ /**
22
+ * Context passed to every renderer component
23
+ */
24
+ export interface RendererContext {
25
+ /** The value to render */
26
+ value: unknown;
27
+ /** JSON path to this value (e.g., "response.body.items[0].name") */
28
+ path: string;
29
+ /** Key name if this is an object property */
30
+ keyName?: string;
31
+ /** Depth in the tree (0 = root) */
32
+ depth: number;
33
+ /** Whether the value is expanded (for collapsible types) */
34
+ expanded?: boolean;
35
+ /** Parent value (for context) */
36
+ parent?: unknown;
37
+ /** Callback to navigate to a path */
38
+ onNavigate?: (path: string) => void;
39
+ /** Callback to copy value */
40
+ onCopy?: (value: unknown, path: string) => void;
41
+ /** Callback to download a file (for FileObjectRenderer) */
42
+ onDownload?: (file: FileObject) => void | Promise<void>;
43
+ }
44
+ /**
45
+ * Props passed to renderer components
46
+ */
47
+ export interface RendererProps {
48
+ context: RendererContext;
49
+ }
50
+ /**
51
+ * A tester function that evaluates if a renderer should handle a value
52
+ * Returns a priority number (higher = more specific match)
53
+ * Returns -1 if the renderer should not handle this value
54
+ */
55
+ export type TesterFunction = (value: unknown, context: RendererContext) => number;
56
+ /**
57
+ * A registered renderer with its component and tester
58
+ */
59
+ export interface RegisteredRenderer {
60
+ name: string;
61
+ component: Component;
62
+ tester: TesterFunction;
63
+ }
64
+ /**
65
+ * Options for the QuickView component
66
+ */
67
+ export interface QuickViewOptions {
68
+ /** Maximum depth to auto-expand (default: 2) */
69
+ maxAutoExpandDepth?: number;
70
+ /** Maximum string length before truncation (default: 500) */
71
+ maxStringLength?: number;
72
+ /** Maximum array items to show in preview (default: 5) */
73
+ maxArrayPreview?: number;
74
+ /** Show copy buttons on hover */
75
+ showCopyButtons?: boolean;
76
+ /** Custom renderers to add/override */
77
+ renderers?: RegisteredRenderer[];
78
+ /**
79
+ * Handler for file downloads. Called when user clicks download on a file.
80
+ * Use this to implement custom download logic (e.g., signed URLs, API proxy).
81
+ * If not provided, falls back to window.open() for http(s) URLs.
82
+ */
83
+ onDownload?: (file: FileObject) => void | Promise<void>;
84
+ }
85
+ /**
86
+ * Detected value types for smart rendering
87
+ */
88
+ export type DetectedType = 'null' | 'undefined' | 'boolean' | 'number' | 'string' | 'string:url' | 'string:email' | 'string:date' | 'string:base64' | 'string:json' | 'string:color' | 'string:long' | 'array' | 'array:empty' | 'array:homogeneous' | 'object' | 'object:empty' | 'object:http-response' | 'object:file' | 'object:error' | 'object:date';
89
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,CAAA;AAEpC;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,uDAAuD;IACvD,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gBAAgB;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,yBAAyB;IACzB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,wCAAwC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,0BAA0B;IAC1B,KAAK,EAAE,OAAO,CAAA;IACd,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAA;IACZ,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAA;IACb,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,iCAAiC;IACjC,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,qCAAqC;IACrC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACnC,6BAA6B;IAC7B,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC/C,2DAA2D;IAC3D,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACxD;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,eAAe,CAAA;CACzB;AAED;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,KAAK,MAAM,CAAA;AAEjF;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,EAAE,cAAc,CAAA;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,gDAAgD;IAChD,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,6DAA6D;IAC7D,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,0DAA0D;IAC1D,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,iCAAiC;IACjC,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,uCAAuC;IACvC,SAAS,CAAC,EAAE,kBAAkB,EAAE,CAAA;IAChC;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACxD;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GACpB,MAAM,GACN,WAAW,GACX,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,YAAY,GACZ,cAAc,GACd,aAAa,GACb,eAAe,GACf,aAAa,GACb,cAAc,GACd,aAAa,GACb,OAAO,GACP,aAAa,GACb,mBAAmB,GACnB,QAAQ,GACR,cAAc,GACd,sBAAsB,GACtB,aAAa,GACb,cAAc,GACd,aAAa,CAAA"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Format a file size in bytes to human-readable string
3
+ */
4
+ export declare function formatBytes(bytes: number, decimals?: number): string;
5
+ /**
6
+ * Format a duration in milliseconds to human-readable string
7
+ */
8
+ export declare function formatDuration(ms: number): string;
9
+ /**
10
+ * Format a date to human-readable string
11
+ */
12
+ export declare function formatDate(date: Date | string): string;
13
+ /**
14
+ * Get relative time string (e.g., "2 hours ago")
15
+ */
16
+ export declare function getRelativeTime(date: Date | string): string;
17
+ /**
18
+ * Truncate a string with ellipsis
19
+ */
20
+ export declare function truncate(str: string, maxLength: number): string;
21
+ /**
22
+ * Copy text to clipboard
23
+ */
24
+ export declare function copyToClipboard(text: string): Promise<boolean>;
25
+ /**
26
+ * Build a JSON path string
27
+ */
28
+ export declare function buildPath(basePath: string, key: string | number): string;
29
+ /**
30
+ * Get a nested value from an object by path
31
+ */
32
+ export declare function getValueByPath(obj: unknown, path: string): unknown;
33
+ /**
34
+ * Get preview text for a value
35
+ */
36
+ export declare function getPreviewText(value: unknown, maxLength?: number): string;
37
+ /**
38
+ * Detect MIME type category
39
+ */
40
+ export declare function getMimeCategory(mimeType: string): 'image' | 'text' | 'json' | 'binary';
41
+ /**
42
+ * Get HTTP status category
43
+ */
44
+ export declare function getHttpStatusCategory(status: number): 'info' | 'success' | 'redirect' | 'client-error' | 'server-error';
45
+ /**
46
+ * Get color for HTTP status
47
+ */
48
+ export declare function getHttpStatusColor(status: number): string;
49
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,SAAI,GAAG,MAAM,CAM/D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAMjD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAGtD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAc3D;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAG/D;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOpE;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAYxE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAUlE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,SAAK,GAAG,MAAM,CAgBrE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAKtF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,cAAc,GAAG,cAAc,CAMvH;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CASzD"}
@@ -0,0 +1,4 @@
1
+ import { UserConfigFnObject } from 'vite';
2
+ declare const _default: UserConfigFnObject;
3
+ export default _default;
4
+ //# sourceMappingURL=vite.config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vite.config.d.ts","sourceRoot":"","sources":["../vite.config.ts"],"names":[],"mappings":";;AAMA,wBA0CG"}
package/package.json ADDED
@@ -0,0 +1,60 @@
1
+ {
2
+ "name": "@quickflo/quickview",
3
+ "version": "1.0.0",
4
+ "description": "Smart data visualization component for workflow outputs",
5
+ "type": "module",
6
+ "main": "./dist/quickview.umd.cjs",
7
+ "module": "./dist/quickview.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "import": "./dist/quickview.js",
12
+ "require": "./dist/quickview.umd.cjs",
13
+ "types": "./dist/index.d.ts"
14
+ },
15
+ "./styles": "./dist/styles.css"
16
+ },
17
+ "files": [
18
+ "dist"
19
+ ],
20
+ "peerDependencies": {
21
+ "quasar": "^2.0.0",
22
+ "vue": "^3.4.0"
23
+ },
24
+ "devDependencies": {
25
+ "@quasar/extras": "^1.17.0",
26
+ "@quasar/vite-plugin": "^1.10.0",
27
+ "@types/node": "^22.0.0",
28
+ "@vitejs/plugin-vue": "^6.0.0",
29
+ "@vue/tsconfig": "^0.8.0",
30
+ "quasar": "^2.18.0",
31
+ "sass-embedded": "^1.97.0",
32
+ "typescript": "~5.9.0",
33
+ "vite": "^7.0.0",
34
+ "vite-plugin-dts": "^4.0.0",
35
+ "vue": "^3.5.0",
36
+ "vue-tsc": "^3.0.0"
37
+ },
38
+ "keywords": [
39
+ "vue",
40
+ "vue3",
41
+ "quasar",
42
+ "data-viewer",
43
+ "json-viewer",
44
+ "smart-renderer"
45
+ ],
46
+ "license": "MIT",
47
+ "publishConfig": {
48
+ "access": "public"
49
+ },
50
+ "repository": {
51
+ "type": "git",
52
+ "url": "https://github.com/QuickFlo/quickview"
53
+ },
54
+ "scripts": {
55
+ "dev": "vite",
56
+ "build": "vue-tsc -b && vite build",
57
+ "preview": "vite preview",
58
+ "typecheck": "vue-tsc --noEmit"
59
+ }
60
+ }