@emuanalytics/flow-rdf-ui 0.0.18 → 0.0.20

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,7 +1,13 @@
1
1
  (function(global2, factory) {
2
2
  typeof exports === "object" && typeof module !== "undefined" ? factory(exports, require("chart.js")) : typeof define === "function" && define.amd ? define(["exports", "chart.js"], factory) : (global2 = typeof globalThis !== "undefined" ? globalThis : global2 || self, factory(global2.FlowRDFUI = {}, global2.ChartJS));
3
3
  })(this, function(exports2, chart_js) {
4
- "use strict";
4
+ "use strict";var __defProp = Object.defineProperty;
5
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
+ var __publicField = (obj, key, value) => {
7
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
8
+ return value;
9
+ };
10
+
5
11
  /**
6
12
  * @license
7
13
  * Copyright 2019 Google LLC
@@ -8083,7 +8089,7 @@
8083
8089
  position: relative;
8084
8090
  width: 100%;
8085
8091
  height: 100%;
8086
- padding: var(--flow-ui-spacing-x-small);
8092
+ /* padding: var(--flow-ui-spacing-x-small); */
8087
8093
  }
8088
8094
  `;
8089
8095
  /*!
@@ -9238,6 +9244,216 @@
9238
9244
  }
9239
9245
  return passiveSupported;
9240
9246
  })();
9247
+ /*!
9248
+ * chartjs-chart-matrix v2.0.1
9249
+ * https://chartjs-chart-matrix.pages.dev/
9250
+ * (c) 2023 Jukka Kurkela
9251
+ * Released under the MIT license
9252
+ */
9253
+ var version$2 = "2.0.1";
9254
+ class MatrixController extends chart_js.DatasetController {
9255
+ initialize() {
9256
+ this.enableOptionSharing = true;
9257
+ super.initialize();
9258
+ }
9259
+ update(mode) {
9260
+ const me = this;
9261
+ const meta = me._cachedMeta;
9262
+ me.updateElements(meta.data, 0, meta.data.length, mode);
9263
+ }
9264
+ updateElements(rects, start, count, mode) {
9265
+ const me = this;
9266
+ const reset = mode === "reset";
9267
+ const { xScale, yScale } = me._cachedMeta;
9268
+ const firstOpts = me.resolveDataElementOptions(start, mode);
9269
+ const sharedOptions = me.getSharedOptions(mode, rects[start], firstOpts);
9270
+ for (let i2 = start; i2 < start + count; i2++) {
9271
+ const parsed = !reset && me.getParsed(i2);
9272
+ const x2 = reset ? xScale.getBasePixel() : xScale.getPixelForValue(parsed.x);
9273
+ const y2 = reset ? yScale.getBasePixel() : yScale.getPixelForValue(parsed.y);
9274
+ const options = me.resolveDataElementOptions(i2, mode);
9275
+ const { width, height, anchorX, anchorY } = options;
9276
+ const properties = {
9277
+ x: resolveX(anchorX, x2, width),
9278
+ y: resolveY(anchorY, y2, height),
9279
+ width,
9280
+ height,
9281
+ options
9282
+ };
9283
+ me.updateElement(rects[i2], i2, properties, mode);
9284
+ }
9285
+ me.updateSharedOptions(sharedOptions, mode);
9286
+ }
9287
+ draw() {
9288
+ const me = this;
9289
+ const data = me.getMeta().data || [];
9290
+ let i2, ilen;
9291
+ for (i2 = 0, ilen = data.length; i2 < ilen; ++i2) {
9292
+ data[i2].draw(me._ctx);
9293
+ }
9294
+ }
9295
+ }
9296
+ __publicField(MatrixController, "id", "matrix");
9297
+ __publicField(MatrixController, "version", version$2);
9298
+ __publicField(MatrixController, "defaults", {
9299
+ dataElementType: "matrix",
9300
+ animations: {
9301
+ numbers: {
9302
+ type: "number",
9303
+ properties: ["x", "y", "width", "height"]
9304
+ }
9305
+ }
9306
+ });
9307
+ __publicField(MatrixController, "overrides", {
9308
+ interaction: {
9309
+ mode: "nearest",
9310
+ intersect: true
9311
+ },
9312
+ scales: {
9313
+ x: {
9314
+ type: "linear",
9315
+ offset: true
9316
+ },
9317
+ y: {
9318
+ type: "linear",
9319
+ reverse: true
9320
+ }
9321
+ }
9322
+ });
9323
+ function resolveX(anchorX, x2, width) {
9324
+ if (anchorX === "left" || anchorX === "start") {
9325
+ return x2;
9326
+ }
9327
+ if (anchorX === "right" || anchorX === "end") {
9328
+ return x2 - width;
9329
+ }
9330
+ return x2 - width / 2;
9331
+ }
9332
+ function resolveY(anchorY, y2, height) {
9333
+ if (anchorY === "top" || anchorY === "start") {
9334
+ return y2;
9335
+ }
9336
+ if (anchorY === "bottom" || anchorY === "end") {
9337
+ return y2 - height;
9338
+ }
9339
+ return y2 - height / 2;
9340
+ }
9341
+ function getBounds(rect, useFinalPosition) {
9342
+ const { x: x2, y: y2, width, height } = rect.getProps(["x", "y", "width", "height"], useFinalPosition);
9343
+ return { left: x2, top: y2, right: x2 + width, bottom: y2 + height };
9344
+ }
9345
+ function limit(value, min2, max2) {
9346
+ return Math.max(Math.min(value, max2), min2);
9347
+ }
9348
+ function parseBorderWidth(rect, maxW, maxH) {
9349
+ const value = rect.options.borderWidth;
9350
+ let t2, r2, b2, l2;
9351
+ if (isObject$1(value)) {
9352
+ t2 = +value.top || 0;
9353
+ r2 = +value.right || 0;
9354
+ b2 = +value.bottom || 0;
9355
+ l2 = +value.left || 0;
9356
+ } else {
9357
+ t2 = r2 = b2 = l2 = +value || 0;
9358
+ }
9359
+ return {
9360
+ t: limit(t2, 0, maxH),
9361
+ r: limit(r2, 0, maxW),
9362
+ b: limit(b2, 0, maxH),
9363
+ l: limit(l2, 0, maxW)
9364
+ };
9365
+ }
9366
+ function boundingRects(rect) {
9367
+ const bounds = getBounds(rect);
9368
+ const width = bounds.right - bounds.left;
9369
+ const height = bounds.bottom - bounds.top;
9370
+ const border = parseBorderWidth(rect, width / 2, height / 2);
9371
+ return {
9372
+ outer: {
9373
+ x: bounds.left,
9374
+ y: bounds.top,
9375
+ w: width,
9376
+ h: height
9377
+ },
9378
+ inner: {
9379
+ x: bounds.left + border.l,
9380
+ y: bounds.top + border.t,
9381
+ w: width - border.l - border.r,
9382
+ h: height - border.t - border.b
9383
+ }
9384
+ };
9385
+ }
9386
+ function inRange(rect, x2, y2, useFinalPosition) {
9387
+ const skipX = x2 === null;
9388
+ const skipY = y2 === null;
9389
+ const bounds = !rect || skipX && skipY ? false : getBounds(rect, useFinalPosition);
9390
+ return bounds && (skipX || x2 >= bounds.left && x2 <= bounds.right) && (skipY || y2 >= bounds.top && y2 <= bounds.bottom);
9391
+ }
9392
+ class MatrixElement extends chart_js.Element {
9393
+ constructor(cfg) {
9394
+ super();
9395
+ this.options = void 0;
9396
+ this.width = void 0;
9397
+ this.height = void 0;
9398
+ if (cfg) {
9399
+ Object.assign(this, cfg);
9400
+ }
9401
+ }
9402
+ draw(ctx) {
9403
+ const options = this.options;
9404
+ const { inner, outer } = boundingRects(this);
9405
+ const radius = toTRBLCorners(options.borderRadius);
9406
+ ctx.save();
9407
+ if (outer.w !== inner.w || outer.h !== inner.h) {
9408
+ ctx.beginPath();
9409
+ addRoundedRectPath(ctx, { x: outer.x, y: outer.y, w: outer.w, h: outer.h, radius });
9410
+ addRoundedRectPath(ctx, { x: inner.x, y: inner.y, w: inner.w, h: inner.h, radius });
9411
+ ctx.fillStyle = options.backgroundColor;
9412
+ ctx.fill();
9413
+ ctx.fillStyle = options.borderColor;
9414
+ ctx.fill("evenodd");
9415
+ } else {
9416
+ ctx.beginPath();
9417
+ addRoundedRectPath(ctx, { x: inner.x, y: inner.y, w: inner.w, h: inner.h, radius });
9418
+ ctx.fillStyle = options.backgroundColor;
9419
+ ctx.fill();
9420
+ }
9421
+ ctx.restore();
9422
+ }
9423
+ inRange(mouseX, mouseY, useFinalPosition) {
9424
+ return inRange(this, mouseX, mouseY, useFinalPosition);
9425
+ }
9426
+ inXRange(mouseX, useFinalPosition) {
9427
+ return inRange(this, mouseX, null, useFinalPosition);
9428
+ }
9429
+ inYRange(mouseY, useFinalPosition) {
9430
+ return inRange(this, null, mouseY, useFinalPosition);
9431
+ }
9432
+ getCenterPoint(useFinalPosition) {
9433
+ const { x: x2, y: y2, width, height } = this.getProps(["x", "y", "width", "height"], useFinalPosition);
9434
+ return {
9435
+ x: x2 + width / 2,
9436
+ y: y2 + height / 2
9437
+ };
9438
+ }
9439
+ tooltipPosition() {
9440
+ return this.getCenterPoint();
9441
+ }
9442
+ getRange(axis) {
9443
+ return axis === "x" ? this.width / 2 : this.height / 2;
9444
+ }
9445
+ }
9446
+ __publicField(MatrixElement, "id", "matrix");
9447
+ __publicField(MatrixElement, "defaults", {
9448
+ backgroundColor: void 0,
9449
+ borderColor: void 0,
9450
+ borderWidth: void 0,
9451
+ borderRadius: 0,
9452
+ anchorX: "center",
9453
+ anchorY: "center",
9454
+ width: 20,
9455
+ height: 20
9456
+ });
9241
9457
  /*!
9242
9458
  * chartjs-plugin-annotation v3.0.1
9243
9459
  * https://www.chartjs.org/chartjs-plugin-annotation/index
@@ -10046,15 +10262,15 @@
10046
10262
  verifyScaleIDs(annotation2, scales);
10047
10263
  }
10048
10264
  }
10049
- function changeScaleLimit(scale, range, limit, suggestedLimit) {
10050
- if (isNumberFinite(range[limit]) && !scaleLimitDefined(scale.options, limit, suggestedLimit)) {
10051
- const changed = scale[limit] !== range[limit];
10052
- scale[limit] = range[limit];
10265
+ function changeScaleLimit(scale, range, limit2, suggestedLimit) {
10266
+ if (isNumberFinite(range[limit2]) && !scaleLimitDefined(scale.options, limit2, suggestedLimit)) {
10267
+ const changed = scale[limit2] !== range[limit2];
10268
+ scale[limit2] = range[limit2];
10053
10269
  return changed;
10054
10270
  }
10055
10271
  }
10056
- function scaleLimitDefined(scaleOptions, limit, suggestedLimit) {
10057
- return defined(scaleOptions[limit]) || defined(scaleOptions[suggestedLimit]);
10272
+ function scaleLimitDefined(scaleOptions, limit2, suggestedLimit) {
10273
+ return defined(scaleOptions[limit2]) || defined(scaleOptions[suggestedLimit]);
10058
10274
  }
10059
10275
  function verifyScaleIDs(annotation2, scales) {
10060
10276
  for (const key of ["scaleID", "xScaleID", "yScaleID"]) {
@@ -10623,8 +10839,8 @@
10623
10839
  borderColor: "color"
10624
10840
  };
10625
10841
  function inAxisRange(element, { mouseX, mouseY }, axis, { hBorderWidth, useFinalPosition }) {
10626
- const limit = rangeLimit(mouseX, mouseY, element.getProps(["x", "y", "x2", "y2"], useFinalPosition), axis);
10627
- return limit.value >= limit.start - hBorderWidth && limit.value <= limit.end + hBorderWidth || isOnLabel(element, { mouseX, mouseY }, useFinalPosition, axis);
10842
+ const limit2 = rangeLimit(mouseX, mouseY, element.getProps(["x", "y", "x2", "y2"], useFinalPosition), axis);
10843
+ return limit2.value >= limit2.start - hBorderWidth && limit2.value <= limit2.end + hBorderWidth || isOnLabel(element, { mouseX, mouseY }, useFinalPosition, axis);
10628
10844
  }
10629
10845
  function isLineInArea({ x: x2, y: y2, x2: x22, y2: y22 }, { top, right, bottom, left }) {
10630
10846
  return !(x2 < left && x22 < left || x2 > right && x22 > right || y2 < top && y22 < top || y2 > bottom && y22 > bottom);
@@ -10863,9 +11079,9 @@
10863
11079
  }
10864
11080
  const { x: x2, y: y2, x2: x22, y2: y22 } = this.getProps(["x", "y", "x2", "y2"], useFinalPosition);
10865
11081
  const hBorderWidth = borderWidth / 2;
10866
- const limit = axis === "y" ? { start: y2, end: y22 } : { start: x2, end: x22 };
11082
+ const limit2 = axis === "y" ? { start: y2, end: y22 } : { start: x2, end: x22 };
10867
11083
  const rotatedPoint = rotated({ x: mouseX, y: mouseY }, this.getCenterPoint(useFinalPosition), toRadians(-rotation));
10868
- return rotatedPoint[axis] >= limit.start - hBorderWidth - EPSILON && rotatedPoint[axis] <= limit.end + hBorderWidth + EPSILON;
11084
+ return rotatedPoint[axis] >= limit2.start - hBorderWidth - EPSILON && rotatedPoint[axis] <= limit2.end + hBorderWidth + EPSILON;
10869
11085
  }
10870
11086
  getCenterPoint(useFinalPosition) {
10871
11087
  return getElementCenterPoint(this, useFinalPosition);
@@ -10948,8 +11164,8 @@
10948
11164
  return inPointRange({ x: mouseX, y: mouseY }, this.getCenterPoint(useFinalPosition), width / 2, borderWidth);
10949
11165
  }
10950
11166
  const hBorderWidth = borderWidth / 2;
10951
- const limit = axis === "y" ? { start: y2, end: y22, value: mouseY } : { start: x2, end: x22, value: mouseX };
10952
- return limit.value >= limit.start - hBorderWidth && limit.value <= limit.end + hBorderWidth;
11167
+ const limit2 = axis === "y" ? { start: y2, end: y22, value: mouseY } : { start: x2, end: x22, value: mouseX };
11168
+ return limit2.value >= limit2.start - hBorderWidth && limit2.value <= limit2.end + hBorderWidth;
10953
11169
  }
10954
11170
  getCenterPoint(useFinalPosition) {
10955
11171
  return getElementCenterPoint(this, useFinalPosition);
@@ -13168,16 +13384,27 @@
13168
13384
  chart_js.Legend,
13169
13385
  chart_js.Tooltip,
13170
13386
  chart_js.Title,
13171
- annotation
13387
+ annotation,
13388
+ MatrixController,
13389
+ MatrixElement
13172
13390
  );
13173
13391
  chart_js.Tooltip.positioners.cursor = CursorPositioner;
13174
13392
  chart_js.Interaction.modes.interpolate = Interpolate;
13175
13393
  chart_js.Chart.defaults.animation = false;
13176
13394
  chart_js.Chart.defaults.responsive = true;
13177
13395
  chart_js.Chart.defaults.maintainAspectRatio = false;
13396
+ chart_js.Chart.defaults.layout.padding = {
13397
+ top: 5,
13398
+ right: 10,
13399
+ bottom: 5,
13400
+ left: 5
13401
+ };
13178
13402
  chart_js.Chart.defaults.plugins.legend.position = "bottom";
13179
13403
  chart_js.Chart.defaults.plugins.legend.align = "start";
13180
13404
  chart_js.Chart.defaults.plugins.tooltip.position = "cursor";
13405
+ chart_js.Chart.defaults.plugins.title.font = { size: 12 };
13406
+ chart_js.Chart.defaults.plugins.title.align = "start";
13407
+ chart_js.Chart.defaults.plugins.title.padding = { top: 0, bottom: 10 };
13181
13408
  }
13182
13409
  function registerChartComponent(...components) {
13183
13410
  chart_js.Chart.register(...components);
@@ -19542,14 +19769,24 @@
19542
19769
  overflow: hidden;
19543
19770
  }
19544
19771
 
19772
+ /* For scrollable panel - enable scroll and (optionally) add padding to scrollable content */
19545
19773
  .panel--scrollable .panel__body-wrapper {
19546
19774
  overflow-y: auto;
19547
19775
  }
19548
19776
 
19549
- .panel--with-padding .panel__body {
19777
+ .panel--scrollable.panel--with-padding .panel__body {
19778
+ padding: var(--padding);
19779
+ }
19780
+
19781
+ /* For non-scrollable panel - fix body at 100% and disable scroll. Padding is added to wrapper */
19782
+ .panel.panel--with-padding:not(.panel--scrollable) .panel__body-wrapper {
19550
19783
  padding: var(--padding);
19551
19784
  }
19552
19785
 
19786
+ .panel:not(.panel--scrollable) .panel__body {
19787
+ height: 100%;
19788
+ overflow-y: hidden;
19789
+ }
19553
19790
  `;
19554
19791
  var __defProp$r = Object.defineProperty;
19555
19792
  var __getOwnPropDesc$r = Object.getOwnPropertyDescriptor;
@@ -27837,7 +28074,8 @@ body > .os-scrollbar {
27837
28074
  }
27838
28075
 
27839
28076
  /* Ensure nav is positioned when tab-group is placed in a split panel and the panel is closed */
27840
- .tab-group--end, .tab-group--bottom {
28077
+ .tab-group--end,
28078
+ .tab-group--bottom {
27841
28079
  justify-content: end;
27842
28080
  }
27843
28081
 
@@ -27904,6 +28142,11 @@ body > .os-scrollbar {
27904
28142
  width: var(--flow-ui-spacing-x-large);
27905
28143
  }
27906
28144
 
28145
+ /* Make tab panels take up full height */
28146
+ ::slotted(flow-ui-tab-panel) {
28147
+ height: 100%;
28148
+ }
28149
+
27907
28150
  /*
27908
28151
  * Top
27909
28152
  */
@@ -28042,7 +28285,7 @@ body > .os-scrollbar {
28042
28285
 
28043
28286
  .tab-group--start .tab-group__track {
28044
28287
  height: 100%;
28045
- right:0;
28288
+ right: 0;
28046
28289
  border-right: solid var(--track-width) var(--track-color);
28047
28290
  }
28048
28291
 
@@ -28183,7 +28426,6 @@ body > .os-scrollbar {
28183
28426
  top: auto;
28184
28427
  bottom: 0;
28185
28428
  }
28186
-
28187
28429
  `;
28188
28430
  var __defProp$9 = Object.defineProperty;
28189
28431
  var __getOwnPropDesc$9 = Object.getOwnPropertyDescriptor;
@@ -28582,18 +28824,47 @@ body > .os-scrollbar {
28582
28824
  ${componentStyles}
28583
28825
 
28584
28826
  :host {
28585
- --padding: 0;
28586
28827
  display: none;
28828
+ min-height: 0;
28829
+
28830
+ --padding: 0;
28587
28831
  }
28588
28832
 
28589
28833
  :host([active]) {
28590
28834
  display: block;
28591
28835
  }
28592
28836
 
28593
- .tab-panel {
28594
- display: block;
28837
+ .panel {
28838
+ height: 100%;
28839
+ display: flex;
28840
+ flex-direction: column;
28841
+ }
28842
+
28843
+ /* Body */
28844
+ .panel__body-wrapper {
28845
+ flex: 1;
28846
+ min-height: 0;
28847
+ overflow: hidden;
28848
+ }
28849
+
28850
+ /* For scrollable panel - enable scroll and (optionally) add padding to scrollable content */
28851
+ .panel--scrollable .panel__body-wrapper {
28852
+ overflow-y: auto;
28853
+ }
28854
+
28855
+ .panel--scrollable .panel__body {
28856
+ padding: var(--padding);
28857
+ }
28858
+
28859
+ /* For non-scrollable panel - fix body at 100% and disable scroll. Padding is added to wrapper */
28860
+ .panel:not(.panel--scrollable) .panel__body-wrapper {
28595
28861
  padding: var(--padding);
28596
28862
  }
28863
+
28864
+ .panel:not(.panel--scrollable) .panel__body {
28865
+ height: 100%;
28866
+ overflow-y: hidden;
28867
+ }
28597
28868
  `;
28598
28869
  var __defProp$8 = Object.defineProperty;
28599
28870
  var __getOwnPropDesc$8 = Object.getOwnPropertyDescriptor;
@@ -28614,6 +28885,7 @@ body > .os-scrollbar {
28614
28885
  this.componentId = `flow-ui-tab-panel-${this.attrId}`;
28615
28886
  this.name = "";
28616
28887
  this.active = false;
28888
+ this.scrollable = false;
28617
28889
  }
28618
28890
  connectedCallback() {
28619
28891
  super.connectedCallback();
@@ -28625,13 +28897,19 @@ body > .os-scrollbar {
28625
28897
  }
28626
28898
  render() {
28627
28899
  return x$2`
28628
- <slot
28629
- part="base"
28900
+ <div
28630
28901
  class=${o$9({
28631
- "tab-panel": true,
28632
- "tab-panel--active": this.active
28902
+ panel: true,
28903
+ "panel--active": this.active,
28904
+ "panel--scrollable": this.scrollable
28633
28905
  })}
28634
- ></slot>
28906
+ >
28907
+ <div class="panel__body-wrapper">
28908
+ <div part="body" class="panel__body">
28909
+ <slot></slot>
28910
+ </div>
28911
+ </div>
28912
+ </div>
28635
28913
  `;
28636
28914
  }
28637
28915
  };
@@ -28642,6 +28920,9 @@ body > .os-scrollbar {
28642
28920
  __decorateClass$8([
28643
28921
  n$8({ type: Boolean, reflect: true })
28644
28922
  ], exports2.FlowTabPanel.prototype, "active", 2);
28923
+ __decorateClass$8([
28924
+ n$8({ type: Boolean, reflect: true })
28925
+ ], exports2.FlowTabPanel.prototype, "scrollable", 2);
28645
28926
  __decorateClass$8([
28646
28927
  watch("active")
28647
28928
  ], exports2.FlowTabPanel.prototype, "handleActiveChange", 1);
@@ -31528,7 +31809,7 @@ body > .os-scrollbar {
31528
31809
  }
31529
31810
 
31530
31811
  `;
31531
- var __defProp = Object.defineProperty;
31812
+ var __defProp2 = Object.defineProperty;
31532
31813
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
31533
31814
  var __decorateClass = (decorators, target, key, kind) => {
31534
31815
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
@@ -31536,7 +31817,7 @@ body > .os-scrollbar {
31536
31817
  if (decorator = decorators[i2])
31537
31818
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
31538
31819
  if (kind && result)
31539
- __defProp(target, key, result);
31820
+ __defProp2(target, key, result);
31540
31821
  return result;
31541
31822
  };
31542
31823
  class FlowToolButton extends FlowRdfElement {
@@ -31745,7 +32026,7 @@ body > .os-scrollbar {
31745
32026
  toggleColorFormat: "Toggle color format"
31746
32027
  };
31747
32028
  registerTranslation(translation);
31748
- const version = "0.0.18";
32029
+ const version = "0.0.20";
31749
32030
  const CONSOLE_HIGHLIGHT_STYLE = `
31750
32031
  padding: 2px 4px;
31751
32032
  border-radius: 2px;
@@ -96,6 +96,61 @@
96
96
  ],
97
97
  "references": []
98
98
  },
99
+ {
100
+ "name": "flow-ui-badge",
101
+ "description": "Badges are used to draw attention and display statuses or counts.\n\n\n---\n\n\n\n\n### **Slots:**\n - _default_ - The badge's content.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
102
+ "attributes": [
103
+ {
104
+ "name": "variant",
105
+ "description": "The badge's theme variant.",
106
+ "values": [
107
+ { "name": "primary" },
108
+ { "name": "success" },
109
+ { "name": "neutral" },
110
+ { "name": "warning" },
111
+ { "name": "danger" }
112
+ ]
113
+ },
114
+ {
115
+ "name": "pill",
116
+ "description": "Draws a pill-style badge with rounded edges.",
117
+ "values": []
118
+ },
119
+ {
120
+ "name": "pulse",
121
+ "description": "Makes the badge pulsate to draw attention.",
122
+ "values": []
123
+ }
124
+ ],
125
+ "references": []
126
+ },
127
+ {
128
+ "name": "flow-ui-breadcrumb-item",
129
+ "description": "Breadcrumb Items are used inside [breadcrumbs](/components/breadcrumb) to represent different links.\n\n\n---\n\n\n\n\n### **Slots:**\n - _default_ - The breadcrumb item's label.\n- **prefix** - An optional prefix, usually an icon or icon button.\n- **suffix** - An optional suffix, usually an icon or icon button.\n- **separator** - The separator to use for the breadcrumb item. This will only change the separator for this item. If you want to change it for all items in the group, set the separator on `<flow-ui-breadcrumb>` instead.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **label** - The breadcrumb item's label.\n- **prefix** - The container that wraps the prefix.\n- **suffix** - The container that wraps the suffix.\n- **separator** - The container that wraps the separator.",
130
+ "attributes": [
131
+ {
132
+ "name": "href",
133
+ "description": "Optional URL to direct the user to when the breadcrumb item is activated. When set, a link will be rendered\ninternally. When unset, a button will be rendered instead.",
134
+ "values": []
135
+ },
136
+ {
137
+ "name": "target",
138
+ "description": "Tells the browser where to open the link. Only used when `href` is set.",
139
+ "values": [
140
+ { "name": "_blank" },
141
+ { "name": "_parent" },
142
+ { "name": "_self" },
143
+ { "name": "_top" }
144
+ ]
145
+ },
146
+ {
147
+ "name": "rel",
148
+ "description": "The `rel` attribute to use on the link. Only used when `href` is set.",
149
+ "values": []
150
+ }
151
+ ],
152
+ "references": []
153
+ },
99
154
  {
100
155
  "name": "flow-ui-avatar",
101
156
  "description": "Avatars are used to represent a person or object.\n\n\n---\n\n\n\n\n### **Slots:**\n - **icon** - The default icon to use when no image or initials are present. Works best with `<flow-ui-icon>`.\n\n### **CSS Properties:**\n - **--size** - The size of the avatar. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **icon** - The container that wraps the avatar's icon.\n- **initials** - The container that wraps the avatar's initials.\n- **image** - The avatar image. Only shown when the `image` attribute is set.",
@@ -133,27 +188,12 @@
133
188
  "references": []
134
189
  },
135
190
  {
136
- "name": "flow-ui-breadcrumb-item",
137
- "description": "Breadcrumb Items are used inside [breadcrumbs](/components/breadcrumb) to represent different links.\n\n\n---\n\n\n\n\n### **Slots:**\n - _default_ - The breadcrumb item's label.\n- **prefix** - An optional prefix, usually an icon or icon button.\n- **suffix** - An optional suffix, usually an icon or icon button.\n- **separator** - The separator to use for the breadcrumb item. This will only change the separator for this item. If you want to change it for all items in the group, set the separator on `<flow-ui-breadcrumb>` instead.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **label** - The breadcrumb item's label.\n- **prefix** - The container that wraps the prefix.\n- **suffix** - The container that wraps the suffix.\n- **separator** - The container that wraps the separator.",
191
+ "name": "flow-ui-breadcrumb",
192
+ "description": "Breadcrumbs provide a group of links so users can easily navigate a website's hierarchy.\n\n\n---\n\n\n\n\n### **Slots:**\n - _default_ - One or more breadcrumb items to display.\n- **separator** - The separator to use between breadcrumb items. Works best with `<flow-ui-icon>`.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
138
193
  "attributes": [
139
194
  {
140
- "name": "href",
141
- "description": "Optional URL to direct the user to when the breadcrumb item is activated. When set, a link will be rendered\ninternally. When unset, a button will be rendered instead.",
142
- "values": []
143
- },
144
- {
145
- "name": "target",
146
- "description": "Tells the browser where to open the link. Only used when `href` is set.",
147
- "values": [
148
- { "name": "_blank" },
149
- { "name": "_parent" },
150
- { "name": "_self" },
151
- { "name": "_top" }
152
- ]
153
- },
154
- {
155
- "name": "rel",
156
- "description": "The `rel` attribute to use on the link. Only used when `href` is set.",
195
+ "name": "label",
196
+ "description": "The label to use for the breadcrumb control. This will not be shown on the screen, but it will be announced by\nscreen readers and other assistive devices to provide more context for users.",
157
197
  "values": []
158
198
  }
159
199
  ],
@@ -316,46 +356,6 @@
316
356
  ],
317
357
  "references": []
318
358
  },
319
- {
320
- "name": "flow-ui-breadcrumb",
321
- "description": "Breadcrumbs provide a group of links so users can easily navigate a website's hierarchy.\n\n\n---\n\n\n\n\n### **Slots:**\n - _default_ - One or more breadcrumb items to display.\n- **separator** - The separator to use between breadcrumb items. Works best with `<flow-ui-icon>`.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
322
- "attributes": [
323
- {
324
- "name": "label",
325
- "description": "The label to use for the breadcrumb control. This will not be shown on the screen, but it will be announced by\nscreen readers and other assistive devices to provide more context for users.",
326
- "values": []
327
- }
328
- ],
329
- "references": []
330
- },
331
- {
332
- "name": "flow-ui-badge",
333
- "description": "Badges are used to draw attention and display statuses or counts.\n\n\n---\n\n\n\n\n### **Slots:**\n - _default_ - The badge's content.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
334
- "attributes": [
335
- {
336
- "name": "variant",
337
- "description": "The badge's theme variant.",
338
- "values": [
339
- { "name": "primary" },
340
- { "name": "success" },
341
- { "name": "neutral" },
342
- { "name": "warning" },
343
- { "name": "danger" }
344
- ]
345
- },
346
- {
347
- "name": "pill",
348
- "description": "Draws a pill-style badge with rounded edges.",
349
- "values": []
350
- },
351
- {
352
- "name": "pulse",
353
- "description": "Makes the badge pulsate to draw attention.",
354
- "values": []
355
- }
356
- ],
357
- "references": []
358
- },
359
359
  {
360
360
  "name": "flow-ui-card",
361
361
  "description": "Cards can be used to group related subjects in a container.\n\n\n---\n\n\n\n\n### **Slots:**\n - _default_ - The card's main content.\n- **header** - An optional header for the card.\n- **footer** - An optional footer for the card.\n- **image** - An optional image to render at the start of the card.\n\n### **CSS Properties:**\n - **--border-color** - The card's border color, including borders that occur inside the card. _(default: undefined)_\n- **--border-radius** - The border radius for the card's edges. _(default: undefined)_\n- **--border-width** - The width of the card's borders. _(default: undefined)_\n- **--padding** - The padding to use for the card's sections. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **image** - The container that wraps the card's image.\n- **header** - The container that wraps the card's header.\n- **body** - The container that wraps the card's main content.\n- **footer** - The container that wraps the card's footer.",
@@ -1672,6 +1672,11 @@
1672
1672
  "name": "active",
1673
1673
  "description": "When true, the tab panel will be shown.",
1674
1674
  "values": []
1675
+ },
1676
+ {
1677
+ "name": "scrollable",
1678
+ "description": "Indicates whether the panel is scrollable. By default overflow is hidden.",
1679
+ "values": []
1675
1680
  }
1676
1681
  ],
1677
1682
  "references": []
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@emuanalytics/flow-rdf-ui",
3
- "version": "0.0.18",
3
+ "version": "0.0.20",
4
4
  "type": "module",
5
5
  "main": "dist/flow-rdf-ui.umd.cjs",
6
6
  "module": "dist/flow-rdf-ui.js",
@@ -21,6 +21,7 @@
21
21
  "@shoelace-style/animations": "^1.1.0",
22
22
  "@shoelace-style/localize": "^3.1.1",
23
23
  "chartjs-adapter-dayjs-4": "^1.0.4",
24
+ "chartjs-chart-matrix": "^2.0.1",
24
25
  "chartjs-plugin-annotation": "^3.0.1",
25
26
  "clone-deep": "^4.0.1",
26
27
  "composed-offset-position": "^0.0.4",