Angel Ruiz (@SirKeldon) 1 жил өмнө
parent
commit
33f163c204
94 өөрчлөгдсөн 1621 нэмэгдсэн , 449 устгасан
  1. BIN
      assets/fonts/DancingScript-Bold.ttf
  2. BIN
      assets/fonts/DancingScript-Medium.ttf
  3. BIN
      assets/fonts/DancingScript-Regular.ttf
  4. BIN
      assets/fonts/DancingScript-SemiBold.ttf
  5. BIN
      assets/fonts/IBMPlexSans-Bold.ttf
  6. BIN
      assets/fonts/IBMPlexSans-ExtraLight.ttf
  7. BIN
      assets/fonts/IBMPlexSans-Light.ttf
  8. BIN
      assets/fonts/IBMPlexSans-Medium.ttf
  9. BIN
      assets/fonts/IBMPlexSans-Regular.ttf
  10. BIN
      assets/fonts/IBMPlexSans-SemiBold.ttf
  11. BIN
      assets/fonts/IBMPlexSans-Thin.ttf
  12. BIN
      assets/fonts/Merriweather-Black.ttf
  13. BIN
      assets/fonts/Merriweather-Bold.ttf
  14. BIN
      assets/fonts/Merriweather-Light.ttf
  15. BIN
      assets/fonts/Merriweather-Regular.ttf
  16. 138 0
      assets/images/icons.svg
  17. 12 11
      esm2022/lib/components/atoms/accordion-item/accordion-item.component.mjs
  18. 9 10
      esm2022/lib/components/atoms/alert/alert.component.mjs
  19. 4 4
      esm2022/lib/components/atoms/avatar/avatar.component.mjs
  20. 25 19
      esm2022/lib/components/atoms/button/button.component.mjs
  21. 3 3
      esm2022/lib/components/atoms/header/header.component.mjs
  22. 8 10
      esm2022/lib/components/atoms/icon/icon.component.mjs
  23. 14 0
      esm2022/lib/components/atoms/list-item/list-item.component.mjs
  24. 13 6
      esm2022/lib/components/atoms/menu-item/menu-item.component.mjs
  25. 27 0
      esm2022/lib/components/atoms/tab-button/tab-button.component.mjs
  26. 26 31
      esm2022/lib/components/molecules/accordion/accordion.component.mjs
  27. 4 2
      esm2022/lib/components/molecules/card/card.component.mjs
  28. 11 0
      esm2022/lib/components/molecules/list/list.component.mjs
  29. 24 15
      esm2022/lib/components/molecules/menu/menu.component.mjs
  30. 51 0
      esm2022/lib/components/molecules/tab-group/tab-group.component.mjs
  31. 118 0
      esm2022/lib/directives/overlay.directive.mjs
  32. 36 0
      esm2022/lib/directives/tab-panel.directive.mjs
  33. 76 0
      esm2022/lib/forms/autocomplete/autocomplete.component.mjs
  34. 23 5
      esm2022/lib/forms/error/error.component.mjs
  35. 46 0
      esm2022/lib/forms/input-number/input-number.component.mjs
  36. 30 10
      esm2022/lib/forms/input/input.component.mjs
  37. 9 6
      esm2022/lib/forms/label/label.component.mjs
  38. 5 5
      esm2022/lib/forms/option/option.component.mjs
  39. 50 0
      esm2022/lib/forms/radio-button/radio-button.component.mjs
  40. 69 0
      esm2022/lib/forms/radio-group/radio-group.component.mjs
  41. 11 12
      esm2022/lib/forms/select/select.component.mjs
  42. 54 0
      esm2022/lib/forms/toggle/toggle.component.mjs
  43. 21 0
      esm2022/lib/forms/utils/form.util.mjs
  44. 9 0
      esm2022/lib/forms/utils/validators.util.mjs
  45. 2 0
      esm2022/lib/model/components/component-disposition.enum.mjs
  46. 2 0
      esm2022/lib/model/components/component-position.type.mjs
  47. 2 0
      esm2022/lib/model/components/component-size.type.mjs
  48. 2 0
      esm2022/lib/model/components/component-type.type.mjs
  49. 2 0
      esm2022/lib/model/components/component-variant.type.mjs
  50. 1 1
      esm2022/lib/model/forms/form-base.model.mjs
  51. 3 3
      esm2022/lib/pipes/safe-image.pipe.mjs
  52. 10 10
      esm2022/lib/services/accordion-registry.service.mjs
  53. 8 3
      esm2022/lib/services/form-generic.abstract.mjs
  54. 5 5
      esm2022/lib/services/screen-size.service.mjs
  55. 15 4
      esm2022/public-api.mjs
  56. 49 83
      fesm2022/circletone.mjs
  57. 0 0
      fesm2022/circletone.mjs.map
  58. 4 3
      lib/components/atoms/accordion-item/accordion-item.component.d.ts
  59. 7 5
      lib/components/atoms/alert/alert.component.d.ts
  60. 11 9
      lib/components/atoms/button/button.component.d.ts
  61. 4 4
      lib/components/atoms/icon/icon.component.d.ts
  62. 9 0
      lib/components/atoms/list-item/list-item.component.d.ts
  63. 15 5
      lib/components/atoms/menu-item/menu-item.component.d.ts
  64. 11 0
      lib/components/atoms/tab-button/tab-button.component.d.ts
  65. 5 5
      lib/components/molecules/accordion/accordion.component.d.ts
  66. 6 1
      lib/components/molecules/card/card.component.d.ts
  67. 5 0
      lib/components/molecules/list/list.component.d.ts
  68. 10 5
      lib/components/molecules/menu/menu.component.d.ts
  69. 16 0
      lib/components/molecules/tab-group/tab-group.component.d.ts
  70. 24 0
      lib/directives/overlay.directive.d.ts
  71. 14 0
      lib/directives/tab-panel.directive.d.ts
  72. 35 0
      lib/forms/autocomplete/autocomplete.component.d.ts
  73. 9 1
      lib/forms/error/error.component.d.ts
  74. 19 0
      lib/forms/input-number/input-number.component.d.ts
  75. 19 5
      lib/forms/input/input.component.d.ts
  76. 4 3
      lib/forms/label/label.component.d.ts
  77. 20 0
      lib/forms/radio-button/radio-button.component.d.ts
  78. 24 0
      lib/forms/radio-group/radio-group.component.d.ts
  79. 10 9
      lib/forms/select/select.component.d.ts
  80. 22 0
      lib/forms/toggle/toggle.component.d.ts
  81. 12 0
      lib/forms/utils/form.util.d.ts
  82. 2 0
      lib/forms/utils/validators.util.d.ts
  83. 156 0
      lib/main.scss
  84. 1 0
      lib/model/components/component-disposition.enum.d.ts
  85. 4 0
      lib/model/components/component-position.type.d.ts
  86. 4 0
      lib/model/components/component-size.type.d.ts
  87. 4 0
      lib/model/components/component-type.type.d.ts
  88. 4 0
      lib/model/components/component-variant.type.d.ts
  89. 2 0
      lib/model/forms/form-base.model.d.ts
  90. 3 2
      lib/services/accordion-registry.service.d.ts
  91. 1 0
      lib/services/form-generic.abstract.d.ts
  92. 4 3
      package.json
  93. 16 4
      public-api.d.ts
  94. 78 127
      tailwind.config.js

BIN
assets/fonts/DancingScript-Bold.ttf


BIN
assets/fonts/DancingScript-Medium.ttf


BIN
assets/fonts/DancingScript-Regular.ttf


BIN
assets/fonts/DancingScript-SemiBold.ttf


BIN
assets/fonts/IBMPlexSans-Bold.ttf


BIN
assets/fonts/IBMPlexSans-ExtraLight.ttf


BIN
assets/fonts/IBMPlexSans-Light.ttf


BIN
assets/fonts/IBMPlexSans-Medium.ttf


BIN
assets/fonts/IBMPlexSans-Regular.ttf


BIN
assets/fonts/IBMPlexSans-SemiBold.ttf


BIN
assets/fonts/IBMPlexSans-Thin.ttf


BIN
assets/fonts/Merriweather-Black.ttf


BIN
assets/fonts/Merriweather-Bold.ttf


BIN
assets/fonts/Merriweather-Light.ttf


BIN
assets/fonts/Merriweather-Regular.ttf


+ 138 - 0
assets/images/icons.svg

