rei-kit 2.13.0 → 2.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -348,7 +348,7 @@ function useDragScroll(target) {
348
348
  }
349
349
  //#endregion
350
350
  //#region src/components/BaseAvatar.vue?vue&type=script&setup=true&lang.ts
351
- var _hoisted_1$40 = [
351
+ var _hoisted_1$41 = [
352
352
  "role",
353
353
  "aria-label",
354
354
  "aria-hidden"
@@ -413,7 +413,7 @@ var BaseAvatar_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
413
413
  d: "M3.75 17c0-3.05 2.8-5.25 6.25-5.25S16.25 13.95 16.25 17",
414
414
  "stroke-width": "1.5",
415
415
  "stroke-linecap": "round"
416
- }, null, -1)])]))], 10, _hoisted_1$40);
416
+ }, null, -1)])]))], 10, _hoisted_1$41);
417
417
  };
418
418
  }
419
419
  }), [["__scopeId", "data-v-47586bec"]]);
@@ -438,7 +438,7 @@ var BaseBadge_default = /* @__PURE__ */ defineComponent({
438
438
  });
439
439
  //#endregion
440
440
  //#region src/components/BaseMenu.vue?vue&type=script&setup=true&lang.ts
441
- var _hoisted_1$39 = [
441
+ var _hoisted_1$40 = [
442
442
  "aria-label",
443
443
  "aria-expanded",
444
444
  "aria-controls"
@@ -542,7 +542,7 @@ var BaseMenu_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
542
542
  "aria-haspopup": true,
543
543
  "aria-controls": open.value ? unref(id) : void 0,
544
544
  onClick: _cache[0] || (_cache[0] = ($event) => open.value = !open.value)
545
- }, [renderSlot(_ctx.$slots, "trigger", { open: open.value }, void 0, true)], 8, _hoisted_1$39), open.value ? (openBlock(), createElementBlock("div", {
545
+ }, [renderSlot(_ctx.$slots, "trigger", { open: open.value }, void 0, true)], 8, _hoisted_1$40), open.value ? (openBlock(), createElementBlock("div", {
546
546
  key: 0,
547
547
  id: unref(id),
548
548
  ref_key: "panel",
@@ -620,7 +620,7 @@ var BaseCard_default = /* @__PURE__ */ defineComponent({
620
620
  });
621
621
  //#endregion
622
622
  //#region src/components/BaseCombobox.vue?vue&type=script&setup=true&lang.ts
623
- var _hoisted_1$38 = ["for"];
623
+ var _hoisted_1$39 = ["for"];
624
624
  var _hoisted_2$32 = [
625
625
  "aria-label",
626
626
  "disabled",
@@ -871,7 +871,7 @@ var BaseCombobox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
871
871
  createElementVNode("label", {
872
872
  for: unref(id),
873
873
  class: "rk-combo-label"
874
- }, toDisplayString(__props.label), 9, _hoisted_1$38),
874
+ }, toDisplayString(__props.label), 9, _hoisted_1$39),
875
875
  createElementVNode("div", { class: normalizeClass(["rk-combo-field", multiple.value ? "is-multiple control" : ""]) }, [
876
876
  (openBlock(true), createElementBlock(Fragment, null, renderList(multiple.value ? chosenOptions.value : [], (option) => {
877
877
  return openBlock(), createElementBlock("span", {
@@ -974,7 +974,7 @@ var BaseCombobox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
974
974
  }), [["__scopeId", "data-v-aa2335fa"]]);
975
975
  //#endregion
976
976
  //#region src/components/BaseRadioGroup.vue?vue&type=script&setup=true&lang.ts
977
- var _hoisted_1$37 = ["aria-describedby"];
977
+ var _hoisted_1$38 = ["aria-describedby"];
978
978
  var _hoisted_2$31 = [
979
979
  "name",
980
980
  "value",
@@ -1035,13 +1035,13 @@ var BaseRadioGroup_default = /* @__PURE__ */ defineComponent({
1035
1035
  id: hintId,
1036
1036
  class: "text-ink-soft text-xs"
1037
1037
  }, toDisplayString(__props.hint), 1)) : createCommentVNode("", true)
1038
- ], 8, _hoisted_1$37);
1038
+ ], 8, _hoisted_1$38);
1039
1039
  };
1040
1040
  }
1041
1041
  });
1042
1042
  //#endregion
1043
1043
  //#region src/components/BaseSelect.vue?vue&type=script&setup=true&lang.ts
