bonkers-ui 1.0.53 → 1.0.55

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 (38) hide show
  1. package/.eslintrc.js +82 -41
  2. package/package.json +25 -24
  3. package/src/components/ui-alert/ui-alert.vue +1 -1
  4. package/src/components/ui-badge/ui-badge.stories.ts +0 -5
  5. package/src/components/ui-badge/ui-badge.vue +4 -19
  6. package/src/components/ui-ber-rank/ui-ber-rank.vue +2 -2
  7. package/src/components/ui-button/ui-button.test.ts +1 -1
  8. package/src/components/ui-button/ui-button.vue +35 -13
  9. package/src/components/ui-card-cta/ui-card-cta.vue +6 -6
  10. package/src/components/ui-card-result/ui-card-result.stories.ts +29 -29
  11. package/src/components/ui-card-result/ui-card-result.vue +20 -7
  12. package/src/components/ui-card-simple/ui-card-simple.vue +1 -1
  13. package/src/components/ui-checkbox/ui-checkbox.vue +15 -3
  14. package/src/components/ui-icon-wrapper/ui-icon-wrapper.vue +8 -8
  15. package/src/components/ui-input/ui-input.vue +14 -5
  16. package/src/components/ui-input-range/ui-input-range.vue +26 -13
  17. package/src/components/ui-list-item/ui-list-item.vue +14 -3
  18. package/src/components/ui-modal/ui-backdrop/ui-backdrop.vue +2 -2
  19. package/src/components/ui-modal/ui-modal.vue +12 -12
  20. package/src/components/ui-notification-badge/ui-notification-badge.vue +17 -3
  21. package/src/components/ui-order-card/ui-order-card.vue +4 -4
  22. package/src/components/ui-plain-radio/ui-plain-radio.vue +22 -23
  23. package/src/components/ui-progress/_types.ts +0 -0
  24. package/src/components/ui-progress/index.ts +1 -0
  25. package/src/components/ui-progress/ui-progress.stories.ts +34 -0
  26. package/src/components/ui-progress/ui-progress.vue +43 -0
  27. package/src/components/ui-radio/ui-radio.vue +14 -14
  28. package/src/components/ui-radio-fancy/ui-radio-fancy.vue +22 -21
  29. package/src/components/ui-result-card-range/ui-result-card-range.vue +4 -4
  30. package/src/components/ui-select/ui-select.vue +15 -4
  31. package/src/components/ui-snackbar/ui-snackbar.vue +1 -1
  32. package/src/components/ui-table/_types.ts +5 -0
  33. package/src/components/ui-table/index.ts +2 -0
  34. package/src/components/ui-table/ui-table.stories.ts +10 -9
  35. package/src/components/ui-table/ui-table.vue +31 -0
  36. package/src/components/ui-tabs/ui-tabs.vue +3 -3
  37. package/src/components/ui-toggle/ui-toggle.vue +7 -8
  38. package/src/stories/colors/ui-colors.vue +2 -2
