@instructure/platform-institutional-tagging 2.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 (228) hide show
  1. package/README.md +86 -0
  2. package/dist/App.d.ts +3 -0
  3. package/dist/App.d.ts.map +1 -0
  4. package/dist/__tests__/helpers.d.ts +7 -0
  5. package/dist/__tests__/helpers.d.ts.map +1 -0
  6. package/dist/__tests__/i18n.test.d.ts +2 -0
  7. package/dist/__tests__/i18n.test.d.ts.map +1 -0
  8. package/dist/__tests__/layout.test.d.ts +2 -0
  9. package/dist/__tests__/layout.test.d.ts.map +1 -0
  10. package/dist/__tests__/server.d.ts +10 -0
  11. package/dist/__tests__/server.d.ts.map +1 -0
  12. package/dist/__tests__/setup.d.ts +1 -0
  13. package/dist/__tests__/setup.d.ts.map +1 -0
  14. package/dist/__tests__/useArchiveTag.test.d.ts +2 -0
  15. package/dist/__tests__/useArchiveTag.test.d.ts.map +1 -0
  16. package/dist/__tests__/useMoveTag.test.d.ts +2 -0
  17. package/dist/__tests__/useMoveTag.test.d.ts.map +1 -0
  18. package/dist/__tests__/usePagination.test.d.ts +2 -0
  19. package/dist/__tests__/usePagination.test.d.ts.map +1 -0
  20. package/dist/__tests__/useSkeletons.test.d.ts +2 -0
  21. package/dist/__tests__/useSkeletons.test.d.ts.map +1 -0
  22. package/dist/__tests__/utils.test.d.ts +2 -0
  23. package/dist/__tests__/utils.test.d.ts.map +1 -0
  24. package/dist/api/client.d.ts +9 -0
  25. package/dist/api/client.d.ts.map +1 -0
  26. package/dist/api/constants.d.ts +4 -0
  27. package/dist/api/constants.d.ts.map +1 -0
  28. package/dist/api/index.d.ts +5 -0
  29. package/dist/api/index.d.ts.map +1 -0
  30. package/dist/api/types.d.ts +18 -0
  31. package/dist/api/types.d.ts.map +1 -0
  32. package/dist/api/utils.d.ts +2 -0
  33. package/dist/api/utils.d.ts.map +1 -0
  34. package/dist/components/Alert/AlertProvider.d.ts +5 -0
  35. package/dist/components/Alert/AlertProvider.d.ts.map +1 -0
  36. package/dist/components/Alert/index.d.ts +2 -0
  37. package/dist/components/Alert/index.d.ts.map +1 -0
  38. package/dist/components/Alert/styles.d.ts +3 -0
  39. package/dist/components/Alert/styles.d.ts.map +1 -0
  40. package/dist/components/AppContainer/AppContainerProvider.d.ts +4 -0
  41. package/dist/components/AppContainer/AppContainerProvider.d.ts.map +1 -0
  42. package/dist/components/AppContainer/GenericStoryWrapper.d.ts +8 -0
  43. package/dist/components/AppContainer/GenericStoryWrapper.d.ts.map +1 -0
  44. package/dist/components/AppContainer/index.d.ts +2 -0
  45. package/dist/components/AppContainer/index.d.ts.map +1 -0
  46. package/dist/components/AppContainer/styles.d.ts +2 -0
  47. package/dist/components/AppContainer/styles.d.ts.map +1 -0
  48. package/dist/components/Category/BottomSection.d.ts +4 -0
  49. package/dist/components/Category/BottomSection.d.ts.map +1 -0
  50. package/dist/components/Category/Category.d.ts +4 -0
  51. package/dist/components/Category/Category.d.ts.map +1 -0
  52. package/dist/components/Category/CategoryInfoPills.d.ts +4 -0
  53. package/dist/components/Category/CategoryInfoPills.d.ts.map +1 -0
  54. package/dist/components/Category/CategoryList.d.ts +4 -0
  55. package/dist/components/Category/CategoryList.d.ts.map +1 -0
  56. package/dist/components/Category/CategoryListItem.d.ts +4 -0
  57. package/dist/components/Category/CategoryListItem.d.ts.map +1 -0
  58. package/dist/components/Category/TagArea.d.ts +4 -0
  59. package/dist/components/Category/TagArea.d.ts.map +1 -0
  60. package/dist/components/Category/TopSection.d.ts +5 -0
  61. package/dist/components/Category/TopSection.d.ts.map +1 -0
  62. package/dist/components/Category/constants.d.ts +3 -0
  63. package/dist/components/Category/constants.d.ts.map +1 -0
  64. package/dist/components/Category/index.d.ts +4 -0
  65. package/dist/components/Category/index.d.ts.map +1 -0
  66. package/dist/components/Category/styles.d.ts +30 -0
  67. package/dist/components/Category/styles.d.ts.map +1 -0
  68. package/dist/components/Category/types.d.ts +55 -0
  69. package/dist/components/Category/types.d.ts.map +1 -0
  70. package/dist/components/Layout/Layout.d.ts +2 -0
  71. package/dist/components/Layout/Layout.d.ts.map +1 -0
  72. package/dist/components/Layout/index.d.ts +2 -0
  73. package/dist/components/Layout/index.d.ts.map +1 -0
  74. package/dist/components/Layout/styles.d.ts +2 -0
  75. package/dist/components/Layout/styles.d.ts.map +1 -0
  76. package/dist/components/SearchAndFilterSection/SearchAndFilterSection.d.ts +8 -0
  77. package/dist/components/SearchAndFilterSection/SearchAndFilterSection.d.ts.map +1 -0
  78. package/dist/components/SearchAndFilterSection/index.d.ts +2 -0
  79. package/dist/components/SearchAndFilterSection/index.d.ts.map +1 -0
  80. package/dist/components/SearchAndFilterSection/styles.d.ts +6 -0
  81. package/dist/components/SearchAndFilterSection/styles.d.ts.map +1 -0
  82. package/dist/components/Select/Select.d.ts +19 -0
  83. package/dist/components/Select/Select.d.ts.map +1 -0
  84. package/dist/components/Select/index.d.ts +3 -0
  85. package/dist/components/Select/index.d.ts.map +1 -0
  86. package/dist/components/Tag/Tag.d.ts +14 -0
  87. package/dist/components/Tag/Tag.d.ts.map +1 -0
  88. package/dist/components/Tag/index.d.ts +2 -0
  89. package/dist/components/Tag/index.d.ts.map +1 -0
  90. package/dist/components/Tag/styles.d.ts +15 -0
  91. package/dist/components/Tag/styles.d.ts.map +1 -0
  92. package/dist/components/index.d.ts +2 -0
  93. package/dist/components/index.d.ts.map +1 -0
  94. package/dist/constants/app.d.ts +2 -0
  95. package/dist/constants/app.d.ts.map +1 -0
  96. package/dist/constants/i18n.d.ts +84 -0
  97. package/dist/constants/i18n.d.ts.map +1 -0
  98. package/dist/constants/index.d.ts +5 -0
  99. package/dist/constants/index.d.ts.map +1 -0
  100. package/dist/constants/layout.d.ts +2 -0
  101. package/dist/constants/layout.d.ts.map +1 -0
  102. package/dist/constants/pagination.d.ts +2 -0
  103. package/dist/constants/pagination.d.ts.map +1 -0
  104. package/dist/constants/viewport.d.ts +4 -0
  105. package/dist/constants/viewport.d.ts.map +1 -0
  106. package/dist/contexts/AlertContext.d.ts +14 -0
  107. package/dist/contexts/AlertContext.d.ts.map +1 -0
  108. package/dist/contexts/AppContainerContext.d.ts +5 -0
  109. package/dist/contexts/AppContainerContext.d.ts.map +1 -0
  110. package/dist/contexts/CategoryContext.d.ts +12 -0
  111. package/dist/contexts/CategoryContext.d.ts.map +1 -0
  112. package/dist/contexts/ModalContext.d.ts +10 -0
  113. package/dist/contexts/ModalContext.d.ts.map +1 -0
  114. package/dist/contexts/index.d.ts +2 -0
  115. package/dist/contexts/index.d.ts.map +1 -0
  116. package/dist/hooks/useAccountTagsScreen.d.ts +12 -0
  117. package/dist/hooks/useAccountTagsScreen.d.ts.map +1 -0
  118. package/dist/hooks/useArchiveTag.d.ts +4 -0
  119. package/dist/hooks/useArchiveTag.d.ts.map +1 -0
  120. package/dist/hooks/useFetchTagsForCategory.d.ts +8 -0
  121. package/dist/hooks/useFetchTagsForCategory.d.ts.map +1 -0
  122. package/dist/hooks/useMoveTag.d.ts +10 -0
  123. package/dist/hooks/useMoveTag.d.ts.map +1 -0
  124. package/dist/hooks/usePagination.d.ts +15 -0
  125. package/dist/hooks/usePagination.d.ts.map +1 -0
  126. package/dist/hooks/useSkeletons.d.ts +2 -0
  127. package/dist/hooks/useSkeletons.d.ts.map +1 -0
  128. package/dist/index.d.ts +3 -0
  129. package/dist/index.d.ts.map +1 -0
  130. package/dist/index.js +16757 -0
  131. package/dist/main.d.ts +2 -0
  132. package/dist/main.d.ts.map +1 -0
  133. package/dist/modals/GenericModal/GenericModal.d.ts +27 -0
  134. package/dist/modals/GenericModal/GenericModal.d.ts.map +1 -0
  135. package/dist/modals/GenericModal/ModalProvider.d.ts +5 -0
  136. package/dist/modals/GenericModal/ModalProvider.d.ts.map +1 -0
  137. package/dist/modals/GenericModal/styles.d.ts +3 -0
  138. package/dist/modals/GenericModal/styles.d.ts.map +1 -0
  139. package/dist/modals/MoveTagModal/MoveTagModal.d.ts +12 -0
  140. package/dist/modals/MoveTagModal/MoveTagModal.d.ts.map +1 -0
  141. package/dist/modals/MoveTagModal/index.d.ts +2 -0
  142. package/dist/modals/MoveTagModal/index.d.ts.map +1 -0
  143. package/dist/modals/MoveTagModal/styles.d.ts +2 -0
  144. package/dist/modals/MoveTagModal/styles.d.ts.map +1 -0
  145. package/dist/modals/TagModal/CreateTagModal.d.ts +10 -0
  146. package/dist/modals/TagModal/CreateTagModal.d.ts.map +1 -0
  147. package/dist/modals/TagModal/EditTagModal.d.ts +11 -0
  148. package/dist/modals/TagModal/EditTagModal.d.ts.map +1 -0
  149. package/dist/modals/TagModal/fields/CategoryField.d.ts +16 -0
  150. package/dist/modals/TagModal/fields/CategoryField.d.ts.map +1 -0
  151. package/dist/modals/TagModal/fields/TagDetailsFields.d.ts +12 -0
  152. package/dist/modals/TagModal/fields/TagDetailsFields.d.ts.map +1 -0
  153. package/dist/modals/TagModal/fields/index.d.ts +3 -0
  154. package/dist/modals/TagModal/fields/index.d.ts.map +1 -0
  155. package/dist/modals/TagModal/hooks/index.d.ts +5 -0
  156. package/dist/modals/TagModal/hooks/index.d.ts.map +1 -0
  157. package/dist/modals/TagModal/hooks/useCategoryFormFields.d.ts +21 -0
  158. package/dist/modals/TagModal/hooks/useCategoryFormFields.d.ts.map +1 -0
  159. package/dist/modals/TagModal/hooks/useCreateTagForm.d.ts +23 -0
  160. package/dist/modals/TagModal/hooks/useCreateTagForm.d.ts.map +1 -0
  161. package/dist/modals/TagModal/hooks/useEditTagForm.d.ts +25 -0
  162. package/dist/modals/TagModal/hooks/useEditTagForm.d.ts.map +1 -0
  163. package/dist/modals/TagModal/hooks/useTagFormFields.d.ts +16 -0
  164. package/dist/modals/TagModal/hooks/useTagFormFields.d.ts.map +1 -0
  165. package/dist/modals/TagModal/styles.d.ts +4 -0
  166. package/dist/modals/TagModal/styles.d.ts.map +1 -0
  167. package/dist/screens/AccountTags/AccountTags.d.ts +3 -0
  168. package/dist/screens/AccountTags/AccountTags.d.ts.map +1 -0
  169. package/dist/screens/AccountTags/index.d.ts +2 -0
  170. package/dist/screens/AccountTags/index.d.ts.map +1 -0
  171. package/dist/screens/AccountTags/styles.d.ts +2 -0
  172. package/dist/screens/AccountTags/styles.d.ts.map +1 -0
  173. package/dist/screens/Home.d.ts +3 -0
  174. package/dist/screens/Home.d.ts.map +1 -0
  175. package/dist/services/association.d.ts +6 -0
  176. package/dist/services/association.d.ts.map +1 -0
  177. package/dist/services/category.d.ts +14 -0
  178. package/dist/services/category.d.ts.map +1 -0
  179. package/dist/services/tag.d.ts +24 -0
  180. package/dist/services/tag.d.ts.map +1 -0
  181. package/dist/services/users.d.ts +12 -0
  182. package/dist/services/users.d.ts.map +1 -0
  183. package/dist/skeletons/CategorySkeleton.d.ts +3 -0
  184. package/dist/skeletons/CategorySkeleton.d.ts.map +1 -0
  185. package/dist/skeletons/TagSkeleton.d.ts +3 -0
  186. package/dist/skeletons/TagSkeleton.d.ts.map +1 -0
  187. package/dist/skeletons/styles.d.ts +17 -0
  188. package/dist/skeletons/styles.d.ts.map +1 -0
  189. package/dist/stories/Category.stories.d.ts +12 -0
  190. package/dist/stories/Category.stories.d.ts.map +1 -0
  191. package/dist/stories/Tag.stories.d.ts +10 -0
  192. package/dist/stories/Tag.stories.d.ts.map +1 -0
  193. package/dist/stories/mocks/application.d.ts +3 -0
  194. package/dist/stories/mocks/application.d.ts.map +1 -0
  195. package/dist/stories/mocks/category.d.ts +3 -0
  196. package/dist/stories/mocks/category.d.ts.map +1 -0
  197. package/dist/stories/mocks/tag.d.ts +4 -0
  198. package/dist/stories/mocks/tag.d.ts.map +1 -0
  199. package/dist/types/application.d.ts +13 -0
  200. package/dist/types/application.d.ts.map +1 -0
  201. package/dist/types/category.d.ts +14 -0
  202. package/dist/types/category.d.ts.map +1 -0
  203. package/dist/types/context.d.ts +16 -0
  204. package/dist/types/context.d.ts.map +1 -0
  205. package/dist/types/i18n.d.ts +54 -0
  206. package/dist/types/i18n.d.ts.map +1 -0
  207. package/dist/types/index.d.ts +8 -0
  208. package/dist/types/index.d.ts.map +1 -0
  209. package/dist/types/layout.d.ts +6 -0
  210. package/dist/types/layout.d.ts.map +1 -0
  211. package/dist/types/state.d.ts +9 -0
  212. package/dist/types/state.d.ts.map +1 -0
  213. package/dist/types/tag.d.ts +15 -0
  214. package/dist/types/tag.d.ts.map +1 -0
  215. package/dist/types/viewport.d.ts +21 -0
  216. package/dist/types/viewport.d.ts.map +1 -0
  217. package/dist/utils/category.d.ts +4 -0
  218. package/dist/utils/category.d.ts.map +1 -0
  219. package/dist/utils/i18n.d.ts +6 -0
  220. package/dist/utils/i18n.d.ts.map +1 -0
  221. package/dist/utils/index.d.ts +2 -0
  222. package/dist/utils/index.d.ts.map +1 -0
  223. package/dist/utils/layout.d.ts +3 -0
  224. package/dist/utils/layout.d.ts.map +1 -0
  225. package/dist/utils/skeleton.d.ts +6 -0
  226. package/dist/utils/skeleton.d.ts.map +1 -0
  227. package/locales/en.json +83 -0
  228. package/package.json +96 -0
