@camstack/ui-library 1.2.355 → 1.2.357

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,27 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [1.2.357] - 2026-10-30
11
+
12
+ ### Added
13
+
14
+ - Generated hooks for the new network scan and saved scan subnets calls
15
+
16
+ ### Changed
17
+
18
+ - DevicePicker: fillHeight stretches the list to its container and scrolls the rows inside
19
+ - Dialog text now wraps when a dialog is opened from a table row action instead of scrolling sideways
20
+ - Collapsible section headers (settings sections, groups, device-picker groups, response log) use a larger chevron and are real buttons with keyboard support
21
+ - DialogContent accepts the native dialog attributes such as onCancel, so a caller can refuse Escape while work is in flight
22
+ - Renaming a node updates its name on the Cluster page immediately instead of after a reload
23
+
24
+ ## [1.2.356] - 2026-10-30
25
+
26
+ ### Changed
27
+
28
+ - Gateway device type has its own icon and label
29
+ - Generated hooks follow the broker sign-in methods field
30
+
10
31
  ## [1.2.355] - 2026-10-30
11
32
 
12
33
  ### Changed
@@ -1,4 +1,4 @@
1
- import { TEXT_HINT, UiTrans, WidgetPanel, isAbsentProvider, useDeviceProxy, usePlayerOverlayLayer, useSystem, useUiText, xn as Grid2x2 } from "./index.js";
1
+ import { Sn 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, Pn as EyeOff, TEXT_HINT, U as Square, UiTrans, WidgetPanel, Wt as Mic, isAbsentProvider, useDeviceProxy, usePlayerOverlayLayer, useSystem, useUiText } from "./index.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";
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, Cr as Camera, SCENE_CAPTURE_VARIANTS, TEXT_HINT, UiTrans, badgeFor, coverageLine, fn as ImageOff, hubPath, isAbsentProvider, pt as RotateCcw, roiTooLarge, statusLine, useConfirm, useDeviceProxy, useDeviceSnapshotImage, useDeviceStateSlice, useSystem, useUiText, variantLabel } from "./index.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";
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";
@@ -83,6 +83,12 @@ export interface DevicePickerProps<Id extends PickerId = number> {
83
83
  */
84
84
  readonly showAll?: boolean;
85
85
  /**
86
+ * Stretch to the height of a flex parent and scroll the rows inside the
87
+ * panel, instead of capping the list at a fixed height. Needs a parent with
88
+ * a definite height (a `fill` dialog column).
89
+ */
90
+ readonly fillHeight?: boolean;
91
+ /**
86
92
  * Devices that are ALREADY part of the thing being edited (linked to the
87
93
  * camera, assigned to the room): drawn checked and disabled with
88
94
  * `lockedNote`, never part of `value`, never emitted by `onChange`.
@@ -91,4 +97,4 @@ export interface DevicePickerProps<Id extends PickerId = number> {
91
97
  /** The line under a locked device. Default "Already added". */
92
98
  readonly lockedNote?: string;
93
99
  }
94
- export declare function DevicePicker<Id extends PickerId = number>({ devices: devicesIn, listState, fleet, value, onChange, selection, groupBy: pinnedGroupBy, emptyMeansAll, savedHadDevices, noun, groupTitle: groupTitleProp, emptyLabel, annotate, disabled, testId, showAll, lockedIds, lockedNote: lockedNoteProp }: DevicePickerProps<Id>): JSX.Element;
100
+ export declare function DevicePicker<Id extends PickerId = number>({ devices: devicesIn, listState, fleet, value, onChange, selection, groupBy: pinnedGroupBy, emptyMeansAll, savedHadDevices, noun, groupTitle: groupTitleProp, emptyLabel, annotate, disabled, testId, showAll, fillHeight, lockedIds, lockedNote: lockedNoteProp }: DevicePickerProps<Id>): JSX.Element;
@@ -125,6 +125,10 @@ export declare const useAddonSettingsGetGlobalSettings: typeof trpc.addonSetting
125
125
  export declare const useAddonSettingsUpdateGlobalSettings: typeof trpc.addonSettings.updateGlobalSettings.useMutation;
126
126
  /** Generated alias around `trpc.addonSettings.getIntegrationSettings.useQuery`. */
127
127
  export declare const useAddonSettingsGetIntegrationSettings: typeof trpc.addonSettings.getIntegrationSettings.useQuery;
