@sentropic/dataviz-svelte 0.1.0 → 0.2.1

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 (47) hide show
  1. package/dist/adapter.d.ts +39 -0
  2. package/dist/adapter.d.ts.map +1 -0
  3. package/dist/adapter.js +39 -0
  4. package/dist/index.d.ts +32 -36
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +21 -38
  7. package/dist/lib/CrossfilteredBarChart.svelte +80 -0
  8. package/dist/lib/CrossfilteredBarChart.svelte.d.ts +32 -0
  9. package/dist/lib/CrossfilteredBarChart.svelte.d.ts.map +1 -0
  10. package/dist/lib/DashboardFilterBar.svelte +51 -0
  11. package/dist/lib/DashboardFilterBar.svelte.d.ts +14 -0
  12. package/dist/lib/DashboardFilterBar.svelte.d.ts.map +1 -0
  13. package/dist/lib/DrillBarChart.svelte +83 -0
  14. package/dist/lib/DrillBarChart.svelte.d.ts +23 -0
  15. package/dist/lib/DrillBarChart.svelte.d.ts.map +1 -0
  16. package/dist/lib/DrillBreadcrumb.svelte +57 -0
  17. package/dist/lib/DrillBreadcrumb.svelte.d.ts +18 -0
  18. package/dist/lib/DrillBreadcrumb.svelte.d.ts.map +1 -0
  19. package/dist/lib/ExportMenu.svelte +74 -0
  20. package/dist/lib/ExportMenu.svelte.d.ts +23 -0
  21. package/dist/lib/ExportMenu.svelte.d.ts.map +1 -0
  22. package/dist/lib/FieldPane.svelte +38 -0
  23. package/dist/lib/FieldPane.svelte.d.ts +14 -0
  24. package/dist/lib/FieldPane.svelte.d.ts.map +1 -0
  25. package/dist/lib/KpiCardGroup.svelte +63 -0
  26. package/dist/lib/KpiCardGroup.svelte.d.ts +17 -0
  27. package/dist/lib/KpiCardGroup.svelte.d.ts.map +1 -0
  28. package/dist/lib/PivotDataTable.svelte +62 -0
  29. package/dist/lib/PivotDataTable.svelte.d.ts +15 -0
  30. package/dist/lib/PivotDataTable.svelte.d.ts.map +1 -0
  31. package/dist/lib/RecordsTable.svelte +53 -0
  32. package/dist/lib/RecordsTable.svelte.d.ts +17 -0
  33. package/dist/lib/RecordsTable.svelte.d.ts.map +1 -0
  34. package/dist/lib/SelectionLegend.svelte +42 -0
  35. package/dist/lib/SelectionLegend.svelte.d.ts +14 -0
  36. package/dist/lib/SelectionLegend.svelte.d.ts.map +1 -0
  37. package/dist/lib/SmallMultiples.svelte +81 -0
  38. package/dist/lib/SmallMultiples.svelte.d.ts +25 -0
  39. package/dist/lib/SmallMultiples.svelte.d.ts.map +1 -0
  40. package/dist/lib/TopNFilter.svelte +51 -0
  41. package/dist/lib/TopNFilter.svelte.d.ts +18 -0
  42. package/dist/lib/TopNFilter.svelte.d.ts.map +1 -0
  43. package/dist/lib/ValueSlicer.svelte +59 -0
  44. package/dist/lib/ValueSlicer.svelte.d.ts +15 -0
  45. package/dist/lib/ValueSlicer.svelte.d.ts.map +1 -0
  46. package/package.json +21 -9
  47. package/dist/index.js.map +0 -1
