@umituz/react-native-design-system 1.5.0 → 1.5.2

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 (209) hide show
  1. package/lib/index.d.ts +4 -4
  2. package/lib/index.d.ts.map +1 -1
  3. package/lib/index.js +13 -11
  4. package/lib/index.js.map +1 -1
  5. package/lib/presentation/atoms/AtomicAvatar.js +1 -1
  6. package/lib/presentation/atoms/AtomicAvatar.js.map +1 -1
  7. package/lib/presentation/atoms/AtomicAvatarGroup.js +1 -1
  8. package/lib/presentation/atoms/AtomicAvatarGroup.js.map +1 -1
  9. package/lib/presentation/atoms/AtomicBadge.js +1 -1
  10. package/lib/presentation/atoms/AtomicBadge.js.map +1 -1
  11. package/lib/presentation/atoms/AtomicButton.d.ts +1 -1
  12. package/lib/presentation/atoms/AtomicButton.d.ts.map +1 -1
  13. package/lib/presentation/atoms/AtomicButton.js +2 -2
  14. package/lib/presentation/atoms/AtomicButton.js.map +1 -1
  15. package/lib/presentation/atoms/AtomicCard.js +1 -1
  16. package/lib/presentation/atoms/AtomicCard.js.map +1 -1
  17. package/lib/presentation/atoms/AtomicChip.js +1 -1
  18. package/lib/presentation/atoms/AtomicChip.js.map +1 -1
  19. package/lib/presentation/atoms/AtomicDatePicker.js +1 -1
  20. package/lib/presentation/atoms/AtomicDatePicker.js.map +1 -1
  21. package/lib/presentation/atoms/AtomicDivider.js +1 -1
  22. package/lib/presentation/atoms/AtomicDivider.js.map +1 -1
  23. package/lib/presentation/atoms/AtomicFab.js +1 -1
  24. package/lib/presentation/atoms/AtomicFab.js.map +1 -1
  25. package/lib/presentation/atoms/AtomicFilter.js +1 -1
  26. package/lib/presentation/atoms/AtomicFilter.js.map +1 -1
  27. package/lib/presentation/atoms/AtomicFormError.js +2 -2
  28. package/lib/presentation/atoms/AtomicFormError.js.map +1 -1
  29. package/lib/presentation/atoms/AtomicIcon.d.ts +2 -3
  30. package/lib/presentation/atoms/AtomicIcon.d.ts.map +1 -1
  31. package/lib/presentation/atoms/AtomicIcon.js +1 -1
  32. package/lib/presentation/atoms/AtomicIcon.js.map +1 -1
  33. package/lib/presentation/atoms/AtomicImage.js +1 -1
  34. package/lib/presentation/atoms/AtomicImage.js.map +1 -1
  35. package/lib/presentation/atoms/AtomicInput.js +1 -1
  36. package/lib/presentation/atoms/AtomicInput.js.map +1 -1
  37. package/lib/presentation/atoms/AtomicPicker.js +1 -1
  38. package/lib/presentation/atoms/AtomicPicker.js.map +1 -1
  39. package/lib/presentation/atoms/AtomicProgress.js +1 -1
  40. package/lib/presentation/atoms/AtomicProgress.js.map +1 -1
  41. package/lib/presentation/atoms/AtomicSearchBar.js +1 -1
  42. package/lib/presentation/atoms/AtomicSearchBar.js.map +1 -1
  43. package/lib/presentation/atoms/AtomicSort.js +1 -1
  44. package/lib/presentation/atoms/AtomicSort.js.map +1 -1
  45. package/lib/presentation/atoms/AtomicSwitch.js +1 -1
  46. package/lib/presentation/atoms/AtomicSwitch.js.map +1 -1
  47. package/lib/presentation/atoms/AtomicText.d.ts +21 -1
  48. package/lib/presentation/atoms/AtomicText.d.ts.map +1 -1
  49. package/lib/presentation/atoms/AtomicText.js +33 -10
  50. package/lib/presentation/atoms/AtomicText.js.map +1 -1
  51. package/lib/presentation/atoms/AtomicTextArea.js +1 -1
  52. package/lib/presentation/atoms/AtomicTextArea.js.map +1 -1
  53. package/lib/presentation/atoms/AtomicTouchable.js +1 -1
  54. package/lib/presentation/atoms/AtomicTouchable.js.map +1 -1
  55. package/lib/presentation/atoms/fab/styles/fabStyles.d.ts +1 -1
  56. package/lib/presentation/atoms/fab/styles/fabStyles.d.ts.map +1 -1
  57. package/lib/presentation/atoms/index.d.ts +1 -1
  58. package/lib/presentation/atoms/input/styles/inputStyles.d.ts +1 -1
  59. package/lib/presentation/atoms/input/styles/inputStyles.d.ts.map +1 -1
  60. package/lib/presentation/atoms/picker/styles/pickerStyles.d.ts +12 -23
  61. package/lib/presentation/atoms/picker/styles/pickerStyles.d.ts.map +1 -1
  62. package/lib/presentation/atoms/picker/styles/pickerStyles.js.map +1 -1
  63. package/lib/presentation/molecules/AtomicConfirmationModal.js +1 -1
  64. package/lib/presentation/molecules/AtomicConfirmationModal.js.map +1 -1
  65. package/lib/presentation/molecules/EmptyState.js +1 -1
  66. package/lib/presentation/molecules/EmptyState.js.map +1 -1
  67. package/lib/presentation/molecules/FormField.js +1 -1
  68. package/lib/presentation/molecules/FormField.js.map +1 -1
  69. package/lib/presentation/molecules/IconContainer.js +1 -1
  70. package/lib/presentation/molecules/IconContainer.js.map +1 -1
  71. package/lib/presentation/molecules/ListItem.js +1 -1
  72. package/lib/presentation/molecules/ListItem.js.map +1 -1
  73. package/lib/presentation/molecules/ScreenHeader.js +1 -1
  74. package/lib/presentation/molecules/ScreenHeader.js.map +1 -1
  75. package/lib/presentation/molecules/SearchBar.js +1 -1
  76. package/lib/presentation/molecules/SearchBar.js.map +1 -1
  77. package/lib/presentation/molecules/SectionCard.js +1 -1
  78. package/lib/presentation/molecules/SectionCard.js.map +1 -1
  79. package/lib/presentation/molecules/SectionContainer.js +1 -1
  80. package/lib/presentation/molecules/SectionContainer.js.map +1 -1
  81. package/lib/presentation/molecules/SectionHeader.js +1 -1
  82. package/lib/presentation/molecules/SectionHeader.js.map +1 -1
  83. package/lib/presentation/molecules/confirmation-modal/styles/confirmationModalStyles.d.ts +1 -1
  84. package/lib/presentation/molecules/confirmation-modal/styles/confirmationModalStyles.d.ts.map +1 -1
  85. package/lib/presentation/molecules/listitem/styles/listItemStyles.d.ts +1 -1
  86. package/lib/presentation/molecules/listitem/styles/listItemStyles.d.ts.map +1 -1
  87. package/lib/presentation/organisms/AppHeader.d.ts +3 -2
  88. package/lib/presentation/organisms/AppHeader.d.ts.map +1 -1
  89. package/lib/presentation/organisms/AppHeader.js +1 -1
  90. package/lib/presentation/organisms/AppHeader.js.map +1 -1
  91. package/lib/presentation/organisms/FormContainer.js +1 -1
  92. package/lib/presentation/organisms/FormContainer.js.map +1 -1
  93. package/lib/presentation/organisms/ScreenLayout.js +1 -1
  94. package/lib/presentation/organisms/ScreenLayout.js.map +1 -1
  95. package/lib/presentation/tokens/commonStyles.js +1 -1
  96. package/lib/presentation/tokens/commonStyles.js.map +1 -1
  97. package/package.json +1 -1
  98. package/src/index.ts +16 -16
  99. package/src/presentation/atoms/AtomicAvatar.tsx +1 -1
  100. package/src/presentation/atoms/AtomicAvatarGroup.tsx +1 -1
  101. package/src/presentation/atoms/AtomicBadge.tsx +2 -2
  102. package/src/presentation/atoms/AtomicButton.tsx +3 -3
  103. package/src/presentation/atoms/AtomicCard.tsx +1 -1
  104. package/src/presentation/atoms/AtomicChip.tsx +1 -1
  105. package/src/presentation/atoms/AtomicDatePicker.tsx +1 -1
  106. package/src/presentation/atoms/AtomicDivider.tsx +1 -1
  107. package/src/presentation/atoms/AtomicFab.tsx +1 -1
  108. package/src/presentation/atoms/AtomicFilter.tsx +1 -1
  109. package/src/presentation/atoms/AtomicFormError.tsx +2 -2
  110. package/src/presentation/atoms/AtomicIcon.tsx +3 -4
  111. package/src/presentation/atoms/AtomicImage.tsx +1 -1
  112. package/src/presentation/atoms/AtomicInput.tsx +1 -1
  113. package/src/presentation/atoms/AtomicPicker.tsx +1 -1
  114. package/src/presentation/atoms/AtomicProgress.tsx +1 -1
  115. package/src/presentation/atoms/AtomicSearchBar.tsx +1 -1
  116. package/src/presentation/atoms/AtomicSort.tsx +1 -1
  117. package/src/presentation/atoms/AtomicSwitch.tsx +1 -1
  118. package/src/presentation/atoms/AtomicText.tsx +83 -13
  119. package/src/presentation/atoms/AtomicTextArea.tsx +1 -1
  120. package/src/presentation/atoms/AtomicTouchable.tsx +1 -1
  121. package/src/presentation/atoms/fab/styles/fabStyles.ts +1 -1
  122. package/src/presentation/atoms/input/styles/inputStyles.ts +1 -1
  123. package/src/presentation/atoms/picker/styles/pickerStyles.ts +13 -6
  124. package/src/presentation/molecules/AtomicConfirmationModal.tsx +1 -1
  125. package/src/presentation/molecules/EmptyState.tsx +1 -1
  126. package/src/presentation/molecules/FormField.tsx +1 -1
  127. package/src/presentation/molecules/IconContainer.tsx +1 -1
  128. package/src/presentation/molecules/ListItem.tsx +1 -1
  129. package/src/presentation/molecules/ScreenHeader.tsx +1 -1
  130. package/src/presentation/molecules/SearchBar.tsx +1 -1
  131. package/src/presentation/molecules/SectionCard.tsx +1 -1
  132. package/src/presentation/molecules/SectionContainer.tsx +1 -1
  133. package/src/presentation/molecules/SectionHeader.tsx +1 -1
  134. package/src/presentation/molecules/confirmation-modal/styles/confirmationModalStyles.ts +1 -1
  135. package/src/presentation/molecules/listitem/styles/listItemStyles.ts +1 -1
  136. package/src/presentation/organisms/AppHeader.tsx +4 -3
  137. package/src/presentation/organisms/FormContainer.tsx +1 -1
  138. package/src/presentation/organisms/ScreenLayout.tsx +1 -1
  139. package/src/presentation/tokens/commonStyles.ts +1 -1
  140. package/lib/domains/icons/domain/config/IconLibraryConfig.d.ts +0 -91
  141. package/lib/domains/icons/domain/config/IconLibraryConfig.d.ts.map +0 -1
  142. package/lib/domains/icons/domain/config/IconLibraryConfig.js +0 -85
  143. package/lib/domains/icons/domain/config/IconLibraryConfig.js.map +0 -1
  144. package/lib/domains/icons/domain/entities/Icon.d.ts +0 -111
  145. package/lib/domains/icons/domain/entities/Icon.d.ts.map +0 -1
  146. package/lib/domains/icons/domain/entities/Icon.js +0 -87
  147. package/lib/domains/icons/domain/entities/Icon.js.map +0 -1
  148. package/lib/domains/icons/domain/interfaces/IIconAdapter.d.ts +0 -114
  149. package/lib/domains/icons/domain/interfaces/IIconAdapter.d.ts.map +0 -1
  150. package/lib/domains/icons/domain/interfaces/IIconAdapter.js +0 -17
  151. package/lib/domains/icons/domain/interfaces/IIconAdapter.js.map +0 -1
  152. package/lib/domains/icons/index.d.ts +0 -84
  153. package/lib/domains/icons/index.d.ts.map +0 -1
  154. package/lib/domains/icons/index.js +0 -89
  155. package/lib/domains/icons/index.js.map +0 -1
  156. package/lib/domains/icons/infrastructure/adapters/LucideAdapter.d.ts +0 -24
  157. package/lib/domains/icons/infrastructure/adapters/LucideAdapter.d.ts.map +0 -1
  158. package/lib/domains/icons/infrastructure/adapters/LucideAdapter.js +0 -85
  159. package/lib/domains/icons/infrastructure/adapters/LucideAdapter.js.map +0 -1
  160. package/lib/domains/icons/infrastructure/registries/ExpoIconRegistry.d.ts +0 -23
  161. package/lib/domains/icons/infrastructure/registries/ExpoIconRegistry.d.ts.map +0 -1
  162. package/lib/domains/icons/infrastructure/registries/ExpoIconRegistry.js +0 -178
  163. package/lib/domains/icons/infrastructure/registries/ExpoIconRegistry.js.map +0 -1
  164. package/lib/domains/icons/presentation/components/Icon.d.ts +0 -42
  165. package/lib/domains/icons/presentation/components/Icon.d.ts.map +0 -1
  166. package/lib/domains/icons/presentation/components/Icon.js +0 -86
  167. package/lib/domains/icons/presentation/components/Icon.js.map +0 -1
  168. package/lib/domains/icons/presentation/hooks/useIconLibrary.d.ts +0 -38
  169. package/lib/domains/icons/presentation/hooks/useIconLibrary.d.ts.map +0 -1
  170. package/lib/domains/icons/presentation/hooks/useIconLibrary.js +0 -114
  171. package/lib/domains/icons/presentation/hooks/useIconLibrary.js.map +0 -1
  172. package/lib/infrastructure/theme/globalThemeStore.d.ts +0 -42
  173. package/lib/infrastructure/theme/globalThemeStore.d.ts.map +0 -1
  174. package/lib/infrastructure/theme/globalThemeStore.js +0 -38
  175. package/lib/infrastructure/theme/globalThemeStore.js.map +0 -1
  176. package/lib/presentation/hooks/useAppDesignTokens.d.ts +0 -34
  177. package/lib/presentation/hooks/useAppDesignTokens.d.ts.map +0 -1
  178. package/lib/presentation/hooks/useAppDesignTokens.js +0 -39
  179. package/lib/presentation/hooks/useAppDesignTokens.js.map +0 -1
  180. package/lib/presentation/tokens/AppDesignTokens.d.ts +0 -14
  181. package/lib/presentation/tokens/AppDesignTokens.d.ts.map +0 -1
  182. package/lib/presentation/tokens/AppDesignTokens.js +0 -23
  183. package/lib/presentation/tokens/AppDesignTokens.js.map +0 -1
  184. package/lib/presentation/tokens/core/BaseTokens.d.ts +0 -312
  185. package/lib/presentation/tokens/core/BaseTokens.d.ts.map +0 -1
  186. package/lib/presentation/tokens/core/BaseTokens.js +0 -304
  187. package/lib/presentation/tokens/core/BaseTokens.js.map +0 -1
  188. package/lib/presentation/tokens/core/ColorPalette.d.ts +0 -216
  189. package/lib/presentation/tokens/core/ColorPalette.d.ts.map +0 -1
  190. package/lib/presentation/tokens/core/ColorPalette.js +0 -330
  191. package/lib/presentation/tokens/core/ColorPalette.js.map +0 -1
  192. package/lib/presentation/tokens/core/TokenFactory.d.ts +0 -216
  193. package/lib/presentation/tokens/core/TokenFactory.d.ts.map +0 -1
  194. package/lib/presentation/tokens/core/TokenFactory.js +0 -86
  195. package/lib/presentation/tokens/core/TokenFactory.js.map +0 -1
  196. package/src/domains/icons/domain/config/IconLibraryConfig.ts +0 -93
  197. package/src/domains/icons/domain/entities/Icon.ts +0 -143
  198. package/src/domains/icons/domain/interfaces/IIconAdapter.ts +0 -147
  199. package/src/domains/icons/index.ts +0 -109
  200. package/src/domains/icons/infrastructure/adapters/LucideAdapter.ts +0 -100
  201. package/src/domains/icons/infrastructure/registries/ExpoIconRegistry.ts +0 -191
  202. package/src/domains/icons/presentation/components/Icon.tsx +0 -132
  203. package/src/domains/icons/presentation/hooks/useIconLibrary.ts +0 -141
  204. package/src/infrastructure/theme/globalThemeStore.ts +0 -51
  205. package/src/presentation/hooks/useAppDesignTokens.ts +0 -40
  206. package/src/presentation/tokens/AppDesignTokens.ts +0 -55
  207. package/src/presentation/tokens/core/BaseTokens.ts +0 -372
  208. package/src/presentation/tokens/core/ColorPalette.ts +0 -400
  209. package/src/presentation/tokens/core/TokenFactory.ts +0 -118