1044
- var _hoisted_1$36 = { class: "relative" };
1044
+ var _hoisted_1$37 = { class: "relative" };
1045
1045
  var _hoisted_2$30 = [
1046
1046
  "id",
1047
1047
  "aria-invalid",
@@ -1088,7 +1088,7 @@ var BaseSelect_default = /* @__PURE__ */ defineComponent({
1088
1088
  "label-hidden": __props.labelHidden,
1089
1089
  size: __props.size
1090
1090
  }, {
1091
- default: withCtx(({ id, describedBy, invalid }) => [createElementVNode("div", _hoisted_1$36, [withDirectives(createElementVNode("select", {
1091
+ default: withCtx(({ id, describedBy, invalid }) => [createElementVNode("div", _hoisted_1$37, [withDirectives(createElementVNode("select", {
1092
1092
  id,
1093
1093
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => model.value = $event),
1094
1094
  "aria-invalid": invalid,
@@ -1121,7 +1121,7 @@ var BaseSelect_default = /* @__PURE__ */ defineComponent({
1121
1121
  });
1122
1122
  //#endregion
1123
1123
  //#region src/components/BaseSlider.vue?vue&type=script&setup=true&lang.ts
1124
- var _hoisted_1$35 = { class: "rk-slider" };
1124
+ var _hoisted_1$36 = { class: "rk-slider" };
1125
1125
  var _hoisted_2$29 = { class: "rk-slider-head" };
1126
1126
  var _hoisted_3$18 = ["for"];
1127
1127
  var _hoisted_4$14 = ["for"];
@@ -1169,7 +1169,7 @@ var BaseSlider_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
1169
1169
  return span <= 0 ? 0 : (model.value - __props.min) / span * 100;
1170
1170
  });
1171
1171
  return (_ctx, _cache) => {
1172
- return openBlock(), createElementBlock("div", _hoisted_1$35, [
1172
+ return openBlock(), createElementBlock("div", _hoisted_1$36, [
1173
1173
  createElementVNode("div", _hoisted_2$29, [createElementVNode("label", {
1174
1174
  for: unref(id),
1175
1175
  class: "rk-slider-label"
@@ -1206,12 +1206,259 @@ var BaseSlider_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
1206
1206
  }
1207
1207
  }), [["__scopeId", "data-v-7fa2769b"]]);
1208
1208
  //#endregion
1209
+ //#region src/components/NumberInput.vue?vue&type=script&setup=true&lang.ts
1210
+ var _hoisted_1$35 = ["aria-label", "disabled"];
1211
+ var _hoisted_2$28 = [
1212
+ "id",
1213
+ "value",
1214
+ "aria-valuenow",
1215
+ "aria-valuemin",
1216
+ "aria-valuemax",
1217
+ "aria-invalid",
1218
+ "aria-describedby",
1219
+ "disabled"
1220
+ ];
1221
+ var _hoisted_3$17 = ["aria-label", "disabled"];
1222
+ //#endregion
1223
+ //#region src/components/NumberInput.vue
1224
+ var NumberInput_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
1225
+ __name: "NumberInput",
1226
+ props: /*@__PURE__*/ mergeModels({
1227
+ label: {},
1228
+ min: { default: () => -Infinity },
1229
+ max: { default: () => Infinity },
1230
+ step: { default: 1 },
1231
+ decrementLabel: {},
1232
+ incrementLabel: {},
1233
+ error: { default: "" },
1234
+ hint: { default: "" },
1235
+ size: { default: "md" },
1236
+ labelHidden: {
1237
+ type: Boolean,
1238
+ default: false
1239
+ },
1240
+ disabled: {
1241
+ type: Boolean,
1242
+ default: false
1243
+ }
1244
+ }, {
1245
+ "modelValue": {},
1246
+ "modelModifiers": {}
1247
+ }),
1248
+ emits: ["update:modelValue"],
1249
+ setup(__props) {
1250
+ /** The number, with `v-model`. `undefined` while the field is empty. */
1251
+ const model = useModel(__props, "modelValue");
1252
+ const places = computed(() => (String(__props.step).split(".")[1] ?? "").length);
1253
+ const settle = (value) => Number(Math.min(__props.max, Math.max(__props.min, value)).toFixed(Math.min(places.value, 20)));
1254
+ const draft = ref(model.value === void 0 ? "" : String(model.value));
1255
+ watch(model, (value) => {
1256
+ if ((draft.value === "" ? void 0 : Number(draft.value)) !== value) draft.value = value === void 0 ? "" : String(value);
1257
+ });
1258
+ function onInput(event) {
1259
+ const text = event.target.value.replace(",", ".");
1260
+ draft.value = text;
1261
+ if (text.trim() === "") {
1262
+ model.value = void 0;
1263
+ return;
1264
+ }
1265
+ const value = Number(text);
1266
+ if (Number.isFinite(value)) model.value = value;
1267
+ }
1268
+ function commit() {
1269
+ if (model.value === void 0) {
1270
+ draft.value = "";
1271
+ return;
1272
+ }
1273
+ setTo(model.value);
1274
+ }
1275
+ function setTo(value) {
1276
+ model.value = settle(value);
1277
+ draft.value = String(model.value);
1278
+ }
1279
+ function stepBy(times) {
1280
+ if (__props.disabled) return;
1281
+ setTo((model.value ?? (Number.isFinite(__props.min) ? __props.min : 0)) + __props.step * times);
1282
+ }
1283
+ function onKeydown(event) {
1284
+ const action = {
1285
+ ArrowUp: () => stepBy(1),
1286
+ ArrowDown: () => stepBy(-1),
1287
+ PageUp: () => stepBy(10),
1288
+ PageDown: () => stepBy(-10),
1289
+ Home: () => {
1290
+ if (Number.isFinite(__props.min)) setTo(__props.min);
1291
+ },
1292
+ End: () => {
1293
+ if (Number.isFinite(__props.max)) setTo(__props.max);
1294
+ }
1295
+ }[event.key];
1296
+ if (!action) return;
1297
+ event.preventDefault();
1298
+ action();
1299
+ }
1300
+ const atMin = computed(() => model.value !== void 0 && model.value <= __props.min);
1301
+ const atMax = computed(() => model.value !== void 0 && model.value >= __props.max);
1302
+ return (_ctx, _cache) => {
1303
+ return openBlock(), createBlock(FormField_default, {
1304
+ label: __props.label,
1305
+ error: __props.error,
1306
+ hint: __props.hint,
1307
+ size: __props.size,
1308
+ "label-hidden": __props.labelHidden
1309
+ }, {
1310
+ default: withCtx(({ id, describedBy, invalid }) => [createElementVNode("div", { class: normalizeClass(["rk-number control", {
1311
+ "is-invalid": invalid,
1312
+ "is-disabled": __props.disabled
1313
+ }]) }, [
1314
+ createElementVNode("button", {
1315
+ type: "button",
1316
+ class: "rk-number-step focus-ring",
1317
+ "aria-label": __props.decrementLabel,
1318
+ disabled: __props.disabled || atMin.value,
1319
+ tabindex: "-1",
1320
+ onClick: _cache[0] || (_cache[0] = ($event) => stepBy(-1))
1321
+ }, [createVNode(unref(Minus), {
1322
+ class: "size-4",
1323
+ "aria-hidden": "true"
1324
+ })], 8, _hoisted_1$35),
1325
+ createElementVNode("input", {
1326
+ id,
1327
+ value: draft.value,
1328
+ type: "text",
1329
+ inputmode: "decimal",
1330
+ role: "spinbutton",
1331
+ autocomplete: "off",
1332
+ class: "rk-number-field",
1333
+ "aria-valuenow": model.value,
1334
+ "aria-valuemin": Number.isFinite(__props.min) ? __props.min : void 0,
1335
+ "aria-valuemax": Number.isFinite(__props.max) ? __props.max : void 0,
1336
+ "aria-invalid": invalid,
1337
+ "aria-describedby": describedBy,
1338
+ disabled: __props.disabled,
1339
+ onInput,
1340
+ onBlur: commit,
1341
+ onKeydown
1342
+ }, null, 40, _hoisted_2$28),
1343
+ createElementVNode("button", {
1344
+ type: "button",
1345
+ class: "rk-number-step focus-ring",
1346
+ "aria-label": __props.incrementLabel,
1347
+ disabled: __props.disabled || atMax.value,
1348
+ tabindex: "-1",
1349
+ onClick: _cache[1] || (_cache[1] = ($event) => stepBy(1))
1350
+ }, [createVNode(unref(Plus), {
1351
+ class: "size-4",
1352
+ "aria-hidden": "true"
1353
+ })], 8, _hoisted_3$17)
1354
+ ], 2)]),
1355
+ _: 1
1356
+ }, 8, [
1357
+ "label",
1358
+ "error",
1359
+ "hint",
1360
+ "size",
1361
+ "label-hidden"
1362
+ ]);
1363
+ };
1364
+ }
1365
+ }), [["__scopeId", "data-v-082bd3d7"]]);
1366
+ //#endregion
1367
+ //#region src/components/SliderField.vue?vue&type=script&setup=true&lang.ts
1368
+ var _hoisted_1$34 = { class: "rk-slider-field" };
1369
+ //#endregion
1370
+ //#region src/components/SliderField.vue
1371
+ var SliderField_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
1372
+ __name: "SliderField",
1373
+ props: /*@__PURE__*/ mergeModels({
1374
+ label: {},
1375
+ min: { default: 0 },
1376
+ max: { default: 100 },
1377
+ step: { default: 1 },
1378
+ decrementLabel: {},
1379
+ incrementLabel: {},
1380
+ hint: { default: "" },
1381
+ disabled: {
1382
+ type: Boolean,
1383
+ default: false
1384
+ },
1385
+ format: { type: Function }
1386
+ }, {
1387
+ "modelValue": { default: 0 },
1388
+ "modelModifiers": {}
1389
+ }),
1390
+ emits: ["update:modelValue"],
1391
+ setup(__props) {
1392
+ const model = useModel(__props, "modelValue");
1393
+ /**
1394
+ * The field's own binding, which can be emptied; the pair's cannot.
1395
+ *
1396
+ * `NumberInput` hands back `undefined` while the field is empty, because
1397
+ * halfway through typing a number there is no number. A slider has no such
1398
+ * state — the thumb is always somewhere — so an empty field leaves the value
1399
+ * where it was until something is typed, rather than dragging the thumb to
1400
+ * zero the moment the last digit is deleted.
1401
+ */
1402
+ const typed = computed({
1403
+ get: () => model.value,
1404
+ set: (value) => {
1405
+ if (value !== void 0) model.value = value;
1406
+ }
1407
+ });
1408
+ return (_ctx, _cache) => {
1409
+ return openBlock(), createElementBlock("div", _hoisted_1$34, [createVNode(BaseSlider_default, {
1410
+ modelValue: model.value,
1411
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => model.value = $event),
1412
+ label: __props.label,
1413
+ min: __props.min,
1414
+ max: __props.max,
1415
+ step: __props.step,
1416
+ hint: __props.hint,
1417
+ disabled: __props.disabled,
1418
+ format: __props.format,
1419
+ "show-value": false
1420
+ }, null, 8, [
1421
+ "modelValue",
1422
+ "label",
1423
+ "min",
1424
+ "max",
1425
+ "step",
1426
+ "hint",
1427
+ "disabled",
1428
+ "format"
1429
+ ]), createVNode(NumberInput_default, {
1430
+ modelValue: typed.value,
1431
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => typed.value = $event),
1432
+ class: "rk-slider-field-number",
1433
+ label: __props.label,
1434
+ "label-hidden": "",
1435
+ min: __props.min,
1436
+ max: __props.max,
1437
+ step: __props.step,
1438
+ "decrement-label": __props.decrementLabel,
1439
+ "increment-label": __props.incrementLabel,
1440
+ disabled: __props.disabled,
1441
+ size: "sm"
1442
+ }, null, 8, [
1443
+ "modelValue",
1444
+ "label",
1445
+ "min",
1446
+ "max",
1447
+ "step",
1448
+ "decrement-label",
1449
+ "increment-label",
1450
+ "disabled"
1451
+ ])]);
1452
+ };
1453
+ }
1454
+ }), [["__scopeId", "data-v-6ec3163a"]]);
1455
+ //#endregion
1209
1456
  //#region src/components/BaseSpinner.vue?vue&type=script&setup=true&lang.ts
1210
- var _hoisted_1$34 = {
1457
+ var _hoisted_1$33 = {
1211
1458
  class: "rk-spin-wrap",
1212
1459
  role: "status"
1213
1460
  };
1214
- var _hoisted_2$28 = { class: "rk-spin-label" };
1461
+ var _hoisted_2$27 = { class: "rk-spin-label" };
1215
1462
  //#endregion
1216
1463
  //#region src/components/BaseSpinner.vue
1217
1464
  var BaseSpinner_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
@@ -1239,25 +1486,25 @@ var BaseSpinner_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
1239
1486
  lg: "2.5rem"
1240
1487
  };
1241
1488
  return (_ctx, _cache) => {
1242
- return openBlock(), createElementBlock("span", _hoisted_1$34, [createElementVNode("span", {
1489
+ return openBlock(), createElementBlock("span", _hoisted_1$33, [createElementVNode("span", {
1243
1490
  class: "rk-spin",
1244
1491
  style: normalizeStyle({
1245
1492
  width: SIZES[__props.size],
1246
1493
  height: SIZES[__props.size]
1247
1494
  }),
1248
1495
  "aria-hidden": "true"
1249
- }, null, 4), createElementVNode("span", _hoisted_2$28, toDisplayString(__props.label), 1)]);
1496
+ }, null, 4), createElementVNode("span", _hoisted_2$27, toDisplayString(__props.label), 1)]);
1250
1497
  };
1251
1498
  }
1252
1499
  }), [["__scopeId", "data-v-842da62c"]]);
1253
1500
  //#endregion
1254
1501
  //#region src/components/BaseSwitch.vue?vue&type=script&setup=true&lang.ts
1255
- var _hoisted_1$33 = { class: "flex items-center justify-between gap-4" };
1256
- var _hoisted_2$27 = {
1502
+ var _hoisted_1$32 = { class: "flex items-center justify-between gap-4" };
1503
+ var _hoisted_2$26 = {
1257
1504
  key: 0,
1258
1505
  class: "min-w-0"
1259
1506
  };
1260
- var _hoisted_3$17 = ["id"];
1507
+ var _hoisted_3$16 = ["id"];
1261
1508
  var _hoisted_4$13 = [
1262
1509
  "aria-checked",
1263
1510
  "aria-labelledby",
@@ -1297,10 +1544,10 @@ var BaseSwitch_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
1297
1544
  if (!__props.disabled) model.value = !model.value;
1298
1545
  }
1299
1546
  return (_ctx, _cache) => {
1300
- return openBlock(), createElementBlock("div", _hoisted_1$33, [!__props.labelHidden ? (openBlock(), createElementBlock("span", _hoisted_2$27, [createElementVNode("span", {
1547
+ return openBlock(), createElementBlock("div", _hoisted_1$32, [!__props.labelHidden ? (openBlock(), createElementBlock("span", _hoisted_2$26, [createElementVNode("span", {
1301
1548
  id: unref(id),
1302
1549
  class: "text-ink block text-sm"
1303
- }, toDisplayString(__props.label), 9, _hoisted_3$17), __props.hint ? (openBlock(), createElementBlock("span", {
1550
+ }, toDisplayString(__props.label), 9, _hoisted_3$16), __props.hint ? (openBlock(), createElementBlock("span", {
1304
1551
  key: 0,
1305
1552
  id: hintId,
1306
1553
  class: "text-ink-soft mt-0.5 block text-xs"
@@ -1323,9 +1570,9 @@ var BaseSwitch_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
1323
1570
  }), [["__scopeId", "data-v-3f4400a0"]]);
1324
1571
  //#endregion
1325
1572
  //#region src/components/BaseTable.vue?vue&type=script&setup=true&lang.ts
1326
- var _hoisted_1$32 = ["aria-label"];
1327
- var _hoisted_2$26 = { class: "rk-table" };
1328
- var _hoisted_3$16 = { key: 0 };
1573
+ var _hoisted_1$31 = ["aria-label"];
1574
+ var _hoisted_2$25 = { class: "rk-table" };
1575
+ var _hoisted_3$15 = { key: 0 };
1329
1576
  var _hoisted_4$12 = { key: 1 };
1330
1577
  var _hoisted_5$7 = ["colspan"];
1331
1578
  //#endregion
@@ -1350,7 +1597,7 @@ var BaseTable_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
1350
1597
  tabindex: "0",
1351
1598
  role: "region",
1352
1599
  "aria-label": __props.caption
1353
- }, [createElementVNode("table", _hoisted_2$26, [
1600
+ }, [createElementVNode("table", _hoisted_2$25, [
1354
1601
  createElementVNode("caption", { class: normalizeClass(__props.captionHidden ? "rk-table-caption-hidden" : "rk-table-caption") }, toDisplayString(__props.caption), 3),
1355
1602
  createElementVNode("thead", null, [createElementVNode("tr", null, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.columns, (column) => {
1356
1603
  return openBlock(), createElementBlock("th", {
@@ -1359,7 +1606,7 @@ var BaseTable_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
1359
1606
  class: normalizeClass([column.align && `is-${column.align}`, column.nowrap && "is-nowrap"])
1360
1607
  }, toDisplayString(column.label), 3);
1361
1608
  }), 128))])]),
1362
- __props.rows.length > 0 ? (openBlock(), createElementBlock("tbody", _hoisted_3$16, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.rows, (row, index) => {
1609
+ __props.rows.length > 0 ? (openBlock(), createElementBlock("tbody", _hoisted_3$15, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.rows, (row, index) => {
1363
1610
  return openBlock(), createElementBlock("tr", { key: keyFor(row, index) }, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.columns, (column) => {
1364
1611
  return openBlock(), createElementBlock("td", {
1365
1612
  key: column.key,
@@ -1373,13 +1620,13 @@ var BaseTable_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
1373
1620
  colspan: __props.columns.length,
1374
1621
  class: "rk-table-empty"
1375
1622
  }, [renderSlot(_ctx.$slots, "empty", {}, void 0, true)], 8, _hoisted_5$7)])]))
1376
- ])], 8, _hoisted_1$32);
1623
+ ])], 8, _hoisted_1$31);
1377
1624
  };
1378
1625
  }
1379
1626
  }), [["__scopeId", "data-v-ab10e9fa"]]);
1380
1627
  //#endregion
1381
1628
  //#region src/components/BaseTextarea.vue?vue&type=script&setup=true&lang.ts
1382
- var _hoisted_1$31 = [
1629
+ var _hoisted_1$30 = [
1383
1630
  "id",
1384
1631
  "rows",
1385
1632
  "aria-invalid",
@@ -1425,7 +1672,7 @@ var BaseTextarea_default = /* @__PURE__ */ defineComponent({
1425
1672
  __props.variant === "unstyled" ? "" : "control text-ink rounded-card focus-visible:outline-primary resize-y px-3 py-2 leading-relaxed focus-visible:outline-2 focus-visible:outline-offset-1",
1426
1673
  "text-base",
1427
1674
  __props.variant !== "unstyled" && invalid ? "border-negative" : ""
1428
- ] }), null, 16, _hoisted_1$31), [[vModelText, unref(model)]])]),
1675
+ ] }), null, 16, _hoisted_1$30), [[vModelText, unref(model)]])]),
1429
1676
  _: 1
1430
1677
  }, 8, [
1431
1678
  "label",
@@ -1439,12 +1686,12 @@ var BaseTextarea_default = /* @__PURE__ */ defineComponent({
1439
1686
  });
1440
1687
  //#endregion
1441
1688
  //#region src/components/EmptyState.vue?vue&type=script&setup=true&lang.ts
1442
- var _hoisted_1$30 = { class: "flex flex-col items-center gap-3 px-6 py-10 text-center" };
1443
- var _hoisted_2$25 = {
1689
+ var _hoisted_1$29 = { class: "flex flex-col items-center gap-3 px-6 py-10 text-center" };
1690
+ var _hoisted_2$24 = {
1444
1691
  key: 0,
1445
1692
  class: "bg-muted text-primary rounded-card flex size-12 items-center justify-center"
1446
1693
  };
1447
- var _hoisted_3$15 = { class: "text-ink text-base font-semibold" };
1694
+ var _hoisted_3$14 = { class: "text-ink text-base font-semibold" };
1448
1695
  var _hoisted_4$11 = {
1449
1696
  key: 1,
1450
1697
  class: "text-ink-soft max-w-[36ch] text-sm"
@@ -1471,9 +1718,9 @@ var EmptyState_default = /* @__PURE__ */ defineComponent({
1471
1718
  * goes — the button that creates the first one.
1472
1719
  */
1473
1720
  return (_ctx, _cache) => {
1474
- return openBlock(), createElementBlock("div", _hoisted_1$30, [
1475
- _ctx.$slots.icon ? (openBlock(), createElementBlock("div", _hoisted_2$25, [renderSlot(_ctx.$slots, "icon")])) : createCommentVNode("", true),
1476
- createElementVNode("h3", _hoisted_3$15, toDisplayString(__props.title), 1),
1721
+ return openBlock(), createElementBlock("div", _hoisted_1$29, [
1722
+ _ctx.$slots.icon ? (openBlock(), createElementBlock("div", _hoisted_2$24, [renderSlot(_ctx.$slots, "icon")])) : createCommentVNode("", true),
1723
+ createElementVNode("h3", _hoisted_3$14, toDisplayString(__props.title), 1),
1477
1724
  __props.description ? (openBlock(), createElementBlock("p", _hoisted_4$11, toDisplayString(__props.description), 1)) : createCommentVNode("", true),
1478
1725
  _ctx.$slots.action ? (openBlock(), createElementBlock("div", _hoisted_5$6, [renderSlot(_ctx.$slots, "action")])) : createCommentVNode("", true)
1479
1726
  ]);
@@ -1542,9 +1789,9 @@ var PageContainer_default = /* @__PURE__ */ defineComponent({
1542
1789
  });
1543
1790
  //#endregion
1544
1791
  //#region src/components/PageHeader.vue?vue&type=script&setup=true&lang.ts
1545
- var _hoisted_1$29 = { class: "grid h-12 shrink-0 grid-cols-[2.5rem_1fr_2.5rem] items-center" };
1546
- var _hoisted_2$24 = { class: "justify-self-start" };
1547
- var _hoisted_3$14 = { class: "text-ink flex min-w-0 justify-center text-base font-semibold tabular-nums" };
1792
+ var _hoisted_1$28 = { class: "grid h-12 shrink-0 grid-cols-[2.5rem_1fr_2.5rem] items-center" };
1793
+ var _hoisted_2$23 = { class: "justify-self-start" };
1794
+ var _hoisted_3$13 = { class: "text-ink flex min-w-0 justify-center text-base font-semibold tabular-nums" };
1548
1795
  var _hoisted_4$10 = { class: "truncate" };
1549
1796
  var _hoisted_5$5 = { class: "justify-self-end" };
1550
1797
  //#endregion
@@ -1563,9 +1810,9 @@ var PageHeader_default = /* @__PURE__ */ defineComponent({
1563
1810
  * each other.
1564
1811
  */
1565
1812
  return (_ctx, _cache) => {
1566
- return openBlock(), createElementBlock("header", _hoisted_1$29, [
1567
- createElementVNode("div", _hoisted_2$24, [renderSlot(_ctx.$slots, "left")]),
1568
- createElementVNode("h1", _hoisted_3$14, [renderSlot(_ctx.$slots, "title", {}, () => [createElementVNode("span", _hoisted_4$10, toDisplayString(__props.title), 1)])]),
1813
+ return openBlock(), createElementBlock("header", _hoisted_1$28, [
1814
+ createElementVNode("div", _hoisted_2$23, [renderSlot(_ctx.$slots, "left")]),
1815
+ createElementVNode("h1", _hoisted_3$13, [renderSlot(_ctx.$slots, "title", {}, () => [createElementVNode("span", _hoisted_4$10, toDisplayString(__props.title), 1)])]),
1569
1816
  createElementVNode("div", _hoisted_5$5, [renderSlot(_ctx.$slots, "right")])
1570
1817
  ]);
1571
1818
  };
@@ -1573,7 +1820,7 @@ var PageHeader_default = /* @__PURE__ */ defineComponent({
1573
1820
  });
1574
1821
  //#endregion
1575
1822
  //#region src/components/ProgressBar.vue?vue&type=script&setup=true&lang.ts
1576
- var _hoisted_1$28 = ["aria-valuenow", "aria-label"];
1823
+ var _hoisted_1$27 = ["aria-valuenow", "aria-label"];
1577
1824
  //#endregion
1578
1825
  //#region src/components/ProgressBar.vue
1579
1826
  var ProgressBar_default = /* @__PURE__ */ defineComponent({
@@ -1605,18 +1852,18 @@ var ProgressBar_default = /* @__PURE__ */ defineComponent({
1605
1852
  }, [createElementVNode("div", {
1606
1853
  class: "bg-primary h-full rounded-full transition-[width] duration-700 ease-out",
1607
1854
  style: normalizeStyle({ width: `${portion.value}%` })
1608
- }, null, 4)], 10, _hoisted_1$28);
1855
+ }, null, 4)], 10, _hoisted_1$27);
1609
1856
  };
1610
1857
  }
1611
1858
  });
1612
1859
  //#endregion
1613
1860
  //#region src/components/PriceCard.vue?vue&type=script&setup=true&lang.ts
1614
- var _hoisted_1$27 = {
1861
+ var _hoisted_1$26 = {
1615
1862
  key: 0,
1616
1863
  class: "bg-primary rounded-cell text-on-primary absolute -top-3 left-7 px-3 py-1 text-[0.7rem] font-semibold"
1617
1864
  };
1618
- var _hoisted_2$23 = { class: "flex items-start justify-between gap-4" };
1619
- var _hoisted_3$13 = { class: "text-ink mt-5 text-lg font-semibold" };
1865
+ var _hoisted_2$22 = { class: "flex items-start justify-between gap-4" };
1866
+ var _hoisted_3$12 = { class: "text-ink mt-5 text-lg font-semibold" };
1620
1867
  var _hoisted_4$9 = {
1621
1868
  key: 1,
1622
1869
  class: "text-ink-soft mt-1.5 text-sm leading-relaxed"
@@ -1686,15 +1933,15 @@ var PriceCard_default = /* @__PURE__ */ defineComponent({
1686
1933
  const palette = computed(() => TONE[__props.tone]);
1687
1934
  return (_ctx, _cache) => {
1688
1935
  return openBlock(), createElementBlock("article", { class: normalizeClass(["surface rounded-card ease-standard relative flex h-full flex-col p-7 transition-[border-color,box-shadow,transform] duration-(--duration-slower) hover:[--surface-border-color:color-mix(in_oklab,var(--color-primary)_60%,transparent)] hover:[--surface-shadow:var(--shadow-raised)] sm:p-8", [palette.value.ring, __props.recommended ? "[--surface-shadow:var(--shadow-raised)]" : "hover:-translate-y-0.5"]]) }, [
1689
- __props.badge && __props.recommended ? (openBlock(), createElementBlock("span", _hoisted_1$27, toDisplayString(__props.badge), 1)) : createCommentVNode("", true),
1690
- createElementVNode("div", _hoisted_2$23, [_ctx.$slots.icon ? (openBlock(), createElementBlock("span", {
1936
+ __props.badge && __props.recommended ? (openBlock(), createElementBlock("span", _hoisted_1$26, toDisplayString(__props.badge), 1)) : createCommentVNode("", true),
1937
+ createElementVNode("div", _hoisted_2$22, [_ctx.$slots.icon ? (openBlock(), createElementBlock("span", {
1691
1938
  key: 0,
1692
1939
  class: normalizeClass(["rounded-card grid size-11 place-items-center text-xl", palette.value.icon])
1693
1940
  }, [renderSlot(_ctx.$slots, "icon")], 2)) : createCommentVNode("", true), __props.chip ? (openBlock(), createElementBlock("span", {
1694
1941
  key: 1,
1695
1942
  class: normalizeClass(["rounded-cell ml-auto px-2.5 py-1 text-[0.7rem] font-medium", palette.value.soft])
1696
1943
  }, toDisplayString(__props.chip), 3)) : createCommentVNode("", true)]),
1697
- createElementVNode("h3", _hoisted_3$13, toDisplayString(__props.name), 1),
1944
+ createElementVNode("h3", _hoisted_3$12, toDisplayString(__props.name), 1),
1698
1945
  __props.lead ? (openBlock(), createElementBlock("p", _hoisted_4$9, toDisplayString(__props.lead), 1)) : createCommentVNode("", true),
1699
1946
  createElementVNode("p", _hoisted_5$4, [createElementVNode("span", _hoisted_6$4, toDisplayString(__props.price), 1), __props.period ? (openBlock(), createElementBlock("span", _hoisted_7$3, toDisplayString(__props.period), 1)) : createCommentVNode("", true)]),
1700
1947
  __props.note ? (openBlock(), createElementBlock("p", _hoisted_8$2, toDisplayString(__props.note), 1)) : createCommentVNode("", true),
@@ -1711,8 +1958,8 @@ var PriceCard_default = /* @__PURE__ */ defineComponent({
1711
1958
  });
1712
1959
  //#endregion
1713
1960
  //#region src/components/ToneDot.vue?vue&type=script&setup=true&lang.ts
1714
- var _hoisted_1$26 = { class: "inline-flex items-center gap-1.5" };
1715
- var _hoisted_2$22 = {
1961
+ var _hoisted_1$25 = { class: "inline-flex items-center gap-1.5" };
1962
+ var _hoisted_2$21 = {
1716
1963
  key: 0,
1717
1964
  class: "text-ink-soft text-xs font-medium"
1718
1965
  };
@@ -1733,13 +1980,13 @@ var ToneDot_default = /* @__PURE__ */ defineComponent({
1733
1980
  * priorities — without this component knowing about any of them.
1734
1981
  */
1735
1982
  return (_ctx, _cache) => {
1736
- return openBlock(), createElementBlock("span", _hoisted_1$26, [createElementVNode("span", { class: normalizeClass(["size-2 rounded-full", __props.fill]) }, null, 2), __props.label ? (openBlock(), createElementBlock("span", _hoisted_2$22, toDisplayString(__props.label), 1)) : createCommentVNode("", true)]);
1983
+ return openBlock(), createElementBlock("span", _hoisted_1$25, [createElementVNode("span", { class: normalizeClass(["size-2 rounded-full", __props.fill]) }, null, 2), __props.label ? (openBlock(), createElementBlock("span", _hoisted_2$21, toDisplayString(__props.label), 1)) : createCommentVNode("", true)]);
1737
1984
  };
1738
1985
  }
1739
1986
  });
1740
1987
  //#endregion
1741
1988
  //#region src/components/SectionHeading.vue?vue&type=script&setup=true&lang.ts
1742
- var _hoisted_1$25 = {
1989
+ var _hoisted_1$24 = {
1743
1990
  key: 0,
1744
1991
  class: "text-ink-soft text-xs tabular-nums"
1745
1992
  };
@@ -1757,15 +2004,15 @@ var SectionHeading_default = /* @__PURE__ */ defineComponent({
1757
2004
  return openBlock(), createElementBlock("h2", { class: normalizeClass(["flex w-fit items-center gap-2 self-start rounded-full border px-3 py-1", __props.tone.card]) }, [
1758
2005
  createVNode(ToneDot_default, { fill: __props.tone.fill }, null, 8, ["fill"]),
1759
2006
  createElementVNode("span", { class: normalizeClass(["text-xs font-semibold tracking-wide uppercase", __props.tone.text]) }, toDisplayString(__props.label), 3),
1760
- __props.count > 0 ? (openBlock(), createElementBlock("span", _hoisted_1$25, toDisplayString(__props.count), 1)) : createCommentVNode("", true)
2007
+ __props.count > 0 ? (openBlock(), createElementBlock("span", _hoisted_1$24, toDisplayString(__props.count), 1)) : createCommentVNode("", true)
1761
2008
  ], 2);
1762
2009
  };
1763
2010
  }
1764
2011
  });
1765
2012
  //#endregion
1766
2013
  //#region src/components/SegmentedControl.vue?vue&type=script&setup=true&lang.ts
1767
- var _hoisted_1$24 = { class: "bg-muted rounded-card flex w-full gap-1 p-1" };
1768
- var _hoisted_2$21 = ["value", "name"];
2014
+ var _hoisted_1$23 = { class: "bg-muted rounded-card flex w-full gap-1 p-1" };
2015
+ var _hoisted_2$20 = ["value", "name"];
1769
2016
  //#endregion
1770
2017
  //#region src/components/SegmentedControl.vue
1771
2018
  var SegmentedControl_default = /* @__PURE__ */ defineComponent({
@@ -1779,7 +2026,7 @@ var SegmentedControl_default = /* @__PURE__ */ defineComponent({
1779
2026
  const model = useModel(__props, "modelValue");
1780
2027
  const name = useId();
1781
2028
  return (_ctx, _cache) => {
1782
- return openBlock(), createElementBlock("div", _hoisted_1$24, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.options, (option) => {
2029
+ return openBlock(), createElementBlock("div", _hoisted_1$23, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.options, (option) => {
1783
2030
  return openBlock(), createElementBlock("label", {
1784
2031
  key: String(option.value),
1785
2032
  class: "flex-1 cursor-pointer"
@@ -1789,18 +2036,18 @@ var SegmentedControl_default = /* @__PURE__ */ defineComponent({
1789
2036
  value: option.value,
1790
2037
  name: unref(name),
1791
2038
  class: "peer sr-only"
1792
- }, null, 8, _hoisted_2$21), [[vModelRadio, model.value]]), createElementVNode("span", { class: normalizeClass(["peer-focus-visible:outline-primary flex h-10 items-center justify-center rounded-xl px-2 text-sm font-medium transition-colors select-none peer-focus-visible:outline-2 peer-focus-visible:outline-offset-2", model.value === option.value ? "bg-surface text-ink shadow-(--shadow-control)" : "text-ink-soft"]) }, toDisplayString(option.label), 3)]);
2039
+ }, null, 8, _hoisted_2$20), [[vModelRadio, model.value]]), createElementVNode("span", { class: normalizeClass(["peer-focus-visible:outline-primary flex h-10 items-center justify-center rounded-xl px-2 text-sm font-medium transition-colors select-none peer-focus-visible:outline-2 peer-focus-visible:outline-offset-2", model.value === option.value ? "bg-surface text-ink shadow-(--shadow-control)" : "text-ink-soft"]) }, toDisplayString(option.label), 3)]);
1793
2040
  }), 128))]);
1794
2041
  };
1795
2042
  }
1796
2043
  });
1797
2044
  //#endregion
1798
2045
  //#region src/components/SkeletonList.vue?vue&type=script&setup=true&lang.ts
1799
- var _hoisted_1$23 = {
2046
+ var _hoisted_1$22 = {
1800
2047
  role: "status",
1801
2048
  class: "flex flex-col gap-1"
1802
2049
  };
1803
- var _hoisted_2$20 = { class: "sr-only" };
2050
+ var _hoisted_2$19 = { class: "sr-only" };
1804
2051
  //#endregion
1805
2052
  //#region src/components/SkeletonList.vue
1806
2053
  var SkeletonList_default = /* @__PURE__ */ defineComponent({
@@ -1814,7 +2061,7 @@ var SkeletonList_default = /* @__PURE__ */ defineComponent({
1814
2061
  /** A length starts with a digit, a dot, or opens a CSS function. */
1815
2062
  const isLength = computed(() => /^(?:[.\d]|calc\(|var\(|clamp\(|min\(|max\()/.test(__props.rowHeight));
1816
2063
  return (_ctx, _cache) => {
1817
- return openBlock(), createElementBlock("div", _hoisted_1$23, [createElementVNode("span", _hoisted_2$20, toDisplayString(__props.label), 1), (openBlock(true), createElementBlock(Fragment, null, renderList(__props.rows, (row) => {
2064
+ return openBlock(), createElementBlock("div", _hoisted_1$22, [createElementVNode("span", _hoisted_2$19, toDisplayString(__props.label), 1), (openBlock(true), createElementBlock(Fragment, null, renderList(__props.rows, (row) => {
1818
2065
  return openBlock(), createElementBlock("div", {
1819
2066
  key: row,
1820
2067
  class: normalizeClass(["bg-muted rounded-card animate-pulse", isLength.value ? void 0 : __props.rowHeight]),
@@ -1827,9 +2074,9 @@ var SkeletonList_default = /* @__PURE__ */ defineComponent({
1827
2074
  });
1828
2075
  //#endregion
1829
2076
  //#region src/components/StatCard.vue?vue&type=script&setup=true&lang.ts
1830
- var _hoisted_1$22 = { class: "surface rounded-card flex flex-1 flex-col gap-0.5 p-3" };
1831
- var _hoisted_2$19 = { class: "flex items-baseline gap-1" };
1832
- var _hoisted_3$12 = { class: "text-ink text-xl font-semibold tabular-nums" };
2077
+ var _hoisted_1$21 = { class: "surface rounded-card flex flex-1 flex-col gap-0.5 p-3" };
2078
+ var _hoisted_2$18 = { class: "flex items-baseline gap-1" };
2079
+ var _hoisted_3$11 = { class: "text-ink text-xl font-semibold tabular-nums" };
1833
2080
  var _hoisted_4$8 = { class: "text-ink-soft text-xs" };
1834
2081
  //#endregion
1835
2082
  //#region src/components/StatCard.vue
@@ -1847,7 +2094,7 @@ var StatCard_default = /* @__PURE__ */ defineComponent({
1847
2094
  flat: ArrowRight
1848
2095
  };
1849
2096
  return (_ctx, _cache) => {
1850
- return openBlock(), createElementBlock("div", _hoisted_1$22, [createElementVNode("div", _hoisted_2$19, [createElementVNode("span", _hoisted_3$12, toDisplayString(__props.value), 1), __props.trend ? (openBlock(), createBlock(resolveDynamicComponent(TREND_ICON[__props.trend]), {
2097
+ return openBlock(), createElementBlock("div", _hoisted_1$21, [createElementVNode("div", _hoisted_2$18, [createElementVNode("span", _hoisted_3$11, toDisplayString(__props.value), 1), __props.trend ? (openBlock(), createBlock(resolveDynamicComponent(TREND_ICON[__props.trend]), {
1851
2098
  key: 0,
1852
2099
  class: "text-ink-soft size-3"
1853
2100
  })) : createCommentVNode("", true)]), createElementVNode("span", _hoisted_4$8, toDisplayString(__props.label), 1)]);
@@ -1856,13 +2103,13 @@ var StatCard_default = /* @__PURE__ */ defineComponent({
1856
2103
  });
1857
2104
  //#endregion
1858
2105
  //#region src/components/ToastHost.vue?vue&type=script&setup=true&lang.ts
1859
- var _hoisted_1$21 = [
2106
+ var _hoisted_1$20 = [
1860
2107
  "onMouseenter",
1861
2108
  "onMouseleave",
1862
2109
  "onFocusin",
1863
2110
  "onFocusout"
1864
2111
  ];
1865
- var _hoisted_2$18 = { class: "flex-1 text-sm leading-snug" };
2112
+ var _hoisted_2$17 = { class: "flex-1 text-sm leading-snug" };
1866
2113
  //#endregion
1867
2114
  //#region src/components/ToastHost.vue
1868
2115
  var ToastHost_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
@@ -1923,7 +2170,7 @@ var ToastHost_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
1923
2170
  class: normalizeClass(["mt-0.5 size-5 shrink-0", TONE_CLASS[toast.tone]]),
1924
2171
  "aria-hidden": "true"
1925
2172
  }, null, 8, ["class"])),
1926
- createElementVNode("p", _hoisted_2$18, toDisplayString(toast.message), 1),
2173
+ createElementVNode("p", _hoisted_2$17, toDisplayString(toast.message), 1),
1927
2174
  toast.action ? (openBlock(), createBlock(BaseButton_default, {
1928
2175
  key: 0,
1929
2176
  variant: "link",
@@ -1946,7 +2193,7 @@ var ToastHost_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
1946
2193
  default: withCtx(() => [createVNode(unref(X), { class: "size-4" })]),
1947
2194
  _: 1
1948
2195
  }, 8, ["aria-label", "onClick"])
1949
- ], 40, _hoisted_1$21);
2196
+ ], 40, _hoisted_1$20);
1950
2197
  }), 128))]),
1951
2198
  _: 1
1952
2199
  })], 2)])) : createCommentVNode("", true);
@@ -1955,8 +2202,8 @@ var ToastHost_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
1955
2202
  }), [["__scopeId", "data-v-737eb240"]]);
1956
2203
  //#endregion
1957
2204
  //#region src/components/LocaleLinks.vue?vue&type=script&setup=true&lang.ts
1958
- var _hoisted_1$20 = ["aria-label"];
1959
- var _hoisted_2$17 = [
2205
+ var _hoisted_1$19 = ["aria-label"];
2206
+ var _hoisted_2$16 = [
1960
2207
  "lang",
1961
2208
  "aria-pressed",
1962
2209
  "onClick"
@@ -2000,16 +2247,16 @@ var LocaleLinks_default = /* @__PURE__ */ defineComponent({
2000
2247
  class: normalizeClass(["focus-ring rounded-full px-2.5 py-1.5 text-xs transition-colors", preference.value === locale ? "bg-muted text-ink font-semibold" : "text-ink-soft hover:text-ink"]),
2001
2248
  "aria-pressed": preference.value === locale,
2002
2249
  onClick: ($event) => preference.value = locale
2003
- }, toDisplayString(__props.labels[locale]), 11, _hoisted_2$17);
2004
- }), 128))], 8, _hoisted_1$20);
2250
+ }, toDisplayString(__props.labels[locale]), 11, _hoisted_2$16);
2251
+ }), 128))], 8, _hoisted_1$19);
2005
2252
  };
2006
2253
  }
2007
2254
  });
2008
2255
  //#endregion
2009
2256
  //#region src/components/TabBar.vue?vue&type=script&setup=true&lang.ts
2010
- var _hoisted_1$19 = { class: "tab-bar" };
2011
- var _hoisted_2$16 = ["aria-label"];
2012
- var _hoisted_3$11 = { class: "tab-icon-slot" };
2257
+ var _hoisted_1$18 = { class: "tab-bar" };
2258
+ var _hoisted_2$15 = ["aria-label"];
2259
+ var _hoisted_3$10 = { class: "tab-icon-slot" };
2013
2260
  var _hoisted_4$7 = { class: "tab-label" };
2014
2261
  //#endregion
2015
2262
  //#region src/components/TabBar.vue
@@ -2022,7 +2269,7 @@ var TabBar_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
2022
2269
  },
2023
2270
  setup(__props) {
2024
2271
  return (_ctx, _cache) => {
2025
- return openBlock(), createElementBlock("header", _hoisted_1$19, [createElementVNode("nav", {
2272
+ return openBlock(), createElementBlock("header", _hoisted_1$18, [createElementVNode("nav", {
2026
2273
  class: "tab-bar-inner",
2027
2274
  "aria-label": __props.label || void 0
2028
2275
  }, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.items, (item) => {
@@ -2033,21 +2280,21 @@ var TabBar_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
2033
2280
  "aria-current": item.key === __props.active ? "page" : void 0,
2034
2281
  onClick: _cache[0] || (_cache[0] = ($event) => unref(tapFeedback)())
2035
2282
  }, {
2036
- default: withCtx(() => [createElementVNode("span", _hoisted_3$11, [(openBlock(), createBlock(resolveDynamicComponent(item.icon), { class: "tab-icon" }))]), createElementVNode("span", _hoisted_4$7, toDisplayString(item.label), 1)]),
2283
+ default: withCtx(() => [createElementVNode("span", _hoisted_3$10, [(openBlock(), createBlock(resolveDynamicComponent(item.icon), { class: "tab-icon" }))]), createElementVNode("span", _hoisted_4$7, toDisplayString(item.label), 1)]),
2037
2284
  _: 2
2038
2285
  }, 1032, [
2039
2286
  "to",
2040
2287
  "class",
2041
2288
  "aria-current"
2042
2289
  ]);
2043
- }), 128))], 8, _hoisted_2$16)]);
2290
+ }), 128))], 8, _hoisted_2$15)]);
2044
2291
  };
