@robuust-digital/vue-components 1.3.2 → 2.0.0-rc.1

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 (73) hide show
  1. package/README.md +47 -52
  2. package/dist/_shared/ButtonBase-CQjlJ85F.js +87 -0
  3. package/dist/_shared/ChevronDownIcon-z-5U4fIb.js +55 -0
  4. package/dist/_shared/FormInput-abFMz_J4.js +82 -0
  5. package/dist/_shared/Modal-COVlUEud.js +193 -0
  6. package/dist/_shared/Tooltip-BKXJoJ1x.js +126 -0
  7. package/dist/_shared/XMarkIcon-90mcPzBs.js +19 -0
  8. package/dist/_shared/icon-spinner-CmxIOqaK.js +26 -0
  9. package/dist/combobox/combobox.css +203 -0
  10. package/dist/combobox/index.js +349 -0
  11. package/dist/combobox/styles.css +1 -0
  12. package/dist/core/accordion.css +47 -0
  13. package/dist/core/alert.css +169 -0
  14. package/dist/core/badge.css +121 -0
  15. package/dist/core/button.css +393 -0
  16. package/dist/core/checkbox.css +60 -0
  17. package/dist/core/empty-state.css +56 -0
  18. package/dist/core/index.js +779 -0
  19. package/dist/core/input.css +92 -0
  20. package/dist/core/pagination.css +48 -0
  21. package/dist/core/radio.css +61 -0
  22. package/dist/core/select.css +81 -0
  23. package/dist/core/styles.css +92 -0
  24. package/dist/core/table.css +87 -0
  25. package/dist/core/tabs.css +74 -0
  26. package/dist/core/textarea.css +48 -0
  27. package/dist/core/theme.css +11 -0
  28. package/dist/dialogs/drawer.css +72 -0
  29. package/dist/dialogs/index.js +200 -0
  30. package/dist/dialogs/modal.css +98 -0
  31. package/dist/dialogs/styles.css +2 -0
  32. package/dist/dropdown/dropdown.css +89 -0
  33. package/dist/dropdown/index.js +136 -0
  34. package/dist/dropdown/styles.css +1 -0
  35. package/dist/lightswitch/index.js +48 -0
  36. package/dist/lightswitch/lightswitch.css +68 -0
  37. package/dist/lightswitch/styles.css +1 -0
  38. package/dist/rich-text-editor/index.js +262 -0
  39. package/dist/rich-text-editor/rich-text.css +83 -0
  40. package/dist/rich-text-editor/styles.css +1 -0
  41. package/dist/toast/index.js +100 -0
  42. package/dist/toast/styles.css +1 -0
  43. package/dist/toast/toast.css +187 -0
  44. package/dist/tooltip/index.js +5 -0
  45. package/dist/tooltip/styles.css +1 -0
  46. package/dist/tooltip/tooltip.css +69 -0
  47. package/package.json +58 -53
  48. package/dist/nuxt-module.js +0 -27
  49. package/dist/style.css +0 -1
  50. package/dist/tailwind/base/index.js +0 -72
  51. package/dist/tailwind/components/accordion.js +0 -59
  52. package/dist/tailwind/components/alert.js +0 -166
  53. package/dist/tailwind/components/badge.js +0 -119
  54. package/dist/tailwind/components/button.js +0 -292
  55. package/dist/tailwind/components/checkbox.js +0 -70
  56. package/dist/tailwind/components/combobox.js +0 -226
  57. package/dist/tailwind/components/drawer.js +0 -104
  58. package/dist/tailwind/components/dropdown.js +0 -97
  59. package/dist/tailwind/components/empty-state.js +0 -69
  60. package/dist/tailwind/components/input.js +0 -101
  61. package/dist/tailwind/components/lightswitch.js +0 -79
  62. package/dist/tailwind/components/modal.js +0 -132
  63. package/dist/tailwind/components/pagination.js +0 -62
  64. package/dist/tailwind/components/radio.js +0 -75
  65. package/dist/tailwind/components/rich-text.js +0 -100
  66. package/dist/tailwind/components/select.js +0 -88
  67. package/dist/tailwind/components/table.js +0 -109
  68. package/dist/tailwind/components/tabs.js +0 -95
  69. package/dist/tailwind/components/textarea.js +0 -53
  70. package/dist/tailwind/components/toast.js +0 -188
  71. package/dist/tailwind/components/tooltip.js +0 -74
  72. package/dist/tailwind/index.js +0 -94
  73. package/dist/vue-components.es.js +0 -2401