package/.eslintrc.js CHANGED
@@ -1,51 +1,92 @@
1
1
  module.exports = {
2
- "root": true,
3
- "env": {
4
- "browser": true,
5
- "es2021": true,
6
- "node": true
2
+ root: true,
3
+ env: {
4
+ browser: true,
5
+ es2021: true,
6
+ node: true,
7
7
  },
8
- "extends": ["plugin:vue/vue3-recommended", "eslint:recommended", "@vue/typescript/recommended", "plugin:storybook/recommended"],
9
- "parserOptions": {
10
- "ecmaVersion": 2021
8
+ extends: [
9
+ "plugin:vue/vue3-recommended",
10
+ "eslint:recommended",
11
+ "@vue/typescript/recommended",
12
+ "plugin:storybook/recommended",
13
+ "plugin:tailwindcss/recommended"
14
+ ],
15
+ parserOptions: {
16
+ ecmaVersion: 2021,
11
17
  },
12
- "parser": "vue-eslint-parser",
13
- "plugins": [],
14
- "overrides": [{
15
- "files": ["*.vue"],
16
- "rules": {
17
- "indent": "off"
18
- }
19
- }],
20
- "rules": {
21
- "indent": ["error", "tab", {
22
- "VariableDeclarator": "first",
23
- "MemberExpression": 1,
24
- "ObjectExpression": 1
25
- }],
26
- "vue/html-indent": ["error", "tab", {
27
- "attribute": 1,
28
- "baseIndent": 1,
29
- "closeBracket": 0,
30
- "alignAttributesVertically": true
31
- }],
32
- "vue/script-indent": ["error", "tab", {
33
- "baseIndent": 1,
34
- "switchCase": 1
35
- }],
18
+ parser: "vue-eslint-parser",
19
+ plugins: [
20
+ "tailwindcss",
21
+ ],
22
+ overrides: [
23
+ {
24
+ files: ["*.vue"],
25
+ rules: {
26
+ indent: "off",
27
+ },
28
+ },
29
+ ],
30
+ rules: {
31
+ indent: [
32
+ "error",
33
+ "tab",
34
+ {
35
+ VariableDeclarator: "first",
36
+ MemberExpression: 1,
37
+ ObjectExpression: 1,
38
+ },
39
+ ],
40
+ "vue/html-indent": [
41
+ "error",
42
+ "tab",
43
+ {
44
+ attribute: 1,
45
+ baseIndent: 1,
46
+ closeBracket: 0,
47
+ alignAttributesVertically: true,
48
+ },
49
+ ],
50
+ "vue/script-indent": [
51
+ "error",
52
+ "tab",
53
+ {
54
+ baseIndent: 1,
55
+ switchCase: 1,
56
+ },
57
+ ],
36
58
  "eol-last": ["error", "always"],
37
59
  "no-console": "warn",
38
60
  "no-debugger": "warn",
39
61
  "vue/multi-word-component-names": 0,
40
62
  "object-curly-spacing": ["error", "always"],
41
- "quotes": ["error", "double", {
42
- "avoidEscape": true,
43
- "allowTemplateLiterals": true
63
+ quotes: [
64
+ "error",
65
+ "double",
66
+ {
67
+ avoidEscape: true,
68
+ allowTemplateLiterals: true,
69
+ },
70
+ ],
71
+ "no-multiple-empty-lines": [
72
+ "error",
73
+ {
74
+ max: 1,
75
+ maxEOF: 0,
76
+ },
77
+ ],
78
+ semi: ["error", "always"],
79
+ "max-len": ["error", {
80
+ "code": 120,
81
+ "tabWidth": 4,
82
+ "ignoreStrings": true,
83
+ "ignoreTemplateLiterals": true,
84
+ "ignoreRegExpLiterals": true,
85
+ "ignoreUrls": true,
86
+ "ignoreComments": true,
87
+ "ignoreTrailingComments": true,
88
+ ignorePattern: 'd="([\\s\\S]*?)"',
44
89
  }],
45
- "no-multiple-empty-lines": ["error", {
46
- "max": 1,
47
- "maxEOF": 0
48
- }],
49
- semi: ["error", "always"]
50
- }
90
+ "tailwindcss/no-custom-classname": "off",
91
+ },
51
92
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bonkers-ui",
3
- "version": "v1.0.53",
3
+ "version": "v1.0.55",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "storybook": "storybook dev -p 6006",
@@ -19,50 +19,51 @@
19
19
  "@fortawesome/free-regular-svg-icons": "^6.4.0",
20
20
  "@fortawesome/free-solid-svg-icons": "^6.4.0",
21
21
  "@fortawesome/vue-fontawesome": "^3.0.3",
22
+ "eslint-plugin-tailwindcss": "^3.13.0",
22
23
  "storybook-addon-designs": "^6.3.1",
23
24
  "vue": "^3.3.4",
24
- "vue-router": "^4.2.2"
25
+ "vue-router": "^4.2.4"
25
26
  },
26
27
  "devDependencies": {
27
- "@storybook/addon-essentials": "^7.0.20",
28
- "@storybook/addon-links": "^7.0.20",
29
- "@storybook/addon-mdx-gfm": "^7.0.20",
30
- "@storybook/vue3": "^7.0.20",
31
- "@storybook/vue3-vite": "^7.0.20",
28
+ "@storybook/addon-essentials": "^7.0.27",
29
+ "@storybook/addon-links": "^7.0.27",
30
+ "@storybook/addon-mdx-gfm": "^7.0.27",
31
+ "@storybook/vue3": "^7.0.27",
32
+ "@storybook/vue3-vite": "^7.0.27",
32
33
  "@typescript-eslint/eslint-plugin": "^5.59.9",
33
34
  "@typescript-eslint/parser": "^5.59.9",
34
35
  "@vitejs/plugin-vue": "^4.2.3",
35
36
  "@vue/eslint-config-typescript": "^11.0.3",
36
- "@vue/test-utils": "^2.3.2",
37
- "eslint": "8.42.0",
37
+ "@vue/test-utils": "^2.4.0",
38
+ "eslint": "8.44.0",
38
39
  "eslint-plugin-storybook": "^0.6.12",
39
- "eslint-plugin-vue": "^9.14.1",
40
+ "eslint-plugin-vue": "^9.15.1",
40
41
  "gh-pages": "^5.0.0",
41
42
  "husky": "4.3.8",
42
43
  "jsdom": "^22.1.0",
43
- "lint-staged": "^13.2.2",
44
- "postcss": "^8.4.24",
44
+ "lint-staged": "^13.2.3",
45
+ "postcss": "^8.4.26",
45
46
  "postcss-html": "^1.4.1",
46
47
  "react": "^18.2.0",
47
48
  "react-dom": "^18.2.0",
48
- "storybook": "^7.0.20",
49
+ "storybook": "^7.0.27",
49
50
  "storybook-tailwind-dark-mode": "^1.0.22",
50
- "stylelint": "^15.7.0",
51
- "stylelint-config-recommended": "^12.0.0",
52
- "stylelint-config-recommended-vue": "^1.4.0",
53
- "stylelint-config-standard": "^33.0.0",
54
- "tailwindcss": "^3.3.2",
51
+ "stylelint": "^15.10.1",
52
+ "stylelint-config-recommended": "^13.0.0",
53
+ "stylelint-config-recommended-vue": "^1.5.0",
54
+ "stylelint-config-standard": "^34.0.0",
55
+ "tailwindcss": "^3.3.3",
55
56
  "ts-node": "^10.9.1",
56
- "typescript": "^5.1.3",
57
- "vite": "^4.3.9",
58
- "vitest": "^0.32.0",
59
- "vue-eslint-parser": "^9.3.0",
57
+ "typescript": "^5.1.6",
58
+ "vite": "^4.4.4",
59
+ "vitest": "^0.33.0",
60
+ "vue-eslint-parser": "^9.3.1",
60
61
  "vue-loader": "^17.2.2",
61
- "vue-tsc": "^1.6.5"
62
+ "vue-tsc": "^1.8.4"
62
63
  },
63
64
  "lint-staged": {
64
65
  "*.{ts,tsx,vue}": [
65
- "eslint --fix",
66
+ "yarn eslint --fix",
66
67
  "bash -c 'yarn typecheck'"
67
68
  ],
68
69
  "*.{css,vue,tsx}": "stylelint --fix"
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <div
3
- class="ui-alert flex gap-sm p-sm border rounded-lg bg-white"
3
+ class="ui-alert flex gap-sm rounded-lg border bg-white p-sm"
4
4
  :class="[
5
5
  (!kind || kind === EAlertTypes.PRIMARY) && 'border-primary',
6
6
  kind === EAlertTypes.WARNING && 'border-warning',
@@ -16,16 +16,11 @@ export default {
16
16
  options: Object.values(EBadgeSize),
17
17
  description: "The Element size",
18
18
  },
19
- more: {
20
- control: { type: "boolean" },
21
- description: "The Element more",
22
- }
23
19
  },
24
20
  args: {
25
21
  slot: "default text",
26
22
  kind: EBadgeKind.PRIMARY,
27
23
  size: EBadgeSize.SMALL,
28
- more: false,
29
24
  },
30
25
  };
31
26
 
@@ -1,11 +1,8 @@
1
1
  <template>
2
2
  <div
3
- class="ui-badge relative text-white overflow-hidden"
4
- :class="[
5
- more && 'mr-sm',
6
- ]"
3
+ class="ui-badge relative overflow-hidden text-white"
7
4
  >
8
- <div class="relative z-[1] flex items-center content-center gap-xxs px-xs py-xxs">
5
+ <div class="relative z-[1] flex content-center items-center gap-xxs px-xs py-xxs">
9
6
  <ui-icon
10
7
  v-if="icon"
11
8
  :size="ESize.XS"
@@ -19,7 +16,7 @@
19
16
  class="whitespace-nowrap"
20
17
  line-height
21
18
  :class="[
22
- elipsis && 'overflow-hidden overflow-ellipsis',
19
+ elipsis && 'overflow-hidden text-ellipsis',
23
20
  ]"
24
21
  >
25
22
  <slot />
@@ -27,24 +24,13 @@
27
24
  </div>
28
25
 
29
26
  <div
30
- v-if="more"
31
- class="absolute top-0 left-[15px] w-full h-full bg-primary-300 rounded-full border border-white"
32
- />
33
-
34
- <div
35
- v-if="more"
36
- class="absolute top-0 left-xs w-full h-full bg-primary-400 rounded-full border border-white"
37
- />
38
-
39
- <div
40
- class="absolute rounded-full top-0 left-0 w-full h-full"
27
+ class="absolute left-0 top-0 h-full w-full rounded-full"
41
28
  :class="[
42
29
  (!kind || kind === EBadgeKind.PRIMARY) && 'bg-primary-600',
43
30
 
44
31
  kind === EBadgeKind.ERROR && 'bg-error-600',
45
32
  kind === EBadgeKind.ACCENT && 'bg-accent-600',
46
33
  elipsis && 'max-w-full',
47
- more && 'border border-white',
48
34
  ]"