2045
2292
  }
2046
2293
  }), [["__scopeId", "data-v-a76891c4"]]);
2047
2294
  //#endregion
2048
2295
  //#region src/components/AvatarStack.vue?vue&type=script&setup=true&lang.ts
2049
- var _hoisted_1$18 = ["aria-label"];
2050
- var _hoisted_2$15 = {
2296
+ var _hoisted_1$17 = ["aria-label"];
2297
+ var _hoisted_2$14 = {
2051
2298
  key: 0,
2052
2299
  class: "rk-stack-item rk-stack-rest",
2053
2300
  "aria-hidden": "true"
@@ -2085,15 +2332,15 @@ var AvatarStack_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
2085
2332
  "src",
2086
2333
  "size"
2087
2334
  ])]);
2088
- }), 128)), rest.value ? (openBlock(), createElementBlock("span", _hoisted_2$15, "+" + toDisplayString(rest.value), 1)) : createCommentVNode("", true)], 10, _hoisted_1$18);
2335
+ }), 128)), rest.value ? (openBlock(), createElementBlock("span", _hoisted_2$14, "+" + toDisplayString(rest.value), 1)) : createCommentVNode("", true)], 10, _hoisted_1$17);
2089
2336
  };
2090
2337
  }
2091
2338
  }), [["__scopeId", "data-v-db629481"]]);
