@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,70 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { TemplateRef } from '@angular/core';
3
+ import * as class_variance_authority_types from 'class-variance-authority/types';
4
+ import { VariantProps } from 'class-variance-authority';
5
+ import { ThemeStyle } from '@nanahoshi/mona-ui/theme';
6
+ import { VariantInputs } from '@nanahoshi/mona-ui/internal';
7
+
8
+ declare const breadcrumbListThemeVariants: (theme: ThemeStyle) => (props?: ({
9
+ disabled?: boolean | null | undefined;
10
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
11
+ declare const breadcrumbListItemThemeVariants: (theme: ThemeStyle) => (props?: ({
12
+ disabled?: boolean | null | undefined;
13
+ listDisabled?: boolean | null | undefined;
14
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
15
+ type BreadcrumbListVariantProps = VariantProps<ReturnType<typeof breadcrumbListThemeVariants>>;
16
+ type BreadcrumbListVariantInput = VariantInputs<BreadcrumbListVariantProps>;
17
+ type BreadcrumbListItemVariantProps = VariantProps<ReturnType<typeof breadcrumbListItemThemeVariants>>;
18
+ type BreadcrumbListItemVariantInput = VariantInputs<BreadcrumbListItemVariantProps>;
19
+ type BreadcrumbVariantInput = BreadcrumbListVariantInput & Omit<BreadcrumbListItemVariantInput, "listDisabled">;
20
+
21
+ declare class BreadcrumbItemComponent {
22
+ /**
23
+ * @description Renders this item with reduced visual emphasis and removes pointer interaction.
24
+ * Has no visual effect when the parent breadcrumb is also disabled.
25
+ * @default false
26
+ */
27
+ readonly disabled: _angular_core.InputSignal<boolean>;
28
+ /**
29
+ * @description Emitted when the item is clicked or activated via keyboard.
30
+ * Not emitted when this is the last (current-page) item or when the item is disabled.
31
+ */
32
+ readonly itemClick: _angular_core.OutputEmitterRef<void>;
33
+ readonly templateRef: _angular_core.Signal<TemplateRef<any>>;
34
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<BreadcrumbItemComponent, never>;
35
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BreadcrumbItemComponent, "mona-breadcrumb-item", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "itemClick": "itemClick"; }, never, ["*"], true, never>;
36
+ }
37
+
38
+ declare class BreadcrumbComponent implements BreadcrumbVariantInput {
39
+ #private;
40
+ protected readonly itemComponents: _angular_core.Signal<readonly BreadcrumbItemComponent[]>;
41
+ protected readonly currentItemClass: _angular_core.Signal<string>;
42
+ protected readonly listClass: _angular_core.Signal<string>;
43
+ protected readonly separatorTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
44
+ /**
45
+ * @description Accessible name for the breadcrumb navigation landmark.
46
+ * Override when multiple breadcrumb components appear on the same page.
47
+ * @default "Breadcrumb"
48
+ */
49
+ readonly ariaLabel: _angular_core.InputSignal<string>;
50
+ /**
51
+ * @description Renders the entire breadcrumb with reduced visual emphasis and removes pointer interaction from all items.
52
+ * @default false
53
+ */
54
+ readonly disabled: _angular_core.InputSignal<boolean>;
55
+ /**
56
+ * @description Additional CSS classes merged onto the breadcrumb list via `tailwind-merge`.
57
+ * @default ""
58
+ */
59
+ readonly userClass: _angular_core.InputSignal<string>;
60
+ protected onItemClick(item: BreadcrumbItemComponent): void;
61
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<BreadcrumbComponent, never>;
62
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BreadcrumbComponent, "mona-breadcrumb", never, { "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "userClass": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, ["itemComponents", "separatorTemplate"], never, true, never>;
63
+ }
64
+
65
+ declare class BreadcrumbSeparatorTemplateDirective {
66
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<BreadcrumbSeparatorTemplateDirective, never>;
67
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<BreadcrumbSeparatorTemplateDirective, "ng-template[monaBreadcrumbSeparatorTemplate]", never, {}, {}, never, never, true, never>;
68
+ }
69
+
70
+ export { BreadcrumbComponent, BreadcrumbItemComponent, BreadcrumbSeparatorTemplateDirective };
@@ -0,0 +1,77 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { ButtonDirective } from '@nanahoshi/mona-ui/button';
3
+ import { SelectionMode } from '@nanahoshi/mona-ui/common';
4
+ import * as class_variance_authority_types from 'class-variance-authority/types';
5
+ import { VariantProps } from 'class-variance-authority';
6
+ import { ThemeStyle } from '@nanahoshi/mona-ui/theme';
7
+ import { VariantInputs } from '@nanahoshi/mona-ui/internal';
8
+
9
+ declare const buttonGroupThemeVariants: (theme: ThemeStyle) => (props?: ({
10
+ look?: "default" | "error" | "ghost" | "info" | "outline" | "primary" | "secondary" | "success" | "warning" | null | undefined;
11
+ rounded?: "full" | "large" | "medium" | "none" | "small" | null | undefined;
12
+ size?: "large" | "medium" | "small" | null | undefined;
13
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
14
+ type ButtonGroupVariantProps = VariantProps<ReturnType<typeof buttonGroupThemeVariants>>;
15
+ type ButtonGroupVariantsInput = VariantInputs<ButtonGroupVariantProps>;
16
+
17
+ declare class ButtonGroupComponent implements ButtonGroupVariantsInput {
18
+ #private;
19
+ protected readonly baseClass: _angular_core.Signal<string>;
20
+ protected readonly buttons: _angular_core.Signal<readonly ButtonDirective[]>;
21
+ /**
22
+ * @description When `false` and `selection` is `"single"`, at least one button must remain selected;
23
+ * the active button cannot be deselected. Has no effect in `"multiple"` mode.
24
+ * @default true
25
+ */
26
+ readonly allowEmpty: _angular_core.InputSignal<boolean>;
27
+ /**
28
+ * @description Accessible name for the host element. Override when multiple button groups appear on the same page
29
+ * so screen reader users can distinguish them.
30
+ * @default "Button group"
31
+ */
32
+ readonly ariaLabel: _angular_core.InputSignal<string>;
33
+ /**
34
+ * @description Emitted when any child button in the group is clicked.
35
+ * Use `[(selected)]` on child buttons to observe the resulting selection state.
36
+ */
37
+ readonly buttonClick: _angular_core.OutputRef<void>;
38
+ /**
39
+ * @description Renders all child buttons with reduced visual emphasis and removes pointer interaction.
40
+ * @default false
41
+ */
42
+ readonly disabled: _angular_core.ModelSignal<boolean>;
43
+ /**
44
+ * @description Visual style variant propagated to all child buttons.
45
+ * Also controls container-level divider and border behavior.
46
+ * @default "outline"
47
+ */
48
+ readonly look: _angular_core.InputSignal<"default" | "error" | "ghost" | "info" | "outline" | "primary" | "secondary" | "success" | "warning" | null | undefined>;
49
+ /**
50
+ * @description Border-radius preset applied to the container and the outer corners of the first and last child button.
51
+ * @default "medium"
52
+ */
53
+ readonly rounded: _angular_core.InputSignal<"full" | "large" | "medium" | "none" | "small" | null | undefined>;
54
+ /**
55
+ * @description Two-way bindable. Controls whether child buttons behave as a radio group (`"single"`)
56
+ * or toggle independently (`"multiple"`).
57
+ * @default "multiple"
58
+ */
59
+ readonly selection: _angular_core.ModelSignal<SelectionMode>;
60
+ /**
61
+ * @description Size preset propagated to all child buttons, overriding their individual `size` inputs.
62
+ * @default "medium"
63
+ */
64
+ readonly size: _angular_core.InputSignal<"large" | "medium" | "small" | null | undefined>;
65
+ /**
66
+ * @description Additional CSS classes merged onto the host element via `tailwind-merge`.
67
+ * @default ""
68
+ */
69
+ readonly userClass: _angular_core.InputSignal<string>;
70
+ constructor();
71
+ private setSubscriptions;
72
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ButtonGroupComponent, never>;
73
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ButtonGroupComponent, "mona-button-group", never, { "allowEmpty": { "alias": "allowEmpty"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "look": { "alias": "look"; "required": false; "isSignal": true; }; "rounded": { "alias": "rounded"; "required": false; "isSignal": true; }; "selection": { "alias": "selection"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "userClass": { "alias": "class"; "required": false; "isSignal": true; }; }, { "buttonClick": "buttonClick"; "disabled": "disabledChange"; "selection": "selectionChange"; }, ["buttons"], ["[monaButton]"], true, never>;
74
+ }
75
+
76
+ export { ButtonGroupComponent };
77
+ export type { ButtonGroupVariantProps };
@@ -0,0 +1,111 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import * as class_variance_authority_types from 'class-variance-authority/types';
3
+ import { VariantProps } from 'class-variance-authority';
4
+ import { VariantInputs } from '@nanahoshi/mona-ui/internal';
5
+ import { ThemeStyle } from '@nanahoshi/mona-ui/theme';
6
+ import { Subject } from 'rxjs';
7
+
8
+ declare const buttonThemeVariants: (theme: ThemeStyle) => (props?: ({
9
+ disabled?: boolean | null | undefined;
10
+ iconOnly?: boolean | null | undefined;
11
+ loading?: boolean | null | undefined;
12
+ look?: "default" | "primary" | "success" | "error" | "warning" | "info" | "outline" | "secondary" | "ghost" | "link" | "clear" | null | undefined;
13
+ rounded?: "full" | "large" | "medium" | "none" | "small" | null | undefined;
14
+ size?: "large" | "medium" | "small" | null | undefined;
15
+ selected?: boolean | null | undefined;
16
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
17
+ type ButtonVariantProps = VariantProps<ReturnType<typeof buttonThemeVariants>>;
18
+ type ButtonVariantsInput = VariantInputs<ButtonVariantProps>;
19
+
20
+ declare class ButtonDirective implements ButtonVariantsInput {
21
+ #private;
22
+ protected readonly effectiveDisabled: _angular_core.Signal<boolean>;
23
+ protected readonly effectiveLook: _angular_core.Signal<"default" | "primary" | "success" | "error" | "warning" | "info" | "outline" | "secondary" | "ghost" | "link" | "clear" | null | undefined>;
24
+ protected readonly effectiveRounded: _angular_core.Signal<"full" | "large" | "medium" | "none" | "small" | null | undefined>;
25
+ protected readonly effectiveSize: _angular_core.Signal<"large" | "medium" | "small" | null | undefined>;
26
+ protected readonly effectiveToggleable: _angular_core.Signal<boolean>;
27
+ protected readonly isInButtonGroup: _angular_core.Signal<boolean>;
28
+ protected readonly baseClass: _angular_core.Signal<string>;
29
+ protected readonly loadingSize: _angular_core.Signal<12 | 16 | 14>;
30
+ /**
31
+ * @description Value forwarded to the `aria-haspopup` attribute. Set when this button triggers a popup, menu,
32
+ * listbox, tree, grid, or dialog. Omit or leave as `"false"` for plain action buttons.
33
+ * @default "false"
34
+ */
35
+ readonly ariaHasPopup: _angular_core.InputSignal<string>;
36
+ /**
37
+ * @description Renders the component with reduced visual emphasis and removes pointer interaction.
38
+ * When inside a `ButtonGroup`, the group's disabled state takes precedence.
39
+ * @default false
40
+ */
41
+ readonly disabled: _angular_core.ModelSignal<boolean>;
42
+ /**
43
+ * @description Removes horizontal padding and fixes a square aspect ratio sized to match `size`.
44
+ * Provide `aria-label` on the host when using icon-only buttons.
45
+ * @default false
46
+ */
47
+ readonly iconOnly: _angular_core.InputSignal<boolean>;
48
+ /**
49
+ * @description Displays a loading indicator and prevents interaction while an operation is in progress.
50
+ * Sets `aria-busy="true"` on the host.
51
+ * @default false
52
+ */
53
+ readonly loading: _angular_core.ModelSignal<boolean>;
54
+ /**
55
+ * @description Visual style variant of the button. When inside a `ButtonGroup`, the group's look takes precedence.
56
+ * @default "default"
57
+ */
58
+ readonly look: _angular_core.ModelSignal<"default" | "primary" | "success" | "error" | "warning" | "info" | "outline" | "secondary" | "ghost" | "link" | "clear" | null | undefined>;
59
+ /**
60
+ * @description Border-radius preset applied to the component.
61
+ * When inside a `ButtonGroup`, the group's value takes precedence.
62
+ * @default "medium"
63
+ */
64
+ readonly rounded: _angular_core.InputSignal<"full" | "large" | "medium" | "none" | "small" | null | undefined>;
65
+ /**
66
+ * @description Whether the button is in the selected/pressed state. Drives `aria-pressed` when the button is toggleable.
67
+ * Managed by `toggleable` click handling or by `ButtonGroup` selection policy.
68
+ * @default false
69
+ */
70
+ readonly selected: _angular_core.ModelSignal<boolean>;
71
+ /**
72
+ * @description Size preset controlling the button's height and horizontal padding.
73
+ * When inside a `ButtonGroup`, the group's value takes precedence.
74
+ * @default "medium"
75
+ */
76
+ readonly size: _angular_core.InputSignal<"large" | "medium" | "small" | null | undefined>;
77
+ /**
78
+ * @description Tab index of the host element. Automatically overridden to `-1` when the button is disabled or loading.
79
+ * Accepts a numeric string and converts it to a number.
80
+ * @default 0
81
+ */
82
+ readonly tabindex: _angular_core.InputSignalWithTransform<number, string | number>;
83
+ /**
84
+ * @description Enables toggle behavior — each click flips the `selected` state and `aria-pressed` is managed.
85
+ * Must use `[toggleable]="true"` binding syntax, not bare attribute form.
86
+ * @default false
87
+ */
88
+ readonly toggleable: _angular_core.InputSignal<boolean>;
89
+ /**
90
+ * @description Additional CSS classes merged onto the host element via `tailwind-merge`.
91
+ * @default ""
92
+ */
93
+ readonly userClass: _angular_core.InputSignal<string>;
94
+ constructor();
95
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ButtonDirective, never>;
96
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ButtonDirective, "button[monaButton]", never, { "ariaHasPopup": { "alias": "aria-haspopup"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "iconOnly": { "alias": "iconOnly"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "look": { "alias": "look"; "required": false; "isSignal": true; }; "rounded": { "alias": "rounded"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "tabindex": { "alias": "tabindex"; "required": false; "isSignal": true; }; "toggleable": { "alias": "toggleable"; "required": false; "isSignal": true; }; "userClass": { "alias": "class"; "required": false; "isSignal": true; }; }, { "disabled": "disabledChange"; "loading": "loadingChange"; "look": "lookChange"; "selected": "selectedChange"; }, never, never, true, never>;
97
+ }
98
+
99
+ declare class ButtonService {
100
+ readonly buttonClick$: Subject<[ButtonDirective, boolean]>;
101
+ readonly buttonSelect$: Subject<[ButtonDirective, boolean]>;
102
+ readonly groupDisabled: _angular_core.WritableSignal<boolean>;
103
+ readonly groupLook: _angular_core.WritableSignal<"default" | "primary" | "success" | "error" | "warning" | "info" | "outline" | "secondary" | "ghost" | "link" | "clear" | null | undefined>;
104
+ readonly groupRounded: _angular_core.WritableSignal<"full" | "large" | "medium" | "none" | "small" | null | undefined>;
105
+ readonly groupSize: _angular_core.WritableSignal<"large" | "medium" | "small" | null | undefined>;
106
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ButtonService, never>;
107
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<ButtonService>;
108
+ }
109
+
110
+ export { ButtonDirective, ButtonService };
111
+ export type { ButtonVariantProps, ButtonVariantsInput };
@@ -0,0 +1,262 @@
1
+ import * as _mirei_ts_collections from '@mirei/ts-collections';
2
+ import * as _angular_core from '@angular/core';
3
+ import { TemplateRef } from '@angular/core';
4
+ import { FormValueControl } from '@angular/forms/signals';
5
+ import { CalendarView, DateDisabledType } from '@nanahoshi/mona-ui/date-input';
6
+ import * as class_variance_authority_types from 'class-variance-authority/types';
7
+ import { VariantInputs } from '@nanahoshi/mona-ui/internal';
8
+ import { ThemeStyle } from '@nanahoshi/mona-ui/theme';
9
+ import { VariantProps } from 'class-variance-authority';
10
+
11
+ interface DecadeCellTemplateContext {
12
+ /**
13
+ * @description The year interval of per decade.
14
+ */
15
+ $implicit: number;
16
+ }
17
+ interface MonthCellTemplateContext {
18
+ /**
19
+ * @description The day of the month.
20
+ */
21
+ $implicit: number;
22
+ /**
23
+ * @description The date object representing the day.
24
+ */
25
+ date: Date;
26
+ }
27
+ interface YearCellTemplateContext {
28
+ /**
29
+ * @description The month number (1–12) represented by this cell.
30
+ */
31
+ $implicit: number;
32
+ /**
33
+ * @description The text representation of the month.
34
+ */
35
+ text: string;
36
+ }
37
+
38
+ declare class CalendarDecadeCellTemplateDirective {
39
+ readonly templateRef: TemplateRef<DecadeCellTemplateContext>;
40
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CalendarDecadeCellTemplateDirective, never>;
41
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CalendarDecadeCellTemplateDirective, "ng-template[monaCalendarDecadeCellTemplate]", never, {}, {}, never, never, true, never>;
42
+ }
43
+
44
+ declare class CalendarMonthCellTemplateDirective {
45
+ readonly templateRef: TemplateRef<MonthCellTemplateContext>;
46
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CalendarMonthCellTemplateDirective, never>;
47
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CalendarMonthCellTemplateDirective, "ng-template[monaCalendarMonthCellTemplate]", never, {}, {}, never, never, true, never>;
48
+ }
49
+
50
+ declare class CalendarYearCellTemplateDirective {
51
+ readonly templateRef: TemplateRef<YearCellTemplateContext>;
52
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CalendarYearCellTemplateDirective, never>;
53
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CalendarYearCellTemplateDirective, "ng-template[monaCalendarYearCellTemplate]", never, {}, {}, never, never, true, never>;
54
+ }
55
+
56
+ type CalendarSelection = "multiple" | "range" | "single";
57
+
58
+ type FirstDayOfWeek = "monday" | "sunday";
59
+
60
+ declare const calendarBaseThemeVariants: (theme: ThemeStyle) => (props?: ({
61
+ disabled?: boolean | null | undefined;
62
+ readonly?: boolean | null | undefined;
63
+ rounded?: "none" | "small" | "medium" | "large" | "full" | null | undefined;
64
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
65
+ declare const calendarHeaderThemeVariants: (theme: ThemeStyle) => (props?: class_variance_authority_types.ClassProp | undefined) => string;
66
+ declare const calendarDecadeViewGridThemeVariants: (theme: ThemeStyle) => (props?: class_variance_authority_types.ClassProp | undefined) => string;
67
+ declare const calendarDecadeViewCellThemeVariants: (theme: ThemeStyle) => (props?: ({
68
+ focused?: boolean | null | undefined;
69
+ rounded?: "none" | "small" | "medium" | "large" | "full" | null | undefined;
70
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
71
+ declare const calendarMonthViewDayThemeVariants: (theme: ThemeStyle) => (props?: ({
72
+ disabled?: boolean | null | undefined;
73
+ focused?: boolean | null | undefined;
74
+ outside?: boolean | null | undefined;
75
+ rangePreview?: boolean | null | undefined;
76
+ rounded?: "none" | "small" | "medium" | "large" | "full" | null | undefined;
77
+ selected?: boolean | null | undefined;
78
+ today?: boolean | null | undefined;
79
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
80
+ declare const calendarMonthViewGridThemeVariants: (theme: ThemeStyle) => (props?: class_variance_authority_types.ClassProp | undefined) => string;
81
+ declare const calendarMonthViewGridHeaderThemeVariants: (theme: ThemeStyle) => (props?: class_variance_authority_types.ClassProp | undefined) => string;
82
+ declare const calendarYearViewGridThemeVariants: (theme: ThemeStyle) => (props?: class_variance_authority_types.ClassProp | undefined) => string;
83
+ declare const calendarYearViewCellThemeVariants: (theme: ThemeStyle) => (props?: ({
84
+ focused?: boolean | null | undefined;
85
+ rounded?: "none" | "small" | "medium" | "large" | "full" | null | undefined;
86
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
87
+ type CalendarBaseVariantProps = VariantProps<ReturnType<typeof calendarBaseThemeVariants>>;
88
+ type CalendarBaseVariantInput = VariantInputs<CalendarBaseVariantProps>;
89
+ type CalendarHeaderVariantProps = VariantProps<ReturnType<typeof calendarHeaderThemeVariants>>;
90
+ type CalendarHeaderVariantInput = VariantInputs<CalendarHeaderVariantProps>;
91
+ type CalendarDecadeViewGridVariantProps = VariantProps<ReturnType<typeof calendarDecadeViewGridThemeVariants>>;
92
+ type CalendarDecadeViewGridVariantInput = VariantInputs<CalendarDecadeViewGridVariantProps>;
93
+ type CalendarDecadeViewCellVariantProps = VariantProps<ReturnType<typeof calendarDecadeViewCellThemeVariants>>;
94
+ type CalendarDecadeViewCellVariantInput = VariantInputs<CalendarDecadeViewCellVariantProps>;
95
+ type CalendarMonthViewDayVariantProps = VariantProps<ReturnType<typeof calendarMonthViewDayThemeVariants>>;
96
+ type CalendarMonthViewDayVariantInput = VariantInputs<CalendarMonthViewDayVariantProps>;
97
+ type CalendarMonthViewGridVariantProps = VariantProps<ReturnType<typeof calendarMonthViewGridThemeVariants>>;
98
+ type CalendarMonthViewGridVariantInput = VariantInputs<CalendarMonthViewGridVariantProps>;
99
+ type CalendarMonthViewGridHeaderVariantProps = VariantProps<ReturnType<typeof calendarMonthViewGridHeaderThemeVariants>>;
100
+ type CalendarMonthViewGridHeaderVariantInput = VariantInputs<CalendarMonthViewGridHeaderVariantProps>;
101
+ type CalendarYearViewGridVariantProps = VariantProps<ReturnType<typeof calendarYearViewGridThemeVariants>>;
102
+ type CalendarYearViewGridVariantInput = VariantInputs<CalendarYearViewGridVariantProps>;
103
+ type CalendarYearViewCellVariantProps = VariantProps<ReturnType<typeof calendarYearViewCellThemeVariants>>;
104
+ type CalendarYearViewCellVariantInput = VariantInputs<CalendarYearViewCellVariantProps>;
105
+ type CalendarVariantProps = CalendarBaseVariantProps & CalendarHeaderVariantProps & CalendarDecadeViewGridVariantProps & CalendarDecadeViewCellVariantProps & CalendarMonthViewDayVariantProps & CalendarMonthViewGridVariantProps & CalendarMonthViewGridHeaderVariantProps & CalendarYearViewGridVariantProps & CalendarYearViewCellVariantProps;
106
+ type CalendarVariantInput = CalendarBaseVariantInput & CalendarHeaderVariantInput & CalendarDecadeViewGridVariantInput & Omit<CalendarDecadeViewCellVariantInput, "focused"> & Omit<CalendarMonthViewDayVariantInput, "disabled" | "focused" | "outside" | "rangePreview" | "selected" | "today"> & CalendarMonthViewGridVariantInput & CalendarMonthViewGridHeaderVariantInput & CalendarYearViewGridVariantInput & Omit<CalendarYearViewCellVariantInput, "focused">;
107
+
108
+ declare class CalendarComponent implements CalendarVariantInput, FormValueControl<Date | Date[] | null> {
109
+ #private;
110
+ protected readonly ariaLabel: _angular_core.Signal<string>;
111
+ protected readonly baseClass: _angular_core.Signal<string>;
112
+ protected readonly calendarView: _angular_core.WritableSignal<CalendarView>;
113
+ protected readonly decadeCellTemplate: _angular_core.Signal<CalendarDecadeCellTemplateDirective | undefined>;
114
+ protected readonly decadeEnd: _angular_core.Signal<number>;
115
+ protected readonly decadeGridClass: _angular_core.Signal<string>;
116
+ protected readonly decadeStart: _angular_core.Signal<number>;
117
+ protected readonly decadeYears: _angular_core.Signal<number[][]>;
118
+ protected readonly gridId: string;
119
+ protected readonly headerClass: _angular_core.Signal<string>;
120
+ protected readonly invalidState: _angular_core.Signal<boolean>;
121
+ protected readonly monthBounds: _angular_core.Signal<{
122
+ start: Date;
123
+ end: Date;
124
+ }>;
125
+ protected readonly monthCellTemplate: _angular_core.Signal<CalendarMonthCellTemplateDirective | undefined>;
126
+ protected readonly monthDictChunked: _angular_core.Signal<_mirei_ts_collections.ImmutableSet<_mirei_ts_collections.ImmutableDictionary<Date, number>>>;
127
+ protected readonly monthGridClass: _angular_core.Signal<string>;
128
+ protected readonly monthGridHeaderClass: _angular_core.Signal<string>;
129
+ protected readonly months: _angular_core.Signal<_mirei_ts_collections.ImmutableSet<_mirei_ts_collections.ImmutableSet<readonly [number, string]>>>;
130
+ protected readonly navigatedDate: _angular_core.WritableSignal<Date>;
131
+ protected readonly nextButtonLabel: _angular_core.Signal<"Next month" | "Next year" | "Next decade">;
132
+ protected readonly prevButtonLabel: _angular_core.Signal<"Previous month" | "Previous year" | "Previous decade">;
133
+ protected readonly pendingRangeStart: _angular_core.WritableSignal<Date | null>;
134
+ protected readonly rangePreviewDate: _angular_core.WritableSignal<Date | null>;
135
+ protected readonly rangePreviewDates: _angular_core.Signal<Date[]>;
136
+ protected readonly selectedDates: _angular_core.WritableSignal<Date[]>;
137
+ protected readonly timezone: string;
138
+ protected readonly todayButtonLabel: _angular_core.Signal<string>;
139
+ protected readonly viewSwitchButtonLabel: _angular_core.Signal<string>;
140
+ protected readonly weekdays: _angular_core.Signal<{
141
+ short: string;
142
+ full: string;
143
+ }[]>;
144
+ protected readonly yearCellTemplate: _angular_core.Signal<CalendarYearCellTemplateDirective | undefined>;
145
+ protected readonly yearGridClass: _angular_core.Signal<string>;
146
+ /**
147
+ * @description Sets the disabled state of the calendar.
148
+ */
149
+ readonly disabled: _angular_core.ModelSignal<boolean>;
150
+ /**
151
+ * @description Sets the disabled dates of the calendar.
152
+ * Accepts either an iterable of Date objects or a predicate function.
153
+ */
154
+ readonly disabledDates: _angular_core.InputSignal<DateDisabledType>;
155
+ /**
156
+ * @description Sets the first day of the week.
157
+ * @default "monday"
158
+ */
159
+ readonly firstDay: _angular_core.InputSignal<FirstDayOfWeek>;
160
+ /**
161
+ * @description Marks the calendar as invalid. When bound to a signal form field via `[formField]`,
162
+ * this is written by the `FormField` directive.
163
+ * @default false
164
+ */
165
+ readonly invalid: _angular_core.InputSignal<boolean>;
166
+ /**
167
+ * @description Sets the maximum date that can be selected.
168
+ */
169
+ readonly maxDate: _angular_core.InputSignal<Date | null | undefined>;
170
+ /**
171
+ * @description Sets the minimum date that can be selected.
172
+ */
173
+ readonly minDate: _angular_core.InputSignal<Date | null | undefined>;
174
+ /**
175
+ * @description Sets the readonly state of the calendar.
176
+ * @default false
177
+ */
178
+ readonly readonly: _angular_core.InputSignal<boolean>;
179
+ /**
180
+ * @description Sets the border radius of the calendar.
181
+ * @default "medium"
182
+ */
183
+ readonly rounded: _angular_core.InputSignal<"none" | "small" | "medium" | "large" | "full" | null | undefined>;
184
+ /**
185
+ * @description Sets the selection mode of the calendar.
186
+ * @default "single"
187
+ */
188
+ readonly selection: _angular_core.InputSignal<CalendarSelection>;
189
+ /**
190
+ * @description Emitted when the calendar value is changed by user interaction.
191
+ * The `FormField` directive listens to this to mark the field as touched.
192
+ */
193
+ readonly touch: _angular_core.OutputEmitterRef<void>;
194
+ /**
195
+ * @description Sets whether the calendar is required. When bound to a signal form field via `[formField]`,
196
+ * this is written by the `FormField` directive.
197
+ * @default false
198
+ */
199
+ readonly required: _angular_core.InputSignal<boolean>;
200
+ /**
201
+ * @description Sets the touched state of the calendar. When bound to a signal form field via `[formField]`,
202
+ * this is written by the `FormField` directive.
203
+ * @default false
204
+ */
205
+ readonly touched: _angular_core.InputSignal<boolean>;
206
+ /**
207
+ * @description Adds custom CSS classes to the calendar host element.
208
+ */
209
+ readonly userClass: _angular_core.InputSignal<string>;
210
+ /**
211
+ * @description The current value of the calendar.
212
+ * @default null
213
+ */
214
+ readonly value: _angular_core.ModelSignal<Date | Date[] | null>;
215
+ /**
216
+ * @description Enables the display of week numbers in the calendar.
217
+ * @default false
218
+ */
219
+ readonly weekNumber: _angular_core.InputSignal<boolean>;
220
+ constructor();
221
+ protected onDayClick(date: Date, event: MouseEvent): void;
222
+ protected onDayPointerEnter(date: Date): void;
223
+ protected onMonthClick(month: number): void;
224
+ protected onMonthGridPointerLeave(): void;
225
+ protected onNavigationClick(direction: "prev" | "next"): void;
226
+ protected onTodayButtonClick(): void;
227
+ protected onViewChangeClick(view: CalendarView): void;
228
+ protected onYearClick(year: number): void;
229
+ private extendSelection;
230
+ private clearPendingRange;
231
+ private commitUserSelection;
232
+ private focusActiveCell;
233
+ private getDateArray;
234
+ private getDatesForMultipleSelection;
235
+ private getInclusiveDateRange;
236
+ private handleKeydown;
237
+ private handleMultipleSelection;
238
+ private handleMultipleSelectionKeyboard;
239
+ private handleRangeSelection;
240
+ private handleSingleSelection;
241
+ private isDateDisabled;
242
+ private isEmptyValue;
243
+ private navigateByDaysOrCells;
244
+ private navigateByPeriod;
245
+ private navigateByWeeksOrRows;
246
+ private navigatePeriodKeyboard;
247
+ private navigateToEnd;
248
+ private navigateToStart;
249
+ private navigateToToday;
250
+ private selectFocusedItem;
251
+ private selectRangeToFocused;
252
+ private setCurrentDate;
253
+ private setupKeyboardNavigation;
254
+ private switchToLowerView;
255
+ private switchToUpperView;
256
+ private toggleFocusedDateInSelection;
257
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CalendarComponent, never>;
258
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CalendarComponent, "mona-calendar", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "disabledDates": { "alias": "disabledDates"; "required": false; "isSignal": true; }; "firstDay": { "alias": "firstDay"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "rounded": { "alias": "rounded"; "required": false; "isSignal": true; }; "selection": { "alias": "selection"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "userClass": { "alias": "class"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "weekNumber": { "alias": "weekNumber"; "required": false; "isSignal": true; }; }, { "disabled": "disabledChange"; "touch": "touch"; "value": "valueChange"; }, ["decadeCellTemplate", "monthCellTemplate", "yearCellTemplate"], never, true, never>;
259
+ }
260
+
261
+ export { CalendarComponent, CalendarDecadeCellTemplateDirective, CalendarMonthCellTemplateDirective, CalendarYearCellTemplateDirective };
262
+ export type { CalendarSelection, CalendarVariantInput, CalendarVariantProps, DecadeCellTemplateContext, FirstDayOfWeek, MonthCellTemplateContext, YearCellTemplateContext };