@camstack/ui-library 1.2.368 → 1.2.370

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -7,6 +7,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [1.2.370] - 2026-11-02
11
+
12
+ ### Changed
13
+
14
+ - Exports uiLibraryVersion so the admin UI can tell which library a page was built against.
15
+ - A registered keyboard shortcut can carry a label, and useRegisteredHotkeys lists the shortcuts currently registered.
16
+
17
+ ## [1.2.369] - 2026-11-01
18
+
19
+ ### Changed
20
+
21
+ - Generated hooks for the fan presets capability.
22
+ - A heater has its own card with a heat glow, and a heater or pet fountain shows a run-for-N timer with a countdown.
23
+
10
24
  ## [1.2.368] - 2026-11-01
11
25
 
12
26
  ### Changed
@@ -1,4 +1,4 @@
1
- import { Sn as Grid2x2, TEXT_HINT, UiTrans, WidgetPanel, isAbsentProvider, useDeviceProxy, usePlayerOverlayLayer, useSystem, useUiText } from "./index.js";
1
+ import { Cn as Grid2x2, TEXT_HINT, UiTrans, WidgetPanel, isAbsentProvider, useDeviceProxy, usePlayerOverlayLayer, useSystem, useUiText } from "./index.js";
2
2
  import { MaskShapeCanvas } from "./MaskShapeCanvas-C9cJlxvG.js";
3
3
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
4
4
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
@@ -1,5 +1,5 @@
1
1
  import { n as Hexagon, t as MicOff } from "./mic-off-C2VTYr91.js";
2
- import { A as Trash2, Fn as EyeOff, Gt as Mic, TEXT_HINT, U as Square, UiTrans, WidgetPanel, isAbsentProvider, useDeviceProxy, usePlayerOverlayLayer, useSystem, useUiText } from "./index.js";
2
+ import { A as Trash2, In as EyeOff, Kt as Mic, TEXT_HINT, UiTrans, W as Square, WidgetPanel, isAbsentProvider, useDeviceProxy, usePlayerOverlayLayer, useSystem, useUiText } from "./index.js";
3
3
  import { MaskShapeCanvas } from "./MaskShapeCanvas-C9cJlxvG.js";
4
4
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
5
5
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
@@ -1,5 +1,5 @@
1
1
  import { t as Settings2 } from "./settings-2-jT1iBqHD.js";
2
- import { A as Trash2, SCENE_CAPTURE_VARIANTS, TEXT_HINT, UiTrans, badgeFor, coverageLine, hubPath, isAbsentProvider, mt as RotateCcw, pn as ImageOff, roiTooLarge, statusLine, useConfirm, useDeviceProxy, useDeviceSnapshotImage, useDeviceStateSlice, useSystem, useUiText, variantLabel, wr as Camera } from "./index.js";
2
+ import { A as Trash2, SCENE_CAPTURE_VARIANTS, TEXT_HINT, Tr as Camera, UiTrans, badgeFor, coverageLine, ht as RotateCcw, hubPath, isAbsentProvider, mn as ImageOff, roiTooLarge, statusLine, useConfirm, useDeviceProxy, useDeviceSnapshotImage, useDeviceStateSlice, useSystem, useUiText, variantLabel } from "./index.js";
3
3
  import { MaskShapeCanvas } from "./MaskShapeCanvas-C9cJlxvG.js";
4
4
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
5
5
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
@@ -13,4 +13,22 @@ export declare function climateTargetFromFraction(fraction: number, bounds: {
13
13
  readonly min: number;
14
14
  readonly max: number;
15
15
  }, tempStep: number | null | undefined): number;
16
+ export declare const KEYFRAMES = "\n@keyframes acv-fall { 0%{transform:translateY(-1.75rem);opacity:0} 18%{opacity:.7} 82%{opacity:.7} 100%{transform:translateY(7.5rem);opacity:0} }\n@keyframes acv-rise { 0%{transform:translateY(7.5rem);opacity:0} 18%{opacity:.7} 82%{opacity:.7} 100%{transform:translateY(-1.75rem);opacity:0} }\n@keyframes acv-sway { 0%,100%{transform:translateX(-9%)} 50%{transform:translateX(9%)} }\n@keyframes acv-swing-h { 0%,100%{transform:translateX(-22%)} 50%{transform:translateX(22%)} }\n@keyframes acv-swing-v { 0%,100%{transform:translateY(-22%)} 50%{transform:translateY(22%)} }\n@keyframes acv-spin { to { transform:rotate(360deg) } }\n@keyframes acv-glow { 0%,100%{opacity:.35;transform:scale(1)} 50%{opacity:.6;transform:scale(1.06)} }\n@media (prefers-reduced-motion: reduce) {\n .acv-streak, .acv-fan, .acv-sway-wrap, .acv-glow, .acv-swing { animation: none !important; }\n}\n";
16
17
  export declare function AcPanel({ trpc, deviceId, layout, optimistic }: ControlPanelProps): ReactNode;
