vira 31.24.2 → 31.25.1

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.
@@ -22,4 +22,11 @@ export declare const ViraMenuItem: import("element-vir").DeclarativeElementDefin
22
22
  }>, {
23
23
  /** Removes event listeners registered during init. */
24
24
  cleanupListeners: undefined | (() => void);
25
- }, {}, "vira-menu-item-selected" | "vira-menu-item-disabled" | "vira-menu-item-enabled" | "vira-menu-item-default-icon" | "vira-menu-item-default-styles", "vira-menu-item-", readonly [], readonly []>;
25
+ }, {
26
+ /**
27
+ * Fired when this menu item is activated by the user (a non-disabled click). Pop-up
28
+ * containers (e.g. `ViraPopUpTrigger`) listen to this to close the pop-up on selection,
29
+ * gated by `keepOpenAfterInteraction`.
30
+ */
31
+ activate: import("element-vir").DefineEvent<undefined>;
32
+ }, "vira-menu-item-selected" | "vira-menu-item-disabled" | "vira-menu-item-enabled" | "vira-menu-item-default-icon" | "vira-menu-item-default-styles", "vira-menu-item-", readonly [], readonly []>;
@@ -1,5 +1,5 @@
1
1
  import { assertWrap } from '@augment-vir/assert';
2
- import { css, html } from 'element-vir';
2
+ import { css, defineElementEvent, html } from 'element-vir';
3
3
  import { listenTo } from 'typed-event-target';
4
4
  import { Check24Icon } from '../../icons/icon-svgs/24/check-24.icon.js';
5
5
  import { viraFormCssVars } from '../../styles/form-styles.js';
@@ -20,6 +20,14 @@ export const ViraMenuItem = defineViraElement()({
20
20
  cleanupListeners: undefined,
21
21
  };
22
22
  },
