rei-kit 2.10.0 → 2.11.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/styles.css CHANGED
@@ -218,16 +218,16 @@
218
218
  opacity: 0;
219
219
  }
220
220
 
221
- .rk-listbox[data-v-31727bd7] {
221
+ .rk-listbox[data-v-7f8cd788] {
222
222
  overflow-y: auto;
223
223
  border-radius: var(--radius-card);
224
224
  padding: 0.25rem;
225
225
  }
226
- .rk-listbox[data-v-31727bd7]:focus-visible {
226
+ .rk-listbox[data-v-7f8cd788]:focus-visible {
227
227
  outline: 2px solid var(--color-primary);
228
228
  outline-offset: 1px;
229
229
  }
230
- .rk-listbox-option[data-v-31727bd7] {
230
+ .rk-listbox-option[data-v-7f8cd788] {
231
231
  display: flex;
232
232
  cursor: pointer;
233
233
  align-items: center;
@@ -241,38 +241,38 @@
241
241
  /* The current row shows only while the list has focus. A list that is not
242
242
  being used has no "current" row, and a highlight left behind on one reads
243
243
  as a selection — which is exactly what it is not. */
244
- .rk-listbox:focus-within .rk-listbox-option.is-active[data-v-31727bd7] {
244
+ .rk-listbox:focus-within .rk-listbox-option.is-active[data-v-7f8cd788] {
245
245
  background: var(--color-muted);
246
246
  }
247
- .rk-listbox-option.is-chosen[data-v-31727bd7] {
247
+ .rk-listbox-option.is-chosen[data-v-7f8cd788] {
248
248
  color: var(--color-primary);
249
249
  font-weight: 500;
250
250
  }
251
251
 
252
252
  /* Chosen is the tick and the tint, and it holds whether the list is in use
253
253
  or not: the current option and the chosen one are different things. */
254
- .rk-listbox-option.is-chosen[data-v-31727bd7] {
254
+ .rk-listbox-option.is-chosen[data-v-7f8cd788] {
255
255
  background: color-mix(in oklab, var(--color-primary) 10%, transparent);
256
256
  }
257
- .rk-listbox:focus-within .rk-listbox-option.is-chosen.is-active[data-v-31727bd7] {
257
+ .rk-listbox:focus-within .rk-listbox-option.is-chosen.is-active[data-v-7f8cd788] {
258
258
  background: color-mix(in oklab, var(--color-primary) 20%, transparent);
259
259
  }
260
- .rk-listbox-option.is-disabled[data-v-31727bd7] {
260
+ .rk-listbox-option.is-disabled[data-v-7f8cd788] {
261
261
  cursor: not-allowed;
262
262
  opacity: 0.45;
263
263
  }
264
- .rk-listbox-label[data-v-31727bd7] {
264
+ .rk-listbox-label[data-v-7f8cd788] {
265
265
  display: block;
266
266
  overflow: hidden;
267
267
  text-overflow: ellipsis;
268
268
  white-space: nowrap;
269
269
  }
270
- .rk-listbox-description[data-v-31727bd7] {
270
+ .rk-listbox-description[data-v-7f8cd788] {
271
271
  display: block;
272
272
  font-size: 0.75rem;
273
273
  color: var(--color-ink-soft);
274
274
  }
275
- .rk-listbox-empty[data-v-31727bd7] {
275
+ .rk-listbox-empty[data-v-7f8cd788] {
276
276
  padding: 1rem;
277
277
  }
278
278
 
@@ -1334,6 +1334,38 @@ to {
1334
1334
  padding: 0;
1335
1335
  }
1336
1336
 
1337
+ .rk-dl[data-v-831e205b] {
1338
+ display: grid;
1339
+ gap: 0.75rem;
1340
+ }
1341
+ .rk-dl.is-inline[data-v-831e205b] {
1342
+ gap: 0.5rem;
1343
+ }
1344
+ .rk-dl-row[data-v-831e205b] {
1345
+ display: grid;
1346
+ gap: 0.125rem;
1347
+ }
1348
+
1349
+ /* Inline from a tablet up: below that a term and its value side by side
1350
+ leave neither enough room to read. */
1351
+ @media (min-width: 40rem) {
1352
+ .is-inline .rk-dl-row[data-v-831e205b] {
1353
+ grid-template-columns: minmax(6rem, 12rem) minmax(0, 1fr);
1354
+ gap: 1rem;
1355
+ align-items: baseline;
1356
+ }
1357
+ }
1358
+ .rk-dl-term[data-v-831e205b] {
1359
+ font-size: 0.75rem;
1360
+ font-weight: 600;
1361
+ letter-spacing: 0.02em;
1362
+ color: var(--color-ink-soft);
1363
+ }
1364
+ .rk-dl-value[data-v-831e205b] {
1365
+ font-size: 0.875rem;
1366
+ color: var(--color-ink);
1367
+ }
1368
+
1337
1369
  .rk-drop-box[data-v-a42eab69] {
1338
1370
  display: flex;
1339
1371
  cursor: pointer;
@@ -1506,6 +1538,38 @@ to {
1506
1538
  transform: translateY(4px) scale(0.98);
1507
1539
  }
1508
1540
 
1541
+ .rk-time[data-v-0037adb2] {
1542
+ display: block;
1543
+ }
1544
+ .rk-time-field[data-v-0037adb2] {
1545
+ display: flex;
1546
+ width: 100%;
1547
+ height: 2.75rem;
1548
+ align-items: center;
1549
+ gap: 0.5rem;
1550
+ border-radius: var(--radius-card);
1551
+ padding: 0 0.75rem;
1552
+ text-align: left;
1553
+ font-size: 1rem;
1554
+ font-variant-numeric: tabular-nums;
1555
+ color: var(--color-ink);
1556
+ }
1557
+ .rk-time-field.is-empty[data-v-0037adb2] {
1558
+ color: var(--color-ink-soft);
1559
+ }
1560
+ .rk-time-field.is-invalid[data-v-0037adb2] {
1561
+ --surface-border-color: var(--color-negative);
1562
+ }
1563
+ .rk-time-field[data-v-0037adb2]:disabled {
1564
+ opacity: 0.5;
1565
+ }
1566
+ .rk-time-columns[data-v-0037adb2] {
1567
+ display: grid;
1568
+ grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
1569
+ gap: 0.5rem;
1570
+ width: 14rem;
1571
+ }
1572
+
1509
1573
  .rk-date[data-v-154e27fb] {
1510
1574
  display: block;
1511
1575
  }
@@ -1611,6 +1675,29 @@ to {
1611
1675
  }
1612
1676
  }
1613
1677
 
1678
+ .rk-confirm[data-v-9453e511] {
1679
+ max-width: 17rem;
1680
+ }
1681
+ .rk-confirm-title[data-v-9453e511] {
1682
+ font-size: 0.875rem;
1683
+ font-weight: 600;
1684
+ color: var(--color-ink);
1685
+ }
1686
+ .rk-confirm-message[data-v-9453e511] {
1687
+ margin-top: 0.125rem;
1688
+ font-size: 0.8125rem;
1689
+ line-height: 1.5;
1690
+ color: var(--color-ink-soft);
1691
+ }
1692
+
1693
+ /* The confirming button last, where the eye and the thumb finish. */
1694
+ .rk-confirm-actions[data-v-9453e511] {
1695
+ margin-top: 0.75rem;
1696
+ display: flex;
1697
+ justify-content: flex-end;
1698
+ gap: 0.5rem;
1699
+ }
1700
+
1614
1701
  .rk-toggles[data-v-9076e36f] {
1615
1702
  display: inline-flex;
1616
1703
  flex-wrap: wrap;
@@ -2751,17 +2838,17 @@ to {
2751
2838
  align-items: stretch;
2752
2839
  }
2753
2840
 
2754
- .rk-tree[data-v-1ba675c5] {
2841
+ .rk-tree[data-v-f91deddf] {
2755
2842
  display: flex;
2756
2843
  flex-direction: column;
2757
2844
  gap: 1px;
2758
2845
  border-radius: var(--radius-card);
2759
2846
  }
2760
- .rk-tree[data-v-1ba675c5]:focus-visible {
2847
+ .rk-tree[data-v-f91deddf]:focus-visible {
2761
2848
  outline: 2px solid var(--color-primary);
2762
2849
  outline-offset: 2px;
2763
2850
  }
2764
- .rk-tree-row[data-v-1ba675c5] {
2851
+ .rk-tree-row[data-v-f91deddf] {
2765
2852
  display: flex;
2766
2853
  cursor: pointer;
2767
2854
  align-items: center;
@@ -2772,31 +2859,31 @@ to {
2772
2859
  font-size: 0.875rem;
2773
2860
  color: var(--color-ink);
2774
2861
  }
2775
- .rk-tree-row.is-active[data-v-1ba675c5] {
2862
+ .rk-tree-row.is-active[data-v-f91deddf] {
2776
2863
  background: var(--color-muted);
2777
2864
  }
2778
- .rk-tree-row.is-chosen[data-v-1ba675c5] {
2865
+ .rk-tree-row.is-chosen[data-v-f91deddf] {
2779
2866
  color: var(--color-primary);
2780
2867
  font-weight: 500;
2781
2868
  }
2782
- .rk-tree-row.is-chosen.is-active[data-v-1ba675c5] {
2869
+ .rk-tree-row.is-chosen.is-active[data-v-f91deddf] {
2783
2870
  background: color-mix(in oklab, var(--color-primary) 12%, transparent);
2784
2871
  }
2785
- .rk-tree-row.is-disabled[data-v-1ba675c5] {
2872
+ .rk-tree-row.is-disabled[data-v-f91deddf] {
2786
2873
  cursor: not-allowed;
2787
2874
  opacity: 0.45;
2788
2875
  }
2789
- .rk-tree-twist[data-v-1ba675c5],
2790
- .rk-tree-twist-space[data-v-1ba675c5] {
2876
+ .rk-tree-twist[data-v-f91deddf],
2877
+ .rk-tree-twist-space[data-v-f91deddf] {
2791
2878
  width: 1rem;
2792
2879
  height: 1rem;
2793
2880
  flex-shrink: 0;
2794
2881
  }
2795
- .rk-tree-twist[data-v-1ba675c5] {
2882
+ .rk-tree-twist[data-v-f91deddf] {
2796
2883
  color: var(--color-ink-soft);
2797
2884
  transition: rotate var(--duration-fast) var(--ease-standard);
2798
2885
  }
2799
- .rk-tree-twist.is-open[data-v-1ba675c5] {
2886
+ .rk-tree-twist.is-open[data-v-f91deddf] {
2800
2887
  rotate: 90deg;
2801
2888
  }
2802
2889
 
@@ -2833,6 +2920,15 @@ to {
2833
2920
  }
2834
2921
  }
2835
2922
 
2923
+ /* The sheet has no actions slot of its own: on a phone the buttons belong in
2924
+ the flow, at the end of what they are about, within reach of a thumb. */
2925
+ .rk-responsive-actions[data-v-85131850] {
2926
+ display: flex;
2927
+ flex-direction: column-reverse;
2928
+ gap: 0.5rem;
2929
+ padding-top: 1rem;
2930
+ }
2931
+
2836
2932
  .rk-tabs[data-v-8135ecab] {
2837
2933
  display: flex;
2838
2934
  align-items: center;
@@ -0,0 +1,50 @@
1
+ /**
2
+ * One question, asked the way the screen it lands on expects: a modal on a
3
+ * wide screen, a sheet from the bottom edge on a phone.
4
+ *
5
+ * The two are the same thing at different sizes, and apps keep writing both
6
+ * and choosing between them by hand — which is two markups, two sets of
7
+ * labels and one of them usually left behind.
8
+ *
9
+ * The query is read after mount rather than during render: a server has no
10
+ * screen, and a layout guessed there and swapped on hydration is a page that
11
+ * jumps. Until it is known, it is the sheet — the narrow answer, because the
12
+ * narrow one fits on both.
13
+ */
14
+ type __VLS_Props = {
15
+ /** The dialog's heading, and its accessible name. Already translated. */
16
+ title: string;
17
+ /** Accessible name of the close button. */
18
+ closeLabel: string;
19
+ /** A line under the title, on the sheet. */
20
+ subtitle?: string | undefined;
21
+ /** `alert` makes the wide one an `alertdialog`: an answer is required. */
22
+ tone?: 'default' | 'alert' | undefined;
23
+ dismissible?: boolean | undefined;
24
+ /** Where it turns from a sheet into a modal. Any media width. */
25
+ breakpoint?: string | undefined;
26
+ };
27
+ type __VLS_Slots = {
28
+ /** The body. */
29
+ default: () => unknown;
30
+ /** Buttons, at the foot. */
31
+ actions?: () => unknown;
32
+ };
33
+ type __VLS_ModelProps = {
34
+ /** Open or closed, with `v-model`. */
35
+ modelValue?: boolean;
36
+ };
37
+ type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
38
+ declare const __VLS_base: import('vue').DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
39
+ "update:modelValue": (value: boolean) => any;
40
+ }, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
41
+ "onUpdate:modelValue"?: (value: boolean) => any;
42
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
43
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
44
+ declare const _default: typeof __VLS_export;
45
+ export default _default;
46
+ type __VLS_WithSlots<T, S> = T & {
47
+ new (): {
48
+ $slots: S;
49
+ };
50
+ };
@@ -56,6 +56,12 @@ export { default as BaseToolbar } from './BaseToolbar.vue';
56
56
  export { default as BaseTree } from './BaseTree.vue';
57
57
  export type { TreeNode } from './BaseTree.vue';
58
58
  export { default as TransferList } from './TransferList.vue';
59
+ /**
60
+ * One question, asked the way the screen expects: a modal on a wide screen,
61
+ * a sheet on a phone. In the wide entry because it needs both, and a phone
62
+ * app that only ever shows the sheet should reach for `BaseSheet` itself.
63
+ */
64
+ export { default as ResponsiveDialog } from './ResponsiveDialog.vue';
59
65
  export { default as BaseTabs } from './BaseTabs.vue';
60
66
  export type { TabPanel } from './BaseTabs.vue';
61
67
  export { default as BaseTooltip } from './BaseTooltip.vue';
package/dist/web.js CHANGED
@@ -1,12 +1,12 @@
1
- import { i as ensureSheetRoot, n as useBoundValue, t as inertOutside } from "./inert-BRQcZwpX.js";
1
+ import { n as inertOutside, o as ensureSheetRoot, r as useBoundValue, t as BaseSheet_default } from "./BaseSheet-B7401rS7.js";
2
+ import { n as BaseListbox_default, r as useMediaQuery, t as BaseSkeleton_default } from "./BaseSkeleton-DnqwogzV.js";
2
3
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BOaGB7Aw.js";
3
4
  import { t as BaseButton_default } from "./BaseButton-RN2an975.js";
4
- import { n as BaseListbox_default, t as BaseSkeleton_default } from "./BaseSkeleton-BlhlEskx.js";
5
- import { Fragment, Teleport, Transition, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, 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, withModifiers } from "vue";
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, withModifiers } from "vue";
6
6
  import { ArrowDown, ArrowUp, ChevronLeft, ChevronRight, ChevronsUpDown, Search } 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$13 = { class: "rk-accordion" };
9
+ var _hoisted_1$14 = { class: "rk-accordion" };
10
10
  var _hoisted_2$12 = [
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$13, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.items, (item) => {
43
+ return openBlock(), createElementBlock("ul", _hoisted_1$14, [(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"
@@ -69,7 +69,7 @@ var BaseAccordion_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @
69
69
  }), [["__scopeId", "data-v-03e2e1d0"]]);
70
70
  //#endregion
71
71
  //#region src/web/BaseBreadcrumb.vue?vue&type=script&setup=true&lang.ts
72
- var _hoisted_1$12 = ["aria-label"];
72
+ var _hoisted_1$13 = ["aria-label"];
73
73
  var _hoisted_2$11 = { class: "rk-crumbs" };
74
74
  var _hoisted_3$9 = {
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$9, toDisplayString(item.label), 1)), index < __props.items.length - 1 ? (openBlock(), createElementBlock("span", _hoisted_4$7, "/")) : createCommentVNode("", true)]);
106
- }), 128))])], 8, _hoisted_1$12);
106
+ }), 128))])], 8, _hoisted_1$13);
107
107
  };
108
108
  }
109
109
  }), [["__scopeId", "data-v-dcc01b03"]]);