18
+ /** Fan strength meter — 5 ascending bars (fill = level) or a wind glyph for
19
+ * auto; the active bars pulse subtly via the spinning fan in the airflow. */
20
+ interface AirflowVizProps {
21
+ readonly mode: HvacMode;
22
+ readonly accent: string;
23
+ readonly periodSec: number;
24
+ readonly swaying: boolean;
25
+ /** Heater: the same streaks always rise, including auto. */
26
+ readonly forceRising?: boolean;
27
+ }
28
+ /**
29
+ * Animated centerpiece. `fan_only` renders a spinning fan; `off` a dim static
30
+ * vent; every active mode renders drifting particles that FALL (cool/dry/auto)
31
+ * or RISE (heat), with a horizontal sweep overlaid when a swing axis is active.
32
+ */
33
+ export declare function AirflowViz({ mode, accent, periodSec, swaying, forceRising }: AirflowVizProps): ReactNode;
34
+ export {};
@@ -0,0 +1,4 @@
1
+ import type { ReactNode } from "react";
2
+ import type { DeviceControlProps } from "./control-registry";
3
+ export declare function HeaterInlineControl(props: DeviceControlProps): ReactNode;
4
+ export declare function HeaterHeroCard(props: DeviceControlProps): ReactNode;
@@ -0,0 +1,13 @@
1
+ import { type ReactNode } from "react";
2
+ import type { TimedRunLimit } from "@camstack/types";
3
+ import type { UseDeviceProxyTrpc } from "../../hooks/use-device-proxy";
4
+ export interface TimedRunControlProps {
5
+ readonly trpc: UseDeviceProxyTrpc;
6
+ readonly deviceId: number;
7
+ readonly limit: TimedRunLimit;
8
+ }
9
+ /** `m:ss` for a countdown; a started run never shows a negative time. */
10
+ export declare function formatCountdown(remainingMs: number): string;
11
+ /** The largest value the field accepts, in the limit's unit. */
12
+ export declare function maxInUnit(limit: TimedRunLimit): number;
13
+ export declare function TimedRunControl({ trpc, deviceId, limit }: TimedRunControlProps): ReactNode;
@@ -841,6 +841,10 @@ export declare const useDisplayPaletteGetPalette: typeof trpc.displayPalette.get
841
841
  export declare const useDisplayPaletteListPresets: typeof trpc.displayPalette.listPresets.useQuery;
842
842
  /** Generated alias around `trpc.displayPalette.setPalette.useMutation`. */
843
843
  export declare const useDisplayPaletteSetPalette: typeof trpc.displayPalette.setPalette.useMutation;
844
+ /** Generated alias around `trpc.doNotDisturb.setEnabled.useMutation`. */
845
+ export declare const useDoNotDisturbSetEnabled: typeof trpc.doNotDisturb.setEnabled.useMutation;
846
+ /** Generated alias around `trpc.doNotDisturb.getStatus.useQuery`. */
847
+ export declare const useDoNotDisturbGetStatus: typeof trpc.doNotDisturb.getStatus.useQuery;
844
848
  /** Generated alias around `trpc.doorbell.getStatus.useQuery`. */
845
849
  export declare const useDoorbellGetStatus: typeof trpc.doorbell.getStatus.useQuery;
846
850
  /** Generated alias around `trpc.enumSensor.getStatus.useQuery`. */
@@ -889,6 +893,14 @@ export declare const useFanControlSetDirection: typeof trpc.fanControl.setDirect
889
893
  export declare const useFanControlSetOscillating: typeof trpc.fanControl.setOscillating.useMutation;
890
894
  /** Generated alias around `trpc.fanControl.getStatus.useQuery`. */
891
895
  export declare const useFanControlGetStatus: typeof trpc.fanControl.getStatus.useQuery;
