@camstack/ui-library 0.1.57 → 0.1.58
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/dist/composites/battery-badge.d.ts +3 -0
- package/dist/composites/camera-stream-player.d.ts +62 -2
- package/dist/composites/cap-settings/ConsumablesPanel.d.ts +2 -0
- package/dist/composites/cap-settings/CoverageTrack.d.ts +12 -0
- package/dist/composites/cap-settings/EventBucketStrip.d.ts +25 -0
- package/dist/composites/cap-settings/EventHeatmap.d.ts +10 -0
- package/dist/composites/cap-settings/RecordingPanel.d.ts +2 -0
- package/dist/composites/cap-settings/RecordingRulesEditor.d.ts +7 -0
- package/dist/composites/cap-settings/RecordingSettings.d.ts +8 -0
- package/dist/composites/cap-settings/RecordingTimeline.d.ts +5 -0
- package/dist/composites/cap-settings/TimelineControls.d.ts +21 -0
- package/dist/composites/cap-settings/event-thumb.d.ts +11 -0
- package/dist/composites/cap-settings/index.d.ts +4 -0
- package/dist/composites/cap-settings/recording-config-form.d.ts +5 -0
- package/dist/composites/cap-settings/recording-spans.d.ts +22 -0
- package/dist/composites/cap-settings/recording-timeline-model.d.ts +84 -0
- package/dist/composites/device-activity-panel.d.ts +5 -1
- package/dist/composites/device-controls/alarm-hero-card.d.ts +24 -0
- package/dist/composites/device-controls/atoms.d.ts +81 -0
- package/dist/composites/device-controls/brightness-panel.d.ts +3 -0
- package/dist/composites/device-controls/button-control.d.ts +18 -0
- package/dist/composites/device-controls/climate-panel.d.ts +16 -0
- package/dist/composites/device-controls/container-primary-hero.d.ts +24 -0
- package/dist/composites/device-controls/container-primary.d.ts +46 -0
- package/dist/composites/device-controls/control-panel.d.ts +10 -0
- package/dist/composites/device-controls/control-registry.d.ts +74 -0
- package/dist/composites/device-controls/cover-hero-card.d.ts +27 -0
- package/dist/composites/device-controls/cover-inline.d.ts +27 -0
- package/dist/composites/device-controls/cover-panel.d.ts +3 -0
- package/dist/composites/device-controls/dummy-hero-card.d.ts +6 -0
- package/dist/composites/device-controls/fan-hero-card.d.ts +21 -0
- package/dist/composites/device-controls/fan-panel.d.ts +3 -0
- package/dist/composites/device-controls/humidifier-control.d.ts +37 -0
- package/dist/composites/device-controls/image-control.d.ts +24 -0
- package/dist/composites/device-controls/index.d.ts +33 -0
- package/dist/composites/device-controls/lawn-mower-control.d.ts +24 -0
- package/dist/composites/device-controls/light-hero-card.d.ts +16 -0
- package/dist/composites/device-controls/lock-hero-card.d.ts +15 -0
- package/dist/composites/device-controls/lock-panel.d.ts +3 -0
- package/dist/composites/device-controls/media-player-hero-card.d.ts +17 -0
- package/dist/composites/device-controls/media-player-panel.d.ts +9 -0
- package/dist/composites/device-controls/offline-badge.d.ts +11 -0
- package/dist/composites/device-controls/panel-controls.d.ts +17 -0
- package/dist/composites/device-controls/popover-row-action.d.ts +9 -0
- package/dist/composites/device-controls/primary-child.d.ts +18 -0
- package/dist/composites/device-controls/radial-gauge.d.ts +20 -0
- package/dist/composites/device-controls/sensor-hero-card.d.ts +10 -0
- package/dist/composites/device-controls/sensor-inline-control.d.ts +11 -0
- package/dist/composites/device-controls/sensor-value-atom.d.ts +106 -0
- package/dist/composites/device-controls/switch-hero-card.d.ts +13 -0
- package/dist/composites/device-controls/switch-panel.d.ts +3 -0
- package/dist/composites/device-controls/tap-toggle.d.ts +17 -0
- package/dist/composites/device-controls/thermostat-hero-card.d.ts +17 -0
- package/dist/composites/device-controls/types.d.ts +17 -0
- package/dist/composites/device-controls/update-control.d.ts +11 -0
- package/dist/composites/device-controls/vacuum-control.d.ts +36 -0
- package/dist/composites/device-controls/valve-control.d.ts +46 -0
- package/dist/composites/device-controls/water-heater-control.d.ts +41 -0
- package/dist/composites/device-controls/weather-control.d.ts +41 -0
- package/dist/composites/device-item/actions.d.ts +12 -1
- package/dist/composites/device-item/child-layout.d.ts +32 -0
- package/dist/composites/device-item/child-section-accordion.d.ts +9 -0
- package/dist/composites/device-item/container-children-context.d.ts +15 -0
- package/dist/composites/device-item/device-delete-action.d.ts +8 -0
- package/dist/composites/device-item/header.d.ts +8 -1
- package/dist/composites/device-item/helpers.d.ts +108 -2
- package/dist/composites/device-item/index.d.ts +4 -0
- package/dist/composites/device-item/preview.d.ts +3 -3
- package/dist/composites/device-item/reboot-quick-action.d.ts +9 -0
- package/dist/composites/device-item/status-dot.d.ts +4 -1
- package/dist/composites/device-list/batch-actions-bar.d.ts +15 -0
- package/dist/composites/device-list/batch-toolbar.d.ts +15 -0
- package/dist/composites/device-list/cards-layout.d.ts +18 -0
- package/dist/composites/device-list/columns.d.ts +68 -0
- package/dist/composites/device-list/device-mode.d.ts +115 -0
- package/dist/composites/device-list/filter-chips.d.ts +15 -6
- package/dist/composites/device-list/fuzzy-match.d.ts +27 -0
- package/dist/composites/device-list/generic-mode.d.ts +81 -0
- package/dist/composites/device-list/group.d.ts +19 -0
- package/dist/composites/device-list/hardware-cell.d.ts +7 -0
- package/dist/composites/device-list/hardware.d.ts +26 -0
- package/dist/composites/device-list/icon-action.d.ts +17 -0
- package/dist/composites/device-list/index.d.ts +23 -39
- package/dist/composites/device-list/multi-select.d.ts +22 -0
- package/dist/composites/device-list/sort.d.ts +18 -0
- package/dist/composites/device-list/sortable-header.d.ts +10 -0
- package/dist/composites/device-list/table-layout.d.ts +25 -0
- package/dist/composites/device-list/type-filter.d.ts +19 -0
- package/dist/composites/device-list/url-state.d.ts +7 -2
- package/dist/composites/device-meta.d.ts +38 -0
- package/dist/composites/discovery-panel.d.ts +3 -3
- package/dist/composites/hls-quality.d.ts +35 -0
- package/dist/composites/hls-video.d.ts +26 -0
- package/dist/composites/hover-zoom-image.d.ts +18 -0
- package/dist/composites/index.d.ts +12 -1
- package/dist/composites/log-stream-scroll.d.ts +32 -0
- package/dist/composites/log-stream.d.ts +8 -1
- package/dist/composites/stream-panel.d.ts +45 -10
- package/dist/composites/timezone-selector.d.ts +18 -0
- package/dist/composites/widget-panel.d.ts +28 -0
- package/dist/contexts/vod-playback.d.ts +17 -0
- package/dist/generated/system-hooks.d.ts +330 -56
- package/dist/hooks/index.d.ts +6 -0
- package/dist/hooks/use-device-cap-slice.d.ts +19 -0
- package/dist/hooks/use-device-capability.d.ts +12 -0
- package/dist/hooks/use-device-list-page-size.d.ts +14 -0
- package/dist/hooks/use-device-webrtc.d.ts +36 -4
- package/dist/hooks/use-optimistic-slice.d.ts +11 -0
- package/dist/index.cjs +52175 -10927
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +51796 -10813
- package/dist/index.js.map +1 -1
- package/dist/lib/format-control-datetime.d.ts +18 -0
- package/dist/lib/format-last-seen.d.ts +12 -0
- package/dist/lib/format-numeric.d.ts +9 -0
- package/dist/lib/index.d.ts +3 -0
- package/dist/primitives/dialog.d.ts +13 -0
- package/dist/primitives/tooltip.d.ts +9 -3
- package/package.json +3 -1
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Format an HA-native datetime control value in the user's locale.
|
|
3
|
+
*
|
|
4
|
+
* The `control` cap keeps the value verbatim in one of three HA-native shapes:
|
|
5
|
+
* - date → 'YYYY-MM-DD'
|
|
6
|
+
* - time → 'HH:MM' or 'HH:MM:SS'
|
|
7
|
+
* - datetime → full ISO timestamp ('YYYY-MM-DDTHH:MM[:SS]' or space-separated)
|
|
8
|
+
*
|
|
9
|
+
* This helper renders that value for the READ-ONLY (at-a-glance) context:
|
|
10
|
+
* - 'date' → locale date (e.g. en-US '6/7/2026')
|
|
11
|
+
* - 'time' → locale time (e.g. en-US '07:30 AM')
|
|
12
|
+
* - 'datetime' → locale date+time (medium date + short time)
|
|
13
|
+
*
|
|
14
|
+
* It NEVER throws: any value it cannot parse is returned unchanged (graceful
|
|
15
|
+
* fallback). `locale` is optional and defaults to the runtime/browser locale.
|
|
16
|
+
*/
|
|
17
|
+
export type ControlDateTimeFormat = 'date' | 'time' | 'datetime';
|
|
18
|
+
export declare function formatControlDateTime(value: string, format: ControlDateTimeFormat, locale?: string): string;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Relative "last seen" formatter for the offline affordance.
|
|
3
|
+
*
|
|
4
|
+
* Renders a short relative-time label from a millisecond epoch:
|
|
5
|
+
* "just now", "5m ago", "3h ago", "2d ago". Returns `null` for
|
|
6
|
+
* missing/non-positive inputs so callers can render nothing rather
|
|
7
|
+
* than a misleading "—" or "NaN ago".
|
|
8
|
+
*
|
|
9
|
+
* Future timestamps (clock skew between the device and the browser)
|
|
10
|
+
* collapse to "just now" instead of a negative duration.
|
|
11
|
+
*/
|
|
12
|
+
export declare function formatLastSeen(timestampMs: number | null | undefined): string | null;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Format a numeric sensor / control value with optional display precision.
|
|
3
|
+
*
|
|
4
|
+
* When `precision` is provided, delegates to `value.toFixed(precision)` which
|
|
5
|
+
* matches the HA `suggested_display_precision` contract.
|
|
6
|
+
* When absent, falls back to auto-formatting: integers render without a
|
|
7
|
+
* decimal point; non-integers use one decimal place.
|
|
8
|
+
*/
|
|
9
|
+
export declare function formatNumeric(value: number, precision: number | undefined): string;
|
package/dist/lib/index.d.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
export { cn } from './cn';
|
|
2
|
+
export { formatLastSeen } from './format-last-seen';
|
|
3
|
+
export { formatControlDateTime } from './format-control-datetime';
|
|
4
|
+
export type { ControlDateTimeFormat } from './format-control-datetime';
|
|
2
5
|
export { isAbsentProvider } from './cap-error';
|
|
3
6
|
export * from './responsive';
|
|
4
7
|
export { mirror } from './pipeline-mirror';
|
|
@@ -7,6 +7,19 @@ interface DialogProps {
|
|
|
7
7
|
}
|
|
8
8
|
export declare function Dialog({ children, open: controlledOpen, onOpenChange }: DialogProps): import("react/jsx-runtime").JSX.Element;
|
|
9
9
|
export declare function DialogTrigger({ children, ...props }: HTMLAttributes<HTMLButtonElement>): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
/**
|
|
11
|
+
* A native <dialog> opened with showModal() is promoted to the top layer, so
|
|
12
|
+
* ancestor transform/overflow can't clip it — but it relies on the UA
|
|
13
|
+
* stylesheet's `dialog { margin: auto }` for modal centering. Tailwind's
|
|
14
|
+
* preflight resets `margin: 0` on every element, which defeats that centering
|
|
15
|
+
* and pins the modal to the top-left. We therefore center deterministically:
|
|
16
|
+
* a top-layer dialog with `position: fixed` is viewport-relative, and a
|
|
17
|
+
* self-transform is fine, so `fixed left-1/2 top-1/2 -translate-x-1/2
|
|
18
|
+
* -translate-y-1/2 m-0` always centers regardless of any margin reset. Width
|
|
19
|
+
* is capped to the viewport (`w-[calc(100vw-2rem)]`) rather than a bare
|
|
20
|
+
* `w-full` (which would overflow/clip a centered dialog); the per-variant
|
|
21
|
+
* `max-w-*` keeps small dialogs small while the cap prevents overflow.
|
|
22
|
+
*/
|
|
10
23
|
declare const contentVariants: (props?: ({
|
|
11
24
|
width?: "sm" | "md" | "lg" | null | undefined;
|
|
12
25
|
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import { HTMLAttributes, ReactNode } from 'react';
|
|
2
|
-
|
|
3
|
-
children: ReactNode;
|
|
4
|
-
|
|
2
|
+
interface TooltipProps {
|
|
3
|
+
readonly children: ReactNode;
|
|
4
|
+
/** Extra classes for the positioning wrapper. Defaults to `inline-block`
|
|
5
|
+
* (shrink-to-fit). Pass `block w-full min-w-0` when the trigger must fill a
|
|
6
|
+
* width-constrained parent so its inner content can truncate cleanly. */
|
|
7
|
+
readonly className?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function Tooltip({ children, className }: TooltipProps): import("react/jsx-runtime").JSX.Element;
|
|
5
10
|
export declare function TooltipTrigger({ children, ...props }: HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
|
|
6
11
|
export declare function TooltipContent({ className, children, ...props }: HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/ui-library",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.58",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.cjs",
|
|
6
6
|
"module": "dist/index.js",
|
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
"scripts": {
|
|
32
32
|
"build": "vite build",
|
|
33
33
|
"typecheck": "tsc --noEmit",
|
|
34
|
+
"test": "vitest run",
|
|
34
35
|
"publish": "npm publish --access public"
|
|
35
36
|
},
|
|
36
37
|
"peerDependencies": {
|
|
@@ -80,6 +81,7 @@
|
|
|
80
81
|
"@module-federation/runtime": "^2.4.0",
|
|
81
82
|
"class-variance-authority": "^0.7",
|
|
82
83
|
"clsx": "^2.1",
|
|
84
|
+
"hls.js": "^1.6.16",
|
|
83
85
|
"lucide-react": "^0.576",
|
|
84
86
|
"qrcode.react": "^4.2.0",
|
|
85
87
|
"tailwind-merge": "^3.0"
|