@shwfed/config 2.12.5 → 2.12.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/dist/module.json +1 -1
  2. package/dist/module.mjs +5 -0
  3. package/dist/runtime/components/config/blocks/2026-06-17/com.shwfed.block.tree.single/runtime.vue +54 -50
  4. package/dist/runtime/components/config/index.vue +23 -3
  5. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.text/config.d.vue.ts +22 -22
  6. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.text/config.vue.d.ts +22 -22
  7. package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.combobox.single/config.d.vue.ts +16 -16
  8. package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.combobox.single/config.vue.d.ts +16 -16
  9. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.date/config.d.vue.ts +16 -16
  10. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.date/config.vue.d.ts +16 -16
  11. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.daterange/config.d.vue.ts +24 -24
  12. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.daterange/config.vue.d.ts +24 -24
  13. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetime/config.d.vue.ts +16 -16
  14. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetime/config.vue.d.ts +16 -16
  15. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetimerange/config.d.vue.ts +26 -26
  16. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetimerange/config.vue.d.ts +26 -26
  17. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.timerange/config.d.vue.ts +2 -2
  18. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.timerange/config.vue.d.ts +2 -2
  19. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.number/config.d.vue.ts +30 -28
  20. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.number/config.vue +38 -0
  21. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.number/config.vue.d.ts +30 -28
  22. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.number/runtime.vue +11 -2
  23. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.number/schema.d.ts +3 -0
  24. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.number/schema.js +7 -0
  25. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.numberrange/config.d.vue.ts +6 -6
  26. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.numberrange/config.vue.d.ts +6 -6
  27. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.switch/config.d.vue.ts +22 -22
  28. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.switch/config.vue.d.ts +22 -22
  29. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.combobox.single.remote/config.d.vue.ts +16 -16
  30. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.combobox.single.remote/config.vue.d.ts +16 -16
  31. package/dist/runtime/components/form/fields/2026-05-23/com.shwfed.form.field.tree.multi/config.d.vue.ts +10 -10
  32. package/dist/runtime/components/form/fields/2026-05-23/com.shwfed.form.field.tree.multi/config.vue.d.ts +10 -10
  33. package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.month/config.d.vue.ts +16 -16
  34. package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.month/config.vue.d.ts +16 -16
  35. package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.monthrange/config.d.vue.ts +24 -24
  36. package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.monthrange/config.vue.d.ts +24 -24
  37. package/dist/runtime/components/form/fields/2026-05-25/com.shwfed.form.field.combobox.multi/config.d.vue.ts +16 -16
  38. package/dist/runtime/components/form/fields/2026-05-25/com.shwfed.form.field.combobox.multi/config.vue.d.ts +16 -16
  39. package/dist/runtime/components/form/fields/2026-05-26/com.shwfed.form.field.tree.combobox.multi/config.d.vue.ts +10 -10
  40. package/dist/runtime/components/form/fields/2026-05-26/com.shwfed.form.field.tree.combobox.multi/config.vue.d.ts +10 -10
  41. package/dist/runtime/components/form/fields/2026-05-26/com.shwfed.form.field.tree.combobox.single/config.d.vue.ts +10 -10
  42. package/dist/runtime/components/form/fields/2026-05-26/com.shwfed.form.field.tree.combobox.single/config.vue.d.ts +10 -10
  43. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.multi/config.d.vue.ts +10 -10
  44. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.multi/config.vue.d.ts +10 -10
  45. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.single/config.d.vue.ts +10 -10
  46. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.single/config.vue.d.ts +10 -10
  47. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.multi/config.d.vue.ts +10 -10
  48. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.multi/config.vue.d.ts +10 -10
  49. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.single/config.d.vue.ts +10 -10
  50. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.single/config.vue.d.ts +10 -10
  51. package/dist/runtime/components/sidebar/index.d.vue.ts +22 -3
  52. package/dist/runtime/components/sidebar/index.vue +66 -5
  53. package/dist/runtime/components/sidebar/index.vue.d.ts +22 -3
  54. package/dist/runtime/components/sidebar/node.d.vue.ts +1 -1
  55. package/dist/runtime/components/sidebar/node.vue +33 -13
  56. package/dist/runtime/components/sidebar/node.vue.d.ts +1 -1
  57. package/dist/runtime/components/sidebar/tree.vue +113 -83
  58. package/dist/runtime/components/sidebar/types.d.ts +8 -0
  59. package/dist/runtime/components/sidebar/types.js +1 -0
  60. package/dist/runtime/components/table/columns/2026-04-14/com.shwfed.table.column.number/runtime.vue +6 -73
  61. package/dist/runtime/components/table/columns/2026-05-20/com.shwfed.table.column.combobox-single/config.d.vue.ts +2 -2
  62. package/dist/runtime/components/table/columns/2026-05-20/com.shwfed.table.column.combobox-single/config.vue.d.ts +2 -2
  63. package/dist/runtime/components/table/columns/2026-05-20/com.shwfed.table.column.number-input/config.vue +44 -0
  64. package/dist/runtime/components/table/columns/2026-05-20/com.shwfed.table.column.number-input/runtime.vue +8 -2
  65. package/dist/runtime/components/table/columns/2026-05-20/com.shwfed.table.column.number-input/schema.d.ts +3 -0
  66. package/dist/runtime/components/table/columns/2026-05-20/com.shwfed.table.column.number-input/schema.js +7 -0
  67. package/dist/runtime/components/table/columns/2026-05-24/com.shwfed.table.column.combobox-single.remote.options-remote/config.d.vue.ts +6 -6
  68. package/dist/runtime/components/table/columns/2026-05-24/com.shwfed.table.column.combobox-single.remote.options-remote/config.vue.d.ts +6 -6
  69. package/dist/runtime/components/table/columns/2026-05-24/com.shwfed.table.column.combobox-single.remote.options-static/config.d.vue.ts +2 -2
  70. package/dist/runtime/components/table/columns/2026-05-24/com.shwfed.table.column.combobox-single.remote.options-static/config.vue.d.ts +2 -2
  71. package/dist/runtime/components/table/columns/2026-05-25/com.shwfed.table.column.combobox-multi/config.d.vue.ts +2 -2
  72. package/dist/runtime/components/table/columns/2026-05-25/com.shwfed.table.column.combobox-multi/config.vue.d.ts +2 -2
  73. package/dist/runtime/components/table/columns/2026-05-25/com.shwfed.table.column.combobox-multi.remote.options-remote/config.d.vue.ts +6 -6
  74. package/dist/runtime/components/table/columns/2026-05-25/com.shwfed.table.column.combobox-multi.remote.options-remote/config.vue.d.ts +6 -6
  75. package/dist/runtime/components/table/columns/2026-05-25/com.shwfed.table.column.combobox-multi.remote.options-static/config.d.vue.ts +2 -2
  76. package/dist/runtime/components/table/columns/2026-05-25/com.shwfed.table.column.combobox-multi.remote.options-static/config.vue.d.ts +2 -2
  77. package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-multi/config.d.vue.ts +2 -2
  78. package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-multi/config.vue.d.ts +2 -2
  79. package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-multi.remote/config.d.vue.ts +2 -2
  80. package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-multi.remote/config.vue.d.ts +2 -2
  81. package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-single/config.d.vue.ts +2 -2
  82. package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-single/config.vue.d.ts +2 -2
  83. package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-single.remote/config.d.vue.ts +2 -2
  84. package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-single.remote/config.vue.d.ts +2 -2
  85. package/dist/runtime/components/table/columns/2026-05-27/com.shwfed.table.column.tree-combobox-multi/config.d.vue.ts +10 -10
  86. package/dist/runtime/components/table/columns/2026-05-27/com.shwfed.table.column.tree-combobox-multi/config.vue.d.ts +10 -10
  87. package/dist/runtime/components/table/columns/2026-05-27/com.shwfed.table.column.tree-combobox-single/config.d.vue.ts +10 -10
  88. package/dist/runtime/components/table/columns/2026-05-27/com.shwfed.table.column.tree-combobox-single/config.vue.d.ts +10 -10
  89. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-multi/config.d.vue.ts +2 -2
  90. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-multi/config.vue.d.ts +2 -2
  91. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-single/config.d.vue.ts +2 -2
  92. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-single/config.vue.d.ts +2 -2
  93. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-multi/config.d.vue.ts +10 -10
  94. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-multi/config.vue.d.ts +10 -10
  95. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-single/config.d.vue.ts +10 -10
  96. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-single/config.vue.d.ts +10 -10
  97. package/dist/runtime/components/table/columns/2026-06-14/com.shwfed.table.column.combobox-multi/config.d.vue.ts +2 -2
  98. package/dist/runtime/components/table/columns/2026-06-14/com.shwfed.table.column.combobox-multi/config.vue.d.ts +2 -2
  99. package/dist/runtime/components/table/columns/2026-06-14/com.shwfed.table.column.combobox-single/config.d.vue.ts +2 -2
  100. package/dist/runtime/components/table/columns/2026-06-14/com.shwfed.table.column.combobox-single/config.vue.d.ts +2 -2
  101. package/dist/runtime/components/table/columns/2026-06-14/com.shwfed.table.column.tree-combobox-multi/config.d.vue.ts +10 -10
  102. package/dist/runtime/components/table/columns/2026-06-14/com.shwfed.table.column.tree-combobox-multi/config.vue.d.ts +10 -10
  103. package/dist/runtime/components/table/columns/2026-06-14/com.shwfed.table.column.tree-combobox-single/config.d.vue.ts +10 -10
  104. package/dist/runtime/components/table/columns/2026-06-14/com.shwfed.table.column.tree-combobox-single/config.vue.d.ts +10 -10
  105. package/dist/runtime/components/table/utils/row-reorder.d.ts +3 -2
  106. package/dist/runtime/components/table/utils/row-reorder.js +1 -12
  107. package/dist/runtime/components/tabs/index.d.vue.ts +9 -0
  108. package/dist/runtime/components/tabs/index.vue +92 -0
  109. package/dist/runtime/components/tabs/index.vue.d.ts +9 -0
  110. package/dist/runtime/components/tabs/tab.d.vue.ts +22 -0
  111. package/dist/runtime/components/tabs/tab.vue +85 -0
  112. package/dist/runtime/components/tabs/tab.vue.d.ts +22 -0
  113. package/dist/runtime/components/tabs/types.d.ts +19 -0
  114. package/dist/runtime/components/tabs/types.js +0 -0
  115. package/dist/runtime/components/tabs/use-reorder.d.ts +10 -0
  116. package/dist/runtime/components/tabs/use-reorder.js +90 -0
  117. package/dist/runtime/components/tabs/use-tabs.d.ts +46 -0
  118. package/dist/runtime/components/tabs/use-tabs.js +101 -0
  119. package/dist/runtime/components/ui/date-picker/DatePickerInput.d.vue.ts +1 -1
  120. package/dist/runtime/components/ui/date-picker/DatePickerInput.vue.d.ts +1 -1
  121. package/dist/runtime/components/ui/date-picker/DatePickerTimeInput.d.vue.ts +1 -1
  122. package/dist/runtime/components/ui/date-picker/DatePickerTimeInput.vue.d.ts +1 -1
  123. package/dist/runtime/components/ui/date-range-picker/DateRangePickerInput.d.vue.ts +1 -1
  124. package/dist/runtime/components/ui/date-range-picker/DateRangePickerInput.vue.d.ts +1 -1
  125. package/dist/runtime/components/ui/date-range-picker/DateRangePickerTimeInput.d.vue.ts +2 -2
  126. package/dist/runtime/components/ui/date-range-picker/DateRangePickerTimeInput.vue.d.ts +2 -2
  127. package/dist/runtime/components/ui/sidebar/SidebarMenuAction.vue +1 -1
  128. package/dist/runtime/components/ui/sidebar/index.js +2 -2
  129. package/dist/runtime/share/number-format.d.ts +7 -0
  130. package/dist/runtime/share/number-format.js +72 -0
  131. package/dist/runtime/share/reorder.d.ts +2 -0
  132. package/dist/runtime/share/reorder.js +12 -0
  133. package/dist/runtime/utils/nav-registry.d.ts +19 -0
  134. package/dist/runtime/utils/nav-registry.js +14 -0
  135. package/dist/runtime/utils/page-title-registry.d.ts +3 -0
  136. package/dist/runtime/utils/page-title-registry.js +11 -0
  137. package/package.json +1 -1
