@mgremy/ng-primitives 0.0.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 (48) hide show
  1. package/README.md +3 -0
  2. package/button/README.md +3 -0
  3. package/combobox/README.md +3 -0
  4. package/fesm2022/mgremy-ng-primitives-button.mjs +42 -0
  5. package/fesm2022/mgremy-ng-primitives-button.mjs.map +1 -0
  6. package/fesm2022/mgremy-ng-primitives-combobox.mjs +112 -0
  7. package/fesm2022/mgremy-ng-primitives-combobox.mjs.map +1 -0
  8. package/fesm2022/mgremy-ng-primitives-input.mjs +34 -0
  9. package/fesm2022/mgremy-ng-primitives-input.mjs.map +1 -0
  10. package/fesm2022/mgremy-ng-primitives-loader.mjs +20 -0
  11. package/fesm2022/mgremy-ng-primitives-loader.mjs.map +1 -0
  12. package/fesm2022/mgremy-ng-primitives-menu.mjs +58 -0
  13. package/fesm2022/mgremy-ng-primitives-menu.mjs.map +1 -0
  14. package/fesm2022/mgremy-ng-primitives-navbar.mjs +54 -0
  15. package/fesm2022/mgremy-ng-primitives-navbar.mjs.map +1 -0
  16. package/fesm2022/mgremy-ng-primitives-pagination.mjs +81 -0
  17. package/fesm2022/mgremy-ng-primitives-pagination.mjs.map +1 -0
  18. package/fesm2022/mgremy-ng-primitives-table.mjs +50 -0
  19. package/fesm2022/mgremy-ng-primitives-table.mjs.map +1 -0
  20. package/fesm2022/mgremy-ng-primitives-tooltip.mjs +60 -0
  21. package/fesm2022/mgremy-ng-primitives-tooltip.mjs.map +1 -0
  22. package/fesm2022/mgremy-ng-primitives.mjs +6 -0
  23. package/fesm2022/mgremy-ng-primitives.mjs.map +1 -0
  24. package/input/README.md +3 -0
  25. package/loader/README.md +3 -0
  26. package/menu/README.md +3 -0
  27. package/navbar/README.md +3 -0
  28. package/package.json +73 -0
  29. package/pagination/README.md +3 -0
  30. package/table/README.md +3 -0
  31. package/theme/components/button.css +39 -0
  32. package/theme/components/combobox.css +145 -0
  33. package/theme/components/input.css +25 -0
  34. package/theme/components/menu.css +85 -0
  35. package/theme/components/tooltip.css +69 -0
  36. package/theme/mgnp.css +107 -0
  37. package/theme/ngp_tw.css +45 -0
  38. package/tooltip/README.md +3 -0
  39. package/types/mgremy-ng-primitives-button.d.ts +15 -0
  40. package/types/mgremy-ng-primitives-combobox.d.ts +32 -0
  41. package/types/mgremy-ng-primitives-input.d.ts +11 -0
  42. package/types/mgremy-ng-primitives-loader.d.ts +8 -0
  43. package/types/mgremy-ng-primitives-menu.d.ts +18 -0
  44. package/types/mgremy-ng-primitives-navbar.d.ts +23 -0
  45. package/types/mgremy-ng-primitives-pagination.d.ts +28 -0
  46. package/types/mgremy-ng-primitives-table.d.ts +28 -0
  47. package/types/mgremy-ng-primitives-tooltip.d.ts +18 -0
  48. package/types/mgremy-ng-primitives.d.ts +2 -0
