@weni/unnnic-system 3.9.1-alpha.1 → 3.9.1-alpha.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.
Files changed (95) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/dist/components/Button/Button.vue.d.ts.map +1 -1
  3. package/dist/components/DateFilter/DateFilter.vue.d.ts +3 -82
  4. package/dist/components/Input/BaseInput.vue.d.ts +0 -22
  5. package/dist/components/Input/BaseInput.vue.d.ts.map +1 -1
  6. package/dist/components/Input/Input.vue.d.ts +3 -82
  7. package/dist/components/Input/Input.vue.d.ts.map +1 -1
  8. package/dist/components/Input/TextInput.vue.d.ts +2 -53
  9. package/dist/components/Input/TextInput.vue.d.ts.map +1 -1
  10. package/dist/components/InputDatePicker/InputDatePicker.vue.d.ts +4 -83
  11. package/dist/components/InputNext/InputNext.vue.d.ts +1 -1
  12. package/dist/components/ModalDialog/ModalDialog.vue.d.ts +29 -203
  13. package/dist/components/ModalDialog/ModalDialog.vue.d.ts.map +1 -1
  14. package/dist/components/ModalNext/ModalNext.vue.d.ts +3 -82
  15. package/dist/components/SelectSmart/SelectSmart.vue.d.ts +2 -53
  16. package/dist/components/SelectTime/index.vue.d.ts +2 -53
  17. package/dist/components/Tag/DefaultTag.vue.d.ts.map +1 -1
  18. package/dist/components/index.d.ts +236 -1764
  19. package/dist/components/index.d.ts.map +1 -1
  20. package/dist/{es-de156c12.mjs → es-d456f02a.mjs} +1 -1
  21. package/dist/{index-21cbba5d.mjs → index-120e037a.mjs} +11437 -12248
  22. package/dist/locales/en.json.d.ts +1 -2
  23. package/dist/locales/es.json.d.ts +1 -2
  24. package/dist/locales/pt_br.json.d.ts +1 -2
  25. package/dist/{pt-br-5fa49a3e.mjs → pt-br-b627c074.mjs} +1 -1
  26. package/dist/style.css +1 -1
  27. package/dist/unnnic.mjs +179 -195
  28. package/dist/unnnic.umd.js +34 -41
  29. package/package.json +1 -1
  30. package/src/assets/scss/tailwind.scss +0 -8
  31. package/src/components/Alert/__tests__/__snapshots__/Version1dot1.spec.js.snap +1 -1
  32. package/src/components/Button/Button.vue +0 -1
  33. package/src/components/Input/BaseInput.vue +2 -21
  34. package/src/components/Input/Input.scss +3 -3
  35. package/src/components/Input/Input.vue +1 -19
  36. package/src/components/Input/TextInput.vue +21 -62
  37. package/src/components/ModalDialog/ModalDialog.vue +148 -62
  38. package/src/components/ModalDialog/__tests__/ModalDialog.spec.js +221 -11
  39. package/src/components/ModalDialog/__tests__/__snapshots__/ModalDialog.spec.js.snap +22 -1
  40. package/src/components/Radio/__test__/__snapshots__/Radio.spec.js.snap +1 -0
  41. package/src/components/Tag/DefaultTag.vue +0 -5
  42. package/src/components/index.ts +23 -55
  43. package/src/locales/en.json +1 -2
  44. package/src/locales/es.json +1 -2
  45. package/src/locales/pt_br.json +1 -2
  46. package/src/stories/ModalDialog.mdx +0 -3
  47. package/src/stories/ModalDialog.stories.js +1 -1
  48. package/dist/components/PageHeader/PageHeader.vue.d.ts +0 -28
  49. package/dist/components/PageHeader/PageHeader.vue.d.ts.map +0 -1
  50. package/dist/components/PageHeader/index.d.ts +0 -3
  51. package/dist/components/PageHeader/index.d.ts.map +0 -1
  52. package/dist/components/PageHeader/types.d.ts +0 -9
  53. package/dist/components/PageHeader/types.d.ts.map +0 -1
  54. package/dist/components/ui/dialog/Dialog.vue.d.ts +0 -23
  55. package/dist/components/ui/dialog/Dialog.vue.d.ts.map +0 -1
  56. package/dist/components/ui/dialog/DialogClose.vue.d.ts +0 -19
  57. package/dist/components/ui/dialog/DialogClose.vue.d.ts.map +0 -1
  58. package/dist/components/ui/dialog/DialogContent.vue.d.ts +0 -43
  59. package/dist/components/ui/dialog/DialogContent.vue.d.ts.map +0 -1
  60. package/dist/components/ui/dialog/DialogFooter.vue.d.ts +0 -25
  61. package/dist/components/ui/dialog/DialogFooter.vue.d.ts.map +0 -1
  62. package/dist/components/ui/dialog/DialogHeader.vue.d.ts +0 -29
  63. package/dist/components/ui/dialog/DialogHeader.vue.d.ts.map +0 -1
  64. package/dist/components/ui/dialog/DialogTitle.vue.d.ts +0 -23
  65. package/dist/components/ui/dialog/DialogTitle.vue.d.ts.map +0 -1
  66. package/dist/components/ui/dialog/DialogTrigger.vue.d.ts +0 -19
  67. package/dist/components/ui/dialog/DialogTrigger.vue.d.ts.map +0 -1
  68. package/dist/components/ui/dialog/index.d.ts +0 -8
  69. package/dist/components/ui/dialog/index.d.ts.map +0 -1
  70. package/src/components/Alert/SIMPLE_MIGRATION_GUIDE.md +0 -152
  71. package/src/components/PageHeader/PageHeader.vue +0 -154
  72. package/src/components/PageHeader/index.ts +0 -2
  73. package/src/components/PageHeader/types.ts +0 -10
  74. package/src/components/Popover/__tests__/Popover.spec.js +0 -147
  75. package/src/components/Popover/__tests__/__snapshots__/Popover.spec.js.snap +0 -8
  76. package/src/components/Popover/index.vue +0 -146
  77. package/src/components/Select/SelectOption.vue +0 -65
  78. package/src/components/Select/__tests__/Select.spec.js +0 -412
  79. package/src/components/Select/__tests__/SelectItem.spec.js +0 -330
  80. package/src/components/Select/__tests__/SelectOption.spec.js +0 -174
  81. package/src/components/Select/__tests__/__snapshots__/Select.spec.js.snap +0 -97
  82. package/src/components/Select/__tests__/__snapshots__/SelectItem.spec.js.snap +0 -15
  83. package/src/components/Select/__tests__/__snapshots__/SelectOption.spec.js.snap +0 -25
  84. package/src/components/Select/index.vue +0 -245
  85. package/src/components/ui/dialog/Dialog.vue +0 -15
  86. package/src/components/ui/dialog/DialogClose.vue +0 -25
  87. package/src/components/ui/dialog/DialogContent.vue +0 -133
  88. package/src/components/ui/dialog/DialogFooter.vue +0 -46
  89. package/src/components/ui/dialog/DialogHeader.vue +0 -79
  90. package/src/components/ui/dialog/DialogTitle.vue +0 -34
  91. package/src/components/ui/dialog/DialogTrigger.vue +0 -12
  92. package/src/components/ui/dialog/index.ts +0 -7
  93. package/src/stories/Dialog.stories.js +0 -832
  94. package/src/stories/PageHeader.stories.js +0 -330
  95. package/src/stories/Select.stories.js +0 -158
