rei-kit 2.21.0 → 2.23.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/web.js CHANGED
@@ -1,12 +1,12 @@
1
- import { n as inertOutside, o as ensureSheetRoot, r as useBoundValue, t as BaseSheet_default } from "./BaseSheet-B7401rS7.js";
2
- import { i as useMediaQuery, n as BaseSkeleton_default, r as useMenuKeys, t as BaseListbox_default } from "./BaseListbox-Btibgnaf.js";
1
+ import { a as BaseCheckbox_default, c as useBoundValue, d as ensureSheetRoot, n as elementDirection, o as BaseSheet_default, r as horizontalStep, s as inertOutside, t as focusTarget } from "./focus-target-DRgd8UnQ.js";
2
+ import { a as useMediaQuery, i as useMenuKeys, n as ScrollArea_default, r as BaseSkeleton_default, t as BaseListbox_default } from "./BaseListbox-BrIZxUmx.js";
3
3
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BOaGB7Aw.js";
4
4
  import { t as BaseButton_default } from "./BaseButton-RN2an975.js";
5
5
  import { Fragment, Teleport, Transition, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createTextVNode, createVNode, defineComponent, mergeModels, nextTick, normalizeClass, normalizeStyle, onBeforeUnmount, onMounted, openBlock, ref, renderList, renderSlot, resolveDynamicComponent, shallowRef, toDisplayString, unref, useId, useModel, useTemplateRef, vModelText, vShow, watch, withCtx, withDirectives, withKeys, withModifiers } from "vue";
6
6
  import { ArrowDown, ArrowUp, ChevronDown, ChevronLeft, ChevronRight, ChevronsUpDown, Search, X } from "lucide-vue-next";
7
7
  import { RouterLink } from "vue-router";
8
8
  //#region src/web/BaseAccordion.vue?vue&type=script&setup=true&lang.ts
9
- var _hoisted_1$18 = { class: "rk-accordion" };
9
+ var _hoisted_1$19 = { class: "rk-accordion" };
10
10
  var _hoisted_2$13 = [
11
11
  "aria-expanded",
12
12
  "aria-controls",
@@ -40,7 +40,7 @@ var BaseAccordion_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @
40
40
  else open.value = __props.multiple ? [...open.value, key] : [key];
41
41
  }
42
42
  return (_ctx, _cache) => {
43
- return openBlock(), createElementBlock("ul", _hoisted_1$18, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.items, (item) => {
43
+ return openBlock(), createElementBlock("ul", _hoisted_1$19, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.items, (item) => {
44
44
  return openBlock(), createElementBlock("li", {
45
45
  key: item.key,
46
46
  class: "rk-accordion-item"
@@ -66,10 +66,10 @@ var BaseAccordion_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @
66
66
  }), 128))]);
67
67
  };
68
68
  }
69
- }), [["__scopeId", "data-v-03e2e1d0"]]);
69
+ }), [["__scopeId", "data-v-d558aa6a"]]);
70
70
  //#endregion
71
71
  //#region src/web/BaseBreadcrumb.vue?vue&type=script&setup=true&lang.ts
72
- var _hoisted_1$17 = ["aria-label"];
72
+ var _hoisted_1$18 = ["aria-label"];
73
73
  var _hoisted_2$12 = { class: "rk-crumbs" };
