@kausal/themes 0.8.2 → 0.8.5

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.
@@ -1,4 +1,4 @@
1
- /* common/@fontsource/inter/400.css */
1
+ /* ../../../../../../../var/folders/mf/8_zg1h4n3xsbwv96530g65cw0000gn/T/esbuild-ja4NeX/common/@fontsource/inter/400.css */
2
2
  @font-face {
3
3
  font-family: "Inter";
4
4
  font-style: normal;
@@ -118,7 +118,7 @@
118
118
  U+FFFD;
119
119
  }
120
120
 
121
- /* common/@fontsource/inter/700.css */
121
+ /* ../../../../../../../var/folders/mf/8_zg1h4n3xsbwv96530g65cw0000gn/T/esbuild-ja4NeX/common/@fontsource/inter/700.css */
122
122
  @font-face {
123
123
  font-family: "Inter";
124
124
  font-style: normal;
@@ -238,7 +238,7 @@
238
238
  U+FFFD;
239
239
  }
240
240
 
241
- /* default/icons.css */
241
+ /* ../../../../../../../var/folders/mf/8_zg1h4n3xsbwv96530g65cw0000gn/T/esbuild-ja4NeX/default/icons.css */
242
242
  :root {
243
243
  --theme-icon-action-dependency: url("./icons/action-dependency-YIHDLWKV.svg");
244
244
  --theme-icon-angle-down: url("./icons/angle-down-AQWOHY4J.svg");
@@ -307,11 +307,13 @@
307
307
  --theme-icon-version: url("./icons/version-LJSCFB3L.svg");
308
308
  }
309
309
 
310
- /* default/main.scss */
310
+ /* ../../../../../../../var/folders/mf/8_zg1h4n3xsbwv96530g65cw0000gn/T/esbuild-ja4NeX/default/main.scss */
311
311
  :root {
312
312
  --theme-logo-url: url("./images/default-logo-white-KUB6ICTS.svg");
313
313
  --theme-logo-white-url: url("./images/default-logo-white-KUB6ICTS.svg");
314
314
  --theme-favicon-ico: url("./images/favicon/favicon-MGJ3GSCH.ico");
315
315
  --theme-favicon-apple: url("./images/favicon/apple-MBMLYIVD.png");
316
316
  --theme-favicon-svg: url("./images/favicon/icon-WKA4Z7F2.svg");
317
+ --theme-default-avatar-png: url("./images/default-avatar-user-M3HOXCCQ.png");
318
+ --theme-default-avatar-org: url("./images/default-avatar-org-UTHV5FNW.png");
317
319
  }
@@ -25,9 +25,11 @@
25
25
  "color": "rgb(247, 246, 243)",
26
26
  "goalColor": "rgb(86, 195, 142)",
27
27
  "latestColor": "rgb(109, 151, 184)",
28
- "startColor": "rgb(239, 154, 154)"
28
+ "startColor": "rgb(239, 154, 154)",
29
+ "linkToSource": true
29
30
  }
30
31
  },
32
+ "orgPageBackgroundColor": "rgb(16, 114, 81)",
31
33
  "imageOverlay": "rgb(255, 255, 255)",
32
34
  "fontFamily": "Inter",
33
35
  "fontFamilyHeadings": "Inter",
@@ -35,6 +37,7 @@
35
37
  "fontFamilyTiny": "'-apple-system', 'BlinkMacSystemFont', 'Segoe UI', 'Roboto', 'Oxygen-Sans', 'Ubuntu', 'Cantarell', 'Helvetica Neue', sans-serif",
36
38
  "headingsFontWeight": 700,
37
39
  "headingsColor": "rgb(26, 24, 23)",
40
+ "headingsTextTransform": "none",
38
41
  "fontFamilyFallback": "'-apple-system', 'BlinkMacSystemFont', 'Segoe UI', 'Roboto', 'Oxygen-Sans', 'Ubuntu', 'Cantarell', 'Helvetica Neue', sans-serif",
39
42
  "fontFamilyFallbackHeadings": "'-apple-system', 'BlinkMacSystemFont', 'Segoe UI', 'Roboto', 'Oxygen-Sans', 'Ubuntu', 'Cantarell', 'Helvetica Neue', sans-serif",
40
43
  "fontSizeSm": "0.8rem",
@@ -80,6 +83,9 @@
80
83
  "brandNavColor": "rgb(247, 246, 243)",
81
84
  "brandNavBackground": "rgb(92, 88, 83)",
82
85
  "brandNavFontFamily": "Inter",