896
+ /** Generated alias around `trpc.fanPresets.getPresets.useQuery`. */
897
+ export declare const useFanPresetsGetPresets: typeof trpc.fanPresets.getPresets.useQuery;
898
+ /** Generated alias around `trpc.fanPresets.setPresets.useMutation`. */
899
+ export declare const useFanPresetsSetPresets: typeof trpc.fanPresets.setPresets.useMutation;
900
+ /** Generated alias around `trpc.fanPresets.applyPreset.useMutation`. */
901
+ export declare const useFanPresetsApplyPreset: typeof trpc.fanPresets.applyPreset.useMutation;
902
+ /** Generated alias around `trpc.fanPresets.capturePreset.useQuery`. */
903
+ export declare const useFanPresetsCapturePreset: typeof trpc.fanPresets.capturePreset.useQuery;
892
904
  /** Generated alias around `trpc.featureProbe.getStatus.useQuery`. */
893
905
  export declare const useFeatureProbeGetStatus: typeof trpc.featureProbe.getStatus.useQuery;
894
906
  /** Generated alias around `trpc.flood.getStatus.useQuery`. */
@@ -2419,6 +2431,12 @@ export declare const useTerminalSessionPullOutput: typeof trpc.terminalSession.p
2419
2431
  export declare const useTerminalSessionWriteInput: typeof trpc.terminalSession.writeInput.useMutation;
2420
2432
  /** Generated alias around `trpc.terminalSession.close.useMutation`. */
2421
2433
  export declare const useTerminalSessionClose: typeof trpc.terminalSession.close.useMutation;
2434
+ /** Generated alias around `trpc.timedRun.runFor.useMutation`. */
2435
+ export declare const useTimedRunRunFor: typeof trpc.timedRun.runFor.useMutation;
2436
+ /** Generated alias around `trpc.timedRun.cancel.useMutation`. */
2437
+ export declare const useTimedRunCancel: typeof trpc.timedRun.cancel.useMutation;
2438
+ /** Generated alias around `trpc.timedRun.getStatus.useQuery`. */
2439
+ export declare const useTimedRunGetStatus: typeof trpc.timedRun.getStatus.useQuery;
2422
2440
  /** Generated alias around `trpc.toast.onToast.useSubscription`. */
2423
2441
  export declare const useToastOnToast: typeof trpc.toast.onToast.useSubscription;
2424
2442
  /** Generated alias around `trpc.training.listBaseModels.useQuery`. */
@@ -10,6 +10,14 @@ export interface UseHotkeyOptions {
10
10
  readonly preventDefault?: boolean;
11
11
  /** Fire while typing in a field. Default: only combos that carry `mod`. */
12
12
  readonly allowInInput?: boolean;
13
+ /** What the binding does, in the operator's words; shown by the read-only hotkey list. */
14
+ readonly label?: string;
15
+ }
16
+ /** One binding as the registry exposes it for display. */
17
+ export interface RegisteredHotkey {
18
+ readonly combo: HotkeyCombo;
19
+ readonly scope: string;
20
+ readonly label: string | null;
13
21
  }
14
22
  export declare const PAGE_SCOPE = "page";
15
23
  /** Asked last, after the page: a global handler that yields to whatever the page registers. */
@@ -21,6 +29,11 @@ export interface HotkeyProviderProps {
21
29
  }
22
30
  export declare function HotkeyProvider({ children, platform }: HotkeyProviderProps): JSX.Element;
23
31
  /**
32
+ * The bindings registered below the `HotkeyProvider` right now (read-only; there
33
+ * is no rebinding). Empty without a provider.
34
+ */
35
+ export declare function useRegisteredHotkeys(): readonly RegisteredHotkey[];
36
+ /**
24
37
  * Bind a combo for the life of the component. Without a `HotkeyProvider` above
25
38
  * it does nothing, so the browser keeps its own shortcut.
26
39
  */
@@ -1,6 +1,6 @@
1
1
  export type { HotkeyCombo, HotkeyKey, HotkeyModifier, HotkeyPlatform, KeyEventLike } from "./combo";
2
2
  export { detectPlatform, matchesCombo, parseCombo } from "./combo";
3
- export type { HotkeyHandler, HotkeyProviderProps, HotkeyScopeProps, UseHotkeyOptions } from "./hotkey-provider";
4
- export { FALLBACK_SCOPE, HotkeyProvider, HotkeyScope, useHotkey } from "./hotkey-provider";
3
+ export type { HotkeyHandler, HotkeyProviderProps, HotkeyScopeProps, RegisteredHotkey, UseHotkeyOptions } from "./hotkey-provider";
4
+ export { FALLBACK_SCOPE, HotkeyProvider, HotkeyScope, useHotkey, useRegisteredHotkeys } from "./hotkey-provider";
5
5
  export type { UseSearchFieldHotkeyOptions } from "./use-search-field-hotkey";