49
35
  />
50
36
  </div>
@@ -62,7 +48,6 @@
62
48
  kind?: EBadgeKind;
63
49
  icon?: TIconName;
64
50
  elipsis?: boolean;
65
- more?: boolean;
66
51
  }>();
67
52
 
68
53
  const slots = useSlots();
@@ -22,7 +22,7 @@
22
22
  :weight="ETextWeight.BOLD"
23
23
  :size="textSize"
24
24
  :text-transform="ETextTransform.UPPERCASE"
25
- class="absolute top-0 left-0 w-full h-full flex justify-center items-center"
25
+ class="absolute left-0 top-0 flex h-full w-full items-center justify-center"
26
26
  >
27
27
  ber
28
28
  </ui-typography>
@@ -52,7 +52,7 @@
52
52
  :weight="ETextWeight.BOLD"
53
53
  :size="textSize"
54
54
  :text-transform="ETextTransform.UPPERCASE"
55
- class="absolute top-0 left-0 w-full h-full flex justify-center items-center"
55
+ class="absolute left-0 top-0 flex h-full w-full items-center justify-center"
56
56
  >
57
57
  {{ berRankDictionary[+rank]?.text || berRankDictionary[0].text }}
58
58
  </ui-typography>
@@ -4,6 +4,6 @@ import UiButton from "./ui-button.vue";
4
4
  test("VButton.test.ts", () => {
5
5
  expect(UiButton).toBeTruthy();
6
6
 
7
- const container = mount(UiButton as any);
7
+ const container = mount(UiButton);
8
8
  expect(container).toBeTruthy();
9
9
  });
