@area8975/ui 0.2.2-dev.49 → 0.2.2-dev.50

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. package/README.md +3 -2
  2. package/fesm2022/area8975-ui-alert.mjs +113 -0
  3. package/fesm2022/area8975-ui-alert.mjs.map +1 -0
  4. package/fesm2022/area8975-ui-avatar.mjs +157 -0
  5. package/fesm2022/area8975-ui-avatar.mjs.map +1 -0
  6. package/fesm2022/area8975-ui-badge.mjs +116 -0
  7. package/fesm2022/area8975-ui-badge.mjs.map +1 -0
  8. package/fesm2022/area8975-ui-button.mjs +314 -0
  9. package/fesm2022/area8975-ui-button.mjs.map +1 -0
  10. package/fesm2022/area8975-ui-calendar.mjs +549 -0
  11. package/fesm2022/area8975-ui-calendar.mjs.map +1 -0
  12. package/fesm2022/area8975-ui-card-header.mjs +96 -0
  13. package/fesm2022/area8975-ui-card-header.mjs.map +1 -0
  14. package/fesm2022/area8975-ui-card.mjs +73 -0
  15. package/fesm2022/area8975-ui-card.mjs.map +1 -0
  16. package/fesm2022/area8975-ui-chart-palette.mjs +225 -0
  17. package/fesm2022/area8975-ui-chart-palette.mjs.map +1 -0
  18. package/fesm2022/area8975-ui-charts.mjs +2813 -0
  19. package/fesm2022/area8975-ui-charts.mjs.map +1 -0
  20. package/fesm2022/area8975-ui-checkbox.mjs +202 -0
  21. package/fesm2022/area8975-ui-checkbox.mjs.map +1 -0
  22. package/fesm2022/area8975-ui-colour.mjs +200 -0
  23. package/fesm2022/area8975-ui-colour.mjs.map +1 -0
  24. package/fesm2022/area8975-ui-container.mjs +40 -0
  25. package/fesm2022/area8975-ui-container.mjs.map +1 -0
  26. package/fesm2022/area8975-ui-counter.mjs +246 -0
  27. package/fesm2022/area8975-ui-counter.mjs.map +1 -0
  28. package/fesm2022/area8975-ui-date-range-picker.mjs +554 -0
  29. package/fesm2022/area8975-ui-date-range-picker.mjs.map +1 -0
  30. package/fesm2022/area8975-ui-datepicker.mjs +547 -0
  31. package/fesm2022/area8975-ui-datepicker.mjs.map +1 -0
  32. package/fesm2022/area8975-ui-disclosure.mjs +279 -0
  33. package/fesm2022/area8975-ui-disclosure.mjs.map +1 -0
  34. package/fesm2022/area8975-ui-drawer.mjs +106 -0
  35. package/fesm2022/area8975-ui-drawer.mjs.map +1 -0
  36. package/fesm2022/area8975-ui-dropdown-button.mjs +141 -0
  37. package/fesm2022/area8975-ui-dropdown-button.mjs.map +1 -0
  38. package/fesm2022/area8975-ui-dropdown-menu.mjs +96 -0
  39. package/fesm2022/area8975-ui-dropdown-menu.mjs.map +1 -0
  40. package/fesm2022/area8975-ui-dropdown.mjs +208 -0
  41. package/fesm2022/area8975-ui-dropdown.mjs.map +1 -0
  42. package/fesm2022/area8975-ui-dropzone.mjs +332 -0
  43. package/fesm2022/area8975-ui-dropzone.mjs.map +1 -0
  44. package/fesm2022/area8975-ui-field.mjs +191 -0
  45. package/fesm2022/area8975-ui-field.mjs.map +1 -0
  46. package/fesm2022/area8975-ui-file-input.mjs +340 -0
  47. package/fesm2022/area8975-ui-file-input.mjs.map +1 -0
  48. package/fesm2022/area8975-ui-file.mjs +47 -0
  49. package/fesm2022/area8975-ui-file.mjs.map +1 -0
  50. package/fesm2022/area8975-ui-format.mjs +70 -0
  51. package/fesm2022/area8975-ui-format.mjs.map +1 -0
  52. package/fesm2022/area8975-ui-input-addon.mjs +42 -0
  53. package/fesm2022/area8975-ui-input-addon.mjs.map +1 -0
  54. package/fesm2022/area8975-ui-input-group.mjs +86 -0
  55. package/fesm2022/area8975-ui-input-group.mjs.map +1 -0
  56. package/fesm2022/area8975-ui-input.mjs +682 -0
  57. package/fesm2022/area8975-ui-input.mjs.map +1 -0
  58. package/fesm2022/area8975-ui-kpi.mjs +167 -0
  59. package/fesm2022/area8975-ui-kpi.mjs.map +1 -0
  60. package/fesm2022/area8975-ui-layout.mjs +63 -0
  61. package/fesm2022/area8975-ui-layout.mjs.map +1 -0
  62. package/fesm2022/area8975-ui-loading.mjs +76 -0
  63. package/fesm2022/area8975-ui-loading.mjs.map +1 -0
  64. package/fesm2022/area8975-ui-modal-close-btn.mjs +89 -0
  65. package/fesm2022/area8975-ui-modal-close-btn.mjs.map +1 -0
  66. package/fesm2022/area8975-ui-modal.mjs +235 -0
  67. package/fesm2022/area8975-ui-modal.mjs.map +1 -0
  68. package/fesm2022/area8975-ui-money.mjs +230 -0
  69. package/fesm2022/area8975-ui-money.mjs.map +1 -0
  70. package/fesm2022/area8975-ui-overlay.mjs +317 -0
  71. package/fesm2022/area8975-ui-overlay.mjs.map +1 -0
  72. package/fesm2022/area8975-ui-pagination.mjs +152 -0
  73. package/fesm2022/area8975-ui-pagination.mjs.map +1 -0
  74. package/fesm2022/area8975-ui-private.mjs +63 -0
  75. package/fesm2022/area8975-ui-private.mjs.map +1 -0
  76. package/fesm2022/area8975-ui-progress.mjs +307 -0
  77. package/fesm2022/area8975-ui-progress.mjs.map +1 -0
  78. package/fesm2022/area8975-ui-radio.mjs +199 -0
  79. package/fesm2022/area8975-ui-radio.mjs.map +1 -0
  80. package/fesm2022/area8975-ui-rich-text-editor.mjs +778 -0
  81. package/fesm2022/area8975-ui-rich-text-editor.mjs.map +1 -0
  82. package/fesm2022/area8975-ui-search.mjs +266 -0
  83. package/fesm2022/area8975-ui-search.mjs.map +1 -0
  84. package/fesm2022/area8975-ui-segmented.mjs +118 -0
  85. package/fesm2022/area8975-ui-segmented.mjs.map +1 -0
  86. package/fesm2022/area8975-ui-select.mjs +926 -0
  87. package/fesm2022/area8975-ui-select.mjs.map +1 -0
  88. package/fesm2022/area8975-ui-sidebar-group.mjs +60 -0
  89. package/fesm2022/area8975-ui-sidebar-group.mjs.map +1 -0
  90. package/fesm2022/area8975-ui-sidebar-item.mjs +107 -0
  91. package/fesm2022/area8975-ui-sidebar-item.mjs.map +1 -0
  92. package/fesm2022/area8975-ui-sidebar.mjs +109 -0
  93. package/fesm2022/area8975-ui-sidebar.mjs.map +1 -0
  94. package/fesm2022/area8975-ui-skeleton.mjs +116 -0
  95. package/fesm2022/area8975-ui-skeleton.mjs.map +1 -0
  96. package/fesm2022/area8975-ui-stat.mjs +55 -0
  97. package/fesm2022/area8975-ui-stat.mjs.map +1 -0
  98. package/fesm2022/area8975-ui-switch.mjs +132 -0
  99. package/fesm2022/area8975-ui-switch.mjs.map +1 -0
  100. package/fesm2022/area8975-ui-tab.mjs +217 -0
  101. package/fesm2022/area8975-ui-tab.mjs.map +1 -0
  102. package/fesm2022/area8975-ui-table-filters.mjs +499 -0
  103. package/fesm2022/area8975-ui-table-filters.mjs.map +1 -0
  104. package/fesm2022/area8975-ui-table.mjs +1237 -0
  105. package/fesm2022/area8975-ui-table.mjs.map +1 -0
  106. package/fesm2022/area8975-ui-textarea.mjs +375 -0
  107. package/fesm2022/area8975-ui-textarea.mjs.map +1 -0
  108. package/fesm2022/area8975-ui-theme.mjs +246 -0
  109. package/fesm2022/area8975-ui-theme.mjs.map +1 -0
  110. package/fesm2022/area8975-ui-time-select.mjs +170 -0
  111. package/fesm2022/area8975-ui-time-select.mjs.map +1 -0
  112. package/fesm2022/area8975-ui-toast.mjs +269 -0
  113. package/fesm2022/area8975-ui-toast.mjs.map +1 -0
  114. package/fesm2022/area8975-ui-toaster.mjs +117 -0
  115. package/fesm2022/area8975-ui-toaster.mjs.map +1 -0
  116. package/fesm2022/area8975-ui-tooltip.mjs +196 -0
  117. package/fesm2022/area8975-ui-tooltip.mjs.map +1 -0
  118. package/fesm2022/area8975-ui-user-menu.mjs +186 -0
  119. package/fesm2022/area8975-ui-user-menu.mjs.map +1 -0
  120. package/fesm2022/area8975-ui.mjs +0 -16520
  121. package/package.json +237 -1
  122. package/types/area8975-ui-alert.d.ts +25 -0
  123. package/types/area8975-ui-avatar.d.ts +40 -0
  124. package/types/area8975-ui-badge.d.ts +31 -0
  125. package/types/area8975-ui-button.d.ts +129 -0
  126. package/types/area8975-ui-calendar.d.ts +177 -0
  127. package/types/area8975-ui-card-header.d.ts +28 -0
  128. package/types/area8975-ui-card.d.ts +18 -0
  129. package/types/area8975-ui-chart-palette.d.ts +176 -0
  130. package/types/area8975-ui-charts.d.ts +747 -0
  131. package/types/area8975-ui-checkbox.d.ts +61 -0
  132. package/types/area8975-ui-colour.d.ts +31 -0
  133. package/types/area8975-ui-container.d.ts +5 -0
  134. package/types/area8975-ui-counter.d.ts +43 -0
  135. package/types/area8975-ui-date-range-picker.d.ts +132 -0
  136. package/types/area8975-ui-datepicker.d.ts +124 -0
  137. package/types/area8975-ui-disclosure.d.ts +79 -0
  138. package/types/area8975-ui-drawer.d.ts +25 -0
  139. package/types/area8975-ui-dropdown-button.d.ts +32 -0
  140. package/types/area8975-ui-dropdown-menu.d.ts +25 -0
  141. package/types/area8975-ui-dropdown.d.ts +56 -0
  142. package/types/area8975-ui-dropzone.d.ts +96 -0
  143. package/types/area8975-ui-field.d.ts +72 -0
  144. package/types/area8975-ui-file-input.d.ts +72 -0
  145. package/types/area8975-ui-file.d.ts +21 -0
  146. package/types/area8975-ui-format.d.ts +37 -0
  147. package/types/area8975-ui-input-addon.d.ts +10 -0
  148. package/types/area8975-ui-input-group.d.ts +18 -0
  149. package/types/area8975-ui-input.d.ts +224 -0
  150. package/types/area8975-ui-kpi.d.ts +36 -0
  151. package/types/area8975-ui-layout.d.ts +7 -0
  152. package/types/area8975-ui-loading.d.ts +16 -0
  153. package/types/area8975-ui-modal-close-btn.d.ts +14 -0
  154. package/types/area8975-ui-modal.d.ts +45 -0
  155. package/types/area8975-ui-money.d.ts +77 -0
  156. package/types/area8975-ui-overlay.d.ts +75 -0
  157. package/types/area8975-ui-pagination.d.ts +27 -0
  158. package/types/area8975-ui-private.d.ts +20 -0
  159. package/types/area8975-ui-progress.d.ts +127 -0
  160. package/types/area8975-ui-radio.d.ts +61 -0
  161. package/types/area8975-ui-rich-text-editor.d.ts +165 -0
  162. package/types/area8975-ui-search.d.ts +56 -0
  163. package/types/area8975-ui-segmented.d.ts +41 -0
  164. package/types/area8975-ui-select.d.ts +293 -0
  165. package/types/area8975-ui-sidebar-group.d.ts +15 -0
  166. package/types/area8975-ui-sidebar-item.d.ts +20 -0
  167. package/types/area8975-ui-sidebar.d.ts +16 -0
  168. package/types/area8975-ui-skeleton.d.ts +35 -0
  169. package/types/area8975-ui-stat.d.ts +13 -0
  170. package/types/area8975-ui-switch.d.ts +32 -0
  171. package/types/area8975-ui-tab.d.ts +45 -0
  172. package/types/area8975-ui-table-filters.d.ts +138 -0
  173. package/types/area8975-ui-table.d.ts +371 -0
  174. package/types/area8975-ui-textarea.d.ts +126 -0
  175. package/types/area8975-ui-theme.d.ts +61 -0
  176. package/types/area8975-ui-time-select.d.ts +35 -0
  177. package/types/area8975-ui-toast.d.ts +78 -0
  178. package/types/area8975-ui-toaster.d.ts +23 -0
  179. package/types/area8975-ui-tooltip.d.ts +47 -0
  180. package/types/area8975-ui-user-menu.d.ts +39 -0
  181. package/types/area8975-ui.d.ts +1 -4546
  182. package/fesm2022/area8975-ui.mjs.map +0 -1
