@emuanalytics/flow-rdf-ui 0.0.6 → 0.0.7

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.
@@ -2665,7 +2665,7 @@ export declare class FlowStepper extends FlowRdfElement {
2665
2665
  headerScrollContainer: HTMLDivElement;
2666
2666
  private readonly attrId;
2667
2667
  private readonly componentId;
2668
- private activePanel;
2668
+ private activePanel?;
2669
2669
  private mutationObserver;
2670
2670
  private panels;
2671
2671
  connectedCallback(): void;
@@ -16545,17 +16545,33 @@ class FlowStepper extends FlowRdfElement {
16545
16545
  }
16546
16546
  syncPanels() {
16547
16547
  this.panels = this.getAllPanels();
16548
+ this.activePanel = this.panels.find((el) => el.active);
16549
+ if (!this.activePanel) {
16550
+ this.activePanel = this.panels[0];
16551
+ }
16548
16552
  }
16549
16553
  getAllPanels() {
16550
16554
  return [...this.bodySlot.assignedElements()].filter((el) => el.tagName.toLowerCase() === "flow-ui-stepper-panel");
16551
16555
  }
16552
- setActivePanel(panel) {
16556
+ setActivePanel(panel, options) {
16557
+ options = {
16558
+ emitEvents: true,
16559
+ scrollBehavior: "auto",
16560
+ ...options
16561
+ };
16553
16562
  if (panel !== this.activePanel) {
16563
+ const previousPanel = this.activePanel;
16554
16564
  this.activePanel = panel;
16555
16565
  this.panels.forEach((el) => el.active = el === this.activePanel);
16556
16566
  const panelIndex = this.panels.indexOf(this.activePanel);
16557
16567
  const panelHeaderItem = this.headerScrollContainer.getElementsByClassName("stepper__header-item").item(panelIndex);
16558
- scrollIntoView(panelHeaderItem, this.headerScrollContainer, "horizontal");
16568
+ scrollIntoView(panelHeaderItem, this.headerScrollContainer, "horizontal", options.scrollBehavior);
16569
+ if (options.emitEvents) {
16570
+ if (previousPanel) {
16571
+ this.emit("flow-ui-tab-hide", { detail: { name: previousPanel.name } });
16572
+ }
16573
+ this.emit("flow-ui-tab-show", { detail: { name: this.activePanel.name } });
16574
+ }
16559
16575
  }
16560
16576
  }
16561
16577
  renderHeaderItem(panel, index) {
@@ -20888,7 +20904,7 @@ const translation = {
20888
20904
  toggleColorFormat: "Toggle color format"
20889
20905
  };
20890
20906
  registerTranslation(translation);
20891
- const version = "0.0.6";
20907
+ const version = "0.0.7";
20892
20908
  const CONSOLE_HIGHLIGHT_STYLE = `
20893
20909
  padding: 2px 4px;
20894
20910
  border-radius: 2px;
@@ -16549,17 +16549,33 @@
16549
16549
  }
16550
16550
  syncPanels() {
16551
16551
  this.panels = this.getAllPanels();
16552
+ this.activePanel = this.panels.find((el) => el.active);
16553
+ if (!this.activePanel) {
16554
+ this.activePanel = this.panels[0];
16555
+ }
16552
16556
  }
16553
16557
  getAllPanels() {
16554
16558
  return [...this.bodySlot.assignedElements()].filter((el) => el.tagName.toLowerCase() === "flow-ui-stepper-panel");
16555
16559
  }
16556
- setActivePanel(panel) {
16560
+ setActivePanel(panel, options) {
16561
+ options = {
16562
+ emitEvents: true,
16563
+ scrollBehavior: "auto",
16564
+ ...options
16565
+ };
16557
16566
  if (panel !== this.activePanel) {
16567
+ const previousPanel = this.activePanel;
16558
16568
  this.activePanel = panel;
16559
16569
  this.panels.forEach((el) => el.active = el === this.activePanel);
16560
16570
  const panelIndex = this.panels.indexOf(this.activePanel);
16561
16571
  const panelHeaderItem = this.headerScrollContainer.getElementsByClassName("stepper__header-item").item(panelIndex);
16562
- scrollIntoView(panelHeaderItem, this.headerScrollContainer, "horizontal");
16572
+ scrollIntoView(panelHeaderItem, this.headerScrollContainer, "horizontal", options.scrollBehavior);
16573
+ if (options.emitEvents) {
16574
+ if (previousPanel) {
16575
+ this.emit("flow-ui-tab-hide", { detail: { name: previousPanel.name } });
16576
+ }
16577
+ this.emit("flow-ui-tab-show", { detail: { name: this.activePanel.name } });
16578
+ }
16563
16579
  }
16564
16580
  }
16565
16581
  renderHeaderItem(panel, index) {
@@ -20892,7 +20908,7 @@
20892
20908
  toggleColorFormat: "Toggle color format"
20893
20909
  };
20894
20910
  registerTranslation(translation);
20895
- const version = "0.0.6";
20911
+ const version = "0.0.7";
20896
20912
  const CONSOLE_HIGHLIGHT_STYLE = `
20897
20913
  padding: 2px 4px;
20898
20914
  border-radius: 2px;
@@ -97,13 +97,37 @@
97
97
  "references": []
98
98
  },
99
99
  {
100
- "name": "flow-ui-breadcrumb",
101
- "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.",
100
+ "name": "flow-ui-avatar",
101
+ "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.",
102
102
  "attributes": [
103
+ {
104
+ "name": "image",
105
+ "description": "The image source to use for the avatar.",
106
+ "values": []
107
+ },
103
108
  {
104
109
  "name": "label",
105
- "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.",
110
+ "description": "A label to use to describe the avatar to assistive devices.",
111
+ "values": []
112
+ },
113
+ {
114
+ "name": "initials",
115
+ "description": "Initials to use as a fallback when no image is available (1-2 characters max recommended).",
106
116
  "values": []
117
+ },
118
+ {
119
+ "name": "loading",
120
+ "description": "Indicates how the browser should load the image.",
121
+ "values": [{ "name": "eager" }, { "name": "lazy" }]
122
+ },
123
+ {
124
+ "name": "shape",
125
+ "description": "The shape of the avatar.",
126
+ "values": [
127
+ { "name": "circle" },
128
+ { "name": "square" },
129
+ { "name": "rounded" }
130
+ ]
107
131
  }
108
132
  ],
109
133
  "references": []
@@ -135,19 +159,6 @@
135
159
  ],
136
160
  "references": []
137
161
  },
138
- {
139
- "name": "flow-ui-button-group",
140
- "description": "Button groups can be used to group related buttons into sections.\n\n\n---\n\n\n\n\n### **Slots:**\n - _default_ - One or more `<flow-ui-button>` elements to display in the button group.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
141
- "attributes": [
142
- { "name": "label", "values": [] },
143
- {
144
- "name": "vertical",
145
- "description": "Use vertical layout for the button group.",
146
- "values": []
147
- }
148
- ],
149
- "references": []
150
- },
151
162
  {
152
163
  "name": "flow-ui-button",
153
164
  "description": "Buttons represent actions that are available to the user.\n\n\n---\n\n\n\n\n### **Events:**\n - **flow-ui-blur** - Emitted when the button loses focus.\n- **flow-ui-focus** - Emitted when the button gains focus.\n- **flow-ui-invalid** - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n\n### **Methods:**\n - **click()** - Simulates a click on the button.\n- **focus(options: _FocusOptions_)** - Sets focus on the button.\n- **blur()** - Removes focus from the button.\n- **checkValidity()** - Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid.\n- **getForm(): _HTMLFormElement | null_** - Gets the associated form, if one exists.\n- **reportValidity()** - Checks for validity and shows the browser's validation message if the control is invalid.\n- **setCustomValidity(message: _string_)** - Sets a custom validation message. Pass an empty string to restore validity.\n\n### **Slots:**\n - _default_ - The button's label.\n- **prefix** - A presentational prefix icon or similar element.\n- **suffix** - A presentational suffix icon or similar element.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **prefix** - The container that wraps the prefix.\n- **label** - The button's label.\n- **suffix** - The container that wraps the suffix.\n- **caret** - The button's caret icon, an `<flow-ui-icon>` element.",
@@ -292,6 +303,31 @@
292
303
  ],
293
304
  "references": []
294
305
  },
