vira 28.19.6 → 28.20.0
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/dist/elements/define-vira-element.d.ts +18 -0
- package/dist/elements/define-vira-element.js +19 -0
- package/dist/elements/form/vira-form-fields.d.ts +100 -0
- package/dist/elements/form/vira-form-fields.js +60 -0
- package/dist/elements/form/vira-form.element.d.ts +35 -0
- package/dist/elements/form/vira-form.element.js +151 -0
- package/dist/elements/index.js +25 -0
- package/dist/elements/pop-up/pop-up-helpers.d.ts +33 -0
- package/dist/elements/pop-up/pop-up-helpers.js +58 -0
- package/{src/elements/pop-up/pop-up-menu-item.ts → dist/elements/pop-up/pop-up-menu-item.d.ts} +3 -4
- package/dist/elements/pop-up/pop-up-menu-item.js +1 -0
- package/dist/elements/pop-up/vira-menu-item.element.d.ts +19 -0
- package/{src/elements/pop-up/vira-menu-item.element.ts → dist/elements/pop-up/vira-menu-item.element.js} +11 -28
- package/dist/elements/pop-up/vira-menu-trigger.element.d.ts +41 -0
- package/dist/elements/pop-up/vira-menu-trigger.element.js +121 -0
- package/dist/elements/pop-up/vira-menu.element.d.ts +38 -0
- package/{src/elements/pop-up/vira-menu.element.ts → dist/elements/pop-up/vira-menu.element.js} +49 -76
- package/dist/elements/pop-up/vira-pop-up-menu.element.d.ts +35 -0
- package/{src/elements/pop-up/vira-pop-up-menu.element.ts → dist/elements/pop-up/vira-pop-up-menu.element.js} +22 -34
- package/dist/elements/pop-up/vira-pop-up-trigger.element.d.ts +105 -0
- package/{src/elements/pop-up/vira-pop-up-trigger.element.ts → dist/elements/pop-up/vira-pop-up-trigger.element.js} +104 -199
- package/dist/elements/shared-text-input-logic.d.ts +63 -0
- package/dist/elements/shared-text-input-logic.js +101 -0
- package/dist/elements/vira-bold-text.element.d.ts +9 -0
- package/{src/elements/vira-bold-text.element.ts → dist/elements/vira-bold-text.element.js} +7 -8
- package/dist/elements/vira-button.element.d.ts +31 -0
- package/{src/elements/vira-button.element.ts → dist/elements/vira-button.element.js} +35 -66
- package/dist/elements/vira-card.element.d.ts +18 -0
- package/{src/elements/vira-card.element.ts → dist/elements/vira-card.element.js} +13 -16
- package/dist/elements/vira-checkbox.element.d.ts +34 -0
- package/{src/elements/vira-checkbox.element.ts → dist/elements/vira-checkbox.element.js} +28 -71
- package/dist/elements/vira-collapsible-wrapper.element.d.ts +16 -0
- package/{src/elements/vira-collapsible-wrapper.element.ts → dist/elements/vira-collapsible-wrapper.element.js} +26 -18
- package/dist/elements/vira-dropdown.element.d.ts +46 -0
- package/{src/elements/vira-dropdown.element.ts → dist/elements/vira-dropdown.element.js} +48 -94
- package/dist/elements/vira-error.element.d.ts +7 -0
- package/{src/elements/vira-error.element.ts → dist/elements/vira-error.element.js} +5 -6
- package/dist/elements/vira-icon.element.d.ts +13 -0
- package/{src/elements/vira-icon.element.ts → dist/elements/vira-icon.element.js} +6 -13
- package/dist/elements/vira-image.element.d.ts +45 -0
- package/{src/elements/vira-image.element.ts → dist/elements/vira-image.element.js} +43 -63
- package/dist/elements/vira-input.element.d.ts +62 -0
- package/{src/elements/vira-input.element.ts → dist/elements/vira-input.element.js} +85 -151
- package/dist/elements/vira-link.element.d.ts +73 -0
- package/{src/elements/vira-link.element.ts → dist/elements/vira-link.element.js} +11 -62
- package/dist/elements/vira-modal.element.d.ts +39 -0
- package/{src/elements/vira-modal.element.ts → dist/elements/vira-modal.element.js} +50 -89
- package/dist/elements/vira-overflow-switch.element.d.ts +21 -0
- package/dist/elements/vira-overflow-switch.element.js +110 -0
- package/dist/elements/vira-progress.element.d.ts +18 -0
- package/{src/elements/vira-progress.element.ts → dist/elements/vira-progress.element.js} +11 -26
- package/dist/elements/vira-select.element.d.ts +48 -0
- package/{src/elements/vira-select.element.ts → dist/elements/vira-select.element.js} +41 -96
- package/dist/icons/icon-color.test-helper.d.ts +6 -0
- package/dist/icons/icon-color.test-helper.js +9 -0
- package/dist/icons/icon-css-vars.d.ts +14 -0
- package/{src/icons/icon-css-vars.ts → dist/icons/icon-css-vars.js} +1 -2
- package/dist/icons/icon-svg.d.ts +27 -0
- package/dist/icons/icon-svg.js +48 -0
- package/dist/icons/icon-svgs/bell-24.icon.d.ts +8 -0
- package/{src/icons/icon-svgs/bell-24.icon.ts → dist/icons/icon-svgs/bell-24.icon.js} +4 -5
- package/dist/icons/icon-svgs/chat-24.icon.d.ts +8 -0
- package/{src/icons/icon-svgs/chat-24.icon.ts → dist/icons/icon-svgs/chat-24.icon.js} +4 -5
- package/dist/icons/icon-svgs/check-24.icon.d.ts +8 -0
- package/{src/icons/icon-svgs/check-24.icon.ts → dist/icons/icon-svgs/check-24.icon.js} +4 -5
- package/dist/icons/icon-svgs/chevron-down-24.icon.d.ts +8 -0
- package/{src/icons/icon-svgs/chevron-down-24.icon.ts → dist/icons/icon-svgs/chevron-down-24.icon.js} +4 -5
- package/dist/icons/icon-svgs/chevron-up-24.icon.d.ts +8 -0
- package/{src/icons/icon-svgs/chevron-up-24.icon.ts → dist/icons/icon-svgs/chevron-up-24.icon.js} +4 -5
- package/dist/icons/icon-svgs/close-x-24.icon.d.ts +8 -0
- package/{src/icons/icon-svgs/close-x-24.icon.ts → dist/icons/icon-svgs/close-x-24.icon.js} +4 -5
- package/dist/icons/icon-svgs/commit-24.icon.d.ts +8 -0
- package/{src/icons/icon-svgs/commit-24.icon.ts → dist/icons/icon-svgs/commit-24.icon.js} +4 -5
- package/dist/icons/icon-svgs/copy-24.icon.d.ts +8 -0
- package/{src/icons/icon-svgs/copy-24.icon.ts → dist/icons/icon-svgs/copy-24.icon.js} +4 -5
- package/dist/icons/icon-svgs/document-24.icon.d.ts +8 -0
- package/{src/icons/icon-svgs/document-24.icon.ts → dist/icons/icon-svgs/document-24.icon.js} +4 -5
- package/dist/icons/icon-svgs/document-search-24.icon.d.ts +8 -0
- package/{src/icons/icon-svgs/document-search-24.icon.ts → dist/icons/icon-svgs/document-search-24.icon.js} +4 -5
- package/dist/icons/icon-svgs/double-chevron-24.icon.d.ts +8 -0
- package/{src/icons/icon-svgs/double-chevron-24.icon.ts → dist/icons/icon-svgs/double-chevron-24.icon.js} +4 -5
- package/dist/icons/icon-svgs/element-16.icon.d.ts +8 -0
- package/{src/icons/icon-svgs/element-16.icon.ts → dist/icons/icon-svgs/element-16.icon.js} +4 -5
- package/dist/icons/icon-svgs/element-24.icon.d.ts +8 -0
- package/{src/icons/icon-svgs/element-24.icon.ts → dist/icons/icon-svgs/element-24.icon.js} +4 -5
- package/dist/icons/icon-svgs/external-link-24.icon.d.ts +8 -0
- package/{src/icons/icon-svgs/external-link-24.icon.ts → dist/icons/icon-svgs/external-link-24.icon.js} +4 -5
- package/dist/icons/icon-svgs/eye-closed-24.icon.d.ts +8 -0
- package/{src/icons/icon-svgs/eye-closed-24.icon.ts → dist/icons/icon-svgs/eye-closed-24.icon.js} +4 -5
- package/dist/icons/icon-svgs/eye-open-24.icon.d.ts +8 -0
- package/{src/icons/icon-svgs/eye-open-24.icon.ts → dist/icons/icon-svgs/eye-open-24.icon.js} +4 -5
- package/dist/icons/icon-svgs/filter-24.icon.d.ts +8 -0
- package/{src/icons/icon-svgs/filter-24.icon.ts → dist/icons/icon-svgs/filter-24.icon.js} +4 -5
- package/dist/icons/icon-svgs/link-24.icon.d.ts +8 -0
- package/{src/icons/icon-svgs/link-24.icon.ts → dist/icons/icon-svgs/link-24.icon.js} +4 -5
- package/dist/icons/icon-svgs/loader-24.icon.d.ts +8 -0
- package/{src/icons/icon-svgs/loader-24.icon.ts → dist/icons/icon-svgs/loader-24.icon.js} +4 -5
- package/dist/icons/icon-svgs/loader-animated-24.icon.d.ts +8 -0
- package/{src/icons/icon-svgs/loader-animated-24.icon.ts → dist/icons/icon-svgs/loader-animated-24.icon.js} +6 -8
- package/dist/icons/icon-svgs/lock-24.icon.d.ts +8 -0
- package/{src/icons/icon-svgs/lock-24.icon.ts → dist/icons/icon-svgs/lock-24.icon.js} +4 -5
- package/dist/icons/icon-svgs/options-24.icon.d.ts +8 -0
- package/{src/icons/icon-svgs/options-24.icon.ts → dist/icons/icon-svgs/options-24.icon.js} +4 -5
- package/dist/icons/icon-svgs/pencil-24.icon.d.ts +8 -0
- package/{src/icons/icon-svgs/pencil-24.icon.ts → dist/icons/icon-svgs/pencil-24.icon.js} +4 -5
- package/dist/icons/icon-svgs/shield-24.icon.d.ts +8 -0
- package/{src/icons/icon-svgs/shield-24.icon.ts → dist/icons/icon-svgs/shield-24.icon.js} +4 -5
- package/dist/icons/icon-svgs/sort-ascending-24.icon.d.ts +8 -0
- package/{src/icons/icon-svgs/sort-ascending-24.icon.ts → dist/icons/icon-svgs/sort-ascending-24.icon.js} +4 -5
- package/dist/icons/icon-svgs/sort-descending-24.icon.d.ts +8 -0
- package/{src/icons/icon-svgs/sort-descending-24.icon.ts → dist/icons/icon-svgs/sort-descending-24.icon.js} +4 -5
- package/dist/icons/icon-svgs/speaker-loud-24.icon.d.ts +8 -0
- package/{src/icons/icon-svgs/speaker-loud-24.icon.ts → dist/icons/icon-svgs/speaker-loud-24.icon.js} +4 -5
- package/dist/icons/icon-svgs/speaker-medium-24.icon.d.ts +8 -0
- package/{src/icons/icon-svgs/speaker-medium-24.icon.ts → dist/icons/icon-svgs/speaker-medium-24.icon.js} +4 -5
- package/dist/icons/icon-svgs/speaker-muted-24.icon.d.ts +8 -0
- package/{src/icons/icon-svgs/speaker-muted-24.icon.ts → dist/icons/icon-svgs/speaker-muted-24.icon.js} +4 -5
- package/dist/icons/icon-svgs/speaker-quiet-24.icon.d.ts +8 -0
- package/{src/icons/icon-svgs/speaker-quiet-24.icon.ts → dist/icons/icon-svgs/speaker-quiet-24.icon.js} +4 -5
- package/dist/icons/icon-svgs/star-24.icon.d.ts +8 -0
- package/{src/icons/icon-svgs/star-24.icon.ts → dist/icons/icon-svgs/star-24.icon.js} +4 -5
- package/dist/icons/icon-svgs/status-failure-24.icon.d.ts +8 -0
- package/{src/icons/icon-svgs/status-failure-24.icon.ts → dist/icons/icon-svgs/status-failure-24.icon.js} +4 -5
- package/dist/icons/icon-svgs/status-in-progress-24.icon.d.ts +8 -0
- package/{src/icons/icon-svgs/status-in-progress-24.icon.ts → dist/icons/icon-svgs/status-in-progress-24.icon.js} +4 -5
- package/dist/icons/icon-svgs/status-success-24.icon.d.ts +8 -0
- package/{src/icons/icon-svgs/status-success-24.icon.ts → dist/icons/icon-svgs/status-success-24.icon.js} +4 -5
- package/dist/icons/icon-svgs/status-unknown-24.icon.d.ts +8 -0
- package/{src/icons/icon-svgs/status-unknown-24.icon.ts → dist/icons/icon-svgs/status-unknown-24.icon.js} +4 -5
- package/dist/icons/icon-svgs/status-warning-24.icon.d.ts +8 -0
- package/{src/icons/icon-svgs/status-warning-24.icon.ts → dist/icons/icon-svgs/status-warning-24.icon.js} +4 -5
- package/dist/icons/icon-svgs/upload-24.icon.d.ts +8 -0
- package/{src/icons/icon-svgs/upload-24.icon.ts → dist/icons/icon-svgs/upload-24.icon.js} +4 -5
- package/dist/icons/icon-svgs/x-24.icon.d.ts +8 -0
- package/{src/icons/icon-svgs/x-24.icon.ts → dist/icons/icon-svgs/x-24.icon.js} +4 -5
- package/dist/icons/index.d.ts +86 -0
- package/{src/icons/index.ts → dist/icons/index.js} +39 -43
- package/dist/index.js +4 -0
- package/dist/styles/border.d.ts +9 -0
- package/{src/styles/border.ts → dist/styles/border.js} +1 -2
- package/dist/styles/disabled.d.ts +6 -0
- package/{src/styles/disabled.ts → dist/styles/disabled.js} +2 -3
- package/dist/styles/durations.d.ts +22 -0
- package/{src/styles/durations.ts → dist/styles/durations.js} +1 -2
- package/dist/styles/focus.d.ts +34 -0
- package/{src/styles/focus.ts → dist/styles/focus.js} +8 -29
- package/dist/styles/font.d.ts +9 -0
- package/{src/styles/font.ts → dist/styles/font.js} +1 -2
- package/dist/styles/form-styles.d.ts +20 -0
- package/{src/styles/form-styles.ts → dist/styles/form-styles.js} +1 -6
- package/{src/styles/index.ts → dist/styles/index.d.ts} +0 -1
- package/dist/styles/index.js +13 -0
- package/dist/styles/native-styles.d.ts +13 -0
- package/{src/styles/native-styles.ts → dist/styles/native-styles.js} +3 -5
- package/dist/styles/scrollbar.d.ts +6 -0
- package/{src/styles/scrollbar.ts → dist/styles/scrollbar.js} +3 -4
- package/dist/styles/shadows.d.ts +20 -0
- package/{src/styles/shadows.ts → dist/styles/shadows.js} +6 -8
- package/dist/styles/user-select.d.ts +6 -0
- package/{src/styles/user-select.ts → dist/styles/user-select.js} +2 -3
- package/dist/styles/vira-color-palette.d.ts +95 -0
- package/{src/styles/vira-color-palette.ts → dist/styles/vira-color-palette.js} +1 -11
- package/dist/styles/vira-color-theme.d.ts +1184 -0
- package/dist/styles/vira-color-theme.js +1138 -0
- package/dist/util/define-table.d.ts +110 -0
- package/dist/util/define-table.js +115 -0
- package/dist/util/dynamic-element.d.ts +63 -0
- package/dist/util/dynamic-element.js +61 -0
- package/dist/util/index.js +3 -0
- package/dist/util/pop-up-manager.d.ts +186 -0
- package/dist/util/pop-up-manager.js +214 -0
- package/package.json +6 -6
- package/src/elements/define-vira-element.ts +0 -29
- package/src/elements/form/vira-form-fields.ts +0 -140
- package/src/elements/form/vira-form.element.ts +0 -204
- package/src/elements/pop-up/pop-up-helpers.ts +0 -85
- package/src/elements/pop-up/vira-menu-trigger.element.ts +0 -158
- package/src/elements/shared-text-input-logic.ts +0 -173
- package/src/elements/vira-overflow-switch.element.ts +0 -137
- package/src/icons/icon-color.test-helper.ts +0 -9
- package/src/icons/icon-svg.ts +0 -71
- package/src/styles/vira-color-theme.ts +0 -1142
- package/src/util/define-table.ts +0 -279
- package/src/util/dynamic-element.ts +0 -129
- package/src/util/pop-up-manager.ts +0 -380
- /package/{src/elements/index.ts → dist/elements/index.d.ts} +0 -0
- /package/{src/index.ts → dist/index.d.ts} +0 -0
- /package/{src/util/index.ts → dist/util/index.d.ts} +0 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { type PartialWithUndefined } from '@augment-vir/common';
|
|
2
|
+
import { type ViraIconSvg } from '../icons/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* Button styles available for {@link ViraButton}.
|
|
5
|
+
*
|
|
6
|
+
* @category Button
|
|
7
|
+
*/
|
|
8
|
+
export declare enum ViraButtonStyle {
|
|
9
|
+
Default = "vira-button-default",
|
|
10
|
+
Outline = "vira-button-outline"
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* A custom button with default styling.
|
|
14
|
+
*
|
|
15
|
+
* @category Button
|
|
16
|
+
* @category Elements
|
|
17
|
+
* @see https://electrovir.github.io/vira/book/elements/vira-button
|
|
18
|
+
*/
|
|
19
|
+
export declare const ViraButton: import("element-vir").DeclarativeElementDefinition<"vira-button", PartialWithUndefined<{
|
|
20
|
+
text: string;
|
|
21
|
+
icon: Pick<ViraIconSvg, "svgTemplate">;
|
|
22
|
+
disabled: boolean;
|
|
23
|
+
buttonStyle: ViraButtonStyle;
|
|
24
|
+
/**
|
|
25
|
+
* When set to `true`, the given icon (if any) will take up its full dimensions, potentially
|
|
26
|
+
* increasing the button's size.
|
|
27
|
+
*
|
|
28
|
+
* @default false
|
|
29
|
+
*/
|
|
30
|
+
expandToFitIcon: boolean;
|
|
31
|
+
}>, {}, {}, "vira-button-outline-style" | "vira-button-disabled" | "vira-button-expand-to-fit-icon", "vira-button-primary-color" | "vira-button-primary-hover-color" | "vira-button-primary-active-color" | "vira-button-secondary-color" | "vira-button-padding" | "vira-button-internal-foreground-color" | "vira-button-internal-background-color", readonly [], readonly []>;
|
|
@@ -1,25 +1,22 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {defineViraElement} from './define-vira-element.js';
|
|
11
|
-
import {ViraIcon} from './vira-icon.element.js';
|
|
12
|
-
|
|
1
|
+
import { css, html, nothing } from 'element-vir';
|
|
2
|
+
import { viraBorders } from '../styles/border.js';
|
|
3
|
+
import { viraDisabledStyles } from '../styles/disabled.js';
|
|
4
|
+
import { viraAnimationDurations } from '../styles/durations.js';
|
|
5
|
+
import { createFocusStyles, viraFocusCssVars } from '../styles/focus.js';
|
|
6
|
+
import { noUserSelect } from '../styles/index.js';
|
|
7
|
+
import { noNativeFormStyles } from '../styles/native-styles.js';
|
|
8
|
+
import { defineViraElement } from './define-vira-element.js';
|
|
9
|
+
import { ViraIcon } from './vira-icon.element.js';
|
|
13
10
|
/**
|
|
14
11
|
* Button styles available for {@link ViraButton}.
|
|
15
12
|
*
|
|
16
13
|
* @category Button
|
|
17
14
|
*/
|
|
18
|
-
export
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
15
|
+
export var ViraButtonStyle;
|
|
16
|
+
(function (ViraButtonStyle) {
|
|
17
|
+
ViraButtonStyle["Default"] = "vira-button-default";
|
|
18
|
+
ViraButtonStyle["Outline"] = "vira-button-outline";
|
|
19
|
+
})(ViraButtonStyle || (ViraButtonStyle = {}));
|
|
23
20
|
/**
|
|
24
21
|
* A custom button with default styling.
|
|
25
22
|
*
|
|
@@ -27,42 +24,25 @@ export enum ViraButtonStyle {
|
|
|
27
24
|
* @category Elements
|
|
28
25
|
* @see https://electrovir.github.io/vira/book/elements/vira-button
|
|
29
26
|
*/
|
|
30
|
-
export const ViraButton = defineViraElement
|
|
31
|
-
PartialWithUndefined<{
|
|
32
|
-
text: string;
|
|
33
|
-
icon: Pick<ViraIconSvg, 'svgTemplate'>;
|
|
34
|
-
disabled: boolean;
|
|
35
|
-
buttonStyle: ViraButtonStyle;
|
|
36
|
-
/**
|
|
37
|
-
* When set to `true`, the given icon (if any) will take up its full dimensions, potentially
|
|
38
|
-
* increasing the button's size.
|
|
39
|
-
*
|
|
40
|
-
* @default false
|
|
41
|
-
*/
|
|
42
|
-
expandToFitIcon: boolean;
|
|
43
|
-
}>
|
|
44
|
-
>()({
|
|
27
|
+
export const ViraButton = defineViraElement()({
|
|
45
28
|
tagName: 'vira-button',
|
|
46
29
|
hostClasses: {
|
|
47
|
-
'vira-button-outline-style': ({inputs}) => inputs.buttonStyle === ViraButtonStyle.Outline,
|
|
48
|
-
'vira-button-disabled': ({inputs}) => !!inputs.disabled,
|
|
49
|
-
'vira-button-expand-to-fit-icon': ({inputs}) => !!inputs.expandToFitIcon,
|
|
30
|
+
'vira-button-outline-style': ({ inputs }) => inputs.buttonStyle === ViraButtonStyle.Outline,
|
|
31
|
+
'vira-button-disabled': ({ inputs }) => !!inputs.disabled,
|
|
32
|
+
'vira-button-expand-to-fit-icon': ({ inputs }) => !!inputs.expandToFitIcon,
|
|
50
33
|
},
|
|
51
34
|
cssVars: {
|
|
52
35
|
/** On the default button style this is the background color. */
|
|
53
36
|
'vira-button-primary-color': '#0a89ff',
|
|
54
37
|
'vira-button-primary-hover-color': '#59b1ff',
|
|
55
38
|
'vira-button-primary-active-color': '#007ff6',
|
|
56
|
-
|
|
57
39
|
/** On the default button style this is the text color. */
|
|
58
40
|
'vira-button-secondary-color': '#ffffff',
|
|
59
|
-
|
|
60
41
|
'vira-button-padding': '5px 10px',
|
|
61
|
-
|
|
62
|
-
'vira-button-internal-
|
|
63
|
-
'vira-button-internal-background-color': '',
|
|
42
|
+
'vira-button-internal-foreground-color': 'transparent',
|
|
43
|
+
'vira-button-internal-background-color': 'transparent',
|
|
64
44
|
},
|
|
65
|
-
styles: ({hostClasses, cssVars}) => css`
|
|
45
|
+
styles: ({ hostClasses, cssVars }) => css `
|
|
66
46
|
:host {
|
|
67
47
|
font-weight: bold;
|
|
68
48
|
display: inline-flex;
|
|
@@ -71,29 +51,19 @@ export const ViraButton = defineViraElement<
|
|
|
71
51
|
align-items: center;
|
|
72
52
|
box-sizing: border-box;
|
|
73
53
|
${noUserSelect};
|
|
74
|
-
${cssVars['vira-button-internal-background-color'].name}: ${cssVars[
|
|
75
|
-
|
|
76
|
-
].value}
|
|
77
|
-
${cssVars['vira-button-internal-foreground-color'].name}: ${cssVars[
|
|
78
|
-
'vira-button-secondary-color'
|
|
79
|
-
].value};
|
|
80
|
-
${viraFocusCssVars['vira-focus-outline-color'].name}: ${cssVars[
|
|
81
|
-
'vira-button-primary-hover-color'
|
|
82
|
-
].value}
|
|
54
|
+
${cssVars['vira-button-internal-background-color'].name}: ${cssVars['vira-button-primary-color'].value};
|
|
55
|
+
${cssVars['vira-button-internal-foreground-color'].name}: ${cssVars['vira-button-secondary-color'].value};
|
|
56
|
+
${viraFocusCssVars['vira-focus-outline-color'].name}: ${cssVars['vira-button-primary-hover-color'].value}
|
|
83
57
|
}
|
|
84
58
|
|
|
85
59
|
:host(:hover) button,
|
|
86
60
|
button:hover {
|
|
87
|
-
${cssVars['vira-button-internal-background-color'].name}: ${cssVars[
|
|
88
|
-
'vira-button-primary-hover-color'
|
|
89
|
-
].value};
|
|
61
|
+
${cssVars['vira-button-internal-background-color'].name}: ${cssVars['vira-button-primary-hover-color'].value};
|
|
90
62
|
}
|
|
91
63
|
|
|
92
64
|
:host(:active) button,
|
|
93
65
|
button:active {
|
|
94
|
-
${cssVars['vira-button-internal-background-color'].name}: ${cssVars[
|
|
95
|
-
'vira-button-primary-active-color'
|
|
96
|
-
].value};
|
|
66
|
+
${cssVars['vira-button-internal-background-color'].name}: ${cssVars['vira-button-primary-active-color'].value};
|
|
97
67
|
}
|
|
98
68
|
|
|
99
69
|
${hostClasses['vira-button-disabled'].selector} {
|
|
@@ -128,8 +98,8 @@ export const ViraButton = defineViraElement<
|
|
|
128
98
|
border-color ${viraAnimationDurations['vira-interaction-animation-duration'].value};
|
|
129
99
|
|
|
130
100
|
${createFocusStyles({
|
|
131
|
-
|
|
132
|
-
|
|
101
|
+
elementBorderSize: 2,
|
|
102
|
+
})}
|
|
133
103
|
}
|
|
134
104
|
|
|
135
105
|
.empty-text {
|
|
@@ -148,23 +118,22 @@ export const ViraButton = defineViraElement<
|
|
|
148
118
|
}
|
|
149
119
|
}
|
|
150
120
|
`,
|
|
151
|
-
render: ({inputs}) => {
|
|
121
|
+
render: ({ inputs }) => {
|
|
152
122
|
const iconTemplate = inputs.icon
|
|
153
|
-
? html`
|
|
123
|
+
? html `
|
|
154
124
|
<${ViraIcon.assign({
|
|
155
|
-
|
|
156
|
-
|
|
125
|
+
icon: inputs.icon,
|
|
126
|
+
})}></${ViraIcon}>
|
|
157
127
|
`
|
|
158
128
|
: nothing;
|
|
159
129
|
const textTemplate = inputs.text
|
|
160
|
-
? html`
|
|
130
|
+
? html `
|
|
161
131
|
<span class="text-template">${inputs.text}</span>
|
|
162
132
|
`
|
|
163
|
-
: html`
|
|
133
|
+
: html `
|
|
164
134
|
<span class="empty-text"> </span>
|
|
165
135
|
`;
|
|
166
|
-
|
|
167
|
-
return html`
|
|
136
|
+
return html `
|
|
168
137
|
<button ?disabled=${inputs.disabled}>${iconTemplate} ${textTemplate}</button>
|
|
169
138
|
`;
|
|
170
139
|
},
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* State options for {@link ViraCard}.
|
|
3
|
+
*
|
|
4
|
+
* @category Internal
|
|
5
|
+
*/
|
|
6
|
+
export declare enum ViraCardState {
|
|
7
|
+
Error = "error",
|
|
8
|
+
Success = "success"
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* A simple wrapper "card" element that is just a `<slot>` with some styles.
|
|
12
|
+
*
|
|
13
|
+
* @category Elements
|
|
14
|
+
* @see https://electrovir.github.io/vira/book/elements/vira-card
|
|
15
|
+
*/
|
|
16
|
+
export declare const ViraCard: import("element-vir").DeclarativeElementDefinition<"vira-card", {
|
|
17
|
+
cardState?: ViraCardState | undefined;
|
|
18
|
+
}, {}, {}, "vira-card-error" | "vira-card-success", "vira-card-border" | "vira-card-border-radius" | "vira-card-padding", readonly [], readonly []>;
|
|
@@ -1,37 +1,34 @@
|
|
|
1
|
-
import {css, html} from 'element-vir';
|
|
2
|
-
import {viraFormCssVars} from '../styles/form-styles.js';
|
|
3
|
-
import {defineViraElement} from './define-vira-element.js';
|
|
4
|
-
|
|
1
|
+
import { css, html } from 'element-vir';
|
|
2
|
+
import { viraFormCssVars } from '../styles/form-styles.js';
|
|
3
|
+
import { defineViraElement } from './define-vira-element.js';
|
|
5
4
|
/**
|
|
6
5
|
* State options for {@link ViraCard}.
|
|
7
6
|
*
|
|
8
7
|
* @category Internal
|
|
9
8
|
*/
|
|
10
|
-
export
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
9
|
+
export var ViraCardState;
|
|
10
|
+
(function (ViraCardState) {
|
|
11
|
+
ViraCardState["Error"] = "error";
|
|
12
|
+
ViraCardState["Success"] = "success";
|
|
13
|
+
})(ViraCardState || (ViraCardState = {}));
|
|
15
14
|
/**
|
|
16
15
|
* A simple wrapper "card" element that is just a `<slot>` with some styles.
|
|
17
16
|
*
|
|
18
17
|
* @category Elements
|
|
19
18
|
* @see https://electrovir.github.io/vira/book/elements/vira-card
|
|
20
19
|
*/
|
|
21
|
-
export const ViraCard = defineViraElement
|
|
22
|
-
cardState?: ViraCardState | undefined;
|
|
23
|
-
}>()({
|
|
20
|
+
export const ViraCard = defineViraElement()({
|
|
24
21
|
tagName: 'vira-card',
|
|
25
22
|
hostClasses: {
|
|
26
|
-
'vira-card-error': ({inputs}) => inputs.cardState === ViraCardState.Error,
|
|
27
|
-
'vira-card-success': ({inputs}) => inputs.cardState === ViraCardState.Success,
|
|
23
|
+
'vira-card-error': ({ inputs }) => inputs.cardState === ViraCardState.Error,
|
|
24
|
+
'vira-card-success': ({ inputs }) => inputs.cardState === ViraCardState.Success,
|
|
28
25
|
},
|
|
29
26
|
cssVars: {
|
|
30
27
|
'vira-card-border': '1px solid #d3d3d3',
|
|
31
28
|
'vira-card-border-radius': '16px',
|
|
32
29
|
'vira-card-padding': '16px',
|
|
33
30
|
},
|
|
34
|
-
styles: ({hostClasses, cssVars}) => css`
|
|
31
|
+
styles: ({ hostClasses, cssVars }) => css `
|
|
35
32
|
:host {
|
|
36
33
|
display: block;
|
|
37
34
|
border: ${cssVars['vira-card-border'].value};
|
|
@@ -47,7 +44,7 @@ export const ViraCard = defineViraElement<{
|
|
|
47
44
|
}
|
|
48
45
|
`,
|
|
49
46
|
render() {
|
|
50
|
-
return html`
|
|
47
|
+
return html `
|
|
51
48
|
<slot></slot>
|
|
52
49
|
`;
|
|
53
50
|
},
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type PartialWithUndefined } from '@augment-vir/common';
|
|
2
|
+
import { type AttributeValues, type CSSResult } from 'element-vir';
|
|
3
|
+
import { ViraIcon } from './vira-icon.element.js';
|
|
4
|
+
/**
|
|
5
|
+
* All inner elements supported by {@link ViraCheckbox}.
|
|
6
|
+
*
|
|
7
|
+
* @category Internals
|
|
8
|
+
*/
|
|
9
|
+
export type ViraCheckboxInnerElements = 'label' | 'custom-checkbox' | 'text' | typeof ViraIcon.tagName;
|
|
10
|
+
/**
|
|
11
|
+
* Inputs for {@link ViraCheckbox}.
|
|
12
|
+
*
|
|
13
|
+
* @category Internal
|
|
14
|
+
*/
|
|
15
|
+
export type ViraCheckboxInputs = PartialWithUndefined<{
|
|
16
|
+
stylePassthrough: Partial<Record<ViraCheckboxInnerElements, CSSResult>>;
|
|
17
|
+
attributePassthrough: Partial<Record<ViraCheckboxInnerElements, AttributeValues>>;
|
|
18
|
+
disabled: boolean;
|
|
19
|
+
label: string;
|
|
20
|
+
hasError: boolean;
|
|
21
|
+
horizontal: boolean;
|
|
22
|
+
}> & {
|
|
23
|
+
value: boolean;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* A custom checkbox.
|
|
27
|
+
*
|
|
28
|
+
* @category Input
|
|
29
|
+
* @category Elements
|
|
30
|
+
* @see https://electrovir.github.io/vira/book/elements/vira-checkbox
|
|
31
|
+
*/
|
|
32
|
+
export declare const ViraCheckbox: import("element-vir").DeclarativeElementDefinition<"vira-checkbox", Readonly<ViraCheckboxInputs>, {}, {
|
|
33
|
+
valueChange: import("element-vir").DefineEvent<boolean>;
|
|
34
|
+
}, "vira-checkbox-horizontal", "vira-checkbox-", readonly [], readonly []>;
|
|
@@ -1,52 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
listen,
|
|
10
|
-
listenToActivate,
|
|
11
|
-
nothing,
|
|
12
|
-
type AttributeValues,
|
|
13
|
-
type CSSResult,
|
|
14
|
-
} from 'element-vir';
|
|
15
|
-
import {Check24Icon, viraIconCssVars} from '../icons/index.js';
|
|
16
|
-
import {viraBorders} from '../styles/border.js';
|
|
17
|
-
import {viraDisabledStyles} from '../styles/disabled.js';
|
|
18
|
-
import {createFocusStyles} from '../styles/focus.js';
|
|
19
|
-
import {viraFormCssVars} from '../styles/form-styles.js';
|
|
20
|
-
import {defineViraElement} from './define-vira-element.js';
|
|
21
|
-
import {ViraIcon} from './vira-icon.element.js';
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* All inner elements supported by {@link ViraCheckbox}.
|
|
25
|
-
*
|
|
26
|
-
* @category Internals
|
|
27
|
-
*/
|
|
28
|
-
export type ViraCheckboxInnerElements =
|
|
29
|
-
| 'label'
|
|
30
|
-
| 'custom-checkbox'
|
|
31
|
-
| 'text'
|
|
32
|
-
| typeof ViraIcon.tagName;
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Inputs for {@link ViraCheckbox}.
|
|
36
|
-
*
|
|
37
|
-
* @category Internal
|
|
38
|
-
*/
|
|
39
|
-
export type ViraCheckboxInputs = PartialWithUndefined<{
|
|
40
|
-
stylePassthrough: Partial<Record<ViraCheckboxInnerElements, CSSResult>>;
|
|
41
|
-
attributePassthrough: Partial<Record<ViraCheckboxInnerElements, AttributeValues>>;
|
|
42
|
-
disabled: boolean;
|
|
43
|
-
label: string;
|
|
44
|
-
hasError: boolean;
|
|
45
|
-
horizontal: boolean;
|
|
46
|
-
}> & {
|
|
47
|
-
value: boolean;
|
|
48
|
-
};
|
|
49
|
-
|
|
1
|
+
import { attributes, classMap, css, defineElementEvent, html, ifDefined, listen, listenToActivate, nothing, } from 'element-vir';
|
|
2
|
+
import { Check24Icon, viraIconCssVars } from '../icons/index.js';
|
|
3
|
+
import { viraBorders } from '../styles/border.js';
|
|
4
|
+
import { viraDisabledStyles } from '../styles/disabled.js';
|
|
5
|
+
import { createFocusStyles } from '../styles/focus.js';
|
|
6
|
+
import { viraFormCssVars } from '../styles/form-styles.js';
|
|
7
|
+
import { defineViraElement } from './define-vira-element.js';
|
|
8
|
+
import { ViraIcon } from './vira-icon.element.js';
|
|
50
9
|
/**
|
|
51
10
|
* A custom checkbox.
|
|
52
11
|
*
|
|
@@ -54,12 +13,12 @@ export type ViraCheckboxInputs = PartialWithUndefined<{
|
|
|
54
13
|
* @category Elements
|
|
55
14
|
* @see https://electrovir.github.io/vira/book/elements/vira-checkbox
|
|
56
15
|
*/
|
|
57
|
-
export const ViraCheckbox = defineViraElement
|
|
16
|
+
export const ViraCheckbox = defineViraElement()({
|
|
58
17
|
tagName: 'vira-checkbox',
|
|
59
18
|
hostClasses: {
|
|
60
|
-
'vira-checkbox-horizontal': ({inputs}) => !!inputs.horizontal,
|
|
19
|
+
'vira-checkbox-horizontal': ({ inputs }) => !!inputs.horizontal,
|
|
61
20
|
},
|
|
62
|
-
styles: ({hostClasses}) => css`
|
|
21
|
+
styles: ({ hostClasses }) => css `
|
|
63
22
|
:host {
|
|
64
23
|
display: inline-flex;
|
|
65
24
|
}
|
|
@@ -93,7 +52,7 @@ export const ViraCheckbox = defineViraElement<Readonly<ViraCheckboxInputs>>()({
|
|
|
93
52
|
|
|
94
53
|
&:hover .custom-checkbox {
|
|
95
54
|
background-color: ${viraFormCssVars['vira-form-selection-hover-background-color']
|
|
96
|
-
|
|
55
|
+
.value};
|
|
97
56
|
}
|
|
98
57
|
}
|
|
99
58
|
|
|
@@ -112,7 +71,7 @@ export const ViraCheckbox = defineViraElement<Readonly<ViraCheckboxInputs>>()({
|
|
|
112
71
|
position: relative;
|
|
113
72
|
cursor: pointer;
|
|
114
73
|
|
|
115
|
-
${createFocusStyles({elementBorderSize: 1})}
|
|
74
|
+
${createFocusStyles({ elementBorderSize: 1 })}
|
|
116
75
|
|
|
117
76
|
&.checked {
|
|
118
77
|
& ${ViraIcon} {
|
|
@@ -126,7 +85,7 @@ export const ViraCheckbox = defineViraElement<Readonly<ViraCheckboxInputs>>()({
|
|
|
126
85
|
|
|
127
86
|
&:active {
|
|
128
87
|
background-color: ${viraFormCssVars['vira-form-selection-active-background-color']
|
|
129
|
-
|
|
88
|
+
.value};
|
|
130
89
|
}
|
|
131
90
|
|
|
132
91
|
&.disabled {
|
|
@@ -141,17 +100,16 @@ export const ViraCheckbox = defineViraElement<Readonly<ViraCheckboxInputs>>()({
|
|
|
141
100
|
}
|
|
142
101
|
`,
|
|
143
102
|
events: {
|
|
144
|
-
valueChange: defineElementEvent
|
|
103
|
+
valueChange: defineElementEvent(),
|
|
145
104
|
},
|
|
146
|
-
render({inputs, dispatch, events}) {
|
|
147
|
-
function updateValue(
|
|
105
|
+
render({ inputs, dispatch, events }) {
|
|
106
|
+
function updateValue() {
|
|
148
107
|
if (!inputs.disabled) {
|
|
149
108
|
dispatch(new events.valueChange(!inputs.value));
|
|
150
109
|
}
|
|
151
110
|
}
|
|
152
|
-
|
|
153
111
|
const textLabel = inputs.label
|
|
154
|
-
? html`
|
|
112
|
+
? html `
|
|
155
113
|
<span
|
|
156
114
|
class="label-text"
|
|
157
115
|
${attributes(inputs.attributePassthrough?.['text'])}
|
|
@@ -161,12 +119,11 @@ export const ViraCheckbox = defineViraElement<Readonly<ViraCheckboxInputs>>()({
|
|
|
161
119
|
</span>
|
|
162
120
|
`
|
|
163
121
|
: nothing;
|
|
164
|
-
|
|
165
|
-
return html`
|
|
122
|
+
return html `
|
|
166
123
|
<label
|
|
167
124
|
class=${classMap({
|
|
168
|
-
|
|
169
|
-
|
|
125
|
+
disabled: !!inputs.disabled,
|
|
126
|
+
})}
|
|
170
127
|
${attributes(inputs.attributePassthrough?.label)}
|
|
171
128
|
style=${ifDefined(inputs.stylePassthrough?.label)}
|
|
172
129
|
${listen('mousedown', updateValue)}
|
|
@@ -174,10 +131,10 @@ export const ViraCheckbox = defineViraElement<Readonly<ViraCheckboxInputs>>()({
|
|
|
174
131
|
${textLabel}
|
|
175
132
|
<span
|
|
176
133
|
class="custom-checkbox ${classMap({
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
134
|
+
checked: inputs.value,
|
|
135
|
+
disabled: !!inputs.disabled,
|
|
136
|
+
error: !!inputs.hasError,
|
|
137
|
+
})}"
|
|
181
138
|
role="checkbox"
|
|
182
139
|
aria-label=${ifDefined(inputs.label || undefined)}
|
|
183
140
|
aria-checked=${inputs.value ? 'true' : 'false'}
|
|
@@ -188,9 +145,9 @@ export const ViraCheckbox = defineViraElement<Readonly<ViraCheckboxInputs>>()({
|
|
|
188
145
|
${listenToActivate(updateValue)}
|
|
189
146
|
>
|
|
190
147
|
<${ViraIcon.assign({
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
148
|
+
icon: Check24Icon,
|
|
149
|
+
fitContainer: true,
|
|
150
|
+
})}
|
|
194
151
|
${attributes(inputs.attributePassthrough?.[ViraIcon.tagName])}
|
|
195
152
|
style=${ifDefined(inputs.stylePassthrough?.[ViraIcon.tagName])}
|
|
196
153
|
></${ViraIcon}>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A wrapper element that can collapse and expand to fit its content dynamically and efficiently.
|
|
3
|
+
*
|
|
4
|
+
* @category Collapsible
|
|
5
|
+
* @category Elements
|
|
6
|
+
* @see https://electrovir.github.io/vira/book/elements/vira-collapsible-wrapper
|
|
7
|
+
*/
|
|
8
|
+
export declare const ViraCollapsibleWrapper: import("element-vir").DeclarativeElementDefinition<"vira-collapsible-wrapper", {
|
|
9
|
+
expanded: boolean;
|
|
10
|
+
/** When true, forces the content to expand when printing regardless of collapsed state. */
|
|
11
|
+
expandOnPrint?: boolean;
|
|
12
|
+
}, {
|
|
13
|
+
contentHeight: number;
|
|
14
|
+
}, {
|
|
15
|
+
expandChange: import("element-vir").DefineEvent<boolean>;
|
|
16
|
+
}, "vira-collapsible-wrapper-expanded" | "vira-collapsible-wrapper-expand-on-print", "vira-collapsible-wrapper-", readonly ["header"], readonly []>;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import {css, defineElementEvent, html, listen, onResize} from 'element-vir';
|
|
2
|
-
import {noNativeFormStyles, viraAnimationDurations} from '../styles/index.js';
|
|
3
|
-
import {defineViraElement} from './define-vira-element.js';
|
|
4
|
-
|
|
1
|
+
import { css, defineElementEvent, html, listen, onResize } from 'element-vir';
|
|
2
|
+
import { noNativeFormStyles, viraAnimationDurations } from '../styles/index.js';
|
|
3
|
+
import { defineViraElement } from './define-vira-element.js';
|
|
5
4
|
/**
|
|
6
5
|
* A wrapper element that can collapse and expand to fit its content dynamically and efficiently.
|
|
7
6
|
*
|
|
@@ -9,7 +8,7 @@ import {defineViraElement} from './define-vira-element.js';
|
|
|
9
8
|
* @category Elements
|
|
10
9
|
* @see https://electrovir.github.io/vira/book/elements/vira-collapsible-wrapper
|
|
11
10
|
*/
|
|
12
|
-
export const ViraCollapsibleWrapper = defineViraElement
|
|
11
|
+
export const ViraCollapsibleWrapper = defineViraElement()({
|
|
13
12
|
tagName: 'vira-collapsible-wrapper',
|
|
14
13
|
state() {
|
|
15
14
|
return {
|
|
@@ -17,10 +16,11 @@ export const ViraCollapsibleWrapper = defineViraElement<{expanded: boolean}>()({
|
|
|
17
16
|
};
|
|
18
17
|
},
|
|
19
18
|
hostClasses: {
|
|
20
|
-
'vira-collapsible-wrapper-expanded': ({inputs}) => inputs.expanded,
|
|
19
|
+
'vira-collapsible-wrapper-expanded': ({ inputs }) => inputs.expanded,
|
|
20
|
+
'vira-collapsible-wrapper-expand-on-print': ({ inputs }) => !!inputs.expandOnPrint,
|
|
21
21
|
},
|
|
22
22
|
slotNames: ['header'],
|
|
23
|
-
styles: ({hostClasses}) => css`
|
|
23
|
+
styles: ({ hostClasses }) => css `
|
|
24
24
|
:host {
|
|
25
25
|
display: flex;
|
|
26
26
|
flex-direction: column;
|
|
@@ -45,34 +45,42 @@ export const ViraCollapsibleWrapper = defineViraElement<{expanded: boolean}>()({
|
|
|
45
45
|
${hostClasses['vira-collapsible-wrapper-expanded'].name} .collapsing-element {
|
|
46
46
|
pointer-events: none;
|
|
47
47
|
}
|
|
48
|
+
|
|
49
|
+
@media print {
|
|
50
|
+
:host(.${hostClasses['vira-collapsible-wrapper-expand-on-print'].name})
|
|
51
|
+
.collapsing-element {
|
|
52
|
+
height: auto !important;
|
|
53
|
+
overflow: visible !important;
|
|
54
|
+
transition: none !important;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
48
57
|
`,
|
|
49
58
|
events: {
|
|
50
|
-
expandChange: defineElementEvent
|
|
59
|
+
expandChange: defineElementEvent(),
|
|
51
60
|
},
|
|
52
|
-
render({state, slotNames, updateState, dispatch, events, inputs}) {
|
|
61
|
+
render({ state, slotNames, updateState, dispatch, events, inputs }) {
|
|
53
62
|
const collapsingStyles = inputs.expanded
|
|
54
|
-
? css`
|
|
63
|
+
? css `
|
|
55
64
|
height: ${state.contentHeight}px;
|
|
56
65
|
`
|
|
57
|
-
: css`
|
|
66
|
+
: css `
|
|
58
67
|
height: 0;
|
|
59
68
|
`;
|
|
60
|
-
|
|
61
|
-
return html`
|
|
69
|
+
return html `
|
|
62
70
|
<button
|
|
63
71
|
class="header-wrapper"
|
|
64
72
|
${listen('click', () => {
|
|
65
|
-
|
|
66
|
-
|
|
73
|
+
dispatch(new events.expandChange(!inputs.expanded));
|
|
74
|
+
})}
|
|
67
75
|
>
|
|
68
76
|
<slot name=${slotNames.header}>Header</slot>
|
|
69
77
|
</button>
|
|
70
78
|
|
|
71
79
|
<div class="collapsing-element" style=${collapsingStyles} disabled="disabled">
|
|
72
80
|
<div
|
|
73
|
-
${onResize(({contentRect}) => {
|
|
74
|
-
|
|
75
|
-
|
|
81
|
+
${onResize(({ contentRect }) => {
|
|
82
|
+
updateState({ contentHeight: contentRect.height });
|
|
83
|
+
})}
|
|
76
84
|
class="content-wrapper"
|
|
77
85
|
>
|
|
78
86
|
<slot></slot>
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { type PartialWithUndefined } from '@augment-vir/common';
|
|
2
|
+
import { type ViraIconSvg } from '../icons/icon-svg.js';
|
|
3
|
+
import { type ShowPopUpResult } from '../util/pop-up-manager.js';
|
|
4
|
+
import { type MenuItem } from './pop-up/pop-up-menu-item.js';
|
|
5
|
+
import { type PopUpTriggerPosition } from './pop-up/vira-pop-up-trigger.element.js';
|
|
6
|
+
/**
|
|
7
|
+
* Test ids for {@link ViraDropdown}.
|
|
8
|
+
*
|
|
9
|
+
* @category Internal
|
|
10
|
+
*/
|
|
11
|
+
export declare const viraDropdownTestIds: {
|
|
12
|
+
trigger: string;
|
|
13
|
+
icon: string;
|
|
14
|
+
prefix: string;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* A dropdown element that uses pop-up menus.
|
|
18
|
+
*
|
|
19
|
+
* @category Dropdown
|
|
20
|
+
* @category Elements
|
|
21
|
+
* @see https://electrovir.github.io/vira/book/elements/dropdown/vira-dropdown
|
|
22
|
+
*/
|
|
23
|
+
export declare const ViraDropdown: import("element-vir").DeclarativeElementDefinition<"vira-dropdown", {
|
|
24
|
+
options: ReadonlyArray<Readonly<MenuItem>>;
|
|
25
|
+
/** The selected id from the given options. */
|
|
26
|
+
selected: ReadonlyArray<PropertyKey>;
|
|
27
|
+
} & PartialWithUndefined<{
|
|
28
|
+
/** Text to show if nothing is selected. */
|
|
29
|
+
placeholder: string;
|
|
30
|
+
/**
|
|
31
|
+
* If false, this will behave like a single select dropdown, otherwise you can select
|
|
32
|
+
* multiple.
|
|
33
|
+
*/
|
|
34
|
+
isMultiSelect: boolean;
|
|
35
|
+
icon: ViraIconSvg;
|
|
36
|
+
selectionPrefix: string;
|
|
37
|
+
isDisabled: boolean;
|
|
38
|
+
/** For debugging purposes only. Very bad for actual production code use. */
|
|
39
|
+
z_debug_forceOpenState: boolean;
|
|
40
|
+
} & PopUpTriggerPosition>, {
|
|
41
|
+
/** `undefined` means the pop up is not currently showing. */
|
|
42
|
+
showPopUpResult: ShowPopUpResult | undefined;
|
|
43
|
+
}, {
|
|
44
|
+
selectedChange: import("element-vir").DefineEvent<PropertyKey[]>;
|
|
45
|
+
openChange: import("element-vir").DefineEvent<ShowPopUpResult | undefined>;
|
|
46
|
+
}, "vira-dropdown-", "vira-dropdown-", readonly [], readonly []>;
|