@frame-ui-ng/components 0.5.0-beta.0 → 0.6.0-beta.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 (106) hide show
  1. package/accordion/src/styles/_vars.css +2 -5
  2. package/accordion/src/styles/accordion.css +44 -30
  3. package/breadcrumb/src/styles/breadcrumb.css +12 -2
  4. package/button/src/styles/button.css +20 -66
  5. package/button-group/src/styles/button-group.css +0 -38
  6. package/calendar/src/styles/_vars.css +4 -0
  7. package/calendar/src/styles/calendar.css +26 -18
  8. package/carousel/src/styles/carousel.css +103 -89
  9. package/checkbox/src/styles/checkbox.css +14 -5
  10. package/collapsible/src/styles/_vars.css +1 -0
  11. package/collapsible/src/styles/collapsible.css +15 -11
  12. package/combobox/src/styles/combobox.css +11 -2
  13. package/confirm-popover/src/styles/confirm-popover.css +0 -1
  14. package/date-picker/src/styles/date-picker.css +15 -10
  15. package/dropdown-menu/src/styles/dropdown-menu-item.css +6 -2
  16. package/fesm2022/frame-ui-ng-components-accordion.mjs +201 -147
  17. package/fesm2022/frame-ui-ng-components-accordion.mjs.map +1 -1
  18. package/fesm2022/frame-ui-ng-components-alert.mjs +2 -2
  19. package/fesm2022/frame-ui-ng-components-alert.mjs.map +1 -1
  20. package/fesm2022/frame-ui-ng-components-breadcrumb.mjs +10 -2
  21. package/fesm2022/frame-ui-ng-components-breadcrumb.mjs.map +1 -1
  22. package/fesm2022/frame-ui-ng-components-button-group.mjs +2 -2
  23. package/fesm2022/frame-ui-ng-components-button-group.mjs.map +1 -1
  24. package/fesm2022/frame-ui-ng-components-button.mjs +2 -2
  25. package/fesm2022/frame-ui-ng-components-button.mjs.map +1 -1
  26. package/fesm2022/frame-ui-ng-components-calendar.mjs +202 -50
  27. package/fesm2022/frame-ui-ng-components-calendar.mjs.map +1 -1
  28. package/fesm2022/frame-ui-ng-components-card.mjs +2 -2
  29. package/fesm2022/frame-ui-ng-components-card.mjs.map +1 -1
  30. package/fesm2022/frame-ui-ng-components-carousel.mjs +2 -2
  31. package/fesm2022/frame-ui-ng-components-carousel.mjs.map +1 -1
  32. package/fesm2022/frame-ui-ng-components-collapsible.mjs +80 -22
  33. package/fesm2022/frame-ui-ng-components-collapsible.mjs.map +1 -1
  34. package/fesm2022/frame-ui-ng-components-combobox.mjs +61 -6
  35. package/fesm2022/frame-ui-ng-components-combobox.mjs.map +1 -1
  36. package/fesm2022/frame-ui-ng-components-command.mjs +2 -2
  37. package/fesm2022/frame-ui-ng-components-command.mjs.map +1 -1
  38. package/fesm2022/frame-ui-ng-components-confirm-popover.mjs +6 -6
  39. package/fesm2022/frame-ui-ng-components-confirm-popover.mjs.map +1 -1
  40. package/fesm2022/frame-ui-ng-components-date-picker.mjs +75 -37
  41. package/fesm2022/frame-ui-ng-components-date-picker.mjs.map +1 -1
  42. package/fesm2022/frame-ui-ng-components-dropdown-menu.mjs +2 -2
  43. package/fesm2022/frame-ui-ng-components-dropdown-menu.mjs.map +1 -1
  44. package/fesm2022/frame-ui-ng-components-empty.mjs +2 -2
  45. package/fesm2022/frame-ui-ng-components-empty.mjs.map +1 -1
  46. package/fesm2022/frame-ui-ng-components-hover-card.mjs +2 -2
  47. package/fesm2022/frame-ui-ng-components-hover-card.mjs.map +1 -1
  48. package/fesm2022/frame-ui-ng-components-input-otp.mjs +2 -2
  49. package/fesm2022/frame-ui-ng-components-input-otp.mjs.map +1 -1
  50. package/fesm2022/frame-ui-ng-components-input.mjs +2 -2
  51. package/fesm2022/frame-ui-ng-components-input.mjs.map +1 -1
  52. package/fesm2022/frame-ui-ng-components-item.mjs +2 -2
  53. package/fesm2022/frame-ui-ng-components-item.mjs.map +1 -1
  54. package/fesm2022/frame-ui-ng-components-menubar.mjs +2 -2
  55. package/fesm2022/frame-ui-ng-components-menubar.mjs.map +1 -1
  56. package/fesm2022/frame-ui-ng-components-modal.mjs +10 -4
  57. package/fesm2022/frame-ui-ng-components-modal.mjs.map +1 -1
  58. package/fesm2022/frame-ui-ng-components-navigation-menu.mjs +4 -4
  59. package/fesm2022/frame-ui-ng-components-navigation-menu.mjs.map +1 -1
  60. package/fesm2022/frame-ui-ng-components-pagination.mjs +20 -4
  61. package/fesm2022/frame-ui-ng-components-pagination.mjs.map +1 -1
  62. package/fesm2022/frame-ui-ng-components-popover.mjs +2 -2
  63. package/fesm2022/frame-ui-ng-components-popover.mjs.map +1 -1
  64. package/fesm2022/frame-ui-ng-components-radio-group.mjs +2 -2
  65. package/fesm2022/frame-ui-ng-components-radio-group.mjs.map +1 -1
  66. package/fesm2022/frame-ui-ng-components-resizable.mjs +2 -2
  67. package/fesm2022/frame-ui-ng-components-resizable.mjs.map +1 -1
  68. package/fesm2022/frame-ui-ng-components-sheet.mjs +90 -65
  69. package/fesm2022/frame-ui-ng-components-sheet.mjs.map +1 -1
  70. package/fesm2022/frame-ui-ng-components-table.mjs +6 -5
  71. package/fesm2022/frame-ui-ng-components-table.mjs.map +1 -1
  72. package/fesm2022/frame-ui-ng-components-tabs.mjs +2 -2
  73. package/fesm2022/frame-ui-ng-components-tabs.mjs.map +1 -1
  74. package/fesm2022/frame-ui-ng-components-toast.mjs +6 -6
  75. package/fesm2022/frame-ui-ng-components-toast.mjs.map +1 -1
  76. package/fesm2022/frame-ui-ng-components-tooltip.mjs +6 -6
  77. package/fesm2022/frame-ui-ng-components-tooltip.mjs.map +1 -1
  78. package/fesm2022/frame-ui-ng-components-virtual-scroll.mjs +4 -4
  79. package/fesm2022/frame-ui-ng-components-virtual-scroll.mjs.map +1 -1
  80. package/fesm2022/frame-ui-ng-components.mjs +850 -420
  81. package/fesm2022/frame-ui-ng-components.mjs.map +1 -1
  82. package/input/src/styles/input-group.css +0 -7
  83. package/input/src/styles/input.css +0 -23
  84. package/modal/src/styles/modal.css +5 -19
  85. package/package.json +6 -6
  86. package/pagination/src/styles/pagination.css +6 -2
  87. package/popover/src/styles/popover.css +3 -3
  88. package/select/src/styles/select-item.css +67 -68
  89. package/sheet/src/styles/sheet.css +32 -19
  90. package/src/styles/components.css +2 -2
  91. package/src/styles/corner-handles.css +217 -0
  92. package/styles/components.css +2 -2
  93. package/styles/corner-handles.css +217 -0
  94. package/styles.css +2 -2
  95. package/toggle/src/styles/toggle.css +6 -1
  96. package/tooltip/src/styles/_vars.css +1 -1
  97. package/tooltip/src/styles/tooltip.css +13 -14
  98. package/types/frame-ui-ng-components-accordion.d.ts +69 -61
  99. package/types/frame-ui-ng-components-calendar.d.ts +7 -7
  100. package/types/frame-ui-ng-components-collapsible.d.ts +12 -4
  101. package/types/frame-ui-ng-components-combobox.d.ts +8 -0
  102. package/types/frame-ui-ng-components-date-picker.d.ts +2 -4
  103. package/types/frame-ui-ng-components-sheet.d.ts +6 -2
  104. package/types/frame-ui-ng-components.d.ts +172 -135
  105. package/src/styles/blueprint.css +0 -707
  106. package/styles/blueprint.css +0 -707