86
+ "siteNavColor": "rgb(92, 88, 83)",
87
+ "siteNavBackground": "rgb(247, 246, 243)",
88
+ "siteNavHighlightColor": "rgb(16, 114, 81)",
83
89
  "navLogoVisible": true,
84
90
  "navTitleVisible": true,
85
91
  "footerLogoPlacement": "left",
@@ -90,6 +96,7 @@
90
96
  "secondFooterColor": "rgb(247, 246, 243)",
91
97
  "cardBorderWidth": "1px",
92
98
  "cardBorderRadius": "0.5rem",
99
+ "badgeColor": "rgb(16, 114, 81)",
93
100
  "badgeBorderRadius": "3px",
94
101
  "badgePaddingY": "0.5em",
95
102
  "badgePaddingX": "0.75em",
@@ -107,8 +114,8 @@
107
114
  "breakpointXl": "1200px",
108
115
  "themeLogoUrl": "default/images/default-logo-white-KUB6ICTS.svg",
109
116
  "themeLogoWhiteUrl": "default/images/default-logo-white-KUB6ICTS.svg",
110
- "iconIndicatorsUrl": "",
111
- "iconActionsUrl": "",
117
+ "defaultAvatarUserImage": "default/images/default-avatar-user-M3HOXCCQ.png",
118
+ "defaultAvatarOrgImage": "default/images/default-avatar-org-UTHV5FNW.png",
112
119
  "phaseTimelineColor": "rgb(16, 114, 81)",
113
120
  "taskStatusColors": {
114
121
  "onTime": "rgb(167, 235, 192)",
@@ -150,6 +157,10 @@
150
157
  "yellow090": "rgb(60, 19, 0)"
151
158
  },
152
159
  "settings": {
160
+ "actionView": {
161
+ "showPaginationTop": true,
162
+ "showPaginationBottom": true
163
+ },
153
164
  "dashboard": {
154
165
  "showResponsibles": true,
155
166
  "showIndicators": true,
@@ -157,11 +168,50 @@
157
168
  },
158
169
  "homeLink": "text",
159
170
  "categories": {
160
- "filterIndicatorsByAllLevels": true
171
+ "filterIndicatorsByAllLevels": true,
172
+ "collapseLongTexts": true
161
173
  },
162
174
  "fundingInstruments": [],
163
175
  "otherLogos": [],
164
- "showFeedbackLink": true
176
+ "showFeedbackLink": true,
177
+ "graphs": {
178
+ "lineShape": "spline",
179
+ "fillMarkers": false,
180
+ "goalSymbol": "x",
181
+ "categorySymbols": [
182
+ "circle",
183
+ "square",
184
+ "diamond",
185
+ "pentagon",
186
+ "hexagram",
187
+ "star-diamond",
188
+ "hash",
189
+ "y-down"
190
+ ],
191
+ "areaGraphs": false,
192
+ "showTrendline": true,
193
+ "drawGoalLine": false,
194
+ "totalLineColor": "rgb(167, 57, 57)",
195
+ "trendLineColor": "rgb(239, 154, 154)",
196
+ "goalLineColors": [
197
+ "rgb(39, 154, 109)",
198
+ "rgb(86, 195, 142)",
199
+ "rgb(16, 114, 81)",
200
+ "rgb(7, 74, 53)",
201
+ "rgb(167, 235, 192)"
202
+ ],
203
+ "categoryColors": [
204
+ "rgb(7, 74, 53)",
205
+ "rgb(78, 128, 166)",
206
+ "rgb(200, 130, 23)",
207
+ "rgb(86, 195, 142)",
208
+ "rgb(167, 57, 57)",
209
+ "rgb(109, 151, 184)",
210
+ "rgb(143, 70, 4)",
211
+ "rgb(16, 114, 81)",
212
+ "rgb(239, 154, 154)"
213
+ ]
214
+ }
165
215
  },
166
216
  "icons": {
167
217
  "arrow-down": "default/icons/arrow-down-MSLGVZVH.svg",
@@ -230,7 +280,7 @@
230
280
  "arrow-up": "default/icons/arrow-up-U5XN26IQ.svg",
231
281
  "tachometer": "default/icons/tachometer-UE46XP3D.svg"
232
282
  },