@@ -0,0 +1,60 @@
1
+ import * as i0 from '@angular/core';
2
+ import { inject, Directive } from '@angular/core';
3
+ import { NgpTooltip, NgpTooltipArrow } from 'ng-primitives/tooltip';
4
+
5
+ const options$1 = ['ngpTooltip'];
6
+ const error$1 = new Error(`MgnpTooltip must be used with ${options$1.join(' / ')}`);
7
+ class MgnpTooltip {
8
+ ngpTooltip = inject(NgpTooltip, { optional: true });
9
+ constructor() {
10
+ if (!this.ngpTooltip) {
11
+ console.error(this);
12
+ throw error$1;
13
+ }
14
+ }
15
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: MgnpTooltip, deps: [], target: i0.ɵɵFactoryTarget.Directive });
16
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.6", type: MgnpTooltip, isStandalone: true, selector: "[ngpTooltip][mgnpTooltip]", host: { attributes: { "data-mgnp-component": "mgnp-tooltip" } }, ngImport: i0 });
17
+ }
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: MgnpTooltip, decorators: [{
19
+ type: Directive,
20
+ args: [{
21
+ selector: '[ngpTooltip][mgnpTooltip]',
22
+ standalone: true,
23
+ host: {
24
+ 'data-mgnp-component': 'mgnp-tooltip',
25
+ },
26
+ }]
27
+ }], ctorParameters: () => [] });
28
+
29
+ const options = ['ngpTooltipArrow'];
30
+ const error = new Error(`MgnpTooltipArrow must be used with ${options.join(' / ')}`);
31
+ class MgnpTooltipArrow {
32
+ ngpTooltipArrow = inject(NgpTooltipArrow, {
33
+ optional: true,
34
+ });
35
+ constructor() {
36
+ if (!this.ngpTooltipArrow) {
37
+ console.error(this);
38
+ throw error;
39
+ }
40
+ }
41
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: MgnpTooltipArrow, deps: [], target: i0.ɵɵFactoryTarget.Directive });
42
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.6", type: MgnpTooltipArrow, isStandalone: true, selector: "[ngpTooltipArrow][mgnpTooltipArrow]", host: { attributes: { "data-mgnp-component": "mgnp-tooltip-arrow" } }, ngImport: i0 });
43
+ }
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: MgnpTooltipArrow, decorators: [{
45
+ type: Directive,
46
+ args: [{
47
+ selector: '[ngpTooltipArrow][mgnpTooltipArrow]',
48
+ standalone: true,
49
+ host: {
50
+ 'data-mgnp-component': 'mgnp-tooltip-arrow',
51
+ },
52
+ }]
53
+ }], ctorParameters: () => [] });
54
+
55
+ /**
56
+ * Generated bundle index. Do not edit.
57
+ */
58
+
59
+ export { MgnpTooltip, MgnpTooltipArrow };
60
+ //# sourceMappingURL=mgremy-ng-primitives-tooltip.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mgremy-ng-primitives-tooltip.mjs","sources":["../../../../libs/ng-primitives/tooltip/src/lib/mgnp-tooltip/mgnp-tooltip.directive.ts","../../../../libs/ng-primitives/tooltip/src/lib/mgnp-tooltip-arrow/mgnp-tooltip-arrow.directive.ts","../../../../libs/ng-primitives/tooltip/src/mgremy-ng-primitives-tooltip.ts"],"sourcesContent":["import { Directive, inject } from '@angular/core';\nimport { NgpTooltip } from 'ng-primitives/tooltip';\n\nconst options = ['ngpTooltip'];\n\nconst error = new Error(`MgnpTooltip must be used with ${options.join(' / ')}`);\n\n@Directive({\n selector: '[ngpTooltip][mgnpTooltip]',\n standalone: true,\n host: {\n 'data-mgnp-component': 'mgnp-tooltip',\n },\n})\nexport class MgnpTooltip {\n protected readonly ngpTooltip = inject(NgpTooltip, { optional: true });\n\n constructor() {\n if (!this.ngpTooltip) {\n console.error(this);\n throw error;\n }\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { NgpTooltipArrow } from 'ng-primitives/tooltip';\n\nconst options = ['ngpTooltipArrow'];\n\nconst error = new Error(\n `MgnpTooltipArrow must be used with ${options.join(' / ')}`,\n);\n\n@Directive({\n selector: '[ngpTooltipArrow][mgnpTooltipArrow]',\n standalone: true,\n host: {\n 'data-mgnp-component': 'mgnp-tooltip-arrow',\n },\n})\nexport class MgnpTooltipArrow {\n protected readonly ngpTooltipArrow = inject(NgpTooltipArrow, {\n optional: true,\n });\n\n constructor() {\n if (!this.ngpTooltipArrow) {\n console.error(this);\n throw error;\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["options","error"],"mappings":";;;;AAGA,MAAMA,SAAO,GAAG,CAAC,YAAY,CAAC;AAE9B,MAAMC,OAAK,GAAG,IAAI,KAAK,CAAC,CAAA,8BAAA,EAAiCD,SAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA,CAAE,CAAC;MASlE,WAAW,CAAA;IACH,UAAU,GAAG,MAAM,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAEtE,IAAA,WAAA,GAAA;AACE,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACpB,YAAA,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;AACnB,YAAA,MAAMC,OAAK;QACb;IACF;uGARW,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAX,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,qBAAA,EAAA,cAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBAPvB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACJ,wBAAA,qBAAqB,EAAE,cAAc;AACtC,qBAAA;AACF,iBAAA;;;ACVD,MAAM,OAAO,GAAG,CAAC,iBAAiB,CAAC;AAEnC,MAAM,KAAK,GAAG,IAAI,KAAK,CACrB,CAAA,mCAAA,EAAsC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA,CAAE,CAC5D;MASY,gBAAgB,CAAA;AACR,IAAA,eAAe,GAAG,MAAM,CAAC,eAAe,EAAE;AAC3D,QAAA,QAAQ,EAAE,IAAI;AACf,KAAA,CAAC;AAEF,IAAA,WAAA,GAAA;AACE,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;AACzB,YAAA,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;AACnB,YAAA,MAAM,KAAK;QACb;IACF;uGAVW,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qCAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAP5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qCAAqC;AAC/C,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACJ,wBAAA,qBAAqB,EAAE,oBAAoB;AAC5C,qBAAA;AACF,iBAAA;;;ACfD;;AAEG;;;;"}
@@ -0,0 +1,6 @@
1
+ var index = {};
2
+
3
+ /**
4
+ * Generated bundle index. Do not edit.
5
+ */
6
+ //# sourceMappingURL=mgremy-ng-primitives.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mgremy-ng-primitives.mjs","sources":["../../../../libs/ng-primitives/src/index.ts","../../../../libs/ng-primitives/src/mgremy-ng-primitives.ts"],"sourcesContent":["export default {};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"AAAA,YAAe,EAAE;;ACAjB;;AAEG"}
@@ -0,0 +1,3 @@
1
+ # @mgremy/ng-primitives/src/lib/input
2
+
3
+ Secondary entry point of `@mgremy/ng-primitives`. It can be used by importing from `@mgremy/ng-primitives/input`.
@@ -0,0 +1,3 @@
1
+ # @mgremy/ng-primitives/src/lib/loader
2
+
3
+ Secondary entry point of `@mgremy/ng-primitives`. It can be used by importing from `@mgremy/ng-primitives/loader`.
package/menu/README.md ADDED
@@ -0,0 +1,3 @@
1
+ # @mgremy/ng-primitives/src/lib/menu
2
+
3
+ Secondary entry point of `@mgremy/ng-primitives`. It can be used by importing from `@mgremy/ng-primitives/menu`.
@@ -0,0 +1,3 @@
1
+ # @mgremy/ng-primitives/src/lib/navbar
2
+
3
+ Secondary entry point of `@mgremy/ng-primitives`. It can be used by importing from `@mgremy/ng-primitives/navbar`.
package/package.json ADDED
@@ -0,0 +1,73 @@
1
+ {
2
+ "name": "@mgremy/ng-primitives",
3
+ "version": "0.0.1",
4
+ "publishConfig": {
5
+ "access": "public"
6
+ },
7
+ "repository": {
8
+ "url": "https://github.com/MGREMY/nx_source"
9
+ },
10
+ "peerDependencies": {
11
+ "@angular/common": "~21.1.0",
12
+ "@angular/core": "~21.1.0",
13
+ "ng-primitives": "~0.110.0",
14
+ "tailwindcss": "~4.0.0",
15
+ "@ng-icons/core": "~33.0.0",
16
+ "@ng-icons/flag-icons": "~33.0.0",
17
+ "@ng-icons/heroicons": "~33.0.0"
18
+ },
19
+ "sideEffects": false,
20
+ "exports": {
21
+ "./theme*": {
22
+ "default": "./theme"
23
+ },
24
+ "./package.json": {
25
+ "default": "./package.json"
26
+ },
27
+ ".": {
28
+ "types": "./types/mgremy-ng-primitives.d.ts",
29
+ "default": "./fesm2022/mgremy-ng-primitives.mjs"
30
+ },
31
+ "./button": {
32
+ "types": "./types/mgremy-ng-primitives-button.d.ts",
33
+ "default": "./fesm2022/mgremy-ng-primitives-button.mjs"
34
+ },
35
+ "./combobox": {
36
+ "types": "./types/mgremy-ng-primitives-combobox.d.ts",
37
+ "default": "./fesm2022/mgremy-ng-primitives-combobox.mjs"
38
+ },
39
+ "./input": {
40
+ "types": "./types/mgremy-ng-primitives-input.d.ts",
41
+ "default": "./fesm2022/mgremy-ng-primitives-input.mjs"
42
+ },
43
+ "./loader": {
44
+ "types": "./types/mgremy-ng-primitives-loader.d.ts",
45
+ "default": "./fesm2022/mgremy-ng-primitives-loader.mjs"
46
+ },
47
+ "./menu": {
48
+ "types": "./types/mgremy-ng-primitives-menu.d.ts",
49
+ "default": "./fesm2022/mgremy-ng-primitives-menu.mjs"
50
+ },
51
+ "./navbar": {
52
+ "types": "./types/mgremy-ng-primitives-navbar.d.ts",
53
+ "default": "./fesm2022/mgremy-ng-primitives-navbar.mjs"
54
+ },
55
+ "./pagination": {
56
+ "types": "./types/mgremy-ng-primitives-pagination.d.ts",
57
+ "default": "./fesm2022/mgremy-ng-primitives-pagination.mjs"
58
+ },
59
+ "./table": {
60
+ "types": "./types/mgremy-ng-primitives-table.d.ts",
61
+ "default": "./fesm2022/mgremy-ng-primitives-table.mjs"
62
+ },
63
+ "./tooltip": {
64
+ "types": "./types/mgremy-ng-primitives-tooltip.d.ts",
65
+ "default": "./fesm2022/mgremy-ng-primitives-tooltip.mjs"
66
+ }
67
+ },
68
+ "module": "fesm2022/mgremy-ng-primitives.mjs",
69
+ "typings": "types/mgremy-ng-primitives.d.ts",
70
+ "dependencies": {
71
+ "tslib": "^2.3.0"
72
+ }
73
+ }
@@ -0,0 +1,3 @@
1
+ # @mgremy/ng-primitives/src/lib/pagination
2
+
3
+ Secondary entry point of `@mgremy/ng-primitives`. It can be used by importing from `@mgremy/ng-primitives/pagination`.
@@ -0,0 +1,3 @@
1
+ # @mgremy/ng-primitives/src/lib/table
2
+
3
+ Secondary entry point of `@mgremy/ng-primitives`. It can be used by importing from `@mgremy/ng-primitives/table`.
@@ -0,0 +1,39 @@
1
+ @utility mgnp-button {
2
+ display: inline-block;
3
+ padding-top: 0.5rem;
4
+ padding-bottom: 0.5rem;
5
+ padding-left: 1rem;
6
+ padding-right: 1rem;
7
+ border-radius: 0.5rem;
8
+ color: var(--ngp-text-primary);
9
+ border: none;
10
+ font-weight: 500;
11
+ height: fit-content;
12
+ width: max-content;
13
+ background-color: var(--ngp-background);
14
+ transition: background-color 300ms cubic-bezier(0.4, 0, 0.2, 1);
15
+ box-shadow: var(--ngp-button-shadow);
16
+ cursor: pointer;
17
+
18
+ @variant data-hover {
19
+ background-color: var(--ngp-background-hover);
20
+ }
21
+
22
+ @variant data-focus-visible {
23
+ outline: 2px solid var(--ngp-focus-ring);
24
+ }
25
+
26
+ @variant data-press {
27
+ background-color: var(--ngp-background-active);
28
+ }
29
+
30
+ @variant data-disabled {
31
+ opacity: 50%;
32
+ }
33
+ }
34
+
35
+ @layer base {
36
+ [mgnpButton][data-mgnp-component='mgnp-button'] {
37
+ @apply mgnp-button;
38
+ }
39
+ }
@@ -0,0 +1,145 @@
1
+ @utility mgnp-combobox {
2
+ display: flex;
3
+ justify-content: space-between;
4
+ align-items: center;
5
+ height: fit-content;
6
+ width: fit-content;
7
+ border-radius: 8px;
8
+ border: none;
9
+ background-color: var(--ngp-background);
10
+ box-shadow: var(--ngp-input-shadow);
11
+ box-sizing: border-box;
12
+
13
+ @variant data-focus {
14
+ outline: 2px solid var(--ngp-focus-ring);
15
+ outline-offset: 2px;
16
+ }
17
+ }
18
+
19
+ @utility mgnp-combobox-input {
20
+ flex: 1;
21
+ padding: 0 16px;
22
+ border: none;
23
+ background-color: transparent;
24
+ color: var(--ngp-text);
25
+ font-family: inherit;
26
+ font-size: 14px;
27
+ outline: none;
28
+ height: auto;
29
+ width: auto;
30
+ }
31
+
32
+ @utility mgnp-combobox-button {
33
+ display: inline-flex;
34
+ justify-content: center;
35
+ align-items: center;
36
+ height: auto;
37
+ width: auto;
38
+ background-color: transparent;
39
+ border: none;
40
+ color: var(--ngp-text);
41
+ cursor: pointer;
42
+ box-sizing: border-box;
43
+ }
44
+
45
+ @utility mgnp-combobox-dropdown {
46
+ background-color: var(--ngp-background);
47
+ border: 1px solid var(--ngp-border);
48
+ padding: 0.25rem;
49
+ border-radius: 0.75rem;
50
+ outline: none;
51
+ position: absolute;
52
+ animation: popover-show 0.1s ease-out;
53
+ width: var(--ngp-combobox-width);
54
+ min-width: fit-content;
55
+ box-shadow: var(--ngp-shadow-lg);
56
+ box-sizing: border-box;
57
+ margin-top: 4px;
58
+ max-height: 240px;
59
+ overflow-y: auto;
60
+ z-index: 1001;
61
+
62
+ @variant data-enter {
63
+ animation: combobox-show 0.1s ease-out;
64
+ }
65
+
66
+ @variant data-exit {
67
+ animation: combobox-hide 0.1s ease-out;
68
+ }
69
+ }
70
+
71
+ @utility mgnp-combobox-option {
72
+ display: flex;
73
+ align-items: center;
74
+ gap: 0.5rem;
75
+ padding: 0.375rem 0.75rem;
76
+ cursor: pointer;
77
+ border-radius: 0.5rem;
78
+ width: 100%;
79
+ height: 36px;
80
+ font-size: 14px;
81
+ color: var(--ngp-text-primary);
82
+ box-sizing: border-box;
83
+
84
+ @variant data-hover {
85
+ background-color: var(--ngp-background-hover);
86
+ }
87
+
88
+ @variant data-press {
89
+ background-color: var(--ngp-background-active);
90
+ }
91
+
92
+ @variant data-active {
93
+ background-color: var(--ngp-background-active);
94
+ }
95
+
96
+ @variant data-disabled {
97
+ opacity: 50%;
98
+ }
99
+ }
100
+
101
+ @layer base {
102
+ [mgnpComboboxdata-mgnp-componentnent='mgnp-combobox'] {
103
+ @apply mgnp-combobox;
104
+ }
105
+
106
+ [mgnpComboboxInputdata-mgnp-componentnent='mgnp-combobox-input'] {
107
+ @apply mgnp-combobox-input;
108
+ }
109
+
110
+ [mgnpComboboxButtondata-mgnp-componentnent='mgnp-combobox-button'] {
111
+ @apply mgnp-combobox-button;
112
+ }
113
+
114
+ [mgnpComboboxDropdowndata-mgnp-componentnent='mgnp-combobox-dropdown'] {
115
+ @apply mgnp-combobox-dropdown;
116
+ }
117
+
118
+ [mgnpComboboxOptiondata-mgnp-componentnent='mgnp-combobox-option'] {
119
+ @apply mgnp-combobox-option;
120
+ }
121
+ }
122
+
123
+ @theme {
124
+ @keyframes combobox-show {
125
+ 0% {
126
+ opacity: 0;
127
+ transform: translateY(-10px) scale(0.9);
128
+ }
129
+ 100% {
130
+ opacity: 1;
131
+ transform: translateY(0) scale(1);
132
+ }
133
+ }
134
+
135
+ @keyframes combobox-hide {
136
+ 0% {
137
+ opacity: 1;
138
+ transform: translateY(0) scale(1);
139
+ }
140
+ 100% {
141
+ opacity: 0;
142
+ transform: translateY(-10px) scale(0.9);
143
+ }
144
+ }
145
+ }
@@ -0,0 +1,25 @@
1
+ @utility mgnp-input {
2
+ height: 36px;
3
+ width: 100%;
4
+ border-radius: 8px;
5
+ padding: 0 16px;
6
+ border: none;
7
+ box-shadow: var(--ngp-input-shadow);
8
+ background-color: var(--ngp-background);
9
+ outline: none;
10
+
11
+ @variant data-focus {
12
+ outline: 2px solid var(--ngp-focus-ring);
13
+ outline-offset: 2px;
14
+ }
15
+
16
+ ::placeholder {
17
+ color: var(--ngp-text-placeholder);
18
+ }
19
+ }
20
+
21
+ @layer base {
22
+ [mgnpInputdata-mgnp-componentnt='mgnp-input'] {
23
+ @apply mgnp-input;
24
+ }
25
+ }
@@ -0,0 +1,85 @@
1
+ @utility mgnp-menu {
2
+ position: fixed;
3
+ display: flex;
4
+ flex-direction: column;
5
+ width: max-content;
6
+ background: var(--ngp-background);
7
+ border: 1px solid var(--ngp-border);
8
+ box-shadow: var(--ngp-shadow-lg);
9
+ border-radius: 8px;
10
+ padding: 4px;
11
+ transform-origin: var(--ngp-menu-transform-origin);
12
+
13
+ @variant data-enter {
14
+ animation: menu-show 0.1s ease-out;
15
+ }
16
+
17
+ @variant data-exit {
18
+ animation: menu-hide 0.1s ease-out;
19
+ }
20
+ }
21
+
22
+ @utility mgnp-menu-item {
23
+ padding: 6px 14px;
24
+ border: none;
25
+ background: none;
26
+ cursor: pointer;
27
+ transition: background-color 0.2s;
28
+ border-radius: 4px;
29
+ min-width: 120px;
30
+ text-align: start;
31
+ outline: none;
32
+ font-size: 14px;
33
+ font-weight: 400;
34
+
35
+ @variant data-hover {
36
+ background-color: var(--ngp-background-hover);
37
+ }
38
+
39
+ @variant data-press {
40
+ background-color: var(--ngp-background-active);
41
+ }
42
+
43
+ @variant data-focus-visible {
44
+ outline: 2px solid var(--ngp-focus-ring);
45
+ z-index: 1;
46
+ }
47
+
48
+ @variant data-disabled {
49
+ opacity: 50%;
50
+ }
51
+ }
52
+
53
+ @layer base {
54
+ [mgnpMenudata-mgnp-componentnent='mgnp-menu'] {
55
+ @apply mgnp-menu;
56
+ }
57
+
58
+ [mgnpMenuItemdata-mgnp-componentnent='mgnp-menu-item'] {
59
+ @apply mgnp-menu-item;
60
+ }
61
+ }
62
+
63
+ @theme {
64
+ @keyframes menu-show {
65
+ 0% {
66
+ opacity: 0;
67
+ transform: scale(0.9);
68
+ }
69
+ 100% {
70
+ opacity: 1;
71
+ transform: scale(1);
72
+ }
73
+ }
74
+
75
+ @keyframes menu-hide {
76
+ 0% {
77
+ opacity: 1;
78
+ transform: scale(1);
79
+ }
80
+ 100% {
81
+ opacity: 0;
82
+ transform: scale(0.9);
83
+ }
84
+ }
85
+ }
@@ -0,0 +1,69 @@
1
+ @utility mgnp-tooltip {
2
+ position: absolute;
3
+ max-width: 16rem;
4
+ border-radius: 0.5rem;
5
+ background-color: var(--ngp-background-inverse);
6
+ padding: 0.5rem 0.75rem;
7
+ border: none;
8
+ font-size: 0.75rem;
9
+ font-weight: 500;
10
+ color: var(--ngp-text-inverse);
11
+ animation: tooltip-show 200ms ease-in-out;
12
+ transform-origin: var(--ngp-tooltip-transform-origin);
13
+
14
+ @variant data-exit {
15
+ animation: tooltip-hide 200ms ease-in-out;
16
+ }
17
+ }
18
+
19
+ @utility mgnp-tooltip-arrow {
20
+ position: absolute;
21
+ pointer-events: none;
22
+ background-color: var(--ngp-background-inverse);
23
+ width: 8px;
24
+ height: 8px;
25
+ border-radius: 2px;
26
+ transform: rotate(45deg);
27
+
28
+ @variant data-[placement="top"] {
29
+ top: calc(100% - 5px);
30
+ }
31
+
32
+ @variant data-[placement="bottom"] {
33
+ bottom: calc(100% - 5px);
34
+ }
35
+ }
36
+
37
+ @layer base {
38
+ [mgnpTooltipdata-mgnp-componentnent='mgnp-tooltip'] {
39
+ @apply mgnp-tooltip;
40
+ }
41
+
42
+ [mgnpTooltipArrowdata-mgnp-componentnent='mgnp-tooltip-arrow'] {
43
+ @apply mgnp-tooltip-arrow;
44
+ }
45
+ }
46
+
47
+ @theme {
48
+ @keyframes tooltip-show {
49
+ 0% {
50
+ opacity: 0;
51
+ transform: scale(0.9);
52
+ }
53
+ 100% {
54
+ opacity: 1;
55
+ transform: scale(1);
56
+ }
57
+ }
58
+
59
+ @keyframes tooltip-hide {
60
+ 0% {
61
+ opacity: 1;
62
+ transform: scale(1);
63
+ }
64
+ 100% {
65
+ opacity: 0;
66
+ transform: scale(0.9);
67
+ }
68
+ }
69
+ }
package/theme/mgnp.css ADDED
@@ -0,0 +1,107 @@
1
+ @import './ngp_tw.css';
2
+
3
+ @custom-variant dark (&:where(.dark, .dark *));
4
+
5
+ @theme {
6
+ --bg-ui: var(--color-white);
7
+ --bg-secondary: var(--color-gray-300);
8
+ --bg-hover: var(--color-gray-50);
9
+ --bg-active: var(--color-gray-100);
10
+ --bg-inverse: var(--color-black);
11
+ --bg-disabled: var(--color-gray-100);
12
+ --bg-blue: var(--color-blue-200);
13
+ --bg-success: var(--color-lime-400);
14
+
15
+ --border-ui: var(--color-gray-300);
16
+ --border-secondary: var(--color-gray-200);
17
+ --border-blue: var(--color-blue-500);
18
+ --border-inverse: var(--color-black);
19
+
20
+ --text-ui: var(--color-black);
21
+ --text-active: var(--color-blue-400);
22
+ --text-emphasis: var(--color-black);
23
+ --text-primary: var(--color-gray-900);
24
+ --text-secondary: var(--color-gray-600);
25
+ --text-tertiary: var(--color-gray-500);
26
+ --text-disabled: var(--color-gray-400);
27
+ --text-placeholder: var(--color-gray-400);
28
+ --text-inverse: var(--color-white);
29
+ --text-blue: var(--color-blue-400);
30
+ --text-red: var(--color-red-500);
31
+
32
+ --shadow-ui: 0 1px 2px 0 rgba(0, 0, 0, 0.051);
33
+ --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.102), 0 4px 6px -4px rgba(0, 0, 0, 0.102);
34
+ --shadow-border: inset 0 0 0 1px rgba(0, 0, 0, 0.102);
35
+
36
+ --focus-ring-ui: rgb(59, 130, 246);
37
+
38
+ --avatar-background: rgb(186, 230, 253);
39
+ --avatar-border: rgb(255, 255, 255);
40
+
41
+ --button-shadow:
42
+ 0 1px 3px 0 rgba(0, 0, 0, 0.102), 0 1px 2px -1px rgba(0, 0, 0, 0.102),
43
+ 0 0 0 1px rgba(0, 0, 0, 0.051);
44
+
45
+ --input-shadow: 0 1px 2px rgba(0, 0, 0, 0.051), 0 0 0 1px rgba(0, 0, 0, 0.102);
46
+ }
47
+
48
+ @layer base {
49
+ html {
50
+ background-color: var(--bg-ui);
51
+ color: var(--text-ui);
52
+ }
53
+
54
+ @variant dark {
55
+ --bg-ui: var(--color-gray-950);
56
+ --bg-secondary: var(--color-gray-700);
57
+ --bg-hover: var(--color-gray-900);
58
+ --bg-active: var(--color-gray-800);
59
+ --bg-inverse: var(--color-white);
60
+ --bg-disabled: var(--color-gray-900);
61
+ --bg-blue: var(--color-blue-200);
62
+
63
+ --border-ui: var(--color-gray-800);
64
+ --border-secondary: var(--color-gray-700);
65
+ --border-blue: var(--color-blue-500);
66
+ --border-inverse: var(--color-white);
67
+
68
+ --text-ui: var(--color-white);
69
+ --text-active: var(--color-blue-600);
70
+ --text-emphasis: var(--color-white);
71
+ --text-primary: var(--color-gray-100);
72
+ --text-secondary: var(--color-gray-300);
73
+ --text-tertiary: var(--color-gray-400);
74
+ --text-disabled: var(--color-gray-500);
75
+ --text-inverse: var(--color-black);
76
+ --text-blue: var(--color-blue-600);
77
+ --text-red: var(--color-red-500);
78
+
79
+ --avatar-background: rgb(24, 24, 27);
80
+ --avatar-border: rgb(63, 63, 70);
81
+
82
+ --shadow-border: inset 0 0 0 1px rgba(255, 255, 255, 0.102);
83
+ --input-shadow: 0 1px 2px rgba(255, 255, 255, 0.008), 0 0 0 1px rgba(255, 255, 255, 0.1);
84
+
85
+ --button-shadow:
86
+ 0 1px 3px 0 rgba(255, 255, 255, 0.102), 0 1px 2px -1px rgba(255, 255, 255, 0.102),
87
+ 0 0 0 1px rgba(255, 255, 255, 0.051);
88
+ }
89
+ }
90
+
91
+ @utility bg-* {
92
+ background-color: --value([integer]);
93
+ background-color: --value(integer);
94
+ background-color: --value(--bg-*);
95
+ }
96
+
97
+ @utility border-* {
98
+ border-color: --value([integer]);
99
+ border-color: --value(integer);
100
+ border-color: --value(--border-*);
101
+ }
102
+
103
+ @utility text-* {
104
+ color: --value([integer]);
105
+ color: --value(integer);
106
+ color: --value(--text-*);
107
+ }