128
+ /** Generated alias around `trpc.addonSettings.getDeclaredSettingsKeys.useQuery`. */
129
+ export declare const useAddonSettingsGetDeclaredSettingsKeys: typeof trpc.addonSettings.getDeclaredSettingsKeys.useQuery;
130
+ /** Generated alias around `trpc.addonSettings.unsetStoredSettingsKeys.useMutation`. */
131
+ export declare const useAddonSettingsUnsetStoredSettingsKeys: typeof trpc.addonSettings.unsetStoredSettingsKeys.useMutation;
128
132
  /** Generated alias around `trpc.addonSettings.getDeviceSettings.useQuery`. */
129
133
  export declare const useAddonSettingsGetDeviceSettings: typeof trpc.addonSettings.getDeviceSettings.useQuery;
130
134
  /** Generated alias around `trpc.addonSettings.updateDeviceSettings.useMutation`. */
@@ -761,6 +765,10 @@ export declare const useDeviceProviderReloadDevice: typeof trpc.deviceProvider.r
761
765
  export declare const useDeviceProviderSupportsDiscovery: typeof trpc.deviceProvider.supportsDiscovery.useQuery;
762
766
  /** Generated alias around `trpc.deviceProvider.discoverDevices.useMutation`. */
763
767
  export declare const useDeviceProviderDiscoverDevices: typeof trpc.deviceProvider.discoverDevices.useMutation;
768
+ /** Generated alias around `trpc.deviceProvider.getDiscoveryModes.useQuery`. */
769
+ export declare const useDeviceProviderGetDiscoveryModes: typeof trpc.deviceProvider.getDiscoveryModes.useQuery;
770
+ /** Generated alias around `trpc.deviceProvider.classifyDiscoveryHits.useMutation`. */
771
+ export declare const useDeviceProviderClassifyDiscoveryHits: typeof trpc.deviceProvider.classifyDiscoveryHits.useMutation;
764
772
  /** Generated alias around `trpc.deviceProvider.getDiscoveryParamsSchema.useQuery`. */
765
773
  export declare const useDeviceProviderGetDiscoveryParamsSchema: typeof trpc.deviceProvider.getDiscoveryParamsSchema.useQuery;
766
774
  /** Generated alias around `trpc.deviceProvider.getManualCreationType.useQuery`. */
@@ -1067,6 +1075,12 @@ export declare const useLocalNetworkUploadCertificate: typeof trpc.localNetwork.
1067
1075
  export declare const useLocalNetworkDownloadCa: typeof trpc.localNetwork.downloadCa.useQuery;
1068
1076
  /** Generated alias around `trpc.localNetwork.useStoredUploadedCertificate.useMutation`. */
1069
1077
  export declare const useLocalNetworkUseStoredUploadedCertificate: typeof trpc.localNetwork.useStoredUploadedCertificate.useMutation;
1078
+ /** Generated alias around `trpc.localNetwork.scanNetwork.useMutation`. */
1079
+ export declare const useLocalNetworkScanNetwork: typeof trpc.localNetwork.scanNetwork.useMutation;
1080
+ /** Generated alias around `trpc.localNetwork.getScanSubnets.useQuery`. */
1081
+ export declare const useLocalNetworkGetScanSubnets: typeof trpc.localNetwork.getScanSubnets.useQuery;
1082
+ /** Generated alias around `trpc.localNetwork.setScanSubnets.useMutation`. */
1083
+ export declare const useLocalNetworkSetScanSubnets: typeof trpc.localNetwork.setScanSubnets.useMutation;
1070
1084
  /** Generated alias around `trpc.localNetwork.revertToGeneratedCertificate.useMutation`. */
1071
1085
  export declare const useLocalNetworkRevertToGeneratedCertificate: typeof trpc.localNetwork.revertToGeneratedCertificate.useMutation;
1072
1086
  /** Generated alias around `trpc.lockControl.lock.useMutation`. */
@@ -1857,6 +1871,16 @@ export declare const usePlateGalleryUnassignPlate: typeof trpc.plateGallery.unas
1857
1871
  export declare const usePlateGalleryAssignPlates: typeof trpc.plateGallery.assignPlates.useMutation;
1858
1872
  /** Generated alias around `trpc.plateGallery.unassignPlates.useMutation`. */
1859
1873
  export declare const usePlateGalleryUnassignPlates: typeof trpc.plateGallery.unassignPlates.useMutation;
