tw-react-components 0.0.201 → 0.0.203

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.
Files changed (2) hide show
  1. package/index.esm.js +1624 -1208
  2. package/package.json +1 -1
package/index.esm.js CHANGED
@@ -680,7 +680,7 @@ function requireReact_production () {
680
680
  react_production.useTransition = function () {
681
681
  return ReactSharedInternals.H.useTransition();
682
682
  };
683
- react_production.version = "19.2.4";
683
+ react_production.version = "19.2.5";
684
684
  return react_production;
685
685
  }
686
686
 
@@ -1970,7 +1970,7 @@ function requireReact_development () {
1970
1970
  exports$1.useTransition = function () {
1971
1971
  return resolveDispatcher().useTransition();
1972
1972
  };
1973
- exports$1.version = "19.2.4";
1973
+ exports$1.version = "19.2.5";
1974
1974
  "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
1975
1975
  "function" ===
1976
1976
  typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&
@@ -2926,7 +2926,7 @@ function requireReactDom_production () {
2926
2926
  reactDom_production.useFormStatus = function () {
2927
2927
  return ReactSharedInternals.H.useHostTransitionStatus();
2928
2928
  };
2929
- reactDom_production.version = "19.2.4";
2929
+ reactDom_production.version = "19.2.5";
2930
2930
  return reactDom_production;
2931
2931
  }
2932
2932
 
@@ -3354,7 +3354,7 @@ function requireReactDom_development () {
3354
3354
  reactDom_development.useFormStatus = function () {
3355
3355
  return resolveDispatcher().useHostTransitionStatus();
3356
3356
  };
3357
- reactDom_development.version = "19.2.4";
3357
+ reactDom_development.version = "19.2.5";
3358
3358
  "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
3359
3359
  "function" ===
3360
3360
  typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&
@@ -4009,7 +4009,7 @@ var Trigger2 = AccordionTrigger$1;
4009
4009
  var Content2$4 = AccordionContent$1;
4010
4010
 
4011
4011
  /**
4012
- * @license lucide-react v0.563.0 - ISC
4012
+ * @license lucide-react v1.14.0 - ISC
4013
4013
  *
4014
4014
  * This source code is licensed under the ISC license.
4015
4015
  * See the LICENSE file in the root directory of this source tree.
@@ -4020,7 +4020,7 @@ const mergeClasses = (...classes) => classes.filter((className, index, array) =>
4020
4020
  }).join(" ").trim();
4021
4021
 
4022
4022
  /**
4023
- * @license lucide-react v0.563.0 - ISC
4023
+ * @license lucide-react v1.14.0 - ISC
4024
4024
  *
4025
4025
  * This source code is licensed under the ISC license.
4026
4026
  * See the LICENSE file in the root directory of this source tree.
@@ -4029,7 +4029,7 @@ const mergeClasses = (...classes) => classes.filter((className, index, array) =>
4029
4029
  const toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
4030
4030
 
4031
4031
  /**
4032
- * @license lucide-react v0.563.0 - ISC
4032
+ * @license lucide-react v1.14.0 - ISC
4033
4033
  *
4034
4034
  * This source code is licensed under the ISC license.
4035
4035
  * See the LICENSE file in the root directory of this source tree.
@@ -4041,7 +4041,7 @@ const toCamelCase = (string) => string.replace(
4041
4041
  );
4042
4042
 
4043
4043
  /**
4044
- * @license lucide-react v0.563.0 - ISC
4044
+ * @license lucide-react v1.14.0 - ISC
4045
4045
  *
4046
4046
  * This source code is licensed under the ISC license.
4047
4047
  * See the LICENSE file in the root directory of this source tree.
@@ -4054,7 +4054,7 @@ const toPascalCase = (string) => {
4054
4054
  };
4055
4055
 
4056
4056
  /**
4057
- * @license lucide-react v0.563.0 - ISC
4057
+ * @license lucide-react v1.14.0 - ISC
4058
4058
  *
4059
4059
  * This source code is licensed under the ISC license.
4060
4060
  * See the LICENSE file in the root directory of this source tree.
@@ -4073,7 +4073,7 @@ var defaultAttributes$1 = {
4073
4073
  };
4074
4074
 
4075
4075
  /**
4076
- * @license lucide-react v0.563.0 - ISC
4076
+ * @license lucide-react v1.14.0 - ISC
4077
4077
  *
4078
4078
  * This source code is licensed under the ISC license.
4079
4079
  * See the LICENSE file in the root directory of this source tree.
@@ -4088,46 +4088,42 @@ const hasA11yProp = (props) => {
4088
4088
  return false;
4089
4089
  };
4090
4090
 
4091
- /**
4092
- * @license lucide-react v0.563.0 - ISC
4093
- *
4094
- * This source code is licensed under the ISC license.
4095
- * See the LICENSE file in the root directory of this source tree.
4096
- */
4097
-
4091
+ const LucideContext = reactExports.createContext({});
4092
+ const useLucideContext = () => reactExports.useContext(LucideContext);
4098
4093
 
4099
4094
  const Icon = reactExports.forwardRef(
4100
- ({
4101
- color = "currentColor",
4102
- size = 24,
4103
- strokeWidth = 2,
4104
- absoluteStrokeWidth,
4105
- className = "",
4106
- children,
4107
- iconNode,
4108
- ...rest
4109
- }, ref) => reactExports.createElement(
4110
- "svg",
4111
- {
4112
- ref,
4113
- ...defaultAttributes$1,
4114
- width: size,
4115
- height: size,
4116
- stroke: color,
4117
- strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,
4118
- className: mergeClasses("lucide", className),
4119
- ...!children && !hasA11yProp(rest) && { "aria-hidden": "true" },
4120
- ...rest
4121
- },
4122
- [
4123
- ...iconNode.map(([tag, attrs]) => reactExports.createElement(tag, attrs)),
4124
- ...Array.isArray(children) ? children : [children]
4125
- ]
4126
- )
4095
+ ({ color, size, strokeWidth, absoluteStrokeWidth, className = "", children, iconNode, ...rest }, ref) => {
4096
+ const {
4097
+ size: contextSize = 24,
4098
+ strokeWidth: contextStrokeWidth = 2,
4099
+ absoluteStrokeWidth: contextAbsoluteStrokeWidth = false,
4100
+ color: contextColor = "currentColor",
4101
+ className: contextClass = ""
4102
+ } = useLucideContext() ?? {};
4103
+ const calculatedStrokeWidth = absoluteStrokeWidth ?? contextAbsoluteStrokeWidth ? Number(strokeWidth ?? contextStrokeWidth) * 24 / Number(size ?? contextSize) : strokeWidth ?? contextStrokeWidth;
4104
+ return reactExports.createElement(
4105
+ "svg",
4106
+ {
4107
+ ref,
4108
+ ...defaultAttributes$1,
4109
+ width: size ?? contextSize ?? defaultAttributes$1.width,
4110
+ height: size ?? contextSize ?? defaultAttributes$1.height,
4111
+ stroke: color ?? contextColor,
4112
+ strokeWidth: calculatedStrokeWidth,
4113
+ className: mergeClasses("lucide", contextClass, className),
4114
+ ...!children && !hasA11yProp(rest) && { "aria-hidden": "true" },
4115
+ ...rest
4116
+ },
4117
+ [
4118
+ ...iconNode.map(([tag, attrs]) => reactExports.createElement(tag, attrs)),
4119
+ ...Array.isArray(children) ? children : [children]
4120
+ ]
4121
+ );
4122
+ }
4127
4123
  );
4128
4124
 
4129
4125
  /**
4130
- * @license lucide-react v0.563.0 - ISC
4126
+ * @license lucide-react v1.14.0 - ISC
4131
4127
  *
4132
4128
  * This source code is licensed under the ISC license.
4133
4129
  * See the LICENSE file in the root directory of this source tree.
@@ -4152,7 +4148,7 @@ const createLucideIcon = (iconName, iconNode) => {
4152
4148
  };
4153
4149
 
4154
4150
  /**
4155
- * @license lucide-react v0.563.0 - ISC
4151
+ * @license lucide-react v1.14.0 - ISC
4156
4152
  *
4157
4153
  * This source code is licensed under the ISC license.
4158
4154
  * See the LICENSE file in the root directory of this source tree.
@@ -4169,7 +4165,7 @@ const __iconNode$r = [
4169
4165
  const ArrowDownWideNarrow = createLucideIcon("arrow-down-wide-narrow", __iconNode$r);
4170
4166
 
4171
4167
  /**
4172
- * @license lucide-react v0.563.0 - ISC
4168
+ * @license lucide-react v1.14.0 - ISC
4173
4169
  *
4174
4170
  * This source code is licensed under the ISC license.
4175
4171
  * See the LICENSE file in the root directory of this source tree.
@@ -4185,7 +4181,7 @@ const __iconNode$q = [
4185
4181
  const ArrowUpDown = createLucideIcon("arrow-up-down", __iconNode$q);
4186
4182
 
4187
4183
  /**
4188
- * @license lucide-react v0.563.0 - ISC
4184
+ * @license lucide-react v1.14.0 - ISC
4189
4185
  *
4190
4186
  * This source code is licensed under the ISC license.
4191
4187
  * See the LICENSE file in the root directory of this source tree.
@@ -4202,7 +4198,7 @@ const __iconNode$p = [
4202
4198
  const ArrowUpNarrowWide = createLucideIcon("arrow-up-narrow-wide", __iconNode$p);
4203
4199
 
4204
4200
  /**
4205
- * @license lucide-react v0.563.0 - ISC
4201
+ * @license lucide-react v1.14.0 - ISC
4206
4202
  *
4207
4203
  * This source code is licensed under the ISC license.
4208
4204
  * See the LICENSE file in the root directory of this source tree.
@@ -4216,7 +4212,7 @@ const __iconNode$o = [
4216
4212
  const AtSign = createLucideIcon("at-sign", __iconNode$o);
4217
4213
 
4218
4214
  /**
4219
- * @license lucide-react v0.563.0 - ISC
4215
+ * @license lucide-react v1.14.0 - ISC
4220
4216
  *
4221
4217
  * This source code is licensed under the ISC license.
4222
4218
  * See the LICENSE file in the root directory of this source tree.
@@ -4232,7 +4228,7 @@ const __iconNode$n = [
4232
4228
  const Calendar = createLucideIcon("calendar", __iconNode$n);
4233
4229
 
4234
4230
  /**
4235
- * @license lucide-react v0.563.0 - ISC
4231
+ * @license lucide-react v1.14.0 - ISC
4236
4232
  *
4237
4233
  * This source code is licensed under the ISC license.
4238
4234
  * See the LICENSE file in the root directory of this source tree.
@@ -4243,7 +4239,7 @@ const __iconNode$m = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
4243
4239
  const Check = createLucideIcon("check", __iconNode$m);
4244
4240
 
4245
4241
  /**
4246
- * @license lucide-react v0.563.0 - ISC
4242
+ * @license lucide-react v1.14.0 - ISC
4247
4243
  *
4248
4244
  * This source code is licensed under the ISC license.
4249
4245
  * See the LICENSE file in the root directory of this source tree.
@@ -4254,7 +4250,7 @@ const __iconNode$l = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
4254
4250
  const ChevronDown = createLucideIcon("chevron-down", __iconNode$l);
4255
4251
 
4256
4252
  /**
4257
- * @license lucide-react v0.563.0 - ISC
4253
+ * @license lucide-react v1.14.0 - ISC
4258
4254
  *
4259
4255
  * This source code is licensed under the ISC license.
4260
4256
  * See the LICENSE file in the root directory of this source tree.
@@ -4265,7 +4261,7 @@ const __iconNode$k = [["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }]];
4265
4261
  const ChevronLeft = createLucideIcon("chevron-left", __iconNode$k);
4266
4262
 
4267
4263
  /**
4268
- * @license lucide-react v0.563.0 - ISC
4264
+ * @license lucide-react v1.14.0 - ISC
4269
4265
  *
4270
4266
  * This source code is licensed under the ISC license.
4271
4267
  * See the LICENSE file in the root directory of this source tree.
@@ -4276,7 +4272,7 @@ const __iconNode$j = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
4276
4272
  const ChevronRight = createLucideIcon("chevron-right", __iconNode$j);
4277
4273
 
4278
4274
  /**
4279
- * @license lucide-react v0.563.0 - ISC
4275
+ * @license lucide-react v1.14.0 - ISC
4280
4276
  *
4281
4277
  * This source code is licensed under the ISC license.
4282
4278
  * See the LICENSE file in the root directory of this source tree.
@@ -4287,7 +4283,7 @@ const __iconNode$i = [["path", { d: "m18 15-6-6-6 6", key: "153udz" }]];
4287
4283
  const ChevronUp = createLucideIcon("chevron-up", __iconNode$i);
4288
4284
 
4289
4285
  /**
4290
- * @license lucide-react v0.563.0 - ISC
4286
+ * @license lucide-react v1.14.0 - ISC
4291
4287
  *
4292
4288
  * This source code is licensed under the ISC license.
4293
4289
  * See the LICENSE file in the root directory of this source tree.
@@ -4301,7 +4297,7 @@ const __iconNode$h = [
4301
4297
  const ChevronsDownUp = createLucideIcon("chevrons-down-up", __iconNode$h);
4302
4298
 
4303
4299
  /**
4304
- * @license lucide-react v0.563.0 - ISC
4300
+ * @license lucide-react v1.14.0 - ISC
4305
4301
  *
4306
4302
  * This source code is licensed under the ISC license.
4307
4303
  * See the LICENSE file in the root directory of this source tree.
@@ -4309,13 +4305,13 @@ const ChevronsDownUp = createLucideIcon("chevrons-down-up", __iconNode$h);
4309
4305
 
4310
4306
 
4311
4307
  const __iconNode$g = [
4312
- ["path", { d: "m11 17-5-5 5-5", key: "13zhaf" }],
4313
- ["path", { d: "m18 17-5-5 5-5", key: "h8a8et" }]
4308
+ ["path", { d: "m6 17 5-5-5-5", key: "xnjwq" }],
4309
+ ["path", { d: "m13 17 5-5-5-5", key: "17xmmf" }]
4314
4310
  ];
4315
- const ChevronsLeft = createLucideIcon("chevrons-left", __iconNode$g);
4311
+ const ChevronsRight = createLucideIcon("chevrons-right", __iconNode$g);
4316
4312
 
4317
4313
  /**
4318
- * @license lucide-react v0.563.0 - ISC
4314
+ * @license lucide-react v1.14.0 - ISC
4319
4315
  *
4320
4316
  * This source code is licensed under the ISC license.
4321
4317
  * See the LICENSE file in the root directory of this source tree.
@@ -4323,13 +4319,13 @@ const ChevronsLeft = createLucideIcon("chevrons-left", __iconNode$g);
4323
4319
 
4324
4320
 
4325
4321
  const __iconNode$f = [
4326
- ["path", { d: "m6 17 5-5-5-5", key: "xnjwq" }],
4327
- ["path", { d: "m13 17 5-5-5-5", key: "17xmmf" }]
4322
+ ["path", { d: "m11 17-5-5 5-5", key: "13zhaf" }],
4323
+ ["path", { d: "m18 17-5-5 5-5", key: "h8a8et" }]
4328
4324
  ];
4329
- const ChevronsRight = createLucideIcon("chevrons-right", __iconNode$f);
4325
+ const ChevronsLeft = createLucideIcon("chevrons-left", __iconNode$f);
4330
4326
 
4331
4327
  /**
4332
- * @license lucide-react v0.563.0 - ISC
4328
+ * @license lucide-react v1.14.0 - ISC
4333
4329
  *
4334
4330
  * This source code is licensed under the ISC license.
4335
4331
  * See the LICENSE file in the root directory of this source tree.
@@ -4343,7 +4339,7 @@ const __iconNode$e = [
4343
4339
  const ChevronsUpDown = createLucideIcon("chevrons-up-down", __iconNode$e);
4344
4340
 
4345
4341
  /**
4346
- * @license lucide-react v0.563.0 - ISC
4342
+ * @license lucide-react v1.14.0 - ISC
4347
4343
  *
4348
4344
  * This source code is licensed under the ISC license.
4349
4345
  * See the LICENSE file in the root directory of this source tree.
@@ -4358,7 +4354,7 @@ const __iconNode$d = [
4358
4354
  const CircleQuestionMark = createLucideIcon("circle-question-mark", __iconNode$d);
4359
4355
 
4360
4356
  /**
4361
- * @license lucide-react v0.563.0 - ISC
4357
+ * @license lucide-react v1.14.0 - ISC
4362
4358
  *
4363
4359
  * This source code is licensed under the ISC license.
4364
4360
  * See the LICENSE file in the root directory of this source tree.
@@ -4369,7 +4365,7 @@ const __iconNode$c = [["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]
4369
4365
  const Circle = createLucideIcon("circle", __iconNode$c);
4370
4366
 
4371
4367
  /**
4372
- * @license lucide-react v0.563.0 - ISC
4368
+ * @license lucide-react v1.14.0 - ISC
4373
4369
  *
4374
4370
  * This source code is licensed under the ISC license.
4375
4371
  * See the LICENSE file in the root directory of this source tree.
@@ -4377,13 +4373,13 @@ const Circle = createLucideIcon("circle", __iconNode$c);
4377
4373
 
4378
4374
 
4379
4375
  const __iconNode$b = [
4380
- ["path", { d: "M12 6v6l4 2", key: "mmk7yg" }],
4381
- ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]
4376
+ ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
4377
+ ["path", { d: "M12 6v6l4 2", key: "mmk7yg" }]
4382
4378
  ];
4383
4379
  const Clock = createLucideIcon("clock", __iconNode$b);
4384
4380
 
4385
4381
  /**
4386
- * @license lucide-react v0.563.0 - ISC
4382
+ * @license lucide-react v1.14.0 - ISC
4387
4383
  *
4388
4384
  * This source code is licensed under the ISC license.
4389
4385
  * See the LICENSE file in the root directory of this source tree.
@@ -4398,7 +4394,7 @@ const __iconNode$a = [
4398
4394
  const CloudUpload = createLucideIcon("cloud-upload", __iconNode$a);
4399
4395
 
4400
4396
  /**
4401
- * @license lucide-react v0.563.0 - ISC
4397
+ * @license lucide-react v1.14.0 - ISC
4402
4398
  *
4403
4399
  * This source code is licensed under the ISC license.
4404
4400
  * See the LICENSE file in the root directory of this source tree.
@@ -4426,7 +4422,7 @@ const __iconNode$9 = [
4426
4422
  const EyeOff = createLucideIcon("eye-off", __iconNode$9);
4427
4423
 
4428
4424
  /**
4429
- * @license lucide-react v0.563.0 - ISC
4425
+ * @license lucide-react v1.14.0 - ISC
4430
4426
  *
4431
4427
  * This source code is licensed under the ISC license.
4432
4428
  * See the LICENSE file in the root directory of this source tree.
@@ -4446,7 +4442,7 @@ const __iconNode$8 = [
4446
4442
  const Eye = createLucideIcon("eye", __iconNode$8);
4447
4443
 
4448
4444
  /**
4449
- * @license lucide-react v0.563.0 - ISC
4445
+ * @license lucide-react v1.14.0 - ISC
4450
4446
  *
4451
4447
  * This source code is licensed under the ISC license.
4452
4448
  * See the LICENSE file in the root directory of this source tree.
@@ -4464,7 +4460,7 @@ const __iconNode$7 = [
4464
4460
  const GripVertical = createLucideIcon("grip-vertical", __iconNode$7);
4465
4461
 
4466
4462
  /**
4467
- * @license lucide-react v0.563.0 - ISC
4463
+ * @license lucide-react v1.14.0 - ISC
4468
4464
  *
4469
4465
  * This source code is licensed under the ISC license.
4470
4466
  * See the LICENSE file in the root directory of this source tree.
@@ -4475,7 +4471,7 @@ const __iconNode$6 = [["path", { d: "M5 12h14", key: "1ays0h" }]];
4475
4471
  const Minus = createLucideIcon("minus", __iconNode$6);
4476
4472
 
4477
4473
  /**
4478
- * @license lucide-react v0.563.0 - ISC
4474
+ * @license lucide-react v1.14.0 - ISC
4479
4475
  *
4480
4476
  * This source code is licensed under the ISC license.
4481
4477
  * See the LICENSE file in the root directory of this source tree.
@@ -4490,7 +4486,7 @@ const __iconNode$5 = [
4490
4486
  const Monitor = createLucideIcon("monitor", __iconNode$5);
4491
4487
 
4492
4488
  /**
4493
- * @license lucide-react v0.563.0 - ISC
4489
+ * @license lucide-react v1.14.0 - ISC
4494
4490
  *
4495
4491
  * This source code is licensed under the ISC license.
4496
4492
  * See the LICENSE file in the root directory of this source tree.
@@ -4509,7 +4505,7 @@ const __iconNode$4 = [
4509
4505
  const Moon = createLucideIcon("moon", __iconNode$4);
4510
4506
 
4511
4507
  /**
4512
- * @license lucide-react v0.563.0 - ISC
4508
+ * @license lucide-react v1.14.0 - ISC
4513
4509
  *
4514
4510
  * This source code is licensed under the ISC license.
4515
4511
  * See the LICENSE file in the root directory of this source tree.
@@ -4523,7 +4519,7 @@ const __iconNode$3 = [
4523
4519
  const PanelLeft = createLucideIcon("panel-left", __iconNode$3);
4524
4520
 
4525
4521
  /**
4526
- * @license lucide-react v0.563.0 - ISC
4522
+ * @license lucide-react v1.14.0 - ISC
4527
4523
  *
4528
4524
  * This source code is licensed under the ISC license.
4529
4525
  * See the LICENSE file in the root directory of this source tree.
@@ -4537,7 +4533,7 @@ const __iconNode$2 = [
4537
4533
  const Plus = createLucideIcon("plus", __iconNode$2);
4538
4534
 
4539
4535
  /**
4540
- * @license lucide-react v0.563.0 - ISC
4536
+ * @license lucide-react v1.14.0 - ISC
4541
4537
  *
4542
4538
  * This source code is licensed under the ISC license.
4543
4539
  * See the LICENSE file in the root directory of this source tree.
@@ -4558,7 +4554,7 @@ const __iconNode$1 = [
4558
4554
  const Sun = createLucideIcon("sun", __iconNode$1);
4559
4555
 
4560
4556
  /**
4561
- * @license lucide-react v0.563.0 - ISC
4557
+ * @license lucide-react v1.14.0 - ISC
4562
4558
  *
4563
4559
  * This source code is licensed under the ISC license.
4564
4560
  * See the LICENSE file in the root directory of this source tree.
@@ -4569,7 +4565,7 @@ const __iconNode = [
4569
4565
  ["path", { d: "M18 6 6 18", key: "1bl5f8" }],
4570
4566
  ["path", { d: "m6 6 12 12", key: "d8bk6v" }]
4571
4567
  ];
4572
- const X = createLucideIcon("x", __iconNode);
4568
+ const X$1 = createLucideIcon("x", __iconNode);
4573
4569
 
4574
4570
  function r(e){var t,f,n="";if("string"==typeof e||"number"==typeof e)n+=e;else if("object"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=" "),n+=f);}else for(f in e)e[f]&&(n&&(n+=" "),n+=f);return n}function clsx(){for(var e,t,f=0,n="",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=" "),n+=t);return n}
4575
4571
 
@@ -5063,7 +5059,7 @@ const fromTheme = key => {
5063
5059
  };
5064
5060
  const arbitraryValueRegex = /^\[(?:(\w[\w-]*):)?(.+)\]$/i;
5065
5061
  const arbitraryVariableRegex = /^\((?:(\w[\w-]*):)?(.+)\)$/i;
5066
- const fractionRegex = /^\d+\/\d+$/;
5062
+ const fractionRegex = /^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/;
5067
5063
  const tshirtUnitRegex = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/;
5068
5064
  const lengthUnitRegex = /\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/;
5069
5065
  const colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/;
@@ -5089,6 +5085,8 @@ const isArbitrarySize = value => getIsArbitraryValue(value, isLabelSize, isNever
5089
5085
  const isArbitraryValue = value => arbitraryValueRegex.test(value);
5090
5086
  const isArbitraryLength = value => getIsArbitraryValue(value, isLabelLength, isLengthOnly);
5091
5087
  const isArbitraryNumber = value => getIsArbitraryValue(value, isLabelNumber, isNumber);
5088
+ const isArbitraryWeight = value => getIsArbitraryValue(value, isLabelWeight, isAny);
5089
+ const isArbitraryFamilyName = value => getIsArbitraryValue(value, isLabelFamilyName, isNever);
5092
5090
  const isArbitraryPosition = value => getIsArbitraryValue(value, isLabelPosition, isNever);
5093
5091
  const isArbitraryImage = value => getIsArbitraryValue(value, isLabelImage, isImage);
5094
5092
  const isArbitraryShadow = value => getIsArbitraryValue(value, isLabelShadow, isShadow);
@@ -5099,6 +5097,7 @@ const isArbitraryVariablePosition = value => getIsArbitraryVariable(value, isLab
5099
5097
  const isArbitraryVariableSize = value => getIsArbitraryVariable(value, isLabelSize);
5100
5098
  const isArbitraryVariableImage = value => getIsArbitraryVariable(value, isLabelImage);
5101
5099
  const isArbitraryVariableShadow = value => getIsArbitraryVariable(value, isLabelShadow, true);
5100
+ const isArbitraryVariableWeight = value => getIsArbitraryVariable(value, isLabelWeight, true);
5102
5101
  // Helpers
5103
5102
  const getIsArbitraryValue = (value, testLabel, testValue) => {
5104
5103
  const result = arbitraryValueRegex.exec(value);
@@ -5127,6 +5126,7 @@ const isLabelSize = label => label === 'length' || label === 'size' || label ===
5127
5126
  const isLabelLength = label => label === 'length';
5128
5127
  const isLabelNumber = label => label === 'number';
5129
5128
  const isLabelFamilyName = label => label === 'family-name';
5129
+ const isLabelWeight = label => label === 'number' || label === 'weight';
5130
5130
  const isLabelShadow = label => label === 'shadow';
5131
5131
  const getDefaultConfig = () => {
5132
5132
  /**
@@ -5185,6 +5185,8 @@ const getDefaultConfig = () => {
5185
5185
  const scaleAlignSecondaryAxis = () => ['start', 'end', 'center', 'stretch', 'center-safe', 'end-safe'];
5186
5186
  const scaleMargin = () => ['auto', ...scaleUnambiguousSpacing()];
5187
5187
  const scaleSizing = () => [isFraction, 'auto', 'full', 'dvw', 'dvh', 'lvw', 'lvh', 'svw', 'svh', 'min', 'max', 'fit', ...scaleUnambiguousSpacing()];
5188
+ const scaleSizingInline = () => [isFraction, 'screen', 'full', 'dvw', 'lvw', 'svw', 'min', 'max', 'fit', ...scaleUnambiguousSpacing()];
5189
+ const scaleSizingBlock = () => [isFraction, 'screen', 'full', 'lh', 'dvh', 'lvh', 'svh', 'min', 'max', 'fit', ...scaleUnambiguousSpacing()];
5188
5190
  const scaleColor = () => [themeColor, isArbitraryVariable, isArbitraryValue];
5189
5191
  const scaleBgPosition = () => [...scalePosition(), isArbitraryVariablePosition, isArbitraryPosition, {
5190
5192
  position: [isArbitraryVariable, isArbitraryValue]
@@ -5383,40 +5385,66 @@ const getDefaultConfig = () => {
5383
5385
  */
5384
5386
  position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],
5385
5387
  /**
5386
- * Top / Right / Bottom / Left
5388
+ * Inset
5387
5389
  * @see https://tailwindcss.com/docs/top-right-bottom-left
5388
5390
  */
5389
5391
  inset: [{
5390
5392
  inset: scaleInset()
5391
5393
  }],
5392
5394
  /**
5393
- * Right / Left
5395
+ * Inset Inline
5394
5396
  * @see https://tailwindcss.com/docs/top-right-bottom-left
5395
5397
  */
5396
5398
  'inset-x': [{
5397
5399
  'inset-x': scaleInset()
5398
5400
  }],
5399
5401
  /**
5400
- * Top / Bottom
5402
+ * Inset Block
5401
5403
  * @see https://tailwindcss.com/docs/top-right-bottom-left
5402
5404
  */
5403
5405
  'inset-y': [{
5404
5406
  'inset-y': scaleInset()
5405
5407
  }],
5406
5408
  /**
5407
- * Start
5409
+ * Inset Inline Start
5408
5410
  * @see https://tailwindcss.com/docs/top-right-bottom-left
5411
+ * @todo class group will be renamed to `inset-s` in next major release
5409
5412
  */
5410
5413
  start: [{
5414
+ 'inset-s': scaleInset(),
5415
+ /**
5416
+ * @deprecated since Tailwind CSS v4.2.0 in favor of `inset-s-*` utilities.
5417
+ * @see https://github.com/tailwindlabs/tailwindcss/pull/19613
5418
+ */
5411
5419
  start: scaleInset()
5412
5420
  }],
5413
5421
  /**
5414
- * End
5422
+ * Inset Inline End
5415
5423
  * @see https://tailwindcss.com/docs/top-right-bottom-left
5424
+ * @todo class group will be renamed to `inset-e` in next major release
5416
5425
  */
5417
5426
  end: [{
5427
+ 'inset-e': scaleInset(),
5428
+ /**
5429
+ * @deprecated since Tailwind CSS v4.2.0 in favor of `inset-e-*` utilities.
5430
+ * @see https://github.com/tailwindlabs/tailwindcss/pull/19613
5431
+ */
5418
5432
  end: scaleInset()
5419
5433
  }],
5434
+ /**
5435
+ * Inset Block Start
5436
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
5437
+ */
5438
+ 'inset-bs': [{
5439
+ 'inset-bs': scaleInset()
5440
+ }],
5441
+ /**
5442
+ * Inset Block End
5443
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
5444
+ */
5445
+ 'inset-be': [{
5446
+ 'inset-be': scaleInset()
5447
+ }],
5420
5448
  /**
5421
5449
  * Top
5422
5450
  * @see https://tailwindcss.com/docs/top-right-bottom-left
@@ -5683,33 +5711,47 @@ const getDefaultConfig = () => {
5683
5711
  p: scaleUnambiguousSpacing()
5684
5712
  }],
5685
5713
  /**
5686
- * Padding X
5714
+ * Padding Inline
5687
5715
  * @see https://tailwindcss.com/docs/padding
5688
5716
  */
5689
5717
  px: [{
5690
5718
  px: scaleUnambiguousSpacing()
5691
5719
  }],
5692
5720
  /**
5693
- * Padding Y
5721
+ * Padding Block
5694
5722
  * @see https://tailwindcss.com/docs/padding
5695
5723
  */
5696
5724
  py: [{
5697
5725
  py: scaleUnambiguousSpacing()
5698
5726
  }],
5699
5727
  /**
5700
- * Padding Start
5728
+ * Padding Inline Start
5701
5729
  * @see https://tailwindcss.com/docs/padding
5702
5730
  */
5703
5731
  ps: [{
5704
5732
  ps: scaleUnambiguousSpacing()
5705
5733
  }],
5706
5734
  /**
5707
- * Padding End
5735
+ * Padding Inline End
5708
5736
  * @see https://tailwindcss.com/docs/padding
5709
5737
  */
5710
5738
  pe: [{
5711
5739
  pe: scaleUnambiguousSpacing()
5712
5740
  }],
5741
+ /**
5742
+ * Padding Block Start
5743
+ * @see https://tailwindcss.com/docs/padding
5744
+ */
5745
+ pbs: [{
5746
+ pbs: scaleUnambiguousSpacing()
5747
+ }],
5748
+ /**
5749
+ * Padding Block End
5750
+ * @see https://tailwindcss.com/docs/padding
5751
+ */
5752
+ pbe: [{
5753
+ pbe: scaleUnambiguousSpacing()
5754
+ }],
5713
5755
  /**
5714
5756
  * Padding Top
5715
5757
  * @see https://tailwindcss.com/docs/padding
@@ -5746,33 +5788,47 @@ const getDefaultConfig = () => {
5746
5788
  m: scaleMargin()
5747
5789
  }],
5748
5790
  /**
5749
- * Margin X
5791
+ * Margin Inline
5750
5792
  * @see https://tailwindcss.com/docs/margin
5751
5793
  */
5752
5794
  mx: [{
5753
5795
  mx: scaleMargin()
5754
5796
  }],
5755
5797
  /**
5756
- * Margin Y
5798
+ * Margin Block
5757
5799
  * @see https://tailwindcss.com/docs/margin
5758
5800
  */
5759
5801
  my: [{
5760
5802
  my: scaleMargin()
5761
5803
  }],
5762
5804
  /**
5763
- * Margin Start
5805
+ * Margin Inline Start
5764
5806
  * @see https://tailwindcss.com/docs/margin
5765
5807
  */
5766
5808
  ms: [{
5767
5809
  ms: scaleMargin()
5768
5810
  }],
5769
5811
  /**
5770
- * Margin End
5812
+ * Margin Inline End
5771
5813
  * @see https://tailwindcss.com/docs/margin
5772
5814
  */
5773
5815
  me: [{
5774
5816
  me: scaleMargin()
5775
5817
  }],
5818
+ /**
5819
+ * Margin Block Start
5820
+ * @see https://tailwindcss.com/docs/margin
5821
+ */
5822
+ mbs: [{
5823
+ mbs: scaleMargin()
5824
+ }],
5825
+ /**
5826
+ * Margin Block End
5827
+ * @see https://tailwindcss.com/docs/margin
5828
+ */
5829
+ mbe: [{
5830
+ mbe: scaleMargin()
5831
+ }],
5776
5832
  /**
5777
5833
  * Margin Top
5778
5834
  * @see https://tailwindcss.com/docs/margin
@@ -5835,6 +5891,48 @@ const getDefaultConfig = () => {
5835
5891
  size: [{
5836
5892
  size: scaleSizing()
5837
5893
  }],
5894
+ /**
5895
+ * Inline Size
5896
+ * @see https://tailwindcss.com/docs/width
5897
+ */
5898
+ 'inline-size': [{
5899
+ inline: ['auto', ...scaleSizingInline()]
5900
+ }],
5901
+ /**
5902
+ * Min-Inline Size
5903
+ * @see https://tailwindcss.com/docs/min-width
5904
+ */
5905
+ 'min-inline-size': [{
5906
+ 'min-inline': ['auto', ...scaleSizingInline()]
5907
+ }],
5908
+ /**
5909
+ * Max-Inline Size
5910
+ * @see https://tailwindcss.com/docs/max-width
5911
+ */
5912
+ 'max-inline-size': [{
5913
+ 'max-inline': ['none', ...scaleSizingInline()]
5914
+ }],
5915
+ /**
5916
+ * Block Size
5917
+ * @see https://tailwindcss.com/docs/height
5918
+ */
5919
+ 'block-size': [{
5920
+ block: ['auto', ...scaleSizingBlock()]
5921
+ }],
5922
+ /**
5923
+ * Min-Block Size
5924
+ * @see https://tailwindcss.com/docs/min-height
5925
+ */
5926
+ 'min-block-size': [{
5927
+ 'min-block': ['auto', ...scaleSizingBlock()]
5928
+ }],
5929
+ /**
5930
+ * Max-Block Size
5931
+ * @see https://tailwindcss.com/docs/max-height
5932
+ */
5933
+ 'max-block-size': [{
5934
+ 'max-block': ['none', ...scaleSizingBlock()]
5935
+ }],
5838
5936
  /**
5839
5937
  * Width
5840
5938
  * @see https://tailwindcss.com/docs/width
@@ -5907,7 +6005,7 @@ const getDefaultConfig = () => {
5907
6005
  * @see https://tailwindcss.com/docs/font-weight
5908
6006
  */
5909
6007
  'font-weight': [{
5910
- font: [themeFontWeight, isArbitraryVariable, isArbitraryNumber]
6008
+ font: [themeFontWeight, isArbitraryVariableWeight, isArbitraryWeight]
5911
6009
  }],
5912
6010
  /**
5913
6011
  * Font Stretch
@@ -5921,7 +6019,14 @@ const getDefaultConfig = () => {
5921
6019
  * @see https://tailwindcss.com/docs/font-family
5922
6020
  */
5923
6021
  'font-family': [{
5924
- font: [isArbitraryVariableFamilyName, isArbitraryValue, themeFont]
6022
+ font: [isArbitraryVariableFamilyName, isArbitraryFamilyName, themeFont]
6023
+ }],
6024
+ /**
6025
+ * Font Feature Settings
6026
+ * @see https://tailwindcss.com/docs/font-feature-settings
6027
+ */
6028
+ 'font-features': [{
6029
+ 'font-features': [isArbitraryValue]
5925
6030
  }],
5926
6031
  /**
5927
6032
  * Font Variant Numeric
@@ -6340,33 +6445,47 @@ const getDefaultConfig = () => {
6340
6445
  border: scaleBorderWidth()
6341
6446
  }],
6342
6447
  /**
6343
- * Border Width X
6448
+ * Border Width Inline
6344
6449
  * @see https://tailwindcss.com/docs/border-width
6345
6450
  */
6346
6451
  'border-w-x': [{
6347
6452
  'border-x': scaleBorderWidth()
6348
6453
  }],
6349
6454
  /**
6350
- * Border Width Y
6455
+ * Border Width Block
6351
6456
  * @see https://tailwindcss.com/docs/border-width
6352
6457
  */
6353
6458
  'border-w-y': [{
6354
6459
  'border-y': scaleBorderWidth()
6355
6460
  }],
6356
6461
  /**
6357
- * Border Width Start
6462
+ * Border Width Inline Start
6358
6463
  * @see https://tailwindcss.com/docs/border-width
6359
6464
  */
6360
6465
  'border-w-s': [{
6361
6466
  'border-s': scaleBorderWidth()
6362
6467
  }],
6363
6468
  /**
6364
- * Border Width End
6469
+ * Border Width Inline End
6365
6470
  * @see https://tailwindcss.com/docs/border-width
6366
6471
  */
6367
6472
  'border-w-e': [{
6368
6473
  'border-e': scaleBorderWidth()
6369
6474
  }],
6475
+ /**
6476
+ * Border Width Block Start
6477
+ * @see https://tailwindcss.com/docs/border-width
6478
+ */
6479
+ 'border-w-bs': [{
6480
+ 'border-bs': scaleBorderWidth()
6481
+ }],
6482
+ /**
6483
+ * Border Width Block End
6484
+ * @see https://tailwindcss.com/docs/border-width
6485
+ */
6486
+ 'border-w-be': [{
6487
+ 'border-be': scaleBorderWidth()
6488
+ }],
6370
6489
  /**
6371
6490
  * Border Width Top
6372
6491
  * @see https://tailwindcss.com/docs/border-width
@@ -6441,33 +6560,47 @@ const getDefaultConfig = () => {
6441
6560
  border: scaleColor()
6442
6561
  }],
6443
6562
  /**
6444
- * Border Color X
6563
+ * Border Color Inline
6445
6564
  * @see https://tailwindcss.com/docs/border-color
6446
6565
  */
6447
6566
  'border-color-x': [{
6448
6567
  'border-x': scaleColor()
6449
6568
  }],
6450
6569
  /**
6451
- * Border Color Y
6570
+ * Border Color Block
6452
6571
  * @see https://tailwindcss.com/docs/border-color
6453
6572
  */
6454
6573
  'border-color-y': [{
6455
6574
  'border-y': scaleColor()
6456
6575
  }],
6457
6576
  /**
6458
- * Border Color S
6577
+ * Border Color Inline Start
6459
6578
  * @see https://tailwindcss.com/docs/border-color
6460
6579
  */
6461
6580
  'border-color-s': [{
6462
6581
  'border-s': scaleColor()
6463
6582
  }],
6464
6583
  /**
6465
- * Border Color E
6584
+ * Border Color Inline End
6466
6585
  * @see https://tailwindcss.com/docs/border-color
6467
6586
  */
6468
6587
  'border-color-e': [{
6469
6588
  'border-e': scaleColor()
6470
6589
  }],
6590
+ /**
6591
+ * Border Color Block Start
6592
+ * @see https://tailwindcss.com/docs/border-color
6593
+ */
6594
+ 'border-color-bs': [{
6595
+ 'border-bs': scaleColor()
6596
+ }],
6597
+ /**
6598
+ * Border Color Block End
6599
+ * @see https://tailwindcss.com/docs/border-color
6600
+ */
6601
+ 'border-color-be': [{
6602
+ 'border-be': scaleColor()
6603
+ }],
6471
6604
  /**
6472
6605
  * Border Color Top
6473
6606
  * @see https://tailwindcss.com/docs/border-color
@@ -7328,33 +7461,47 @@ const getDefaultConfig = () => {
7328
7461
  'scroll-m': scaleUnambiguousSpacing()
7329
7462
  }],
7330
7463
  /**
7331
- * Scroll Margin X
7464
+ * Scroll Margin Inline
7332
7465
  * @see https://tailwindcss.com/docs/scroll-margin
7333
7466
  */
7334
7467
  'scroll-mx': [{
7335
7468
  'scroll-mx': scaleUnambiguousSpacing()
7336
7469
  }],
7337
7470
  /**
7338
- * Scroll Margin Y
7471
+ * Scroll Margin Block
7339
7472
  * @see https://tailwindcss.com/docs/scroll-margin
7340
7473
  */
7341
7474
  'scroll-my': [{
7342
7475
  'scroll-my': scaleUnambiguousSpacing()
7343
7476
  }],
7344
7477
  /**
7345
- * Scroll Margin Start
7478
+ * Scroll Margin Inline Start
7346
7479
  * @see https://tailwindcss.com/docs/scroll-margin
7347
7480
  */
7348
7481
  'scroll-ms': [{
7349
7482
  'scroll-ms': scaleUnambiguousSpacing()
7350
7483
  }],
7351
7484
  /**
7352
- * Scroll Margin End
7485
+ * Scroll Margin Inline End
7353
7486
  * @see https://tailwindcss.com/docs/scroll-margin
7354
7487
  */
7355
7488
  'scroll-me': [{
7356
7489
  'scroll-me': scaleUnambiguousSpacing()
7357
7490
  }],
7491
+ /**
7492
+ * Scroll Margin Block Start
7493
+ * @see https://tailwindcss.com/docs/scroll-margin
7494
+ */
7495
+ 'scroll-mbs': [{
7496
+ 'scroll-mbs': scaleUnambiguousSpacing()
7497
+ }],
7498
+ /**
7499
+ * Scroll Margin Block End
7500
+ * @see https://tailwindcss.com/docs/scroll-margin
7501
+ */
7502
+ 'scroll-mbe': [{
7503
+ 'scroll-mbe': scaleUnambiguousSpacing()
7504
+ }],
7358
7505
  /**
7359
7506
  * Scroll Margin Top
7360
7507
  * @see https://tailwindcss.com/docs/scroll-margin
@@ -7391,33 +7538,47 @@ const getDefaultConfig = () => {
7391
7538
  'scroll-p': scaleUnambiguousSpacing()
7392
7539
  }],
7393
7540
  /**
7394
- * Scroll Padding X
7541
+ * Scroll Padding Inline
7395
7542
  * @see https://tailwindcss.com/docs/scroll-padding
7396
7543
  */
7397
7544
  'scroll-px': [{
7398
7545
  'scroll-px': scaleUnambiguousSpacing()
7399
7546
  }],
7400
7547
  /**
7401
- * Scroll Padding Y
7548
+ * Scroll Padding Block
7402
7549
  * @see https://tailwindcss.com/docs/scroll-padding
7403
7550
  */
7404
7551
  'scroll-py': [{
7405
7552
  'scroll-py': scaleUnambiguousSpacing()
7406
7553
  }],
7407
7554
  /**
7408
- * Scroll Padding Start
7555
+ * Scroll Padding Inline Start
7409
7556
  * @see https://tailwindcss.com/docs/scroll-padding
7410
7557
  */
7411
7558
  'scroll-ps': [{
7412
7559
  'scroll-ps': scaleUnambiguousSpacing()
7413
7560
  }],
7414
7561
  /**
7415
- * Scroll Padding End
7562
+ * Scroll Padding Inline End
7416
7563
  * @see https://tailwindcss.com/docs/scroll-padding
7417
7564
  */
7418
7565
  'scroll-pe': [{
7419
7566
  'scroll-pe': scaleUnambiguousSpacing()
7420
7567
  }],
7568
+ /**
7569
+ * Scroll Padding Block Start
7570
+ * @see https://tailwindcss.com/docs/scroll-padding
7571
+ */
7572
+ 'scroll-pbs': [{
7573
+ 'scroll-pbs': scaleUnambiguousSpacing()
7574
+ }],
7575
+ /**
7576
+ * Scroll Padding Block End
7577
+ * @see https://tailwindcss.com/docs/scroll-padding
7578
+ */
7579
+ 'scroll-pbe': [{
7580
+ 'scroll-pbe': scaleUnambiguousSpacing()
7581
+ }],
7421
7582
  /**
7422
7583
  * Scroll Padding Top
7423
7584
  * @see https://tailwindcss.com/docs/scroll-padding
@@ -7552,15 +7713,15 @@ const getDefaultConfig = () => {
7552
7713
  conflictingClassGroups: {
7553
7714
  overflow: ['overflow-x', 'overflow-y'],
7554
7715
  overscroll: ['overscroll-x', 'overscroll-y'],
7555
- inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],
7716
+ inset: ['inset-x', 'inset-y', 'inset-bs', 'inset-be', 'start', 'end', 'top', 'right', 'bottom', 'left'],
7556
7717
  'inset-x': ['right', 'left'],
7557
7718
  'inset-y': ['top', 'bottom'],
7558
7719
  flex: ['basis', 'grow', 'shrink'],
7559
7720
  gap: ['gap-x', 'gap-y'],
7560
- p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],
7721
+ p: ['px', 'py', 'ps', 'pe', 'pbs', 'pbe', 'pt', 'pr', 'pb', 'pl'],
7561
7722
  px: ['pr', 'pl'],
7562
7723
  py: ['pt', 'pb'],
7563
- m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],
7724
+ m: ['mx', 'my', 'ms', 'me', 'mbs', 'mbe', 'mt', 'mr', 'mb', 'ml'],
7564
7725
  mx: ['mr', 'ml'],
7565
7726
  my: ['mt', 'mb'],
7566
7727
  size: ['w', 'h'],
@@ -7580,18 +7741,18 @@ const getDefaultConfig = () => {
7580
7741
  'rounded-b': ['rounded-br', 'rounded-bl'],
7581
7742
  'rounded-l': ['rounded-tl', 'rounded-bl'],
7582
7743
  'border-spacing': ['border-spacing-x', 'border-spacing-y'],
7583
- 'border-w': ['border-w-x', 'border-w-y', 'border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],
7744
+ 'border-w': ['border-w-x', 'border-w-y', 'border-w-s', 'border-w-e', 'border-w-bs', 'border-w-be', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],
7584
7745
  'border-w-x': ['border-w-r', 'border-w-l'],
7585
7746
  'border-w-y': ['border-w-t', 'border-w-b'],
7586
- 'border-color': ['border-color-x', 'border-color-y', 'border-color-s', 'border-color-e', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],
7747
+ 'border-color': ['border-color-x', 'border-color-y', 'border-color-s', 'border-color-e', 'border-color-bs', 'border-color-be', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],
7587
7748
  'border-color-x': ['border-color-r', 'border-color-l'],
7588
7749
  'border-color-y': ['border-color-t', 'border-color-b'],
7589
7750
  translate: ['translate-x', 'translate-y', 'translate-none'],
7590
7751
  'translate-none': ['translate', 'translate-x', 'translate-y', 'translate-z'],
7591
- 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],
7752
+ 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mbs', 'scroll-mbe', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],
7592
7753
  'scroll-mx': ['scroll-mr', 'scroll-ml'],
7593
7754
  'scroll-my': ['scroll-mt', 'scroll-mb'],
7594
- 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],
7755
+ 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pbs', 'scroll-pbe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],
7595
7756
  'scroll-px': ['scroll-pr', 'scroll-pl'],
7596
7757
  'scroll-py': ['scroll-pt', 'scroll-pb'],
7597
7758
  touch: ['touch-x', 'touch-y', 'touch-pz'],
@@ -11812,7 +11973,7 @@ const BasicInput = (_a) => {
11812
11973
  'has-[input:focus-visible]:border-ring has-[input:focus-visible]:ring-ring/50 has-[textarea:focus-visible]:border-ring has-[textarea:focus-visible]:ring-ring/50 rounded-md has-[input:focus-visible]:ring-[3px] has-[textarea:focus-visible]:ring-[3px]': type !== 'checkbox',
11813
11974
  'aria-invalid:!ring-destructive/20 dark:aria-invalid:!ring-destructive/40 aria-invalid:[&>input,&>textarea,&>div]:border-destructive': type !== 'checkbox',
11814
11975
  'shadow-xs transition-[color,box-shadow]': type !== 'checkbox',
11815
- }), title: type !== 'textarea' && typeof props.value === 'string' ? props.value : undefined, "data-testid": `${dataTestId}-wrapper`, "aria-invalid": hasErrors, children: [type === 'textarea' ? (jsxRuntimeExports.jsx("textarea", Object.assign({ id: id, className: cn(baseInputClasses, sizeClasses[size].input.replace(/ h-\d/g, ''), 'field-sizing-content min-h-16 py-2', SuffixIcon && 'rounded-r-none border-r-0', inputClassName) }, props, { value: props.value, "data-testid": `${dataTestId}-textarea` }))) : type === 'checkbox' ? (jsxRuntimeExports.jsx("input", Object.assign({ id: id, className: cn('border-input rounded-sm disabled:opacity-50', 'focus:ring-ring/50 focus:border-ring focus:ring-[3px] focus:ring-offset-0', 'aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40', sizeClasses[size].checkbox.input, hasErrors && 'bg-red-100', inputClassName), type: type, checked: Boolean(props.value) }, props, { "data-testid": `${dataTestId}-checkbox`, "aria-invalid": hasErrors }))) : (jsxRuntimeExports.jsx("input", Object.assign({ id: id, className: cn(baseInputClasses, sizeClasses[size].input, SuffixIcon && 'rounded-r-none border-r-0', inputClassName), type: type !== null && type !== void 0 ? type : 'text' }, props, { value: props.value, "data-testid": `${dataTestId}-input` }))), type === 'checkbox' && memoLabel, clearable && (onClear || !!props.value) && !props.disabled && (jsxRuntimeExports.jsx(X, { className: cn('absolute top-1/2 right-2 -translate-y-1/2 cursor-pointer rounded-full bg-white p-0.5 opacity-0 duration-200 group-hover:opacity-100 hover:bg-slate-200 dark:bg-slate-700 dark:hover:bg-slate-800', sizeClasses[size].clearButton.base, {
11976
+ }), title: type !== 'textarea' && typeof props.value === 'string' ? props.value : undefined, "data-testid": `${dataTestId}-wrapper`, "aria-invalid": hasErrors, children: [type === 'textarea' ? (jsxRuntimeExports.jsx("textarea", Object.assign({ id: id, className: cn(baseInputClasses, sizeClasses[size].input.replace(/ h-\d/g, ''), 'field-sizing-content min-h-16 py-2', SuffixIcon && 'rounded-r-none border-r-0', inputClassName) }, props, { value: props.value, "data-testid": `${dataTestId}-textarea` }))) : type === 'checkbox' ? (jsxRuntimeExports.jsx("input", Object.assign({ id: id, className: cn('border-input rounded-sm disabled:opacity-50', 'focus:ring-ring/50 focus:border-ring focus:ring-[3px] focus:ring-offset-0', 'aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40', sizeClasses[size].checkbox.input, hasErrors && 'bg-red-100', inputClassName), type: type, checked: Boolean(props.value) }, props, { "data-testid": `${dataTestId}-checkbox`, "aria-invalid": hasErrors }))) : (jsxRuntimeExports.jsx("input", Object.assign({ id: id, className: cn(baseInputClasses, sizeClasses[size].input, SuffixIcon && 'rounded-r-none border-r-0', inputClassName), type: type !== null && type !== void 0 ? type : 'text' }, props, { value: props.value, "data-testid": `${dataTestId}-input` }))), type === 'checkbox' && memoLabel, clearable && (onClear || !!props.value) && !props.disabled && (jsxRuntimeExports.jsx(X$1, { className: cn('absolute top-1/2 right-2 -translate-y-1/2 cursor-pointer rounded-full bg-white p-0.5 opacity-0 duration-200 group-hover:opacity-100 hover:bg-slate-200 dark:bg-slate-700 dark:hover:bg-slate-800', sizeClasses[size].clearButton.base, {
11816
11977
  [sizeClasses[size].clearButton.withSuffixIcon]: SuffixIcon,
11817
11978
  }), onClick: handleClear, onPointerDown: (event) => event.stopPropagation(), "data-testid": `${dataTestId}-clear` })), type !== 'checkbox' && SuffixIcon && (jsxRuntimeExports.jsx(BasicInputExtension, { className: extensionClassName, size: size, disabled: props.disabled, onClick: onSuffixIconClick, dataTestId: `${dataTestId}-suffix`, children: jsxRuntimeExports.jsx(SuffixIcon, { className: sizeClasses[size].suffix.icon }) }))] })] }));
11818
11979
  };
@@ -11969,6 +12130,7 @@ const DateSelector = ({ date, value, minDate, maxDate, locale, calendarView, set
11969
12130
  const [year, setYear] = reactExports.useState(date.getFullYear());
11970
12131
  const [yearOffset, setYearOffset] = reactExports.useState(0);
11971
12132
  reactExports.useEffect(() => {
12133
+ // eslint-disable-next-line react-hooks/set-state-in-effect
11972
12134
  setMonth(date.getMonth());
11973
12135
  setYear(date.getFullYear());
11974
12136
  }, [date]);
@@ -14626,7 +14788,12 @@ const SelectInput = (_a) => {
14626
14788
  const handleOnClear = () => {
14627
14789
  if (readOnly)
14628
14790
  return;
14629
- onChange === null || onChange === void 0 ? void 0 : onChange(undefined);
14791
+ if (multiple) {
14792
+ onChange === null || onChange === void 0 ? void 0 : onChange([]);
14793
+ }
14794
+ else {
14795
+ onChange === null || onChange === void 0 ? void 0 : onChange(undefined);
14796
+ }
14630
14797
  };
14631
14798
  const handleOnAddItemClicked = () => {
14632
14799
  onNewItemAdded === null || onNewItemAdded === void 0 ? void 0 : onNewItemAdded(searchValue);
@@ -14684,9 +14851,9 @@ var getEventValue = (event) => isObject(event) && event.target
14684
14851
  : event.target.value
14685
14852
  : event;
14686
14853
 
14687
- var getNodeParentName = (name) => name.substring(0, name.search(/\.\d+(\.|$)/)) || name;
14688
-
14689
- var isNameInFieldArray = (names, name) => names.has(getNodeParentName(name));
14854
+ var isNameInFieldArray = (names, name) => name
14855
+ .split('.')
14856
+ .some((part, index, arr) => !isNaN(Number(part)) && names.has(arr.slice(0, index).join('.')));
14690
14857
 
14691
14858
  var isPlainObject = (tempObject) => {
14692
14859
  const prototypeCopy = tempObject.constructor && tempObject.constructor.prototype;
@@ -14730,7 +14897,10 @@ var get = (object, path, defaultValue) => {
14730
14897
  if (!path || !isObject(object)) {
14731
14898
  return defaultValue;
14732
14899
  }
14733
- const result = (isKey(path) ? [path] : stringToPath(path)).reduce((result, key) => isNullOrUndefined(result) ? result : result[key], object);
14900
+ const paths = isKey(path) ? [path] : stringToPath(path);
14901
+ const result = paths.reduce((result, key) => {
14902
+ return isNullOrUndefined(result) ? undefined : result[key];
14903
+ }, object);
14734
14904
  return isUndefined(result) || result === object
14735
14905
  ? isUndefined(object[path])
14736
14906
  ? defaultValue
@@ -14769,8 +14939,7 @@ var set = (object, path, value) => {
14769
14939
 
14770
14940
  const EVENTS = {
14771
14941
  BLUR: 'blur',
14772
- CHANGE: 'change',
14773
- };
14942
+ CHANGE: 'change'};
14774
14943
  const VALIDATION_MODE = {
14775
14944
  all: 'all',
14776
14945
  };
@@ -14787,9 +14956,7 @@ HookFormControlContext.displayName = 'HookFormControlContext';
14787
14956
  const useFormControlContext = () => React.useContext(HookFormControlContext);
14788
14957
 
14789
14958
  var getProxyFormState = (formState, control, localProxyFormState, isRoot = true) => {
14790
- const result = {
14791
- defaultValues: control._defaultValues,
14792
- };
14959
+ const result = {};
14793
14960
  for (const key in formState) {
14794
14961
  Object.defineProperty(result, key, {
14795
14962
  get: () => {
@@ -14840,7 +15007,10 @@ const useIsomorphicLayoutEffect$1 = typeof window !== 'undefined' ? React.useLay
14840
15007
  function useFormState(props) {
14841
15008
  const formControl = useFormControlContext();
14842
15009
  const { control = formControl, disabled, name, exact } = props || {};
14843
- const [formState, updateFormState] = React.useState(control._formState);
15010
+ const [formState, updateFormState] = React.useState(() => ({
15011
+ ...control._formState,
15012
+ defaultValues: control._defaultValues,
15013
+ }));
14844
15014
  const _localProxyFormState = React.useRef({
14845
15015
  isDirty: false,
14846
15016
  isLoading: false,
@@ -14860,6 +15030,7 @@ function useFormState(props) {
14860
15030
  updateFormState({
14861
15031
  ...control._formState,
14862
15032
  ...formState,
15033
+ defaultValues: control._defaultValues,
14863
15034
  });
14864
15035
  },
14865
15036
  }), [name, disabled, exact]);
@@ -14883,7 +15054,10 @@ var generateWatchOutput = (names, _names, formValues, isGlobal, defaultValue) =>
14883
15054
 
14884
15055
  var isPrimitive = (value) => isNullOrUndefined(value) || !isObjectType(value);
14885
15056
 
14886
- function deepEqual(object1, object2, _internal_visited = new WeakSet()) {
15057
+ function deepEqual(object1, object2, visited = new WeakSet()) {
15058
+ if (object1 === object2) {
15059
+ return true;
15060
+ }
14887
15061
  if (isPrimitive(object1) || isPrimitive(object2)) {
14888
15062
  return Object.is(object1, object2);
14889
15063
  }
@@ -14895,22 +15069,22 @@ function deepEqual(object1, object2, _internal_visited = new WeakSet()) {
14895
15069
  if (keys1.length !== keys2.length) {
14896
15070
  return false;
14897
15071
  }
14898
- if (_internal_visited.has(object1) || _internal_visited.has(object2)) {
15072
+ if (visited.has(object1) || visited.has(object2)) {
14899
15073
  return true;
14900
15074
  }
14901
- _internal_visited.add(object1);
14902
- _internal_visited.add(object2);
15075
+ visited.add(object1);
15076
+ visited.add(object2);
14903
15077
  for (const key of keys1) {
14904
15078
  const val1 = object1[key];
14905
- if (!keys2.includes(key)) {
15079
+ if (!(key in object2)) {
14906
15080
  return false;
14907
15081
  }
14908
15082
  if (key !== 'ref') {
14909
15083
  const val2 = object2[key];
14910
15084
  if ((isDateObject(val1) && isDateObject(val2)) ||
14911
- (isObject(val1) && isObject(val2)) ||
14912
- (Array.isArray(val1) && Array.isArray(val2))
14913
- ? !deepEqual(val1, val2, _internal_visited)
15085
+ ((isObject(val1) || Array.isArray(val1)) &&
15086
+ (isObject(val2) || Array.isArray(val2)))
15087
+ ? !deepEqual(val1, val2, visited)
14914
15088
  : !Object.is(val1, val2)) {
14915
15089
  return false;
14916
15090
  }
@@ -15046,7 +15220,6 @@ function useController(props) {
15046
15220
  exact,
15047
15221
  });
15048
15222
  const _props = React.useRef(props);
15049
- const _previousNameRef = React.useRef(undefined);
15050
15223
  const _registerProps = React.useRef(control.register(name, {
15051
15224
  ...props.rules,
15052
15225
  value,
@@ -15112,10 +15285,6 @@ function useController(props) {
15112
15285
  }), [name, disabled, formState.disabled, onChange, onBlur, ref, value]);
15113
15286
  React.useEffect(() => {
15114
15287
  const _shouldUnregisterField = control._options.shouldUnregister || shouldUnregister;
15115
- const previousName = _previousNameRef.current;
15116
- if (previousName && previousName !== name && !isArrayField) {
15117
- control.unregister(previousName);
15118
- }
15119
15288
  control.register(name, {
15120
15289
  ..._props.current.rules,
15121
15290
  ...(isBoolean(_props.current.disabled)
@@ -15137,7 +15306,6 @@ function useController(props) {
15137
15306
  }
15138
15307
  }
15139
15308
  !isArrayField && control.register(name);
15140
- _previousNameRef.current = name;
15141
15309
  return () => {
15142
15310
  (isArrayField
15143
15311
  ? _shouldUnregisterField && !control._state.action
@@ -15267,43 +15435,46 @@ const useFormContext = () => React.useContext(HookFormContext);
15267
15435
  * ```
15268
15436
  */
15269
15437
  const FormProvider = (props) => {
15270
- const { children, watch, getValues, getFieldState, setError, clearErrors, setValue, trigger, formState, resetField, reset, handleSubmit, unregister, control, register, setFocus, subscribe, } = props;
15271
- return (React.createElement(HookFormContext.Provider, { value: React.useMemo(() => ({
15272
- watch,
15273
- getValues,
15274
- getFieldState,
15275
- setError,
15276
- clearErrors,
15277
- setValue,
15278
- trigger,
15279
- formState,
15280
- resetField,
15281
- reset,
15282
- handleSubmit,
15283
- unregister,
15284
- control,
15285
- register,
15286
- setFocus,
15287
- subscribe,
15288
- }), [
15289
- clearErrors,
15290
- control,
15291
- formState,
15292
- getFieldState,
15293
- getValues,
15294
- handleSubmit,
15295
- register,
15296
- reset,
15297
- resetField,
15298
- setError,
15299
- setFocus,
15300
- setValue,
15301
- subscribe,
15302
- trigger,
15303
- unregister,
15304
- watch,
15305
- ]) },
15306
- React.createElement(HookFormControlContext.Provider, { value: control }, children)));
15438
+ const { children, watch, getValues, getFieldState, setError, clearErrors, setValue, setValues, trigger, formState, resetField, reset, handleSubmit, unregister, control, register, setFocus, subscribe, } = props;
15439
+ const memoizedValue = React.useMemo(() => ({
15440
+ watch,
15441
+ getValues,
15442
+ getFieldState,
15443
+ setError,
15444
+ clearErrors,
15445
+ setValue,
15446
+ setValues,
15447
+ trigger,
15448
+ formState,
15449
+ resetField,
15450
+ reset,
15451
+ handleSubmit,
15452
+ unregister,
15453
+ control,
15454
+ register,
15455
+ setFocus,
15456
+ subscribe,
15457
+ }), [
15458
+ clearErrors,
15459
+ control,
15460
+ formState,
15461
+ getFieldState,
15462
+ getValues,
15463
+ handleSubmit,
15464
+ register,
15465
+ reset,
15466
+ resetField,
15467
+ setError,
15468
+ setFocus,
15469
+ setValue,
15470
+ setValues,
15471
+ subscribe,
15472
+ trigger,
15473
+ unregister,
15474
+ watch,
15475
+ ]);
15476
+ return (React.createElement(HookFormContext.Provider, { value: memoizedValue },
15477
+ React.createElement(HookFormControlContext.Provider, { value: memoizedValue.control }, children)));
15307
15478
  };
15308
15479
 
15309
15480
  function withForm(Component) {
@@ -15876,7 +16047,7 @@ const DialogOverlay = (_a) => {
15876
16047
  DialogOverlay.displayName = Overlay.displayName;
15877
16048
  const DialogContent = (_a) => {
15878
16049
  var { className, fullScreen, children, dataTestId = 'dialog-content' } = _a, props = __rest(_a, ["className", "fullScreen", "children", "dataTestId"]);
15879
- return (jsxRuntimeExports.jsxs(DialogPortal, { children: [jsxRuntimeExports.jsx(DialogOverlay, { dataTestId: `${dataTestId}-overlay` }), jsxRuntimeExports.jsxs(Content$1, Object.assign({ className: cn('bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%]', 'fixed top-[50%] left-[50%] z-50 flex max-h-[95dvh] w-full max-w-lg translate-x-[-50%] translate-y-[-50%] flex-col gap-4 rounded-lg border p-4 shadow-lg duration-200', className, fullScreen && 'h-full max-h-none w-full max-w-none rounded-none'), "aria-describedby": "dialog-content", "data-testid": dataTestId }, props, { children: [children, jsxRuntimeExports.jsx(Close$1, { className: "ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-2 right-2 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none", asChild: true, "data-testid": `${dataTestId}-close-button`, children: jsxRuntimeExports.jsx(Button, { prefixIcon: X, size: "small", variant: "text" }) }), jsxRuntimeExports.jsx(Description$1, { className: "hidden" })] }))] }));
16050
+ return (jsxRuntimeExports.jsxs(DialogPortal, { children: [jsxRuntimeExports.jsx(DialogOverlay, { dataTestId: `${dataTestId}-overlay` }), jsxRuntimeExports.jsxs(Content$1, Object.assign({ className: cn('bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%]', 'fixed top-[50%] left-[50%] z-50 flex max-h-[95dvh] w-full max-w-lg translate-x-[-50%] translate-y-[-50%] flex-col gap-4 rounded-lg border p-4 shadow-lg duration-200', className, fullScreen && 'h-full max-h-none w-full max-w-none rounded-none'), "aria-describedby": "dialog-content", "data-testid": dataTestId }, props, { children: [children, jsxRuntimeExports.jsx(Close$1, { className: "ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-2 right-2 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none", asChild: true, "data-testid": `${dataTestId}-close-button`, children: jsxRuntimeExports.jsx(Button, { prefixIcon: X$1, size: "small", variant: "text" }) }), jsxRuntimeExports.jsx(Description$1, { className: "hidden" })] }))] }));
15880
16051
  };
15881
16052
  DialogContent.displayName = Content$1.displayName;
15882
16053
  const DialogHeader = (_a) => {
@@ -15998,7 +16169,7 @@ const sheetVariants = cva('fixed flex flex-col z-50 gap-4 bg-background p-4 shad
15998
16169
  });
15999
16170
  const SheetContent = (_a) => {
16000
16171
  var { side = 'right', className, children, dataTestId = 'sheet-content' } = _a, props = __rest(_a, ["side", "className", "children", "dataTestId"]);
16001
- return (jsxRuntimeExports.jsxs(SheetPortal, { children: [jsxRuntimeExports.jsx(SheetOverlay, { dataTestId: `${dataTestId}-overlay` }), jsxRuntimeExports.jsxs(Content$1, Object.assign({ className: cn(sheetVariants({ side }), className), "data-testid": dataTestId }, props, { children: [children, jsxRuntimeExports.jsx(Close$1, { className: "ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-2 right-2 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none", asChild: true, "data-testid": `${dataTestId}-close-button`, children: jsxRuntimeExports.jsx(Button, { prefixIcon: X, size: "small", variant: "text" }) }), jsxRuntimeExports.jsx(Description$1, { className: "hidden" })] }))] }));
16172
+ return (jsxRuntimeExports.jsxs(SheetPortal, { children: [jsxRuntimeExports.jsx(SheetOverlay, { dataTestId: `${dataTestId}-overlay` }), jsxRuntimeExports.jsxs(Content$1, Object.assign({ className: cn(sheetVariants({ side }), className), "data-testid": dataTestId }, props, { children: [children, jsxRuntimeExports.jsx(Close$1, { className: "ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-2 right-2 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none", asChild: true, "data-testid": `${dataTestId}-close-button`, children: jsxRuntimeExports.jsx(Button, { prefixIcon: X$1, size: "small", variant: "text" }) }), jsxRuntimeExports.jsx(Description$1, { className: "hidden" })] }))] }));
16002
16173
  };
16003
16174
  SheetContent.displayName = Content$1.displayName;
16004
16175
  const SheetHeader = (_a) => {
@@ -20656,6 +20827,7 @@ function ListSorterDialog({ className, open, title, items, idResolver, renderer,
20656
20827
  const [loading, setLoading] = reactExports.useState(false);
20657
20828
  reactExports.useEffect(() => {
20658
20829
  if (!open) {
20830
+ // eslint-disable-next-line react-hooks/set-state-in-effect
20659
20831
  setSortedItems(structuredClone(items));
20660
20832
  }
20661
20833
  }, [items, open]);
@@ -21433,181 +21605,21 @@ const Popover = Object.assign($Popover, {
21433
21605
  Content: PopoverContent,
21434
21606
  });
21435
21607
 
21436
- function z(e, t = "Assertion error") {
21437
- if (!e)
21438
- throw Error(t);
21439
- }
21440
- function B({
21441
- group: e
21442
- }) {
21443
- const { orientation: t, panels: n } = e;
21444
- return n.reduce((o, i) => (o += t === "horizontal" ? i.element.offsetWidth : i.element.offsetHeight, o), 0);
21445
- }
21446
- function de(e, t) {
21447
- return Array.from(t).sort(
21448
- e === "horizontal" ? st : at
21449
- );
21450
- }
21451
- function st(e, t) {
21452
- const n = e.element.offsetLeft - t.element.offsetLeft;
21453
- return n !== 0 ? n : e.element.offsetWidth - t.element.offsetWidth;
21454
- }
21455
- function at(e, t) {
21456
- const n = e.element.offsetTop - t.element.offsetTop;
21457
- return n !== 0 ? n : e.element.offsetHeight - t.element.offsetHeight;
21458
- }
21459
- function Ne(e) {
21460
- return e !== null && typeof e == "object" && "nodeType" in e && e.nodeType === Node.ELEMENT_NODE;
21461
- }
21462
- function Fe(e, t) {
21463
- return {
21464
- x: e.x >= t.left && e.x <= t.right ? 0 : Math.min(
21465
- Math.abs(e.x - t.left),
21466
- Math.abs(e.x - t.right)
21467
- ),
21468
- y: e.y >= t.top && e.y <= t.bottom ? 0 : Math.min(
21469
- Math.abs(e.y - t.top),
21470
- Math.abs(e.y - t.bottom)
21471
- )
21472
- };
21473
- }
21474
- function lt({
21475
- orientation: e,
21476
- rects: t,
21477
- targetRect: n
21478
- }) {
21479
- const o = {
21480
- x: n.x + n.width / 2,
21481
- y: n.y + n.height / 2
21482
- };
21483
- let i, r = Number.MAX_VALUE;
21484
- for (const l of t) {
21485
- const { x: s, y: a } = Fe(o, l), u = e === "horizontal" ? s : a;
21486
- u < r && (r = u, i = l);
21487
- }
21488
- return z(i, "No rect found"), i;
21489
- }
21490
- let ie;
21491
- function ut() {
21492
- return ie === void 0 && (typeof matchMedia == "function" ? ie = !!matchMedia("(pointer:coarse)").matches : ie = false), ie;
21493
- }
21494
- function $e(e) {
21495
- const { element: t, orientation: n, panels: o, separators: i } = e, r = de(
21496
- n,
21497
- Array.from(t.children).filter(Ne).map((c) => ({ element: c }))
21498
- ).map(({ element: c }) => c), l = [];
21499
- let s = false, a, u = [];
21500
- for (const c of r)
21501
- if (c.hasAttribute("data-panel")) {
21502
- const h = o.find(
21503
- (y) => y.element === c
21504
- );
21505
- if (h) {
21506
- if (a) {
21507
- const y = a.element.getBoundingClientRect(), m = c.getBoundingClientRect();
21508
- let f;
21509
- if (s) {
21510
- const d = n === "horizontal" ? new DOMRect(y.right, y.top, 0, y.height) : new DOMRect(
21511
- y.left,
21512
- y.bottom,
21513
- y.width,
21514
- 0
21515
- ), p = n === "horizontal" ? new DOMRect(m.left, m.top, 0, m.height) : new DOMRect(m.left, m.top, m.width, 0);
21516
- switch (u.length) {
21517
- case 0: {
21518
- f = [
21519
- d,
21520
- p
21521
- ];
21522
- break;
21523
- }
21524
- case 1: {
21525
- const g = u[0], v = lt({
21526
- orientation: n,
21527
- rects: [y, m],
21528
- targetRect: g.element.getBoundingClientRect()
21529
- });
21530
- f = [
21531
- g,
21532
- v === y ? p : d
21533
- ];
21534
- break;
21535
- }
21536
- default: {
21537
- f = u;
21538
- break;
21539
- }
21540
- }
21541
- } else
21542
- u.length ? f = u : f = [
21543
- n === "horizontal" ? new DOMRect(
21544
- y.right,
21545
- m.top,
21546
- m.left - y.right,
21547
- m.height
21548
- ) : new DOMRect(
21549
- m.left,
21550
- y.bottom,
21551
- m.width,
21552
- m.top - y.bottom
21553
- )
21554
- ];
21555
- for (const d of f) {
21556
- let p = "width" in d ? d : d.element.getBoundingClientRect();
21557
- const g = ut() ? e.resizeTargetMinimumSize.coarse : e.resizeTargetMinimumSize.fine;
21558
- if (p.width < g) {
21559
- const v = g - p.width;
21560
- p = new DOMRect(
21561
- p.x - v / 2,
21562
- p.y,
21563
- p.width + v,
21564
- p.height
21565
- );
21566
- }
21567
- if (p.height < g) {
21568
- const v = g - p.height;
21569
- p = new DOMRect(
21570
- p.x,
21571
- p.y - v / 2,
21572
- p.width,
21573
- p.height + v
21574
- );
21575
- }
21576
- l.push({
21577
- group: e,
21578
- groupSize: B({ group: e }),
21579
- panels: [a, h],
21580
- separator: "width" in d ? void 0 : d,
21581
- rect: p
21582
- });
21583
- }
21584
- }
21585
- s = false, a = h, u = [];
21586
- }
21587
- } else if (c.hasAttribute("data-separator")) {
21588
- const h = i.find(
21589
- (y) => y.element === c
21590
- );
21591
- h ? u.push(h) : (a = void 0, u = []);
21592
- } else
21593
- s = true;
21594
- return l;
21595
- }
21596
- function ct(e, t) {
21608
+ function gt(e, t) {
21597
21609
  const n = getComputedStyle(e), o = parseFloat(n.fontSize);
21598
21610
  return t * o;
21599
21611
  }
21600
- function ft(e, t) {
21612
+ function yt(e, t) {
21601
21613
  const n = getComputedStyle(e.ownerDocument.body), o = parseFloat(n.fontSize);
21602
21614
  return t * o;
21603
21615
  }
21604
- function dt(e) {
21616
+ function St(e) {
21605
21617
  return e / 100 * window.innerHeight;
21606
21618
  }
21607
- function pt(e) {
21619
+ function vt(e) {
21608
21620
  return e / 100 * window.innerWidth;
21609
21621
  }
21610
- function ht(e) {
21622
+ function bt(e) {
21611
21623
  switch (typeof e) {
21612
21624
  case "number":
21613
21625
  return [e, "px"];
@@ -21617,13 +21629,13 @@ function ht(e) {
21617
21629
  }
21618
21630
  }
21619
21631
  }
21620
- function re({
21632
+ function ie({
21621
21633
  groupSize: e,
21622
21634
  panelElement: t,
21623
21635
  styleProp: n
21624
21636
  }) {
21625
21637
  let o;
21626
- const [i, r] = ht(n);
21638
+ const [i, r] = bt(n);
21627
21639
  switch (r) {
21628
21640
  case "%": {
21629
21641
  o = i / 100 * e;
@@ -21634,85 +21646,265 @@ function re({
21634
21646
  break;
21635
21647
  }
21636
21648
  case "rem": {
21637
- o = ft(t, i);
21649
+ o = yt(t, i);
21638
21650
  break;
21639
21651
  }
21640
21652
  case "em": {
21641
- o = ct(t, i);
21653
+ o = gt(t, i);
21642
21654
  break;
21643
21655
  }
21644
21656
  case "vh": {
21645
- o = dt(i);
21657
+ o = St(i);
21646
21658
  break;
21647
21659
  }
21648
21660
  case "vw": {
21649
- o = pt(i);
21661
+ o = vt(i);
21650
21662
  break;
21651
21663
  }
21652
21664
  }
21653
21665
  return o;
21654
21666
  }
21655
- function D(e) {
21667
+ function O(e) {
21656
21668
  return parseFloat(e.toFixed(3));
21657
21669
  }
21670
+ function ne({
21671
+ group: e
21672
+ }) {
21673
+ const { orientation: t, panels: n } = e;
21674
+ return n.reduce((o, i) => (o += t === "horizontal" ? i.element.offsetWidth : i.element.offsetHeight, o), 0);
21675
+ }
21658
21676
  function ve(e) {
21659
- const { panels: t } = e, n = B({ group: e });
21677
+ const { panels: t } = e, n = ne({ group: e });
21660
21678
  return n === 0 ? t.map((o) => ({
21679
+ groupResizeBehavior: o.panelConstraints.groupResizeBehavior,
21661
21680
  collapsedSize: 0,
21662
21681
  collapsible: o.panelConstraints.collapsible === true,
21663
21682
  defaultSize: void 0,
21683
+ disabled: o.panelConstraints.disabled,
21664
21684
  minSize: 0,
21665
21685
  maxSize: 100,
21666
21686
  panelId: o.id
21667
21687
  })) : t.map((o) => {
21668
21688
  const { element: i, panelConstraints: r } = o;
21669
- let l = 0;
21689
+ let f = 0;
21670
21690
  if (r.collapsedSize !== void 0) {
21671
- const c = re({
21691
+ const u = ie({
21672
21692
  groupSize: n,
21673
21693
  panelElement: i,
21674
21694
  styleProp: r.collapsedSize
21675
21695
  });
21676
- l = D(c / n * 100);
21696
+ f = O(u / n * 100);
21677
21697
  }
21678
- let s;
21698
+ let a;
21679
21699
  if (r.defaultSize !== void 0) {
21680
- const c = re({
21700
+ const u = ie({
21681
21701
  groupSize: n,
21682
21702
  panelElement: i,
21683
21703
  styleProp: r.defaultSize
21684
21704
  });
21685
- s = D(c / n * 100);
21705
+ a = O(u / n * 100);
21686
21706
  }
21687
- let a = 0;
21707
+ let s = 0;
21688
21708
  if (r.minSize !== void 0) {
21689
- const c = re({
21709
+ const u = ie({
21690
21710
  groupSize: n,
21691
21711
  panelElement: i,
21692
21712
  styleProp: r.minSize
21693
21713
  });
21694
- a = D(c / n * 100);
21714
+ s = O(u / n * 100);
21695
21715
  }
21696
- let u = 100;
21716
+ let l = 100;
21697
21717
  if (r.maxSize !== void 0) {
21698
- const c = re({
21718
+ const u = ie({
21699
21719
  groupSize: n,
21700
21720
  panelElement: i,
21701
21721
  styleProp: r.maxSize
21702
21722
  });
21703
- u = D(c / n * 100);
21723
+ l = O(u / n * 100);
21704
21724
  }
21705
21725
  return {
21706
- collapsedSize: l,
21726
+ groupResizeBehavior: r.groupResizeBehavior,
21727
+ collapsedSize: f,
21707
21728
  collapsible: r.collapsible === true,
21708
- defaultSize: s,
21709
- minSize: a,
21710
- maxSize: u,
21729
+ defaultSize: a,
21730
+ disabled: r.disabled,
21731
+ minSize: s,
21732
+ maxSize: l,
21711
21733
  panelId: o.id
21712
21734
  };
21713
21735
  });
21714
21736
  }
21715
- class mt {
21737
+ function C(e, t = "Assertion error") {
21738
+ if (!e)
21739
+ throw Error(t);
21740
+ }
21741
+ function be(e, t) {
21742
+ return Array.from(t).sort(
21743
+ e === "horizontal" ? zt : xt
21744
+ );
21745
+ }
21746
+ function zt(e, t) {
21747
+ const n = e.element.offsetLeft - t.element.offsetLeft;
21748
+ return n !== 0 ? n : e.element.offsetWidth - t.element.offsetWidth;
21749
+ }
21750
+ function xt(e, t) {
21751
+ const n = e.element.offsetTop - t.element.offsetTop;
21752
+ return n !== 0 ? n : e.element.offsetHeight - t.element.offsetHeight;
21753
+ }
21754
+ function qe(e) {
21755
+ return e !== null && typeof e == "object" && "nodeType" in e && e.nodeType === Node.ELEMENT_NODE;
21756
+ }
21757
+ function Ye(e, t) {
21758
+ return {
21759
+ x: e.x >= t.left && e.x <= t.right ? 0 : Math.min(
21760
+ Math.abs(e.x - t.left),
21761
+ Math.abs(e.x - t.right)
21762
+ ),
21763
+ y: e.y >= t.top && e.y <= t.bottom ? 0 : Math.min(
21764
+ Math.abs(e.y - t.top),
21765
+ Math.abs(e.y - t.bottom)
21766
+ )
21767
+ };
21768
+ }
21769
+ function Pt({
21770
+ orientation: e,
21771
+ rects: t,
21772
+ targetRect: n
21773
+ }) {
21774
+ const o = {
21775
+ x: n.x + n.width / 2,
21776
+ y: n.y + n.height / 2
21777
+ };
21778
+ let i, r = Number.MAX_VALUE;
21779
+ for (const f of t) {
21780
+ const { x: a, y: s } = Ye(o, f), l = e === "horizontal" ? a : s;
21781
+ l < r && (r = l, i = f);
21782
+ }
21783
+ return C(i, "No rect found"), i;
21784
+ }
21785
+ let fe;
21786
+ function wt() {
21787
+ return fe === void 0 && (typeof matchMedia == "function" ? fe = !!matchMedia("(pointer:coarse)").matches : fe = false), fe;
21788
+ }
21789
+ function Je(e) {
21790
+ const { element: t, orientation: n, panels: o, separators: i } = e, r = be(
21791
+ n,
21792
+ Array.from(t.children).filter(qe).map((z) => ({ element: z }))
21793
+ ).map(({ element: z }) => z), f = [];
21794
+ let a = false, s = false, l = -1, u = -1, h = 0, d, S = [];
21795
+ {
21796
+ let z = -1;
21797
+ for (const c of r)
21798
+ c.hasAttribute("data-panel") && (z++, c.hasAttribute("data-disabled") || (h++, l === -1 && (l = z), u = z));
21799
+ }
21800
+ if (h > 1) {
21801
+ let z = -1;
21802
+ for (const c of r)
21803
+ if (c.hasAttribute("data-panel")) {
21804
+ z++;
21805
+ const p = o.find(
21806
+ (m) => m.element === c
21807
+ );
21808
+ if (p) {
21809
+ if (d) {
21810
+ const m = d.element.getBoundingClientRect(), v = c.getBoundingClientRect();
21811
+ let b;
21812
+ if (s) {
21813
+ const y = n === "horizontal" ? new DOMRect(
21814
+ m.right,
21815
+ m.top,
21816
+ 0,
21817
+ m.height
21818
+ ) : new DOMRect(
21819
+ m.left,
21820
+ m.bottom,
21821
+ m.width,
21822
+ 0
21823
+ ), g = n === "horizontal" ? new DOMRect(v.left, v.top, 0, v.height) : new DOMRect(v.left, v.top, v.width, 0);
21824
+ switch (S.length) {
21825
+ case 0: {
21826
+ b = [
21827
+ y,
21828
+ g
21829
+ ];
21830
+ break;
21831
+ }
21832
+ case 1: {
21833
+ const P = S[0], M = Pt({
21834
+ orientation: n,
21835
+ rects: [m, v],
21836
+ targetRect: P.element.getBoundingClientRect()
21837
+ });
21838
+ b = [
21839
+ P,
21840
+ M === m ? g : y
21841
+ ];
21842
+ break;
21843
+ }
21844
+ default: {
21845
+ b = S;
21846
+ break;
21847
+ }
21848
+ }
21849
+ } else
21850
+ S.length ? b = S : b = [
21851
+ n === "horizontal" ? new DOMRect(
21852
+ m.right,
21853
+ v.top,
21854
+ v.left - m.right,
21855
+ v.height
21856
+ ) : new DOMRect(
21857
+ v.left,
21858
+ m.bottom,
21859
+ v.width,
21860
+ v.top - m.bottom
21861
+ )
21862
+ ];
21863
+ for (const y of b) {
21864
+ let g = "width" in y ? y : y.element.getBoundingClientRect();
21865
+ const P = wt() ? e.resizeTargetMinimumSize.coarse : e.resizeTargetMinimumSize.fine;
21866
+ if (g.width < P) {
21867
+ const w = P - g.width;
21868
+ g = new DOMRect(
21869
+ g.x - w / 2,
21870
+ g.y,
21871
+ g.width + w,
21872
+ g.height
21873
+ );
21874
+ }
21875
+ if (g.height < P) {
21876
+ const w = P - g.height;
21877
+ g = new DOMRect(
21878
+ g.x,
21879
+ g.y - w / 2,
21880
+ g.width,
21881
+ g.height + w
21882
+ );
21883
+ }
21884
+ const M = z <= l || z > u;
21885
+ !a && !M && f.push({
21886
+ group: e,
21887
+ groupSize: ne({ group: e }),
21888
+ panels: [d, p],
21889
+ separator: "width" in y ? void 0 : y,
21890
+ rect: g
21891
+ }), a = false;
21892
+ }
21893
+ }
21894
+ s = false, d = p, S = [];
21895
+ }
21896
+ } else if (c.hasAttribute("data-separator")) {
21897
+ c.ariaDisabled !== null && (a = true);
21898
+ const p = i.find(
21899
+ (m) => m.element === c
21900
+ );
21901
+ p ? S.push(p) : (d = void 0, S = []);
21902
+ } else
21903
+ s = true;
21904
+ }
21905
+ return f;
21906
+ }
21907
+ class Ze {
21716
21908
  #e = {};
21717
21909
  addListener(t, n) {
21718
21910
  const o = this.#e[t];
@@ -21727,13 +21919,13 @@ class mt {
21727
21919
  o[0].call(null, n);
21728
21920
  else {
21729
21921
  let i = false, r = null;
21730
- const l = Array.from(o);
21731
- for (let s = 0; s < l.length; s++) {
21732
- const a = l[s];
21922
+ const f = Array.from(o);
21923
+ for (let a = 0; a < f.length; a++) {
21924
+ const s = f[a];
21733
21925
  try {
21734
- a.call(null, n);
21735
- } catch (u) {
21736
- r === null && (i = true, r = u);
21926
+ s.call(null, n);
21927
+ } catch (l) {
21928
+ r === null && (i = true, r = l);
21737
21929
  }
21738
21930
  }
21739
21931
  if (i)
@@ -21751,60 +21943,53 @@ class mt {
21751
21943
  }
21752
21944
  }
21753
21945
  }
21754
- function R(e, t, n = 0) {
21755
- return Math.abs(D(e) - D(t)) <= n;
21946
+ let F = /* @__PURE__ */ new Map();
21947
+ const Qe = new Ze();
21948
+ function Lt(e) {
21949
+ F = new Map(F), F.delete(e);
21756
21950
  }
21757
- let I = {
21758
- cursorFlags: 0,
21759
- interactionState: {
21760
- state: "inactive"
21761
- },
21762
- mountedGroups: /* @__PURE__ */ new Map()
21763
- };
21764
- const N = new mt();
21765
- function G() {
21766
- return I;
21767
- }
21768
- function M(e) {
21769
- const t = typeof e == "function" ? e(I) : e;
21770
- if (I === t)
21771
- return I;
21772
- const n = I;
21773
- return I = {
21774
- ...I,
21775
- ...t
21776
- }, t.cursorFlags !== void 0 && N.emit("cursorFlagsChange", I.cursorFlags), t.interactionState !== void 0 && N.emit("interactionStateChange", I.interactionState), t.mountedGroups !== void 0 && (I.mountedGroups.forEach((o, i) => {
21777
- o.derivedPanelConstraints.forEach((r) => {
21778
- if (r.collapsible) {
21779
- const { layout: l } = n.mountedGroups.get(i) ?? {};
21780
- if (l) {
21781
- const s = R(
21782
- r.collapsedSize,
21783
- o.layout[r.panelId]
21784
- ), a = R(
21785
- r.collapsedSize,
21786
- l[r.panelId]
21787
- );
21788
- s && !a && (i.inMemoryLastExpandedPanelSizes[r.panelId] = l[r.panelId]);
21789
- }
21790
- }
21791
- });
21792
- }), N.emit("mountedGroupsChange", I.mountedGroups)), I;
21951
+ function ke(e, t) {
21952
+ for (const [n] of F)
21953
+ if (n.id === e)
21954
+ return n;
21955
+ }
21956
+ function H(e, t) {
21957
+ for (const [n, o] of F)
21958
+ if (n.id === e)
21959
+ return o;
21960
+ if (t)
21961
+ throw Error(`Could not find data for Group with id ${e}`);
21962
+ }
21963
+ function X() {
21964
+ return F;
21965
+ }
21966
+ function ze(e, t) {
21967
+ return Qe.addListener("groupChange", (n) => {
21968
+ n.group.id === e && t(n);
21969
+ });
21970
+ }
21971
+ function $(e, t) {
21972
+ const n = F.get(e);
21973
+ F = new Map(F), F.set(e, t), Qe.emit("groupChange", {
21974
+ group: e,
21975
+ prev: n,
21976
+ next: t
21977
+ });
21793
21978
  }
21794
- function gt(e, t, n) {
21979
+ function Ct(e, t, n) {
21795
21980
  let o, i = {
21796
21981
  x: 1 / 0,
21797
21982
  y: 1 / 0
21798
21983
  };
21799
21984
  for (const r of t) {
21800
- const l = Fe(n, r.rect);
21985
+ const f = Ye(n, r.rect);
21801
21986
  switch (e) {
21802
21987
  case "horizontal": {
21803
- l.x <= i.x && (o = r, i = l);
21988
+ f.x <= i.x && (o = r, i = f);
21804
21989
  break;
21805
21990
  }
21806
21991
  case "vertical": {
21807
- l.y <= i.y && (o = r, i = l);
21992
+ f.y <= i.y && (o = r, i = f);
21808
21993
  break;
21809
21994
  }
21810
21995
  }
@@ -21814,109 +21999,109 @@ function gt(e, t, n) {
21814
21999
  hitRegion: o
21815
22000
  } : void 0;
21816
22001
  }
21817
- function yt(e) {
22002
+ function Rt(e) {
21818
22003
  return e !== null && typeof e == "object" && "nodeType" in e && e.nodeType === Node.DOCUMENT_FRAGMENT_NODE;
21819
22004
  }
21820
- function St(e, t) {
22005
+ function Mt(e, t) {
21821
22006
  if (e === t) throw new Error("Cannot compare node with itself");
21822
22007
  const n = {
21823
- a: be(e),
21824
- b: be(t)
22008
+ a: Oe(e),
22009
+ b: Oe(t)
21825
22010
  };
21826
22011
  let o;
21827
22012
  for (; n.a.at(-1) === n.b.at(-1); )
21828
22013
  o = n.a.pop(), n.b.pop();
21829
- z(
22014
+ C(
21830
22015
  o,
21831
22016
  "Stacking order can only be calculated for elements with a common ancestor"
21832
22017
  );
21833
22018
  const i = {
21834
- a: ze(xe(n.a)),
21835
- b: ze(xe(n.b))
22019
+ a: De(Ie(n.a)),
22020
+ b: De(Ie(n.b))
21836
22021
  };
21837
22022
  if (i.a === i.b) {
21838
- const r = o.childNodes, l = {
22023
+ const r = o.childNodes, f = {
21839
22024
  a: n.a.at(-1),
21840
22025
  b: n.b.at(-1)
21841
22026
  };
21842
- let s = r.length;
21843
- for (; s--; ) {
21844
- const a = r[s];
21845
- if (a === l.a) return 1;
21846
- if (a === l.b) return -1;
22027
+ let a = r.length;
22028
+ for (; a--; ) {
22029
+ const s = r[a];
22030
+ if (s === f.a) return 1;
22031
+ if (s === f.b) return -1;
21847
22032
  }
21848
22033
  }
21849
22034
  return Math.sign(i.a - i.b);
21850
22035
  }
21851
- const vt = /\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;
21852
- function xt(e) {
21853
- const t = getComputedStyle(He(e) ?? e).display;
22036
+ const Et = /\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;
22037
+ function kt(e) {
22038
+ const t = getComputedStyle(et(e) ?? e).display;
21854
22039
  return t === "flex" || t === "inline-flex";
21855
22040
  }
21856
- function zt(e) {
22041
+ function It(e) {
21857
22042
  const t = getComputedStyle(e);
21858
- return !!(t.position === "fixed" || t.zIndex !== "auto" && (t.position !== "static" || xt(e)) || +t.opacity < 1 || "transform" in t && t.transform !== "none" || "webkitTransform" in t && t.webkitTransform !== "none" || "mixBlendMode" in t && t.mixBlendMode !== "normal" || "filter" in t && t.filter !== "none" || "webkitFilter" in t && t.webkitFilter !== "none" || "isolation" in t && t.isolation === "isolate" || vt.test(t.willChange) || t.webkitOverflowScrolling === "touch");
22043
+ return !!(t.position === "fixed" || t.zIndex !== "auto" && (t.position !== "static" || kt(e)) || +t.opacity < 1 || "transform" in t && t.transform !== "none" || "webkitTransform" in t && t.webkitTransform !== "none" || "mixBlendMode" in t && t.mixBlendMode !== "normal" || "filter" in t && t.filter !== "none" || "webkitFilter" in t && t.webkitFilter !== "none" || "isolation" in t && t.isolation === "isolate" || Et.test(t.willChange) || t.webkitOverflowScrolling === "touch");
21859
22044
  }
21860
- function xe(e) {
22045
+ function Ie(e) {
21861
22046
  let t = e.length;
21862
22047
  for (; t--; ) {
21863
22048
  const n = e[t];
21864
- if (z(n, "Missing node"), zt(n)) return n;
22049
+ if (C(n, "Missing node"), It(n)) return n;
21865
22050
  }
21866
22051
  return null;
21867
22052
  }
21868
- function ze(e) {
22053
+ function De(e) {
21869
22054
  return e && Number(getComputedStyle(e).zIndex) || 0;
21870
22055
  }
21871
- function be(e) {
22056
+ function Oe(e) {
21872
22057
  const t = [];
21873
22058
  for (; e; )
21874
- t.push(e), e = He(e);
22059
+ t.push(e), e = et(e);
21875
22060
  return t;
21876
22061
  }
21877
- function He(e) {
22062
+ function et(e) {
21878
22063
  const { parentNode: t } = e;
21879
- return yt(t) ? t.host : t;
22064
+ return Rt(t) ? t.host : t;
21880
22065
  }
21881
- function bt(e, t) {
22066
+ function Dt(e, t) {
21882
22067
  return e.x < t.x + t.width && e.x + e.width > t.x && e.y < t.y + t.height && e.y + e.height > t.y;
21883
22068
  }
21884
- function wt({
22069
+ function Ot({
21885
22070
  groupElement: e,
21886
22071
  hitRegion: t,
21887
22072
  pointerEventTarget: n
21888
22073
  }) {
21889
- if (!Ne(n) || n.contains(e) || e.contains(n))
22074
+ if (!qe(n) || n.contains(e) || e.contains(n))
21890
22075
  return true;
21891
- if (St(n, e) > 0) {
22076
+ if (Mt(n, e) > 0) {
21892
22077
  let o = n;
21893
22078
  for (; o; ) {
21894
22079
  if (o.contains(e))
21895
22080
  return true;
21896
- if (bt(o.getBoundingClientRect(), t))
22081
+ if (Dt(o.getBoundingClientRect(), t))
21897
22082
  return false;
21898
22083
  o = o.parentElement;
21899
22084
  }
21900
22085
  }
21901
22086
  return true;
21902
22087
  }
21903
- function pe(e, t) {
22088
+ function xe(e, t) {
21904
22089
  const n = [];
21905
22090
  return t.forEach((o, i) => {
21906
22091
  if (i.disabled)
21907
22092
  return;
21908
- const r = $e(i), l = gt(i.orientation, r, {
22093
+ const r = Je(i), f = Ct(i.orientation, r, {
21909
22094
  x: e.clientX,
21910
22095
  y: e.clientY
21911
22096
  });
21912
- l && l.distance.x <= 0 && l.distance.y <= 0 && wt({
22097
+ f && f.distance.x <= 0 && f.distance.y <= 0 && Ot({
21913
22098
  groupElement: i.element,
21914
- hitRegion: l.hitRegion.rect,
22099
+ hitRegion: f.hitRegion.rect,
21915
22100
  pointerEventTarget: e.target
21916
- }) && n.push(l.hitRegion);
22101
+ }) && n.push(f.hitRegion);
21917
22102
  }), n;
21918
22103
  }
21919
- function Lt(e, t) {
22104
+ function Tt(e, t) {
21920
22105
  if (e.length !== t.length)
21921
22106
  return false;
21922
22107
  for (let n = 0; n < e.length; n++)
@@ -21924,28 +22109,36 @@ function Lt(e, t) {
21924
22109
  return false;
21925
22110
  return true;
21926
22111
  }
21927
- function ee(e, t) {
21928
- return R(e, t) ? 0 : e > t ? 1 : -1;
22112
+ function I(e, t, n = 0) {
22113
+ return Math.abs(O(e) - O(t)) <= n;
22114
+ }
22115
+ function A(e, t) {
22116
+ return I(e, t) ? 0 : e > t ? 1 : -1;
21929
22117
  }
21930
- function W({
21931
- panelConstraints: e,
21932
- size: t
22118
+ function Z({
22119
+ overrideDisabledPanels: e,
22120
+ panelConstraints: t,
22121
+ prevSize: n,
22122
+ size: o
21933
22123
  }) {
21934
22124
  const {
21935
- collapsedSize: n = 0,
21936
- collapsible: o,
21937
- maxSize: i = 100,
21938
- minSize: r = 0
21939
- } = e;
21940
- if (ee(t, r) < 0)
21941
- if (o) {
21942
- const l = (n + r) / 2;
21943
- ee(t, l) < 0 ? t = n : t = r;
22125
+ collapsedSize: i = 0,
22126
+ collapsible: r,
22127
+ disabled: f,
22128
+ maxSize: a = 100,
22129
+ minSize: s = 0
22130
+ } = t;
22131
+ if (f && !e)
22132
+ return n;
22133
+ if (A(o, s) < 0)
22134
+ if (r) {
22135
+ const l = (i + s) / 2;
22136
+ A(o, l) < 0 ? o = i : o = s;
21944
22137
  } else
21945
- t = r;
21946
- return t = Math.min(i, t), t = D(t), t;
22138
+ o = s;
22139
+ return o = Math.min(a, o), o = O(o), o;
21947
22140
  }
21948
- function te({
22141
+ function le({
21949
22142
  delta: e,
21950
22143
  initialLayout: t,
21951
22144
  panelConstraints: n,
@@ -21953,221 +22146,254 @@ function te({
21953
22146
  prevLayout: i,
21954
22147
  trigger: r
21955
22148
  }) {
21956
- if (R(e, 0))
22149
+ if (I(e, 0))
21957
22150
  return t;
21958
- const l = Object.values(t), s = Object.values(i), a = [...l], [u, c] = o;
21959
- z(u != null, "Invalid first pivot index"), z(c != null, "Invalid second pivot index");
21960
- let h = 0;
22151
+ const f = r === "imperative-api", a = Object.values(t), s = Object.values(i), l = [...a], [u, h] = o;
22152
+ C(u != null, "Invalid first pivot index"), C(h != null, "Invalid second pivot index");
22153
+ let d = 0;
21961
22154
  switch (r) {
21962
22155
  case "keyboard": {
21963
22156
  {
21964
- const f = e < 0 ? c : u, d = n[f];
21965
- z(
21966
- d,
21967
- `Panel constraints not found for index ${f}`
22157
+ const c = e < 0 ? h : u, p = n[c];
22158
+ C(
22159
+ p,
22160
+ `Panel constraints not found for index ${c}`
21968
22161
  );
21969
22162
  const {
21970
- collapsedSize: p = 0,
21971
- collapsible: g,
21972
- minSize: v = 0
21973
- } = d;
21974
- if (g) {
21975
- const x = l[f];
21976
- if (z(
21977
- x != null,
21978
- `Previous layout not found for panel index ${f}`
21979
- ), R(x, p)) {
21980
- const S = v - x;
21981
- ee(S, Math.abs(e)) > 0 && (e = e < 0 ? 0 - S : S);
22163
+ collapsedSize: m = 0,
22164
+ collapsible: v,
22165
+ minSize: b = 0
22166
+ } = p;
22167
+ if (v) {
22168
+ const y = a[c];
22169
+ if (C(
22170
+ y != null,
22171
+ `Previous layout not found for panel index ${c}`
22172
+ ), I(y, m)) {
22173
+ const g = b - y;
22174
+ A(g, Math.abs(e)) > 0 && (e = e < 0 ? 0 - g : g);
21982
22175
  }
21983
22176
  }
21984
22177
  }
21985
22178
  {
21986
- const f = e < 0 ? u : c, d = n[f];
21987
- z(
21988
- d,
21989
- `No panel constraints found for index ${f}`
22179
+ const c = e < 0 ? u : h, p = n[c];
22180
+ C(
22181
+ p,
22182
+ `No panel constraints found for index ${c}`
21990
22183
  );
21991
22184
  const {
21992
- collapsedSize: p = 0,
21993
- collapsible: g,
21994
- minSize: v = 0
21995
- } = d;
21996
- if (g) {
21997
- const x = l[f];
21998
- if (z(
21999
- x != null,
22000
- `Previous layout not found for panel index ${f}`
22001
- ), R(x, v)) {
22002
- const S = x - p;
22003
- ee(S, Math.abs(e)) > 0 && (e = e < 0 ? 0 - S : S);
22185
+ collapsedSize: m = 0,
22186
+ collapsible: v,
22187
+ minSize: b = 0
22188
+ } = p;
22189
+ if (v) {
22190
+ const y = a[c];
22191
+ if (C(
22192
+ y != null,
22193
+ `Previous layout not found for panel index ${c}`
22194
+ ), I(y, b)) {
22195
+ const g = y - m;
22196
+ A(g, Math.abs(e)) > 0 && (e = e < 0 ? 0 - g : g);
22004
22197
  }
22005
22198
  }
22006
22199
  }
22007
22200
  break;
22008
22201
  }
22202
+ default: {
22203
+ const c = e < 0 ? h : u, p = n[c];
22204
+ C(
22205
+ p,
22206
+ `Panel constraints not found for index ${c}`
22207
+ );
22208
+ const m = a[c], { collapsible: v, collapsedSize: b, minSize: y } = p;
22209
+ if (v && A(m, y) < 0)
22210
+ if (e > 0) {
22211
+ const g = y - b, P = g / 2, M = m + e;
22212
+ A(M, y) < 0 && (e = A(e, P) <= 0 ? 0 : g);
22213
+ } else {
22214
+ const g = y - b, P = 100 - g / 2, M = m - e;
22215
+ A(M, y) < 0 && (e = A(100 + e, P) > 0 ? 0 : -g);
22216
+ }
22217
+ break;
22218
+ }
22009
22219
  }
22010
22220
  {
22011
- const f = e < 0 ? 1 : -1;
22012
- let d = e < 0 ? c : u, p = 0;
22221
+ const c = e < 0 ? 1 : -1;
22222
+ let p = e < 0 ? h : u, m = 0;
22013
22223
  for (; ; ) {
22014
- const v = l[d];
22015
- z(
22016
- v != null,
22017
- `Previous layout not found for panel index ${d}`
22224
+ const b = a[p];
22225
+ C(
22226
+ b != null,
22227
+ `Previous layout not found for panel index ${p}`
22018
22228
  );
22019
- const S = W({
22020
- panelConstraints: n[d],
22229
+ const g = Z({
22230
+ overrideDisabledPanels: f,
22231
+ panelConstraints: n[p],
22232
+ prevSize: b,
22021
22233
  size: 100
22022
- }) - v;
22023
- if (p += S, d += f, d < 0 || d >= n.length)
22234
+ }) - b;
22235
+ if (m += g, p += c, p < 0 || p >= n.length)
22024
22236
  break;
22025
22237
  }
22026
- const g = Math.min(Math.abs(e), Math.abs(p));
22027
- e = e < 0 ? 0 - g : g;
22238
+ const v = Math.min(Math.abs(e), Math.abs(m));
22239
+ e = e < 0 ? 0 - v : v;
22028
22240
  }
22029
22241
  {
22030
- let d = e < 0 ? u : c;
22031
- for (; d >= 0 && d < n.length; ) {
22032
- const p = Math.abs(e) - Math.abs(h), g = l[d];
22033
- z(
22034
- g != null,
22035
- `Previous layout not found for panel index ${d}`
22242
+ let p = e < 0 ? u : h;
22243
+ for (; p >= 0 && p < n.length; ) {
22244
+ const m = Math.abs(e) - Math.abs(d), v = a[p];
22245
+ C(
22246
+ v != null,
22247
+ `Previous layout not found for panel index ${p}`
22036
22248
  );
22037
- const v = g - p, x = W({
22038
- panelConstraints: n[d],
22039
- size: v
22249
+ const b = v - m, y = Z({
22250
+ overrideDisabledPanels: f,
22251
+ panelConstraints: n[p],
22252
+ prevSize: v,
22253
+ size: b
22040
22254
  });
22041
- if (!R(g, x) && (h += g - x, a[d] = x, h.toFixed(3).localeCompare(Math.abs(e).toFixed(3), void 0, {
22255
+ if (!I(v, y) && (d += v - y, l[p] = y, d.toFixed(3).localeCompare(Math.abs(e).toFixed(3), void 0, {
22042
22256
  numeric: true
22043
22257
  }) >= 0))
22044
22258
  break;
22045
- e < 0 ? d-- : d++;
22259
+ e < 0 ? p-- : p++;
22046
22260
  }
22047
22261
  }
22048
- if (Lt(s, a))
22262
+ if (Tt(s, l))
22049
22263
  return i;
22050
22264
  {
22051
- const f = e < 0 ? c : u, d = l[f];
22052
- z(
22053
- d != null,
22054
- `Previous layout not found for panel index ${f}`
22265
+ const c = e < 0 ? h : u, p = a[c];
22266
+ C(
22267
+ p != null,
22268
+ `Previous layout not found for panel index ${c}`
22055
22269
  );
22056
- const p = d + h, g = W({
22057
- panelConstraints: n[f],
22058
- size: p
22270
+ const m = p + d, v = Z({
22271
+ overrideDisabledPanels: f,
22272
+ panelConstraints: n[c],
22273
+ prevSize: p,
22274
+ size: m
22059
22275
  });
22060
- if (a[f] = g, !R(g, p)) {
22061
- let v = p - g, S = e < 0 ? c : u;
22062
- for (; S >= 0 && S < n.length; ) {
22063
- const w = a[S];
22064
- z(
22065
- w != null,
22066
- `Previous layout not found for panel index ${S}`
22276
+ if (l[c] = v, !I(v, m)) {
22277
+ let b = m - v, g = e < 0 ? h : u;
22278
+ for (; g >= 0 && g < n.length; ) {
22279
+ const P = l[g];
22280
+ C(
22281
+ P != null,
22282
+ `Previous layout not found for panel index ${g}`
22067
22283
  );
22068
- const C = w + v, P = W({
22069
- panelConstraints: n[S],
22070
- size: C
22284
+ const M = P + b, w = Z({
22285
+ overrideDisabledPanels: f,
22286
+ panelConstraints: n[g],
22287
+ prevSize: P,
22288
+ size: M
22071
22289
  });
22072
- if (R(w, P) || (v -= P - w, a[S] = P), R(v, 0))
22290
+ if (I(P, w) || (b -= w - P, l[g] = w), I(b, 0))
22073
22291
  break;
22074
- e > 0 ? S-- : S++;
22292
+ e > 0 ? g-- : g++;
22075
22293
  }
22076
22294
  }
22077
22295
  }
22078
- const y = Object.values(a).reduce(
22079
- (f, d) => d + f,
22296
+ const S = Object.values(l).reduce(
22297
+ (c, p) => p + c,
22080
22298
  0
22081
22299
  );
22082
- if (!R(y, 100, 0.1))
22300
+ if (!I(S, 100, 0.1))
22083
22301
  return i;
22084
- const m = Object.keys(i);
22085
- return a.reduce((f, d, p) => (f[m[p]] = d, f), {});
22302
+ const z = Object.keys(i);
22303
+ return l.reduce((c, p, m) => (c[z[m]] = p, c), {});
22086
22304
  }
22087
- function F(e, t) {
22305
+ function W(e, t) {
22088
22306
  if (Object.keys(e).length !== Object.keys(t).length)
22089
22307
  return false;
22090
22308
  for (const n in e)
22091
- if (t[n] === void 0 || ee(e[n], t[n]) !== 0)
22309
+ if (t[n] === void 0 || A(e[n], t[n]) !== 0)
22092
22310
  return false;
22093
22311
  return true;
22094
22312
  }
22095
- function $({
22313
+ function U({
22096
22314
  layout: e,
22097
22315
  panelConstraints: t
22098
22316
  }) {
22099
- const o = [...Object.values(e)], i = o.reduce(
22100
- (s, a) => s + a,
22317
+ const n = Object.values(e), o = [...n], i = o.reduce(
22318
+ (a, s) => a + s,
22101
22319
  0
22102
22320
  );
22103
22321
  if (o.length !== t.length)
22104
22322
  throw Error(
22105
- `Invalid ${t.length} panel layout: ${o.map((s) => `${s}%`).join(", ")}`
22323
+ `Invalid ${t.length} panel layout: ${o.map((a) => `${a}%`).join(", ")}`
22106
22324
  );
22107
- if (!R(i, 100) && o.length > 0)
22108
- for (let s = 0; s < t.length; s++) {
22109
- const a = o[s];
22110
- z(a != null, `No layout data found for index ${s}`);
22111
- const u = 100 / i * a;
22112
- o[s] = u;
22325
+ if (!I(i, 100) && o.length > 0)
22326
+ for (let a = 0; a < t.length; a++) {
22327
+ const s = o[a];
22328
+ C(s != null, `No layout data found for index ${a}`);
22329
+ const l = 100 / i * s;
22330
+ o[a] = l;
22113
22331
  }
22114
22332
  let r = 0;
22115
- for (let s = 0; s < t.length; s++) {
22116
- const a = o[s];
22117
- z(a != null, `No layout data found for index ${s}`);
22118
- const u = W({
22119
- panelConstraints: t[s],
22120
- size: a
22333
+ for (let a = 0; a < t.length; a++) {
22334
+ const s = n[a];
22335
+ C(s != null, `No layout data found for index ${a}`);
22336
+ const l = o[a];
22337
+ C(l != null, `No layout data found for index ${a}`);
22338
+ const u = Z({
22339
+ overrideDisabledPanels: true,
22340
+ panelConstraints: t[a],
22341
+ prevSize: s,
22342
+ size: l
22121
22343
  });
22122
- a != u && (r += a - u, o[s] = u);
22123
- }
22124
- if (!R(r, 0))
22125
- for (let s = 0; s < t.length; s++) {
22126
- const a = o[s];
22127
- z(a != null, `No layout data found for index ${s}`);
22128
- const u = a + r, c = W({
22129
- panelConstraints: t[s],
22130
- size: u
22344
+ l != u && (r += l - u, o[a] = u);
22345
+ }
22346
+ if (!I(r, 0))
22347
+ for (let a = 0; a < t.length; a++) {
22348
+ const s = o[a];
22349
+ C(s != null, `No layout data found for index ${a}`);
22350
+ const l = s + r, u = Z({
22351
+ overrideDisabledPanels: true,
22352
+ panelConstraints: t[a],
22353
+ prevSize: s,
22354
+ size: l
22131
22355
  });
22132
- if (a !== c && (r -= c - a, o[s] = c, R(r, 0)))
22356
+ if (s !== u && (r -= u - s, o[a] = u, I(r, 0)))
22133
22357
  break;
22134
22358
  }
22135
- const l = Object.keys(e);
22136
- return o.reduce((s, a, u) => (s[l[u]] = a, s), {});
22359
+ const f = Object.keys(e);
22360
+ return o.reduce((a, s, l) => (a[f[l]] = s, a), {});
22137
22361
  }
22138
- function je({
22362
+ function tt({
22139
22363
  groupId: e,
22140
22364
  panelId: t
22141
22365
  }) {
22142
22366
  const n = () => {
22143
- const { mountedGroups: s } = G();
22367
+ const s = X();
22144
22368
  for (const [
22145
- a,
22369
+ l,
22146
22370
  {
22147
22371
  defaultLayoutDeferred: u,
22148
- derivedPanelConstraints: c,
22149
- layout: h,
22150
- separatorToPanels: y
22372
+ derivedPanelConstraints: h,
22373
+ layout: d,
22374
+ groupSize: S,
22375
+ separatorToPanels: z
22151
22376
  }
22152
22377
  ] of s)
22153
- if (a.id === e)
22378
+ if (l.id === e)
22154
22379
  return {
22155
22380
  defaultLayoutDeferred: u,
22156
- derivedPanelConstraints: c,
22157
- group: a,
22158
- layout: h,
22159
- separatorToPanels: y
22381
+ derivedPanelConstraints: h,
22382
+ group: l,
22383
+ groupSize: S,
22384
+ layout: d,
22385
+ separatorToPanels: z
22160
22386
  };
22161
22387
  throw Error(`Group ${e} not found`);
22162
22388
  }, o = () => {
22163
22389
  const s = n().derivedPanelConstraints.find(
22164
- (a) => a.panelId === t
22390
+ (l) => l.panelId === t
22165
22391
  );
22166
22392
  if (s !== void 0)
22167
22393
  return s;
22168
22394
  throw Error(`Panel constraints not found for Panel ${t}`);
22169
22395
  }, i = () => {
22170
- const s = n().group.panels.find((a) => a.id === t);
22396
+ const s = n().group.panels.find((l) => l.id === t);
22171
22397
  if (s !== void 0)
22172
22398
  return s;
22173
22399
  throw Error(`Layout not found for Panel ${t}`);
@@ -22176,99 +22402,113 @@ function je({
22176
22402
  if (s !== void 0)
22177
22403
  return s;
22178
22404
  throw Error(`Layout not found for Panel ${t}`);
22179
- }, l = (s) => {
22180
- const a = r();
22181
- if (s === a)
22405
+ }, f = ({
22406
+ nextSize: s,
22407
+ panels: l,
22408
+ prevLayout: u,
22409
+ derivedPanelConstraints: h
22410
+ }) => {
22411
+ const d = r(), S = l.findIndex((m) => m.id === t), z = S === 0, c = S === l.length - 1;
22412
+ if (c && s < d && (z || l.slice(0, S).every((m, v) => {
22413
+ const b = h[v];
22414
+ return b?.collapsible && I(b.collapsedSize, u[b.panelId]);
22415
+ }))) {
22416
+ const m = l.slice(0, S).reduce((v, b) => v + u[b.id], 0);
22417
+ return {
22418
+ ...u,
22419
+ [t]: O(100 - m)
22420
+ };
22421
+ }
22422
+ return le({
22423
+ delta: c ? d - s : s - d,
22424
+ initialLayout: u,
22425
+ panelConstraints: h,
22426
+ pivotIndices: c ? [S - 1, S] : [S, S + 1],
22427
+ prevLayout: u,
22428
+ trigger: "imperative-api"
22429
+ });
22430
+ }, a = (s) => {
22431
+ const l = r();
22432
+ if (s === l)
22182
22433
  return;
22183
22434
  const {
22184
22435
  defaultLayoutDeferred: u,
22185
- derivedPanelConstraints: c,
22186
- group: h,
22187
- layout: y,
22188
- separatorToPanels: m
22189
- } = n(), f = h.panels.findIndex((v) => v.id === t), d = f === h.panels.length - 1, p = te({
22190
- delta: d ? a - s : s - a,
22191
- initialLayout: y,
22192
- panelConstraints: c,
22193
- pivotIndices: d ? [f - 1, f] : [f, f + 1],
22194
- prevLayout: y,
22195
- trigger: "imperative-api"
22196
- }), g = $({
22436
+ derivedPanelConstraints: h,
22437
+ group: d,
22438
+ groupSize: S,
22439
+ layout: z,
22440
+ separatorToPanels: c
22441
+ } = n(), p = f({
22442
+ nextSize: s,
22443
+ panels: d.panels,
22444
+ prevLayout: z,
22445
+ derivedPanelConstraints: h
22446
+ }), m = U({
22197
22447
  layout: p,
22198
- panelConstraints: c
22448
+ panelConstraints: h
22449
+ });
22450
+ W(z, m) || $(d, {
22451
+ defaultLayoutDeferred: u,
22452
+ derivedPanelConstraints: h,
22453
+ groupSize: S,
22454
+ layout: m,
22455
+ separatorToPanels: c
22199
22456
  });
22200
- F(y, g) || M((v) => ({
22201
- mountedGroups: new Map(v.mountedGroups).set(h, {
22202
- defaultLayoutDeferred: u,
22203
- derivedPanelConstraints: c,
22204
- layout: g,
22205
- separatorToPanels: m
22206
- })
22207
- }));
22208
22457
  };
22209
22458
  return {
22210
22459
  collapse: () => {
22211
- const { collapsible: s, collapsedSize: a } = o(), { mutableValues: u } = i(), c = r();
22212
- s && c !== a && (u.expandToSize = c, l(a));
22460
+ const { collapsible: s, collapsedSize: l } = o(), { mutableValues: u } = i(), h = r();
22461
+ s && h !== l && (u.expandToSize = h, a(l));
22213
22462
  },
22214
22463
  expand: () => {
22215
- const { collapsible: s, collapsedSize: a, minSize: u } = o(), { mutableValues: c } = i(), h = r();
22216
- if (s && h === a) {
22217
- let y = c.expandToSize ?? u;
22218
- y === 0 && (y = 1), l(y);
22464
+ const { collapsible: s, collapsedSize: l, minSize: u } = o(), { mutableValues: h } = i(), d = r();
22465
+ if (s && d === l) {
22466
+ let S = h.expandToSize ?? u;
22467
+ S === 0 && (S = 1), a(S);
22219
22468
  }
22220
22469
  },
22221
22470
  getSize: () => {
22222
- const { group: s } = n(), a = r(), { element: u } = i(), c = s.orientation === "horizontal" ? u.offsetWidth : u.offsetHeight;
22471
+ const { group: s } = n(), l = r(), { element: u } = i(), h = s.orientation === "horizontal" ? u.offsetWidth : u.offsetHeight;
22223
22472
  return {
22224
- asPercentage: a,
22225
- inPixels: c
22473
+ asPercentage: l,
22474
+ inPixels: h
22226
22475
  };
22227
22476
  },
22228
22477
  isCollapsed: () => {
22229
- const { collapsible: s, collapsedSize: a } = o(), u = r();
22230
- return s && R(a, u);
22478
+ const { collapsible: s, collapsedSize: l } = o(), u = r();
22479
+ return s && I(l, u);
22231
22480
  },
22232
22481
  resize: (s) => {
22233
- if (r() !== s) {
22234
- let u;
22235
- switch (typeof s) {
22236
- case "number": {
22237
- const { group: c } = n(), h = B({ group: c });
22238
- u = D(s / h * 100);
22239
- break;
22240
- }
22241
- case "string": {
22242
- u = parseFloat(s);
22243
- break;
22244
- }
22245
- }
22246
- l(u);
22247
- }
22482
+ const { group: l } = n(), { element: u } = i(), h = ne({ group: l }), d = ie({
22483
+ groupSize: h,
22484
+ panelElement: u,
22485
+ styleProp: s
22486
+ }), S = O(d / h * 100);
22487
+ a(S);
22248
22488
  }
22249
22489
  };
22250
22490
  }
22251
- function we(e) {
22491
+ function Te(e) {
22252
22492
  if (e.defaultPrevented)
22253
22493
  return;
22254
- const { mountedGroups: t } = G();
22255
- pe(e, t).forEach((o) => {
22256
- if (o.separator) {
22494
+ const t = X();
22495
+ xe(e, t).forEach((o) => {
22496
+ if (o.separator && !o.separator.disableDoubleClick) {
22257
22497
  const i = o.panels.find(
22258
22498
  (r) => r.panelConstraints.defaultSize !== void 0
22259
22499
  );
22260
22500
  if (i) {
22261
- const r = i.panelConstraints.defaultSize, l = je({
22501
+ const r = i.panelConstraints.defaultSize, f = tt({
22262
22502
  groupId: o.group.id,
22263
22503
  panelId: i.id
22264
22504
  });
22265
- l && r !== void 0 && (l.resize(r), e.preventDefault());
22505
+ f && r !== void 0 && (f.resize(r), e.preventDefault());
22266
22506
  }
22267
22507
  }
22268
22508
  });
22269
22509
  }
22270
- function ae(e) {
22271
- const { mountedGroups: t } = G();
22510
+ function pe(e) {
22511
+ const t = X();
22272
22512
  for (const [n] of t)
22273
22513
  if (n.separators.some(
22274
22514
  (o) => o.element === e
@@ -22276,11 +22516,11 @@ function ae(e) {
22276
22516
  return n;
22277
22517
  throw Error("Could not find parent Group for separator element");
22278
22518
  }
22279
- function Ve({
22519
+ function nt({
22280
22520
  groupId: e
22281
22521
  }) {
22282
22522
  const t = () => {
22283
- const { mountedGroups: n } = G();
22523
+ const n = X();
22284
22524
  for (const [o, i] of n)
22285
22525
  if (o.id === e)
22286
22526
  return { group: o, ...i };
@@ -22296,142 +22536,167 @@ function Ve({
22296
22536
  defaultLayoutDeferred: o,
22297
22537
  derivedPanelConstraints: i,
22298
22538
  group: r,
22299
- layout: l,
22539
+ groupSize: f,
22540
+ layout: a,
22300
22541
  separatorToPanels: s
22301
- } = t(), a = $({
22542
+ } = t(), l = U({
22302
22543
  layout: n,
22303
22544
  panelConstraints: i
22304
22545
  });
22305
- return o ? l : (F(l, a) || M((u) => ({
22306
- mountedGroups: new Map(u.mountedGroups).set(r, {
22307
- defaultLayoutDeferred: o,
22308
- derivedPanelConstraints: i,
22309
- layout: a,
22310
- separatorToPanels: s
22311
- })
22312
- })), a);
22546
+ return o ? a : (W(a, l) || $(r, {
22547
+ defaultLayoutDeferred: o,
22548
+ derivedPanelConstraints: i,
22549
+ groupSize: f,
22550
+ layout: l,
22551
+ separatorToPanels: s
22552
+ }), l);
22313
22553
  }
22314
22554
  };
22315
22555
  }
22316
- function Ue(e) {
22317
- const { mountedGroups: t } = G(), n = t.get(e);
22318
- return z(n, `Mounted Group ${e.id} not found`), n;
22319
- }
22320
- function _(e, t) {
22321
- const n = ae(e), o = Ue(n), i = n.separators.find(
22556
+ function B(e, t) {
22557
+ const n = pe(e), o = H(n.id, true), i = n.separators.find(
22322
22558
  (h) => h.element === e
22323
22559
  );
22324
- z(i, "Matching separator not found");
22560
+ C(i, "Matching separator not found");
22325
22561
  const r = o.separatorToPanels.get(i);
22326
- z(r, "Matching panels not found");
22327
- const l = r.map((h) => n.panels.indexOf(h)), a = Ve({ groupId: n.id }).getLayout(), u = te({
22562
+ C(r, "Matching panels not found");
22563
+ const f = r.map((h) => n.panels.indexOf(h)), s = nt({ groupId: n.id }).getLayout(), l = le({
22328
22564
  delta: t,
22329
- initialLayout: a,
22565
+ initialLayout: s,
22330
22566
  panelConstraints: o.derivedPanelConstraints,
22331
- pivotIndices: l,
22332
- prevLayout: a,
22567
+ pivotIndices: f,
22568
+ prevLayout: s,
22333
22569
  trigger: "keyboard"
22334
- }), c = $({
22335
- layout: u,
22570
+ }), u = U({
22571
+ layout: l,
22336
22572
  panelConstraints: o.derivedPanelConstraints
22337
22573
  });
22338
- F(a, c) || M((h) => ({
22339
- mountedGroups: new Map(h.mountedGroups).set(n, {
22340
- defaultLayoutDeferred: o.defaultLayoutDeferred,
22341
- derivedPanelConstraints: o.derivedPanelConstraints,
22342
- layout: c,
22343
- separatorToPanels: o.separatorToPanels
22344
- })
22345
- }));
22574
+ W(s, u) || $(n, {
22575
+ defaultLayoutDeferred: o.defaultLayoutDeferred,
22576
+ derivedPanelConstraints: o.derivedPanelConstraints,
22577
+ groupSize: o.groupSize,
22578
+ layout: u,
22579
+ separatorToPanels: o.separatorToPanels
22580
+ });
22346
22581
  }
22347
- function Le(e) {
22582
+ function Ge(e) {
22348
22583
  if (e.defaultPrevented)
22349
22584
  return;
22350
- const t = e.currentTarget, n = ae(t);
22585
+ const t = e.currentTarget, n = pe(t);
22351
22586
  if (!n.disabled)
22352
22587
  switch (e.key) {
22353
22588
  case "ArrowDown": {
22354
- e.preventDefault(), n.orientation === "vertical" && _(t, 5);
22589
+ e.preventDefault(), n.orientation === "vertical" && B(t, 5);
22355
22590
  break;
22356
22591
  }
22357
22592
  case "ArrowLeft": {
22358
- e.preventDefault(), n.orientation === "horizontal" && _(t, -5);
22593
+ e.preventDefault(), n.orientation === "horizontal" && B(t, -5);
22359
22594
  break;
22360
22595
  }
22361
22596
  case "ArrowRight": {
22362
- e.preventDefault(), n.orientation === "horizontal" && _(t, 5);
22597
+ e.preventDefault(), n.orientation === "horizontal" && B(t, 5);
22363
22598
  break;
22364
22599
  }
22365
22600
  case "ArrowUp": {
22366
- e.preventDefault(), n.orientation === "vertical" && _(t, -5);
22601
+ e.preventDefault(), n.orientation === "vertical" && B(t, -5);
22367
22602
  break;
22368
22603
  }
22369
22604
  case "End": {
22370
- e.preventDefault(), _(t, 100);
22605
+ e.preventDefault(), B(t, 100);
22371
22606
  break;
22372
22607
  }
22373
22608
  case "Enter": {
22374
22609
  e.preventDefault();
22375
- const o = ae(t), { derivedPanelConstraints: i, layout: r, separatorToPanels: l } = Ue(o), s = o.separators.find(
22376
- (h) => h.element === t
22610
+ const o = pe(t), i = H(o.id, true), { derivedPanelConstraints: r, layout: f, separatorToPanels: a } = i, s = o.separators.find(
22611
+ (d) => d.element === t
22377
22612
  );
22378
- z(s, "Matching separator not found");
22379
- const a = l.get(s);
22380
- z(a, "Matching panels not found");
22381
- const u = a[0], c = i.find(
22382
- (h) => h.panelId === u.id
22613
+ C(s, "Matching separator not found");
22614
+ const l = a.get(s);
22615
+ C(l, "Matching panels not found");
22616
+ const u = l[0], h = r.find(
22617
+ (d) => d.panelId === u.id
22383
22618
  );
22384
- if (z(c, "Panel metadata not found"), c.collapsible) {
22385
- const h = r[u.id], y = c.collapsedSize === h ? o.inMemoryLastExpandedPanelSizes[u.id] ?? c.minSize : c.collapsedSize;
22386
- _(t, y - h);
22619
+ if (C(h, "Panel metadata not found"), h.collapsible) {
22620
+ const d = f[u.id], S = h.collapsedSize === d ? o.mutableState.expandedPanelSizes[u.id] ?? h.minSize : h.collapsedSize;
22621
+ B(t, S - d);
22387
22622
  }
22388
22623
  break;
22389
22624
  }
22390
22625
  case "F6": {
22391
22626
  e.preventDefault();
22392
- const i = ae(t).separators.map(
22393
- (a) => a.element
22627
+ const i = pe(t).separators.map(
22628
+ (s) => s.element
22394
22629
  ), r = Array.from(i).findIndex(
22395
- (a) => a === e.currentTarget
22630
+ (s) => s === e.currentTarget
22396
22631
  );
22397
- z(r !== null, "Index not found");
22398
- const l = e.shiftKey ? r > 0 ? r - 1 : i.length - 1 : r + 1 < i.length ? r + 1 : 0;
22399
- i[l].focus();
22632
+ C(r !== null, "Index not found");
22633
+ const f = e.shiftKey ? r > 0 ? r - 1 : i.length - 1 : r + 1 < i.length ? r + 1 : 0;
22634
+ i[f].focus({
22635
+ preventScroll: true
22636
+ });
22400
22637
  break;
22401
22638
  }
22402
22639
  case "Home": {
22403
- e.preventDefault(), _(t, -100);
22640
+ e.preventDefault(), B(t, -100);
22404
22641
  break;
22405
22642
  }
22406
22643
  }
22407
22644
  }
22408
- function Ce(e) {
22645
+ let ee = {
22646
+ cursorFlags: 0,
22647
+ state: "inactive"
22648
+ };
22649
+ const Pe = new Ze();
22650
+ function K() {
22651
+ return ee;
22652
+ }
22653
+ function Gt(e) {
22654
+ return Pe.addListener("change", e);
22655
+ }
22656
+ function At(e) {
22657
+ const t = ee, n = { ...ee };
22658
+ n.cursorFlags = e, ee = n, Pe.emit("change", {
22659
+ prev: t,
22660
+ next: n
22661
+ });
22662
+ }
22663
+ function te(e) {
22664
+ const t = ee;
22665
+ ee = e, Pe.emit("change", {
22666
+ prev: t,
22667
+ next: e
22668
+ });
22669
+ }
22670
+ function Ae(e) {
22409
22671
  if (e.defaultPrevented)
22410
22672
  return;
22411
22673
  if (e.pointerType === "mouse" && e.button > 0)
22412
22674
  return;
22413
- const { mountedGroups: t } = G(), n = pe(e, t), o = /* @__PURE__ */ new Map();
22675
+ const t = X(), n = xe(e, t), o = /* @__PURE__ */ new Map();
22414
22676
  let i = false;
22415
22677
  n.forEach((r) => {
22416
- r.separator && (i || (i = true, r.separator.element.focus()));
22417
- const l = t.get(r.group);
22418
- l && o.set(r.group, l.layout);
22419
- }), M({
22420
- interactionState: {
22421
- hitRegions: n,
22422
- initialLayoutMap: o,
22423
- pointerDownAtPoint: { x: e.clientX, y: e.clientY },
22424
- state: "active"
22425
- }
22678
+ r.separator && (i || (i = true, r.separator.element.focus({
22679
+ // @ts-expect-error https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus#browser_compatibility
22680
+ focusVisible: false,
22681
+ preventScroll: true
22682
+ })));
22683
+ const f = t.get(r.group);
22684
+ f && o.set(r.group, f.layout);
22685
+ }), te({
22686
+ cursorFlags: 0,
22687
+ hitRegions: n,
22688
+ initialLayoutMap: o,
22689
+ pointerDownAtPoint: { x: e.clientX, y: e.clientY },
22690
+ state: "active"
22426
22691
  }), n.length && e.preventDefault();
22427
22692
  }
22428
- const Ct = (e) => e, ce = () => {
22429
- }, We = 1, Be = 2, Ke = 4, Xe = 8, Pe = 3, Re = 12;
22430
- let se;
22431
- function Me() {
22432
- return se === void 0 && (se = false, typeof window < "u" && (window.navigator.userAgent.includes("Chrome") || window.navigator.userAgent.includes("Firefox")) && (se = true)), se;
22693
+ const Ft = (e) => e, ye = () => {
22694
+ }, ot = 1, it = 2, rt = 4, st = 8, Fe = 3, Ne = 12;
22695
+ let de;
22696
+ function _e() {
22697
+ return de === void 0 && (de = false, typeof window < "u" && (window.navigator.userAgent.includes("Chrome") || window.navigator.userAgent.includes("Firefox")) && (de = true)), de;
22433
22698
  }
22434
- function Pt({
22699
+ function Nt({
22435
22700
  cursorFlags: e,
22436
22701
  groups: t,
22437
22702
  state: n
@@ -22441,7 +22706,7 @@ function Pt({
22441
22706
  case "active":
22442
22707
  case "hover":
22443
22708
  t.forEach((r) => {
22444
- if (!r.disableCursor)
22709
+ if (!r.mutableState.disableCursor)
22445
22710
  switch (r.orientation) {
22446
22711
  case "horizontal": {
22447
22712
  o++;
@@ -22454,44 +22719,47 @@ function Pt({
22454
22719
  }
22455
22720
  });
22456
22721
  }
22457
- if (o === 0 && i === 0)
22458
- return null;
22459
- switch (n) {
22460
- case "active": {
22461
- if (e && Me()) {
22462
- const r = (e & We) !== 0, l = (e & Be) !== 0, s = (e & Ke) !== 0, a = (e & Xe) !== 0;
22463
- if (r)
22464
- return s ? "se-resize" : a ? "ne-resize" : "e-resize";
22465
- if (l)
22466
- return s ? "sw-resize" : a ? "nw-resize" : "w-resize";
22467
- if (s)
22468
- return "s-resize";
22469
- if (a)
22470
- return "n-resize";
22722
+ if (!(o === 0 && i === 0)) {
22723
+ switch (n) {
22724
+ case "active": {
22725
+ if (e && _e()) {
22726
+ const r = (e & ot) !== 0, f = (e & it) !== 0, a = (e & rt) !== 0, s = (e & st) !== 0;
22727
+ if (r)
22728
+ return a ? "se-resize" : s ? "ne-resize" : "e-resize";
22729
+ if (f)
22730
+ return a ? "sw-resize" : s ? "nw-resize" : "w-resize";
22731
+ if (a)
22732
+ return "s-resize";
22733
+ if (s)
22734
+ return "n-resize";
22735
+ }
22736
+ break;
22471
22737
  }
22472
- break;
22473
22738
  }
22739
+ return _e() ? o > 0 && i > 0 ? "move" : o > 0 ? "ew-resize" : "ns-resize" : o > 0 && i > 0 ? "grab" : o > 0 ? "col-resize" : "row-resize";
22474
22740
  }
22475
- return Me() ? o > 0 && i > 0 ? "move" : o > 0 ? "ew-resize" : "ns-resize" : o > 0 && i > 0 ? "grab" : o > 0 ? "col-resize" : "row-resize";
22476
22741
  }
22477
- const Ee = /* @__PURE__ */ new WeakMap();
22478
- function he(e) {
22742
+ const $e = /* @__PURE__ */ new WeakMap();
22743
+ function we(e) {
22479
22744
  if (e.defaultView === null || e.defaultView === void 0)
22480
22745
  return;
22481
- let { prevStyle: t, styleSheet: n } = Ee.get(e) ?? {};
22482
- n === void 0 && (n = new e.defaultView.CSSStyleSheet(), e.adoptedStyleSheets.push(n));
22483
- const { cursorFlags: o, interactionState: i } = G();
22484
- switch (i.state) {
22746
+ let { prevStyle: t, styleSheet: n } = $e.get(e) ?? {};
22747
+ n === void 0 && (n = new e.defaultView.CSSStyleSheet(), e.adoptedStyleSheets && (Object.isExtensible(e.adoptedStyleSheets) ? e.adoptedStyleSheets.push(n) : e.adoptedStyleSheets = [
22748
+ ...e.adoptedStyleSheets,
22749
+ n
22750
+ ]));
22751
+ const o = K();
22752
+ switch (o.state) {
22485
22753
  case "active":
22486
22754
  case "hover": {
22487
- const r = Pt({
22488
- cursorFlags: o,
22489
- groups: i.hitRegions.map((s) => s.group),
22490
- state: i.state
22491
- }), l = `*, *:hover {cursor: ${r} !important; ${i.state === "active" ? "touch-action: none;" : ""} }`;
22492
- if (t === l)
22755
+ const i = Nt({
22756
+ cursorFlags: o.cursorFlags,
22757
+ groups: o.hitRegions.map((f) => f.group),
22758
+ state: o.state
22759
+ }), r = `*, *:hover {cursor: ${i} !important; }`;
22760
+ if (t === r)
22493
22761
  return;
22494
- t = l, r ? n.cssRules.length === 0 ? n.insertRule(l) : n.replaceSync(l) : n.cssRules.length === 1 && n.deleteRule(0);
22762
+ t = r, i ? n.cssRules.length === 0 ? n.insertRule(r) : n.replaceSync(r) : n.cssRules.length === 1 && n.deleteRule(0);
22495
22763
  break;
22496
22764
  }
22497
22765
  case "inactive": {
@@ -22499,181 +22767,190 @@ function he(e) {
22499
22767
  break;
22500
22768
  }
22501
22769
  }
22502
- Ee.set(e, {
22770
+ $e.set(e, {
22503
22771
  prevStyle: t,
22504
22772
  styleSheet: n
22505
22773
  });
22506
22774
  }
22507
- function qe({
22775
+ function at({
22508
22776
  document: e,
22509
22777
  event: t,
22510
22778
  hitRegions: n,
22511
22779
  initialLayoutMap: o,
22512
22780
  mountedGroups: i,
22513
22781
  pointerDownAtPoint: r,
22514
- prevCursorFlags: l
22782
+ prevCursorFlags: f
22515
22783
  }) {
22516
- let s = 0;
22517
- const a = new Map(i);
22518
- n.forEach((c) => {
22519
- const { group: h, groupSize: y } = c, { disableCursor: m, orientation: f, panels: d } = h;
22520
- let p = 0;
22521
- r ? f === "horizontal" ? p = (t.clientX - r.x) / y * 100 : p = (t.clientY - r.y) / y * 100 : f === "horizontal" ? p = t.clientX < 0 ? -100 : 100 : p = t.clientY < 0 ? -100 : 100;
22522
- const g = o.get(h), {
22784
+ let a = 0;
22785
+ n.forEach((l) => {
22786
+ const { group: u, groupSize: h } = l, { orientation: d, panels: S } = u, { disableCursor: z } = u.mutableState;
22787
+ let c = 0;
22788
+ r ? d === "horizontal" ? c = (t.clientX - r.x) / h * 100 : c = (t.clientY - r.y) / h * 100 : d === "horizontal" ? c = t.clientX < 0 ? -100 : 100 : c = t.clientY < 0 ? -100 : 100;
22789
+ const p = o.get(u), m = i.get(u);
22790
+ if (!p || !m)
22791
+ return;
22792
+ const {
22523
22793
  defaultLayoutDeferred: v,
22524
- derivedPanelConstraints: x,
22525
- layout: S,
22526
- separatorToPanels: w
22527
- } = i.get(h) ?? { defaultLayoutDeferred: false };
22528
- if (x && g && S && w) {
22529
- const C = te({
22530
- delta: p,
22531
- initialLayout: g,
22532
- panelConstraints: x,
22533
- pivotIndices: c.panels.map((P) => d.indexOf(P)),
22534
- prevLayout: S,
22794
+ derivedPanelConstraints: b,
22795
+ groupSize: y,
22796
+ layout: g,
22797
+ separatorToPanels: P
22798
+ } = m;
22799
+ if (b && g && P) {
22800
+ const M = le({
22801
+ delta: c,
22802
+ initialLayout: p,
22803
+ panelConstraints: b,
22804
+ pivotIndices: l.panels.map((w) => S.indexOf(w)),
22805
+ prevLayout: g,
22535
22806
  trigger: "mouse-or-touch"
22536
22807
  });
22537
- if (F(C, S)) {
22538
- if (p !== 0 && !m)
22539
- switch (f) {
22808
+ if (W(M, g)) {
22809
+ if (c !== 0 && !z)
22810
+ switch (d) {
22540
22811
  case "horizontal": {
22541
- s |= p < 0 ? We : Be;
22812
+ a |= c < 0 ? ot : it;
22542
22813
  break;
22543
22814
  }
22544
22815
  case "vertical": {
22545
- s |= p < 0 ? Ke : Xe;
22816
+ a |= c < 0 ? rt : st;
22546
22817
  break;
22547
22818
  }
22548
22819
  }
22549
- } else {
22550
- a.set(c.group, {
22820
+ } else
22821
+ $(l.group, {
22551
22822
  defaultLayoutDeferred: v,
22552
- derivedPanelConstraints: x,
22553
- layout: C,
22554
- separatorToPanels: w
22823
+ derivedPanelConstraints: b,
22824
+ groupSize: y,
22825
+ layout: M,
22826
+ separatorToPanels: P
22555
22827
  });
22556
- const P = c.group.panels.map(({ id: T }) => T).join(",");
22557
- c.group.inMemoryLayouts[P] = C;
22558
- }
22559
22828
  }
22560
22829
  });
22561
- let u = 0;
22562
- t.movementX === 0 ? u |= l & Pe : u |= s & Pe, t.movementY === 0 ? u |= l & Re : u |= s & Re, M({
22563
- cursorFlags: u,
22564
- mountedGroups: a
22565
- }), he(e);
22566
- }
22567
- function ke(e) {
22568
- const { cursorFlags: t, interactionState: n, mountedGroups: o } = G();
22830
+ let s = 0;
22831
+ t.movementX === 0 ? s |= f & Fe : s |= a & Fe, t.movementY === 0 ? s |= f & Ne : s |= a & Ne, At(s), we(e);
22832
+ }
22833
+ function je(e) {
22834
+ const t = X(), n = K();
22569
22835
  switch (n.state) {
22570
22836
  case "active":
22571
- qe({
22837
+ at({
22572
22838
  document: e.currentTarget,
22573
22839
  event: e,
22574
22840
  hitRegions: n.hitRegions,
22575
22841
  initialLayoutMap: n.initialLayoutMap,
22576
- mountedGroups: o,
22577
- prevCursorFlags: t
22842
+ mountedGroups: t,
22843
+ prevCursorFlags: n.cursorFlags
22578
22844
  });
22579
22845
  }
22580
22846
  }
22581
- function Ge(e) {
22847
+ function He(e) {
22582
22848
  if (e.defaultPrevented)
22583
22849
  return;
22584
- const { cursorFlags: t, interactionState: n, mountedGroups: o } = G();
22585
- switch (n.state) {
22850
+ const t = K(), n = X();
22851
+ switch (t.state) {
22586
22852
  case "active": {
22587
22853
  if (
22588
22854
  // Skip this check for "pointerleave" events, else Firefox triggers a false positive (see #514)
22589
22855
  e.buttons === 0
22590
22856
  ) {
22591
- M(
22592
- (i) => i.interactionState.state === "inactive" ? i : {
22593
- cursorFlags: 0,
22594
- interactionState: { state: "inactive" }
22595
- }
22596
- ), M((i) => ({
22597
- mountedGroups: new Map(i.mountedGroups)
22598
- }));
22857
+ te({
22858
+ cursorFlags: 0,
22859
+ state: "inactive"
22860
+ }), t.hitRegions.forEach((o) => {
22861
+ const i = H(o.group.id, true);
22862
+ $(o.group, i);
22863
+ });
22599
22864
  return;
22600
22865
  }
22601
- qe({
22866
+ for (const o of t.hitRegions)
22867
+ if (o.separator) {
22868
+ const { element: i } = o.separator;
22869
+ i.hasPointerCapture?.(e.pointerId) || i.setPointerCapture?.(e.pointerId);
22870
+ }
22871
+ at({
22602
22872
  document: e.currentTarget,
22603
22873
  event: e,
22604
- hitRegions: n.hitRegions,
22605
- initialLayoutMap: n.initialLayoutMap,
22606
- mountedGroups: o,
22607
- pointerDownAtPoint: n.pointerDownAtPoint,
22608
- prevCursorFlags: t
22874
+ hitRegions: t.hitRegions,
22875
+ initialLayoutMap: t.initialLayoutMap,
22876
+ mountedGroups: n,
22877
+ pointerDownAtPoint: t.pointerDownAtPoint,
22878
+ prevCursorFlags: t.cursorFlags
22609
22879
  });
22610
22880
  break;
22611
22881
  }
22612
22882
  default: {
22613
- const i = pe(e, o);
22614
- i.length === 0 ? n.state !== "inactive" && M({
22615
- interactionState: {
22616
- state: "inactive"
22617
- }
22618
- }) : M({
22619
- interactionState: {
22620
- hitRegions: i,
22621
- state: "hover"
22622
- }
22623
- }), he(e.currentTarget);
22883
+ const o = xe(e, n);
22884
+ o.length === 0 ? t.state !== "inactive" && te({
22885
+ cursorFlags: 0,
22886
+ state: "inactive"
22887
+ }) : te({
22888
+ cursorFlags: 0,
22889
+ hitRegions: o,
22890
+ state: "hover"
22891
+ }), we(e.currentTarget);
22624
22892
  break;
22625
22893
  }
22626
22894
  }
22627
22895
  }
22628
- function Ie(e) {
22896
+ function Ve(e) {
22897
+ if (e.relatedTarget instanceof HTMLIFrameElement)
22898
+ switch (K().state) {
22899
+ case "hover":
22900
+ te({
22901
+ cursorFlags: 0,
22902
+ state: "inactive"
22903
+ });
22904
+ }
22905
+ }
22906
+ function Be(e) {
22629
22907
  if (e.defaultPrevented)
22630
22908
  return;
22631
22909
  if (e.pointerType === "mouse" && e.button > 0)
22632
22910
  return;
22633
- const { interactionState: t } = G();
22911
+ const t = K();
22634
22912
  switch (t.state) {
22635
22913
  case "active":
22636
- M({
22914
+ te({
22637
22915
  cursorFlags: 0,
22638
- interactionState: {
22639
- state: "inactive"
22640
- }
22641
- }), t.hitRegions.length > 0 && (he(e.currentTarget), M((n) => ({
22642
- mountedGroups: new Map(n.mountedGroups)
22643
- })), e.preventDefault());
22916
+ state: "inactive"
22917
+ }), t.hitRegions.length > 0 && (we(e.currentTarget), t.hitRegions.forEach((n) => {
22918
+ const o = H(n.group.id, true);
22919
+ $(n.group, o);
22920
+ }), e.preventDefault());
22644
22921
  }
22645
22922
  }
22646
- function De(e) {
22923
+ function We(e) {
22647
22924
  let t = 0, n = 0;
22648
22925
  const o = {};
22649
22926
  for (const r of e)
22650
22927
  if (r.defaultSize !== void 0) {
22651
22928
  t++;
22652
- const l = D(r.defaultSize);
22653
- n += l, o[r.panelId] = l;
22929
+ const f = O(r.defaultSize);
22930
+ n += f, o[r.panelId] = f;
22654
22931
  } else
22655
22932
  o[r.panelId] = void 0;
22656
22933
  const i = e.length - t;
22657
22934
  if (i !== 0) {
22658
- const r = D((100 - n) / i);
22659
- for (const l of e)
22660
- l.defaultSize === void 0 && (o[l.panelId] = r);
22935
+ const r = O((100 - n) / i);
22936
+ for (const f of e)
22937
+ f.defaultSize === void 0 && (o[f.panelId] = r);
22661
22938
  }
22662
22939
  return o;
22663
22940
  }
22664
- function Rt(e, t, n) {
22941
+ function _t(e, t, n) {
22665
22942
  if (!n[0])
22666
22943
  return;
22667
- const i = e.panels.find((u) => u.element === t);
22944
+ const i = e.panels.find((l) => l.element === t);
22668
22945
  if (!i || !i.onResize)
22669
22946
  return;
22670
- const r = B({ group: e }), l = e.orientation === "horizontal" ? i.element.offsetWidth : i.element.offsetHeight, s = i.mutableValues.prevSize, a = {
22671
- asPercentage: D(l / r * 100),
22672
- inPixels: l
22947
+ const r = ne({ group: e }), f = e.orientation === "horizontal" ? i.element.offsetWidth : i.element.offsetHeight, a = i.mutableValues.prevSize, s = {
22948
+ asPercentage: O(f / r * 100),
22949
+ inPixels: f
22673
22950
  };
22674
- i.mutableValues.prevSize = a, i.onResize(a, i.id, s);
22951
+ i.mutableValues.prevSize = s, i.onResize(s, i.id, a);
22675
22952
  }
22676
- function Mt(e, t) {
22953
+ function $t(e, t) {
22677
22954
  if (Object.keys(e).length !== Object.keys(t).length)
22678
22955
  return false;
22679
22956
  for (const o in e)
@@ -22681,7 +22958,56 @@ function Mt(e, t) {
22681
22958
  return false;
22682
22959
  return true;
22683
22960
  }
22684
- function Et(e, t) {
22961
+ function jt({
22962
+ group: e,
22963
+ nextGroupSize: t,
22964
+ prevGroupSize: n,
22965
+ prevLayout: o
22966
+ }) {
22967
+ if (n <= 0 || t <= 0 || n === t)
22968
+ return o;
22969
+ let i = 0, r = 0, f = false;
22970
+ const a = /* @__PURE__ */ new Map(), s = [];
22971
+ for (const h of e.panels) {
22972
+ const d = o[h.id] ?? 0;
22973
+ switch (h.panelConstraints.groupResizeBehavior) {
22974
+ case "preserve-pixel-size": {
22975
+ f = true;
22976
+ const S = d / 100 * n, z = O(
22977
+ S / t * 100
22978
+ );
22979
+ a.set(h.id, z), i += z;
22980
+ break;
22981
+ }
22982
+ case "preserve-relative-size":
22983
+ default: {
22984
+ s.push(h.id), r += d;
22985
+ break;
22986
+ }
22987
+ }
22988
+ }
22989
+ if (!f || s.length === 0)
22990
+ return o;
22991
+ const l = 100 - i, u = { ...o };
22992
+ if (a.forEach((h, d) => {
22993
+ u[d] = h;
22994
+ }), r > 0)
22995
+ for (const h of s) {
22996
+ const d = o[h] ?? 0;
22997
+ u[h] = O(
22998
+ d / r * l
22999
+ );
23000
+ }
23001
+ else {
23002
+ const h = O(
23003
+ l / s.length
23004
+ );
23005
+ for (const d of s)
23006
+ u[d] = h;
23007
+ }
23008
+ return u;
23009
+ }
23010
+ function Ht(e, t) {
22685
23011
  const n = e.map((i) => i.id), o = Object.keys(t);
22686
23012
  if (n.length !== o.length)
22687
23013
  return false;
@@ -22690,119 +23016,118 @@ function Et(e, t) {
22690
23016
  return false;
22691
23017
  return true;
22692
23018
  }
22693
- const U = /* @__PURE__ */ new Map();
22694
- function kt(e) {
23019
+ const J = /* @__PURE__ */ new Map();
23020
+ function Vt(e) {
22695
23021
  let t = true;
22696
- z(
23022
+ C(
22697
23023
  e.element.ownerDocument.defaultView,
22698
23024
  "Cannot register an unmounted Group"
22699
23025
  );
22700
- const n = e.element.ownerDocument.defaultView.ResizeObserver, o = /* @__PURE__ */ new Set(), i = /* @__PURE__ */ new Set(), r = new n((f) => {
22701
- for (const d of f) {
22702
- const { borderBoxSize: p, target: g } = d;
22703
- if (g === e.element) {
23026
+ const n = e.element.ownerDocument.defaultView.ResizeObserver, o = /* @__PURE__ */ new Set(), i = /* @__PURE__ */ new Set(), r = new n((c) => {
23027
+ for (const p of c) {
23028
+ const { borderBoxSize: m, target: v } = p;
23029
+ if (v === e.element) {
22704
23030
  if (t) {
22705
- if (B({ group: e }) === 0)
23031
+ const b = ne({ group: e });
23032
+ if (b === 0)
22706
23033
  return;
22707
- M((x) => {
22708
- const S = x.mountedGroups.get(e);
22709
- if (S) {
22710
- const w = ve(e), C = S.defaultLayoutDeferred ? De(w) : S.layout, P = $({
22711
- layout: C,
22712
- panelConstraints: w
22713
- });
22714
- return !S.defaultLayoutDeferred && F(C, P) && Mt(
22715
- S.derivedPanelConstraints,
22716
- w
22717
- ) ? x : {
22718
- mountedGroups: new Map(x.mountedGroups).set(e, {
22719
- defaultLayoutDeferred: false,
22720
- derivedPanelConstraints: w,
22721
- layout: P,
22722
- separatorToPanels: S.separatorToPanels
22723
- })
22724
- };
22725
- }
22726
- return x;
23034
+ const y = H(e.id);
23035
+ if (!y)
23036
+ return;
23037
+ const g = ve(e), P = y.defaultLayoutDeferred ? We(g) : y.layout, M = jt({
23038
+ group: e,
23039
+ nextGroupSize: b,
23040
+ prevGroupSize: y.groupSize,
23041
+ prevLayout: P
23042
+ }), w = U({
23043
+ layout: M,
23044
+ panelConstraints: g
23045
+ });
23046
+ if (!y.defaultLayoutDeferred && W(y.layout, w) && $t(
23047
+ y.derivedPanelConstraints,
23048
+ g
23049
+ ) && y.groupSize === b)
23050
+ return;
23051
+ $(e, {
23052
+ defaultLayoutDeferred: false,
23053
+ derivedPanelConstraints: g,
23054
+ groupSize: b,
23055
+ layout: w,
23056
+ separatorToPanels: y.separatorToPanels
22727
23057
  });
22728
23058
  }
22729
23059
  } else
22730
- Rt(e, g, p);
23060
+ _t(e, v, m);
22731
23061
  }
22732
23062
  });
22733
- r.observe(e.element), e.panels.forEach((f) => {
22734
- z(
22735
- !o.has(f.id),
22736
- `Panel ids must be unique; id "${f.id}" was used more than once`
22737
- ), o.add(f.id), f.onResize && r.observe(f.element);
23063
+ r.observe(e.element), e.panels.forEach((c) => {
23064
+ C(
23065
+ !o.has(c.id),
23066
+ `Panel ids must be unique; id "${c.id}" was used more than once`
23067
+ ), o.add(c.id), c.onResize && r.observe(c.element);
22738
23068
  });
22739
- const l = B({ group: e }), s = ve(e), a = e.panels.map(({ id: f }) => f).join(",");
22740
- let u = e.defaultLayout;
22741
- u && (Et(e.panels, u) || (u = void 0));
22742
- const c = e.inMemoryLayouts[a] ?? u ?? De(s), h = $({
22743
- layout: c,
22744
- panelConstraints: s
22745
- }), y = $e(e), m = e.element.ownerDocument;
22746
- return M((f) => {
22747
- const d = /* @__PURE__ */ new Map();
22748
- return U.set(
22749
- m,
22750
- (U.get(m) ?? 0) + 1
22751
- ), y.forEach((p) => {
22752
- p.separator && d.set(p.separator, p.panels);
22753
- }), {
22754
- mountedGroups: new Map(f.mountedGroups).set(e, {
22755
- defaultLayoutDeferred: l === 0,
22756
- derivedPanelConstraints: s,
22757
- layout: h,
22758
- separatorToPanels: d
22759
- })
22760
- };
22761
- }), e.separators.forEach((f) => {
22762
- z(
22763
- !i.has(f.id),
22764
- `Separator ids must be unique; id "${f.id}" was used more than once`
22765
- ), i.add(f.id), f.element.addEventListener("keydown", Le);
22766
- }), U.get(m) === 1 && (m.addEventListener("dblclick", we, true), m.addEventListener("pointerdown", Ce, true), m.addEventListener("pointerleave", ke), m.addEventListener("pointermove", Ge), m.addEventListener("pointerup", Ie, true)), function() {
22767
- t = false, U.set(
22768
- m,
22769
- Math.max(0, (U.get(m) ?? 0) - 1)
22770
- ), M((d) => {
22771
- const p = new Map(d.mountedGroups);
22772
- return p.delete(e), { mountedGroups: p };
22773
- }), e.separators.forEach((d) => {
22774
- d.element.removeEventListener("keydown", Le);
22775
- }), U.get(m) || (m.removeEventListener(
23069
+ const f = ne({ group: e }), a = ve(e), s = e.panels.map(({ id: c }) => c).join(",");
23070
+ let l = e.mutableState.defaultLayout;
23071
+ l && (Ht(e.panels, l) || (l = void 0));
23072
+ const u = e.mutableState.layouts[s] ?? l ?? We(a), h = U({
23073
+ layout: u,
23074
+ panelConstraints: a
23075
+ }), d = e.element.ownerDocument;
23076
+ J.set(
23077
+ d,
23078
+ (J.get(d) ?? 0) + 1
23079
+ );
23080
+ const S = /* @__PURE__ */ new Map();
23081
+ return Je(e).forEach((c) => {
23082
+ c.separator && S.set(c.separator, c.panels);
23083
+ }), $(e, {
23084
+ defaultLayoutDeferred: f === 0,
23085
+ derivedPanelConstraints: a,
23086
+ groupSize: f,
23087
+ layout: h,
23088
+ separatorToPanels: S
23089
+ }), e.separators.forEach((c) => {
23090
+ C(
23091
+ !i.has(c.id),
23092
+ `Separator ids must be unique; id "${c.id}" was used more than once`
23093
+ ), i.add(c.id), c.element.addEventListener("keydown", Ge);
23094
+ }), J.get(d) === 1 && (d.addEventListener("dblclick", Te, true), d.addEventListener("pointerdown", Ae, true), d.addEventListener("pointerleave", je), d.addEventListener("pointermove", He), d.addEventListener("pointerout", Ve), d.addEventListener("pointerup", Be, true)), function() {
23095
+ t = false, J.set(
23096
+ d,
23097
+ Math.max(0, (J.get(d) ?? 0) - 1)
23098
+ ), Lt(e), e.separators.forEach((p) => {
23099
+ p.element.removeEventListener("keydown", Ge);
23100
+ }), J.get(d) || (d.removeEventListener(
22776
23101
  "dblclick",
22777
- we,
23102
+ Te,
22778
23103
  true
22779
- ), m.removeEventListener(
23104
+ ), d.removeEventListener(
22780
23105
  "pointerdown",
22781
- Ce,
23106
+ Ae,
22782
23107
  true
22783
- ), m.removeEventListener("pointerleave", ke), m.removeEventListener("pointermove", Ge), m.removeEventListener("pointerup", Ie, true)), r.disconnect();
23108
+ ), d.removeEventListener("pointerleave", je), d.removeEventListener("pointermove", He), d.removeEventListener("pointerout", Ve), d.removeEventListener("pointerup", Be, true)), r.disconnect();
22784
23109
  };
22785
23110
  }
22786
- function Ye() {
23111
+ function Bt() {
22787
23112
  const [e, t] = reactExports.useState({}), n = reactExports.useCallback(() => t({}), []);
22788
23113
  return [e, n];
22789
23114
  }
22790
- function me(e) {
23115
+ function Le(e) {
22791
23116
  const t = reactExports.useId();
22792
23117
  return `${e ?? t}`;
22793
23118
  }
22794
- const H = typeof window < "u" ? reactExports.useLayoutEffect : reactExports.useEffect;
22795
- function Z(e) {
23119
+ const q = typeof window < "u" ? reactExports.useLayoutEffect : reactExports.useEffect;
23120
+ function se(e) {
22796
23121
  const t = reactExports.useRef(e);
22797
- return H(() => {
23122
+ return q(() => {
22798
23123
  t.current = e;
22799
23124
  }, [e]), reactExports.useCallback(
22800
23125
  (...n) => t.current?.(...n),
22801
23126
  [t]
22802
23127
  );
22803
23128
  }
22804
- function ge(...e) {
22805
- return Z((t) => {
23129
+ function Ce(...e) {
23130
+ return se((t) => {
22806
23131
  e.forEach((n) => {
22807
23132
  if (n)
22808
23133
  switch (typeof n) {
@@ -22818,301 +23143,360 @@ function ge(...e) {
22818
23143
  });
22819
23144
  });
22820
23145
  }
22821
- function Gt(e) {
23146
+ function Re(e) {
22822
23147
  const t = reactExports.useRef({ ...e });
22823
- return H(() => {
23148
+ return q(() => {
22824
23149
  for (const n in e)
22825
23150
  t.current[n] = e[n];
22826
23151
  }, [e]), t.current;
22827
23152
  }
22828
- const Ze = reactExports.createContext(null);
22829
- function It(e, t) {
23153
+ const lt = reactExports.createContext(null);
23154
+ function Wt(e, t) {
22830
23155
  const n = reactExports.useRef({
22831
23156
  getLayout: () => ({}),
22832
- setLayout: Ct
23157
+ setLayout: Ft
22833
23158
  });
22834
- reactExports.useImperativeHandle(t, () => n.current, []), H(() => {
23159
+ reactExports.useImperativeHandle(t, () => n.current, []), q(() => {
22835
23160
  Object.assign(
22836
23161
  n.current,
22837
- Ve({ groupId: e })
23162
+ nt({ groupId: e })
22838
23163
  );
22839
23164
  });
22840
23165
  }
22841
- function Dt({
23166
+ function Ut({
22842
23167
  children: e,
22843
23168
  className: t,
22844
23169
  defaultLayout: n,
22845
23170
  disableCursor: o,
22846
23171
  disabled: i,
22847
23172
  elementRef: r,
22848
- groupRef: l,
22849
- id: s,
22850
- onLayoutChange: a,
22851
- onLayoutChanged: u,
22852
- orientation: c = "horizontal",
23173
+ groupRef: f,
23174
+ id: a,
23175
+ onLayoutChange: s,
23176
+ onLayoutChanged: l,
23177
+ orientation: u = "horizontal",
22853
23178
  resizeTargetMinimumSize: h = {
22854
23179
  coarse: 20,
22855
23180
  fine: 10
22856
23181
  },
22857
- style: y,
22858
- ...m
23182
+ style: d,
23183
+ ...S
22859
23184
  }) {
22860
- const f = reactExports.useRef({
23185
+ const z = reactExports.useRef({
22861
23186
  onLayoutChange: {},
22862
23187
  onLayoutChanged: {}
22863
- }), d = Z((b) => {
22864
- F(f.current.onLayoutChange, b) || (f.current.onLayoutChange = b, a?.(b));
22865
- }), p = Z((b) => {
22866
- F(f.current.onLayoutChanged, b) || (f.current.onLayoutChanged = b, u?.(b));
22867
- }), g = me(s), v = reactExports.useRef(null), [x, S] = Ye(), w = reactExports.useRef({
23188
+ }), c = se((x) => {
23189
+ W(z.current.onLayoutChange, x) || (z.current.onLayoutChange = x, s?.(x));
23190
+ }), p = se((x) => {
23191
+ W(z.current.onLayoutChanged, x) || (z.current.onLayoutChanged = x, l?.(x));
23192
+ }), m = Le(a), v = reactExports.useRef(null), [b, y] = Bt(), g = reactExports.useRef({
22868
23193
  lastExpandedPanelSizes: {},
22869
23194
  layouts: {},
22870
23195
  panels: [],
22871
23196
  resizeTargetMinimumSize: h,
22872
23197
  separators: []
22873
- }), C = ge(v, r);
22874
- It(g, l);
22875
- const P = Z(
22876
- (b, L) => {
22877
- const { interactionState: E, mountedGroups: ne } = G();
22878
- for (const oe of ne.keys())
22879
- if (oe.id === b) {
22880
- const K = ne.get(oe);
22881
- if (K) {
22882
- let X = false;
22883
- switch (E.state) {
22884
- case "active": {
22885
- X = E.hitRegions.some(
22886
- (le) => le.group === oe
22887
- );
22888
- break;
22889
- }
22890
- }
22891
- return {
22892
- flexGrow: K.layout[L] ?? 1,
22893
- pointerEvents: X ? "none" : void 0
22894
- };
23198
+ }), P = Ce(v, r);
23199
+ Wt(m, f);
23200
+ const M = se(
23201
+ (x, L) => {
23202
+ const k = K(), R = ke(x), E = H(x);
23203
+ if (E) {
23204
+ let D = false;
23205
+ switch (k.state) {
23206
+ case "active": {
23207
+ D = k.hitRegions.some(
23208
+ (V) => V.group === R
23209
+ );
23210
+ break;
22895
23211
  }
22896
23212
  }
22897
- return {
22898
- flexGrow: n?.[L] ?? 1
22899
- };
23213
+ return {
23214
+ flexGrow: E.layout[L] ?? 1,
23215
+ pointerEvents: D ? "none" : void 0
23216
+ };
23217
+ }
23218
+ if (n?.[L])
23219
+ return {
23220
+ flexGrow: n?.[L]
23221
+ };
22900
23222
  }
22901
- ), T = reactExports.useMemo(
23223
+ ), w = Re({
23224
+ defaultLayout: n,
23225
+ disableCursor: o
23226
+ }), G = reactExports.useMemo(
22902
23227
  () => ({
22903
- getPanelStyles: P,
22904
- id: g,
22905
- orientation: c,
22906
- registerPanel: (b) => {
22907
- const L = w.current;
22908
- return L.panels = de(c, [
23228
+ get disableCursor() {
23229
+ return !!w.disableCursor;
23230
+ },
23231
+ getPanelStyles: M,
23232
+ id: m,
23233
+ orientation: u,
23234
+ registerPanel: (x) => {
23235
+ const L = g.current;
23236
+ return L.panels = be(u, [
22909
23237
  ...L.panels,
22910
- b
22911
- ]), S(), () => {
23238
+ x
23239
+ ]), y(), () => {
22912
23240
  L.panels = L.panels.filter(
22913
- (E) => E !== b
22914
- ), S();
23241
+ (k) => k !== x
23242
+ ), y();
22915
23243
  };
22916
23244
  },
22917
- registerSeparator: (b) => {
22918
- const L = w.current;
22919
- return L.separators = de(c, [
23245
+ registerSeparator: (x) => {
23246
+ const L = g.current;
23247
+ return L.separators = be(u, [
22920
23248
  ...L.separators,
22921
- b
22922
- ]), S(), () => {
23249
+ x
23250
+ ]), y(), () => {
22923
23251
  L.separators = L.separators.filter(
22924
- (E) => E !== b
22925
- ), S();
23252
+ (k) => k !== x
23253
+ ), y();
22926
23254
  };
23255
+ },
23256
+ updatePanelProps: (x, { disabled: L }) => {
23257
+ const R = g.current.panels.find(
23258
+ (V) => V.id === x
23259
+ );
23260
+ R && (R.panelConstraints.disabled = L);
23261
+ const E = ke(m), D = H(m);
23262
+ E && D && $(E, {
23263
+ ...D,
23264
+ derivedPanelConstraints: ve(E)
23265
+ });
23266
+ },
23267
+ updateSeparatorProps: (x, {
23268
+ disabled: L,
23269
+ disableDoubleClick: k
23270
+ }) => {
23271
+ const E = g.current.separators.find(
23272
+ (D) => D.id === x
23273
+ );
23274
+ E && (E.disabled = L, E.disableDoubleClick = k);
22927
23275
  }
22928
23276
  }),
22929
- [P, g, S, c]
22930
- ), j = Gt({
22931
- defaultLayout: n,
22932
- disableCursor: o
22933
- }), O = reactExports.useRef(null);
22934
- return H(() => {
22935
- const b = v.current;
22936
- if (b === null)
23277
+ [M, m, y, u, w]
23278
+ ), N = reactExports.useRef(null);
23279
+ return q(() => {
23280
+ const x = v.current;
23281
+ if (x === null)
22937
23282
  return;
22938
- const L = w.current, E = {
22939
- defaultLayout: j.defaultLayout,
22940
- disableCursor: !!j.disableCursor,
23283
+ const L = g.current;
23284
+ let k;
23285
+ if (w.defaultLayout !== void 0 && Object.keys(w.defaultLayout).length === L.panels.length) {
23286
+ k = {};
23287
+ for (const j of L.panels) {
23288
+ const Y = w.defaultLayout[j.id];
23289
+ Y !== void 0 && (k[j.id] = Y);
23290
+ }
23291
+ }
23292
+ const R = {
22941
23293
  disabled: !!i,
22942
- element: b,
22943
- id: g,
22944
- inMemoryLastExpandedPanelSizes: w.current.lastExpandedPanelSizes,
22945
- inMemoryLayouts: w.current.layouts,
22946
- orientation: c,
23294
+ element: x,
23295
+ id: m,
23296
+ mutableState: {
23297
+ defaultLayout: k,
23298
+ disableCursor: !!w.disableCursor,
23299
+ expandedPanelSizes: g.current.lastExpandedPanelSizes,
23300
+ layouts: g.current.layouts
23301
+ },
23302
+ orientation: u,
22947
23303
  panels: L.panels,
22948
23304
  resizeTargetMinimumSize: L.resizeTargetMinimumSize,
22949
23305
  separators: L.separators
22950
23306
  };
22951
- O.current = E;
22952
- const ne = kt(E), K = G().mountedGroups.get(E);
22953
- if (K) {
22954
- const { defaultLayoutDeferred: q, derivedPanelConstraints: A, layout: V } = K;
22955
- !q && A.length > 0 && (d(V), p(V), L.panels.forEach((ue) => {
22956
- ue.scheduleUpdate();
22957
- }));
22958
- }
22959
- let X = false;
22960
- const le = N.addListener(
22961
- "interactionStateChange",
22962
- (q) => {
22963
- const A = q.state === "active";
22964
- X !== A && (X = A, L.panels.forEach((V) => {
22965
- V.scheduleUpdate();
22966
- }));
22967
- }
22968
- ), Je = N.addListener(
22969
- "mountedGroupsChange",
22970
- (q) => {
22971
- const A = q.get(E);
22972
- if (A) {
22973
- const { defaultLayoutDeferred: V, derivedPanelConstraints: ue, layout: Se } = A;
22974
- if (V || ue.length === 0)
22975
- return;
22976
- const { interactionState: Qe } = G(), et = Qe.state !== "active";
22977
- d(Se), et && p(Se), L.panels.forEach((tt) => {
22978
- tt.scheduleUpdate();
22979
- });
23307
+ N.current = R;
23308
+ const E = Vt(R), { defaultLayoutDeferred: D, derivedPanelConstraints: V, layout: ue } = H(R.id, true);
23309
+ !D && V.length > 0 && (c(ue), p(ue));
23310
+ const oe = ze(m, (j) => {
23311
+ const { defaultLayoutDeferred: Y, derivedPanelConstraints: Ee, layout: ce } = j.next;
23312
+ if (Y || Ee.length === 0)
23313
+ return;
23314
+ const ut = R.panels.map(({ id: _ }) => _).join(",");
23315
+ R.mutableState.layouts[ut] = ce, Ee.forEach((_) => {
23316
+ if (_.collapsible) {
23317
+ const { layout: ge } = j.prev ?? {};
23318
+ if (ge) {
23319
+ const ft = I(
23320
+ _.collapsedSize,
23321
+ ce[_.panelId]
23322
+ ), dt = I(
23323
+ _.collapsedSize,
23324
+ ge[_.panelId]
23325
+ );
23326
+ ft && !dt && (R.mutableState.expandedPanelSizes[_.panelId] = ge[_.panelId]);
23327
+ }
22980
23328
  }
22981
- }
22982
- );
23329
+ });
23330
+ const ct = K().state !== "active";
23331
+ c(ce), ct && p(ce);
23332
+ });
22983
23333
  return () => {
22984
- O.current = null, ne(), le(), Je();
23334
+ N.current = null, E(), oe();
22985
23335
  };
22986
23336
  }, [
22987
23337
  i,
22988
- g,
23338
+ m,
22989
23339
  p,
22990
- d,
22991
23340
  c,
22992
- x,
22993
- j
23341
+ u,
23342
+ b,
23343
+ w
22994
23344
  ]), reactExports.useEffect(() => {
22995
- const b = O.current;
22996
- b && (b.defaultLayout = n, b.disableCursor = !!o);
22997
- }), /* @__PURE__ */ jsxRuntimeExports.jsx(Ze.Provider, { value: T, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
23345
+ const x = N.current;
23346
+ x && (x.mutableState.defaultLayout = n, x.mutableState.disableCursor = !!o);
23347
+ }), /* @__PURE__ */ jsxRuntimeExports.jsx(lt.Provider, { value: G, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
22998
23348
  "div",
22999
23349
  {
23000
- ...m,
23350
+ ...S,
23001
23351
  className: t,
23002
23352
  "data-group": true,
23003
- "data-testid": g,
23004
- id: g,
23005
- ref: C,
23353
+ "data-testid": m,
23354
+ id: m,
23355
+ ref: P,
23006
23356
  style: {
23007
23357
  height: "100%",
23008
23358
  width: "100%",
23009
23359
  overflow: "hidden",
23010
- ...y,
23360
+ ...d,
23011
23361
  display: "flex",
23012
- flexDirection: c === "horizontal" ? "row" : "column",
23013
- flexWrap: "nowrap"
23362
+ flexDirection: u === "horizontal" ? "row" : "column",
23363
+ flexWrap: "nowrap",
23364
+ // Inform the browser that the library is handling touch events for this element
23365
+ // but still allow users to scroll content within panels in the non-resizing direction
23366
+ // NOTE This is not an inherited style
23367
+ // See github.com/bvaughn/react-resizable-panels/issues/662
23368
+ touchAction: u === "horizontal" ? "pan-y" : "pan-x"
23014
23369
  },
23015
23370
  children: e
23016
23371
  }
23017
23372
  ) });
23018
23373
  }
23019
- Dt.displayName = "Group";
23020
- function ye() {
23021
- const e = reactExports.useContext(Ze);
23022
- return z(
23374
+ Ut.displayName = "Group";
23375
+ function Me() {
23376
+ const e = reactExports.useContext(lt);
23377
+ return C(
23023
23378
  e,
23024
23379
  "Group Context not found; did you render a Panel or Separator outside of a Group?"
23025
23380
  ), e;
23026
23381
  }
23027
- function Ot(e, t) {
23028
- const { id: n } = ye(), o = reactExports.useRef({
23029
- collapse: ce,
23030
- expand: ce,
23382
+ function qt(e, t) {
23383
+ const { id: n } = Me(), o = reactExports.useRef({
23384
+ collapse: ye,
23385
+ expand: ye,
23031
23386
  getSize: () => ({
23032
23387
  asPercentage: 0,
23033
23388
  inPixels: 0
23034
23389
  }),
23035
23390
  isCollapsed: () => false,
23036
- resize: ce
23391
+ resize: ye
23037
23392
  });
23038
- reactExports.useImperativeHandle(t, () => o.current, []), H(() => {
23393
+ reactExports.useImperativeHandle(t, () => o.current, []), q(() => {
23039
23394
  Object.assign(
23040
23395
  o.current,
23041
- je({ groupId: n, panelId: e })
23396
+ tt({ groupId: n, panelId: e })
23042
23397
  );
23043
23398
  });
23044
23399
  }
23045
- function At({
23400
+ function Yt({
23046
23401
  children: e,
23047
23402
  className: t,
23048
23403
  collapsedSize: n = "0%",
23049
23404
  collapsible: o = false,
23050
23405
  defaultSize: i,
23051
- elementRef: r,
23052
- id: l,
23053
- maxSize: s = "100%",
23054
- minSize: a = "0%",
23055
- onResize: u,
23056
- panelRef: c,
23057
- style: h,
23058
- ...y
23406
+ disabled: r,
23407
+ elementRef: f,
23408
+ groupResizeBehavior: a = "preserve-relative-size",
23409
+ id: s,
23410
+ maxSize: l = "100%",
23411
+ minSize: u = "0%",
23412
+ onResize: h,
23413
+ panelRef: d,
23414
+ style: S,
23415
+ ...z
23059
23416
  }) {
23060
- const m = !!l, f = me(l), d = reactExports.useRef(null), p = ge(d, r), [, g] = Ye(), { getPanelStyles: v, id: x, registerPanel: S } = ye(), w = u !== null, C = Z(
23061
- (T, j, O) => {
23062
- u?.(T, l, O);
23417
+ const c = !!s, p = Le(s), m = Re({
23418
+ disabled: r
23419
+ }), v = reactExports.useRef(null), b = Ce(v, f), {
23420
+ getPanelStyles: y,
23421
+ id: g,
23422
+ orientation: P,
23423
+ registerPanel: M,
23424
+ updatePanelProps: w
23425
+ } = Me(), G = h !== null, N = se(
23426
+ (R, E, D) => {
23427
+ h?.(R, s, D);
23063
23428
  }
23064
23429
  );
23065
- H(() => {
23066
- const T = d.current;
23067
- if (T !== null)
23068
- return S({
23069
- element: T,
23070
- id: f,
23071
- idIsStable: m,
23430
+ q(() => {
23431
+ const R = v.current;
23432
+ if (R !== null) {
23433
+ const E = {
23434
+ element: R,
23435
+ id: p,
23436
+ idIsStable: c,
23072
23437
  mutableValues: {
23073
23438
  expandToSize: void 0,
23074
23439
  prevSize: void 0
23075
23440
  },
23076
- onResize: w ? C : void 0,
23441
+ onResize: G ? N : void 0,
23077
23442
  panelConstraints: {
23443
+ groupResizeBehavior: a,
23078
23444
  collapsedSize: n,
23079
23445
  collapsible: o,
23080
23446
  defaultSize: i,
23081
- maxSize: s,
23082
- minSize: a
23083
- },
23084
- scheduleUpdate: g
23085
- });
23447
+ disabled: m.disabled,
23448
+ maxSize: l,
23449
+ minSize: u
23450
+ }
23451
+ };
23452
+ return M(E);
23453
+ }
23086
23454
  }, [
23455
+ a,
23087
23456
  n,
23088
23457
  o,
23089
23458
  i,
23090
- g,
23091
- w,
23092
- f,
23093
- m,
23094
- s,
23095
- a,
23096
- C,
23097
- S
23098
- ]), Ot(f, c);
23099
- const P = v(x, f);
23100
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
23459
+ G,
23460
+ p,
23461
+ c,
23462
+ l,
23463
+ u,
23464
+ N,
23465
+ M,
23466
+ m
23467
+ ]), reactExports.useEffect(() => {
23468
+ w(p, { disabled: r });
23469
+ }, [r, p, w]), qt(p, d);
23470
+ const x = () => {
23471
+ const R = y(g, p);
23472
+ if (R)
23473
+ return JSON.stringify(R);
23474
+ }, L = reactExports.useSyncExternalStore(
23475
+ (R) => ze(g, R),
23476
+ x,
23477
+ x
23478
+ );
23479
+ let k;
23480
+ return L ? k = JSON.parse(L) : i ? k = {
23481
+ flexGrow: void 0,
23482
+ flexShrink: void 0,
23483
+ flexBasis: i
23484
+ } : k = { flexGrow: 1 }, /* @__PURE__ */ jsxRuntimeExports.jsx(
23101
23485
  "div",
23102
23486
  {
23103
- ...y,
23487
+ ...z,
23488
+ "data-disabled": r || void 0,
23104
23489
  "data-panel": true,
23105
- "data-testid": f,
23106
- id: f,
23107
- ref: p,
23490
+ "data-testid": p,
23491
+ id: p,
23492
+ ref: b,
23108
23493
  style: {
23109
- ..._t,
23494
+ ...Jt,
23110
23495
  display: "flex",
23111
23496
  flexBasis: 0,
23112
23497
  flexShrink: 1,
23113
- // Prevent Panel content from interfering with panel size
23114
- overflow: "hidden",
23115
- ...P
23498
+ overflow: "visible",
23499
+ ...k
23116
23500
  },
23117
23501
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(
23118
23502
  "div",
@@ -23122,7 +23506,13 @@ function At({
23122
23506
  maxHeight: "100%",
23123
23507
  maxWidth: "100%",
23124
23508
  flexGrow: 1,
23125
- ...h
23509
+ overflow: "auto",
23510
+ ...S,
23511
+ // Inform the browser that the library is handling touch events for this element
23512
+ // but still allow users to scroll content within panels in the non-resizing direction
23513
+ // NOTE This is not an inherited style
23514
+ // See github.com/bvaughn/react-resizable-panels/issues/662
23515
+ touchAction: P === "horizontal" ? "pan-y" : "pan-x"
23126
23516
  },
23127
23517
  children: e
23128
23518
  }
@@ -23130,8 +23520,8 @@ function At({
23130
23520
  }
23131
23521
  );
23132
23522
  }
23133
- At.displayName = "Panel";
23134
- const _t = {
23523
+ Yt.displayName = "Panel";
23524
+ const Jt = {
23135
23525
  minHeight: 0,
23136
23526
  maxHeight: "100%",
23137
23527
  height: "auto",
@@ -23143,33 +23533,33 @@ const _t = {
23143
23533
  padding: 0,
23144
23534
  margin: 0
23145
23535
  };
23146
- function Nt({
23536
+ function Zt({
23147
23537
  layout: e,
23148
23538
  panelConstraints: t,
23149
23539
  panelId: n,
23150
23540
  panelIndex: o
23151
23541
  }) {
23152
23542
  let i, r;
23153
- const l = e[n], s = t.find(
23154
- (a) => a.panelId === n
23543
+ const f = e[n], a = t.find(
23544
+ (s) => s.panelId === n
23155
23545
  );
23156
- if (s) {
23157
- const a = s.maxSize, u = s.collapsible ? s.collapsedSize : s.minSize, c = [o, o + 1];
23158
- r = $({
23159
- layout: te({
23160
- delta: u - l,
23546
+ if (a) {
23547
+ const s = a.maxSize, l = a.collapsible ? a.collapsedSize : a.minSize, u = [o, o + 1];
23548
+ r = U({
23549
+ layout: le({
23550
+ delta: l - f,
23161
23551
  initialLayout: e,
23162
23552
  panelConstraints: t,
23163
- pivotIndices: c,
23553
+ pivotIndices: u,
23164
23554
  prevLayout: e
23165
23555
  }),
23166
23556
  panelConstraints: t
23167
- })[n], i = $({
23168
- layout: te({
23169
- delta: a - l,
23557
+ })[n], i = U({
23558
+ layout: le({
23559
+ delta: s - f,
23170
23560
  initialLayout: e,
23171
23561
  panelConstraints: t,
23172
- pivotIndices: c,
23562
+ pivotIndices: u,
23173
23563
  prevLayout: e
23174
23564
  }),
23175
23565
  panelConstraints: t
@@ -23179,103 +23569,129 @@ function Nt({
23179
23569
  valueControls: n,
23180
23570
  valueMax: i,
23181
23571
  valueMin: r,
23182
- valueNow: l
23572
+ valueNow: f
23183
23573
  };
23184
23574
  }
23185
- function Ft({
23575
+ function Qt({
23186
23576
  children: e,
23187
23577
  className: t,
23188
- elementRef: n,
23189
- id: o,
23190
- style: i,
23191
- ...r
23578
+ disabled: n,
23579
+ disableDoubleClick: o,
23580
+ elementRef: i,
23581
+ id: r,
23582
+ style: f,
23583
+ ...a
23192
23584
  }) {
23193
- const l = me(o), [s, a] = reactExports.useState({}), [u, c] = reactExports.useState("inactive"), h = reactExports.useRef(null), y = ge(h, n), {
23194
- id: m,
23195
- orientation: f,
23196
- registerSeparator: d
23197
- } = ye(), p = f === "horizontal" ? "vertical" : "horizontal";
23198
- return H(() => {
23199
- const g = h.current;
23200
- if (g !== null) {
23201
- const v = {
23202
- element: g,
23203
- id: l
23204
- }, x = d(v), S = N.addListener(
23205
- "interactionStateChange",
23206
- (C) => {
23207
- c(
23208
- C.state !== "inactive" && C.hitRegions.some(
23209
- (P) => P.separator === v
23210
- ) ? C.state : "inactive"
23585
+ const s = Le(r), l = Re({
23586
+ disabled: n,
23587
+ disableDoubleClick: o
23588
+ }), [u, h] = reactExports.useState({}), [d, S] = reactExports.useState("inactive"), [z, c] = reactExports.useState(false), p = reactExports.useRef(null), m = Ce(p, i), {
23589
+ disableCursor: v,
23590
+ id: b,
23591
+ orientation: y,
23592
+ registerSeparator: g,
23593
+ updateSeparatorProps: P
23594
+ } = Me(), M = y === "horizontal" ? "vertical" : "horizontal";
23595
+ q(() => {
23596
+ const N = p.current;
23597
+ if (N !== null) {
23598
+ const x = {
23599
+ disabled: l.disabled,
23600
+ disableDoubleClick: l.disableDoubleClick,
23601
+ element: N,
23602
+ id: s
23603
+ }, L = g(x), k = Gt(
23604
+ (E) => {
23605
+ S(
23606
+ E.next.state !== "inactive" && E.next.hitRegions.some(
23607
+ (D) => D.separator === x
23608
+ ) ? E.next.state : "inactive"
23211
23609
  );
23212
23610
  }
23213
- ), w = N.addListener(
23214
- "mountedGroupsChange",
23215
- (C) => {
23216
- C.forEach(
23217
- ({ derivedPanelConstraints: P, layout: T, separatorToPanels: j }, O) => {
23218
- if (O.id === m) {
23219
- const b = j.get(v);
23220
- if (b) {
23221
- const L = b[0], E = O.panels.indexOf(L);
23222
- a(
23223
- Nt({
23224
- layout: T,
23225
- panelConstraints: P,
23226
- panelId: L.id,
23227
- panelIndex: E
23228
- })
23229
- );
23230
- }
23231
- }
23232
- }
23233
- );
23611
+ ), R = ze(
23612
+ b,
23613
+ (E) => {
23614
+ const { derivedPanelConstraints: D, layout: V, separatorToPanels: ue } = E.next, oe = ue.get(x);
23615
+ if (oe) {
23616
+ const j = oe[0], Y = oe.indexOf(j);
23617
+ h(
23618
+ Zt({
23619
+ layout: V,
23620
+ panelConstraints: D,
23621
+ panelId: j.id,
23622
+ panelIndex: Y
23623
+ })
23624
+ );
23625
+ }
23234
23626
  }
23235
23627
  );
23236
23628
  return () => {
23237
- S(), w(), x();
23629
+ k(), R(), L();
23238
23630
  };
23239
23631
  }
23240
- }, [m, l, d]), /* @__PURE__ */ jsxRuntimeExports.jsx(
23632
+ }, [b, s, g, l]), reactExports.useEffect(() => {
23633
+ P(s, { disabled: n, disableDoubleClick: o });
23634
+ }, [n, o, s, P]);
23635
+ let w;
23636
+ n && !v && (w = "not-allowed");
23637
+ let G;
23638
+ if (n)
23639
+ G = "disabled";
23640
+ else
23641
+ switch (d) {
23642
+ case "active": {
23643
+ G = "active";
23644
+ break;
23645
+ }
23646
+ default:
23647
+ z ? G = "focus" : G = d;
23648
+ }
23649
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
23241
23650
  "div",
23242
23651
  {
23243
- ...r,
23244
- "aria-controls": s.valueControls,
23245
- "aria-orientation": p,
23246
- "aria-valuemax": s.valueMax,
23247
- "aria-valuemin": s.valueMin,
23248
- "aria-valuenow": s.valueNow,
23652
+ ...a,
23653
+ "aria-controls": u.valueControls,
23654
+ "aria-disabled": n || void 0,
23655
+ "aria-orientation": M,
23656
+ "aria-valuemax": u.valueMax,
23657
+ "aria-valuemin": u.valueMin,
23658
+ "aria-valuenow": u.valueNow,
23249
23659
  children: e,
23250
23660
  className: t,
23251
- "data-separator": u,
23252
- "data-testid": l,
23253
- id: l,
23254
- ref: y,
23661
+ "data-separator": G,
23662
+ "data-testid": s,
23663
+ id: s,
23664
+ onBlur: () => c(false),
23665
+ onFocus: () => c(true),
23666
+ ref: m,
23255
23667
  role: "separator",
23256
23668
  style: {
23257
23669
  flexBasis: "auto",
23258
- ...i,
23670
+ cursor: w,
23671
+ ...f,
23259
23672
  flexGrow: 0,
23260
- flexShrink: 0
23673
+ flexShrink: 0,
23674
+ // Inform the browser that the library is handling touch events for this element
23675
+ // See github.com/bvaughn/react-resizable-panels/issues/662
23676
+ touchAction: "none"
23261
23677
  },
23262
- tabIndex: 0
23678
+ tabIndex: n ? void 0 : 0
23263
23679
  }
23264
23680
  );
23265
23681
  }
23266
- Ft.displayName = "Separator";
23682
+ Qt.displayName = "Separator";
23267
23683
 
23268
23684
  const ResizableGroup = (_a) => {
23269
23685
  var { className, dataTestId } = _a, props = __rest(_a, ["className", "dataTestId"]);
23270
- return (jsxRuntimeExports.jsx(Dt, Object.assign({ className: cn('flex h-full w-full', className), id: dataTestId }, props)));
23686
+ return (jsxRuntimeExports.jsx(Ut, Object.assign({ className: cn('flex h-full w-full', className), id: dataTestId }, props)));
23271
23687
  };
23272
23688
  const ResizablePanel = (_a) => {
23273
23689
  var { dataTestId } = _a, props = __rest(_a, ["dataTestId"]);
23274
- return (jsxRuntimeExports.jsx(At, Object.assign({ id: dataTestId }, props)));
23690
+ return (jsxRuntimeExports.jsx(Yt, Object.assign({ id: dataTestId }, props)));
23275
23691
  };
23276
23692
  const ResizableSeparator = (_a) => {
23277
23693
  var { withHandle, className, dataTestId } = _a, props = __rest(_a, ["withHandle", "className", "dataTestId"]);
23278
- return (jsxRuntimeExports.jsx(Ft, Object.assign({ className: cn('bg-border focus-visible:ring-ring relative flex w-px items-center justify-center after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-offset-1 focus-visible:outline-hidden', 'aria-[orientation=horizontal]:h-px aria-[orientation=horizontal]:w-full aria-[orientation=horizontal]:after:left-0 aria-[orientation=horizontal]:after:h-1 aria-[orientation=horizontal]:after:w-full aria-[orientation=horizontal]:after:translate-x-0 aria-[orientation=horizontal]:after:-translate-y-1/2 [&[aria-orientation=horizontal]>div]:rotate-90', className), id: dataTestId }, props, { children: withHandle && (jsxRuntimeExports.jsx("div", { className: "bg-border z-10 flex h-4 w-3 items-center justify-center rounded-xs border", "data-testid": `${dataTestId}-handle`, children: jsxRuntimeExports.jsx(GripVertical, { className: "h-2.5 w-2.5" }) })) })));
23694
+ return (jsxRuntimeExports.jsx(Qt, Object.assign({ className: cn('bg-border focus-visible:ring-ring relative flex w-px items-center justify-center after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-offset-1 focus-visible:outline-hidden', 'aria-[orientation=horizontal]:h-px aria-[orientation=horizontal]:w-full aria-[orientation=horizontal]:after:left-0 aria-[orientation=horizontal]:after:h-1 aria-[orientation=horizontal]:after:w-full aria-[orientation=horizontal]:after:translate-x-0 aria-[orientation=horizontal]:after:-translate-y-1/2 [&[aria-orientation=horizontal]>div]:rotate-90', className), id: dataTestId }, props, { children: withHandle && (jsxRuntimeExports.jsx("div", { className: "bg-border z-10 flex h-4 w-3 items-center justify-center rounded-xs border", "data-testid": `${dataTestId}-handle`, children: jsxRuntimeExports.jsx(GripVertical, { className: "h-2.5 w-2.5" }) })) })));
23279
23695
  };
23280
23696
  const Resizable = {
23281
23697
  Group: ResizableGroup,
@@ -24346,7 +24762,7 @@ const ToastAction = (_a) => {
24346
24762
  ToastAction.displayName = Action.displayName;
24347
24763
  const ToastClose = (_a) => {
24348
24764
  var { className, dataTestId = 'toast-close' } = _a, props = __rest(_a, ["className", "dataTestId"]);
24349
- return (jsxRuntimeExports.jsx(Close, Object.assign({ className: cn('text-foreground/50 hover:text-foreground absolute top-1 right-1 cursor-pointer rounded-md p-1 opacity-0 transition-opacity group-hover:opacity-100 focus:opacity-100 focus:ring-1 focus:outline-none', 'group-[.success]:text-green-300 group-[.success]:hover:text-green-50 group-[.success]:focus:ring-green-400 group-[.success]:focus:ring-offset-green-600', 'group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600', className), "toast-close": "", "data-testid": dataTestId }, props, { children: jsxRuntimeExports.jsx(X, { className: "h-4 w-4" }) })));
24765
+ return (jsxRuntimeExports.jsx(Close, Object.assign({ className: cn('text-foreground/50 hover:text-foreground absolute top-1 right-1 cursor-pointer rounded-md p-1 opacity-0 transition-opacity group-hover:opacity-100 focus:opacity-100 focus:ring-1 focus:outline-none', 'group-[.success]:text-green-300 group-[.success]:hover:text-green-50 group-[.success]:focus:ring-green-400 group-[.success]:focus:ring-offset-green-600', 'group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600', className), "toast-close": "", "data-testid": dataTestId }, props, { children: jsxRuntimeExports.jsx(X$1, { className: "h-4 w-4" }) })));
24350
24766
  };
24351
24767
  ToastClose.displayName = Close.displayName;
24352
24768
  const ToastTitle = (_a) => {