@@ -1,26 +1,48 @@
1
1
  <template>
2
2
  <button
3
- class="ui-button grid justify-center items-center grid-flow-col text-base rounded-lg whitespace-nowrap font-bold leading-none touch-manipulation "
3
+ class="ui-button
4
+ text-base
5
+ grid
6
+ touch-manipulation
7
+ grid-flow-col
8
+ items-center
9
+ justify-center
10
+ whitespace-nowrap
11
+ rounded-lg
12
+ font-bold
13
+ leading-none
14
+ "
4
15
  :disabled="disabled"
5
16
  :class="[
6
17
  (!kind || kind === EButtonTypes.PRIMARY) && [primaryColor, primaryColorHover, primaryColorActive].join(' '),
7
18
  kind === EButtonTypes.SECONDARY
8
- && 'text-white bg-secondary hover:bg-secondary-600 active:bg-secondary-700 disabled:bg-secondary-300',
9
- kind === EButtonTypes.WARNING && 'text-white bg-warning hover:bg-warning-600 active:bg-warning-700 disabled:bg-warning-300',
10
- kind === EButtonTypes.ERROR && 'text-white bg-error hover:bg-error-600 active:bg-error-700 disabled:bg-error-300',
19
+ && 'bg-secondary text-white hover:bg-secondary-600 active:bg-secondary-700 disabled:bg-secondary-300',
20
+ kind === EButtonTypes.WARNING
21
+ && 'bg-warning text-white hover:bg-warning-600 active:bg-warning-700 disabled:bg-warning-300',
22
+ kind === EButtonTypes.ERROR
23
+ && 'bg-error text-white hover:bg-error-600 active:bg-error-700 disabled:bg-error-300',
11
24
  kind === EButtonTypes.PRIMARY_OVERLAY
