@loomui-ng/ui 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (270) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +46 -2
  3. package/accordion/README.md +38 -0
  4. package/alert/README.md +32 -0
  5. package/alert-dialog/README.md +37 -0
  6. package/aspect-ratio/README.md +24 -0
  7. package/attachment/README.md +40 -0
  8. package/avatar/README.md +34 -0
  9. package/badge/README.md +29 -0
  10. package/breadcrumb/README.md +33 -0
  11. package/bubble/README.md +32 -0
  12. package/button/README.md +31 -0
  13. package/button-group/README.md +30 -0
  14. package/calendar/README.md +35 -0
  15. package/card/README.md +41 -0
  16. package/carousel/README.md +41 -0
  17. package/chart/README.md +25 -0
  18. package/checkbox/README.md +31 -0
  19. package/collapsible/README.md +31 -0
  20. package/combobox/README.md +47 -0
  21. package/command/README.md +44 -0
  22. package/context-menu/README.md +36 -0
  23. package/data-table/README.md +39 -0
  24. package/date-picker/README.md +23 -0
  25. package/dialog/README.md +52 -0
  26. package/direction/README.md +19 -0
  27. package/drawer/README.md +37 -0
  28. package/dropdown-menu/README.md +46 -0
  29. package/empty/README.md +38 -0
  30. package/fesm2022/loomui-ng-ui-accordion.mjs +555 -0
  31. package/fesm2022/loomui-ng-ui-accordion.mjs.map +1 -0
  32. package/fesm2022/loomui-ng-ui-alert-dialog.mjs +652 -0
  33. package/fesm2022/loomui-ng-ui-alert-dialog.mjs.map +1 -0
  34. package/fesm2022/loomui-ng-ui-alert.mjs +286 -0
  35. package/fesm2022/loomui-ng-ui-alert.mjs.map +1 -0
  36. package/fesm2022/loomui-ng-ui-aspect-ratio.mjs +97 -0
  37. package/fesm2022/loomui-ng-ui-aspect-ratio.mjs.map +1 -0
  38. package/fesm2022/loomui-ng-ui-attachment.mjs +713 -0
  39. package/fesm2022/loomui-ng-ui-attachment.mjs.map +1 -0
  40. package/fesm2022/loomui-ng-ui-avatar.mjs +561 -0
  41. package/fesm2022/loomui-ng-ui-avatar.mjs.map +1 -0
  42. package/fesm2022/loomui-ng-ui-badge.mjs +102 -0
  43. package/fesm2022/loomui-ng-ui-badge.mjs.map +1 -0
  44. package/fesm2022/loomui-ng-ui-breadcrumb.mjs +520 -0
  45. package/fesm2022/loomui-ng-ui-breadcrumb.mjs.map +1 -0
  46. package/fesm2022/loomui-ng-ui-bubble.mjs +386 -0
  47. package/fesm2022/loomui-ng-ui-bubble.mjs.map +1 -0
  48. package/fesm2022/loomui-ng-ui-button-group.mjs +193 -0
  49. package/fesm2022/loomui-ng-ui-button-group.mjs.map +1 -0
  50. package/fesm2022/loomui-ng-ui-button.mjs +162 -0
  51. package/fesm2022/loomui-ng-ui-button.mjs.map +1 -0
  52. package/fesm2022/loomui-ng-ui-calendar.mjs +681 -0
  53. package/fesm2022/loomui-ng-ui-calendar.mjs.map +1 -0
  54. package/fesm2022/loomui-ng-ui-card.mjs +461 -0
  55. package/fesm2022/loomui-ng-ui-card.mjs.map +1 -0
  56. package/fesm2022/loomui-ng-ui-carousel.mjs +532 -0
  57. package/fesm2022/loomui-ng-ui-carousel.mjs.map +1 -0
  58. package/fesm2022/loomui-ng-ui-chart.mjs +373 -0
  59. package/fesm2022/loomui-ng-ui-chart.mjs.map +1 -0
  60. package/fesm2022/loomui-ng-ui-checkbox.mjs +265 -0
  61. package/fesm2022/loomui-ng-ui-checkbox.mjs.map +1 -0
  62. package/fesm2022/loomui-ng-ui-collapsible.mjs +274 -0
  63. package/fesm2022/loomui-ng-ui-collapsible.mjs.map +1 -0
  64. package/fesm2022/loomui-ng-ui-combobox.mjs +971 -0
  65. package/fesm2022/loomui-ng-ui-combobox.mjs.map +1 -0
  66. package/fesm2022/loomui-ng-ui-command.mjs +982 -0
  67. package/fesm2022/loomui-ng-ui-command.mjs.map +1 -0
  68. package/fesm2022/loomui-ng-ui-context-menu.mjs +1359 -0
  69. package/fesm2022/loomui-ng-ui-context-menu.mjs.map +1 -0
  70. package/fesm2022/loomui-ng-ui-data-table.mjs +535 -0
  71. package/fesm2022/loomui-ng-ui-data-table.mjs.map +1 -0
  72. package/fesm2022/loomui-ng-ui-date-picker.mjs +312 -0
  73. package/fesm2022/loomui-ng-ui-date-picker.mjs.map +1 -0
  74. package/fesm2022/loomui-ng-ui-dialog.mjs +508 -0
  75. package/fesm2022/loomui-ng-ui-dialog.mjs.map +1 -0
  76. package/fesm2022/loomui-ng-ui-direction.mjs +112 -0
  77. package/fesm2022/loomui-ng-ui-direction.mjs.map +1 -0
  78. package/fesm2022/loomui-ng-ui-drawer.mjs +590 -0
  79. package/fesm2022/loomui-ng-ui-drawer.mjs.map +1 -0
  80. package/fesm2022/loomui-ng-ui-dropdown-menu.mjs +1322 -0
  81. package/fesm2022/loomui-ng-ui-dropdown-menu.mjs.map +1 -0
  82. package/fesm2022/loomui-ng-ui-empty.mjs +408 -0
  83. package/fesm2022/loomui-ng-ui-empty.mjs.map +1 -0
  84. package/fesm2022/loomui-ng-ui-field.mjs +630 -0
  85. package/fesm2022/loomui-ng-ui-field.mjs.map +1 -0
  86. package/fesm2022/loomui-ng-ui-hover-card.mjs +230 -0
  87. package/fesm2022/loomui-ng-ui-hover-card.mjs.map +1 -0
  88. package/fesm2022/loomui-ng-ui-icon.mjs +498 -0
  89. package/fesm2022/loomui-ng-ui-icon.mjs.map +1 -0
  90. package/fesm2022/loomui-ng-ui-input-group.mjs +463 -0
  91. package/fesm2022/loomui-ng-ui-input-group.mjs.map +1 -0
  92. package/fesm2022/loomui-ng-ui-input-otp.mjs +586 -0
  93. package/fesm2022/loomui-ng-ui-input-otp.mjs.map +1 -0
  94. package/fesm2022/loomui-ng-ui-input.mjs +289 -0
  95. package/fesm2022/loomui-ng-ui-input.mjs.map +1 -0
  96. package/fesm2022/loomui-ng-ui-item.mjs +598 -0
  97. package/fesm2022/loomui-ng-ui-item.mjs.map +1 -0
  98. package/fesm2022/loomui-ng-ui-kbd.mjs +129 -0
  99. package/fesm2022/loomui-ng-ui-kbd.mjs.map +1 -0
  100. package/fesm2022/loomui-ng-ui-label.mjs +68 -0
  101. package/fesm2022/loomui-ng-ui-label.mjs.map +1 -0
  102. package/fesm2022/loomui-ng-ui-marker.mjs +234 -0
  103. package/fesm2022/loomui-ng-ui-marker.mjs.map +1 -0
  104. package/fesm2022/loomui-ng-ui-menubar.mjs +1523 -0
  105. package/fesm2022/loomui-ng-ui-menubar.mjs.map +1 -0
  106. package/fesm2022/loomui-ng-ui-message-scroller.mjs +519 -0
  107. package/fesm2022/loomui-ng-ui-message-scroller.mjs.map +1 -0
  108. package/fesm2022/loomui-ng-ui-message.mjs +408 -0
  109. package/fesm2022/loomui-ng-ui-message.mjs.map +1 -0
  110. package/fesm2022/loomui-ng-ui-native-select.mjs +389 -0
  111. package/fesm2022/loomui-ng-ui-native-select.mjs.map +1 -0
  112. package/fesm2022/loomui-ng-ui-navigation-menu.mjs +609 -0
  113. package/fesm2022/loomui-ng-ui-navigation-menu.mjs.map +1 -0
  114. package/fesm2022/loomui-ng-ui-pagination.mjs +611 -0
  115. package/fesm2022/loomui-ng-ui-pagination.mjs.map +1 -0
  116. package/fesm2022/loomui-ng-ui-popover.mjs +358 -0
  117. package/fesm2022/loomui-ng-ui-popover.mjs.map +1 -0
  118. package/fesm2022/loomui-ng-ui-progress.mjs +159 -0
  119. package/fesm2022/loomui-ng-ui-progress.mjs.map +1 -0
  120. package/fesm2022/loomui-ng-ui-questionnaire.mjs +1012 -0
  121. package/fesm2022/loomui-ng-ui-questionnaire.mjs.map +1 -0
  122. package/fesm2022/loomui-ng-ui-radio-group.mjs +399 -0
  123. package/fesm2022/loomui-ng-ui-radio-group.mjs.map +1 -0
  124. package/fesm2022/loomui-ng-ui-resizable.mjs +518 -0
  125. package/fesm2022/loomui-ng-ui-resizable.mjs.map +1 -0
  126. package/fesm2022/loomui-ng-ui-scroll-area.mjs +135 -0
  127. package/fesm2022/loomui-ng-ui-scroll-area.mjs.map +1 -0
  128. package/fesm2022/loomui-ng-ui-select.mjs +863 -0
  129. package/fesm2022/loomui-ng-ui-select.mjs.map +1 -0
  130. package/fesm2022/loomui-ng-ui-separator.mjs +114 -0
  131. package/fesm2022/loomui-ng-ui-separator.mjs.map +1 -0
  132. package/fesm2022/loomui-ng-ui-sheet.mjs +530 -0
  133. package/fesm2022/loomui-ng-ui-sheet.mjs.map +1 -0
  134. package/fesm2022/loomui-ng-ui-sidebar.mjs +1918 -0
  135. package/fesm2022/loomui-ng-ui-sidebar.mjs.map +1 -0
  136. package/fesm2022/loomui-ng-ui-skeleton.mjs +69 -0
  137. package/fesm2022/loomui-ng-ui-skeleton.mjs.map +1 -0
  138. package/fesm2022/loomui-ng-ui-slider.mjs +390 -0
  139. package/fesm2022/loomui-ng-ui-slider.mjs.map +1 -0
  140. package/fesm2022/loomui-ng-ui-spinner.mjs +85 -0
  141. package/fesm2022/loomui-ng-ui-spinner.mjs.map +1 -0
  142. package/fesm2022/loomui-ng-ui-switch.mjs +212 -0
  143. package/fesm2022/loomui-ng-ui-switch.mjs.map +1 -0
  144. package/fesm2022/loomui-ng-ui-table.mjs +559 -0
  145. package/fesm2022/loomui-ng-ui-table.mjs.map +1 -0
  146. package/fesm2022/loomui-ng-ui-tabs.mjs +544 -0
  147. package/fesm2022/loomui-ng-ui-tabs.mjs.map +1 -0
  148. package/fesm2022/loomui-ng-ui-textarea.mjs +206 -0
  149. package/fesm2022/loomui-ng-ui-textarea.mjs.map +1 -0
  150. package/fesm2022/loomui-ng-ui-toast.mjs +432 -0
  151. package/fesm2022/loomui-ng-ui-toast.mjs.map +1 -0
  152. package/fesm2022/loomui-ng-ui-toggle-group.mjs +477 -0
  153. package/fesm2022/loomui-ng-ui-toggle-group.mjs.map +1 -0
  154. package/fesm2022/loomui-ng-ui-toggle.mjs +219 -0
  155. package/fesm2022/loomui-ng-ui-toggle.mjs.map +1 -0
  156. package/fesm2022/loomui-ng-ui-tooltip.mjs +240 -0
  157. package/fesm2022/loomui-ng-ui-tooltip.mjs.map +1 -0
  158. package/fesm2022/loomui-ng-ui-typography.mjs +129 -0
  159. package/fesm2022/loomui-ng-ui-typography.mjs.map +1 -0
  160. package/fesm2022/loomui-ng-ui-utils.mjs +1533 -0
  161. package/fesm2022/loomui-ng-ui-utils.mjs.map +1 -0
  162. package/fesm2022/loomui-ng-ui.mjs +4 -0
  163. package/fesm2022/loomui-ng-ui.mjs.map +1 -0
  164. package/field/README.md +43 -0
  165. package/hover-card/README.md +31 -0
  166. package/icon/README.md +42 -0
  167. package/input/README.md +26 -0
  168. package/input-group/README.md +40 -0
  169. package/input-otp/README.md +35 -0
  170. package/item/README.md +33 -0
  171. package/kbd/README.md +21 -0
  172. package/label/README.md +24 -0
  173. package/marker/README.md +24 -0
  174. package/menubar/README.md +40 -0
  175. package/message/README.md +32 -0
  176. package/message-scroller/README.md +40 -0
  177. package/native-select/README.md +26 -0
  178. package/navigation-menu/README.md +39 -0
  179. package/package.json +325 -3
  180. package/pagination/README.md +37 -0
  181. package/popover/README.md +37 -0
  182. package/progress/README.md +25 -0
  183. package/questionnaire/README.md +52 -0
  184. package/radio-group/README.md +33 -0
  185. package/resizable/README.md +37 -0
  186. package/scroll-area/README.md +25 -0
  187. package/select/README.md +45 -0
  188. package/separator/README.md +28 -0
  189. package/sheet/README.md +38 -0
  190. package/sidebar/README.md +60 -0
  191. package/skeleton/README.md +21 -0
  192. package/slider/README.md +29 -0
  193. package/spinner/README.md +15 -0
  194. package/styles/loomui.css +330 -0
  195. package/switch/README.md +29 -0
  196. package/table/README.md +31 -0
  197. package/tabs/README.md +42 -0
  198. package/textarea/README.md +28 -0
  199. package/toast/README.md +27 -0
  200. package/toggle/README.md +27 -0
  201. package/toggle-group/README.md +37 -0
  202. package/tooltip/README.md +31 -0
  203. package/types/loomui-ng-ui-accordion.d.ts +141 -0
  204. package/types/loomui-ng-ui-alert-dialog.d.ts +175 -0
  205. package/types/loomui-ng-ui-alert.d.ts +77 -0
  206. package/types/loomui-ng-ui-aspect-ratio.d.ts +31 -0
  207. package/types/loomui-ng-ui-attachment.d.ts +192 -0
  208. package/types/loomui-ng-ui-avatar.d.ts +147 -0
  209. package/types/loomui-ng-ui-badge.d.ts +32 -0
  210. package/types/loomui-ng-ui-breadcrumb.d.ts +118 -0
  211. package/types/loomui-ng-ui-bubble.d.ts +100 -0
  212. package/types/loomui-ng-ui-button-group.d.ts +51 -0
  213. package/types/loomui-ng-ui-button.d.ts +57 -0
  214. package/types/loomui-ng-ui-calendar.d.ts +171 -0
  215. package/types/loomui-ng-ui-card.d.ts +123 -0
  216. package/types/loomui-ng-ui-carousel.d.ts +140 -0
  217. package/types/loomui-ng-ui-chart.d.ts +95 -0
  218. package/types/loomui-ng-ui-checkbox.d.ts +62 -0
  219. package/types/loomui-ng-ui-collapsible.d.ts +74 -0
  220. package/types/loomui-ng-ui-combobox.d.ts +229 -0
  221. package/types/loomui-ng-ui-command.d.ts +231 -0
  222. package/types/loomui-ng-ui-context-menu.d.ts +288 -0
  223. package/types/loomui-ng-ui-data-table.d.ts +111 -0
  224. package/types/loomui-ng-ui-date-picker.d.ts +63 -0
  225. package/types/loomui-ng-ui-dialog.d.ts +127 -0
  226. package/types/loomui-ng-ui-direction.d.ts +42 -0
  227. package/types/loomui-ng-ui-drawer.d.ts +149 -0
  228. package/types/loomui-ng-ui-dropdown-menu.d.ts +258 -0
  229. package/types/loomui-ng-ui-empty.d.ts +109 -0
  230. package/types/loomui-ng-ui-field.d.ts +169 -0
  231. package/types/loomui-ng-ui-hover-card.d.ts +62 -0
  232. package/types/loomui-ng-ui-icon.d.ts +156 -0
  233. package/types/loomui-ng-ui-input-group.d.ts +130 -0
  234. package/types/loomui-ng-ui-input-otp.d.ts +149 -0
  235. package/types/loomui-ng-ui-input.d.ts +89 -0
  236. package/types/loomui-ng-ui-item.d.ts +157 -0
  237. package/types/loomui-ng-ui-kbd.d.ts +36 -0
  238. package/types/loomui-ng-ui-label.d.ts +19 -0
  239. package/types/loomui-ng-ui-marker.d.ts +61 -0
  240. package/types/loomui-ng-ui-menubar.d.ts +321 -0
  241. package/types/loomui-ng-ui-message-scroller.d.ts +138 -0
  242. package/types/loomui-ng-ui-message.d.ts +109 -0
  243. package/types/loomui-ng-ui-native-select.d.ts +84 -0
  244. package/types/loomui-ng-ui-navigation-menu.d.ts +160 -0
  245. package/types/loomui-ng-ui-pagination.d.ts +130 -0
  246. package/types/loomui-ng-ui-popover.d.ts +90 -0
  247. package/types/loomui-ng-ui-progress.d.ts +39 -0
  248. package/types/loomui-ng-ui-questionnaire.d.ts +274 -0
  249. package/types/loomui-ng-ui-radio-group.d.ts +109 -0
  250. package/types/loomui-ng-ui-resizable.d.ts +121 -0
  251. package/types/loomui-ng-ui-scroll-area.d.ts +44 -0
  252. package/types/loomui-ng-ui-select.d.ts +204 -0
  253. package/types/loomui-ng-ui-separator.d.ts +35 -0
  254. package/types/loomui-ng-ui-sheet.d.ts +124 -0
  255. package/types/loomui-ng-ui-sidebar.d.ts +485 -0
  256. package/types/loomui-ng-ui-skeleton.d.ts +20 -0
  257. package/types/loomui-ng-ui-slider.d.ts +103 -0
  258. package/types/loomui-ng-ui-spinner.d.ts +19 -0
  259. package/types/loomui-ng-ui-switch.d.ts +56 -0
  260. package/types/loomui-ng-ui-table.d.ts +148 -0
  261. package/types/loomui-ng-ui-tabs.d.ts +148 -0
  262. package/types/loomui-ng-ui-textarea.d.ts +52 -0
  263. package/types/loomui-ng-ui-toast.d.ts +97 -0
  264. package/types/loomui-ng-ui-toggle-group.d.ts +138 -0
  265. package/types/loomui-ng-ui-toggle.d.ts +63 -0
  266. package/types/loomui-ng-ui-tooltip.d.ts +63 -0
  267. package/types/loomui-ng-ui-typography.d.ts +42 -0
  268. package/types/loomui-ng-ui-utils.d.ts +392 -0
  269. package/types/loomui-ng-ui.d.ts +5 -0
  270. package/typography/README.md +29 -0