@@ -0,0 +1,54 @@
1
+ import { i18nKeys } from '../constants/i18n';
2
+ import { default as React } from 'react';
3
+ export type TranslateFunction<T> = (key: keyof T, options?: Record<string, unknown>) => string;
4
+ export type InstTaggingTranslations = typeof i18nKeys;
5
+ type I18nKey = keyof InstTaggingTranslations;
6
+ type ExtractVars<S extends string> = S extends `${string}%{${infer Var}}${infer Rest}` ? Var | ExtractVars<Rest> : never;
7
+ type PluralKeys = {
8
+ [K in I18nKey]: InstTaggingTranslations[K] extends {
9
+ readonly one: string;
10
+ readonly other: string;
11
+ } ? K : never;
12
+ }[I18nKey];
13
+ type StringI18nKey = Exclude<I18nKey, PluralKeys>;
14
+ type ExtractPluralVars<K extends PluralKeys> = InstTaggingTranslations[K] extends {
15
+ readonly one: infer O extends string;
16
+ readonly other: infer P extends string;
17
+ } ? ExtractVars<O> | ExtractVars<P> : never;
18
+ type StringKeysWithVars = {
19
+ [K in StringI18nKey]: ExtractVars<InstTaggingTranslations[K] & string> extends never ? never : K;
20
+ }[StringI18nKey];
21
+ type KeysWithVars = StringKeysWithVars | PluralKeys;
22
+ type I18nStringTokenWithVars = {
23
+ [K in StringKeysWithVars]: {
24
+ key: K;
25
+ vars: Record<ExtractVars<InstTaggingTranslations[K] & string>, string | number>;
26
+ };
27
+ }[StringKeysWithVars];
28
+ type I18nPluralToken = {
29
+ [K in PluralKeys]: ExtractPluralVars<K> extends never ? {
30
+ key: K;
31
+ count: number;
32
+ } : {
33
+ key: K;
34
+ count: number;
35
+ vars: Record<ExtractPluralVars<K>, string | number>;
36
+ };
37
+ }[PluralKeys];
38
+ type I18nTokenWithVars = I18nStringTokenWithVars | I18nPluralToken;
39
+ export type I18nToken = Exclude<I18nKey, KeysWithVars> | I18nTokenWithVars;
40
+ export type ResolveTokenFunction = (token: I18nToken) => string;
41
+ export interface InstTaggingContext {
42
+ translations: InstTaggingTranslations;
43
+ translate: TranslateFunction<InstTaggingTranslations>;
44
+ }
45
+ export interface UseTranslationsResult extends InstTaggingContext {
46
+ resolveToken: ResolveTokenFunction;
47
+ }
48
+ export interface TranslationsProviderProps {
49
+ translations: InstTaggingTranslations;
50
+ translate: TranslateFunction<InstTaggingTranslations>;
51
+ children: React.ReactNode;
52
+ }
53
+ export {};
54
+ //# sourceMappingURL=i18n.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../src/types/i18n.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export type * from './application';
2
+ export type * from './category';
3
+ export type * from './context';
4
+ export type * from './i18n';
5
+ export type * from './state';
6
+ export type * from './tag';
7
+ export type * from './viewport';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,eAAe,CAAA;AAClC,mBAAmB,YAAY,CAAA;AAC/B,mBAAmB,WAAW,CAAA;AAC9B,mBAAmB,QAAQ,CAAA;AAC3B,mBAAmB,SAAS,CAAA;AAC5B,mBAAmB,OAAO,CAAA;AAC1B,mBAAmB,YAAY,CAAA"}
@@ -0,0 +1,6 @@
1
+ export declare enum TabIndex {
2
+ People = 0,
3
+ Permissions = 1,
4
+ Account = 2
5
+ }
6
+ //# sourceMappingURL=layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/types/layout.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAClB,MAAM,IAAI;IACV,WAAW,IAAI;IACf,OAAO,IAAI;CACZ"}
@@ -0,0 +1,9 @@
1
+ export declare enum ViewType {
2
+ Active = "active",
3
+ Archive = "archive"
4
+ }
5
+ export declare enum WorkflowState {
6
+ Active = "active",
7
+ Deleted = "deleted"
8
+ }
9
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/types/state.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAClB,MAAM,WAAW;IACjB,OAAO,YAAY;CACpB;AAED,oBAAY,aAAa;IACvB,MAAM,WAAW;IACjB,OAAO,YAAY;CACpB"}
@@ -0,0 +1,15 @@
1
+ import { WorkflowState } from './state';
2
+ export interface TagType {
3
+ id: number;
4
+ name: string;
5
+ description: string;
6
+ sis_source_id?: string | null;
7
+ category_id: number;
8
+ account_id: number;
9
+ root_account_id: number;
10
+ associations_count?: number;
11
+ workflow_state: WorkflowState;
12
+ created_at?: string;
13
+ updated_at?: string;
14
+ }
15
+ //# sourceMappingURL=tag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tag.d.ts","sourceRoot":"","sources":["../../src/types/tag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAEvC,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,eAAe,EAAE,MAAM,CAAA;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,cAAc,EAAE,aAAa,CAAA;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB"}
@@ -0,0 +1,21 @@
1
+ export declare enum Sizes {
2
+ Large = "large",
3
+ Medium = "medium",
4
+ Small = "small"
5
+ }
6
+ export declare enum InstUiBreakpoints {
7
+ Large = 992,
8
+ Medium = 768,
9
+ Small = 480
10
+ }
11
+ export interface AppContainerProviderProps {
12
+ ignoreContainerSize?: boolean;
13
+ }
14
+ export interface ContainerSizeProps {
15
+ width: number;
16
+ isMobile: boolean;
17
+ isTablet: boolean;
18
+ isTabletOrMobile: boolean;
19
+ isLargeScreen: boolean;
20
+ }
21
+ //# sourceMappingURL=viewport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewport.d.ts","sourceRoot":"","sources":["../../src/types/viewport.ts"],"names":[],"mappings":"AAAA,oBAAY,KAAK;IACf,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,KAAK,UAAU;CAChB;AAED,oBAAY,iBAAiB;IAC3B,KAAK,MAAM;IACX,MAAM,MAAM;IACZ,KAAK,MAAM;CACZ;AAED,MAAM,WAAW,yBAAyB;IACxC,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE,OAAO,CAAA;IACjB,gBAAgB,EAAE,OAAO,CAAA;IACzB,aAAa,EAAE,OAAO,CAAA;CACvB"}
@@ -0,0 +1,4 @@
1
+ import { SelectOption } from '../components/Select';
2
+ import { CategoryType } from '../types/category';
3
+ export declare const createCategorySelectOptions: (categories: CategoryType[], sourceCategoryId?: number) => SelectOption<number>[];
4
+ //# sourceMappingURL=category.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"category.d.ts","sourceRoot":"","sources":["../../src/utils/category.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9C,eAAO,MAAM,2BAA2B,GACtC,YAAY,YAAY,EAAE,EAC1B,mBAAmB,MAAM,KACxB,YAAY,CAAC,MAAM,CAAC,EAItB,CAAA"}
@@ -0,0 +1,6 @@
1
+ import { I18nToken, InstTaggingTranslations, TranslateFunction, TranslationsProviderProps, UseTranslationsResult } from '../types/i18n';
2
+ export declare function TranslationsProvider({ translations, translate, children, }: TranslationsProviderProps): import("react/jsx-runtime").JSX.Element;
3
+ export declare function useTranslations(): UseTranslationsResult;
4
+ export declare const resolveI18nToken: (token: I18nToken, translate: TranslateFunction<InstTaggingTranslations>) => string;
5
+ export declare const translate: (key: keyof InstTaggingTranslations, options?: Record<string, unknown>) => string;
6
+ //# sourceMappingURL=i18n.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../src/utils/i18n.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,SAAS,EAET,uBAAuB,EACvB,iBAAiB,EACjB,yBAAyB,EACzB,qBAAqB,EACtB,MAAM,aAAa,CAAA;AAKpB,wBAAgB,oBAAoB,CAAC,EACnC,YAAY,EACZ,SAAS,EACT,QAAQ,GACT,EAAE,yBAAyB,2CAG3B;AAED,wBAAgB,eAAe,IAAI,qBAAqB,CAUvD;AAED,eAAO,MAAM,gBAAgB,GAC3B,OAAO,SAAS,EAChB,WAAW,iBAAiB,CAAC,uBAAuB,CAAC,KACpD,MAOF,CAAA;AAED,eAAO,MAAM,SAAS,GACpB,KAAK,MAAM,uBAAuB,EAClC,UAAU,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAChC,MAkBF,CAAA"}
@@ -0,0 +1,2 @@
1
+ export { resolveI18nToken, TranslationsProvider, translate, useTranslations, } from './i18n';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,SAAS,EACT,eAAe,GAChB,MAAM,QAAQ,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { TabIndex } from '../types/layout';
2
+ export declare const mapQueryParamsToTabIndex: (queryParam: string | null) => TabIndex;
3
+ //# sourceMappingURL=layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/utils/layout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,eAAO,MAAM,wBAAwB,GAAI,YAAY,MAAM,GAAG,IAAI,aAejE,CAAA"}
@@ -0,0 +1,6 @@
1
+ interface IterableObject {
2
+ id: number;
3
+ }
4
+ export declare const iterableObject: (length: number) => Array<IterableObject>;
5
+ export {};
6
+ //# sourceMappingURL=skeleton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skeleton.d.ts","sourceRoot":"","sources":["../../src/utils/skeleton.ts"],"names":[],"mappings":"AAAA,UAAU,cAAc;IACtB,EAAE,EAAE,MAAM,CAAA;CACX;AAED,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,KAAG,KAAK,CAAC,cAAc,CACvB,CAAA"}
@@ -0,0 +1,83 @@
1
+ {
2
+ "accountTags": "Account tags",
3
+ "active": "Active",
4
+ "archive": "Archive",
5
+ "cancel": "Cancel",
6
+ "close": "Close",
7
+ "createdAt": "Created: %{date}",
8
+ "edit": "Edit",
9
+ "loadingData": "Loading data",
10
+ "moreOptions": "More options",
11
+ "move": "Move",
12
+ "nextPage": "Next page",
13
+ "people": "People",
14
+ "peopleManagement": "People management",
15
+ "permissions": "Permissions",
16
+ "previousPage": "Previous page",
17
+ "save": "Save",
18
+ "search": "Search",
19
+ "title": "Institutional Tagging",
20
+ "view": "View",
21
+ "archiveTagFailed": "Failed to archive tag.",
22
+ "archiveTagNotFound": "Tag not found or already archived.",
23
+ "archiveTagUnprocessable": "This tag cannot be archived in its current state.",
24
+ "categoryNameRequired": "Category name is required.",
25
+ "categoryRequired": "Category is required.",
26
+ "loadCategories": "Failed to load categories: %{errorMessage}",
27
+ "tagAlreadyExists": "This tag name already exists.",
28
+ "tagMoveConflict": "A tag with this name already exists in the selected category.",
29
+ "tagMoveFailed": "Failed to move the tag. Please try again.",
30
+ "tagMoveInvalidState": "This tag cannot be moved.",
31
+ "tagMoveNotFound": "Tag not found.",
32
+ "tagNameRequired": "Tag name is required.",
33
+ "tagArchived": "Tag archived",
34
+ "tagDeleted": "Tag deleted",
35
+ "tagSaved": "Tag saved",
36
+ "tagUpdated": "Tag changes saved",
37
+ "addTag": "Add tag",
38
+ "addTags": "Add tags",
39
+ "archiveTag": "Archive tag",
40
+ "archiveTagConfirmation": "Archiving this tag means it will no longer be active or available for use. You can restore it later if needed.",
41
+ "assignTag": "Assign people to tag",
42
+ "editTag": "Edit tag",
43
+ "moveTags": "Move tags",
44
+ "newTag": "New tag",
45
+ "restoreTag": "Restore tag",
46
+ "tagActions": "Tag actions",
47
+ "tagDescriptionLabel": "Tag description",
48
+ "tagDescriptionPlaceholder": "Briefly describe this tag",
49
+ "tagFieldGroupLabel": "Tag details",
50
+ "tagNameLabel": "Tag name",
51
+ "tagNamePlaceholder": "Name this tag",
52
+ "viewTagDetails": "View tag details",
53
+ "category": "Category",
54
+ "categoryArchived": "Archived",
55
+ "categoryDescriptionLabel": "Category description",
56
+ "categoryMenuLabel": "Actions for %{category}",
57
+ "categoryNameLabel": "Category name",
58
+ "categoryPlaceholder": "Select a category",
59
+ "createNewCategoryOption": "Create new category",
60
+ "expandCategory": "Expand category",
61
+ "expendAll": "Expand all",
62
+ "newCategory": "New category",
63
+ "searchResults": "%{resultCount} results found",
64
+ "selectCategoryToMove": "Select a new category to move",
65
+ "sortCategories": "Sort categories",
66
+ "assignPeopleToTags": "Assign people to tags",
67
+ "clearSelection": "Clear selection",
68
+ "moveTo": "Move to",
69
+ "moveToSubtitle": "Select category",
70
+ "multiSelectOff": "Multi-select off",
71
+ "multiSelectOn": "Multi-select on",
72
+ "multiTagActions": "Actions",
73
+ "totalTags": "%{totalTagCount} tags",
74
+ "viewAllPeople": "View all people",
75
+ "tagMoved": {
76
+ "one": "Tag moved to %{categoryName}",
77
+ "other": "Tags moved to %{categoryName}"
78
+ },
79
+ "tagsSelected": {
80
+ "one": "%{count} tag selected",
81
+ "other": "%{count} tags selected"
82
+ }
83
+ }
package/package.json ADDED
@@ -0,0 +1,96 @@
1
+ {
2
+ "name": "@instructure/platform-institutional-tagging",
3
+ "version": "2.0.0",
4
+ "type": "module",
5
+ "main": "./dist/index.js",
6
+ "module": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js"
12
+ },
13
+ "./locales/en.json": "./locales/en.json"
14
+ },
15
+ "files": [
16
+ "dist",
17
+ "locales"
18
+ ],
19
+ "peerDependencies": {
20
+ "@instructure/emotion": "^10.0.0",
21
+ "@instructure/ui-alerts": "^10.0.0",
22
+ "@instructure/ui-badge": "^10.0.0",
23
+ "@instructure/ui-buttons": "^10.0.0",
24
+ "@instructure/ui-drilldown": "^10.0.0",
25
+ "@instructure/ui-flex": "^10.0.0",
26
+ "@instructure/ui-form-field": "^10.30.0",
27
+ "@instructure/ui-heading": "^10.0.0",
28
+ "@instructure/ui-icons": "^10.0.0",
29
+ "@instructure/ui-menu": "^10.0.0",
30
+ "@instructure/ui-modal": "^10.0.0",
31
+ "@instructure/ui-pagination": "^10.0.0",
32
+ "@instructure/ui-pill": "^10.0.0",
33
+ "@instructure/ui-simple-select": "^10.0.0",
34
+ "@instructure/ui-text": "^10.0.0",
35
+ "@instructure/ui-text-input": "^10.0.0",
36
+ "@instructure/ui-themes": "^10.0.0",
37
+ "@instructure/ui-truncate-text": "^10.0.0",
38
+ "@tanstack/react-query": "^5.0.0",
39
+ "react": "^18.0.0",
40
+ "react-dom": "^18.0.0",
41
+ "react-router-dom": "^6.0.0",
42
+ "@instructure/platform-provider": "0.3.0"
43
+ },
44
+ "devDependencies": {
45
+ "@instructure/ui-form-field": "^10.30.0",
46
+ "@storybook/react": "^10.0.8",
47
+ "@stylelint/postcss-css-in-js": "^0.38.0",
48
+ "@testing-library/jest-dom": "^6.9.1",
49
+ "@testing-library/react": "^16.3.0",
50
+ "@testing-library/user-event": "^14.0.0",
51
+ "@types/lodash": "^4.17.24",
52
+ "@types/luxon": "^3.7.1",
53
+ "@types/node": "^18.18.0",
54
+ "@types/react": "^18.3.0",
55
+ "@types/react-dom": "^18.3.0",
56
+ "@vitejs/plugin-react": "^4.2.0",
57
+ "@vitest/coverage-istanbul": "4.0.17",
58
+ "concurrently": "^9.2.1",
59
+ "graphql": "^16.9.0",
60
+ "jsdom": "^25.0.0",
61
+ "json-schema-faker": "^0.6.0",
62
+ "msw": "^2.0.0",
63
+ "nodemon": "^3.1.14",
64
+ "stylelint": "^15.11.0",
65
+ "stylelint-config-standard": "^34.0.0",
66
+ "stylelint-config-styled-components": "^0.1.1",
67
+ "typescript": "^5.3.0",
68
+ "vite": "^6.0.0",
69
+ "vite-plugin-dts": "^4.0.0"
70
+ },
71
+ "dependencies": {
72
+ "axios": "^1.13.6",
73
+ "lodash": "^4.17.23",
74
+ "luxon": "^3.7.2",
75
+ "styled-components": "^6.3.11"
76
+ },
77
+ "scripts": {
78
+ "build": "vite build",
79
+ "dev": "vite",
80
+ "dev:mock": "concurrently --names \"web-app,mock-server,locales\" \"pnpm dev\" \"pnpm mock-server\" \"pnpm locales:watch\"",
81
+ "dev:build": "vite build --watch",
82
+ "lint": "biome check . && ast-grep scan . --report-style=short && stylelint 'src/**/*.ts'",
83
+ "lint:fix": "biome check --write . && stylelint --fix 'src/**/*.ts'",
84
+ "type-check": "tsgo -p tsconfig.check.json",
85
+ "storybook": "start-storybook -p 6006",
86
+ "pack:tarball": "pnpm build && pnpm pack",
87
+ "locales:generate": "node scripts/generate-locales.mjs && pnpm locales:validate",
88
+ "locales:watch": "nodemon --exec 'node scripts/generate-locales.mjs --quiet && pnpm locales:validate' --watch src/constants/i18n.ts --name locales",
89
+ "locales:sort": "node scripts/sort-locales.mjs",
90
+ "aliases:validate": "node scripts/validate-aliases.mjs",
91
+ "locales:validate": "node scripts/validate-locales.mjs",
92
+ "mock-server": "nodemon scripts/mock-server.mjs",
93
+ "test": "vitest run",
94
+ "test:coverage": "vitest run --coverage"
95
+ }
96
+ }