12
- && 'text-primary border border-primary hover:bg-primary-600 hover:border-transparent hover:text-white active:bg-primary-700 active:border-transparent active:text-white disabled:text-primary-300 disabled:border-primary-300',
25
+ && 'border border-primary text-primary hover:border-transparent hover:bg-primary-600'
26
+ + 'hover:text-white active:border-transparent active:bg-primary-700'
27
+ + 'active:text-white disabled:border-primary-300 disabled:text-primary-300',
13
28
  kind === EButtonTypes.SECONDARY_OVERLAY
14
- && 'text-secondary border border-secondary hover:bg-secondary-600 hover:border-transparent hover:text-white active:bg-secondary-700 active:border-transparent active:text-white disabled:text-secondary-300 disabled:border-secondary-300',
29
+ && 'border border-secondary text-secondary hover:border-transparent hover:bg-secondary-600'
30
+ + 'hover:text-white active:border-transparent active:bg-secondary-700'
31
+ + 'active:text-white disabled:border-secondary-300 disabled:text-secondary-300',
15
32
  kind === EButtonTypes.WARNING_OVERLAY
16
- && 'text-warning border border-warning hover:bg-warning-600 hover:border-transparent hover:text-white active:bg-warning-700 active:border-transparent active:text-white disabled:text-warning-300 disabled:border-warning-300',
33
+ && 'border border-warning text-warning hover:border-transparent hover:bg-warning-600'
34
+ + 'hover:text-white active:border-transparent active:bg-warning-700'
35
+ + 'active:text-white disabled:border-warning-300 disabled:text-warning-300',
17
36
  kind === EButtonTypes.ERROR_OVERLAY