@@ -0,0 +1,59 @@
1
+ <script lang="ts" module>
2
+ import type { DashboardStore } from '@sentropic/dataviz-core';
3
+
4
+ export type ValueSlicerProps = {
5
+ /** The dashboard store to bind to. */
6
+ store: DashboardStore;
7
+ /** Dimension whose distinct values become the slicer's checkboxes. */
8
+ dimension: string;
9
+ /** Legend; defaults to the dimension label. */
10
+ legend?: string;
11
+ orientation?: 'vertical' | 'horizontal';
12
+ class?: string;
13
+ };
14
+ </script>
15
+
16
+ <script lang="ts">
17
+ import { CheckboxGroup, type CheckboxGroupOption } from '@sentropic/design-system-svelte';
18
+ import { findDimension } from '@sentropic/dataviz-core';
19
+ import { useDashboard } from '../adapter.js';
20
+
21
+ let { store, dimension, legend, orientation = 'vertical', class: className }: ValueSlicerProps = $props();
22
+
23
+ const dash = $derived(useDashboard(store));
24
+ const key = (v: unknown) => (v == null ? 'null' : String(v));
25
+ const resolvedLegend = $derived(legend ?? findDimension(store.model, dimension)?.label ?? dimension);
26
+
27
+ const options = $derived.by((): CheckboxGroupOption[] => {
28
+ const seen = new Set<string>();
29
+ const opts: CheckboxGroupOption[] = [];
30
+ for (const row of store.data) {
31
+ const k = key(row[dimension]);
32
+ if (!seen.has(k)) {
33
+ seen.add(k);
34
+ opts.push({ label: k, value: k });
35
+ }
36
+ }
37
+ return opts;
38
+ });
39
+
40
+ // Checked = the dimension's active `include` filter (an OR over values).
41
+ const value = $derived.by((): string[] => {
42
+ const f = $dash.filters[dimension];
43
+ return f && f.kind === 'include' ? [...f.values] : [];
44
+ });
45
+
46
+ function onchange(values: string[]) {
47
+ if (values.length) store.setFilter(dimension, { kind: 'include', values });
48
+ else store.clearFilter(dimension);
49
+ }
50
+ </script>
51
+
52
+ <CheckboxGroup
53
+ legend={resolvedLegend}
54
+ {options}
55
+ {value}
56
+ {orientation}
57
+ class={className}
58
+ {onchange}
59
+ />
@@ -0,0 +1,15 @@
1
+ import type { DashboardStore } from '@sentropic/dataviz-core';
2
+ export type ValueSlicerProps = {
3
+ /** The dashboard store to bind to. */
4
+ store: DashboardStore;
5
+ /** Dimension whose distinct values become the slicer's checkboxes. */
6
+ dimension: string;
7
+ /** Legend; defaults to the dimension label. */
8
+ legend?: string;
9
+ orientation?: 'vertical' | 'horizontal';
10
+ class?: string;
11
+ };
12
+ declare const ValueSlicer: import("svelte").Component<ValueSlicerProps, {}, "">;
13
+ type ValueSlicer = ReturnType<typeof ValueSlicer>;
14
+ export default ValueSlicer;
15
+ //# sourceMappingURL=ValueSlicer.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ValueSlicer.svelte.d.ts","sourceRoot":"","sources":["../../src/lib/ValueSlicer.svelte.ts"],"names":[],"mappings":"AAGE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,sCAAsC;IACtC,KAAK,EAAE,cAAc,CAAC;IACtB,sEAAsE;IACtE,SAAS,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAiDJ,QAAA,MAAM,WAAW,sDAAwC,CAAC;AAC1D,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;AAClD,eAAe,WAAW,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sentropic/dataviz-svelte",
3
- "version": "0.1.0",
4
- "description": "Svelte 5 adapter for @sentropic/dataviz-core, built on @sentropic/design-system-svelte.",
3
+ "version": "0.2.1",
4
+ "description": "Svelte 5 adapter + dashboard components for @sentropic/dataviz-core, built on @sentropic/design-system-svelte.",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "repository": {
@@ -12,28 +12,40 @@
12
12
  "files": [
13
13
  "dist"
14
14
  ],
15
+ "svelte": "./dist/index.js",
16
+ "types": "./dist/index.d.ts",
15
17
  "exports": {
16
18
  ".": {
19
+ "svelte": "./dist/index.js",
17
20
  "types": "./dist/index.d.ts",
18
21
  "import": "./dist/index.js"
19
22
  }
20
23
  },
21
- "types": "./dist/index.d.ts",
22
- "main": "./dist/index.js",
23
- "sideEffects": false,
24
+ "sideEffects": [
25
+ "**/*.css"
26
+ ],
24
27
  "scripts": {
25
- "build": "tsc -p tsconfig.json",
26
- "check": "tsc -p tsconfig.json --noEmit",
28
+ "build": "svelte-package --input src && rm -f dist/*.test.* dist/lib/*.test.*",
29
+ "check": "svelte-check --tsconfig ./tsconfig.json",
27
30
  "test": "vitest run src"
28
31
  },
29
32
  "dependencies": {
30
- "@sentropic/dataviz-core": "0.1.0",
31
- "@sentropic/design-system-svelte": "0.21.0",
33
+ "@sentropic/dataviz-core": "0.2.1",
34
+ "@sentropic/design-system-svelte": "0.23.0",
32
35
  "@sentropic/design-system-themes": "0.11.0"
33
36
  },
34
37
  "peerDependencies": {
35
38
  "svelte": "^5"
36
39
  },
40
+ "devDependencies": {
41
+ "@sveltejs/package": "^2.5.8",
42
+ "@sveltejs/vite-plugin-svelte": "^7.1.2",
43
+ "@testing-library/svelte": "^5.3.1",
44
+ "svelte": "^5.56.2",
45
+ "svelte-check": "^4.0.0",
46
+ "vite": "^8.0.16",
47
+ "vitest": "^4.1.5"
48
+ },
37
49
  "publishConfig": {
38
50
  "access": "public"
39
51
  }
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,oBAAoB,GAIrB,MAAM,yBAAyB,CAAC;AAEjC,qEAAqE;AACrE,cAAc,yBAAyB,CAAC;AAaxC;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,KAAqB;IACjD,OAAO;QACL,SAAS,CAAC,GAAoC;YAC5C,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;YACtB,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YACzD,OAAO,GAAG,CAAC;QACb,CAAC;KACF,CAAC;AACJ,CAAC;AAUD;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,MAA4B;IAC1D,MAAM,KAAK,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC3C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;AAChD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,KAAqB;IAChD,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC"}