@@ -95,7 +95,11 @@ class FrBreadcrumbEllipsis {
95
95
  label = input('More pages', ...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
96
96
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrBreadcrumbEllipsis, deps: [], target: i0.ɵɵFactoryTarget.Component });
97
97
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.16", type: FrBreadcrumbEllipsis, isStandalone: true, selector: "[frBreadcrumbEllipsis], frame-breadcrumb-ellipsis", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "presentation" }, classAttribute: "frame-breadcrumb__ellipsis" }, ngImport: i0, template: `
98
- <span aria-hidden="true">...</span>
98
+ <svg aria-hidden="true" viewBox="0 0 24 24" fill="currentColor">
99
+ <circle cx="5" cy="12" r="1.75"></circle>
100
+ <circle cx="12" cy="12" r="1.75"></circle>
101
+ <circle cx="19" cy="12" r="1.75"></circle>
102
+ </svg>
99
103
  <span class="frame-breadcrumb__sr-only">{{ label() }}</span>
100
104
  `, isInline: true });
101
105
  }
@@ -108,7 +112,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
108
112
  'role': 'presentation',
109
113
  },
110
114
  template: `
111
- <span aria-hidden="true">...</span>
115
+ <svg aria-hidden="true" viewBox="0 0 24 24" fill="currentColor">
116
+ <circle cx="5" cy="12" r="1.75"></circle>
117
+ <circle cx="12" cy="12" r="1.75"></circle>
118
+ <circle cx="19" cy="12" r="1.75"></circle>
119
+ </svg>
112
120
  <span class="frame-breadcrumb__sr-only">{{ label() }}</span>
113
121
  `,
114
122
  }]
@@ -1 +1 @@
1
- {"version":3,"file":"frame-ui-ng-components-breadcrumb.mjs","sources":["../../../projects/components/breadcrumb/src/breadcrumb.ts","../../../projects/components/breadcrumb/breadcrumb.module.ts","../../../projects/components/breadcrumb/frame-ui-ng-components-breadcrumb.ts"],"sourcesContent":["import { Component, Directive, input } from '@angular/core';\r\n\r\n/** Breadcrumb navigation landmark. */\r\n@Directive({\r\n selector: 'nav[frBreadcrumb], [frBreadcrumb]',\r\n host: {\r\n class: 'frame-breadcrumb',\r\n '[attr.aria-label]': 'ariaLabel()',\r\n },\r\n})\r\nexport class FrBreadcrumb {\r\n readonly ariaLabel = input('breadcrumb', { alias: 'aria-label' });\r\n}\r\n\r\n/** List slot for breadcrumb. */\r\n@Directive({\r\n selector: 'ol[frBreadcrumbList], ul[frBreadcrumbList], [frBreadcrumbList]',\r\n host: {\r\n class: 'frame-breadcrumb__list',\r\n },\r\n})\r\nexport class FrBreadcrumbList {}\r\n\r\n/** Item slot for breadcrumb. */\r\n@Directive({\r\n selector: 'li[frBreadcrumbItem], [frBreadcrumbItem]',\r\n host: {\r\n class: 'frame-breadcrumb__item',\r\n },\r\n})\r\nexport class FrBreadcrumbItem {}\r\n\r\n/** Navigable link inside a breadcrumb item. */\r\n@Directive({\r\n selector: 'a[frBreadcrumbLink], [frBreadcrumbLink]',\r\n host: {\r\n class: 'frame-breadcrumb__link',\r\n },\r\n})\r\nexport class FrBreadcrumbLink {}\r\n\r\n/** Page slot for breadcrumb. */\r\n@Directive({\r\n selector: '[frBreadcrumbPage]',\r\n host: {\r\n class: 'frame-breadcrumb__page',\r\n 'aria-current': 'page',\r\n },\r\n})\r\nexport class FrBreadcrumbPage {}\r\n\r\n/** Separator slot for breadcrumb. */\r\n@Directive({\r\n selector: '[frBreadcrumbSeparator]',\r\n host: {\r\n class: 'frame-breadcrumb__separator',\r\n 'aria-hidden': 'true',\r\n 'role': 'presentation',\r\n },\r\n})\r\nexport class FrBreadcrumbSeparator {}\r\n\r\n/** Ellipsis slot for breadcrumb. */\r\n@Component({\r\n selector: '[frBreadcrumbEllipsis], frame-breadcrumb-ellipsis',\r\n host: {\r\n class: 'frame-breadcrumb__ellipsis',\r\n 'role': 'presentation',\r\n },\r\n template: `\r\n <span aria-hidden=\"true\">...</span>\r\n <span class=\"frame-breadcrumb__sr-only\">{{ label() }}</span>\r\n `,\r\n})\r\nexport class FrBreadcrumbEllipsis {\r\n readonly label = input('More pages');\r\n}\r\n\r\n","import { NgModule } from '@angular/core';\nimport {\n FrBreadcrumb,\n FrBreadcrumbEllipsis,\n FrBreadcrumbItem,\n FrBreadcrumbLink,\n FrBreadcrumbList,\n FrBreadcrumbPage,\n FrBreadcrumbSeparator,\n} from './src/breadcrumb';\n\n@NgModule({\n imports: [\n FrBreadcrumb,\n FrBreadcrumbEllipsis,\n FrBreadcrumbItem,\n FrBreadcrumbLink,\n FrBreadcrumbList,\n FrBreadcrumbPage,\n FrBreadcrumbSeparator,\n ],\n exports: [\n FrBreadcrumb,\n FrBreadcrumbEllipsis,\n FrBreadcrumbItem,\n FrBreadcrumbLink,\n FrBreadcrumbList,\n FrBreadcrumbPage,\n FrBreadcrumbSeparator,\n ],\n})\nexport class FrBreadcrumbModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frame-ui-ng-components-breadcrumb.mjs","sources":["../../../projects/components/breadcrumb/src/breadcrumb.ts","../../../projects/components/breadcrumb/breadcrumb.module.ts","../../../projects/components/breadcrumb/frame-ui-ng-components-breadcrumb.ts"],"sourcesContent":["import { Component, Directive, input } from '@angular/core';\r\n\r\n/** Breadcrumb navigation landmark. */\r\n@Directive({\r\n selector: 'nav[frBreadcrumb], [frBreadcrumb]',\r\n host: {\r\n class: 'frame-breadcrumb',\r\n '[attr.aria-label]': 'ariaLabel()',\r\n },\r\n})\r\nexport class FrBreadcrumb {\r\n readonly ariaLabel = input('breadcrumb', { alias: 'aria-label' });\r\n}\r\n\r\n/** List slot for breadcrumb. */\r\n@Directive({\r\n selector: 'ol[frBreadcrumbList], ul[frBreadcrumbList], [frBreadcrumbList]',\r\n host: {\r\n class: 'frame-breadcrumb__list',\r\n },\r\n})\r\nexport class FrBreadcrumbList {}\r\n\r\n/** Item slot for breadcrumb. */\r\n@Directive({\r\n selector: 'li[frBreadcrumbItem], [frBreadcrumbItem]',\r\n host: {\r\n class: 'frame-breadcrumb__item',\r\n },\r\n})\r\nexport class FrBreadcrumbItem {}\r\n\r\n/** Navigable link inside a breadcrumb item. */\r\n@Directive({\r\n selector: 'a[frBreadcrumbLink], [frBreadcrumbLink]',\r\n host: {\r\n class: 'frame-breadcrumb__link',\r\n },\r\n})\r\nexport class FrBreadcrumbLink {}\r\n\r\n/** Page slot for breadcrumb. */\r\n@Directive({\r\n selector: '[frBreadcrumbPage]',\r\n host: {\r\n class: 'frame-breadcrumb__page',\r\n 'aria-current': 'page',\r\n },\r\n})\r\nexport class FrBreadcrumbPage {}\r\n\r\n/** Separator slot for breadcrumb. */\r\n@Directive({\r\n selector: '[frBreadcrumbSeparator]',\r\n host: {\r\n class: 'frame-breadcrumb__separator',\r\n 'aria-hidden': 'true',\r\n 'role': 'presentation',\r\n },\r\n})\r\nexport class FrBreadcrumbSeparator {}\r\n\r\n/** Ellipsis slot for breadcrumb. */\r\n@Component({\r\n selector: '[frBreadcrumbEllipsis], frame-breadcrumb-ellipsis',\r\n host: {\r\n class: 'frame-breadcrumb__ellipsis',\r\n 'role': 'presentation',\r\n },\r\n template: `\r\n <svg aria-hidden=\"true\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <circle cx=\"5\" cy=\"12\" r=\"1.75\"></circle>\r\n <circle cx=\"12\" cy=\"12\" r=\"1.75\"></circle>\r\n <circle cx=\"19\" cy=\"12\" r=\"1.75\"></circle>\r\n </svg>\r\n <span class=\"frame-breadcrumb__sr-only\">{{ label() }}</span>\r\n `,\r\n})\r\nexport class FrBreadcrumbEllipsis {\r\n readonly label = input('More pages');\r\n}\r\n\r\n","import { NgModule } from '@angular/core';\nimport {\n FrBreadcrumb,\n FrBreadcrumbEllipsis,\n FrBreadcrumbItem,\n FrBreadcrumbLink,\n FrBreadcrumbList,\n FrBreadcrumbPage,\n FrBreadcrumbSeparator,\n} from './src/breadcrumb';\n\n@NgModule({\n imports: [\n FrBreadcrumb,\n FrBreadcrumbEllipsis,\n FrBreadcrumbItem,\n FrBreadcrumbLink,\n FrBreadcrumbList,\n FrBreadcrumbPage,\n FrBreadcrumbSeparator,\n ],\n exports: [\n FrBreadcrumb,\n FrBreadcrumbEllipsis,\n FrBreadcrumbItem,\n FrBreadcrumbLink,\n FrBreadcrumbList,\n FrBreadcrumbPage,\n FrBreadcrumbSeparator,\n ],\n})\nexport class FrBreadcrumbModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -6,14 +6,14 @@ const FR_BUTTON_GROUP_ORIENTATIONS = ['horizontal', 'vertical'];
6
6
  class FrButtonGroup {
7
7
  orientation = input('horizontal', ...(ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []));
8
8
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrButtonGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive });
9
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.16", type: FrButtonGroup, isStandalone: true, selector: "[frButtonGroup], frame-button-group", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "group" }, properties: { "attr.data-orientation": "orientation()" }, classAttribute: "frame-button-group" }, ngImport: i0 });
9
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.16", type: FrButtonGroup, isStandalone: true, selector: "[frButtonGroup], frame-button-group", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "group" }, properties: { "attr.data-orientation": "orientation()" }, classAttribute: "frame-button-group frame-corner-handles" }, ngImport: i0 });
10
10
  }
