vira 28.19.6 → 29.0.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 (192) 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 -78
  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} +24 -37
  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 +34 -0
  27. package/dist/elements/vira-button.element.js +176 -0
  28. package/dist/elements/vira-card.element.d.ts +18 -0
  29. package/dist/elements/vira-card.element.js +60 -0
  30. package/dist/elements/vira-checkbox.element.d.ts +38 -0
  31. package/{src/elements/vira-checkbox.element.ts → dist/elements/vira-checkbox.element.js} +70 -83
  32. package/dist/elements/vira-collapsible-wrapper.element.d.ts +14 -0
  33. package/{src/elements/vira-collapsible-wrapper.element.ts → dist/elements/vira-collapsible-wrapper.element.js} +16 -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 -95
  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} +6 -7
  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} +93 -166
  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} +17 -67
  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} +56 -97
  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} +14 -30
  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} +45 -99
  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/disabled.d.ts +6 -0
  140. package/{src/styles/disabled.ts → dist/styles/disabled.js} +2 -3
  141. package/dist/styles/durations.d.ts +22 -0
  142. package/{src/styles/durations.ts → dist/styles/durations.js} +1 -2
  143. package/dist/styles/focus.d.ts +21 -0
  144. package/dist/styles/focus.js +41 -0
  145. package/dist/styles/font.d.ts +9 -0
  146. package/{src/styles/font.ts → dist/styles/font.js} +1 -2
  147. package/dist/styles/form-styles.d.ts +123 -0
  148. package/dist/styles/form-styles.js +126 -0
  149. package/{src/styles/index.ts → dist/styles/index.d.ts} +0 -2
  150. package/dist/styles/index.js +12 -0
  151. package/dist/styles/native-styles.d.ts +13 -0
  152. package/{src/styles/native-styles.ts → dist/styles/native-styles.js} +3 -6
  153. package/dist/styles/scrollbar.d.ts +6 -0
  154. package/{src/styles/scrollbar.ts → dist/styles/scrollbar.js} +3 -4
  155. package/dist/styles/shadows.d.ts +20 -0
  156. package/{src/styles/shadows.ts → dist/styles/shadows.js} +6 -8
  157. package/dist/styles/user-select.d.ts +6 -0
  158. package/{src/styles/user-select.ts → dist/styles/user-select.js} +2 -3
  159. package/dist/styles/vira-color-palette.d.ts +97 -0
  160. package/dist/styles/vira-color-palette.js +98 -0
  161. package/dist/styles/vira-color-theme.d.ts +1580 -0
  162. package/dist/styles/vira-color-theme.js +1516 -0
  163. package/dist/util/define-table.d.ts +110 -0
  164. package/dist/util/define-table.js +115 -0
  165. package/dist/util/dynamic-element.d.ts +63 -0
  166. package/dist/util/dynamic-element.js +61 -0
  167. package/dist/util/index.js +3 -0
  168. package/dist/util/pop-up-manager.d.ts +186 -0
  169. package/dist/util/pop-up-manager.js +214 -0
  170. package/package.json +6 -6
  171. package/src/elements/define-vira-element.ts +0 -29
  172. package/src/elements/form/vira-form-fields.ts +0 -140
  173. package/src/elements/form/vira-form.element.ts +0 -204
  174. package/src/elements/pop-up/pop-up-helpers.ts +0 -85
  175. package/src/elements/pop-up/vira-menu-trigger.element.ts +0 -158
  176. package/src/elements/shared-text-input-logic.ts +0 -173
  177. package/src/elements/vira-button.element.ts +0 -171
  178. package/src/elements/vira-card.element.ts +0 -54
  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/border.ts +0 -11
  183. package/src/styles/focus.ts +0 -76
  184. package/src/styles/form-styles.ts +0 -26
  185. package/src/styles/vira-color-palette.ts +0 -106
  186. package/src/styles/vira-color-theme.ts +0 -1142
  187. package/src/util/define-table.ts +0 -279
  188. package/src/util/dynamic-element.ts +0 -129
  189. package/src/util/pop-up-manager.ts +0 -380
  190. /package/{src/elements/index.ts → dist/elements/index.d.ts} +0 -0
  191. /package/{src/index.ts → dist/index.d.ts} +0 -0
  192. /package/{src/util/index.ts → dist/util/index.d.ts} +0 -0