18
- && 'text-error border border-error hover:bg-error-600 hover:border-transparent hover:text-white active:bg-error-700 active:border-transparent active:text-white disabled:text-error-300 disabled:border-error-300',
19
- kind === EButtonTypes.LINK && 'text-accent-alt hover:text-accent-alt-600 active:text-accent-alt-700 disabled:text-accent-alt-300',
20
- (!size || size === EButtonSizes.DEFAULT) && 'py-sm px-md',
21
- size === EButtonSizes.SMALL && 'py-xs px-md',
22
- size === EButtonSizes.MEDIUM && 'py-sm px-sm',
23
- size === EButtonSizes.LARGE && 'py-md px-md',
37
+ && 'border border-error text-error hover:border-transparent hover:bg-error-600'
38
+ +'hover:text-white active:border-transparent active:bg-error-700'
39
+ +'active:text-white disabled:border-error-300 disabled:text-error-300',
40
+ kind === EButtonTypes.LINK && 'hover:text-accent-alt-600 active:text-accent-alt-700'
41
+ +'disabled:text-accent-alt-300 text-accent-alt',
42
+ (!size || size === EButtonSizes.DEFAULT) && 'px-md py-sm',
43
+ size === EButtonSizes.SMALL && 'px-md py-xs',
44
+ size === EButtonSizes.MEDIUM && 'p-sm',
45
+ size === EButtonSizes.LARGE && 'p-md',
24
46
  ($slots.default || $slots.postfix) && 'gap-sm',
25
47
  fullWidth && 'w-full',
26
48
  disabled && 'pointer-events-none',
@@ -3,22 +3,22 @@
3
3
  class="
4
4
  ui-card-cta
5
5
  w-full
6
- outline-0
6
+ rounded-2xl
7
7
  border
8
8
  border-secondary-alt-500
9
- rounded-2xl
9
+ bg-white
10
10
  p-sm
11
11
  shadow-md
12
- bg-white
12
+ outline-0
13
13
  hover:border-secondary-700
14
14
  focus:shadow-border-primary
15
15
  active:bg-secondary-alt-200
16
- disabled:bg-secondary-alt-200
17
- disabled:pointer-events-none"
16
+ disabled:pointer-events-none
17
+ disabled:bg-secondary-alt-200"
18
18
  :disabled="disabled"
19
19
  >
20
20
  <span
21
- class="ui-card-cta__wrapper w-full grid gap-sm items-center"
21
+ class="ui-card-cta__wrapper grid w-full items-center gap-sm"
22
22
  :class="[
23
23
  invertOrder && 'ui-card-cta_inverted',
24
24
  ]"