@@ -1,245 +0,0 @@
1
- <template>
2
- <div
3
- class="unnnic-select"
4
- @keydown="handleKeyDown"
5
- >
6
- <UnnnicPopover
7
- v-model="openPopover"
8
- :popoverBalloonProps="{ maxHeight: calculatedMaxHeight }"
9
- >
10
- <template #trigger>
11
- <UnnnicInput
12
- :modelValue="inputValue"
13
- class="unnnic-select__input"
14
- readonly
15
- :forceActiveStatus="openPopover"
16
- :size="props.size"
17
- :placeholder="props.placeholder"
18
- :label="props.label"
19
- :errors="props.errors"
20
- :message="props.message"
21
- :iconRight="openPopover ? 'keyboard_arrow_up' : 'keyboard_arrow_down'"
22
- :disabled="props.disabled"
23
- showClear
24
- @clear="emit('update:modelValue', '')"
25
- />
26
- </template>
27
- <template #content>
28
- <div class="unnnic-select__content">
29
- <UnnnicInput
30
- v-if="props.enableSearch"
31
- class="unnnic-select__input-search"
32
- :modelValue="props.search"
33
- :placeholder="$t('search')"
34
- iconLeft="search"
35
- @update:model-value="handleSearch"
36
- />
37
- <UnnnicSelectOption
38
- v-for="(option, index) in filteredOptions"
39
- :key="option[props.itemValue]"
40
- :data-option-index="index"
41
- :label="option[props.itemLabel]"
42
- :active="
43
- option[props.itemValue] === selectedItem?.[props.itemValue]
44
- "
45
- :focused="focusedOptionIndex === index"
46
- :disabled="option.disabled"
47
- @click="handleSelectOption(option)"
48
- />
49
- </div>
50
- </template>
51
- </UnnnicPopover>
52
- </div>
53
- </template>
54
-
55
- <script setup lang="ts">
56
- import { computed, ref, watch, nextTick } from 'vue';
57
- import UnnnicInput from '../Input/Input.vue';
58
- import UnnnicPopover from '../Popover/index.vue';
59
- import UnnnicSelectOption from './SelectOption.vue';
60
- import UnnnicI18n from '../../mixins/i18n';
61
-
62
- defineOptions({
63
- name: 'UnnnicSelect',
64
- mixins: [UnnnicI18n],
65
- });
66
-
67
- interface SelectProps {
68
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
69
- options: Array<{ [key: string]: any }>;
70
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
71
- modelValue: any;
72
- returnObject?: boolean;
73
- itemLabel?: string;
74
- itemValue?: string;
75
- placeholder?: string;
76
- label?: string;
77
- type?: 'normal' | 'error';
78
- errors?: string | Array<string>;
79
- message?: string;
80
- size?: 'sm' | 'md';
81
- optionsLines?: number;
82
- enableSearch?: boolean;
83
- search?: string;
84
- locale?: string;
85
- disabled?: boolean;
86
- }
87
-
88
- const props = withDefaults(defineProps<SelectProps>(), {
89
- size: 'md',
90
- type: 'normal',
91
- placeholder: '',
92
- optionsLines: 5,
93
- returnObject: false,
94
- itemLabel: 'label',
95
- itemValue: 'value',
96
- locale: 'en',
97
- enableSearch: false,
98
- disabled: false,
99
- });
100
-
101
- const emit = defineEmits<{
102
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
103
- 'update:modelValue': [value: any];
104
- 'update:search': [value: string];
105
- }>();
106
-
107
- const openPopover = ref(false);
108
-
109
- watch(openPopover, () => {
110
- if (!openPopover.value) {
111
- handleSearch('');
112
- } else {
113
- focusedOptionIndex.value = -1;
114
- }
115
-
116
- if (openPopover.value && props.modelValue) {
117
- const selectedOptionIndex = props.options.findIndex(
118
- (option) =>
119
- option[props.itemValue] === selectedItem.value[props.itemValue],
120
- );
121
- scrollToOption(selectedOptionIndex, 'instant', 'center');
122
- }
123
- });
124
-
125
- const handleKeyDown = (event) => {
126
- const { key } = event;
127
- const validKeys = ['ArrowUp', 'ArrowDown', 'Enter'];
128
- if (validKeys.includes(key)) {
129
- event.preventDefault();
130
- if (key === 'ArrowUp') {
131
- if (focusedOptionIndex.value === 0) return;
132
- focusedOptionIndex.value--;
133
- scrollToOption(focusedOptionIndex.value);
134
- }
135
- if (key === 'ArrowDown') {
136
- if (focusedOptionIndex.value === filteredOptions.value.length - 1) return;
137
- focusedOptionIndex.value++;
138
- scrollToOption(focusedOptionIndex.value);
139
- }
140
- if (key === 'Enter') {
141
- handleSelectOption(filteredOptions.value[focusedOptionIndex.value]);
142
- }
143
- }
144
- };
145
-
146
- const focusedOptionIndex = ref<number>(-1);
147
-
148
- const scrollToOption = (
149
- index: number,
150
- behavior: 'smooth' | 'instant' = 'smooth',
151
- block: 'center' | 'start' | 'end' | 'nearest' = 'center',
152
- ) => {
153
- nextTick(() => {
154
- const option = document.querySelector(`[data-option-index="${index}"]`);
155
- if (option) {
156
- option.scrollIntoView({ behavior, block });
157
- }
158
- });
159
- };
160
-
161
- const calculatedMaxHeight = computed(() => {
162
- if (!props.options || props.options.length === 0) return 'unset';
163
- const popoverPadding = 32;
164
- const popoverGap = 4;
165
- // 37 = 21px (height) + 16px (padding)
166
- const fieldsHeight = 37 * props.optionsLines;
167
- const size =
168
- fieldsHeight + popoverPadding + (popoverGap * props.optionsLines - 2);
169
- return `${props.enableSearch ? size + 54 : size}px`;
170
- });
171
-
172
- const selectedItem = computed(() => {
173
- if (props.returnObject) return props.modelValue;
174
-
175
- return props.options.find(
176
- (option) => option[props.itemValue] === props.modelValue,
177
- );
178
- });
179
-
180
- const inputValue = computed(() => {
181
- return selectedItem.value?.[props.itemLabel];
182
- });
183
-
184
- const handleSelectOption = (option) => {
185
- if (
186
- option[props.itemValue] === selectedItem.value?.[props.itemValue] ||
187
- option.disabled
188
- )
189
- return;
190
-
191
- emit(
192
- 'update:modelValue',
193
- props.returnObject ? option : option[props.itemValue],
194
- );
195
- openPopover.value = false;
196
- };
197
-
198
- const handleSearch = (value: string) => {
199
- emit('update:search', value);
200
- };
201
-
202
- const filteredOptions = computed(() => {
203
- if (!props.enableSearch || !props.search) return props.options;
204
-
205
- return props.options.filter(
206
- (option) =>
207
- option[props.itemLabel]
208
- .toLowerCase()
209
- .includes(props.search?.toLowerCase()) ||
210
- option[props.itemValue]
211
- .toLowerCase()
212
- .includes(props.search?.toLowerCase()),
213
- );
214
- });
215
- </script>
216
-
217
- <style lang="scss" scoped>
218
- @use '@/assets/scss/unnnic' as *;
219
-
220
- :deep(.unnnic-select__input) {
221
- cursor: pointer;
222
- }
223
-
224
- :deep(.unnnic-select__input-search) {
225
- > .icon-left {
226
- color: $unnnic-color-fg-base;
227
- }
228
- }
229
-
230
- :deep(.unnnic-select__input) {
231
- > .icon-right {
232
- color: $unnnic-color-fg-base;
233
- }
234
- }
235
-
236
- .unnnic-select {
237
- &__content {
238
- display: flex;
239
- flex-direction: column;
240
- padding: 0;
241
- margin: 0;
242
- gap: $unnnic-space-1;
243
- }
244
- }
245
- </style>
@@ -1,15 +0,0 @@
1
- <script setup lang="ts">
2
- import type { DialogRootEmits, DialogRootProps } from 'reka-ui';
3
- import { DialogRoot, useForwardPropsEmits } from 'reka-ui';
4
-
5
- const props = defineProps<DialogRootProps>();
6
- const emits = defineEmits<DialogRootEmits>();
7
-
8
- const forwarded = useForwardPropsEmits(props, emits);
9
- </script>
10
-
11
- <template>
12
- <DialogRoot v-bind="forwarded">
13
- <slot />
14
- </DialogRoot>
15
- </template>
@@ -1,25 +0,0 @@
1
- <script setup lang="ts">
2
- import type { DialogCloseProps } from 'reka-ui';
3
- import { DialogClose } from 'reka-ui';
4
-
5
- const props = defineProps<DialogCloseProps>();
6
- </script>
7
-
8
- <template>
9
- <DialogClose
10
- class="unnnic-dialog-close"
11
- v-bind="props"
12
- >
13
- <slot />
14
- </DialogClose>
15
- </template>
16
-
17
- <style lang="scss" scoped>
18
- @use '@/assets/scss/unnnic' as *;
19
-
20
- .unnnic-dialog-close {
21
- > * {
22
- width: 100%;
23
- }
24
- }
25
- </style>
@@ -1,133 +0,0 @@
1
- <script setup lang="ts">
2
- import type { DialogContentEmits, DialogContentProps } from 'reka-ui';
3
- import type { HTMLAttributes, Component } from 'vue';
4
- import { computed, h } from 'vue';
5
- import { reactiveOmit } from '@vueuse/core';
6
- import {
7
- DialogContent,
8
- DialogOverlay,
9
- DialogPortal,
10
- useForwardPropsEmits,
11
- } from 'reka-ui';
12
- import { cn } from '@/lib/utils';
13
-
14
- const props = withDefaults(
15
- defineProps<
16
- DialogContentProps & {
17
- parentClass?: HTMLAttributes['class'];
18
- class?: HTMLAttributes['class'];
19
- size?: 'small' | 'medium' | 'large';
20
- }
21
- >(),
22
- {
23
- size: 'medium',
24
- parentClass: '', // This class should be temporary, to be discontinued with the ModalDialog component
25
- class: '',
26
- },
27
- );
28
- const emits = defineEmits<DialogContentEmits>();
29
-
30
- const delegatedProps = reactiveOmit(props, 'class', 'parentClass');
31
-
32
- const forwarded = useForwardPropsEmits(delegatedProps, emits);
33
-
34
- const contentClasses = computed(() =>
35
- cn(
36
- 'unnnic-dialog-content',
37
- `unnnic-dialog-content--size-${props.size}`,
38
- 'duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%]',
39
- props.class,
40
- ),
41
- );
42
-
43
- // This component is used to wrap the DialogContent component in a section if the parentClass is provided
44
- // This is a temporary solution, to be discontinued with the ModalDialog component
45
- const ConditionalWrapper: Component = (_, { slots }) => {
46
- const content = slots.default?.();
47
- return props.parentClass
48
- ? h('section', { class: props.parentClass }, content)
49
- : content;
50
- };
51
- </script>
52
-
53
- <template>
54
- <DialogPortal>
55
- <DialogOverlay
56
- class="unnnic-dialog-overlay data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0"
57
- />
58
-
59
- <ConditionalWrapper>
60
- <DialogContent
61
- v-bind="forwarded"
62
- :class="contentClasses"
63
- >
64
- <slot />
65
- </DialogContent>
66
- </ConditionalWrapper>
67
- </DialogPortal>
68
- </template>
69
-
70
- <style lang="scss" scoped>
71
- @use '@/assets/scss/unnnic' as *;
72
-
73
- .unnnic-dialog-overlay {
74
- position: fixed;
75
- top: 0;
76
- left: 0;
77
- z-index: 9999;
78
-
79
- width: 100vw;
80
- height: 100vh;
81
- background: rgba(53, 57, 69, 0.5);
82
- }
83
-
84
- .unnnic-dialog-content {
85
- z-index: 10000;
86
-
87
- position: fixed;
88
- top: 50%;
89
- left: 50%;
90
-
91
- overflow: hidden;
92
-
93
- transform: translate(-50%, -50%);
94
-
95
- width: 100%;
96
- max-height: calc(100% - $unnnic-space-20);
97
-
98
- display: flex;
99
- flex-direction: column;
100
-
101
- box-shadow: $unnnic-shadow-2;
102
- border-radius: $unnnic-radius-4;
103
- background-color: $unnnic-color-bg-base;
104
-
105
- &--size-small {
106
- max-width: 360px;
107
- }
108
-
109
- &--size-medium {
110
- max-width: 560px;
111
- }
112
-
113
- &--size-large {
114
- max-width: 800px;
115
- }
116
-
117
- > * {
118
- &::-webkit-scrollbar {
119
- width: $unnnic-spacing-inline-nano;
120
- }
121
-
122
- &::-webkit-scrollbar-thumb {
123
- background: $unnnic-color-neutral-cleanest;
124
- border-radius: $unnnic-border-radius-pill;
125
- }
126
-
127
- &::-webkit-scrollbar-track {
128
- background: $unnnic-color-neutral-soft;
129
- border-radius: $unnnic-border-radius-pill;
130
- }
131
- }
132
- }
133
- </style>
@@ -1,46 +0,0 @@
1
- <script setup lang="ts">
2
- import type { HTMLAttributes } from 'vue';
3
- import { cn } from '@/lib/utils';
4
-
5
- const props = withDefaults(
6
- defineProps<{ class?: HTMLAttributes['class']; divider?: boolean }>(),
7
- {
8
- divider: true,
9
- },
10
- );
11
- </script>
12
-
13
- <template>
14
- <footer
15
- :class="
16
- cn(
17
- 'unnnic-dialog-footer',
18
- { 'unnnic-dialog-footer--with-divider': props.divider },
19
- props.class,
20
- )
21
- "
22
- >
23
- <slot />
24
- </footer>
25
- </template>
26
-
27
- <style lang="scss" scoped>
28
- @use '@/assets/scss/unnnic' as *;
29
-
30
- .unnnic-dialog-footer {
31
- display: flex;
32
- justify-content: center;
33
- align-items: center;
34
- gap: $unnnic-space-2;
35
-
36
- padding: $unnnic-space-6;
37
-
38
- &--with-divider {
39
- border-top: 1px solid $unnnic-color-border-soft;
40
- }
41
-
42
- > * {
43
- width: 100%;
44
- }
45
- }
46
- </style>
@@ -1,79 +0,0 @@
1
- <script setup lang="ts">
2
- import type { HTMLAttributes } from 'vue';
3
- import { cn } from '@/lib/utils';
4
- import UnnnicButton from '@/components/Button/Button.vue';
5
- import DialogClose from './DialogClose.vue';
6
- import UnnnicIcon, { SchemeColor } from '@/components/Icon.vue';
7
-
8
- const props = withDefaults(
9
- defineProps<{
10
- class?: HTMLAttributes['class'];
11
- divider?: boolean;
12
- type?: 'default' | 'success' | 'warning' | 'attention';
13
- closeButton?: boolean;
14
- }>(),
15
- {
16
- divider: true,
17
- closeButton: true,
18
- type: 'default',
19
- },
20
- );
21
-
22
- const iconsMapper = {
23
- default: { icon: '', scheme: '' as SchemeColor },
24
- success: { icon: 'check_circle', scheme: 'aux-green-500' as SchemeColor },
25
- warning: { icon: 'warning', scheme: 'aux-red-500' as SchemeColor },
26
- attention: { icon: 'error', scheme: 'aux-yellow-500' as SchemeColor },
27
- };
28
- </script>
29
-
30
- <template>
31
- <header
32
- :class="
33
- cn(
34
- 'unnnic-dialog-header',
35
- { 'unnnic-dialog-header--with-divider': props.divider },
36
- props.class,
37
- )
38
- "
39
- >
40
- <UnnnicIcon
41
- v-if="iconsMapper[props.type]?.icon"
42
- :icon="iconsMapper[props.type]?.icon"
43
- :scheme="iconsMapper[props.type]?.scheme"
44
- size="md"
45
- />
46
- <slot />
47
-
48
- <DialogClose
49
- v-if="props.closeButton"
50
- class="unnnic-dialog-header__close"
51
- >
52
- <UnnnicButton
53
- type="tertiary"
54
- iconCenter="close"
55
- size="small"
56
- />
57
- </DialogClose>
58
- </header>
59
- </template>
60
-
61
- <style lang="scss" scoped>
62
- @use '@/assets/scss/unnnic' as *;
63
-
64
- .unnnic-dialog-header {
65
- display: flex;
66
- align-items: center;
67
- gap: $unnnic-space-2;
68
-
69
- padding: $unnnic-space-6;
70
-
71
- &--with-divider {
72
- border-bottom: 1px solid $unnnic-color-border-soft;
73
- }
74
-
75
- &__close {
76
- margin-left: auto;
77
- }
78
- }
79
- </style>
@@ -1,34 +0,0 @@
1
- <script setup lang="ts">
2
- import type { DialogTitleProps } from 'reka-ui';
3
- import type { HTMLAttributes } from 'vue';
4
- import { reactiveOmit } from '@vueuse/core';
5
- import { DialogTitle, useForwardProps } from 'reka-ui';
6
- import { cn } from '@/lib/utils';
7
-
8
- const props = defineProps<
9
- DialogTitleProps & { class?: HTMLAttributes['class'] }
10
- >();
11
-
12
- const delegatedProps = reactiveOmit(props, 'class');
13
-
14
- const forwardedProps = useForwardProps(delegatedProps);
15
- </script>
16
-
17
- <template>
18
- <DialogTitle
19
- v-bind="forwardedProps"
20
- :class="cn('unnnic-dialog-title', props.class)"
21
- >
22
- <slot />
23
- </DialogTitle>
24
- </template>
25
-
26
- <style lang="scss" scoped>
27
- @use '@/assets/scss/unnnic' as *;
28
-
29
- .unnnic-dialog-title {
30
- font: $unnnic-font-display-2;
31
- color: $unnnic-color-fg-emphasized;
32
- margin: 0;
33
- }
34
- </style>
@@ -1,12 +0,0 @@
1
- <script setup lang="ts">
2
- import type { DialogTriggerProps } from 'reka-ui';
3
- import { DialogTrigger } from 'reka-ui';
4
-
5
- const props = defineProps<DialogTriggerProps>();
6
- </script>
7
-
8
- <template>
9
- <DialogTrigger v-bind="props">
10
- <slot />
11
- </DialogTrigger>
12
- </template>
@@ -1,7 +0,0 @@
1
- export { default as Dialog } from './Dialog.vue';
2
- export { default as DialogClose } from './DialogClose.vue';
3
- export { default as DialogContent } from './DialogContent.vue';
4
- export { default as DialogFooter } from './DialogFooter.vue';
5
- export { default as DialogHeader } from './DialogHeader.vue';
6
- export { default as DialogTitle } from './DialogTitle.vue';
7
- export { default as DialogTrigger } from './DialogTrigger.vue';