@@ -1,137 +0,0 @@
1
- import {css, html, onDomCreated} from 'element-vir';
2
- import {type RequireExactlyOne} from 'type-fest';
3
- import {listenTo} from 'typed-event-target';
4
- import {defineViraElement} from './define-vira-element.js';
5
-
6
- /**
7
- * An element switches between two slots based on their overflow.
8
- *
9
- * @category Elements
10
- * @see https://electrovir.github.io/vira/book/elements/vira-overflow-switch
11
- */
12
- export const ViraOverflowSwitch = defineViraElement<
13
- Readonly<
14
- RequireExactlyOne<{
15
- automaticallySwitch: boolean;
16
- useSmall: boolean;
17
- }>
18
- >
19
- >()({
20
- tagName: 'vira-overflow-switch',
21
- slotNames: [
22
- /** The child to render, if it fits. */
23
- 'large',
24
- /** The child to render if the large one does not fit. */
25
- 'small',
26
- ],
27
- state() {
28
- return {
29
- isOverflowing: false,
30
- resizeObserver: undefined as undefined | ResizeObserver,
31
- /** Called on cleanup to clear all listeners. */
32
- cleanup: undefined as undefined | (() => void),
33
- };
34
- },
35
- hostClasses: {
36
- 'vira-overflow-switch-show-small': ({state, inputs}) =>
37
- state.isOverflowing || !!inputs.useSmall,
38
- },
39
- styles: ({hostClasses}) => css`
40
- :host {
41
- display: inline-block;
42
- max-width: 100%;
43
- }
44
-
45
- .large,
46
- .small {
47
- display: inline-block;
48
- }
49
-
50
- .small {
51
- display: none;
52
- }
53
-
54
- /**
55
- * When the large content overflows, hide it but keep it in layout so we can measure it.
56
- * The small content is then shown instead.
57
- */
58
- ${hostClasses['vira-overflow-switch-show-small'].selector} .large {
59
- visibility: hidden;
60
- position: absolute;
61
- top: 0;
62
- left: 0;
63
- }
64
-
65
- ${hostClasses['vira-overflow-switch-show-small'].selector} .small {
66
- display: inline-block;
67
- }
68
- `,
69
- cleanup({state, updateState}) {
70
- state.cleanup?.();
71
- updateState({
72
- cleanup: undefined,
73
- });
74
- },
75
- render({slotNames, updateState, inputs, host, state}) {
76
- return html`
77
- <div
78
- class="large"
79
- ${onDomCreated((largeElement) => {
80
- if (!inputs.automaticallySwitch) {
81
- return;
82
- }
83
-
84
- const overflowParams: Parameters<typeof updateOverflowing>[0] = {
85
- elementToTest: largeElement,
86
- host,
87
- updateState,
88
- };
89
-
90
- const resizeObserver = new ResizeObserver(() => {
91
- updateOverflowing(overflowParams);
92
- });
93
-
94
- resizeObserver.observe(host);
95
-
96
- /**
97
- * Also observe the large slot wrapper itself in case its own layout changes
98
- * without host resizing.
99
- */
100
- resizeObserver.observe(largeElement);
101
-
102
- const removeSlotChangeListener = listenTo(largeElement, 'slotchange', () => {
103
- updateOverflowing(overflowParams);
104
- });
105
-
106
- /** Initial measurement: defer until after first layout. */
107
- updateOverflowing(overflowParams);
108
-
109
- state.cleanup?.();
110
- updateState({
111
- cleanup() {
112
- resizeObserver.disconnect();
113
- removeSlotChangeListener();
114
- },
115
- });
116
- })}
117
- >
118
- <slot name=${slotNames.large}></slot>
119
- </div>
120
- <div class="small"><slot name=${slotNames.small}></slot></div>
121
- `;
122
- },
123
- });
124
-
125
- function updateOverflowing({
126
- elementToTest,
127
- host,
128
- updateState,
129
- }: {
130
- host: Element;
131
- updateState: (newState: Partial<{isOverflowing: boolean}>) => void;
132
- elementToTest: Element;
133
- }) {
134
- const isOverflowing = elementToTest.scrollWidth > host.clientWidth;
135
-
136
- updateState({isOverflowing});
137
- }
@@ -1,9 +0,0 @@
1
- export enum ColorType {
2
- Color = 'color',
3
- Fill = 'fill',
4
- Stroke = 'stroke',
5
- }
6
-
7
- export function extractIconColor(element: Element, colorType: ColorType) {
8
- return window.getComputedStyle(element).getPropertyValue(colorType);
9
- }
@@ -1,71 +0,0 @@
1
- import {getObjectTypedKeys, stringify} from '@augment-vir/common';
2
- import Color, {type ColorTypes} from 'colorjs.io';
3
- import {type TemplateResult, html} from 'element-vir';
4
- import {viraIconCssVars} from './icon-css-vars.js';
5
-
6
- /**
7
- * An individual Vira icon SVG definition.
8
- *
9
- * @category Icon
10
- */
11
- export type ViraIconSvg = {
12
- name: string;
13
- svgTemplate: TemplateResult;
14
- };
15
-
16
- /**
17
- * A function used to define an individual Vira icon SVG.
18
- *
19
- * @category Icon
20
- */
21
- export function defineIcon({
22
- name,
23
- svgTemplate,
24
- }: {
25
- name: string;
26
- svgTemplate: TemplateResult;
27
- }): ViraIconSvg {
28
- const iconSvg: ViraIconSvg = {
29
- name,
30
- svgTemplate,
31
- };
32
-
33
- return iconSvg;
34
- }
35
-
36
- function getAssertedValidColor(input: ColorTypes | undefined) {
37
- try {
38
- if (!input) {
39
- throw new Error('invalid empty color');
40
- }
41
- return new Color(input);
42
- } catch {
43
- throw new Error(`Invalid color: ${stringify(input)}`);
44
- }
45
- }
46
-
47
- /**
48
- * Wraps an existing icon with a specific color and outputs another icon that can be used anywhere
49
- * the original icon can be used.
50
- *
51
- * @category Icon
52
- */
53
- export function createColoredIcon(
54
- icon: ViraIconSvg,
55
- colors: Partial<Record<keyof typeof viraIconCssVars, string>>,
56
- ): ViraIconSvg {
57
- const colorStyles = getObjectTypedKeys(colors)
58
- .map((cssVarName) => {
59
- const colorValue = colors[cssVarName];
60
- const color = getAssertedValidColor(colorValue);
61
- return `${viraIconCssVars[cssVarName].name}: ${color.toString()};`;
62
- })
63
- .join(' ');
64
-
65
- return defineIcon({
66
- name: icon.name,
67
- svgTemplate: html`
68
- <div style=${colorStyles}>${icon.svgTemplate}</div>
69
- `,
70
- });
71
- }
@@ -1,11 +0,0 @@
1
- import {defineCssVars} from 'lit-css-vars';
2
-
3
- /**
4
- * Border CSS vars used by Vira elements.
5
- *
6
- * @category CSS Vars
7
- * @category Styles
8
- */
9
- export const viraBorders = defineCssVars({
10
- 'vira-form-input-radius': '8px',
11
- });
@@ -1,76 +0,0 @@
1
- import {addPx, type PartialWithUndefined} from '@augment-vir/common';
2
- import {css, unsafeCSS} from 'element-vir';
3
- import {defineCssVars} from 'lit-css-vars';
4
- import {viraBorders} from './border.js';
5
-
6
- /**
7
- * CSS vars for Vira focus colors.
8
- *
9
- * @category CSS Vars
10
- * @category Styles
11
- */
12
- export const viraFocusCssVars = defineCssVars({
13
- 'vira-focus-outline-color': '#59b1ff',
14
- 'vira-focus-outline-border-radius': {
15
- initialValue: '10px',
16
- default: css`calc(${viraBorders['vira-form-input-radius'].value} + 2px)`,
17
- },
18
- });
19
-
20
- /**
21
- * Create styles that look like an outline for the given selector.
22
- *
23
- * It is recommended to use the pseudo selector chain ":focus:focus-visible:not(:active)" to
24
- * preventing clicking an element from creating focus styles in Chrome.
25
- *
26
- * @category Styles
27
- */
28
- export function createFocusStyles({
29
- elementBorderSize,
30
- outlineGap = 2,
31
- outlineWidth = 2,
32
- noNesting,
33
- }: {
34
- /**
35
- * ElementBorderSize here is used to fix the outline when the element these styles are attached
36
- * to has a border. The dev must specify that border size here for the offsets to be calculated
37
- * correctly.
38
- */
39
- elementBorderSize: number;
40
- } & PartialWithUndefined<{
41
- outlineGap: number;
42
- outlineWidth: number;
43
- noNesting: boolean;
44
- }>) {
45
- const outlineSpacing = unsafeCSS(addPx(outlineWidth + outlineGap + elementBorderSize));
46
-
47
- const styles = css`
48
- content: '';
49
- top: calc(${outlineSpacing} * -1);
50
- left: calc(${outlineSpacing} * -1);
51
- position: absolute;
52
- width: calc(100% + calc(${outlineSpacing} * 2));
53
- height: calc(100% + calc(${outlineSpacing} * 2));
54
- box-sizing: border-box;
55
- pointer-events: none;
56
- border: ${outlineWidth}px solid ${viraFocusCssVars['vira-focus-outline-color'].value};
57
- border-radius: ${viraFocusCssVars['vira-focus-outline-border-radius'].value};
58
- z-index: 100;
59
- `;
60
-
61
- if (noNesting) {
62
- return styles;
63
- }
64
-
65
- return css`
66
- outline: none;
67
-
68
- &:focus {
69
- outline: none;
70
- }
71
-
72
- &:focus:focus-visible:not(:active):not([disabled])::after {
73
- ${styles}
74
- }
75
- `;
76
- }
@@ -1,26 +0,0 @@
1
- import {defineCssVars} from 'lit-css-vars';
2
-
3
- /**
4
- * CSS vars for vira form elements.
5
- *
6
- * @category CSS Vars
7
- * @category Styles
8
- */
9
- export const viraFormCssVars = defineCssVars({
10
- 'vira-form-border-color': '#cccccc',
11
- 'vira-form-placeholder-color': '#cccccc',
12
-
13
- 'vira-form-background-color': 'white',
14
- 'vira-form-foreground-color': 'black',
15
-
16
- 'vira-form-text-selection-color': '#cfe9ff',
17
- 'vira-form-selection-hover-background-color': '#e6f9fe',
18
- 'vira-form-selection-hover-foreground-color': 'black',
19
- 'vira-form-selection-active-background-color': '#e6f9fe',
20
- 'vira-form-selection-active-foreground-color': 'black',
21
-
22
- 'vira-form-error-foreground-color': 'red',
23
- 'vira-form-success-foreground-color': 'green',
24
-
25
- 'vira-form-label-font-weight': 'bold',
26
- });
@@ -1,106 +0,0 @@
1
- import {defineCssVars} from 'lit-css-vars';
2
-
3
- /** Generously contributed by Trent Hazy, modified to more uniform contrast levels. */
4
- export const viraColorPalette = defineCssVars({
5
- 'vira-white': '#ffffff',
6
- 'vira-black': '#000000',
7
-
8
- 'vira-red-5': '#ffe9e6',
9
- 'vira-red-10': '#ffd9d6',
10
- 'vira-red-20': '#ffc1bc',
11
- 'vira-red-30': '#ffa6a2',
12
- 'vira-red-40': '#ff8887',
13
- 'vira-red-50': '#ff6065',
14
- 'vira-red-60': '#f9163a',
15
- 'vira-red-70': '#d2001e',
16
- 'vira-red-80': '#a60012',
17
- 'vira-red-90': '#760004',
18
-
19
- 'vira-orange-5': '#ffebd1',
20
- 'vira-orange-10': '#ffdcab',
21
- 'vira-orange-20': '#ffc768',
22
- 'vira-orange-30': '#ffac3a',
23
- 'vira-orange-40': '#f49400',
24
- 'vira-orange-50': '#dd8100',
25
- 'vira-orange-60': '#c66b00',
26
- 'vira-orange-70': '#a85800',
27
- 'vira-orange-80': '#884400',
28
- 'vira-orange-90': '#682800',
29
-
30
- 'vira-yellow-5': '#f5f0c6',
31
- 'vira-yellow-10': '#eee399',
32
- 'vira-yellow-20': '#e9d100',
33
- 'vira-yellow-30': '#d6bf00',
34
- 'vira-yellow-40': '#c1ac00',
35
- 'vira-yellow-50': '#ad9800',
36
- 'vira-yellow-60': '#958400',
37
- 'vira-yellow-70': '#7d6e00',
38
- 'vira-yellow-80': '#635700',
39
- 'vira-yellow-90': '#473d00',
40
-
41
- 'vira-green-5': '#def6cc',
42
- 'vira-green-10': '#c4eea3',
43
- 'vira-green-20': '#94e53b',
44
- 'vira-green-30': '#81d316',
45
- 'vira-green-40': '#71bf00',
46
- 'vira-green-50': '#5eaa00',
47
- 'vira-green-60': '#509400',
48
- 'vira-green-70': '#427c00',
49
- 'vira-green-80': '#316200',
50
- 'vira-green-90': '#1f4600',
51
-
52
- 'vira-teal-5': '#d3f5ed',
53
- 'vira-teal-10': '#aeeedf',
54
- 'vira-teal-20': '#4ce6cc',
55
- 'vira-teal-30': '#31d3ba',
56
- 'vira-teal-40': '#00c0a7',
57
- 'vira-teal-50': '#00aa93',
58
- 'vira-teal-60': '#00937e',
59
- 'vira-teal-70': '#007c68',
60
- 'vira-teal-80': '#006252',
61
- 'vira-teal-90': '#004539',
62
-
63
- 'vira-blue-5': '#def1ff',
64
- 'vira-blue-10': '#c0e7ff',
65
- 'vira-blue-20': '#9dd7ff',
66
- 'vira-blue-30': '#78c5ff',
67
- 'vira-blue-40': '#5fb1fc',
68
- 'vira-blue-50': '#4d9de7',
69
- 'vira-blue-60': '#3588d0',
70
- 'vira-blue-70': '#1971b7',
71
- 'vira-blue-80': '#00579a',
72
- 'vira-blue-90': '#003a7b',
73
-
74
- 'vira-purple-5': '#f3ebff',
75
- 'vira-purple-10': '#e8dcff',
76
- 'vira-purple-20': '#e1c5ff',
77
- 'vira-purple-30': '#d1afff',
78
- 'vira-purple-40': '#c198ff',
79
- 'vira-purple-50': '#b07dff',
80
- 'vira-purple-60': '#a25cff',
81
- 'vira-purple-70': '#8a3cf2',
82
- 'vira-purple-80': '#710dd3',
83
- 'vira-purple-90': '#4c0099',
84
-
85
- 'vira-pink-5': '#ffe7fb',
86
- 'vira-pink-10': '#ffd5f7',
87
- 'vira-pink-20': '#ffbaf5',
88
- 'vira-pink-30': '#ff9ee6',
89
- 'vira-pink-40': '#fa82cc',
90
- 'vira-pink-50': '#e46eb8',
91
- 'vira-pink-60': '#cd58a2',
92
- 'vira-pink-70': '#b3408b',
93
- 'vira-pink-80': '#962472',
94
- 'vira-pink-90': '#6f0050',
95
-
96
- 'vira-grey-5': '#eeeef1',
97
- 'vira-grey-10': '#e1e1e4',
98
- 'vira-grey-20': '#d0d0d6',
99
- 'vira-grey-30': '#bebec3',
100
- 'vira-grey-40': '#ababb2',
101
- 'vira-grey-50': '#98989c',
102
- 'vira-grey-60': '#838489',
103
- 'vira-grey-70': '#6e6e73',
104
- 'vira-grey-80': '#57575c',
105
- 'vira-grey-90': '#3d3d43',
106
- });