2092
2339
  //#endregion
2093
2340
  //#region src/components/BaseCalendar.vue?vue&type=script&setup=true&lang.ts
2094
- var _hoisted_1$17 = { class: "rk-cal" };
2095
- var _hoisted_2$14 = { class: "rk-cal-head" };
2096
- var _hoisted_3$10 = ["aria-label"];
2341
+ var _hoisted_1$16 = { class: "rk-cal" };
2342
+ var _hoisted_2$13 = { class: "rk-cal-head" };
2343
+ var _hoisted_3$9 = ["aria-label"];
2097
2344
  var _hoisted_4$6 = ["aria-expanded"];
2098
2345
  var _hoisted_5$3 = ["aria-label"];
2099
2346
  var _hoisted_6$3 = {
@@ -2288,8 +2535,8 @@ var BaseCalendar_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
2288
2535
  if (next) focused.value = next;
2289
2536
  });
2290
2537
  return (_ctx, _cache) => {
2291
- return openBlock(), createElementBlock("div", _hoisted_1$17, [
2292
- createElementVNode("div", _hoisted_2$14, [
2538
+ return openBlock(), createElementBlock("div", _hoisted_1$16, [
2539
+ createElementVNode("div", _hoisted_2$13, [
2293
2540
  createElementVNode("button", {
2294
2541
  type: "button",
2295
2542
  class: "rk-cal-arrow focus-ring",
@@ -2298,7 +2545,7 @@ var BaseCalendar_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
2298
2545
  }, [createVNode(unref(ChevronLeft), {
2299
2546
  class: "size-4",
2300
2547
  "aria-hidden": "true"
2301
- })], 8, _hoisted_3$10),
2548
+ })], 8, _hoisted_3$9),
2302
2549
  createElementVNode("button", {
2303
2550
  type: "button",
2304
2551
  class: "rk-cal-title focus-ring",
@@ -2371,8 +2618,8 @@ var BaseCalendar_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
2371
2618
  }), [["__scopeId", "data-v-6d0b0811"]]);
2372
2619
  //#endregion
2373
2620
  //#region src/components/BaseChip.vue?vue&type=script&setup=true&lang.ts
2374
- var _hoisted_1$16 = { class: "truncate" };
2375
- var _hoisted_2$13 = ["aria-label", "disabled"];
2621
+ var _hoisted_1$15 = { class: "truncate" };
2622
+ var _hoisted_2$12 = ["aria-label", "disabled"];
2376
2623
  //#endregion
2377
2624
  //#region src/components/BaseChip.vue
2378
2625
  var BaseChip_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
@@ -2409,7 +2656,7 @@ var BaseChip_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
2409
2656
  key: 0,
2410
2657
  class: "size-3.5 shrink-0",
2411
2658
  "aria-hidden": "true"
2412
- })) : createCommentVNode("", true), createElementVNode("span", _hoisted_1$16, toDisplayString(__props.label), 1)]),
2659
+ })) : createCommentVNode("", true), createElementVNode("span", _hoisted_1$15, toDisplayString(__props.label), 1)]),
2413
2660
  _: 1