23
+ events: {
24
+ /**
25
+ * Fired when this menu item is activated by the user (a non-disabled click). Pop-up
26
+ * containers (e.g. `ViraPopUpTrigger`) listen to this to close the pop-up on selection,
27
+ * gated by `keepOpenAfterInteraction`.
28
+ */
29
+ activate: defineElementEvent(),
30
+ },
23
31
  hostClasses: {
24
32
  'vira-menu-item-selected': ({ inputs }) => !!inputs.selected || !!inputs.iconOverride,
25
33
  'vira-menu-item-disabled': ({ inputs }) => !!inputs.disabled,
@@ -95,7 +103,7 @@ export const ViraMenuItem = defineViraElement()({
95
103
  min-width: 0;
96
104
  }
97
105
  `,
98
- init({ state, updateState, host, inputs }) {
106
+ init({ state, updateState, host, inputs, dispatch, events }) {
99
107
  host.setAttribute('role', 'menuitem');
100
108
  host.setAttribute('tabindex', inputs.disabled ? '-1' : '0');
101
109
  host.setAttribute('aria-selected', String(!!inputs.selected));
@@ -152,6 +160,22 @@ export const ViraMenuItem = defineViraElement()({
152
160
  const listenerRemovers = [
153
161
  listenTo(host, 'click', propagateMouseEvent),
154
162
  listenTo(host, 'mousedown', propagateMouseEvent),
163
+ /**
164
+ * Emit `select` on a non-disabled activation so the containing pop-up can close. This
165
+ * uses the _capture_ phase because interactive slotted content can stop the click from
166
+ * bubbling back up to this host (which would prevent a bubble-phase listener from ever
167
+ * running). The `propagating` guard skips the synthetic click that
168
+ * `propagateMouseEvent` re-dispatches onto slotted content, so `select` fires exactly
169
+ * once per activation.
170
+ */
171
+ listenTo(host, 'click', (event) => {
172
+ if (propagating[event.type] || inputs.disabled) {
173
+ return;
174
+ }
175
+ dispatch(new events.activate(undefined));
176
+ }, {
177
+ capture: true,
178
+ }),
155
179
  listenTo(host, 'mouseenter', () => {
156
180
  if (!inputs.disabled) {
157
181
  host.focus();
@@ -7,6 +7,7 @@ import { noNativeFormStyles, noUserSelect, viraDisabledStyles } from '../../styl
7
7
  import { defineViraElement } from '../../util/define-vira-element.js';
8
8
  import { triggerPopUpState } from '../../util/pop-up-helpers.js';
9
9
  import { HidePopUpEvent, isInputLikeElement, NavSelectEvent, PopUpManager, } from '../../util/pop-up-manager.js';
10
+ import { ViraMenuItem } from './vira-menu-item.element.js';
10
11
  /**
11
12
  * Anchor options for pop-ups.
12
13
  *
@@ -359,6 +360,14 @@ export const ViraPopUpTrigger = defineViraElement()({
359
360
  if (event.composedPath().includes(dropdownTrigger)) {
360
361
  respondToClick(event);
361
362
  }
363
+ })}
364
+ ${listen(ViraMenuItem.events.activate, (event) => {
365
+ if (state.showPopUpResult) {
366
+ triggerPopUp({
367
+ emitEvent: true,
368
+ open: false,
369
+ }, event);
370
+ }
362
371
  })}
363
372
  >
364
373
  <div class="dropdown-trigger">
@@ -17,6 +17,13 @@ export declare const ViraAbsoluteTime: import("element-vir").DeclarativeElementD
17
17
  * time of day would be meaningless noise.
18
18
  */
19
19
  dateOnly: boolean;
20
+ /**
21
+ * Timezone the value is displayed in. Defaults to the user's timezone. Set this for values
22
+ * that are conceptually anchored to a specific timezone (e.g. a date-only value stored at
23
+ * midnight UTC), where converting to the user's timezone would shift the displayed
24
+ * date/time.
25
+ */
26
+ timezone: string;
20
27
  }>, {}, {}, "vira-absolute-time-", "vira-absolute-time-", readonly [], readonly []>;
21
28
  /**
22
29
  * Formats a `FullDate` into the same absolute string rendered by {@link ViraAbsoluteTime}.
@@ -25,4 +32,5 @@ export declare const ViraAbsoluteTime: import("element-vir").DeclarativeElementD
25
32
  */
26
33
  export declare function formatAbsoluteTime(time: Readonly<FullDate>, options?: Readonly<PartialWithUndefined<{
27
34
  dateOnly: boolean;
35
+ timezone: string;
28
36
  }>>): string;
@@ -1,4 +1,4 @@
1
- import { createFullDateInUserTimezone, toFormattedString } from 'date-vir';
1
+ import { createFullDate, createFullDateInUserTimezone, toFormattedString, } from 'date-vir';
2
2
  import { css } from 'element-vir';
3
3
  import { defineViraElement } from '../util/define-vira-element.js';
4
4
  /**
@@ -19,6 +19,7 @@ export const ViraAbsoluteTime = defineViraElement()({
19
19
  render({ inputs }) {
20
20
  return formatAbsoluteTime(inputs.time, {
21
21
  dateOnly: inputs.dateOnly,
22
+ timezone: inputs.timezone,
22
23
  });
23
24
  },
24
25
  });
@@ -28,5 +29,7 @@ export const ViraAbsoluteTime = defineViraElement()({
28
29
  * @category Time
29
30
  */
30
31
  export function formatAbsoluteTime(time, options) {
31
- return toFormattedString(createFullDateInUserTimezone(time), options?.dateOnly ? 'MMM d, yyyy' : 'MMM d, yyyy HH:mm ZZZZ');
32
+ return toFormattedString(options?.timezone
33
+ ? createFullDate(time, options.timezone)
34
+ : createFullDateInUserTimezone(time), options?.dateOnly ? 'MMM d, yyyy' : 'MMM d, yyyy HH:mm ZZZZ');
32
35
  }
@@ -23,6 +23,8 @@ export declare const ViraDateInput: import("element-vir").DeclarativeElementDefi
23
23
  isDisabled: boolean;
24
24
  /** If true, the current value is rendered as plain text instead of an editable input. */
25
25
  isReadonly: boolean;
26
+ /** Timezone used to interpret the selected date. Defaults to the user's timezone. */
27
+ timezone: string;
26
28
  }>, {
27
29
  /** Used to couple the label and input together. Not applied when no label is provided. */
28
30
  randomId: string;
@@ -36,6 +38,6 @@ export declare const ViraDateInput: import("element-vir").DeclarativeElementDefi
36
38
  month: import("date-vir").MonthNumber;
37
39
  day: import("date-vir").DayOfMonth;
38
40
  second: import("date-vir").Second;
39
- timezone: "Africa/Abidjan" | "Africa/Accra" | "Africa/Addis_Ababa" | "Africa/Algiers" | "Africa/Asmara" | "Africa/Bamako" | "Africa/Bangui" | "Africa/Banjul" | "Africa/Bissau" | "Africa/Blantyre" | "Africa/Brazzaville" | "Africa/Bujumbura" | "Africa/Cairo" | "Africa/Casablanca" | "Africa/Ceuta" | "Africa/Conakry" | "Africa/Dakar" | "Africa/Dar_es_Salaam" | "Africa/Djibouti" | "Africa/Douala" | "Africa/El_Aaiun" | "Africa/Freetown" | "Africa/Gaborone" | "Africa/Harare" | "Africa/Johannesburg" | "Africa/Juba" | "Africa/Kampala" | "Africa/Khartoum" | "Africa/Kigali" | "Africa/Kinshasa" | "Africa/Lagos" | "Africa/Libreville" | "Africa/Lome" | "Africa/Luanda" | "Africa/Lubumbashi" | "Africa/Lusaka" | "Africa/Malabo" | "Africa/Maputo" | "Africa/Maseru" | "Africa/Mbabane" | "Africa/Mogadishu" | "Africa/Monrovia" | "Africa/Nairobi" | "Africa/Ndjamena" | "Africa/Niamey" | "Africa/Nouakchott" | "Africa/Ouagadougou" | "Africa/Porto-Novo" | "Africa/Sao_Tome" | "Africa/Timbuktu" | "Africa/Tripoli" | "Africa/Tunis" | "Africa/Windhoek" | "America/Adak" | "America/Anchorage" | "America/Anguilla" | "America/Antigua" | "America/Araguaina" | "America/Argentina/Buenos_Aires" | "America/Argentina/Catamarca" | "America/Argentina/ComodRivadavia" | "America/Argentina/Cordoba" | "America/Argentina/Jujuy" | "America/Argentina/La_Rioja" | "America/Argentina/Mendoza" | "America/Argentina/Rio_Gallegos" | "America/Argentina/Salta" | "America/Argentina/San_Juan" | "America/Argentina/San_Luis" | "America/Argentina/Tucuman" | "America/Argentina/Ushuaia" | "America/Aruba" | "America/Asuncion" | "America/Atikokan" | "America/Bahia" | "America/Bahia_Banderas" | "America/Barbados" | "America/Belem" | "America/Belize" | "America/Blanc-Sablon" | "America/Boa_Vista" | "America/Bogota" | "America/Boise" | "America/Cambridge_Bay" | "America/Campo_Grande" | "America/Cancun" | "America/Caracas" | "America/Cayenne" | "America/Cayman" | "America/Chicago" | "America/Chihuahua" | "America/Coral_Harbour" | "America/Costa_Rica" | "America/Creston" | "America/Cuiaba" | "America/Curacao" | "America/Danmarkshavn" | "America/Dawson" | "America/Dawson_Creek" | "America/Denver" | "America/Detroit" | "America/Dominica" | "America/Edmonton" | "America/Eirunepe" | "America/El_Salvador" | "America/Ensenada" | "America/Fort_Nelson" | "America/Fortaleza" | "America/Glace_Bay" | "America/Goose_Bay" | "America/Grand_Turk" | "America/Grenada" | "America/Guadeloupe" | "America/Guatemala" | "America/Guayaquil" | "America/Guyana" | "America/Halifax" | "America/Havana" | "America/Hermosillo" | "America/Indiana/Indianapolis" | "America/Indiana/Knox" | "America/Indiana/Marengo" | "America/Indiana/Petersburg" | "America/Indiana/Tell_City" | "America/Indiana/Vevay" | "America/Indiana/Vincennes" | "America/Indiana/Winamac" | "America/Inuvik" | "America/Iqaluit" | "America/Jamaica" | "America/Juneau" | "America/Kentucky/Louisville" | "America/Kentucky/Monticello" | "America/La_Paz" | "America/Lima" | "America/Los_Angeles" | "America/Maceio" | "America/Managua" | "America/Manaus" | "America/Martinique" | "America/Matamoros" | "America/Mazatlan" | "America/Menominee" | "America/Merida" | "America/Metlakatla" | "America/Mexico_City" | "America/Miquelon" | "America/Moncton" | "America/Monterrey" | "America/Montevideo" | "America/Montreal" | "America/Montserrat" | "America/Nassau" | "America/New_York" | "America/Nipigon" | "America/Nome" | "America/Noronha" | "America/North_Dakota/Beulah" | "America/North_Dakota/Center" | "America/North_Dakota/New_Salem" | "America/Nuuk" | "America/Ojinaga" | "America/Panama" | "America/Pangnirtung" | "America/Paramaribo" | "America/Phoenix" | "America/Port-au-Prince" | "America/Port_of_Spain" | "America/Porto_Velho" | "America/Puerto_Rico" | "America/Punta_Arenas" | "America/Rainy_River" | "America/Rankin_Inlet" | "America/Recife" | "America/Regina" | "America/Resolute" | "America/Rio_Branco" | "America/Rosario" | "America/Santarem" | "America/Santiago" | "America/Santo_Domingo" | "America/Sao_Paulo" | "America/Scoresbysund" | "America/Sitka" | "America/St_Johns" | "America/St_Kitts" | "America/St_Lucia" | "America/St_Thomas" | "America/St_Vincent" | "America/Swift_Current" | "America/Tegucigalpa" | "America/Thule" | "America/Thunder_Bay" | "America/Tijuana" | "America/Toronto" | "America/Tortola" | "America/Vancouver" | "America/Whitehorse" | "America/Winnipeg" | "America/Yakutat" | "America/Yellowknife" | "Antarctica/Casey" | "Antarctica/Davis" | "Antarctica/DumontDUrville" | "Antarctica/Macquarie" | "Antarctica/Mawson" | "Antarctica/McMurdo" | "Antarctica/Palmer" | "Antarctica/Rothera" | "Antarctica/Syowa" | "Antarctica/Troll" | "Antarctica/Vostok" | "Asia/Aden" | "Asia/Almaty" | "Asia/Amman" | "Asia/Anadyr" | "Asia/Aqtau" | "Asia/Aqtobe" | "Asia/Ashgabat" | "Asia/Atyrau" | "Asia/Baghdad" | "Asia/Bahrain" | "Asia/Baku" | "Asia/Bangkok" | "Asia/Barnaul" | "Asia/Beirut" | "Asia/Bishkek" | "Asia/Brunei" | "Asia/Chita" | "Asia/Choibalsan" | "Asia/Chongqing" | "Asia/Colombo" | "Asia/Damascus" | "Asia/Dhaka" | "Asia/Dili" | "Asia/Dubai" | "Asia/Dushanbe" | "Asia/Famagusta" | "Asia/Gaza" | "Asia/Harbin" | "Asia/Hebron" | "Asia/Ho_Chi_Minh" | "Asia/Hong_Kong" | "Asia/Hovd" | "Asia/Irkutsk" | "Asia/Jakarta" | "Asia/Jayapura" | "Asia/Jerusalem" | "Asia/Kabul" | "Asia/Kamchatka" | "Asia/Karachi" | "Asia/Kashgar" | "Asia/Kathmandu" | "Asia/Khandyga" | "Asia/Kolkata" | "Asia/Krasnoyarsk" | "Asia/Kuala_Lumpur" | "Asia/Kuching" | "Asia/Kuwait" | "Asia/Macau" | "Asia/Magadan" | "Asia/Makassar" | "Asia/Manila" | "Asia/Muscat" | "Asia/Nicosia" | "Asia/Novokuznetsk" | "Asia/Novosibirsk" | "Asia/Omsk" | "Asia/Oral" | "Asia/Phnom_Penh" | "Asia/Pontianak" | "Asia/Pyongyang" | "Asia/Qatar" | "Asia/Qostanay" | "Asia/Qyzylorda" | "Asia/Riyadh" | "Asia/Sakhalin" | "Asia/Samarkand" | "Asia/Seoul" | "Asia/Shanghai" | "Asia/Singapore" | "Asia/Srednekolymsk" | "Asia/Taipei" | "Asia/Tashkent" | "Asia/Tbilisi" | "Asia/Tehran" | "Asia/Tel_Aviv" | "Asia/Thimphu" | "Asia/Tokyo" | "Asia/Tomsk" | "Asia/Ulaanbaatar" | "Asia/Urumqi" | "Asia/Ust-Nera" | "Asia/Vientiane" | "Asia/Vladivostok" | "Asia/Yakutsk" | "Asia/Yangon" | "Asia/Yekaterinburg" | "Asia/Yerevan" | "Atlantic/Azores" | "Atlantic/Bermuda" | "Atlantic/Canary" | "Atlantic/Cape_Verde" | "Atlantic/Faroe" | "Atlantic/Jan_Mayen" | "Atlantic/Madeira" | "Atlantic/Reykjavik" | "Atlantic/South_Georgia" | "Atlantic/St_Helena" | "Atlantic/Stanley" | "Australia/Adelaide" | "Australia/Brisbane" | "Australia/Broken_Hill" | "Australia/Currie" | "Australia/Darwin" | "Australia/Eucla" | "Australia/Hobart" | "Australia/Lindeman" | "Australia/Lord_Howe" | "Australia/Melbourne" | "Australia/Perth" | "Australia/Sydney" | "CET" | "CST6CDT" | "EET" | "EST" | "EST5EDT" | "Etc/GMT+1" | "Etc/GMT+10" | "Etc/GMT+11" | "Etc/GMT+12" | "Etc/GMT+2" | "Etc/GMT+3" | "Etc/GMT+4" | "Etc/GMT+5" | "Etc/GMT+6" | "Etc/GMT+7" | "Etc/GMT+8" | "Etc/GMT+9" | "Etc/GMT-1" | "Etc/GMT-10" | "Etc/GMT-11" | "Etc/GMT-12" | "Etc/GMT-13" | "Etc/GMT-14" | "Etc/GMT-2" | "Etc/GMT-3" | "Etc/GMT-4" | "Etc/GMT-5" | "Etc/GMT-6" | "Etc/GMT-7" | "Etc/GMT-8" | "Etc/GMT-9" | "Europe/Amsterdam" | "Europe/Andorra" | "Europe/Astrakhan" | "Europe/Athens" | "Europe/Belfast" | "Europe/Belgrade" | "Europe/Berlin" | "Europe/Brussels" | "Europe/Bucharest" | "Europe/Budapest" | "Europe/Chisinau" | "Europe/Copenhagen" | "Europe/Dublin" | "Europe/Gibraltar" | "Europe/Guernsey" | "Europe/Helsinki" | "Europe/Isle_of_Man" | "Europe/Istanbul" | "Europe/Jersey" | "Europe/Kaliningrad" | "Europe/Kirov" | "Europe/Kyiv" | "Europe/Lisbon" | "Europe/Ljubljana" | "Europe/London" | "Europe/Luxembourg" | "Europe/Madrid" | "Europe/Malta" | "Europe/Minsk" | "Europe/Monaco" | "Europe/Moscow" | "Europe/Oslo" | "Europe/Paris" | "Europe/Prague" | "Europe/Riga" | "Europe/Rome" | "Europe/Samara" | "Europe/Sarajevo" | "Europe/Saratov" | "Europe/Simferopol" | "Europe/Skopje" | "Europe/Sofia" | "Europe/Stockholm" | "Europe/Tallinn" | "Europe/Tirane" | "Europe/Tiraspol" | "Europe/Ulyanovsk" | "Europe/Uzhgorod" | "Europe/Vaduz" | "Europe/Vienna" | "Europe/Vilnius" | "Europe/Volgograd" | "Europe/Warsaw" | "Europe/Zagreb" | "Europe/Zaporozhye" | "Europe/Zurich" | "HST" | "Indian/Antananarivo" | "Indian/Chagos" | "Indian/Christmas" | "Indian/Cocos" | "Indian/Comoro" | "Indian/Kerguelen" | "Indian/Mahe" | "Indian/Maldives" | "Indian/Mauritius" | "Indian/Mayotte" | "Indian/Reunion" | "MET" | "MST" | "MST7MDT" | "PST8PDT" | "Pacific/Apia" | "Pacific/Auckland" | "Pacific/Bougainville" | "Pacific/Chatham" | "Pacific/Chuuk" | "Pacific/Easter" | "Pacific/Efate" | "Pacific/Enderbury" | "Pacific/Fakaofo" | "Pacific/Fiji" | "Pacific/Funafuti" | "Pacific/Galapagos" | "Pacific/Gambier" | "Pacific/Guadalcanal" | "Pacific/Guam" | "Pacific/Honolulu" | "Pacific/Johnston" | "Pacific/Kanton" | "Pacific/Kiritimati" | "Pacific/Kosrae" | "Pacific/Kwajalein" | "Pacific/Majuro" | "Pacific/Marquesas" | "Pacific/Midway" | "Pacific/Nauru" | "Pacific/Niue" | "Pacific/Norfolk" | "Pacific/Noumea" | "Pacific/Pago_Pago" | "Pacific/Palau" | "Pacific/Pitcairn" | "Pacific/Pohnpei" | "Pacific/Port_Moresby" | "Pacific/Rarotonga" | "Pacific/Saipan" | "Pacific/Tahiti" | "Pacific/Tarawa" | "Pacific/Tongatapu" | "Pacific/Wake" | "Pacific/Wallis" | "UTC" | "WET";
41
+ timezone: string;
40
42
  } | undefined>;
41
43
  }, "vira-date-input-error" | "vira-date-input-disabled", "vira-date-input-", readonly [], readonly []>;
@@ -79,6 +79,7 @@ export const ViraDateInput = defineViraElement()({
79
79
  <${ViraAbsoluteTime.assign({
80
80
  time: inputs.value,
81
81
  dateOnly: true,
82
+ timezone: inputs.timezone,
82
83
  })}></${ViraAbsoluteTime}>
83
84
  `
84
85
  : html `
@@ -113,7 +114,7 @@ export const ViraDateInput = defineViraElement()({
113
114
  .value=${inputValue}
114
115
  ${listen('input', (event) => {
115
116
  const element = extractEventTarget(event, HTMLInputElement);
116
- dispatch(new events.valueChange(parseInputElementValue(element, userTimezone)));
117
+ dispatch(new events.valueChange(parseInputElementValue(element, inputs.timezone || userTimezone)));
117
118
  })}
118
119
  />
119
120
  `;
@@ -269,6 +269,7 @@ export const ViraForm = defineViraElement()({
269
269
  value: field.value,
270
270
  min: field.min,
271
271
  max: field.max,
272
+ timezone: field.timezone,
272
273
  isDisabled,
273
274
  hasError: field.hasError,
274
275
  isReadonly: inputs.isReadonly,
@@ -114,6 +114,8 @@ export type ViraFormField = ({
114
114
  min: FullDate;
115
115
  /** Upper bound for selectable dates. Defaults to 10 years from now when omitted. */
116
116
  max: FullDate;
117
+ /** Timezone used to interpret the selected date. Defaults to the user's timezone. */
118
+ timezone: string;
117
119
  }> & CommonViraFormFields);
118
120
  /**
119
121
  * A collection of form fields for `ViraForm`.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vira",
3
- "version": "31.24.2",
3
+ "version": "31.25.1",
4
4
  "description": "A simple and highly versatile design system using element-vir.",
5
5
  "keywords": [
6
6
  "design",
@@ -38,37 +38,37 @@
38
38
  "test:docs": "virmator docs check"
39
39
  },
40
40
  "dependencies": {
41
- "@augment-vir/assert": "^31.71.3",
42
- "@augment-vir/common": "^31.71.3",
43
- "@augment-vir/web": "^31.71.3",
44
- "@electrovir/color": "^1.7.9",
41
+ "@augment-vir/assert": "^31.73.2",
42
+ "@augment-vir/common": "^31.73.2",
43
+ "@augment-vir/web": "^31.73.2",
44
+ "@electrovir/color": "^1.7.10",
45
45
  "@electrovir/local-storage-client": "^0.1.0",
46
- "date-vir": "^8.3.2",
47
- "device-navigation": "^4.5.5",
46
+ "date-vir": "^8.6.1",
47
+ "device-navigation": "^4.7.2",
48
48
  "json-schema-to-ts": "^3.1.1",
49
49
  "lit-css-vars": "^3.6.2",
50
- "object-shape-tester": "^6.13.0",
50
+ "object-shape-tester": "^6.14.0",
51
51
  "observavir": "^2.3.2",
52
52
  "page-active": "^1.0.3",
53
53
  "spa-router-vir": "^6.6.0",
54
- "type-fest": "^5.6.0",
55
- "typed-event-target": "^4.3.0"
54
+ "type-fest": "^5.7.0",
55
+ "typed-event-target": "^4.3.1"
56
56
  },
57
57
  "devDependencies": {
58
- "@augment-vir/test": "^31.71.3",
58
+ "@augment-vir/test": "^31.73.2",
59
59
  "@web/dev-server-esbuild": "^1.0.5",
60
60
  "@web/test-runner": "^0.20.2",
61
61
  "@web/test-runner-commands": "^0.9.0",
62
62
  "@web/test-runner-playwright": "^0.11.1",
63
63
  "@web/test-runner-visual-regression": "^0.10.0",
64
- "esbuild": "^0.28.0",
64
+ "esbuild": "^0.28.1",
65
65
  "istanbul-smart-text-reporter": "^1.1.5",
66
- "lucide-static": "^1.17.0",
66
+ "lucide-static": "^1.21.0",
67
67
  "markdown-code-example-inserter": "^3.0.5",
68
68
  "theme-vir": "^28.25.0",
69
69
  "typedoc": "^0.28.19",
70
- "typescript": "5.9.3",
71
- "vite": "^8.0.14",
70
+ "typescript": "6.0.3",
71
+ "vite": "^8.0.16",
72
72
  "vite-tsconfig-paths": "^6.1.1"
73
73
  },
74
74
  "peerDependencies": {