@imaginario27/air-ui-ds 1.0.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/assets/css/defaults.css +55 -0
- package/assets/css/main.css +238 -0
- package/assets/css/theme/colors.css +106 -0
- package/assets/css/theme/primitives.css +105 -0
- package/assets/css/theme/ui-theme.css +454 -0
- package/assets/images/placeholders/missing-image-placeholder.png +0 -0
- package/components/accordions/Accordion.vue +31 -0
- package/components/accordions/AccordionGroup.vue +78 -0
- package/components/accordions/AccordionItem.vue +39 -0
- package/components/action-panels/ActionPanel.vue +49 -0
- package/components/alerts/Alert.vue +159 -0
- package/components/avatars/Avatar.vue +152 -0
- package/components/avatars/AvatarStack.vue +97 -0
- package/components/avatars/AvatarStackCounter.vue +74 -0
- package/components/badges/Badge.vue +221 -0
- package/components/badges/BadgeStack.vue +110 -0
- package/components/badges/IconBadge.vue +57 -0
- package/components/badges/IconTextBadge.vue +50 -0
- package/components/breadcrumbs/Breadcrumbs.vue +54 -0
- package/components/buttons/ActionButton.vue +395 -0
- package/components/buttons/ActionIconButton.vue +283 -0
- package/components/buttons/AlertButton.vue +125 -0
- package/components/buttons/AlertIconButton.vue +105 -0
- package/components/buttons/PaginationButton.vue +45 -0
- package/components/buttons/options/OptionButton.vue +61 -0
- package/components/buttons/options/OptionButtonGroup.vue +155 -0
- package/components/buttons/options/OptionButtonSlider.vue +154 -0
- package/components/buttons/toggle/ToggleButton.vue +142 -0
- package/components/buttons/toggle/ToggleButtonGroup.vue +73 -0
- package/components/cards/Card.vue +33 -0
- package/components/cards/CardActions.vue +5 -0
- package/components/cards/CardBody.vue +5 -0
- package/components/cards/CardFooter.vue +20 -0
- package/components/cards/CardHeader.vue +5 -0
- package/components/cards/CardTitle.vue +13 -0
- package/components/cards/specific/ContactDetailsCard.vue +47 -0
- package/components/cards/specific/FeatureCard.vue +59 -0
- package/components/cards/specific/HelpTopicCard.vue +62 -0
- package/components/cards/specific/MetricCard.vue +42 -0
- package/components/cards/specific/TestimonialCard.vue +57 -0
- package/components/cards/specific/subscription/CurrentActiveSubscriptionCard.vue +105 -0
- package/components/cards/specific/subscription/SubscriptionPlanCard.vue +178 -0
- package/components/cards/specific/subscription/UniqueSubscriptionPlanCard.vue +106 -0
- package/components/collapsibles/Collapsible.vue +33 -0
- package/components/content/ContentItem.vue +144 -0
- package/components/content/ContentItemImage.vue +125 -0
- package/components/dividers/Divider.vue +35 -0
- package/components/dividers/TextLineDivider.vue +58 -0
- package/components/dropdowns/DropdownMenu.vue +207 -0
- package/components/dropdowns/DropdownMenuActions.vue +11 -0
- package/components/dropdowns/DropdownMenuItem.vue +240 -0
- package/components/dropdowns/DropdownSelect.vue +469 -0
- package/components/dropdowns/DropdownSelectItem.vue +182 -0
- package/components/empty-states/EmptyState.vue +170 -0
- package/components/features/Feature.vue +77 -0
- package/components/forms/DataDetails.vue +7 -0
- package/components/forms/DataDetailsActions.vue +23 -0
- package/components/forms/DataDetailsFieldGroup.vue +35 -0
- package/components/forms/DataDetailsRow.vue +22 -0
- package/components/forms/Form.vue +25 -0
- package/components/forms/FormActions.vue +23 -0
- package/components/forms/FormFieldGroup.vue +35 -0
- package/components/forms/FormRow.vue +22 -0
- package/components/forms/fields/ButtonField.vue +119 -0
- package/components/forms/fields/CheckboxField.vue +205 -0
- package/components/forms/fields/DataField.vue +99 -0
- package/components/forms/fields/FileUploadField.vue +326 -0
- package/components/forms/fields/InputField.vue +371 -0
- package/components/forms/fields/OptionButtonsGroupField.vue +120 -0
- package/components/forms/fields/RepeaterField.vue +109 -0
- package/components/forms/fields/SearchField.vue +184 -0
- package/components/forms/fields/SelectField.vue +233 -0
- package/components/forms/fields/SliderField.vue +759 -0
- package/components/forms/fields/SwitchField.vue +257 -0
- package/components/forms/fields/TextareaField.vue +205 -0
- package/components/forms/fields/ToggleButtonsGroupField.vue +65 -0
- package/components/forms/fields/radio/RadioButtonField.vue +238 -0
- package/components/forms/fields/radio/RadioField.vue +157 -0
- package/components/forms/fields/radio/RadioGroupField.vue +156 -0
- package/components/icons/ContainedIcon.vue +130 -0
- package/components/images/QRCode.vue +124 -0
- package/components/layouts/ContainerWrapper.vue +13 -0
- package/components/layouts/ContentBody.vue +30 -0
- package/components/layouts/Grid.vue +25 -0
- package/components/layouts/Heading.vue +159 -0
- package/components/layouts/MainContent.vue +26 -0
- package/components/layouts/MaxWidthContainer.vue +15 -0
- package/components/layouts/Overtitle.vue +25 -0
- package/components/layouts/headers/CompactHeader.vue +181 -0
- package/components/layouts/headers/PageHeader.vue +102 -0
- package/components/layouts/headers/WebAppHeader.vue +54 -0
- package/components/layouts/section/Section.vue +90 -0
- package/components/layouts/section/SectionBody.vue +12 -0
- package/components/layouts/section/SectionHeader.vue +12 -0
- package/components/layouts/section/SectionTitle.vue +13 -0
- package/components/lists/List.vue +69 -0
- package/components/lists/ListItem.vue +58 -0
- package/components/loaders/Loading.vue +83 -0
- package/components/loaders/LoadingScreen.vue +285 -0
- package/components/modals/DangerModalDialog.vue +149 -0
- package/components/modals/InfoModalDialog.vue +143 -0
- package/components/modals/ModalActions.vue +22 -0
- package/components/modals/ModalContent.vue +5 -0
- package/components/modals/ModalDescription.vue +5 -0
- package/components/modals/ModalDialog.vue +122 -0
- package/components/modals/ModalHeaderGroup.vue +19 -0
- package/components/modals/ModalHeadings.vue +5 -0
- package/components/modals/ModalSubtitle.vue +14 -0
- package/components/modals/ModalTitle.vue +14 -0
- package/components/modals/SuccessModalDialog.vue +90 -0
- package/components/modules/AppLogo.vue +46 -0
- package/components/modules/SVGImage.vue +44 -0
- package/components/navigation/links/NavLink.vue +112 -0
- package/components/navigation/nav-menu/NavFooterMenu.vue +91 -0
- package/components/navigation/nav-menu/NavMenu.vue +36 -0
- package/components/navigation/nav-menu/NavMenuItem.vue +44 -0
- package/components/navigation/nav-sidebar/BottomUserNavBar.vue +83 -0
- package/components/navigation/nav-sidebar/NavSidebar.vue +172 -0
- package/components/navigation/nav-sidebar/NavSidebarMenu.vue +14 -0
- package/components/navigation/nav-sidebar/NavSidebarMenuItem.vue +76 -0
- package/components/navigation/nav-sidebar/NavSidebarMenuSectionTitle.vue +54 -0
- package/components/navigation/table-of-contents/TableOfContents.vue +35 -0
- package/components/navigation/table-of-contents/TableOfContentsItem.vue +40 -0
- package/components/navigation/table-of-contents/TableOfContentsSidebar.vue +29 -0
- package/components/pagination/ButtonPagination.vue +274 -0
- package/components/pagination/RowsPerPage.vue +60 -0
- package/components/pagination/SimplePagination.vue +97 -0
- package/components/password/SecurePasswordCondition.vue +41 -0
- package/components/password/SecurePasswordConditions.vue +83 -0
- package/components/placeholders/ContentPlaceholder.vue +41 -0
- package/components/popovers/Popover.vue +128 -0
- package/components/rating/InteractiveRating.vue +94 -0
- package/components/rating/Rating.vue +60 -0
- package/components/rating/RatingItem.vue +54 -0
- package/components/skeletons/Skeleton.vue +11 -0
- package/components/spinners/Spinner.vue +13 -0
- package/components/steppers/CircleStepper.vue +122 -0
- package/components/steppers/Step.vue +72 -0
- package/components/steppers/StepIndicator.vue +228 -0
- package/components/steppers/TabStepper.vue +126 -0
- package/components/steppers/vertical-stepper/VerticalStep.vue +223 -0
- package/components/steppers/vertical-stepper/VerticalStepper.vue +63 -0
- package/components/tables/Table.vue +26 -0
- package/components/tables/TableBody.vue +5 -0
- package/components/tables/TableCell.vue +34 -0
- package/components/tables/TableCellActions.vue +7 -0
- package/components/tables/TableHeader.vue +5 -0
- package/components/tables/TableHeaderCell.vue +15 -0
- package/components/tables/TableRow.vue +14 -0
- package/components/tables/TableWrapper.vue +12 -0
- package/components/tabs/Tab.vue +145 -0
- package/components/tabs/TabBar.vue +64 -0
- package/components/tabs/TabContent.vue +5 -0
- package/components/tabs/TabsContainer.vue +5 -0
- package/components/transitions/HorizontalExpansionTransition.vue +12 -0
- package/components/transitions/VerticalExpansionTransition.vue +14 -0
- package/components/users/Author.vue +113 -0
- package/components/users/User.vue +53 -0
- package/composables/useAccordion.ts +12 -0
- package/composables/useDarkMode.ts +9 -0
- package/composables/useDropdownMenu.ts +25 -0
- package/composables/useForm.ts +134 -0
- package/composables/useFormValidationMode.ts +11 -0
- package/composables/useIsMobile.ts +27 -0
- package/composables/useMobileSidebar.ts +32 -0
- package/composables/useShiki.ts +12 -0
- package/composables/useTableOfContents.ts +50 -0
- package/composables/useToastifyConfig.ts +7 -0
- package/eslint.config.mjs +14 -0
- package/models/constants/app.ts +8 -0
- package/models/constants/form.ts +22 -0
- package/models/enums/alerts.ts +6 -0
- package/models/enums/aspect-ratios.ts +9 -0
- package/models/enums/avatars.ts +21 -0
- package/models/enums/badges.ts +10 -0
- package/models/enums/buttons.ts +38 -0
- package/models/enums/colors.ts +9 -0
- package/models/enums/content.ts +4 -0
- package/models/enums/counters.ts +4 -0
- package/models/enums/dividers.ts +9 -0
- package/models/enums/dropdowns.ts +18 -0
- package/models/enums/effects.ts +6 -0
- package/models/enums/emptyPlaceholders.ts +5 -0
- package/models/enums/formFields.ts +19 -0
- package/models/enums/formValidations.ts +4 -0
- package/models/enums/headings.ts +11 -0
- package/models/enums/icons.ts +22 -0
- package/models/enums/images.ts +16 -0
- package/models/enums/lists.ts +10 -0
- package/models/enums/loaders.ts +15 -0
- package/models/enums/navigation.ts +18 -0
- package/models/enums/order.ts +10 -0
- package/models/enums/orientations.ts +4 -0
- package/models/enums/pages.ts +10 -0
- package/models/enums/positions.ts +21 -0
- package/models/enums/rating.ts +12 -0
- package/models/enums/sections.ts +8 -0
- package/models/enums/selects.ts +16 -0
- package/models/enums/sliders.ts +4 -0
- package/models/enums/steppers.ts +20 -0
- package/models/enums/tabs.ts +11 -0
- package/models/enums/triggers.ts +4 -0
- package/models/types/accordions.ts +6 -0
- package/models/types/avatars.ts +4 -0
- package/models/types/badges.ts +4 -0
- package/models/types/buttons.ts +26 -0
- package/models/types/dropdowns.ts +20 -0
- package/models/types/forms.ts +14 -0
- package/models/types/navigation.ts +11 -0
- package/models/types/pagination.ts +4 -0
- package/models/types/pdfExportTable.ts +6 -0
- package/models/types/radio.ts +9 -0
- package/models/types/selects.ts +14 -0
- package/models/types/steppers.ts +17 -0
- package/models/types/tableOfContent.ts +6 -0
- package/models/types/tabs.ts +7 -0
- package/nuxt.config.ts +40 -0
- package/package.json +57 -0
- package/plugins/vue3-toastify.ts +14 -0
- package/tsconfig.json +7 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export enum StepStatus {
|
|
2
|
+
NONE = 'none',
|
|
3
|
+
INACTIVE = 'inactive',
|
|
4
|
+
CURRENT = 'current',
|
|
5
|
+
COMPLETED = 'completed',
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export enum StepIndicatorSize {
|
|
9
|
+
XS = 'xs',
|
|
10
|
+
SM = 'sm',
|
|
11
|
+
MD = 'md',
|
|
12
|
+
LG = 'lg',
|
|
13
|
+
XL = 'xl',
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export enum StepIndicatorType {
|
|
17
|
+
NUMBER = 'number',
|
|
18
|
+
EMPTY = 'empty',
|
|
19
|
+
ICON = 'icon',
|
|
20
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export interface ActionButton {
|
|
2
|
+
text: string
|
|
3
|
+
value: string
|
|
4
|
+
active?: boolean
|
|
5
|
+
action?: () => void
|
|
6
|
+
size?: ButtonSize
|
|
7
|
+
icon?: string
|
|
8
|
+
iconPosition?: IconPosition
|
|
9
|
+
disabled?: boolean
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export type ToggleButton = ActionButton
|
|
13
|
+
export interface OptionButton extends ActionButton {
|
|
14
|
+
styleType?: ButtonStyleType
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export interface AlertButton {
|
|
18
|
+
text: string
|
|
19
|
+
actionType?: ButtonActionType
|
|
20
|
+
icon?: any
|
|
21
|
+
iconPosition?: IconPosition
|
|
22
|
+
disabled?: boolean
|
|
23
|
+
to?: string
|
|
24
|
+
isExternal?: boolean
|
|
25
|
+
callback?: () => void
|
|
26
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export interface DropdownMenuItem {
|
|
2
|
+
actionType?: DropdownActionType
|
|
3
|
+
text?: string
|
|
4
|
+
icon?: any
|
|
5
|
+
size?: DropdownItemSize
|
|
6
|
+
type?: DropdownItemType
|
|
7
|
+
userDisplayName?: string
|
|
8
|
+
userProfileImg?: string
|
|
9
|
+
imgUrl?: string
|
|
10
|
+
alt?: string
|
|
11
|
+
helpText?: string
|
|
12
|
+
to?: string
|
|
13
|
+
isExternal?: boolean
|
|
14
|
+
exportData?: Record<string, any>[]
|
|
15
|
+
exportFields?: Record<string, any>
|
|
16
|
+
exportType?: string
|
|
17
|
+
exportFileName?: string
|
|
18
|
+
hasSeparator?: boolean
|
|
19
|
+
callback?: () => void
|
|
20
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Not all types are included because there specific components for some of them such as checkbox, radio, etc.
|
|
2
|
+
export type AllowedInputType =
|
|
3
|
+
| 'color'
|
|
4
|
+
| 'email'
|
|
5
|
+
| 'number'
|
|
6
|
+
| 'password'
|
|
7
|
+
| 'tel'
|
|
8
|
+
| 'text'
|
|
9
|
+
| 'url'
|
|
10
|
+
| 'date'
|
|
11
|
+
| 'datetime-local'
|
|
12
|
+
| 'time'
|
|
13
|
+
| 'month'
|
|
14
|
+
| 'week'
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export interface RadioOption {
|
|
2
|
+
id: string | number
|
|
3
|
+
value: string | number | boolean
|
|
4
|
+
label: string
|
|
5
|
+
helpText?: string
|
|
6
|
+
disabled?: boolean
|
|
7
|
+
type?: ColorAccent.INFO | ColorAccent.SUCCESS | ColorAccent.DANGER | ColorAccent.PRIMARY_BRAND | ColorAccent.SECONDARY_BRAND
|
|
8
|
+
icon?: string
|
|
9
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface SelectOption {
|
|
2
|
+
id?: string | number
|
|
3
|
+
value: string | number
|
|
4
|
+
text?: string
|
|
5
|
+
icon?: any
|
|
6
|
+
customIcon?: string
|
|
7
|
+
userDisplayName?: string
|
|
8
|
+
userProfileImg?: string
|
|
9
|
+
imgUrl?: string
|
|
10
|
+
alt?: string
|
|
11
|
+
helpText?: string
|
|
12
|
+
to?: string
|
|
13
|
+
isExternal?: boolean
|
|
14
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface TabStep {
|
|
2
|
+
title: string
|
|
3
|
+
description?: string
|
|
4
|
+
icon?: string
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export interface CircleStep {
|
|
8
|
+
icon?: string
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export interface VerticalStepperItem {
|
|
12
|
+
title: string
|
|
13
|
+
metaTitle?: string
|
|
14
|
+
description: string
|
|
15
|
+
stepStatus?: StepStatus
|
|
16
|
+
stepIcon?: any
|
|
17
|
+
}
|
package/nuxt.config.ts
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
// https://nuxt.com/docs/api/configuration/nuxt-config
|
|
2
|
+
import tailwindcss from "@tailwindcss/vite"
|
|
3
|
+
|
|
4
|
+
export default defineNuxtConfig({
|
|
5
|
+
compatibilityDate: "2024-11-01",
|
|
6
|
+
devtools: { enabled: false },
|
|
7
|
+
ssr: false,
|
|
8
|
+
|
|
9
|
+
extends: [
|
|
10
|
+
'../air-ui-utils',
|
|
11
|
+
],
|
|
12
|
+
|
|
13
|
+
modules: ["@nuxt/image", "nuxt-mdi", "@nuxt/eslint", '@vueuse/nuxt'],
|
|
14
|
+
|
|
15
|
+
plugins: ["@/plugins/vue3-toastify"],
|
|
16
|
+
|
|
17
|
+
imports: {
|
|
18
|
+
dirs: [
|
|
19
|
+
"models/**"
|
|
20
|
+
],
|
|
21
|
+
},
|
|
22
|
+
|
|
23
|
+
components: [
|
|
24
|
+
// Auto-import components based only on its name, not path,
|
|
25
|
+
{
|
|
26
|
+
path: "./components",
|
|
27
|
+
pathPrefix: false,
|
|
28
|
+
},
|
|
29
|
+
],
|
|
30
|
+
|
|
31
|
+
eslint: {
|
|
32
|
+
// options here
|
|
33
|
+
},
|
|
34
|
+
|
|
35
|
+
css: ["./assets/css/main.css"],
|
|
36
|
+
|
|
37
|
+
vite: {
|
|
38
|
+
plugins: [tailwindcss()],
|
|
39
|
+
},
|
|
40
|
+
})
|
package/package.json
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@imaginario27/air-ui-ds",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"author": "imaginario27",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "git+https://github.com/imaginario27/air-ui.git"
|
|
9
|
+
},
|
|
10
|
+
"publishConfig": {
|
|
11
|
+
"access": "public"
|
|
12
|
+
},
|
|
13
|
+
"scripts": {
|
|
14
|
+
"build": "nuxt build",
|
|
15
|
+
"dev": "nuxt dev",
|
|
16
|
+
"generate": "nuxt generate",
|
|
17
|
+
"preview": "nuxt preview",
|
|
18
|
+
"postinstall": "nuxt prepare",
|
|
19
|
+
"test": "vitest",
|
|
20
|
+
"generate-theme": "ts-node scripts/generate-theme.ts",
|
|
21
|
+
"publish:patch": "npm version patch --no-git-tag-version && npm publish",
|
|
22
|
+
"publish:minor": "npm version minor --no-git-tag-version && npm publish",
|
|
23
|
+
"publish:major": "npm version major --no-git-tag-version && npm publish"
|
|
24
|
+
},
|
|
25
|
+
"dependencies": {
|
|
26
|
+
"@jaxtheprime/vue3-dropzone": "^3.4.0",
|
|
27
|
+
"@nuxt/content": "^3.7.1",
|
|
28
|
+
"@nuxt/eslint": "^1.9.0",
|
|
29
|
+
"@nuxt/image": "^1.11.0",
|
|
30
|
+
"@nuxtjs/i18n": "^10.1.0",
|
|
31
|
+
"@tailwindcss/vite": "^4.1.13",
|
|
32
|
+
"@vueuse/core": "^13.9.0",
|
|
33
|
+
"@vueuse/nuxt": "^13.9.0",
|
|
34
|
+
"eslint": "^9.36.0",
|
|
35
|
+
"jspdf": "^3.0.3",
|
|
36
|
+
"jspdf-autotable": "^5.0.2",
|
|
37
|
+
"nuxt": "^4.1.2",
|
|
38
|
+
"nuxt-mdi": "^2.1.1",
|
|
39
|
+
"tailwindcss": "^4.1.13",
|
|
40
|
+
"qrcode.vue": "^3.6.0",
|
|
41
|
+
"vue": "^3.5.22",
|
|
42
|
+
"vue-json-excel3": "^1.0.30",
|
|
43
|
+
"vue-router": "^4.5.1",
|
|
44
|
+
"vue3-toastify": "^0.2.8"
|
|
45
|
+
},
|
|
46
|
+
"devDependencies": {
|
|
47
|
+
"@nuxt/test-utils": "^3.19.2",
|
|
48
|
+
"@vitest/coverage-v8": "^3.2.4",
|
|
49
|
+
"@vue/test-utils": "^2.4.6",
|
|
50
|
+
"happy-dom": "^18.0.1",
|
|
51
|
+
"playwright-core": "^1.55.1",
|
|
52
|
+
"prettier": "^3.6.2",
|
|
53
|
+
"ts-node": "^10.9.2",
|
|
54
|
+
"typescript": "^5.9.2",
|
|
55
|
+
"vitest": "^3.2.4"
|
|
56
|
+
}
|
|
57
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Docs: https://vue3-toastify.js-bridge.com/get-started/introduction.html
|
|
2
|
+
|
|
3
|
+
import Vue3Toastify, { toast } from 'vue3-toastify'
|
|
4
|
+
import 'vue3-toastify/dist/index.css'
|
|
5
|
+
|
|
6
|
+
export default defineNuxtPlugin((nuxtApp) => {
|
|
7
|
+
const config = useToastifyConfig()
|
|
8
|
+
|
|
9
|
+
nuxtApp.vueApp.use(Vue3Toastify, config)
|
|
10
|
+
|
|
11
|
+
return {
|
|
12
|
+
provide: { toast },
|
|
13
|
+
}
|
|
14
|
+
})
|