package/README.md CHANGED
@@ -120,10 +120,11 @@ export const appConfig: ApplicationConfig = {
120
120
 
121
121
  ## Usage
122
122
 
123
- Everything is standalone, import what you need:
123
+ Everything is standalone, and each component has its own entry point, so import what you need from where it lives:
124
124
 
125
125
  ```ts
126
- import { UiButtonComponent, UiInputComponent } from '@area8975/ui';
126
+ import { UiButtonComponent } from '@area8975/ui/button';
127
+ import { UiInputComponent } from '@area8975/ui/input';
127
128
 
128
129
 
129
130
  @Component({
@@ -0,0 +1,113 @@
1
+ import * as i0 from "@angular/core";
2
+ import { Component, computed, contentChild, input } from "@angular/core";
3
+ var UiAlertComponent = class UiAlertComponent {
4
+ appearance = input("soft", ...ngDevMode ? [{ debugName: "appearance" }] : /* istanbul ignore next */ []);
5
+ intent = input("info", ...ngDevMode ? [{ debugName: "intent" }] : /* istanbul ignore next */ []);
6
+ icon = contentChild("icon", {
7
+ ...ngDevMode ? { debugName: "icon" } : /* istanbul ignore next */ {},
8
+ descendants: false
9
+ });
10
+ generatedClasses = computed(() => [
11
+ "block",
12
+ "ui-alert",
13
+ `ui-alert--${this.appearance()}`,
14
+ `ui-alert--${this.intent()}`
15
+ ].filter(Boolean).join(" "), ...ngDevMode ? [{ debugName: "generatedClasses" }] : /* istanbul ignore next */ []);
16
+ static ɵfac = i0.ɵɵngDeclareFactory({
17
+ minVersion: "12.0.0",
18
+ version: "22.2.1",
19
+ ngImport: i0,
20
+ type: UiAlertComponent,
21
+ deps: [],
22
+ target: i0.ɵɵFactoryTarget.Component
23
+ });
24
+ static ɵcmp = i0.ɵɵngDeclareComponent({
25
+ minVersion: "17.2.0",
26
+ version: "22.2.1",
27
+ type: UiAlertComponent,
28
+ isStandalone: true,
29
+ selector: "ui-alert",
30
+ inputs: {
31
+ appearance: {
32
+ classPropertyName: "appearance",
33
+ publicName: "appearance",
34
+ isSignal: true,
35
+ isRequired: false,
36
+ transformFunction: null
37
+ },
38
+ intent: {
39
+ classPropertyName: "intent",
40
+ publicName: "intent",
41
+ isSignal: true,
42
+ isRequired: false,
43
+ transformFunction: null
44
+ }
45
+ },
46
+ host: {
47
+ attributes: { "role": "alert" },
48
+ properties: { "class": "generatedClasses()" }
49
+ },
50
+ queries: [{
51
+ propertyName: "icon",
52
+ first: true,
53
+ predicate: ["icon"],
54
+ isSignal: true
55
+ }],
56
+ ngImport: i0,
57
+ template: "<ng-content />\n",
58
+ styles: ["@layer properties;::ng-deep .ui-alert{display:inline-block;padding:calc(var(--spacing, .25rem) * 4)}:where(:is()>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing, .25rem) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing, .25rem) * 4) * calc(1 - var(--tw-space-y-reverse)))}::ng-deep .ui-alert--icon{display:flex;width:calc(var(--spacing, .25rem) * 8);height:calc(var(--spacing, .25rem) * 8);align-items:center;justify-content:center;border-radius:var(--radius-full, calc(infinity * 1px));border-style:var(--tw-border-style);border-width:4px}:host(.ui-alert--soft){border-radius:var(--radius-md, .375rem);border-style:var(--tw-border-style);border-width:1px}:host(.ui-alert--bordered){border-inline-start-style:var(--tw-border-style);border-inline-start-width:6px}:host(.ui-alert--info){border-color:var(--color-primary-200, var(--color-blue-200));background-color:var(--color-primary-50, var(--color-blue-50));color:var(--color-primary-800, var(--color-blue-800))}::ng-deep .ui-alert--info .ui-alert--icon{border-color:var(--color-primary-100, var(--color-blue-100));background-color:var(--color-primary-200, var(--color-blue-200))}:host(.ui-alert--success){border-color:var(--color-success-200, var(--color-teal-200));background-color:var(--color-success-50, var(--color-teal-50));color:var(--color-success-800, var(--color-teal-800))}::ng-deep .ui-alert--success .ui-alert--icon{border-color:var(--color-success-100, var(--color-teal-100));background-color:var(--color-success-200, var(--color-teal-200))}:host(.ui-alert--warning){border-color:var(--color-warning-200, var(--color-yellow-200));background-color:var(--color-warning-50, var(--color-yellow-50));color:var(--color-warning-800, var(--color-yellow-800))}::ng-deep .ui-alert--warning .ui-alert--icon{border-color:var(--color-warning-100, var(--color-yellow-100));background-color:var(--color-warning-200, var(--color-yellow-200))}:host(.ui-alert--danger){border-color:var(--color-danger-200, var(--color-red-200));background-color:var(--color-danger-50, var(--color-red-50));color:var(--color-danger-800, var(--color-red-800))}::ng-deep .ui-alert--danger .ui-alert--icon{border-color:var(--color-danger-100, var(--color-red-100));background-color:var(--color-danger-200, var(--color-red-200))}@property --tw-space-y-reverse{syntax: \"*\"; inherits: false; initial-value: 0;}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-space-y-reverse: 0;--tw-border-style: solid}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"]
59
+ });
60
+ };
61
+ i0.ɵɵngDeclareClassMetadata({
62
+ minVersion: "12.0.0",
63
+ version: "22.2.1",
64
+ ngImport: i0,
65
+ type: UiAlertComponent,
66
+ decorators: [{
67
+ type: Component,
68
+ args: [{
69
+ selector: "ui-alert",
70
+ host: {
71
+ role: "alert",
72
+ "[class]": "generatedClasses()"
73
+ },
74
+ template: "<ng-content />\n",
75
+ styles: ["@layer properties;::ng-deep .ui-alert{display:inline-block;padding:calc(var(--spacing, .25rem) * 4)}:where(:is()>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing, .25rem) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing, .25rem) * 4) * calc(1 - var(--tw-space-y-reverse)))}::ng-deep .ui-alert--icon{display:flex;width:calc(var(--spacing, .25rem) * 8);height:calc(var(--spacing, .25rem) * 8);align-items:center;justify-content:center;border-radius:var(--radius-full, calc(infinity * 1px));border-style:var(--tw-border-style);border-width:4px}:host(.ui-alert--soft){border-radius:var(--radius-md, .375rem);border-style:var(--tw-border-style);border-width:1px}:host(.ui-alert--bordered){border-inline-start-style:var(--tw-border-style);border-inline-start-width:6px}:host(.ui-alert--info){border-color:var(--color-primary-200, var(--color-blue-200));background-color:var(--color-primary-50, var(--color-blue-50));color:var(--color-primary-800, var(--color-blue-800))}::ng-deep .ui-alert--info .ui-alert--icon{border-color:var(--color-primary-100, var(--color-blue-100));background-color:var(--color-primary-200, var(--color-blue-200))}:host(.ui-alert--success){border-color:var(--color-success-200, var(--color-teal-200));background-color:var(--color-success-50, var(--color-teal-50));color:var(--color-success-800, var(--color-teal-800))}::ng-deep .ui-alert--success .ui-alert--icon{border-color:var(--color-success-100, var(--color-teal-100));background-color:var(--color-success-200, var(--color-teal-200))}:host(.ui-alert--warning){border-color:var(--color-warning-200, var(--color-yellow-200));background-color:var(--color-warning-50, var(--color-yellow-50));color:var(--color-warning-800, var(--color-yellow-800))}::ng-deep .ui-alert--warning .ui-alert--icon{border-color:var(--color-warning-100, var(--color-yellow-100));background-color:var(--color-warning-200, var(--color-yellow-200))}:host(.ui-alert--danger){border-color:var(--color-danger-200, var(--color-red-200));background-color:var(--color-danger-50, var(--color-red-50));color:var(--color-danger-800, var(--color-red-800))}::ng-deep .ui-alert--danger .ui-alert--icon{border-color:var(--color-danger-100, var(--color-red-100));background-color:var(--color-danger-200, var(--color-red-200))}@property --tw-space-y-reverse{syntax: \"*\"; inherits: false; initial-value: 0;}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-space-y-reverse: 0;--tw-border-style: solid}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"]
76
+ }]
77
+ }],
78
+ propDecorators: {
79
+ appearance: [{
80
+ type: i0.Input,
81
+ args: [{
82
+ isSignal: true,
83
+ alias: "appearance",
84
+ required: false
85
+ }]
86
+ }],
87
+ intent: [{
88
+ type: i0.Input,
89
+ args: [{
90
+ isSignal: true,
91
+ alias: "intent",
92
+ required: false
93
+ }]
94
+ }],
95
+ icon: [{
96
+ type: i0.ContentChild,
97
+ args: ["icon", {
98
+ descendants: false,
99
+ isSignal: true
100
+ }]
101
+ }]
102
+ }
103
+ });
104
+ const AlertIntents = [
105
+ "info",
106
+ "success",
107
+ "warning",
108
+ "danger"
109
+ ];
110
+ const AlertAppearances = ["soft", "bordered"];
111
+ export { AlertAppearances, AlertIntents, UiAlertComponent };
112
+
113
+ //# sourceMappingURL=area8975-ui-alert.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"area8975-ui-alert.mjs","names":[],"sources":["../../../projects/ui/alert/alert.component.ts","../../../projects/ui/alert/alert.component.html","../../../projects/ui/alert/alert.types.ts"],"sourcesContent":["import {\n Component,\n computed,\n contentChild,\n input,\n TemplateRef\n} from '@angular/core';\n\nimport { AlertAppearance, AlertIntent } from './alert.types';\n\n\n@Component({\n selector: 'ui-alert',\n templateUrl: './alert.component.html',\n styleUrl: './alert.component.css',\n host: {\n role: 'alert',\n '[class]': 'generatedClasses()'\n }\n})\nexport class UiAlertComponent {\n readonly appearance = input<AlertAppearance>('soft');\n readonly intent = input<AlertIntent>('info');\n\n readonly icon = contentChild<TemplateRef<unknown>>('icon', {\n descendants: false\n });\n\n readonly generatedClasses = computed(() =>\n [\n 'block',\n 'ui-alert',\n `ui-alert--${this.appearance()}`,\n `ui-alert--${this.intent()}`\n ]\n .filter(Boolean)\n .join(' ')\n );\n}\n","<ng-content />\n","export const AlertIntents = [\n 'info',\n 'success',\n 'warning',\n 'danger'\n];\n\nexport const AlertAppearances = [\n 'soft',\n 'bordered'\n] as const;\n\nexport type AlertIntent = typeof AlertIntents[number];\nexport type AlertAppearance = typeof AlertAppearances[number];\n"],"mappings":";;AAoBA,IAAa,mBAAb,MAAa,iBAAgB;CAChB,aAAa,MAAuB,QAAO,GAAA,YAAA,CAAA,EAAA,WAAA,aAAA,CAAA,+BAAA,CAAA,CAAA;CAC3C,SAAS,MAAmB,QAAO,GAAA,YAAA,CAAA,EAAA,WAAA,SAAA,CAAA,+BAAA,CAAA,CAAA;CAEnC,OAAO,aAAmC,QAAM;EAAA,GAAA,YAAA,EAAA,WAAA,OAAA,+BAAA,CAAA;EACrD,aAAa;CAAK,CAAA;CAGb,mBAAmB,eACxB;EACI;EACA;EACA,aAAa,KAAK,WAAU;EAC5B,aAAa,KAAK,OAAM;CAC3B,CAAA,CACI,OAAO,OAAO,CAAC,CACf,KAAK,GAAG,GAChB,GAAA,YAAA,CAAA,EAAA,WAAA,mBAAA,CAAA,+BAAA,CAAA,CAAA;CAjBQ,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAgB,MAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAAhB,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAAgB,cAAA;EAAA,UAAA;EAAA,QAAA;GAAA,YAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,QAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;EAAA;EAAA,MAAA;GAAA,YAAA,EAAA,QAAA,QAAA;GAAA,YAAA,EAAA,SAAA,qBAAA;EAAA;EAAA,SAAA,CAAA;GAAA,cAAA;GAAA,OAAA;GAAA,WAAA,CAAA,MAAA;GAAA,UAAA;EAAA,CAAA;EAAA,UAAA;EAAA,UCpB7B;EACA,QAAA,CAAA,8tFAAA;CAAA,CAAA;;ADmBa,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAgB,YAAA,CAAA;EAT5B,MAAA;EACa,MAAA,CAAA;GAAA,UAAA;GAAU,MAGd;IACF,MAAM;IACN,WAAW;GACd;GAAA,UAAA;GAAA,QAAA,CAAA,8tFAAA;EAAA,CAAA;CAMkD,CAAA;CAAA,gBAAA;EAAA,YAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,QAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,MAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA,QAAM;IACrD,aAAa;IAChB,UAAA;GAAA,CAAA;EAAA,CAAA;CAAA;AAAA,CAAA;AE1BL,MAAa,eAAe;CACxB;CACA;CACA;CACA;AACH;AAED,MAAa,mBAAmB,CAC5B,QACA,UACM"}
@@ -0,0 +1,157 @@
1
+ import * as i0 from "@angular/core";
2
+ import { Component, computed, input, signal } from "@angular/core";
3
+ import { chartLabelInk } from "@area8975/ui/chart-palette";
4
+ const TEXT_CLASSES = {
5
+ sm: "ui-text-caption",
6
+ md: "ui-text-caption",
7
+ lg: "ui-text-body-alt",
8
+ xl: "ui-text-h3"
9
+ };
10
+ var UiAvatarComponent = class UiAvatarComponent {
11
+ name = input.required(...ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []);
12
+ src = input(null, ...ngDevMode ? [{ debugName: "src" }] : /* istanbul ignore next */ []);
13
+ size = input("md", ...ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []);
14
+ colour = input(null, ...ngDevMode ? [{ debugName: "colour" }] : /* istanbul ignore next */ []);
15
+ failedSrc = signal(null, ...ngDevMode ? [{ debugName: "failedSrc" }] : /* istanbul ignore next */ []);
16
+ showImage = computed(() => {
17
+ const src = this.src();
18
+ return !!src && src !== this.failedSrc();
19
+ }, ...ngDevMode ? [{ debugName: "showImage" }] : /* istanbul ignore next */ []);
20
+ initials = computed(() => {
21
+ const words = this.name().trim().split(/\s+/).filter(Boolean);
22
+ return ((words[0]?.[0] ?? "") + (words.length > 1 ? words[words.length - 1][0] : "")).toUpperCase();
23
+ }, ...ngDevMode ? [{ debugName: "initials" }] : /* istanbul ignore next */ []);
24
+ ink = computed(() => {
25
+ const colour = this.colour();
26
+ return colour ? chartLabelInk(colour) : null;
27
+ }, ...ngDevMode ? [{ debugName: "ink" }] : /* istanbul ignore next */ []);
28
+ generatedClasses = computed(() => [
29
+ "ui-avatar",
30
+ `ui-avatar--${this.size()}`,
31
+ TEXT_CLASSES[this.size()]
32
+ ].join(" "), ...ngDevMode ? [{ debugName: "generatedClasses" }] : /* istanbul ignore next */ []);
33
+ imageFailed() {
34
+ this.failedSrc.set(this.src());
35
+ }
36
+ static ɵfac = i0.ɵɵngDeclareFactory({
37
+ minVersion: "12.0.0",
38
+ version: "22.2.1",
39
+ ngImport: i0,
40
+ type: UiAvatarComponent,
41
+ deps: [],
42
+ target: i0.ɵɵFactoryTarget.Component
43
+ });
44
+ static ɵcmp = i0.ɵɵngDeclareComponent({
45
+ minVersion: "17.0.0",
46
+ version: "22.2.1",
47
+ type: UiAvatarComponent,
48
+ isStandalone: true,
49
+ selector: "ui-avatar",
50
+ inputs: {
51
+ name: {
52
+ classPropertyName: "name",
53
+ publicName: "name",
54
+ isSignal: true,
55
+ isRequired: true,
56
+ transformFunction: null
57
+ },
58
+ src: {
59
+ classPropertyName: "src",
60
+ publicName: "src",
61
+ isSignal: true,
62
+ isRequired: false,
63
+ transformFunction: null
64
+ },
65
+ size: {
66
+ classPropertyName: "size",
67
+ publicName: "size",
68
+ isSignal: true,
69
+ isRequired: false,
70
+ transformFunction: null
71
+ },
72
+ colour: {
73
+ classPropertyName: "colour",
74
+ publicName: "colour",
75
+ isSignal: true,
76
+ isRequired: false,
77
+ transformFunction: null
78
+ }
79
+ },
80
+ host: {
81
+ attributes: { "role": "img" },
82
+ properties: {
83
+ "attr.aria-label": "name()",
84
+ "class": "generatedClasses()",
85
+ "style.background-color": "colour()",
86
+ "style.color": "ink()"
87
+ }
88
+ },
89
+ ngImport: i0,
90
+ template: "@if (showImage()) {\n <img class=\"ui-avatar-image\" [src]=\"src()\" alt=\"\" (error)=\"imageFailed()\" />\n} @else {\n <span aria-hidden=\"true\">{{ initials() }}</span>\n}\n",
91
+ styles: ["@layer properties;:host(.ui-avatar){display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;overflow:hidden;border-radius:var(--radius-full, calc(infinity * 1px));background-color:var(--surface);--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);color:var(--foreground);-webkit-user-select:none;user-select:none}:host(.ui-avatar--sm){width:calc(var(--spacing, .25rem) * 6);height:calc(var(--spacing, .25rem) * 6)}:host(.ui-avatar--md){width:calc(var(--spacing, .25rem) * 8);height:calc(var(--spacing, .25rem) * 8)}:host(.ui-avatar--lg){width:calc(var(--spacing, .25rem) * 10);height:calc(var(--spacing, .25rem) * 10)}:host(.ui-avatar--xl){width:calc(var(--spacing, .25rem) * 16);height:calc(var(--spacing, .25rem) * 16)}.ui-avatar-image{width:100%;height:100%;object-fit:cover}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"]
92
+ });
93
+ };
94
+ i0.ɵɵngDeclareClassMetadata({
95
+ minVersion: "12.0.0",
96
+ version: "22.2.1",
97
+ ngImport: i0,
98
+ type: UiAvatarComponent,
99
+ decorators: [{
100
+ type: Component,
101
+ args: [{
102
+ selector: "ui-avatar",
103
+ host: {
104
+ role: "img",
105
+ "[attr.aria-label]": "name()",
106
+ "[class]": "generatedClasses()",
107
+ "[style.background-color]": "colour()",
108
+ "[style.color]": "ink()"
109
+ },
110
+ template: "@if (showImage()) {\n <img class=\"ui-avatar-image\" [src]=\"src()\" alt=\"\" (error)=\"imageFailed()\" />\n} @else {\n <span aria-hidden=\"true\">{{ initials() }}</span>\n}\n",
111
+ styles: ["@layer properties;:host(.ui-avatar){display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;overflow:hidden;border-radius:var(--radius-full, calc(infinity * 1px));background-color:var(--surface);--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);color:var(--foreground);-webkit-user-select:none;user-select:none}:host(.ui-avatar--sm){width:calc(var(--spacing, .25rem) * 6);height:calc(var(--spacing, .25rem) * 6)}:host(.ui-avatar--md){width:calc(var(--spacing, .25rem) * 8);height:calc(var(--spacing, .25rem) * 8)}:host(.ui-avatar--lg){width:calc(var(--spacing, .25rem) * 10);height:calc(var(--spacing, .25rem) * 10)}:host(.ui-avatar--xl){width:calc(var(--spacing, .25rem) * 16);height:calc(var(--spacing, .25rem) * 16)}.ui-avatar-image{width:100%;height:100%;object-fit:cover}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"]
112
+ }]
113
+ }],
114
+ propDecorators: {
115
+ name: [{
116
+ type: i0.Input,
117
+ args: [{
118
+ isSignal: true,
119
+ alias: "name",
120
+ required: true
121
+ }]
122
+ }],
123
+ src: [{
124
+ type: i0.Input,
125
+ args: [{
126
+ isSignal: true,
127
+ alias: "src",
128
+ required: false
129
+ }]
130
+ }],
131
+ size: [{
132
+ type: i0.Input,
133
+ args: [{
134
+ isSignal: true,
135
+ alias: "size",
136
+ required: false
137
+ }]
138
+ }],
139
+ colour: [{
140
+ type: i0.Input,
141
+ args: [{
142
+ isSignal: true,
143
+ alias: "colour",
144
+ required: false
145
+ }]
146
+ }]
147
+ }
148
+ });
149
+ const AvatarSizes = [
150
+ "sm",
151
+ "md",
152
+ "lg",
153
+ "xl"
154
+ ];
155
+ export { AvatarSizes, UiAvatarComponent };
156
+
157
+ //# sourceMappingURL=area8975-ui-avatar.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"area8975-ui-avatar.mjs","names":[],"sources":["../../../projects/ui/avatar/avatar.component.ts","../../../projects/ui/avatar/avatar.component.html","../../../projects/ui/avatar/avatar.types.ts"],"sourcesContent":["import { Component, computed, input, signal } from '@angular/core';\n\nimport { chartLabelInk } from '@area8975/ui/chart-palette';\n\nimport type { AvatarSize } from './avatar.types';\n\n\nconst TEXT_CLASSES: Record<AvatarSize, string> = {\n sm: 'ui-text-caption',\n md: 'ui-text-caption',\n lg: 'ui-text-body-alt',\n xl: 'ui-text-h3'\n};\n\n@Component({\n selector: 'ui-avatar',\n templateUrl: './avatar.component.html',\n styleUrl: './avatar.component.css',\n host: {\n role: 'img',\n '[attr.aria-label]': 'name()',\n '[class]': 'generatedClasses()',\n '[style.background-color]': 'colour()',\n '[style.color]': 'ink()'\n }\n})\nexport class UiAvatarComponent {\n readonly name = input.required<string>();\n readonly src = input<string | null>(null);\n readonly size = input<AvatarSize>('md');\n /** Fill behind the initials, any CSS colour. The initials' ink is picked to read on six digit hex, anything else gets dark ink. */\n readonly colour = input<string | null>(null);\n\n private readonly failedSrc = signal<string | null>(null);\n\n protected readonly showImage = computed(() => {\n const src = this.src();\n\n return !!src && src !== this.failedSrc();\n });\n\n protected readonly initials = computed(() => {\n const words = this.name().trim().split(/\\s+/).filter(Boolean);\n const first = words[0]?.[0] ?? '';\n const last = words.length > 1 ? words[words.length - 1][0] : '';\n\n return (first + last).toUpperCase();\n });\n\n protected readonly ink = computed(() => {\n const colour = this.colour();\n\n return colour ? chartLabelInk(colour) : null;\n });\n\n readonly generatedClasses = computed(() =>\n [\n 'ui-avatar',\n `ui-avatar--${this.size()}`,\n TEXT_CLASSES[this.size()]\n ].join(' ')\n );\n\n protected imageFailed(): void {\n this.failedSrc.set(this.src());\n }\n}\n","@if (showImage()) {\n <img class=\"ui-avatar-image\" [src]=\"src()\" alt=\"\" (error)=\"imageFailed()\" />\n} @else {\n <span aria-hidden=\"true\">{{ initials() }}</span>\n}\n","export const AvatarSizes = ['sm', 'md', 'lg', 'xl'] as const;\n\n/** @see {@link AvatarSizes} */\nexport type AvatarSize = typeof AvatarSizes[number];\n"],"mappings":"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"}
@@ -0,0 +1,116 @@
1
+ import * as i0 from "@angular/core";
2
+ import { Component, computed, input } from "@angular/core";
3
+ var UiBadgeComponent = class UiBadgeComponent {
4
+ appearance = input("solid", ...ngDevMode ? [{ debugName: "appearance" }] : /* istanbul ignore next */ []);
5
+ intent = input("primary", ...ngDevMode ? [{ debugName: "intent" }] : /* istanbul ignore next */ []);
6
+ size = input("md", ...ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []);
7
+ generatedClasses = computed(() => [
8
+ "ui-badge",
9
+ `ui-badge--${this.intent()}-${this.appearance()}`,
10
+ `ui-badge--${this.size()}`
11
+ ].filter(Boolean).join(" "), ...ngDevMode ? [{ debugName: "generatedClasses" }] : /* istanbul ignore next */ []);
12
+ static ɵfac = i0.ɵɵngDeclareFactory({
13
+ minVersion: "12.0.0",
14
+ version: "22.2.1",
15
+ ngImport: i0,
16
+ type: UiBadgeComponent,
17
+ deps: [],
18
+ target: i0.ɵɵFactoryTarget.Component
19
+ });
20
+ static ɵcmp = i0.ɵɵngDeclareComponent({
21
+ minVersion: "17.1.0",
22
+ version: "22.2.1",
23
+ type: UiBadgeComponent,
24
+ isStandalone: true,
25
+ selector: "ui-badge",
26
+ inputs: {
27
+ appearance: {
28
+ classPropertyName: "appearance",
29
+ publicName: "appearance",
30
+ isSignal: true,
31
+ isRequired: false,
32
+ transformFunction: null
33
+ },
34
+ intent: {
35
+ classPropertyName: "intent",
36
+ publicName: "intent",
37
+ isSignal: true,
38
+ isRequired: false,
39
+ transformFunction: null
40
+ },
41
+ size: {
42
+ classPropertyName: "size",
43
+ publicName: "size",
44
+ isSignal: true,
45
+ isRequired: false,
46
+ transformFunction: null
47
+ }
48
+ },
49
+ host: { properties: { "class": "generatedClasses()" } },
50
+ ngImport: i0,
51
+ template: "<ng-content />\n",
52
+ styles: ["@layer properties;:host(.ui-badge){display:inline-flex;align-items:center;column-gap:calc(var(--spacing, .25rem) * 2);border-radius:var(--radius-full, calc(infinity * 1px));border-style:var(--tw-border-style);border-width:1px}:host(.ui-badge--xs){padding-inline:calc(var(--spacing, .25rem) * 2);padding-block:var(--spacing, .25rem)}:host(.ui-badge--sm){padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 2)}:host(.ui-badge--md){padding-inline:calc(var(--spacing, .25rem) * 4);padding-block:calc(var(--spacing, .25rem) * 3)}:host(.ui-badge--lg){padding-inline:calc(var(--spacing, .25rem) * 5);padding-block:calc(var(--spacing, .25rem) * 4)}:host(.ui-badge--primary-solid){border-color:var(--primary-line);background-color:var(--primary);color:var(--primary-foreground)}:host(.ui-badge--primary-outline){border-color:var(--primary);background-color:transparent;color:var(--primary)}:host(.ui-badge--primary-soft){border-color:transparent;background-color:var(--color-primary-50, var(--color-blue-50));color:var(--color-primary-800, var(--color-blue-800))}:host(.ui-badge--secondary-solid){border-color:var(--secondary-line);background-color:var(--secondary);color:var(--secondary-foreground)}:host(.ui-badge--secondary-outline){border-color:var(--secondary);background-color:transparent;color:var(--secondary)}:host(.ui-badge--secondary-soft){border-color:transparent;background-color:var(--color-secondary-50, var(--color-gray-50));color:var(--foreground)}:host(.ui-badge--success-solid){border-color:var(--color-success-500, var(--color-teal-500));background-color:var(--color-success-500, var(--color-teal-500));color:var(--foreground-inverse)}:host(.ui-badge--success-outline){border-color:var(--color-success-500, var(--color-teal-500));background-color:transparent;color:var(--color-success-500, var(--color-teal-500))}:host(.ui-badge--success-soft){border-color:transparent;background-color:var(--color-success-50, var(--color-teal-50));color:var(--color-success-800, var(--color-teal-800))}:host(.ui-badge--warning-solid){border-color:var(--color-warning-500, var(--color-yellow-500));background-color:var(--color-warning-500, var(--color-yellow-500));color:var(--foreground-inverse)}:host(.ui-badge--warning-outline){border-color:var(--color-warning-500, var(--color-yellow-500));background-color:transparent;color:var(--color-warning-500, var(--color-yellow-500))}:host(.ui-badge--warning-soft){border-color:transparent;background-color:var(--color-warning-50, var(--color-yellow-50));color:var(--color-warning-800, var(--color-yellow-800))}:host(.ui-badge--danger-solid){border-color:var(--color-danger-500, var(--color-red-500));background-color:var(--color-danger-500, var(--color-red-500));color:var(--foreground-inverse)}:host(.ui-badge--danger-outline){border-color:var(--color-danger-500, var(--color-red-500));background-color:transparent;color:var(--color-danger-500, var(--color-red-500))}:host(.ui-badge--danger-soft){border-color:transparent;background-color:var(--color-danger-50, var(--color-red-50));color:var(--color-danger-800, var(--color-red-800))}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"]
53
+ });
54
+ };
55
+ i0.ɵɵngDeclareClassMetadata({
56
+ minVersion: "12.0.0",
57
+ version: "22.2.1",
58
+ ngImport: i0,
59
+ type: UiBadgeComponent,
60
+ decorators: [{
61
+ type: Component,
62
+ args: [{
63
+ selector: "ui-badge",
64
+ host: { "[class]": "generatedClasses()" },
65
+ template: "<ng-content />\n",
66
+ styles: ["@layer properties;:host(.ui-badge){display:inline-flex;align-items:center;column-gap:calc(var(--spacing, .25rem) * 2);border-radius:var(--radius-full, calc(infinity * 1px));border-style:var(--tw-border-style);border-width:1px}:host(.ui-badge--xs){padding-inline:calc(var(--spacing, .25rem) * 2);padding-block:var(--spacing, .25rem)}:host(.ui-badge--sm){padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 2)}:host(.ui-badge--md){padding-inline:calc(var(--spacing, .25rem) * 4);padding-block:calc(var(--spacing, .25rem) * 3)}:host(.ui-badge--lg){padding-inline:calc(var(--spacing, .25rem) * 5);padding-block:calc(var(--spacing, .25rem) * 4)}:host(.ui-badge--primary-solid){border-color:var(--primary-line);background-color:var(--primary);color:var(--primary-foreground)}:host(.ui-badge--primary-outline){border-color:var(--primary);background-color:transparent;color:var(--primary)}:host(.ui-badge--primary-soft){border-color:transparent;background-color:var(--color-primary-50, var(--color-blue-50));color:var(--color-primary-800, var(--color-blue-800))}:host(.ui-badge--secondary-solid){border-color:var(--secondary-line);background-color:var(--secondary);color:var(--secondary-foreground)}:host(.ui-badge--secondary-outline){border-color:var(--secondary);background-color:transparent;color:var(--secondary)}:host(.ui-badge--secondary-soft){border-color:transparent;background-color:var(--color-secondary-50, var(--color-gray-50));color:var(--foreground)}:host(.ui-badge--success-solid){border-color:var(--color-success-500, var(--color-teal-500));background-color:var(--color-success-500, var(--color-teal-500));color:var(--foreground-inverse)}:host(.ui-badge--success-outline){border-color:var(--color-success-500, var(--color-teal-500));background-color:transparent;color:var(--color-success-500, var(--color-teal-500))}:host(.ui-badge--success-soft){border-color:transparent;background-color:var(--color-success-50, var(--color-teal-50));color:var(--color-success-800, var(--color-teal-800))}:host(.ui-badge--warning-solid){border-color:var(--color-warning-500, var(--color-yellow-500));background-color:var(--color-warning-500, var(--color-yellow-500));color:var(--foreground-inverse)}:host(.ui-badge--warning-outline){border-color:var(--color-warning-500, var(--color-yellow-500));background-color:transparent;color:var(--color-warning-500, var(--color-yellow-500))}:host(.ui-badge--warning-soft){border-color:transparent;background-color:var(--color-warning-50, var(--color-yellow-50));color:var(--color-warning-800, var(--color-yellow-800))}:host(.ui-badge--danger-solid){border-color:var(--color-danger-500, var(--color-red-500));background-color:var(--color-danger-500, var(--color-red-500));color:var(--foreground-inverse)}:host(.ui-badge--danger-outline){border-color:var(--color-danger-500, var(--color-red-500));background-color:transparent;color:var(--color-danger-500, var(--color-red-500))}:host(.ui-badge--danger-soft){border-color:transparent;background-color:var(--color-danger-50, var(--color-red-50));color:var(--color-danger-800, var(--color-red-800))}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"]
67
+ }]
68
+ }],
69
+ propDecorators: {
70
+ appearance: [{
71
+ type: i0.Input,
72
+ args: [{
73
+ isSignal: true,
74
+ alias: "appearance",
75
+ required: false
76
+ }]
77
+ }],
78
+ intent: [{
79
+ type: i0.Input,
80
+ args: [{
81
+ isSignal: true,
82
+ alias: "intent",
83
+ required: false
84
+ }]
85
+ }],
86
+ size: [{
87
+ type: i0.Input,
88
+ args: [{
89
+ isSignal: true,
90
+ alias: "size",
91
+ required: false
92
+ }]
93
+ }]
94
+ }
95
+ });
96
+ const BadgeIntents = [
97
+ "primary",
98
+ "secondary",
99
+ "success",
100
+ "warning",
101
+ "danger"
102
+ ];
103
+ const BadgeAppearances = [
104
+ "solid",
105
+ "outline",
106
+ "soft"
107
+ ];
108
+ const BadgeSizes = [
109
+ "xs",
110
+ "sm",
111
+ "md",
112
+ "lg"
113
+ ];
114
+ export { BadgeAppearances, BadgeIntents, BadgeSizes, UiBadgeComponent };
115
+
116
+ //# sourceMappingURL=area8975-ui-badge.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"area8975-ui-badge.mjs","names":[],"sources":["../../../projects/ui/badge/badge.component.ts","../../../projects/ui/badge/badge.component.html","../../../projects/ui/badge/badge.types.ts"],"sourcesContent":["import { Component, computed, input } from '@angular/core';\n\nimport { BadgeAppearance, BadgeIntent, BadgeSize } from './badge.types';\n\n\n@Component({\n selector: 'ui-badge',\n templateUrl: './badge.component.html',\n styleUrl: './badge.component.css',\n host: { '[class]': 'generatedClasses()' }\n})\nexport class UiBadgeComponent {\n readonly appearance = input<BadgeAppearance>('solid');\n readonly intent = input<BadgeIntent>('primary');\n readonly size = input<BadgeSize>('md');\n\n readonly generatedClasses = computed(() =>\n [\n 'ui-badge',\n `ui-badge--${this.intent()}-${this.appearance()}`,\n `ui-badge--${this.size()}`\n ]\n .filter(Boolean)\n .join(' ')\n );\n}\n","<ng-content />\n","export const BadgeIntents = [\n 'primary',\n 'secondary',\n 'success',\n 'warning',\n 'danger'\n] as const;\n\nexport const BadgeAppearances = [\n 'solid',\n 'outline',\n 'soft'\n] as const;\n\nexport const BadgeSizes = [\n 'xs',\n 'sm',\n 'md',\n 'lg'\n] as const;\n\nexport type BadgeIntent = typeof BadgeIntents[number];\nexport type BadgeAppearance = typeof BadgeAppearances[number];\nexport type BadgeSize = typeof BadgeSizes[number];\n"],"mappings":";;AAWA,IAAa,mBAAb,MAAa,iBAAgB;CAChB,aAAa,MAAuB,SAAQ,GAAA,YAAA,CAAA,EAAA,WAAA,aAAA,CAAA,+BAAA,CAAA,CAAA;CAC5C,SAAS,MAAmB,WAAU,GAAA,YAAA,CAAA,EAAA,WAAA,SAAA,CAAA,+BAAA,CAAA,CAAA;CACtC,OAAO,MAAiB,MAAK,GAAA,YAAA,CAAA,EAAA,WAAA,OAAA,CAAA,+BAAA,CAAA,CAAA;CAE7B,mBAAmB,eACxB;EACI;EACA,aAAa,KAAK,OAAM,EAAE,GAAI,KAAK,WAAU;EAC7C,aAAa,KAAK,KAAI;CACzB,CAAA,CACI,OAAO,OAAO,CAAC,CACf,KAAK,GAAG,GAChB,GAAA,YAAA,CAAA,EAAA,WAAA,mBAAA,CAAA,+BAAA,CAAA,CAAA;CAbQ,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAgB,MAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAAhB,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAAgB,cAAA;EAAA,UAAA;EAAA,QAAA;GAAA,YAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,QAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,MAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;EAAA;EAAA,MAAA,EAAA,YAAA,EAAA,SAAA,qBAAA,EAAA;EAAA,UAAA;EAAA,UCX7B;EACA,QAAA,CAAA,m5GAAA;CAAA,CAAA;;ADUa,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAgB,YAAA,CAAA;EAN5B,MAAA;EACa,MAAA,CAAA;GAAA,UAAA;GAAU,MAGd,EAAE,WAAW,qBAAoB;GAAE,UAAA;GAAA,QAAA,CAAA,m5GAAA;EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AET7C,MAAa,eAAe;CACxB;CACA;CACA;CACA;CACA;AACM;AAEV,MAAa,mBAAmB;CAC5B;CACA;CACA;AACM;AAEV,MAAa,aAAa;CACtB;CACA;CACA;CACA;AACM"}