vira 26.13.1 → 28.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.
@@ -15,4 +15,4 @@ export type ViraTagName = `${typeof ViraTagNamePrefix}${string}`;
15
15
  *
16
16
  * @category Internal
17
17
  */
18
- export declare const defineViraElement: <Inputs extends {}>(...errorParams: import("element-vir").DeclarativeElementInputErrorParams<Inputs>) => <const TagName extends `vira-${string}`, State extends {}, EventsInit extends {}, const HostClassKeys extends `${TagName}-${string}` = `${TagName}-`, const CssVarKeys extends `${TagName}-${string}` = `${TagName}-`, const SlotNames extends ReadonlyArray<string> = readonly []>(inputs: import("element-vir").DeclarativeElementInit<TagName, Inputs, State, EventsInit, HostClassKeys, CssVarKeys, SlotNames>) => import("element-vir").DeclarativeElementDefinition<TagName, Inputs, State, EventsInit, HostClassKeys, CssVarKeys, SlotNames>;
18
+ export declare const defineViraElement: <Inputs extends {}>(...errorParams: import("element-vir").DeclarativeElementInputErrorParams<Inputs>) => <const TagName extends `vira-${string}`, State extends {}, EventsInit extends {}, const HostClassKeys extends `${TagName}-${string}` = `${TagName}-`, const CssVarKeys extends `${TagName}-${string}` = `${TagName}-`, const SlotNames extends ReadonlyArray<string> = readonly [], const TestIds extends ReadonlyArray<string> = readonly []>(inputs: import("element-vir").DeclarativeElementInit<TagName, Inputs, State, EventsInit, HostClassKeys, CssVarKeys, SlotNames, TestIds>) => import("element-vir").DeclarativeElementDefinition<TagName, Inputs, State, EventsInit, HostClassKeys, CssVarKeys, SlotNames, TestIds>;
@@ -16,4 +16,4 @@ export declare const ViraMenuItem: import("element-vir").DeclarativeElementDefin
16
16
  label: MenuItem["label"];
17
17
  /** If `true`, does not render the selected check icon. */
18
18
  hideCheckIcon: boolean;
19
- }>>, {}, {}, "vira-menu-item-selected", "vira-menu-item-", readonly []>;
19
+ }>>, {}, {}, "vira-menu-item-selected", "vira-menu-item-", readonly [], readonly []>;
@@ -52,4 +52,4 @@ export declare const ViraMenuTrigger: import("element-vir").DeclarativeElementDe
52
52
  }, {
53
53
  itemActivate: import("element-vir").DefineEvent<PropertyKey[]>;
54
54
  openChange: import("element-vir").DefineEvent<ShowPopUpResult | undefined>;
55
- }, "vira-menu-trigger-", "vira-menu-trigger-", readonly []>;
55
+ }, "vira-menu-trigger-", "vira-menu-trigger-", readonly [], readonly []>;
@@ -35,4 +35,4 @@ export declare const ViraMenu: import("element-vir").DeclarativeElementDefinitio
35
35
  hideCheckIcons: boolean;
36
36
  }>>, {
37
37
  internalNavController: NavController;
38
- }, {}, "vira-menu-multiselect", "vira-menu-", readonly []>;
38
+ }, {}, "vira-menu-multiselect", "vira-menu-", readonly [], readonly []>;
@@ -32,4 +32,4 @@ export declare const ViraPopUpMenu: import("element-vir").DeclarativeElementDefi
32
32
  direction: PopUpMenuDirection;
33
33
  /** @default PopUpMenuCornerStyle.Directional */
34
34
  cornerStyle: PopUpMenuCornerStyle;
35
- }>, {}, {}, "vira-pop-up-menu-open-upwards" | "vira-pop-up-menu-rounded" | "vira-pop-up-menu-square", "vira-pop-up-menu-", readonly []>;
35
+ }>, {}, {}, "vira-pop-up-menu-open-upwards" | "vira-pop-up-menu-rounded" | "vira-pop-up-menu-square", "vira-pop-up-menu-", readonly [], readonly []>;
@@ -78,4 +78,4 @@ export declare const ViraPopUpTrigger: import("element-vir").DeclarativeElementD
78
78
  navController: NavController;
79
79
  popUpManager: PopUpManager;
80
80
  }>;
81
- }, "vira-pop-up-trigger-disabled", "vira-pop-up-trigger-", readonly ["trigger", "popUp"]>;
81
+ }, "vira-pop-up-trigger-disabled", "vira-pop-up-trigger-", readonly ["trigger", "popUp"], readonly []>;
@@ -6,4 +6,4 @@
6
6
  export declare const ViraBoldText: import("element-vir").DeclarativeElementDefinition<"vira-bold", {
7
7
  bold: boolean;
8
8
  text: string;
9
- }, {}, {}, "vira-bold-bold", "vira-bold-bold-weight", readonly []>;
9
+ }, {}, {}, "vira-bold-bold", "vira-bold-bold-weight", readonly [], readonly []>;
@@ -28,4 +28,4 @@ export declare const ViraButton: import("element-vir").DeclarativeElementDefinit
28
28
  * @default false
