@vit-foundation/ui 0.19.0 → 0.20.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.
- package/README.md +6 -2
- package/dist/contract.d.ts +29 -0
- package/dist/contract.js +26 -0
- package/dist/utils/weekly-list.svelte.d.ts +11 -0
- package/dist/utils/weekly-list.svelte.js +11 -1
- package/package.json +6 -1
package/README.md
CHANGED
|
@@ -31,6 +31,7 @@ Everything exports flat from the root, and again grouped by role:
|
|
|
31
31
|
| [`/community`](./docs/components/community.md) | AuthPageShell, LoginForm, SignupForm, GoogleAuthForm, AccountPanel, NewsletterSignup, CommentSection, ReactionBar, ContactForm |
|
|
32
32
|
| [`/edit`](./docs/edit-mode.md) | Editable, setEditAdapter/getEditAdapter, descriptors and helpers, collectionEditing, LocalizedText |
|
|
33
33
|
| [`/config`](./docs/getting-started.md#wiring-an-app-uiprovider) | UiProvider, UiConfig, the locale set, the default Catalan messages |
|
|
34
|
+
| `/contract` | The component-free half: LOCALES, BASE_LOCALE, localize, REACTIONS and the edit-descriptor types — the one subpath a host may import from SERVER code |
|
|
34
35
|
| `/testing` | createRemoteFormMock — the remote-form stand-in for stories and tests |
|
|
35
36
|
|
|
36
37
|
Every component renders standalone (Catalan copy, identity hrefs); an app
|
|
@@ -83,5 +84,8 @@ diffable against history. The public structure is the semantic entry points
|
|
|
83
84
|
above, assembled in `src/lib/{primitives,chrome,content-components,community}.ts`
|
|
84
85
|
and `src/lib/forms/index.ts`.
|
|
85
86
|
|
|
86
|
-
Releases: bump with `npm version`,
|
|
87
|
-
workflow
|
|
87
|
+
Releases are MANUAL: bump with `npm version`, then `npm publish`. The
|
|
88
|
+
workflow this paragraph used to describe fired on every `v*` tag, had no
|
|
89
|
+
`NPM_TOKEN` and no lint, check or test step, so it failed every time and was
|
|
90
|
+
deleted; `prepublishOnly` (lint, check, unit tests) is the only publish gate
|
|
91
|
+
now. Push the tag by all means — nothing reads it.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The contract, without the components: the vocabularies and the one reading
|
|
3
|
+
* rule a host needs on the SERVER, where a `.svelte` import cannot go.
|
|
4
|
+
*
|
|
5
|
+
* Every other subpath mixes the two. `./edit` exports `localize` beside
|
|
6
|
+
* `Editable.svelte`; `./config` exports `LOCALES` and `BASE_LOCALE` beside
|
|
7
|
+
* `UiProvider.svelte`; `./content` exports `REACTIONS` beside the cards. A
|
|
8
|
+
* host whose server code wants those VALUES has to import the barrel that
|
|
9
|
+
* drags a component graph into a server bundle, so vit-brain imported the
|
|
10
|
+
* types only and restated the values: `WEBSITE_LOCALES`, `CANONICAL_LOCALE`,
|
|
11
|
+
* its own `REACTIONS`, and a `hasLocalizedText` re-derived from `localize`'s
|
|
12
|
+
* body — four facts this package owns, one of them (the canonical locale)
|
|
13
|
+
* with no binding at all.
|
|
14
|
+
*
|
|
15
|
+
* So this subpath is the seam that restatement was standing in for. It is
|
|
16
|
+
* component-free BY TEST (`contract.test.ts` walks its import graph), which
|
|
17
|
+
* is what makes it a promise rather than a description: adding a `.svelte`
|
|
18
|
+
* anywhere beneath it fails here rather than in a consumer's server build.
|
|
19
|
+
*
|
|
20
|
+
* It adds nothing. Every name below is already exported from a semantic
|
|
21
|
+
* subpath and stays there — this is a second door into the same rooms, not a
|
|
22
|
+
* new floor, and the barrel remains the surface a component host reads.
|
|
23
|
+
*/
|
|
24
|
+
export { LOCALES, BASE_LOCALE } from './config/types.js';
|
|
25
|
+
export type { Locale, NotParameterized, ParameterizedKey, ParameterlessKey, SiteLink, UiMessages } from './config/types.js';
|
|
26
|
+
export { localize } from './edit/types.js';
|
|
27
|
+
export type { CollectionRef, ContentRef, EditableEntity, EditDescriptor, EntityOp, LocalizedText, PropertyDescriptor, PropertyOption, PropertyType, PropertyValue } from './edit/types.js';
|
|
28
|
+
export { REACTIONS } from './content/types.js';
|
|
29
|
+
export type { Reaction, ReactionSummary, SortDirection } from './content/types.js';
|
package/dist/contract.js
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The contract, without the components: the vocabularies and the one reading
|
|
3
|
+
* rule a host needs on the SERVER, where a `.svelte` import cannot go.
|
|
4
|
+
*
|
|
5
|
+
* Every other subpath mixes the two. `./edit` exports `localize` beside
|
|
6
|
+
* `Editable.svelte`; `./config` exports `LOCALES` and `BASE_LOCALE` beside
|
|
7
|
+
* `UiProvider.svelte`; `./content` exports `REACTIONS` beside the cards. A
|
|
8
|
+
* host whose server code wants those VALUES has to import the barrel that
|
|
9
|
+
* drags a component graph into a server bundle, so vit-brain imported the
|
|
10
|
+
* types only and restated the values: `WEBSITE_LOCALES`, `CANONICAL_LOCALE`,
|
|
11
|
+
* its own `REACTIONS`, and a `hasLocalizedText` re-derived from `localize`'s
|
|
12
|
+
* body — four facts this package owns, one of them (the canonical locale)
|
|
13
|
+
* with no binding at all.
|
|
14
|
+
*
|
|
15
|
+
* So this subpath is the seam that restatement was standing in for. It is
|
|
16
|
+
* component-free BY TEST (`contract.test.ts` walks its import graph), which
|
|
17
|
+
* is what makes it a promise rather than a description: adding a `.svelte`
|
|
18
|
+
* anywhere beneath it fails here rather than in a consumer's server build.
|
|
19
|
+
*
|
|
20
|
+
* It adds nothing. Every name below is already exported from a semantic
|
|
21
|
+
* subpath and stays there — this is a second door into the same rooms, not a
|
|
22
|
+
* new floor, and the barrel remains the surface a component host reads.
|
|
23
|
+
*/
|
|
24
|
+
export { LOCALES, BASE_LOCALE } from './config/types.js';
|
|
25
|
+
export { localize } from './edit/types.js';
|
|
26
|
+
export { REACTIONS } from './content/types.js';
|
|
@@ -5,10 +5,21 @@ import type { SortDirection, WeeklyCardData } from '../content/types.js';
|
|
|
5
5
|
* absent. Both halves of the URL contract — this module omitting a default,
|
|
6
6
|
* the host's query schema supplying one — must name the same values, so a
|
|
7
7
|
* host derives its schema defaults from here rather than restating them.
|
|
8
|
+
*
|
|
9
|
+
* `pageSize` is here for the same reason one step further out. It is not a
|
|
10
|
+
* URL param: it is what a page of this list HOLDS, which the grid this
|
|
11
|
+
* package renders decides. Every host was spelling its own — fndvit-website
|
|
12
|
+
* as `WEEKLIES_PAGE_SIZE`, vit-brain's mirror as a bare `12` in markup — and
|
|
13
|
+
* the two must agree, because the mirror exists to page the same corpus the
|
|
14
|
+
* site pages. Two repositories that cannot import each other were each
|
|
15
|
+
* holding half of one number. `createWeeklyList` still READS the size from
|
|
16
|
+
* `config.server().pageSize`, so a host may still answer something else; this
|
|
17
|
+
* is the value it should answer unless it means to differ.
|
|
8
18
|
*/
|
|
9
19
|
export declare const WEEKLY_LIST_DEFAULTS: {
|
|
10
20
|
readonly sort: "desc";
|
|
11
21
|
readonly page: 1;
|
|
22
|
+
readonly pageSize: 12;
|
|
12
23
|
};
|
|
13
24
|
/** A type alias, not an interface: createUrlFilters needs an index signature. */
|
|
14
25
|
export type WeeklyListFilters = {
|
|
@@ -5,8 +5,18 @@ import { createUrlFilters } from './url-filters.svelte.js';
|
|
|
5
5
|
* absent. Both halves of the URL contract — this module omitting a default,
|
|
6
6
|
* the host's query schema supplying one — must name the same values, so a
|
|
7
7
|
* host derives its schema defaults from here rather than restating them.
|
|
8
|
+
*
|
|
9
|
+
* `pageSize` is here for the same reason one step further out. It is not a
|
|
10
|
+
* URL param: it is what a page of this list HOLDS, which the grid this
|
|
11
|
+
* package renders decides. Every host was spelling its own — fndvit-website
|
|
12
|
+
* as `WEEKLIES_PAGE_SIZE`, vit-brain's mirror as a bare `12` in markup — and
|
|
13
|
+
* the two must agree, because the mirror exists to page the same corpus the
|
|
14
|
+
* site pages. Two repositories that cannot import each other were each
|
|
15
|
+
* holding half of one number. `createWeeklyList` still READS the size from
|
|
16
|
+
* `config.server().pageSize`, so a host may still answer something else; this
|
|
17
|
+
* is the value it should answer unless it means to differ.
|
|
8
18
|
*/
|
|
9
|
-
export const WEEKLY_LIST_DEFAULTS = { sort: 'desc', page: 1 };
|
|
19
|
+
export const WEEKLY_LIST_DEFAULTS = { sort: 'desc', page: 1, pageSize: 12 };
|
|
10
20
|
/** The index's path, shared by the mirrored URL and the paging hrefs. */
|
|
11
21
|
const WEEKLIES_PATH = '/weeklies';
|
|
12
22
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vit-foundation/ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.20.0",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"dev": "vite dev",
|
|
6
6
|
"build": "vite build && npm run prepack",
|
|
@@ -69,6 +69,11 @@
|
|
|
69
69
|
"svelte": "./dist/edit/index.js",
|
|
70
70
|
"default": "./dist/edit/index.js"
|
|
71
71
|
},
|
|
72
|
+
"./contract": {
|
|
73
|
+
"types": "./dist/contract.d.ts",
|
|
74
|
+
"svelte": "./dist/contract.js",
|
|
75
|
+
"default": "./dist/contract.js"
|
|
76
|
+
},
|
|
72
77
|
"./config": {
|
|
73
78
|
"types": "./dist/config/index.d.ts",
|
|
74
79
|
"svelte": "./dist/config/index.js",
|