306
+ {
307
+ "name": "flow-ui-breadcrumb",
308
+ "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.",
309
+ "attributes": [
310
+ {
311
+ "name": "label",
312
+ "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.",
313
+ "values": []
314
+ }
315
+ ],
316
+ "references": []
317
+ },
318
+ {
319
+ "name": "flow-ui-button-group",
320
+ "description": "Button groups can be used to group related buttons into sections.\n\n\n---\n\n\n\n\n### **Slots:**\n - _default_ - One or more `<flow-ui-button>` elements to display in the button group.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
321
+ "attributes": [
322
+ { "name": "label", "values": [] },
323
+ {
324
+ "name": "vertical",
325
+ "description": "Use vertical layout for the button group.",
326
+ "values": []
327
+ }
328
+ ],
329
+ "references": []
330
+ },
295
331
  {
296
332
  "name": "flow-ui-badge",
297
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.",
@@ -320,42 +356,6 @@
320
356
  ],
321
357
  "references": []
322
358
  },
323
- {
324
- "name": "flow-ui-avatar",
325
- "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.",
326
- "attributes": [
327
- {
328
- "name": "image",
329
- "description": "The image source to use for the avatar.",
330
- "values": []
331
- },
332
- {
333
- "name": "label",
334
- "description": "A label to use to describe the avatar to assistive devices.",
335
- "values": []
336
- },
337
- {
338
- "name": "initials",
339
- "description": "Initials to use as a fallback when no image is available (1-2 characters max recommended).",
340
- "values": []
341
- },
342
- {
343
- "name": "loading",
344
- "description": "Indicates how the browser should load the image.",
345
- "values": [{ "name": "eager" }, { "name": "lazy" }]
346
- },
347
- {
348
- "name": "shape",
349
- "description": "The shape of the avatar.",
350
- "values": [
351
- { "name": "circle" },
352
- { "name": "square" },
353
- { "name": "rounded" }
354
- ]
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.",
@@ -1656,6 +1656,34 @@
1656
1656
  ],
1657
1657
  "references": []
1658
1658
  },
1659
+ {
1660
+ "name": "flow-ui-tab-group",
1661
+ "description": "Tab groups organize content into a container that shows one section at a time.\n\n\n---\n\n\n\n\n### **Events:**\n - **flow-ui-tab-show** - Emitted when a tab is shown.\n- **flow-ui-tab-hide** - Emitted when a tab is hidden.\n\n### **Methods:**\n - **show(panel: _string_)** - Shows the specified tab panel.\n\n### **Slots:**\n - _default_ - Used for grouping tab panels in the tab group. Must be `<flow-ui-tab-panel>` elements.\n- **nav** - Used for grouping tabs in the tab group. Must be `<flow-ui-tab>` elements.\n\n### **CSS Properties:**\n - **--indicator-color** - The color of the active tab indicator. _(default: undefined)_\n- **--track-color** - The color of the indicator's track (the line that separates tabs from panels). _(default: undefined)_\n- **--track-width** - The width of the indicator's track (the line that separates tabs from panels). _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **nav** - The tab group's navigation container where tabs are slotted in.\n- **tabs** - The container that wraps the tabs.\n- **active-tab-indicator** - The line that highlights the currently selected tab.\n- **body** - The tab group's body where tab panels are slotted in.\n- **scroll-button** - The previous/next scroll buttons that show when tabs are scrollable, an `<flow-ui-icon-button>`.\n- **scroll-button--start** - The starting scroll button.\n- **scroll-button--end** - The ending scroll button.\n- **scroll-button__base** - The scroll button's exported `base` part.",
1662
+ "attributes": [
1663
+ {
1664
+ "name": "placement",
1665
+ "description": "The placement of the tabs.",
1666
+ "values": [
1667
+ { "name": "top" },
1668
+ { "name": "bottom" },
1669
+ { "name": "start" },
1670
+ { "name": "end" }
1671
+ ]
1672
+ },
1673
+ {
1674
+ "name": "activation",
1675
+ "description": "When set to auto, navigating tabs with the arrow keys will instantly show the corresponding tab panel. When set to\nmanual, the tab will receive focus but will not show until the user presses spacebar or enter.",
1676
+ "values": [{ "name": "auto" }, { "name": "manual" }]
1677
+ },
1678
+ {
1679
+ "name": "no-scroll-controls",
1680
+ "description": "Disables the scroll arrows that appear when tabs overflow.",
1681
+ "values": []
1682
+ },
1683
+ { "name": "control-split-panel", "values": [] }
1684
+ ],
1685
+ "references": []
1686
+ },
1659
1687
  {
1660
1688
  "name": "flow-ui-tab-panel",
1661
1689
  "description": "Tab panels are used inside [tab groups](/components/tab-group) to display tabbed content.\n\n\n---\n\n\n\n\n### **Slots:**\n - _default_ - The tab panel's content.\n\n### **CSS Properties:**\n - **--padding** - The tab panel's padding. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
@@ -1711,34 +1739,6 @@
1711
1739
  ],
1712
1740
  "references": []
1713
1741
  },