1874
+ /** Generated alias around `trpc.platformProbe.getCapabilities.useQuery`. */
1875
+ export declare const usePlatformProbeGetCapabilities: typeof trpc.platformProbe.getCapabilities.useQuery;
1876
+ /** Generated alias around `trpc.platformProbe.getHardware.useQuery`. */
1877
+ export declare const usePlatformProbeGetHardware: typeof trpc.platformProbe.getHardware.useQuery;
1878
+ /** Generated alias around `trpc.platformProbe.resolveInferenceConfig.useQuery`. */
1879
+ export declare const usePlatformProbeResolveInferenceConfig: typeof trpc.platformProbe.resolveInferenceConfig.useQuery;
1880
+ /** Generated alias around `trpc.platformProbe.resolveHwAccel.useQuery`. */
1881
+ export declare const usePlatformProbeResolveHwAccel: typeof trpc.platformProbe.resolveHwAccel.useQuery;
1882
+ /** Generated alias around `trpc.platformProbe.rescanAccelerators.useMutation`. */
1883
+ export declare const usePlatformProbeRescanAccelerators: typeof trpc.platformProbe.rescanAccelerators.useMutation;
1860
1884
  /** Generated alias around `trpc.powerMeter.getStatus.useQuery`. */
1861
1885
  export declare const usePowerMeterGetStatus: typeof trpc.powerMeter.getStatus.useQuery;
1862
1886
  /** Generated alias around `trpc.presence.getStatus.useQuery`. */