package/dist/module.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "shwfed",
3
3
  "configKey": "shwfed",
4
- "version": "2.12.5",
4
+ "version": "2.12.7",
5
5
  "builder": {
6
6
  "@nuxt/module-builder": "1.0.2",
7
7
  "unbuild": "unknown"
package/dist/module.mjs CHANGED
@@ -109,6 +109,7 @@ const module$1 = defineNuxtModule({
109
109
  "@atlaskit/pragmatic-drag-and-drop/combine",
110
110
  "@atlaskit/pragmatic-drag-and-drop/element/adapter",
111
111
  "@atlaskit/pragmatic-drag-and-drop-hitbox/tree-item",
112
+ "@atlaskit/pragmatic-drag-and-drop-hitbox/closest-edge",
112
113
  "@atlaskit/pragmatic-drag-and-drop/element/preserve-offset-on-source",
113
114
  "@atlaskit/pragmatic-drag-and-drop/element/set-custom-native-drag-preview",
114
115
  "vaul-vue",
@@ -142,6 +143,10 @@ const module$1 = defineNuxtModule({
142
143
  name: "ShwfedSidebar",
143
144
  filePath: resolver.resolve("./runtime/components/sidebar/index.vue")
144
145
  });
146
+ addComponent({
147
+ name: "ShwfedTabs",
148
+ filePath: resolver.resolve("./runtime/components/tabs/index.vue")
149
+ });
145
150
  for (const folder of EXPOSED_UI_FOLDERS) {
146
151
  const folderPath = resolver.resolve(`./runtime/components/ui/${folder}`);
147
152
  for (const file of readdirSync(folderPath)) {
@@ -13,6 +13,7 @@ import { getLocalizedText } from "../../../../../share/locale";
13
13
  import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput } from "../../../../ui/input-group";
14
14
  import { Field, FieldLabel } from "../../../../ui/field";
15
15
  import { Markdown } from "../../../../ui/markdown";
16
+ import { ScrollArea } from "../../../../ui/scroll-area";
16
17
  import { Skeleton } from "../../../../ui/skeleton";
17
18
  import { Tree as UiTree } from "../../../../ui/tree";
18
19
  import { interpolateMarkdown } from "../../../../table/utils/runtime";
@@ -280,60 +281,63 @@ const hasNodeActions = computed(() => block.value.nodeActions.items.length > 0);
280
281
  <Skeleton class="h-6 w-2/5" />
281
282
  </div>
282
283
 
283
- <UiTree
284
+ <ScrollArea
284
285
  v-else
285
- v-model="model"
286
- :roots="roots"
287
- :get-key="getKey"
288
- :get-children="getChildren"
289
- selection-mode="single"
290
- select-cursor="default"
291
- single-toggle
292
- :selectable="nodeSelectable"
293
- :filter-predicate="filterPredicate"
294
- :filter-query="filterQuery"
295
- :initial-expanded="initialExpanded"
296
- class="min-h-0 flex-1 overflow-auto"
286
+ class="min-h-0 flex-1"
297
287
  >
298
- <template #node="{ node }">
299
- <!-- Selection is conveyed solely by the row highlight (UiTree paints
300
- the selected row's background) — no explicit radio glyph. -->
301
- <span class="flex flex-col gap-0.5">
302
- <Markdown
303
- :source="nodeLabelText(node)"
304
- class="prose prose-sm prose-zinc text-zinc-700"
305
- />
306
- <Markdown
307
- v-if="nodeTooltipText(node)"
308
- :source="nodeTooltipText(node)"
309
- block
310
- class="prose prose-xs prose-zinc text-zinc-400"
311
- />
312
- </span>
313
- </template>
314
-
315
- <template
316
- v-if="hasNodeActions"
317
- #actions="{ node }"
288
+ <UiTree
289
+ v-model="model"
290
+ :roots="roots"
291
+ :get-key="getKey"
292
+ :get-children="getChildren"
293
+ selection-mode="single"
294
+ select-cursor="default"
295
+ single-toggle
296
+ :selectable="nodeSelectable"
297
+ :filter-predicate="filterPredicate"
298
+ :filter-query="filterQuery"
299
+ :initial-expanded="initialExpanded"
318
300
  >
319
- <!-- Hover/focus-revealed: hidden by default, fades in when the row
320
- (which carries `group`) is hovered or an action button is focused.
321
- `pointer-events-none` while hidden so the invisible buttons don't
322
- swallow row clicks. -->
323
- <span
324
- class="opacity-0 transition-opacity duration-150 group-hover:opacity-100 group-hover:pointer-events-auto focus-within:opacity-100 focus-within:pointer-events-auto pointer-events-none"
301
+ <template #node="{ node }">
302
+ <!-- Selection is conveyed solely by the row highlight (UiTree paints
303
+ the selected row's background) no explicit radio glyph. -->
304
+ <span class="flex flex-col gap-0.5">
305
+ <Markdown
306
+ :source="nodeLabelText(node)"
307
+ class="prose prose-sm prose-zinc text-zinc-700"
308
+ />
309
+ <Markdown
310
+ v-if="nodeTooltipText(node)"
311
+ :source="nodeTooltipText(node)"
312
+ block
313
+ class="prose prose-xs prose-zinc text-zinc-400"
314
+ />
315
+ </span>
316
+ </template>
317
+
318
+ <template
319
+ v-if="hasNodeActions"
320
+ #actions="{ node }"
325
321
  >
326
- <NodeActions
327
- :node="node"
328
- :config="block.nodeActions"
329
- :configure="configure"
330
- />
331
- </span>
332
- </template>
322
+ <!-- Hover/focus-revealed: hidden by default, fades in when the row
323
+ (which carries `group`) is hovered or an action button is focused.
324
+ `pointer-events-none` while hidden so the invisible buttons don't
325
+ swallow row clicks. -->
326
+ <span
327
+ class="opacity-0 transition-opacity duration-150 group-hover:opacity-100 group-hover:pointer-events-auto focus-within:opacity-100 focus-within:pointer-events-auto pointer-events-none"
328
+ >
329
+ <NodeActions
330
+ :node="node"
331
+ :config="block.nodeActions"
332
+ :configure="configure"
333
+ />
334
+ </span>
335
+ </template>
333
336
 
334
- <template #empty>
335
- <span />
336
- </template>
337
- </UiTree>
337
+ <template #empty>
338
+ <span />
339
+ </template>
340
+ </UiTree>
341
+ </ScrollArea>
338
342
  </div>
339
343
  </template>
@@ -1,9 +1,9 @@
1
1
  <script setup>
2
- import { computed, ref, watch } from "vue";
2
+ import { computed, onBeforeUnmount, ref, watch, watchEffect } from "vue";
3
3
  import { Icon } from "@iconify/vue";
4
4
  import { Effect } from "effect";
5
5
  import { useI18n } from "vue-i18n";
6
- import { useHead } from "#app";
6
+ import { navigateTo, useHead, useRoute } from "#app";
7
7
  import { getLocalizedText } from "../../share/locale";
8
8
  import { cel } from "../../utils/cel";
9
9
  import { celBindings, injectCELContext, provideCELContext, SELECTIONS_VAR } from "../../utils/cel-context";
@@ -22,6 +22,8 @@ import * as navigationOperation from "../operations/2026-06-15/com.shwfed.operat
22
22
  import { PAGE_TARGET_ID, createPageConfig } from "./schema";
23
23
  import { useConfigEditor } from "./use-editor";
24
24
  import { findBlock } from "./utils/resolve";
25
+ import { useTabStore } from "../tabs/use-tabs";
26
+ import { publishPageTitle } from "../../utils/page-title-registry";
25
27
  defineOptions({ name: "ShwfedConfig" });
26
28
  const configModel = defineModel("config", { type: null });
27
29
  const config = computed({
@@ -66,10 +68,18 @@ class PageClosed {
66
68
  _tag = "PageClosed";
67
69
  }
68
70
  const { locale } = useI18n({ useScope: "global", inheritLocale: true });
71
+ const route = useRoute();
69
72
  const $cel = (expression, context) => cel(expression, { ...celBindings(inheritedCEL), ...context });
70
73
  provideEventTarget(PAGE_TARGET_ID, {
71
74
  close: () => Effect.gen(function* () {
72
- window.close();
75
+ const store = useTabStore();
76
+ const path = route.path;
77
+ if (store.hasTab(path)) {
78
+ const dest = store.close(path);
79
+ if (dest) void navigateTo(dest);
80
+ } else {
81
+ window.close();
82
+ }
73
83
  return yield* Effect.die(new PageClosed());
74
84
  }),
75
85
  ...operationHandlers(
@@ -122,6 +132,16 @@ useHead(() => {
122
132
  const title = getLocalizedText(config.value.title, locale.value);
123
133
  return title ? { title } : {};
124
134
  });
135
+ let publishedPath = null;
136
+ watchEffect(() => {
137
+ const path = route.path;
138
+ if (publishedPath !== null && publishedPath !== path) publishPageTitle(publishedPath, void 0);
139
+ publishedPath = path;
140
+ publishPageTitle(path, config.value.title);
141
+ });
142
+ onBeforeUnmount(() => {
143
+ if (publishedPath !== null) publishPageTitle(publishedPath, void 0);
144
+ });
125
145
  const isMac = computed(
126
146
  () => typeof navigator !== "undefined" && /Mac/i.test(navigator.platform)
127
147
  );
@@ -39,6 +39,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
39
39
  readonly mode: "formula" | "prefill";
40
40
  readonly expression: string;
41
41
  } | undefined;
42
+ readonly validations?: readonly {
43
+ readonly message: readonly [{
44
+ readonly locale: "zh";
45
+ readonly message: string;
46
+ }, ...{
47
+ readonly locale: "en" | "ja" | "ko";
48
+ readonly message: string;
49
+ }[]];
50
+ readonly warning?: boolean | undefined;
51
+ readonly when: string;
52
+ }[] | undefined;
42
53
  readonly addon?: {
43
54
  readonly size: "default" | "sm" | "xs";
44
55
  readonly style?: string | undefined;
@@ -106,17 +117,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
106
117
  readonly variant?: "default" | "link" | "destructive" | "primary" | "ghost" | undefined;
107
118
  }[];
108
119
  } | undefined;
109
- readonly validations?: readonly {
110
- readonly message: readonly [{
111
- readonly locale: "zh";
112
- readonly message: string;
113
- }, ...{
114
- readonly locale: "en" | "ja" | "ko";
115
- readonly message: string;
116
- }[]];
117
- readonly warning?: boolean | undefined;
118
- readonly when: string;
119
- }[] | undefined;
120
120
  }) => any;
121
121
  }, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
122
122
  "onUpdate:modelValue"?: ((value: {
@@ -155,6 +155,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
155
155
  readonly mode: "formula" | "prefill";
156
156
  readonly expression: string;
157
157
  } | undefined;
158
+ readonly validations?: readonly {
159
+ readonly message: readonly [{
160
+ readonly locale: "zh";
161
+ readonly message: string;
162
+ }, ...{
163
+ readonly locale: "en" | "ja" | "ko";
164
+ readonly message: string;
165
+ }[]];
166
+ readonly warning?: boolean | undefined;
167
+ readonly when: string;
168
+ }[] | undefined;
158
169
  readonly addon?: {
159
170
  readonly size: "default" | "sm" | "xs";
160
171
  readonly style?: string | undefined;
@@ -222,17 +233,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
222
233
  readonly variant?: "default" | "link" | "destructive" | "primary" | "ghost" | undefined;
223
234
  }[];
224
235
  } | undefined;
225
- readonly validations?: readonly {
226
- readonly message: readonly [{
227
- readonly locale: "zh";
228
- readonly message: string;
229
- }, ...{
230
- readonly locale: "en" | "ja" | "ko";
231
- readonly message: string;
232
- }[]];
233
- readonly warning?: boolean | undefined;
234
- readonly when: string;
235
- }[] | undefined;
236
236
  }) => any) | undefined;
237
237
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
238
238
  declare const _default: typeof __VLS_export;
@@ -39,6 +39,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
39
39
  readonly mode: "formula" | "prefill";
40
40
  readonly expression: string;
41
41
  } | undefined;
42
+ readonly validations?: readonly {
43
+ readonly message: readonly [{
44
+ readonly locale: "zh";
45
+ readonly message: string;
46
+ }, ...{
47
+ readonly locale: "en" | "ja" | "ko";
48
+ readonly message: string;
49
+ }[]];
50
+ readonly warning?: boolean | undefined;
51
+ readonly when: string;
52
+ }[] | undefined;
42
53
  readonly addon?: {
43
54
  readonly size: "default" | "sm" | "xs";
44
55
  readonly style?: string | undefined;
@@ -106,17 +117,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
106
117
  readonly variant?: "default" | "link" | "destructive" | "primary" | "ghost" | undefined;
107
118
  }[];
108
119
  } | undefined;
109
- readonly validations?: readonly {
110
- readonly message: readonly [{
111
- readonly locale: "zh";
112
- readonly message: string;
113
- }, ...{
114
- readonly locale: "en" | "ja" | "ko";
115
- readonly message: string;
116
- }[]];
117
- readonly warning?: boolean | undefined;
118
- readonly when: string;
119
- }[] | undefined;
120
120
  }) => any;