6
6
  export { useSearchFieldHotkey } from "./use-search-field-hotkey";
@@ -34234,34 +34234,6 @@ var TicketsPlane = require_createLucideIcon.createLucideIcon("tickets-plane", [
34234
34234
  * This source code is licensed under the ISC license.
34235
34235
  * See the LICENSE file in the root directory of this source tree.
34236
34236
  */
34237
- var TimerOff = require_createLucideIcon.createLucideIcon("timer-off", [
34238
- ["path", {
34239
- d: "M10 2h4",
34240
- key: "n1abiw"
34241
- }],
34242
- ["path", {
34243
- d: "M4.6 11a8 8 0 0 0 1.7 8.7 8 8 0 0 0 8.7 1.7",
34244
- key: "10he05"
34245
- }],
34246
- ["path", {
34247
- d: "M7.4 7.4a8 8 0 0 1 10.3 1 8 8 0 0 1 .9 10.2",
34248
- key: "15f7sh"
34249
- }],
34250
- ["path", {
34251
- d: "m2 2 20 20",
34252
- key: "1ooewy"
34253
- }],
34254
- ["path", {
34255
- d: "M12 12v-2",
34256
- key: "fwoke6"
34257
- }]
34258
- ]);
34259
- /**
34260
- * @license lucide-react v0.576.0 - ISC
34261
- *
34262
- * This source code is licensed under the ISC license.
34263
- * See the LICENSE file in the root directory of this source tree.
34264
- */
34265
34237
  var TimerReset = require_createLucideIcon.createLucideIcon("timer-reset", [
34266
34238
  ["path", {
34267
34239
  d: "M10 2h4",
@@ -39295,7 +39267,7 @@ exports.TicketX = TicketX;
39295
39267
  exports.Tickets = Tickets;
39296
39268
  exports.TicketsPlane = TicketsPlane;
39297
39269
  exports.Timer = require_index.Timer;
39298
- exports.TimerOff = TimerOff;
39270
+ exports.TimerOff = require_index.TimerOff;
39299
39271
  exports.TimerReset = TimerReset;
39300
39272
  exports.ToggleLeft = require_index.ToggleLeft;
39301
39273
  exports.ToggleRight = require_index.ToggleRight;
@@ -1,7 +1,7 @@
1
1
  import { t as createLucideIcon } from "./createLucideIcon-kNomBP27.js";
2
2
  import { n as Hexagon, t as MicOff } from "./mic-off-C2VTYr91.js";
3
3
  import { t as Settings2 } from "./settings-2-jT1iBqHD.js";
4
- import { $ as Shield, $n as CloudRain, $t as LockOpen, A as Trash2, An as Flame, Ar as Bone, At as Pencil, B as Sun, Bn as Droplet, Br as BatteryFull, Bt as MousePointerClick, C as Unlink2, Cn as GraduationCap, Cr as Car, Ct as Plug, D as TriangleAlert, Dn as Footprints, Dr as Bug, Dt as Pipette, E as Truck, En as Funnel, Er as Bus, Et as Plane, F as Timer, Fn as EyeOff, Fr as BellRing, Ft as Navigation, G as Sparkles, Gn as Database, Gr as ArrowUpToLine, Gt as Mic, H as Star, Hn as DoorOpen, Hr as Ban, Ht as MonitorPlay, I as Thermometer, In as ExternalLink, Ir as Battery, It as Music, J as SlidersHorizontal, Jn as Copy, Jr as ArrowDown, Jt as Megaphone, K as Snowflake, Kn as Crosshair, Kr as ArrowRight, Kt as MessageSquare, L as Target, Ln as Eraser, Lr as BatteryWarning, Lt as Move, M as Tractor, Mn as Feather, Mr as Bird, Mt as Pause, N as ToggleRight, Nn as Fan, Nr as Bike, Nt as Package, O as TrendingDown, On as Flashlight, Or as Box, Ot as Pin, P as ToggleLeft, Pn as Eye, Pr as Bell, Pt as Network, Q as Ship, Qn as CloudSnow, Qr as Activity, Qt as Lock, R as Tag, Rn as EllipsisVertical, Rr as BatteryMedium, Rt as MoveVertical, S as Upload, Sn as Grid2x2, Sr as Cast, St as PowerOff, T as Type, Tn as Gamepad2, Tr as Cable, Tt as Play, U as Square, Un as DoorClosed, Ur as Baby, Ut as Minus, V as SunMedium, Vn as Download, Vr as Bath, Vt as Moon, W as Sprout, Wn as Dog, Wr as ArrowUp, Wt as Minimize2, X as SkipBack, Xn as Cloud, Xr as AlarmSmoke, Xt as MapPin, Y as SkipForward, Yn as Cog, Yr as ArrowDownToLine, Yt as Maximize2, Z as Siren, Zn as CloudSun, Zr as AirVent, Zt as Mail, _ as Vibrate, _n as Hash, _r as ChevronLeft, _t as RadioTower, a as Wrench, an as Lightbulb, ar as CircleStop, at as Server, b as User, bn as Hammer, br as ChartLine, bt as Puzzle, c as Wifi, cr as CirclePause, ct as Scan, d as WifiLow, dn as Inbox, dr as CircleCheckBig, dt as Router, en as LocateFixed, er as CloudLightning, et as ShieldOff, f as WifiHigh, fn as Image, fr as CircleAlert, ft as Route, g as Volume2, gn as Heater, gr as ChevronRight, gt as Radio, h as VolumeX, hn as History, hr as ChevronUp, ht as RefreshCw, i as X, in as Link2, ir as CircleX, it as Settings, j as TrainFront, jn as Film, jr as Blinds, jt as PawPrint, k as TrendingUp, kn as FlashlightOff, kr as Bot, kt as Phone, l as WifiZero, ln as Laugh, lr as CircleDot, lt as Save, m as WashingMachine, mn as House, mr as ChevronsDownUp, mt as RotateCcw, n as ZoomIn, nn as List, nr as Clock, nt as ShieldAlert, o as Workflow, on as Leaf, or as CircleQuestionMark, ot as Search, p as Waves, pn as ImageOff, pr as ChevronsUpDown, pt as RotateCw, q as Smartphone, qn as Cpu, qr as ArrowLeft, qt as Menu, r as Zap, rn as ListChecks, rr as Clapperboard, rt as Share2, s as Wind, sn as LayoutGrid, sr as CirclePlus, st as ScrollText, t as ZoomOut, tn as LoaderCircle, tr as CloudFog, tt as ShieldCheck, u as WifiOff, un as Info, ur as CircleCheck, ut as Sailboat, v as UtensilsCrossed, vn as HardDrive, vr as ChevronDown, vt as Radar, w as Undo2, wn as Gauge, wr as Camera, wt as Plus, x as UserCheck, xn as GripHorizontal, xr as Cat, xt as Power, y as Users, yn as Hand, yr as Check, yt as QrCode, z as Sunrise, zn as Droplets, zr as BatteryLow, zt as MoveHorizontal } from "./index.js";
4
+ import { $ as Ship, $n as CloudSnow, $r as Activity, $t as Lock, A as Trash2, An as FlashlightOff, Ar as Bot, At as Phone, B as Sunrise, Bn as Droplets, Br as BatteryLow, Bt as MoveHorizontal, C as Unlink2, Cn as Grid2x2, Cr as Cast, Ct as PowerOff, D as TriangleAlert, Dn as Funnel, Dr as Bus, Dt as Plane, E as Truck, En as Gamepad2, Er as Cable, Et as Play, F as Timer, Fn as Eye, Fr as Bell, Ft as Network, G as Sprout, Gn as Dog, Gr as ArrowUp, Gt as Minimize2, H as SunMedium, Hn as Download, Hr as Bath, Ht as Moon, I as TimerOff, In as EyeOff, Ir as BellRing, It as Navigation, J as Smartphone, Jn as Cpu, Jr as ArrowLeft, Jt as Menu, K as Sparkles, Kn as Database, Kr as ArrowUpToLine, Kt as Mic, L as Thermometer, Ln as ExternalLink, Lr as Battery, Lt as Music, M as Tractor, Mn as Film, Mr as Blinds, Mt as PawPrint, N as ToggleRight, Nn as Feather, Nr as Bird, Nt as Pause, O as TrendingDown, On as Footprints, Or as Bug, Ot as Pipette, P as ToggleLeft, Pn as Fan, Pr as Bike, Pt as Package, Q as Siren, Qn as CloudSun, Qr as AirVent, Qt as Mail, R as Target, Rn as Eraser, Rr as BatteryWarning, Rt as Move, S as Upload, Sn as GripHorizontal, Sr as Cat, St as Power, T as Type, Tn as Gauge, Tr as Camera, Tt as Plus, U as Star, Un as DoorOpen, Ur as Ban, Ut as MonitorPlay, V as Sun, Vn as Droplet, Vr as BatteryFull, Vt as MousePointerClick, W as Square, Wn as DoorClosed, Wr as Baby, Wt as Minus, X as SkipForward, Xn as Cog, Xr as ArrowDownToLine, Xt as Maximize2, Y as SlidersHorizontal, Yn as Copy, Yr as ArrowDown, Yt as Megaphone, Z as SkipBack, Zn as Cloud, Zr as AlarmSmoke, Zt as MapPin, _ as Vibrate, _n as Heater, _r as ChevronRight, _t as Radio, a as Wrench, an as Link2, ar as CircleX, at as Settings, b as User, bn as Hand, br as Check, bt as QrCode, c as Wifi, cr as CirclePlus, ct as ScrollText, d as WifiLow, dn as Info, dr as CircleCheck, dt as Sailboat, en as LockOpen, er as CloudRain, et as Shield, f as WifiHigh, fn as Inbox, fr as CircleCheckBig, ft as Router, g as Volume2, gn as History, gr as ChevronUp, gt as RefreshCw, h as VolumeX, hn as House, hr as ChevronsDownUp, ht as RotateCcw, i as X, in as ListChecks, ir as Clapperboard, it as Share2, j as TrainFront, jn as Flame, jr as Bone, jt as Pencil, k as TrendingUp, kn as Flashlight, kr as Box, kt as Pin, l as WifiZero, ln as LayoutGrid, lr as CirclePause, lt as Scan, m as WashingMachine, mn as ImageOff, mr as ChevronsUpDown, mt as RotateCw, n as ZoomIn, nn as LoaderCircle, nr as CloudFog, nt as ShieldCheck, o as Workflow, on as Lightbulb, or as CircleStop, ot as Server, p as Waves, pn as Image, pr as CircleAlert, pt as Route, q as Snowflake, qn as Crosshair, qr as ArrowRight, qt as MessageSquare, r as Zap, rn as List, rr as Clock, rt as ShieldAlert, s as Wind, sn as Leaf, sr as CircleQuestionMark, st as Search, t as ZoomOut, tn as LocateFixed, tr as CloudLightning, tt as ShieldOff, u as WifiOff, un as Laugh, ur as CircleDot, ut as Save, v as UtensilsCrossed, vn as Hash, vr as ChevronLeft, vt as RadioTower, w as Undo2, wn as GraduationCap, wr as Car, wt as Plug, x as UserCheck, xn as Hammer, xr as ChartLine, xt as Puzzle, y as Users, yn as HardDrive, yr as ChevronDown, yt as Radar, z as Tag, zn as EllipsisVertical, zr as BatteryMedium, zt as MoveVertical } from "./index.js";
5
5
  /**
6
6
  * @license lucide-react v0.576.0 - ISC
7
7
  *
@@ -34234,34 +34234,6 @@ var TicketsPlane = createLucideIcon("tickets-plane", [
34234
34234
  * This source code is licensed under the ISC license.
34235
34235
  * See the LICENSE file in the root directory of this source tree.
34236
34236
  */
34237
- var TimerOff = createLucideIcon("timer-off", [
34238
- ["path", {
34239
- d: "M10 2h4",
34240
- key: "n1abiw"
34241
- }],
34242
- ["path", {
34243
- d: "M4.6 11a8 8 0 0 0 1.7 8.7 8 8 0 0 0 8.7 1.7",
34244
- key: "10he05"
34245
- }],
34246
- ["path", {
34247
- d: "M7.4 7.4a8 8 0 0 1 10.3 1 8 8 0 0 1 .9 10.2",
34248
- key: "15f7sh"
34249
- }],
34250
- ["path", {
34251
- d: "m2 2 20 20",
34252
- key: "1ooewy"
34253
- }],
34254
- ["path", {
34255
- d: "M12 12v-2",
34256
- key: "fwoke6"
34257
- }]
34258
- ]);
34259
- /**
34260
- * @license lucide-react v0.576.0 - ISC
34261
- *
34262
- * This source code is licensed under the ISC license.
34263
- * See the LICENSE file in the root directory of this source tree.
34264
- */
34265
34237
  var TimerReset = createLucideIcon("timer-reset", [
34266
34238
  ["path", {
34267
34239
  d: "M10 2h4",