@nanahoshi/mona-ui 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/README.md +25 -0
  2. package/fesm2022/nanahoshi-mona-ui-auto-complete.mjs +590 -0
  3. package/fesm2022/nanahoshi-mona-ui-avatar.mjs +168 -0
  4. package/fesm2022/nanahoshi-mona-ui-breadcrumb.mjs +220 -0
  5. package/fesm2022/nanahoshi-mona-ui-button-group.mjs +225 -0
  6. package/fesm2022/nanahoshi-mona-ui-button.mjs +497 -0
  7. package/fesm2022/nanahoshi-mona-ui-calendar.mjs +1569 -0
  8. package/fesm2022/nanahoshi-mona-ui-check-box.mjs +339 -0
  9. package/fesm2022/nanahoshi-mona-ui-chip.mjs +453 -0
  10. package/fesm2022/nanahoshi-mona-ui-circular-progress-bar.mjs +200 -0
  11. package/fesm2022/nanahoshi-mona-ui-color-gradient.mjs +853 -0
  12. package/fesm2022/nanahoshi-mona-ui-color-palette.mjs +923 -0
  13. package/fesm2022/nanahoshi-mona-ui-color-picker.mjs +495 -0
  14. package/fesm2022/nanahoshi-mona-ui-combo-box.mjs +686 -0
  15. package/fesm2022/nanahoshi-mona-ui-common.mjs +642 -0
  16. package/fesm2022/nanahoshi-mona-ui-contextmenu.mjs +485 -0
  17. package/fesm2022/nanahoshi-mona-ui-date-input.mjs +132 -0
  18. package/fesm2022/nanahoshi-mona-ui-date-picker.mjs +460 -0
  19. package/fesm2022/nanahoshi-mona-ui-datetime-picker.mjs +659 -0
  20. package/fesm2022/nanahoshi-mona-ui-dialog.mjs +828 -0
  21. package/fesm2022/nanahoshi-mona-ui-dropdown-button.mjs +523 -0
  22. package/fesm2022/nanahoshi-mona-ui-dropdown-list.mjs +615 -0
  23. package/fesm2022/nanahoshi-mona-ui-dropdowns.mjs +701 -0
  24. package/fesm2022/nanahoshi-mona-ui-editor.mjs +1400 -0
  25. package/fesm2022/nanahoshi-mona-ui-expansion-panel.mjs +245 -0
  26. package/fesm2022/nanahoshi-mona-ui-fieldset.mjs +170 -0
  27. package/fesm2022/nanahoshi-mona-ui-filter.mjs +680 -0
  28. package/fesm2022/nanahoshi-mona-ui-grid-grid-footer-cell.component-B9SQH5N-.mjs +105 -0
  29. package/fesm2022/nanahoshi-mona-ui-grid-grid-footer-table-cell.directive-DlLwcCFT.mjs +42 -0
  30. package/fesm2022/nanahoshi-mona-ui-grid-grid-list.component-Dgea-O0X.mjs +130 -0
  31. package/fesm2022/nanahoshi-mona-ui-grid-grid-toggle.component-DIUutx9s.mjs +773 -0
  32. package/fesm2022/nanahoshi-mona-ui-grid-grid-virtual-list.component-DRHycGIh.mjs +240 -0
  33. package/fesm2022/nanahoshi-mona-ui-grid-nanahoshi-mona-ui-grid-C3eZIaJK.mjs +5374 -0
  34. package/fesm2022/nanahoshi-mona-ui-grid.mjs +2 -0
  35. package/fesm2022/nanahoshi-mona-ui-internal-filter-input.mjs +87 -0
  36. package/fesm2022/nanahoshi-mona-ui-internal-indicator-icon.mjs +154 -0
  37. package/fesm2022/nanahoshi-mona-ui-internal-list.mjs +1356 -0
  38. package/fesm2022/nanahoshi-mona-ui-internal-tree.mjs +2263 -0
  39. package/fesm2022/nanahoshi-mona-ui-internal.mjs +379 -0
  40. package/fesm2022/nanahoshi-mona-ui-list-box.mjs +630 -0
  41. package/fesm2022/nanahoshi-mona-ui-list-view.mjs +527 -0
  42. package/fesm2022/nanahoshi-mona-ui-list.mjs +4 -0
  43. package/fesm2022/nanahoshi-mona-ui-menubar.mjs +966 -0
  44. package/fesm2022/nanahoshi-mona-ui-multi-select.mjs +641 -0
  45. package/fesm2022/nanahoshi-mona-ui-notification.mjs +536 -0
  46. package/fesm2022/nanahoshi-mona-ui-numeric-text-box.mjs +597 -0
  47. package/fesm2022/nanahoshi-mona-ui-pager.mjs +790 -0
  48. package/fesm2022/nanahoshi-mona-ui-placeholder.mjs +83 -0
  49. package/fesm2022/nanahoshi-mona-ui-popover.mjs +325 -0
  50. package/fesm2022/nanahoshi-mona-ui-popup-menu.mjs +1559 -0
  51. package/fesm2022/nanahoshi-mona-ui-popup.mjs +1321 -0
  52. package/fesm2022/nanahoshi-mona-ui-progress-bar.mjs +294 -0
  53. package/fesm2022/nanahoshi-mona-ui-query.mjs +175 -0
  54. package/fesm2022/nanahoshi-mona-ui-radio-button.mjs +339 -0
  55. package/fesm2022/nanahoshi-mona-ui-scroll-view.mjs +565 -0
  56. package/fesm2022/nanahoshi-mona-ui-slider.mjs +1049 -0
  57. package/fesm2022/nanahoshi-mona-ui-split-button.mjs +636 -0
  58. package/fesm2022/nanahoshi-mona-ui-splitter.mjs +843 -0
  59. package/fesm2022/nanahoshi-mona-ui-stepper.mjs +537 -0
  60. package/fesm2022/nanahoshi-mona-ui-switch.mjs +308 -0
  61. package/fesm2022/nanahoshi-mona-ui-tabs.mjs +664 -0
  62. package/fesm2022/nanahoshi-mona-ui-text-area.mjs +111 -0
  63. package/fesm2022/nanahoshi-mona-ui-text-box.mjs +369 -0
  64. package/fesm2022/nanahoshi-mona-ui-theme.mjs +314 -0
  65. package/fesm2022/nanahoshi-mona-ui-time-picker.mjs +450 -0
  66. package/fesm2022/nanahoshi-mona-ui-time-selector.mjs +723 -0
  67. package/fesm2022/nanahoshi-mona-ui-tooltip.mjs +716 -0
  68. package/fesm2022/nanahoshi-mona-ui-tree-view.mjs +733 -0
  69. package/fesm2022/nanahoshi-mona-ui-window.mjs +1329 -0
  70. package/fesm2022/nanahoshi-mona-ui.mjs +9 -0
  71. package/package.json +289 -0
  72. package/types/nanahoshi-mona-ui-auto-complete.d.ts +223 -0
  73. package/types/nanahoshi-mona-ui-avatar.d.ts +642 -0
  74. package/types/nanahoshi-mona-ui-breadcrumb.d.ts +70 -0
  75. package/types/nanahoshi-mona-ui-button-group.d.ts +77 -0
  76. package/types/nanahoshi-mona-ui-button.d.ts +111 -0
  77. package/types/nanahoshi-mona-ui-calendar.d.ts +262 -0
  78. package/types/nanahoshi-mona-ui-check-box.d.ts +133 -0
  79. package/types/nanahoshi-mona-ui-chip.d.ts +130 -0
  80. package/types/nanahoshi-mona-ui-circular-progress-bar.d.ts +113 -0
  81. package/types/nanahoshi-mona-ui-color-gradient.d.ts +201 -0
  82. package/types/nanahoshi-mona-ui-color-palette.d.ts +102 -0
  83. package/types/nanahoshi-mona-ui-color-picker.d.ts +156 -0
  84. package/types/nanahoshi-mona-ui-combo-box.d.ts +232 -0
  85. package/types/nanahoshi-mona-ui-common.d.ts +386 -0
  86. package/types/nanahoshi-mona-ui-contextmenu.d.ts +129 -0
  87. package/types/nanahoshi-mona-ui-date-input.d.ts +60 -0
  88. package/types/nanahoshi-mona-ui-date-picker.d.ts +177 -0
  89. package/types/nanahoshi-mona-ui-datetime-picker.d.ts +199 -0
  90. package/types/nanahoshi-mona-ui-dialog.d.ts +261 -0
  91. package/types/nanahoshi-mona-ui-dropdown-button.d.ts +159 -0
  92. package/types/nanahoshi-mona-ui-dropdown-list.d.ts +219 -0
  93. package/types/nanahoshi-mona-ui-dropdowns.d.ts +176 -0
  94. package/types/nanahoshi-mona-ui-editor.d.ts +113 -0
  95. package/types/nanahoshi-mona-ui-expansion-panel.d.ts +87 -0
  96. package/types/nanahoshi-mona-ui-fieldset.d.ts +68 -0
  97. package/types/nanahoshi-mona-ui-filter.d.ts +115 -0
  98. package/types/nanahoshi-mona-ui-grid.d.ts +1114 -0
  99. package/types/nanahoshi-mona-ui-internal-filter-input.d.ts +25 -0
  100. package/types/nanahoshi-mona-ui-internal-indicator-icon.d.ts +28 -0
  101. package/types/nanahoshi-mona-ui-internal-list.d.ts +269 -0
  102. package/types/nanahoshi-mona-ui-internal-tree.d.ts +391 -0
  103. package/types/nanahoshi-mona-ui-internal.d.ts +136 -0
  104. package/types/nanahoshi-mona-ui-list-box.d.ts +225 -0
  105. package/types/nanahoshi-mona-ui-list-view.d.ts +188 -0
  106. package/types/nanahoshi-mona-ui-list.d.ts +1 -0
  107. package/types/nanahoshi-mona-ui-menubar.d.ts +198 -0
  108. package/types/nanahoshi-mona-ui-multi-select.d.ts +247 -0
  109. package/types/nanahoshi-mona-ui-notification.d.ts +106 -0
  110. package/types/nanahoshi-mona-ui-numeric-text-box.d.ts +161 -0
  111. package/types/nanahoshi-mona-ui-pager.d.ts +238 -0
  112. package/types/nanahoshi-mona-ui-placeholder.d.ts +35 -0
  113. package/types/nanahoshi-mona-ui-popover.d.ts +130 -0
  114. package/types/nanahoshi-mona-ui-popup-menu.d.ts +412 -0
  115. package/types/nanahoshi-mona-ui-popup.d.ts +485 -0
  116. package/types/nanahoshi-mona-ui-progress-bar.d.ts +139 -0
  117. package/types/nanahoshi-mona-ui-query.d.ts +89 -0
  118. package/types/nanahoshi-mona-ui-radio-button.d.ts +128 -0
  119. package/types/nanahoshi-mona-ui-scroll-view.d.ts +166 -0
  120. package/types/nanahoshi-mona-ui-slider.d.ts +305 -0
  121. package/types/nanahoshi-mona-ui-split-button.d.ts +182 -0
  122. package/types/nanahoshi-mona-ui-splitter.d.ts +70 -0
  123. package/types/nanahoshi-mona-ui-stepper.d.ts +173 -0
  124. package/types/nanahoshi-mona-ui-switch.d.ts +125 -0
  125. package/types/nanahoshi-mona-ui-tabs.d.ts +158 -0
  126. package/types/nanahoshi-mona-ui-text-area.d.ts +42 -0
  127. package/types/nanahoshi-mona-ui-text-box.d.ts +164 -0
  128. package/types/nanahoshi-mona-ui-theme.d.ts +23 -0
  129. package/types/nanahoshi-mona-ui-time-picker.d.ts +184 -0
  130. package/types/nanahoshi-mona-ui-time-selector.d.ts +143 -0
  131. package/types/nanahoshi-mona-ui-tooltip.d.ts +130 -0
  132. package/types/nanahoshi-mona-ui-tree-view.d.ts +274 -0
  133. package/types/nanahoshi-mona-ui-window.d.ts +295 -0
  134. package/types/nanahoshi-mona-ui.d.ts +2 -0
