@camstack/ui-library 1.2.367 → 1.2.369

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,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [1.2.369] - 2026-11-01
11
+
12
+ ### Changed
13
+
14
+ - Generated hooks for the fan presets capability.
15
+ - 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.
16
+
17
+ ## [1.2.368] - 2026-11-01
18
+
19
+ ### Changed
20
+
21
+ - Mobile drawer: the closed drawer no longer leaves a full-screen backdrop layer over the top bar (it blurred and dimmed the header on an installed iPhone app).
22
+ - Removed the generated hooks for the workspace-install methods of the addons capability.
23
+ - Washers and dryers get an appliance card (running state, dwell, live power); the pet fountain shows a ripple while the pump runs
24
+
10
25
  ## [1.2.367] - 2026-11-01
11
26
 
12
27
  ### 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,14 @@
1
+ import type { ReactNode } from "react";
2
+ import { type UiTextFn } from "../../contexts/ui-text";
3
+ import type { DeviceControlProps } from "./control-registry";
4
+ /** Whole watts, or a dash when the appliance has not reported a reading. */
5
+ export declare function formatWatts(power: number | undefined): string;
6
+ interface StateLabel {
7
+ readonly label: string;
8
+ readonly tone: string;
9
+ }
10
+ /** The state to a person: running / idle, or why there is none (unknown). */
11
+ export declare function applianceStateLabel(running: boolean | null, t: UiTextFn): StateLabel;
12
+ export declare function ApplianceHeroCard(props: DeviceControlProps): ReactNode;
13
+ export declare function ApplianceInlineControl(props: DeviceControlProps): ReactNode;
14
+ 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;
@@ -57,12 +57,6 @@ export declare const useAddonsGetLogs: typeof trpc.addons.getLogs.useQuery;
57
57
  export declare const useAddonsListPackages: typeof trpc.addons.listPackages.useQuery;
58
58
  /** Generated alias around `trpc.addons.installPackage.useMutation`. */
59
59
  export declare const useAddonsInstallPackage: typeof trpc.addons.installPackage.useMutation;
60
- /** Generated alias around `trpc.addons.installFromWorkspace.useMutation`. */
61
- export declare const useAddonsInstallFromWorkspace: typeof trpc.addons.installFromWorkspace.useMutation;
62
- /** Generated alias around `trpc.addons.isWorkspaceAvailable.useQuery`. */
63
- export declare const useAddonsIsWorkspaceAvailable: typeof trpc.addons.isWorkspaceAvailable.useQuery;
64
- /** Generated alias around `trpc.addons.listWorkspacePackages.useQuery`. */
65
- export declare const useAddonsListWorkspacePackages: typeof trpc.addons.listWorkspacePackages.useQuery;
66
60
  /** Generated alias around `trpc.addons.uninstallPackage.useMutation`. */
67
61
  export declare const useAddonsUninstallPackage: typeof trpc.addons.uninstallPackage.useMutation;
68
62
  /** Generated alias around `trpc.addons.listInstallations.useQuery`. */
@@ -785,6 +779,12 @@ export declare const useDeviceProviderGetChildCreationSchema: typeof trpc.device
785
779
  export declare const useDeviceProviderCreateDevice: typeof trpc.deviceProvider.createDevice.useMutation;
786
780
  /** Generated alias around `trpc.deviceProvider.testCreationField.useMutation`. */
787
781
  export declare const useDeviceProviderTestCreationField: typeof trpc.deviceProvider.testCreationField.useMutation;
782
+ /** Generated alias around `trpc.deviceRuns.listRuns.useQuery`. */
783
+ export declare const useDeviceRunsListRuns: typeof trpc.deviceRuns.listRuns.useQuery;
784
+ /** Generated alias around `trpc.deviceRuns.getRun.useQuery`. */
785
+ export declare const useDeviceRunsGetRun: typeof trpc.deviceRuns.getRun.useQuery;
786
+ /** Generated alias around `trpc.deviceRuns.getCurrentRun.useQuery`. */
787
+ export declare const useDeviceRunsGetCurrentRun: typeof trpc.deviceRuns.getCurrentRun.useQuery;
788
788
  /** Generated alias around `trpc.deviceState.getSnapshot.useQuery`. */
789
789
  export declare const useDeviceStateGetSnapshot: typeof trpc.deviceState.getSnapshot.useQuery;
790
790
  /** Generated alias around `trpc.deviceState.getCapSlice.useQuery`. */
@@ -889,6 +889,14 @@ export declare const useFanControlSetDirection: typeof trpc.fanControl.setDirect
889
889
  export declare const useFanControlSetOscillating: typeof trpc.fanControl.setOscillating.useMutation;
890
890
  /** Generated alias around `trpc.fanControl.getStatus.useQuery`. */
891
891
  export declare const useFanControlGetStatus: typeof trpc.fanControl.getStatus.useQuery;
892
+ /** Generated alias around `trpc.fanPresets.getPresets.useQuery`. */
893
+ export declare const useFanPresetsGetPresets: typeof trpc.fanPresets.getPresets.useQuery;
894
+ /** Generated alias around `trpc.fanPresets.setPresets.useMutation`. */
895
+ export declare const useFanPresetsSetPresets: typeof trpc.fanPresets.setPresets.useMutation;
896
+ /** Generated alias around `trpc.fanPresets.applyPreset.useMutation`. */
897
+ export declare const useFanPresetsApplyPreset: typeof trpc.fanPresets.applyPreset.useMutation;
898
+ /** Generated alias around `trpc.fanPresets.capturePreset.useQuery`. */
899
+ export declare const useFanPresetsCapturePreset: typeof trpc.fanPresets.capturePreset.useQuery;
892
900
  /** Generated alias around `trpc.featureProbe.getStatus.useQuery`. */
893
901
  export declare const useFeatureProbeGetStatus: typeof trpc.featureProbe.getStatus.useQuery;
894
902
  /** Generated alias around `trpc.flood.getStatus.useQuery`. */
@@ -2419,6 +2427,12 @@ export declare const useTerminalSessionPullOutput: typeof trpc.terminalSession.p
2419
2427
  export declare const useTerminalSessionWriteInput: typeof trpc.terminalSession.writeInput.useMutation;
2420
2428
  /** Generated alias around `trpc.terminalSession.close.useMutation`. */
2421
2429
  export declare const useTerminalSessionClose: typeof trpc.terminalSession.close.useMutation;
2430
+ /** Generated alias around `trpc.timedRun.runFor.useMutation`. */
2431
+ export declare const useTimedRunRunFor: typeof trpc.timedRun.runFor.useMutation;
2432
+ /** Generated alias around `trpc.timedRun.cancel.useMutation`. */
2433
+ export declare const useTimedRunCancel: typeof trpc.timedRun.cancel.useMutation;
2434
+ /** Generated alias around `trpc.timedRun.getStatus.useQuery`. */
2435
+ export declare const useTimedRunGetStatus: typeof trpc.timedRun.getStatus.useQuery;
2422
2436
  /** Generated alias around `trpc.toast.onToast.useSubscription`. */
2423
2437
  export declare const useToastOnToast: typeof trpc.toast.onToast.useSubscription;
2424
2438
  /** Generated alias around `trpc.training.listBaseModels.useQuery`. */
@@ -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",