2414
2661
  }, 8, [
2415
2662
  "type",
@@ -2426,18 +2673,18 @@ var BaseChip_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
2426
2673
  }, [createVNode(unref(X), {
2427
2674
  class: "size-3",
2428
2675
  "aria-hidden": "true"
2429
- })], 8, _hoisted_2$13)) : createCommentVNode("", true)], 2);
2676
+ })], 8, _hoisted_2$12)) : createCommentVNode("", true)], 2);
2430
2677
  };
2431
2678
  }
2432
2679
  }), [["__scopeId", "data-v-c94a820d"]]);
2433
2680
  //#endregion
2434
2681
  //#region src/components/BaseKbd.vue?vue&type=script&setup=true&lang.ts
2435
- var _hoisted_1$15 = {
2682
+ var _hoisted_1$14 = {
2436
2683
  key: 0,
2437
2684
  class: "rk-kbd-joiner",
2438
2685
  "aria-hidden": "true"
2439
2686
  };
2440
- var _hoisted_2$12 = { class: "rk-kbd-key control" };
2687
+ var _hoisted_2$11 = { class: "rk-kbd-key control" };
2441
2688
  //#endregion
2442
2689
  //#region src/components/BaseKbd.vue
2443
2690
  var BaseKbd_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
@@ -2451,7 +2698,7 @@ var BaseKbd_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE
2451
2698
  const list = computed(() => typeof __props.keys === "string" ? [__props.keys] : __props.keys);
2452
2699
  return (_ctx, _cache) => {
2453
2700
  return openBlock(), createElementBlock("span", { class: normalizeClass(["rk-kbd", `is-${__props.size}`]) }, [(openBlock(true), createElementBlock(Fragment, null, renderList(list.value, (key, index) => {
2454
- return openBlock(), createElementBlock(Fragment, { key }, [index > 0 && __props.joiner ? (openBlock(), createElementBlock("span", _hoisted_1$15, toDisplayString(__props.joiner), 1)) : createCommentVNode("", true), createElementVNode("kbd", _hoisted_2$12, toDisplayString(key), 1)], 64);
2701
+ return openBlock(), createElementBlock(Fragment, { key }, [index > 0 && __props.joiner ? (openBlock(), createElementBlock("span", _hoisted_1$14, toDisplayString(__props.joiner), 1)) : createCommentVNode("", true), createElementVNode("kbd", _hoisted_2$11, toDisplayString(key), 1)], 64);
2455
2702
  }), 128))], 2);
2456
2703
  };
2457
2704
  }