11
11
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrButtonGroup, decorators: [{
12
12
  type: Directive,
13
13
  args: [{
14
14
  selector: '[frButtonGroup], frame-button-group',
15
15
  host: {
16
- class: 'frame-button-group',
16
+ class: 'frame-button-group frame-corner-handles',
17
17
  '[attr.data-orientation]': 'orientation()',
18
18
  role: 'group',
19
19
  },
@@ -1 +1 @@
1
- {"version":3,"file":"frame-ui-ng-components-button-group.mjs","sources":["../../../projects/components/button-group/src/button-group.ts","../../../projects/components/button-group/button-group.module.ts","../../../projects/components/button-group/frame-ui-ng-components-button-group.ts"],"sourcesContent":["import { Directive, input } from '@angular/core';\r\n\r\nexport const FR_BUTTON_GROUP_ORIENTATIONS = ['horizontal', 'vertical'] as const;\r\nexport type FrButtonGroupOrientation = (typeof FR_BUTTON_GROUP_ORIENTATIONS)[number];\r\n\r\n/** Groups related buttons with shared orientation. */\r\n@Directive({\r\n selector: '[frButtonGroup], frame-button-group',\r\n host: {\r\n class: 'frame-button-group',\r\n '[attr.data-orientation]': 'orientation()',\r\n role: 'group',\r\n },\r\n})\r\nexport class FrButtonGroup {\r\n readonly orientation = input<FrButtonGroupOrientation>('horizontal');\r\n}\r\n","import { NgModule } from '@angular/core';\nimport {\n FrButtonGroup,\n} from './src/button-group';\n\n@NgModule({\n imports: [\n FrButtonGroup,\n ],\n exports: [\n FrButtonGroup,\n ],\n})\nexport class FrButtonGroupModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAEa,4BAA4B,GAAG,CAAC,YAAY,EAAE,UAAU;AAGrE;MASa,aAAa,CAAA;AACf,IAAA,WAAW,GAAG,KAAK,CAA2B,YAAY,kFAAC;wGADzD,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qCAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,EAAA,uBAAA,EAAA,eAAA,EAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBARzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qCAAqC;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,oBAAoB;AAC3B,wBAAA,yBAAyB,EAAE,eAAe;AAC1C,wBAAA,IAAI,EAAE,OAAO;AACd,qBAAA;AACF,iBAAA;;;MCAY,mBAAmB,CAAA;wGAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;yGAAnB,mBAAmB,EAAA,OAAA,EAAA,CAN5B,aAAa,CAAA,EAAA,OAAA,EAAA,CAGb,aAAa,CAAA,EAAA,CAAA;yGAGJ,mBAAmB,EAAA,CAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAR/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,aAAa;AACd,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,aAAa;AACd,qBAAA;AACF,iBAAA;;;ACZD;;AAEG;;;;"}
1
+ {"version":3,"file":"frame-ui-ng-components-button-group.mjs","sources":["../../../projects/components/button-group/src/button-group.ts","../../../projects/components/button-group/button-group.module.ts","../../../projects/components/button-group/frame-ui-ng-components-button-group.ts"],"sourcesContent":["import { Directive, input } from '@angular/core';\r\n\r\nexport const FR_BUTTON_GROUP_ORIENTATIONS = ['horizontal', 'vertical'] as const;\r\nexport type FrButtonGroupOrientation = (typeof FR_BUTTON_GROUP_ORIENTATIONS)[number];\r\n\r\n/** Groups related buttons with shared orientation. */\r\n@Directive({\r\n selector: '[frButtonGroup], frame-button-group',\r\n host: {\r\n class: 'frame-button-group frame-corner-handles',\r\n '[attr.data-orientation]': 'orientation()',\r\n role: 'group',\r\n },\r\n})\r\nexport class FrButtonGroup {\r\n readonly orientation = input<FrButtonGroupOrientation>('horizontal');\r\n}\r\n","import { NgModule } from '@angular/core';\nimport {\n FrButtonGroup,\n} from './src/button-group';\n\n@NgModule({\n imports: [\n FrButtonGroup,\n ],\n exports: [\n FrButtonGroup,\n ],\n})\nexport class FrButtonGroupModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAEa,4BAA4B,GAAG,CAAC,YAAY,EAAE,UAAU;AAGrE;MASa,aAAa,CAAA;AACf,IAAA,WAAW,GAAG,KAAK,CAA2B,YAAY,kFAAC;wGADzD,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qCAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,EAAA,uBAAA,EAAA,eAAA,EAAA,EAAA,cAAA,EAAA,yCAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBARzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qCAAqC;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,yCAAyC;AAChD,wBAAA,yBAAyB,EAAE,eAAe;AAC1C,wBAAA,IAAI,EAAE,OAAO;AACd,qBAAA;AACF,iBAAA;;;MCAY,mBAAmB,CAAA;wGAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;yGAAnB,mBAAmB,EAAA,OAAA,EAAA,CAN5B,aAAa,CAAA,EAAA,OAAA,EAAA,CAGb,aAAa,CAAA,EAAA,CAAA;yGAGJ,mBAAmB,EAAA,CAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAR/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,aAAa;AACd,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,aAAa;AACd,qBAAA;AACF,iBAAA;;;ACZD;;AAEG;;;;"}
@@ -21,14 +21,14 @@ class FrButton {
21
21
  hasCustomLoadingIndicator = computed(() => !!this.loadingIndicator() || !!this.spinnerIndicator(), ...(ngDevMode ? [{ debugName: "hasCustomLoadingIndicator" }] : /* istanbul ignore next */ []));
22
22
  isUnavailable = computed(() => this.disabled() || this.loading(), ...(ngDevMode ? [{ debugName: "isUnavailable" }] : /* istanbul ignore next */ []));
23
23
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrButton, deps: [], target: i0.ɵɵFactoryTarget.Directive });
24
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "21.2.16", type: FrButton, isStandalone: true, selector: "a[frButton], button[frButton]", inputs: { appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, loadingDisplay: { classPropertyName: "loadingDisplay", publicName: "loadingDisplay", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-appearance": "appearance()", "attr.data-disabled": "disabled() ? \"\" : null", "attr.data-has-custom-loading": "hasCustomLoadingIndicator() ? \"\" : null", "attr.data-loading": "loading() ? \"\" : null", "attr.data-loading-display": "loadingDisplay()", "attr.data-size": "size()", "attr.aria-busy": "loading() ? \"true\" : null", "attr.aria-disabled": "disabled() ? \"true\" : null", "attr.disabled": "isUnavailable() ? \"\" : null", "class.frame-button-disabled": "isUnavailable()", "class.frame-button-loading": "loading()" }, classAttribute: "frame-button" }, queries: [{ propertyName: "loadingIndicator", first: true, predicate: FrButtonLoading, descendants: true, isSignal: true }, { propertyName: "spinnerIndicator", first: true, predicate: FrSpinner, descendants: true, isSignal: true }], ngImport: i0 });
24
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "21.2.16", type: FrButton, isStandalone: true, selector: "a[frButton], button[frButton]", inputs: { appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, loadingDisplay: { classPropertyName: "loadingDisplay", publicName: "loadingDisplay", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-appearance": "appearance()", "attr.data-disabled": "disabled() ? \"\" : null", "attr.data-has-custom-loading": "hasCustomLoadingIndicator() ? \"\" : null", "attr.data-loading": "loading() ? \"\" : null", "attr.data-loading-display": "loadingDisplay()", "attr.data-size": "size()", "attr.aria-busy": "loading() ? \"true\" : null", "attr.aria-disabled": "disabled() ? \"true\" : null", "attr.disabled": "isUnavailable() ? \"\" : null", "class.frame-button-disabled": "isUnavailable()", "class.frame-button-loading": "loading()" }, classAttribute: "frame-button frame-corner-handles" }, queries: [{ propertyName: "loadingIndicator", first: true, predicate: FrButtonLoading, descendants: true, isSignal: true }, { propertyName: "spinnerIndicator", first: true, predicate: FrSpinner, descendants: true, isSignal: true }], ngImport: i0 });
25
25
  }