@@ -0,0 +1,69 @@
1
+ :root {
2
+ --rvc-tooltip-transition-duration: var(--rvc-base-transition-duration);
3
+ --rvc-tooltip-transition-timing-function: var(--rvc-base-transition-timing-function);
4
+ --rvc-tooltip-border-radius: var(--rvc-base-border-radius);
5
+ --rvc-tooltip-color: var(--color-white);
6
+ --rvc-tooltip-transition-property: opacity, visibility;
7
+ --rvc-tooltip-text-align: left;
8
+ --rvc-tooltip-padding-x: calc(var(--spacing) * 4);
9
+ --rvc-tooltip-padding-y: calc(var(--spacing) * 4);
10
+ --rvc-tooltip-width: max-content;
11
+ --rvc-tooltip-bg-color: --alpha(var(--color-slate-700) / 60%);
12
+ --rvc-tooltip-arrow-size: calc(var(--spacing) * 3);
13
+ --rvc-tooltip-blur-size: var(--blur-sm);
14
+
15
+ /* Small variant */
16
+ --rvc-tooltip-padding-x-sm: calc(var(--spacing) * 2);
17
+ --rvc-tooltip-padding-y-sm: 0;
18
+ --rvc-tooltip-arrow-size-sm: calc(var(--spacing) * 1.5);
19
+ }
20
+
21
+ @layer components {
22
+ .rvc-tooltip {
23
+ z-index: 10;
24
+ color: var(--rvc-tooltip-color);
25
+ transition-property: var(--rvc-tooltip-transition-property);
26
+ transition-duration: var(--rvc-tooltip-transition-duration);
27
+ transition-timing-function: var(--rvc-tooltip-transition-timing-function);
28
+ text-align: var(--rvc-tooltip-text-align);
29
+ padding-top: var(--rvc-tooltip-padding-y);
30
+ padding-right: var(--rvc-tooltip-padding-x);
31
+ padding-bottom: var(--rvc-tooltip-padding-y);
32
+ padding-left: var(--rvc-tooltip-padding-x);
33
+ width: var(--rvc-tooltip-width);
34
+ position: absolute;
35
+ top: 0;
36
+ left: 0;
37
+
38
+ &::before {
39
+ content: '';
40
+ position: absolute;
41
+ top: 0;
42
+ right: 0;
43
+ bottom: 0;
44
+ left: 0;
45
+ border-radius: var(--rvc-tooltip-border-radius);
46
+ background-color: var(--rvc-tooltip-bg-color);
47
+ z-index: -1;
48
+ }
49
+
50
+ .rvc-tooltip-arrow {
51
+ background-color: var(--rvc-tooltip-bg-color);
52
+ width: var(--rvc-tooltip-arrow-size);
53
+ height: var(--rvc-tooltip-arrow-size);
54
+ clip-path: polygon(0 0, 50% 50%, 100% 0);
55
+ z-index: -1;
56
+ }
57
+
58
+ &.rvc-tooltip-blur::before,
59
+ &.rvc-tooltip-blur .rvc-tooltip-arrow {
60
+ backdrop-filter: blur(var(--rvc-tooltip-blur-size));
61
+ }
62
+
63
+ &.rvc-tooltip-sm {
64
+ --rvc-tooltip-padding-x: var(--rvc-tooltip-padding-x-sm);
65
+ --rvc-tooltip-padding-y: var(--rvc-tooltip-padding-y-sm);
66
+ --rvc-tooltip-arrow-size: var(--rvc-tooltip-arrow-size-sm);
67
+ }
68
+ }
69
+ }
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@robuust-digital/vue-components",
3
+ "version": "2.0.0-rc.1",
3
4
  "type": "module",
4
- "version": "1.3.2",
5
- "description": "A modern and customizable component library built with **Vue 3** and **Tailwind CSS**.",
6
- "directories": {
7
- "test": "tests"
5
+ "publishConfig": {
6
+ "access": "public"
8
7
  },
8
+ "description": "A modern and customizable component library built with Vue 3 and Tailwind CSS",
9
9
  "repository": {
10
10
  "type": "git",
11
11
  "url": "git+https://github.com/robuust/vue-components.git"
@@ -15,67 +15,72 @@
15
15
  "bugs": {
16
16
  "url": "https://github.com/robuust/vue-components/issues"
17
17
  },
18
- "homepage": "https://github.com/robuust/vue-components#readme",
19
- "main": "./dist/vue-components.es.js",
20
- "module": "./dist/vue-components.es.js",
18
+ "homepage": "https://github.com/robuust/vue-components/#readme",
21
19
  "files": [
22
- "./dist",
23
- "./README.md",
24
- "./LICENSE"
20
+ "dist",
21
+ "LICENSE",
22
+ "README.md"
25
23
  ],
24
+ "main": "dist/core/index.js",
25
+ "module": "dist/core/index.js",
26
26
  "exports": {
27
- ".": {
28
- "import": "./dist/vue-components.es.js"
29
- },
30
- "./tailwind": "./dist/tailwind/index.js",
31
- "./nuxt": "./dist/nuxt-module.js",
32
- "./css": "./dist/style.css"
27
+ "./core": "./dist/core/index.js",
28
+ "./core/css": "./dist/core/styles.css",
29
+ "./core/theme": "./dist/core/theme.css",
30
+ "./combobox": "./dist/combobox/index.js",
31
+ "./combobox/css": "./dist/combobox/styles.css",
32
+ "./dialogs": "./dist/dialogs/index.js",
33
+ "./dialogs/css": "./dist/dialogs/styles.css",
34
+ "./dropdown": "./dist/dropdown/index.js",
35
+ "./dropdown/css": "./dist/dropdown/styles.css",
36
+ "./lightswitch": "./dist/lightswitch/index.js",
37
+ "./lightswitch/css": "./dist/lightswitch/styles.css",
38
+ "./rich-text-editor": "./dist/rich-text-editor/index.js",
39
+ "./rich-text-editor/css": "./dist/rich-text-editor/styles.css",
40
+ "./toast": "./dist/toast/index.js",
41
+ "./toast/css": "./dist/toast/styles.css",
42
+ "./tooltip": "./dist/tooltip/index.js",
43
+ "./tooltip/css": "./dist/tooltip/styles.css"
33
44
  },
34
45
  "scripts": {
46
+ "dev": "vite --host",
35
47
  "build": "vite build",
36
- "test:unit": "vitest run"
48
+ "docs:dev": "vitepress dev docs --host",
49
+ "docs:build": "vitepress build docs",
50
+ "docs:preview": "vitepress preview docs",
51
+ "test:unit": "vitest run",
52
+ "lint": "eslint ."
37
53
  },
38
54
  "dependencies": {
39
- "@heroicons/vue": "^2.2.0",
40
- "@vueuse/core": "^12.4.0",
41
- "tailwindcss": "^3.4.14"
42
- },
43
- "peerDependencies": {
44
- "@floating-ui/vue": "^1.1.5",
55
+ "@floating-ui/vue": "^1.1.6",
45
56
  "@headlessui/vue": "^1.7.23",
46
- "@tiptap/extension-link": "^2.11.2",
47
- "@tiptap/starter-kit": "^2.11.2",
48
- "@tiptap/vue-3": "^2.11.2",
49
- "vue": "^3.5.12"
50
- },
51
- "peerDependenciesMeta": {
52
- "@floating-ui/vue": {
53
- "optional": true
54
- },
55
- "@headlessui/vue": {
56
- "optional": true
57
- },
58
- "@tiptap/extension-link": {
59
- "optional": true
60
- },
61
- "@tiptap/starter-kit": {
62
- "optional": true
63
- },
64
- "@tiptap/vue-3": {
65
- "optional": true
66
- }
57
+ "@heroicons/vue": "^2.2.0",
58
+ "@tiptap/extension-link": "^2.11.5",
59
+ "@tiptap/starter-kit": "^2.11.5",
60
+ "@tiptap/vue-3": "^2.11.5",
61
+ "@vueuse/core": "^12.6.1",
62
+ "vue": "^3.5.13"
67
63
  },
68
64
  "devDependencies": {
69
- "@vitejs/plugin-vue": "~4.5.0",
70
- "@vitest/coverage-v8": "^3.0.2",
65
+ "@rushstack/eslint-patch": "^1.10.5",
66
+ "@tailwindcss/postcss": "^4.0.6",
67
+ "@tailwindcss/vite": "^4.0.6",
68
+ "@vitejs/plugin-vue": "^5.2.1",
69
+ "@vitest/coverage-v8": "^3.0.5",
70
+ "@vue/eslint-config-airbnb": "^8.0.0",
71
71
  "@vue/test-utils": "^2.4.6",
72
- "string-width": "^4.2.0",
73
- "vite": "^5.4.10",
72
+ "eslint": "^8.57.1",
73
+ "eslint-plugin-vue": "^9.32.0",
74
+ "jsdom": "^26.0.0",
75
+ "postcss": "^8.5.2",
76
+ "tailwindcss": "^4.0.6",
77
+ "vite": "^6.1.0",
74
78
  "vite-plugin-eslint": "^1.8.1",
75
- "vite-plugin-static-copy": "^2.0.0",
76
- "vite-plugin-vue-devtools": "^7.5.3",
79
+ "vite-plugin-static-copy": "^2.2.0",
80
+ "vite-plugin-vue-devtools": "^7.7.2",
77
81
  "vite-svg-loader": "^5.1.0",
78
- "vitest": "^3.0.2",
79
- "wrap-ansi": "^7.0.0"
80
- }
82
+ "vitepress": "^2.0.0-alpha.2",
83
+ "vitest": "^3.0.5"
84
+ },
85
+ "packageManager": "yarn@4.6.0"
81
86
  }