@@ -0,0 +1,138 @@
+<svg xmlns="http://www.w3.org/2000/svg" style="display:none">
+  <symbol id="home" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
+    <path stroke-linecap="round" stroke-linejoin="round" d="M2.25 12l8.954-8.955c.44-.439 1.152-.439 1.591 0L21.75 12M4.5 9.75v10.125c0 .621.504 1.125 1.125 1.125H9.75v-4.875c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125V21h4.125c.621 0 1.125-.504 1.125-1.125V9.75M8.25 21h8.25" />
+  </symbol>
+  <symbol id="home-solid" viewBox="0 0 24 24" fill="currentColor">
+    <path d="M11.47 3.841a.75.75 0 0 1 1.06 0l8.69 8.69a.75.75 0 1 0 1.06-1.061l-8.689-8.69a2.25 2.25 0 0 0-3.182 0l-8.69 8.69a.75.75 0 1 0 1.061 1.06l8.69-8.689Z" />
+    <path d="m12 5.432 8.159 8.159c.03.03.06.058.091.086v6.198c0 1.035-.84 1.875-1.875 1.875H15a.75.75 0 0 1-.75-.75v-4.5a.75.75 0 0 0-.75-.75h-3a.75.75 0 0 0-.75.75V21a.75.75 0 0 1-.75.75H5.625a1.875 1.875 0 0 1-1.875-1.875v-6.198a2.29 2.29 0 0 0 .091-.086L12 5.432Z" />
+  </symbol>
+  <symbol id="globe-alt" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
+    <path stroke-linecap="round" stroke-linejoin="round" d="M12 21a9.004 9.004 0 008.716-6.747M12 21a9.004 9.004 0 01-8.716-6.747M12 21c2.485 0 4.5-4.03 4.5-9S14.485 3 12 3m0 18c-2.485 0-4.5-4.03-4.5-9S9.515 3 12 3m0 0a8.997 8.997 0 017.843 4.582M12 3a8.997 8.997 0 00-7.843 4.582m15.686 0A11.953 11.953 0 0112 10.5c-2.998 0-5.74-1.1-7.843-2.918m15.686 0A8.959 8.959 0 0121 12c0 .778-.099 1.533-.284 2.253m0 0A17.919 17.919 0 0112 16.5c-3.162 0-6.133-.815-8.716-2.247m0 0A9.015 9.015 0 013 12c0-1.605.42-3.113 1.157-4.418" />
+  </symbol>
+  <symbol id="globe-alt-solid" viewBox="0 0 24 24" fill="currentColor">
+    <path d="M21.721 12.752a9.711 9.711 0 0 0-.945-5.003 12.754 12.754 0 0 1-4.339 2.708 18.991 18.991 0 0 1-.214 4.772 17.165 17.165 0 0 0 5.498-2.477ZM14.634 15.55a17.324 17.324 0 0 0 .332-4.647c-.952.227-1.945.347-2.966.347-1.021 0-2.014-.12-2.966-.347a17.515 17.515 0 0 0 .332 4.647 17.385 17.385 0 0 0 5.268 0ZM9.772 17.119a18.963 18.963 0 0 0 4.456 0A17.182 17.182 0 0 1 12 21.724a17.18 17.18 0 0 1-2.228-4.605ZM7.777 15.23a18.87 18.87 0 0 1-.214-4.774 12.753 12.753 0 0 1-4.34-2.708 9.711 9.711 0 0 0-.944 5.004 17.165 17.165 0 0 0 5.498 2.477ZM21.356 14.752a9.765 9.765 0 0 1-7.478 6.817 18.64 18.64 0 0 0 1.988-4.718 18.627 18.627 0 0 0 5.49-2.098ZM2.644 14.752c1.682.971 3.53 1.688 5.49 2.099a18.64 18.64 0 0 0 1.988 4.718 9.765 9.765 0 0 1-7.478-6.816ZM13.878 2.43a9.755 9.755 0 0 1 6.116 3.986 11.267 11.267 0 0 1-3.746 2.504 18.63 18.63 0 0 0-2.37-6.49ZM12 2.276a17.152 17.152 0 0 1 2.805 7.121c-.897.23-1.837.353-2.805.353-.968 0-1.908-.122-2.805-.353A17.151 17.151 0 0 1 12 2.276ZM10.122 2.43a18.629 18.629 0 0 0-2.37 6.49 11.266 11.266 0 0 1-3.746-2.504 9.754 9.754 0 0 1 6.116-3.985Z" />
+  </symbol>
+  <symbol id="magnifying-glass" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
+    <path stroke-linecap="round" stroke-linejoin="round" d="M21 21l-5.197-5.197m0 0A7.5 7.5 0 105.196 5.196a7.5 7.5 0 0010.607 10.607z" />
+  </symbol>
+  <symbol id="magnifying-glass-solid" viewBox="0 0 24 24" fill="currentColor">
+    <path fill-rule="evenodd" d="M10.5 3.75a6.75 6.75 0 1 0 0 13.5 6.75 6.75 0 0 0 0-13.5ZM2.25 10.5a8.25 8.25 0 1 1 14.59 5.28l4.69 4.69a.75.75 0 1 1-1.06 1.06l-4.69-4.69A8.25 8.25 0 0 1 2.25 10.5Z" clip-rule="evenodd" />
+  </symbol>
+  <symbol id="heart" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
+    <path stroke-linecap="round" stroke-linejoin="round" d="M21 8.25c0-2.485-2.099-4.5-4.688-4.5-1.935 0-3.597 1.126-4.312 2.733-.715-1.607-2.377-2.733-4.313-2.733C5.1 3.75 3 5.765 3 8.25c0 7.22 9 12 9 12s9-4.78 9-12z" />
+  </symbol>
+  <symbol id="heart-solid" viewBox="0 0 24 24" fill="currentColor">
+    <path d="m11.645 20.91-.007-.003-.022-.012a15.247 15.247 0 0 1-.383-.218 25.18 25.18 0 0 1-4.244-3.17C4.688 15.36 2.25 12.174 2.25 8.25 2.25 5.322 4.714 3 7.688 3A5.5 5.5 0 0 1 12 5.052 5.5 5.5 0 0 1 16.313 3c2.973 0 5.437 2.322 5.437 5.25 0 3.925-2.438 7.111-4.739 9.256a25.175 25.175 0 0 1-4.244 3.17 15.247 15.247 0 0 1-.383.219l-.022.012-.007.004-.003.001a.752.752 0 0 1-.704 0l-.003-.001Z" />
+  </symbol>
+  <symbol id="users" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
+    <path stroke-linecap="round" stroke-linejoin="round" d="M15 19.128a9.38 9.38 0 002.625.372 9.337 9.337 0 004.121-.952 4.125 4.125 0 00-7.533-2.493M15 19.128v-.003c0-1.113-.285-2.16-.786-3.07M15 19.128v.106A12.318 12.318 0 018.624 21c-2.331 0-4.512-.645-6.374-1.766l-.001-.109a6.375 6.375 0 0111.964-3.07M12 6.375a3.375 3.375 0 11-6.75 0 3.375 3.375 0 016.75 0zm8.25 2.25a2.625 2.625 0 11-5.25 0 2.625 2.625 0 015.25 0z" />
+  </symbol>
+  <symbol id="users-solid" viewBox="0 0 24 24" fill="currentColor">
+    <path d="M4.5 6.375a4.125 4.125 0 1 1 8.25 0 4.125 4.125 0 0 1-8.25 0ZM14.25 8.625a3.375 3.375 0 1 1 6.75 0 3.375 3.375 0 0 1-6.75 0ZM1.5 19.125a7.125 7.125 0 0 1 14.25 0v.003l-.001.119a.75.75 0 0 1-.363.63 13.067 13.067 0 0 1-6.761 1.873c-2.472 0-4.786-.684-6.76-1.873a.75.75 0 0 1-.364-.63l-.001-.122ZM17.25 19.128l-.001.144a2.25 2.25 0 0 1-.233.96 10.088 10.088 0 0 0 5.06-1.01.75.75 0 0 0 .42-.643 4.875 4.875 0 0 0-6.957-4.611 8.586 8.586 0 0 1 1.71 5.157v.003Z" />
+  </symbol>
+  <symbol id="document-plus-solid" viewBox="0 0 24 24" fill="currentColor">
+    <path fill-rule="evenodd" d="M5.625 1.5H9a3.75 3.75 0 0 1 3.75 3.75v1.875c0 1.036.84 1.875 1.875 1.875H16.5a3.75 3.75 0 0 1 3.75 3.75v7.875c0 1.035-.84 1.875-1.875 1.875H5.625a1.875 1.875 0 0 1-1.875-1.875V3.375c0-1.036.84-1.875 1.875-1.875ZM12.75 12a.75.75 0 0 0-1.5 0v2.25H9a.75.75 0 0 0 0 1.5h2.25V18a.75.75 0 0 0 1.5 0v-2.25H15a.75.75 0 0 0 0-1.5h-2.25V12Z" clip-rule="evenodd" />
+    <path d="M14.25 5.25a5.23 5.23 0 0 0-1.279-3.434 9.768 9.768 0 0 1 6.963 6.963A5.23 5.23 0 0 0 16.5 7.5h-1.875a.375.375 0 0 1-.375-.375V5.25Z" />
+  </symbol>
+  <symbol id="clipboard-document" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
+    <path stroke-linecap="round" stroke-linejoin="round" d="M8.25 7.5V6.108c0-1.135.845-2.098 1.976-2.192.373-.03.748-.057 1.123-.08M15.75 18H18a2.25 2.25 0 002.25-2.25V6.108c0-1.135-.845-2.098-1.976-2.192a48.424 48.424 0 00-1.123-.08M15.75 18.75v-1.875a3.375 3.375 0 00-3.375-3.375h-1.5a1.125 1.125 0 01-1.125-1.125v-1.5A3.375 3.375 0 006.375 7.5H5.25m11.9-3.664A2.251 2.251 0 0015 2.25h-1.5a2.251 2.251 0 00-2.15 1.586m5.8 0c.065.21.1.433.1.664v.75h-6V4.5c0-.231.035-.454.1-.664M6.75 7.5H4.875c-.621 0-1.125.504-1.125 1.125v12c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V16.5a9 9 0 00-9-9z" />
+  </symbol>
+   <symbol id="camera" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
+    <path stroke-linecap="round" stroke-linejoin="round" d="M6.827 6.175A2.31 2.31 0 015.186 7.23c-.38.054-.757.112-1.134.175C2.999 7.58 2.25 8.507 2.25 9.574V18a2.25 2.25 0 002.25 2.25h15A2.25 2.25 0 0021.75 18V9.574c0-1.067-.75-1.994-1.802-2.169a47.865 47.865 0 00-1.134-.175 2.31 2.31 0 01-1.64-1.055l-.822-1.316a2.192 2.192 0 00-1.736-1.039 48.774 48.774 0 00-5.232 0 2.192 2.192 0 00-1.736 1.039l-.821 1.316z" />
+    <path stroke-linecap="round" stroke-linejoin="round" d="M16.5 12.75a4.5 4.5 0 11-9 0 4.5 4.5 0 019 0zM18.75 10.5h.008v.008h-.008V10.5z" />
+  </symbol>
+  <symbol id="camera-solid" viewBox="0 0 24 24" fill="currentColor">
+    <path d="M12 9a3.75 3.75 0 1 0 0 7.5A3.75 3.75 0 0 0 12 9Z" />
+    <path fill-rule="evenodd" d="M9.344 3.071a49.52 49.52 0 0 1 5.312 0c.967.052 1.83.585 2.332 1.39l.821 1.317c.24.383.645.643 1.11.71.386.054.77.113 1.152.177 1.432.239 2.429 1.493 2.429 2.909V18a3 3 0 0 1-3 3h-15a3 3 0 0 1-3-3V9.574c0-1.416.997-2.67 2.429-2.909.382-.064.766-.123 1.151-.178a1.56 1.56 0 0 0 1.11-.71l.822-1.315a2.942 2.942 0 0 1 2.332-1.39ZM6.75 12.75a5.25 5.25 0 1 1 10.5 0 5.25 5.25 0 0 1-10.5 0Zm12-1.5a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Z" clip-rule="evenodd" />
+  </symbol>
+  <symbol id="arrow-down" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
+    <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 13.5L12 21m0 0l-7.5-7.5M12 21V3" />
+  </symbol>
+  <symbol id="information-circle" viewBox="0 0 24 24" fill="none">
+    <path stroke-linecap="round" stroke-linejoin="round" d="m11.25 11.25.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9-3.75h.008v.008H12V8.25Z" />
+  </symbol>
+  <symbol id="information-circle-solid"  viewBox="0 0 24 24" fill="currentColor">
+    <path fill-rule="evenodd" d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12Zm8.706-1.442c1.146-.573 2.437.463 2.126 1.706l-.709 2.836.042-.02a.75.75 0 0 1 .67 1.34l-.04.022c-1.147.573-2.438-.463-2.127-1.706l.71-2.836-.042.02a.75.75 0 1 1-.671-1.34l.041-.022ZM12 9a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Z" clip-rule="evenodd" />
+  </symbol>
+  <symbol id="paper-clip" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
+    <path stroke-linecap="round" stroke-linejoin="round" d="m18.375 12.739-7.693 7.693a4.5 4.5 0 0 1-6.364-6.364l10.94-10.94A3 3 0 1 1 19.5 7.372L8.552 18.32m.009-.01-.01.01m5.699-9.941-7.81 7.81a1.5 1.5 0 0 0 2.112 2.13" />
+  </symbol>
+  <symbol id="chevron-up" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
+    <path stroke-linecap="round" stroke-linejoin="round" d="m4.5 15.75 7.5-7.5 7.5 7.5" />
+  </symbol>
+  <symbol id="chevron-down" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
+    <path stroke-linecap="round" stroke-linejoin="round" d="m19.5 8.25-7.5 7.5-7.5-7.5" />
+  </symbol>
+  <symbol id="exclamation-circle" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
+    <path stroke-linecap="round" stroke-linejoin="round" d="M12 9v3.75m9-.75a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 3.75h.008v.008H12v-.008Z" />
+  </symbol>
+  <symbol id="exclamation-circle-solid" viewBox="0 0 24 24" fill="currentColor">
+    <path fill-rule="evenodd" d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12ZM12 8.25a.75.75 0 0 1 .75.75v3.75a.75.75 0 0 1-1.5 0V9a.75.75 0 0 1 .75-.75Zm0 8.25a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Z" clip-rule="evenodd" />
+  </symbol>
+  <symbol id="exclamation-triangle" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
+    <path stroke-linecap="round" stroke-linejoin="round" d="M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126ZM12 15.75h.007v.008H12v-.008Z" />
+  </symbol>
+  <symbol id="exclamation-triangle-solid" viewBox="0 0 24 24" fill="currentColor">
+    <path fill-rule="evenodd" d="M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003ZM12 8.25a.75.75 0 0 1 .75.75v3.75a.75.75 0 0 1-1.5 0V9a.75.75 0 0 1 .75-.75Zm0 8.25a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Z" clip-rule="evenodd" />
+  </symbol>
+  <symbol id="check-circle" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
+    <path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />
+  </symbol>
+  <symbol id="check-circle-solid" viewBox="0 0 24 24" fill="currentColor">
+    <path fill-rule="evenodd" d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12Zm13.36-1.814a.75.75 0 1 0-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 0 0-1.06 1.06l2.25 2.25a.75.75 0 0 0 1.14-.094l3.75-5.25Z" clip-rule="evenodd" />
+  </symbol>
+  <symbol id="photo" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
+    <path stroke-linecap="round" stroke-linejoin="round" d="m2.25 15.75 5.159-5.159a2.25 2.25 0 0 1 3.182 0l5.159 5.159m-1.5-1.5 1.409-1.409a2.25 2.25 0 0 1 3.182 0l2.909 2.909m-18 3.75h16.5a1.5 1.5 0 0 0 1.5-1.5V6a1.5 1.5 0 0 0-1.5-1.5H3.75A1.5 1.5 0 0 0 2.25 6v12a1.5 1.5 0 0 0 1.5 1.5Zm10.5-11.25h.008v.008h-.008V8.25Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Z" />
+  </symbol>
+  <symbol id="photo-solid" viewBox="0 0 24 24" fill="currentColor">
+    <path fill-rule="evenodd" d="M1.5 6a2.25 2.25 0 0 1 2.25-2.25h16.5A2.25 2.25 0 0 1 22.5 6v12a2.25 2.25 0 0 1-2.25 2.25H3.75A2.25 2.25 0 0 1 1.5 18V6ZM3 16.06V18c0 .414.336.75.75.75h16.5A.75.75 0 0 0 21 18v-1.94l-2.69-2.689a1.5 1.5 0 0 0-2.12 0l-.88.879.97.97a.75.75 0 1 1-1.06 1.06l-5.16-5.159a1.5 1.5 0 0 0-2.12 0L3 16.061Zm10.125-7.81a1.125 1.125 0 1 1 2.25 0 1.125 1.125 0 0 1-2.25 0Z" clip-rule="evenodd" />
+  </symbol>
+  <symbol id="x-circle" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
+    <path stroke-linecap="round" stroke-linejoin="round" d="m9.75 9.75 4.5 4.5m0-4.5-4.5 4.5M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />
+  </symbol>
+  <symbol id="x-circle-solid" viewBox="0 0 24 24" fill="currentColor">
+    <path fill-rule="evenodd" d="M12 2.25c-5.385 0-9.75 4.365-9.75 9.75s4.365 9.75 9.75 9.75 9.75-4.365 9.75-9.75S17.385 2.25 12 2.25Zm-1.72 6.97a.75.75 0 1 0-1.06 1.06L10.94 12l-1.72 1.72a.75.75 0 1 0 1.06 1.06L12 13.06l1.72 1.72a.75.75 0 1 0 1.06-1.06L13.06 12l1.72-1.72a.75.75 0 1 0-1.06-1.06L12 10.94l-1.72-1.72Z" clip-rule="evenodd" />
+  </symbol>
+  <symbol id="x-mark" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
+    <path stroke-linecap="round" stroke-linejoin="round" d="M6 18 18 6M6 6l12 12" />
+  </symbol>
+  <symbol id="x-mark-solid" viewBox="0 0 24 24" fill="currentColor">
+    <path fill-rule="evenodd" d="M5.47 5.47a.75.75 0 0 1 1.06 0L12 10.94l5.47-5.47a.75.75 0 1 1 1.06 1.06L13.06 12l5.47 5.47a.75.75 0 1 1-1.06 1.06L12 13.06l-5.47 5.47a.75.75 0 0 1-1.06-1.06L10.94 12 5.47 6.53a.75.75 0 0 1 0-1.06Z" clip-rule="evenodd" />
+  </symbol>
+  <symbol id="chevron-right" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
+    <path stroke-linecap="round" stroke-linejoin="round" d="m8.25 4.5 7.5 7.5-7.5 7.5" />
+  </symbol>
+  <symbol id="chevron-left" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
+    <path stroke-linecap="round" stroke-linejoin="round" d="M15.75 19.5 8.25 12l7.5-7.5" />
+  </symbol>
+  <symbol id="list-bullet" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
+    <path stroke-linecap="round" stroke-linejoin="round" d="M8.25 6.75h12M8.25 12h12m-12 5.25h12M3.75 6.75h.007v.008H3.75V6.75Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0ZM3.75 12h.007v.008H3.75V12Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Zm-.375 5.25h.007v.008H3.75v-.008Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Z" />
+  </symbol>
+  <symbol id="plus" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
+    <path stroke-linecap="round" stroke-linejoin="round" d="M12 4.5v15m7.5-7.5h-15" />
+  </symbol>
+  <symbol id="heart" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
+    <path stroke-linecap="round" stroke-linejoin="round" d="M21 8.25c0-2.485-2.099-4.5-4.688-4.5-1.935 0-3.597 1.126-4.312 2.733-.715-1.607-2.377-2.733-4.313-2.733C5.1 3.75 3 5.765 3 8.25c0 7.22 9 12 9 12s9-4.78 9-12Z" />
+  </symbol>
+  <symbol id="heart-solid" viewBox="0 0 24 24" fill="currentColor">
+    <path d="m11.645 20.91-.007-.003-.022-.012a15.247 15.247 0 0 1-.383-.218 25.18 25.18 0 0 1-4.244-3.17C4.688 15.36 2.25 12.174 2.25 8.25 2.25 5.322 4.714 3 7.688 3A5.5 5.5 0 0 1 12 5.052 5.5 5.5 0 0 1 16.313 3c2.973 0 5.437 2.322 5.437 5.25 0 3.925-2.438 7.111-4.739 9.256a25.175 25.175 0 0 1-4.244 3.17 15.247 15.247 0 0 1-.383.219l-.022.012-.007.004-.003.001a.752.752 0 0 1-.704 0l-.003-.001Z" />
+  </symbol>
+  <symbol id="chat-bubble-left-right-solid" viewBox="0 0 24 24" fill="currentColor">
+    <path d="M4.913 2.658c2.075-.27 4.19-.408 6.337-.408 2.147 0 4.262.139 6.337.408 1.922.25 3.291 1.861 3.405 3.727a4.403 4.403 0 0 0-1.032-.211 50.89 50.89 0 0 0-8.42 0c-2.358.196-4.04 2.19-4.04 4.434v4.286a4.47 4.47 0 0 0 2.433 3.984L7.28 21.53A.75.75 0 0 1 6 21v-4.03a48.527 48.527 0 0 1-1.087-.128C2.905 16.58 1.5 14.833 1.5 12.862V6.638c0-1.97 1.405-3.718 3.413-3.979Z" />
+    <path d="M15.75 7.5c-1.376 0-2.739.057-4.086.169C10.124 7.797 9 9.103 9 10.609v4.285c0 1.507 1.128 2.814 2.67 2.94 1.243.102 2.5.157 3.768.165l2.782 2.781a.75.75 0 0 0 1.28-.53v-2.39l.33-.026c1.542-.125 2.67-1.433 2.67-2.94v-4.286c0-1.505-1.125-2.811-2.664-2.94A49.392 49.392 0 0 0 15.75 7.5Z" />
+  </symbol>
+  <symbol id="users" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
+    <path stroke-linecap="round" stroke-linejoin="round" d="M15 19.128a9.38 9.38 0 0 0 2.625.372 9.337 9.337 0 0 0 4.121-.952 4.125 4.125 0 0 0-7.533-2.493M15 19.128v-.003c0-1.113-.285-2.16-.786-3.07M15 19.128v.106A12.318 12.318 0 0 1 8.624 21c-2.331 0-4.512-.645-6.374-1.766l-.001-.109a6.375 6.375 0 0 1 11.964-3.07M12 6.375a3.375 3.375 0 1 1-6.75 0 3.375 3.375 0 0 1 6.75 0Zm8.25 2.25a2.625 2.625 0 1 1-5.25 0 2.625 2.625 0 0 1 5.25 0Z" />
+  </symbol>
+  <symbold id="users-solid" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
+    <path d="M4.5 6.375a4.125 4.125 0 1 1 8.25 0 4.125 4.125 0 0 1-8.25 0ZM14.25 8.625a3.375 3.375 0 1 1 6.75 0 3.375 3.375 0 0 1-6.75 0ZM1.5 19.125a7.125 7.125 0 0 1 14.25 0v.003l-.001.119a.75.75 0 0 1-.363.63 13.067 13.067 0 0 1-6.761 1.873c-2.472 0-4.786-.684-6.76-1.873a.75.75 0 0 1-.364-.63l-.001-.122ZM17.25 19.128l-.001.144a2.25 2.25 0 0 1-.233.96 10.088 10.088 0 0 0 5.06-1.01.75.75 0 0 0 .42-.643 4.875 4.875 0 0 0-6.957-4.611 8.586 8.586 0 0 1 1.71 5.157v.003Z" />
+  </symbol>
+  <symbol id="wrench-screwdriver"  fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
+    <path stroke-linecap="round" stroke-linejoin="round" d="M11.42 15.17 17.25 21A2.652 2.652 0 0 0 21 17.25l-5.877-5.877M11.42 15.17l2.496-3.03c.317-.384.74-.626 1.208-.766M11.42 15.17l-4.655 5.653a2.548 2.548 0 1 1-3.586-3.586l6.837-5.63m5.108-.233c.55-.164 1.163-.188 1.743-.14a4.5 4.5 0 0 0 4.486-6.336l-3.276 3.277a3.004 3.004 0 0 1-2.25-2.25l3.276-3.276a4.5 4.5 0 0 0-6.336 4.486c.091 1.076-.071 2.264-.904 2.95l-.102.085m-1.745 1.437L5.909 7.5H4.5L2.25 3.75l1.5-1.5L7.5 4.5v1.409l4.26 4.26m-1.745 1.437 1.745-1.437m6.615 8.206L15.75 15.75M4.867 19.125h.008v.008h-.008v-.008Z" />
+  </symbol>
+  <symbol id="wrench-screwdriver-solid" viewBox="0 0 24 24" fill="currentColor">
+    <path fill-rule="evenodd" d="M12 6.75a5.25 5.25 0 0 1 6.775-5.025.75.75 0 0 1 .313 1.248l-3.32 3.319c.063.475.276.934.641 1.299.365.365.824.578 1.3.64l3.318-3.319a.75.75 0 0 1 1.248.313 5.25 5.25 0 0 1-5.472 6.756c-1.018-.086-1.87.1-2.309.634L7.344 21.3A3.298 3.298 0 1 1 2.7 16.657l8.684-7.151c.533-.44.72-1.291.634-2.309A5.342 5.342 0 0 1 12 6.75ZM4.117 19.125a.75.75 0 0 1 .75-.75h.008a.75.75 0 0 1 .75.75v.008a.75.75 0 0 1-.75.75h-.008a.75.75 0 0 1-.75-.75v-.008Z" clip-rule="evenodd" />
+    <path d="m10.076 8.64-2.201-2.2V4.874a.75.75 0 0 0-.364-.643l-3.75-2.25a.75.75 0 0 0-.916.113l-.75.75a.75.75 0 0 0-.113.916l2.25 3.75a.75.75 0 0 0 .643.364h1.564l2.062 2.062 1.575-1.297Z" />
+    <path fill-rule="evenodd" d="m12.556 17.329 4.183 4.182a3.375 3.375 0 0 0 4.773-4.773l-3.306-3.305a6.803 6.803 0 0 1-1.53.043c-.394-.034-.682-.006-.867.042a.589.589 0 0 0-.167.063l-3.086 3.748Zm3.414-1.36a.75.75 0 0 1 1.06 0l1.875 1.876a.75.75 0 1 1-1.06 1.06L15.97 17.03a.75.75 0 0 1 0-1.06Z" clip-rule="evenodd" />
+  </symbol>
+</svg>

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 12 - 11
esm2022/lib/components/atoms/accordion-item/accordion-item.component.mjs


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 9 - 10
esm2022/lib/components/atoms/alert/alert.component.mjs


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 4 - 4
esm2022/lib/components/atoms/avatar/avatar.component.mjs


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 25 - 19
esm2022/lib/components/atoms/button/button.component.mjs