26
26
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrButton, decorators: [{
27
27
  type: Directive,
28
28
  args: [{
29
29
  selector: 'a[frButton], button[frButton]',
30
30
  host: {
31
- class: 'frame-button',
31
+ class: 'frame-button frame-corner-handles',
32
32
  '[attr.data-appearance]': 'appearance()',
33
33
  '[attr.data-disabled]': 'disabled() ? "" : null',
34
34
  '[attr.data-has-custom-loading]': 'hasCustomLoadingIndicator() ? "" : null',
@@ -1 +1 @@
1
- {"version":3,"file":"frame-ui-ng-components-button.mjs","sources":["../../../projects/components/button/src/button.ts","../../../projects/components/button/button.module.ts","../../../projects/components/button/frame-ui-ng-components-button.ts"],"sourcesContent":["import { Directive, booleanAttribute, computed, contentChild, input } from '@angular/core';\r\nimport { FrSpinner } from '@frame-ui-ng/components/spinner';\r\n\r\nexport const FR_BUTTON_APPEARANCES = [\r\n 'ghost',\r\n 'outline',\r\n 'primary',\r\n] as const;\r\nexport const FR_BUTTON_LOADING_DISPLAYS = ['inline', 'replace'] as const;\r\nexport const FR_BUTTON_SIZES = ['sm', 'md', 'lg'] as const;\r\n\r\nexport type FrButtonAppearance = (typeof FR_BUTTON_APPEARANCES)[number];\r\nexport type FrButtonLoadingDisplay = (typeof FR_BUTTON_LOADING_DISPLAYS)[number];\r\nexport type FrButtonSize = (typeof FR_BUTTON_SIZES)[number];\r\n\r\n/** Button host with FrameUI size and appearance variants. */\r\n@Directive({\r\n selector: 'a[frButton], button[frButton]',\r\n host: {\r\n class: 'frame-button',\r\n '[attr.data-appearance]': 'appearance()',\r\n '[attr.data-disabled]': 'disabled() ? \"\" : null',\r\n '[attr.data-has-custom-loading]': 'hasCustomLoadingIndicator() ? \"\" : null',\r\n '[attr.data-loading]': 'loading() ? \"\" : null',\r\n '[attr.data-loading-display]': 'loadingDisplay()',\r\n '[attr.data-size]': 'size()',\r\n '[attr.aria-busy]': 'loading() ? \"true\" : null',\r\n '[attr.aria-disabled]': 'disabled() ? \"true\" : null',\r\n '[attr.disabled]': 'isUnavailable() ? \"\" : null',\r\n '[class.frame-button-disabled]': 'isUnavailable()',\r\n '[class.frame-button-loading]': 'loading()',\r\n },\r\n})\r\nexport class FrButton {\r\n private readonly loadingIndicator = contentChild(FrButtonLoading);\r\n private readonly spinnerIndicator = contentChild(FrSpinner);\r\n\r\n readonly appearance = input<FrButtonAppearance>('primary');\r\n readonly disabled = input(false, { transform: booleanAttribute });\r\n readonly loading = input(false, { transform: booleanAttribute });\r\n readonly loadingDisplay = input<FrButtonLoadingDisplay>('replace');\r\n readonly size = input<FrButtonSize>('md');\r\n protected readonly hasCustomLoadingIndicator = computed(\r\n () => !!this.loadingIndicator() || !!this.spinnerIndicator(),\r\n );\r\n protected readonly isUnavailable = computed(() => this.disabled() || this.loading());\r\n}\r\n\r\n/** Icon-only button host with square sizing. */\r\n@Directive({\r\n selector: 'a[frIconButton], button[frIconButton]',\r\n hostDirectives: [\r\n {\r\n directive: FrButton,\r\n inputs: ['appearance', 'disabled', 'loading', 'loadingDisplay', 'size'],\r\n },\r\n ],\r\n host: {\r\n class: 'frame-icon-button',\r\n '[attr.data-icon-button]': '\"\"',\r\n '[attr.aria-label]': 'ariaLabel()',\r\n },\r\n})\r\nexport class FrIconButton {\r\n readonly ariaLabel = input<string | null>(null, { alias: 'aria-label' });\r\n}\r\n\r\n/** Icon slot for button. */\r\n@Directive({\r\n selector: '[frButtonIcon]',\r\n host: {\r\n class: 'frame-button__icon',\r\n 'aria-hidden': 'true',\r\n },\r\n})\r\nexport class FrButtonIcon {}\r\n\r\n/** Label slot for button. */\r\n@Directive({\r\n selector: '[frButtonLabel]',\r\n host: {\r\n class: 'frame-button__label',\r\n },\r\n})\r\nexport class FrButtonLabel {}\r\n\r\n/** Loading indicator slot for button. */\r\n@Directive({\r\n selector: '[frButtonLoading]',\r\n host: {\r\n class: 'frame-button__loading',\r\n 'aria-hidden': 'true',\r\n },\r\n})\r\nexport class FrButtonLoading {}\r\n\r\n","import { NgModule } from '@angular/core';\nimport {\n FrButton,\n FrButtonIcon,\n FrButtonLabel,\n FrButtonLoading,\n FrIconButton,\n} from './src/button';\n\n@NgModule({\n imports: [\n FrButton,\n FrButtonIcon,\n FrButtonLabel,\n FrButtonLoading,\n FrIconButton,\n ],\n exports: [\n FrButton,\n FrButtonIcon,\n FrButtonLabel,\n FrButtonLoading,\n FrIconButton,\n ],\n})\nexport class FrButtonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frame-ui-ng-components-button.mjs","sources":["../../../projects/components/button/src/button.ts","../../../projects/components/button/button.module.ts","../../../projects/components/button/frame-ui-ng-components-button.ts"],"sourcesContent":["import { Directive, booleanAttribute, computed, contentChild, input } from '@angular/core';\r\nimport { FrSpinner } from '@frame-ui-ng/components/spinner';\r\n\r\nexport const FR_BUTTON_APPEARANCES = [\r\n 'ghost',\r\n 'outline',\r\n 'primary',\r\n] as const;\r\nexport const FR_BUTTON_LOADING_DISPLAYS = ['inline', 'replace'] as const;\r\nexport const FR_BUTTON_SIZES = ['sm', 'md', 'lg'] as const;\r\n\r\nexport type FrButtonAppearance = (typeof FR_BUTTON_APPEARANCES)[number];\r\nexport type FrButtonLoadingDisplay = (typeof FR_BUTTON_LOADING_DISPLAYS)[number];\r\nexport type FrButtonSize = (typeof FR_BUTTON_SIZES)[number];\r\n\r\n/** Button host with FrameUI size and appearance variants. */\r\n@Directive({\r\n selector: 'a[frButton], button[frButton]',\r\n host: {\r\n class: 'frame-button frame-corner-handles',\r\n '[attr.data-appearance]': 'appearance()',\r\n '[attr.data-disabled]': 'disabled() ? \"\" : null',\r\n '[attr.data-has-custom-loading]': 'hasCustomLoadingIndicator() ? \"\" : null',\r\n '[attr.data-loading]': 'loading() ? \"\" : null',\r\n '[attr.data-loading-display]': 'loadingDisplay()',\r\n '[attr.data-size]': 'size()',\r\n '[attr.aria-busy]': 'loading() ? \"true\" : null',\r\n '[attr.aria-disabled]': 'disabled() ? \"true\" : null',\r\n '[attr.disabled]': 'isUnavailable() ? \"\" : null',\r\n '[class.frame-button-disabled]': 'isUnavailable()',\r\n '[class.frame-button-loading]': 'loading()',\r\n },\r\n})\r\nexport class FrButton {\r\n private readonly loadingIndicator = contentChild(FrButtonLoading);\r\n private readonly spinnerIndicator = contentChild(FrSpinner);\r\n\r\n readonly appearance = input<FrButtonAppearance>('primary');\r\n readonly disabled = input(false, { transform: booleanAttribute });\r\n readonly loading = input(false, { transform: booleanAttribute });\r\n readonly loadingDisplay = input<FrButtonLoadingDisplay>('replace');\r\n readonly size = input<FrButtonSize>('md');\r\n protected readonly hasCustomLoadingIndicator = computed(\r\n () => !!this.loadingIndicator() || !!this.spinnerIndicator(),\r\n );\r\n protected readonly isUnavailable = computed(() => this.disabled() || this.loading());\r\n}\r\n\r\n/** Icon-only button host with square sizing. */\r\n@Directive({\r\n selector: 'a[frIconButton], button[frIconButton]',\r\n hostDirectives: [\r\n {\r\n directive: FrButton,\r\n inputs: ['appearance', 'disabled', 'loading', 'loadingDisplay', 'size'],\r\n },\r\n ],\r\n host: {\r\n class: 'frame-icon-button',\r\n '[attr.data-icon-button]': '\"\"',\r\n '[attr.aria-label]': 'ariaLabel()',\r\n },\r\n})\r\nexport class FrIconButton {\r\n readonly ariaLabel = input<string | null>(null, { alias: 'aria-label' });\r\n}\r\n\r\n/** Icon slot for button. */\r\n@Directive({\r\n selector: '[frButtonIcon]',\r\n host: {\r\n class: 'frame-button__icon',\r\n 'aria-hidden': 'true',\r\n },\r\n})\r\nexport class FrButtonIcon {}\r\n\r\n/** Label slot for button. */\r\n@Directive({\r\n selector: '[frButtonLabel]',\r\n host: {\r\n class: 'frame-button__label',\r\n },\r\n})\r\nexport class FrButtonLabel {}\r\n\r\n/** Loading indicator slot for button. */\r\n@Directive({\r\n selector: '[frButtonLoading]',\r\n host: {\r\n class: 'frame-button__loading',\r\n 'aria-hidden': 'true',\r\n },\r\n})\r\nexport class FrButtonLoading {}\r\n\r\n","import { NgModule } from '@angular/core';\nimport {\n FrButton,\n FrButtonIcon,\n FrButtonLabel,\n FrButtonLoading,\n FrIconButton,\n} from './src/button';\n\n@NgModule({\n imports: [\n FrButton,\n FrButtonIcon,\n FrButtonLabel,\n FrButtonLoading,\n FrIconButton,\n ],\n exports: [\n FrButton,\n FrButtonIcon,\n FrButtonLabel,\n FrButtonLoading,\n FrIconButton,\n ],\n})\nexport class FrButtonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -2,6 +2,8 @@ import { NgTemplateOutlet } from '@angular/common';
2
2
  import * as i0 from '@angular/core';
3
3
  import { forwardRef, input, booleanAttribute, output, signal, inject, ElementRef, computed, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
4
4
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
5
+ import * as i1 from '@frame-ui-ng/components/select';
6
+ import { FrSelectModule } from '@frame-ui-ng/components/select';
5
7
 
6
8
  const VALUE_ACCESSOR = {
7
9
  provide: NG_VALUE_ACCESSOR,
@@ -28,8 +30,6 @@ class FrCalendar {
28
30
  cellTemplate = input(null, ...(ngDevMode ? [{ debugName: "cellTemplate" }] : /* istanbul ignore next */ []));
29
31
  previousMonthTemplate = input(null, ...(ngDevMode ? [{ debugName: "previousMonthTemplate" }] : /* istanbul ignore next */ []));
30
32
  nextMonthTemplate = input(null, ...(ngDevMode ? [{ debugName: "nextMonthTemplate" }] : /* istanbul ignore next */ []));
31
- previousMonthIcon = input('‹', ...(ngDevMode ? [{ debugName: "previousMonthIcon" }] : /* istanbul ignore next */ []));
32
- nextMonthIcon = input('›', ...(ngDevMode ? [{ debugName: "nextMonthIcon" }] : /* istanbul ignore next */ []));
33
33
  previousMonthLabel = input('Previous month', ...(ngDevMode ? [{ debugName: "previousMonthLabel" }] : /* istanbul ignore next */ []));
34
34
  nextMonthLabel = input('Next month', ...(ngDevMode ? [{ debugName: "nextMonthLabel" }] : /* istanbul ignore next */ []));
35
35
  month = input(undefined, ...(ngDevMode ? [{ debugName: "month" }] : /* istanbul ignore next */ []));
@@ -42,6 +42,8 @@ class FrCalendar {
42
42
  cvaDisabled = signal(false, ...(ngDevMode ? [{ debugName: "cvaDisabled" }] : /* istanbul ignore next */ []));
43
43
  host = inject((ElementRef));
44
44
  currentMonth = computed(() => startOfMonth(this.navigatedMonth() ?? this.month() ?? new Date()), ...(ngDevMode ? [{ debugName: "currentMonth" }] : /* istanbul ignore next */ []));
45
+ currentMonthValue = computed(() => String(this.currentMonth().getMonth()), ...(ngDevMode ? [{ debugName: "currentMonthValue" }] : /* istanbul ignore next */ []));
46
+ currentYearValue = computed(() => String(this.currentMonth().getFullYear()), ...(ngDevMode ? [{ debugName: "currentYearValue" }] : /* istanbul ignore next */ []));
45
47
  isDisabled = computed(() => this.disabled() || this.cvaDisabled(), ...(ngDevMode ? [{ debugName: "isDisabled" }] : /* istanbul ignore next */ []));
46
48
  value = computed(() => {
47
49
  const selected = this.selected();
@@ -49,13 +51,13 @@ class FrCalendar {
49
51
  }, ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
50
52
  weekdayLabels = computed(() => buildWeekdayLabels(this.locale(), this.firstDayOfWeek(), this.timeZone()), ...(ngDevMode ? [{ debugName: "weekdayLabels" }] : /* istanbul ignore next */ []));
51
53
  monthOptions = computed(() => Array.from({ length: 12 }, (_, value) => ({
52
- value,
54
+ value: String(value),
53
55
  label: new Intl.DateTimeFormat(this.locale(), {
54
56
  month: 'short',
55
57
  timeZone: this.timeZone(),
56
58
  }).format(new Date(2026, value, 1)),
57
59
  })), ...(ngDevMode ? [{ debugName: "monthOptions" }] : /* istanbul ignore next */ []));
58
- yearOptions = computed(() => Array.from({ length: Math.max(0, this.toYear() - this.fromYear() + 1) }, (_, index) => this.fromYear() + index), ...(ngDevMode ? [{ debugName: "yearOptions" }] : /* istanbul ignore next */ []));
60
+ yearOptions = computed(() => Array.from({ length: Math.max(0, this.toYear() - this.fromYear() + 1) }, (_, index) => String(this.fromYear() + index)), ...(ngDevMode ? [{ debugName: "yearOptions" }] : /* istanbul ignore next */ []));
59
61
  months = computed(() => Array.from({ length: Math.max(1, this.numberOfMonths()) }, (_, index) => this.buildMonth(addMonths(this.currentMonth(), index))), ...(ngDevMode ? [{ debugName: "months" }] : /* istanbul ignore next */ []));
60
62
  activeDate = computed(() => this.resolveActiveDate(), ...(ngDevMode ? [{ debugName: "activeDate" }] : /* istanbul ignore next */ []));
61
63
  hasDateLabels = computed(() => Object.keys(this.dateLabels()).length > 0, ...(ngDevMode ? [{ debugName: "hasDateLabels" }] : /* istanbul ignore next */ []));
@@ -86,10 +88,16 @@ class FrCalendar {
86
88
  this.updateMonth(addMonths(this.currentMonth(), 1));
87
89
  }
88
90
  setMonth(value) {
91
+ if (value === null) {
92
+ return;
93
+ }
89
94
  const month = new Date(this.currentMonth().getFullYear(), Number(value), 1);
90
95
  this.updateMonth(month);
91
96
  }
92
97
  setYear(value) {
98
+ if (value === null) {
99
+ return;
100
+ }
93
101
  const month = new Date(Number(value), this.currentMonth().getMonth(), 1);
94
102
  this.updateMonth(month);
95
103
  }
@@ -255,7 +263,7 @@ class FrCalendar {
255
263
  };
256
264
  }
257
265
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrCalendar, deps: [], target: i0.ɵɵFactoryTarget.Component });
258
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.16", type: FrCalendar, isStandalone: true, selector: "frame-calendar", inputs: { mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, captionLayout: { classPropertyName: "captionLayout", publicName: "captionLayout", isSignal: true, isRequired: false, transformFunction: null }, numberOfMonths: { classPropertyName: "numberOfMonths", publicName: "numberOfMonths", isSignal: true, isRequired: false, transformFunction: null }, firstDayOfWeek: { classPropertyName: "firstDayOfWeek", publicName: "firstDayOfWeek", isSignal: true, isRequired: false, transformFunction: null }, locale: { classPropertyName: "locale", publicName: "locale", isSignal: true, isRequired: false, transformFunction: null }, timeZone: { classPropertyName: "timeZone", publicName: "timeZone", isSignal: true, isRequired: false, transformFunction: null }, dir: { classPropertyName: "dir", publicName: "dir", isSignal: true, isRequired: false, transformFunction: null }, fromYear: { classPropertyName: "fromYear", publicName: "fromYear", isSignal: true, isRequired: false, transformFunction: null }, toYear: { classPropertyName: "toYear", publicName: "toYear", isSignal: true, isRequired: false, transformFunction: null }, showOutsideDays: { classPropertyName: "showOutsideDays", publicName: "showOutsideDays", isSignal: true, isRequired: false, transformFunction: null }, showWeekNumber: { classPropertyName: "showWeekNumber", publicName: "showWeekNumber", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, disabledDates: { classPropertyName: "disabledDates", publicName: "disabledDates", isSignal: true, isRequired: false, transformFunction: null }, dateLabels: { classPropertyName: "dateLabels", publicName: "dateLabels", isSignal: true, isRequired: false, transformFunction: null }, disabledMatcher: { classPropertyName: "disabledMatcher", publicName: "disabledMatcher", isSignal: true, isRequired: false, transformFunction: null }, cellTemplate: { classPropertyName: "cellTemplate", publicName: "cellTemplate", isSignal: true, isRequired: false, transformFunction: null }, previousMonthTemplate: { classPropertyName: "previousMonthTemplate", publicName: "previousMonthTemplate", isSignal: true, isRequired: false, transformFunction: null }, nextMonthTemplate: { classPropertyName: "nextMonthTemplate", publicName: "nextMonthTemplate", isSignal: true, isRequired: false, transformFunction: null }, previousMonthIcon: { classPropertyName: "previousMonthIcon", publicName: "previousMonthIcon", isSignal: true, isRequired: false, transformFunction: null }, nextMonthIcon: { classPropertyName: "nextMonthIcon", publicName: "nextMonthIcon", isSignal: true, isRequired: false, transformFunction: null }, previousMonthLabel: { classPropertyName: "previousMonthLabel", publicName: "previousMonthLabel", isSignal: true, isRequired: false, transformFunction: null }, nextMonthLabel: { classPropertyName: "nextMonthLabel", publicName: "nextMonthLabel", isSignal: true, isRequired: false, transformFunction: null }, month: { classPropertyName: "month", publicName: "month", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedChange: "selectedChange", monthChange: "monthChange" }, host: { properties: { "attr.data-mode": "mode()", "attr.data-caption-layout": "captionLayout()", "attr.data-disabled": "isDisabled() ? \"\" : null", "attr.data-week-number": "showWeekNumber() ? \"\" : null", "attr.data-date-labels": "hasDateLabels() ? \"\" : null", "attr.dir": "dir()" }, classAttribute: "frame-calendar" }, providers: [VALUE_ACCESSOR], ngImport: i0, template: `
266
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.16", type: FrCalendar, isStandalone: true, selector: "frame-calendar", inputs: { mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, captionLayout: { classPropertyName: "captionLayout", publicName: "captionLayout", isSignal: true, isRequired: false, transformFunction: null }, numberOfMonths: { classPropertyName: "numberOfMonths", publicName: "numberOfMonths", isSignal: true, isRequired: false, transformFunction: null }, firstDayOfWeek: { classPropertyName: "firstDayOfWeek", publicName: "firstDayOfWeek", isSignal: true, isRequired: false, transformFunction: null }, locale: { classPropertyName: "locale", publicName: "locale", isSignal: true, isRequired: false, transformFunction: null }, timeZone: { classPropertyName: "timeZone", publicName: "timeZone", isSignal: true, isRequired: false, transformFunction: null }, dir: { classPropertyName: "dir", publicName: "dir", isSignal: true, isRequired: false, transformFunction: null }, fromYear: { classPropertyName: "fromYear", publicName: "fromYear", isSignal: true, isRequired: false, transformFunction: null }, toYear: { classPropertyName: "toYear", publicName: "toYear", isSignal: true, isRequired: false, transformFunction: null }, showOutsideDays: { classPropertyName: "showOutsideDays", publicName: "showOutsideDays", isSignal: true, isRequired: false, transformFunction: null }, showWeekNumber: { classPropertyName: "showWeekNumber", publicName: "showWeekNumber", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, disabledDates: { classPropertyName: "disabledDates", publicName: "disabledDates", isSignal: true, isRequired: false, transformFunction: null }, dateLabels: { classPropertyName: "dateLabels", publicName: "dateLabels", isSignal: true, isRequired: false, transformFunction: null }, disabledMatcher: { classPropertyName: "disabledMatcher", publicName: "disabledMatcher", isSignal: true, isRequired: false, transformFunction: null }, cellTemplate: { classPropertyName: "cellTemplate", publicName: "cellTemplate", isSignal: true, isRequired: false, transformFunction: null }, previousMonthTemplate: { classPropertyName: "previousMonthTemplate", publicName: "previousMonthTemplate", isSignal: true, isRequired: false, transformFunction: null }, nextMonthTemplate: { classPropertyName: "nextMonthTemplate", publicName: "nextMonthTemplate", isSignal: true, isRequired: false, transformFunction: null }, previousMonthLabel: { classPropertyName: "previousMonthLabel", publicName: "previousMonthLabel", isSignal: true, isRequired: false, transformFunction: null }, nextMonthLabel: { classPropertyName: "nextMonthLabel", publicName: "nextMonthLabel", isSignal: true, isRequired: false, transformFunction: null }, month: { classPropertyName: "month", publicName: "month", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedChange: "selectedChange", monthChange: "monthChange" }, host: { properties: { "attr.data-mode": "mode()", "attr.data-caption-layout": "captionLayout()", "attr.data-disabled": "isDisabled() ? \"\" : null", "attr.data-week-number": "showWeekNumber() ? \"\" : null", "attr.data-date-labels": "hasDateLabels() ? \"\" : null", "attr.dir": "dir()" }, classAttribute: "frame-calendar frame-corner-handles" }, providers: [VALUE_ACCESSOR], ngImport: i0, template: `
259
267
  <div class="frame-calendar__header">
260
268
  <button
261
269
  class="frame-calendar__nav-button"
@@ -267,39 +275,100 @@ class FrCalendar {
267
275
  @if (previousMonthTemplate(); as template) {
268
276
  <ng-container [ngTemplateOutlet]="template" />
269
277
  } @else {
270
- {{ previousMonthIcon() }}
278
+ <svg
279
+ class="frame-calendar__nav-icon"
280
+ aria-hidden="true"
281
+ viewBox="0 0 24 24"
282
+ fill="none"
283
+ stroke="currentColor"
284
+ stroke-width="2"
285
+ stroke-linecap="round"
286
+ stroke-linejoin="round"
287
+ >
288
+ <path d="m15 18-6-6 6-6"></path>
289
+ </svg>
271
290
  }
272
291
  </button>
273
292
 
274
293
  @if (captionLayout() === 'dropdown') {
275
294
  <div class="frame-calendar__caption-controls">
276
- <select
295
+ <button
277
296
  class="frame-calendar__select"
297
+ [frSelect]="monthMenu"
278
298
  [disabled]="isDisabled()"
279
- [value]="currentMonth().getMonth()"
299
+ [value]="currentMonthValue()"
300
+ (valueChange)="setMonth($event)"
301
+ indicatorPosition="end"
280
302
  aria-label="Month"
281
- (change)="setMonth($any($event.target).value)"
303
+ type="button"
282
304
  >
283
- @for (month of monthOptions(); track month.value) {
284
- <option [value]="month.value" [selected]="month.value === currentMonth().getMonth()">
285
- {{ month.label }}
286
- </option>
287
- }
288
- </select>
305
+ <frame-select-value></frame-select-value>
306
+ <span frSelectIcon>
307
+ <svg
308
+ class="frame-calendar__select-icon"
309
+ aria-hidden="true"
310
+ viewBox="0 0 24 24"
311
+ fill="none"
312
+ stroke="currentColor"
313
+ stroke-width="2"
314
+ stroke-linecap="round"
315
+ stroke-linejoin="round"
316
+ >
317
+ <path d="m6 9 6 6 6-6"></path>
318
+ </svg>
319
+ </span>
320
+ </button>
321
+
322
+ <ng-template #monthMenu="frSelectContent" frSelectContent>
323
+ <frame-select-panel>
324
+ <frame-select-group>
325
+ @for (month of monthOptions(); track month.value) {
326
+ <button frSelectItem [value]="month.value" [label]="month.label" type="button">
327
+ {{ month.label }}
328
+ </button>
329
+ }
330
+ </frame-select-group>
331
+ </frame-select-panel>
332
+ </ng-template>
289
333
 
290
- <select
334
+ <button
291
335
  class="frame-calendar__select"
336
+ [frSelect]="yearMenu"
292
337
  [disabled]="isDisabled()"
293
- [value]="currentMonth().getFullYear()"
338
+ [value]="currentYearValue()"
339
+ (valueChange)="setYear($event)"
340
+ indicatorPosition="end"
294
341
  aria-label="Year"
295
- (change)="setYear($any($event.target).value)"
342
+ type="button"
296
343
  >
297
- @for (year of yearOptions(); track year) {
298
- <option [value]="year" [selected]="year === currentMonth().getFullYear()">
299
- {{ year }}
300
- </option>
301
- }
302
- </select>
344
+ <frame-select-value></frame-select-value>
345
+ <span frSelectIcon>
346
+ <svg
347
+ class="frame-calendar__select-icon"
348
+ aria-hidden="true"
349
+ viewBox="0 0 24 24"
350
+ fill="none"
351
+ stroke="currentColor"
352
+ stroke-width="2"
353
+ stroke-linecap="round"
354
+ stroke-linejoin="round"
355
+ >
356
+ <path d="m6 9 6 6 6-6"></path>
357
+ </svg>
358
+ </span>
359
+ </button>
360
+
361
+ <ng-template #yearMenu="frSelectContent" frSelectContent>
362
+ <frame-select-panel>
363
+ <frame-select-group>
364
+ @for (year of yearOptions(); track year) {
365
+ <button frSelectItem [value]="year" [label]="year" type="button">
366
+ {{ year }}
367
+ </button>
368
+ }
369
+ </frame-select-group>
370
+ </frame-select-panel>
371
+ </ng-template>
303
372
  </div>
304
373
  } @else {
305
374
  <div class="frame-calendar__caption" aria-live="polite">
@@ -317,7 +386,18 @@ class FrCalendar {
317
386
  @if (nextMonthTemplate(); as template) {
318
387
  <ng-container [ngTemplateOutlet]="template" />
319
388
  } @else {
320
- {{ nextMonthIcon() }}
389
+ <svg
390
+ class="frame-calendar__nav-icon"
391
+ aria-hidden="true"
392
+ viewBox="0 0 24 24"
393
+ fill="none"
394
+ stroke="currentColor"
395
+ stroke-width="2"
396
+ stroke-linecap="round"
397
+ stroke-linejoin="round"
398
+ >
399
+ <path d="m9 18 6-6-6-6"></path>
400
+ </svg>
321
401
  }
322
402
  </button>
323
403
  </div>
@@ -400,17 +480,17 @@ class FrCalendar {
400
480
  </section>
401
481
  }
402
482
  </div>
403
- `, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
483
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FrSelectModule }, { kind: "directive", type: i1.FrSelect, selector: "button[frSelect]", inputs: ["value", "frSelect", "debugVisible", "disabled", "indicatorPosition", "invalid"], outputs: ["valueChange"] }, { kind: "directive", type: i1.FrSelectContent, selector: "ng-template[frSelectContent]", inputs: ["position"], exportAs: ["frSelectContent"] }, { kind: "directive", type: i1.FrSelectGroup, selector: "[frSelectGroup], frame-select-group" }, { kind: "directive", type: i1.FrSelectIcon, selector: "[frSelectIcon], frame-select-icon", inputs: ["position"] }, { kind: "directive", type: i1.FrSelectItem, selector: "button[frSelectItem]", inputs: ["label", "value"] }, { kind: "directive", type: i1.FrSelectPanel, selector: "[frSelectPanel], frame-select-panel" }, { kind: "directive", type: i1.FrSelectValue, selector: "[frSelectValue], frame-select-value", inputs: ["placeholder"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
404
484
  }
405
485
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrCalendar, decorators: [{
406
486
  type: Component,
407
487
  args: [{
408
488
  selector: 'frame-calendar',
409
- imports: [NgTemplateOutlet],
489
+ imports: [NgTemplateOutlet, FrSelectModule],
410
490
  providers: [VALUE_ACCESSOR],
411
491
  changeDetection: ChangeDetectionStrategy.OnPush,
412
492
  host: {
413
- class: 'frame-calendar',
493
+ class: 'frame-calendar frame-corner-handles',
414
494
  '[attr.data-mode]': 'mode()',
415
495
  '[attr.data-caption-layout]': 'captionLayout()',
416
496
  '[attr.data-disabled]': 'isDisabled() ? "" : null',
@@ -430,39 +510,100 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
430
510
  @if (previousMonthTemplate(); as template) {
431
511
  <ng-container [ngTemplateOutlet]="template" />
432
512
  } @else {
433
- {{ previousMonthIcon() }}
513
+ <svg
514
+ class="frame-calendar__nav-icon"
515
+ aria-hidden="true"
516
+ viewBox="0 0 24 24"
517
+ fill="none"
518
+ stroke="currentColor"
519
+ stroke-width="2"
520
+ stroke-linecap="round"
521
+ stroke-linejoin="round"
522
+ >
523
+ <path d="m15 18-6-6 6-6"></path>
524
+ </svg>
434
525
  }
435
526
  </button>
436
527
 
437
528
  @if (captionLayout() === 'dropdown') {
438
529
  <div class="frame-calendar__caption-controls">
439
- <select
530
+ <button
440
531
  class="frame-calendar__select"
532
+ [frSelect]="monthMenu"
441
533
  [disabled]="isDisabled()"
442
- [value]="currentMonth().getMonth()"
534
+ [value]="currentMonthValue()"
535
+ (valueChange)="setMonth($event)"
536
+ indicatorPosition="end"
443
537
  aria-label="Month"
444
- (change)="setMonth($any($event.target).value)"
538
+ type="button"
445
539
  >
446
- @for (month of monthOptions(); track month.value) {
447
- <option [value]="month.value" [selected]="month.value === currentMonth().getMonth()">
448
- {{ month.label }}
449
- </option>
450
- }
451
- </select>
540
+ <frame-select-value></frame-select-value>
541
+ <span frSelectIcon>
542
+ <svg
543
+ class="frame-calendar__select-icon"
544
+ aria-hidden="true"
545
+ viewBox="0 0 24 24"
546
+ fill="none"
547
+ stroke="currentColor"
548
+ stroke-width="2"
549
+ stroke-linecap="round"
550
+ stroke-linejoin="round"
551
+ >
552
+ <path d="m6 9 6 6 6-6"></path>
553
+ </svg>
554
+ </span>
555
+ </button>
556
+
557
+ <ng-template #monthMenu="frSelectContent" frSelectContent>
558
+ <frame-select-panel>
559
+ <frame-select-group>
560
+ @for (month of monthOptions(); track month.value) {
561
+ <button frSelectItem [value]="month.value" [label]="month.label" type="button">
562
+ {{ month.label }}
563
+ </button>
564
+ }
565
+ </frame-select-group>
566
+ </frame-select-panel>
567
+ </ng-template>
452
568
 
453
- <select
569
+ <button
454
570
  class="frame-calendar__select"
571
+ [frSelect]="yearMenu"
455
572
  [disabled]="isDisabled()"
456
- [value]="currentMonth().getFullYear()"
573
+ [value]="currentYearValue()"
574
+ (valueChange)="setYear($event)"
575
+ indicatorPosition="end"
457
576
  aria-label="Year"
458
- (change)="setYear($any($event.target).value)"
577
+ type="button"
459
578
  >
460
- @for (year of yearOptions(); track year) {
461
- <option [value]="year" [selected]="year === currentMonth().getFullYear()">
462
- {{ year }}
463
- </option>
464
- }
465
- </select>
579
+ <frame-select-value></frame-select-value>
580
+ <span frSelectIcon>
581
+ <svg
582
+ class="frame-calendar__select-icon"
583
+ aria-hidden="true"
584
+ viewBox="0 0 24 24"
585
+ fill="none"
586
+ stroke="currentColor"
587
+ stroke-width="2"
588
+ stroke-linecap="round"
589
+ stroke-linejoin="round"
590
+ >
591
+ <path d="m6 9 6 6 6-6"></path>
592
+ </svg>
593
+ </span>
594
+ </button>
595
+
596
+ <ng-template #yearMenu="frSelectContent" frSelectContent>
597
+ <frame-select-panel>
598
+ <frame-select-group>
599
+ @for (year of yearOptions(); track year) {
600
+ <button frSelectItem [value]="year" [label]="year" type="button">
601
+ {{ year }}
602
+ </button>
603
+ }
604
+ </frame-select-group>
605
+ </frame-select-panel>
606
+ </ng-template>
466
607
  </div>
467
608
  } @else {
468
609
  <div class="frame-calendar__caption" aria-live="polite">
@@ -480,7 +621,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
480
621
  @if (nextMonthTemplate(); as template) {
481
622
  <ng-container [ngTemplateOutlet]="template" />
482
623
  } @else {
483
- {{ nextMonthIcon() }}
624
+ <svg
625
+ class="frame-calendar__nav-icon"
626
+ aria-hidden="true"
627
+ viewBox="0 0 24 24"
628
+ fill="none"
629
+ stroke="currentColor"
630
+ stroke-width="2"
631
+ stroke-linecap="round"
632
+ stroke-linejoin="round"
633
+ >
634
+ <path d="m9 18 6-6-6-6"></path>
635
+ </svg>
484
636
  }
485
637
  </button>
486
638
  </div>
@@ -565,7 +717,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
565
717
  </div>
566
718
  `,
567
719
  }]
568
- }], propDecorators: { mode: [{ type: i0.Input, args: [{ isSignal: true, alias: "mode", required: false }] }], captionLayout: [{ type: i0.Input, args: [{ isSignal: true, alias: "captionLayout", required: false }] }], numberOfMonths: [{ type: i0.Input, args: [{ isSignal: true, alias: "numberOfMonths", required: false }] }], firstDayOfWeek: [{ type: i0.Input, args: [{ isSignal: true, alias: "firstDayOfWeek", required: false }] }], locale: [{ type: i0.Input, args: [{ isSignal: true, alias: "locale", required: false }] }], timeZone: [{ type: i0.Input, args: [{ isSignal: true, alias: "timeZone", required: false }] }], dir: [{ type: i0.Input, args: [{ isSignal: true, alias: "dir", required: false }] }], fromYear: [{ type: i0.Input, args: [{ isSignal: true, alias: "fromYear", required: false }] }], toYear: [{ type: i0.Input, args: [{ isSignal: true, alias: "toYear", required: false }] }], showOutsideDays: [{ type: i0.Input, args: [{ isSignal: true, alias: "showOutsideDays", required: false }] }], showWeekNumber: [{ type: i0.Input, args: [{ isSignal: true, alias: "showWeekNumber", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], disabledDates: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabledDates", required: false }] }], dateLabels: [{ type: i0.Input, args: [{ isSignal: true, alias: "dateLabels", required: false }] }], disabledMatcher: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabledMatcher", required: false }] }], cellTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "cellTemplate", required: false }] }], previousMonthTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "previousMonthTemplate", required: false }] }], nextMonthTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "nextMonthTemplate", required: false }] }], previousMonthIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "previousMonthIcon", required: false }] }], nextMonthIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "nextMonthIcon", required: false }] }], previousMonthLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "previousMonthLabel", required: false }] }], nextMonthLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "nextMonthLabel", required: false }] }], month: [{ type: i0.Input, args: [{ isSignal: true, alias: "month", required: false }] }], selected: [{ type: i0.Input, args: [{ isSignal: true, alias: "selected", required: false }] }], selectedChange: [{ type: i0.Output, args: ["selectedChange"] }], monthChange: [{ type: i0.Output, args: ["monthChange"] }] } });
720
+ }], propDecorators: { mode: [{ type: i0.Input, args: [{ isSignal: true, alias: "mode", required: false }] }], captionLayout: [{ type: i0.Input, args: [{ isSignal: true, alias: "captionLayout", required: false }] }], numberOfMonths: [{ type: i0.Input, args: [{ isSignal: true, alias: "numberOfMonths", required: false }] }], firstDayOfWeek: [{ type: i0.Input, args: [{ isSignal: true, alias: "firstDayOfWeek", required: false }] }], locale: [{ type: i0.Input, args: [{ isSignal: true, alias: "locale", required: false }] }], timeZone: [{ type: i0.Input, args: [{ isSignal: true, alias: "timeZone", required: false }] }], dir: [{ type: i0.Input, args: [{ isSignal: true, alias: "dir", required: false }] }], fromYear: [{ type: i0.Input, args: [{ isSignal: true, alias: "fromYear", required: false }] }], toYear: [{ type: i0.Input, args: [{ isSignal: true, alias: "toYear", required: false }] }], showOutsideDays: [{ type: i0.Input, args: [{ isSignal: true, alias: "showOutsideDays", required: false }] }], showWeekNumber: [{ type: i0.Input, args: [{ isSignal: true, alias: "showWeekNumber", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], disabledDates: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabledDates", required: false }] }], dateLabels: [{ type: i0.Input, args: [{ isSignal: true, alias: "dateLabels", required: false }] }], disabledMatcher: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabledMatcher", required: false }] }], cellTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "cellTemplate", required: false }] }], previousMonthTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "previousMonthTemplate", required: false }] }], nextMonthTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "nextMonthTemplate", required: false }] }], previousMonthLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "previousMonthLabel", required: false }] }], nextMonthLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "nextMonthLabel", required: false }] }], month: [{ type: i0.Input, args: [{ isSignal: true, alias: "month", required: false }] }], selected: [{ type: i0.Input, args: [{ isSignal: true, alias: "selected", required: false }] }], selectedChange: [{ type: i0.Output, args: ["selectedChange"] }], monthChange: [{ type: i0.Output, args: ["monthChange"] }] } });
569
721
  function buildWeekdayLabels(locale, firstDayOfWeek, timeZone) {
570
722
  const baseSunday = new Date(2026, 5, 7);
571
723
  return Array.from({ length: 7 }, (_, index) => {
@@ -666,7 +818,7 @@ function isoWeekNumber(date) {
666
818
  class FrCalendarModule {
667
819
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrCalendarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
668
820
  static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.16", ngImport: i0, type: FrCalendarModule, imports: [FrCalendar], exports: [FrCalendar] });
669
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrCalendarModule });
821
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrCalendarModule, imports: [FrCalendar] });
670
822
  }
671
823
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrCalendarModule, decorators: [{
672
824
  type: NgModule,