@@ -2490,7 +2737,7 @@ var BaseLink_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
2490
2737
  }), [["__scopeId", "data-v-88581007"]]);
2491
2738
  //#endregion
2492
2739
  //#region src/components/BaseRating.vue?vue&type=script&setup=true&lang.ts
2493
- var _hoisted_1$14 = [
2740
+ var _hoisted_1$13 = [
2494
2741
  "role",
2495
2742
  "aria-label",
2496
2743
  "tabindex",
@@ -2575,14 +2822,14 @@ var BaseRating_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
2575
2822
  "onClick",
2576
2823
  "onPointerenter"
2577
2824
  ]);
2578
- }), 128))], 42, _hoisted_1$14);
2825
+ }), 128))], 42, _hoisted_1$13);
2579
2826
  };
2580
2827
  }
2581
2828
  }), [["__scopeId", "data-v-38007368"]]);
2582
2829
  //#endregion
2583
2830
  //#region src/components/BaseSeparator.vue?vue&type=script&setup=true&lang.ts
2584
- var _hoisted_1$13 = { class: "rk-sep-label" };
2585
- var _hoisted_2$11 = ["aria-orientation"];
2831
+ var _hoisted_1$12 = { class: "rk-sep-label" };
2832
+ var _hoisted_2$10 = ["aria-orientation"];
2586
2833
  //#endregion
2587
2834
  //#region src/components/BaseSeparator.vue
2588
2835
  var BaseSeparator_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
@@ -2610,22 +2857,22 @@ var BaseSeparator_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @
2610
2857
  "aria-hidden": "true"
2611
2858
  }, [
2612
2859
  _cache[0] || (_cache[0] = createElementVNode("span", { class: "rk-sep-line" }, null, -1)),
2613
- createElementVNode("span", _hoisted_1$13, toDisplayString(__props.label), 1),
2860
+ createElementVNode("span", _hoisted_1$12, toDisplayString(__props.label), 1),
2614
2861
  _cache[1] || (_cache[1] = createElementVNode("span", { class: "rk-sep-line" }, null, -1))
2615
2862
  ], 2)) : (openBlock(), createElementBlock("div", {
2616
2863
  key: 1,
2617
2864
  class: normalizeClass(["rk-sep", [`is-${__props.orientation}`, `space-${__props.spacing}`]]),
2618
2865
  role: "separator",
2619
2866
  "aria-orientation": __props.orientation
2620
- }, null, 10, _hoisted_2$11));
2867
+ }, null, 10, _hoisted_2$10));
2621
2868
  };
2622
2869
  }
2623
2870
  }), [["__scopeId", "data-v-9f8cc9aa"]]);
2624
2871
  //#endregion
2625
2872
  //#region src/components/CopyButton.vue?vue&type=script&setup=true&lang.ts
2626
- var _hoisted_1$12 = ["aria-label"];
2627
- var _hoisted_2$10 = { key: 2 };
2628
- var _hoisted_3$9 = {
2873
+ var _hoisted_1$11 = ["aria-label"];
2874
+ var _hoisted_2$9 = { key: 2 };
2875
+ var _hoisted_3$8 = {
2629
2876
  class: "sr-only",
2630
2877
  role: "status",
2631
2878
  "aria-live": "polite"
@@ -2683,16 +2930,16 @@ var CopyButton_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
2683
2930
  class: "size-4 shrink-0",
2684
2931
  "aria-hidden": "true"
2685
2932
  })),
2686
- __props.withText ? (openBlock(), createElementBlock("span", _hoisted_2$10, toDisplayString(state.value === "copied" ? __props.copiedLabel : __props.copyLabel), 1)) : createCommentVNode("", true),
2687
- createElementVNode("span", _hoisted_3$9, toDisplayString(state.value === "copied" ? __props.copiedLabel : state.value === "failed" ? __props.errorLabel ?? "" : ""), 1)
2688
- ], 10, _hoisted_1$12);
2933
+ __props.withText ? (openBlock(), createElementBlock("span", _hoisted_2$9, toDisplayString(state.value === "copied" ? __props.copiedLabel : __props.copyLabel), 1)) : createCommentVNode("", true),
2934
+ createElementVNode("span", _hoisted_3$8, toDisplayString(state.value === "copied" ? __props.copiedLabel : state.value === "failed" ? __props.errorLabel ?? "" : ""), 1)
2935
+ ], 10, _hoisted_1$11);
2689
2936
  };
2690
2937
  }
2691
2938
  }), [["__scopeId", "data-v-c481e140"]]);
2692
2939
  //#endregion
2693
2940
  //#region src/components/DescriptionList.vue?vue&type=script&setup=true&lang.ts
2694
- var _hoisted_1$11 = { class: "rk-dl-term" };
2695
- var _hoisted_2$9 = { class: "rk-dl-value" };
2941
+ var _hoisted_1$10 = { class: "rk-dl-term" };
2942
+ var _hoisted_2$8 = { class: "rk-dl-value" };
2696
2943
  //#endregion
2697
2944
  //#region src/components/DescriptionList.vue
2698
2945
  var DescriptionList_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
