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.
Files changed (188) hide show
  1. package/dist/elements/define-vira-element.d.ts +18 -0
  2. package/dist/elements/define-vira-element.js +19 -0
  3. package/dist/elements/form/vira-form-fields.d.ts +100 -0
  4. package/dist/elements/form/vira-form-fields.js +60 -0
  5. package/dist/elements/form/vira-form.element.d.ts +35 -0
  6. package/dist/elements/form/vira-form.element.js +151 -0
  7. package/dist/elements/index.js +25 -0
  8. package/dist/elements/pop-up/pop-up-helpers.d.ts +33 -0
  9. package/dist/elements/pop-up/pop-up-helpers.js +58 -0
  10. package/{src/elements/pop-up/pop-up-menu-item.ts → dist/elements/pop-up/pop-up-menu-item.d.ts} +3 -4
  11. package/dist/elements/pop-up/pop-up-menu-item.js +1 -0
  12. package/dist/elements/pop-up/vira-menu-item.element.d.ts +19 -0
  13. package/{src/elements/pop-up/vira-menu-item.element.ts → dist/elements/pop-up/vira-menu-item.element.js} +11 -28
  14. package/dist/elements/pop-up/vira-menu-trigger.element.d.ts +41 -0
  15. package/dist/elements/pop-up/vira-menu-trigger.element.js +121 -0
  16. package/dist/elements/pop-up/vira-menu.element.d.ts +38 -0
  17. package/{src/elements/pop-up/vira-menu.element.ts → dist/elements/pop-up/vira-menu.element.js} +49 -76
  18. package/dist/elements/pop-up/vira-pop-up-menu.element.d.ts +35 -0
  19. package/{src/elements/pop-up/vira-pop-up-menu.element.ts → dist/elements/pop-up/vira-pop-up-menu.element.js} +22 -34
  20. package/dist/elements/pop-up/vira-pop-up-trigger.element.d.ts +105 -0
  21. package/{src/elements/pop-up/vira-pop-up-trigger.element.ts → dist/elements/pop-up/vira-pop-up-trigger.element.js} +104 -199
  22. package/dist/elements/shared-text-input-logic.d.ts +63 -0
  23. package/dist/elements/shared-text-input-logic.js +101 -0
  24. package/dist/elements/vira-bold-text.element.d.ts +9 -0
  25. package/{src/elements/vira-bold-text.element.ts → dist/elements/vira-bold-text.element.js} +7 -8
  26. package/dist/elements/vira-button.element.d.ts +31 -0
  27. package/{src/elements/vira-button.element.ts → dist/elements/vira-button.element.js} +35 -66
  28. package/dist/elements/vira-card.element.d.ts +18 -0
  29. package/{src/elements/vira-card.element.ts → dist/elements/vira-card.element.js} +13 -16
  30. package/dist/elements/vira-checkbox.element.d.ts +34 -0
  31. package/{src/elements/vira-checkbox.element.ts → dist/elements/vira-checkbox.element.js} +28 -71
  32. package/dist/elements/vira-collapsible-wrapper.element.d.ts +16 -0
  33. package/{src/elements/vira-collapsible-wrapper.element.ts → dist/elements/vira-collapsible-wrapper.element.js} +26 -18
  34. package/dist/elements/vira-dropdown.element.d.ts +46 -0
  35. package/{src/elements/vira-dropdown.element.ts → dist/elements/vira-dropdown.element.js} +48 -94
  36. package/dist/elements/vira-error.element.d.ts +7 -0
  37. package/{src/elements/vira-error.element.ts → dist/elements/vira-error.element.js} +5 -6
  38. package/dist/elements/vira-icon.element.d.ts +13 -0
  39. package/{src/elements/vira-icon.element.ts → dist/elements/vira-icon.element.js} +6 -13
  40. package/dist/elements/vira-image.element.d.ts +45 -0
  41. package/{src/elements/vira-image.element.ts → dist/elements/vira-image.element.js} +43 -63
  42. package/dist/elements/vira-input.element.d.ts +62 -0
  43. package/{src/elements/vira-input.element.ts → dist/elements/vira-input.element.js} +85 -151
  44. package/dist/elements/vira-link.element.d.ts +73 -0
  45. package/{src/elements/vira-link.element.ts → dist/elements/vira-link.element.js} +11 -62
  46. package/dist/elements/vira-modal.element.d.ts +39 -0
  47. package/{src/elements/vira-modal.element.ts → dist/elements/vira-modal.element.js} +50 -89
  48. package/dist/elements/vira-overflow-switch.element.d.ts +21 -0
  49. package/dist/elements/vira-overflow-switch.element.js +110 -0
  50. package/dist/elements/vira-progress.element.d.ts +18 -0
  51. package/{src/elements/vira-progress.element.ts → dist/elements/vira-progress.element.js} +11 -26
  52. package/dist/elements/vira-select.element.d.ts +48 -0
  53. package/{src/elements/vira-select.element.ts → dist/elements/vira-select.element.js} +41 -96
  54. package/dist/icons/icon-color.test-helper.d.ts +6 -0
  55. package/dist/icons/icon-color.test-helper.js +9 -0
  56. package/dist/icons/icon-css-vars.d.ts +14 -0
  57. package/{src/icons/icon-css-vars.ts → dist/icons/icon-css-vars.js} +1 -2
  58. package/dist/icons/icon-svg.d.ts +27 -0
  59. package/dist/icons/icon-svg.js +48 -0
  60. package/dist/icons/icon-svgs/bell-24.icon.d.ts +8 -0
  61. package/{src/icons/icon-svgs/bell-24.icon.ts → dist/icons/icon-svgs/bell-24.icon.js} +4 -5
  62. package/dist/icons/icon-svgs/chat-24.icon.d.ts +8 -0
  63. package/{src/icons/icon-svgs/chat-24.icon.ts → dist/icons/icon-svgs/chat-24.icon.js} +4 -5
  64. package/dist/icons/icon-svgs/check-24.icon.d.ts +8 -0
  65. package/{src/icons/icon-svgs/check-24.icon.ts → dist/icons/icon-svgs/check-24.icon.js} +4 -5
  66. package/dist/icons/icon-svgs/chevron-down-24.icon.d.ts +8 -0
  67. package/{src/icons/icon-svgs/chevron-down-24.icon.ts → dist/icons/icon-svgs/chevron-down-24.icon.js} +4 -5
  68. package/dist/icons/icon-svgs/chevron-up-24.icon.d.ts +8 -0
  69. package/{src/icons/icon-svgs/chevron-up-24.icon.ts → dist/icons/icon-svgs/chevron-up-24.icon.js} +4 -5
  70. package/dist/icons/icon-svgs/close-x-24.icon.d.ts +8 -0
  71. package/{src/icons/icon-svgs/close-x-24.icon.ts → dist/icons/icon-svgs/close-x-24.icon.js} +4 -5
  72. package/dist/icons/icon-svgs/commit-24.icon.d.ts +8 -0
  73. package/{src/icons/icon-svgs/commit-24.icon.ts → dist/icons/icon-svgs/commit-24.icon.js} +4 -5
  74. package/dist/icons/icon-svgs/copy-24.icon.d.ts +8 -0
  75. package/{src/icons/icon-svgs/copy-24.icon.ts → dist/icons/icon-svgs/copy-24.icon.js} +4 -5
  76. package/dist/icons/icon-svgs/document-24.icon.d.ts +8 -0
  77. package/{src/icons/icon-svgs/document-24.icon.ts → dist/icons/icon-svgs/document-24.icon.js} +4 -5
  78. package/dist/icons/icon-svgs/document-search-24.icon.d.ts +8 -0
  79. package/{src/icons/icon-svgs/document-search-24.icon.ts → dist/icons/icon-svgs/document-search-24.icon.js} +4 -5
  80. package/dist/icons/icon-svgs/double-chevron-24.icon.d.ts +8 -0
  81. package/{src/icons/icon-svgs/double-chevron-24.icon.ts → dist/icons/icon-svgs/double-chevron-24.icon.js} +4 -5
  82. package/dist/icons/icon-svgs/element-16.icon.d.ts +8 -0
  83. package/{src/icons/icon-svgs/element-16.icon.ts → dist/icons/icon-svgs/element-16.icon.js} +4 -5
  84. package/dist/icons/icon-svgs/element-24.icon.d.ts +8 -0
  85. package/{src/icons/icon-svgs/element-24.icon.ts → dist/icons/icon-svgs/element-24.icon.js} +4 -5
  86. package/dist/icons/icon-svgs/external-link-24.icon.d.ts +8 -0
  87. package/{src/icons/icon-svgs/external-link-24.icon.ts → dist/icons/icon-svgs/external-link-24.icon.js} +4 -5
  88. package/dist/icons/icon-svgs/eye-closed-24.icon.d.ts +8 -0
  89. package/{src/icons/icon-svgs/eye-closed-24.icon.ts → dist/icons/icon-svgs/eye-closed-24.icon.js} +4 -5
  90. package/dist/icons/icon-svgs/eye-open-24.icon.d.ts +8 -0
  91. package/{src/icons/icon-svgs/eye-open-24.icon.ts → dist/icons/icon-svgs/eye-open-24.icon.js} +4 -5
  92. package/dist/icons/icon-svgs/filter-24.icon.d.ts +8 -0
  93. package/{src/icons/icon-svgs/filter-24.icon.ts → dist/icons/icon-svgs/filter-24.icon.js} +4 -5
  94. package/dist/icons/icon-svgs/link-24.icon.d.ts +8 -0
  95. package/{src/icons/icon-svgs/link-24.icon.ts → dist/icons/icon-svgs/link-24.icon.js} +4 -5
  96. package/dist/icons/icon-svgs/loader-24.icon.d.ts +8 -0
  97. package/{src/icons/icon-svgs/loader-24.icon.ts → dist/icons/icon-svgs/loader-24.icon.js} +4 -5
  98. package/dist/icons/icon-svgs/loader-animated-24.icon.d.ts +8 -0
  99. package/{src/icons/icon-svgs/loader-animated-24.icon.ts → dist/icons/icon-svgs/loader-animated-24.icon.js} +6 -8
  100. package/dist/icons/icon-svgs/lock-24.icon.d.ts +8 -0
  101. package/{src/icons/icon-svgs/lock-24.icon.ts → dist/icons/icon-svgs/lock-24.icon.js} +4 -5
  102. package/dist/icons/icon-svgs/options-24.icon.d.ts +8 -0
  103. package/{src/icons/icon-svgs/options-24.icon.ts → dist/icons/icon-svgs/options-24.icon.js} +4 -5
  104. package/dist/icons/icon-svgs/pencil-24.icon.d.ts +8 -0
  105. package/{src/icons/icon-svgs/pencil-24.icon.ts → dist/icons/icon-svgs/pencil-24.icon.js} +4 -5
  106. package/dist/icons/icon-svgs/shield-24.icon.d.ts +8 -0
  107. package/{src/icons/icon-svgs/shield-24.icon.ts → dist/icons/icon-svgs/shield-24.icon.js} +4 -5
  108. package/dist/icons/icon-svgs/sort-ascending-24.icon.d.ts +8 -0
  109. package/{src/icons/icon-svgs/sort-ascending-24.icon.ts → dist/icons/icon-svgs/sort-ascending-24.icon.js} +4 -5
  110. package/dist/icons/icon-svgs/sort-descending-24.icon.d.ts +8 -0
  111. package/{src/icons/icon-svgs/sort-descending-24.icon.ts → dist/icons/icon-svgs/sort-descending-24.icon.js} +4 -5
  112. package/dist/icons/icon-svgs/speaker-loud-24.icon.d.ts +8 -0
  113. package/{src/icons/icon-svgs/speaker-loud-24.icon.ts → dist/icons/icon-svgs/speaker-loud-24.icon.js} +4 -5
  114. package/dist/icons/icon-svgs/speaker-medium-24.icon.d.ts +8 -0
  115. package/{src/icons/icon-svgs/speaker-medium-24.icon.ts → dist/icons/icon-svgs/speaker-medium-24.icon.js} +4 -5
  116. package/dist/icons/icon-svgs/speaker-muted-24.icon.d.ts +8 -0
  117. package/{src/icons/icon-svgs/speaker-muted-24.icon.ts → dist/icons/icon-svgs/speaker-muted-24.icon.js} +4 -5
  118. package/dist/icons/icon-svgs/speaker-quiet-24.icon.d.ts +8 -0
  119. package/{src/icons/icon-svgs/speaker-quiet-24.icon.ts → dist/icons/icon-svgs/speaker-quiet-24.icon.js} +4 -5
  120. package/dist/icons/icon-svgs/star-24.icon.d.ts +8 -0
  121. package/{src/icons/icon-svgs/star-24.icon.ts → dist/icons/icon-svgs/star-24.icon.js} +4 -5
  122. package/dist/icons/icon-svgs/status-failure-24.icon.d.ts +8 -0
  123. package/{src/icons/icon-svgs/status-failure-24.icon.ts → dist/icons/icon-svgs/status-failure-24.icon.js} +4 -5
  124. package/dist/icons/icon-svgs/status-in-progress-24.icon.d.ts +8 -0
  125. package/{src/icons/icon-svgs/status-in-progress-24.icon.ts → dist/icons/icon-svgs/status-in-progress-24.icon.js} +4 -5
  126. package/dist/icons/icon-svgs/status-success-24.icon.d.ts +8 -0
  127. package/{src/icons/icon-svgs/status-success-24.icon.ts → dist/icons/icon-svgs/status-success-24.icon.js} +4 -5
  128. package/dist/icons/icon-svgs/status-unknown-24.icon.d.ts +8 -0
  129. package/{src/icons/icon-svgs/status-unknown-24.icon.ts → dist/icons/icon-svgs/status-unknown-24.icon.js} +4 -5
  130. package/dist/icons/icon-svgs/status-warning-24.icon.d.ts +8 -0
  131. package/{src/icons/icon-svgs/status-warning-24.icon.ts → dist/icons/icon-svgs/status-warning-24.icon.js} +4 -5
  132. package/dist/icons/icon-svgs/upload-24.icon.d.ts +8 -0
  133. package/{src/icons/icon-svgs/upload-24.icon.ts → dist/icons/icon-svgs/upload-24.icon.js} +4 -5
  134. package/dist/icons/icon-svgs/x-24.icon.d.ts +8 -0
  135. package/{src/icons/icon-svgs/x-24.icon.ts → dist/icons/icon-svgs/x-24.icon.js} +4 -5
  136. package/dist/icons/index.d.ts +86 -0
  137. package/{src/icons/index.ts → dist/icons/index.js} +39 -43
  138. package/dist/index.js +4 -0
  139. package/dist/styles/border.d.ts +9 -0
  140. package/{src/styles/border.ts → dist/styles/border.js} +1 -2
  141. package/dist/styles/disabled.d.ts +6 -0
  142. package/{src/styles/disabled.ts → dist/styles/disabled.js} +2 -3
  143. package/dist/styles/durations.d.ts +22 -0
  144. package/{src/styles/durations.ts → dist/styles/durations.js} +1 -2
  145. package/dist/styles/focus.d.ts +34 -0
  146. package/{src/styles/focus.ts → dist/styles/focus.js} +8 -29
  147. package/dist/styles/font.d.ts +9 -0
  148. package/{src/styles/font.ts → dist/styles/font.js} +1 -2
  149. package/dist/styles/form-styles.d.ts +20 -0
  150. package/{src/styles/form-styles.ts → dist/styles/form-styles.js} +1 -6
  151. package/{src/styles/index.ts → dist/styles/index.d.ts} +0 -1
  152. package/dist/styles/index.js +13 -0
  153. package/dist/styles/native-styles.d.ts +13 -0
  154. package/{src/styles/native-styles.ts → dist/styles/native-styles.js} +3 -5
  155. package/dist/styles/scrollbar.d.ts +6 -0
  156. package/{src/styles/scrollbar.ts → dist/styles/scrollbar.js} +3 -4
  157. package/dist/styles/shadows.d.ts +20 -0
  158. package/{src/styles/shadows.ts → dist/styles/shadows.js} +6 -8
  159. package/dist/styles/user-select.d.ts +6 -0
  160. package/{src/styles/user-select.ts → dist/styles/user-select.js} +2 -3
  161. package/dist/styles/vira-color-palette.d.ts +95 -0
  162. package/{src/styles/vira-color-palette.ts → dist/styles/vira-color-palette.js} +1 -11
  163. package/dist/styles/vira-color-theme.d.ts +1184 -0
  164. package/dist/styles/vira-color-theme.js +1138 -0
  165. package/dist/util/define-table.d.ts +110 -0
  166. package/dist/util/define-table.js +115 -0
  167. package/dist/util/dynamic-element.d.ts +63 -0
  168. package/dist/util/dynamic-element.js +61 -0
  169. package/dist/util/index.js +3 -0
  170. package/dist/util/pop-up-manager.d.ts +186 -0
  171. package/dist/util/pop-up-manager.js +214 -0
  172. package/package.json +6 -6
  173. package/src/elements/define-vira-element.ts +0 -29
  174. package/src/elements/form/vira-form-fields.ts +0 -140
  175. package/src/elements/form/vira-form.element.ts +0 -204
  176. package/src/elements/pop-up/pop-up-helpers.ts +0 -85
  177. package/src/elements/pop-up/vira-menu-trigger.element.ts +0 -158
  178. package/src/elements/shared-text-input-logic.ts +0 -173
  179. package/src/elements/vira-overflow-switch.element.ts +0 -137
  180. package/src/icons/icon-color.test-helper.ts +0 -9
  181. package/src/icons/icon-svg.ts +0 -71
  182. package/src/styles/vira-color-theme.ts +0 -1142
  183. package/src/util/define-table.ts +0 -279
  184. package/src/util/dynamic-element.ts +0 -129
  185. package/src/util/pop-up-manager.ts +0 -380
  186. /package/{src/elements/index.ts → dist/elements/index.d.ts} +0 -0
  187. /package/{src/index.ts → dist/index.d.ts} +0 -0
  188. /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 {type PartialWithUndefined} from '@augment-vir/common';
