@malloydata/render 0.0.108-dev231130212526 → 0.0.108

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.
@@ -32,12 +32,49 @@ exports.MalloyRender = void 0;
32
32
  const lit_1 = require("lit");
33
33
  const decorators_js_1 = require("lit/decorators.js");
34
34
  require("./table");
35
+ // Get the first valid theme value or fallback to CSS variable
36
+ function getThemeValue(prop, ...themes) {
37
+ let value;
38
+ for (const theme of themes) {
39
+ value = theme === null || theme === void 0 ? void 0 : theme.text(prop);
40
+ if (typeof value !== 'undefined')
41
+ break;
42
+ }
43
+ // If no theme overrides, convert prop name from camelCase to kebab and pull from --malloy-theme-- variable
44
+ return (value !== null && value !== void 0 ? value : `var(--malloy-theme--${prop
45
+ .replace(/([a-z])([A-Z])/g, '$1-$2')
46
+ .toLowerCase()})`);
47
+ }
35
48
  let MalloyRender = exports.MalloyRender = class MalloyRender extends lit_1.LitElement {
36
49
  render() {
37
- const isCompact = this.result.resultExplore.modelTag.has('renderer_next', 'compact');
50
+ const modelTag = this.result.resultExplore.modelTag;
51
+ const { tag: resultTag } = this.result.tagParse();
52
+ const modelTheme = modelTag.tag('theme');
53
+ const localTheme = resultTag.tag('theme');
54
+ const tableRowHeight = getThemeValue('tableRowHeight', localTheme, modelTheme);
55
+ const tableBodyColor = getThemeValue('tableBodyColor', localTheme, modelTheme);
56
+ const tableFontSize = getThemeValue('tableFontSize', localTheme, modelTheme);
57
+ const tableHeaderColor = getThemeValue('tableHeaderColor', localTheme, modelTheme);
58
+ const tableHeaderWeight = getThemeValue('tableHeaderWeight', localTheme, modelTheme);
59
+ const tableBodyWeight = getThemeValue('tableBodyWeight', localTheme, modelTheme);
60
+ const tableBorder = getThemeValue('tableBorder', localTheme, modelTheme);
61
+ const tableBackground = getThemeValue('tableBackground', localTheme, modelTheme);
62
+ const tableGutterSize = getThemeValue('tableGutterSize', localTheme, modelTheme);
63
+ const tablePinnedBackground = getThemeValue('tablePinnedBackground', localTheme, modelTheme);
64
+ const tablePinnedBorder = getThemeValue('tablePinnedBorder', localTheme, modelTheme);
38
65
  const dynamicStyle = (0, lit_1.html) `<style>
39
66
  :host {
40
- --table-row-height: ${isCompact ? '28px' : '36px'};
67
+ --malloy-render--table-row-height: ${tableRowHeight};
68
+ --malloy-render--table-body-color: ${tableBodyColor};
69
+ --malloy-render--table-font-size: ${tableFontSize};
70
+ --malloy-render--table-header-color: ${tableHeaderColor};
71
+ --malloy-render--table-header-weight: ${tableHeaderWeight};
72
+ --malloy-render--table-body-weight: ${tableBodyWeight};
73
+ --malloy-render--table-border: ${tableBorder};
74
+ --malloy-render--table-background: ${tableBackground};
75
+ --malloy-render--table-gutter-size: ${tableGutterSize};
76
+ --malloy-render--table-pinned-background: ${tablePinnedBackground};
77
+ --malloy-render--table-pinned-border: ${tablePinnedBorder};
41
78
  }
42
79
  </style>`;
43
80
  return (0, lit_1.html) `${dynamicStyle}<malloy-table
@@ -48,19 +85,20 @@ let MalloyRender = exports.MalloyRender = class MalloyRender extends lit_1.LitEl
48
85
  };
49
86
  MalloyRender.styles = (0, lit_1.css) `
50
87
  :host {
51
- --table-font-size: 12px;
52
- --table-header-color: #5d626b;
53
- --table-header-weight: bold;
54
- --table-body-color: #727883;
55
- --table-body-weight: 400;
56
- --table-border: 1px solid #e5e7eb;
57
- --table-background: white;
58
- --table-gutter-size: 15px;
59
- --table-pinned-background: #f5fafc;
60
- --table-pinned-border: 1px solid #daedf3;
88
+ --malloy-theme--table-row-height: 28px;
89
+ --malloy-theme--table-font-size: 12px;
90
+ --malloy-theme--table-header-color: #5d626b;
91
+ --malloy-theme--table-header-weight: bold;
92
+ --malloy-theme--table-body-color: #727883;
93
+ --malloy-theme--table-body-weight: 400;
94
+ --malloy-theme--table-border: 1px solid #e5e7eb;
95
+ --malloy-theme--table-background: white;
96
+ --malloy-theme--table-gutter-size: 15px;
97
+ --malloy-theme--table-pinned-background: #f5fafc;
98
+ --malloy-theme--table-pinned-border: 1px solid #daedf3;
61
99
 
62
100
  font-family: Inter, system-ui, sans-serif;
63
- font-size: var(--table-font-size);
101
+ font-size: var(--malloy-render--table-font-size);
64
102
  }
65
103
 
66
104
  @supports (font-variation-settings: normal) {
@@ -216,7 +216,7 @@ Table.styles = (0, lit_1.css) `
216
216
 
217
217
  table {
218
218
  border-collapse: collapse;
219
- background: var(--table-background);
219
+ background: var(--malloy-render--table-background);
220
220
  }
221
221
 
222
222
  th {
@@ -228,7 +228,7 @@ Table.styles = (0, lit_1.css) `
228
228
  }
229
229
 
230
230
  .column-cell {
231
- height: var(--table-row-height);
231
+ height: var(--malloy-render--table-row-height);
232
232
  overflow: hidden;
233
233
  white-space: nowrap;
234
234
  text-align: left;
@@ -238,13 +238,13 @@ Table.styles = (0, lit_1.css) `
238
238
  }
239
239
 
240
240
  td.column-cell {
241
- font-weight: var(--table-body-weight);
242
- color: var(--table-body-color);
241
+ font-weight: var(--malloy-render--table-body-weight);
242
+ color: var(--malloy-render--table-body-color);
243
243
  }
244
244
 
245
245
  th.column-cell {
246
- font-weight: var(--table-header-weight);
247
- color: var(--table-header-color);
246
+ font-weight: var(--malloy-render--table-header-weight);
247
+ color: var(--malloy-render--table-header-color);
248
248
  }
249
249
 
250
250
  .column-cell.numeric {
@@ -253,25 +253,25 @@ Table.styles = (0, lit_1.css) `
253
253
  }
254
254
 
255
255
  .cell-wrapper {
256
- height: var(--table-row-height);
256
+ height: var(--malloy-render--table-row-height);
257
257
  display: flex;
258
258
  align-items: center;
259
259
  overflow: hidden;
260
260
  }
261
261
 
262
262
  .cell-content {
263
- border-top: var(--table-border);
264
- height: var(--table-row-height);
265
- line-height: var(--table-row-height);
263
+ border-top: var(--malloy-render--table-border);
264
+ height: var(--malloy-render--table-row-height);
265
+ line-height: var(--malloy-render--table-row-height);
266
266
  flex: 1;
267
267
  overflow: hidden;
268
268
  text-overflow: ellipsis;
269
269
  }
270
270
 
271
271
  .cell-gutter {
272
- border-top: var(--table-border);
273
- height: var(--table-row-height);
274
- width: var(--table-gutter-size);
272
+ border-top: var(--malloy-render--table-border);
273
+ height: var(--malloy-render--table-row-height);
274
+ width: var(--malloy-render--table-gutter-size);
275
275
  transition: border-color 0.25s;
276
276
  }
277
277
 
@@ -284,11 +284,11 @@ Table.styles = (0, lit_1.css) `
284
284
  }
285
285
 
286
286
  .pinned-header th {
287
- background: var(--table-background);
287
+ background: var(--malloy-render--table-background);
288
288
  }
289
289
 
290
290
  .pinned-header.scrolled th {
291
- background: var(--table-pinned-background);
291
+ background: var(--malloy-render--table-pinned-background);
292
292
  box-shadow: 0 0 0.5em rgba(0, 0, 0, 0.5);
293
293
  }
294
294
 
@@ -296,7 +296,7 @@ Table.styles = (0, lit_1.css) `
296
296
  .cell-content,
297
297
  .cell-gutter,
298
298
  .cell-gutter.hide-gutter-border {
299
- border-top: var(--table-pinned-border);
299
+ border-top: var(--malloy-render--table-pinned-border);
300
300
  }
301
301
  }
302
302
  `;
@@ -28,10 +28,3 @@ export declare const Nested: {
28
28
  view: string;
29
29
  };
30
30
  };
31
- export declare const NestedCompact: {
32
- args: {
33
- source: string;
34
- view: string;
35
- classes: string;
36
- };
37
- };
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.NestedCompact = exports.Nested = exports.Products2Column = exports.ProductsTableCustomTheme = exports.ProductsTable = void 0;
6
+ exports.Nested = exports.Products2Column = exports.ProductsTableCustomTheme = exports.ProductsTable = void 0;
7
7
  const tables_malloy_raw_1 = __importDefault(require("./static/tables.malloy?raw"));
8
8
  const util_1 = require("./util");
9
9
  require("./themes.css");
@@ -50,11 +50,4 @@ exports.Nested = {
50
50
  view: 'nested',
51
51
  },
52
52
  };
53
- exports.NestedCompact = {
54
- args: {
55
- source: 'products',
56
- view: 'nested',
57
- classes: 'compact',
58
- },
59
- };
60
53
  //# sourceMappingURL=tables.stories.js.map
@@ -0,0 +1,24 @@
1
+ import { Meta } from '@storybook/html';
2
+ import './themes.css';
3
+ import '../component/render';
4
+ declare const meta: Meta;
5
+ export default meta;
6
+ export declare const ModelThemeOverride: {
7
+ args: {
8
+ source: string;
9
+ view: string;
10
+ };
11
+ };
12
+ export declare const ViewThemeOverride: {
13
+ args: {
14
+ source: string;
15
+ view: string;
16
+ };
17
+ };
18
+ export declare const ViewThemeOverrideCSS: {
19
+ args: {
20
+ source: string;
21
+ view: string;
22
+ classes: string;
23
+ };
24
+ };
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ViewThemeOverrideCSS = exports.ViewThemeOverride = exports.ModelThemeOverride = void 0;
7
+ const themes_malloy_raw_1 = __importDefault(require("./static/themes.malloy?raw"));
8
+ const util_1 = require("./util");
9
+ require("./themes.css");
10
+ require("../component/render");
11
+ const meta = {
12
+ title: 'Malloy Next/Themes',
13
+ render: ({ classes }, context) => {
14
+ const parent = document.createElement('div');
15
+ parent.style.height = '1000px';
16
+ parent.style.position = 'relative';
17
+ const el = document.createElement('malloy-render');
18
+ if (classes)
19
+ el.classList.add(classes);
20
+ el.result = context.loaded['result'];
21
+ parent.appendChild(el);
22
+ return parent;
23
+ },
24
+ loaders: [(0, util_1.createLoader)(themes_malloy_raw_1.default)],
25
+ argTypes: {},
26
+ };
27
+ exports.default = meta;
28
+ exports.ModelThemeOverride = {
29
+ args: {
30
+ source: 'products',
31
+ view: `records`,
32
+ },
33
+ };
34
+ exports.ViewThemeOverride = {
35
+ args: {
36
+ source: 'products',
37
+ view: `records_override`,
38
+ },
39
+ };
40
+ exports.ViewThemeOverrideCSS = {
41
+ args: {
42
+ source: 'products',
43
+ view: `records_override`,
44
+ classes: 'night',
45
+ },
46
+ };
47
+ //# sourceMappingURL=themes.stories.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@malloydata/render",
3
- "version": "0.0.108-dev231130212526",
3
+ "version": "0.0.108",
4
4
  "license": "MIT",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -24,7 +24,7 @@
24
24
  },
25
25
  "dependencies": {
26
26
  "@lit/context": "^1.1.0",
27
- "@malloydata/malloy": "^0.0.108-dev231130212526",
27
+ "@malloydata/malloy": "^0.0.108",
28
28
  "@types/luxon": "^2.4.0",
29
29
  "lit": "^3.0.2",
30
30
  "lodash": "^4.17.20",