@@ -0,0 +1,630 @@
1
+ import * as i0 from "@angular/core";
2
+ import { Directive, computed, input } from "@angular/core";
3
+ import { cva } from "class-variance-authority";
4
+ import * as i1 from "@loomui-ng/ui/utils";
5
+ import { UiElementHost, cn } from "@loomui-ng/ui/utils";
6
+ var UiFieldGroup = class UiFieldGroup {
7
+ userClass = input("", {
8
+ ...ngDevMode ? { debugName: "userClass" } : /* istanbul ignore next */ {},
9
+ alias: "class"
10
+ });
11
+ classes = computed(() => cn("group/field-group @container/field-group flex w-full flex-col data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4", this.userClass()), ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
12
+ static ɵfac = i0.ɵɵngDeclareFactory({
13
+ minVersion: "12.0.0",
14
+ version: "22.2.2",
15
+ ngImport: i0,
16
+ type: UiFieldGroup,
17
+ deps: [],
18
+ target: i0.ɵɵFactoryTarget.Directive
19
+ });
20
+ static ɵdir = i0.ɵɵngDeclareDirective({
21
+ minVersion: "17.1.0",
22
+ version: "22.2.2",
23
+ type: UiFieldGroup,
24
+ isStandalone: true,
25
+ selector: "[uiFieldGroup], ui-field-group",
26
+ inputs: { userClass: {
27
+ classPropertyName: "userClass",
28
+ publicName: "class",
29
+ isSignal: true,
30
+ isRequired: false,
31
+ transformFunction: null
32
+ } },
33
+ host: {
34
+ attributes: { "data-slot": "field-group" },
35
+ properties: { "attr.class": "classes()" }
36
+ },
37
+ hostDirectives: [{ directive: i1.UiElementHost }],
38
+ ngImport: i0
39
+ });
40
+ };
41
+ i0.ɵɵngDeclareClassMetadata({
42
+ minVersion: "12.0.0",
43
+ version: "22.2.2",
44
+ ngImport: i0,
45
+ type: UiFieldGroup,
46
+ decorators: [{
47
+ type: Directive,
48
+ args: [{
49
+ selector: "[uiFieldGroup], ui-field-group",
50
+ hostDirectives: [UiElementHost],
51
+ host: {
52
+ "data-slot": "field-group",
53
+ "[attr.class]": "classes()"
54
+ }
55
+ }]
56
+ }],
57
+ propDecorators: { userClass: [{
58
+ type: i0.Input,
59
+ args: [{
60
+ isSignal: true,
61
+ alias: "class",
62
+ required: false
63
+ }]
64
+ }] }
65
+ });
66
+ var UiFieldSet = class UiFieldSet {
67
+ userClass = input("", {
68
+ ...ngDevMode ? { debugName: "userClass" } : /* istanbul ignore next */ {},
69
+ alias: "class"
70
+ });
71
+ classes = computed(() => cn("flex flex-col gap-4 has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3", this.userClass()), ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
72
+ static ɵfac = i0.ɵɵngDeclareFactory({
73
+ minVersion: "12.0.0",
74
+ version: "22.2.2",
75
+ ngImport: i0,
76
+ type: UiFieldSet,
77
+ deps: [],
78
+ target: i0.ɵɵFactoryTarget.Directive
79
+ });
80
+ static ɵdir = i0.ɵɵngDeclareDirective({
81
+ minVersion: "17.1.0",
82
+ version: "22.2.2",
83
+ type: UiFieldSet,
84
+ isStandalone: true,
85
+ selector: "fieldset[uiFieldSet], ui-field-set",
86
+ inputs: { userClass: {
87
+ classPropertyName: "userClass",
88
+ publicName: "class",
89
+ isSignal: true,
90
+ isRequired: false,
91
+ transformFunction: null
92
+ } },
93
+ host: {
94
+ attributes: { "data-slot": "field-set" },
95
+ properties: { "attr.class": "classes()" }
96
+ },
97
+ hostDirectives: [{ directive: i1.UiElementHost }],
98
+ ngImport: i0
99
+ });
100
+ };
101
+ i0.ɵɵngDeclareClassMetadata({
102
+ minVersion: "12.0.0",
103
+ version: "22.2.2",
104
+ ngImport: i0,
105
+ type: UiFieldSet,
106
+ decorators: [{
107
+ type: Directive,
108
+ args: [{
109
+ selector: "fieldset[uiFieldSet], ui-field-set",
110
+ hostDirectives: [UiElementHost],
111
+ host: {
112
+ "data-slot": "field-set",
113
+ "[attr.class]": "classes()"
114
+ }
115
+ }]
116
+ }],
117
+ propDecorators: { userClass: [{
118
+ type: i0.Input,
119
+ args: [{
120
+ isSignal: true,
121
+ alias: "class",
122
+ required: false
123
+ }]
124
+ }] }
125
+ });
126
+ var UiFieldLegend = class UiFieldLegend {
127
+ variant = input("legend", ...ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []);
128
+ userClass = input("", {
129
+ ...ngDevMode ? { debugName: "userClass" } : /* istanbul ignore next */ {},
130
+ alias: "class"
131
+ });
132
+ classes = computed(() => cn("mb-1.5 font-medium data-[variant=label]:text-sm data-[variant=legend]:text-base", this.userClass()), ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
133
+ static ɵfac = i0.ɵɵngDeclareFactory({
134
+ minVersion: "12.0.0",
135
+ version: "22.2.2",
136
+ ngImport: i0,
137
+ type: UiFieldLegend,
138
+ deps: [],
139
+ target: i0.ɵɵFactoryTarget.Directive
140
+ });
141
+ static ɵdir = i0.ɵɵngDeclareDirective({
142
+ minVersion: "17.1.0",
143
+ version: "22.2.2",
144
+ type: UiFieldLegend,
145
+ isStandalone: true,
146
+ selector: "legend[uiFieldLegend], ui-field-legend",
147
+ inputs: {
148
+ variant: {
149
+ classPropertyName: "variant",
150
+ publicName: "variant",
151
+ isSignal: true,
152
+ isRequired: false,
153
+ transformFunction: null
154
+ },
155
+ userClass: {
156
+ classPropertyName: "userClass",
157
+ publicName: "class",
158
+ isSignal: true,
159
+ isRequired: false,
160
+ transformFunction: null
161
+ }
162
+ },
163
+ host: {
164
+ attributes: { "data-slot": "field-legend" },
165
+ properties: {
166
+ "attr.data-variant": "variant()",
167
+ "attr.class": "classes()"
168
+ }
169
+ },
170
+ hostDirectives: [{ directive: i1.UiElementHost }],
171
+ ngImport: i0
172
+ });
173
+ };
174
+ i0.ɵɵngDeclareClassMetadata({
175
+ minVersion: "12.0.0",
176
+ version: "22.2.2",
177
+ ngImport: i0,
178
+ type: UiFieldLegend,
179
+ decorators: [{
180
+ type: Directive,
181
+ args: [{
182
+ selector: "legend[uiFieldLegend], ui-field-legend",
183
+ hostDirectives: [UiElementHost],
184
+ host: {
185
+ "data-slot": "field-legend",
186
+ "[attr.data-variant]": "variant()",
187
+ "[attr.class]": "classes()"
188
+ }
189
+ }]
190
+ }],
191
+ propDecorators: {
192
+ variant: [{
193
+ type: i0.Input,
194
+ args: [{
195
+ isSignal: true,
196
+ alias: "variant",
197
+ required: false
198
+ }]
199
+ }],
200
+ userClass: [{
201
+ type: i0.Input,
202
+ args: [{
203
+ isSignal: true,
204
+ alias: "class",
205
+ required: false
206
+ }]
207
+ }]
208
+ }
209
+ });
210
+ var UiFieldDescription = class UiFieldDescription {
211
+ userClass = input("", {
212
+ ...ngDevMode ? { debugName: "userClass" } : /* istanbul ignore next */ {},
213
+ alias: "class"
214
+ });
215
+ classes = computed(() => cn("text-start text-sm leading-normal font-normal text-muted-foreground group-has-data-horizontal/field:text-balance [[data-variant=legend]+&]:-mt-1.5 last:mt-0 nth-last-2:-mt-1 [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary", this.userClass()), ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
216
+ static ɵfac = i0.ɵɵngDeclareFactory({
217
+ minVersion: "12.0.0",
218
+ version: "22.2.2",
219
+ ngImport: i0,
220
+ type: UiFieldDescription,
221
+ deps: [],
222
+ target: i0.ɵɵFactoryTarget.Directive
223
+ });
224
+ static ɵdir = i0.ɵɵngDeclareDirective({
225
+ minVersion: "17.1.0",
226
+ version: "22.2.2",
227
+ type: UiFieldDescription,
228
+ isStandalone: true,
229
+ selector: "[uiFieldDescription], ui-field-description",
230
+ inputs: { userClass: {
231
+ classPropertyName: "userClass",
232
+ publicName: "class",
233
+ isSignal: true,
234
+ isRequired: false,
235
+ transformFunction: null
236
+ } },
237
+ host: {
238
+ attributes: { "data-slot": "field-description" },
239
+ properties: { "attr.class": "classes()" }
240
+ },
241
+ hostDirectives: [{ directive: i1.UiElementHost }],
242
+ ngImport: i0
243
+ });
244
+ };
245
+ i0.ɵɵngDeclareClassMetadata({
246
+ minVersion: "12.0.0",
247
+ version: "22.2.2",
248
+ ngImport: i0,
249
+ type: UiFieldDescription,
250
+ decorators: [{
251
+ type: Directive,
252
+ args: [{
253
+ selector: "[uiFieldDescription], ui-field-description",
254
+ hostDirectives: [UiElementHost],
255
+ host: {
256
+ "data-slot": "field-description",
257
+ "[attr.class]": "classes()"
258
+ }
259
+ }]
260
+ }],
261
+ propDecorators: { userClass: [{
262
+ type: i0.Input,
263
+ args: [{
264
+ isSignal: true,
265
+ alias: "class",
266
+ required: false
267
+ }]
268
+ }] }
269
+ });
270
+ const fieldVariants = cva("group/field flex gap-2 data-[invalid=true]:text-destructive", {
271
+ variants: { orientation: {
272
+ vertical: "flex-col *:w-full [&>.sr-only]:w-auto",
273
+ horizontal: "flex-row items-center has-[>[data-slot=field-content]]:items-start *:data-[slot=field-label]:flex-auto has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px",
274
+ responsive: "flex-col *:w-full @md/field-group:flex-row @md/field-group:items-center @md/field-group:*:w-auto @md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:*:data-[slot=field-label]:flex-auto [&>.sr-only]:w-auto @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px"
275
+ } },
276
+ defaultVariants: { orientation: "vertical" }
277
+ });
278
+ var UiField = class UiField {
279
+ orientation = input("vertical", ...ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []);
280
+ userClass = input("", {
281
+ ...ngDevMode ? { debugName: "userClass" } : /* istanbul ignore next */ {},
282
+ alias: "class"
283
+ });
284
+ classes = computed(() => cn(fieldVariants({ orientation: this.orientation() }), this.userClass()), ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
285
+ static ɵfac = i0.ɵɵngDeclareFactory({
286
+ minVersion: "12.0.0",
287
+ version: "22.2.2",
288
+ ngImport: i0,
289
+ type: UiField,
290
+ deps: [],
291
+ target: i0.ɵɵFactoryTarget.Directive
292
+ });
293
+ static ɵdir = i0.ɵɵngDeclareDirective({
294
+ minVersion: "17.1.0",
295
+ version: "22.2.2",
296
+ type: UiField,
297
+ isStandalone: true,
298
+ selector: "[uiField], ui-field",
299
+ inputs: {
300
+ orientation: {
301
+ classPropertyName: "orientation",
302
+ publicName: "orientation",
303
+ isSignal: true,
304
+ isRequired: false,
305
+ transformFunction: null
306
+ },
307
+ userClass: {
308
+ classPropertyName: "userClass",
309
+ publicName: "class",
310
+ isSignal: true,
311
+ isRequired: false,
312
+ transformFunction: null
313
+ }
314
+ },
315
+ host: {
316
+ attributes: {
317
+ "data-slot": "field",
318
+ "role": "group"
319
+ },
320
+ properties: {
321
+ "attr.data-orientation": "orientation()",
322
+ "attr.class": "classes()"
323
+ }
324
+ },
325
+ hostDirectives: [{ directive: i1.UiElementHost }],
326
+ ngImport: i0
327
+ });
328
+ };
329
+ i0.ɵɵngDeclareClassMetadata({
330
+ minVersion: "12.0.0",
331
+ version: "22.2.2",
332
+ ngImport: i0,
333
+ type: UiField,
334
+ decorators: [{
335
+ type: Directive,
336
+ args: [{
337
+ selector: "[uiField], ui-field",
338
+ hostDirectives: [UiElementHost],
339
+ host: {
340
+ "data-slot": "field",
341
+ "role": "group",
342
+ "[attr.data-orientation]": "orientation()",
343
+ "[attr.class]": "classes()"
344
+ }
345
+ }]
346
+ }],
347
+ propDecorators: {
348
+ orientation: [{
349
+ type: i0.Input,
350
+ args: [{
351
+ isSignal: true,
352
+ alias: "orientation",
353
+ required: false
354
+ }]
355
+ }],
356
+ userClass: [{
357
+ type: i0.Input,
358
+ args: [{
359
+ isSignal: true,
360
+ alias: "class",
361
+ required: false
362
+ }]
363
+ }]
364
+ }
365
+ });
366
+ var UiFieldLabel = class UiFieldLabel {
367
+ userClass = input("", {
368
+ ...ngDevMode ? { debugName: "userClass" } : /* istanbul ignore next */ {},
369
+ alias: "class"
370
+ });
371
+ classes = computed(() => cn("items-center text-sm font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50 group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50 has-data-checked:border-primary/30 has-data-checked:bg-primary/5 has-[>[data-slot=field]]:rounded-lg has-[>[data-slot=field]]:border has-[>[data-slot=field]]:not-has-[:disabled,[data-disabled]]:hover:bg-muted/50 has-[>[data-slot=field]]:has-[:focus-visible]:border-ring has-[>[data-slot=field]]:has-[:focus-visible]:ring-3 has-[>[data-slot=field]]:has-[:focus-visible]:ring-ring/50 *:data-[slot=field]:p-2.5 dark:has-data-checked:border-primary/20 dark:has-data-checked:bg-primary/10 has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col", this.userClass()), ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
372
+ static ɵfac = i0.ɵɵngDeclareFactory({
373
+ minVersion: "12.0.0",
374
+ version: "22.2.2",
375
+ ngImport: i0,
376
+ type: UiFieldLabel,
377
+ deps: [],
378
+ target: i0.ɵɵFactoryTarget.Directive
379
+ });
380
+ static ɵdir = i0.ɵɵngDeclareDirective({
381
+ minVersion: "17.1.0",
382
+ version: "22.2.2",
383
+ type: UiFieldLabel,
384
+ isStandalone: true,
385
+ selector: "label[uiFieldLabel], ui-field-label",
386
+ inputs: { userClass: {
387
+ classPropertyName: "userClass",
388
+ publicName: "class",
389
+ isSignal: true,
390
+ isRequired: false,
391
+ transformFunction: null
392
+ } },
393
+ host: {
394
+ attributes: { "data-slot": "field-label" },
395
+ properties: { "attr.class": "classes()" }
396
+ },
397
+ hostDirectives: [{ directive: i1.UiElementHost }],
398
+ ngImport: i0
399
+ });
400
+ };
401
+ i0.ɵɵngDeclareClassMetadata({
402
+ minVersion: "12.0.0",
403
+ version: "22.2.2",
404
+ ngImport: i0,
405
+ type: UiFieldLabel,
406
+ decorators: [{
407
+ type: Directive,
408
+ args: [{
409
+ selector: "label[uiFieldLabel], ui-field-label",
410
+ hostDirectives: [UiElementHost],
411
+ host: {
412
+ "data-slot": "field-label",
413
+ "[attr.class]": "classes()"
414
+ }
415
+ }]
416
+ }],
417
+ propDecorators: { userClass: [{
418
+ type: i0.Input,
419
+ args: [{
420
+ isSignal: true,
421
+ alias: "class",
422
+ required: false
423
+ }]
424
+ }] }
425
+ });
426
+ var UiFieldContent = class UiFieldContent {
427
+ userClass = input("", {
428
+ ...ngDevMode ? { debugName: "userClass" } : /* istanbul ignore next */ {},
429
+ alias: "class"
430
+ });
431
+ classes = computed(() => cn("group/field-content flex flex-1 flex-col gap-0.5 leading-snug", this.userClass()), ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
432
+ static ɵfac = i0.ɵɵngDeclareFactory({
433
+ minVersion: "12.0.0",
434
+ version: "22.2.2",
435
+ ngImport: i0,
436
+ type: UiFieldContent,
437
+ deps: [],
438
+ target: i0.ɵɵFactoryTarget.Directive
439
+ });
440
+ static ɵdir = i0.ɵɵngDeclareDirective({
441
+ minVersion: "17.1.0",
442
+ version: "22.2.2",
443
+ type: UiFieldContent,
444
+ isStandalone: true,
445
+ selector: "[uiFieldContent], ui-field-content",
446
+ inputs: { userClass: {
447
+ classPropertyName: "userClass",
448
+ publicName: "class",
449
+ isSignal: true,
450
+ isRequired: false,
451
+ transformFunction: null
452
+ } },
453
+ host: {
454
+ attributes: { "data-slot": "field-content" },
455
+ properties: { "attr.class": "classes()" }
456
+ },
457
+ hostDirectives: [{ directive: i1.UiElementHost }],
458
+ ngImport: i0
459
+ });
460
+ };
461
+ i0.ɵɵngDeclareClassMetadata({
462
+ minVersion: "12.0.0",
463
+ version: "22.2.2",
464
+ ngImport: i0,
465
+ type: UiFieldContent,
466
+ decorators: [{
467
+ type: Directive,
468
+ args: [{
469
+ selector: "[uiFieldContent], ui-field-content",
470
+ hostDirectives: [UiElementHost],
471
+ host: {
472
+ "data-slot": "field-content",
473
+ "[attr.class]": "classes()"
474
+ }
475
+ }]
476
+ }],
477
+ propDecorators: { userClass: [{
478
+ type: i0.Input,
479
+ args: [{
480
+ isSignal: true,
481
+ alias: "class",
482
+ required: false
483
+ }]
484
+ }] }
485
+ });
486
+ const UI_FIELD_GENERATED = [
487
+ UiFieldGroup,
488
+ UiFieldSet,
489
+ UiFieldLegend,
490
+ UiFieldDescription,
491
+ UiField,
492
+ UiFieldLabel,
493
+ UiFieldContent
494
+ ];
495
+ var UiFieldSeparator = class UiFieldSeparator {
496
+ userClass = input("", {
497
+ ...ngDevMode ? { debugName: "userClass" } : /* istanbul ignore next */ {},
498
+ alias: "class"
499
+ });
500
+ classes = computed(() => cn("relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2", this.userClass()), ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
501
+ static ɵfac = i0.ɵɵngDeclareFactory({
502
+ minVersion: "12.0.0",
503
+ version: "22.2.2",
504
+ ngImport: i0,
505
+ type: UiFieldSeparator,
506
+ deps: [],
507
+ target: i0.ɵɵFactoryTarget.Directive
508
+ });
509
+ static ɵdir = i0.ɵɵngDeclareDirective({
510
+ minVersion: "17.1.0",
511
+ version: "22.2.2",
512
+ type: UiFieldSeparator,
513
+ isStandalone: true,
514
+ selector: "[uiFieldSeparator], ui-field-separator",
515
+ inputs: { userClass: {
516
+ classPropertyName: "userClass",
517
+ publicName: "class",
518
+ isSignal: true,
519
+ isRequired: false,
520
+ transformFunction: null
521
+ } },
522
+ host: {
523
+ attributes: {
524
+ "role": "none",
525
+ "data-slot": "field-separator"
526
+ },
527
+ properties: { "attr.class": "classes()" }
528
+ },
529
+ hostDirectives: [{ directive: i1.UiElementHost }],
530
+ ngImport: i0
531
+ });
532
+ };
533
+ i0.ɵɵngDeclareClassMetadata({
534
+ minVersion: "12.0.0",
535
+ version: "22.2.2",
536
+ ngImport: i0,
537
+ type: UiFieldSeparator,
538
+ decorators: [{
539
+ type: Directive,
540
+ args: [{
541
+ selector: "[uiFieldSeparator], ui-field-separator",
542
+ hostDirectives: [UiElementHost],
543
+ host: {
544
+ role: "none",
545
+ "data-slot": "field-separator",
546
+ "[attr.class]": "classes()"
547
+ }
548
+ }]
549
+ }],
550
+ propDecorators: { userClass: [{
551
+ type: i0.Input,
552
+ args: [{
553
+ isSignal: true,
554
+ alias: "class",
555
+ required: false
556
+ }]
557
+ }] }
558
+ });
559
+ var UiFieldError = class UiFieldError {
560
+ userClass = input("", {
561
+ ...ngDevMode ? { debugName: "userClass" } : /* istanbul ignore next */ {},
562
+ alias: "class"
563
+ });
564
+ classes = computed(() => cn("text-sm font-normal text-destructive", this.userClass()), ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
565
+ static ɵfac = i0.ɵɵngDeclareFactory({
566
+ minVersion: "12.0.0",
567
+ version: "22.2.2",
568
+ ngImport: i0,
569
+ type: UiFieldError,
570
+ deps: [],
571
+ target: i0.ɵɵFactoryTarget.Directive
572
+ });
573
+ static ɵdir = i0.ɵɵngDeclareDirective({
574
+ minVersion: "17.1.0",
575
+ version: "22.2.2",
576
+ type: UiFieldError,
577
+ isStandalone: true,
578
+ selector: "[uiFieldError], ui-field-error",
579
+ inputs: { userClass: {
580
+ classPropertyName: "userClass",
581
+ publicName: "class",
582
+ isSignal: true,
583
+ isRequired: false,
584
+ transformFunction: null
585
+ } },
586
+ host: {
587
+ attributes: {
588
+ "role": "alert",
589
+ "data-slot": "field-error"
590
+ },
591
+ properties: { "attr.class": "classes()" }
592
+ },
593
+ hostDirectives: [{ directive: i1.UiElementHost }],
594
+ ngImport: i0
595
+ });
596
+ };
597
+ i0.ɵɵngDeclareClassMetadata({
598
+ minVersion: "12.0.0",
599
+ version: "22.2.2",
600
+ ngImport: i0,
601
+ type: UiFieldError,
602
+ decorators: [{
603
+ type: Directive,
604
+ args: [{
605
+ selector: "[uiFieldError], ui-field-error",
606
+ hostDirectives: [UiElementHost],
607
+ host: {
608
+ role: "alert",
609
+ "data-slot": "field-error",
610
+ "[attr.class]": "classes()"
611
+ }
612
+ }]
613
+ }],
614
+ propDecorators: { userClass: [{
615
+ type: i0.Input,
616
+ args: [{
617
+ isSignal: true,
618
+ alias: "class",
619
+ required: false
620
+ }]
621
+ }] }
622
+ });
623
+ const UI_FIELD = [
624
+ ...UI_FIELD_GENERATED,
625
+ UiFieldSeparator,
626
+ UiFieldError
627
+ ];
628
+ export { UI_FIELD, UI_FIELD_GENERATED, UiField, UiFieldContent, UiFieldDescription, UiFieldError, UiFieldGroup, UiFieldLabel, UiFieldLegend, UiFieldSeparator, UiFieldSet, fieldVariants };
629
+
630
+ //# sourceMappingURL=loomui-ng-ui-field.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loomui-ng-ui-field.mjs","names":[],"sources":["../../../libs/ui/field/field.ts","../../../libs/ui/field/field.manual.ts"],"sourcesContent":["// GENERATED by tools/gen-ui.mjs from docs/evidence/slots/field.json.\n// Change tools/ui-specs.mjs and regenerate; hand-written parts live in ./field.manual.ts.\nimport { Directive, computed, input } from '@angular/core';\nimport { cva } from 'class-variance-authority';\nimport { cn } from '@loomui-ng/ui/utils';\nimport { UiElementHost } from '@loomui-ng/ui/utils';\n\n@Directive({\n selector: '[uiFieldGroup], ui-field-group', hostDirectives: [UiElementHost],\n host: {\n 'data-slot': 'field-group',\n '[attr.class]': 'classes()',\n },\n})\nexport class UiFieldGroup {\n readonly userClass = input<string>('', { alias: 'class' });\n protected readonly classes = computed(() => cn('group/field-group @container/field-group flex w-full flex-col data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4', this.userClass()));\n}\n\n@Directive({\n selector: 'fieldset[uiFieldSet], ui-field-set', hostDirectives: [UiElementHost],\n host: {\n 'data-slot': 'field-set',\n '[attr.class]': 'classes()',\n },\n})\nexport class UiFieldSet {\n readonly userClass = input<string>('', { alias: 'class' });\n protected readonly classes = computed(() => cn('flex flex-col gap-4 has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3', this.userClass()));\n}\n\n@Directive({\n selector: 'legend[uiFieldLegend], ui-field-legend', hostDirectives: [UiElementHost],\n host: {\n 'data-slot': 'field-legend',\n '[attr.data-variant]': 'variant()',\n '[attr.class]': 'classes()',\n },\n})\nexport class UiFieldLegend {\n readonly variant = input<'legend' | 'label'>('legend');\n readonly userClass = input<string>('', { alias: 'class' });\n protected readonly classes = computed(() => cn('mb-1.5 font-medium data-[variant=label]:text-sm data-[variant=legend]:text-base', this.userClass()));\n}\n\n@Directive({\n selector: '[uiFieldDescription], ui-field-description', hostDirectives: [UiElementHost],\n host: {\n 'data-slot': 'field-description',\n '[attr.class]': 'classes()',\n },\n})\nexport class UiFieldDescription {\n readonly userClass = input<string>('', { alias: 'class' });\n protected readonly classes = computed(() => cn('text-start text-sm leading-normal font-normal text-muted-foreground group-has-data-horizontal/field:text-balance [[data-variant=legend]+&]:-mt-1.5 last:mt-0 nth-last-2:-mt-1 [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary', this.userClass()));\n}\n\nexport const fieldVariants = cva('group/field flex gap-2 data-[invalid=true]:text-destructive', {\n variants: {\n orientation: {\n vertical: 'flex-col *:w-full [&>.sr-only]:w-auto',\n horizontal: 'flex-row items-center has-[>[data-slot=field-content]]:items-start *:data-[slot=field-label]:flex-auto has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px',\n responsive: 'flex-col *:w-full @md/field-group:flex-row @md/field-group:items-center @md/field-group:*:w-auto @md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:*:data-[slot=field-label]:flex-auto [&>.sr-only]:w-auto @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px',\n },\n },\n defaultVariants: { orientation: 'vertical' },\n});\n\n@Directive({\n selector: '[uiField], ui-field', hostDirectives: [UiElementHost],\n host: {\n 'data-slot': 'field',\n 'role': 'group',\n '[attr.data-orientation]': 'orientation()',\n '[attr.class]': 'classes()',\n },\n})\nexport class UiField {\n readonly orientation = input<'vertical' | 'horizontal' | 'responsive'>('vertical');\n readonly userClass = input<string>('', { alias: 'class' });\n protected readonly classes = computed(() => cn(fieldVariants({ orientation: this.orientation() }), this.userClass()));\n}\n\n@Directive({\n selector: 'label[uiFieldLabel], ui-field-label', hostDirectives: [UiElementHost],\n host: {\n 'data-slot': 'field-label',\n '[attr.class]': 'classes()',\n },\n})\nexport class UiFieldLabel {\n readonly userClass = input<string>('', { alias: 'class' });\n protected readonly classes = computed(() => cn('items-center text-sm font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50 group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50 has-data-checked:border-primary/30 has-data-checked:bg-primary/5 has-[>[data-slot=field]]:rounded-lg has-[>[data-slot=field]]:border has-[>[data-slot=field]]:not-has-[:disabled,[data-disabled]]:hover:bg-muted/50 has-[>[data-slot=field]]:has-[:focus-visible]:border-ring has-[>[data-slot=field]]:has-[:focus-visible]:ring-3 has-[>[data-slot=field]]:has-[:focus-visible]:ring-ring/50 *:data-[slot=field]:p-2.5 dark:has-data-checked:border-primary/20 dark:has-data-checked:bg-primary/10 has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col', this.userClass()));\n}\n\n@Directive({\n selector: '[uiFieldContent], ui-field-content', hostDirectives: [UiElementHost],\n host: {\n 'data-slot': 'field-content',\n '[attr.class]': 'classes()',\n },\n})\nexport class UiFieldContent {\n readonly userClass = input<string>('', { alias: 'class' });\n protected readonly classes = computed(() => cn('group/field-content flex flex-1 flex-col gap-0.5 leading-snug', this.userClass()));\n}\n\nexport const UI_FIELD_GENERATED = [UiFieldGroup, UiFieldSet, UiFieldLegend, UiFieldDescription, UiField, UiFieldLabel, UiFieldContent] as const;\n","import { computed, Directive, input } from '@angular/core';\nimport { cn } from '@loomui-ng/ui/utils';\nimport { UI_FIELD_GENERATED } from './field';\nimport { UiElementHost } from '@loomui-ng/ui/utils';\n\n/**\n * <div uiFieldSeparator><span>or</span></div>\n * Observed: relative -my-2 h-5 text-sm. The label span is shaped like shadcn's source (UNKNOWN on the live capture,\n * which had no content child on the sampled instances).\n */\n@Directive({\n selector: '[uiFieldSeparator], ui-field-separator', hostDirectives: [UiElementHost],\n host: { role: 'none', 'data-slot': 'field-separator', '[attr.class]': 'classes()' },\n})\nexport class UiFieldSeparator {\n readonly userClass = input<string>('', { alias: 'class' });\n protected readonly classes = computed(() =>\n cn('relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2', this.userClass()),\n );\n}\n\n/** Validation message: <div uiFieldError>Required</div>. Not captured on the live page; class from shadcn's source. */\n@Directive({\n selector: '[uiFieldError], ui-field-error', hostDirectives: [UiElementHost],\n host: { role: 'alert', 'data-slot': 'field-error', '[attr.class]': 'classes()' },\n})\nexport class UiFieldError {\n readonly userClass = input<string>('', { alias: 'class' });\n protected readonly classes = computed(() => cn('text-sm font-normal text-destructive', this.userClass()));\n}\n\nexport const UI_FIELD = [...UI_FIELD_GENERATED, UiFieldSeparator, UiFieldError] as const;\n"],"mappings":"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"}