@atomng/ui 1.0.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 (299) hide show
  1. package/README.md +401 -0
  2. package/atomng-ui.d.ts.map +1 -0
  3. package/atoms/atomng-ui-atoms.d.ts.map +1 -0
  4. package/atoms/avatar/avatar.component.d.ts +24 -0
  5. package/atoms/avatar/avatar.component.d.ts.map +1 -0
  6. package/atoms/avatar/index.d.ts +3 -0
  7. package/atoms/avatar/index.d.ts.map +1 -0
  8. package/atoms/badge/badge.component.d.ts +23 -0
  9. package/atoms/badge/badge.component.d.ts.map +1 -0
  10. package/atoms/badge/index.d.ts +3 -0
  11. package/atoms/badge/index.d.ts.map +1 -0
  12. package/atoms/button/button.component.d.ts +47 -0
  13. package/atoms/button/button.component.d.ts.map +1 -0
  14. package/atoms/button/index.d.ts +3 -0
  15. package/atoms/button/index.d.ts.map +1 -0
  16. package/atoms/checkbox/checkbox.component.d.ts +28 -0
  17. package/atoms/checkbox/checkbox.component.d.ts.map +1 -0
  18. package/atoms/checkbox/index.d.ts +2 -0
  19. package/atoms/checkbox/index.d.ts.map +1 -0
  20. package/atoms/chip/chip.component.d.ts +17 -0
  21. package/atoms/chip/chip.component.d.ts.map +1 -0
  22. package/atoms/chip/index.d.ts +2 -0
  23. package/atoms/chip/index.d.ts.map +1 -0
  24. package/atoms/index.d.ts +14 -0
  25. package/atoms/index.d.ts.map +1 -0
  26. package/atoms/kbd/index.d.ts +2 -0
  27. package/atoms/kbd/index.d.ts.map +1 -0
  28. package/atoms/kbd/kbd.component.d.ts +14 -0
  29. package/atoms/kbd/kbd.component.d.ts.map +1 -0
  30. package/atoms/link/index.d.ts +2 -0
  31. package/atoms/link/index.d.ts.map +1 -0
  32. package/atoms/link/link.component.d.ts +15 -0
  33. package/atoms/link/link.component.d.ts.map +1 -0
  34. package/atoms/progress/index.d.ts +3 -0
  35. package/atoms/progress/index.d.ts.map +1 -0
  36. package/atoms/progress/progress.component.d.ts +20 -0
  37. package/atoms/progress/progress.component.d.ts.map +1 -0
  38. package/atoms/separator/index.d.ts +2 -0
  39. package/atoms/separator/index.d.ts.map +1 -0
  40. package/atoms/separator/separator.component.d.ts +13 -0
  41. package/atoms/separator/separator.component.d.ts.map +1 -0
  42. package/atoms/skeleton/index.d.ts +2 -0
  43. package/atoms/skeleton/index.d.ts.map +1 -0
  44. package/atoms/skeleton/skeleton.component.d.ts +13 -0
  45. package/atoms/skeleton/skeleton.component.d.ts.map +1 -0
  46. package/atoms/slider/index.d.ts +2 -0
  47. package/atoms/slider/index.d.ts.map +1 -0
  48. package/atoms/slider/slider.component.d.ts +27 -0
  49. package/atoms/slider/slider.component.d.ts.map +1 -0
  50. package/atoms/switch/index.d.ts +2 -0
  51. package/atoms/switch/index.d.ts.map +1 -0
  52. package/atoms/switch/switch.component.d.ts +25 -0
  53. package/atoms/switch/switch.component.d.ts.map +1 -0
  54. package/atoms/tooltip/index.d.ts +2 -0
  55. package/atoms/tooltip/index.d.ts.map +1 -0
  56. package/atoms/tooltip/tooltip.component.d.ts +15 -0
  57. package/atoms/tooltip/tooltip.component.d.ts.map +1 -0
  58. package/fesm2022/atomng-ui-atoms.mjs +778 -0
  59. package/fesm2022/atomng-ui-atoms.mjs.map +1 -0
  60. package/fesm2022/atomng-ui-molecules.mjs +1590 -0
  61. package/fesm2022/atomng-ui-molecules.mjs.map +1 -0
  62. package/fesm2022/atomng-ui-organisms.mjs +1346 -0
  63. package/fesm2022/atomng-ui-organisms.mjs.map +1 -0
  64. package/fesm2022/atomng-ui-tokens.mjs +499 -0
  65. package/fesm2022/atomng-ui-tokens.mjs.map +1 -0
  66. package/fesm2022/atomng-ui.mjs +4184 -0
  67. package/fesm2022/atomng-ui.mjs.map +1 -0
  68. package/index.d.ts +5 -0
  69. package/index.d.ts.map +1 -0
  70. package/lib/atoms/avatar/avatar.component.d.ts +24 -0
  71. package/lib/atoms/avatar/avatar.component.d.ts.map +1 -0
  72. package/lib/atoms/avatar/index.d.ts +3 -0
  73. package/lib/atoms/avatar/index.d.ts.map +1 -0
  74. package/lib/atoms/badge/badge.component.d.ts +23 -0
  75. package/lib/atoms/badge/badge.component.d.ts.map +1 -0
  76. package/lib/atoms/badge/index.d.ts +3 -0
  77. package/lib/atoms/badge/index.d.ts.map +1 -0
  78. package/lib/atoms/button/button.component.d.ts +47 -0
  79. package/lib/atoms/button/button.component.d.ts.map +1 -0
  80. package/lib/atoms/button/index.d.ts +3 -0
  81. package/lib/atoms/button/index.d.ts.map +1 -0
  82. package/lib/atoms/checkbox/checkbox.component.d.ts +28 -0
  83. package/lib/atoms/checkbox/checkbox.component.d.ts.map +1 -0
  84. package/lib/atoms/checkbox/index.d.ts +2 -0
  85. package/lib/atoms/checkbox/index.d.ts.map +1 -0
  86. package/lib/atoms/chip/chip.component.d.ts +17 -0
  87. package/lib/atoms/chip/chip.component.d.ts.map +1 -0
  88. package/lib/atoms/chip/index.d.ts +2 -0
  89. package/lib/atoms/chip/index.d.ts.map +1 -0
  90. package/lib/atoms/index.d.ts +14 -0
  91. package/lib/atoms/index.d.ts.map +1 -0
  92. package/lib/atoms/kbd/index.d.ts +2 -0
  93. package/lib/atoms/kbd/index.d.ts.map +1 -0
  94. package/lib/atoms/kbd/kbd.component.d.ts +14 -0
  95. package/lib/atoms/kbd/kbd.component.d.ts.map +1 -0
  96. package/lib/atoms/link/index.d.ts +2 -0
  97. package/lib/atoms/link/index.d.ts.map +1 -0
  98. package/lib/atoms/link/link.component.d.ts +15 -0
  99. package/lib/atoms/link/link.component.d.ts.map +1 -0
  100. package/lib/atoms/progress/index.d.ts +3 -0
  101. package/lib/atoms/progress/index.d.ts.map +1 -0
  102. package/lib/atoms/progress/progress.component.d.ts +20 -0
  103. package/lib/atoms/progress/progress.component.d.ts.map +1 -0
  104. package/lib/atoms/separator/index.d.ts +2 -0
  105. package/lib/atoms/separator/index.d.ts.map +1 -0
  106. package/lib/atoms/separator/separator.component.d.ts +13 -0
  107. package/lib/atoms/separator/separator.component.d.ts.map +1 -0
  108. package/lib/atoms/skeleton/index.d.ts +2 -0
  109. package/lib/atoms/skeleton/index.d.ts.map +1 -0
  110. package/lib/atoms/skeleton/skeleton.component.d.ts +13 -0
  111. package/lib/atoms/skeleton/skeleton.component.d.ts.map +1 -0
  112. package/lib/atoms/slider/index.d.ts +2 -0
  113. package/lib/atoms/slider/index.d.ts.map +1 -0
  114. package/lib/atoms/slider/slider.component.d.ts +27 -0
  115. package/lib/atoms/slider/slider.component.d.ts.map +1 -0
  116. package/lib/atoms/switch/index.d.ts +2 -0
  117. package/lib/atoms/switch/index.d.ts.map +1 -0
  118. package/lib/atoms/switch/switch.component.d.ts +25 -0
  119. package/lib/atoms/switch/switch.component.d.ts.map +1 -0
  120. package/lib/atoms/tooltip/index.d.ts +2 -0
  121. package/lib/atoms/tooltip/index.d.ts.map +1 -0
  122. package/lib/atoms/tooltip/tooltip.component.d.ts +15 -0
  123. package/lib/atoms/tooltip/tooltip.component.d.ts.map +1 -0
  124. package/lib/molecules/alert/alert.component.d.ts +22 -0
  125. package/lib/molecules/alert/alert.component.d.ts.map +1 -0
  126. package/lib/molecules/alert/index.d.ts +2 -0
  127. package/lib/molecules/alert/index.d.ts.map +1 -0
  128. package/lib/molecules/avatar-group/avatar-group.component.d.ts +22 -0
  129. package/lib/molecules/avatar-group/avatar-group.component.d.ts.map +1 -0
  130. package/lib/molecules/avatar-group/index.d.ts +2 -0
  131. package/lib/molecules/avatar-group/index.d.ts.map +1 -0
  132. package/lib/molecules/breadcrumb/breadcrumb.component.d.ts +17 -0
  133. package/lib/molecules/breadcrumb/breadcrumb.component.d.ts.map +1 -0
  134. package/lib/molecules/breadcrumb/index.d.ts +2 -0
  135. package/lib/molecules/breadcrumb/index.d.ts.map +1 -0
  136. package/lib/molecules/button-group/button-group.component.d.ts +11 -0
  137. package/lib/molecules/button-group/button-group.component.d.ts.map +1 -0
  138. package/lib/molecules/button-group/index.d.ts +2 -0
  139. package/lib/molecules/button-group/index.d.ts.map +1 -0
  140. package/lib/molecules/form-field/form-field.component.d.ts +18 -0
  141. package/lib/molecules/form-field/form-field.component.d.ts.map +1 -0
  142. package/lib/molecules/form-field/index.d.ts +2 -0
  143. package/lib/molecules/form-field/index.d.ts.map +1 -0
  144. package/lib/molecules/index.d.ts +13 -0
  145. package/lib/molecules/index.d.ts.map +1 -0
  146. package/lib/molecules/input/index.d.ts +2 -0
  147. package/lib/molecules/input/index.d.ts.map +1 -0
  148. package/lib/molecules/input/input.component.d.ts +50 -0
  149. package/lib/molecules/input/input.component.d.ts.map +1 -0
  150. package/lib/molecules/pagination/index.d.ts +2 -0
  151. package/lib/molecules/pagination/index.d.ts.map +1 -0
  152. package/lib/molecules/pagination/pagination.component.d.ts +18 -0
  153. package/lib/molecules/pagination/pagination.component.d.ts.map +1 -0
  154. package/lib/molecules/select/index.d.ts +3 -0
  155. package/lib/molecules/select/index.d.ts.map +1 -0
  156. package/lib/molecules/select/select.component.d.ts +56 -0
  157. package/lib/molecules/select/select.component.d.ts.map +1 -0
  158. package/lib/molecules/select-search/index.d.ts +2 -0
  159. package/lib/molecules/select-search/index.d.ts.map +1 -0
  160. package/lib/molecules/select-search/select-search.component.d.ts +63 -0
  161. package/lib/molecules/select-search/select-search.component.d.ts.map +1 -0
  162. package/lib/molecules/tabs/index.d.ts +2 -0
  163. package/lib/molecules/tabs/index.d.ts.map +1 -0
  164. package/lib/molecules/tabs/tabs.component.d.ts +23 -0
  165. package/lib/molecules/tabs/tabs.component.d.ts.map +1 -0
  166. package/lib/molecules/textarea/index.d.ts +2 -0
  167. package/lib/molecules/textarea/index.d.ts.map +1 -0
  168. package/lib/molecules/textarea/textarea.component.d.ts +27 -0
  169. package/lib/molecules/textarea/textarea.component.d.ts.map +1 -0
  170. package/lib/molecules/toast/index.d.ts +2 -0
  171. package/lib/molecules/toast/index.d.ts.map +1 -0
  172. package/lib/molecules/toast/toast.component.d.ts +19 -0
  173. package/lib/molecules/toast/toast.component.d.ts.map +1 -0
  174. package/lib/organisms/accordion/accordion.component.d.ts +25 -0
  175. package/lib/organisms/accordion/accordion.component.d.ts.map +1 -0
  176. package/lib/organisms/card/card.component.d.ts +14 -0
  177. package/lib/organisms/card/card.component.d.ts.map +1 -0
  178. package/lib/organisms/dropdown-menu/dropdown-menu.component.d.ts +29 -0
  179. package/lib/organisms/dropdown-menu/dropdown-menu.component.d.ts.map +1 -0
  180. package/lib/organisms/index.d.ts +8 -0
  181. package/lib/organisms/index.d.ts.map +1 -0
  182. package/lib/organisms/modal/modal.component.d.ts +19 -0
  183. package/lib/organisms/modal/modal.component.d.ts.map +1 -0
  184. package/lib/organisms/navigation-menu/navigation-menu.component.d.ts +24 -0
  185. package/lib/organisms/navigation-menu/navigation-menu.component.d.ts.map +1 -0
  186. package/lib/organisms/sidebar/sidebar.component.d.ts +68 -0
  187. package/lib/organisms/sidebar/sidebar.component.d.ts.map +1 -0
  188. package/lib/organisms/table/index.d.ts +3 -0
  189. package/lib/organisms/table/index.d.ts.map +1 -0
  190. package/lib/organisms/table/table-cell.directive.d.ts +17 -0
  191. package/lib/organisms/table/table-cell.directive.d.ts.map +1 -0
  192. package/lib/organisms/table/table.component.d.ts +50 -0
  193. package/lib/organisms/table/table.component.d.ts.map +1 -0
  194. package/lib/tokens/index.d.ts +2 -0
  195. package/lib/tokens/index.d.ts.map +1 -0
  196. package/lib/tokens/theme/color-presets.d.ts +24 -0
  197. package/lib/tokens/theme/color-presets.d.ts.map +1 -0
  198. package/lib/tokens/theme/index.d.ts +6 -0
  199. package/lib/tokens/theme/index.d.ts.map +1 -0
  200. package/lib/tokens/theme/theme-picker.component.d.ts +11 -0
  201. package/lib/tokens/theme/theme-picker.component.d.ts.map +1 -0
  202. package/lib/tokens/theme/theme-toggle.component.d.ts +15 -0
  203. package/lib/tokens/theme/theme-toggle.component.d.ts.map +1 -0
  204. package/lib/tokens/theme/theme.provider.d.ts +4 -0
  205. package/lib/tokens/theme/theme.provider.d.ts.map +1 -0
  206. package/lib/tokens/theme/theme.service.d.ts +48 -0
  207. package/lib/tokens/theme/theme.service.d.ts.map +1 -0
  208. package/molecules/alert/alert.component.d.ts +22 -0
  209. package/molecules/alert/alert.component.d.ts.map +1 -0
  210. package/molecules/alert/index.d.ts +2 -0
  211. package/molecules/alert/index.d.ts.map +1 -0
  212. package/molecules/atomng-ui-molecules.d.ts.map +1 -0
  213. package/molecules/avatar-group/avatar-group.component.d.ts +22 -0
  214. package/molecules/avatar-group/avatar-group.component.d.ts.map +1 -0
  215. package/molecules/avatar-group/index.d.ts +2 -0
  216. package/molecules/avatar-group/index.d.ts.map +1 -0
  217. package/molecules/breadcrumb/breadcrumb.component.d.ts +17 -0
  218. package/molecules/breadcrumb/breadcrumb.component.d.ts.map +1 -0
  219. package/molecules/breadcrumb/index.d.ts +2 -0
  220. package/molecules/breadcrumb/index.d.ts.map +1 -0
  221. package/molecules/button-group/button-group.component.d.ts +11 -0
  222. package/molecules/button-group/button-group.component.d.ts.map +1 -0
  223. package/molecules/button-group/index.d.ts +2 -0
  224. package/molecules/button-group/index.d.ts.map +1 -0
  225. package/molecules/form-field/form-field.component.d.ts +18 -0
  226. package/molecules/form-field/form-field.component.d.ts.map +1 -0
  227. package/molecules/form-field/index.d.ts +2 -0
  228. package/molecules/form-field/index.d.ts.map +1 -0
  229. package/molecules/index.d.ts +13 -0
  230. package/molecules/index.d.ts.map +1 -0
  231. package/molecules/input/index.d.ts +2 -0
  232. package/molecules/input/index.d.ts.map +1 -0
  233. package/molecules/input/input.component.d.ts +50 -0
  234. package/molecules/input/input.component.d.ts.map +1 -0
  235. package/molecules/pagination/index.d.ts +2 -0
  236. package/molecules/pagination/index.d.ts.map +1 -0
  237. package/molecules/pagination/pagination.component.d.ts +18 -0
  238. package/molecules/pagination/pagination.component.d.ts.map +1 -0
  239. package/molecules/select/index.d.ts +3 -0
  240. package/molecules/select/index.d.ts.map +1 -0
  241. package/molecules/select/select.component.d.ts +56 -0
  242. package/molecules/select/select.component.d.ts.map +1 -0
  243. package/molecules/select-search/index.d.ts +2 -0
  244. package/molecules/select-search/index.d.ts.map +1 -0
  245. package/molecules/select-search/select-search.component.d.ts +63 -0
  246. package/molecules/select-search/select-search.component.d.ts.map +1 -0
  247. package/molecules/tabs/index.d.ts +2 -0
  248. package/molecules/tabs/index.d.ts.map +1 -0
  249. package/molecules/tabs/tabs.component.d.ts +23 -0
  250. package/molecules/tabs/tabs.component.d.ts.map +1 -0
  251. package/molecules/textarea/index.d.ts +2 -0
  252. package/molecules/textarea/index.d.ts.map +1 -0
  253. package/molecules/textarea/textarea.component.d.ts +27 -0
  254. package/molecules/textarea/textarea.component.d.ts.map +1 -0
  255. package/molecules/toast/index.d.ts +2 -0
  256. package/molecules/toast/index.d.ts.map +1 -0
  257. package/molecules/toast/toast.component.d.ts +19 -0
  258. package/molecules/toast/toast.component.d.ts.map +1 -0
  259. package/organisms/accordion/accordion.component.d.ts +25 -0
  260. package/organisms/accordion/accordion.component.d.ts.map +1 -0
  261. package/organisms/atomng-ui-organisms.d.ts.map +1 -0
  262. package/organisms/card/card.component.d.ts +14 -0
  263. package/organisms/card/card.component.d.ts.map +1 -0
  264. package/organisms/dropdown-menu/dropdown-menu.component.d.ts +29 -0
  265. package/organisms/dropdown-menu/dropdown-menu.component.d.ts.map +1 -0
  266. package/organisms/index.d.ts +8 -0
  267. package/organisms/index.d.ts.map +1 -0
  268. package/organisms/modal/modal.component.d.ts +19 -0
  269. package/organisms/modal/modal.component.d.ts.map +1 -0
  270. package/organisms/navigation-menu/navigation-menu.component.d.ts +24 -0
  271. package/organisms/navigation-menu/navigation-menu.component.d.ts.map +1 -0
  272. package/organisms/sidebar/sidebar.component.d.ts +68 -0
  273. package/organisms/sidebar/sidebar.component.d.ts.map +1 -0
  274. package/organisms/table/index.d.ts +3 -0
  275. package/organisms/table/index.d.ts.map +1 -0
  276. package/organisms/table/table-cell.directive.d.ts +17 -0
  277. package/organisms/table/table-cell.directive.d.ts.map +1 -0
  278. package/organisms/table/table.component.d.ts +50 -0
  279. package/organisms/table/table.component.d.ts.map +1 -0
  280. package/package.json +81 -0
  281. package/tokens/_colors.scss +150 -0
  282. package/tokens/_spacing.scss +98 -0
  283. package/tokens/_typography.scss +59 -0
  284. package/tokens/atomng-ui-tokens.d.ts.map +1 -0
  285. package/tokens/index.d.ts +2 -0
  286. package/tokens/index.d.ts.map +1 -0
  287. package/tokens/index.scss +8 -0
  288. package/tokens/theme/color-presets.d.ts +24 -0
  289. package/tokens/theme/color-presets.d.ts.map +1 -0
  290. package/tokens/theme/index.d.ts +6 -0
  291. package/tokens/theme/index.d.ts.map +1 -0
  292. package/tokens/theme/theme-picker.component.d.ts +11 -0
  293. package/tokens/theme/theme-picker.component.d.ts.map +1 -0
  294. package/tokens/theme/theme-toggle.component.d.ts +15 -0
  295. package/tokens/theme/theme-toggle.component.d.ts.map +1 -0
  296. package/tokens/theme/theme.provider.d.ts +4 -0
  297. package/tokens/theme/theme.provider.d.ts.map +1 -0
  298. package/tokens/theme/theme.service.d.ts +48 -0
  299. package/tokens/theme/theme.service.d.ts.map +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../libs/shared-ui/src/lib/organisms/table/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE,MAAW,mBAAmB,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAW,wBAAwB,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { TemplateRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export interface TableCellContext {
4
+ $implicit: Record<string, unknown>;
5
+ row: Record<string, unknown>;
6
+ }
7
+ export declare class UiTableCellDirective {
8
+ readonly tpl: TemplateRef<TableCellContext>;
9
+ /** The column key this template handles. */
10
+ columnKey: string;
11
+ constructor(tpl: TemplateRef<TableCellContext>);
12
+ /** Type-safe static context guard for `let-row`. */
13
+ static ngTemplateContextGuard(_dir: UiTableCellDirective, ctx: unknown): ctx is TableCellContext;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<UiTableCellDirective, never>;
15
+ static ɵdir: i0.ɵɵDirectiveDeclaration<UiTableCellDirective, "ng-template[uiCell]", never, { "columnKey": { "alias": "uiCell"; "required": true; }; }, {}, never, never, true, never>;
16
+ }
17
+ //# sourceMappingURL=table-cell.directive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-cell.directive.d.ts","sourceRoot":"","sources":["../../../../../libs/shared-ui/src/lib/organisms/table/table-cell.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,WAAW,EAAE,MAAM,eAAe,CAAC;;AAU9D,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,GAAG,EAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,qBAIa,oBAAoB;aAKb,GAAG,EAAE,WAAW,CAAC,gBAAgB,CAAC;IAJpD,4CAA4C;IACA,SAAS,EAAG,MAAM,CAAC;gBAG7C,GAAG,EAAE,WAAW,CAAC,gBAAgB,CAAC;IAGpD,oDAAoD;IACpD,MAAM,CAAC,sBAAsB,CAC3B,IAAI,EAAE,oBAAoB,EAC1B,GAAG,EAAE,OAAO,GACX,GAAG,IAAI,gBAAgB;yCAZf,oBAAoB;2CAApB,oBAAoB;CAehC"}
@@ -0,0 +1,50 @@
1
+ import { TemplateRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export interface TableColumn<T = unknown> {
4
+ key: string;
5
+ label: string;
6
+ sortable?: boolean;
7
+ width?: string;
8
+ align?: 'left' | 'center' | 'right';
9
+ }
10
+ export interface SortState {
11
+ column: string;
12
+ direction: 'asc' | 'desc';
13
+ }
14
+ /**
15
+ * Table Organism — Source: Nuxt UI v3 ❖ Table
16
+ * Data table with sorting, selection, loading state.
17
+ *
18
+ * Custom cell templates via UiTableCellDirective:
19
+ * <ng-template uiCell="columnKey" let-row>
20
+ * <ui-badge>{{ row['field'] }}</ui-badge>
21
+ * </ng-template>
22
+ */
23
+ export declare class TableComponent {
24
+ readonly columns: import("@angular/core").InputSignal<TableColumn<unknown>[]>;
25
+ readonly rows: import("@angular/core").InputSignal<Record<string, unknown>[]>;
26
+ readonly loading: import("@angular/core").InputSignal<boolean>;
27
+ readonly selectable: import("@angular/core").InputSignal<boolean>;
28
+ readonly caption: import("@angular/core").InputSignal<string>;
29
+ readonly emptyLabel: import("@angular/core").InputSignal<string>;
30
+ readonly rowIdKey: import("@angular/core").InputSignal<string>;
31
+ readonly sortState: import("@angular/core").ModelSignal<SortState>;
32
+ readonly selectedIds: import("@angular/core").ModelSignal<(string | number)[]>;
33
+ readonly rowClick: import("@angular/core").OutputEmitterRef<Record<string, unknown>>;
34
+ private cellDirs;
35
+ /** Returns the TemplateRef for a column key if a custom template was provided. */
36
+ protected getCellTpl(key: string): TemplateRef<unknown> | null;
37
+ protected readonly loadingRows: import("@angular/core").Signal<number[]>;
38
+ protected readonly allSelected: import("@angular/core").Signal<boolean>;
39
+ protected rowId(row: Record<string, unknown>): string | number;
40
+ protected isSelected(id: string | number): boolean;
41
+ protected toggleRow(id: string | number): void;
42
+ protected toggleAll(): void;
43
+ protected sort(key: string): void;
44
+ protected getSortIcon(key: string): string;
45
+ protected getSortAriaLabel(key: string): string | null;
46
+ protected onRowClick(row: Record<string, unknown>): void;
47
+ static ɵfac: i0.ɵɵFactoryDeclaration<TableComponent, never>;
48
+ static ɵcmp: i0.ɵɵComponentDeclaration<TableComponent, "ui-table", never, { "columns": { "alias": "columns"; "required": true; "isSignal": true; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "caption": { "alias": "caption"; "required": false; "isSignal": true; }; "emptyLabel": { "alias": "emptyLabel"; "required": false; "isSignal": true; }; "rowIdKey": { "alias": "rowIdKey"; "required": false; "isSignal": true; }; "sortState": { "alias": "sortState"; "required": false; "isSignal": true; }; "selectedIds": { "alias": "selectedIds"; "required": false; "isSignal": true; }; }, { "sortState": "sortStateChange"; "selectedIds": "selectedIdsChange"; "rowClick": "rowClick"; }, ["cellDirs"], ["[slot=empty]", "*"], true, never>;
49
+ }
50
+ //# sourceMappingURL=table.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.component.d.ts","sourceRoot":"","sources":["../../../../../libs/shared-ui/src/lib/organisms/table/table.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAEM,WAAW,EACvB,MAAM,eAAe,CAAC;;AAIvB,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,OAAO;IACtC,GAAG,EAAS,MAAM,CAAC;IACnB,KAAK,EAAO,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAG,OAAO,CAAC;IACpB,KAAK,CAAC,EAAM,MAAM,CAAC;IACnB,KAAK,CAAC,EAAM,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;CACzC;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,KAAK,GAAG,MAAM,CAAC;CAC3B;AAED;;;;;;;;GAQG;AACH,qBAgGa,cAAc;IACzB,QAAQ,CAAC,OAAO,8DAAwC;IACxD,QAAQ,CAAC,IAAI,iEAAgD;IAC7D,QAAQ,CAAC,OAAO,+CAA8B;IAC9C,QAAQ,CAAC,UAAU,+CAA2B;IAC9C,QAAQ,CAAC,OAAO,8CAAmC;IACnD,QAAQ,CAAC,UAAU,8CAAyC;IAC5D,QAAQ,CAAC,QAAQ,8CAA2B;IAE5C,QAAQ,CAAC,SAAS,iDAAoC;IACtD,QAAQ,CAAC,WAAW,2DAAmC;IAEvD,QAAQ,CAAC,QAAQ,oEAAqC;IAItD,OAAO,CAAC,QAAQ,CAAmC;IAEnD,kFAAkF;IAClF,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI;IAM9D,SAAS,CAAC,QAAQ,CAAC,WAAW,2CAA0D;IACxF,SAAS,CAAC,QAAQ,CAAC,WAAW,0CAE5B;IAIF,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,MAAM;IAI9D,SAAS,CAAC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO;IAIlD,SAAS,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAM9C,SAAS,CAAC,SAAS,IAAI,IAAI;IAQ3B,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAWjC,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAM1C,SAAS,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAMtD,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;yCA7E7C,cAAc;2CAAd,cAAc;CAgF1B"}
package/package.json ADDED
@@ -0,0 +1,81 @@
1
+ {
2
+ "name": "@atomng/ui",
3
+ "version": "1.0.0",
4
+ "description": "Angular 19 component library — Atomic Design system built with Standalone Components, Angular Signals and SCSS design tokens.",
5
+ "keywords": [
6
+ "angular",
7
+ "angular19",
8
+ "component-library",
9
+ "design-system",
10
+ "ui-kit",
11
+ "atomic-design",
12
+ "standalone-components",
13
+ "signals",
14
+ "scss",
15
+ "css-custom-properties",
16
+ "dark-mode",
17
+ "theming",
18
+ "atoms",
19
+ "molecules",
20
+ "organisms"
21
+ ],
22
+ "author": {
23
+ "name": "Libasse Mbaye",
24
+ "email": "libasselayembayedev@gmail.com"
25
+ },
26
+ "license": "MIT",
27
+ "peerDependencies": {
28
+ "@angular/animations": ">=19.0.0",
29
+ "@angular/common": ">=19.0.0",
30
+ "@angular/core": ">=19.0.0",
31
+ "@angular/forms": ">=19.0.0",
32
+ "@angular/router": ">=19.0.0",
33
+ "lucide-angular": ">=1.0.0",
34
+ "rxjs": ">=7.4.0"
35
+ },
36
+ "peerDependenciesMeta": {
37
+ "@angular/animations": {
38
+ "optional": true
39
+ },
40
+ "@angular/forms": {
41
+ "optional": true
42
+ },
43
+ "@angular/router": {
44
+ "optional": true
45
+ }
46
+ },
47
+ "sideEffects": [
48
+ "**/*.scss",
49
+ "**/*.css"
50
+ ],
51
+ "module": "fesm2022/atomng-ui.mjs",
52
+ "typings": "index.d.ts",
53
+ "exports": {
54
+ "./package.json": {
55
+ "default": "./package.json"
56
+ },
57
+ ".": {
58
+ "types": "./index.d.ts",
59
+ "default": "./fesm2022/atomng-ui.mjs"
60
+ },
61
+ "./tokens": {
62
+ "types": "./tokens/index.d.ts",
63
+ "default": "./fesm2022/atomng-ui-tokens.mjs"
64
+ },
65
+ "./molecules": {
66
+ "types": "./molecules/index.d.ts",
67
+ "default": "./fesm2022/atomng-ui-molecules.mjs"
68
+ },
69
+ "./atoms": {
70
+ "types": "./atoms/index.d.ts",
71
+ "default": "./fesm2022/atomng-ui-atoms.mjs"
72
+ },
73
+ "./organisms": {
74
+ "types": "./organisms/index.d.ts",
75
+ "default": "./fesm2022/atomng-ui-organisms.mjs"
76
+ }
77
+ },
78
+ "dependencies": {
79
+ "tslib": ">=2.3.0"
80
+ }
81
+ }
@@ -0,0 +1,150 @@
1
+ // ============================================================
2
+ // DESIGN TOKENS — COLORS
3
+ // Source: Nuxt UI v3 Official Design Kit (Figma)
4
+ // Primary: #00C16A | Font: DM Sans
5
+ // ============================================================
6
+
7
+ :root {
8
+ // ── Primary (Nuxt Green) ──────────────────────────────────
9
+ --color-primary-50: #e6fff3;
10
+ --color-primary-100: #b3ffe0;
11
+ --color-primary-200: #80ffcc;
12
+ --color-primary-300: #4dfab8;
13
+ --color-primary-400: #1af5a3;
14
+ --color-primary-500: #00c16a; // Base — rgb(0, 193, 106)
15
+ --color-primary-600: #00a358;
16
+ --color-primary-700: #008547;
17
+ --color-primary-800: #006736;
18
+ --color-primary-900: #004a26;
19
+ --color-primary-950: #002d17;
20
+
21
+ // ── Secondary ────────────────────────────────────────────
22
+ --color-secondary-50: #f0f4ff;
23
+ --color-secondary-100: #d9e4ff;
24
+ --color-secondary-200: #b3c9ff;
25
+ --color-secondary-300: #8db0ff;
26
+ --color-secondary-400: #6695ff;
27
+ --color-secondary-500: #4070ff;
28
+ --color-secondary-600: #2a54e0;
29
+ --color-secondary-700: #1a3cba;
30
+ --color-secondary-800: #0d2794;
31
+ --color-secondary-900: #06186e;
32
+ --color-secondary-950: #030d4a;
33
+
34
+ // ── Neutral ───────────────────────────────────────────────
35
+ --color-neutral-0: #ffffff;
36
+ --color-neutral-50: #f9fafb;
37
+ --color-neutral-100: #f3f4f6;
38
+ --color-neutral-200: #e5e7eb;
39
+ --color-neutral-300: #d1d5db;
40
+ --color-neutral-400: #9ca3af;
41
+ --color-neutral-500: #6b7280;
42
+ --color-neutral-600: #4b5563;
43
+ --color-neutral-700: #374151;
44
+ --color-neutral-800: #1f2937;
45
+ --color-neutral-900: #111827;
46
+ --color-neutral-950: #1b1718;
47
+
48
+ // ── Success ───────────────────────────────────────────────
49
+ --color-success-50: #f0fdf4;
50
+ --color-success-100: #dcfce7;
51
+ --color-success-200: #bbf7d0;
52
+ --color-success-300: #86efac;
53
+ --color-success-400: #4ade80;
54
+ --color-success-500: #22c55e;
55
+ --color-success-600: #16a34a;
56
+ --color-success-700: #15803d;
57
+ --color-success-800: #166534;
58
+ --color-success-900: #14532d;
59
+ --color-success-950: #052e16;
60
+
61
+ // ── Warning ───────────────────────────────────────────────
62
+ --color-warning-50: #fffbeb;
63
+ --color-warning-100: #fef3c7;
64
+ --color-warning-200: #fde68a;
65
+ --color-warning-300: #fcd34d;
66
+ --color-warning-400: #fbbf24;
67
+ --color-warning-500: #f59e0b;
68
+ --color-warning-600: #d97706;
69
+ --color-warning-700: #b45309;
70
+ --color-warning-800: #92400e;
71
+ --color-warning-900: #78350f;
72
+ --color-warning-950: #451a03;
73
+
74
+ // ── Error ─────────────────────────────────────────────────
75
+ --color-error-50: #fef2f2;
76
+ --color-error-100: #fee2e2;
77
+ --color-error-200: #fecaca;
78
+ --color-error-300: #fca5a5;
79
+ --color-error-400: #f87171;
80
+ --color-error-500: #ef4444;
81
+ --color-error-600: #dc2626;
82
+ --color-error-700: #b91c1c;
83
+ --color-error-800: #991b1b;
84
+ --color-error-900: #7f1d1d;
85
+ --color-error-950: #450a0a;
86
+
87
+ // ── Info ──────────────────────────────────────────────────
88
+ --color-info-50: #eff6ff;
89
+ --color-info-100: #dbeafe;
90
+ --color-info-200: #bfdbfe;
91
+ --color-info-300: #93c5fd;
92
+ --color-info-400: #60a5fa;
93
+ --color-info-500: #3b82f6;
94
+ --color-info-600: #2563eb;
95
+ --color-info-700: #1d4ed8;
96
+ --color-info-800: #1e40af;
97
+ --color-info-900: #1e3a8a;
98
+ --color-info-950: #172554;
99
+
100
+ // ── Semantic Aliases ──────────────────────────────────────
101
+ --color-bg: var(--color-neutral-0);
102
+ --color-bg-muted: var(--color-neutral-50);
103
+ --color-bg-subtle: var(--color-neutral-100);
104
+ --color-border: var(--color-neutral-200);
105
+ --color-border-muted: var(--color-neutral-100);
106
+ --color-text: var(--color-neutral-900);
107
+ --color-text-muted: var(--color-neutral-500);
108
+ --color-text-subtle: var(--color-neutral-400);
109
+ --color-text-inverted: var(--color-neutral-0);
110
+ --color-ring: var(--color-primary-500);
111
+ }
112
+
113
+ // ── Dark Mode ─────────────────────────────────────────────
114
+ [data-theme="dark"],
115
+ .dark {
116
+ --color-bg: var(--color-neutral-950);
117
+ --color-bg-muted: var(--color-neutral-900);
118
+ --color-bg-subtle: var(--color-neutral-800);
119
+ --color-border: var(--color-neutral-800);
120
+ --color-border-muted: var(--color-neutral-900);
121
+ --color-text: var(--color-neutral-50);
122
+ --color-text-muted: var(--color-neutral-400);
123
+ --color-text-subtle: var(--color-neutral-500);
124
+ --color-text-inverted: var(--color-neutral-950);
125
+ }
126
+
127
+ // ── SCSS Maps for programmatic use ────────────────────────
128
+ $colors-primary: (
129
+ 50: #e6fff3,
130
+ 100: #b3ffe0,
131
+ 200: #80ffcc,
132
+ 300: #4dfab8,
133
+ 400: #1af5a3,
134
+ 500: #00c16a,
135
+ 600: #00a358,
136
+ 700: #008547,
137
+ 800: #006736,
138
+ 900: #004a26,
139
+ 950: #002d17,
140
+ );
141
+
142
+ $color-semantic: (
143
+ 'primary': #00c16a,
144
+ 'secondary': #4070ff,
145
+ 'neutral': #6b7280,
146
+ 'success': #22c55e,
147
+ 'warning': #f59e0b,
148
+ 'error': #ef4444,
149
+ 'info': #3b82f6,
150
+ );
@@ -0,0 +1,98 @@
1
+ // ============================================================
2
+ // DESIGN TOKENS — SPACING & SIZING
3
+ // Source: Nuxt UI v3 Official Design Kit (Figma)
4
+ // Button sizes: xs(h:24) sm(h:28) md(h:32) lg(h:36) xl(h:40)
5
+ // ============================================================
6
+
7
+ :root {
8
+ // ── Base spacing scale (4px base) ─────────────────────────
9
+ --spacing-0: 0;
10
+ --spacing-px: 1px;
11
+ --spacing-0-5: 0.125rem; // 2px
12
+ --spacing-1: 0.25rem; // 4px
13
+ --spacing-1-5: 0.375rem; // 6px
14
+ --spacing-2: 0.5rem; // 8px
15
+ --spacing-2-5: 0.625rem; // 10px
16
+ --spacing-3: 0.75rem; // 12px
17
+ --spacing-3-5: 0.875rem; // 14px
18
+ --spacing-4: 1rem; // 16px
19
+ --spacing-5: 1.25rem; // 20px
20
+ --spacing-6: 1.5rem; // 24px
21
+ --spacing-7: 1.75rem; // 28px
22
+ --spacing-8: 2rem; // 32px
23
+ --spacing-9: 2.25rem; // 36px
24
+ --spacing-10: 2.5rem; // 40px
25
+ --spacing-11: 2.75rem; // 44px
26
+ --spacing-12: 3rem; // 48px
27
+ --spacing-16: 4rem; // 64px
28
+ --spacing-20: 5rem; // 80px
29
+ --spacing-24: 6rem; // 96px
30
+
31
+ // ── Component Heights (from Figma button specs) ───────────
32
+ --size-xs: 1.5rem; // 24px
33
+ --size-sm: 1.75rem; // 28px
34
+ --size-md: 2rem; // 32px
35
+ --size-lg: 2.25rem; // 36px
36
+ --size-xl: 2.5rem; // 40px
37
+
38
+ // ── Border Radius ─────────────────────────────────────────
39
+ --radius-none: 0;
40
+ --radius-sm: 0.125rem; // 2px
41
+ --radius-md: 0.375rem; // 6px ← Figma base radius
42
+ --radius-lg: 0.5rem; // 8px
43
+ --radius-xl: 0.75rem; // 12px
44
+ --radius-2xl: 1rem; // 16px
45
+ --radius-full: 9999px;
46
+
47
+ // ── Icon Sizes ────────────────────────────────────────────
48
+ --icon-xs: 0.875rem; // 14px
49
+ --icon-sm: 1rem; // 16px
50
+ --icon-md: 1.25rem; // 20px ← Figma button icon size
51
+ --icon-lg: 1.5rem; // 24px
52
+ --icon-xl: 1.75rem; // 28px
53
+
54
+ // ── Shadows ───────────────────────────────────────────────
55
+ --shadow-xs: 0 1px 2px 0 rgb(0 0 0 / 0.05);
56
+ --shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
57
+ --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
58
+ --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
59
+ --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
60
+
61
+ // ── Transitions ───────────────────────────────────────────
62
+ --transition-fast: 150ms ease;
63
+ --transition-base: 200ms ease;
64
+ --transition-slow: 300ms ease;
65
+ --transition-colors: color 150ms ease, background-color 150ms ease, border-color 150ms ease, box-shadow 150ms ease;
66
+
67
+ // ── Z-index ───────────────────────────────────────────────
68
+ --z-base: 0;
69
+ --z-raised: 10;
70
+ --z-dropdown: 1000;
71
+ --z-sticky: 1100;
72
+ --z-modal: 1300;
73
+ --z-toast: 1500;
74
+ --z-tooltip: 1700;
75
+ }
76
+
77
+ // ── Padding map (from Figma button specs) ─────────────────
78
+ // xs: 4px 8px | sm: 6px 10px | md: 6px 10px | lg: 8px 12px | xl: 8px 12px
79
+ $component-padding: (
80
+ xs: (4px, 8px),
81
+ sm: (6px, 10px),
82
+ md: (6px, 10px),
83
+ lg: (8px, 12px),
84
+ xl: (8px, 12px),
85
+ );
86
+
87
+ // ── Responsive breakpoints ────────────────────────────────
88
+ $breakpoints: (
89
+ sm: 640px,
90
+ md: 768px,
91
+ lg: 1024px,
92
+ xl: 1280px,
93
+ 2xl: 1536px,
94
+ );
95
+
96
+ @mixin responsive($bp) {
97
+ @media (min-width: map-get($breakpoints, $bp)) { @content; }
98
+ }
@@ -0,0 +1,59 @@
1
+ // ============================================================
2
+ // DESIGN TOKENS — TYPOGRAPHY
3
+ // Source: Nuxt UI v3 Official Design Kit (Figma)
4
+ // Font: DM Sans — extracted from Figma component specs
5
+ // ============================================================
6
+
7
+ :root {
8
+ // ── Font Families ─────────────────────────────────────────
9
+ --font-sans: 'DM Sans', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
10
+ --font-mono: 'DM Mono', 'Fira Code', 'Cascadia Code', ui-monospace, monospace;
11
+
12
+ // ── Font Sizes ────────────────────────────────────────────
13
+ --text-xs: 0.75rem; // 12px
14
+ --text-sm: 0.875rem; // 14px
15
+ --text-md: 1rem; // 16px
16
+ --text-lg: 1.125rem; // 18px
17
+ --text-xl: 1.25rem; // 20px
18
+ --text-2xl: 1.5rem; // 24px
19
+ --text-3xl: 1.875rem; // 30px
20
+ --text-4xl: 2.25rem; // 36px
21
+
22
+ // ── Font Weights ──────────────────────────────────────────
23
+ --font-normal: 400;
24
+ --font-medium: 500; // Primary weight in Figma
25
+ --font-semibold: 600;
26
+ --font-bold: 700;
27
+
28
+ // ── Line Heights ──────────────────────────────────────────
29
+ --leading-none: 1;
30
+ --leading-tight: 1.25;
31
+ --leading-snug: 1.375;
32
+ --leading-normal: 1.5;
33
+ --leading-relaxed: 1.625;
34
+
35
+ // ── Letter Spacing ────────────────────────────────────────
36
+ --tracking-tight: -0.025em;
37
+ --tracking-normal: 0;
38
+ --tracking-wide: 0.025em;
39
+ --tracking-wider: 0.05em;
40
+ --tracking-widest: 0.1em;
41
+ }
42
+
43
+ // ── SCSS Mixins ───────────────────────────────────────────
44
+ @mixin text-xs { font-size: var(--text-xs); line-height: var(--leading-normal); }
45
+ @mixin text-sm { font-size: var(--text-sm); line-height: var(--leading-normal); }
46
+ @mixin text-md { font-size: var(--text-md); line-height: var(--leading-normal); }
47
+ @mixin text-lg { font-size: var(--text-lg); line-height: var(--leading-snug); }
48
+ @mixin text-xl { font-size: var(--text-xl); line-height: var(--leading-snug); }
49
+ @mixin text-2xl { font-size: var(--text-2xl); line-height: var(--leading-tight); }
50
+ @mixin text-3xl { font-size: var(--text-3xl); line-height: var(--leading-tight); }
51
+ @mixin text-4xl { font-size: var(--text-4xl); line-height: var(--leading-tight); }
52
+
53
+ // ── Button Typography (from Figma) ────────────────────────
54
+ // xs: 12px 500 | sm: 12px 500 | md: 14px 500 | lg: 14px 500 | xl: 16px 500
55
+ @mixin btn-text-xs { font-size: var(--text-xs); font-weight: var(--font-medium); }
56
+ @mixin btn-text-sm { font-size: var(--text-xs); font-weight: var(--font-medium); }
57
+ @mixin btn-text-md { font-size: var(--text-sm); font-weight: var(--font-medium); }
58
+ @mixin btn-text-lg { font-size: var(--text-sm); font-weight: var(--font-medium); }
59
+ @mixin btn-text-xl { font-size: var(--text-md); font-weight: var(--font-medium); }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"atomng-ui-tokens.d.ts","sourceRoot":"","sources":["../../../../libs/shared-ui/src/lib/tokens/atomng-ui-tokens.ts"],"names":[],"mappings":"AAAA;;GAEG;;AAEH,cAAc,SAAS,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './theme/index';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../libs/shared-ui/src/lib/tokens/index.ts"],"names":[],"mappings":"AAIA,cAAc,eAAe,CAAC"}
@@ -0,0 +1,8 @@
1
+ // ============================================================
2
+ // SHARED-UI DESIGN TOKENS — Master Export
3
+ // Import this file in your global styles.scss
4
+ // ============================================================
5
+
6
+ @forward 'colors';
7
+ @forward 'typography';
8
+ @forward 'spacing';
@@ -0,0 +1,24 @@
1
+ export interface ColorPalette {
2
+ 50: string;
3
+ 100: string;
4
+ 200: string;
5
+ 300: string;
6
+ 400: string;
7
+ 500: string;
8
+ 600: string;
9
+ 700: string;
10
+ 800: string;
11
+ 900: string;
12
+ 950: string;
13
+ }
14
+ export type PrimaryColorPreset = 'green' | 'emerald' | 'teal' | 'cyan' | 'sky' | 'blue' | 'indigo' | 'violet' | 'purple' | 'fuchsia' | 'pink' | 'rose' | 'red' | 'orange' | 'amber' | 'lime' | 'slate' | 'zinc';
15
+ export interface ColorPresetMeta {
16
+ name: PrimaryColorPreset;
17
+ label: string;
18
+ swatch: string;
19
+ palette: ColorPalette;
20
+ }
21
+ export declare const COLOR_PRESETS: Record<PrimaryColorPreset, ColorPresetMeta>;
22
+ /** Returns all preset metas sorted for display */
23
+ export declare function getAllPresets(): ColorPresetMeta[];
24
+ //# sourceMappingURL=color-presets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color-presets.d.ts","sourceRoot":"","sources":["../../../../../libs/shared-ui/src/lib/tokens/theme/color-presets.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAG,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,MAAM,kBAAkB,GAC1B,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GACrC,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GACpC,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GACtC,KAAK,GAAG,QAAQ,GAAG,OAAO,GAC1B,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAE9B,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAK,kBAAkB,CAAC;IAC5B,KAAK,EAAI,MAAM,CAAC;IAChB,MAAM,EAAG,MAAM,CAAC;IAChB,OAAO,EAAE,YAAY,CAAC;CACvB;AAID,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,kBAAkB,EAAE,eAAe,CAmKrE,CAAC;AAEF,kDAAkD;AAClD,wBAAgB,aAAa,IAAI,eAAe,EAAE,CAEjD"}
@@ -0,0 +1,6 @@
1
+ export * from './color-presets';
2
+ export * from './theme.service';
3
+ export * from './theme.provider';
4
+ export * from './theme-picker.component';
5
+ export * from './theme-toggle.component';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../libs/shared-ui/src/lib/tokens/theme/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { ThemeService } from './theme.service';
2
+ import { ColorPresetMeta, PrimaryColorPreset } from './color-presets';
3
+ import * as i0 from "@angular/core";
4
+ export declare class ThemePickerComponent {
5
+ protected theme: ThemeService;
6
+ readonly change: import("@angular/core").OutputEmitterRef<PrimaryColorPreset>;
7
+ protected select(preset: ColorPresetMeta): void;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<ThemePickerComponent, never>;
9
+ static ɵcmp: i0.ɵɵComponentDeclaration<ThemePickerComponent, "ui-theme-picker", never, {}, { "change": "change"; }, never, never, true, never>;
10
+ }
11
+ //# sourceMappingURL=theme-picker.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme-picker.component.d.ts","sourceRoot":"","sources":["../../../../../libs/shared-ui/src/lib/tokens/theme/theme-picker.component.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAW,iBAAiB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;;AAUtE,qBAgEa,oBAAoB;IAC/B,SAAS,CAAC,KAAK,eAAwB;IAEvC,QAAQ,CAAC,MAAM,+DAAgC;IAE/C,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;yCALpC,oBAAoB;2CAApB,oBAAoB;CAShC"}
@@ -0,0 +1,15 @@
1
+ import { ThemeService, ThemeMode } from './theme.service';
2
+ import * as i0 from "@angular/core";
3
+ interface ModeOption {
4
+ value: ThemeMode;
5
+ label: string;
6
+ icon: string;
7
+ }
8
+ export declare class ThemeToggleComponent {
9
+ protected theme: ThemeService;
10
+ protected options: ModeOption[];
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<ThemeToggleComponent, never>;
12
+ static ɵcmp: i0.ɵɵComponentDeclaration<ThemeToggleComponent, "ui-theme-toggle", never, {}, {}, never, never, true, never>;
13
+ }
14
+ export {};
15
+ //# sourceMappingURL=theme-toggle.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme-toggle.component.d.ts","sourceRoot":"","sources":["../../../../../libs/shared-ui/src/lib/tokens/theme/theme-toggle.component.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;;AAS1D,UAAU,UAAU;IAClB,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAG,MAAM,CAAC;CACf;AAED,qBA0Fa,oBAAoB;IAC/B,SAAS,CAAC,KAAK,eAAwB;IAEvC,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,CAkB7B;yCArBS,oBAAoB;2CAApB,oBAAoB;CAsBhC"}
@@ -0,0 +1,4 @@
1
+ import { EnvironmentProviders } from '@angular/core';
2
+ import { ThemeConfig } from './theme.service';
3
+ export declare function provideSharedUiTheme(config?: ThemeConfig): EnvironmentProviders;
4
+ //# sourceMappingURL=theme.provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.provider.d.ts","sourceRoot":"","sources":["../../../../../libs/shared-ui/src/lib/tokens/theme/theme.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,oBAAoB,EAA4B,MAAM,eAAe,CAAC;AAChG,OAAO,EAAgB,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAY5D,wBAAgB,oBAAoB,CAAC,MAAM,GAAE,WAAgB,GAAG,oBAAoB,CASnF"}
@@ -0,0 +1,48 @@
1
+ import { ColorPalette, PrimaryColorPreset, ColorPresetMeta } from './color-presets';
2
+ import * as i0 from "@angular/core";
3
+ export type ThemeMode = 'light' | 'dark' | 'system';
4
+ export interface ThemeConfig {
5
+ primaryColor?: PrimaryColorPreset | ColorPalette;
6
+ mode?: ThemeMode;
7
+ }
8
+ export declare class ThemeService {
9
+ private platformId;
10
+ private readonly _preset;
11
+ private readonly _palette;
12
+ private readonly _mode;
13
+ /** Currently active preset name (null when a custom palette was set) */
14
+ readonly activePreset: import("@angular/core").Signal<PrimaryColorPreset>;
15
+ /** Resolved full palette */
16
+ readonly activePalette: import("@angular/core").Signal<ColorPalette>;
17
+ /** Currently active mode */
18
+ readonly activeMode: import("@angular/core").Signal<ThemeMode>;
19
+ /** Derived boolean — true when dark is currently active (including system→dark) */
20
+ readonly isDark: import("@angular/core").Signal<boolean>;
21
+ /** All available presets for rendering a picker */
22
+ readonly presets: ColorPresetMeta[];
23
+ constructor();
24
+ /**
25
+ * Set the primary color using a preset name or a full custom palette.
26
+ * Immediately applies CSS custom properties to :root and persists to localStorage.
27
+ */
28
+ setPrimary(color: PrimaryColorPreset | ColorPalette): void;
29
+ /**
30
+ * Switch between light, dark, and system modes.
31
+ * Persisted to localStorage automatically.
32
+ */
33
+ setMode(mode: ThemeMode): void;
34
+ /** Toggle between light ↔ dark (ignores system). */
35
+ toggleMode(): void;
36
+ /**
37
+ * Apply a full ThemeConfig at once (used by provideSharedUiTheme).
38
+ * Does NOT override values already restored from localStorage unless
39
+ * the config explicitly provides them.
40
+ */
41
+ applyConfig(config: ThemeConfig): void;
42
+ private applyPalette;
43
+ private _mqListener?;
44
+ private applyMode;
45
+ static ɵfac: i0.ɵɵFactoryDeclaration<ThemeService, never>;
46
+ static ɵprov: i0.ɵɵInjectableDeclaration<ThemeService>;
47
+ }
48
+ //# sourceMappingURL=theme.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.service.d.ts","sourceRoot":"","sources":["../../../../../libs/shared-ui/src/lib/tokens/theme/theme.service.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,YAAY,EAAE,kBAAkB,EACjB,eAAe,EAC/B,MAAM,iBAAiB,CAAC;;AAEzB,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEpD,MAAM,WAAW,WAAW;IAC1B,YAAY,CAAC,EAAE,kBAAkB,GAAG,YAAY,CAAC;IACjD,IAAI,CAAC,EAAU,SAAS,CAAC;CAC1B;AAiBD,qBACa,YAAY;IACvB,OAAO,CAAC,UAAU,CAAuB;IAGzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4C;IACpE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqC;IAC9D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiC;IAIvD,wEAAwE;IACxE,QAAQ,CAAC,YAAY,qDAA6B;IAElD,4BAA4B;IAC5B,QAAQ,CAAC,aAAa,+CAKnB;IAEH,4BAA4B;IAC5B,QAAQ,CAAC,UAAU,4CAA2B;IAE9C,mFAAmF;IACnF,QAAQ,CAAC,MAAM,0CAMZ;IAEH,mDAAmD;IACnD,QAAQ,CAAC,OAAO,EAAE,eAAe,EAAE,CAAgC;;IAoCnE;;;OAGG;IACH,UAAU,CAAC,KAAK,EAAE,kBAAkB,GAAG,YAAY,GAAG,IAAI;IAa1D;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAK9B,oDAAoD;IACpD,UAAU,IAAI,IAAI;IAIlB;;;;OAIG;IACH,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAgBtC,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,WAAW,CAAC,CAAmC;IAEvD,OAAO,CAAC,SAAS;yCApIN,YAAY;6CAAZ,YAAY;CA0JxB"}