@@ -1,27 +0,0 @@
1
- /* eslint-disable import/no-extraneous-dependencies */
2
- import { defineNuxtModule, addComponent } from '@nuxt/kit';
3
- import * as components from '@robuust-digital/vue-components';
4
- import pkg from '../package.json';
5
-
6
- /**
7
- * Nuxt module to register Vue components globally.
8
- *
9
- * @type {import('@nuxt/kit').NuxtModule}
10
- */
11
- export default defineNuxtModule({
12
- meta: {
13
- name: pkg.name,
14
- configKey: 'vueComponents',
15
- version: pkg.version,
16
- },
17
- setup() {
18
- Object.keys(components).forEach((name) => {
19
- addComponent({
20
- name,
21
- filePath: '@robuust-digital/vue-components',
22
- export: name,
23
- global: true,
24
- });
25
- });
26
- },
27
- });
package/dist/style.css DELETED
@@ -1 +0,0 @@
1
- .rvc-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.rvc-pointer-events-none{pointer-events:none}.rvc-pointer-events-auto{pointer-events:auto}.rvc-invisible{visibility:hidden}.rvc-fixed{position:fixed}.rvc-absolute{position:absolute}.rvc-relative{position:relative}.rvc-sticky{position:sticky}.rvc-inset-0{top:0;right:0;bottom:0;left:0}.rvc-inset-y-0{top:0;bottom:0}.rvc-left-0{left:0}.rvc-right-0{right:0}.rvc-top-0{top:0}.rvc-z-10{z-index:10}.rvc-ml-3{margin-left:.75rem}.rvc-block{display:block}.rvc-inline-block{display:inline-block}.rvc-flex{display:flex}.rvc-table{display:table}.rvc-grid{display:grid}.rvc-hidden{display:none}.rvc-size-4{width:1rem;height:1rem}.rvc-size-5{width:1.25rem;height:1.25rem}.rvc-size-full{width:100%;height:100%}.rvc-h-7{height:1.75rem}.rvc-h-full{height:100%}.rvc-min-h-0{min-height:0px}.rvc-min-h-full{min-height:100%}.rvc-w-fit{width:-moz-fit-content;width:fit-content}.rvc-w-full{width:100%}.rvc-w-screen{width:100vw}.rvc-max-w-full{max-width:100%}.rvc-max-w-xl{max-width:36rem}.rvc-flex-1{flex:1 1 0%}.rvc-shrink-0{flex-shrink:0}.rvc-translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rvc-translate-x-6{--tw-translate-x: 1.5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rvc-translate-x-full{--tw-translate-x: 100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rvc-translate-y-0{--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rvc-translate-y-4{--tw-translate-y: 1rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rvc-rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rvc-scale-100{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rvc-scale-95{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rvc-transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rvc-cursor-default{cursor:default}.rvc-cursor-pointer{cursor:pointer}.rvc-select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.rvc-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.rvc-flex-row-reverse{flex-direction:row-reverse}.rvc-flex-col{flex-direction:column}.rvc-flex-col-reverse{flex-direction:column-reverse}.rvc-items-center{align-items:center}.rvc-justify-start{justify-content:flex-start}.rvc-justify-end{justify-content:flex-end}.rvc-justify-center{justify-content:center}.rvc-justify-between{justify-content:space-between}.rvc-gap-x-1{-moz-column-gap:.25rem;column-gap:.25rem}.rvc-gap-x-1\.5{-moz-column-gap:.375rem;column-gap:.375rem}.rvc-gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.rvc-overflow-hidden{overflow:hidden}.rvc-overflow-x-auto{overflow-x:auto}.rvc-overflow-y-auto{overflow-y:auto}.rvc-overflow-y-scroll{overflow-y:scroll}.rvc-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rvc-p-4{padding:1rem}.rvc-py-2{padding-top:.5rem;padding-bottom:.5rem}.rvc-pb-4{padding-bottom:1rem}.rvc-pl-10{padding-left:2.5rem}.rvc-pl-3{padding-left:.75rem}.rvc-pr-9{padding-right:2.25rem}.rvc-text-left{text-align:left}.rvc-text-center{text-align:center}.rvc-text-right{text-align:right}.rvc-text-sm{font-size:.8125rem;line-height:1.25rem}.rvc-font-medium{font-weight:500}.rvc-text-slate-500{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.rvc-opacity-0{opacity:0}.rvc-opacity-100{opacity:1}.rvc-opacity-50{opacity:.5}.rvc-shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.rvc-transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.rvc-transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.rvc-transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.rvc-transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.rvc-duration-100{transition-duration:.1s}.rvc-duration-200{transition-duration:.2s}.rvc-duration-300{transition-duration:.3s}.rvc-duration-500{transition-duration:.5s}.rvc-duration-75{transition-duration:75ms}.rvc-ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.rvc-ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.rvc-ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.rvc-peer\/checkbox:focus~.peer-focus\/checkbox\:rvc-focus{outline-style:var(--rvc-base-focus-outline-style);outline-width:var(--rvc-base-focus-outline-offset);outline-offset:var(--rvc-base-focus-outline-width);outline-color:var(--rvc-base-focus-outline-color)}.first\:rvc-block:first-child{display:block}.last\:rvc-block:last-child{display:block}.hover\:rvc-underline:hover{text-decoration-line:underline}.rvc-group\/accordion[open] .group-open\/accordion\:rvc-rotate-45{--tw-rotate: 45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rvc-group\/tooltip:hover .group-hover\/tooltip\:rvc-visible{visibility:visible}.rvc-group\/table:hover .group-hover\/table\:rvc-opacity-30{opacity:.3}.rvc-group\/tooltip:hover .group-hover\/tooltip\:rvc-opacity-100{opacity:1}@media (min-width: 640px){.sm\:rvc-max-w-lg{max-width:32rem}.sm\:rvc-translate-y-0{--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.sm\:rvc-scale-100{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.sm\:rvc-scale-95{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.sm\:rvc-p-0{padding:0}.sm\:rvc-duration-700{transition-duration:.7s}}@media (min-width: 768px){.md\:rvc-block{display:block}.md\:rvc-flex{display:flex}.md\:rvc-hidden{display:none}.md\:rvc-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width: 1280px){.xl\:rvc-gap-1{gap:.25rem}}
@@ -1,72 +0,0 @@
1
- import { withAlphaValue } from 'tailwindcss/lib/util/withAlphaVariable';
2
-
3
- /**
4
- * Base styles
5
- *
6
- * @param {Object} theme - The global theme object
7
- */
8
- export default (theme) => ({
9
- ':root': {
10
- // Focus styling
11
- '--rvc-base-focus-outline-style': 'dashed',
12
- '--rvc-base-focus-outline-offset': '0.0625rem', // 1px
13
- '--rvc-base-focus-outline-width': '0.0625rem', // 1px
14
- '--rvc-base-focus-outline-color': theme('colors.indigo.600'),
15
-
16
- // Base styling
17
- '--rvc-base-border-radius': theme('borderRadius.md'),
18
- '--rvc-base-transition-duration': theme('transitionDuration.DEFAULT'),
19
- '--rvc-base-transition-timing-function': theme('transitionTimingFunction.DEFAULT'),
20
- '--rvc-base-loading-animation': theme('animation.spin'),
21
- '--rvc-base-border-width': theme('borderWidth.DEFAULT'),
22
- '--rvc-base-border-style': 'solid',
23
- '--rvc-base-border-color': theme('colors.slate.200'),
24
- '--rvc-base-border-dark-color': theme('colors.slate.300'),
25
- '--rvc-base-box-shadow': 'none',
26
- '--rvc-base-font-size': '0.9375rem',
27
- '--rvc-base-line-height': '1.5rem',
28
-
29
- // Base Dialog styling
30
- '--rvc-dialog-backdrop-bg-color': withAlphaValue(theme('colors.slate.900'), 0.5),
31
- '--rvc-dialog-padding-x': theme('padding.4'),
32
- '--rvc-dialog-padding-y': theme('padding.4'),
33
- '--rvc-dialog-header-bg-color': theme('colors.white'),
34
- '--rvc-dialog-close-size': theme('width.6'),
35
- '--rvc-dialog-close-color': theme('colors.slate.700'),
36
- '--rvc-dialog-close-color-hover': theme('colors.slate.900'),
37
- '--rvc-dialog-title-color': theme('colors.slate.900'),
38
- '--rvc-dialog-title-font-size': theme('fontSize.xl'),
39
- '--rvc-dialog-title-font-weight': theme('fontWeight.bold'),
40
- '--rvc-dialog-title-font-family': theme('fontFamily.sans'),
41
- '--rvc-dialog-content-bg-color': theme('colors.white'),
42
- '--rvc-dialog-footer-bg-color': theme('colors.slate.50'),
43
- '--rvc-dialog-footer-gap': theme('gap.2'),
44
-
45
- // Base Input styling
46
- '--rvc-base-input-color': theme('colors.slate.600'),
47
- '--rvc-base-input-bg-color': theme('colors.white'),
48
- '--rvc-base-input-icon-color': theme('colors.slate.400'),
49
- '--rvc-base-input-icon-size': theme('width.5'),
50
- '--rvc-base-input-padding-x': theme('padding.3'),
51
- '--rvc-base-input-font-size': 'var(--rvc-base-font-size)',
52
- '--rvc-base-input-font-weight': theme('fontWeight.normal'),
53
- '--rvc-base-input-height': theme('height.9'),
54
- '--rvc-base-input-placeholder-color': theme('colors.slate.400'),
55
-
56
- ...theme('components.base'),
57
-
58
- [`@media (min-width: ${theme('screens.sm')})`]: {
59
- '--rvc-dialog-padding-x': theme('padding.6'),
60
- '--rvc-dialog-padding-y': theme('padding.4'),
61
- '--rvc-dialog-footer-gap': theme('gap.3'),
62
- ...theme('components.base[screen-sm]'),
63
- },
64
- },
65
-
66
- '[class^="rvc-"] *:focus, [class^="rvc-"]:focus, .rvc-focus': {
67
- outlineStyle: 'var(--rvc-base-focus-outline-style)',
68
- outlineWidth: 'var(--rvc-base-focus-outline-offset)',
69
- outlineOffset: 'var(--rvc-base-focus-outline-width)',
70
- outlineColor: 'var(--rvc-base-focus-outline-color)',
71
- },
72
- });
@@ -1,59 +0,0 @@
1
- /**
2
- * Accordion component
3
- *
4
- * @param {Object} theme - The global theme object
5
- */
6
- export default (theme) => ({
7
- ':root': {
8
- '--rvc-accordion-border-width': 'var(--rvc-base-border-width)',
9
- '--rvc-accordion-border-style': 'var(--rvc-base-border-style)',
10
- '--rvc-accordion-border-color': 'var(--rvc-base-border-color)',
11
- '--rvc-accordion-padding-y': theme('padding.6'),
12
- '--rvc-accordion-font-weight': theme('fontWeight.normal'),
13
- '--rvc-accordion-font-size': theme('fontSize.base.0'),
14
- '--rvc-accordion-color': theme('colors.slate.600'),
15
- '--rvc-accordion-summary-font-weight': theme('fontWeight.medium'),
16
- '--rvc-accordion-summary-font-size': theme('fontSize.lg.0'),
17
- '--rvc-accordion-summary-color': theme('colors.black'),
18
- '--rvc-accordion-summary-hover-decoration': 'underline',
19
- },
20
-
21
- '.rvc-accordion': {
22
- ...theme('components.accordion'),
23
-
24
- details: {
25
- borderTopWidth: 'var(--rvc-accordion-border-width)',
26
- borderTopColor: 'var(--rvc-accordion-border-color)',
27
- ...theme('components.accordion.details'),
28
- },
29
-
30
- summary: {
31
- paddingTop: 'var(--rvc-accordion-padding-y)',
32
- paddingBottom: 'var(--rvc-accordion-padding-y)',
33
- fontWeight: 'var(--rvc-accordion-summary-font-weight)',
34
- fontSize: 'var(--rvc-accordion-summary-font-size)',
35
- color: 'var(--rvc-accordion-summary-color)',
36
- width: theme('width.full'),
37
- display: 'flex',
38
- alignItems: 'center',
39
- justifyContent: 'space-between',
40
- cursor: 'pointer',
41
- userSelect: 'none',
42
-
43
- '&:hover': {
44
- textDecoration: 'var(--rvc-accordion-summary-hover-decoration)',
45
- ...theme('components.accordion.summary[&:hover]'),
46
- },
47
-
48
- ...theme('components.accordion.summary'),
49
- },
50
-
51
- '.rvc-accordion-content': {
52
- paddingBottom: 'var(--rvc-accordion-padding-y)',
53
- fontWeight: 'var(--rvc-accordion-font-weight)',
54
- fontSize: 'var(--rvc-accordion-font-size)',
55
- color: 'var(--rvc-accordion-color)',
56
- ...theme('components.accordion[.rvc-accordion-content]'),
57
- },
58
- },
59
- });
@@ -1,166 +0,0 @@
1
- /**
2
- * Alert component
3
- *
4
- * @param {Object} theme - The global theme object
5
- */
6
- export default (theme) => ({
7
- ':root': {
8
- // Custom properties
9
- '--rvc-alert-border-radius': 'var(--rvc-base-border-radius)',
10
- '--rvc-alert-transition-duration': 'var(--rvc-base-transition-duration)',
11
- '--rvc-alert-transition-timing-function': 'var(--rvc-base-transition-timing-function)',
12
- '--rvc-alert-padding-x': theme('padding.6'),
13
- '--rvc-alert-padding-y': theme('padding.6'),
14
- '--rvc-alert-font-size': theme('fontSize.base.0'),
15
- '--rvc-alert-gap': theme('gap[1.5]'),
16
- '--rvc-alert-anchor-decoration': 'underline',
17
- '--rvc-alert-icon-size': theme('width.6'),
18
- '--rvc-alert-title-font-weight': theme('fontWeight.medium'),
19
- '--rvc-alert-transition-property': theme('transitionProperty.colors'),
20
-
21
- // Default color variables
22
- '--rvc-alert-bg-color': theme('colors.blue.50'),
23
- '--rvc-alert-color': theme('colors.blue.700'),
24
- '--rvc-alert-icon-color': theme('colors.blue.400'),
25
- '--rvc-alert-icon-hover-color': theme('colors.blue.800'),
26
- '--rvc-alert-title-color': theme('colors.blue.800'),
27
- '--rvc-alert-close-bg-color': theme('colors.blue.100'),
28
- '--rvc-alert-close-hover-bg-color': theme('colors.blue.200'),
29
- '--rvc-alert-anchor-color': 'inherit',
30
- '--rvc-alert-anchor-hover-color': theme('colors.blue.600'),
31
- },
32
-
33
- '.rvc-alert': {
34
- gap: 'var(--rvc-alert-gap)',
35
- paddingTop: 'var(--rvc-alert-padding-y)',
36
- paddingBottom: 'var(--rvc-alert-padding-y)',
37
- paddingLeft: 'var(--rvc-alert-padding-x)',
38
- paddingRight: 'var(--rvc-alert-padding-x)',
39
- borderRadius: 'var(--rvc-alert-border-radius)',
40
- fontSize: 'var(--rvc-alert-font-size)',
41
- backgroundColor: 'var(--rvc-alert-bg-color)',
42
- color: 'var(--rvc-alert-color)',
43
- display: 'flex',
44
- position: 'relative',
45
- overflow: 'hidden',
46
- ...theme('components.alert'),
47
-
48
- // Elements
49
- a: {
50
- textDecoration: 'var(--rvc-alert-anchor-decoration)',
51
- transitionProperty: 'var(--rvc-alert-transition-property)',
52
- transitionDuration: 'var(--rvc-alert-transition-duration)',
53
- transitionTimingFunction: 'var(--rvc-alert-transition-timing-function)',
54
- color: 'var(--rvc-alert-anchor-color)',
55
- ...theme('components.alert.a'),
56
-
57
- '&:hover': {
58
- color: 'var(--rvc-alert-anchor-hover-color)',
59
- ...theme('components.alert.a[&:hover]'),
60
- },
61
- },
62
-
63
- 'ul,ol': {
64
- listStylePosition: 'inside',
65
- margin: 0,
66
- paddingLeft: theme('padding.2'),
67
- ...theme('components.alert[ul,ol]'),
68
- },
69
-
70
- ul: {
71
- listStyleType: 'disc',
72
- ...theme('components.alert.ul'),
73
- },
74
-
75
- ol: {
76
- listStyleType: 'decimal',
77
- ...theme('components.alert.ol'),
78
- },
79
-
80
- '.rvc-alert-close': {
81
- backgroundColor: 'var(--rvc-alert-close-bg-color)',
82
- color: 'var(--rvc-alert-icon-color)',
83
- borderBottomLeftRadius: 'var(--rvc-alert-border-radius)',
84
- transitionProperty: 'var(--rvc-alert-transition-property)',
85
- transitionDuration: 'var(--rvc-alert-transition-duration)',
86
- transitionTimingFunction: 'var(--rvc-alert-transition-timing-function)',
87
- display: 'inline-flex',
88
- justifyContent: 'center',
89
- alignItems: 'center',
90
- position: 'absolute',
91
- top: '0',
92
- right: '0',
93
- padding: theme('padding[1.5]'),
94
- ...theme('components.alert[.rvc-alert-close]'),
95
-
96
- '&:hover': {
97
- backgroundColor: 'var(--rvc-alert-close-hover-bg-color)',
98
- color: 'var(--rvc-alert-icon-hover-color)',
99
- ...theme('components.alert[.rvc-alert-close][&:hover]'),
100
- },
101
- },
102
-
103
- '.rvc-alert-icon': {
104
- width: 'var(--rvc-alert-icon-size)',
105
- height: 'var(--rvc-alert-icon-size)',
106
- color: 'var(--rvc-alert-icon-color)',
107
- display: 'block',
108
- flexShrink: '0',
109
- ...theme('components.alert[.rvc-alert-icon]'),
110
- },
111
-
112
- '.rvc-alert-title': {
113
- color: 'var(--rvc-alert-title-color)',
114
- fontWeight: 'var(--rvc-alert-title-font-weight)',
115
- display: 'block',
116
- marginBottom: theme('margin.2'),
117
- ...theme('components.alert[.rvc-alert-title]'),
118
-
119
- '&:last-child': {
120
- marginBottom: '0',
121
- ...theme('components.alert[.rvc-alert-title][&:last-child]'),
122
- },
123
- },
124
-
125
- // Color variants
126
- '&.rvc-alert-info': {
127
- ...theme('components.alert.info'),
128
- },
129
-
130
- '&.rvc-alert-warning': {
131
- '--rvc-alert-bg-color': theme('colors.yellow.50'),
132
- '--rvc-alert-color': theme('colors.yellow.700'),
133
- '--rvc-alert-icon-color': theme('colors.yellow.400'),
134
- '--rvc-alert-icon-hover-color': theme('colors.yellow.800'),
135
- '--rvc-alert-title-color': theme('colors.yellow.800'),
136
- '--rvc-alert-close-bg-color': theme('colors.yellow.100'),
137
- '--rvc-alert-close-hover-bg-color': theme('colors.yellow.200'),
138
- '--rvc-alert-anchor-hover-color': theme('colors.yellow.600'),
139
- ...theme('components.alert.warning'),
140
- },
141
-
142
- '&.rvc-alert-success': {
143
- '--rvc-alert-bg-color': theme('colors.green.50'),
144
- '--rvc-alert-color': theme('colors.green.700'),
145
- '--rvc-alert-icon-color': theme('colors.green.400'),
146
- '--rvc-alert-icon-hover-color': theme('colors.green.800'),
147
- '--rvc-alert-title-color': theme('colors.green.800'),
148
- '--rvc-alert-close-bg-color': theme('colors.green.100'),
149
- '--rvc-alert-close-hover-bg-color': theme('colors.green.200'),
150
- '--rvc-alert-anchor-hover-color': theme('colors.green.600'),
151
- ...theme('components.alert.success'),
152
- },
153
-
154
- '&.rvc-alert-danger': {
155
- '--rvc-alert-bg-color': theme('colors.red.50'),
156
- '--rvc-alert-color': theme('colors.red.700'),
157
- '--rvc-alert-icon-color': theme('colors.red.400'),
158
- '--rvc-alert-icon-hover-color': theme('colors.red.800'),
159
- '--rvc-alert-title-color': theme('colors.red.800'),
160
- '--rvc-alert-close-bg-color': theme('colors.red.100'),
161
- '--rvc-alert-close-hover-bg-color': theme('colors.red.200'),
162
- '--rvc-alert-anchor-hover-color': theme('colors.red.600'),
163
- ...theme('components.alert.danger'),
164
- },
165
- },
166
- });