1714
- {
1715
- "name": "flow-ui-tab-group",
1716
- "description": "Tab groups organize content into a container that shows one section at a time.\n\n\n---\n\n\n\n\n### **Events:**\n - **flow-ui-tab-show** - Emitted when a tab is shown.\n- **flow-ui-tab-hide** - Emitted when a tab is hidden.\n\n### **Methods:**\n - **show(panel: _string_)** - Shows the specified tab panel.\n\n### **Slots:**\n - _default_ - Used for grouping tab panels in the tab group. Must be `<flow-ui-tab-panel>` elements.\n- **nav** - Used for grouping tabs in the tab group. Must be `<flow-ui-tab>` elements.\n\n### **CSS Properties:**\n - **--indicator-color** - The color of the active tab indicator. _(default: undefined)_\n- **--track-color** - The color of the indicator's track (the line that separates tabs from panels). _(default: undefined)_\n- **--track-width** - The width of the indicator's track (the line that separates tabs from panels). _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **nav** - The tab group's navigation container where tabs are slotted in.\n- **tabs** - The container that wraps the tabs.\n- **active-tab-indicator** - The line that highlights the currently selected tab.\n- **body** - The tab group's body where tab panels are slotted in.\n- **scroll-button** - The previous/next scroll buttons that show when tabs are scrollable, an `<flow-ui-icon-button>`.\n- **scroll-button--start** - The starting scroll button.\n- **scroll-button--end** - The ending scroll button.\n- **scroll-button__base** - The scroll button's exported `base` part.",
1717
- "attributes": [
1718
- {
1719
- "name": "placement",
1720
- "description": "The placement of the tabs.",
1721
- "values": [
1722
- { "name": "top" },
1723
- { "name": "bottom" },
1724
- { "name": "start" },
1725
- { "name": "end" }
1726
- ]
1727
- },
1728
- {
1729
- "name": "activation",
1730
- "description": "When set to auto, navigating tabs with the arrow keys will instantly show the corresponding tab panel. When set to\nmanual, the tab will receive focus but will not show until the user presses spacebar or enter.",
1731
- "values": [{ "name": "auto" }, { "name": "manual" }]
1732
- },
1733
- {
1734
- "name": "no-scroll-controls",
1735
- "description": "Disables the scroll arrows that appear when tabs overflow.",
1736
- "values": []
1737
- },
1738
- { "name": "control-split-panel", "values": [] }
1739
- ],
1740
- "references": []
1741
- },
1742
1742
  {
1743
1743
  "name": "flow-ui-textarea",
1744
1744
  "description": "Textareas collect data from the user and allow multiple lines of text.\n\n\n---\n\n\n\n\n### **Events:**\n - **flow-ui-blur** - Emitted when the control loses focus.\n- **flow-ui-change** - Emitted when an alteration to the control's value is committed by the user.\n- **flow-ui-focus** - Emitted when the control gains focus.\n- **flow-ui-input** - Emitted when the control receives input.\n- **flow-ui-invalid** - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n\n### **Methods:**\n - **focus(options: _FocusOptions_)** - Sets focus on the textarea.\n- **blur()** - Removes focus from the textarea.\n- **select()** - Selects all the text in the textarea.\n- **scrollPosition(position: _{ top?: number; left?: number }_): _{ top: number; left: number } | undefined_** - Gets or sets the textarea's scroll position.\n- **setSelectionRange(selectionStart: _number_, selectionEnd: _number_, selectionDirection: _'forward' | 'backward' | 'none'_)** - Sets the start and end positions of the text selection (0-based).\n- **setRangeText(replacement: _string_, start: _number_, end: _number_, selectMode: _'select' | 'start' | 'end' | 'preserve'_)** - Replaces a range of text with a new string.\n- **checkValidity()** - Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid.\n- **getForm(): _HTMLFormElement | null_** - Gets the associated form, if one exists.\n- **reportValidity()** - Checks for validity and shows the browser's validation message if the control is invalid.\n- **setCustomValidity(message: _string_)** - Sets a custom validation message. Pass an empty string to restore validity.\n\n### **Slots:**\n - **label** - The textarea's label. Alternatively, you can use the `label` attribute.\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 input's wrapper.\n- **form-control-help-text** - The help text's wrapper.\n- **base** - The component's base wrapper.\n- **textarea** - The internal `<textarea>` control.",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@emuanalytics/flow-rdf-ui",
3
- "version": "0.0.6",
3
+ "version": "0.0.7",
4
4
  "type": "module",
5
5
  "main": "dist/flow-rdf-ui.umd.cjs",
6
6
  "module": "dist/flow-rdf-ui.js",