@@ -27575,42 +27575,6 @@ var RouteOff = require_createLucideIcon.createLucideIcon("route-off", [
27575
27575
  * This source code is licensed under the ISC license.
27576
27576
  * See the LICENSE file in the root directory of this source tree.
27577
27577
  */
27578
- var Router = require_createLucideIcon.createLucideIcon("router", [
27579
- ["rect", {
27580
- width: "20",
27581
- height: "8",
27582
- x: "2",
27583
- y: "14",
27584
- rx: "2",
27585
- key: "w68u3i"
27586
- }],
27587
- ["path", {
27588
- d: "M6.01 18H6",
27589
- key: "19vcac"
27590
- }],
27591
- ["path", {
27592
- d: "M10.01 18H10",
27593
- key: "uamcmx"
27594
- }],
27595
- ["path", {
27596
- d: "M15 10v4",
27597
- key: "qjz1xs"
27598
- }],
27599
- ["path", {
27600
- d: "M17.84 7.17a4 4 0 0 0-5.66 0",
27601
- key: "1rif40"
27602
- }],
27603
- ["path", {
27604
- d: "M20.66 4.34a8 8 0 0 0-11.31 0",
27605
- key: "6a5xfq"
27606
- }]
27607
- ]);
27608
- /**
27609
- * @license lucide-react v0.576.0 - ISC
27610
- *
27611
- * This source code is licensed under the ISC license.
27612
- * See the LICENSE file in the root directory of this source tree.
27613
- */
27614
27578
  var Rows2 = require_createLucideIcon.createLucideIcon("rows-2", [["rect", {
27615
27579
  width: "18",
27616
27580
  height: "18",
@@ -39042,7 +39006,7 @@ exports.RotateCw = require_index.RotateCw;
39042
39006
  exports.RotateCwSquare = RotateCwSquare;
39043
39007
  exports.Route = require_index.Route;
39044
39008
  exports.RouteOff = RouteOff;
39045
- exports.Router = Router;
39009
+ exports.Router = require_index.Router;
39046
39010
  exports.Rows2 = Rows2;
39047
39011
  exports.Rows3 = Rows3;
39048
39012
  exports.Rows4 = Rows4;
@@ -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 CloudLightning, $t as LocateFixed, A as Trash2, An as Film, Ar as Blinds, At as PawPrint, B as Sun, Bn as Download, Br as Bath, Bt as Moon, C as Unlink2, Cn as Gauge, Cr as Camera, Ct as Plus, D as TriangleAlert, Dn as Flashlight, Dr as Box, Dt as Pin, E as Truck, En as Footprints, Er as Bug, Et as Pipette, F as Timer, Fn as ExternalLink, Fr as Battery, Ft as Music, G as Sparkles, Gn as Crosshair, Gr as ArrowRight, Gt as MessageSquare, H as Star, Hn as DoorClosed, Hr as Baby, Ht as Minus, I as Thermometer, In as Eraser, Ir as BatteryWarning, It as Move, J as SlidersHorizontal, Jn as Cog, Jr as ArrowDownToLine, Jt as Maximize2, K as Snowflake, Kn as Cpu, Kr as ArrowLeft, Kt as Menu, L as Target, Ln as EllipsisVertical, Lr as BatteryMedium, Lt as MoveVertical, M as Tractor, Mn as Fan, Mr as Bike, Mt as Package, N as ToggleRight, Nn as Eye, Nr as Bell, Nt as Network, O as TrendingDown, On as FlashlightOff, Or as Bot, Ot as Phone, P as ToggleLeft, Pn as EyeOff, Pr as BellRing, Pt as Navigation, Q as Ship, Qn as CloudRain, Qt as LockOpen, R as Tag, Rn as Droplets, Rr as BatteryLow, Rt as MoveHorizontal, S as Upload, Sn as GraduationCap, Sr as Car, St as Plug, T as Type, Tn as Funnel, Tr as Bus, Tt as Plane, U as Square, Un as Dog, Ur as ArrowUp, Ut as Minimize2, V as SunMedium, Vn as DoorOpen, Vr as Ban, Vt as MonitorPlay, W as Sprout, Wn as Database, Wr as ArrowUpToLine, Wt as Mic, X as SkipBack, Xn as CloudSun, Xr as AirVent, Xt as Mail, Y as SkipForward, Yn as Cloud, Yr as AlarmSmoke, Yt as MapPin, Z as Siren, Zn as CloudSnow, Zr as Activity, Zt as Lock, _ as Vibrate, _n as HardDrive, _r as ChevronDown, _t as Radar, a as Wrench, an as Leaf, ar as CircleQuestionMark, at as Server, b as User, bn as GripHorizontal, br as Cat, bt as Power, c as Wifi, cr as CircleDot, ct as Scan, d as WifiLow, dn as Image, dr as CircleAlert, dt as Route, en as LoaderCircle, er as CloudFog, et as ShieldOff, f as WifiHigh, fn as ImageOff, fr as ChevronsUpDown, ft as RotateCw, g as Volume2, gn as Hash, gr as ChevronLeft, gt as RadioTower, h as VolumeX, hn as Heater, hr as ChevronRight, ht as Radio, i as X, in as Lightbulb, ir as CircleStop, it as Settings, j as TrainFront, jn as Feather, jr as Bird, jt as Pause, k as TrendingUp, kn as Flame, kr as Bone, kt as Pencil, l as WifiZero, ln as Info, lr as CircleCheck, lt as Save, m as WashingMachine, mn as History, mr as ChevronUp, mt as RefreshCw, n as ZoomIn, nn as ListChecks, nr as Clapperboard, nt as ShieldAlert, o as Workflow, on as LayoutGrid, or as CirclePlus, ot as Search, p as Waves, pn as House, pr as ChevronsDownUp, pt as RotateCcw, q as Smartphone, qn as Copy, qr as ArrowDown, qt as Megaphone, r as Zap, rn as Link2, rr as CircleX, rt as Share2, s as Wind, sn as Laugh, sr as CirclePause, st as ScrollText, t as ZoomOut, tn as List, tr as Clock, tt as ShieldCheck, u as WifiOff, un as Inbox, ur as CircleCheckBig, ut as Sailboat, v as UtensilsCrossed, vn as Hand, vr as Check, vt as QrCode, w as Undo2, wn as Gamepad2, wr as Cable, wt as Play, x as UserCheck, xn as Grid2x2, xr as Cast, xt as PowerOff, y as Users, yn as Hammer, yr as ChartLine, yt as Puzzle, z as Sunrise, zn as Droplet, zr as BatteryFull, zt as MousePointerClick } from "./index.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";
5
5
  /**
6
6
  * @license lucide-react v0.576.0 - ISC
7
7
  *
@@ -27575,42 +27575,6 @@ var RouteOff = createLucideIcon("route-off", [
27575
27575
  * This source code is licensed under the ISC license.
27576
27576
  * See the LICENSE file in the root directory of this source tree.
27577
27577
  */
27578
- var Router = createLucideIcon("router", [
27579
- ["rect", {
27580
- width: "20",
27581
- height: "8",
27582
- x: "2",
27583
- y: "14",
27584
- rx: "2",
27585
- key: "w68u3i"
27586
- }],
27587
- ["path", {
27588
- d: "M6.01 18H6",
27589
- key: "19vcac"
27590
- }],
27591
- ["path", {
27592
- d: "M10.01 18H10",
27593
- key: "uamcmx"
27594
- }],
27595
- ["path", {
27596
- d: "M15 10v4",
27597
- key: "qjz1xs"
27598
- }],
27599
- ["path", {
27600
- d: "M17.84 7.17a4 4 0 0 0-5.66 0",
27601
- key: "1rif40"
27602
- }],
27603
- ["path", {
27604
- d: "M20.66 4.34a8 8 0 0 0-11.31 0",
27605
- key: "6a5xfq"
27606
- }]
27607
- ]);
27608
- /**
27609
- * @license lucide-react v0.576.0 - ISC
27610
- *
27611
- * This source code is licensed under the ISC license.
27612
- * See the LICENSE file in the root directory of this source tree.
27613
- */
27614
27578
  var Rows2 = createLucideIcon("rows-2", [["rect", {
27615
27579
  width: "18",
27616
27580
  height: "18",