29
29
  */
30
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 []>;
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 []>;
@@ -29,4 +29,4 @@ export type ViraCheckboxInputs = PartialWithUndefined<{
29
29
  */
30
30
  export declare const ViraCheckbox: import("element-vir").DeclarativeElementDefinition<"vira-checkbox", Readonly<ViraCheckboxInputs>, {}, {
31
31
  valueChange: import("element-vir").DefineEvent<boolean>;
32
- }, "vira-checkbox-", "vira-checkbox-", readonly []>;
32
+ }, "vira-checkbox-", "vira-checkbox-", readonly [], readonly []>;
@@ -11,4 +11,4 @@ export declare const ViraCollapsibleWrapper: import("element-vir").DeclarativeEl
11
11
  contentHeight: number;
12
12
  }, {
13
13
  expandChange: import("element-vir").DefineEvent<boolean>;
14
- }, "vira-collapsible-wrapper-expanded", "vira-collapsible-wrapper-", readonly ["header"]>;
14
+ }, "vira-collapsible-wrapper-expanded", "vira-collapsible-wrapper-", readonly ["header"], readonly []>;
@@ -54,4 +54,4 @@ export declare const ViraDropdown: import("element-vir").DeclarativeElementDefin
54
54
  }, {
55
55
  selectedChange: import("element-vir").DefineEvent<PropertyKey[]>;
56
56
  openChange: import("element-vir").DefineEvent<ShowPopUpResult | undefined>;
57
- }, "vira-dropdown-", "vira-dropdown-", readonly []>;
57
+ }, "vira-dropdown-", "vira-dropdown-", readonly [], readonly []>;
@@ -10,4 +10,4 @@ export declare const ViraIcon: import("element-vir").DeclarativeElementDefinitio
10
10
  icon: Pick<ViraIconSvg, "svgTemplate"> | undefined;
11
11
  /** Ignores the given icon's embedded size and causes the <svg> element to fill its parent. */
12
12
  fitContainer?: boolean | undefined;
13
- }, {}, {}, "vira-icon-fit-container", "vira-icon-", readonly []>;
13
+ }, {}, {}, "vira-icon-fit-container", "vira-icon-", readonly [], readonly []>;
@@ -42,4 +42,4 @@ export declare const ViraImage: import("element-vir").DeclarativeElementDefiniti
42
42
  }, {
43
43
  imageLoad: import("element-vir").DefineEvent<void>;
44
44
  imageError: import("element-vir").DefineEvent<unknown>;
45
- }, "vira-image-height-constrained", "vira-image-", readonly ["loading", "error"]>;
45
+ }, "vira-image-height-constrained", "vira-image-", readonly ["loading", "error"], readonly []>;
@@ -40,4 +40,4 @@ export declare const ViraInput: import("element-vir").DeclarativeElementDefiniti
40
40
  * that was blocked out of programmatic "value" property assignments.
41
41
  */
42
42
  inputBlocked: import("element-vir").DefineEvent<string>;
43
- }, "vira-input-disabled" | "vira-input-fit-text" | "vira-input-clear-button-shown", "vira-input-background-color" | "vira-input-placeholder-color" | "vira-input-text-color" | "vira-input-border-color" | "vira-input-text-selection-color" | "vira-input-action-button-color" | "vira-input-clear-button-hover-color" | "vira-input-clear-button-active-color" | "vira-input-show-password-button-hover-color" | "vira-input-show-password-button-active-color" | "vira-input-padding-horizontal" | "vira-input-padding-vertical", readonly []>;
43
+ }, "vira-input-disabled" | "vira-input-fit-text" | "vira-input-clear-button-shown", "vira-input-background-color" | "vira-input-placeholder-color" | "vira-input-text-color" | "vira-input-border-color" | "vira-input-text-selection-color" | "vira-input-action-button-color" | "vira-input-clear-button-hover-color" | "vira-input-clear-button-active-color" | "vira-input-show-password-button-hover-color" | "vira-input-show-password-button-active-color" | "vira-input-padding-horizontal" | "vira-input-padding-vertical", readonly [], readonly []>;
@@ -1,4 +1,5 @@
1
1
  import { assertWrap } from '@augment-vir/assert';
2
+ import { extractEventTarget } from '@augment-vir/web';
2
3
  import { attributes, css, defineElementEvent, html, ifDefined, listen, nothing, onResize, renderIf, } from 'element-vir';
3
4
  import { CloseX24Icon } from '../icons/icon-svgs/close-x-24.icon.js';
4
5
  import { EyeClosed24Icon, EyeOpen24Icon } from '../icons/index.js';