110
110
  //#endregion
111
111
  //#region src/web/BaseDisclosure.vue?vue&type=script&setup=true&lang.ts
112
- var _hoisted_1$11 = { class: "rk-disclosure" };
112
+ var _hoisted_1$12 = { class: "rk-disclosure" };
113
113
  var _hoisted_2$10 = ["aria-expanded", "aria-controls"];
114
114
  var _hoisted_3$8 = { class: "rk-disclosure-title" };
115
115
  var _hoisted_4$6 = {
@@ -137,7 +137,7 @@ var BaseDisclosure_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/*
137
137
  const open = useModel(__props, "modelValue");
138
138
  const id = useId();
139
139
  return (_ctx, _cache) => {
140
- return openBlock(), createElementBlock("div", _hoisted_1$11, [(openBlock(), createBlock(resolveDynamicComponent(`h${__props.headingLevel}`), null, {
140
+ return openBlock(), createElementBlock("div", _hoisted_1$12, [(openBlock(), createBlock(resolveDynamicComponent(`h${__props.headingLevel}`), null, {
141
141
  default: withCtx(() => [createElementVNode("button", {
142
142
  type: "button",
143
143
  class: "rk-disclosure-control",
@@ -155,7 +155,7 @@ var BaseDisclosure_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/*
155
155
  }), [["__scopeId", "data-v-ad5c09f5"]]);
156
156
  //#endregion
157
157
  //#region src/web/BaseModal.vue?vue&type=script&setup=true&lang.ts
158
- var _hoisted_1$10 = ["role", "aria-label"];
158
+ var _hoisted_1$11 = ["role", "aria-label"];
159
159
  var _hoisted_2$9 = { class: "rk-modal-head" };
160
160
  var _hoisted_3$7 = { class: "rk-modal-title" };
161
161
  var _hoisted_4$5 = ["aria-label"];
@@ -296,7 +296,7 @@ var BaseModal_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
296
296
  })], -1)])], 8, _hoisted_4$5)) : createCommentVNode("", true)]),
297
297
  createElementVNode("div", _hoisted_5$4, [renderSlot(_ctx.$slots, "default", {}, void 0, true)]),
298
298
  _ctx.$slots.actions ? (openBlock(), createElementBlock("div", _hoisted_6$3, [renderSlot(_ctx.$slots, "actions", {}, void 0, true)])) : createCommentVNode("", true)
299
- ], 8, _hoisted_1$10)], 32)) : createCommentVNode("", true)]),
299
+ ], 8, _hoisted_1$11)], 32)) : createCommentVNode("", true)]),
300
300
  _: 3
301
301
  })]);
302
302
  };
@@ -304,7 +304,7 @@ var BaseModal_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
304
304
  }), [["__scopeId", "data-v-61956691"]]);
305
305
  //#endregion
306
306
  //#region src/web/BasePagination.vue?vue&type=script&setup=true&lang.ts
307
- var _hoisted_1$9 = ["aria-label"];
307
+ var _hoisted_1$10 = ["aria-label"];
308
308
  var _hoisted_2$8 = ["disabled", "aria-label"];
309
309
  var _hoisted_3$6 = {
310
310
  key: 0,
@@ -392,13 +392,13 @@ var BasePagination_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/*
392
392
  "aria-label": __props.nextLabel,
393
393
  onClick: _cache[1] || (_cache[1] = ($event) => go(__props.page + 1))
394
394
  }, " › ", 8, _hoisted_5$3)
395
- ], 8, _hoisted_1$9);
395
+ ], 8, _hoisted_1$10);
396
396
  };
397
397
  }
398
398
  }), [["__scopeId", "data-v-29950578"]]);
399
399
  //#endregion
400
400
  //#region src/web/CommandMenu.vue?vue&type=script&setup=true&lang.ts
401
- var _hoisted_1$8 = ["aria-label"];
401
+ var _hoisted_1$9 = ["aria-label"];
402
402
  var _hoisted_2$7 = { class: "rk-command-field" };
403
403
  var _hoisted_3$5 = [
404
404
  "placeholder",
@@ -581,7 +581,7 @@ var CommandMenu_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
581
581
  item.hint ? (openBlock(), createElementBlock("span", _hoisted_8$1, toDisplayString(item.hint), 1)) : createCommentVNode("", true)
582
582
  ], 42, _hoisted_6$2);
583
583
  }), 128))], 64);
584
- }), 128)), flat.value.length === 0 ? (openBlock(), createElementBlock("p", _hoisted_9$1, toDisplayString(__props.emptyLabel), 1)) : createCommentVNode("", true)], 8, _hoisted_4$3)], 8, _hoisted_1$8)], 32)) : createCommentVNode("", true)]),
584
+ }), 128)), flat.value.length === 0 ? (openBlock(), createElementBlock("p", _hoisted_9$1, toDisplayString(__props.emptyLabel), 1)) : createCommentVNode("", true)], 8, _hoisted_4$3)], 8, _hoisted_1$9)], 32)) : createCommentVNode("", true)]),
585
585
  _: 1
586
586
  })], 8, ["to"]);
587
587
  };
@@ -589,7 +589,7 @@ var CommandMenu_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
589
589
  }), [["__scopeId", "data-v-cce1dd03"]]);
590
590
  //#endregion
591
591
  //#region src/web/DataTable.vue?vue&type=script&setup=true&lang.ts
592
- var _hoisted_1$7 = ["aria-label"];
592
+ var _hoisted_1$8 = ["aria-label"];
593
593
  var _hoisted_2$6 = {
594
594
  key: 0,
595
595
  scope: "col",
@@ -777,13 +777,13 @@ var DataTable_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
777
777
  colspan: columnCount.value,
778
778
  class: "rk-data-empty"
779
779
  }, [renderSlot(_ctx.$slots, "empty", {}, void 0, true)], 8, _hoisted_12)])]))
780
- ], 2)], 8, _hoisted_1$7);
780
+ ], 2)], 8, _hoisted_1$8);
781
781
  };
782
782
  }
783
783
  }), [["__scopeId", "data-v-5920cac0"]]);
784
784
  //#endregion
785
785
  //#region src/web/BaseSplitter.vue?vue&type=script&setup=true&lang.ts
786
- var _hoisted_1$6 = { class: "rk-split-pane is-start" };
786
+ var _hoisted_1$7 = { class: "rk-split-pane is-start" };
787
787
  var _hoisted_2$5 = [
788
788
  "aria-label",
789
789
  "aria-orientation",
@@ -856,7 +856,7 @@ var BaseSplitter_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
856
856
  class: normalizeClass(["rk-split", [`is-${__props.orientation}`, { "is-dragging": dragging.value }]]),
857
857
  style: normalizeStyle({ "--rk-split": `${split.value}%` })
858
858
  }, [
859
- createElementVNode("div", _hoisted_1$6, [renderSlot(_ctx.$slots, "start", {}, void 0, true)]),
859
+ createElementVNode("div", _hoisted_1$7, [renderSlot(_ctx.$slots, "start", {}, void 0, true)]),
860
860
  createElementVNode("div", {
861
861
  class: "rk-split-handle focus-ring",
862
862
  role: "separator",
@@ -882,7 +882,7 @@ var BaseSplitter_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
882
882
  }), [["__scopeId", "data-v-159a4f08"]]);
883
883
  //#endregion
884
884
  //#region src/web/BaseToolbar.vue?vue&type=script&setup=true&lang.ts
885
- var _hoisted_1$5 = ["aria-label", "aria-orientation"];
885
+ var _hoisted_1$6 = ["aria-label", "aria-orientation"];
886
886
  /**
887
887
  * A row of controls that belong together: a formatting bar, a row of view
888
888
  * switches, the actions over a table.
@@ -962,13 +962,13 @@ var BaseToolbar_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
962
962
  "aria-orientation": __props.orientation,
963
963
  onKeydown,
964
964
  onFocusin
965
- }, [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 42, _hoisted_1$5);
965
+ }, [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 42, _hoisted_1$6);
966
966
  };
967
967
  }
968
968
  }), [["__scopeId", "data-v-a65164b7"]]);
969
969
  //#endregion
970
970
  //#region src/web/BaseTree.vue?vue&type=script&setup=true&lang.ts
971
- var _hoisted_1$4 = ["aria-label", "aria-multiselectable"];
971
+ var _hoisted_1$5 = ["aria-label", "aria-multiselectable"];
972
972
  var _hoisted_2$4 = [
973
973
  "aria-level",
974
974
  "aria-setsize",
@@ -1114,7 +1114,7 @@ var BaseTree_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
1114
1114
  "aria-posinset": row.position,
1115
1115
  "aria-expanded": row.node.children?.length ? isOpen(row.node) : void 0,
1116
1116
  "aria-selected": chosen.value.has(row.node.key),
1117
- "aria-disabled": row.node.disabled,
1117
+ "aria-disabled": row.node.disabled || void 0,
1118
1118
  style: normalizeStyle({ "--rk-tree-level": row.level }),
1119
1119
  onClick: ($event) => onClick(index, row)
1120
1120
  }, [
@@ -1130,13 +1130,13 @@ var BaseTree_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
1130
1130
  })) : createCommentVNode("", true),
1131
1131
  createElementVNode("span", _hoisted_4$1, toDisplayString(row.node.label), 1)
1132
1132
  ], 14, _hoisted_2$4);
1133
- }), 128))], 40, _hoisted_1$4);
1133
+ }), 128))], 40, _hoisted_1$5);
1134
1134
  };
1135
1135
  }
1136
- }), [["__scopeId", "data-v-1ba675c5"]]);
1136
+ }), [["__scopeId", "data-v-f91deddf"]]);
1137
1137
  //#endregion
1138
1138
  //#region src/web/TransferList.vue?vue&type=script&setup=true&lang.ts
1139
- var _hoisted_1$3 = { class: "rk-transfer" };
1139
+ var _hoisted_1$4 = { class: "rk-transfer" };
1140
1140
  var _hoisted_2$3 = { class: "rk-transfer-side" };
1141
1141
  var _hoisted_3$1 = { class: "rk-transfer-title" };
1142
1142
  var _hoisted_4 = { class: "rk-transfer-middle" };
@@ -1174,7 +1174,7 @@ var TransferList_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
1174
1174
  markedChosen.value = [];
1175
1175
  }
1176
1176
  return (_ctx, _cache) => {
1177
- return openBlock(), createElementBlock("div", _hoisted_1$3, [
1177
+ return openBlock(), createElementBlock("div", _hoisted_1$4, [
1178
1178
  createElementVNode("div", _hoisted_2$3, [createElementVNode("p", _hoisted_3$1, toDisplayString(__props.availableLabel), 1), createVNode(BaseListbox_default, {
1179
1179
  modelValue: markedAvailable.value,
1180
1180
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => markedAvailable.value = $event),
@@ -1225,6 +1225,80 @@ var TransferList_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
1225
1225
  }
1226
1226
  }), [["__scopeId", "data-v-1d75b0da"]]);
1227
1227
  //#endregion
1228
+ //#region src/web/ResponsiveDialog.vue?vue&type=script&setup=true&lang.ts
1229
+ var _hoisted_1$3 = {
1230
+ key: 0,
1231
+ class: "rk-responsive-actions"
1232
+ };
1233
+ //#endregion
1234
+ //#region src/web/ResponsiveDialog.vue
1235
+ var ResponsiveDialog_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
1236
+ __name: "ResponsiveDialog",
1237
+ props: /*@__PURE__*/ mergeModels({
1238
+ title: {},
1239
+ closeLabel: {},
1240
+ subtitle: { default: "" },
1241
+ tone: { default: "default" },
1242
+ dismissible: {
1243
+ type: Boolean,
1244
+ default: true
1245
+ },
1246
+ breakpoint: { default: "48rem" }
1247
+ }, {
1248
+ "modelValue": {
1249
+ type: Boolean,
1250
+ default: false
1251
+ },
1252
+ "modelModifiers": {}
1253
+ }),
1254
+ emits: ["update:modelValue"],
1255
+ setup(__props) {
1256
+ /** Open or closed, with `v-model`. */
1257
+ const open = useModel(__props, "modelValue");
1258
+ const wide = useMediaQuery(`(min-width: ${__props.breakpoint})`);
1259
+ const asModal = computed(() => wide.value);
1260
+ return (_ctx, _cache) => {
1261
+ return asModal.value ? (openBlock(), createBlock(BaseModal_default, {
1262
+ key: 0,
1263
+ modelValue: open.value,
1264
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => open.value = $event),
1265
+ title: __props.title,
1266
+ "close-label": __props.closeLabel,
1267
+ tone: __props.tone,
1268
+ dismissible: __props.dismissible
1269
+ }, createSlots({
1270
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default", {}, void 0, true)]),
1271
+ _: 2
1272
+ }, [_ctx.$slots.actions ? {
1273
+ name: "actions",
1274
+ fn: withCtx(() => [renderSlot(_ctx.$slots, "actions", {}, void 0, true)]),
1275
+ key: "0"
1276
+ } : void 0]), 1032, [
1277
+ "modelValue",
1278
+ "title",
1279
+ "close-label",
1280
+ "tone",
1281
+ "dismissible"
1282
+ ])) : (openBlock(), createBlock(BaseSheet_default, {
1283
+ key: 1,
1284
+ modelValue: open.value,
1285
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => open.value = $event),
1286
+ title: __props.title,
1287
+ subtitle: __props.subtitle,
1288
+ "close-label": __props.closeLabel
1289
+ }, {
1290
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default", {}, void 0, true), _ctx.$slots.actions ? (openBlock(), createElementBlock("div", _hoisted_1$3, [renderSlot(_ctx.$slots, "actions", {}, void 0, true)])) : createCommentVNode("", true)]),
1291
+ _: 3
1292
+ }, 8, [
1293
+ "modelValue",
1294
+ "title",
1295
+ "subtitle",
1296
+ "close-label"
1297
+ ]));
1298
+ };
1299
+ }
1300
+ }), [["__scopeId", "data-v-85131850"]]);
1301
+ //#endregion
1228
1302
  //#region src/web/BaseTabs.vue?vue&type=script&setup=true&lang.ts
1229
1303
  var _hoisted_1$2 = ["aria-label"];
1230
1304
  var _hoisted_2$2 = [
@@ -1370,6 +1444,6 @@ var NavLinks_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
1370
1444
  }
1371
1445
  }), [["__scopeId", "data-v-52e5d553"]]);
1372
1446
  //#endregion
1373
- export { BaseAccordion_default as BaseAccordion, BaseBreadcrumb_default as BaseBreadcrumb, BaseDisclosure_default as BaseDisclosure, 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, NavLinks_default as NavLinks, TransferList_default as TransferList };
1447
+ export { BaseAccordion_default as BaseAccordion, BaseBreadcrumb_default as BaseBreadcrumb, BaseDisclosure_default as BaseDisclosure, 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, NavLinks_default as NavLinks, ResponsiveDialog_default as ResponsiveDialog, TransferList_default as TransferList };
1374
1448
 
1375
1449
  //# sourceMappingURL=web.js.map