121
121
  }, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
122
122
  "onUpdate:modelValue"?: ((value: {
@@ -155,6 +155,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
155
155
  readonly mode: "formula" | "prefill";
156
156
  readonly expression: string;
157
157
  } | undefined;
158
+ readonly validations?: readonly {
159
+ readonly message: readonly [{
160
+ readonly locale: "zh";
161
+ readonly message: string;
162
+ }, ...{
163
+ readonly locale: "en" | "ja" | "ko";
164
+ readonly message: string;
165
+ }[]];
166
+ readonly warning?: boolean | undefined;
167
+ readonly when: string;
168
+ }[] | undefined;
158
169
  readonly addon?: {
159
170
  readonly size: "default" | "sm" | "xs";
160
171
  readonly style?: string | undefined;
@@ -222,17 +233,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
222
233
  readonly variant?: "default" | "link" | "destructive" | "primary" | "ghost" | undefined;
223
234
  }[];
224
235
  } | undefined;
225
- readonly validations?: readonly {
226
- readonly message: readonly [{
227
- readonly locale: "zh";
228
- readonly message: string;
229
- }, ...{
230
- readonly locale: "en" | "ja" | "ko";
231
- readonly message: string;
232
- }[]];
233
- readonly warning?: boolean | undefined;
234
- readonly when: string;
235
- }[] | undefined;
236
236
  }) => any) | undefined;
