@oicl/openbridge-webcomponents-full-bundle 2.0.0-next.49 → 2.0.0-next.52
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.
- package/bundle/openbridge-webcomponents.bundle.js +18716 -17343
- package/bundle/openbridge-webcomponents.bundle.js.map +1 -1
- package/custom-elements.json +877 -14
- package/dist/ar/building-blocks/poi-header/poi-header.css.js +8 -4
- package/dist/ar/building-blocks/poi-header/poi-header.css.js.map +1 -1
- package/dist/ar/chart-object-vessel-button/chart-object-vessel-button.css.js +7 -7
- package/dist/ar/poi-card-header/poi-card-header.css.js +12 -6
- package/dist/ar/poi-card-header/poi-card-header.css.js.map +1 -1
- package/dist/automation/automation-tank/automation-tank.css.js +166 -28
- package/dist/automation/automation-tank/automation-tank.css.js.map +1 -1
- package/dist/automation/automation-tank/automation-tank.d.ts +32 -0
- package/dist/automation/automation-tank/automation-tank.d.ts.map +1 -1
- package/dist/automation/automation-tank/automation-tank.js +28 -0
- package/dist/automation/automation-tank/automation-tank.js.map +1 -1
- package/dist/building-blocks/alert-list/alert-list.css.js +4 -2
- package/dist/building-blocks/alert-list/alert-list.css.js.map +1 -1
- package/dist/components/accordion-card/accordion-card.css.js +6 -3
- package/dist/components/accordion-card/accordion-card.css.js.map +1 -1
- package/dist/components/accordion-item/accordion-item.css.js +4 -2
- package/dist/components/accordion-item/accordion-item.css.js.map +1 -1
- package/dist/components/advice-button/advice-button.css.js +2 -1
- package/dist/components/advice-button/advice-button.css.js.map +1 -1
- package/dist/components/alert-button/alert-button.css.js +2 -1
- package/dist/components/alert-button/alert-button.css.js.map +1 -1
- package/dist/components/alert-frame/alert-frame.css.js +7 -3
- package/dist/components/alert-frame/alert-frame.css.js.map +1 -1
- package/dist/components/alert-list-details/alert-list-details.css.js +4 -2
- package/dist/components/alert-list-details/alert-list-details.css.js.map +1 -1
- package/dist/components/alert-menu/alert-menu.css.js +4 -2
- package/dist/components/alert-menu/alert-menu.css.js.map +1 -1
- package/dist/components/app-button/app-button.css.js +8 -4
- package/dist/components/app-button/app-button.css.js.map +1 -1
- package/dist/components/attachment-list-item/attachment-list-item.css.js +8 -4
- package/dist/components/attachment-list-item/attachment-list-item.css.js.map +1 -1
- package/dist/components/badge/badge.css.js +4 -2
- package/dist/components/badge/badge.css.js.map +1 -1
- package/dist/components/breadcrumb/breadcrumb.css.js +4 -2
- package/dist/components/breadcrumb/breadcrumb.css.js.map +1 -1
- package/dist/components/brilliance-menu/brilliance-menu.css.js +2 -1
- package/dist/components/brilliance-menu/brilliance-menu.css.js.map +1 -1
- package/dist/components/calendar/calendar.css.js +5 -3
- package/dist/components/calendar/calendar.css.js.map +1 -1
- package/dist/components/card/card.css.js +2 -1
- package/dist/components/card/card.css.js.map +1 -1
- package/dist/components/chat-message/chat-message.css.js +6 -3
- package/dist/components/chat-message/chat-message.css.js.map +1 -1
- package/dist/components/check-button/check-button.css.js +5 -3
- package/dist/components/check-button/check-button.css.js.map +1 -1
- package/dist/components/checkbox-item/checkbox-item.css.js +4 -2
- package/dist/components/checkbox-item/checkbox-item.css.js.map +1 -1
- package/dist/components/clock/clock.css.js +7 -3
- package/dist/components/clock/clock.css.js.map +1 -1
- package/dist/components/command-menu/command-menu.css.js +6 -3
- package/dist/components/command-menu/command-menu.css.js.map +1 -1
- package/dist/components/communication-table/communication-table.css.js +10 -5
- package/dist/components/communication-table/communication-table.css.js.map +1 -1
- package/dist/components/context-menu-input/context-menu-input.css.js +4 -2
- package/dist/components/context-menu-input/context-menu-input.css.js.map +1 -1
- package/dist/components/date-item/date-item.css.js +16 -8
- package/dist/components/date-item/date-item.css.js.map +1 -1
- package/dist/components/dropdown-button/dropdown-button.css.js +6 -3
- package/dist/components/dropdown-button/dropdown-button.css.js.map +1 -1
- package/dist/components/elevated-card/elevated-card.css.js +8 -4
- package/dist/components/elevated-card/elevated-card.css.js.map +1 -1
- package/dist/components/elevated-card-radio-group/elevated-card-radio-group.css.js +6 -3
- package/dist/components/elevated-card-radio-group/elevated-card-radio-group.css.js.map +1 -1
- package/dist/components/event-item/event-item.css.js +6 -3
- package/dist/components/event-item/event-item.css.js.map +1 -1
- package/dist/components/event-list/event-list.css.js +2 -1
- package/dist/components/event-list/event-list.css.js.map +1 -1
- package/dist/components/filter-chip/filter-chip.css.js +2 -1
- package/dist/components/filter-chip/filter-chip.css.js.map +1 -1
- package/dist/components/floating-item/floating-item.css.js +6 -3
- package/dist/components/floating-item/floating-item.css.js.map +1 -1
- package/dist/components/form-container/form-container.css.js +1 -1
- package/dist/components/form-group/form-group.css.js +4 -2
- package/dist/components/form-group/form-group.css.js.map +1 -1
- package/dist/components/form-item/form-item.css.js +4 -2
- package/dist/components/form-item/form-item.css.js.map +1 -1
- package/dist/components/icon-button/icon-button.css.js +20 -19
- package/dist/components/icon-button/icon-button.css.js.map +1 -1
- package/dist/components/icon-button/icon-button.d.ts +2 -0
- package/dist/components/icon-button/icon-button.d.ts.map +1 -1
- package/dist/components/icon-button/icon-button.js.map +1 -1
- package/dist/components/icon-check-button/icon-check-button.css.js +4 -2
- package/dist/components/icon-check-button/icon-check-button.css.js.map +1 -1
- package/dist/components/input-chip/input-chip.css.js +2 -1
- package/dist/components/input-chip/input-chip.css.js.map +1 -1
- package/dist/components/keyboard-full/keyboard-full.css.js +2 -1
- package/dist/components/keyboard-full/keyboard-full.css.js.map +1 -1
- package/dist/components/keyboard-numeric/keyboard-numeric.css.js +2 -1
- package/dist/components/keyboard-numeric/keyboard-numeric.css.js.map +1 -1
- package/dist/components/menu-button/menu-button.css.js +4 -2
- package/dist/components/menu-button/menu-button.css.js.map +1 -1
- package/dist/components/message-menu-item/message-menu-item.css.js +8 -13
- package/dist/components/message-menu-item/message-menu-item.css.js.map +1 -1
- package/dist/components/modal-window/modal-window.css.js +2 -1
- package/dist/components/modal-window/modal-window.css.js.map +1 -1
- package/dist/components/navigation-item/navigation-item.css.js +9 -4
- package/dist/components/navigation-item/navigation-item.css.js.map +1 -1
- package/dist/components/notification-badge-button/notification-badge-button.css.js +2 -1
- package/dist/components/notification-badge-button/notification-badge-button.css.js.map +1 -1
- package/dist/components/notification-button/notification-button.css.js +2 -1
- package/dist/components/notification-button/notification-button.css.js.map +1 -1
- package/dist/components/number-input-field/number-input-field.css.js +4 -2
- package/dist/components/number-input-field/number-input-field.css.js.map +1 -1
- package/dist/components/pivot-item/pivot-item.css.js +4 -2
- package/dist/components/pivot-item/pivot-item.css.js.map +1 -1
- package/dist/components/progress-bar/progress-bar.css.js +4 -2
- package/dist/components/progress-bar/progress-bar.css.js.map +1 -1
- package/dist/components/progress-button/progress-button.css.js +4 -2
- package/dist/components/progress-button/progress-button.css.js.map +1 -1
- package/dist/components/radio/radio.css.js +4 -2
- package/dist/components/radio/radio.css.js.map +1 -1
- package/dist/components/rich-button/rich-button.css.js +4 -2
- package/dist/components/rich-button/rich-button.css.js.map +1 -1
- package/dist/components/sequence-item/sequence-item.css.js +11 -6
- package/dist/components/sequence-item/sequence-item.css.js.map +1 -1
- package/dist/components/sequence-loading-spinner/sequence-loading-spinner.css.js +3 -3
- package/dist/components/sequence-step/sequence-step.css.js +2 -1
- package/dist/components/sequence-step/sequence-step.css.js.map +1 -1
- package/dist/components/slide-button/slide-button.css.js +2 -1
- package/dist/components/slide-button/slide-button.css.js.map +1 -1
- package/dist/components/slider-double/slider-double.css.js +2 -1
- package/dist/components/slider-double/slider-double.css.js.map +1 -1
- package/dist/components/start-stop-switch/start-stop-switch.css.js +16 -8
- package/dist/components/start-stop-switch/start-stop-switch.css.js.map +1 -1
- package/dist/components/status-indicator/status-indicator.css.js +4 -2
- package/dist/components/status-indicator/status-indicator.css.js.map +1 -1
- package/dist/components/stepper-box/stepper-box.css.js +2 -1
- package/dist/components/stepper-box/stepper-box.css.js.map +1 -1
- package/dist/components/system-menu/system-menu.css.js +26 -13
- package/dist/components/system-menu/system-menu.css.js.map +1 -1
- package/dist/components/tab-item/tab-item.css.js +8 -5
- package/dist/components/tab-item/tab-item.css.js.map +1 -1
- package/dist/components/tabbed-card/tabbed-card.css.js +4 -2
- package/dist/components/tabbed-card/tabbed-card.css.js.map +1 -1
- package/dist/components/table/table.css.js +8 -5
- package/dist/components/table/table.css.js.map +1 -1
- package/dist/components/table-header-item/table-header-item.css.js +2 -1
- package/dist/components/table-header-item/table-header-item.css.js.map +1 -1
- package/dist/components/tag/tag.css.js +4 -2
- package/dist/components/tag/tag.css.js.map +1 -1
- package/dist/components/text-input-field/text-input-field.css.js +6 -3
- package/dist/components/text-input-field/text-input-field.css.js.map +1 -1
- package/dist/components/textarea-field/textarea-field.css.js +6 -3
- package/dist/components/textarea-field/textarea-field.css.js.map +1 -1
- package/dist/components/title-container/title-container.css.js +3 -2
- package/dist/components/title-container/title-container.css.js.map +1 -1
- package/dist/components/toggle-button-option/toggle-button-option.css.js +19 -12
- package/dist/components/toggle-button-option/toggle-button-option.css.js.map +1 -1
- package/dist/components/toggle-button-vertical-option/toggle-button-vertical-option.css.js +4 -2
- package/dist/components/toggle-button-vertical-option/toggle-button-vertical-option.css.js.map +1 -1
- package/dist/components/toggle-switch/toggle-switch.css.js +6 -3
- package/dist/components/toggle-switch/toggle-switch.css.js.map +1 -1
- package/dist/components/toggletip/toggletip.css.js +4 -2
- package/dist/components/toggletip/toggletip.css.js.map +1 -1
- package/dist/components/tooltip/tooltip.css.js +2 -1
- package/dist/components/tooltip/tooltip.css.js.map +1 -1
- package/dist/components/top-bar/top-bar.css.js +4 -2
- package/dist/components/top-bar/top-bar.css.js.map +1 -1
- package/dist/components/topbar-message-item/topbar-message-item.css.js +10 -5
- package/dist/components/topbar-message-item/topbar-message-item.css.js.map +1 -1
- package/dist/components/user-button/user-button.css.js +12 -7
- package/dist/components/user-button/user-button.css.js.map +1 -1
- package/dist/components/user-menu/user-menu.css.js +4 -2
- package/dist/components/user-menu/user-menu.css.js.map +1 -1
- package/dist/integration-systems/integration-bar/integration-bar.css.js +97 -0
- package/dist/integration-systems/integration-bar/integration-bar.css.js.map +1 -0
- package/dist/integration-systems/integration-bar/integration-bar.d.ts +91 -0
- package/dist/integration-systems/integration-bar/integration-bar.d.ts.map +1 -0
- package/dist/integration-systems/integration-bar/integration-bar.js +279 -0
- package/dist/integration-systems/integration-bar/integration-bar.js.map +1 -0
- package/dist/integration-systems/integration-bar-dropdown/integration-bar-dropdown.css.js +2 -1
- package/dist/integration-systems/integration-bar-dropdown/integration-bar-dropdown.css.js.map +1 -1
- package/dist/integration-systems/integration-button/integration-button.css.js +472 -156
- package/dist/integration-systems/integration-button/integration-button.css.js.map +1 -1
- package/dist/integration-systems/integration-button/integration-button.d.ts +37 -1
- package/dist/integration-systems/integration-button/integration-button.d.ts.map +1 -1
- package/dist/integration-systems/integration-button/integration-button.js +202 -36
- package/dist/integration-systems/integration-button/integration-button.js.map +1 -1
- package/dist/integration-systems/integration-dropdown-button/integration-dropdown-button.css.js +17 -6
- package/dist/integration-systems/integration-dropdown-button/integration-dropdown-button.css.js.map +1 -1
- package/dist/integration-systems/integration-fleet-button/integration-fleet-button.css.js +12 -6
- package/dist/integration-systems/integration-fleet-button/integration-fleet-button.css.js.map +1 -1
- package/dist/integration-systems/integration-tabs/integration-tabs.css.js +3 -1
- package/dist/integration-systems/integration-tabs/integration-tabs.css.js.map +1 -1
- package/dist/integration-systems/integration-vessel-menu/integration-vessel-menu.css.js +75 -0
- package/dist/integration-systems/integration-vessel-menu/integration-vessel-menu.css.js.map +1 -0
- package/dist/integration-systems/integration-vessel-menu/integration-vessel-menu.d.ts +37 -0
- package/dist/integration-systems/integration-vessel-menu/integration-vessel-menu.d.ts.map +1 -0
- package/dist/integration-systems/integration-vessel-menu/integration-vessel-menu.js +72 -0
- package/dist/integration-systems/integration-vessel-menu/integration-vessel-menu.js.map +1 -0
- package/dist/integration-systems/integration-vessel-selector/integration-vessel-selector.css.js +21 -8
- package/dist/integration-systems/integration-vessel-selector/integration-vessel-selector.css.js.map +1 -1
- package/dist/integration-systems/integration-vessel-selector/integration-vessel-selector.d.ts +2 -0
- package/dist/integration-systems/integration-vessel-selector/integration-vessel-selector.d.ts.map +1 -1
- package/dist/integration-systems/integration-vessel-selector/integration-vessel-selector.js +5 -0
- package/dist/integration-systems/integration-vessel-selector/integration-vessel-selector.js.map +1 -1
- package/dist/navigation-instruments/azimuth-thruster-labeled/azimuth-thruster-labeled.css.js +3 -1
- package/dist/navigation-instruments/azimuth-thruster-labeled/azimuth-thruster-labeled.css.js.map +1 -1
- package/dist/navigation-instruments/instrument-field/instrument-field.css.js +4 -2
- package/dist/navigation-instruments/instrument-field/instrument-field.css.js.map +1 -1
- package/dist/navigation-instruments/readout/readout.css.js +4 -2
- package/dist/navigation-instruments/readout/readout.css.js.map +1 -1
- package/dist/navigation-instruments/watch/watch.css.js +3 -2
- package/dist/navigation-instruments/watch/watch.css.js.map +1 -1
- package/dist/navigation-instruments/watch-flat/watch-flat.css.js +3 -2
- package/dist/navigation-instruments/watch-flat/watch-flat.css.js.map +1 -1
- package/dist/openbridge.css +4 -2
- package/dist/pages/alert-detail-page/alert-detail-page.css.js +15 -8
- package/dist/pages/alert-detail-page/alert-detail-page.css.js.map +1 -1
- package/package.json +3 -3
- package/postcss.config.mjs +2 -1
- package/script/check-css-variables.ts +9 -30
- package/src/ar/chart-object-vessel-button/chart-object-vessel-button.css +7 -7
- package/src/ar/poi-layer/poi-layer.stories.ts +3 -0
- package/src/automation/automation-tank/automation-tank.css +119 -21
- package/src/automation/automation-tank/automation-tank.stories.ts +38 -0
- package/src/automation/automation-tank/automation-tank.ts +64 -0
- package/src/components/calendar/calendar.css +1 -1
- package/src/components/check-button/check-button.css +1 -1
- package/src/components/icon-button/icon-button.css +1 -1
- package/src/components/icon-button/icon-button.ts +2 -0
- package/src/components/message-menu-item/message-menu-item.css +2 -5
- package/src/components/sequence-item/sequence-item.css +5 -3
- package/src/components/sequence-loading-spinner/sequence-loading-spinner.css +3 -3
- package/src/components/tab-item/tab-item.css +2 -2
- package/src/components/table/table.css +2 -2
- package/src/components/toggle-button-option/toggle-button-option.css +1 -3
- package/src/integration-systems/integration-app-bar/integration-app-bar.stories.ts +1 -1
- package/src/integration-systems/integration-bar/integration-bar.css +86 -0
- package/src/integration-systems/integration-bar/integration-bar.stories.ts +479 -0
- package/src/integration-systems/integration-bar/integration-bar.ts +301 -0
- package/src/integration-systems/integration-bar-dropdown/integration-bar-dropdown.stories.ts +5 -3
- package/src/integration-systems/integration-button/integration-button.css +203 -64
- package/src/integration-systems/integration-button/integration-button.stories.ts +71 -5
- package/src/integration-systems/integration-button/integration-button.ts +242 -43
- package/src/integration-systems/integration-dropdown-button/integration-dropdown-button.css +7 -1
- package/src/integration-systems/integration-dropdown-button/integration-dropdown-button.stories.ts +1 -1
- package/src/integration-systems/integration-fleet-button/integration-fleet-button.stories.ts +1 -1
- package/src/integration-systems/integration-tabs/integration-tabs.stories.ts +1 -1
- package/src/integration-systems/integration-vessel-menu/integration-vessel-menu.css +59 -0
- package/src/integration-systems/integration-vessel-menu/integration-vessel-menu.stories.ts +180 -0
- package/src/integration-systems/integration-vessel-menu/integration-vessel-menu.ts +83 -0
- package/src/integration-systems/integration-vessel-selector/integration-vessel-selector.css +21 -9
- package/src/integration-systems/integration-vessel-selector/integration-vessel-selector.stories.ts +187 -3
- package/src/integration-systems/integration-vessel-selector/integration-vessel-selector.ts +5 -0
- package/src/mixins/alert.css +0 -29
- package/src/mixins/font-extras.css +103 -0
- package/src/mixins/fonts.css +26 -96
- package/src/navigation-instruments/watch/watch.css +1 -1
- package/src/navigation-instruments/watch-flat/watch-flat.css +1 -1
- package/src/pages/alert-detail-page/alert-detail-page.css +1 -1
|
@@ -1,22 +1,30 @@
|
|
|
1
1
|
import type {Meta, StoryObj} from '@storybook/web-components-vite';
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
IntegrationButtonType,
|
|
4
|
+
IntegrationButtonVariant,
|
|
5
|
+
ObcIntegrationButton,
|
|
6
|
+
} from './integration-button.js';
|
|
3
7
|
import './integration-button.js';
|
|
4
8
|
import {html} from 'lit';
|
|
5
9
|
import '../../icons/icon-placeholder.js';
|
|
6
10
|
|
|
7
|
-
const meta: Meta<
|
|
11
|
+
const meta: Meta<ObcIntegrationButton> = {
|
|
8
12
|
title: 'Integration Systems/Integration Button',
|
|
9
|
-
tags: ['
|
|
13
|
+
tags: ['alpha'],
|
|
10
14
|
component: 'obc-integration-button',
|
|
11
15
|
args: {
|
|
12
16
|
hasLeadingIcon: true,
|
|
13
17
|
hasTrailingIcon: true,
|
|
14
18
|
hasTrailingIcon2: true,
|
|
19
|
+
hasStatus: false,
|
|
15
20
|
readouts: [
|
|
16
21
|
{label: 'Readout 1', value: 'Value 1', unit: 'Unit 1'},
|
|
17
22
|
{label: 'Readout 2', value: 'Value 2', unit: 'Unit 2'},
|
|
18
23
|
],
|
|
24
|
+
variant: IntegrationButtonVariant.normal,
|
|
25
|
+
type: IntegrationButtonType.regular,
|
|
19
26
|
},
|
|
27
|
+
|
|
20
28
|
globals: {
|
|
21
29
|
backgrounds: {
|
|
22
30
|
value: 'integration-container-global-color',
|
|
@@ -28,9 +36,12 @@ const meta: Meta<typeof ObcIntegrationButton> = {
|
|
|
28
36
|
.hasLeadingIcon=${args.hasLeadingIcon}
|
|
29
37
|
.hasTrailingIcon=${args.hasTrailingIcon}
|
|
30
38
|
.hasTrailingIcon2=${args.hasTrailingIcon2}
|
|
39
|
+
.hasStatus=${args.hasStatus}
|
|
31
40
|
.readouts=${args.readouts}
|
|
32
41
|
.selected=${args.selected}
|
|
33
42
|
.disabled=${args.disabled}
|
|
43
|
+
.variant=${args.variant}
|
|
44
|
+
.type=${args.type}
|
|
34
45
|
>
|
|
35
46
|
<obi-placeholder slot="leading-icon"></obi-placeholder>
|
|
36
47
|
<obi-placeholder slot="trailing-icon"></obi-placeholder>
|
|
@@ -44,10 +55,65 @@ const meta: Meta<typeof ObcIntegrationButton> = {
|
|
|
44
55
|
} satisfies Meta<ObcIntegrationButton>;
|
|
45
56
|
export default meta;
|
|
46
57
|
|
|
47
|
-
export const Primary: StoryObj<
|
|
58
|
+
export const Primary: StoryObj<ObcIntegrationButton> = {};
|
|
59
|
+
|
|
60
|
+
export const WithStatus: StoryObj<ObcIntegrationButton> = {
|
|
61
|
+
args: {
|
|
62
|
+
hasStatus: true,
|
|
63
|
+
},
|
|
64
|
+
render: (args) => html`
|
|
65
|
+
<obc-integration-button
|
|
66
|
+
style="width: 320px; display: block;"
|
|
67
|
+
.hasLeadingIcon=${args.hasLeadingIcon}
|
|
68
|
+
.hasTrailingIcon=${args.hasTrailingIcon}
|
|
69
|
+
.hasTrailingIcon2=${args.hasTrailingIcon2}
|
|
70
|
+
.readouts=${args.readouts}
|
|
71
|
+
.selected=${args.selected}
|
|
72
|
+
.disabled=${args.disabled}
|
|
73
|
+
.variant=${args.variant}
|
|
74
|
+
.type=${args.type}
|
|
75
|
+
.hasStatus=${args.hasStatus}
|
|
76
|
+
>
|
|
77
|
+
<obi-placeholder slot="leading-icon"></obi-placeholder>
|
|
78
|
+
<obi-placeholder slot="trailing-icon"></obi-placeholder>
|
|
79
|
+
<obi-placeholder slot="trailing-icon2"></obi-placeholder>
|
|
80
|
+
<div slot="label">Label</div>
|
|
81
|
+
<div slot="status">Status</div>
|
|
82
|
+
<div slot="info-label">Info Label</div>
|
|
83
|
+
<div slot="info-status">Info Status</div>
|
|
84
|
+
</obc-integration-button>
|
|
85
|
+
`,
|
|
86
|
+
};
|
|
48
87
|
|
|
49
|
-
export const Selected: StoryObj<
|
|
88
|
+
export const Selected: StoryObj<ObcIntegrationButton> = {
|
|
50
89
|
args: {
|
|
51
90
|
selected: true,
|
|
52
91
|
},
|
|
53
92
|
};
|
|
93
|
+
|
|
94
|
+
export const Flat: StoryObj<ObcIntegrationButton> = {
|
|
95
|
+
args: {
|
|
96
|
+
variant: IntegrationButtonVariant.flat,
|
|
97
|
+
hasTrailingIcon: false,
|
|
98
|
+
},
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
export const Hug: StoryObj<ObcIntegrationButton> = {
|
|
102
|
+
args: {
|
|
103
|
+
type: IntegrationButtonType.hug,
|
|
104
|
+
hasTrailingIcon: false,
|
|
105
|
+
},
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
export const Rich: StoryObj<ObcIntegrationButton> = {
|
|
109
|
+
args: {
|
|
110
|
+
type: IntegrationButtonType.rich,
|
|
111
|
+
},
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
export const Disabled: StoryObj<ObcIntegrationButton> = {
|
|
115
|
+
args: {
|
|
116
|
+
type: IntegrationButtonType.rich,
|
|
117
|
+
disabled: true,
|
|
118
|
+
},
|
|
119
|
+
};
|
|
@@ -10,6 +10,17 @@ export interface IntegrationButtonReadout {
|
|
|
10
10
|
unit: string;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
+
export enum IntegrationButtonVariant {
|
|
14
|
+
normal = 'normal',
|
|
15
|
+
flat = 'flat',
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export enum IntegrationButtonType {
|
|
19
|
+
hug = 'hug',
|
|
20
|
+
regular = 'regular',
|
|
21
|
+
rich = 'rich',
|
|
22
|
+
}
|
|
23
|
+
|
|
13
24
|
/**
|
|
14
25
|
* `<obc-integration-button>` – A button component for integration systems.
|
|
15
26
|
*
|
|
@@ -17,73 +28,261 @@ export interface IntegrationButtonReadout {
|
|
|
17
28
|
* @slot trailing-icon - Icon after label (shown when `hasTrailingIcon` is true)
|
|
18
29
|
* @slot trailing-icon2 - Icon after label (shown when `hasTrailingIcon2` is true)
|
|
19
30
|
* @slot label - Label text
|
|
20
|
-
* @slot status - Status text
|
|
31
|
+
* @slot status - Status/description text (shown when `hasStatus` is true)
|
|
21
32
|
* @slot info-label - Info label text
|
|
22
33
|
* @slot info-status - Info status text
|
|
34
|
+
* @slot integration-vessel-menu - Integration vessel menu to be shown when button is in activated state
|
|
35
|
+
*
|
|
36
|
+
* @fires click - Fired when the internal button is activated.
|
|
37
|
+
*
|
|
38
|
+
* @property {boolean} hasTrailingIcon - Shows the `trailing-icon` slot.
|
|
39
|
+
* @property {boolean} hasTrailingIcon2 - Shows the `trailing-icon2` slot.
|
|
40
|
+
* @property {boolean} hasLeadingIcon - Shows the `leading-icon` slot.
|
|
41
|
+
* @property {boolean} hasstatus - Shows the `status` slot.
|
|
42
|
+
* @property {IntegrationButtonReadout[]} readouts - List of readout items shown in the rich type.
|
|
43
|
+
* @property {boolean} disabled - Disables the internal button.
|
|
44
|
+
* @property {boolean} activated - Applies active state styling while a selection is pending.
|
|
45
|
+
* @property {boolean} selected - Applies selected state styling.
|
|
46
|
+
* @property {boolean} dividerBottom - Shows a bottom divider under the button.
|
|
47
|
+
* @property {boolean} dividerRight - Shows a right divider to separate from adjacent buttons.
|
|
48
|
+
* @property {IntegrationButtonVariant} variant - Visual variant (`normal` or `flat`).
|
|
49
|
+
* @property {IntegrationButtonType} type - Layout type (`hug`, `regular`, or `rich`).
|
|
23
50
|
*/
|
|
24
51
|
@customElement('obc-integration-button')
|
|
25
52
|
export class ObcIntegrationButton extends LitElement {
|
|
26
53
|
@property({type: Boolean}) hasTrailingIcon = false;
|
|
27
54
|
@property({type: Boolean}) hasTrailingIcon2 = false;
|
|
28
55
|
@property({type: Boolean}) hasLeadingIcon = false;
|
|
56
|
+
@property({type: Boolean}) hasStatus = false;
|
|
29
57
|
@property({type: Array, attribute: false})
|
|
30
58
|
readouts: IntegrationButtonReadout[] = [];
|
|
31
59
|
@property({type: Boolean}) disabled = false;
|
|
60
|
+
@property({type: Boolean}) activated = false;
|
|
32
61
|
@property({type: Boolean}) selected = false;
|
|
33
62
|
@property({type: Boolean}) dividerBottom = false;
|
|
63
|
+
@property({type: Boolean}) dividerRight = false;
|
|
64
|
+
@property({type: String}) variant: IntegrationButtonVariant =
|
|
65
|
+
IntegrationButtonVariant.normal;
|
|
66
|
+
@property({type: String}) type: IntegrationButtonType =
|
|
67
|
+
IntegrationButtonType.regular;
|
|
34
68
|
|
|
35
|
-
|
|
69
|
+
private getButtonClasses() {
|
|
70
|
+
return {
|
|
71
|
+
'touch-target': true,
|
|
72
|
+
selected: this.selected,
|
|
73
|
+
activated: this.activated,
|
|
74
|
+
disabled: this.disabled,
|
|
75
|
+
'has-description': this.hasStatus,
|
|
76
|
+
['variant-' + this.variant]: true,
|
|
77
|
+
['type-' + this.type]: true,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
private onIntegrationVesselMenuClick(event: Event) {
|
|
82
|
+
event.stopPropagation();
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
renderRich() {
|
|
36
86
|
return html`
|
|
37
|
-
<button
|
|
87
|
+
<div class="button-horizontal-divider-container">
|
|
88
|
+
<div class="button-vertical-divider-container">
|
|
89
|
+
<button
|
|
90
|
+
class=${classMap(this.getButtonClasses())}
|
|
91
|
+
?disabled=${this.disabled}
|
|
92
|
+
>
|
|
93
|
+
<div class="content-container">
|
|
94
|
+
<div class="main-container">
|
|
95
|
+
${this.hasLeadingIcon
|
|
96
|
+
? html`<div class="icon leading">
|
|
97
|
+
<slot name="leading-icon"></slot>
|
|
98
|
+
</div>`
|
|
99
|
+
: nothing}
|
|
100
|
+
<div class="text-container">
|
|
101
|
+
<div class="label"><slot name="label"></slot></div>
|
|
102
|
+
${this.hasStatus
|
|
103
|
+
? html`<div class="status">
|
|
104
|
+
<slot name="status"></slot>
|
|
105
|
+
</div>`
|
|
106
|
+
: nothing}
|
|
107
|
+
</div>
|
|
108
|
+
${this.hasTrailingIcon
|
|
109
|
+
? html`<div class="icon-container">
|
|
110
|
+
${this.hasTrailingIcon2
|
|
111
|
+
? html`<slot
|
|
112
|
+
name="trailing-icon2"
|
|
113
|
+
class="icon trailing"
|
|
114
|
+
></slot>`
|
|
115
|
+
: nothing}
|
|
116
|
+
<slot name="trailing-icon" class="icon trailing"></slot>
|
|
117
|
+
</div>`
|
|
118
|
+
: nothing}
|
|
119
|
+
</div>
|
|
120
|
+
<div class="info-container">
|
|
121
|
+
<div class="info-item">
|
|
122
|
+
<slot class="info-label" name="info-label"></slot>
|
|
123
|
+
<slot class="info-status" name="info-status"></slot>
|
|
124
|
+
</div>
|
|
125
|
+
${this.readouts.map(
|
|
126
|
+
(readout) => html`
|
|
127
|
+
<div class="info-readout-item">
|
|
128
|
+
<div class="info-item-label">${readout.label}</div>
|
|
129
|
+
<div class="info-item-value">${readout.value}</div>
|
|
130
|
+
<div class="info-item-unit">${readout.unit}</div>
|
|
131
|
+
</div>
|
|
132
|
+
`
|
|
133
|
+
)}
|
|
134
|
+
</div>
|
|
135
|
+
</div>
|
|
136
|
+
</button>
|
|
137
|
+
${this.dividerRight
|
|
138
|
+
? html`<div class="divider-right"></div>`
|
|
139
|
+
: html`<div
|
|
140
|
+
class="divider-right"
|
|
141
|
+
style="visibility: hidden;"
|
|
142
|
+
></div>`}
|
|
143
|
+
</div>
|
|
144
|
+
${this.dividerBottom
|
|
145
|
+
? html`<div class="divider-bottom"></div>`
|
|
146
|
+
: nothing}
|
|
147
|
+
</div>
|
|
148
|
+
<div
|
|
38
149
|
class=${classMap({
|
|
39
|
-
|
|
40
|
-
|
|
150
|
+
'integration-vessel-menu-container': true,
|
|
151
|
+
show: this.activated,
|
|
41
152
|
})}
|
|
42
|
-
|
|
153
|
+
@click=${this.onIntegrationVesselMenuClick}
|
|
43
154
|
>
|
|
44
|
-
<
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
155
|
+
<slot name="integration-vessel-menu"></slot>
|
|
156
|
+
</div>
|
|
157
|
+
`;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
renderRegular() {
|
|
161
|
+
return html`
|
|
162
|
+
<div class="button-vertical-divider-container">
|
|
163
|
+
<button
|
|
164
|
+
class=${classMap(this.getButtonClasses())}
|
|
165
|
+
?disabled=${this.disabled}
|
|
166
|
+
>
|
|
167
|
+
<div class="content-container">
|
|
168
|
+
${this.hasLeadingIcon
|
|
169
|
+
? html`<div class="icon leading">
|
|
170
|
+
<slot name="leading-icon"></slot>
|
|
171
|
+
</div>`
|
|
172
|
+
: nothing}
|
|
173
|
+
<div class="text-container">
|
|
174
|
+
<div class="label"><slot name="label"></slot></div>
|
|
175
|
+
${this.hasStatus
|
|
176
|
+
? html`<div class="status"><slot name="status"></slot></div>`
|
|
177
|
+
: nothing}
|
|
178
|
+
</div>
|
|
179
|
+
${this.hasTrailingIcon
|
|
180
|
+
? html`<div class="icon-container">
|
|
181
|
+
${this.hasTrailingIcon2
|
|
182
|
+
? html`<slot
|
|
183
|
+
name="trailing-icon2"
|
|
184
|
+
class="icon trailing"
|
|
185
|
+
></slot>`
|
|
186
|
+
: nothing}
|
|
187
|
+
<slot name="trailing-icon" class="icon trailing"></slot>
|
|
188
|
+
</div>`
|
|
189
|
+
: nothing}
|
|
53
190
|
</div>
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
<
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
191
|
+
</button>
|
|
192
|
+
${this.dividerRight
|
|
193
|
+
? html`<div class="divider-right"></div>`
|
|
194
|
+
: html`<div class="divider-right" style="visibility: hidden;"></div>`}
|
|
195
|
+
</div>
|
|
196
|
+
<div
|
|
197
|
+
class=${classMap({
|
|
198
|
+
'integration-vessel-menu-container': true,
|
|
199
|
+
show: this.activated,
|
|
200
|
+
})}
|
|
201
|
+
@click=${this.onIntegrationVesselMenuClick}
|
|
202
|
+
>
|
|
203
|
+
<slot name="integration-vessel-menu"></slot>
|
|
204
|
+
</div>
|
|
205
|
+
`;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
renderHug() {
|
|
209
|
+
return html`
|
|
210
|
+
<div class="button-vertical-divider-container">
|
|
211
|
+
<button
|
|
212
|
+
class=${classMap(this.getButtonClasses())}
|
|
213
|
+
?disabled=${this.disabled}
|
|
214
|
+
>
|
|
215
|
+
<div class="content-container">
|
|
216
|
+
${this.hasLeadingIcon
|
|
217
|
+
? html`<div class="icon leading">
|
|
218
|
+
<slot name="leading-icon"></slot>
|
|
219
|
+
</div>`
|
|
220
|
+
: nothing}
|
|
221
|
+
<div class="text-container">
|
|
222
|
+
<div class="label"><slot name="label"></slot></div>
|
|
223
|
+
${this.hasStatus
|
|
224
|
+
? html`<div class="status"><slot name="status"></slot></div>`
|
|
225
|
+
: nothing}
|
|
226
|
+
</div>
|
|
227
|
+
${this.hasTrailingIcon
|
|
228
|
+
? html`<div class="icon-container">
|
|
229
|
+
${this.hasTrailingIcon2
|
|
230
|
+
? html`<slot
|
|
231
|
+
name="trailing-icon2"
|
|
232
|
+
class="icon trailing"
|
|
233
|
+
></slot>`
|
|
234
|
+
: nothing}
|
|
235
|
+
<slot name="trailing-icon" class="icon trailing"></slot>
|
|
236
|
+
</div>`
|
|
237
|
+
: nothing}
|
|
70
238
|
</div>
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
239
|
+
</button>
|
|
240
|
+
${this.dividerRight
|
|
241
|
+
? html`<div class="divider-right"></div>`
|
|
242
|
+
: html`<div class="divider-right" style="visibility: hidden;"></div>`}
|
|
243
|
+
</div>
|
|
244
|
+
<div
|
|
245
|
+
class=${classMap({
|
|
246
|
+
'integration-vessel-menu-container': true,
|
|
247
|
+
show: this.activated,
|
|
248
|
+
})}
|
|
249
|
+
@click=${this.onIntegrationVesselMenuClick}
|
|
250
|
+
>
|
|
251
|
+
<slot name="integration-vessel-menu"></slot>
|
|
252
|
+
</div>
|
|
83
253
|
`;
|
|
84
254
|
}
|
|
85
255
|
|
|
256
|
+
override render() {
|
|
257
|
+
switch (this.type) {
|
|
258
|
+
case IntegrationButtonType.hug: {
|
|
259
|
+
return this.renderHug();
|
|
260
|
+
}
|
|
261
|
+
case IntegrationButtonType.rich: {
|
|
262
|
+
return this.renderRich();
|
|
263
|
+
}
|
|
264
|
+
case IntegrationButtonType.regular:
|
|
265
|
+
default: {
|
|
266
|
+
return this.renderRegular();
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
|
|
86
271
|
static override styles = unsafeCSS(compentStyle);
|
|
272
|
+
|
|
273
|
+
override updated() {
|
|
274
|
+
let dividerHeight = 40;
|
|
275
|
+
if (this.type === IntegrationButtonType.hug) {
|
|
276
|
+
dividerHeight = 32;
|
|
277
|
+
}
|
|
278
|
+
if (this.type === IntegrationButtonType.rich) {
|
|
279
|
+
dividerHeight = 64;
|
|
280
|
+
}
|
|
281
|
+
this.style.setProperty(
|
|
282
|
+
'--integration-button-divider-height',
|
|
283
|
+
`${dividerHeight}px`
|
|
284
|
+
);
|
|
285
|
+
}
|
|
87
286
|
}
|
|
88
287
|
|
|
89
288
|
declare global {
|
|
@@ -98,7 +98,7 @@
|
|
|
98
98
|
border-radius: 12px;
|
|
99
99
|
background: var(--integration-container-global-color);
|
|
100
100
|
box-shadow: var(--shadow-floating);
|
|
101
|
-
padding: 4px;
|
|
101
|
+
padding: 4px 0;
|
|
102
102
|
|
|
103
103
|
overflow-y: auto;
|
|
104
104
|
}
|
|
@@ -111,6 +111,7 @@
|
|
|
111
111
|
min-height: var(
|
|
112
112
|
--menu-navigation-components-navigation-item-touch-target-size
|
|
113
113
|
);
|
|
114
|
+
margin: 0 4px;
|
|
114
115
|
padding: 0px
|
|
115
116
|
var(--menu-navigation-components-navigation-item-padding-horizontal);
|
|
116
117
|
border-radius: var(
|
|
@@ -187,6 +188,11 @@
|
|
|
187
188
|
}
|
|
188
189
|
}
|
|
189
190
|
|
|
191
|
+
slot[name="fleet"] {
|
|
192
|
+
display: flex;
|
|
193
|
+
flex: 1;
|
|
194
|
+
}
|
|
195
|
+
|
|
190
196
|
.wrapper option.fleet-option {
|
|
191
197
|
display: flex;
|
|
192
198
|
align-items: center;
|
package/src/integration-systems/integration-dropdown-button/integration-dropdown-button.stories.ts
CHANGED
|
@@ -8,7 +8,7 @@ import '../integration-button/integration-button.js';
|
|
|
8
8
|
|
|
9
9
|
const meta: Meta<ObcIntegrationDropdownButton> = {
|
|
10
10
|
title: 'Integration Systems/Integration Dropdown Button',
|
|
11
|
-
tags: ['
|
|
11
|
+
tags: ['alpha'],
|
|
12
12
|
component: 'obc-integration-dropdown-button',
|
|
13
13
|
globals: {
|
|
14
14
|
backgrounds: {
|
package/src/integration-systems/integration-fleet-button/integration-fleet-button.stories.ts
CHANGED
|
@@ -6,7 +6,7 @@ import '../../icons/icon-placeholder.js';
|
|
|
6
6
|
|
|
7
7
|
const meta: Meta<typeof ObcIntegrationFleetButton> = {
|
|
8
8
|
title: 'Integration Systems/Fleet Button',
|
|
9
|
-
tags: ['
|
|
9
|
+
tags: ['alpha'],
|
|
10
10
|
component: 'obc-integration-fleet-button',
|
|
11
11
|
args: {
|
|
12
12
|
fleetName: 'Fleet Name',
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
* {
|
|
2
|
+
box-sizing: border-box;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.wrapper {
|
|
6
|
+
@mixin style style=integration-normal noClick=true;
|
|
7
|
+
display: flex;
|
|
8
|
+
flex-direction: column;
|
|
9
|
+
height: 100%;
|
|
10
|
+
min-width: 788px;
|
|
11
|
+
align-items: center;
|
|
12
|
+
background: var(--container-global-color);
|
|
13
|
+
border-radius: var(
|
|
14
|
+
--app-components-integration-system-dropdown-menu-border-radius
|
|
15
|
+
);
|
|
16
|
+
border: 2px solid var(--integration-border-menu-outline-color);
|
|
17
|
+
box-shadow: var(--shadow-floating-x) var(--shadow-floating-y)
|
|
18
|
+
var(--shadow-floating-blur) var(--shadow-raised-spread)
|
|
19
|
+
var(--shadow-floating-color);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.footer-container {
|
|
23
|
+
width: 100%;
|
|
24
|
+
display: flex;
|
|
25
|
+
height: var(
|
|
26
|
+
--app-components-integration-system-dropdown-menu-action-container-height
|
|
27
|
+
);
|
|
28
|
+
padding: 0
|
|
29
|
+
var(--app-components-integration-system-dropdown-menu-padding-horizontal);
|
|
30
|
+
gap: var(--app-components-alert-menu-button-spacing);
|
|
31
|
+
border-top: 1px solid var(--border-divider-color);
|
|
32
|
+
background: var(--container-global-color);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.footer-container obc-button {
|
|
36
|
+
flex-grow: 1;
|
|
37
|
+
white-space: nowrap;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.content-container {
|
|
41
|
+
display: flex;
|
|
42
|
+
justify-content: center;
|
|
43
|
+
align-items: stretch;
|
|
44
|
+
align-self: stretch;
|
|
45
|
+
min-height: 0;
|
|
46
|
+
flex: 1;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.alert-list {
|
|
50
|
+
width: 100%;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.leading-icon {
|
|
54
|
+
color: var(--integration-on-normal-neutral-color);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.container-title {
|
|
58
|
+
color: var(--integration-on-normal-neutral-color);
|
|
59
|
+
}
|