@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 +14 -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/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 +18 -0
- package/dist/hotkeys/hotkey-provider.d.ts +13 -0
- package/dist/hotkeys/index.d.ts +2 -2
- 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 +1579 -1173
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1574 -1180
- package/dist/ui-library-version.d.ts +1 -0
- package/package.json +1 -1
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 {
|
|
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,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
|
*/
|
package/dist/hotkeys/index.d.ts
CHANGED
|
@@ -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
|
|
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",
|