@@ -1 +0,0 @@
1
- {"version":3,"file":"ExpoIconRegistry.d.ts","sourceRoot":"","sources":["../../../../../src/domains/icons/infrastructure/registries/ExpoIconRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACvF,OAAO,EAAe,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAEhF;;;GAGG;AACH,qBAAa,gBAAiB,YAAW,aAAa;IACpD,OAAO,CAAC,KAAK,CAwIX;IAEF,WAAW,IAAI,YAAY,EAAE;IAI7B,kBAAkB,CAAC,QAAQ,EAAE,YAAY,GAAG,YAAY,EAAE;IAO1D,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,EAAE;IAoB1C,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;CAGnD"}
@@ -1,178 +0,0 @@
1
- /**
2
- * Icons Domain - Expo Vector Icons Registry
3
- *
4
- * Registry for @expo/vector-icons (Material, FontAwesome, Ionicons).
5
- * Provides metadata and search capabilities for 1000+ icons.
6
- *
7
- * @domain icons
8
- * @layer infrastructure
9
- */
10
- import { IconLibrary, IconCategory } from '@domains/icons/domain/entities/Icon';
11
- /**
12
- * Expo vector icons registry
13
- * Maps common Material Design, FontAwesome, and Ionicons
14
- */
15
- export class ExpoIconRegistry {
16
- constructor() {
17
- this.icons = [
18
- // Navigation icons (Material Design)
19
- {
20
- name: 'home',
21
- library: IconLibrary.MATERIAL,
22
- category: IconCategory.NAVIGATION,
23
- tags: ['house', 'main', 'start'],
24
- searchTerms: ['home', 'house', 'main', 'dashboard'],
25
- },
26
- {
27
- name: 'arrow-back',
28
- library: IconLibrary.MATERIAL,
29
- category: IconCategory.NAVIGATION,
30
- tags: ['back', 'previous', 'return'],
31
- searchTerms: ['arrow', 'back', 'previous', 'navigate'],
32
- },
33
- {
34
- name: 'menu',
35
- library: IconLibrary.MATERIAL,
36
- category: IconCategory.NAVIGATION,
37
- tags: ['hamburger', 'drawer', 'navigation'],
38
- searchTerms: ['menu', 'hamburger', 'navigation', 'drawer'],
39
- },
40
- {
41
- name: 'search',
42
- library: IconLibrary.MATERIAL,
43
- category: IconCategory.ACTION,
44
- tags: ['find', 'lookup', 'query'],
45
- searchTerms: ['search', 'find', 'lookup', 'magnify'],
46
- },
47
- // Action icons (Material Design)
48
- {
49
- name: 'add',
50
- library: IconLibrary.MATERIAL,
51
- category: IconCategory.ACTION,
52
- tags: ['plus', 'create', 'new'],
53
- searchTerms: ['add', 'plus', 'create', 'new'],
54
- },
55
- {
56
- name: 'delete',
57
- library: IconLibrary.MATERIAL,
58
- category: IconCategory.ACTION,
59
- tags: ['remove', 'trash', 'bin'],
60
- searchTerms: ['delete', 'remove', 'trash', 'garbage'],
61
- },
62
- {
63
- name: 'edit',
64
- library: IconLibrary.MATERIAL,
65
- category: IconCategory.ACTION,
66
- tags: ['pencil', 'modify', 'update'],
67
- searchTerms: ['edit', 'pencil', 'modify', 'write'],
68
- },
69
- {
70
- name: 'settings',
71
- library: IconLibrary.MATERIAL,
72
- category: IconCategory.ACTION,
73
- tags: ['gear', 'preferences', 'config'],
74
- searchTerms: ['settings', 'gear', 'preferences', 'options'],
75
- },
76
- {
77
- name: 'favorite',
78
- library: IconLibrary.MATERIAL,
79
- category: IconCategory.ACTION,
80
- tags: ['heart', 'like', 'love'],
81
- searchTerms: ['favorite', 'heart', 'like', 'love'],
82
- },
83
- // Social icons (FontAwesome)
84
- {
85
- name: 'facebook',
86
- library: IconLibrary.FONTAWESOME,
87
- category: IconCategory.SOCIAL,
88
- tags: ['fb', 'social', 'network'],
89
- searchTerms: ['facebook', 'fb', 'social', 'meta'],
90
- },
91
- {
92
- name: 'twitter',
93
- library: IconLibrary.FONTAWESOME,
94
- category: IconCategory.SOCIAL,
95
- tags: ['x', 'social', 'tweet'],
96
- searchTerms: ['twitter', 'x', 'social', 'tweet'],
97
- },
98
- {
99
- name: 'instagram',
100
- library: IconLibrary.FONTAWESOME,
101
- category: IconCategory.SOCIAL,
102
- tags: ['ig', 'social', 'photo'],
103
- searchTerms: ['instagram', 'ig', 'social', 'photo'],
104
- },
105
- // Communication icons (Ionicons)
106
- {
107
- name: 'mail',
108
- library: IconLibrary.IONICONS,
109
- category: IconCategory.COMMUNICATION,
110
- tags: ['email', 'message', 'envelope'],
111
- searchTerms: ['mail', 'email', 'message', 'contact'],
112
- },
113
- {
114
- name: 'call',
115
- library: IconLibrary.IONICONS,
116
- category: IconCategory.COMMUNICATION,
117
- tags: ['phone', 'telephone', 'dial'],
118
- searchTerms: ['call', 'phone', 'telephone', 'dial'],
119
- },
120
- {
121
- name: 'notifications',
122
- library: IconLibrary.IONICONS,
123
- category: IconCategory.COMMUNICATION,
124
- tags: ['bell', 'alert', 'reminder'],
125
- searchTerms: ['notifications', 'bell', 'alert', 'reminder'],
126
- },
127
- // Media icons (Material Design)
128
- {
129
- name: 'camera',
130
- library: IconLibrary.MATERIAL,
131
- category: IconCategory.MEDIA,
132
- tags: ['photo', 'picture', 'snapshot'],
133
- searchTerms: ['camera', 'photo', 'picture', 'image'],
134
- },
135
- {
136
- name: 'image',
137
- library: IconLibrary.MATERIAL,
138
- category: IconCategory.MEDIA,
139
- tags: ['photo', 'picture', 'gallery'],
140
- searchTerms: ['image', 'photo', 'picture', 'gallery'],
141
- },
142
- {
143
- name: 'videocam',
144
- library: IconLibrary.MATERIAL,
145
- category: IconCategory.MEDIA,
146
- tags: ['video', 'camera', 'record'],
147
- searchTerms: ['video', 'camera', 'record', 'film'],
148
- },
149
- ];
150
- }
151
- getAllIcons() {
152
- return this.icons;
153
- }
154
- getIconsByCategory(category) {
155
- if (category === IconCategory.ALL) {
156
- return this.icons;
157
- }
158
- return this.icons.filter(icon => icon.category === category);
159
- }
160
- searchIcons(query) {
161
- if (!query.trim()) {
162
- return this.icons;
163
- }
164
- const normalizedQuery = query.toLowerCase().replace(/[^a-z0-9]/g, '');
165
- return this.icons.filter(icon => {
166
- const normalizedName = icon.name.toLowerCase().replace(/[^a-z0-9]/g, '');
167
- const normalizedTags = icon.tags.map(tag => tag.toLowerCase().replace(/[^a-z0-9]/g, ''));
168
- const normalizedTerms = icon.searchTerms.map(term => term.toLowerCase().replace(/[^a-z0-9]/g, ''));
169
- return (normalizedName.includes(normalizedQuery) ||
170
- normalizedTags.some(tag => tag.includes(normalizedQuery)) ||
171
- normalizedTerms.some(term => term.includes(normalizedQuery)));
172
- });
173
- }
174
- getIconMetadata(name) {
175
- return this.icons.find(icon => icon.name === name) || null;
176
- }
177
- }
178
- //# sourceMappingURL=ExpoIconRegistry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ExpoIconRegistry.js","sourceRoot":"","sources":["../../../../../src/domains/icons/infrastructure/registries/ExpoIconRegistry.ts"],"names":[],"mappings":"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"}
@@ -1,42 +0,0 @@
1
- /**
2
- * Universal Icon Component
3
- *
4
- * 🎯 SINGLE ICON COMPONENT FOR ALL APPS
5
- *
6
- * Automatically uses the icon library configured in IconLibraryConfig.
7
- * Change library = change config, no code changes needed!
8
- *
9
- * @example
10
- * ```tsx
11
- * import { Icon } from '@domains/icons';
12
- *
13
- * // Basic usage
14
- * <Icon name="Settings" size="md" color="primary" />
15
- *
16
- * // Custom size and color
17
- * <Icon name="Heart" customSize={32} customColor="#FF0000" />
18
- *
19
- * // With background
20
- * <Icon name="Info" size="lg" withBackground backgroundColor="#667eea" />
21
- * ```
22
- *
23
- * 🔧 To change icon library:
24
- * 1. Update CURRENT_LIBRARY in domain/config/IconLibraryConfig.ts
25
- * 2. Done! All apps use new library automatically
26
- */
27
- import React from 'react';
28
- import type { IconProps } from '../../domain/interfaces/IIconAdapter';
29
- /**
30
- * Universal Icon Component
31
- */
32
- export declare const Icon: React.FC<IconProps>;
33
- /**
34
- * Export icon types for convenience
35
- */
36
- export type { IconProps } from '../../domain/interfaces/IIconAdapter';
37
- export { type IconSize, type IconColor } from '../../domain/interfaces/IIconAdapter';
38
- /**
39
- * Export current library's icon names for TypeScript autocomplete
40
- */
41
- export type { LucideIconName as IconName } from '../../infrastructure/adapters/LucideAdapter';
42
- //# sourceMappingURL=Icon.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Icon.d.ts","sourceRoot":"","sources":["../../../../../src/domains/icons/presentation/components/Icon.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,KAAK,EAAE,SAAS,EAAuB,MAAM,sCAAsC,CAAC;AAmB3F;;GAEG;AACH,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAkEpC,CAAC;AAEF;;GAEG;AACH,YAAY,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAErF;;GAEG;AACH,YAAY,EAAE,cAAc,IAAI,QAAQ,EAAE,MAAM,6CAA6C,CAAC"}
@@ -1,86 +0,0 @@
1
- /**
2
- * Universal Icon Component
3
- *
4
- * 🎯 SINGLE ICON COMPONENT FOR ALL APPS
5
- *
6
- * Automatically uses the icon library configured in IconLibraryConfig.
7
- * Change library = change config, no code changes needed!
8
- *
9
- * @example
10
- * ```tsx
11
- * import { Icon } from '@domains/icons';
12
- *
13
- * // Basic usage
14
- * <Icon name="Settings" size="md" color="primary" />
15
- *
16
- * // Custom size and color
17
- * <Icon name="Heart" customSize={32} customColor="#FF0000" />
18
- *
19
- * // With background
20
- * <Icon name="Info" size="lg" withBackground backgroundColor="#667eea" />
21
- * ```
22
- *
23
- * 🔧 To change icon library:
24
- * 1. Update CURRENT_LIBRARY in domain/config/IconLibraryConfig.ts
25
- * 2. Done! All apps use new library automatically
26
- */
27
- import React from 'react';
28
- import { View } from 'react-native';
29
- import { useAppDesignTokens } from '../../../../presentation/hooks/useAppDesignTokens';
30
- import { CURRENT_LIBRARY } from '../../domain/config/IconLibraryConfig';
31
- import { LucideAdapter } from '../../infrastructure/adapters/LucideAdapter';
32
- /**
33
- * Get adapter based on current library configuration
34
- */
35
- const getAdapter = () => {
36
- switch (CURRENT_LIBRARY) {
37
- case 'lucide':
38
- return LucideAdapter;
39
- // Future: Add more adapters here
40
- // case 'material':
41
- // return MaterialAdapter;
42
- // case 'fontawesome':
43
- // return FontAwesomeAdapter;
44
- default:
45
- return LucideAdapter;
46
- }
47
- };
48
- /**
49
- * Universal Icon Component
50
- */
51
- export const Icon = ({ name, size = 'md', customSize, color = 'onSurface', customColor, strokeWidth, withBackground = false, backgroundColor, accessibilityLabel, testID, style, }) => {
52
- const tokens = useAppDesignTokens();
53
- const adapter = getAdapter();
54
- // Get icon component from adapter
55
- const IconComponent = adapter.getIconComponent(name);
56
- if (!IconComponent) {
57
- return null;
58
- }
59
- // Calculate icon size
60
- const iconSize = adapter.getIconSize(size, customSize);
61
- // Get icon color from theme
62
- const iconColor = adapter.getIconColor(color, tokens, customColor);
63
- // Get stroke width (for outline icons)
64
- const iconStrokeWidth = strokeWidth || adapter.getStrokeWidth?.() || 2;
65
- // Container size (slightly larger than icon)
66
- const containerSize = iconSize + 8;
67
- const containerStyles = [
68
- withBackground && {
69
- width: containerSize,
70
- height: containerSize,
71
- borderRadius: containerSize / 2,
72
- backgroundColor: backgroundColor || tokens.colors.surfaceVariant,
73
- justifyContent: 'center',
74
- alignItems: 'center',
75
- },
76
- style,
77
- ];
78
- const IconElement = (<IconComponent size={iconSize} color={iconColor} strokeWidth={iconStrokeWidth} accessibilityLabel={accessibilityLabel || `${name} icon`} testID={testID}/>);
79
- if (withBackground) {
80
- return (<View style={containerStyles} testID={`${testID}-container`}>
81
- {IconElement}
82
- </View>);
83
- }
84
- return IconElement;
85
- };
86
- //# sourceMappingURL=Icon.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Icon.js","sourceRoot":"","sources":["../../../../../src/domains/icons/presentation/components/Icon.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAoC,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAG5E;;GAEG;AACH,MAAM,UAAU,GAAG,GAAG,EAAE;IACtB,QAAQ,eAAe,EAAE,CAAC;QACxB,KAAK,QAAQ;YACX,OAAO,aAAa,CAAC;QACvB,iCAAiC;QACjC,mBAAmB;QACnB,4BAA4B;QAC5B,sBAAsB;QACtB,+BAA+B;QAC/B;YACE,OAAO,aAAa,CAAC;IACzB,CAAC;AACH,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAwB,CAAC,EACxC,IAAI,EACJ,IAAI,GAAG,IAAI,EACX,UAAU,EACV,KAAK,GAAG,WAAW,EACnB,WAAW,EACX,WAAW,EACX,cAAc,GAAG,KAAK,EACtB,eAAe,EACf,kBAAkB,EAClB,MAAM,EACN,KAAK,GACN,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAE7B,kCAAkC;IAClC,MAAM,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAErD,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,sBAAsB;IACtB,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,IAAgB,EAAE,UAAU,CAAC,CAAC;IAEnE,4BAA4B;IAC5B,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,KAAkB,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAEhF,uCAAuC;IACvC,MAAM,eAAe,GAAG,WAAW,IAAI,OAAO,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,CAAC;IAEvE,6CAA6C;IAC7C,MAAM,aAAa,GAAG,QAAQ,GAAG,CAAC,CAAC;IAEnC,MAAM,eAAe,GAAyB;QAC5C,cAAc,IAAI;YAChB,KAAK,EAAE,aAAa;YACpB,MAAM,EAAE,aAAa;YACrB,YAAY,EAAE,aAAa,GAAG,CAAC;YAC/B,eAAe,EAAE,eAAe,IAAI,MAAM,CAAC,MAAM,CAAC,cAAc;YAChE,cAAc,EAAE,QAAQ;YACxB,UAAU,EAAE,QAAQ;SACrB;QACD,KAAK;KACN,CAAC;IAEF,MAAM,WAAW,GAAG,CAClB,CAAC,aAAa,CACZ,IAAI,CAAC,CAAC,QAAQ,CAAC,CACf,KAAK,CAAC,CAAC,SAAS,CAAC,CACjB,WAAW,CAAC,CAAC,eAAe,CAAC,CAC7B,kBAAkB,CAAC,CAAC,kBAAkB,IAAI,GAAG,IAAI,OAAO,CAAC,CACzD,MAAM,CAAC,CAAC,MAAM,CAAC,EACf,CACH,CAAC;IAEF,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,YAAY,CAAC,CAC1D;QAAA,CAAC,WAAW,CACd;MAAA,EAAE,IAAI,CAAC,CACR,CAAC;IACJ,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC"}
@@ -1,38 +0,0 @@
1
- /**
2
- * Icons Domain - useIconLibrary Hook
3
- *
4
- * React hook for accessing icon libraries (Lucide + Expo vector icons).
5
- * Provides search, filter, and metadata access for all available icons.
6
- *
7
- * @domain icons
8
- * @layer presentation
9
- */
10
- import type { IconMetadata } from '@domains/icons/domain/entities/Icon';
11
- import { IconLibrary, IconCategory } from '@domains/icons/domain/entities/Icon';
12
- /**
13
- * Hook for icon library access and search
14
- *
15
- * @example
16
- * const { icons, searchIcons, filterByCategory } = useIconLibrary();
17
- *
18
- * // Search icons
19
- * const results = searchIcons('home');
20
- *
21
- * // Filter by category
22
- * const navIcons = filterByCategory(IconCategory.NAVIGATION);
23
- */
24
- export declare const useIconLibrary: (defaultLibrary?: IconLibrary) => {
25
- selectedLibrary: IconLibrary;
26
- selectedCategory: IconCategory;
27
- icons: IconMetadata[];
28
- searchIcons: (query: string) => IconMetadata[];
29
- filterByCategory: (category: IconCategory) => IconMetadata[];
30
- getIconMetadata: (name: string) => IconMetadata | null;
31
- switchLibrary: (library: IconLibrary) => void;
32
- switchCategory: (category: IconCategory) => void;
33
- availableCategories: IconCategory[];
34
- availableLibraries: IconLibrary[];
35
- IconLibrary: typeof IconLibrary;
36
- IconCategory: typeof IconCategory;
37
- };
38
- //# sourceMappingURL=useIconLibrary.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useIconLibrary.d.ts","sourceRoot":"","sources":["../../../../../src/domains/icons/presentation/hooks/useIconLibrary.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,YAAY,EAA6B,MAAM,qCAAqC,CAAC;AAG3G;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,cAAc,GAAI,iBAAgB,WAA4C;;;;yBA4B/E,MAAM,KAAG,YAAY,EAAE;iCAoBpB,YAAY,KAAG,YAAY,EAAE;4BAUjC,MAAM,KAAG,YAAY,GAAG,IAAI;6BAuBO,WAAW;+BAOT,YAAY;;;;;CAyB3D,CAAC"}
@@ -1,114 +0,0 @@
1
- /**
2
- * Icons Domain - useIconLibrary Hook
3
- *
4
- * React hook for accessing icon libraries (Lucide + Expo vector icons).
5
- * Provides search, filter, and metadata access for all available icons.
6
- *
7
- * @domain icons
8
- * @layer presentation
9
- */
10
- import { useMemo, useState, useCallback } from 'react';
11
- import { IconLibrary, IconCategory, IconUtils, ICON_CONSTANTS } from '@domains/icons/domain/entities/Icon';
12
- import { ExpoIconRegistry } from '@domains/icons/infrastructure/registries/ExpoIconRegistry';
13
- /**
14
- * Hook for icon library access and search
15
- *
16
- * @example
17
- * const { icons, searchIcons, filterByCategory } = useIconLibrary();
18
- *
19
- * // Search icons
20
- * const results = searchIcons('home');
21
- *
22
- * // Filter by category
23
- * const navIcons = filterByCategory(IconCategory.NAVIGATION);
24
- */
25
- export const useIconLibrary = (defaultLibrary = ICON_CONSTANTS.DEFAULT_LIBRARY) => {
26
- const [selectedLibrary, setSelectedLibrary] = useState(defaultLibrary);
27
- const [selectedCategory, setSelectedCategory] = useState(IconCategory.ALL);
28
- // Initialize registry
29
- const registry = useMemo(() => new ExpoIconRegistry(), []);
30
- /**
31
- * Get all icons from the selected library
32
- */
33
- const icons = useMemo(() => {
34
- const allIcons = registry.getAllIcons();
35
- return selectedLibrary === IconLibrary.LUCIDE
36
- ? [] // Lucide icons are in design-system/AtomicIcon
37
- : allIcons.filter(icon => icon.library === selectedLibrary);
38
- }, [registry, selectedLibrary]);
39
- /**
40
- * Get icons filtered by category
41
- */
42
- const iconsByCategory = useMemo(() => {
43
- return IconUtils.filterByCategory(icons, selectedCategory);
44
- }, [icons, selectedCategory]);
45
- /**
46
- * Search icons by query
47
- */
48
- const searchIcons = useCallback((query) => {
49
- if (!query.trim()) {
50
- return iconsByCategory;
51
- }
52
- const results = registry.searchIcons(query);
53
- const filteredResults = selectedLibrary === IconLibrary.LUCIDE
54
- ? results
55
- : results.filter(icon => icon.library === selectedLibrary);
56
- return IconUtils.filterByCategory(filteredResults, selectedCategory)
57
- .slice(0, ICON_CONSTANTS.MAX_SEARCH_RESULTS);
58
- }, [registry, selectedLibrary, selectedCategory, iconsByCategory]);
59
- /**
60
- * Filter icons by category
61
- */
62
- const filterByCategory = useCallback((category) => {
63
- return IconUtils.filterByCategory(icons, category);
64
- }, [icons]);
65
- /**
66
- * Get icon metadata by name
67
- */
68
- const getIconMetadata = useCallback((name) => {
69
- return registry.getIconMetadata(name);
70
- }, [registry]);
71
- /**
72
- * Get all available categories
73
- */
74
- const availableCategories = useMemo(() => {
75
- return Object.values(IconCategory);
76
- }, []);
77
- /**
78
- * Get all available libraries
79
- */
80
- const availableLibraries = useMemo(() => {
81
- return Object.values(IconLibrary);
82
- }, []);
83
- /**
84
- * Switch library
85
- */
86
- const switchLibrary = useCallback((library) => {
87
- setSelectedLibrary(library);
88
- }, []);
89
- /**
90
- * Switch category
91
- */
92
- const switchCategory = useCallback((category) => {
93
- setSelectedCategory(category);
94
- }, []);
95
- return {
96
- // Current state
97
- selectedLibrary,
98
- selectedCategory,
99
- icons: iconsByCategory,
100
- // Search & filter
101
- searchIcons,
102
- filterByCategory,
103
- getIconMetadata,
104
- // Library & category management
105
- switchLibrary,
106
- switchCategory,
107
- availableCategories,
108
- availableLibraries,
109
- // Constants
110
- IconLibrary,
111
- IconCategory,
112
- };
113
- };
114
- //# sourceMappingURL=useIconLibrary.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useIconLibrary.js","sourceRoot":"","sources":["../../../../../src/domains/icons/presentation/hooks/useIconLibrary.ts"],"names":[],"mappings":"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"}
@@ -1,42 +0,0 @@
1
- /**
2
- * Global Theme Store for Design System
3
- *
4
- * Minimal Zustand store for theme state management.
5
- * Apps can sync their theme state with this global store.
6
- *
7
- * WHY THIS EXISTS:
8
- * - ScreenLayout needs to know current theme mode
9
- * - Without prop drilling or Context API
10
- * - Single source of truth for design system components
11
- * - Apps control theme, design system reacts
12
- *
13
- * USAGE IN APP:
14
- * ```typescript
15
- * import { useDesignSystemTheme } from '@umituz/react-native-design-system';
16
- * import { useTheme } from '@domains/theme';
17
- *
18
- * // Sync app theme with design system
19
- * const { themeMode } = useTheme();
20
- * const { setThemeMode } = useDesignSystemTheme();
21
- *
22
- * useEffect(() => {
23
- * setThemeMode(themeMode);
24
- * }, [themeMode]);
25
- * ```
26
- */
27
- import type { ThemeMode } from '../../presentation/tokens/core/ColorPalette';
28
- interface GlobalThemeStore {
29
- /** Current theme mode */
30
- themeMode: ThemeMode;
31
- /** Update theme mode (called by app when theme changes) */
32
- setThemeMode: (mode: ThemeMode) => void;
33
- }
34
- /**
35
- * Global theme store for design system components
36
- *
37
- * This is a MINIMAL store - app has the real theme logic.
38
- * Design system just mirrors the current theme for its components.
39
- */
40
- export declare const useDesignSystemTheme: import("zustand").UseBoundStore<import("zustand").StoreApi<GlobalThemeStore>>;
41
- export type { ThemeMode };
42
- //# sourceMappingURL=globalThemeStore.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"globalThemeStore.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/theme/globalThemeStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6CAA6C,CAAC;AAE7E,UAAU,gBAAgB;IACxB,yBAAyB;IACzB,SAAS,EAAE,SAAS,CAAC;IAErB,2DAA2D;IAC3D,YAAY,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;CACzC;AAED;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,+EAG9B,CAAC;AAGJ,YAAY,EAAE,SAAS,EAAE,CAAC"}
@@ -1,38 +0,0 @@
1
- /**
2
- * Global Theme Store for Design System
3
- *
4
- * Minimal Zustand store for theme state management.
5
- * Apps can sync their theme state with this global store.
6
- *
7
- * WHY THIS EXISTS:
8
- * - ScreenLayout needs to know current theme mode
9
- * - Without prop drilling or Context API
10
- * - Single source of truth for design system components
11
- * - Apps control theme, design system reacts
12
- *
13
- * USAGE IN APP:
14
- * ```typescript
15
- * import { useDesignSystemTheme } from '@umituz/react-native-design-system';
16
- * import { useTheme } from '@domains/theme';
17
- *
18
- * // Sync app theme with design system
19
- * const { themeMode } = useTheme();
20
- * const { setThemeMode } = useDesignSystemTheme();
21
- *
22
- * useEffect(() => {
23
- * setThemeMode(themeMode);
24
- * }, [themeMode]);
25
- * ```
26
- */
27
- import { create } from 'zustand';
28
- /**
29
- * Global theme store for design system components
30
- *
31
- * This is a MINIMAL store - app has the real theme logic.
32
- * Design system just mirrors the current theme for its components.
33
- */
34
- export const useDesignSystemTheme = create((set) => ({
35
- themeMode: 'light',
36
- setThemeMode: (mode) => set({ themeMode: mode }),
37
- }));
38
- //# sourceMappingURL=globalThemeStore.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"globalThemeStore.js","sourceRoot":"","sources":["../../../src/infrastructure/theme/globalThemeStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAWjC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAmB,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACrE,SAAS,EAAE,OAAO;IAClB,YAAY,EAAE,CAAC,IAAe,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;CAC5D,CAAC,CAAC,CAAC"}
@@ -1,34 +0,0 @@
1
- /**
2
- * useAppDesignTokens Hook - Theme-Aware Design Tokens
3
- *
4
- * ✅ Automatically reads theme from global store
5
- * ✅ No parameters needed - fully automatic!
6
- * ✅ Returns tokens for current theme (light/dark)
7
- * ✅ Single source of truth
8
- *
9
- * @example Usage (fully automatic theme-aware)
10
- * ```typescript
11
- * import { useAppDesignTokens } from '@umituz/react-native-design-system';
12
- *
13
- * const MyComponent = () => {
14
- * const tokens = useAppDesignTokens(); // Automatically uses current theme!
15
- * return (
16
- * <View style={{
17
- * backgroundColor: tokens.colors.primary,
18
- * padding: tokens.spacing.md
19
- * }}>
20
- * <Text style={tokens.typography.bodyLarge}>Hello!</Text>
21
- * </View>
22
- * );
23
- * };
24
- * ```
25
- *
26
- * How it works:
27
- * - Reads themeMode from global store (useDesignSystemTheme)
28
- * - App's theme store syncs to global store automatically
29
- * - All components get correct tokens without prop drilling
30
- * - Change theme once, everything updates!
31
- */
32
- import { type DesignTokens } from '../tokens/core/TokenFactory';
33
- export declare const useAppDesignTokens: () => DesignTokens;
34
- //# sourceMappingURL=useAppDesignTokens.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useAppDesignTokens.d.ts","sourceRoot":"","sources":["../../../src/presentation/hooks/useAppDesignTokens.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAGH,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAGpF,eAAO,MAAM,kBAAkB,QAAO,YAGrC,CAAC"}