@@ -2707,16 +2954,16 @@ var DescriptionList_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/*
2707
2954
  return openBlock(), createElementBlock("div", {
2708
2955
  key: item.key ?? item.term,
2709
2956
  class: "rk-dl-row"
2710
- }, [createElementVNode("dt", _hoisted_1$11, toDisplayString(item.term), 1), createElementVNode("dd", _hoisted_2$9, [renderSlot(_ctx.$slots, item.key ?? item.term, { item }, () => [createTextVNode(toDisplayString(item.description), 1)], true)])]);
2957
+ }, [createElementVNode("dt", _hoisted_1$10, toDisplayString(item.term), 1), createElementVNode("dd", _hoisted_2$8, [renderSlot(_ctx.$slots, item.key ?? item.term, { item }, () => [createTextVNode(toDisplayString(item.description), 1)], true)])]);
2711
2958
  }), 128))], 2);
2712
2959
  };
2713
2960
  }
2714
2961
  }), [["__scopeId", "data-v-831e205b"]]);
2715
2962
  //#endregion
2716
2963
  //#region src/components/FileDrop.vue?vue&type=script&setup=true&lang.ts
2717
- var _hoisted_1$10 = { class: "rk-drop" };
2718
- var _hoisted_2$8 = ["for"];
2719
- var _hoisted_3$8 = [
2964
+ var _hoisted_1$9 = { class: "rk-drop" };
2965
+ var _hoisted_2$7 = ["for"];
2966
+ var _hoisted_3$7 = [
2720
2967
  "id",
2721
2968
  "accept",
2722
2969
  "multiple",
@@ -2802,7 +3049,7 @@ var FileDrop_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
2802
3049
  const size = (bytes) => bytes >= 1048576 ? `${(bytes / 1048576).toFixed(1)} MB` : `${Math.max(1, Math.round(bytes / 1024))} KB`;
2803
3050
  const count = computed(() => model.value.length);
2804
3051
  return (_ctx, _cache) => {
2805
- return openBlock(), createElementBlock("div", _hoisted_1$10, [
3052
+ return openBlock(), createElementBlock("div", _hoisted_1$9, [
2806
3053
  createElementVNode("label", {
2807
3054
  class: normalizeClass(["rk-drop-box control", {
2808
3055
  "is-over": over.value,
@@ -2821,7 +3068,7 @@ var FileDrop_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
2821
3068
  multiple: __props.multiple,
2822
3069
  disabled: __props.disabled,
2823
3070
  onChange: onInput
2824
- }, null, 40, _hoisted_3$8),
3071
+ }, null, 40, _hoisted_3$7),
2825
3072
  createVNode(unref(Upload), {
2826
3073
  class: "text-ink-soft size-6",
2827
3074
  "aria-hidden": "true"
@@ -2829,7 +3076,7 @@ var FileDrop_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
2829
3076
  createElementVNode("span", _hoisted_4$5, toDisplayString(__props.label), 1),
2830
3077
  __props.hint ? (openBlock(), createElementBlock("span", _hoisted_5$2, toDisplayString(__props.hint), 1)) : createCommentVNode("", true),
2831
3078
  createElementVNode("span", _hoisted_6$2, toDisplayString(__props.browseLabel), 1)
2832
- ], 42, _hoisted_2$8),
3079
+ ], 42, _hoisted_2$7),
2833
3080
  refused.value && __props.tooLargeLabel ? (openBlock(), createElementBlock("p", _hoisted_7$1, toDisplayString(__props.tooLargeLabel), 1)) : createCommentVNode("", true),
2834
3081
  count.value ? (openBlock(), createElementBlock("ul", _hoisted_8, [(openBlock(true), createElementBlock(Fragment, null, renderList(model.value, (file, index) => {
2835
3082
  return openBlock(), createElementBlock("li", {
@@ -2860,7 +3107,7 @@ var FileDrop_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
2860
3107
  }), [["__scopeId", "data-v-a42eab69"]]);
2861
3108
  //#endregion
2862
3109
  //#region src/components/TagsInput.vue?vue&type=script&setup=true&lang.ts
2863
- var _hoisted_1$9 = [
3110
+ var _hoisted_1$8 = [
2864
3111
  "id",
2865
3112
  "placeholder",
2866
3113
  "aria-describedby",
@@ -2978,7 +3225,7 @@ var TagsInput_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
2978
3225
  onKeydown,
2979
3226
  onPaste,
2980
3227
  onBlur: add
2981
- }, null, 40, _hoisted_1$9), [[vModelText, draft.value]])], 2)]),
3228
+ }, null, 40, _hoisted_1$8), [[vModelText, draft.value]])], 2)]),
2982
3229
  _: 1
2983
3230
  }, 8, [
2984
3231
  "label",
@@ -2992,7 +3239,7 @@ var TagsInput_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
2992
3239
  }), [["__scopeId", "data-v-1fd08921"]]);
2993
3240
  //#endregion
2994
3241
  //#region src/components/BasePopover.vue?vue&type=script&setup=true&lang.ts
2995
- var _hoisted_1$8 = ["id", "aria-label"];
3242
+ var _hoisted_1$7 = ["id", "aria-label"];
2996
3243
  var FOCUSABLE = "a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])";
2997
3244
  //#endregion
2998
3245
  //#region src/components/BasePopover.vue
@@ -3109,7 +3356,7 @@ var BasePopover_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
3109
3356
  role: "dialog",
3110
3357
  "aria-label": __props.label,
3111
3358
  tabindex: "-1"
3112
- }, [renderSlot(_ctx.$slots, "default", { close }, void 0, true)], 14, _hoisted_1$8)) : createCommentVNode("", true)]),
3359
+ }, [renderSlot(_ctx.$slots, "default", { close }, void 0, true)], 14, _hoisted_1$7)) : createCommentVNode("", true)]),
3113
3360
  _: 3
3114
3361
  })], 544);
3115
3362
  };
@@ -3117,13 +3364,13 @@ var BasePopover_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
3117
3364
  }), [["__scopeId", "data-v-1371bff2"]]);
3118
3365
  //#endregion
3119
3366
  //#region src/components/TimePicker.vue?vue&type=script&setup=true&lang.ts
3120
- var _hoisted_1$7 = [
3367
+ var _hoisted_1$6 = [
3121
3368
  "id",
3122
3369
  "aria-describedby",
3123
3370
  "disabled"
3124
3371
  ];
3125
- var _hoisted_2$7 = { class: "truncate" };
3126
- var _hoisted_3$7 = { class: "rk-time-columns" };
3372
+ var _hoisted_2$6 = { class: "truncate" };
3373
+ var _hoisted_3$6 = { class: "rk-time-columns" };
3127
3374
  //#endregion
3128
3375
  //#region src/components/TimePicker.vue
3129
3376
  var TimePicker_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
@@ -3225,8 +3472,8 @@ var TimePicker_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
3225
3472
  }, props), [createVNode(unref(Clock), {
3226
3473
  class: "size-4 shrink-0",
3227
3474
  "aria-hidden": "true"
3228
- }), createElementVNode("span", _hoisted_2$7, toDisplayString(shown.value || __props.placeholder), 1)], 16, _hoisted_1$7)]),
3229
- default: withCtx(() => [createElementVNode("div", _hoisted_3$7, [createVNode(BaseListbox_default, {
3475
+ }), createElementVNode("span", _hoisted_2$6, toDisplayString(shown.value || __props.placeholder), 1)], 16, _hoisted_1$6)]),
3476
+ default: withCtx(() => [createElementVNode("div", _hoisted_3$6, [createVNode(BaseListbox_default, {
3230
3477
  "model-value": chosenHour.value,
3231
3478
  options: hours.value,
3232
3479
  label: __props.hoursLabel,
@@ -3262,13 +3509,13 @@ var TimePicker_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
3262
3509
  }), [["__scopeId", "data-v-0037adb2"]]);
3263
3510
  //#endregion
3264
3511
  //#region src/components/BaseDatePicker.vue?vue&type=script&setup=true&lang.ts
3265
- var _hoisted_1$6 = [
3512
+ var _hoisted_1$5 = [
3266
3513
  "id",
3267
3514
  "aria-describedby",
3268
3515
  "disabled"
3269
3516
  ];
3270
- var _hoisted_2$6 = { class: "truncate" };
3271
- var _hoisted_3$6 = ["aria-label", "disabled"];
3517
+ var _hoisted_2$5 = { class: "truncate" };
3518
+ var _hoisted_3$5 = ["aria-label", "disabled"];
3272
3519
  var _hoisted_4$4 = { class: "rk-date-panel" };
3273
3520
  var _hoisted_5$1 = {
3274
3521
  key: 0,
@@ -3358,7 +3605,7 @@ var BaseDatePicker_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/*
3358
3605
  }, props), [createVNode(unref(CalendarDays), {
3359
3606
  class: "size-4 shrink-0",
3360
3607
  "aria-hidden": "true"
3361
- }), createElementVNode("span", _hoisted_2$6, toDisplayString(shown.value || __props.placeholder), 1)], 16, _hoisted_1$6), __props.clearLabel && shown.value ? (openBlock(), createElementBlock("button", {
3608
+ }), createElementVNode("span", _hoisted_2$5, toDisplayString(shown.value || __props.placeholder), 1)], 16, _hoisted_1$5), __props.clearLabel && shown.value ? (openBlock(), createElementBlock("button", {
3362
3609
  key: 0,
3363
3610
  type: "button",
3364
3611
  class: "rk-date-clear focus-ring",
@@ -3368,7 +3615,7 @@ var BaseDatePicker_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/*
3368
3615
  }, [createVNode(unref(X), {
3369
3616
  class: "size-3.5",
3370
3617
  "aria-hidden": "true"
3371
- })], 8, _hoisted_3$6)) : createCommentVNode("", true)], 2)]),
3618
+ })], 8, _hoisted_3$5)) : createCommentVNode("", true)], 2)]),
3372
3619
  default: withCtx(() => [createElementVNode("div", _hoisted_4$4, [__props.presets?.length ? (openBlock(), createElementBlock("ul", _hoisted_5$1, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.presets, (preset) => {
3373
3620
  return openBlock(), createElementBlock("li", { key: preset.label }, [createElementVNode("button", {
3374
3621
  type: "button",
@@ -3409,12 +3656,12 @@ var BaseDatePicker_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/*
3409
3656
  }), [["__scopeId", "data-v-154e27fb"]]);
3410
3657
  //#endregion
3411
3658
  //#region src/components/BasePopconfirm.vue?vue&type=script&setup=true&lang.ts
3412
- var _hoisted_1$5 = { class: "rk-confirm" };
3413
- var _hoisted_2$5 = {
3659
+ var _hoisted_1$4 = { class: "rk-confirm" };
3660
+ var _hoisted_2$4 = {
3414
3661
  key: 0,
3415
3662
  class: "rk-confirm-title"
3416
3663
  };
3417
- var _hoisted_3$5 = { class: "rk-confirm-message" };
3664
+ var _hoisted_3$4 = { class: "rk-confirm-message" };
3418
3665
  var _hoisted_4$3 = { class: "rk-confirm-actions" };
3419
3666
  //#endregion
3420
3667
  //#region src/components/BasePopconfirm.vue
@@ -3454,9 +3701,9 @@ var BasePopconfirm_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/*
3454
3701
  align: "end"
3455
3702
  }, {
3456
3703
  trigger: withCtx((slotProps) => [renderSlot(_ctx.$slots, "trigger", normalizeProps(guardReactiveProps(slotProps)), void 0, true)]),
3457
- default: withCtx(({ close }) => [createElementVNode("div", _hoisted_1$5, [
3458
- __props.title ? (openBlock(), createElementBlock("p", _hoisted_2$5, toDisplayString(__props.title), 1)) : createCommentVNode("", true),
3459
- createElementVNode("p", _hoisted_3$5, toDisplayString(__props.message), 1),
3704
+ default: withCtx(({ close }) => [createElementVNode("div", _hoisted_1$4, [
3705
+ __props.title ? (openBlock(), createElementBlock("p", _hoisted_2$4, toDisplayString(__props.title), 1)) : createCommentVNode("", true),
3706
+ createElementVNode("p", _hoisted_3$4, toDisplayString(__props.message), 1),
3460
3707
  createElementVNode("div", _hoisted_4$3, [createVNode(BaseButton_default, {
3461
3708
  size: "sm",
3462
3709
  variant: "secondary",
@@ -3480,8 +3727,8 @@ var BasePopconfirm_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/*
3480
3727
  }), [["__scopeId", "data-v-9453e511"]]);
3481
3728
  //#endregion
3482
3729
  //#region src/components/ToggleGroup.vue?vue&type=script&setup=true&lang.ts
3483
- var _hoisted_1$4 = ["aria-label"];
3484
- var _hoisted_2$4 = [
3730
+ var _hoisted_1$3 = ["aria-label"];
3731
+ var _hoisted_2$3 = [
3485
3732
  "aria-pressed",
3486
3733
  "aria-label",
3487
3734
  "disabled",
@@ -3489,7 +3736,7 @@ var _hoisted_2$4 = [
3489
3736
  "onClick",
3490
3737
  "onKeydown"
3491
3738
  ];
3492
- var _hoisted_3$4 = { key: 1 };
3739
+ var _hoisted_3$3 = { key: 1 };
3493
3740
  //#endregion
3494
3741
  //#region src/components/ToggleGroup.vue
3495
3742
  var ToggleGroup_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
@@ -3572,170 +3819,12 @@ var ToggleGroup_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
3572
3819
  key: 0,
3573
3820
  class: "rk-toggle-icon",
3574
3821
  "aria-hidden": "true"
3575
- })) : createCommentVNode("", true), !option.iconOnly ? (openBlock(), createElementBlock("span", _hoisted_3$4, toDisplayString(option.label), 1)) : createCommentVNode("", true)], 40, _hoisted_2$4);
3576
- }), 128))], 10, _hoisted_1$4);
3822
+ })) : createCommentVNode("", true), !option.iconOnly ? (openBlock(), createElementBlock("span", _hoisted_3$3, toDisplayString(option.label), 1)) : createCommentVNode("", true)], 40, _hoisted_2$3);
3823
+ }), 128))], 10, _hoisted_1$3);
3577
3824
  };
3578
3825
  }
3579
3826
  }), [["__scopeId", "data-v-9076e36f"]]);
3580
3827
  //#endregion
3581
- //#region src/components/NumberInput.vue?vue&type=script&setup=true&lang.ts
3582
- var _hoisted_1$3 = ["aria-label", "disabled"];
3583
- var _hoisted_2$3 = [
3584
- "id",
3585
- "value",
3586
- "aria-valuenow",
3587
- "aria-valuemin",
3588
- "aria-valuemax",
3589
- "aria-invalid",
3590
- "aria-describedby",
3591
- "disabled"
3592
- ];
3593
- var _hoisted_3$3 = ["aria-label", "disabled"];
3594
- //#endregion
3595
- //#region src/components/NumberInput.vue
3596
- var NumberInput_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
3597
- __name: "NumberInput",
3598
- props: /*@__PURE__*/ mergeModels({
3599
- label: {},
3600
- min: { default: () => -Infinity },
3601
- max: { default: () => Infinity },
3602
- step: { default: 1 },
3603
- decrementLabel: {},
3604
- incrementLabel: {},
3605
- error: { default: "" },
3606
- hint: { default: "" },
3607
- size: { default: "md" },
3608
- labelHidden: {
3609
- type: Boolean,
3610
- default: false
3611
- },
3612
- disabled: {
3613
- type: Boolean,
3614
- default: false
3615
- }
3616
- }, {
3617
- "modelValue": {},
3618
- "modelModifiers": {}
3619
- }),
3620
- emits: ["update:modelValue"],
3621
- setup(__props) {
3622
- /** The number, with `v-model`. `undefined` while the field is empty. */
3623
- const model = useModel(__props, "modelValue");
3624
- const places = computed(() => (String(__props.step).split(".")[1] ?? "").length);
3625
- const settle = (value) => Number(Math.min(__props.max, Math.max(__props.min, value)).toFixed(Math.min(places.value, 20)));
3626
- const draft = ref(model.value === void 0 ? "" : String(model.value));
3627
- watch(model, (value) => {
3628
- if ((draft.value === "" ? void 0 : Number(draft.value)) !== value) draft.value = value === void 0 ? "" : String(value);
3629
- });
3630
- function onInput(event) {
3631
- const text = event.target.value.replace(",", ".");
3632
- draft.value = text;
3633
- if (text.trim() === "") {
3634
- model.value = void 0;
3635
- return;
3636
- }
3637
- const value = Number(text);
3638
- if (Number.isFinite(value)) model.value = value;
3639
- }
3640
- function commit() {
3641
- if (model.value === void 0) {
3642
- draft.value = "";
3643
- return;
3644
- }
3645
- setTo(model.value);
3646
- }
3647
- function setTo(value) {
3648
- model.value = settle(value);
3649
- draft.value = String(model.value);
3650
- }
3651
- function stepBy(times) {
3652
- if (__props.disabled) return;
3653
- setTo((model.value ?? (Number.isFinite(__props.min) ? __props.min : 0)) + __props.step * times);
3654
- }
3655
- function onKeydown(event) {
3656
- const action = {
3657
- ArrowUp: () => stepBy(1),
3658
- ArrowDown: () => stepBy(-1),
3659
- PageUp: () => stepBy(10),
3660
- PageDown: () => stepBy(-10),
3661
- Home: () => {
3662
- if (Number.isFinite(__props.min)) setTo(__props.min);
3663
- },
3664
- End: () => {
3665
- if (Number.isFinite(__props.max)) setTo(__props.max);
3666
- }
3667
- }[event.key];
3668
- if (!action) return;
3669
- event.preventDefault();
3670
- action();
3671
- }
3672
- const atMin = computed(() => model.value !== void 0 && model.value <= __props.min);
3673
- const atMax = computed(() => model.value !== void 0 && model.value >= __props.max);
3674
- return (_ctx, _cache) => {
3675
- return openBlock(), createBlock(FormField_default, {
3676
- label: __props.label,
3677
- error: __props.error,
3678
- hint: __props.hint,
3679
- size: __props.size,
3680
- "label-hidden": __props.labelHidden
3681
- }, {
3682
- default: withCtx(({ id, describedBy, invalid }) => [createElementVNode("div", { class: normalizeClass(["rk-number control", {
3683
- "is-invalid": invalid,
3684
- "is-disabled": __props.disabled
3685
- }]) }, [
3686
- createElementVNode("button", {
3687
- type: "button",
3688
- class: "rk-number-step focus-ring",
3689
- "aria-label": __props.decrementLabel,
3690
- disabled: __props.disabled || atMin.value,
3691
- tabindex: "-1",
3692
- onClick: _cache[0] || (_cache[0] = ($event) => stepBy(-1))
3693
- }, [createVNode(unref(Minus), {
3694
- class: "size-4",
3695
- "aria-hidden": "true"
3696
- })], 8, _hoisted_1$3),
3697
- createElementVNode("input", {
3698
- id,
3699
- value: draft.value,
3700
- type: "text",
3701
- inputmode: "decimal",
3702
- role: "spinbutton",
3703
- autocomplete: "off",
3704
- class: "rk-number-field",
3705
- "aria-valuenow": model.value,
3706
- "aria-valuemin": Number.isFinite(__props.min) ? __props.min : void 0,
3707
- "aria-valuemax": Number.isFinite(__props.max) ? __props.max : void 0,
3708
- "aria-invalid": invalid,
3709
- "aria-describedby": describedBy,
3710
- disabled: __props.disabled,
3711
- onInput,
3712
- onBlur: commit,
3713
- onKeydown
3714
- }, null, 40, _hoisted_2$3),
3715
- createElementVNode("button", {
3716
- type: "button",
3717
- class: "rk-number-step focus-ring",
3718
- "aria-label": __props.incrementLabel,
3719
- disabled: __props.disabled || atMax.value,
3720
- tabindex: "-1",
3721
- onClick: _cache[1] || (_cache[1] = ($event) => stepBy(1))
3722
- }, [createVNode(unref(Plus), {
3723
- class: "size-4",
3724
- "aria-hidden": "true"
3725
- })], 8, _hoisted_3$3)
3726
- ], 2)]),
3727
- _: 1
3728
- }, 8, [
3729
- "label",
3730
- "error",
3731
- "hint",
3732
- "size",
3733
- "label-hidden"
3734
- ]);
3735
- };
3736
- }
3737
- }), [["__scopeId", "data-v-082bd3d7"]]);
3738
- //#endregion
3739
3828
  //#region src/components/PinInput.vue?vue&type=script&setup=true&lang.ts
