@instructure/platform-modules 0.1.1 → 0.2.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 (56) hide show
  1. package/README.md +113 -3
  2. package/dist/adapters/canvasGraphql/normalize.d.ts +1 -0
  3. package/dist/adapters/canvasGraphql/normalize.d.ts.map +1 -1
  4. package/dist/adapters/canvasGraphql/queries.d.ts.map +1 -1
  5. package/dist/components/FilterChips.d.ts.map +1 -1
  6. package/dist/components/ModuleCard.d.ts +17 -5
  7. package/dist/components/ModuleCard.d.ts.map +1 -1
  8. package/dist/components/ModuleCard.stories.d.ts +12 -0
  9. package/dist/components/ModuleCard.stories.d.ts.map +1 -0
  10. package/dist/components/ModuleItemRow.d.ts +3 -1
  11. package/dist/components/ModuleItemRow.d.ts.map +1 -1
  12. package/dist/components/ModuleNumberBadge.d.ts +8 -0
  13. package/dist/components/ModuleNumberBadge.d.ts.map +1 -0
  14. package/dist/components/ModulesList.d.ts +4 -1
  15. package/dist/components/ModulesList.d.ts.map +1 -1
  16. package/dist/components/ModulesList.stories.d.ts +34 -6
  17. package/dist/components/ModulesList.stories.d.ts.map +1 -1
  18. package/dist/components/index.d.ts +1 -0
  19. package/dist/components/index.d.ts.map +1 -1
  20. package/dist/components/labels.d.ts +6 -10
  21. package/dist/components/labels.d.ts.map +1 -1
  22. package/dist/config/base.d.ts +8 -0
  23. package/dist/config/base.d.ts.map +1 -0
  24. package/dist/config/context.d.ts +11 -0
  25. package/dist/config/context.d.ts.map +1 -0
  26. package/dist/config/index.d.ts +6 -1
  27. package/dist/config/index.d.ts.map +1 -1
  28. package/dist/config/partialModulesConfig.d.ts +4 -0
  29. package/dist/config/partialModulesConfig.d.ts.map +1 -0
  30. package/dist/config/registry.d.ts +3 -0
  31. package/dist/config/registry.d.ts.map +1 -1
  32. package/dist/config/resolve.d.ts +7 -0
  33. package/dist/config/resolve.d.ts.map +1 -0
  34. package/dist/config/schemas.d.ts +2 -0
  35. package/dist/config/schemas.d.ts.map +1 -1
  36. package/dist/config/types.d.ts +32 -0
  37. package/dist/config/types.d.ts.map +1 -0
  38. package/dist/fixtures/generate.d.ts.map +1 -1
  39. package/dist/fixtures/index.d.ts +1 -1
  40. package/dist/fixtures/index.d.ts.map +1 -1
  41. package/dist/fixtures/scenarios.d.ts +5 -0
  42. package/dist/fixtures/scenarios.d.ts.map +1 -1
  43. package/dist/i18n.d.ts +33 -63
  44. package/dist/i18n.d.ts.map +1 -1
  45. package/dist/index.d.ts +5 -4
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +1130 -852
  48. package/dist/types/domain.d.ts +2 -0
  49. package/dist/types/domain.d.ts.map +1 -1
  50. package/dist/types/index.d.ts +1 -0
  51. package/dist/types/index.d.ts.map +1 -1
  52. package/dist/types/navigation.d.ts +13 -0
  53. package/dist/types/navigation.d.ts.map +1 -0
  54. package/dist/types/schemas.d.ts.map +1 -1
  55. package/locales/en.json +103 -0
  56. package/package.json +11 -3