74
74
  var _hoisted_3$11 = {
75
75
  key: 1,
@@ -103,13 +103,13 @@ var BaseBreadcrumb_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/*
103
103
  default: withCtx(() => [createTextVNode(toDisplayString(item.label), 1)]),
104
104
  _: 2
105
105
  }, 1032, ["to"])) : (openBlock(), createElementBlock("span", _hoisted_3$11, toDisplayString(item.label), 1)), index < __props.items.length - 1 ? (openBlock(), createElementBlock("span", _hoisted_4$9, "/")) : createCommentVNode("", true)]);
106
- }), 128))])], 8, _hoisted_1$17);
106
+ }), 128))])], 8, _hoisted_1$18);
107
107
  };
108
108
  }
109
109
  }), [["__scopeId", "data-v-dcc01b03"]]);
110
110
  //#endregion
111
111
  //#region src/web/BaseContextMenu.vue?vue&type=script&setup=true&lang.ts
112
- var _hoisted_1$16 = ["id", "aria-label"];
112
+ var _hoisted_1$17 = ["id", "aria-label"];
113
113
  //#endregion
114
114
  //#region src/web/BaseContextMenu.vue
115
115
  var BaseContextMenu_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
@@ -244,13 +244,13 @@ var BaseContextMenu_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/*
244
244
  top: `${at.value.y}px`
245
245
  }),
246
246
  onKeydown: onPanelKeydown
247
- }, [renderSlot(_ctx.$slots, "items", { close }, void 0, true)], 44, _hoisted_1$16)) : createCommentVNode("", true)]))], 544);
247
+ }, [renderSlot(_ctx.$slots, "items", { close }, void 0, true)], 44, _hoisted_1$17)) : createCommentVNode("", true)]))], 544);
248
248
  };
249
249
  }
250
250
  }), [["__scopeId", "data-v-4888e5a2"]]);
251
251
  //#endregion
252
252
  //#region src/web/BaseDisclosure.vue?vue&type=script&setup=true&lang.ts
253
- var _hoisted_1$15 = { class: "rk-disclosure" };
253
+ var _hoisted_1$16 = { class: "rk-disclosure" };
254
254
  var _hoisted_2$11 = ["aria-expanded", "aria-controls"];
255
255
  var _hoisted_3$10 = { class: "rk-disclosure-title" };
256
256
  var _hoisted_4$8 = {
@@ -278,7 +278,7 @@ var BaseDisclosure_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/*
278
278
  const open = useModel(__props, "modelValue");
279
279
  const id = useId();
280
280
  return (_ctx, _cache) => {
281
- return openBlock(), createElementBlock("div", _hoisted_1$15, [(openBlock(), createBlock(resolveDynamicComponent(`h${__props.headingLevel}`), null, {
281
+ return openBlock(), createElementBlock("div", _hoisted_1$16, [(openBlock(), createBlock(resolveDynamicComponent(`h${__props.headingLevel}`), null, {
282
282
  default: withCtx(() => [createElementVNode("button", {
283
283
  type: "button",
284
284
  class: "rk-disclosure-control",
@@ -293,10 +293,10 @@ var BaseDisclosure_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/*
293
293
  }, [createElementVNode("div", _hoisted_6$5, [createElementVNode("div", { class: normalizeClass(["rk-disclosure-body", { "is-open": open.value }]) }, [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 2)])], 10, _hoisted_5$7)]);
294
294
  };
295
295
  }
296
- }), [["__scopeId", "data-v-ad5c09f5"]]);
296
+ }), [["__scopeId", "data-v-f3a3f8c7"]]);
297
297
  //#endregion
298
298
  //#region src/web/BaseHoverCard.vue?vue&type=script&setup=true&lang.ts
299
- var _hoisted_1$14 = ["id", "aria-label"];
299
+ var _hoisted_1$15 = ["id", "aria-label"];
300
300
  //#endregion
301
301
  //#region src/web/BaseHoverCard.vue
302
302
  var BaseHoverCard_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
@@ -361,7 +361,7 @@ var BaseHoverCard_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @
361
361
  class: normalizeClass(["rk-hovercard-panel surface-raised", `is-${__props.placement}`]),
362
362
  role: "group",
363
363
  "aria-label": __props.label
364
- }, [renderSlot(_ctx.$slots, "card", {}, void 0, true)], 10, _hoisted_1$14)) : createCommentVNode("", true)], 32);
364
+ }, [renderSlot(_ctx.$slots, "card", {}, void 0, true)], 10, _hoisted_1$15)) : createCommentVNode("", true)], 32);
365
365
  };
366
366
  }
367
367
  }), [["__scopeId", "data-v-70c09916"]]);
@@ -435,7 +435,7 @@ function useDialogShell(open, panel, { dismissible = () => true, onClose }) {
435
435
  }
436
436
  //#endregion
437
437
  //#region src/web/BaseDrawer.vue?vue&type=script&setup=true&lang.ts
438
- var _hoisted_1$13 = ["aria-label"];
438
+ var _hoisted_1$14 = ["aria-label"];
439
439
  var _hoisted_2$10 = { class: "rk-drawer-head" };
440
440
  var _hoisted_3$9 = { class: "rk-drawer-title" };
441
441
  var _hoisted_4$7 = { class: "rk-drawer-body" };
@@ -510,7 +510,7 @@ var BaseDrawer_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
510
510
  }, 8, ["aria-label"])) : createCommentVNode("", true)]),
511
511
  createElementVNode("div", _hoisted_4$7, [renderSlot(_ctx.$slots, "default", {}, void 0, true)]),
512
512
  _ctx.$slots.actions ? (openBlock(), createElementBlock("footer", _hoisted_5$6, [renderSlot(_ctx.$slots, "actions", {}, void 0, true)])) : createCommentVNode("", true)
513
- ], 14, _hoisted_1$13)], 32)) : createCommentVNode("", true)]),
513
+ ], 14, _hoisted_1$14)], 32)) : createCommentVNode("", true)]),
514
514
  _: 3
515
515
  }, 8, ["name"])]);
516
516
  };
@@ -518,7 +518,7 @@ var BaseDrawer_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
518
518
  }), [["__scopeId", "data-v-de2cccb9"]]);
519
519
  //#endregion
520
520
  //#region src/web/BaseModal.vue?vue&type=script&setup=true&lang.ts
521
- var _hoisted_1$12 = ["role", "aria-label"];
521
+ var _hoisted_1$13 = ["role", "aria-label"];
522
522
  var _hoisted_2$9 = { class: "rk-modal-head" };
523
523
  var _hoisted_3$8 = { class: "rk-modal-title" };
524
524
  var _hoisted_4$6 = ["aria-label"];
@@ -587,7 +587,7 @@ var BaseModal_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
587
587
  })], -1)])], 8, _hoisted_4$6)) : createCommentVNode("", true)]),
588
588
  createElementVNode("div", _hoisted_5$5, [renderSlot(_ctx.$slots, "default", {}, void 0, true)]),
589
589
  _ctx.$slots.actions ? (openBlock(), createElementBlock("div", _hoisted_6$4, [renderSlot(_ctx.$slots, "actions", {}, void 0, true)])) : createCommentVNode("", true)
590
- ], 8, _hoisted_1$12)], 32)) : createCommentVNode("", true)]),
590
+ ], 8, _hoisted_1$13)], 32)) : createCommentVNode("", true)]),
591
591
  _: 3
592
592
  })]);
593
593
  };
@@ -595,7 +595,7 @@ var BaseModal_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
595
595
  }), [["__scopeId", "data-v-92ea084c"]]);
596
596
  //#endregion
597
597
  //#region src/web/BasePagination.vue?vue&type=script&setup=true&lang.ts
598
- var _hoisted_1$11 = ["aria-label"];
598
+ var _hoisted_1$12 = ["aria-label"];
599
599
  var _hoisted_2$8 = ["disabled", "aria-label"];
600
600
  var _hoisted_3$7 = {
601
601
  key: 0,
@@ -683,13 +683,13 @@ var BasePagination_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/*
683
683
  "aria-label": __props.nextLabel,
684
684
  onClick: _cache[1] || (_cache[1] = ($event) => go(__props.page + 1))
685
685
  }, " › ", 8, _hoisted_5$4)
686
- ], 8, _hoisted_1$11);
686
+ ], 8, _hoisted_1$12);
687
687
  };
688
688
  }
689
689
  }), [["__scopeId", "data-v-29950578"]]);
690
690
  //#endregion
691
691
  //#region src/web/CommandMenu.vue?vue&type=script&setup=true&lang.ts
692
- var _hoisted_1$10 = ["aria-label"];
692
+ var _hoisted_1$11 = ["aria-label"];
693
693
  var _hoisted_2$7 = { class: "rk-command-field" };
694
694
  var _hoisted_3$6 = [
695
695
  "placeholder",
@@ -889,44 +889,33 @@ var CommandMenu_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
889
889
  item.hint ? (openBlock(), createElementBlock("span", _hoisted_8$2, toDisplayString(item.hint), 1)) : createCommentVNode("", true)
890
890
  ], 42, _hoisted_6$3);
891
891
  }), 128))], 64);
892
- }), 128)), flat.value.length === 0 ? (openBlock(), createElementBlock("p", _hoisted_9$2, toDisplayString(__props.emptyLabel), 1)) : createCommentVNode("", true)], 8, _hoisted_4$4)], 8, _hoisted_1$10)], 32)) : createCommentVNode("", true)]),
892
+ }), 128)), flat.value.length === 0 ? (openBlock(), createElementBlock("p", _hoisted_9$2, toDisplayString(__props.emptyLabel), 1)) : createCommentVNode("", true)], 8, _hoisted_4$4)], 8, _hoisted_1$11)], 32)) : createCommentVNode("", true)]),
893
893
  _: 1
894
894
  })], 8, ["to"]);
895
895
  };
896
896
  }
897
- }), [["__scopeId", "data-v-f72521e7"]]);
897
+ }), [["__scopeId", "data-v-64849895"]]);
898
898
  //#endregion
899
899
  //#region src/web/DataTable.vue?vue&type=script&setup=true&lang.ts
900
- var _hoisted_1$9 = ["aria-label"];
901
- var _hoisted_2$6 = {
900
+ var _hoisted_1$10 = {
902
901
  key: 0,
903
902
  scope: "col",
904
903
  class: "rk-data-pick"
905
904
  };
906
- var _hoisted_3$5 = [
907
- "checked",
908
- "indeterminate",
909
- "aria-label"
910
- ];
911
- var _hoisted_4$3 = ["aria-sort"];
912
- var _hoisted_5$2 = ["onClick"];
913
- var _hoisted_6$2 = {
905
+ var _hoisted_2$6 = ["aria-sort"];
906
+ var _hoisted_3$5 = ["onClick"];
907
+ var _hoisted_4$3 = {
914
908
  key: 0,
915
909
  "aria-busy": "true"
916
910
  };
917
- var _hoisted_7$1 = { key: 0 };
918
- var _hoisted_8$1 = { key: 1 };
919
- var _hoisted_9$1 = {
911
+ var _hoisted_5$2 = { key: 0 };
912
+ var _hoisted_6$2 = { key: 1 };
913
+ var _hoisted_7$1 = {
920
914
  key: 0,
921
915
  class: "rk-data-pick"
922
916
  };
923
- var _hoisted_10$1 = [
924
- "checked",
925
- "aria-label",
926
- "onChange"
927
- ];
928
- var _hoisted_11 = { key: 2 };
929
- var _hoisted_12 = ["colspan"];
917
+ var _hoisted_8$1 = { key: 2 };
918
+ var _hoisted_9$1 = ["colspan"];
930
919
  //#endregion
931
920
  //#region src/web/DataTable.vue
932
921
  var DataTable_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
@@ -1015,83 +1004,91 @@ var DataTable_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
1015
1004
  }
1016
1005
  const columnCount = computed(() => __props.columns.length + (selectable.value ? 1 : 0));
1017
1006
  return (_ctx, _cache) => {
1018
- return openBlock(), createElementBlock("div", {
1019
- class: "rk-data-scroll",
1020
- tabindex: "0",
1021
- role: "region",
1022
- "aria-label": __props.caption
1023
- }, [createElementVNode("table", { class: normalizeClass(["rk-data", { "is-sticky": __props.stickyHeader }]) }, [
1024
- createElementVNode("caption", { class: normalizeClass(__props.captionHidden ? "rk-data-caption-hidden" : "rk-data-caption") }, toDisplayString(__props.caption), 3),
1025
- createElementVNode("thead", null, [createElementVNode("tr", null, [selectable.value ? (openBlock(), createElementBlock("th", _hoisted_2$6, [createElementVNode("input", {
1026
- type: "checkbox",
1027
- class: "rk-data-box focus-ring",
1028
- checked: allChosen.value,
1029
- indeterminate: someChosen.value,
1030
- "aria-label": __props.selectAllLabel,
1031
- onChange: toggleAll
1032
- }, null, 40, _hoisted_3$5)])) : createCommentVNode("", true), (openBlock(true), createElementBlock(Fragment, null, renderList(__props.columns, (column) => {
1033
- return openBlock(), createElementBlock("th", {
1034
- key: column.key,
1035
- scope: "col",
1036
- "aria-sort": ariaSort(column),
1037
- class: normalizeClass([column.align && `is-${column.align}`, column.nowrap && "is-nowrap"])
1038
- }, [column.sortable ? (openBlock(), createElementBlock("button", {
1039
- key: 0,
1040
- type: "button",
1041
- class: "rk-data-sort focus-ring",
1042
- onClick: ($event) => toggleSort(column)
1043
- }, [createTextVNode(toDisplayString(column.label) + " ", 1), ariaSort(column) === "ascending" ? (openBlock(), createBlock(unref(ArrowUp), {
1044
- key: 0,
1045
- class: "size-3.5",
1046
- "aria-hidden": "true"
1047
- })) : ariaSort(column) === "descending" ? (openBlock(), createBlock(unref(ArrowDown), {
1048
- key: 1,
1049
- class: "size-3.5",
1050
- "aria-hidden": "true"
1051
- })) : (openBlock(), createBlock(unref(ChevronsUpDown), {
1052
- key: 2,
1053
- class: "size-3.5 opacity-40",
1054
- "aria-hidden": "true"
1055
- }))], 8, _hoisted_5$2)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [createTextVNode(toDisplayString(column.label), 1)], 64))], 10, _hoisted_4$3);
1056
- }), 128))])]),
1057
- __props.loading ? (openBlock(), createElementBlock("tbody", _hoisted_6$2, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.loadingRows, (row) => {
1058
- return openBlock(), createElementBlock("tr", { key: row }, [selectable.value ? (openBlock(), createElementBlock("td", _hoisted_7$1)) : createCommentVNode("", true), (openBlock(true), createElementBlock(Fragment, null, renderList(__props.columns, (column) => {
1059
- return openBlock(), createElementBlock("td", { key: column.key }, [createVNode(BaseSkeleton_default, {
1060
- shape: "text",
1061
- height: "0.75rem",
1062
- width: "70%"
1063
- })]);
1064
- }), 128))]);
1065
- }), 128))])) : shown.value.length > 0 ? (openBlock(), createElementBlock("tbody", _hoisted_8$1, [(openBlock(true), createElementBlock(Fragment, null, renderList(shown.value, (row, index) => {
1066
- return openBlock(), createElementBlock("tr", {
1067
- key: keyOf(row, index),
1068
- class: normalizeClass({ "is-chosen": selected.value.includes(keyOf(row, index)) })
1069
- }, [selectable.value ? (openBlock(), createElementBlock("td", _hoisted_9$1, [createElementVNode("input", {
1070
- type: "checkbox",
1071
- class: "rk-data-box focus-ring",
1072
- checked: selected.value.includes(keyOf(row, index)),
1073
- "aria-label": __props.rowLabel(row),
1074
- onChange: ($event) => toggleRow(keyOf(row, index))
1075
- }, null, 40, _hoisted_10$1)])) : createCommentVNode("", true), (openBlock(true), createElementBlock(Fragment, null, renderList(__props.columns, (column) => {
1076
- return openBlock(), createElementBlock("td", {
1007
+ return openBlock(), createBlock(ScrollArea_default, {
1008
+ axis: "x",
1009
+ label: __props.caption,
1010
+ class: "rk-data-scroll"
1011
+ }, {
1012
+ default: withCtx(() => [createElementVNode("table", { class: normalizeClass(["rk-data", { "is-sticky": __props.stickyHeader }]) }, [
1013
+ createElementVNode("caption", { class: normalizeClass(__props.captionHidden ? "rk-data-caption-hidden" : "rk-data-caption") }, toDisplayString(__props.caption), 3),
1014
+ createElementVNode("thead", null, [createElementVNode("tr", null, [selectable.value ? (openBlock(), createElementBlock("th", _hoisted_1$10, [createVNode(BaseCheckbox_default, {
1015
+ "model-value": allChosen.value,
1016
+ indeterminate: someChosen.value,
1017
+ label: __props.selectAllLabel,
1018
+ "label-hidden": "",
1019
+ "onUpdate:modelValue": toggleAll
1020
+ }, null, 8, [
1021
+ "model-value",
1022
+ "indeterminate",
1023
+ "label"
1024
+ ])])) : createCommentVNode("", true), (openBlock(true), createElementBlock(Fragment, null, renderList(__props.columns, (column) => {
1025
+ return openBlock(), createElementBlock("th", {
1077
1026
  key: column.key,
1027
+ scope: "col",
1028
+ "aria-sort": ariaSort(column),
1078
1029
  class: normalizeClass([column.align && `is-${column.align}`, column.nowrap && "is-nowrap"])
1079
- }, [renderSlot(_ctx.$slots, column.key, {
1080
- row,
1081
- value: row[column.key]
1082
- }, () => [createTextVNode(toDisplayString(row[column.key]), 1)], true)], 2);
1083
- }), 128))], 2);
1084
- }), 128))])) : (openBlock(), createElementBlock("tbody", _hoisted_11, [createElementVNode("tr", null, [createElementVNode("td", {
1085
- colspan: columnCount.value,
1086
- class: "rk-data-empty"
1087
- }, [renderSlot(_ctx.$slots, "empty", {}, void 0, true)], 8, _hoisted_12)])]))
1088
- ], 2)], 8, _hoisted_1$9);
1030
+ }, [column.sortable ? (openBlock(), createElementBlock("button", {
1031
+ key: 0,
1032
+ type: "button",
1033
+ class: "rk-data-sort focus-ring",
1034
+ onClick: ($event) => toggleSort(column)
1035
+ }, [createTextVNode(toDisplayString(column.label) + " ", 1), ariaSort(column) === "ascending" ? (openBlock(), createBlock(unref(ArrowUp), {
1036
+ key: 0,
1037
+ class: "size-3.5",
1038
+ "aria-hidden": "true"
1039
+ })) : ariaSort(column) === "descending" ? (openBlock(), createBlock(unref(ArrowDown), {
1040
+ key: 1,
1041
+ class: "size-3.5",
1042
+ "aria-hidden": "true"
1043
+ })) : (openBlock(), createBlock(unref(ChevronsUpDown), {
1044
+ key: 2,
1045
+ class: "size-3.5 opacity-40",
1046
+ "aria-hidden": "true"
1047
+ }))], 8, _hoisted_3$5)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [createTextVNode(toDisplayString(column.label), 1)], 64))], 10, _hoisted_2$6);
1048
+ }), 128))])]),
1049
+ __props.loading ? (openBlock(), createElementBlock("tbody", _hoisted_4$3, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.loadingRows, (row) => {
1050
+ return openBlock(), createElementBlock("tr", { key: row }, [selectable.value ? (openBlock(), createElementBlock("td", _hoisted_5$2)) : createCommentVNode("", true), (openBlock(true), createElementBlock(Fragment, null, renderList(__props.columns, (column) => {
1051
+ return openBlock(), createElementBlock("td", { key: column.key }, [createVNode(BaseSkeleton_default, {
1052
+ shape: "text",
1053
+ height: "0.75rem",
1054
+ width: "70%"
1055
+ })]);
1056
+ }), 128))]);
1057
+ }), 128))])) : shown.value.length > 0 ? (openBlock(), createElementBlock("tbody", _hoisted_6$2, [(openBlock(true), createElementBlock(Fragment, null, renderList(shown.value, (row, index) => {
1058
+ return openBlock(), createElementBlock("tr", {
1059
+ key: keyOf(row, index),
1060
+ class: normalizeClass({ "is-chosen": selected.value.includes(keyOf(row, index)) })
1061
+ }, [selectable.value ? (openBlock(), createElementBlock("td", _hoisted_7$1, [createVNode(BaseCheckbox_default, {
1062
+ "model-value": selected.value.includes(keyOf(row, index)),
1063
+ label: __props.rowLabel(row),
1064
+ "label-hidden": "",
1065
+ "onUpdate:modelValue": ($event) => toggleRow(keyOf(row, index))
1066
+ }, null, 8, [
1067
+ "model-value",
1068
+ "label",
1069
+ "onUpdate:modelValue"
1070
+ ])])) : createCommentVNode("", true), (openBlock(true), createElementBlock(Fragment, null, renderList(__props.columns, (column) => {
1071
+ return openBlock(), createElementBlock("td", {
1072
+ key: column.key,
1073
+ class: normalizeClass([column.align && `is-${column.align}`, column.nowrap && "is-nowrap"])
1074
+ }, [renderSlot(_ctx.$slots, column.key, {
1075
+ row,
1076
+ value: row[column.key]
1077
+ }, () => [createTextVNode(toDisplayString(row[column.key]), 1)], true)], 2);
1078
+ }), 128))], 2);
1079
+ }), 128))])) : (openBlock(), createElementBlock("tbody", _hoisted_8$1, [createElementVNode("tr", null, [createElementVNode("td", {
1080
+ colspan: columnCount.value,
1081
+ class: "rk-data-empty"
1082
+ }, [renderSlot(_ctx.$slots, "empty", {}, void 0, true)], 8, _hoisted_9$1)])]))
1083
+ ], 2)]),
1084
+ _: 3
1085
+ }, 8, ["label"]);
1089
1086
  };
1090
1087
  }
1091
- }), [["__scopeId", "data-v-f95c586b"]]);
1088
+ }), [["__scopeId", "data-v-54510109"]]);
1092
1089
  //#endregion
1093
1090
  //#region src/web/BaseSplitter.vue?vue&type=script&setup=true&lang.ts
1094
- var _hoisted_1$8 = { class: "rk-split-pane is-start" };
1091
+ var _hoisted_1$9 = { class: "rk-split-pane is-start" };
1095
1092
  var _hoisted_2$5 = [
1096
1093
  "aria-label",
1097
1094
  "aria-orientation",
@@ -1126,7 +1123,8 @@ var BaseSplitter_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
1126
1123
  function moveTo(point) {
1127
1124
  const box = root.value?.getBoundingClientRect();
1128
1125
  if (!box) return;
1129
- const ratio = horizontal.value ? (point - box.left) / box.width : (point - box.top) / box.height;
1126
+ const alongX = elementDirection(root.value) === "rtl" ? (box.right - point) / box.width : (point - box.left) / box.width;
1127
+ const ratio = horizontal.value ? alongX : (point - box.top) / box.height;
1130
1128
  split.value = clamp(Math.round(ratio * 100));
1131
1129
  }
1132
1130
  function onPointerDown(event) {
@@ -1143,15 +1141,16 @@ var BaseSplitter_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
1143
1141
  event.target.releasePointerCapture?.(event.pointerId);
1144
1142
  }
1145
1143
  function onKeydown(event) {
1146
- const back = horizontal.value ? "ArrowLeft" : "ArrowUp";
1147
- const forward = horizontal.value ? "ArrowRight" : "ArrowDown";
1148
- const next = {
1149
- [back]: split.value - __props.step,
1150
- [forward]: split.value + __props.step,
1144
+ const along = horizontal.value ? horizontalStep(event.key, event.currentTarget) : {
1145
+ ArrowDown: 1,
1146
+ ArrowUp: -1
1147
+ }[event.key] ?? 0;
1148
+ const moves = {
1151
1149
  Home: __props.min,
1152
1150
  End: __props.max,
1153
1151
  Enter: startedAt
1154
- }[event.key];
1152
+ };
1153
+ const next = along === 0 ? moves[event.key] : split.value + along * __props.step;
1155
1154
  if (next === void 0) return;
1156
1155
  event.preventDefault();
1157
1156
  split.value = clamp(next);
@@ -1164,7 +1163,7 @@ var BaseSplitter_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
1164
1163
  class: normalizeClass(["rk-split", [`is-${__props.orientation}`, { "is-dragging": dragging.value }]]),
1165
1164
  style: normalizeStyle({ "--rk-split": `${split.value}%` })
1166
1165
  }, [
1167
- createElementVNode("div", _hoisted_1$8, [renderSlot(_ctx.$slots, "start", {}, void 0, true)]),
1166
+ createElementVNode("div", _hoisted_1$9, [renderSlot(_ctx.$slots, "start", {}, void 0, true)]),
1168
1167
  createElementVNode("div", {
1169
1168
  class: "rk-split-handle focus-ring",
1170
1169
  role: "separator",
@@ -1187,10 +1186,10 @@ var BaseSplitter_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
1187
1186
  ], 6);
1188
1187
  };
1189
1188
  }
1190
- }), [["__scopeId", "data-v-159a4f08"]]);
1189
+ }), [["__scopeId", "data-v-977911a2"]]);
1191
1190
  //#endregion
1192
1191
  //#region src/web/BaseToolbar.vue?vue&type=script&setup=true&lang.ts
1193
- var _hoisted_1$7 = ["aria-label", "aria-orientation"];
1192
+ var _hoisted_1$8 = ["aria-label", "aria-orientation"];
1194
1193
  /**
1195
1194
  * A row of controls that belong together: a formatting bar, a row of view
1196
1195
  * switches, the actions over a table.
@@ -1234,16 +1233,15 @@ var BaseToolbar_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
1234
1233
  list[at.value]?.focus();
1235
1234
  }
1236
1235
  function onKeydown(event) {
1237
- const back = __props.orientation === "horizontal" ? "ArrowLeft" : "ArrowUp";
1238
- const forward = __props.orientation === "horizontal" ? "ArrowRight" : "ArrowDown";
1239
1236
  const list = controls();
1240
1237
  const current = list.indexOf(document.activeElement);
1241
- if (event.key === back) {
1238
+ const step = __props.orientation === "horizontal" ? horizontalStep(event.key, event.currentTarget) : {
1239
+ ArrowDown: 1,
1240
+ ArrowUp: -1
1241
+ }[event.key] ?? 0;
1242
+ if (step !== 0) {
1242
1243
  event.preventDefault();
1243
- focusAt(current - 1);
1244
- } else if (event.key === forward) {
1245
- event.preventDefault();
1246
- focusAt(current + 1);
1244
+ focusAt(current + step);
1247
1245
  } else if (event.key === "Home") {
1248
1246
  event.preventDefault();
1249
1247
  focusAt(0);
@@ -1270,13 +1268,13 @@ var BaseToolbar_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
1270
1268
  "aria-orientation": __props.orientation,
1271
1269
  onKeydown,
1272
1270
  onFocusin
1273
- }, [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 42, _hoisted_1$7);
1271
+ }, [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 42, _hoisted_1$8);
1274
1272
  };
1275
1273
  }
1276
- }), [["__scopeId", "data-v-a65164b7"]]);
1274
+ }), [["__scopeId", "data-v-d49198bf"]]);
1277
1275
  //#endregion
1278
1276
  //#region src/web/BaseTree.vue?vue&type=script&setup=true&lang.ts
1279
- var _hoisted_1$6 = ["aria-label", "aria-multiselectable"];
1277
+ var _hoisted_1$7 = ["aria-label", "aria-multiselectable"];
1280
1278
  var _hoisted_2$4 = [
1281
1279
  "aria-level",
1282
1280
  "aria-setsize",
@@ -1367,12 +1365,13 @@ var BaseTree_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
1367
1365
  moveTo(active.value - 1);
1368
1366
  break;
1369
1367
  case "ArrowRight":
1370
- event.preventDefault();
1371
- if (hasChildren(row.node) && !isOpen(row.node)) setOpen(row.node, true);
1372
- else if (hasChildren(row.node)) moveTo(active.value + 1);
1373
- break;
1374
1368
  case "ArrowLeft": {
1375
1369
  event.preventDefault();
1370
+ if (horizontalStep(event.key, event.currentTarget) === 1) {
1371
+ if (hasChildren(row.node) && !isOpen(row.node)) setOpen(row.node, true);
1372
+ else if (hasChildren(row.node)) moveTo(active.value + 1);
1373
+ break;
1374
+ }
1376
1375
  if (hasChildren(row.node) && isOpen(row.node)) {
1377
1376
  setOpen(row.node, false);
1378
1377
  break;
@@ -1438,13 +1437,13 @@ var BaseTree_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
1438
1437
  })) : createCommentVNode("", true),
1439
1438
  createElementVNode("span", _hoisted_4$2, toDisplayString(row.node.label), 1)
1440
1439
  ], 14, _hoisted_2$4);
1441
- }), 128))], 40, _hoisted_1$6);
1440
+ }), 128))], 40, _hoisted_1$7);
1442
1441
  };
1443
1442
  }
1444
- }), [["__scopeId", "data-v-f91deddf"]]);
1443
+ }), [["__scopeId", "data-v-297d9dad"]]);
1445
1444
  //#endregion
1446
1445
  //#region src/web/TransferList.vue?vue&type=script&setup=true&lang.ts
1447
- var _hoisted_1$5 = { class: "rk-transfer" };
1446
+ var _hoisted_1$6 = { class: "rk-transfer" };
1448
1447
  var _hoisted_2$3 = { class: "rk-transfer-side" };
1449
1448
  var _hoisted_3$2 = { class: "rk-transfer-title" };
1450
1449
  var _hoisted_4$1 = { class: "rk-transfer-middle" };
@@ -1482,7 +1481,7 @@ var TransferList_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
1482
1481
  markedChosen.value = [];
1483
1482
  }
1484
1483
  return (_ctx, _cache) => {
1485
- return openBlock(), createElementBlock("div", _hoisted_1$5, [
1484
+ return openBlock(), createElementBlock("div", _hoisted_1$6, [
1486
1485
  createElementVNode("div", _hoisted_2$3, [createElementVNode("p", _hoisted_3$2, toDisplayString(__props.availableLabel), 1), createVNode(BaseListbox_default, {
1487
1486
  modelValue: markedAvailable.value,
1488
1487
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => markedAvailable.value = $event),
@@ -1534,7 +1533,7 @@ var TransferList_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
1534
1533
  }), [["__scopeId", "data-v-1d75b0da"]]);
1535
1534
  //#endregion
1536
1535
  //#region src/web/ResponsiveDialog.vue?vue&type=script&setup=true&lang.ts
1537
- var _hoisted_1$4 = {
1536
+ var _hoisted_1$5 = {
1538
1537
  key: 0,
1539
1538
  class: "rk-responsive-actions"
1540
1539
  };
@@ -1595,7 +1594,7 @@ var ResponsiveDialog_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/
1595
1594
  subtitle: __props.subtitle,
1596
1595
  "close-label": __props.closeLabel
1597
1596
  }, {
1598
- default: withCtx(() => [renderSlot(_ctx.$slots, "default", {}, void 0, true), _ctx.$slots.actions ? (openBlock(), createElementBlock("div", _hoisted_1$4, [renderSlot(_ctx.$slots, "actions", {}, void 0, true)])) : createCommentVNode("", true)]),
1597
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default", {}, void 0, true), _ctx.$slots.actions ? (openBlock(), createElementBlock("div", _hoisted_1$5, [renderSlot(_ctx.$slots, "actions", {}, void 0, true)])) : createCommentVNode("", true)]),
1599
1598
  _: 3
1600
1599
  }, 8, [
1601
1600
  "modelValue",
@@ -1608,7 +1607,7 @@ var ResponsiveDialog_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/
1608
1607
  }), [["__scopeId", "data-v-85131850"]]);
1609
1608
  //#endregion
1610
1609
  //#region src/web/BaseTabs.vue?vue&type=script&setup=true&lang.ts
1611
- var _hoisted_1$3 = ["aria-label"];
1610
+ var _hoisted_1$4 = ["aria-label"];
1612
1611
  var _hoisted_2$2 = [
1613
1612
  "id",
1614
1613
  "aria-selected",
@@ -1646,8 +1645,9 @@ var BaseTabs_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
1646
1645
  if (index < 0) return;
1647
1646
  const last = __props.items.length - 1;
1648
1647
  let next;
1649
- if (event.key === "ArrowRight") next = index === last ? 0 : index + 1;
1650
- else if (event.key === "ArrowLeft") next = index === 0 ? last : index - 1;
1648
+ const step = horizontalStep(event.key, event.currentTarget);
1649
+ if (step === 1) next = index === last ? 0 : index + 1;
1650
+ else if (step === -1) next = index === 0 ? last : index - 1;
1651
1651
  else if (event.key === "Home") next = 0;
1652
1652
  else if (event.key === "End") next = last;
1653
1653
  else return;
@@ -1676,7 +1676,7 @@ var BaseTabs_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
1676
1676
  tabindex: item.key === active.value ? 0 : -1,
1677
1677
  onClick: ($event) => select(item.key)
1678
1678
  }, toDisplayString(item.label), 11, _hoisted_2$2);
1679
- }), 128))], 40, _hoisted_1$3), (openBlock(true), createElementBlock(Fragment, null, renderList(__props.items, (item) => {
1679
+ }), 128))], 40, _hoisted_1$4), (openBlock(true), createElementBlock(Fragment, null, renderList(__props.items, (item) => {
1680
1680
  return withDirectives((openBlock(), createElementBlock("div", {
1681
1681
  id: panelId(item.key),
1682
1682
  key: item.key,
@@ -1691,10 +1691,10 @@ var BaseTabs_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
1691
1691
  }), 128))]);
1692
1692
  };
1693
1693
  }
1694
- }), [["__scopeId", "data-v-8135ecab"]]);
1694
+ }), [["__scopeId", "data-v-dc56244f"]]);
1695
1695
  //#endregion
1696
1696
  //#region src/web/BaseTooltip.vue?vue&type=script&setup=true&lang.ts
1697
- var _hoisted_1$2 = ["id"];
1697
+ var _hoisted_1$3 = ["id"];
1698
1698
  //#endregion
1699
1699
  //#region src/web/BaseTooltip.vue
1700
1700
  var BaseTooltip_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
@@ -1754,13 +1754,13 @@ var BaseTooltip_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
1754
1754
  left: `${at.value.x}px`,
1755
1755
  top: __props.placement === "top" ? `${at.value.y - __props.offset}px` : `${at.value.y + __props.offset}px`
1756
1756
  } : void 0)
1757
- }, toDisplayString(__props.label), 15, _hoisted_1$2)], 32);
1757
+ }, toDisplayString(__props.label), 15, _hoisted_1$3)], 32);
1758
1758
  };
1759
1759
  }
1760
1760
  }), [["__scopeId", "data-v-c31426f8"]]);
1761
1761
  //#endregion
1762
1762
  //#region src/web/MegaMenu.vue?vue&type=script&setup=true&lang.ts
1763
- var _hoisted_1$1 = ["aria-label"];
1763
+ var _hoisted_1$2 = ["aria-label"];
1764
1764
  var _hoisted_2$1 = { class: "rk-mega-bar" };
1765
1765
  var _hoisted_3 = ["onPointerenter"];
1766
1766
  var _hoisted_4 = [
@@ -1939,13 +1939,13 @@ var MegaMenu_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
1939
1939
  }, 1032, ["to"])]);
1940
1940
  }), 128))])]);
1941
1941
  }), 128))]), renderSlot(_ctx.$slots, item.key, {}, void 0, true)], 8, _hoisted_5)) : createCommentVNode("", true)], 40, _hoisted_3);
1942
- }), 128))])], 40, _hoisted_1$1);
1942
+ }), 128))])], 40, _hoisted_1$2);
1943
1943
  };
1944
1944
  }
1945
- }), [["__scopeId", "data-v-9c8be532"]]);
1945
+ }), [["__scopeId", "data-v-a6df77ff"]]);
1946
1946
  //#endregion
1947
1947
  //#region src/web/NavLinks.vue?vue&type=script&setup=true&lang.ts
1948
- var _hoisted_1 = ["aria-label"];
1948
+ var _hoisted_1$1 = ["aria-label"];
1949
1949
  var _hoisted_2 = { class: "rk-nav-inner" };
1950
1950
  //#endregion
1951
1951
  //#region src/web/NavLinks.vue
@@ -1975,11 +1975,35 @@ var NavLinks_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
1975
1975
  "class",
1976
1976
  "aria-current"
1977
1977
  ]);
1978
- }), 128))])], 8, _hoisted_1);
1978
+ }), 128))])], 8, _hoisted_1$1);
1979
1979
  };
1980
1980
  }
1981
1981
  }), [["__scopeId", "data-v-52e5d553"]]);
1982
1982
  //#endregion
1983
- export { BaseAccordion_default as BaseAccordion, BaseBreadcrumb_default as BaseBreadcrumb, BaseContextMenu_default as BaseContextMenu, BaseDisclosure_default as BaseDisclosure, BaseDrawer_default as BaseDrawer, BaseHoverCard_default as BaseHoverCard, BaseModal_default as BaseModal, BasePagination_default as BasePagination, BaseSplitter_default as BaseSplitter, BaseTabs_default as BaseTabs, BaseToolbar_default as BaseToolbar, BaseTooltip_default as BaseTooltip, BaseTree_default as BaseTree, CommandMenu_default as CommandMenu, DataTable_default as DataTable, MegaMenu_default as MegaMenu, NavLinks_default as NavLinks, ResponsiveDialog_default as ResponsiveDialog, TransferList_default as TransferList };
1983
+ //#region src/web/SkipLink.vue?vue&type=script&setup=true&lang.ts
1984
+ var _hoisted_1 = ["href"];
1985
+ //#endregion
1986
+ //#region src/web/SkipLink.vue
1987
+ var SkipLink_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
1988
+ __name: "SkipLink",
1989
+ props: {
1990
+ for: {},
1991
+ label: {}
1992
+ },
1993
+ setup(__props) {
1994
+ function skip(event) {
1995
+ if (focusTarget(__props.for)) event.preventDefault();
1996
+ }
1997
+ return (_ctx, _cache) => {
1998
+ return openBlock(), createElementBlock("a", {
1999
+ href: `#${_ctx.$props.for}`,
2000
+ class: "rk-skip",
2001
+ onClick: skip
2002
+ }, toDisplayString(__props.label), 9, _hoisted_1);
2003
+ };
2004
+ }
2005
+ }), [["__scopeId", "data-v-cafce238"]]);
2006
+ //#endregion
2007
+ export { BaseAccordion_default as BaseAccordion, BaseBreadcrumb_default as BaseBreadcrumb, BaseContextMenu_default as BaseContextMenu, BaseDisclosure_default as BaseDisclosure, BaseDrawer_default as BaseDrawer, BaseHoverCard_default as BaseHoverCard, BaseModal_default as BaseModal, BasePagination_default as BasePagination, BaseSplitter_default as BaseSplitter, BaseTabs_default as BaseTabs, BaseToolbar_default as BaseToolbar, BaseTooltip_default as BaseTooltip, BaseTree_default as BaseTree, CommandMenu_default as CommandMenu, DataTable_default as DataTable, MegaMenu_default as MegaMenu, NavLinks_default as NavLinks, ResponsiveDialog_default as ResponsiveDialog, SkipLink_default as SkipLink, TransferList_default as TransferList };
1984
2008
 
1985
2009
  //# sourceMappingURL=web.js.map