@nanahoshi/mona-ui 0.1.0 → 0.1.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.
- package/fesm2022/nanahoshi-mona-ui-auto-complete.mjs +11 -11
- package/fesm2022/nanahoshi-mona-ui-breadcrumb.mjs +17 -17
- package/fesm2022/nanahoshi-mona-ui-button-group.mjs +26 -26
- package/fesm2022/nanahoshi-mona-ui-button.mjs +109 -107
- package/fesm2022/nanahoshi-mona-ui-calendar.mjs +53 -53
- package/fesm2022/nanahoshi-mona-ui-check-box.mjs +80 -80
- package/fesm2022/nanahoshi-mona-ui-chip.mjs +98 -98
- package/fesm2022/nanahoshi-mona-ui-circular-progress-bar.mjs +2 -2
- package/fesm2022/nanahoshi-mona-ui-color-gradient.mjs +38 -38
- package/fesm2022/nanahoshi-mona-ui-color-palette.mjs +25 -25
- package/fesm2022/nanahoshi-mona-ui-color-picker.mjs +41 -37
- package/fesm2022/nanahoshi-mona-ui-combo-box.mjs +17 -19
- package/fesm2022/nanahoshi-mona-ui-date-input.mjs +6 -6
- package/fesm2022/nanahoshi-mona-ui-date-picker.mjs +11 -13
- package/fesm2022/nanahoshi-mona-ui-datetime-picker.mjs +18 -20
- package/fesm2022/nanahoshi-mona-ui-dialog.mjs +40 -40
- package/fesm2022/nanahoshi-mona-ui-dropdown-list.mjs +14 -16
- package/fesm2022/nanahoshi-mona-ui-dropdowns.mjs +52 -52
- package/fesm2022/nanahoshi-mona-ui-editor.mjs +462 -81
- package/fesm2022/nanahoshi-mona-ui-expansion-panel.mjs +26 -26
- package/fesm2022/nanahoshi-mona-ui-fieldset.mjs +8 -8
- package/fesm2022/nanahoshi-mona-ui-filter.mjs +14 -14
- package/fesm2022/{nanahoshi-mona-ui-grid-grid-footer-cell.component-B9SQH5N-.mjs → nanahoshi-mona-ui-grid-grid-footer-cell.component-B2ETh-uI.mjs} +14 -14
- package/fesm2022/{nanahoshi-mona-ui-grid-grid-footer-table-cell.directive-DlLwcCFT.mjs → nanahoshi-mona-ui-grid-grid-footer-table-cell.directive-DZk18LJC.mjs} +2 -2
- package/fesm2022/nanahoshi-mona-ui-grid-grid-list.component-C7WKhhig.mjs +128 -0
- package/fesm2022/{nanahoshi-mona-ui-grid-grid-toggle.component-DIUutx9s.mjs → nanahoshi-mona-ui-grid-grid-toggle.component-BRiY0CDX.mjs} +13 -13
- package/fesm2022/nanahoshi-mona-ui-grid-grid-virtual-list.component-BrYpFMyF.mjs +240 -0
- package/fesm2022/{nanahoshi-mona-ui-grid-nanahoshi-mona-ui-grid-C3eZIaJK.mjs → nanahoshi-mona-ui-grid-nanahoshi-mona-ui-grid-T9Bj98kl.mjs} +120 -120
- package/fesm2022/nanahoshi-mona-ui-grid.mjs +1 -1
- package/fesm2022/nanahoshi-mona-ui-internal-list.mjs +81 -81
- package/fesm2022/nanahoshi-mona-ui-internal-tree.mjs +35 -35
- package/fesm2022/nanahoshi-mona-ui-list-box.mjs +8 -8
- package/fesm2022/nanahoshi-mona-ui-list-view.mjs +7 -7
- package/fesm2022/nanahoshi-mona-ui-menubar.mjs +50 -50
- package/fesm2022/nanahoshi-mona-ui-multi-select.mjs +12 -14
- package/fesm2022/nanahoshi-mona-ui-notification.mjs +24 -24
- package/fesm2022/nanahoshi-mona-ui-numeric-text-box.mjs +69 -69
- package/fesm2022/nanahoshi-mona-ui-pager.mjs +29 -29
- package/fesm2022/nanahoshi-mona-ui-placeholder.mjs +9 -9
- package/fesm2022/nanahoshi-mona-ui-popover.mjs +12 -12
- package/fesm2022/nanahoshi-mona-ui-popup-menu.mjs +26 -26
- package/fesm2022/nanahoshi-mona-ui-popup.mjs +4 -4
- package/fesm2022/nanahoshi-mona-ui-progress-bar.mjs +2 -2
- package/fesm2022/nanahoshi-mona-ui-radio-button.mjs +55 -55
- package/fesm2022/nanahoshi-mona-ui-scroll-view.mjs +49 -49
- package/fesm2022/nanahoshi-mona-ui-slider.mjs +96 -96
- package/fesm2022/nanahoshi-mona-ui-split-button.mjs +30 -30
- package/fesm2022/nanahoshi-mona-ui-splitter.mjs +24 -24
- package/fesm2022/nanahoshi-mona-ui-stepper.mjs +29 -29
- package/fesm2022/nanahoshi-mona-ui-switch.mjs +42 -42
- package/fesm2022/nanahoshi-mona-ui-tabs.mjs +35 -39
- package/fesm2022/nanahoshi-mona-ui-text-area.mjs +22 -22
- package/fesm2022/nanahoshi-mona-ui-text-box.mjs +54 -54
- package/fesm2022/nanahoshi-mona-ui-time-picker.mjs +11 -19
- package/fesm2022/nanahoshi-mona-ui-time-selector.mjs +29 -29
- package/fesm2022/nanahoshi-mona-ui-tooltip.mjs +51 -51
- package/fesm2022/nanahoshi-mona-ui-tree-view.mjs +2 -2
- package/fesm2022/nanahoshi-mona-ui-window.mjs +27 -28
- package/package.json +30 -5
- package/types/nanahoshi-mona-ui-button.d.ts +4 -3
- package/types/nanahoshi-mona-ui-color-picker.d.ts +0 -3
- package/types/nanahoshi-mona-ui-dialog.d.ts +2 -2
- package/types/nanahoshi-mona-ui-editor.d.ts +17 -17
- package/types/nanahoshi-mona-ui-fieldset.d.ts +1 -1
- package/types/nanahoshi-mona-ui-filter.d.ts +2 -2
- package/types/nanahoshi-mona-ui-grid.d.ts +3 -3
- package/types/nanahoshi-mona-ui-internal-tree.d.ts +16 -16
- package/types/nanahoshi-mona-ui-menubar.d.ts +2 -2
- package/types/nanahoshi-mona-ui-stepper.d.ts +2 -2
- package/types/nanahoshi-mona-ui-tabs.d.ts +2 -2
- package/fesm2022/nanahoshi-mona-ui-grid-grid-list.component-Dgea-O0X.mjs +0 -130
- package/fesm2022/nanahoshi-mona-ui-grid-grid-virtual-list.component-DRHycGIh.mjs +0 -240
|
@@ -24,11 +24,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
24
24
|
}]
|
|
25
25
|
}] });
|
|
26
26
|
|
|
27
|
-
const chipVariants = cva(`
|
|
28
|
-
inline-flex items-center justify-between gap-1.5
|
|
29
|
-
text-xs font-medium cursor-pointer shrink-0
|
|
30
|
-
outline-none shadow-xs
|
|
31
|
-
transition-colors duration-200 ease-in-out
|
|
27
|
+
const chipVariants = cva(`
|
|
28
|
+
inline-flex items-center justify-between gap-1.5
|
|
29
|
+
text-xs font-medium cursor-pointer shrink-0
|
|
30
|
+
outline-none shadow-xs
|
|
31
|
+
transition-colors duration-200 ease-in-out
|
|
32
32
|
`, {
|
|
33
33
|
variants: {
|
|
34
34
|
disabled: {
|
|
@@ -36,59 +36,59 @@ const chipVariants = cva(`
|
|
|
36
36
|
false: ""
|
|
37
37
|
},
|
|
38
38
|
look: {
|
|
39
|
-
default: `
|
|
40
|
-
bg-background text-foreground
|
|
41
|
-
border border-border
|
|
42
|
-
hover:bg-hover hover:text-accent-foreground
|
|
43
|
-
active:bg-active active:text-accent-foreground
|
|
44
|
-
focus-visible:ring-2 focus-visible:ring-primary/40
|
|
39
|
+
default: `
|
|
40
|
+
bg-background text-foreground
|
|
41
|
+
border border-border
|
|
42
|
+
hover:bg-hover hover:text-accent-foreground
|
|
43
|
+
active:bg-active active:text-accent-foreground
|
|
44
|
+
focus-visible:ring-2 focus-visible:ring-primary/40
|
|
45
45
|
`,
|
|
46
|
-
primary: `
|
|
47
|
-
bg-primary text-primary-foreground
|
|
48
|
-
hover:bg-primary-hover hover:text-primary-foreground
|
|
49
|
-
active:bg-primary-active active:text-primary-foreground
|
|
50
|
-
focus-visible:ring-2 focus-visible:ring-primary/40
|
|
46
|
+
primary: `
|
|
47
|
+
bg-primary text-primary-foreground
|
|
48
|
+
hover:bg-primary-hover hover:text-primary-foreground
|
|
49
|
+
active:bg-primary-active active:text-primary-foreground
|
|
50
|
+
focus-visible:ring-2 focus-visible:ring-primary/40
|
|
51
51
|
`,
|
|
52
|
-
success: `
|
|
53
|
-
bg-success text-success-foreground
|
|
54
|
-
hover:bg-success-hover hover:text-success-foreground
|
|
55
|
-
active:bg-success-active active:text-success-foreground
|
|
56
|
-
focus-visible:ring-2 focus-visible:ring-success/40
|
|
52
|
+
success: `
|
|
53
|
+
bg-success text-success-foreground
|
|
54
|
+
hover:bg-success-hover hover:text-success-foreground
|
|
55
|
+
active:bg-success-active active:text-success-foreground
|
|
56
|
+
focus-visible:ring-2 focus-visible:ring-success/40
|
|
57
57
|
`,
|
|
58
|
-
error: `
|
|
59
|
-
bg-error text-error-foreground
|
|
60
|
-
hover:bg-error-hover hover:text-error-foreground
|
|
61
|
-
active:bg-error-active active:text-error-foreground
|
|
62
|
-
focus-visible:ring-2 focus-visible:ring-error/40
|
|
58
|
+
error: `
|
|
59
|
+
bg-error text-error-foreground
|
|
60
|
+
hover:bg-error-hover hover:text-error-foreground
|
|
61
|
+
active:bg-error-active active:text-error-foreground
|
|
62
|
+
focus-visible:ring-2 focus-visible:ring-error/40
|
|
63
63
|
`,
|
|
64
|
-
warning: `
|
|
65
|
-
bg-warning text-warning-foreground
|
|
66
|
-
hover:bg-warning-hover hover:text-warning-foreground
|
|
67
|
-
active:bg-warning-active active:text-warning-foreground
|
|
68
|
-
focus-visible:ring-2 focus-visible:ring-warning/40
|
|
64
|
+
warning: `
|
|
65
|
+
bg-warning text-warning-foreground
|
|
66
|
+
hover:bg-warning-hover hover:text-warning-foreground
|
|
67
|
+
active:bg-warning-active active:text-warning-foreground
|
|
68
|
+
focus-visible:ring-2 focus-visible:ring-warning/40
|
|
69
69
|
`,
|
|
70
|
-
info: `
|
|
71
|
-
bg-info text-info-foreground
|
|
72
|
-
hover:bg-info-hover hover:text-info-foreground
|
|
73
|
-
active:bg-info-active active:text-info-foreground
|
|
74
|
-
focus-visible:ring-2 focus-visible:ring-info/40
|
|
70
|
+
info: `
|
|
71
|
+
bg-info text-info-foreground
|
|
72
|
+
hover:bg-info-hover hover:text-info-foreground
|
|
73
|
+
active:bg-info-active active:text-info-foreground
|
|
74
|
+
focus-visible:ring-2 focus-visible:ring-info/40
|
|
75
75
|
`,
|
|
76
|
-
outline: `
|
|
77
|
-
border border-border
|
|
78
|
-
hover:bg-accent hover:text-accent-foreground
|
|
79
|
-
active:bg-accent-dark active:text-accent-foreground
|
|
80
|
-
focus-visible:ring-2 focus-visible:ring-primary/40
|
|
76
|
+
outline: `
|
|
77
|
+
border border-border
|
|
78
|
+
hover:bg-accent hover:text-accent-foreground
|
|
79
|
+
active:bg-accent-dark active:text-accent-foreground
|
|
80
|
+
focus-visible:ring-2 focus-visible:ring-primary/40
|
|
81
81
|
`,
|
|
82
|
-
secondary: `
|
|
83
|
-
bg-secondary text-secondary-foreground
|
|
84
|
-
hover:bg-secondary-hover hover:text-secondary-foreground
|
|
85
|
-
active:bg-secondary-active active:text-secondary-foreground
|
|
86
|
-
focus-visible:ring-2 focus-visible:ring-primary/40
|
|
82
|
+
secondary: `
|
|
83
|
+
bg-secondary text-secondary-foreground
|
|
84
|
+
hover:bg-secondary-hover hover:text-secondary-foreground
|
|
85
|
+
active:bg-secondary-active active:text-secondary-foreground
|
|
86
|
+
focus-visible:ring-2 focus-visible:ring-primary/40
|
|
87
87
|
`,
|
|
88
|
-
ghost: `
|
|
89
|
-
hover:bg-secondary-hover hover:text-secondary-foreground
|
|
90
|
-
active:bg-secondary-active active:text-secondary-foreground
|
|
91
|
-
focus-visible:ring-2 focus-visible:ring-primary/40
|
|
88
|
+
ghost: `
|
|
89
|
+
hover:bg-secondary-hover hover:text-secondary-foreground
|
|
90
|
+
active:bg-secondary-active active:text-secondary-foreground
|
|
91
|
+
focus-visible:ring-2 focus-visible:ring-primary/40
|
|
92
92
|
`
|
|
93
93
|
},
|
|
94
94
|
rounded: {
|
|
@@ -99,20 +99,20 @@ const chipVariants = cva(`
|
|
|
99
99
|
small: "rounded-sm"
|
|
100
100
|
},
|
|
101
101
|
size: {
|
|
102
|
-
small: `
|
|
103
|
-
ps-1 pe-1 py-0.5
|
|
104
|
-
[&_button[data-chip-remove='true']]:w-3
|
|
105
|
-
[&_button[data-chip-remove='true']]:h-3
|
|
102
|
+
small: `
|
|
103
|
+
ps-1 pe-1 py-0.5
|
|
104
|
+
[&_button[data-chip-remove='true']]:w-3
|
|
105
|
+
[&_button[data-chip-remove='true']]:h-3
|
|
106
106
|
`,
|
|
107
|
-
medium: `
|
|
108
|
-
ps-1.5 pe-1.5 py-1
|
|
109
|
-
[&_button[data-chip-remove='true']]:w-4
|
|
110
|
-
[&_button[data-chip-remove='true']]:h-4
|
|
107
|
+
medium: `
|
|
108
|
+
ps-1.5 pe-1.5 py-1
|
|
109
|
+
[&_button[data-chip-remove='true']]:w-4
|
|
110
|
+
[&_button[data-chip-remove='true']]:h-4
|
|
111
111
|
`,
|
|
112
|
-
large: `
|
|
113
|
-
ps-2 pe-2 py-1.5
|
|
114
|
-
[&_button[data-chip-remove='true']]:w-5
|
|
115
|
-
[&_button[data-chip-remove='true']]:h-5
|
|
112
|
+
large: `
|
|
113
|
+
ps-2 pe-2 py-1.5
|
|
114
|
+
[&_button[data-chip-remove='true']]:w-5
|
|
115
|
+
[&_button[data-chip-remove='true']]:h-5
|
|
116
116
|
`
|
|
117
117
|
},
|
|
118
118
|
selected: {
|
|
@@ -124,82 +124,82 @@ const chipVariants = cva(`
|
|
|
124
124
|
{
|
|
125
125
|
look: "default",
|
|
126
126
|
selected: true,
|
|
127
|
-
class: `
|
|
128
|
-
bg-selected text-foreground
|
|
129
|
-
hover:bg-selected/95 hover:text-foreground
|
|
130
|
-
active:bg-selected/100 active:text-foreground
|
|
127
|
+
class: `
|
|
128
|
+
bg-selected text-foreground
|
|
129
|
+
hover:bg-selected/95 hover:text-foreground
|
|
130
|
+
active:bg-selected/100 active:text-foreground
|
|
131
131
|
`
|
|
132
132
|
},
|
|
133
133
|
{
|
|
134
134
|
look: "primary",
|
|
135
135
|
selected: true,
|
|
136
|
-
class: `
|
|
137
|
-
bg-primary-selected text-primary-foreground
|
|
138
|
-
hover:bg-primary-selected/95 hover:text-primary-foreground
|
|
139
|
-
active:bg-primary-selected/100 active:text-primary-foreground
|
|
136
|
+
class: `
|
|
137
|
+
bg-primary-selected text-primary-foreground
|
|
138
|
+
hover:bg-primary-selected/95 hover:text-primary-foreground
|
|
139
|
+
active:bg-primary-selected/100 active:text-primary-foreground
|
|
140
140
|
`
|
|
141
141
|
},
|
|
142
142
|
{
|
|
143
143
|
look: "secondary",
|
|
144
144
|
selected: true,
|
|
145
|
-
class: `
|
|
146
|
-
bg-secondary-selected text-secondary-foreground
|
|
147
|
-
hover:bg-secondary-selected/95 hover:text-secondary-foreground
|
|
148
|
-
active:bg-secondary-selected/100 active:text-secondary-foreground
|
|
145
|
+
class: `
|
|
146
|
+
bg-secondary-selected text-secondary-foreground
|
|
147
|
+
hover:bg-secondary-selected/95 hover:text-secondary-foreground
|
|
148
|
+
active:bg-secondary-selected/100 active:text-secondary-foreground
|
|
149
149
|
`
|
|
150
150
|
},
|
|
151
151
|
{
|
|
152
152
|
look: "success",
|
|
153
153
|
selected: true,
|
|
154
|
-
class: `
|
|
155
|
-
bg-success-selected text-success-foreground
|
|
156
|
-
hover:bg-success-selected/95 hover:text-success-foreground
|
|
157
|
-
active:bg-success-selected/100 active:text-success-foreground
|
|
154
|
+
class: `
|
|
155
|
+
bg-success-selected text-success-foreground
|
|
156
|
+
hover:bg-success-selected/95 hover:text-success-foreground
|
|
157
|
+
active:bg-success-selected/100 active:text-success-foreground
|
|
158
158
|
`
|
|
159
159
|
},
|
|
160
160
|
{
|
|
161
161
|
look: "error",
|
|
162
162
|
selected: true,
|
|
163
|
-
class: `
|
|
164
|
-
bg-error-selected text-error-foreground
|
|
165
|
-
hover:bg-error-selected/95 hover:text-error-foreground
|
|
166
|
-
active:bg-error-selected/100 active:text-error-foreground
|
|
163
|
+
class: `
|
|
164
|
+
bg-error-selected text-error-foreground
|
|
165
|
+
hover:bg-error-selected/95 hover:text-error-foreground
|
|
166
|
+
active:bg-error-selected/100 active:text-error-foreground
|
|
167
167
|
`
|
|
168
168
|
},
|
|
169
169
|
{
|
|
170
170
|
look: "warning",
|
|
171
171
|
selected: true,
|
|
172
|
-
class: `
|
|
173
|
-
bg-warning-selected text-warning-foreground
|
|
174
|
-
hover:bg-warning-selected/95 hover:text-warning-foreground
|
|
175
|
-
active:bg-warning-selected/100 active:text-warning-foreground
|
|
172
|
+
class: `
|
|
173
|
+
bg-warning-selected text-warning-foreground
|
|
174
|
+
hover:bg-warning-selected/95 hover:text-warning-foreground
|
|
175
|
+
active:bg-warning-selected/100 active:text-warning-foreground
|
|
176
176
|
`
|
|
177
177
|
},
|
|
178
178
|
{
|
|
179
179
|
look: "info",
|
|
180
180
|
selected: true,
|
|
181
|
-
class: `
|
|
182
|
-
bg-info-selected text-info-foreground
|
|
183
|
-
hover:bg-info-selected/95 hover:text-info-foreground
|
|
184
|
-
active:bg-info-selected/100 active:text-info-foreground
|
|
181
|
+
class: `
|
|
182
|
+
bg-info-selected text-info-foreground
|
|
183
|
+
hover:bg-info-selected/95 hover:text-info-foreground
|
|
184
|
+
active:bg-info-selected/100 active:text-info-foreground
|
|
185
185
|
`
|
|
186
186
|
},
|
|
187
187
|
{
|
|
188
188
|
look: "outline",
|
|
189
189
|
selected: true,
|
|
190
|
-
class: `
|
|
191
|
-
bg-primary-selected text-primary-foreground
|
|
192
|
-
hover:bg-primary-selected/95 hover:text-primary-foreground
|
|
193
|
-
active:bg-primary-selected/100 active:text-primary-foreground
|
|
190
|
+
class: `
|
|
191
|
+
bg-primary-selected text-primary-foreground
|
|
192
|
+
hover:bg-primary-selected/95 hover:text-primary-foreground
|
|
193
|
+
active:bg-primary-selected/100 active:text-primary-foreground
|
|
194
194
|
`
|
|
195
195
|
},
|
|
196
196
|
{
|
|
197
197
|
look: "ghost",
|
|
198
198
|
selected: true,
|
|
199
|
-
class: `
|
|
200
|
-
bg-secondary-selected text-secondary-foreground
|
|
201
|
-
hover:bg-secondary-selected/95 hover:text-secondary-foreground
|
|
202
|
-
active:bg-secondary-selected/100 active:text-secondary-foreground
|
|
199
|
+
class: `
|
|
200
|
+
bg-secondary-selected text-secondary-foreground
|
|
201
|
+
hover:bg-secondary-selected/95 hover:text-secondary-foreground
|
|
202
|
+
active:bg-secondary-selected/100 active:text-secondary-foreground
|
|
203
203
|
`
|
|
204
204
|
}
|
|
205
205
|
],
|
|
@@ -168,7 +168,7 @@ class CircularProgressBarComponent {
|
|
|
168
168
|
}
|
|
169
169
|
#themeService;
|
|
170
170
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CircularProgressBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
171
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: CircularProgressBarComponent, isStandalone: true, selector: "mona-circular-progress-bar", inputs: { animate: { classPropertyName: "animate", publicName: "animate", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, ariaValueText: { classPropertyName: "ariaValueText", publicName: "aria-valuetext", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, indeterminate: { classPropertyName: "indeterminate", publicName: "indeterminate", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, thickness: { classPropertyName: "thickness", publicName: "thickness", isSignal: true, isRequired: false, transformFunction: null }, userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "progressbar" }, properties: { "class": "baseClasses()", "attr.aria-busy": "indeterminate() || null", "attr.aria-label": "ariaLabel() || null", "attr.aria-valuemin": "indeterminate() ? null : min()", "attr.aria-valuemax": "indeterminate() ? null : max()", "attr.aria-valuenow": "indeterminate() ? null : value()", "attr.aria-valuetext": "ariaValueText() || null", "attr.aria-disabled": "disabled() || null", "attr.data-disabled": "disabled() || null", "style.width": "pixelSize()", "style.height": "pixelSize()" } }, queries: [{ propertyName: "labelTemplate", first: true, predicate: CircularProgressBarLabelTemplateDirective, descendants: true, isSignal: true }], ngImport: i0, template: "<svg>\
|
|
171
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: CircularProgressBarComponent, isStandalone: true, selector: "mona-circular-progress-bar", inputs: { animate: { classPropertyName: "animate", publicName: "animate", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, ariaValueText: { classPropertyName: "ariaValueText", publicName: "aria-valuetext", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, indeterminate: { classPropertyName: "indeterminate", publicName: "indeterminate", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, thickness: { classPropertyName: "thickness", publicName: "thickness", isSignal: true, isRequired: false, transformFunction: null }, userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "progressbar" }, properties: { "class": "baseClasses()", "attr.aria-busy": "indeterminate() || null", "attr.aria-label": "ariaLabel() || null", "attr.aria-valuemin": "indeterminate() ? null : min()", "attr.aria-valuemax": "indeterminate() ? null : max()", "attr.aria-valuenow": "indeterminate() ? null : value()", "attr.aria-valuetext": "ariaValueText() || null", "attr.aria-disabled": "disabled() || null", "attr.data-disabled": "disabled() || null", "style.width": "pixelSize()", "style.height": "pixelSize()" } }, queries: [{ propertyName: "labelTemplate", first: true, predicate: CircularProgressBarLabelTemplateDirective, descendants: true, isSignal: true }], ngImport: i0, template: "<svg>\n <circle\n [attr.cx]=\"center().x\"\n [attr.cy]=\"center().y\"\n [attr.r]=\"radius()\"\n [attr.data-stroke-trail]=\"true\"\n [attr.stroke-dasharray]=\"circumference()\"\n [attr.stroke-width]=\"thickness()\"\n fill=\"transparent\" />\n <circle\n [attr.cx]=\"center().x\"\n [attr.cy]=\"center().y\"\n [attr.r]=\"radius()\"\n [attr.stroke]=\"strokeColor()\"\n [attr.stroke-dasharray]=\"circumference()\"\n [attr.stroke-dashoffset]=\"strokeDashOffset()\"\n [attr.stroke-width]=\"thickness()\"\n fill=\"transparent\"\n [class.indeterminate]=\"indeterminate()\" />\n</svg>\n@if (!indeterminate()) {\n <div class=\"mona-circular-progress-bar-label\">\n @if (labelTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"labelTemplate()?.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: value(), min: min(), max: max(), percent: progress() }\">\n </ng-container>\n } @else {\n {{ progress() }}\n }\n </div>\n}\n", styles: [".indeterminate{animation:rotate 2s linear infinite}@keyframes rotate{0%{transform:rotate(0)}50%{transform:rotate(180deg)}to{transform:rotate(360deg)}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
|
|
172
172
|
}
|
|
173
173
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CircularProgressBarComponent, decorators: [{
|
|
174
174
|
type: Component,
|
|
@@ -185,7 +185,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
185
185
|
role: "progressbar",
|
|
186
186
|
"[style.width]": "pixelSize()",
|
|
187
187
|
"[style.height]": "pixelSize()"
|
|
188
|
-
}, template: "<svg>\
|
|
188
|
+
}, template: "<svg>\n <circle\n [attr.cx]=\"center().x\"\n [attr.cy]=\"center().y\"\n [attr.r]=\"radius()\"\n [attr.data-stroke-trail]=\"true\"\n [attr.stroke-dasharray]=\"circumference()\"\n [attr.stroke-width]=\"thickness()\"\n fill=\"transparent\" />\n <circle\n [attr.cx]=\"center().x\"\n [attr.cy]=\"center().y\"\n [attr.r]=\"radius()\"\n [attr.stroke]=\"strokeColor()\"\n [attr.stroke-dasharray]=\"circumference()\"\n [attr.stroke-dashoffset]=\"strokeDashOffset()\"\n [attr.stroke-width]=\"thickness()\"\n fill=\"transparent\"\n [class.indeterminate]=\"indeterminate()\" />\n</svg>\n@if (!indeterminate()) {\n <div class=\"mona-circular-progress-bar-label\">\n @if (labelTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"labelTemplate()?.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: value(), min: min(), max: max(), percent: progress() }\">\n </ng-container>\n } @else {\n {{ progress() }}\n }\n </div>\n}\n", styles: [".indeterminate{animation:rotate 2s linear infinite}@keyframes rotate{0%{transform:rotate(0)}50%{transform:rotate(180deg)}to{transform:rotate(360deg)}}\n"] }]
|
|
189
189
|
}], propDecorators: { labelTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => CircularProgressBarLabelTemplateDirective), { isSignal: true }] }], animate: [{ type: i0.Input, args: [{ isSignal: true, alias: "animate", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }], ariaValueText: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-valuetext", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], indeterminate: [{ type: i0.Input, args: [{ isSignal: true, alias: "indeterminate", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], min: [{ type: i0.Input, args: [{ isSignal: true, alias: "min", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], thickness: [{ type: i0.Input, args: [{ isSignal: true, alias: "thickness", required: false }] }], userClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }] } });
|
|
190
190
|
|
|
191
191
|
/*
|
|
@@ -14,24 +14,24 @@ import { ThemeService } from '@nanahoshi/mona-ui/theme';
|
|
|
14
14
|
import { Subject, fromEvent, switchMap, takeUntil, distinctUntilChanged } from 'rxjs';
|
|
15
15
|
import { cva } from 'class-variance-authority';
|
|
16
16
|
|
|
17
|
-
const colorGradientBaseVariants = cva(`
|
|
18
|
-
flex flex-col min-w-64
|
|
19
|
-
p-2 gap-2
|
|
20
|
-
select-none
|
|
21
|
-
|
|
22
|
-
data-[disabled='true']:cursor-not-allowed
|
|
23
|
-
data-[disabled='true']:opacity-50
|
|
24
|
-
data-[disabled='true']:pointer-events-none
|
|
25
|
-
|
|
26
|
-
data-[invalid='true']:border
|
|
27
|
-
data-[invalid='true']:border-error
|
|
28
|
-
data-[invalid='true']:ring-1
|
|
29
|
-
data-[invalid='true']:ring-error
|
|
17
|
+
const colorGradientBaseVariants = cva(`
|
|
18
|
+
flex flex-col min-w-64
|
|
19
|
+
p-2 gap-2
|
|
20
|
+
select-none
|
|
21
|
+
|
|
22
|
+
data-[disabled='true']:cursor-not-allowed
|
|
23
|
+
data-[disabled='true']:opacity-50
|
|
24
|
+
data-[disabled='true']:pointer-events-none
|
|
25
|
+
|
|
26
|
+
data-[invalid='true']:border
|
|
27
|
+
data-[invalid='true']:border-error
|
|
28
|
+
data-[invalid='true']:ring-1
|
|
29
|
+
data-[invalid='true']:ring-error
|
|
30
30
|
`);
|
|
31
|
-
const colorGradientHsvRectangleVariants = cva(`
|
|
32
|
-
relative w-full h-40
|
|
33
|
-
bg-[linear-gradient(to_bottom,rgba(0,0,0,0),black),linear-gradient(to_right,white,rgba(255,255,255,0))]
|
|
34
|
-
border border-border
|
|
31
|
+
const colorGradientHsvRectangleVariants = cva(`
|
|
32
|
+
relative w-full h-40
|
|
33
|
+
bg-[linear-gradient(to_bottom,rgba(0,0,0,0),black),linear-gradient(to_right,white,rgba(255,255,255,0))]
|
|
34
|
+
border border-border
|
|
35
35
|
`, {
|
|
36
36
|
variants: {
|
|
37
37
|
rounded: {
|
|
@@ -43,17 +43,17 @@ const colorGradientHsvRectangleVariants = cva(`
|
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
45
|
});
|
|
46
|
-
const colorGradientHsvRectangleHandleVariants = cva(`
|
|
47
|
-
absolute
|
|
48
|
-
w-3 h-3
|
|
49
|
-
cursor-pointer
|
|
50
|
-
border border-foreground
|
|
51
|
-
outline outline-background
|
|
52
|
-
shadow-md
|
|
53
|
-
|
|
54
|
-
focus-visible:ring-2
|
|
55
|
-
focus-visible:ring-primary/40
|
|
56
|
-
focus-visible:ring-offset-2
|
|
46
|
+
const colorGradientHsvRectangleHandleVariants = cva(`
|
|
47
|
+
absolute
|
|
48
|
+
w-3 h-3
|
|
49
|
+
cursor-pointer
|
|
50
|
+
border border-foreground
|
|
51
|
+
outline outline-background
|
|
52
|
+
shadow-md
|
|
53
|
+
|
|
54
|
+
focus-visible:ring-2
|
|
55
|
+
focus-visible:ring-primary/40
|
|
56
|
+
focus-visible:ring-offset-2
|
|
57
57
|
`, {
|
|
58
58
|
variants: {
|
|
59
59
|
rounded: {
|
|
@@ -65,9 +65,9 @@ const colorGradientHsvRectangleHandleVariants = cva(`
|
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
});
|
|
68
|
-
const colorGradientPreviewVariants = cva(`
|
|
69
|
-
w-10 h-10 flex
|
|
70
|
-
border border-border
|
|
68
|
+
const colorGradientPreviewVariants = cva(`
|
|
69
|
+
w-10 h-10 flex
|
|
70
|
+
border border-border
|
|
71
71
|
`, {
|
|
72
72
|
variants: {
|
|
73
73
|
rounded: {
|
|
@@ -79,11 +79,11 @@ const colorGradientPreviewVariants = cva(`
|
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
81
|
});
|
|
82
|
-
const colorGradientSliderHandleVariants = cva(`
|
|
83
|
-
border-3 border-white/90
|
|
84
|
-
outline outline-solid outline-black/90
|
|
85
|
-
bg-transparent
|
|
86
|
-
w-3 h-3
|
|
82
|
+
const colorGradientSliderHandleVariants = cva(`
|
|
83
|
+
border-3 border-white/90
|
|
84
|
+
outline outline-solid outline-black/90
|
|
85
|
+
bg-transparent
|
|
86
|
+
w-3 h-3
|
|
87
87
|
`);
|
|
88
88
|
|
|
89
89
|
const colorGradientBaseThemeVariants = (theme) => {
|
|
@@ -817,7 +817,7 @@ class ColorGradientComponent {
|
|
|
817
817
|
}
|
|
818
818
|
}
|
|
819
819
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: ColorGradientComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
820
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: ColorGradientComponent, isStandalone: true, selector: "mona-color-gradient", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, opacity: { classPropertyName: "opacity", publicName: "opacity", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, rounded: { classPropertyName: "rounded", publicName: "rounded", isSignal: true, isRequired: false, transformFunction: null }, showButtons: { classPropertyName: "showButtons", publicName: "showButtons", isSignal: true, isRequired: false, transformFunction: null }, showHexInput: { classPropertyName: "showHexInput", publicName: "showHexInput", isSignal: true, isRequired: false, transformFunction: null }, showColorInputs: { classPropertyName: "showColorInputs", publicName: "showColorInputs", isSignal: true, isRequired: false, transformFunction: null }, touched: { classPropertyName: "touched", publicName: "touched", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { apply: "apply", cancel: "cancel", touch: "touch", value: "valueChange" }, host: { properties: { "class": "baseClasses()", "attr.data-disabled": "disabled()", "attr.data-invalid": "invalidState() || null", "attr.aria-invalid": "invalidState() ? 'true' : null" } }, viewQueries: [{ propertyName: "hsvHandle", first: true, predicate: ["hsvPointer"], descendants: true, isSignal: true }, { propertyName: "hsvRectangle", first: true, predicate: ["hsvRectangle"], descendants: true, isSignal: true }], ngImport: i0, template: "<div [class]=\"hsvRectangleClasses()\" [style.background-color]=\"hsvRectangleBackground()\" #hsvRectangle>\r\n <div\r\n [class]=\"hsvRectangleHandleClasses()\"\r\n [style.left.px]=\"hsvHandleLeft()\"\r\n [style.top.px]=\"hsvHandleTop()\"\r\n [attr.tabindex]=\"disabled() ? -1 : 0\"\r\n [attr.role]=\"'slider'\"\r\n [attr.aria-label]=\"'Color saturation and value'\"\r\n [attr.aria-valuemin]=\"0\"\r\n [attr.aria-valuemax]=\"100\"\r\n [attr.aria-valuenow]=\"hsv().s\"\r\n [attr.aria-valuetext]=\"'Saturation ' + hsv().s + '%, Value ' + hsv().v + '%'\"\r\n [attr.aria-disabled]=\"disabled() || null\"\r\n (keydown)=\"onHsvHandleKeyDown($event)\"\r\n (blur)=\"onHsvHandleBlur()\"\r\n #hsvPointer></div>\r\n</div>\r\n<div class=\"flex items-center gap-2\">\r\n <div class=\"flex flex-1 flex-col gap-1 mr-2\">\r\n <mona-slider\r\n [minValue]=\"0\"\r\n [maxValue]=\"360\"\r\n [trackBackground]=\"'linear-gradient(to right, #ff0000, #ffff00, #00ff00, #00ffff, #0000ff, #ff00ff, #ff0000)'\"\r\n [selectionBackground]=\"'transparent'\"\r\n [handleClasses]=\"sliderHandleClasses()\"\r\n [trackSize]=\"sliderHeight\"\r\n [rounded]=\"rounded()\"\r\n [value]=\"hsv().h ?? 0\"\r\n (valueChange)=\"hueValue$.next($event)\"\r\n (touch)=\"onSliderBlur()\"></mona-slider>\r\n @if (opacity()) {\r\n <mona-slider\r\n [minValue]=\"0\"\r\n [maxValue]=\"255\"\r\n [trackBackground]=\"alphaSliderBackground()\"\r\n [selectionBackground]=\"'transparent'\"\r\n [handleClasses]=\"sliderHandleClasses()\"\r\n [trackSize]=\"sliderHeight\"\r\n [rounded]=\"rounded()\"\r\n [value]=\"alpha()\"\r\n (valueChange)=\"onAlphaChange($event)\"\r\n (touch)=\"onSliderBlur()\"></mona-slider>\r\n }\r\n </div>\r\n @for (preview of colorPreviews(); track preview.type) {\r\n <div\r\n [class]=\"colorPreviewClasses()\"\r\n [class.cursor-pointer]=\"$index === 1\"\r\n [style.background-color]=\"preview.color\"\r\n [attr.title]=\"$index === 1 ? preview.title : null\"\r\n [attr.aria-label]=\"$index === 1 ? preview.title : null\"\r\n [attr.aria-hidden]=\"$index === 0 ? 'true' : null\"\r\n [attr.role]=\"$index === 1 ? 'button' : null\"\r\n [attr.tabindex]=\"$index === 1 ? 0 : null\"\r\n (click)=\"preview.onClick?.()\"\r\n (keydown)=\"onPreviousColorKeyDown($event, preview.onClick)\"></div>\r\n }\r\n <button monaButton look=\"ghost\" size=\"small\" aria-label=\"Clear color\" (click)=\"onClearClick()\">\r\n <i class=\"ri-blur-off-line\"></i>\r\n </button>\r\n</div>\r\n<div class=\"flex flex-col gap-2\">\r\n @if (showColorInputs()) {\r\n <div class=\"flex gap-2\">\r\n <div class=\"flex gap-1\">\r\n @for (input of colorInputs(); track input.key) {\r\n <mona-numeric-text-box\r\n [value]=\"input.value\"\r\n [minValue]=\"input.min\"\r\n [maxValue]=\"input.max\"\r\n [decimals]=\"0\"\r\n [spinners]=\"false\"\r\n [nullable]=\"false\"\r\n [rounded]=\"rounded()\"\r\n [size]=\"'small'\"\r\n class=\"w-18\"\r\n (valueChange)=\"input.change($event)\"\r\n (inputBlur)=\"onNumericInputBlur()\">\r\n <ng-template monaNumericTextBoxPrefixTemplate>\r\n <ng-container\r\n [ngTemplateOutlet]=\"numericInputPrefixTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: input.label }\"></ng-container>\r\n </ng-template>\r\n </mona-numeric-text-box>\r\n }\r\n </div>\r\n <div class=\"flex flex-1 items-center justify-end\">\r\n <button\r\n monaButton\r\n look=\"ghost\"\r\n [rounded]=\"rounded()\"\r\n size=\"small\"\r\n aria-label=\"Switch color mode\"\r\n (click)=\"onSwitchColorModeClick()\">\r\n <i class=\"ri-expand-up-down-line\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n }\r\n @if (showHexInput()) {\r\n <mona-text-box\r\n [rounded]=\"rounded()\"\r\n [value]=\"hex()\"\r\n (valueChange)=\"onHexChange($event)\"\r\n (inputBlur)=\"onHexInputBlur()\"\r\n (inputFocus)=\"onHexInputFocus()\"\r\n class=\"w-full\">\r\n <ng-template monaTextBoxPrefixTemplate>\r\n <ng-container\r\n [ngTemplateOutlet]=\"numericInputPrefixTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: 'HEX', classes: 'w-auto px-2' }\"></ng-container>\r\n </ng-template>\r\n <ng-template monaTextBoxSuffixTemplate>\r\n <mona-dropdown-button look=\"ghost\" aria-label=\"Copy color\" class=\"h-full\">\r\n <svg lucideCopy [size]=\"12\"></svg>\r\n <mona-dropdown-button-item\r\n label=\"Copy as HEX\"\r\n (menuClick)=\"onCopyColorSelect('hex')\"></mona-dropdown-button-item>\r\n <mona-dropdown-button-item\r\n label=\"Copy as RGB\"\r\n (menuClick)=\"onCopyColorSelect('rgb')\"></mona-dropdown-button-item>\r\n </mona-dropdown-button>\r\n </ng-template>\r\n </mona-text-box>\r\n }\r\n @if (showButtons()) {\r\n <div class=\"flex items-center justify-end gap-2\">\r\n <button monaButton [rounded]=\"rounded()\" look=\"primary\" (click)=\"onApply()\">Apply</button>\r\n <button monaButton [rounded]=\"rounded()\" (click)=\"onCancel()\">Cancel</button>\r\n </div>\r\n }\r\n</div>\r\n\r\n<ng-template #numericInputPrefixTemplate let-text let-classes=\"classes\">\r\n <span\r\n [class]=\"classes\"\r\n class=\"inline-flex items-center justify-center select-none w-7.5 bg-secondary h-full text-xs font-semibold border-r border-r-input-border\"\r\n >{{ text }}</span\r\n >\r\n</ng-template>\r\n", dependencies: [{ kind: "component", type: NumericTextBoxComponent, selector: "mona-numeric-text-box", inputs: ["aria-label", "decimals", "disabled", "formatter", "maxValue", "minValue", "nullable", "readonly", "required", "invalid", "rounded", "size", "spinners", "step", "tabindex", "touched", "class", "value"], outputs: ["inputBlur", "inputFocus", "inputFocusOut", "touch", "valueChange"] }, { kind: "directive", type: NumericTextBoxPrefixTemplateDirective, selector: "ng-template[monaNumericTextBoxPrefixTemplate]" }, { kind: "directive", type: ButtonDirective, selector: "button[monaButton]", inputs: ["aria-haspopup", "disabled", "iconOnly", "loading", "look", "rounded", "selected", "size", "tabindex", "toggleable", "class"], outputs: ["disabledChange", "loadingChange", "lookChange", "selectedChange"] }, { kind: "component", type: TextBoxComponent, selector: "mona-text-box", inputs: ["clearButton", "disabled", "inputAttributes", "inputClass", "inputStyle", "invalid", "placeholder", "readonly", "required", "rounded", "size", "touched", "type", "class", "value"], outputs: ["inputBlur", "inputFocus", "touch", "valueChange"] }, { kind: "directive", type: TextBoxPrefixTemplateDirective, selector: "ng-template[monaTextBoxPrefixTemplate]" }, { kind: "directive", type: TextBoxSuffixTemplateDirective, selector: "ng-template[monaTextBoxSuffixTemplate]" }, { kind: "component", type: SliderComponent, selector: "mona-slider", inputs: ["aria-label", "aria-labelledby", "value"], outputs: ["valueChange"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: DropdownButtonComponent, selector: "mona-dropdown-button", inputs: ["aria-label", "aria-labelledby", "iconOnly", "disabled", "loading", "look", "rounded", "size", "text", "class"], outputs: ["menuItemClick"] }, { kind: "component", type: DropdownButtonItemComponent, selector: "mona-dropdown-button-item" }, { kind: "component", type: LucideCopy, selector: "svg[lucideCopy]" }] }); }
|
|
820
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: ColorGradientComponent, isStandalone: true, selector: "mona-color-gradient", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, opacity: { classPropertyName: "opacity", publicName: "opacity", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, rounded: { classPropertyName: "rounded", publicName: "rounded", isSignal: true, isRequired: false, transformFunction: null }, showButtons: { classPropertyName: "showButtons", publicName: "showButtons", isSignal: true, isRequired: false, transformFunction: null }, showHexInput: { classPropertyName: "showHexInput", publicName: "showHexInput", isSignal: true, isRequired: false, transformFunction: null }, showColorInputs: { classPropertyName: "showColorInputs", publicName: "showColorInputs", isSignal: true, isRequired: false, transformFunction: null }, touched: { classPropertyName: "touched", publicName: "touched", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { apply: "apply", cancel: "cancel", touch: "touch", value: "valueChange" }, host: { properties: { "class": "baseClasses()", "attr.data-disabled": "disabled()", "attr.data-invalid": "invalidState() || null", "attr.aria-invalid": "invalidState() ? 'true' : null" } }, viewQueries: [{ propertyName: "hsvHandle", first: true, predicate: ["hsvPointer"], descendants: true, isSignal: true }, { propertyName: "hsvRectangle", first: true, predicate: ["hsvRectangle"], descendants: true, isSignal: true }], ngImport: i0, template: "<div [class]=\"hsvRectangleClasses()\" [style.background-color]=\"hsvRectangleBackground()\" #hsvRectangle>\n <div\n [class]=\"hsvRectangleHandleClasses()\"\n [style.left.px]=\"hsvHandleLeft()\"\n [style.top.px]=\"hsvHandleTop()\"\n [attr.tabindex]=\"disabled() ? -1 : 0\"\n [attr.role]=\"'slider'\"\n [attr.aria-label]=\"'Color saturation and value'\"\n [attr.aria-valuemin]=\"0\"\n [attr.aria-valuemax]=\"100\"\n [attr.aria-valuenow]=\"hsv().s\"\n [attr.aria-valuetext]=\"'Saturation ' + hsv().s + '%, Value ' + hsv().v + '%'\"\n [attr.aria-disabled]=\"disabled() || null\"\n (keydown)=\"onHsvHandleKeyDown($event)\"\n (blur)=\"onHsvHandleBlur()\"\n #hsvPointer></div>\n</div>\n<div class=\"flex items-center gap-2\">\n <div class=\"flex flex-1 flex-col gap-1 mr-2\">\n <mona-slider\n [minValue]=\"0\"\n [maxValue]=\"360\"\n [trackBackground]=\"'linear-gradient(to right, #ff0000, #ffff00, #00ff00, #00ffff, #0000ff, #ff00ff, #ff0000)'\"\n [selectionBackground]=\"'transparent'\"\n [handleClasses]=\"sliderHandleClasses()\"\n [trackSize]=\"sliderHeight\"\n [rounded]=\"rounded()\"\n [value]=\"hsv().h ?? 0\"\n (valueChange)=\"hueValue$.next($event)\"\n (touch)=\"onSliderBlur()\"></mona-slider>\n @if (opacity()) {\n <mona-slider\n [minValue]=\"0\"\n [maxValue]=\"255\"\n [trackBackground]=\"alphaSliderBackground()\"\n [selectionBackground]=\"'transparent'\"\n [handleClasses]=\"sliderHandleClasses()\"\n [trackSize]=\"sliderHeight\"\n [rounded]=\"rounded()\"\n [value]=\"alpha()\"\n (valueChange)=\"onAlphaChange($event)\"\n (touch)=\"onSliderBlur()\"></mona-slider>\n }\n </div>\n @for (preview of colorPreviews(); track preview.type) {\n <div\n [class]=\"colorPreviewClasses()\"\n [class.cursor-pointer]=\"$index === 1\"\n [style.background-color]=\"preview.color\"\n [attr.title]=\"$index === 1 ? preview.title : null\"\n [attr.aria-label]=\"$index === 1 ? preview.title : null\"\n [attr.aria-hidden]=\"$index === 0 ? 'true' : null\"\n [attr.role]=\"$index === 1 ? 'button' : null\"\n [attr.tabindex]=\"$index === 1 ? 0 : null\"\n (click)=\"preview.onClick?.()\"\n (keydown)=\"onPreviousColorKeyDown($event, preview.onClick)\"></div>\n }\n <button monaButton look=\"ghost\" size=\"small\" aria-label=\"Clear color\" (click)=\"onClearClick()\">\n <i class=\"ri-blur-off-line\"></i>\n </button>\n</div>\n<div class=\"flex flex-col gap-2\">\n @if (showColorInputs()) {\n <div class=\"flex gap-2\">\n <div class=\"flex gap-1\">\n @for (input of colorInputs(); track input.key) {\n <mona-numeric-text-box\n [value]=\"input.value\"\n [minValue]=\"input.min\"\n [maxValue]=\"input.max\"\n [decimals]=\"0\"\n [spinners]=\"false\"\n [nullable]=\"false\"\n [rounded]=\"rounded()\"\n [size]=\"'small'\"\n class=\"w-18\"\n (valueChange)=\"input.change($event)\"\n (inputBlur)=\"onNumericInputBlur()\">\n <ng-template monaNumericTextBoxPrefixTemplate>\n <ng-container\n [ngTemplateOutlet]=\"numericInputPrefixTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: input.label }\"></ng-container>\n </ng-template>\n </mona-numeric-text-box>\n }\n </div>\n <div class=\"flex flex-1 items-center justify-end\">\n <button\n monaButton\n look=\"ghost\"\n [rounded]=\"rounded()\"\n size=\"small\"\n aria-label=\"Switch color mode\"\n (click)=\"onSwitchColorModeClick()\">\n <i class=\"ri-expand-up-down-line\"></i>\n </button>\n </div>\n </div>\n }\n @if (showHexInput()) {\n <mona-text-box\n [rounded]=\"rounded()\"\n [value]=\"hex()\"\n (valueChange)=\"onHexChange($event)\"\n (inputBlur)=\"onHexInputBlur()\"\n (inputFocus)=\"onHexInputFocus()\"\n class=\"w-full\">\n <ng-template monaTextBoxPrefixTemplate>\n <ng-container\n [ngTemplateOutlet]=\"numericInputPrefixTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: 'HEX', classes: 'w-auto px-2' }\"></ng-container>\n </ng-template>\n <ng-template monaTextBoxSuffixTemplate>\n <mona-dropdown-button look=\"ghost\" aria-label=\"Copy color\" class=\"h-full\">\n <svg lucideCopy [size]=\"12\"></svg>\n <mona-dropdown-button-item\n label=\"Copy as HEX\"\n (menuClick)=\"onCopyColorSelect('hex')\"></mona-dropdown-button-item>\n <mona-dropdown-button-item\n label=\"Copy as RGB\"\n (menuClick)=\"onCopyColorSelect('rgb')\"></mona-dropdown-button-item>\n </mona-dropdown-button>\n </ng-template>\n </mona-text-box>\n }\n @if (showButtons()) {\n <div class=\"flex items-center justify-end gap-2\">\n <button monaButton [rounded]=\"rounded()\" look=\"primary\" (click)=\"onApply()\">Apply</button>\n <button monaButton [rounded]=\"rounded()\" (click)=\"onCancel()\">Cancel</button>\n </div>\n }\n</div>\n\n<ng-template #numericInputPrefixTemplate let-text let-classes=\"classes\">\n <span\n [class]=\"classes\"\n class=\"inline-flex items-center justify-center select-none w-7.5 bg-secondary h-full text-xs font-semibold border-r border-r-input-border\"\n >{{ text }}</span\n >\n</ng-template>\n", dependencies: [{ kind: "component", type: NumericTextBoxComponent, selector: "mona-numeric-text-box", inputs: ["aria-label", "decimals", "disabled", "formatter", "maxValue", "minValue", "nullable", "readonly", "required", "invalid", "rounded", "size", "spinners", "step", "tabindex", "touched", "class", "value"], outputs: ["inputBlur", "inputFocus", "inputFocusOut", "touch", "valueChange"] }, { kind: "directive", type: NumericTextBoxPrefixTemplateDirective, selector: "ng-template[monaNumericTextBoxPrefixTemplate]" }, { kind: "directive", type: ButtonDirective, selector: "button[monaButton]", inputs: ["aria-haspopup", "disabled", "iconOnly", "loading", "look", "rounded", "selected", "size", "tabindex", "toggleable", "class"], outputs: ["disabledChange", "loadingChange", "lookChange", "selectedChange"] }, { kind: "component", type: TextBoxComponent, selector: "mona-text-box", inputs: ["clearButton", "disabled", "inputAttributes", "inputClass", "inputStyle", "invalid", "placeholder", "readonly", "required", "rounded", "size", "touched", "type", "class", "value"], outputs: ["inputBlur", "inputFocus", "touch", "valueChange"] }, { kind: "directive", type: TextBoxPrefixTemplateDirective, selector: "ng-template[monaTextBoxPrefixTemplate]" }, { kind: "directive", type: TextBoxSuffixTemplateDirective, selector: "ng-template[monaTextBoxSuffixTemplate]" }, { kind: "component", type: SliderComponent, selector: "mona-slider", inputs: ["aria-label", "aria-labelledby", "value"], outputs: ["valueChange"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: DropdownButtonComponent, selector: "mona-dropdown-button", inputs: ["aria-label", "aria-labelledby", "iconOnly", "disabled", "loading", "look", "rounded", "size", "text", "class"], outputs: ["menuItemClick"] }, { kind: "component", type: DropdownButtonItemComponent, selector: "mona-dropdown-button-item" }, { kind: "component", type: LucideCopy, selector: "svg[lucideCopy]" }] }); }
|
|
821
821
|
}
|
|
822
822
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: ColorGradientComponent, decorators: [{
|
|
823
823
|
type: Component,
|
|
@@ -838,7 +838,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
838
838
|
"[attr.data-disabled]": "disabled()",
|
|
839
839
|
"[attr.data-invalid]": "invalidState() || null",
|
|
840
840
|
"[attr.aria-invalid]": "invalidState() ? 'true' : null"
|
|
841
|
-
}, template: "<div [class]=\"hsvRectangleClasses()\" [style.background-color]=\"hsvRectangleBackground()\" #hsvRectangle>\
|
|
841
|
+
}, template: "<div [class]=\"hsvRectangleClasses()\" [style.background-color]=\"hsvRectangleBackground()\" #hsvRectangle>\n <div\n [class]=\"hsvRectangleHandleClasses()\"\n [style.left.px]=\"hsvHandleLeft()\"\n [style.top.px]=\"hsvHandleTop()\"\n [attr.tabindex]=\"disabled() ? -1 : 0\"\n [attr.role]=\"'slider'\"\n [attr.aria-label]=\"'Color saturation and value'\"\n [attr.aria-valuemin]=\"0\"\n [attr.aria-valuemax]=\"100\"\n [attr.aria-valuenow]=\"hsv().s\"\n [attr.aria-valuetext]=\"'Saturation ' + hsv().s + '%, Value ' + hsv().v + '%'\"\n [attr.aria-disabled]=\"disabled() || null\"\n (keydown)=\"onHsvHandleKeyDown($event)\"\n (blur)=\"onHsvHandleBlur()\"\n #hsvPointer></div>\n</div>\n<div class=\"flex items-center gap-2\">\n <div class=\"flex flex-1 flex-col gap-1 mr-2\">\n <mona-slider\n [minValue]=\"0\"\n [maxValue]=\"360\"\n [trackBackground]=\"'linear-gradient(to right, #ff0000, #ffff00, #00ff00, #00ffff, #0000ff, #ff00ff, #ff0000)'\"\n [selectionBackground]=\"'transparent'\"\n [handleClasses]=\"sliderHandleClasses()\"\n [trackSize]=\"sliderHeight\"\n [rounded]=\"rounded()\"\n [value]=\"hsv().h ?? 0\"\n (valueChange)=\"hueValue$.next($event)\"\n (touch)=\"onSliderBlur()\"></mona-slider>\n @if (opacity()) {\n <mona-slider\n [minValue]=\"0\"\n [maxValue]=\"255\"\n [trackBackground]=\"alphaSliderBackground()\"\n [selectionBackground]=\"'transparent'\"\n [handleClasses]=\"sliderHandleClasses()\"\n [trackSize]=\"sliderHeight\"\n [rounded]=\"rounded()\"\n [value]=\"alpha()\"\n (valueChange)=\"onAlphaChange($event)\"\n (touch)=\"onSliderBlur()\"></mona-slider>\n }\n </div>\n @for (preview of colorPreviews(); track preview.type) {\n <div\n [class]=\"colorPreviewClasses()\"\n [class.cursor-pointer]=\"$index === 1\"\n [style.background-color]=\"preview.color\"\n [attr.title]=\"$index === 1 ? preview.title : null\"\n [attr.aria-label]=\"$index === 1 ? preview.title : null\"\n [attr.aria-hidden]=\"$index === 0 ? 'true' : null\"\n [attr.role]=\"$index === 1 ? 'button' : null\"\n [attr.tabindex]=\"$index === 1 ? 0 : null\"\n (click)=\"preview.onClick?.()\"\n (keydown)=\"onPreviousColorKeyDown($event, preview.onClick)\"></div>\n }\n <button monaButton look=\"ghost\" size=\"small\" aria-label=\"Clear color\" (click)=\"onClearClick()\">\n <i class=\"ri-blur-off-line\"></i>\n </button>\n</div>\n<div class=\"flex flex-col gap-2\">\n @if (showColorInputs()) {\n <div class=\"flex gap-2\">\n <div class=\"flex gap-1\">\n @for (input of colorInputs(); track input.key) {\n <mona-numeric-text-box\n [value]=\"input.value\"\n [minValue]=\"input.min\"\n [maxValue]=\"input.max\"\n [decimals]=\"0\"\n [spinners]=\"false\"\n [nullable]=\"false\"\n [rounded]=\"rounded()\"\n [size]=\"'small'\"\n class=\"w-18\"\n (valueChange)=\"input.change($event)\"\n (inputBlur)=\"onNumericInputBlur()\">\n <ng-template monaNumericTextBoxPrefixTemplate>\n <ng-container\n [ngTemplateOutlet]=\"numericInputPrefixTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: input.label }\"></ng-container>\n </ng-template>\n </mona-numeric-text-box>\n }\n </div>\n <div class=\"flex flex-1 items-center justify-end\">\n <button\n monaButton\n look=\"ghost\"\n [rounded]=\"rounded()\"\n size=\"small\"\n aria-label=\"Switch color mode\"\n (click)=\"onSwitchColorModeClick()\">\n <i class=\"ri-expand-up-down-line\"></i>\n </button>\n </div>\n </div>\n }\n @if (showHexInput()) {\n <mona-text-box\n [rounded]=\"rounded()\"\n [value]=\"hex()\"\n (valueChange)=\"onHexChange($event)\"\n (inputBlur)=\"onHexInputBlur()\"\n (inputFocus)=\"onHexInputFocus()\"\n class=\"w-full\">\n <ng-template monaTextBoxPrefixTemplate>\n <ng-container\n [ngTemplateOutlet]=\"numericInputPrefixTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: 'HEX', classes: 'w-auto px-2' }\"></ng-container>\n </ng-template>\n <ng-template monaTextBoxSuffixTemplate>\n <mona-dropdown-button look=\"ghost\" aria-label=\"Copy color\" class=\"h-full\">\n <svg lucideCopy [size]=\"12\"></svg>\n <mona-dropdown-button-item\n label=\"Copy as HEX\"\n (menuClick)=\"onCopyColorSelect('hex')\"></mona-dropdown-button-item>\n <mona-dropdown-button-item\n label=\"Copy as RGB\"\n (menuClick)=\"onCopyColorSelect('rgb')\"></mona-dropdown-button-item>\n </mona-dropdown-button>\n </ng-template>\n </mona-text-box>\n }\n @if (showButtons()) {\n <div class=\"flex items-center justify-end gap-2\">\n <button monaButton [rounded]=\"rounded()\" look=\"primary\" (click)=\"onApply()\">Apply</button>\n <button monaButton [rounded]=\"rounded()\" (click)=\"onCancel()\">Cancel</button>\n </div>\n }\n</div>\n\n<ng-template #numericInputPrefixTemplate let-text let-classes=\"classes\">\n <span\n [class]=\"classes\"\n class=\"inline-flex items-center justify-center select-none w-7.5 bg-secondary h-full text-xs font-semibold border-r border-r-input-border\"\n >{{ text }}</span\n >\n</ng-template>\n" }]
|
|
842
842
|
}], ctorParameters: () => [], propDecorators: { hsvHandle: [{ type: i0.ViewChild, args: ["hsvPointer", { isSignal: true }] }], hsvRectangle: [{ type: i0.ViewChild, args: ["hsvRectangle", { isSignal: true }] }], apply: [{ type: i0.Output, args: ["apply"] }], cancel: [{ type: i0.Output, args: ["cancel"] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], format: [{ type: i0.Input, args: [{ isSignal: true, alias: "format", required: false }] }], invalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }], opacity: [{ type: i0.Input, args: [{ isSignal: true, alias: "opacity", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], rounded: [{ type: i0.Input, args: [{ isSignal: true, alias: "rounded", required: false }] }], showButtons: [{ type: i0.Input, args: [{ isSignal: true, alias: "showButtons", required: false }] }], showHexInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "showHexInput", required: false }] }], showColorInputs: [{ type: i0.Input, args: [{ isSignal: true, alias: "showColorInputs", required: false }] }], touch: [{ type: i0.Output, args: ["touch"] }], touched: [{ type: i0.Input, args: [{ isSignal: true, alias: "touched", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }] } });
|
|
843
843
|
|
|
844
844
|
/*
|
|
@@ -4,32 +4,32 @@ import { ThemeService } from '@nanahoshi/mona-ui/theme';
|
|
|
4
4
|
import { count } from '@mirei/ts-collections';
|
|
5
5
|
import { cva } from 'class-variance-authority';
|
|
6
6
|
|
|
7
|
-
const colorPaletteBaseVariants = cva(`
|
|
8
|
-
grid gap-0.125 p-0.0625
|
|
9
|
-
data-[disabled='true']:cursor-not-allowed
|
|
10
|
-
data-[disabled='true']:opacity-50
|
|
11
|
-
data-[disabled='true']:pointer-events-none
|
|
12
|
-
data-[readonly='true']:cursor-default
|
|
13
|
-
data-[invalid='true']:border
|
|
14
|
-
data-[invalid='true']:border-error
|
|
15
|
-
data-[invalid='true']:ring-1
|
|
16
|
-
data-[invalid='true']:ring-error
|
|
7
|
+
const colorPaletteBaseVariants = cva(`
|
|
8
|
+
grid gap-0.125 p-0.0625
|
|
9
|
+
data-[disabled='true']:cursor-not-allowed
|
|
10
|
+
data-[disabled='true']:opacity-50
|
|
11
|
+
data-[disabled='true']:pointer-events-none
|
|
12
|
+
data-[readonly='true']:cursor-default
|
|
13
|
+
data-[invalid='true']:border
|
|
14
|
+
data-[invalid='true']:border-error
|
|
15
|
+
data-[invalid='true']:ring-1
|
|
16
|
+
data-[invalid='true']:ring-error
|
|
17
17
|
`);
|
|
18
|
-
const colorPaletteItemVariants = cva(`
|
|
19
|
-
cursor-pointer
|
|
20
|
-
data-[readonly='true']:cursor-default
|
|
21
|
-
data-[selected='true']:border
|
|
22
|
-
data-[selected='true']:border-border
|
|
23
|
-
data-[selected='true']:outline
|
|
24
|
-
data-[selected='true']:outline-2
|
|
25
|
-
data-[selected='true']:outline-foreground
|
|
26
|
-
data-[selected='true']:scale-90
|
|
27
|
-
hover:border hover:border-border
|
|
28
|
-
|
|
29
|
-
focus:not-data-[selected='true']:border
|
|
30
|
-
focus:not-data-[selected='true']:border-foreground
|
|
31
|
-
focus:not-data-[selected='true']:outline-none
|
|
32
|
-
focus:not-data-[selected='true']:z-1
|
|
18
|
+
const colorPaletteItemVariants = cva(`
|
|
19
|
+
cursor-pointer
|
|
20
|
+
data-[readonly='true']:cursor-default
|
|
21
|
+
data-[selected='true']:border
|
|
22
|
+
data-[selected='true']:border-border
|
|
23
|
+
data-[selected='true']:outline
|
|
24
|
+
data-[selected='true']:outline-2
|
|
25
|
+
data-[selected='true']:outline-foreground
|
|
26
|
+
data-[selected='true']:scale-90
|
|
27
|
+
hover:border hover:border-border
|
|
28
|
+
|
|
29
|
+
focus:not-data-[selected='true']:border
|
|
30
|
+
focus:not-data-[selected='true']:border-foreground
|
|
31
|
+
focus:not-data-[selected='true']:outline-none
|
|
32
|
+
focus:not-data-[selected='true']:z-1
|
|
33
33
|
`, {
|
|
34
34
|
variants: {
|
|
35
35
|
rounded: {
|