@@ -1 +1 @@
1
- {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/fixtures/generate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,KAAK,EAQV,YAAY,EACb,MAAM,iBAAiB,CAAA;AA4DxB;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,EAAE,SAAS,YAAY,EAOtD,CAAA;AA0BD,8EAA8E;AAC9E,eAAO,MAAM,iBAAiB,MAAM,CAAA;AA2PpC;;;GAGG;AACH;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,SAAS,CAAA;AAE/C,MAAM,WAAW,mBAAmB;IAClC,6BAA6B;IAC7B,IAAI,CAAC,EAAE,WAAW,CAAA;IAClB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAgBD,wBAAgB,YAAY,CAC1B,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,OAAO,GAAE,mBAAwB,GAChC,eAAe,CAiBjB"}
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/fixtures/generate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,KAAK,EAQV,YAAY,EACb,MAAM,iBAAiB,CAAA;AA4DxB;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,EAAE,SAAS,YAAY,EAOtD,CAAA;AA6BD,8EAA8E;AAC9E,eAAO,MAAM,iBAAiB,MAAM,CAAA;AA4PpC;;;GAGG;AACH;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,SAAS,CAAA;AAE/C,MAAM,WAAW,mBAAmB;IAClC,6BAA6B;IAC7B,IAAI,CAAC,EAAE,WAAW,CAAA;IAClB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAgBD,wBAAgB,YAAY,CAC1B,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,OAAO,GAAE,mBAAwB,GAChC,eAAe,CAiBjB"}
@@ -1,3 +1,3 @@
1
1
  export { buildFixture, type BuildFixtureOptions, FIXTURE_COURSE_ID, type FixtureView, MODULE_STATUS_CYCLE, } from './generate';
2
- export { courseEmpty, courseFatModule, courseLarge, courseSmall, FAT_MODULE_ITEM_COUNT, FAT_MODULE_SIBLING_ITEM_COUNT, LARGE_ITEMS_PER_MODULE, LARGE_MODULE_COUNT, SMALL_ITEMS_PER_MODULE, SMALL_MODULE_COUNT, } from './scenarios';
2
+ export { courseEmpty, courseFatModule, courseItemLinks, courseLarge, courseSmall, FAT_MODULE_ITEM_COUNT, FAT_MODULE_SIBLING_ITEM_COUNT, LARGE_ITEMS_PER_MODULE, LARGE_MODULE_COUNT, SMALL_ITEMS_PER_MODULE, SMALL_MODULE_COUNT, } from './scenarios';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fixtures/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,KAAK,mBAAmB,EACxB,iBAAiB,EACjB,KAAK,WAAW,EAChB,mBAAmB,GACpB,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,WAAW,EACX,eAAe,EACf,WAAW,EACX,WAAW,EACX,qBAAqB,EACrB,6BAA6B,EAC7B,sBAAsB,EACtB,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fixtures/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,KAAK,mBAAmB,EACxB,iBAAiB,EACjB,KAAK,WAAW,EAChB,mBAAmB,GACpB,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,WAAW,EACX,eAAe,EACf,eAAe,EACf,WAAW,EACX,WAAW,EACX,qBAAqB,EACrB,6BAA6B,EAC7B,sBAAsB,EACtB,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,aAAa,CAAA"}
@@ -39,4 +39,9 @@ export declare function courseLarge(): InMemoryFixture;
39
39
  export declare function courseFatModule(): InMemoryFixture;
40
40
  /** No modules at all. The empty state exists before the designs specify it. */
41
41
  export declare function courseEmpty(): InMemoryFixture;
42
+ /**
43
+ * The item-title edge cases, hand-authored: linked, new tab, sub-header, no url,
44
+ * a very long title, and locked.
45
+ */
46
+ export declare function courseItemLinks(): InMemoryFixture;
42
47
  //# sourceMappingURL=scenarios.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scenarios.d.ts","sourceRoot":"","sources":["../../src/fixtures/scenarios.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAG3D;;;;GAIG;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAmC,CAAA;AACpE,eAAO,MAAM,sBAAsB,IAAI,CAAA;AAEvC,sFAAsF;AACtF,eAAO,MAAM,kBAAkB,MAAM,CAAA;AACrC,eAAO,MAAM,sBAAsB,KAAK,CAAA;AAExC,sEAAsE;AACtE,eAAO,MAAM,qBAAqB,MAAM,CAAA;AACxC,eAAO,MAAM,6BAA6B,IAAI,CAAA;AAE9C;;;GAGG;AACH,wBAAgB,WAAW,IAAI,eAAe,CAE7C;AAED;;;;GAIG;AACH,wBAAgB,WAAW,IAAI,eAAe,CAE7C;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,IAAI,eAAe,CAMjD;AAED,+EAA+E;AAC/E,wBAAgB,WAAW,IAAI,eAAe,CAE7C"}
1
+ {"version":3,"file":"scenarios.d.ts","sourceRoot":"","sources":["../../src/fixtures/scenarios.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAO3D;;;;GAIG;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAmC,CAAA;AACpE,eAAO,MAAM,sBAAsB,IAAI,CAAA;AAEvC,sFAAsF;AACtF,eAAO,MAAM,kBAAkB,MAAM,CAAA;AACrC,eAAO,MAAM,sBAAsB,KAAK,CAAA;AAExC,sEAAsE;AACtE,eAAO,MAAM,qBAAqB,MAAM,CAAA;AACxC,eAAO,MAAM,6BAA6B,IAAI,CAAA;AAE9C;;;GAGG;AACH,wBAAgB,WAAW,IAAI,eAAe,CAE7C;AAED;;;;GAIG;AACH,wBAAgB,WAAW,IAAI,eAAe,CAE7C;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,IAAI,eAAe,CAMjD;AAED,+EAA+E;AAC/E,wBAAgB,WAAW,IAAI,eAAe,CAE7C;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,eAAe,CA8CjD"}
package/dist/i18n.d.ts CHANGED
@@ -1,92 +1,62 @@
1
1
  import { ReactNode } from 'react';
2
+ import { default as en } from '../locales/en.json';
2
3
  /**
3
4
  * The i18n seam.
4
5
  *
5
- * This package renders user-visible text, so it cannot hardcode English. It also
6
- * cannot *translate* anything: the host owns the catalogues, the locale
7
- * negotiation and the extraction pipeline. So strings are injected, using
8
- * `TranslateFunction` as defined in `packages/provider/src/i18n.ts`.
6
+ * Named keys resolved against the shipped `locales/en.json`, with plural forms
7
+ * selected per locale. See `docs/adr/0003-i18n-named-keys.md` and
8
+ * `docs/adr/0004-i18n-plurals.md`.
9
9
  *
10
- * ## How this differs from ADR 0011, and why
10
+ * Two properties later work depends on, so change them deliberately: a missing key
11
+ * renders English rather than blank or throwing, and an unknown key passes through
12
+ * as its own text, which is how a host-registered registry label reaches the screen
13
+ * (`docs/adr/0001-customization.md`).
11
14
  *
12
- * ADR 0011 (`docs/adr/translations.md`) specifies a `translations` *object* of
13
- * named keys plus a `translate` function, and packages shipping `locales/en.json`.
14
- * notebook, widget-dashboard and block-content-editor all do that; this package
15
- * does not.
16
- *
17
- * The divergence is deliberate and argued in `docs/adr/modules-i18n.md`. In short:
18
- * ADR 0011 marks itself provisional and lists "large interface: 100+ keys and
19
- * growing" and "host must provide all keys; missing keys fail silently or throw"
20
- * as its own known costs. Using the English source string as the key removes both
21
- * — there is no key surface to keep in sync, and a missing translation degrades to
22
- * readable English rather than to a blank or a throw.
23
- *
24
- * ## Keys are the English source string
25
- *
26
- * `t('Load more items (%{loaded} of %{total} loaded)', { loaded, total })`.
27
- *
28
- * The package therefore renders correctly with no provider at all — the default
29
- * `t` interpolates the key itself — so Storybook, tests and a host mid-migration
30
- * all work.
31
- *
32
- * One thing this does *not* buy, contrary to what this comment used to say:
33
- * automatic extraction. Canvas's i18nliner cannot see a literal passed at runtime,
34
- * which is exactly why `platformBridge.tsx` maintains a `LITERAL_THUNKS` list — and
35
- * it already carries `'%{points} pts'`, the same literal `labels.ts` uses. A Canvas
36
- * host adopting this package adds its literals there. That is a real cost of this
37
- * shape and belongs on the record.
38
- *
39
- * ## Why the locale rides along
40
- *
41
- * `labels.ts` formats dates and numbers through `Intl`, which needs a locale.
42
- * Translating the words while hard-pinning `en-US` would produce German text beside
43
- * American dates, so the two travel together.
44
- *
45
- * `timezone` is deliberately absent, and not because the package cannot reach one:
46
- * it is on provider context (`CanvasUiProvider.tsx:26-27,63-65`) and Canvas passes
47
- * `ENV.TIMEZONE` through `platformBridge.tsx`. Consuming it means either depending
48
- * on `usePlatformUi()`, which throws without a provider and would cost this package
49
- * its render-anywhere property, or a host passing it in alongside `locale`. The
50
- * latter is the right shape; the timezone-aware formatting behind it is not built,
51
- * so the prop does not exist yet rather than existing unused.
15
+ * `timezone` is deliberately absent: reading it means depending on `usePlatformUi()`,
16
+ * which throws without a provider and would cost this package its render-anywhere
17
+ * property. A host passing it alongside `locale` is the right shape, and the
18
+ * formatting behind it is not built.
52
19
  */
20
+ export type ModulesTranslationKey = keyof typeof en;
21
+ /** CLDR plural categories, keyed as `Intl.PluralRules` selects them. */
22
+ export type PluralForms = Partial<Record<Intl.LDMLPluralRule, string>>;
53
23
  /**
54
- * Translate an English source string, interpolating `%{named}` placeholders.
24
+ * A host may supply plural forms for any key, or collapse any key to one string.
55
25
  *
56
- * Structurally compatible with `TranslateFunction` from
57
- * `@instructure/platform-provider`, so a host already supplying one can pass it
58
- * straight through.
26
+ * Which keys `en.json` ships forms for is a judgement about English, so it does
27
+ * not constrain a translator whose language divides them differently.
59
28
  */
60
- export type TranslateFunction = (key: string, options?: Record<string, unknown>) => string;
29
+ export type ModulesTranslations = Record<ModulesTranslationKey, PluralForms | string>;
61
30
  /**
62
- * The no-host fallback: interpolate the key, translate nothing.
31
+ * Translate a named key, interpolating `%{named}` placeholders.
63
32
  *
64
- * An unknown placeholder is left visibly intact (`%{name}`) rather than replaced
65
- * with "undefined" a missing interpolation should look like a bug, not like
66
- * data.
33
+ * The union accepts the arbitrary string a host-registered registry label
34
+ * resolves through, while keeping completion on our own keys.
67
35
  */
36
+ export type TranslateFunction = (key: ModulesTranslationKey | (string & {}), options?: Record<string, unknown>) => string;
37
+ export declare const DEFAULT_LOCALE = "en-US";
38
+ export declare function createTranslate(translations?: Partial<ModulesTranslations>, locale?: string): TranslateFunction;
39
+ /** Resolves from `locales/en.json` alone, in `en-US`. */
68
40
  export declare const defaultTranslate: TranslateFunction;
69
41
  export interface ModulesI18n {
70
42
  t: TranslateFunction;
71
43
  /** BCP 47 tag for `Intl` formatting. */
72
44
  locale: string;
73
45
  }
74
- export declare const DEFAULT_LOCALE = "en-US";
75
46
  export interface ModulesI18nProviderProps {
76
- /** Omit to render untranslated English. */
77
- t?: TranslateFunction;
47
+ /** Partial; anything omitted falls back to `locales/en.json`. Memoize it. */
48
+ translations?: Partial<ModulesTranslations>;
78
49
  /** Omit for `en-US`. */
79
50
  locale?: string;
80
51
  children: ReactNode;
81
52
  }
82
53
  /**
83
- * Supplies the host's translate function and locale.
54
+ * Supplies the host's catalogue and locale.
84
55
  *
85
- * Optional. Without it the package renders untranslated English, which is the
86
- * right behaviour for Storybook and for a host mid-migration — a thrown error
87
- * would make the seam harder to adopt than the hardcoded strings it replaces.
56
+ * Optional without it the package renders English, which is what makes the seam
57
+ * adoptable incrementally.
88
58
  */
89
- export declare function ModulesI18nProvider({ t, locale, children }: ModulesI18nProviderProps): ReactNode;
90
- /** The translate function and locale, falling back to untranslated English. */
59
+ export declare function ModulesI18nProvider({ translations, locale, children, }: ModulesI18nProviderProps): ReactNode;
60
+ /** The translate function and locale, falling back to English. */
91
61
  export declare function useModulesI18n(): ModulesI18n;
92
62
  //# sourceMappingURL=i18n.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../src/i18n.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAuB,MAAM,OAAO,CAAA;AAE1E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAEH;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAA;AAI1F;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,EAAE,iBAK9B,CAAA;AAED,MAAM,WAAW,WAAW;IAC1B,CAAC,EAAE,iBAAiB,CAAA;IACpB,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAA;CACf;AAED,eAAO,MAAM,cAAc,UAAU,CAAA;AAMrC,MAAM,WAAW,wBAAwB;IACvC,2CAA2C;IAC3C,CAAC,CAAC,EAAE,iBAAiB,CAAA;IACrB,wBAAwB;IACxB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,wBAAwB,GAAG,SAAS,CAMhG;AAED,+EAA+E;AAC/E,wBAAgB,cAAc,IAAI,WAAW,CAE5C"}
1
+ {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../src/i18n.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAuB,MAAM,OAAO,CAAA;AAC1E,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAEnC;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,MAAM,qBAAqB,GAAG,MAAM,OAAO,EAAE,CAAA;AAEnD,wEAAwE;AACxE,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAA;AAEtE;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,EAAE,WAAW,GAAG,MAAM,CAAC,CAAA;AAErF;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAC9B,GAAG,EAAE,qBAAqB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,EAC1C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC9B,MAAM,CAAA;AAMX,eAAO,MAAM,cAAc,UAAU,CAAA;AA8ErC,wBAAgB,eAAe,CAC7B,YAAY,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,EAC3C,MAAM,GAAE,MAAuB,GAC9B,iBAAiB,CAEnB;AAED,yDAAyD;AACzD,eAAO,MAAM,gBAAgB,EAAE,iBAAqC,CAAA;AAEpE,MAAM,WAAW,WAAW;IAC1B,CAAC,EAAE,iBAAiB,CAAA;IACpB,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAA;CACf;AAMD,MAAM,WAAW,wBAAwB;IACvC,6EAA6E;IAC7E,YAAY,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAA;IAC3C,wBAAwB;IACxB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,YAAY,EACZ,MAAM,EACN,QAAQ,GACT,EAAE,wBAAwB,GAAG,SAAS,CAMtC;AAED,kEAAkE;AAClE,wBAAgB,cAAc,IAAI,WAAW,CAE5C"}
package/dist/index.d.ts CHANGED
@@ -5,15 +5,16 @@
5
5
  * `useModulesPageData`. Everything else is exported for testing, for hosts
6
6
  * that want finer control, or for the track that owns it.
7
7
  */
8
- export type { CompletionRequirement, CompletionRequirementType, Module, ModuleItem, ModuleItemsPage, ModuleItemStatus, ModuleItemType, ModuleProgress, ModulesPage, ModuleStatus, PageInfo, } from './types';
8
+ export type { CompletionRequirement, CompletionRequirementType, Module, ModuleItem, ModuleItemNavigation, ModuleItemsPage, ModuleItemStatus, ModuleItemType, ModuleProgress, ModulesPage, ModuleStatus, PageInfo, } from './types';
9
9
  export { CompletionRequirementSchema, CompletionRequirementTypeSchema, ModuleItemSchema, ModuleItemsPageSchema, ModuleItemStatusSchema, ModuleItemTypeSchema, ModuleProgressSchema, ModuleSchema, ModulesPageSchema, ModuleStatusSchema, PageInfoSchema, } from './types';
10
10
  export { EXT_CAREER_ESTIMATED_DURATION_MINUTES, getEstimatedDurationMinutes, withEstimatedDurationMinutes, } from './types';
11
11
  export type { ListModuleItemsArgs, ListModulesArgs, ModulesDataAdapter } from './adapters';
12
12
  export { createInMemoryAdapter, InMemoryCourseMismatchError, INLINE_ITEM_LIMIT, type InMemoryAdapterOptions, type InMemoryFixture, type InMemoryRequest, } from './adapters';
13
13
  export { type CanvasGraphqlAdapterOptions, createCanvasGraphqlAdapter, INLINE_QUERY_NODE_BUDGET, type ExecuteQuery, GET_MODULE_ITEMS, GET_MODULES, PartialCanvasResponseError, type PartialResponseSubject, type UnsupportedModuleItem, } from './adapters/canvasGraphql';
14
+ export { baseModulesConfig, mergeRegistry, type ModulesConfig, type ModulesConfigOverride, ModulesConfigProvider, type ModulesConfigProviderProps, ModulesConfigSchema, type ModulesFormatters, type ModulesNavigation, partialModulesConfig, type Registry, type RegistryEntry, RegistryEntrySchema, type RegistryOverride, registrySchema, resolveModulesConfig, useModulesConfig, type VisibleEntry, visibleEntries, } from './config';
14
15
  export { DEFAULT_INLINE_THRESHOLD, DEFAULT_ITEM_CONCURRENCY, DEFAULT_ITEM_PAGE_SIZE, DEFAULT_PAGE_SIZE, DEFAULT_RETAIN_COLLAPSED_LIMIT, DEFAULT_STALE_TIME_MS, type InlineQueryShape, type ItemsMode, type ModuleItemsSource, type ModuleItemsState, type ResolvedItemsMode, useModuleItems, type UseModuleItemsOptions, type UseModuleItemsResult, useModules, type UseModulesOptions, useModulesPageData, type UseModulesPageDataOptions, type UseModulesPageDataResult, type UseModulesResult, } from './hooks';
15
16
  export { invalidateCourse, invalidateModuleItems, invalidateModuleList, moduleItemsPrefix, type ModuleItemsKeyOptions, modulesKeys, modulesListPrefix, type ModulesListKeyOptions, type ModulesView, } from './cache';
16
- export { filterLabel, FilterChips, type FilterChipsProps, ModuleCard, type ModuleCardProps, ModuleItemRow, type ModuleItemRowProps, moduleItemStatusLabel, ModuleItemStatusPill, type ModuleItemStatusPillProps, MODULES_FILTER_IDS, type ModulesFilterId, ModulesList, type ModulesListProps, type ModulesRequestCounts, moduleStatusLabel, ModuleStatusPill, type ModuleStatusPillProps, } from './components';
17
- export { DEFAULT_LOCALE, defaultTranslate, type ModulesI18n, ModulesI18nProvider, type ModulesI18nProviderProps, type TranslateFunction, useModulesI18n, } from './i18n';
18
- export { buildFixture, type BuildFixtureOptions, courseEmpty, courseFatModule, courseLarge, courseSmall, FIXTURE_COURSE_ID, type FixtureView, } from './fixtures';
17
+ export { filterLabel, FilterChips, type FilterChipsProps, ModuleCard, type ModuleCardProps, ModuleItemRow, type ModuleItemRowProps, moduleItemStatusLabel, ModuleItemStatusPill, type ModuleItemStatusPillProps, ModuleNumberBadge, type ModuleNumberBadgeProps, MODULES_FILTER_IDS, type ModulesFilterId, ModulesList, type ModulesListProps, type ModulesRequestCounts, moduleStatusLabel, ModuleStatusPill, type ModuleStatusPillProps, } from './components';
18
+ export { createTranslate, DEFAULT_LOCALE, defaultTranslate, type ModulesI18n, ModulesI18nProvider, type ModulesI18nProviderProps, type ModulesTranslationKey, type ModulesTranslations, type PluralForms, type TranslateFunction, useModulesI18n, } from './i18n';
19
+ export { buildFixture, type BuildFixtureOptions, courseEmpty, courseFatModule, courseItemLinks, courseLarge, courseSmall, FIXTURE_COURSE_ID, type FixtureView, } from './fixtures';
19
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,YAAY,EACV,qBAAqB,EACrB,yBAAyB,EACzB,MAAM,EACN,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,WAAW,EACX,YAAY,EACZ,QAAQ,GACT,MAAM,SAAS,CAAA;AAChB,OAAO,EACL,2BAA2B,EAC3B,+BAA+B,EAC/B,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,GACf,MAAM,SAAS,CAAA;AAOhB,OAAO,EACL,qCAAqC,EACrC,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,SAAS,CAAA;AAIhB,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC1F,OAAO,EACL,qBAAqB,EACrB,2BAA2B,EAC3B,iBAAiB,EACjB,KAAK,sBAAsB,EAC3B,KAAK,eAAe,EACpB,KAAK,eAAe,GACrB,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,KAAK,2BAA2B,EAChC,0BAA0B,EAC1B,wBAAwB,EACxB,KAAK,YAAY,EACjB,gBAAgB,EAChB,WAAW,EACX,0BAA0B,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,GAC3B,MAAM,0BAA0B,CAAA;AAIjC,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,sBAAsB,EACtB,iBAAiB,EACjB,8BAA8B,EAC9B,qBAAqB,EACrB,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,UAAU,EACV,KAAK,iBAAiB,EACtB,kBAAkB,EAClB,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,GACtB,MAAM,SAAS,CAAA;AAIhB,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,KAAK,qBAAqB,EAC1B,WAAW,EACX,iBAAiB,EACjB,KAAK,qBAAqB,EAC1B,KAAK,WAAW,GACjB,MAAM,SAAS,CAAA;AAMhB,OAAO,EACL,WAAW,EACX,WAAW,EACX,KAAK,gBAAgB,EACrB,UAAU,EACV,KAAK,eAAe,EACpB,aAAa,EACb,KAAK,kBAAkB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,KAAK,yBAAyB,EAC9B,kBAAkB,EAClB,KAAK,eAAe,EACpB,WAAW,EACX,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,qBAAqB,GAC3B,MAAM,cAAc,CAAA;AAMrB,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,KAAK,WAAW,EAChB,mBAAmB,EACnB,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,EACtB,cAAc,GACf,MAAM,QAAQ,CAAA;AAOf,OAAO,EACL,YAAY,EACZ,KAAK,mBAAmB,EACxB,WAAW,EACX,eAAe,EACf,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,KAAK,WAAW,GACjB,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,YAAY,EACV,qBAAqB,EACrB,yBAAyB,EACzB,MAAM,EACN,UAAU,EACV,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,WAAW,EACX,YAAY,EACZ,QAAQ,GACT,MAAM,SAAS,CAAA;AAChB,OAAO,EACL,2BAA2B,EAC3B,+BAA+B,EAC/B,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,GACf,MAAM,SAAS,CAAA;AAOhB,OAAO,EACL,qCAAqC,EACrC,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,SAAS,CAAA;AAIhB,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC1F,OAAO,EACL,qBAAqB,EACrB,2BAA2B,EAC3B,iBAAiB,EACjB,KAAK,sBAAsB,EAC3B,KAAK,eAAe,EACpB,KAAK,eAAe,GACrB,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,KAAK,2BAA2B,EAChC,0BAA0B,EAC1B,wBAAwB,EACxB,KAAK,YAAY,EACjB,gBAAgB,EAChB,WAAW,EACX,0BAA0B,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,GAC3B,MAAM,0BAA0B,CAAA;AAMjC,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,qBAAqB,EACrB,KAAK,0BAA0B,EAC/B,mBAAmB,EACnB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,oBAAoB,EACpB,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,KAAK,YAAY,EACjB,cAAc,GACf,MAAM,UAAU,CAAA;AAIjB,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,sBAAsB,EACtB,iBAAiB,EACjB,8BAA8B,EAC9B,qBAAqB,EACrB,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,UAAU,EACV,KAAK,iBAAiB,EACtB,kBAAkB,EAClB,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,GACtB,MAAM,SAAS,CAAA;AAIhB,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,KAAK,qBAAqB,EAC1B,WAAW,EACX,iBAAiB,EACjB,KAAK,qBAAqB,EAC1B,KAAK,WAAW,GACjB,MAAM,SAAS,CAAA;AAMhB,OAAO,EACL,WAAW,EACX,WAAW,EACX,KAAK,gBAAgB,EACrB,UAAU,EACV,KAAK,eAAe,EACpB,aAAa,EACb,KAAK,kBAAkB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,KAAK,yBAAyB,EAC9B,iBAAiB,EACjB,KAAK,sBAAsB,EAC3B,kBAAkB,EAClB,KAAK,eAAe,EACpB,WAAW,EACX,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,qBAAqB,GAC3B,MAAM,cAAc,CAAA;AAOrB,OAAO,EACL,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,KAAK,WAAW,EAChB,mBAAmB,EACnB,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,cAAc,GACf,MAAM,QAAQ,CAAA;AAOf,OAAO,EACL,YAAY,EACZ,KAAK,mBAAmB,EACxB,WAAW,EACX,eAAe,EACf,eAAe,EACf,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,KAAK,WAAW,GACjB,MAAM,YAAY,CAAA"}