@@ -0,0 +1,200 @@
1
+ import { NgTemplateOutlet } from '@angular/common';
2
+ import * as i0 from '@angular/core';
3
+ import { inject, TemplateRef, Directive, computed, contentChild, input, Component } from '@angular/core';
4
+ import { getPercentage } from '@nanahoshi/mona-ui/common';
5
+ import { ThemeService } from '@nanahoshi/mona-ui/theme';
6
+ import { twMerge } from 'tailwind-merge';
7
+ import { cva } from 'class-variance-authority';
8
+
9
+ class CircularProgressBarLabelTemplateDirective {
10
+ constructor() {
11
+ this.templateRef = inject(TemplateRef);
12
+ }
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CircularProgressBarLabelTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
14
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.6", type: CircularProgressBarLabelTemplateDirective, isStandalone: true, selector: "ng-template[monaCircularProgressBarLabelTemplate]", ngImport: i0 }); }
15
+ }
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CircularProgressBarLabelTemplateDirective, decorators: [{
17
+ type: Directive,
18
+ args: [{
19
+ selector: "ng-template[monaCircularProgressBarLabelTemplate]"
20
+ }]
21
+ }] });
22
+
23
+ const circularProgressBarBaseVariants = cva(`
24
+ flex items-center justify-center
25
+ relative select-none
26
+ [&_svg]:w-full [&_svg]:h-full
27
+ [&_svg]:absolute [&_svg]:top-1/2
28
+ [&_svg]:left-1/2
29
+ [&_svg]:-translate-x-1/2 [&_svg]:-translate-y-1/2
30
+ [&_svg_circle]:origin-center
31
+ [&_svg_circle]:-rotate-90
32
+ [&_svg_circle]:transition-[stroke-dashoffset,stroke] duration-200 ease-in
33
+ [&_svg_circle]:data-[stroke-trail='true']:stroke-input-border
34
+ `, {
35
+ variants: {
36
+ disabled: {
37
+ true: "opacity-50 pointer-events-none cursor-not-allowed",
38
+ false: ""
39
+ }
40
+ }
41
+ });
42
+
43
+ const circularProgressBarBaseThemeVariants = (theme) => {
44
+ switch (theme) {
45
+ case "mona":
46
+ return circularProgressBarBaseVariants;
47
+ default:
48
+ return circularProgressBarBaseVariants;
49
+ }
50
+ };
51
+
52
+ class CircularProgressBarComponent {
53
+ constructor() {
54
+ this.#themeService = inject(ThemeService);
55
+ this.baseClasses = computed(() => {
56
+ const theme = this.#themeService.theme();
57
+ const disabled = this.disabled();
58
+ const classes = circularProgressBarBaseThemeVariants(theme)({ disabled });
59
+ const animateClass = this.animate() ? "" : "[&_svg_circle]:transition-none";
60
+ return twMerge(classes, this.userClass(), animateClass);
61
+ }, /* @ts-ignore */
62
+ ...(ngDevMode ? [{ debugName: "baseClasses" }] : /* istanbul ignore next */ []));
63
+ this.center = computed(() => ({
64
+ x: this.size() / 2,
65
+ y: this.size() / 2
66
+ }), /* @ts-ignore */
67
+ ...(ngDevMode ? [{ debugName: "center" }] : /* istanbul ignore next */ []));
68
+ this.circumference = computed(() => 2 * Math.PI * (this.size() / 2 - this.thickness()), /* @ts-ignore */
69
+ ...(ngDevMode ? [{ debugName: "circumference" }] : /* istanbul ignore next */ []));
70
+ this.labelTemplate = contentChild(CircularProgressBarLabelTemplateDirective, /* @ts-ignore */
71
+ ...(ngDevMode ? [{ debugName: "labelTemplate" }] : /* istanbul ignore next */ []));
72
+ this.pixelSize = computed(() => `${this.size()}px`, /* @ts-ignore */
73
+ ...(ngDevMode ? [{ debugName: "pixelSize" }] : /* istanbul ignore next */ []));
74
+ this.progress = computed(() => getPercentage(this.value(), this.min(), this.max()), /* @ts-ignore */
75
+ ...(ngDevMode ? [{ debugName: "progress" }] : /* istanbul ignore next */ []));
76
+ this.radius = computed(() => this.size() / 2 - this.thickness(), /* @ts-ignore */
77
+ ...(ngDevMode ? [{ debugName: "radius" }] : /* istanbul ignore next */ []));
78
+ this.strokeColor = computed(() => {
79
+ if (typeof this.color() === "string") {
80
+ return this.color() || "var(--color-primary)";
81
+ }
82
+ const colorize = this.color();
83
+ return colorize(this.progress());
84
+ }, /* @ts-ignore */
85
+ ...(ngDevMode ? [{ debugName: "strokeColor" }] : /* istanbul ignore next */ []));
86
+ this.strokeDashOffset = computed(() => {
87
+ const progress = Math.min(Math.max(this.progress(), 0), 100);
88
+ const dashOffset = this.circumference() * (1 - progress / 100);
89
+ return this.indeterminate() ? this.circumference() / 1.42 : dashOffset;
90
+ }, /* @ts-ignore */
91
+ ...(ngDevMode ? [{ debugName: "strokeDashOffset" }] : /* istanbul ignore next */ []));
92
+ /**
93
+ * @description Enables CSS transitions on stroke and color changes.
94
+ * Set to `false` when updating `value` at a high frequency.
95
+ * @default true
96
+ */
97
+ this.animate = input(true, /* @ts-ignore */
98
+ ...(ngDevMode ? [{ debugName: "animate" }] : /* istanbul ignore next */ []));
99
+ /**
100
+ * @description Accessible name for the host element. Describe what the component represents (e.g., "Upload progress").
101
+ * When empty, assistive technology announces the role without a label.
102
+ * @default ""
103
+ */
104
+ this.ariaLabel = input("", { ...(ngDevMode ? { debugName: "ariaLabel" } : /* istanbul ignore next */ {}), alias: "aria-label" });
105
+ /**
106
+ * @description Human-readable override for the `aria-valuenow` announcement.
107
+ * Useful in indeterminate mode — set to a localized string such as `"Loading"`
108
+ * so screen readers announce state rather than silence.
109
+ * When empty, assistive technology falls back to the numeric value.
110
+ * @default ""
111
+ */
112
+ this.ariaValueText = input("", { ...(ngDevMode ? { debugName: "ariaValueText" } : /* istanbul ignore next */ {}), alias: "aria-valuetext" });
113
+ /**
114
+ * @description Accent color. Pass a CSS color string, or a function receiving the current percentage (0–100) and
115
+ * returning a string. When empty, falls back to the primary theme color.
116
+ * @default ""
117
+ */
118
+ this.color = input("", /* @ts-ignore */
119
+ ...(ngDevMode ? [{ debugName: "color" }] : /* istanbul ignore next */ []));
120
+ /**
121
+ * @description Renders the component with reduced visual emphasis and removes pointer interaction.
122
+ * @default false
123
+ */
124
+ this.disabled = input(false, /* @ts-ignore */
125
+ ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
126
+ /**
127
+ * @description Activates indeterminate mode when the completion value is unknown.
128
+ * ARIA value attributes are removed and `aria-busy` is set on the host element.
129
+ * @default false
130
+ */
131
+ this.indeterminate = input(false, /* @ts-ignore */
132
+ ...(ngDevMode ? [{ debugName: "indeterminate" }] : /* istanbul ignore next */ []));
133
+ /**
134
+ * @description Upper bound of the value range. Must be greater than `min`.
135
+ * @default 100
136
+ */
137
+ this.max = input(100, /* @ts-ignore */
138
+ ...(ngDevMode ? [{ debugName: "max" }] : /* istanbul ignore next */ []));
139
+ /**
140
+ * @description Lower bound of the value range.
141
+ * @default 0
142
+ */
143
+ this.min = input(0, /* @ts-ignore */
144
+ ...(ngDevMode ? [{ debugName: "min" }] : /* istanbul ignore next */ []));
145
+ /**
146
+ * @description Diameter of the indicator in pixels. Controls both width and height of the host element.
147
+ * @default 100
148
+ */
149
+ this.size = input(100, /* @ts-ignore */
150
+ ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
151
+ /**
152
+ * @description Stroke width of the circular track in pixels.
153
+ * @default 6
154
+ */
155
+ this.thickness = input(6, /* @ts-ignore */
156
+ ...(ngDevMode ? [{ debugName: "thickness" }] : /* istanbul ignore next */ []));
157
+ /**
158
+ * @description Additional CSS classes merged onto the host element via `tailwind-merge`.
159
+ * @default ""
160
+ */
161
+ this.userClass = input("", { ...(ngDevMode ? { debugName: "userClass" } : /* istanbul ignore next */ {}), alias: "class" });
162
+ /**
163
+ * @description Current progress value within `[min, max]`. Values outside the range are clamped before rendering; non-finite values are treated as `0`.
164
+ * @default 0
165
+ */
166
+ this.value = input(0, /* @ts-ignore */
167
+ ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
168
+ }
169
+ #themeService;
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>\r\n <circle\r\n [attr.cx]=\"center().x\"\r\n [attr.cy]=\"center().y\"\r\n [attr.r]=\"radius()\"\r\n [attr.data-stroke-trail]=\"true\"\r\n [attr.stroke-dasharray]=\"circumference()\"\r\n [attr.stroke-width]=\"thickness()\"\r\n fill=\"transparent\" />\r\n <circle\r\n [attr.cx]=\"center().x\"\r\n [attr.cy]=\"center().y\"\r\n [attr.r]=\"radius()\"\r\n [attr.stroke]=\"strokeColor()\"\r\n [attr.stroke-dasharray]=\"circumference()\"\r\n [attr.stroke-dashoffset]=\"strokeDashOffset()\"\r\n [attr.stroke-width]=\"thickness()\"\r\n fill=\"transparent\"\r\n [class.indeterminate]=\"indeterminate()\" />\r\n</svg>\r\n@if (!indeterminate()) {\r\n <div class=\"mona-circular-progress-bar-label\">\r\n @if (labelTemplate()) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"labelTemplate()?.templateRef\"\r\n [ngTemplateOutletContext]=\"{ $implicit: value(), min: min(), max: max(), percent: progress() }\">\r\n </ng-container>\r\n } @else {\r\n {{ progress() }}\r\n }\r\n </div>\r\n}\r\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
+ }
173
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CircularProgressBarComponent, decorators: [{
174
+ type: Component,
175
+ args: [{ selector: "mona-circular-progress-bar", imports: [NgTemplateOutlet], host: {
176
+ "[class]": "baseClasses()",
177
+ "[attr.aria-busy]": "indeterminate() || null",
178
+ "[attr.aria-label]": "ariaLabel() || null",
179
+ "[attr.aria-valuemin]": "indeterminate() ? null : min()",
180
+ "[attr.aria-valuemax]": "indeterminate() ? null : max()",
181
+ "[attr.aria-valuenow]": "indeterminate() ? null : value()",
182
+ "[attr.aria-valuetext]": "ariaValueText() || null",
183
+ "[attr.aria-disabled]": "disabled() || null",
184
+ "[attr.data-disabled]": "disabled() || null",
185
+ role: "progressbar",
186
+ "[style.width]": "pixelSize()",
187
+ "[style.height]": "pixelSize()"
188
+ }, template: "<svg>\r\n <circle\r\n [attr.cx]=\"center().x\"\r\n [attr.cy]=\"center().y\"\r\n [attr.r]=\"radius()\"\r\n [attr.data-stroke-trail]=\"true\"\r\n [attr.stroke-dasharray]=\"circumference()\"\r\n [attr.stroke-width]=\"thickness()\"\r\n fill=\"transparent\" />\r\n <circle\r\n [attr.cx]=\"center().x\"\r\n [attr.cy]=\"center().y\"\r\n [attr.r]=\"radius()\"\r\n [attr.stroke]=\"strokeColor()\"\r\n [attr.stroke-dasharray]=\"circumference()\"\r\n [attr.stroke-dashoffset]=\"strokeDashOffset()\"\r\n [attr.stroke-width]=\"thickness()\"\r\n fill=\"transparent\"\r\n [class.indeterminate]=\"indeterminate()\" />\r\n</svg>\r\n@if (!indeterminate()) {\r\n <div class=\"mona-circular-progress-bar-label\">\r\n @if (labelTemplate()) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"labelTemplate()?.templateRef\"\r\n [ngTemplateOutletContext]=\"{ $implicit: value(), min: min(), max: max(), percent: progress() }\">\r\n </ng-container>\r\n } @else {\r\n {{ progress() }}\r\n }\r\n </div>\r\n}\r\n", styles: [".indeterminate{animation:rotate 2s linear infinite}@keyframes rotate{0%{transform:rotate(0)}50%{transform:rotate(180deg)}to{transform:rotate(360deg)}}\n"] }]
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
+
191
+ /*
192
+ * Public API Surface of @nanahoshi/mona-ui/circular-progress-bar
193
+ */
194
+
195
+ /**
196
+ * Generated bundle index. Do not edit.
197
+ */
198
+
199
+ export { CircularProgressBarComponent, CircularProgressBarLabelTemplateDirective };
200
+ //# sourceMappingURL=nanahoshi-mona-ui-circular-progress-bar.mjs.map