@alfakit/vue 0.1.1 → 0.1.2
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/CHANGELOG.md +8 -0
- package/dist/components/actions/ActionButton.js.map +1 -1
- package/dist/components/actions/ActionButton.vue.d.ts.map +1 -1
- package/dist/components/actions/ActionButton.vue_vue_type_script_setup_true_lang.js +160 -159
- package/dist/components/actions/ActionButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/actions/ActionModal.js.map +1 -1
- package/dist/components/actions/ActionModal.vue.d.ts.map +1 -1
- package/dist/components/actions/ActionModal.vue_vue_type_script_setup_true_lang.js +214 -214
- package/dist/components/actions/ActionModal.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/fields/ColorPickerField.js.map +1 -1
- package/dist/components/fields/ColorPickerField.vue.d.ts.map +1 -1
- package/dist/components/fields/ColorPickerField.vue_vue_type_script_setup_true_lang.js +1 -0
- package/dist/components/fields/ColorPickerField.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/fields/ComboboxSelect.js.map +1 -1
- package/dist/components/fields/ComboboxSelect.vue.d.ts.map +1 -1
- package/dist/components/fields/ComboboxSelect.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/fields/ComboboxSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/fields/FileUploadField.js.map +1 -1
- package/dist/components/fields/FileUploadField.vue.d.ts.map +1 -1
- package/dist/components/fields/FileUploadField.vue_vue_type_script_setup_true_lang.js +183 -183
- package/dist/components/fields/FileUploadField.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/fields/OneTimeCodeInputField.js.map +1 -1
- package/dist/components/fields/OneTimeCodeInputField.vue_vue_type_script_setup_true_lang.js +1 -2
- package/dist/components/fields/OneTimeCodeInputField.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/fields/SelectField.js.map +1 -1
- package/dist/components/fields/SelectField.vue.d.ts.map +1 -1
- package/dist/components/fields/SelectField.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/components/fields/SelectField.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/fields/TableColumnHeaders.js.map +1 -1
- package/dist/components/fields/TableColumnHeaders.vue.d.ts.map +1 -1
- package/dist/components/fields/TableColumnHeaders.vue_vue_type_script_setup_true_lang.js +6 -3
- package/dist/components/fields/TableColumnHeaders.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/file-manager/FileManagerView.js.map +1 -1
- package/dist/components/file-manager/FileManagerView.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/file-manager/FileManagerView.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/form/FormBlock.js.map +1 -1
- package/dist/components/form/FormBlock.vue.d.ts.map +1 -1
- package/dist/components/form/FormBlock.vue_vue_type_script_setup_true_lang.js +81 -77
- package/dist/components/form/FormBlock.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/form/form-context.js +25 -25
- package/dist/components/form/form-context.js.map +1 -1
- package/dist/components/layout/FusedGroupComponent.js.map +1 -1
- package/dist/components/layout/FusedGroupComponent.vue.d.ts.map +1 -1
- package/dist/components/layout/FusedGroupComponent.vue_vue_type_script_setup_true_lang.js +1 -0
- package/dist/components/layout/FusedGroupComponent.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/layout/TabsComponent.js.map +1 -1
- package/dist/components/layout/TabsComponent.vue.d.ts.map +1 -1
- package/dist/components/layout/TabsComponent.vue_vue_type_script_setup_true_lang.js +76 -55
- package/dist/components/layout/TabsComponent.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/notifications/NotificationsMenu.js.map +1 -1
- package/dist/components/notifications/NotificationsMenu.vue.d.ts.map +1 -1
- package/dist/components/notifications/NotificationsMenu.vue_vue_type_script_setup_true_lang.js +44 -42
- package/dist/components/notifications/NotificationsMenu.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/panel/GlobalSearch.js.map +1 -1
- package/dist/components/panel/GlobalSearch.vue.d.ts.map +1 -1
- package/dist/components/panel/GlobalSearch.vue_vue_type_script_setup_true_lang.js +1 -0
- package/dist/components/panel/GlobalSearch.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/panel/ShortcutKeys.js.map +1 -1
- package/dist/components/panel/ShortcutKeys.vue.d.ts.map +1 -1
- package/dist/components/panel/ShortcutKeys.vue_vue_type_script_setup_true_lang.js +4 -1
- package/dist/components/panel/ShortcutKeys.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/panel/TenantMenu.js.map +1 -1
- package/dist/components/panel/TenantMenu.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/components/panel/TenantMenu.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/table/GroupHeaderRow.js.map +1 -1
- package/dist/components/table/GroupHeaderRow.vue.d.ts.map +1 -1
- package/dist/components/table/GroupHeaderRow.vue_vue_type_script_setup_true_lang.js +55 -34
- package/dist/components/table/GroupHeaderRow.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/table/SelectCell.js.map +1 -1
- package/dist/components/table/SelectCell.vue.d.ts.map +1 -1
- package/dist/components/table/SelectCell.vue_vue_type_script_setup_true_lang.js +24 -19
- package/dist/components/table/SelectCell.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/table/TextInputCell.js.map +1 -1
- package/dist/components/table/TextInputCell.vue.d.ts.map +1 -1
- package/dist/components/table/TextInputCell.vue_vue_type_script_setup_true_lang.js +38 -33
- package/dist/components/table/TextInputCell.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components.css +347 -0
- package/dist/eject-manifest.json +2 -2
- package/dist/standalone/AlfakitToaster.js.map +1 -1
- package/dist/standalone/AlfakitToaster.vue.d.ts.map +1 -1
- package/dist/standalone/AlfakitToaster.vue_vue_type_script_setup_true_lang.js +23 -15
- package/dist/standalone/AlfakitToaster.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/standalone.css +47 -0
- package/dist/starter-kit/widgets/SearchTrigger.js.map +1 -1
- package/dist/starter-kit/widgets/SearchTrigger.vue.d.ts.map +1 -1
- package/dist/starter-kit/widgets/SearchTrigger.vue_vue_type_script_setup_true_lang.js +1 -0
- package/dist/starter-kit/widgets/SearchTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/starter-kit/widgets/TenantChooser.js.map +1 -1
- package/dist/starter-kit/widgets/TenantChooser.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/starter-kit/widgets/TenantChooser.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/themes.css +2 -334
- package/package.json +3 -3
- package/src/components/actions/ActionButton.vue +14 -6
- package/src/components/actions/ActionModal.vue +3 -1
- package/src/components/fields/ColorPickerField.vue +1 -0
- package/src/components/fields/ComboboxSelect.vue +1 -1
- package/src/components/fields/FileUploadField.vue +14 -11
- package/src/components/fields/OneTimeCodeInputField.vue +1 -1
- package/src/components/fields/SelectField.vue +4 -2
- package/src/components/fields/TableColumnHeaders.vue +6 -1
- package/src/components/file-manager/FileManagerView.vue +1 -1
- package/src/components/form/FormBlock.vue +24 -0
- package/src/components/form/form-context.ts +2 -2
- package/src/components/layout/FusedGroupComponent.vue +1 -0
- package/src/components/layout/TabsComponent.vue +61 -5
- package/src/components/notifications/NotificationsMenu.vue +11 -0
- package/src/components/panel/GlobalSearch.vue +1 -0
- package/src/components/panel/ShortcutKeys.vue +1 -0
- package/src/components/panel/TenantMenu.vue +2 -2
- package/src/components/table/GroupHeaderRow.vue +27 -0
- package/src/components/table/SelectCell.vue +5 -2
- package/src/components/table/TextInputCell.vue +11 -5
- package/src/standalone/AlfakitToaster.vue +12 -2
- package/src/starter-kit/widgets/SearchTrigger.vue +1 -0
- package/src/starter-kit/widgets/TenantChooser.vue +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import type { TextInputColumnSchema } from '@alfakit/core'
|
|
3
|
-
import { computed, ref } from 'vue'
|
|
3
|
+
import { computed, ref, useId } from 'vue'
|
|
4
4
|
import { colorClass, textColorClasses } from '../../lib/colors'
|
|
5
5
|
import { Icon } from '../../lib/icons'
|
|
6
6
|
import { cn } from '../../lib/utils'
|
|
@@ -10,9 +10,13 @@ import { useCellUpdate, type CellProps } from './cell-update'
|
|
|
10
10
|
const props = defineProps<CellProps>()
|
|
11
11
|
const schema = computed(() => props.column as TextInputColumnSchema)
|
|
12
12
|
const { update, saving, error } = useCellUpdate(props)
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
const errorId = useId()
|
|
14
|
+
// The saved value: follows the cell after the table reloads, so changing the input back to
|
|
15
|
+
// an earlier value is saved too.
|
|
16
|
+
const initial = computed(() =>
|
|
17
|
+
props.cell.state === null || props.cell.state === undefined ? '' : String(props.cell.state),
|
|
18
|
+
)
|
|
19
|
+
const value = ref(initial.value)
|
|
16
20
|
// `prefix()` / `suffix()`: text affixes around the input, like the TextInput field.
|
|
17
21
|
const grouped = computed(() => Boolean(props.cell.prefix || props.cell.suffix))
|
|
18
22
|
</script>
|
|
@@ -57,7 +61,9 @@ const grouped = computed(() => Boolean(props.cell.prefix || props.cell.suffix))
|
|
|
57
61
|
:step="schema.step"
|
|
58
62
|
:inputmode="schema.inputMode"
|
|
59
63
|
:disabled="Boolean(props.cell.disabled) || saving"
|
|
64
|
+
:aria-label="props.column.label || props.column.name"
|
|
60
65
|
:aria-invalid="error ? true : undefined"
|
|
66
|
+
:aria-describedby="error ? errorId : undefined"
|
|
61
67
|
:class="
|
|
62
68
|
cn(
|
|
63
69
|
'h-8 min-w-32',
|
|
@@ -92,6 +98,6 @@ const grouped = computed(() => Boolean(props.cell.prefix || props.cell.suffix))
|
|
|
92
98
|
>{{ props.cell.suffix }}</span
|
|
93
99
|
>
|
|
94
100
|
</span>
|
|
95
|
-
<span v-if="error" class="text-destructive block text-xs">{{ error }}</span>
|
|
101
|
+
<span v-if="error" :id="errorId" class="text-destructive block text-xs">{{ error }}</span>
|
|
96
102
|
</span>
|
|
97
103
|
</template>
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import { resolveToastPosition, type ToastPosition } from '@alfakit/core'
|
|
2
|
+
import { resolveToastPosition, STARTER_KIT_TOASTER_ID, type ToastPosition } from '@alfakit/core'
|
|
3
3
|
import { onMounted, onUnmounted } from 'vue'
|
|
4
|
+
import { setToasterId } from '../components/notifications/flash-toasts'
|
|
4
5
|
import Toaster from '../components/ui/Toaster.vue'
|
|
5
6
|
import { useOptionalAlfakit } from '../context'
|
|
6
7
|
import { claimToaster, createStandaloneContext, ensureFlashToasts } from './runtime'
|
|
@@ -38,15 +39,24 @@ let release: (() => void) | null = null
|
|
|
38
39
|
onMounted(() => {
|
|
39
40
|
if (!props.claimed) release = claimToaster()
|
|
40
41
|
|
|
42
|
+
// Our own toaster gets an id, so a `<Toaster />` the app's layout already mounts (the
|
|
43
|
+
// starter kits have one) doesn't show every Alfakit toast a second time.
|
|
44
|
+
if (props.toaster) setToasterId(STARTER_KIT_TOASTER_ID)
|
|
45
|
+
|
|
41
46
|
ensureFlashToasts(context.registry)
|
|
42
47
|
})
|
|
43
48
|
|
|
44
|
-
onUnmounted(() =>
|
|
49
|
+
onUnmounted(() => {
|
|
50
|
+
release?.()
|
|
51
|
+
|
|
52
|
+
if (props.toaster) setToasterId(undefined)
|
|
53
|
+
})
|
|
45
54
|
</script>
|
|
46
55
|
|
|
47
56
|
<template>
|
|
48
57
|
<Toaster
|
|
49
58
|
v-if="props.toaster"
|
|
59
|
+
:id="STARTER_KIT_TOASTER_ID"
|
|
50
60
|
:position="resolveToastPosition(props.position, props.dir)"
|
|
51
61
|
:dir="props.dir"
|
|
52
62
|
rich-colors
|
|
@@ -50,6 +50,7 @@ function request() {
|
|
|
50
50
|
<span class="sr-only sm:not-sr-only sm:flex-1 sm:text-start">{{ placeholder }}</span>
|
|
51
51
|
<kbd
|
|
52
52
|
v-if="hydrated && binding"
|
|
53
|
+
dir="ltr"
|
|
53
54
|
class="bg-muted hidden rounded px-1 font-mono text-[10px] sm:inline"
|
|
54
55
|
>{{ formatKeyBinding(binding) }}</kbd
|
|
55
56
|
>
|
|
@@ -63,7 +63,7 @@ const visible = computed(
|
|
|
63
63
|
<DropdownMenuSeparator v-if="tenancy.tenants.length > 0" />
|
|
64
64
|
<DropdownMenuItem @select="router.visit(tenancy.registrationUrl!)">
|
|
65
65
|
<Icon name="alfakit::panels.tenant-menu.registration-button" :fallback="PlusIcon" />
|
|
66
|
-
{{ t('tenancy.register', {}, 'New') }}
|
|
66
|
+
{{ tenancy.registrationLabel ?? t('tenancy.register', {}, 'New') }}
|
|
67
67
|
</DropdownMenuItem>
|
|
68
68
|
</template>
|
|
69
69
|
</DropdownMenuContent>
|