dotdata_widgets 0.1.0 → 0.1.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 (64) hide show
  1. package/README.md +19 -7
  2. package/css/colors.css +120 -0
  3. package/css/typography.css +35 -0
  4. package/css/widget.css +53 -3
  5. package/dist/index.js +2 -2
  6. package/lib/components/accordion/Accordion.js +18 -0
  7. package/lib/components/accordion/index.js +1 -0
  8. package/lib/components/input/index.js +1 -0
  9. package/lib/components/input/input.js +6 -0
  10. package/lib/extension.js +1 -14
  11. package/lib/feature-descriptor/feature-details/FeatureCorrelatedFeaturesTable.js +14 -0
  12. package/lib/feature-descriptor/feature-details/FeatureDistributionChart.js +190 -0
  13. package/lib/feature-descriptor/feature-details/FeatureStatisticsTable.js +36 -0
  14. package/lib/feature-descriptor/feature-details/index.js +3 -0
  15. package/lib/feature-descriptor/feature-explanation/FeatureExplanation.js +40 -0
  16. package/lib/feature-descriptor/feature-explanation/components/ColoredExplanationBlock.js +28 -0
  17. package/lib/feature-descriptor/feature-explanation/components/ColumnExplanationBlock.js +4 -0
  18. package/lib/feature-descriptor/feature-explanation/components/DataSlotExplanationBlock.js +4 -0
  19. package/lib/feature-descriptor/feature-explanation/components/PetExplanationBlock.js +3 -0
  20. package/lib/feature-descriptor/feature-explanation/components/TextExplanationBlock.js +2 -0
  21. package/lib/feature-descriptor/feature-explanation/components/TextWithDataSlotContextExplanationBlock.js +2 -0
  22. package/lib/feature-descriptor/feature-explanation/components/TopicExplanationBlock.js +2 -0
  23. package/lib/feature-descriptor/feature-explanation/components/UnknownExplanationBlock.js +2 -0
  24. package/lib/feature-descriptors-domain/exploration-path/exploration-path-header.js +13 -0
  25. package/lib/feature-descriptors-domain/exploration-path/exploration-path-join-list.js +8 -0
  26. package/lib/feature-descriptors-domain/exploration-path/index.js +2 -0
  27. package/lib/feature-descriptors-domain/grouped-domains-descriptions-list.js +47 -0
  28. package/lib/index.js +2 -15
  29. package/lib/models/column/column.js +1 -0
  30. package/lib/models/column/index.js +1 -0
  31. package/lib/models/feature/feature-histogram.js +16 -0
  32. package/lib/models/feature/feature-leaderboard.js +1 -0
  33. package/lib/models/feature/feature.js +12 -0
  34. package/lib/models/feature/index.js +2 -0
  35. package/lib/models/feature-descriptors-domain/fd-domain-description.js +1 -0
  36. package/lib/models/feature-descriptors-domain/fd-grouped-domain-descriptions.js +1 -0
  37. package/lib/models/feature-descriptors-domain/index.js +2 -0
  38. package/lib/models/feature-explanation/feature-explanation.model.js +26 -0
  39. package/lib/models/feature-explanation/index.js +1 -0
  40. package/lib/models/feature-leaderboard/feature-leaderboard.js +1 -0
  41. package/lib/models/feature-leaderboard/index.js +1 -0
  42. package/lib/models/feature-space/feature-space.js +1 -0
  43. package/lib/models/feature-space/index.js +1 -0
  44. package/lib/models/index.js +1 -0
  45. package/lib/plugin.js +7 -29
  46. package/lib/utils/asserations.js +5 -0
  47. package/lib/utils/index.js +3 -0
  48. package/lib/utils/localize.js +14 -0
  49. package/lib/utils/object/extract-property.js +6 -0
  50. package/lib/utils/object/index.js +2 -0
  51. package/lib/utils/object/is-set.js +6 -0
  52. package/lib/version.js +2 -6
  53. package/lib/widgets/FeatureLeaderboardWidget.js +63 -0
  54. package/lib/widgets/FeatureSpaceWidget.js +50 -0
  55. package/lib/widgets/feature-leaderboard/FeatureLeaderboardEntries.js +10 -0
  56. package/lib/widgets/feature-leaderboard/FeatureLeaderboardOverview.js +20 -0
  57. package/lib/widgets/feature-leaderboard/FeatureLeaderboardView.js +19 -0
  58. package/lib/widgets/feature-leaderboard/entry-item/FeatureLeaderboardEntryDetails.js +15 -0
  59. package/lib/widgets/feature-leaderboard/entry-item/FeatureLeaderboardEntryItem.js +20 -0
  60. package/lib/widgets/feature-space/FeatureExplorationPaths.js +37 -0
  61. package/lib/widgets/feature-space/FeatureSpaceDomainsDescriptions.js +53 -0
  62. package/lib/widgets/feature-space/FeatureSpaceView.js +9 -0
  63. package/lib/widgets/index.js +4 -0
  64. package/package.json +60 -37