3740
3829
  var _hoisted_1$2 = { class: "rk-pin" };
3741
3830
  var _hoisted_2$2 = ["aria-label"];
@@ -4174,8 +4263,8 @@ function createI18nRuntime(options) {
4174
4263
  *
4175
4264
  * The fallback keeps `vitest` and `vite dev` honest, where no define runs.
4176
4265
  */
4177
- var VERSION = "2.13.0";
4266
+ var VERSION = "2.15.0";
4178
4267
  //#endregion
4179
- export { AppError, AvatarStack_default as AvatarStack, BaseAlert_default as BaseAlert, BaseAvatar_default as BaseAvatar, BaseBadge_default as BaseBadge, BaseButton_default as BaseButton, BaseCalendar_default as BaseCalendar, BaseCard_default as BaseCard, BaseCheckbox_default as BaseCheckbox, BaseChip_default as BaseChip, BaseCombobox_default as BaseCombobox, BaseDatePicker_default as BaseDatePicker, BaseInput_default as BaseInput, BaseKbd_default as BaseKbd, BaseLink_default as BaseLink, BaseListbox_default as BaseListbox, BaseMenu_default as BaseMenu, BasePopconfirm_default as BasePopconfirm, BasePopover_default as BasePopover, BaseRadioGroup_default as BaseRadioGroup, BaseRating_default as BaseRating, BaseSelect_default as BaseSelect, BaseSeparator_default as BaseSeparator, BaseSheet_default as BaseSheet, BaseSkeleton_default as BaseSkeleton, BaseSlider_default as BaseSlider, BaseSpinner_default as BaseSpinner, BaseStepper_default as BaseStepper, BaseSwitch_default as BaseSwitch, BaseTable_default as BaseTable, BaseTextarea_default as BaseTextarea, CircularProgress_default as CircularProgress, CopyButton_default as CopyButton, DescriptionList_default as DescriptionList, EmptyState_default as EmptyState, ErrorBoundary_default as ErrorBoundary, FileDrop_default as FileDrop, FormField_default as FormField, GoogleButton_default as GoogleButton, LocaleLinks_default as LocaleLinks, MATERIALS, NumberInput_default as NumberInput, PALETTES, PageContainer_default as PageContainer, PageHeader_default as PageHeader, PinInput_default as PinInput, PriceCard_default as PriceCard, ProgressBar_default as ProgressBar, SHEET_ROOT_ID, SectionHeading_default as SectionHeading, SegmentedControl_default as SegmentedControl, SettingsGroup_default as SettingsGroup, SettingsRow_default as SettingsRow, SkeletonList_default as SkeletonList, StatCard_default as StatCard, TabBar_default as TabBar, TagsInput_default as TagsInput, TimePicker_default as TimePicker, ToastHost_default as ToastHost, ToggleGroup_default as ToggleGroup, ToneDot_default as ToneDot, VERSION, addDays, applyMaterial, applyPalette, applyTheme, createI18nRuntime, downloadJson, eachDayOfYear, ensureSheetRoot, formatDate, formatNumber, fromDateKey, isApplePortable, isInstalled, isMaterial, isPaletteName, isThemePreference, lastNDays, leadingBlanks, needsIosInstall, readStoredTheme, registerErrorMapper, relativeDayLabel, safeRedirect, setFormatLocale, setMaterialStorageKey, setPaletteStorageKey, setThemeStorageKey, startOfWeek, tapFeedback, toAppError, toDateKey, toRedirectPath, todayKey, useDebouncedCallback, useDragScroll, useMaterial, useMediaQuery, useOnline, usePalette, useTheme, useToast, useToday, useVisualViewport };
4268
+ export { AppError, AvatarStack_default as AvatarStack, BaseAlert_default as BaseAlert, BaseAvatar_default as BaseAvatar, BaseBadge_default as BaseBadge, BaseButton_default as BaseButton, BaseCalendar_default as BaseCalendar, BaseCard_default as BaseCard, BaseCheckbox_default as BaseCheckbox, BaseChip_default as BaseChip, BaseCombobox_default as BaseCombobox, BaseDatePicker_default as BaseDatePicker, BaseInput_default as BaseInput, BaseKbd_default as BaseKbd, BaseLink_default as BaseLink, BaseListbox_default as BaseListbox, BaseMenu_default as BaseMenu, BasePopconfirm_default as BasePopconfirm, BasePopover_default as BasePopover, BaseRadioGroup_default as BaseRadioGroup, BaseRating_default as BaseRating, BaseSelect_default as BaseSelect, BaseSeparator_default as BaseSeparator, BaseSheet_default as BaseSheet, BaseSkeleton_default as BaseSkeleton, BaseSlider_default as BaseSlider, BaseSpinner_default as BaseSpinner, BaseStepper_default as BaseStepper, BaseSwitch_default as BaseSwitch, BaseTable_default as BaseTable, BaseTextarea_default as BaseTextarea, CircularProgress_default as CircularProgress, CopyButton_default as CopyButton, DescriptionList_default as DescriptionList, EmptyState_default as EmptyState, ErrorBoundary_default as ErrorBoundary, FileDrop_default as FileDrop, FormField_default as FormField, GoogleButton_default as GoogleButton, LocaleLinks_default as LocaleLinks, MATERIALS, NumberInput_default as NumberInput, PALETTES, PageContainer_default as PageContainer, PageHeader_default as PageHeader, PinInput_default as PinInput, PriceCard_default as PriceCard, ProgressBar_default as ProgressBar, SHEET_ROOT_ID, SectionHeading_default as SectionHeading, SegmentedControl_default as SegmentedControl, SettingsGroup_default as SettingsGroup, SettingsRow_default as SettingsRow, SkeletonList_default as SkeletonList, SliderField_default as SliderField, StatCard_default as StatCard, TabBar_default as TabBar, TagsInput_default as TagsInput, TimePicker_default as TimePicker, ToastHost_default as ToastHost, ToggleGroup_default as ToggleGroup, ToneDot_default as ToneDot, VERSION, addDays, applyMaterial, applyPalette, applyTheme, createI18nRuntime, downloadJson, eachDayOfYear, ensureSheetRoot, formatDate, formatNumber, fromDateKey, isApplePortable, isInstalled, isMaterial, isPaletteName, isThemePreference, lastNDays, leadingBlanks, needsIosInstall, readStoredTheme, registerErrorMapper, relativeDayLabel, safeRedirect, setFormatLocale, setMaterialStorageKey, setPaletteStorageKey, setThemeStorageKey, startOfWeek, tapFeedback, toAppError, toDateKey, toRedirectPath, todayKey, useDebouncedCallback, useDragScroll, useMaterial, useMediaQuery, useOnline, usePalette, useTheme, useToast, useToday, useVisualViewport };
4180
4269
 
4181
4270
  //# sourceMappingURL=index.js.map