+ 3 - 3
esm2022/lib/components/atoms/header/header.component.mjs

@@ -4,10 +4,10 @@ export class HeaderComponent {
     constructor() {
         this.title = '';
     }
-    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: HeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
-    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.2", type: HeaderComponent, isStandalone: true, selector: "ct-header", inputs: { title: "title" }, ngImport: i0, template: "<div\n  class=\"flex h-14 w-full items-center justify-between bg-gradient-to-b from-surface to-primary px-4 py-2 dark:from-surface-variant-dark dark:to-primary-container-dark\">\n  <div class=\"flex grow font-logo\">{{ title }}</div>\n  <ng-content />\n</div>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
+    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: HeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
+    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: HeaderComponent, isStandalone: true, selector: "ct-header", inputs: { title: "title" }, ngImport: i0, template: "<div\n  class=\"flex h-14 w-full items-center justify-between bg-gradient-to-b from-surface to-primary px-4 py-2 dark:from-surface-variant-dark dark:to-primary-container-dark\">\n  <div class=\"flex grow font-logo\">{{ title }}</div>\n  <ng-content />\n</div>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
 }
-i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: HeaderComponent, decorators: [{
+i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: HeaderComponent, decorators: [{
             type: Component,
             args: [{ selector: 'ct-header', standalone: true, imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n  class=\"flex h-14 w-full items-center justify-between bg-gradient-to-b from-surface to-primary px-4 py-2 dark:from-surface-variant-dark dark:to-primary-container-dark\">\n  <div class=\"flex grow font-logo\">{{ title }}</div>\n  <ng-content />\n</div>\n" }]
         }], propDecorators: { title: [{

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 8 - 10
esm2022/lib/components/atoms/icon/icon.component.mjs


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 14 - 0
esm2022/lib/components/atoms/list-item/list-item.component.mjs


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 13 - 6
esm2022/lib/components/atoms/menu-item/menu-item.component.mjs


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 27 - 0
esm2022/lib/components/atoms/tab-button/tab-button.component.mjs


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 26 - 31
esm2022/lib/components/molecules/accordion/accordion.component.mjs


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 4 - 2
esm2022/lib/components/molecules/card/card.component.mjs


+ 11 - 0
esm2022/lib/components/molecules/list/list.component.mjs

@@ -0,0 +1,11 @@
+import { ChangeDetectionStrategy, Component } from '@angular/core';
+import * as i0 from "@angular/core";
+export class ListComponent {
+    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: ListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
+    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: ListComponent, isStandalone: true, selector: "ct-list", ngImport: i0, template: "<ul class=\"flex grow flex-col divide-y divide-primary-400 dark:divide-primary-700\">\n  <ng-content />\n</ul>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
+}
+i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: ListComponent, decorators: [{
+            type: Component,
+            args: [{ selector: 'ct-list', standalone: true, imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ul class=\"flex grow flex-col divide-y divide-primary-400 dark:divide-primary-700\">\n  <ng-content />\n</ul>\n" }]
+        }] });
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaXJjbGV0b25lL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvbGlzdC9saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NpcmNsZXRvbmUvc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9saXN0L2xpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFTbkUsTUFBTSxPQUFPLGFBQWE7OEdBQWIsYUFBYTtrR0FBYixhQUFhLG1FQ1QxQixrSEFHQTs7MkZETWEsYUFBYTtrQkFQekIsU0FBUzsrQkFDRSxTQUFTLGNBQ1AsSUFBSSxXQUNQLEVBQUUsbUJBRU0sdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3QtbGlzdCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtdLFxuICB0ZW1wbGF0ZVVybDogJy4vbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIExpc3RDb21wb25lbnQge1xuXG59XG4iLCI8dWwgY2xhc3M9XCJmbGV4IGdyb3cgZmxleC1jb2wgZGl2aWRlLXkgZGl2aWRlLXByaW1hcnktNDAwIGRhcms6ZGl2aWRlLXByaW1hcnktNzAwXCI+XG4gIDxuZy1jb250ZW50IC8+XG48L3VsPlxuIl19

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 24 - 15
esm2022/lib/components/molecules/menu/menu.component.mjs


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 51 - 0
esm2022/lib/components/molecules/tab-group/tab-group.component.mjs


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 118 - 0
esm2022/lib/directives/overlay.directive.mjs


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 36 - 0
esm2022/lib/directives/tab-panel.directive.mjs


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 76 - 0
esm2022/lib/forms/autocomplete/autocomplete.component.mjs


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 23 - 5
esm2022/lib/forms/error/error.component.mjs


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 46 - 0
esm2022/lib/forms/input-number/input-number.component.mjs


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 30 - 10
esm2022/lib/forms/input/input.component.mjs


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 9 - 6
esm2022/lib/forms/label/label.component.mjs


+ 5 - 5
esm2022/lib/forms/option/option.component.mjs

@@ -6,16 +6,16 @@ export class OptionComponent {
         this.label = '';
         this.icon = '';
     }
-    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: OptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
-    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.2", type: OptionComponent, isStandalone: true, selector: "ct-option", inputs: { label: "label", icon: "icon" }, ngImport: i0, template: "<div\n  class=\"flex cursor-pointer flex-row rounded-md px-4 py-2 text-sm hover:bg-surface/35 dark:hover:bg-surface-dark/35\">\n  @if (icon) {\n    <ct-icon [icon]=\"icon\" />\n  }\n  {{ label }}\n</div>\n", dependencies: [{ kind: "component", type: IconComponent, selector: "ct-icon", inputs: ["icon", "fill", "strokeWidth", "strokeColor", "size", "variant"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
+    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: OptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
+    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: OptionComponent, isStandalone: true, selector: "ct-option", inputs: { label: "label", icon: "icon" }, ngImport: i0, template: "<div\n  class=\"flex cursor-pointer flex-row rounded-md px-4 py-2 text-sm hover:bg-surface-variant dark:hover:bg-surface-variant-dark\">\n  @if (icon) {\n    <ct-icon [icon]=\"icon\" />\n  }\n  {{ label }}\n</div>\n", dependencies: [{ kind: "component", type: IconComponent, selector: "ct-icon", inputs: ["icon", "fill", "strokeWidth", "strokeColor", "size", "variant"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
 }
-i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: OptionComponent, decorators: [{
+i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: OptionComponent, decorators: [{
             type: Component,
-            args: [{ selector: 'ct-option', standalone: true, imports: [IconComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n  class=\"flex cursor-pointer flex-row rounded-md px-4 py-2 text-sm hover:bg-surface/35 dark:hover:bg-surface-dark/35\">\n  @if (icon) {\n    <ct-icon [icon]=\"icon\" />\n  }\n  {{ label }}\n</div>\n" }]
+            args: [{ selector: 'ct-option', standalone: true, imports: [IconComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n  class=\"flex cursor-pointer flex-row rounded-md px-4 py-2 text-sm hover:bg-surface-variant dark:hover:bg-surface-variant-dark\">\n  @if (icon) {\n    <ct-icon [icon]=\"icon\" />\n  }\n  {{ label }}\n</div>\n" }]
         }], propDecorators: { label: [{
                 type: Input,
                 args: [{ required: true }]
             }], icon: [{
                 type: Input
             }] } });
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NpcmNsZXRvbmUvc3JjL2xpYi9mb3Jtcy9vcHRpb24vb3B0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NpcmNsZXRvbmUvc3JjL2xpYi9mb3Jtcy9vcHRpb24vb3B0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7QUFTM0UsTUFBTSxPQUFPLGVBQWU7SUFQNUI7UUFRNkIsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUM3QixTQUFJLEdBQUcsRUFBRSxDQUFDO0tBQ3BCOzhHQUhZLGVBQWU7a0dBQWYsZUFBZSwrR0NWNUIsK01BT0EsNENERFksYUFBYTs7MkZBSVosZUFBZTtrQkFQM0IsU0FBUzsrQkFDRSxXQUFXLGNBQ1QsSUFBSSxXQUNQLENBQUMsYUFBYSxDQUFDLG1CQUVQLHVCQUF1QixDQUFDLE1BQU07OEJBR3BCLEtBQUs7c0JBQS9CLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNoQixJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvYXRvbXMvaWNvbi9pY29uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2N0LW9wdGlvbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtJY29uQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL29wdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBPcHRpb25Db21wb25lbnQge1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBsYWJlbCA9ICcnO1xuICBASW5wdXQoKSBpY29uID0gJyc7XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiZmxleCBjdXJzb3ItcG9pbnRlciBmbGV4LXJvdyByb3VuZGVkLW1kIHB4LTQgcHktMiB0ZXh0LXNtIGhvdmVyOmJnLXN1cmZhY2UvMzUgZGFyazpob3ZlcjpiZy1zdXJmYWNlLWRhcmsvMzVcIj5cbiAgQGlmIChpY29uKSB7XG4gICAgPGN0LWljb24gW2ljb25dPVwiaWNvblwiIC8+XG4gIH1cbiAge3sgbGFiZWwgfX1cbjwvZGl2PlxuIl19
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NpcmNsZXRvbmUvc3JjL2xpYi9mb3Jtcy9vcHRpb24vb3B0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NpcmNsZXRvbmUvc3JjL2xpYi9mb3Jtcy9vcHRpb24vb3B0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7QUFTM0UsTUFBTSxPQUFPLGVBQWU7SUFQNUI7UUFRNkIsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUM3QixTQUFJLEdBQUcsRUFBRSxDQUFDO0tBQ3BCOzhHQUhZLGVBQWU7a0dBQWYsZUFBZSwrR0NWNUIseU5BT0EsNENERFksYUFBYTs7MkZBSVosZUFBZTtrQkFQM0IsU0FBUzsrQkFDRSxXQUFXLGNBQ1QsSUFBSSxXQUNQLENBQUMsYUFBYSxDQUFDLG1CQUVQLHVCQUF1QixDQUFDLE1BQU07OEJBR3BCLEtBQUs7c0JBQS9CLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNoQixJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvYXRvbXMvaWNvbi9pY29uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2N0LW9wdGlvbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtJY29uQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL29wdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBPcHRpb25Db21wb25lbnQge1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBsYWJlbCA9ICcnO1xuICBASW5wdXQoKSBpY29uID0gJyc7XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiZmxleCBjdXJzb3ItcG9pbnRlciBmbGV4LXJvdyByb3VuZGVkLW1kIHB4LTQgcHktMiB0ZXh0LXNtIGhvdmVyOmJnLXN1cmZhY2UtdmFyaWFudCBkYXJrOmhvdmVyOmJnLXN1cmZhY2UtdmFyaWFudC1kYXJrXCI+XG4gIEBpZiAoaWNvbikge1xuICAgIDxjdC1pY29uIFtpY29uXT1cImljb25cIiAvPlxuICB9XG4gIHt7IGxhYmVsIH19XG48L2Rpdj5cbiJdfQ==

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 50 - 0
esm2022/lib/forms/radio-button/radio-button.component.mjs


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 69 - 0
esm2022/lib/forms/radio-group/radio-group.component.mjs


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 11 - 12
esm2022/lib/forms/select/select.component.mjs


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 54 - 0
esm2022/lib/forms/toggle/toggle.component.mjs


+ 21 - 0
esm2022/lib/forms/utils/form.util.mjs

@@ -0,0 +1,21 @@
+import { forwardRef } from '@angular/core';
+import { ControlContainer, FormGroupDirective, NG_VALUE_ACCESSOR } from '@angular/forms';
+/**
+ * Creates a value accessor provider for a form component.
+ * @param component - The component that implements the NG_VALUE_ACCESSOR interface.
+ * @returns An ExistingProvider object for the value accessor.
+ */
+export const provideValueAccessor = (component) => ({
+    provide: NG_VALUE_ACCESSOR,
+    useExisting: forwardRef(() => component),
+    multi: true,
+});
+/**
+ * Creates a control container provider using FormGroupDirective.
+ * @returns An ExistingProvider object for the control container.
+ */
+export const provideControlContainer = () => ({
+    provide: ControlContainer,
+    useExisting: FormGroupDirective,
+});
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2lyY2xldG9uZS9zcmMvbGliL2Zvcm1zL3V0aWxzL2Zvcm0udXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6Rjs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxTQUFrQixFQUFvQixFQUFFLENBQUMsQ0FBQztJQUM3RSxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDO0lBQ3hDLEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQyxDQUFDO0FBRUg7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsR0FBcUIsRUFBRSxDQUFDLENBQUM7SUFDOUQsT0FBTyxFQUFFLGdCQUFnQjtJQUN6QixXQUFXLEVBQUUsa0JBQWtCO0NBQ2hDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV4aXN0aW5nUHJvdmlkZXIsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xDb250YWluZXIsIEZvcm1Hcm91cERpcmVjdGl2ZSwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhIHZhbHVlIGFjY2Vzc29yIHByb3ZpZGVyIGZvciBhIGZvcm0gY29tcG9uZW50LlxuICogQHBhcmFtIGNvbXBvbmVudCAtIFRoZSBjb21wb25lbnQgdGhhdCBpbXBsZW1lbnRzIHRoZSBOR19WQUxVRV9BQ0NFU1NPUiBpbnRlcmZhY2UuXG4gKiBAcmV0dXJucyBBbiBFeGlzdGluZ1Byb3ZpZGVyIG9iamVjdCBmb3IgdGhlIHZhbHVlIGFjY2Vzc29yLlxuICovXG5leHBvcnQgY29uc3QgcHJvdmlkZVZhbHVlQWNjZXNzb3IgPSAoY29tcG9uZW50OiB1bmtub3duKTogRXhpc3RpbmdQcm92aWRlciA9PiAoe1xuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gY29tcG9uZW50KSxcbiAgbXVsdGk6IHRydWUsXG59KTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgY29udHJvbCBjb250YWluZXIgcHJvdmlkZXIgdXNpbmcgRm9ybUdyb3VwRGlyZWN0aXZlLlxuICogQHJldHVybnMgQW4gRXhpc3RpbmdQcm92aWRlciBvYmplY3QgZm9yIHRoZSBjb250cm9sIGNvbnRhaW5lci5cbiAqL1xuZXhwb3J0IGNvbnN0IHByb3ZpZGVDb250cm9sQ29udGFpbmVyID0gKCk6IEV4aXN0aW5nUHJvdmlkZXIgPT4gKHtcbiAgcHJvdmlkZTogQ29udHJvbENvbnRhaW5lcixcbiAgdXNlRXhpc3Rpbmc6IEZvcm1Hcm91cERpcmVjdGl2ZSxcbn0pO1xuIl19

+ 9 - 0
esm2022/lib/forms/utils/validators.util.mjs

@@ -0,0 +1,9 @@
+export function integerValidator() {
+    return (control) => {
+        if (control.value !== null && !Number.isInteger(Number(control.value))) {
+            return { notInteger: true };
+        }
+        return null;
+    };
+}
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2lyY2xldG9uZS9zcmMvbGliL2Zvcm1zL3V0aWxzL3ZhbGlkYXRvcnMudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLFVBQVUsZ0JBQWdCO0lBQzlCLE9BQU8sQ0FBQyxPQUF3QixFQUEyQixFQUFFO1FBQzNELElBQUksT0FBTyxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3ZFLE9BQU8sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDOUIsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnRlZ2VyVmFsaWRhdG9yKCk6IFZhbGlkYXRvckZuIHtcbiAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgaWYgKGNvbnRyb2wudmFsdWUgIT09IG51bGwgJiYgIU51bWJlci5pc0ludGVnZXIoTnVtYmVyKGNvbnRyb2wudmFsdWUpKSkge1xuICAgICAgcmV0dXJuIHsgbm90SW50ZWdlcjogdHJ1ZSB9O1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfTtcbn1cbiJdfQ==

+ 2 - 0
esm2022/lib/model/components/component-disposition.enum.mjs

@@ -0,0 +1,2 @@
+export {};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWRpc3Bvc2l0aW9uLmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaXJjbGV0b25lL3NyYy9saWIvbW9kZWwvY29tcG9uZW50cy9jb21wb25lbnQtZGlzcG9zaXRpb24uZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgQ29tcG9uZW50RGlzcG9zaXRpb24gPSAndmVydGljYWwnIHwgJ2hvcml6b250YWwnO1xuIl19

+ 2 - 0
esm2022/lib/model/components/component-position.type.mjs

@@ -0,0 +1,2 @@
+export {};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LXBvc2l0aW9uLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaXJjbGV0b25lL3NyYy9saWIvbW9kZWwvY29tcG9uZW50cy9jb21wb25lbnQtcG9zaXRpb24udHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBVc2VkIGZvciBzb21lIGNvbXBvbmVudHMgdG8gZGV0ZXJtaW5lIHBvc2l0aW9uaW5nIG9mIHZhcmlvdXMgZWxlbWVudHNcbiAqL1xuZXhwb3J0IHR5cGUgQ29tcG9uZW50UG9zaXRpb24gPSAnbGVmdCcgfCAncmlnaHQnIHwgJ2NlbnRlcicgfCAndG9wJyB8ICdib3R0b20nIHwgJ21pZGRsZSc7XG4iXX0=

+ 2 - 0
esm2022/lib/model/components/component-size.type.mjs

@@ -0,0 +1,2 @@
+export {};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LXNpemUudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NpcmNsZXRvbmUvc3JjL2xpYi9tb2RlbC9jb21wb25lbnRzL2NvbXBvbmVudC1zaXplLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVXNlZCBmb3Igc29tZSBjb21wb25lbnRzIHRvIGRldGVybWluZSBzaXppbmcgb2YgdmFyaW91cyBlbGVtZW50cy4gUmVsYXRlcyB0byAndGFpbHdpbmQnIGNsYXNzZXMgdG8gZmFjaWxpdGF0ZSBkZXYncyBsaWZlXG4gKi9cbmV4cG9ydCB0eXBlIENvbXBvbmVudFNpemUgPSAneHMnIHwgJ3NtJyB8ICdiYXNlJyB8ICdsZycgfCAneGwnIHwgJzJ4bCcgfCAnM3hsJztcbiJdfQ==

+ 2 - 0
esm2022/lib/model/components/component-type.type.mjs

@@ -0,0 +1,2 @@
+export {};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LXR5cGUudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NpcmNsZXRvbmUvc3JjL2xpYi9tb2RlbC9jb21wb25lbnRzL2NvbXBvbmVudC10eXBlLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVXNlZCBmb3Igc29tZSBjb21wb25lbnRzIHRvIGRldGVybWluZSBjb2xvdXJpbmcgb2YgdmFyaW91cyBlbGVtZW50cy4gUmVsYXRlcyB0byBDU1MgY2xhc3NlcyB0byBmYWNpbGl0YXRlIGRldidzIGxpZmVcbiAqL1xuZXhwb3J0IHR5cGUgQ29tcG9uZW50VHlwZSA9ICdwcmltYXJ5JyB8ICdzZWNvbmRhcnknIHwgJ25ldXRyYWwnIHwgJ3N1Y2Nlc3MnIHwgJ3dhcm5pbmcnIHwgJ2Vycm9yJztcbiJdfQ==

+ 2 - 0
esm2022/lib/model/components/component-variant.type.mjs

@@ -0,0 +1,2 @@
+export {};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LXZhcmlhbnQudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NpcmNsZXRvbmUvc3JjL2xpYi9tb2RlbC9jb21wb25lbnRzL2NvbXBvbmVudC12YXJpYW50LnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVXNlZCBmb3Igc29tZSBjb21wb25lbnRzIHRvIGRldGVybWluZSB0aGUgdmFyaWFuY2Ugb2YgZGl2ZXJzZSBlbGVtZW50cy5cbiAqL1xuZXhwb3J0IHR5cGUgQ29tcG9uZW50VmFyaWFudCA9ICdibGFuaycgfCAnc29saWQnIHwgJ291dGxpbmUnIHwgJ2ZsYXQnIHwgJ2dyYWRpZW50JztcbiJdfQ==

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 1 - 1
esm2022/lib/model/forms/form-base.model.mjs


+ 3 - 3
esm2022/lib/pipes/safe-image.pipe.mjs

@@ -9,10 +9,10 @@ export class SafeImagePipe {
         const imageBase64 = `data:${type};base64,${value}`;
         return this.sanitizer.bypassSecurityTrustUrl(imageBase64);
     }
-    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: SafeImagePipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe }); }
-    static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.2", ngImport: i0, type: SafeImagePipe, isStandalone: true, name: "safeImage" }); }
+    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: SafeImagePipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe }); }
+    static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.5", ngImport: i0, type: SafeImagePipe, isStandalone: true, name: "safeImage" }); }
 }
-i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: SafeImagePipe, decorators: [{
+i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: SafeImagePipe, decorators: [{
             type: Pipe,
             args: [{
                     name: 'safeImage',

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 10 - 10
esm2022/lib/services/accordion-registry.service.mjs


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 8 - 3
esm2022/lib/services/form-generic.abstract.mjs


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 5 - 5
esm2022/lib/services/screen-size.service.mjs


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 15 - 4
esm2022/public-api.mjs


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 49 - 83
fesm2022/circletone.mjs


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
fesm2022/circletone.mjs.map


+ 4 - 3
lib/components/atoms/accordion-item/accordion-item.component.d.ts

@@ -1,4 +1,4 @@
-import { AfterViewInit, EventEmitter, QueryList } from '@angular/core';
+import { AfterViewInit, QueryList, TemplateRef } from '@angular/core';
 import { BehaviorSubject } from 'rxjs';
 import { AccordionComponent } from '../../molecules/accordion/accordion.component';
 import * as i0 from "@angular/core";
@@ -7,9 +7,10 @@ export declare class AccordionItemComponent implements AfterViewInit {
     id: string;
     label: string;
     isOpen: BehaviorSubject<boolean>;
-    toggle: EventEmitter<void>;
+    headerTemplate: TemplateRef<any>;
     accordions: QueryList<AccordionComponent>;
     ngAfterViewInit(): void;
+    togglePane(): void;
     static ɵfac: i0.ɵɵFactoryDeclaration<AccordionItemComponent, never>;
-    static ɵcmp: i0.ɵɵComponentDeclaration<AccordionItemComponent, "ct-accordion-item", never, { "id": { "alias": "id"; "required": true; }; "label": { "alias": "label"; "required": false; }; "isOpen": { "alias": "isOpen"; "required": false; }; }, { "toggle": "toggle"; }, ["accordions"], ["*"], true, never>;
+    static ɵcmp: i0.ɵɵComponentDeclaration<AccordionItemComponent, "ct-accordion-item", never, { "id": { "alias": "id"; "required": true; }; "label": { "alias": "label"; "required": false; }; }, {}, ["headerTemplate", "accordions"], ["[header]", "*"], true, never>;
 }

+ 7 - 5
lib/components/atoms/alert/alert.component.d.ts

@@ -1,6 +1,7 @@
 import { EventEmitter } from '@angular/core';
-import { TypeEnum } from '../../../model/components/type.enum';
-import { VariantEnum } from '../../../model/components/variant.enum';
+import { ComponentType } from '../../../model/components/component-type.type';
+import { ComponentVariant } from '../../../model/components/component-variant.type';
+import { ComponentSize } from '../../../model/components/component-size.type';
 import * as i0 from "@angular/core";
 /**
  * The alert component is responsible to show alerts for diverse elements. Including `FormErrorComponent` among others.
@@ -9,11 +10,12 @@ export declare class AlertComponent {
     dismissable: boolean;
     fullSize: boolean;
     text: string;
-    type: TypeEnum | string;
-    variant: VariantEnum | string;
+    type: ComponentType;
+    variant: ComponentVariant;
+    size: ComponentSize;
     withIcon: boolean;
     dismiss: EventEmitter<void>;
     get icon(): string;
     static ɵfac: i0.ɵɵFactoryDeclaration<AlertComponent, never>;
-    static ɵcmp: i0.ɵɵComponentDeclaration<AlertComponent, "ct-alert", never, { "dismissable": { "alias": "dismissable"; "required": false; }; "fullSize": { "alias": "fullSize"; "required": false; }; "text": { "alias": "text"; "required": true; }; "type": { "alias": "type"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "withIcon": { "alias": "withIcon"; "required": false; }; }, { "dismiss": "dismiss"; }, never, never, true, never>;
+    static ɵcmp: i0.ɵɵComponentDeclaration<AlertComponent, "ct-alert", never, { "dismissable": { "alias": "dismissable"; "required": false; }; "fullSize": { "alias": "fullSize"; "required": false; }; "text": { "alias": "text"; "required": true; }; "type": { "alias": "type"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "withIcon": { "alias": "withIcon"; "required": false; }; }, { "dismiss": "dismiss"; }, never, never, true, never>;
 }

+ 11 - 9
lib/components/atoms/button/button.component.d.ts

@@ -1,7 +1,7 @@
-import { SizeEnum } from '../../../model/components/size.enum';
-import { TypeEnum } from '../../../model/components/type.enum';
-import { VariantEnum } from '../../../model/components/variant.enum';
-import { PositionEnum } from '../../../model/components/position.enum';
+import { ComponentSize } from '../../../model/components/component-size.type';
+import { ComponentType } from '../../../model/components/component-type.type';
+import { ComponentVariant } from '../../../model/components/component-variant.type';
+import { ComponentPosition } from '../../../model/components/component-position.type';
 import * as i0 from "@angular/core";
 /**
  * This is the ButtonComponent, widely used among other components
@@ -9,15 +9,17 @@ import * as i0 from "@angular/core";
 export declare class ButtonComponent {
     text?: string;
     icon?: string;
-    iconPosition?: PositionEnum | string;
+    iconPosition?: ComponentPosition | string;
+    role: 'button' | 'submit' | 'reset';
+    disabled: boolean;
     fullSize: boolean;
-    size: SizeEnum | string;
-    type: TypeEnum | string;
-    variant: VariantEnum | string;
+    size: ComponentSize;
+    type: ComponentType;
+    variant: ComponentVariant;
     get cssClassmap(): {
         [className: string]: boolean;
     };
     hasJustIcon(): boolean;
     static ɵfac: i0.ɵɵFactoryDeclaration<ButtonComponent, never>;
-    static ɵcmp: i0.ɵɵComponentDeclaration<ButtonComponent, "ct-button", never, { "text": { "alias": "text"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "iconPosition": { "alias": "iconPosition"; "required": false; }; "fullSize": { "alias": "fullSize"; "required": false; }; "size": { "alias": "size"; "required": false; }; "type": { "alias": "type"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; }, {}, never, never, true, never>;
+    static ɵcmp: i0.ɵɵComponentDeclaration<ButtonComponent, "ct-button", never, { "text": { "alias": "text"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "iconPosition": { "alias": "iconPosition"; "required": false; }; "role": { "alias": "role"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "fullSize": { "alias": "fullSize"; "required": false; }; "size": { "alias": "size"; "required": false; }; "type": { "alias": "type"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; }, {}, never, never, true, never>;
 }

+ 4 - 4
lib/components/atoms/icon/icon.component.d.ts

@@ -1,14 +1,14 @@
 import { OnInit } from '@angular/core';
-import { SizeEnum } from '../../../model/components/size.enum';
-import { VariantEnum } from '../../../model/components/variant.enum';
+import { ComponentSize } from '../../../model/components/component-size.type';
+import { ComponentVariant } from '../../../model/components/component-variant.type';
 import * as i0 from "@angular/core";
 export declare class IconComponent implements OnInit {
     icon: string;
     fill: string;
     strokeWidth: number;
     strokeColor: string;
-    size: SizeEnum | string;
-    variant: VariantEnum | string;
+    size: ComponentSize;
+    variant: ComponentVariant;
     ngOnInit(): void;
     get iconPath(): string;
     private getFormattedColor;

+ 9 - 0
lib/components/atoms/list-item/list-item.component.d.ts

@@ -0,0 +1,9 @@
+import * as i0 from "@angular/core";
+export declare class ListItemComponent {
+    header: string;
+    subHeader: string;
+    avatar: string;
+    subTitle: string;
+    static ɵfac: i0.ɵɵFactoryDeclaration<ListItemComponent, never>;
+    static ɵcmp: i0.ɵɵComponentDeclaration<ListItemComponent, "ct-list-item", never, { "header": { "alias": "header"; "required": false; }; "subHeader": { "alias": "subHeader"; "required": false; }; "avatar": { "alias": "avatar"; "required": false; }; "subTitle": { "alias": "subTitle"; "required": false; }; }, {}, never, never, true, never>;
+}

+ 15 - 5
lib/components/atoms/menu-item/menu-item.component.d.ts

@@ -1,13 +1,23 @@
-import { SizeEnum } from '../../../model/components/size.enum';
+import { QueryList } from '@angular/core';
+import { ComponentSize } from '../../../model/components/component-size.type';
+import { ComponentDisposition } from '../../../model/components/component-disposition.enum';
+import { MenuComponent } from '../../molecules/menu/menu.component';
+import { BehaviorSubject } from 'rxjs';
 import * as i0 from "@angular/core";
 export declare class MenuItemComponent {
     text: string;
     link: string;
     type: string | 'internal' | 'external';
-    icon?: string;
-    iconSize?: SizeEnum | string;
+    size: ComponentSize;
+    icon: string;
+    iconSize: ComponentSize;
     iconAlone: boolean;
-    iconDirection: string | 'vertical' | 'horizontal';
+    iconDirection: ComponentDisposition;
+    hasSubmenu: boolean;
+    submenuPosition: ComponentDisposition;
+    isActive: boolean;
+    isOpen: BehaviorSubject<boolean>;
+    menus: QueryList<MenuComponent>;
     static ɵfac: i0.ɵɵFactoryDeclaration<MenuItemComponent, never>;
-    static ɵcmp: i0.ɵɵComponentDeclaration<MenuItemComponent, "ct-menu-item", never, { "text": { "alias": "text"; "required": false; }; "link": { "alias": "link"; "required": true; }; "type": { "alias": "type"; "required": true; }; "icon": { "alias": "icon"; "required": false; }; "iconSize": { "alias": "iconSize"; "required": false; }; "iconAlone": { "alias": "iconAlone"; "required": false; }; "iconDirection": { "alias": "iconDirection"; "required": false; }; }, {}, never, never, true, never>;
+    static ɵcmp: i0.ɵɵComponentDeclaration<MenuItemComponent, "ct-menu-item", never, { "text": { "alias": "text"; "required": false; }; "link": { "alias": "link"; "required": true; }; "type": { "alias": "type"; "required": true; }; "size": { "alias": "size"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "iconSize": { "alias": "iconSize"; "required": false; }; "iconAlone": { "alias": "iconAlone"; "required": false; }; "iconDirection": { "alias": "iconDirection"; "required": false; }; "hasSubmenu": { "alias": "hasSubmenu"; "required": false; }; "submenuPosition": { "alias": "submenuPosition"; "required": false; }; "isActive": { "alias": "isActive"; "required": false; }; }, {}, ["menus"], ["*"], true, never>;
 }

+ 11 - 0
lib/components/atoms/tab-button/tab-button.component.d.ts

@@ -0,0 +1,11 @@
+import { EventEmitter } from '@angular/core';
+import * as i0 from "@angular/core";
+export declare class TabButtonComponent {
+    key: string;
+    title: string;
+    subTitle: string;
+    clicked: EventEmitter<string>;
+    isActive: import("@angular/core").WritableSignal<boolean>;
+    static ɵfac: i0.ɵɵFactoryDeclaration<TabButtonComponent, never>;
+    static ɵcmp: i0.ɵɵComponentDeclaration<TabButtonComponent, "ct-tab-button", never, { "key": { "alias": "key"; "required": true; }; "title": { "alias": "title"; "required": false; }; "subTitle": { "alias": "subTitle"; "required": false; }; }, { "clicked": "clicked"; }, never, never, true, never>;
+}

+ 5 - 5
lib/components/molecules/accordion/accordion.component.d.ts

@@ -2,18 +2,18 @@ import { AfterViewInit, OnDestroy, QueryList } from '@angular/core';
 import { AccordionItemComponent } from '../../atoms/accordion-item/accordion-item.component';
 import * as i0 from "@angular/core";
 export declare class AccordionComponent implements AfterViewInit, OnDestroy {
+    protected parent: AccordionItemComponent;
     private readonly destroyRef;
     private readonly accordionRegistryService;
     label: string;
     id: string;
-    policy: string | 'collapse' | 'open';
+    policy: 'collapse' | 'open';
     gap: number;
-    parentAccordion: string;
-    parentTrigger: string;
     accordionItems: QueryList<AccordionItemComponent>;
+    constructor(parent: AccordionItemComponent);
     ngAfterViewInit(): void;
     ngOnDestroy(): void;
     closePanes(): void;
-    static ɵfac: i0.ɵɵFactoryDeclaration<AccordionComponent, never>;
-    static ɵcmp: i0.ɵɵComponentDeclaration<AccordionComponent, "ct-accordion", never, { "label": { "alias": "label"; "required": false; }; "id": { "alias": "id"; "required": true; }; "policy": { "alias": "policy"; "required": false; }; "gap": { "alias": "gap"; "required": false; }; "parentAccordion": { "alias": "parentAccordion"; "required": false; }; "parentTrigger": { "alias": "parentTrigger"; "required": false; }; }, {}, ["accordionItems"], ["*"], true, never>;
+    static ɵfac: i0.ɵɵFactoryDeclaration<AccordionComponent, [{ optional: true; skipSelf: true; }]>;
+    static ɵcmp: i0.ɵɵComponentDeclaration<AccordionComponent, "ct-accordion", never, { "label": { "alias": "label"; "required": false; }; "id": { "alias": "id"; "required": true; }; "policy": { "alias": "policy"; "required": false; }; "gap": { "alias": "gap"; "required": false; }; }, {}, ["accordionItems"], ["*"], true, never>;
 }

+ 6 - 1
lib/components/molecules/card/card.component.d.ts

@@ -1,3 +1,5 @@
+import { EventEmitter } from '@angular/core';
+import { ComponentDisposition } from '../../../model/components/component-disposition.enum';
 import * as i0 from "@angular/core";
 export declare class CardComponent {
     header: string;
@@ -6,8 +8,11 @@ export declare class CardComponent {
     subTitle: string;
     avatar: string;
     image: string;
+    disposition: ComponentDisposition;
     imageThumbnail: string;
     withActions: boolean;
+    acceptButton: EventEmitter<void>;
+    cancelButton: EventEmitter<void>;
     static ɵfac: i0.ɵɵFactoryDeclaration<CardComponent, never>;
-    static ɵcmp: i0.ɵɵComponentDeclaration<CardComponent, "ct-card", never, { "header": { "alias": "header"; "required": false; }; "subHeader": { "alias": "subHeader"; "required": false; }; "title": { "alias": "title"; "required": false; }; "subTitle": { "alias": "subTitle"; "required": false; }; "avatar": { "alias": "avatar"; "required": false; }; "image": { "alias": "image"; "required": false; }; "imageThumbnail": { "alias": "imageThumbnail"; "required": false; }; "withActions": { "alias": "withActions"; "required": false; }; }, {}, never, ["[header-extra]", "[body]"], true, never>;
+    static ɵcmp: i0.ɵɵComponentDeclaration<CardComponent, "ct-card", never, { "header": { "alias": "header"; "required": false; }; "subHeader": { "alias": "subHeader"; "required": false; }; "title": { "alias": "title"; "required": false; }; "subTitle": { "alias": "subTitle"; "required": false; }; "avatar": { "alias": "avatar"; "required": false; }; "image": { "alias": "image"; "required": false; }; "disposition": { "alias": "disposition"; "required": false; }; "imageThumbnail": { "alias": "imageThumbnail"; "required": false; }; "withActions": { "alias": "withActions"; "required": false; }; }, { "acceptButton": "acceptButton"; "cancelButton": "cancelButton"; }, never, ["[header-extra]", "[image-vertical]", "[body]", "[image-horizontal]", "[body-horizontal]"], true, never>;
 }

+ 5 - 0
lib/components/molecules/list/list.component.d.ts

@@ -0,0 +1,5 @@
+import * as i0 from "@angular/core";
+export declare class ListComponent {
+    static ɵfac: i0.ɵɵFactoryDeclaration<ListComponent, never>;
+    static ɵcmp: i0.ɵɵComponentDeclaration<ListComponent, "ct-list", never, {}, {}, never, ["*"], true, never>;
+}

+ 10 - 5
lib/components/molecules/menu/menu.component.d.ts

@@ -1,11 +1,16 @@
-import { MenuItem } from '../../../model/components/menu-item.model';
+import { ComponentDisposition } from '../../../model/components/component-disposition.enum';
+import { ComponentVariant } from '../../../model/components/component-variant.type';
+import { ComponentType } from '../../../model/components/component-type.type';
 import * as i0 from "@angular/core";
 export declare class MenuComponent {
-    items: MenuItem[];
+    direction: ComponentDisposition;
+    iconDirection: ComponentDisposition;
+    type: ComponentType;
+    variant: ComponentVariant;
+    gap: number;
     fullSize: boolean;
-    direction: string | 'horizontal' | 'vertical';
     iconAlone: boolean;
-    iconDirection: string | 'horizontal' | 'vertical';
+    menusAppearVertical: boolean;
     static ɵfac: i0.ɵɵFactoryDeclaration<MenuComponent, never>;
-    static ɵcmp: i0.ɵɵComponentDeclaration<MenuComponent, "ct-menu", never, { "items": { "alias": "items"; "required": true; }; "fullSize": { "alias": "fullSize"; "required": false; }; "direction": { "alias": "direction"; "required": false; }; "iconAlone": { "alias": "iconAlone"; "required": false; }; "iconDirection": { "alias": "iconDirection"; "required": false; }; }, {}, never, never, true, never>;
+    static ɵcmp: i0.ɵɵComponentDeclaration<MenuComponent, "ct-menu", never, { "direction": { "alias": "direction"; "required": false; }; "iconDirection": { "alias": "iconDirection"; "required": false; }; "type": { "alias": "type"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "gap": { "alias": "gap"; "required": false; }; "fullSize": { "alias": "fullSize"; "required": false; }; "iconAlone": { "alias": "iconAlone"; "required": false; }; "menusAppearVertical": { "alias": "menusAppearVertical"; "required": false; }; }, {}, never, ["*"], true, never>;
 }

+ 16 - 0
lib/components/molecules/tab-group/tab-group.component.d.ts

@@ -0,0 +1,16 @@
+import { AfterContentInit, OnChanges, QueryList, SimpleChanges } from '@angular/core';
+import { TabButtonComponent } from '../../atoms/tab-button/tab-button.component';
+import { TabPanelDirective } from '../../../directives/tab-panel.directive';
+import * as i0 from "@angular/core";
+export declare class TabGroupComponent implements AfterContentInit, OnChanges {
+    private destroyRef;
+    activeTab: string;
+    buttons: QueryList<TabButtonComponent>;
+    panels: QueryList<TabPanelDirective>;
+    ngOnChanges(changes: SimpleChanges): void;
+    ngAfterContentInit(): void;
+    setActiveTab(key: string): void;
+    private getTabButtonTrigger;
+    static ɵfac: i0.ɵɵFactoryDeclaration<TabGroupComponent, never>;
+    static ɵcmp: i0.ɵɵComponentDeclaration<TabGroupComponent, "ct-tab-group", never, { "activeTab": { "alias": "activeTab"; "required": false; }; }, {}, ["buttons", "panels"], ["[header]", "[body]"], true, never>;
+}

+ 24 - 0
lib/directives/overlay.directive.d.ts

@@ -0,0 +1,24 @@
+import { DestroyRef, ElementRef, EventEmitter, TemplateRef, ViewContainerRef } from '@angular/core';
+import { Overlay } from '@angular/cdk/overlay';
+import { ComponentDisposition } from '../model/components/component-disposition.enum';
+import * as i0 from "@angular/core";
+export declare class OverlayDirective {
+    private overlay;
+    private elementRef;
+    private viewContainerRef;
+    private readonly destroyRef;
+    private verticalPositions;
+    private horizontalPositions;
+    private overlayRef;
+    contentTemplate: TemplateRef<any>;
+    position: ComponentDisposition;
+    opened: EventEmitter<void>;
+    closed: EventEmitter<void>;
+    constructor(overlay: Overlay, elementRef: ElementRef, viewContainerRef: ViewContainerRef, destroyRef: DestroyRef);
+    show(): void;
+    private openDropdown;
+    private closeDropdown;
+    private getOverlayPosition;
+    static ɵfac: i0.ɵɵFactoryDeclaration<OverlayDirective, never>;
+    static ɵdir: i0.ɵɵDirectiveDeclaration<OverlayDirective, "[ctOverlay]", never, { "contentTemplate": { "alias": "ctOverlay"; "required": false; }; "position": { "alias": "ctOverlayPosition"; "required": false; }; }, { "opened": "opened"; "closed": "closed"; }, never, never, true, never>;
+}

+ 14 - 0
lib/directives/tab-panel.directive.d.ts

@@ -0,0 +1,14 @@
+import { DestroyRef, ElementRef, EventEmitter, OnInit, Renderer2 } from '@angular/core';
+import * as i0 from "@angular/core";
+export declare class TabPanelDirective implements OnInit {
+    private elementRef;
+    private readonly destroyRef;
+    private readonly renderer;
+    ctTabPanel: string;
+    hide: EventEmitter<boolean>;
+    constructor(elementRef: ElementRef, destroyRef: DestroyRef, renderer: Renderer2);
+    ngOnInit(): void;
+    show(): void;
+    static ɵfac: i0.ɵɵFactoryDeclaration<TabPanelDirective, never>;
+    static ɵdir: i0.ɵɵDirectiveDeclaration<TabPanelDirective, "[ctTabPanel]", never, { "ctTabPanel": { "alias": "ctTabPanel"; "required": false; }; "hide": { "alias": "hide"; "required": false; }; }, {}, never, never, true, never>;
+}

+ 35 - 0
lib/forms/autocomplete/autocomplete.component.d.ts

@@ -0,0 +1,35 @@
+import { EventEmitter } from '@angular/core';
+import { FormGenericComponent } from '../../services/form-generic.abstract';
+import { ComponentPosition } from '../../model/components/component-position.type';
+import { FormGroupDirective } from '@angular/forms';
+import { FormOptionBase } from '../../model/forms/form-base.model';
+import { BehaviorSubject, Subject } from 'rxjs';
+import { ComponentDisposition } from '../../model/components/component-disposition.enum';
+import * as i0 from "@angular/core";
+export declare class AutocompleteComponent extends FormGenericComponent {
+    private readonly destroyRef;
+    formControlName: string;
+    key: string;
+    options: FormOptionBase[];
+    label: string;
+    icon: string;
+    helper: string;
+    placeholder: string;
+    value: any;
+    inputValue: string;
+    iconPosition: ComponentPosition;
+    disposition: ComponentDisposition;
+    fullSize: boolean;
+    multiple: boolean;
+    showError: boolean;
+    typed: EventEmitter<string>;
+    selected: EventEmitter<any>;
+    focusOut$: Subject<any>;
+    inputValue$: BehaviorSubject<string>;
+    constructor(formGroupDirective: FormGroupDirective);
+    input(value: string): void;
+    setValue(value: any, propagate?: boolean): void;
+    writeValue(value: any): void;
+    static ɵfac: i0.ɵɵFactoryDeclaration<AutocompleteComponent, never>;
+    static ɵcmp: i0.ɵɵComponentDeclaration<AutocompleteComponent, "ct-autocomplete", never, { "formControlName": { "alias": "formControlName"; "required": false; }; "key": { "alias": "key"; "required": true; }; "options": { "alias": "options"; "required": true; }; "label": { "alias": "label"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "helper": { "alias": "helper"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "value": { "alias": "value"; "required": false; }; "inputValue": { "alias": "inputValue"; "required": false; }; "iconPosition": { "alias": "iconPosition"; "required": false; }; "disposition": { "alias": "disposition"; "required": false; }; "fullSize": { "alias": "fullSize"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "showError": { "alias": "showError"; "required": false; }; }, { "typed": "typed"; "selected": "selected"; }, never, never, true, never>;
+}

+ 9 - 1
lib/forms/error/error.component.d.ts

@@ -1,7 +1,15 @@
 import { ValidationErrors } from '@angular/forms';
+import { ComponentSize } from '../../model/components/component-size.type';
 import * as i0 from "@angular/core";
 export declare class FormErrorComponent {
     errors: ValidationErrors;
+    size: ComponentSize;
+    hasErrors: boolean;
+    fullSize: boolean;
+    helper: string;
+    errorMessages: {
+        [key: string]: string;
+    };
     static ɵfac: i0.ɵɵFactoryDeclaration<FormErrorComponent, never>;
-    static ɵcmp: i0.ɵɵComponentDeclaration<FormErrorComponent, "ct-form-error", never, { "errors": { "alias": "errors"; "required": true; }; }, {}, never, never, true, never>;
+    static ɵcmp: i0.ɵɵComponentDeclaration<FormErrorComponent, "ct-form-alert", never, { "errors": { "alias": "errors"; "required": true; }; "size": { "alias": "size"; "required": false; }; "hasErrors": { "alias": "hasErrors"; "required": false; }; "fullSize": { "alias": "fullSize"; "required": false; }; "helper": { "alias": "helper"; "required": false; }; "errorMessages": { "alias": "errorMessages"; "required": false; }; }, {}, never, never, true, never>;
 }

+ 19 - 0
lib/forms/input-number/input-number.component.d.ts

@@ -0,0 +1,19 @@
+import { AfterViewInit, OnInit } from '@angular/core';
+import { FormGroupDirective } from '@angular/forms';
+import { InputComponent } from '../input/input.component';
+import * as i0 from "@angular/core";
+export declare class InputNumberComponent extends InputComponent implements OnInit, AfterViewInit {
+    protected formGroupDirective: FormGroupDirective;
+    private readonly decimalPipe;
+    private rawValue;
+    validate: 'integer' | 'credit-card';
+    constructor(formGroupDirective: FormGroupDirective);
+    onFocusOut(): void;
+    onFocusIn(): void;
+    ngOnInit(): void;
+    ngAfterViewInit(): void;
+    formatNumber(): void;
+    reverseFormatNumber(): void;
+    static ɵfac: i0.ɵɵFactoryDeclaration<InputNumberComponent, [{ optional: true; }]>;
+    static ɵcmp: i0.ɵɵComponentDeclaration<InputNumberComponent, "ct-input-number", never, { "validate": { "alias": "validate"; "required": false; }; }, {}, never, never, true, never>;
+}

+ 19 - 5
lib/forms/input/input.component.d.ts

@@ -1,22 +1,36 @@
 import { EventEmitter } from '@angular/core';
-import { TypeEnum } from '../../model/components/type.enum';
 import { FormGroupDirective } from '@angular/forms';
 import { FormGenericComponent } from '../../services/form-generic.abstract';
+import { ComponentPosition } from '../../model/components/component-position.type';
+import { ComponentDisposition } from '../../model/components/component-disposition.enum';
+import { BehaviorSubject } from 'rxjs';
 import * as i0 from "@angular/core";
 export declare class InputComponent extends FormGenericComponent {
+    protected formGroupDirective: FormGroupDirective;
     formControlName: string;
     key: string;
+    type: 'password' | 'text' | 'number';
+    value: any;
     label: string;
+    icon: string;
+    helper: string;
     placeholder: string;
-    value: any;
-    type: TypeEnum | string;
+    symbol: string;
+    canDelete: boolean;
     fullSize: boolean;
+    showError: boolean;
+    min: number;
+    max: number;
+    iconPosition: ComponentPosition;
+    disposition: ComponentDisposition;
     typed: EventEmitter<string>;
+    showDelete$: BehaviorSubject<boolean>;
     onFocusOut(): void;
     constructor(formGroupDirective: FormGroupDirective);
     input(event: Event): void;
+    clearValue(): void;
     setValue(value: any, propagate?: boolean): void;
     writeValue(value: any): void;
-    static ɵfac: i0.ɵɵFactoryDeclaration<InputComponent, never>;
-    static ɵcmp: i0.ɵɵComponentDeclaration<InputComponent, "ct-input", never, { "formControlName": { "alias": "formControlName"; "required": true; }; "key": { "alias": "key"; "required": true; }; "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "value": { "alias": "value"; "required": false; }; "type": { "alias": "type"; "required": false; }; "fullSize": { "alias": "fullSize"; "required": false; }; }, { "typed": "typed"; }, never, never, true, never>;
+    static ɵfac: i0.ɵɵFactoryDeclaration<InputComponent, [{ optional: true; }]>;
+    static ɵcmp: i0.ɵɵComponentDeclaration<InputComponent, "ct-input", never, { "formControlName": { "alias": "formControlName"; "required": false; }; "key": { "alias": "key"; "required": false; }; "type": { "alias": "type"; "required": false; }; "value": { "alias": "value"; "required": false; }; "label": { "alias": "label"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "helper": { "alias": "helper"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "symbol": { "alias": "symbol"; "required": false; }; "canDelete": { "alias": "canDelete"; "required": false; }; "fullSize": { "alias": "fullSize"; "required": false; }; "showError": { "alias": "showError"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "iconPosition": { "alias": "iconPosition"; "required": false; }; "disposition": { "alias": "disposition"; "required": false; }; }, { "typed": "typed"; }, never, never, true, never>;
 }

+ 4 - 3
lib/forms/label/label.component.d.ts

@@ -1,10 +1,11 @@
-import { TypeEnum } from '../../model/components/type.enum';
+import { ComponentType } from '../../model/components/component-type.type';
 import * as i0 from "@angular/core";
 export declare class LabelComponent {
     text: string;
-    type: TypeEnum | string;
+    type: ComponentType;
     formControlName: string;
     hasError: boolean;
+    showError: boolean;
     static ɵfac: i0.ɵɵFactoryDeclaration<LabelComponent, never>;
-    static ɵcmp: i0.ɵɵComponentDeclaration<LabelComponent, "ct-form-label", never, { "text": { "alias": "text"; "required": true; }; "type": { "alias": "type"; "required": false; }; "formControlName": { "alias": "formControlName"; "required": false; }; "hasError": { "alias": "hasError"; "required": false; }; }, {}, never, never, true, never>;
+    static ɵcmp: i0.ɵɵComponentDeclaration<LabelComponent, "ct-form-label", never, { "text": { "alias": "text"; "required": true; }; "type": { "alias": "type"; "required": false; }; "formControlName": { "alias": "formControlName"; "required": false; }; "hasError": { "alias": "hasError"; "required": false; }; "showError": { "alias": "showError"; "required": false; }; }, {}, never, never, true, never>;
 }

+ 20 - 0
lib/forms/radio-button/radio-button.component.d.ts

@@ -0,0 +1,20 @@
+import { DestroyRef, EventEmitter } from '@angular/core';
+import { FormGroupDirective } from '@angular/forms';
+import { FormGenericComponent } from '../../services/form-generic.abstract';
+import * as i0 from "@angular/core";
+export declare class RadioButtonComponent extends FormGenericComponent {
+    private readonly destroyRef;
+    protected formGroupDirective: FormGroupDirective;
+    key: string;
+    label: string;
+    value: any;
+    checked: boolean;
+    formControlName: string;
+    valueChange: EventEmitter<any>;
+    constructor(destroyRef: DestroyRef, formGroupDirective: FormGroupDirective);
+    writeValue(value: boolean): void;
+    onValueChange(): void;
+    private setValue;
+    static ɵfac: i0.ɵɵFactoryDeclaration<RadioButtonComponent, [null, { optional: true; }]>;
+    static ɵcmp: i0.ɵɵComponentDeclaration<RadioButtonComponent, "ct-radio-button", never, { "key": { "alias": "key"; "required": false; }; "label": { "alias": "label"; "required": false; }; "value": { "alias": "value"; "required": false; }; "checked": { "alias": "checked"; "required": false; }; "formControlName": { "alias": "formControlName"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
+}

+ 24 - 0
lib/forms/radio-group/radio-group.component.d.ts

@@ -0,0 +1,24 @@
+import { AfterContentInit, DestroyRef, EventEmitter, QueryList } from '@angular/core';
+import { FormGenericComponent } from '../../services/form-generic.abstract';
+import { FormGroupDirective } from '@angular/forms';
+import { RadioButtonComponent } from '../radio-button/radio-button.component';
+import * as i0 from "@angular/core";
+export declare class RadioGroupComponent extends FormGenericComponent implements AfterContentInit {
+    private readonly destroyRef;
+    protected formGroupDirective: FormGroupDirective;
+    formControlName: string;
+    key: string;
+    label: string;
+    value: any;
+    helper: string;
+    showError: boolean;
+    selected: EventEmitter<any>;
+    radios: QueryList<RadioButtonComponent>;
+    constructor(destroyRef: DestroyRef, formGroupDirective: FormGroupDirective);
+    ngAfterContentInit(): void;
+    writeValue(value: any): void;
+    setValue(value: any): void;
+    private updateRadios;
+    static ɵfac: i0.ɵɵFactoryDeclaration<RadioGroupComponent, [null, { optional: true; }]>;
+    static ɵcmp: i0.ɵɵComponentDeclaration<RadioGroupComponent, "ct-radio-group", never, { "formControlName": { "alias": "formControlName"; "required": false; }; "key": { "alias": "key"; "required": false; }; "label": { "alias": "label"; "required": false; }; "value": { "alias": "value"; "required": false; }; "helper": { "alias": "helper"; "required": false; }; "showError": { "alias": "showError"; "required": false; }; }, { "selected": "selected"; }, ["radios"], ["ct-radio-button"], true, never>;
+}

+ 10 - 9
lib/forms/select/select.component.d.ts

@@ -2,24 +2,25 @@ import { DestroyRef, ElementRef, EventEmitter, OnInit } from '@angular/core';
 import { FormOptionBase } from '../../model/forms/form-base.model';
 import { Subject } from 'rxjs';
 import { FormGroupDirective } from '@angular/forms';
-import { TypeEnum } from '../../model/components/type.enum';
 import { FormGenericComponent } from '../../services/form-generic.abstract';
+import { ComponentDisposition } from '../../model/components/component-disposition.enum';
 import * as i0 from "@angular/core";
 export declare class SelectComponent extends FormGenericComponent implements OnInit {
+    protected formGroupDirective: FormGroupDirective;
     private readonly destroyRef;
     focusOut$: Subject<any>;
     isOpen: boolean;
     option: string;
-    option$: import("@angular/core").WritableSignal<string>;
     formControlName: string;
-    placeholder: string;
+    key: string;
+    options: FormOptionBase[];
     label: string;
+    helper: string;
+    placeholder: string;
     value: any;
-    type: TypeEnum | string;
+    disposition: ComponentDisposition | string;
     fullSize: boolean;
-    shouldShowError: boolean;
-    key: string;
-    options: FormOptionBase[];
+    showError: boolean;
     selected: EventEmitter<any>;
     trigger: ElementRef<HTMLButtonElement>;
     panel: ElementRef<HTMLDivElement>;
@@ -29,6 +30,6 @@ export declare class SelectComponent extends FormGenericComponent implements OnI
     close(): void;
     selectOption(key: any, propagate?: boolean): void;
     writeValue(value: any): void;
-    static ɵfac: i0.ɵɵFactoryDeclaration<SelectComponent, never>;
-    static ɵcmp: i0.ɵɵComponentDeclaration<SelectComponent, "ct-select", never, { "formControlName": { "alias": "formControlName"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "label": { "alias": "label"; "required": false; }; "value": { "alias": "value"; "required": false; }; "type": { "alias": "type"; "required": false; }; "fullSize": { "alias": "fullSize"; "required": false; }; "shouldShowError": { "alias": "shouldShowError"; "required": false; }; "key": { "alias": "key"; "required": true; }; "options": { "alias": "options"; "required": true; }; }, { "selected": "selected"; }, never, never, true, never>;
+    static ɵfac: i0.ɵɵFactoryDeclaration<SelectComponent, [{ optional: true; }, null]>;
+    static ɵcmp: i0.ɵɵComponentDeclaration<SelectComponent, "ct-select", never, { "formControlName": { "alias": "formControlName"; "required": false; }; "key": { "alias": "key"; "required": true; }; "options": { "alias": "options"; "required": true; }; "label": { "alias": "label"; "required": false; }; "helper": { "alias": "helper"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "value": { "alias": "value"; "required": false; }; "disposition": { "alias": "disposition"; "required": false; }; "fullSize": { "alias": "fullSize"; "required": false; }; "showError": { "alias": "showError"; "required": false; }; }, { "selected": "selected"; }, never, never, true, never>;
 }

+ 22 - 0
lib/forms/toggle/toggle.component.d.ts

@@ -0,0 +1,22 @@
+import { DestroyRef, EventEmitter } from '@angular/core';
+import { FormGenericComponent } from '../../services/form-generic.abstract';
+import { FormGroupDirective } from '@angular/forms';
+import { ComponentDisposition } from '../../model/components/component-disposition.enum';
+import * as i0 from "@angular/core";
+export declare class ToggleComponent extends FormGenericComponent {
+    protected formGroupDirective: FormGroupDirective;
+    private readonly destroyRef;
+    formControlName: string;
+    checked: boolean;
+    label: string;
+    key: string;
+    value: string;
+    showError: boolean;
+    disposition: ComponentDisposition | string;
+    wasChecked: EventEmitter<boolean>;
+    constructor(formGroupDirective: FormGroupDirective, destroyRef: DestroyRef);
+    toggle(): void;
+    writeValue(value: any): void;
+    static ɵfac: i0.ɵɵFactoryDeclaration<ToggleComponent, [{ optional: true; }, null]>;
+    static ɵcmp: i0.ɵɵComponentDeclaration<ToggleComponent, "ct-toggle", never, { "formControlName": { "alias": "formControlName"; "required": false; }; "checked": { "alias": "checked"; "required": false; }; "label": { "alias": "label"; "required": false; }; "key": { "alias": "key"; "required": false; }; "value": { "alias": "value"; "required": false; }; "showError": { "alias": "showError"; "required": false; }; "disposition": { "alias": "disposition"; "required": false; }; }, { "wasChecked": "wasChecked"; }, never, never, true, never>;
+}

+ 12 - 0
lib/forms/utils/form.util.d.ts

@@ -0,0 +1,12 @@
+import { ExistingProvider } from '@angular/core';
+/**
+ * Creates a value accessor provider for a form component.
+ * @param component - The component that implements the NG_VALUE_ACCESSOR interface.
+ * @returns An ExistingProvider object for the value accessor.
+ */
+export declare const provideValueAccessor: (component: unknown) => ExistingProvider;
+/**
+ * Creates a control container provider using FormGroupDirective.
+ * @returns An ExistingProvider object for the control container.
+ */
+export declare const provideControlContainer: () => ExistingProvider;

+ 2 - 0
lib/forms/utils/validators.util.d.ts

@@ -0,0 +1,2 @@
+import { ValidatorFn } from '@angular/forms';
+export declare function integerValidator(): ValidatorFn;

+ 156 - 0
lib/main.scss

@@ -0,0 +1,156 @@
+@import 'tailwindcss/base';
+@import 'tailwindcss/components';
+@import 'tailwindcss/utilities';
+@import '@angular/cdk/overlay-prebuilt.css';
+
+@font-face {
+  font-family: 'IBMPlexSans';
+  src: url('/assets/fonts/IBMPlexSans-Thin.ttf') format('truetype');
+  font-weight: 100;
+}
+@font-face {
+  font-family: 'IBMPlexSans';
+  src: url('/assets/fonts/IBMPlexSans-ExtraLight.ttf') format('truetype');
+  font-weight: 200;
+}
+@font-face {
+  font-family: 'IBMPlexSans';
+  src: url('/assets/fonts/IBMPlexSans-Light.ttf') format('truetype');
+  font-weight: 300;
+}
+@font-face {
+  font-family: 'IBMPlexSans';
+  src: url('/assets/fonts/IBMPlexSans-Medium.ttf') format('truetype');
+  font-weight: 500;
+}
+@font-face {
+  font-family: 'IBMPlexSans';
+  src: url('/assets/fonts/IBMPlexSans-Regular.ttf') format('truetype');
+  font-weight: 400;
+}
+@font-face {
+  font-family: 'IBMPlexSans';
+  src: url('/assets/fonts/IBMPlexSans-SemiBold.ttf') format('truetype');
+  font-weight: 600;
+}
+@font-face {
+  font-family: 'IBMPlexSans';
+  src: url('/assets/fonts/IBMPlexSans-Bold.ttf') format('truetype');
+  font-weight: 700;
+}
+@font-face {
+  font-family: 'Merriweather';
+  src: url('/assets/fonts/Merriweather-Light.ttf') format('truetype');
+  font-weight: 300;
+}
+@font-face {
+  font-family: 'Merriweather';
+  src: url('/assets/fonts/Merriweather-Regular.ttf') format('truetype');
+  font-weight: 400;
+}
+@font-face {
+  font-family: 'Merriweather';
+  src: url('/assets/fonts/Merriweather-Bold.ttf') format('truetype');
+  font-weight: 700;
+}
+@font-face {
+  font-family: 'Merriweather';
+  src: url('/assets/fonts/Merriweather-Black.ttf') format('truetype');
+  font-weight: 900;
+}
+@font-face {
+  font-family: 'Dancing Script';
+  src: url('/assets/fonts/DancingScript-Regular.ttf') format('truetype');
+  font-weight: 400;
+  font-style: normal;
+}
+
+@font-face {
+  font-family: 'Dancing Script';
+  src: url('/assets/fonts/DancingScript-Medium.ttf') format('truetype');
+  font-weight: 500;
+  font-style: normal;
+}
+
+@font-face {
+  font-family: 'Dancing Script';
+  src: url('/assets/fonts/DancingScript-SemiBold.ttf') format('truetype');
+  font-weight: 600;
+  font-style: normal;
+}
+
+@font-face {
+  font-family: 'Dancing Script';
+  src: url('/assets/fonts/DancingScript-Bold.ttf') format('truetype');
+  font-weight: 700;
+  font-style: normal;
+}
+
+@layer base {
+  :root {
+    --font-primary: 'IBMPlexSans';
+    --font-title: 'Merriweather';
+    --font-logo: 'Dancing Script';
+
+    --primary-950: 17 24 38;
+    --primary-900: 37 55 82;
+    --primary-800: 59 89 125;
+    --primary-700: 81 125 168;
+    --primary-600: 103 165 212;
+    --primary-500: 127 207 254;
+    --primary-400: 148 213 255;
+    --primary-300: 170 219 255;
+    --primary-200: 193 227 255;
+    --primary-100: 216 237 255;
+    --primary-50: 241 248 255;
+
+    --secondary-950: 9 19 16;
+    --secondary-900: 19 40 32;
+    --secondary-800: 30 60 47;
+    --secondary-700: 42 80 60;
+    --secondary-600: 53 100 73;
+    --secondary-500: 65 119 84;
+    --secondary-400: 98 144 118;
+    --secondary-300: 132 169 150;
+    --secondary-200: 166 194 182;
+    --secondary-100: 201 218 211;
+    --secondary-50: 236 242 240;
+
+    // --primary-950: 17 24 38;
+    // --primary-900: 37 55 82;
+    // --primary-800: 59 89 125;
+    // --primary-700: 81 125 168;
+    // --primary-600: 103 165 212;
+    // --primary-500: 127 207 254;
+    // --primary-400: 148 213 255;
+    // --primary-300: 170 219 255;
+    // --primary-200: 193 227 255;
+    // --primary-100: 216 237 255;
+    // --primary-50: 241 248 255;
+
+    // --secondary-950: 9 19 16;
+    // --secondary-900: 19 40 32;
+    // --secondary-800: 30 60 47;
+    // --secondary-700: 42 80 60;
+    // --secondary-600: 53 100 73;
+    // --secondary-500: 65 119 84;
+    // --secondary-400: 98 144 118;
+    // --secondary-300: 132 169 150;
+    // --secondary-200: 166 194 182;
+    // --secondary-100: 201 218 211;
+    // --secondary-50: 236 242 240;
+
+    --monochrome-950: 32 32 32;
+    --monochrome-900: 53 53 53;
+    --monochrome-800: 75 75 75;
+    --monochrome-700: 96 96 96;
+    --monochrome-600: 117 117 117;
+    --monochrome-500: 139 139 139;
+    --monochrome-400: 160 160 160;
+    --monochrome-300: 177 177 177;
+    --monochrome-200: 194 194 194;
+    --monochrome-100: 211 211 211;
+    --monochrome-50: 228 228 228;
+    --monochrome-10: 246 246 246;
+  }
+}

+ 1 - 0
lib/model/components/component-disposition.enum.d.ts

@@ -0,0 +1 @@
+export type ComponentDisposition = 'vertical' | 'horizontal';

+ 4 - 0
lib/model/components/component-position.type.d.ts

@@ -0,0 +1,4 @@
+/**
+ * Used for some components to determine positioning of various elements
+ */
+export type ComponentPosition = 'left' | 'right' | 'center' | 'top' | 'bottom' | 'middle';

+ 4 - 0
lib/model/components/component-size.type.d.ts

@@ -0,0 +1,4 @@
+/**
+ * Used for some components to determine sizing of various elements. Relates to 'tailwind' classes to facilitate dev's life
+ */
+export type ComponentSize = 'xs' | 'sm' | 'base' | 'lg' | 'xl' | '2xl' | '3xl';

+ 4 - 0
lib/model/components/component-type.type.d.ts

@@ -0,0 +1,4 @@
+/**
+ * Used for some components to determine colouring of various elements. Relates to CSS classes to facilitate dev's life
+ */
+export type ComponentType = 'primary' | 'secondary' | 'neutral' | 'success' | 'warning' | 'error';

+ 4 - 0
lib/model/components/component-variant.type.d.ts

@@ -0,0 +1,4 @@
+/**
+ * Used for some components to determine the variance of diverse elements.
+ */
+export type ComponentVariant = 'blank' | 'solid' | 'outline' | 'flat' | 'gradient';

+ 2 - 0
lib/model/forms/form-base.model.d.ts

@@ -7,6 +7,7 @@ export declare class FormBase<T> {
     value: T | undefined;
     key: any;
     label: string;
+    icon: string;
     placeholder: string;
     required: boolean;
     controlType: string;
@@ -15,6 +16,7 @@ export declare class FormBase<T> {
         value?: T;
         key?: any;
         label?: string;
+        icon?: string;
         required?: boolean;
         placeholder?: string;
         controlType?: string;

+ 3 - 2
lib/services/accordion-registry.service.d.ts

@@ -6,8 +6,9 @@ export declare class AccordionRegistryService {
     register(id: string, element: AccordionComponent): void;
     get(id: string): AccordionComponent | undefined;
     unregister(id: string): void;
-    getItem(accordion: string, itemId: string): AccordionItemComponent;
-    openItem(accordion: string, itemId: string): void;
+    getItem(accordionId: string, itemId: string): AccordionItemComponent;
+    openItem(accordionId: string, itemId: string): void;
+    closeItem(accordionId: string, itemId: string): void;
     static ɵfac: i0.ɵɵFactoryDeclaration<AccordionRegistryService, never>;
     static ɵprov: i0.ɵɵInjectableDeclaration<AccordionRegistryService>;
 }

+ 1 - 0
lib/services/form-generic.abstract.d.ts

@@ -12,6 +12,7 @@ export declare abstract class FormGenericComponent implements ControlValueAccess
     registerOnTouched(fn: () => void): void;
     protected triggerChange(value: any): void;
     protected triggerTouched(): void;
+    protected triggerMarkCheck(): void;
     protected triggerChangeDetection(): void;
     abstract writeValue(value: any): void;
 }

+ 4 - 3
package.json

@@ -1,9 +1,10 @@
 {
   "name": "circletone",
-  "version": "0.67.0",
+  "version": "0.68.0",
   "peerDependencies": {
-    "@angular/common": "^17.3.0",
-    "@angular/core": "^17.3.0"
+    "@angular/common": "^17.3.4",
+    "@angular/core": "^17.3.4",
+    "@angular/cdk": "^17.3.3"
   },
   "exports": {
     "./tailwind.config": "./tailwind.config.js",

+ 16 - 4
public-api.d.ts

@@ -5,18 +5,30 @@ export * from './lib/components/atoms/header/header.component';
 export * from './lib/components/atoms/icon/icon.component';
 export * from './lib/components/atoms/menu-item/menu-item.component';
 export * from './lib/components/atoms/accordion-item/accordion-item.component';
+export * from './lib/components/atoms/tab-button/tab-button.component';
+export * from './lib/components/atoms/list-item/list-item.component';
+export * from './lib/components/molecules/list/list.component';
 export * from './lib/components/molecules/accordion/accordion.component';
+export * from './lib/components/molecules/tab-group/tab-group.component';
 export * from './lib/components/molecules/card/card.component';
 export * from './lib/components/molecules/menu/menu.component';
+export * from './lib/forms/autocomplete/autocomplete.component';
 export * from './lib/forms/select/select.component';
 export * from './lib/forms/input/input.component';
-export * from './lib/directives/dropdown.directive';
+export * from './lib/forms/input-number/input-number.component';
+export * from './lib/forms/toggle/toggle.component';
+export * from './lib/forms/radio-group/radio-group.component';
+export * from './lib/forms/radio-button/radio-button.component';
+export * from './lib/directives/tab-panel.directive';
+export * from './lib/directives/overlay.directive';
 export * from './lib/pipes/safe-image.pipe';
 export * from './lib/model/forms/form-base.model';
 export * from './lib/model/forms/select.model';
 export * from './lib/model/forms/input.model';
-export * from './lib/model/components/size.enum';
-export * from './lib/model/components/type.enum';
-export * from './lib/model/components/variant.enum';
+export * from './lib/model/components/component-size.type';
+export * from './lib/model/components/component-type.type';
+export * from './lib/model/components/component-variant.type';
+export * from './lib/model/components/component-disposition.enum';
 export * from './lib/services/accordion-registry.service';
 export * from './lib/services/screen-size.service';
+export * from './lib/forms/utils/validators.util';

+ 78 - 127
tailwind.config.js

@@ -1,6 +1,6 @@
 var colors = require('tailwindcss/colors');
 var plugin = require('tailwindcss/plugin');
-var types = ['primary', 'secondary', 'tertiary', 'warning', 'success', 'error'];
+var types = ['primary', 'secondary', 'neutral', 'warning', 'success', 'error'];
 
 function generateSafeList(types) {
   var safelist = [];
@@ -9,13 +9,18 @@ function generateSafeList(types) {
       ...[
         `text-on-${type}`,
         `dark:text-on-${type}-dark`,
-        `hover:text-${type}-dark`,
-        `dark:hover:text-${type}`,
+        `text-${type}`,
+        `dark:text-${type}-dark`,
+        `hover:text-${type}-variant`,
+        `dark:hover:text-${type}-variant-dark`,
         `bg-${type}`,
+        `bg-${type}/25`,
         `from-${type}-variant`,
         `to-${type}`,
         `dark:bg-${type}-dark`,
+        `dark:bg-${type}-dark/25`,
         `hover:bg-${type}-variant`,
+        `hover:bg-${type}-variant/25`,
         `hover:dark:bg-${type}-variant-dark`,
         `border-${type}`,
         `dark:border-${type}-dark`,
@@ -45,26 +50,34 @@ module.exports = {
         title: 'var(--font-title)',
         logo: 'var(--font-logo)',
       },
+      fontWeight: {
+        thin: '100',
+        extralight: '200',
+        light: '300',
+        normal: '400',
+        medium: '500',
+        semibold: '600',
+        bold: '700',
+        extrabold: '800',
+        black: '900',
+      },
       colors: {
         ...colors,
         primary: {
           DEFAULT: 'rgb(var(--primary-400) / <alpha-value>)',
-          dark: 'rgb(var(--primary-700) / <alpha-value>)',
+          dark: 'rgb(var(--primary-800) / <alpha-value>)',
           container: {
             DEFAULT: 'rgb(var(--primary-200) / <alpha-value>)',
-            dark: 'rgb(var(--primary-800) / <alpha-value>)',
+            dark: 'rgb(var(--primary-900) / <alpha-value>)',
           },
           variant: {
             DEFAULT: 'rgb(var(--primary-600) / <alpha-value>)',
-            dark: 'rgb(var(--primary-500) / <alpha-value>)',
+            dark: 'rgb(var(--primary-700) / <alpha-value>)',
           },
           50: 'rgb(var(--primary-50) / <alpha-value>)',
           100: 'rgb(var(--primary-100) / <alpha-value>)',
-          150: 'rgb(var(--primary-150) / <alpha-value>)',
           200: 'rgb(var(--primary-200) / <alpha-value>)',
-          250: 'rgb(var(--primary-250) / <alpha-value>)',
           300: 'rgb(var(--primary-300) / <alpha-value>)',
-          350: 'rgb(var(--primary-350) / <alpha-value>)',
           400: 'rgb(var(--primary-400) / <alpha-value>)',
           500: 'rgb(var(--primary-500) / <alpha-value>)',
           600: 'rgb(var(--primary-600) / <alpha-value>)',
@@ -74,23 +87,20 @@ module.exports = {
           950: 'rgb(var(--primary-950) / <alpha-value>)',
         },
         secondary: {
-          DEFAULT: 'rgb(var(--secondary-400) / <alpha-value>)',
-          dark: 'rgb(var(--secondary-700) / <alpha-value>)',
+          DEFAULT: 'rgb(var(--secondary-300) / <alpha-value>)',
+          dark: 'rgb(var(--secondary-800) / <alpha-value>)',
           container: {
-            DEFAULT: 'rgb(var(--secondary-200) / <alpha-value>)',
+            DEFAULT: 'rgb(var(--secondary-100) / <alpha-value>)',
             dark: 'rgb(var(--secondary-800) / <alpha-value>)',
           },
           variant: {
-            DEFAULT: 'rgb(var(--secondary-600) / <alpha-value>)',
-            dark: 'rgb(var(--secondary-500) / <alpha-value>)',
+            DEFAULT: 'rgb(var(--secondary-500) / <alpha-value>)',
+            dark: 'rgb(var(--secondary-700) / <alpha-value>)',
           },
-          50: 'rgb(var(--secondary-50) / <alpha-value>)',
+          50: 'rgb(var(--primary-50) / <alpha-value>)',
           100: 'rgb(var(--secondary-100) / <alpha-value>)',
-          150: 'rgb(var(--secondary-150) / <alpha-value>)',
           200: 'rgb(var(--secondary-200) / <alpha-value>)',
-          250: 'rgb(var(--secondary-250) / <alpha-value>)',
           300: 'rgb(var(--secondary-300) / <alpha-value>)',
-          350: 'rgb(var(--secondary-350) / <alpha-value>)',
           400: 'rgb(var(--secondary-400) / <alpha-value>)',
           500: 'rgb(var(--secondary-500) / <alpha-value>)',
           600: 'rgb(var(--secondary-600) / <alpha-value>)',
@@ -99,179 +109,120 @@ module.exports = {
           900: 'rgb(var(--secondary-900) / <alpha-value>)',
           950: 'rgb(var(--secondary-950) / <alpha-value>)',
         },
-        tertiary: {
-          DEFAULT: 'rgb(var(--tertiary-400) / <alpha-value>)',
-          dark: 'rgb(var(--tertiary-700) / <alpha-value>)',
-          container: {
-            DEFAULT: 'rgb(var(--tertiary-200) / <alpha-value>)',
-            dark: 'rgb(var(--tertiary-800) / <alpha-value>)',
-          },
+        neutral: {
+          DEFAULT: 'rgb(var(--monochrome-400) / <alpha-value>)',
+          dark: 'rgb(var(--monochrome-700) / <alpha-value>)',
+          50: 'rgb(var(--monochrome-50) / <alpha-value>)',
+          100: 'rgb(var(--monochrome-100) / <alpha-value>)',
+          200: 'rgb(var(--monochrome-200) / <alpha-value>)',
+          300: 'rgb(var(--monochrome-300) / <alpha-value>)',
+          400: 'rgb(var(--monochrome-400) / <alpha-value>)',
+          500: 'rgb(var(--monochrome-500) / <alpha-value>)',
+          600: 'rgb(var(--monochrome-600) / <alpha-value>)',
+          700: 'rgb(var(--monochrome-700) / <alpha-value>)',
+          800: 'rgb(var(--monochrome-800) / <alpha-value>)',
+          900: 'rgb(var(--monochrome-900) / <alpha-value>)',
+          950: 'rgb(var(--monochrome-950) / <alpha-value>)',
           variant: {
-            DEFAULT: 'rgb(var(--tertiary-600) / <alpha-value>)',
-            dark: 'rgb(var(--tertiary-500) / <alpha-value>)',
+            DEFAULT: 'rgb(var(--monochrome-500) / <alpha-value>)',
+            dark: 'rgb(var(--monochrome-500) / <alpha-value>)',
           },
-          50: 'rgb(var(--tertiary-50) / <alpha-value>)',
-          100: 'rgb(var(--tertiary-100) / <alpha-value>)',
-          150: 'rgb(var(--tertiary-150) / <alpha-value>)',
-          200: 'rgb(var(--tertiary-200) / <alpha-value>)',
-          250: 'rgb(var(--tertiary-250) / <alpha-value>)',
-          300: 'rgb(var(--tertiary-300) / <alpha-value>)',
-          350: 'rgb(var(--tertiary-350) / <alpha-value>)',
-          400: 'rgb(var(--tertiary-400) / <alpha-value>)',
-          500: 'rgb(var(--tertiary-500) / <alpha-value>)',
-          600: 'rgb(var(--tertiary-600) / <alpha-value>)',
-          700: 'rgb(var(--tertiary-700) / <alpha-value>)',
-          800: 'rgb(var(--tertiary-800) / <alpha-value>)',
-          900: 'rgb(var(--tertiary-900) / <alpha-value>)',
-          950: 'rgb(var(--tertiary-950) / <alpha-value>)',
-        },
-        neutral: {
-          50: 'rgb(var(--neutral-50) / <alpha-value>)',
-          100: 'rgb(var(--neutral-100) / <alpha-value>)',
-          150: 'rgb(var(--neutral-150) / <alpha-value>)',
-          200: 'rgb(var(--neutral-200) / <alpha-value>)',
-          250: 'rgb(var(--neutral-250) / <alpha-value>)',
-          300: 'rgb(var(--neutral-300) / <alpha-value>)',
-          350: 'rgb(var(--neutral-350) / <alpha-value>)',
-          400: 'rgb(var(--neutral-400) / <alpha-value>)',
-          500: 'rgb(var(--neutral-500) / <alpha-value>)',
-          600: 'rgb(var(--neutral-600) / <alpha-value>)',
-          700: 'rgb(var(--neutral-700) / <alpha-value>)',
-          800: 'rgb(var(--neutral-800) / <alpha-value>)',
-          900: 'rgb(var(--neutral-900) / <alpha-value>)',
-          950: 'rgb(var(--neutral-950) / <alpha-value>)',
-        },
-        'neutral-variant': {
-          50: 'rgb(var(--neutral-variant-50) / <alpha-value>)',
-          100: 'rgb(var(--neutral-variant-100) / <alpha-value>)',
-          150: 'rgb(var(--neutral-variant-150) / <alpha-value>)',
-          200: 'rgb(var(--neutral-variant-200) / <alpha-value>)',
-          250: 'rgb(var(--neutral-variant-250) / <alpha-value>)',
-          300: 'rgb(var(--neutral-variant-300) / <alpha-value>)',
-          350: 'rgb(var(--neutral-variant-350) / <alpha-value>)',
-          400: 'rgb(var(--neutral-variant-400) / <alpha-value>)',
-          500: 'rgb(var(--neutral-variant-500) / <alpha-value>)',
-          600: 'rgb(var(--neutral-variant-600) / <alpha-value>)',
-          700: 'rgb(var(--neutral-variant-700) / <alpha-value>)',
-          800: 'rgb(var(--neutral-variant-800) / <alpha-value>)',
-          900: 'rgb(var(--neutral-variant-900) / <alpha-value>)',
-          950: 'rgb(var(--neutral-variant-950) / <alpha-value>)',
         },
         background: {
-          DEFAULT: 'rgb(var(--neutral-50) / <alpha-value>)',
-          dark: 'rgb(var(--neutral-variant-950) / <alpha-value>)',
-        },
-        surface: {
           DEFAULT: 'rgb(var(--primary-50) / <alpha-value>)',
           dark: 'rgb(var(--primary-950) / <alpha-value>)',
-          variant: {
-            DEFAULT: 'rgb(var(--neutral-variant-50) / <alpha-value>)',
-            dark: 'rgb(var(--neutral-variant-800) / <alpha-value>)',
-          },
         },
-        outline: {
-          DEFAULT: 'rgb(var(--neutral-variant-600) / <alpha-value>)',
-          dark: 'rgb(var(--neutral-variant-500) / <alpha-value>)',
+        surface: {
+          DEFAULT: 'rgb(var(--primary-100) / <alpha-value>)',
+          dark: 'rgb(var(--primary-800) / <alpha-value>)',
           variant: {
-            DEFAULT: 'rgb(var(--neutral-variant-300) / <alpha-value>)',
-            dark: 'rgb(var(--neutral-variant-800) / <alpha-value>)',
+            DEFAULT: 'rgb(var(--primary-400) / <alpha-value>)',
+            dark: 'rgb(var(--primary-700) / <alpha-value>)',
           },
         },
         success: {
           DEFAULT: colors.green[400],
-          dark: colors.green[700],
+          dark: colors.green[600],
           variant: {
             DEFAULT: colors.green[500],
-            dark: colors.green[600],
+            dark: colors.green[500],
           },
         },
         warning: {
           DEFAULT: colors.amber[400],
-          dark: colors.amber[700],
+          dark: colors.amber[600],
           variant: {
             DEFAULT: colors.amber[500],
-            dark: colors.amber[600],
+            dark: colors.amber[500],
           },
         },
         error: {
           DEFAULT: colors.red[400],
-          dark: colors.red[700],
+          dark: colors.red[600],
           variant: {
             DEFAULT: colors.red[500],
-            dark: colors.red[600],
+            dark: colors.red[500],
           },
         },
         on: {
           primary: {
-            DEFAULT: 'rgb(var(--neutral-variant-950) / <alpha-value>)',
-            dark: 'rgb(var(--neutral-variant-50) / <alpha-value>)',
+            DEFAULT: 'rgb(var(--primary-950) / <alpha-value>)',
+            dark: 'rgb(var(--primary-50) / <alpha-value>)',
             container: {
-              DEFAULT: 'rgb(var(--neutral-variant-900) / <alpha-value>)',
-              dark: 'rgb(var(--neutral-variant-50) / <alpha-value>)',
-            },
-            variant: {
-              DEFAULT: 'rgb(var(--neutral-variant-200) / <alpha-value>)',
-              dark: 'rgb(var(--neutral-variant-100) / <alpha-value>)',
+              DEFAULT: 'rgb(var(--primary-900) / <alpha-value>)',
+              dark: 'rgb(var(--primary-50) / <alpha-value>)',
             },
           },
           secondary: {
-            DEFAULT: 'rgb(var(--neutral-variant-950) / <alpha-value>)',
-            dark: 'rgb(var(--neutral-variant-50) / <alpha-value>)',
+            DEFAULT: 'rgb(var(--secondary-950) / <alpha-value>)',
+            dark: 'rgb(var(--secondary-50) / <alpha-value>)',
             container: {
               DEFAULT: 'rgb(var(--secondary-900) / <alpha-value>)',
               dark: 'rgb(var(--secondary-50) / <alpha-value>)',
             },
-            variant: {
-              DEFAULT: 'rgb(var(--secondary-200) / <alpha-value>)',
-              dark: 'rgb(var(--secondary-100) / <alpha-value>)',
-            },
           },
-          tertiary: {
-            DEFAULT: 'rgb(var(--neutral-variant-950) / <alpha-value>)',
-            dark: 'rgb(var(--neutral-variant-50) / <alpha-value>)',
-            container: {
-              DEFAULT: 'rgb(var(--tertiary-900) / <alpha-value>)',
-              dark: 'rgb(var(--tertiary-50) / <alpha-value>)',
-            },
+          neutral: {
+            DEFAULT: 'rgb(var(--monochrome-950) / <alpha-value>)',
+            dark: 'rgb(var(--monochrome-10) / <alpha-value>)',
             variant: {
-              DEFAULT: 'rgb(var(--tertiary-200) / <alpha-value>)',
-              dark: 'rgb(var(--tertiary-100) / <alpha-value>)',
+              DEFAULT: 'rgb(var(--monochrome-800) / <alpha-value>)',
+              dark: 'rgb(var(--monochrome-50) / <alpha-value>)',
             },
           },
           background: {
-            DEFAULT: 'rgb(var(--neutral-900) / <alpha-value>)',
-            dark: 'rgb(var(--neutral-variant-100) / <alpha-value>)',
+            DEFAULT: 'rgb(var(--monochrome-950) / <alpha-value>)',
+            dark: 'rgb(var(--monochrome-10) / <alpha-value>)',
           },
           surface: {
-            DEFAULT: 'rgb(var(--neutral-900) / <alpha-value>)',
-            dark: 'rgb(var(--neutral-variant-100) / <alpha-value>)',
+            DEFAULT: 'rgb(var(--monochrome-950) / <alpha-value>)',
+            dark: 'rgb(var(--monochrome-100) / <alpha-value>)',
             variant: {
-              DEFAULT: 'rgb(var(--neutral-variant-800) / <alpha-value>)',
-              dark: 'rgb(var(--neutral-variant-300) / <alpha-value>)',
+              DEFAULT: 'rgb(var(--monochrome-700) / <alpha-value>)',
+              dark: 'rgb(var(--monochrome-200) / <alpha-value>)',
             },
           },
           success: {
             DEFAULT: colors.green[950],
             dark: colors.green[50],
             variant: {
-              DEFAULT: colors.green[800],
-              dark: colors.green[300],
+              DEFAULT: colors.green[400],
+              dark: colors.green[600],
             },
           },
           warning: {
             DEFAULT: colors.amber[950],
             dark: colors.amber[50],
             variant: {
-              DEFAULT: colors.amber[300],
-              dark: colors.amber[800],
+              DEFAULT: colors.amber[400],
+              dark: colors.amber[600],
             },
           },
           error: {
             DEFAULT: colors.red[950],
             dark: colors.red[50],
             variant: {
-              DEFAULT: colors.red[300],
-              dark: colors.red[800],
+              DEFAULT: colors.red[400],
+              dark: colors.red[600],
             },
           },
         },

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно