@emuanalytics/flow-rdf-ui 4.1.9 → 4.1.10

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.
@@ -384,6 +384,7 @@ const _FlowUiQueryBuilder = class _FlowUiQueryBuilder extends FlowRdfElement {
384
384
  .value=${ruleSet}
385
385
  .config=${this.config}
386
386
  size=${this.size}
387
+ !borders=${this.borders}
387
388
  ?tree-lines=${this.treeLines}
388
389
  @flow-ui-change=${this.handleSubQueryValueChange}
389
390
  @flow-ui-remove=${(ev) => this.handleRemoveRule(ev, index)}
@@ -226,7 +226,7 @@ const styles = css`
226
226
  &::after {
227
227
  content: '';
228
228
  left: -10px;
229
- border-color: var(--flow-ui-color-neutral-200);
229
+ border-color: var(--control-border-color);
230
230
  border-style: solid;
231
231
  width: 9px;
232
232
  position: absolute;
@@ -315,6 +315,14 @@ const styles = css`
315
315
  .query-builder__footer ::slotted(flow-ui-button:not(:first-of-type)) {
316
316
  margin-inline-start: var(--flow-ui-spacing-x-small);
317
317
  }
318
+
319
+ /* Sub query builder styling */
320
+
321
+ .query-builder--child[borders='true'] {
322
+ /* remove right border */
323
+ border-radius: var(--control-border-radius) 0 0 var(--control-border-radius);
324
+ border-right: 0;
325
+ }
318
326
  `;
319
327
 
320
328
  export { styles as default };
@@ -23,6 +23,9 @@ var __decorateClass = (decorators, target, key, kind) => {
23
23
  class FlowUiSplitView extends FlowRdfElement {
24
24
  constructor() {
25
25
  super(...arguments);
26
+ // Saved panel layouts for restoring when panels are dynamically added/removed
27
+ // The key is a comma-separated concatenation of panel ids e.g. 'pane-1,pane-2,pane-3'
28
+ this._panelLayouts = {};
26
29
  this._panels = [];
27
30
  this.noDragClose = false;
28
31
  this.positions = ["auto", "auto", "auto", "auto"];
@@ -41,9 +44,11 @@ class FlowUiSplitView extends FlowRdfElement {
41
44
  const panelsRemoved = mutations.map((m) => Array.from(m.removedNodes.values())).flat().filter((n) => n instanceof FlowUiSplitViewPane);
42
45
  if (panelsAdded.length > 0) {
43
46
  this.handlePanelAdded(panelsAdded[0]);
47
+ console.log("Split view panel added:", this._panels.map((panel) => panel.id).join(":"));
44
48
  }
45
49
  if (panelsRemoved.length > 0) {
46
50
  this.handlePanelRemoved(panelsRemoved[0]);
51
+ console.log("Split view panel removed:", this._panels.map((panel) => panel.id).join(":"));
47
52
  }
48
53
  this.layoutPanels();
49
54
  });
@@ -302,6 +307,7 @@ class FlowUiSplitView extends FlowRdfElement {
302
307
  if (splitViewSize === 0) {
303
308
  return;
304
309
  }
310
+ this.savePanelLayouts();
305
311
  const numOpenPanels = this._panels.filter((panel) => !panel.closed && !panel.hidden).length;
306
312
  const panelSizes = this._panels.map((panel) => {
307
313
  if (panel.hidden) {
@@ -348,8 +354,11 @@ class FlowUiSplitView extends FlowRdfElement {
348
354
  panel.divider = !panel.hidden;
349
355
  }
350
356
  const lastVisiblePanel = this._panels.slice().reverse().find((panel) => !panel.hidden);
351
- lastVisiblePanel.divider = false;
357
+ if (lastVisiblePanel) {
358
+ lastVisiblePanel.divider = false;
359
+ }
352
360
  this.positions = panelSizes.map((size) => size + "px");
361
+ console.log("Panel layouts", this._panelLayouts);
353
362
  }
354
363
  resizePanels() {
355
364
  const boundingRect = this.splitView.getBoundingClientRect();
@@ -459,20 +468,53 @@ class FlowUiSplitView extends FlowRdfElement {
459
468
  }
460
469
  handlePanelAdded(panel) {
461
470
  this.updatePanelInfo();
462
- if (isUndefined(panel.size) || panel.size === "auto") {
463
- panel.size = panel.minSize ?? "50px";
471
+ if (!this.restorePanelLayouts()) {
472
+ if (isUndefined(panel.size) || panel.size === "auto") {
473
+ panel.size = panel.minSize ?? "50px";
474
+ }
475
+ this.shrinkPanels(this._panels.length - 1, -1, true, this.sizeToPixels(panel.size));
464
476
  }
465
- this.shrinkPanels(this._panels.length - 1, -1, true, this.sizeToPixels(panel.size));
466
477
  }
467
478
  handlePanelRemoved(panel) {
468
479
  this.updatePanelInfo();
469
- this.growPanels(this._panels.length - 1, -1, true, this.sizeToPixels(panel.size));
480
+ if (!this.restorePanelLayouts()) {
481
+ this.growPanels(this._panels.length - 1, -1, true, this.sizeToPixels(panel.size));
482
+ }
470
483
  }
471
484
  updatePanelInfo() {
472
485
  this._panels = [...this.panelSlot.assignedElements()].filter(
473
486
  (el) => el.tagName.toLowerCase() === "flow-ui-split-view-pane"
474
487
  );
475
488
  }
489
+ // Key used to stor panel layouts for a given set of panels
490
+ // This is a comma-separated concatenation of panel ids e.g. 'pane-1,pane-2,pane-3'
491
+ panelLayoutsKey() {
492
+ return this._panels.map((panel) => panel.id).join(",");
493
+ }
494
+ savePanelLayouts() {
495
+ const panelLayoutsKey = this.panelLayoutsKey();
496
+ const panelLayouts = this._panels.map(
497
+ (panel) => ({ id: panel.id, size: panel.size, closed: panel.closed })
498
+ );
499
+ this._panelLayouts[panelLayoutsKey] = panelLayouts;
500
+ console.log("Saving panel layouts:", panelLayoutsKey, panelLayouts);
501
+ }
502
+ restorePanelLayouts() {
503
+ const panelLayoutsKey = this.panelLayoutsKey();
504
+ if (this._panelLayouts[panelLayoutsKey]) {
505
+ this._panelLayouts[panelLayoutsKey].forEach((panelLayout) => {
506
+ const panel = this._panels.find((p) => p.id === panelLayout.id);
507
+ if (panel) {
508
+ panel.size = panelLayout.size;
509
+ panel.closed = panelLayout.closed;
510
+ }
511
+ });
512
+ console.log("Restoring panel layouts:", panelLayoutsKey, this._panelLayouts[panelLayoutsKey]);
513
+ return true;
514
+ } else {
515
+ return false;
516
+ }
517
+ }
476
518
  }
477
519
  FlowUiSplitView.styles = styles;
478
520
  __decorateClass([
@@ -5,6 +5,7 @@ import { boolean } from '../../internal/boolean.mjs';
5
5
  import FlowRdfElement from '../../internal/flow-ui-rdf-element.mjs';
6
6
  import { setDefaultAnimation } from '../../utilities/animation-registry.mjs';
7
7
  import styles from './split-view-pane.styles.mjs';
8
+ import { isStringFull } from '../../internal/type-checks.mjs';
8
9
 
9
10
  var __defProp = Object.defineProperty;
10
11
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -17,9 +18,12 @@ var __decorateClass = (decorators, target, key, kind) => {
17
18
  __defProp(target, key, result);
18
19
  return result;
19
20
  };
21
+ let id = 0;
20
22
  class FlowUiSplitViewPane extends FlowRdfElement {
21
23
  constructor() {
22
24
  super(...arguments);
25
+ this.attrId = ++id;
26
+ this.componentId = `flow-ui-split-view-pane-${this.attrId}`;
23
27
  this.vertical = false;
24
28
  this.closed = false;
25
29
  this.divider = false;
@@ -27,6 +31,7 @@ class FlowUiSplitViewPane extends FlowRdfElement {
27
31
  }
28
32
  connectedCallback() {
29
33
  super.connectedCallback();
34
+ this.id = isStringFull(this.id) ? this.id : this.componentId;
30
35
  this.vertical = boolean(this.vertical, true);
31
36
  this.closed = boolean(this.closed, true);
32
37
  this.divider = boolean(this.divider, true);
@@ -3,12 +3,11 @@ import { floorDateTime } from '../../internal/datetime.mjs';
3
3
 
4
4
  const TIMER_INTERVAL = 100;
5
5
  class Ticker {
6
- constructor(tickUnit, tickValue, zone) {
6
+ constructor(tickInterval = { seconds: 5 }, zone) {
7
7
  this.subscribers = [];
8
8
  this.currentDateTime = DateTime.fromMillis(0);
9
9
  this.nextUpdateAt = DateTime.fromMillis(0);
10
- this.tickUnit = tickUnit;
11
- this.tickValue = tickValue;
10
+ this.tickInterval = tickInterval;
12
11
  this.zone = zone;
13
12
  }
14
13
  subscribe(fn) {
@@ -34,6 +33,7 @@ class Ticker {
34
33
  if (!this.timer) {
35
34
  return;
36
35
  }
36
+ console.log("Ticker stop");
37
37
  clearInterval(this.timer);
38
38
  this.timer = void 0;
39
39
  this.nextUpdateAt = DateTime.fromMillis(0);
@@ -42,9 +42,8 @@ class Ticker {
42
42
  setZone(zone) {
43
43
  this.zone = zone;
44
44
  }
45
- setTick(tickUnit, tickValue) {
46
- this.tickUnit = tickUnit;
47
- this.tickValue = tickValue;
45
+ setTickInterval(tickInterval) {
46
+ this.tickInterval = tickInterval;
48
47
  }
49
48
  /**
50
49
  * Tick the clock
@@ -59,8 +58,10 @@ class Ticker {
59
58
  const now = DateTime.local({ zone: this.zone }).set({ millisecond: 0 });
60
59
  if (now >= this.nextUpdateAt) {
61
60
  this.nextUpdateAt = floorDateTime(now.plus({ second: 1 }), "second", 1);
61
+ const majorStepUnit = Object.keys(this.tickInterval)[0];
62
+ const majorStepValue = this.tickInterval[majorStepUnit];
62
63
  let minorFlooredNow = floorDateTime(now, "second", 1);
63
- const majorFlooredNow = floorDateTime(now, this.tickUnit, this.tickValue);
64
+ const majorFlooredNow = floorDateTime(now, majorStepUnit, majorStepValue);
64
65
  if (forceMajor) {
65
66
  minorFlooredNow = majorFlooredNow;
66
67
  }
@@ -35,6 +35,7 @@ class FlowUiTimer extends FlowRdfElement {
35
35
  this.zoneFormat = "ZZZZ";
36
36
  this.majorStep = "1 minute";
37
37
  this.minorStep = "5 seconds";
38
+ this.updateInterval = "5 seconds";
38
39
  this.hideZone = false;
39
40
  this.placement = "bottom-start";
40
41
  this.debouncedEmitChange = debounce(
@@ -50,7 +51,7 @@ class FlowUiTimer extends FlowRdfElement {
50
51
  super.connectedCallback();
51
52
  this.hideZone = boolean(this.hideZone, true);
52
53
  this.running = boolean(this.running, true);
53
- this.ticker = new Ticker("second", 5, "Europe/London");
54
+ this.ticker = new Ticker({ seconds: 5 }, "Europe/London");
54
55
  this.tickerSubscription = this.ticker.subscribe((dateTime, tickType) => {
55
56
  if (tickType === "major") {
56
57
  this.value = dateTime;
@@ -72,6 +73,10 @@ class FlowUiTimer extends FlowRdfElement {
72
73
  this.minorStepDuration = parseDuration(this.minorStep) ?? { second: 5 };
73
74
  this.majorStepDuration = parseDuration(this.majorStep) ?? { minute: 1 };
74
75
  }
76
+ updateUpdateInterval() {
77
+ const updateIntervalDuration = parseDuration(this.updateInterval) ?? { second: 5 };
78
+ this.ticker.setTickInterval(updateIntervalDuration);
79
+ }
75
80
  updateRunning() {
76
81
  if (this.running) {
77
82
  this.ticker.start();
@@ -113,32 +118,16 @@ class FlowUiTimer extends FlowRdfElement {
113
118
  const minorStepValue = this.minorStepDuration[minorStepUnit];
114
119
  switch (direction) {
115
120
  case "fast-back":
116
- dateTime = ceilDateTime(
117
- this._displayDateTime.minus(this.majorStepDuration),
118
- majorStepUnit,
119
- majorStepValue
120
- );
121
+ dateTime = ceilDateTime(this._displayDateTime.minus(this.majorStepDuration), majorStepUnit, majorStepValue);
121
122
  break;
122
123
  case "back":
123
- dateTime = ceilDateTime(
124
- this._displayDateTime.minus(this.minorStepDuration),
125
- minorStepUnit,
126
- minorStepValue
127
- );
124
+ dateTime = ceilDateTime(this._displayDateTime.minus(this.minorStepDuration), minorStepUnit, minorStepValue);
128
125
  break;
129
126
  case "forward":
130
- dateTime = floorDateTime(
131
- this._displayDateTime.plus(this.minorStepDuration),
132
- minorStepUnit,
133
- minorStepValue
134
- );
127
+ dateTime = floorDateTime(this._displayDateTime.plus(this.minorStepDuration), minorStepUnit, minorStepValue);
135
128
  break;
136
129
  case "fast-forward":
137
- dateTime = floorDateTime(
138
- this._displayDateTime.plus(this.majorStepDuration),
139
- majorStepUnit,
140
- majorStepValue
141
- );
130
+ dateTime = floorDateTime(this._displayDateTime.plus(this.majorStepDuration), majorStepUnit, majorStepValue);
142
131
  break;
143
132
  default:
144
133
  dateTime = this._displayDateTime;
@@ -182,11 +171,17 @@ class FlowUiTimer extends FlowRdfElement {
182
171
  <div class="timer__time-container">
183
172
  <span class="timer__time">${this.formattedDisplayDateTime(this.timeFormat)}</span>
184
173
 
185
- ${!this.hideZone ? html`
186
- <flow-ui-tooltip hoist placement="top" content=${this.formattedDisplayDateTime("ZZZZZ")}>
187
- <span class="timer__zone">${this.formattedDisplayDateTime(this.zoneFormat)}</span>
188
- </flow-ui-tooltip>
189
- ` : nothing}
174
+ ${// Note that flow-ui-show event was causing timer to stop because of dropdown handling of flow-ui-show above
175
+ !this.hideZone ? html`
176
+ <flow-ui-tooltip
177
+ hoist
178
+ placement="top"
179
+ content=${this.formattedDisplayDateTime("ZZZZZ")}
180
+ @flow-ui-show=${(ev) => ev.stopImmediatePropagation()}
181
+ >
182
+ <span class="timer__zone">${this.formattedDisplayDateTime(this.zoneFormat)}</span>
183
+ </flow-ui-tooltip>
184
+ ` : nothing}
190
185
  </div>
191
186
  </div>
192
187
 
@@ -279,6 +274,9 @@ __decorateClass([
279
274
  __decorateClass([
280
275
  property({ attribute: "minor-step" })
281
276
  ], FlowUiTimer.prototype, "minorStep", 2);
277
+ __decorateClass([
278
+ property({ attribute: "update-interval" })
279
+ ], FlowUiTimer.prototype, "updateInterval", 2);
282
280
  __decorateClass([
283
281
  property({ type: Boolean, attribute: "hide-zone" })
284
282
  ], FlowUiTimer.prototype, "hideZone", 2);
@@ -291,6 +289,9 @@ __decorateClass([
291
289
  __decorateClass([
292
290
  watch(["majorStep", "minorStep"])
293
291
  ], FlowUiTimer.prototype, "updateParsedSteps", 1);
292
+ __decorateClass([
293
+ watch(["updateInterval"])
294
+ ], FlowUiTimer.prototype, "updateUpdateInterval", 1);
294
295
  __decorateClass([
295
296
  watch("running")
296
297
  ], FlowUiTimer.prototype, "updateRunning", 1);
@@ -36,6 +36,7 @@ const _FlowUiTreeItem = class _FlowUiTreeItem extends FlowRdfElement {
36
36
  this.disabled = false;
37
37
  this.lazy = false;
38
38
  this.size = "medium";
39
+ this.hidden = false;
39
40
  }
40
41
  /** @internal */
41
42
  static isTreeItem(node) {
@@ -47,6 +48,7 @@ const _FlowUiTreeItem = class _FlowUiTreeItem extends FlowRdfElement {
47
48
  this.selected = boolean(this.selected, true);
48
49
  this.disabled = boolean(this.disabled, true);
49
50
  this.lazy = boolean(this.lazy, true);
51
+ this.hidden = boolean(this.hidden, true);
50
52
  this.setAttribute("role", "treeitem");
51
53
  this.setAttribute("tabindex", "-1");
52
54
  if (this.isNestedItem()) {
@@ -158,6 +160,7 @@ const _FlowUiTreeItem = class _FlowUiTreeItem extends FlowRdfElement {
158
160
  "tree-item--expanded": this.expanded,
159
161
  "tree-item--selected": this.selected,
160
162
  "tree-item--disabled": this.disabled,
163
+ "tree-item--hidden": this.hidden,
161
164
  "tree-item--small": this.size === "small",
162
165
  "tree-item--medium": this.size === "medium",
163
166
  "tree-item--large": this.size === "large",
@@ -272,6 +275,9 @@ __decorateClass([
272
275
  __decorateClass([
273
276
  property({ reflect: true })
274
277
  ], _FlowUiTreeItem.prototype, "size", 2);
278
+ __decorateClass([
279
+ property({ type: Boolean, reflect: true })
280
+ ], _FlowUiTreeItem.prototype, "hidden", 2);
275
281
  __decorateClass([
276
282
  query("slot:not([name])")
277
283
  ], _FlowUiTreeItem.prototype, "defaultSlot", 2);
@@ -106,6 +106,10 @@ const styles = css`
106
106
  display: none;
107
107
  }
108
108
 
109
+ .tree-item.tree-item--hidden {
110
+ display: none;
111
+ }
112
+
109
113
  .tree-item__expand-button--visible {
110
114
  cursor: pointer;
111
115
  }
@@ -668,191 +668,6 @@
668
668
  }
669
669
  ]
670
670
  },
671
- {
672
- "kind": "javascript-module",
673
- "path": "components/avatar/avatar.component.js",
674
- "declarations": [
675
- {
676
- "kind": "class",
677
- "description": "",
678
- "name": "FlowUiAvatar",
679
- "cssProperties": [
680
- {
681
- "description": "The size of the avatar.",
682
- "name": "--size"
683
- }
684
- ],
685
- "cssParts": [
686
- {
687
- "description": "The component's base wrapper.",
688
- "name": "base"
689
- },
690
- {
691
- "description": "The container that wraps the avatar's icon.",
692
- "name": "icon"
693
- },
694
- {
695
- "description": "The container that wraps the avatar's initials.",
696
- "name": "initials"
697
- },
698
- {
699
- "description": "The avatar image. Only shown when the `image` attribute is set.",
700
- "name": "image"
701
- }
702
- ],
703
- "slots": [
704
- {
705
- "description": "The default icon to use when no image or initials are present. Works best with `<flow-ui-icon>`.",
706
- "name": "icon"
707
- }
708
- ],
709
- "members": [
710
- {
711
- "kind": "field",
712
- "name": "hasError",
713
- "type": {
714
- "text": "boolean"
715
- },
716
- "privacy": "private",
717
- "default": "false"
718
- },
719
- {
720
- "kind": "field",
721
- "name": "image",
722
- "type": {
723
- "text": "string"
724
- },
725
- "default": "''",
726
- "description": "The image source to use for the avatar.",
727
- "attribute": "image"
728
- },
729
- {
730
- "kind": "field",
731
- "name": "label",
732
- "type": {
733
- "text": "string"
734
- },
735
- "default": "''",
736
- "description": "A label to use to describe the avatar to assistive devices.",
737
- "attribute": "label"
738
- },
739
- {
740
- "kind": "field",
741
- "name": "initials",
742
- "type": {
743
- "text": "string"
744
- },
745
- "default": "''",
746
- "description": "Initials to use as a fallback when no image is available (1-2 characters max recommended).",
747
- "attribute": "initials"
748
- },
749
- {
750
- "kind": "field",
751
- "name": "loading",
752
- "type": {
753
- "text": "'eager' | 'lazy'"
754
- },
755
- "default": "'eager'",
756
- "description": "Indicates how the browser should load the image.",
757
- "attribute": "loading"
758
- },
759
- {
760
- "kind": "field",
761
- "name": "shape",
762
- "type": {
763
- "text": "'circle' | 'square' | 'rounded'"
764
- },
765
- "default": "'circle'",
766
- "description": "The shape of the avatar.",
767
- "attribute": "shape",
768
- "reflects": true
769
- }
770
- ],
771
- "attributes": [
772
- {
773
- "name": "image",
774
- "type": {
775
- "text": "string"
776
- },
777
- "default": "''",
778
- "description": "The image source to use for the avatar.",
779
- "fieldName": "image"
780
- },
781
- {
782
- "name": "label",
783
- "type": {
784
- "text": "string"
785
- },
786
- "default": "''",
787
- "description": "A label to use to describe the avatar to assistive devices.",
788
- "fieldName": "label"
789
- },
790
- {
791
- "name": "initials",
792
- "type": {
793
- "text": "string"
794
- },
795
- "default": "''",
796
- "description": "Initials to use as a fallback when no image is available (1-2 characters max recommended).",
797
- "fieldName": "initials"
798
- },
799
- {
800
- "name": "loading",
801
- "type": {
802
- "text": "'eager' | 'lazy'"
803
- },
804
- "default": "'eager'",
805
- "description": "Indicates how the browser should load the image.",
806
- "fieldName": "loading"
807
- },
808
- {
809
- "name": "shape",
810
- "type": {
811
- "text": "'circle' | 'square' | 'rounded'"
812
- },
813
- "default": "'circle'",
814
- "description": "The shape of the avatar.",
815
- "fieldName": "shape"
816
- }
817
- ],
818
- "superclass": {
819
- "name": "FlowRdfElement",
820
- "module": "/src/internal/flow-ui-rdf-element"
821
- },
822
- "tagName": "flow-ui-avatar",
823
- "summary": "Avatars are used to represent a person or object.",
824
- "dependencies": [
825
- "flow-ui-icon"
826
- ],
827
- "customElement": true
828
- }
829
- ],
830
- "exports": [
831
- {
832
- "kind": "js",
833
- "name": "default",
834
- "declaration": {
835
- "name": "FlowUiAvatar",
836
- "module": "components/avatar/avatar.component.js"
837
- }
838
- }
839
- ]
840
- },
841
- {
842
- "kind": "javascript-module",
843
- "path": "components/avatar/avatar.js",
844
- "declarations": [],
845
- "exports": [
846
- {
847
- "kind": "js",
848
- "name": "default",
849
- "declaration": {
850
- "name": "FlowUiAvatar",
851
- "module": "components/avatar/avatar.js"
852
- }
853
- }
854
- ]
855
- },
856
671
  {
857
672
  "kind": "javascript-module",
858
673
  "path": "components/autocomplete/autocomplete.component.js",
@@ -1602,6 +1417,191 @@
1602
1417
  }
1603
1418
  ]
1604
1419
  },
1420
+ {
1421
+ "kind": "javascript-module",
1422
+ "path": "components/avatar/avatar.component.js",
1423
+ "declarations": [
1424
+ {
1425
+ "kind": "class",
1426
+ "description": "",
1427
+ "name": "FlowUiAvatar",
1428
+ "cssProperties": [
1429
+ {
1430
+ "description": "The size of the avatar.",
1431
+ "name": "--size"
1432
+ }
1433
+ ],
1434
+ "cssParts": [
1435
+ {
1436
+ "description": "The component's base wrapper.",
1437
+ "name": "base"
1438
+ },
1439
+ {
1440
+ "description": "The container that wraps the avatar's icon.",
1441
+ "name": "icon"
1442
+ },
1443
+ {
1444
+ "description": "The container that wraps the avatar's initials.",
1445
+ "name": "initials"
1446
+ },
1447
+ {
1448
+ "description": "The avatar image. Only shown when the `image` attribute is set.",
1449
+ "name": "image"
1450
+ }
1451
+ ],
1452
+ "slots": [
1453
+ {
1454
+ "description": "The default icon to use when no image or initials are present. Works best with `<flow-ui-icon>`.",
1455
+ "name": "icon"
1456
+ }
1457
+ ],
1458
+ "members": [
1459
+ {
1460
+ "kind": "field",
1461
+ "name": "hasError",
1462
+ "type": {
1463
+ "text": "boolean"
1464
+ },
1465
+ "privacy": "private",
1466
+ "default": "false"
1467
+ },
1468
+ {
1469
+ "kind": "field",
1470
+ "name": "image",
1471
+ "type": {
1472
+ "text": "string"
1473
+ },
1474
+ "default": "''",
1475
+ "description": "The image source to use for the avatar.",
1476
+ "attribute": "image"
1477
+ },
1478
+ {
1479
+ "kind": "field",
1480
+ "name": "label",
1481
+ "type": {
1482
+ "text": "string"
1483
+ },
1484
+ "default": "''",
1485
+ "description": "A label to use to describe the avatar to assistive devices.",
1486
+ "attribute": "label"
1487
+ },
1488
+ {
1489
+ "kind": "field",
1490
+ "name": "initials",
1491
+ "type": {
1492
+ "text": "string"
1493
+ },
1494
+ "default": "''",
1495
+ "description": "Initials to use as a fallback when no image is available (1-2 characters max recommended).",
1496
+ "attribute": "initials"
1497
+ },
1498
+ {
1499
+ "kind": "field",
1500
+ "name": "loading",
1501
+ "type": {
1502
+ "text": "'eager' | 'lazy'"
1503
+ },
1504
+ "default": "'eager'",
1505
+ "description": "Indicates how the browser should load the image.",
1506
+ "attribute": "loading"
1507
+ },
1508
+ {
1509
+ "kind": "field",
1510
+ "name": "shape",
1511
+ "type": {
1512
+ "text": "'circle' | 'square' | 'rounded'"
1513
+ },
1514
+ "default": "'circle'",
1515
+ "description": "The shape of the avatar.",
1516
+ "attribute": "shape",
1517
+ "reflects": true
1518
+ }
1519
+ ],
1520
+ "attributes": [
1521
+ {
1522
+ "name": "image",
1523
+ "type": {
1524
+ "text": "string"
1525
+ },
1526
+ "default": "''",
1527
+ "description": "The image source to use for the avatar.",
1528
+ "fieldName": "image"
1529
+ },
1530
+ {
1531
+ "name": "label",
1532
+ "type": {
1533
+ "text": "string"
1534
+ },
1535
+ "default": "''",
1536
+ "description": "A label to use to describe the avatar to assistive devices.",
1537
+ "fieldName": "label"
1538
+ },
1539
+ {
1540
+ "name": "initials",
1541
+ "type": {
1542
+ "text": "string"
1543
+ },
1544
+ "default": "''",
1545
+ "description": "Initials to use as a fallback when no image is available (1-2 characters max recommended).",
1546
+ "fieldName": "initials"
1547
+ },
1548
+ {
1549
+ "name": "loading",
1550
+ "type": {
1551
+ "text": "'eager' | 'lazy'"
1552
+ },
1553
+ "default": "'eager'",
1554
+ "description": "Indicates how the browser should load the image.",
1555
+ "fieldName": "loading"
1556
+ },
1557
+ {
1558
+ "name": "shape",
1559
+ "type": {
1560
+ "text": "'circle' | 'square' | 'rounded'"
1561
+ },
1562
+ "default": "'circle'",
1563
+ "description": "The shape of the avatar.",
1564
+ "fieldName": "shape"
1565
+ }
1566
+ ],
1567
+ "superclass": {
1568
+ "name": "FlowRdfElement",
1569
+ "module": "/src/internal/flow-ui-rdf-element"
1570
+ },
1571
+ "tagName": "flow-ui-avatar",
1572
+ "summary": "Avatars are used to represent a person or object.",
1573
+ "dependencies": [
1574
+ "flow-ui-icon"
1575
+ ],
1576
+ "customElement": true
1577
+ }
1578
+ ],
1579
+ "exports": [
1580
+ {
1581
+ "kind": "js",
1582
+ "name": "default",
1583
+ "declaration": {
1584
+ "name": "FlowUiAvatar",
1585
+ "module": "components/avatar/avatar.component.js"
1586
+ }
1587
+ }
1588
+ ]
1589
+ },
1590
+ {
1591
+ "kind": "javascript-module",
1592
+ "path": "components/avatar/avatar.js",
1593
+ "declarations": [],
1594
+ "exports": [
1595
+ {
1596
+ "kind": "js",
1597
+ "name": "default",
1598
+ "declaration": {
1599
+ "name": "FlowUiAvatar",
1600
+ "module": "components/avatar/avatar.js"
1601
+ }
1602
+ }
1603
+ ]
1604
+ },
1605
1605
  {
1606
1606
  "kind": "javascript-module",
1607
1607
  "path": "components/badge/badge.component.js",
@@ -19205,6 +19205,15 @@
19205
19205
  "description": "",
19206
19206
  "name": "FlowUiSplitView",
19207
19207
  "members": [
19208
+ {
19209
+ "kind": "field",
19210
+ "name": "_panelLayouts",
19211
+ "type": {
19212
+ "text": "Record<string, PaneLayout[]>"
19213
+ },
19214
+ "privacy": "private",
19215
+ "default": "{}"
19216
+ },
19208
19217
  {
19209
19218
  "kind": "field",
19210
19219
  "name": "_panels",
@@ -19522,6 +19531,26 @@
19522
19531
  "kind": "method",
19523
19532
  "name": "updatePanelInfo",
19524
19533
  "privacy": "private"
19534
+ },
19535
+ {
19536
+ "kind": "method",
19537
+ "name": "panelLayoutsKey",
19538
+ "privacy": "private",
19539
+ "return": {
19540
+ "type": {
19541
+ "text": "string"
19542
+ }
19543
+ }
19544
+ },
19545
+ {
19546
+ "kind": "method",
19547
+ "name": "savePanelLayouts",
19548
+ "privacy": "private"
19549
+ },
19550
+ {
19551
+ "kind": "method",
19552
+ "name": "restorePanelLayouts",
19553
+ "privacy": "private"
19525
19554
  }
19526
19555
  ],
19527
19556
  "attributes": [
@@ -19746,6 +19775,23 @@
19746
19775
  "description": "",
19747
19776
  "name": "FlowUiSplitViewPane",
19748
19777
  "members": [
19778
+ {
19779
+ "kind": "field",
19780
+ "name": "attrId",
19781
+ "type": {
19782
+ "text": "number"
19783
+ },
19784
+ "privacy": "private",
19785
+ "readonly": true,
19786
+ "default": "++id"
19787
+ },
19788
+ {
19789
+ "kind": "field",
19790
+ "name": "componentId",
19791
+ "privacy": "private",
19792
+ "readonly": true,
19793
+ "default": "`flow-ui-split-view-pane-${this.attrId}`"
19794
+ },
19749
19795
  {
19750
19796
  "kind": "field",
19751
19797
  "name": "dividerComponent",
@@ -22803,30 +22849,21 @@
22803
22849
  },
22804
22850
  {
22805
22851
  "kind": "field",
22806
- "name": "tickUnit",
22807
- "type": {
22808
- "text": "TickerUnit"
22809
- },
22810
- "privacy": "private",
22811
- "default": "tickUnit"
22812
- },
22813
- {
22814
- "kind": "field",
22815
- "name": "tickValue",
22852
+ "name": "zone",
22816
22853
  "type": {
22817
- "text": "number"
22854
+ "text": "string | undefined"
22818
22855
  },
22819
22856
  "privacy": "private",
22820
- "default": "tickValue"
22857
+ "default": "zone"
22821
22858
  },
22822
22859
  {
22823
22860
  "kind": "field",
22824
- "name": "zone",
22861
+ "name": "tickInterval",
22825
22862
  "type": {
22826
- "text": "string | undefined"
22863
+ "text": "DurationLikeObject"
22827
22864
  },
22828
22865
  "privacy": "private",
22829
- "default": "zone"
22866
+ "default": "tickInterval"
22830
22867
  },
22831
22868
  {
22832
22869
  "kind": "method",
@@ -22879,18 +22916,12 @@
22879
22916
  },
22880
22917
  {
22881
22918
  "kind": "method",
22882
- "name": "setTick",
22919
+ "name": "setTickInterval",
22883
22920
  "parameters": [
22884
22921
  {
22885
- "name": "tickUnit",
22886
- "type": {
22887
- "text": "'hour' | 'minute' | 'second' | 'millisecond'"
22888
- }
22889
- },
22890
- {
22891
- "name": "tickValue",
22922
+ "name": "tickInterval",
22892
22923
  "type": {
22893
- "text": "number"
22924
+ "text": "DurationLikeObject"
22894
22925
  }
22895
22926
  }
22896
22927
  ]
@@ -23103,6 +23134,16 @@
23103
23134
  "description": "The minor step size to use for the timer step controls.",
23104
23135
  "attribute": "minor-step"
23105
23136
  },
23137
+ {
23138
+ "kind": "field",
23139
+ "name": "updateInterval",
23140
+ "type": {
23141
+ "text": "string"
23142
+ },
23143
+ "default": "'5 seconds'",
23144
+ "description": "The timer update interval.",
23145
+ "attribute": "update-interval"
23146
+ },
23106
23147
  {
23107
23148
  "kind": "field",
23108
23149
  "name": "hideZone",
@@ -23309,6 +23350,15 @@
23309
23350
  "description": "The minor step size to use for the timer step controls.",
23310
23351
  "fieldName": "minorStep"
23311
23352
  },
23353
+ {
23354
+ "name": "update-interval",
23355
+ "type": {
23356
+ "text": "string"
23357
+ },
23358
+ "default": "'5 seconds'",
23359
+ "description": "The timer update interval.",
23360
+ "fieldName": "updateInterval"
23361
+ },
23312
23362
  {
23313
23363
  "name": "hide-zone",
23314
23364
  "type": {
@@ -25104,6 +25154,17 @@
25104
25154
  "attribute": "size",
25105
25155
  "reflects": true
25106
25156
  },
25157
+ {
25158
+ "kind": "field",
25159
+ "name": "hidden",
25160
+ "type": {
25161
+ "text": "boolean"
25162
+ },
25163
+ "default": "false",
25164
+ "description": "Set to `true` to visually hide the tree item.",
25165
+ "attribute": "hidden",
25166
+ "reflects": true
25167
+ },
25107
25168
  {
25108
25169
  "kind": "method",
25109
25170
  "name": "animateCollapse",
@@ -25235,6 +25296,15 @@
25235
25296
  "default": "'medium'",
25236
25297
  "description": "The select's size.",
25237
25298
  "fieldName": "size"
25299
+ },
25300
+ {
25301
+ "name": "hidden",
25302
+ "type": {
25303
+ "text": "boolean"
25304
+ },
25305
+ "default": "false",
25306
+ "description": "Set to `true` to visually hide the tree item.",
25307
+ "fieldName": "hidden"
25238
25308
  }
25239
25309
  ],
25240
25310
  "superclass": {
@@ -25768,6 +25838,6 @@
25768
25838
  ],
25769
25839
  "package": {
25770
25840
  "name": "@emuanalytics/flow-rdf-ui",
25771
- "version": "4.1.9"
25841
+ "version": "4.1.10"
25772
25842
  }
25773
25843
  }
package/dist/index.d.mts CHANGED
@@ -5716,6 +5716,8 @@ declare global {
5716
5716
  */
5717
5717
  declare class FlowUiSplitViewPane extends FlowRdfElement {
5718
5718
  static styles: CSSResultGroup;
5719
+ private readonly attrId;
5720
+ private readonly componentId;
5719
5721
  private dividerComponent?;
5720
5722
  /** Set to `true` for vertically-arranged panes. */
5721
5723
  vertical: boolean;
@@ -5791,6 +5793,7 @@ declare global {
5791
5793
  * @summary Split-views contain two or more split-view panes to create resizable areas.
5792
5794
  */
5793
5795
  declare class FlowUiSplitView extends FlowRdfElement {
5796
+ private _panelLayouts;
5794
5797
  static styles: CSSResultGroup;
5795
5798
  private _panels;
5796
5799
  private dragTargetPanel?;
@@ -5854,6 +5857,9 @@ declare class FlowUiSplitView extends FlowRdfElement {
5854
5857
  private handlePanelAdded;
5855
5858
  private handlePanelRemoved;
5856
5859
  private updatePanelInfo;
5860
+ private panelLayoutsKey;
5861
+ private savePanelLayouts;
5862
+ private restorePanelLayouts;
5857
5863
  }
5858
5864
 
5859
5865
  declare global {
@@ -6270,6 +6276,10 @@ declare class FlowUiTimer extends FlowRdfElement {
6270
6276
  * The minor step size to use for the timer step controls.
6271
6277
  */
6272
6278
  minorStep: string;
6279
+ /**
6280
+ * The timer update interval.
6281
+ */
6282
+ updateInterval: string;
6273
6283
  /**
6274
6284
  * Set to `true` to hide the timezone display.
6275
6285
  */
@@ -6285,6 +6295,8 @@ declare class FlowUiTimer extends FlowRdfElement {
6285
6295
  /** @internal */
6286
6296
  updateParsedSteps(): void;
6287
6297
  /** @internal */
6298
+ updateUpdateInterval(): void;
6299
+ /** @internal */
6288
6300
  updateRunning(): void;
6289
6301
  private setDisplayDateTime;
6290
6302
  private handleDateTimeKeyDown;
@@ -6553,6 +6565,8 @@ declare class FlowUiTreeItem extends FlowRdfElement {
6553
6565
  lazy: boolean;
6554
6566
  /** The select's size. */
6555
6567
  size: 'small' | 'medium' | 'large';
6568
+ /** Set to `true` to visually hide the tree item. */
6569
+ hidden: boolean;
6556
6570
  /** @internal */
6557
6571
  defaultSlot: HTMLSlotElement;
6558
6572
  /** @internal */
package/dist/index.d.ts CHANGED
@@ -5716,6 +5716,8 @@ declare global {
5716
5716
  */
5717
5717
  declare class FlowUiSplitViewPane extends FlowRdfElement {
5718
5718
  static styles: CSSResultGroup;
5719
+ private readonly attrId;
5720
+ private readonly componentId;
5719
5721
  private dividerComponent?;
5720
5722
  /** Set to `true` for vertically-arranged panes. */
5721
5723
  vertical: boolean;
@@ -5791,6 +5793,7 @@ declare global {
5791
5793
  * @summary Split-views contain two or more split-view panes to create resizable areas.
5792
5794
  */
5793
5795
  declare class FlowUiSplitView extends FlowRdfElement {
5796
+ private _panelLayouts;
5794
5797
  static styles: CSSResultGroup;
5795
5798
  private _panels;
5796
5799
  private dragTargetPanel?;
@@ -5854,6 +5857,9 @@ declare class FlowUiSplitView extends FlowRdfElement {
5854
5857
  private handlePanelAdded;
5855
5858
  private handlePanelRemoved;
5856
5859
  private updatePanelInfo;
5860
+ private panelLayoutsKey;
5861
+ private savePanelLayouts;
5862
+ private restorePanelLayouts;
5857
5863
  }
5858
5864
 
5859
5865
  declare global {
@@ -6270,6 +6276,10 @@ declare class FlowUiTimer extends FlowRdfElement {
6270
6276
  * The minor step size to use for the timer step controls.
6271
6277
  */
6272
6278
  minorStep: string;
6279
+ /**
6280
+ * The timer update interval.
6281
+ */
6282
+ updateInterval: string;
6273
6283
  /**
6274
6284
  * Set to `true` to hide the timezone display.
6275
6285
  */
@@ -6285,6 +6295,8 @@ declare class FlowUiTimer extends FlowRdfElement {
6285
6295
  /** @internal */
6286
6296
  updateParsedSteps(): void;
6287
6297
  /** @internal */
6298
+ updateUpdateInterval(): void;
6299
+ /** @internal */
6288
6300
  updateRunning(): void;
6289
6301
  private setDisplayDateTime;
6290
6302
  private handleDateTimeKeyDown;
@@ -6553,6 +6565,8 @@ declare class FlowUiTreeItem extends FlowRdfElement {
6553
6565
  lazy: boolean;
6554
6566
  /** The select's size. */
6555
6567
  size: 'small' | 'medium' | 'large';
6568
+ /** Set to `true` to visually hide the tree item. */
6569
+ hidden: boolean;
6556
6570
  /** @internal */
6557
6571
  defaultSlot: HTMLSlotElement;
6558
6572
  /** @internal */
@@ -1,3 +1,3 @@
1
- const version = "4.1.9";
1
+ const version = "4.1.10";
2
2
 
3
3
  export { version };
@@ -97,42 +97,6 @@
97
97
  ],
98
98
  "references": []
99
99
  },
100
- {
101
- "name": "flow-ui-avatar",
102
- "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.",
103
- "attributes": [
104
- {
105
- "name": "image",
106
- "description": "The image source to use for the avatar.",
107
- "values": []
108
- },
109
- {
110
- "name": "label",
111
- "description": "A label to use to describe the avatar to assistive devices.",
112
- "values": []
113
- },
114
- {
115
- "name": "initials",
116
- "description": "Initials to use as a fallback when no image is available (1-2 characters max recommended).",
117
- "values": []
118
- },
119
- {
120
- "name": "loading",
121
- "description": "Indicates how the browser should load the image.",
122
- "values": [{ "name": "eager" }, { "name": "lazy" }]
123
- },
124
- {
125
- "name": "shape",
126
- "description": "The shape of the avatar.",
127
- "values": [
128
- { "name": "circle" },
129
- { "name": "square" },
130
- { "name": "rounded" }
131
- ]
132
- }
133
- ],
134
- "references": []
135
- },
136
100
  {
137
101
  "name": "flow-ui-autocomplete",
138
102
  "description": "The Autocomplete is a Text input enhanced by a panel of suggested options.\n\n\n---\n\n\n\n\n### **Events:**\n - **flow-ui-input** - Emitted when the display value changes.\n- **flow-ui-change** - Emitted when the input value changes.\n- **flow-ui-focus** - Emitted when the input is focused.\n- **flow-ui-blur** - Emitted when the input is blurred.\n- **flow-ui-show** - Emitted when the dropdown is shown.\n- **flow-ui-after-show** - Emitted when the dropdown is shown.\n- **flow-ui-hide** - Emitted when the dropdown is hidden.\n- **flow-ui-after-hide** - Emitted when the dropdown is hidden.\n- **flow-ui-invalid** - Emitted when the input is invalid.\n- **flow-ui-valid** - Emitted when the input is valid.\n- **flow-ui-validate** - Emitted when the input is validated.\n- **flow-ui-validate-complete** - Emitted when the input is validated and the validity state is updated.\n- **flow-ui-validate-error** - Emitted when the input is validated and an error occurs.\n- **flow-ui-validate-success** - Emitted when the input is validated and no errors occur.\n\n### **Methods:**\n - **getForm(): _HTMLFormElement | null_** - Gets the associated form, if one exists.\n- **checkValidity(): _boolean_** - Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid.\n- **reportValidity(): _boolean_** - Checks for validity and shows the browser's validation message if the control is invalid.\n- **setCustomValidity(_: _string_)** - Sets a custom validation message. Pass an empty string to restore validity.\n- **focus()** - Focuses on the control\n- **blur()** - Blurs from the control.\n- **show()** - Shows the listbox.\n- **hide()** - Hides the listbox.\n- **getInputText()** - Gets the current value of the text input\n\n### **Slots:**\n - _default_ - The listbox options. Must be `<flow-option>` elements. You can use `<flow-divider>` to group items visually.\n- **label** - The input's label. Alternatively, you can use the `label` attribute.\n- **prefix** - Used to prepend a presentational icon or similar element to the combobox.\n- **suffix** - Used to append a presentational icon or similar element to the combobox.\n- **clear-icon** - An icon to use in lieu of the default clear icon.\n- **help-text** - Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.\n\n### **CSS Parts:**\n - **form-control** - The form control that wraps the label, input, and help text.\n- **form-control-label** - The label's wrapper.\n- **form-control-input** - The select's wrapper.\n- **form-control-help-text** - The help text's wrapper.\n- **combobox** - The container the wraps the prefix, suffix, combobox, clear icon, and expand button.\n- **prefix** - The container that wraps the prefix slot.\n- **suffix** - The container that wraps the suffix slot.\n- **display-input** - The element that displays the selected option's label, an `<input>` element.\n- **listbox** - The listbox container where options are slotted.\n- **clear-button** - The clear button.",
@@ -237,6 +201,42 @@
237
201
  ],
238
202
  "references": []
239
203
  },
204
+ {
205
+ "name": "flow-ui-avatar",
206
+ "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.",
207
+ "attributes": [
208
+ {
209
+ "name": "image",
210
+ "description": "The image source to use for the avatar.",
211
+ "values": []
212
+ },
213
+ {
214
+ "name": "label",
215
+ "description": "A label to use to describe the avatar to assistive devices.",
216
+ "values": []
217
+ },
218
+ {
219
+ "name": "initials",
220
+ "description": "Initials to use as a fallback when no image is available (1-2 characters max recommended).",
221
+ "values": []
222
+ },
223
+ {
224
+ "name": "loading",
225
+ "description": "Indicates how the browser should load the image.",
226
+ "values": [{ "name": "eager" }, { "name": "lazy" }]
227
+ },
228
+ {
229
+ "name": "shape",
230
+ "description": "The shape of the avatar.",
231
+ "values": [
232
+ { "name": "circle" },
233
+ { "name": "square" },
234
+ { "name": "rounded" }
235
+ ]
236
+ }
237
+ ],
238
+ "references": []
239
+ },
240
240
  {
241
241
  "name": "flow-ui-badge",
242
242
  "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.",
@@ -3117,6 +3117,11 @@
3117
3117
  "description": "The minor step size to use for the timer step controls.",
3118
3118
  "values": []
3119
3119
  },
3120
+ {
3121
+ "name": "update-interval",
3122
+ "description": "The timer update interval.",
3123
+ "values": []
3124
+ },
3120
3125
  {
3121
3126
  "name": "hide-zone",
3122
3127
  "description": "Set to `true` to hide the timezone display.",
@@ -3429,6 +3434,11 @@
3429
3434
  { "name": "medium" },
3430
3435
  { "name": "large" }
3431
3436
  ]
3437
+ },
3438
+ {
3439
+ "name": "hidden",
3440
+ "description": "Set to `true` to visually hide the tree item.",
3441
+ "values": []
3432
3442
  }
3433
3443
  ],
3434
3444
  "references": []
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@emuanalytics/flow-rdf-ui",
3
- "version": "4.1.9",
3
+ "version": "4.1.10",
4
4
  "type": "module",
5
5
  "module": "dist/index.mjs",
6
6
  "types": "dist/index.d.ts",
package/themes/dark.css CHANGED
@@ -2,6 +2,8 @@
2
2
  .flow-ui-theme-dark {
3
3
  color-scheme: dark;
4
4
 
5
+ --ag-browser-color-scheme: dark;
6
+
5
7
  --flow-ui-color-gray-50: oklch(25.794% 0.00354 48.585);
6
8
  --flow-ui-color-gray-100: oklch(27.86% 0.00347 48.6);
7
9
  --flow-ui-color-gray-200: #2e2d2c;
@@ -5,6 +5,8 @@ export default css`
5
5
  .flow-ui-theme-dark {
6
6
  color-scheme: dark;
7
7
 
8
+ --ag-browser-color-scheme: dark;
9
+
8
10
  --flow-ui-color-gray-50: oklch(25.794% 0.00354 48.585);
9
11
  --flow-ui-color-gray-100: oklch(27.86% 0.00347 48.6);
10
12
  --flow-ui-color-gray-200: #2e2d2c;
package/themes/light.css CHANGED
@@ -3,6 +3,8 @@
3
3
  .flow-ui-theme-light {
4
4
  color-scheme: light;
5
5
 
6
+ --ag-browser-color-scheme: light;
7
+
6
8
  --flow-ui-color-gray-50: oklch(98% 0 none);
7
9
  --flow-ui-color-gray-100: oklch(96% 0 none);
8
10
  --flow-ui-color-gray-200: oklch(93.1% 0 none);
@@ -6,6 +6,8 @@ export default css`
6
6
  .flow-ui-theme-light {
7
7
  color-scheme: light;
8
8
 
9
+ --ag-browser-color-scheme: light;
10
+
9
11
  --flow-ui-color-gray-50: oklch(98% 0 none);
10
12
  --flow-ui-color-gray-100: oklch(96% 0 none);
11
13
  --flow-ui-color-gray-200: oklch(93.1% 0 none);