package/README.md CHANGED
@@ -1,11 +1,12 @@
1
1
 
2
- # dotdata_widgets
2
+ # Dotdata widgets
3
3
 
4
- [![Build Status](https://travis-ci.org/dotdata/dotdata_widgets.svg?branch=master)](https://travis-ci.org/dotdata/dotdata_widgets)
5
- [![codecov](https://codecov.io/gh/dotdata/dotdata_widgets/branch/master/graph/badge.svg)](https://codecov.io/gh/dotdata/dotdata_widgets)
4
+ A dotdata widget
6
5
 
7
-
8
- A Custom Jupyter Widget Library
6
+ ### Prerequisites
7
+ 1. nodejs >= 18
8
+ 2. yarn (npm install yarn -g)
9
+ 3. python 3
9
10
 
10
11
  ## Installation
11
12
 
@@ -25,8 +26,7 @@ jupyter nbextension enable --py [--sys-prefix|--user|--system] dotdata_widgets
25
26
 
26
27
  Create a dev environment:
27
28
  ```bash
28
- conda create -n dotdata_widgets-dev -c conda-forge nodejs yarn python jupyterlab
29
- conda activate dotdata_widgets-dev
29
+ python -m venv venv/
30
30
  ```
31
31
 
32
32
  Install the python. This will also build the TS package.
@@ -54,6 +54,18 @@ the `install` command every time that you rebuild your extension. For certain in
54
54
  you might also need another flag instead of `--sys-prefix`, but we won't cover the meaning
55
55
  of those flags here.
56
56
 
57
+ ### Watch Mode
58
+ ```bash
59
+ yarn run watch
60
+ ```
61
+
62
+ ### Docker
63
+ ```bash
64
+ git clone ...
65
+
66
+ docker run -it --name dotdata_widget -v $(pwd)/dotdata_widgets:/dotdata_widgets -p 8889:8888 jupyter/scipy-notebook
67
+ ```
68
+
57
69
  ### How to see your changes
58
70
  #### Typescript:
59
71
  If you use JupyterLab to develop then you can watch the source directory and run JupyterLab at the same time in different
package/css/colors.css ADDED
@@ -0,0 +1,120 @@
1
+ :root {
2
+ --c-red-50: #ffebee;
3
+ --c-red-100: #ffcdd2;
4
+ --c-red-200: #ef9a9a;
5
+ --c-red-300: #e57373;
6
+ --c-red-400: #ef5350;
7
+ --c-red-500: #f44336;
8
+ --c-red-600: #e53935;
9
+ --c-red-700: #d32f2f;
10
+ --c-red-800: #c62828;
11
+ --c-red-900: #b71c1c;
12
+ --c-purple-50: #f3e5f5;
13
+ --c-purple-100: #e1bee7;
14
+ --c-purple-200: #ce93d8;
15
+ --c-purple-300: #ba68c8;
16
+ --c-purple-400: #ab47bc;
17
+ --c-purple-500: #9c27b0;
18
+ --c-purple-600: #8e24aa;
19
+ --c-purple-700: #7b1fa2;
20
+ --c-purple-800: #6a1b9a;
21
+ --c-purple-900: #4a148c;
22
+ --c-cyan-50: #e0f7fa;
23
+ --c-cyan-100: #b2ebf2;
24
+ --c-cyan-200: #80deea;
25
+ --c-cyan-300: #4dd0e1;
26
+ --c-cyan-400: #26c6da;
27
+ --c-cyan-500: #00bcd4;
28
+ --c-cyan-600: #00acc1;
29
+ --c-cyan-700: #0097a7;
30
+ --c-cyan-800: #00838f;
31
+ --c-cyan-900: #006064;
32
+ --c-blue-50: #e3f2fd;
33
+ --c-blue-100: #bbdefb;
34
+ --c-blue-200: #90caf9;
35
+ --c-blue-300: #64b5f6;
36
+ --c-blue-400: #42a5f5;
37
+ --c-blue-500: #2196f3;
38
+ --c-blue-600: #1e88e5;
39
+ --c-blue-700: #1976d2;
40
+ --c-blue-800: #1565c0;
41
+ --c-blue-900: #0d47a1;
42
+ --c-light-blue-50: #e1f5fe;
43
+ --c-light-blue-100: #b3e5fc;
44
+ --c-light-blue-200: #81d4fa;
45
+ --c-light-blue-300: #4fc3f7;
46
+ --c-light-blue-400: #29b6f6;
47
+ --c-light-blue-500: #03a9f4;
48
+ --c-light-blue-600: #039be5;
49
+ --c-light-blue-700: #0288d1;
50
+ --c-light-blue-800: #0277bd;
51
+ --c-light-blue-900: #01579b;
52
+ --c-green-50: #e8f5e9;
53
+ --c-green-100: #c8e6c9;
54
+ --c-green-200: #a5d6a7;
55
+ --c-green-300: #81c784;
56
+ --c-green-400: #66bb6a;
57
+ --c-green-500: #4caf50;
58
+ --c-green-600: #43a047;
59
+ --c-green-700: #388e3c;
60
+ --c-green-800: #2e7d32;
61
+ --c-light-green-50: #f1f8e9;
62
+ --c-light-green-100: #dcedc8;
63
+ --c-light-green-200: #c5e1a5;
64
+ --c-light-green-300: #aed581;
65
+ --c-light-green-400: #9ccc65;
66
+ --c-light-green-500: #8bc34a;
67
+ --c-light-green-600: #7cb342;
68
+ --c-light-green-700: #689f38;
69
+ --c-light-green-800: #558b2f;
70
+ --c-light-green-900: #33691e;
71
+ --c-yellow-50: #fffde7;
72
+ --c-yellow-100: #fff9c4;
73
+ --c-yellow-200: #fff59d;
74
+ --c-yellow-300: #fff176;
75
+ --c-yellow-400: #ffee58;
76
+ --c-yellow-500: #ffeb3b;
77
+ --c-yellow-600: #fdd835;
78
+ --c-yellow-700: #fbc02d;
79
+ --c-yellow-800: #f9a825;
80
+ --c-yellow-900: #f57f17;
81
+ --c-amber-100: #ffecb3;
82
+ --c-amber-200: #ffe082;
83
+ --c-amber-300: #ffd54f;
84
+ --c-amber-400: #ffca28;
85
+ --c-amber-500: #ffc107;
86
+ --c-amber-600: #ffb300;
87
+ --c-amber-700: #ffa000;
88
+ --c-amber-800: #ff8f00;
89
+ --c-amber-900: #ff6f00;
90
+ --c-orange-50: #fff3e0;
91
+ --c-orange-100: #ffe0b2;
92
+ --c-orange-200: #ffcc80;
93
+ --c-orange-300: #ffb74d;
94
+ --c-orange-400: #ffa726;
95
+ --c-orange-500: #ff9800;
96
+ --c-orange-600: #fb8c00;
97
+ --c-orange-700: #f57c00;
98
+ --c-orange-800: #ef6c00;
99
+ --c-orange-900: #e65100;
100
+ --c-brown-50: #efebe9;
101
+ --c-brown-100: #d7ccc8;
102
+ --c-brown-200: #bcaaa4;
103
+ --c-brown-300: #a1887f;
104
+ --c-brown-400: #8d6e63;
105
+ --c-brown-500: #795548;
106
+ --c-brown-600: #6d4c41;
107
+ --c-brown-700: #5d4037;
108
+ --c-brown-800: #4e342e;
109
+ --c-brown-900: #3e2723;
110
+ --c-grey-50: #fafafa;
111
+ --c-grey-100: #f5f5f5;
112
+ --c-grey-200: #eee;
113
+ --c-grey-300: #e0e0e0;
114
+ --c-grey-400: #bdbdbd;
115
+ --c-grey-500: #9e9e9e;
116
+ --c-grey-600: #757575;
117
+ --c-grey-700: #616161;
118
+ --c-grey-800: #424242;
119
+ --c-grey-900: #212121;
120
+ }
@@ -0,0 +1,35 @@
1
+ h1,
2
+ .h1 {
3
+ font-size: 24px;
4
+ font-weight: 400;
5
+ line-height: 20px;
6
+ letter-spacing: 0;
7
+ }
8
+
9
+ h2,
10
+ .h2 {
11
+ font-size: 20px;
12
+ font-weight: 400;
13
+ line-height: 30px;
14
+ letter-spacing: 0;
15
+ }
16
+
17
+ h3,
18
+ .h3 {
19
+ font-size: 18px;
20
+ font-weight: 400;
21
+ line-height: 26px;
22
+ letter-spacing: 0;
23
+ }
24
+
25
+ .label {
26
+ font-size: 14px;
27
+ font-weight: 400;
28
+ line-height: 20px;
29
+ }
30
+
31
+ .label-bold {
32
+ font-size: 14px;
33
+ font-weight: 500;
34
+ line-height: 20px;
35
+ }
package/css/widget.css CHANGED
@@ -1,4 +1,54 @@
1
- .custom-widget {
2
- background-color: lightseagreen;
3
- padding: 0px 2px;
1
+ @import url('~@fontsource/roboto');
2
+ @import url('~@fontsource/roboto/500.css');
3
+
4
+ @import url('colors.css');
5
+ @import url('typography.css');
6
+
7
+ @import url('../src/components/accordion/accordion.css');
8
+ @import url('../src/components/input/input.css');
9
+
10
+ :root {
11
+ --c-text: var(--c-grey-900);
12
+
13
+ /* TABLE */
14
+ --table-border-color: var(--c-grey-300);
15
+ --table-header-color: var(--c-grey-600);
16
+ --table-row-height: 30px;
17
+ }
18
+
19
+ .dotdata-widget {
20
+ font-family: Roboto, serif;
21
+ font-size: 14px;
22
+ line-height: 20px;
23
+ color: var(--c-text);
24
+ }
25
+
26
+ h1,
27
+ h2,
28
+ h3 {
29
+ margin-block: 0.4em;
30
+ }
31
+
32
+ .grey-label {
33
+ color: var(--c-grey-700);
34
+ }
35
+
36
+ .table {
37
+ border-collapse: collapse;
38
+ border-spacing: 0;
39
+ }
40
+
41
+ .table :is(th, td) {
42
+ padding: 0.3rem;
43
+ min-width: 50px;
44
+ }
45
+
46
+ .table :is(tr) {
47
+ height: var(--table-row-height);
48
+ }
49
+
50
+ .table th {
51
+ color: var(--table-header-color);
52
+ border-bottom: 1px solid var(--c-grey-300);
53
+ text-align: start;
4
54
  }