233
- "mainCssFile": "default/main-ISMOGQGC.css",
283
+ "mainCssFile": "default/main-QOHLYNJI.css",
234
284
  "favicons": {
235
285
  "apple": "default/images/favicon/apple-MBMLYIVD.png",
236
286
  "ico": "default/images/favicon/favicon-MGJ3GSCH.ico",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kausal/themes",
3
- "version": "0.8.2",
3
+ "version": "0.8.5",
4
4
  "description": "Themes for Kausal products",
5
5
  "type": "module",
6
6
  "main": "setup.cjs",
package/props.js CHANGED
@@ -1,7 +1,17 @@
1
1
  import PropTypes from 'prop-types';
2
2
 
3
- const { number, exact, string, oneOfType, bool, array, object, oneOf, objectOf, arrayOf } =
4
- PropTypes;
3
+ const {
4
+ number,
5
+ exact,
6
+ string,
7
+ oneOfType,
8
+ bool,
9
+ array,
10
+ object,
11
+ oneOf,
12
+ objectOf,
13
+ arrayOf,
14
+ } = PropTypes;
5
15
 
6
16
  export function makeThemePropType(cssv = null) {
7
17
  if (!cssv) {
@@ -24,6 +34,7 @@ export function makeThemePropType(cssv = null) {
24
34
  actionCompletedColor: cssv('color').isRequired,
25
35
  actionContinuousColor: cssv('color').isRequired,
26
36
  actionOnTimeColor: cssv('color').isRequired,
37
+ badgeColor: string.isRequired,
27
38
  badgeBorderRadius: oneOfType([string, number]).isRequired,
28
39
  badgeFontWeight: number.isRequired,
29
40
  badgePaddingX: string.isRequired,
@@ -33,6 +44,9 @@ export function makeThemePropType(cssv = null) {
33
44
  brandNavBackground: cssv('color'),
34
45
  brandNavColor: cssv('color'),
35
46
  brandNavFontFamily: cssv('font-family').allowEmpty,
47
+ siteNavColor: cssv('color'),
48
+ siteNavBackground: cssv('color'),
49
+ siteNavHighlightColor: cssv('color'),
36
50
  breakpointLg: string.isRequired,
37
51
  breakpointMd: string.isRequired,
38
52
  breakpointSm: string.isRequired,
@@ -109,9 +123,8 @@ export function makeThemePropType(cssv = null) {
109
123
  yellow090: cssv('color'),
110
124
  }).isRequired,
111
125
  headingsColor: cssv('color'),
126
+ headingsTextTransform: cssv('text-transform'),
112
127
  headingsFontWeight: cssv('font-weight').isRequired,
113
- iconActionsUrl: cssv('path').allowEmpty,
114
- iconIndicatorsUrl: cssv('path').allowEmpty,
115
128
  imageOverlay: string.isRequired,
116
129
  inputBg: string.isRequired,
117
130
  inputBorderRadius: string.isRequired,
@@ -122,6 +135,9 @@ export function makeThemePropType(cssv = null) {
122
135
  inputLineHeight: number.isRequired,
123
136
  inputPaddingX: string.isRequired,
124
137
  inputPaddingY: string.isRequired,
138
+ introModal: exact({
139
+ videoUrls: objectOf(string).isRequired,
140
+ }),
125
141
  lineHeightBase: number.isRequired,
126
142
  lineHeightLg: number.isRequired,
127
143
  lineHeightMd: number.isRequired,
@@ -130,6 +146,7 @@ export function makeThemePropType(cssv = null) {
130
146
  name: string.isRequired,
131
147
  neutralDark: string.isRequired,
132
148
  neutralLight: string.isRequired,
149
+ orgPageBackgroundColor: string.isRequired,
133
150
  space: string.isRequired,
134
151
  spaces: exact({
135
152
  s000: number.isRequired,
@@ -153,6 +170,8 @@ export function makeThemePropType(cssv = null) {
153
170
  }).isRequired,
154
171
  themeLogoUrl: cssv('hashedFile').isRequired,
155
172
  themeLogoWhiteUrl: cssv('hashedFile').isRequired,
173
+ defaultAvatarUserImage: cssv('hashedFile').isRequired,
174
+ defaultAvatarOrgImage: cssv('hashedFile').isRequired,
156
175
  phaseTimelineColor: string.isRequired,
157
176
  textColor: exact({
158
177
  primary: cssv('color').isRequired,
@@ -170,6 +189,7 @@ export function makeThemePropType(cssv = null) {
170
189
  goalColor: cssv('color').isRequired,
171
190
  latestColor: cssv('color').isRequired,
172
191
  startColor: cssv('color').isRequired,
192
+ linkToSource: bool.isRequired,
173
193
  }).isRequired,
174
194
  categoryList: exact({
175
195
  background: cssv('color').isRequired,
@@ -177,6 +197,10 @@ export function makeThemePropType(cssv = null) {
177
197
  }),
178
198
  }).isRequired,
179
199
  settings: exact({
200
+ actionView: exact({
201
+ showPaginationTop: bool,
202
+ showPaginationBottom: bool,
203
+ }),
180
204
  dashboard: exact({
181
205
  showResponsibles: bool.isRequired,
182
206
  showIndicators: bool.isRequired,
@@ -190,21 +214,26 @@ export function makeThemePropType(cssv = null) {
190
214
  categories: exact({
191
215
  filterIndicatorsByAllLevels: bool.isRequired,
192
216
  categoryPageHideCategoryLabel: bool,
217
+ collapseLongTexts: bool,
193
218
  }),
194
219
  hiddenLocales: arrayOf(string),
195
- fundingInstruments: arrayOf(exact({
196
- id: string,
197
- name: string,
198
- logo: string,
199
- link: string,
200
- })).isRequired,
220
+ fundingInstruments: arrayOf(
221
+ exact({
222
+ id: string,
223
+ name: string,
224
+ logo: string,
225
+ link: string,
226
+ })
227
+ ).isRequired,
201
228
  leftAlignCategoryPages: bool,
202
- otherLogos: arrayOf(exact({
203
- id: string,
204
- name: string,
205
- logo: string,
206
- link: string,
207
- })).isRequired,
229
+ otherLogos: arrayOf(
230
+ exact({
231
+ id: string,
232
+ name: string,
233
+ logo: string,
234
+ link: string,
235
+ })
236
+ ).isRequired,
208
237
  attentionBannerContent: object,
209
238
  footerLogoOnly: bool,
210
239
  footerStatement: string,
@@ -225,15 +254,25 @@ export function makeThemePropType(cssv = null) {
225
254
  }),
226
255
  graphs: exact({
227
256
  lineShape: string,
257
+ fillMarkers: bool,
258
+ goalSymbol: string,
259
+ categorySymbols: arrayOf(string),
228
260
  areaGraphs: bool,
229
261
  customBackground: string,
230
262
  showTrendline: bool,
231
- goalLineColor: string,
263
+ drawGoalLine: bool,
264
+ goalLineColors: arrayOf(string),
265
+ totalLineColor: string,
266
+ trendLineColor: string,
267
+ categoryColors: arrayOf(string),
268
+ roundIndicatorValue: bool,
232
269
  }),
233
270
  hideActionGrid: bool,
234
271
  hideIconOnActionListCards: bool,
235
272
  showActionDescriptionHeader: bool,
236
273
  showFeedbackLink: bool,
274
+ monsidoToken: string,
275
+ googleAnalyticsId: string,
237
276
  }),
238
277
  icons: objectOf(cssv('hashedFile')).isRequired,
239
278
  favicons: exact({
package/setup.cjs CHANGED
@@ -23,20 +23,21 @@ function generateThemeSymlinks(destPath, opts) {
23
23
  const statRes = fs.lstatSync(destPath, { throwIfNoEntry: false });
24
24
  if (statRes) {
25
25
  if (statRes.isDirectory()) {
26
- fs.rmdirSync(destPath);
26
+ fs.rmSync(destPath, { recursive: true });
27
27
  } else if (!statRes.isSymbolicLink()) {
28
28
  console.error(statRes);
29
29
  throw new Error(`${destPath} already exists and is not a symlink`);
30
- }
31
- const existingTarget = fs.readlinkSync(destPath);
32
- if (existingTarget !== themesPath) {
33
- console.log(`Removing existing symlink ${destPath}`);
34
- fs.unlinkSync(destPath);
35
30
  } else {
36
- if (verbose) {
37
- console.log(`${destPath} already exists, not linking`);
31
+ const existingTarget = fs.readlinkSync(destPath);
32
+ if (existingTarget !== themesPath) {
33
+ console.log(`Removing existing symlink ${destPath}`);
34
+ fs.unlinkSync(destPath);
35
+ } else {
36
+ if (verbose) {
37
+ console.log(`${destPath} already exists, not linking`);
38
+ }
39
+ return;
38
40
  }
39
- return;
40
41
  }
41
42
  }
42
43
  console.log(`🔗 Linking ${themesPath} → ${destPath}`);
package/types.ts CHANGED
@@ -8,6 +8,7 @@ export interface Theme {
8
8
  actionCompletedColor: string;
9
9
  actionContinuousColor: string;
10
10
  actionOnTimeColor: string;
11
+ badgeColor: string;
11
12
  badgeBorderRadius: string | number;
12
13
  badgeFontWeight: number;
13
14
  badgePaddingX: string;
@@ -16,6 +17,9 @@ export interface Theme {
16
17
  brandLight: cssColor;
17
18
  brandNavBackground: cssColor;
18
19
  brandNavColor: cssColor;
20
+ siteNavColor: cssColor;
21
+ siteNavBackground: cssColor;
22
+ siteNavHighlightColor: cssColor;
19
23
  brandNavFontFamily: string;
20
24
  breakpointLg: string;
21
25
  breakpointMd: string;
@@ -25,7 +29,6 @@ export interface Theme {
25
29
  btnBorderWidth: css['borderWidth'];
26
30
  cardBorderRadius: css['borderRadius'];
27
31
  cardBorderWidth: css['borderWidth'];
28
- combinedIconsFilename: string;
29
32
  customSelectIndicator: string;
30
33
  fontFamily: string;
31
34
  fontFamilyContent: string;
@@ -88,10 +91,9 @@ export interface Theme {
88
91
  yellow070: cssColor;
89
92
  yellow090: cssColor;
90
93
  };
94
+ headingsTextTransform: css['textTransform'];
91
95
  headingsColor: cssColor;
92
96
  headingsFontWeight: css['fontWeight'];
93
- iconActionsUrl: string;
94
- iconIndicatorsUrl: string;
95
97
  imageOverlay: string;
96
98
  inputBg: string;
97
99
  inputBorderRadius: string;
@@ -110,6 +112,7 @@ export interface Theme {
110
112
  name: string;
111
113
  neutralDark: cssColor;
112
114
  neutralLight: cssColor;
115
+ orgPageBackgroundColor: cssColor;
113
116
  space: string;
114
117
  taskStatusColors: {
115
118
  onTime: cssColor;
@@ -138,6 +141,8 @@ export interface Theme {
138
141
  };
139
142
  themeLogoUrl: string;
140
143
  themeLogoWhiteUrl: string;
144
+ defaultAvatarUserImage: string;
145
+ defaultAvatarOrgImage: string;
141
146
  phaseTimelineColor: string;
142
147
  textColor: {
143
148
  primary: string;
@@ -155,6 +160,7 @@ export interface Theme {
155
160
  goalColor: string;
156
161
  latestColor: string;
157
162
  startColor: string;
163
+ linkToSource: boolean;
158
164
  };
159
165
  categoryList?: {
160
166
  background: string;
@@ -162,6 +168,10 @@ export interface Theme {
162
168
  };
163
169
  };
164
170
  settings: {
171
+ actionView: {
172
+ showPaginationTop: boolean;
173
+ showPaginationBottom: boolean;
174
+ };
165
175
  dashboard: {
166
176
  showResponsibles: boolean;
167
177
  showIndicators: boolean;
@@ -175,6 +185,7 @@ export interface Theme {
175
185
  categories: {
176
186
  filterIndicatorsByAllLevels: boolean;
177
187
  categoryPageHideCategoryLabel?: boolean;
188
+ collapseLongTexts?: boolean;
178
189
  };
179
190
  hiddenLocales?: string[];
180
191
  fundingInstruments: {
@@ -193,6 +204,10 @@ export interface Theme {
193
204
  attentionBannerContent?: object;
194
205
  footerLogoOnly?: boolean;
195
206
  footerStatement?: string;
207
+ footerOwnerLinks?: {
208
+ title: string;
209
+ url: string;
210
+ }[];
196
211
  navigationLogoOnly?: boolean;
197
212
  stickyNavigation?: boolean;
198
213
  homeLink?: string;
@@ -207,15 +222,25 @@ export interface Theme {
207
222
  };
208
223
  graphs?: {
209
224
  lineShape?: string;
225
+ categorySymbols?: string[];
226
+ goalSymbol?: string;
227
+ fillMarkers?: boolean;
210
228
  areaGraphs?: boolean;
211
229
  customBackground?: cssColor;
212
230
  showTrendLine?: boolean;
213
- goalLineColor?: cssColor;
231
+ drawGoalLine?: boolean;
232
+ goalLineColors: cssColor[];
233
+ totalLineColor: cssColor;
234
+ trendLineColor: cssColor;
235
+ categoryColors: cssColor[];
236
+ roundIndicatorValue?: boolean;
214
237
  };
215
238
  hideActionGrid?: boolean;
216
239
  hideIconOnActionListCards?: boolean;
217
240
  showActionDescriptionHeader?: boolean;
218
241
  showFeedbackLink?: boolean;
242
+ monsidoToken?: string;
243
+ googleAnalyticsId?: string;
219
244
  };
220
245
  icons: {
221
246
  [icon: string]: string;
@@ -226,4 +251,9 @@ export interface Theme {
226
251
  svg: string;
227
252
  };
228
253
  mainCssFile: string;
254
+ introModal?: {
255
+ videoUrls: {
256
+ [lang: string]: string;
257
+ };
258
+ };
229
259
  }