237
237
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
238
238
  declare const _default: typeof __VLS_export;
@@ -40,14 +40,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
40
40
  readonly mode: "formula" | "prefill";
41
41
  readonly expression: string;
42
42
  } | undefined;
43
- readonly optionValue: string;
44
- readonly optionLabel: readonly [{
45
- readonly locale: "zh";
46
- readonly message: string;
47
- }, ...{
48
- readonly locale: "en" | "ja" | "ko";
49
- readonly message: string;
50
- }[]];
51
43
  readonly validations?: readonly {
52
44
  readonly message: readonly [{
53
45
  readonly locale: "zh";
@@ -59,6 +51,14 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
59
51
  readonly warning?: boolean | undefined;
60
52
  readonly when: string;
61
53
  }[] | undefined;
54
+ readonly optionValue: string;
55
+ readonly optionLabel: readonly [{
56
+ readonly locale: "zh";
57
+ readonly message: string;
58
+ }, ...{
59
+ readonly locale: "en" | "ja" | "ko";
60
+ readonly message: string;
61
+ }[]];
62
62
  }) => any;
63
63
  }, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
64
64
  "onUpdate:modelValue"?: ((value: {
@@ -98,14 +98,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
98
98
  readonly mode: "formula" | "prefill";
99
99
  readonly expression: string;
100
100
  } | undefined;
101
- readonly optionValue: string;
102
- readonly optionLabel: readonly [{
103
- readonly locale: "zh";
104
- readonly message: string;
105
- }, ...{
106
- readonly locale: "en" | "ja" | "ko";
107
- readonly message: string;
108
- }[]];
109
101
  readonly validations?: readonly {
110
102
  readonly message: readonly [{
111
103
  readonly locale: "zh";
@@ -117,6 +109,14 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
117
109
  readonly warning?: boolean | undefined;
118
110
  readonly when: string;
119
111
  }[] | undefined;
112
+ readonly optionValue: string;
113
+ readonly optionLabel: readonly [{
114
+ readonly locale: "zh";
115
+ readonly message: string;
116
+ }, ...{
117
+ readonly locale: "en" | "ja" | "ko";
118
+ readonly message: string;
119
+ }[]];
120
120
  }) => any) | undefined;
121
121
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
122
122
  declare const _default: typeof __VLS_export;
@@ -40,14 +40,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
40
40
  readonly mode: "formula" | "prefill";
41
41
  readonly expression: string;
42
42
  } | undefined;