@@ -60,6 +60,29 @@ const Template: Story<TComponentProps> = (args) => ({
60
60
  </template>
61
61
 
62
62
  <template #default>
63
+
64
+ <div
65
+ class="flex gap-xs items-center mb-xs"
66
+ >
67
+ <ui-icon
68
+ class="text-primary"
69
+ :size="ESize.SM"
70
+ :icon-name="['far', 'face-smile']"
71
+ />
72
+
73
+ <ui-icon
74
+ class="text-primary"
75
+ :size="ESize.SM"
76
+ :icon-name="['far', 'face-smile']"
77
+ />
78
+
79
+ <ui-icon
80
+ class="text-secondary-alt-300"
81
+ :size="ESize.SM"
82
+ :icon-name="['far', 'face-smile']"
83
+ />
84
+ </div>
85
+
63
86
  <div class="flex flex-wrap gap-xs mb-sm">
64
87
  <ui-badge
65
88
  v-for="item in ['Free bank tranfers']"
@@ -75,29 +98,6 @@ const Template: Story<TComponentProps> = (args) => ({
75
98
  >
76
99
  more...
77
100
  </ui-badge>
78
-
79
- <div
80
- class="flex gap-xs items-center justify-center"
81
- :style="{marginLeft: 'auto'}"
82
- >
83
- <ui-icon
84
- class="text-primary"
85
- :size="ESize.SM"
86
- :icon-name="['far', 'face-smile']"
87
- />
88
-
89
- <ui-icon
90
- class="text-primary"
91
- :size="ESize.SM"
92
- :icon-name="['far', 'face-smile']"
93
- />
94
-
95
- <ui-icon
96
- class="text-secondary-alt-300"
97
- :size="ESize.SM"
98
- :icon-name="['far', 'face-smile']"
99
- />
100
- </div>
101
101
  </div>
102
102
 
103
103
  <ul>
@@ -118,12 +118,13 @@ const Template: Story<TComponentProps> = (args) => ({
118
118
  </ui-list-item>
119
119
  </ul>
120
120
 
121
- <ui-typography class="mb-sm" underline :size="ETypographySizes.SM" :kind="EColors.SECONDARY">
122
- Some link
123
- </ui-typography>
121
+ <div :style="{display: 'grid', gridTemplateColumns: '1fr 1fr'}" class="items-center gap-sm mb-sm">
122
+ <ui-typography underline :size="ETypographySizes.SM" :kind="EColors.ACCENT">
123
+ Full Details
124
+ </ui-typography>
124
125
 
125
- <div :style="{display: 'grid', gridTemplateColumns: '1fr 1fr'}" class="items-center gap-sm">
126
126
  <ui-typography
127
+ class="text-right"
127
128
  :weight="ETextWeight.BOLD"
128
129
  :size="ETypographySizes.XL"
129
130
  :kind="EColors.SECONDARY"
@@ -136,9 +137,8 @@ const Template: Story<TComponentProps> = (args) => ({
136
137
  Monthly fee
137
138
  </ui-typography>
138
139
  </ui-typography>
139
-
140
- <ui-button full-width>Some text</ui-button>
141
140
  </div>
141
+ <ui-button full-width>Some text</ui-button>
142
142
  </template>
143
143
  </ui-card-result>
144
144
 
@@ -2,7 +2,7 @@
2
2
  <div class="ui-card-result">
3
3
  <div
4
4
  v-if="exclusiveText"
5
- class="bg-primary rounded-2xl px-sm pb-lg -mb-lg"
5
+ class="-mb-lg rounded-2xl bg-primary px-sm pb-lg"
6
6
  @click="exclusiveClickAction"
7
7
  >
8
8
  <ui-typography
@@ -11,18 +11,31 @@
11
11
  :size="ETypographySizes.XXS"
12
12
  :kind="EColors.WHITE"
13
13
  :align="ETextAlign.CENTER"
14
- :weight="ETextWeight.SEMI_BOLD"
14
+ :weight="ETextWeight.BOLD"
15
15
  >
16
16
  {{ exclusiveText }}
17
17
  </ui-typography>
18
18
  </div>
19
19
 
20
- <div class="grid relative border border-secondary-alt-400 rounded-2xl overflow-hidden bg-white">
21
- <div class="ui-card-result__header grid gap-xs justify-between items-center rounded-lg bg-secondary-alt-200 p-xs m-xs mb-sm">
20
+ <div class="relative grid overflow-hidden rounded-2xl border border-secondary-alt-400 bg-white">
21
+ <div
22
+ class="
23
+ ui-card-result__header
24
+ m-xs
25
+ mb-sm
26
+ grid
27
+ items-center
28
+ justify-between
29
+ gap-xs
30
+ rounded-lg
31
+ bg-secondary-alt-200
32
+ p-xs
33
+ "
34
+ >
22
35
  <ui-typography
23
36
  v-if="header"
24
37
  line-height
25
- class="flex-1 line-clamp"
38
+ class="line-clamp flex-1"
26
39
  :size="ETypographySizes.SM"
27
40
  :weight="ETextWeight.SEMI_BOLD"
28
41
  :kind="EColors.SECONDARY"
@@ -33,14 +46,14 @@
33
46
  <slot name="sidebar" />
34
47
  </div>
35
48
 
36
- <main class="p-sm pt-0 w-full overflow-hidden bg-white">
49
+ <main class="w-full overflow-hidden bg-white p-sm pt-0">
37
50
  <slot />
38
51
  </main>
39
52
  </div>
40
53
 
41
54
  <div
42
55
  v-if="exclusiveTextBottom"
43
- class="bg-secondary-alt-200 rounded-2xl px-sm pt-lg -mt-lg border border-secondary-alt-400"
56
+ class="-mt-lg rounded-2xl border border-secondary-alt-400 bg-secondary-alt-200 px-sm pt-lg"
44
57
  @click="exclusiveBottomClickAction"
45
58
  >
46
59
  <ui-typography
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <div
3
- class="ui-card-simple rounded-3xl shadow-md py-md px-sm bg-white"
3
+ class="ui-card-simple rounded-3xl bg-white px-sm py-md shadow-md"
4
4
  >
5
5
  <ui-typography
6
6
  v-if="slots.title"
@@ -14,13 +14,25 @@
14
14
  >
15
15
  <input
16
16
  v-model="checkboxModel"
17
- class="appearance-none absolute"
17
+ class="absolute appearance-none"
18
18
  type="checkbox"
19
19
  :value="value"
20
20
  :disabled="disabled"
21
21
  >
22
22
  <span
23
- class="ui-checkbox_custom w-md h-md flex items-center justify-center border border-secondary-alt-500 rounded relative hover:border-secondary-alt-700"
23
+ class="
24
+ ui-checkbox_custom
25
+ relative
26
+ flex
27
+ h-md
28
+ w-md
29
+ items-center
30
+ justify-center
31
+ rounded
32
+ border
33
+ border-secondary-alt-500
34
+ hover:border-secondary-alt-700
35
+ "
24
36
  :class="invertOrder && 'order-last'"
25
37
  >
26
38
  <svg
@@ -64,7 +76,7 @@
64
76
  }>();
65
77
 
66
78
  const emit = defineEmits<{
67
- (e: "update:modelValue", state: unknown): void
79
+ (e: "update:modelValue", state: typeof props.modelValue): void
68
80
  }>();
69
81
 
70
82
  const checkboxModel = computed({
@@ -1,15 +1,15 @@
1
1
  <template>
2
2
  <div
3
- class="icon-wrapper w-fit h-fit grid place-items-center relative rounded-2xl"
3
+ class="icon-wrapper relative grid h-fit w-fit place-items-center rounded-2xl"
4
4
  :class="[
5
- kind === EIconWrapperTypes.PRIMARY && 'text-white bg-primary',
6
- kind === EIconWrapperTypes.SECONDARY && 'text-black bg-secondary-alt-200',
7
- kind === EIconWrapperTypes.DEFAULT && 'text-primary bg-white border-2 border-primary ',
5
+ kind === EIconWrapperTypes.PRIMARY && 'bg-primary text-white',
6
+ kind === EIconWrapperTypes.SECONDARY && 'bg-secondary-alt-200 text-black',
7
+ kind === EIconWrapperTypes.DEFAULT && 'border-2 border-primary bg-white text-primary ',
8
8
 
9
- size === EIconWrapperSizes.DEFAULT && 'py-sm px-sm',
10
- size === EIconWrapperSizes.SMALL && 'py-xs px-xs',
11
- size === EIconWrapperSizes.MEDIUM && 'py-md px-md icon-wrapper_offset-md',
12
- size === EIconWrapperSizes.LARGE && 'py-lg px-lg icon-wrapper_offset-lg',
9
+ size === EIconWrapperSizes.DEFAULT && 'p-sm',
10
+ size === EIconWrapperSizes.SMALL && 'p-xs',
11
+ size === EIconWrapperSizes.MEDIUM && 'icon-wrapper_offset-md p-md',
12
+ size === EIconWrapperSizes.LARGE && 'icon-wrapper_offset-lg p-lg',
13
13
  ]"
14
14
  >
15
15
  <slot />