@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 +15 -0
- package/dist/{MotionZonesSettings-dx3wObgK.js → MotionZonesSettings-Zcfa5c9l.js} +1 -1
- package/dist/{PrivacyMaskSettings-BM2C_xWz.js → PrivacyMaskSettings-B_X42yzN.js} +1 -1
- package/dist/{SceneMonitorEditor-CI72S4eN.js → SceneMonitorEditor-C8YXVzYI.js} +1 -1
- package/dist/composites/device-controls/ac-panel.d.ts +18 -0
- package/dist/composites/device-controls/appliance-control.d.ts +14 -0
- package/dist/composites/device-controls/heater-control.d.ts +4 -0
- package/dist/composites/device-controls/timed-run-control.d.ts +13 -0
- package/dist/generated/system-hooks.d.ts +20 -6
- package/dist/{icons-jbAtRNh8.cjs → icons-DXwPEKdJ.cjs} +1 -29
- package/dist/{icons-CZwJd50b.js → icons-e-xohmFb.js} +1 -29
- package/dist/index.cjs +1214 -671
- package/dist/index.js +1210 -675
- package/package.json +1 -1
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 {
|
|
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,
|
|
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,
|
|
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,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
|
|
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",
|