2
- import {css, html, nothing} from 'element-vir';
3
- import {type ViraIconSvg} from '../icons/index.js';
4
- import {viraBorders} from '../styles/border.js';
5
- import {viraDisabledStyles} from '../styles/disabled.js';
6
- import {viraAnimationDurations} from '../styles/durations.js';
7
- import {createFocusStyles, viraFocusCssVars} from '../styles/focus.js';
8
- import {noUserSelect} from '../styles/index.js';
9
- import {noNativeFormStyles} from '../styles/native-styles.js';
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 enum ViraButtonStyle {
19
- Default = 'vira-button-default',
20
- Outline = 'vira-button-outline',
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-foreground-color': '',
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
- 'vira-button-primary-color'
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
- elementBorderSize: 2,
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
- icon: inputs.icon,
156
- })}></${ViraIcon}>
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">&nbsp;</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 enum ViraCardState {
11
- Error = 'error',
12
- Success = 'success',
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 {type PartialWithUndefined} from '@augment-vir/common';
2
- import {
3
- attributes,
4
- classMap,
5
- css,
6
- defineElementEvent,
7
- html,
8
- ifDefined,
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<Readonly<ViraCheckboxInputs>>()({
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
- .value};
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
- .value};
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<boolean>(),
103
+ valueChange: defineElementEvent(),
145
104
  },
146
- render({inputs, dispatch, events}) {
147
- function updateValue(this: void) {
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
- disabled: !!inputs.disabled,
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
- checked: inputs.value,
178
- disabled: !!inputs.disabled,
179
- error: !!inputs.hasError,
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
- icon: Check24Icon,
192
- fitContainer: true,
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<{expanded: boolean}>()({
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<boolean>(),
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
- dispatch(new events.expandChange(!inputs.expanded));
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
- updateState({contentHeight: contentRect.height});
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 []>;