43
- readonly optionValue: string;
44
- readonly optionLabel: readonly [{
45
- readonly locale: "zh";
46
- readonly message: string;
47
- }, ...{
48
- readonly locale: "en" | "ja" | "ko";
49
- readonly message: string;
50
- }[]];
51
43
  readonly validations?: readonly {
52
44
  readonly message: readonly [{
53
45
  readonly locale: "zh";
@@ -59,6 +51,14 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
59
51
  readonly warning?: boolean | undefined;
60
52
  readonly when: string;
61
53
  }[] | undefined;
54
+ readonly optionValue: string;
55
+ readonly optionLabel: readonly [{
56
+ readonly locale: "zh";
57
+ readonly message: string;
58
+ }, ...{
59
+ readonly locale: "en" | "ja" | "ko";
60
+ readonly message: string;
61
+ }[]];
62
62
  }) => any;
63
63
  }, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
64
64
  "onUpdate:modelValue"?: ((value: {
@@ -98,14 +98,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
98
98
  readonly mode: "formula" | "prefill";
99
99
  readonly expression: string;
100
100
  } | undefined;
101
- readonly optionValue: string;
102
- readonly optionLabel: readonly [{
103
- readonly locale: "zh";
104
- readonly message: string;
105
- }, ...{
106
- readonly locale: "en" | "ja" | "ko";
107
- readonly message: string;
108
- }[]];
109
101
  readonly validations?: readonly {
110
102
  readonly message: readonly [{
111
103
  readonly locale: "zh";
@@ -117,6 +109,14 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
117
109
  readonly warning?: boolean | undefined;
118
110
  readonly when: string;
119
111
  }[] | undefined;
112
+ readonly optionValue: string;
113
+ readonly optionLabel: readonly [{
114
+ readonly locale: "zh";
115
+ readonly message: string;
116
+ }, ...{
117
+ readonly locale: "en" | "ja" | "ko";
118
+ readonly message: string;
119
+ }[]];
120
120
  }) => any) | undefined;
121
121
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
122
122
  declare const _default: typeof __VLS_export;
@@ -42,27 +42,27 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
42
42
  readonly format?: string | undefined;
43
43
  readonly valueFormat?: string | undefined;
44
44
  readonly disabledDate?: string | undefined;
45
- readonly presets?: readonly {
46
- readonly label: readonly [{
45
+ readonly validations?: readonly {
46
+ readonly message: readonly [{
47
47
  readonly locale: "zh";
48
48
  readonly message: string;
49
49
  }, ...{
50
50
  readonly locale: "en" | "ja" | "ko";
51
51
  readonly message: string;
52
52
  }[]];
53
- readonly id: string;
54
- readonly value: string;
53
+ readonly warning?: boolean | undefined;
54
+ readonly when: string;
55
55
  }[] | undefined;
56
- readonly validations?: readonly {
57
- readonly message: readonly [{
56
+ readonly presets?: readonly {
57
+ readonly label: readonly [{
58
58
  readonly locale: "zh";
59
59
  readonly message: string;
60
60
  }, ...{
61
61
  readonly locale: "en" | "ja" | "ko";
62
62
  readonly message: string;
63
63
  }[]];
64
- readonly warning?: boolean | undefined;
65
- readonly when: string;
64
+ readonly id: string;
65
+ readonly value: string;
66
66
  }[] | undefined;
67
67
  }) => any;
68
68
  }, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
@@ -105,27 +105,27 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
105
105
  readonly format?: string | undefined;
106
106
  readonly valueFormat?: string | undefined;
107
107
  readonly disabledDate?: string | undefined;
108
- readonly presets?: readonly {
109
- readonly label: readonly [{
108
+ readonly validations?: readonly {
109
+ readonly message: readonly [{
110
110
  readonly locale: "zh";
111
111
  readonly message: string;
112
112
  }, ...{
113
113
  readonly locale: "en" | "ja" | "ko";
114
114
  readonly message: string;
115
115
  }[]];
116
- readonly id: string;
117
- readonly value: string;
116
+ readonly warning?: boolean | undefined;
117
+ readonly when: string;
118
118
  }[] | undefined;
119
- readonly validations?: readonly {
120
- readonly message: readonly [{
119
+ readonly presets?: readonly {
120
+ readonly label: readonly [{
121
121
  readonly locale: "zh";
122
122
  readonly message: string;
123
123
  }, ...{
124
124
  readonly locale: "en" | "ja" | "ko";
125
125
  readonly message: string;
126
126
  }[]];
127
- readonly warning?: boolean | undefined;
128
- readonly when: string;
127
+ readonly id: string;
128
+ readonly value: string;
129
129
  }[] | undefined;
130
130
  }) => any) | undefined;
131
131
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -42,27 +42,27 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
42
42
  readonly format?: string | undefined;
43
43
  readonly valueFormat?: string | undefined;
44
44
  readonly disabledDate?: string | undefined;
45
- readonly presets?: readonly {
46
- readonly label: readonly [{
45
+ readonly validations?: readonly {
46
+ readonly message: readonly [{
47
47
  readonly locale: "zh";
48
48
  readonly message: string;
49
49
  }, ...{
50
50
  readonly locale: "en" | "ja" | "ko";
51
51
  readonly message: string;
52
52
  }[]];
53
- readonly id: string;
54
- readonly value: string;
53
+ readonly warning?: boolean | undefined;
54
+ readonly when: string;
55
55
  }[] | undefined;
56
- readonly validations?: readonly {
57
- readonly message: readonly [{
56
+ readonly presets?: readonly {
57
+ readonly label: readonly [{
58
58
  readonly locale: "zh";
59
59
  readonly message: string;
60
60
  }, ...{
61
61
  readonly locale: "en" | "ja" | "ko";
62
62
  readonly message: string;
63
63
  }[]];
64
- readonly warning?: boolean | undefined;
65
- readonly when: string;
64
+ readonly id: string;
65
+ readonly value: string;
66
66
  }[] | undefined;
67
67
  }) => any;
68
68
  }, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
@@ -105,27 +105,27 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
105
105
  readonly format?: string | undefined;
106
106
  readonly valueFormat?: string | undefined;
107
107
  readonly disabledDate?: string | undefined;
108
- readonly presets?: readonly {
109
- readonly label: readonly [{
108
+ readonly validations?: readonly {
109
+ readonly message: readonly [{
110
110
  readonly locale: "zh";
111
111
  readonly message: string;
112
112
  }, ...{
113
113
  readonly locale: "en" | "ja" | "ko";
114
114
  readonly message: string;
115
115
  }[]];
116
- readonly id: string;
117
- readonly value: string;
116
+ readonly warning?: boolean | undefined;
117
+ readonly when: string;
118
118
  }[] | undefined;
119
- readonly validations?: readonly {
120
- readonly message: readonly [{
119
+ readonly presets?: readonly {
120
+ readonly label: readonly [{
121
121
  readonly locale: "zh";
122
122
  readonly message: string;
123
123
  }, ...{
124
124
  readonly locale: "en" | "ja" | "ko";
125
125
  readonly message: string;
126
126
  }[]];
127
- readonly warning?: boolean | undefined;
128
- readonly when: string;
127
+ readonly id: string;
128
+ readonly value: string;
129
129
  }[] | undefined;
130
130
  }) => any) | undefined;
131
131
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;