@@ -166,7 +167,7 @@ export const ViraInput = defineViraElement()({
166
167
  overflow: hidden;
167
168
  outline: none;
168
169
 
169
- &:focus:focus-visible:not(:active):not([disabled]) ~ .focus-border {
170
+ &:focus:focus-visible:not([disabled]) ~ .focus-border {
170
171
  ${createFocusStyles({
171
172
  elementBorderSize: 0,
172
173
  noNesting: true,
@@ -280,10 +281,15 @@ export const ViraInput = defineViraElement()({
280
281
  return html `
281
282
  <span
282
283
  class="input-wrapper"
283
- ${listen('mouseup', () => {
284
- assertWrap
285
- .instanceOf(host.shadowRoot.querySelector('input'), HTMLInputElement)
286
- .focus();
284
+ ${listen('mousedown', (event) => {
285
+ const eventTarget = extractEventTarget(event, HTMLElement, {
286
+ useOriginalTarget: true,
287
+ });
288
+ const inputElement = assertWrap.instanceOf(host.shadowRoot.querySelector('input'), HTMLInputElement);
289
+ if (eventTarget !== inputElement) {
290
+ event.preventDefault();
291
+ inputElement.focus();
292
+ }
287
293
  })}
288
294
  >
289
295
  ${iconTemplate}
@@ -328,10 +334,11 @@ export const ViraInput = defineViraElement()({
328
334
  <button
329
335
  class="clear-x-button"
330
336
  title="clear"
331
- ${listen('click', (event) => {
332
- /** Prevent focus of the input. */
337
+ ${listen('mousedown', (event) => {
333
338
  event.stopImmediatePropagation();
334
339
  event.preventDefault();
340
+ })}
341
+ ${listen('click', () => {
335
342
  dispatch(new events.valueChange(''));
336
343
  })}
337
344
  >
@@ -342,10 +349,12 @@ export const ViraInput = defineViraElement()({
342
349
  <button
343
350
  class="show-password-button"
344
351
  title="show password"
345
- ${listen('click', (event) => {
352
+ ${listen('mousedown', (event) => {
346
353
  /** Prevent focus of the input. */
347
354
  event.stopImmediatePropagation();
348
355
  event.preventDefault();
356
+ })}
357
+ ${listen('click', () => {
349
358
  updateState({ showPassword: !state.showPassword });
350
359
  })}
351
360
  >
@@ -70,4 +70,4 @@ export declare const ViraLink: import("element-vir").DeclarativeElementDefinitio
70
70
  attributePassthrough: Readonly<PartialWithUndefined<{
71
71
  a: AttributeValues;
72
72
  }>>;
73
- }>, {}, {}, "vira-link-", "vira-link-hover-color", readonly []>;
73
+ }>, {}, {}, "vira-link-", "vira-link-hover-color", readonly [], readonly []>;
@@ -15,4 +15,4 @@ export declare const ViraProgress: import("element-vir").DeclarativeElementDefin
15
15
  min: number;
16
16
  /** @default 100 */
17
17
  max: number;
18
- }>>, {}, {}, "vira-progress-", "vira-progress-border-radius" | "vira-progress-background-color" | "vira-progress-foreground-color", readonly []>;
18
+ }>>, {}, {}, "vira-progress-", "vira-progress-border-radius" | "vira-progress-background-color" | "vira-progress-foreground-color", readonly [], readonly []>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vira",
3
- "version": "26.13.1",
3
+ "version": "28.0.0",
4
4
  "description": "A simple and highly versatile design system using element-vir.",
5
5
  "keywords": [
6
6
  "design",
@@ -38,9 +38,9 @@
38
38
  "test:docs": "virmator docs check"
39
39
  },
40
40
  "dependencies": {
41
- "@augment-vir/assert": "^31.40.0",
42
- "@augment-vir/common": "^31.40.0",
43
- "@augment-vir/web": "^31.40.0",
41
+ "@augment-vir/assert": "^31.41.0",
42
+ "@augment-vir/common": "^31.41.0",
43
+ "@augment-vir/web": "^31.41.0",
44
44
  "colorjs.io": "^0.5.2",
45
45
  "date-vir": "^8.0.0",
46
46
  "device-navigation": "^4.5.5",
@@ -52,7 +52,7 @@
52
52
  "typed-event-target": "^4.1.0"
53
53
  },
54
54
  "devDependencies": {
55
- "@augment-vir/test": "^31.40.0",
55
+ "@augment-vir/test": "^31.41.0",
56
56
  "@web/dev-server-esbuild": "^1.0.4",
57
57
  "@web/test-runner": "^0.20.2",
58
58
  "@web/test-runner-commands": "^0.9.0",
@@ -63,7 +63,7 @@
63
63
  "markdown-code-example-inserter": "^3.0.3",
64
64
  "typedoc": "^0.28.14",
65
65
  "typescript": "5.9.3",
66
- "vite": "^7.1.9",
66
+ "vite": "^7.1.10",
67
67
  "vite-tsconfig-paths": "^5.1.4"
68
68
  },
69
69
  "peerDependencies": {