@asd20/ui-next 2.10.3 → 2.10.5
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/CHANGELOG.md +9 -0
- package/README.md +109 -17
- package/package.json +1 -1
- package/src/components/organisms/Asd20SiteSearch/index.vue +13 -8
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [2.10.5](https://github.com/academydistrict20/asd20-ui-next/compare/ui-next-v2.10.4...ui-next-v2.10.5) (2026-05-15)
|
|
4
|
+
|
|
5
|
+
## [2.10.4](https://github.com/academydistrict20/asd20-ui-next/compare/ui-next-v2.10.3...ui-next-v2.10.4) (2026-05-14)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* fix semantic markup for search component ([d63ce71](https://github.com/academydistrict20/asd20-ui-next/commit/d63ce71b149db115813fda8ff14e905612c526ba))
|
|
11
|
+
|
|
3
12
|
## [2.10.3](https://github.com/academydistrict20/asd20-ui-next/compare/ui-next-v2.10.2...ui-next-v2.10.3) (2026-05-13)
|
|
4
13
|
|
|
5
14
|
|
package/README.md
CHANGED
|
@@ -1,53 +1,145 @@
|
|
|
1
1
|
# @asd20/ui-next
|
|
2
2
|
|
|
3
|
-
Vue 3
|
|
3
|
+
Shared Vue 3 UI package for Academy District 20 websites and web apps.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Current local version: `2.10.4`
|
|
6
|
+
|
|
7
|
+
This package is the active shared presentation layer for the ASD20 web platform.
|
|
8
|
+
It provides reusable components, public website templates, app-shell templates,
|
|
9
|
+
icons, design tokens, Sass helpers, assets, directives, and helper functions
|
|
10
|
+
used by the Nuxt website, standalone apps, and selected CommCenter preview
|
|
11
|
+
surfaces.
|
|
12
|
+
|
|
13
|
+
## Platform Role
|
|
14
|
+
|
|
15
|
+
This repo owns the packaged UI contract for:
|
|
16
|
+
|
|
17
|
+
- public website templates consumed by `asd20-website`
|
|
18
|
+
- app templates and components consumed by calendar, directory, school
|
|
19
|
+
directory, and file directory apps
|
|
20
|
+
- selected CommCenter preview components and icon/template imports
|
|
21
|
+
- global design tokens and Sass helpers shared across consumers
|
|
22
|
+
- icon metadata and SVG component exports
|
|
23
|
+
- helper functions for event/message/page/file/people mapping, search calls,
|
|
24
|
+
organization labels, link handling, cookies, email, and analytics feedback
|
|
25
|
+
|
|
26
|
+
The package is published to npm as `@asd20/ui-next`. It should be treated as a
|
|
27
|
+
multi-repo contract, not as an app-local component folder.
|
|
28
|
+
|
|
29
|
+
## Runtime Contract
|
|
30
|
+
|
|
31
|
+
- Node `>=20`
|
|
32
|
+
- npm `>=10`
|
|
33
|
+
- Vue peer dependency `^3.0.0`
|
|
34
|
+
- Package build system: Vue CLI / webpack
|
|
35
|
+
- Unit test runner: Vitest
|
|
36
|
+
- Component development: Storybook
|
|
6
37
|
|
|
7
38
|
## Public Entry Points
|
|
8
39
|
|
|
40
|
+
Supported import paths are defined in `package.json` and guarded by
|
|
41
|
+
`scripts/public-api-contract.js`:
|
|
42
|
+
|
|
9
43
|
- `@asd20/ui-next`
|
|
10
44
|
- `@asd20/ui-next/components`
|
|
11
45
|
- `@asd20/ui-next/templates`
|
|
46
|
+
- `@asd20/ui-next/templates/*`
|
|
12
47
|
- `@asd20/ui-next/icons`
|
|
13
48
|
- `@asd20/ui-next/helpers`
|
|
14
49
|
- `@asd20/ui-next/directives`
|
|
50
|
+
- `@asd20/ui-next/install`
|
|
15
51
|
- `@asd20/ui-next/styles.css`
|
|
16
52
|
- `@asd20/ui-next/design/*`
|
|
17
53
|
- `@asd20/ui-next/assets/*`
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
54
|
+
- `@asd20/ui-next/package.json`
|
|
55
|
+
|
|
56
|
+
Downstream repos should import through those paths. Private source imports are
|
|
57
|
+
not part of the supported contract unless they are explicitly covered by the
|
|
58
|
+
package `exports` map.
|
|
59
|
+
|
|
60
|
+
## Source Layout
|
|
61
|
+
|
|
62
|
+
| Path | Purpose |
|
|
63
|
+
| --- | --- |
|
|
64
|
+
| `components.js` | Public component exports. |
|
|
65
|
+
| `templates.js` | Public template exports. |
|
|
66
|
+
| `icons.js` | Generated icon component exports. |
|
|
67
|
+
| `helpers.js` | Public helper exports. |
|
|
68
|
+
| `directives.js` | Public directive exports. |
|
|
69
|
+
| `install.js` | Vue plugin install helpers. |
|
|
70
|
+
| `src/components/atoms/` | Base UI components. |
|
|
71
|
+
| `src/components/molecules/` | Combined controls and display units. |
|
|
72
|
+
| `src/components/organisms/` | Larger site/app sections. |
|
|
73
|
+
| `src/components/templates/` | Website and app templates. |
|
|
74
|
+
| `src/design/` | CSS tokens, Sass helpers, typography, template stack, images. |
|
|
75
|
+
| `src/assets/icons/` | Raw SVG icon assets. |
|
|
76
|
+
| `src/helpers/` | Shared helper implementation. |
|
|
77
|
+
| `src/directives/` | Directive implementation. |
|
|
78
|
+
| `scripts/` | Build, package, release, and verification scripts. |
|
|
79
|
+
| `docs/migration/` | Historical migration and release notes. |
|
|
80
|
+
|
|
81
|
+
## Local Development
|
|
82
|
+
|
|
83
|
+
```sh
|
|
22
84
|
npm install
|
|
23
85
|
npm run storybook
|
|
86
|
+
npm test
|
|
24
87
|
npm run build
|
|
25
88
|
```
|
|
26
89
|
|
|
27
|
-
|
|
90
|
+
Regenerate icon metadata after adding, removing, or renaming SVG icon assets:
|
|
28
91
|
|
|
29
|
-
|
|
92
|
+
```sh
|
|
93
|
+
npm run generate:icons
|
|
94
|
+
npm run verify:icon-metadata
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## Package Verification
|
|
98
|
+
|
|
99
|
+
Build the staged publish artifact:
|
|
30
100
|
|
|
31
|
-
```
|
|
101
|
+
```sh
|
|
32
102
|
npm run build:package
|
|
33
103
|
```
|
|
34
104
|
|
|
35
|
-
|
|
105
|
+
Verify the source and staged package contract:
|
|
36
106
|
|
|
37
|
-
```
|
|
107
|
+
```sh
|
|
38
108
|
npm run verify:publish
|
|
39
109
|
```
|
|
40
110
|
|
|
41
|
-
That
|
|
111
|
+
That command rebuilds `dist/package`, verifies public exports, verifies Vue 3
|
|
112
|
+
input/lifecycle/instance-id contracts, verifies the staged package, and runs
|
|
113
|
+
`npm pack --dry-run`.
|
|
42
114
|
|
|
43
|
-
|
|
115
|
+
Verify the packed consumer install path:
|
|
44
116
|
|
|
45
|
-
```
|
|
117
|
+
```sh
|
|
46
118
|
npm run verify:release
|
|
47
119
|
```
|
|
48
120
|
|
|
49
|
-
That
|
|
121
|
+
That command packs the staged package, installs it into a temporary Vue 3 smoke
|
|
122
|
+
app, imports the public components/templates/icons/helpers/directives/styles,
|
|
123
|
+
and confirms the consumer build succeeds.
|
|
124
|
+
|
|
125
|
+
## Release
|
|
126
|
+
|
|
127
|
+
```sh
|
|
128
|
+
npm run release
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
The release flow publishes from `dist/package`, tags as `ui-next-v${version}`,
|
|
132
|
+
and runs `npm run verify:release` before publishing.
|
|
133
|
+
|
|
134
|
+
## Change Guidance
|
|
135
|
+
|
|
136
|
+
Before changing this package, identify which public entry point is affected and
|
|
137
|
+
which downstream repos consume it. Template, style/token, icon, input model, and
|
|
138
|
+
helper changes are especially likely to require downstream website or app
|
|
139
|
+
verification.
|
|
50
140
|
|
|
51
|
-
|
|
141
|
+
For broader architecture context, see
|
|
142
|
+
`../asd20-website/docs/platform/shared-ui-contract.md`.
|
|
52
143
|
|
|
53
|
-
The
|
|
144
|
+
The migration record under `docs/migration/` is retained for audit history,
|
|
145
|
+
release decisions, and future cleanup planning.
|
package/package.json
CHANGED
|
@@ -32,8 +32,7 @@
|
|
|
32
32
|
!searchingAi
|
|
33
33
|
"
|
|
34
34
|
title="Ask a Question or Search by Keyword"
|
|
35
|
-
description="
|
|
36
|
-
<hr/>AI can make mistakes. Verify important information."
|
|
35
|
+
:description="idleSearchDescription"
|
|
37
36
|
/>
|
|
38
37
|
<div
|
|
39
38
|
v-if="showSearchInputBeforeResults"
|
|
@@ -268,8 +267,7 @@
|
|
|
268
267
|
!searchingAi
|
|
269
268
|
"
|
|
270
269
|
title="Ask a Question or Search by Keyword"
|
|
271
|
-
description="
|
|
272
|
-
<hr/>AI can make mistakes. Verify important information."
|
|
270
|
+
:description="idleSearchDescription"
|
|
273
271
|
/>
|
|
274
272
|
<asd20-notification
|
|
275
273
|
v-if="aiErrorMessage"
|
|
@@ -320,8 +318,7 @@
|
|
|
320
318
|
!searchingAi
|
|
321
319
|
"
|
|
322
320
|
title="Ask a Question or Search by Keyword"
|
|
323
|
-
description="
|
|
324
|
-
<hr/>AI can make mistakes. Verify important information."
|
|
321
|
+
:description="idleSearchDescription"
|
|
325
322
|
/>
|
|
326
323
|
<asd20-notification
|
|
327
324
|
v-if="
|
|
@@ -377,8 +374,7 @@
|
|
|
377
374
|
!searchingAi
|
|
378
375
|
"
|
|
379
376
|
title="Ask a Question or Search by Keyword"
|
|
380
|
-
description="
|
|
381
|
-
<hr/>AI can make mistakes. Verify important information."
|
|
377
|
+
:description="idleSearchDescription"
|
|
382
378
|
/>
|
|
383
379
|
<asd20-notification
|
|
384
380
|
v-if="keywords && currentFiles.length === 0 && !searchingFiles"
|
|
@@ -581,6 +577,11 @@ const SEARCH_NO_PAGE_RESULTS_FALLBACKS = NO_PAGE_RESULTS_FALLBACKS.map(
|
|
|
581
577
|
ownerOrganizationId: DISTRICT_ORG_ID,
|
|
582
578
|
})
|
|
583
579
|
)
|
|
580
|
+
const IDLE_SEARCH_DESCRIPTION = [
|
|
581
|
+
'Asking a <strong>question</strong> will generate an AI answer with related pages and files. ',
|
|
582
|
+
'Or just search for pages and files by entering <strong>keyword(s)</strong>.',
|
|
583
|
+
'<hr/>AI can make mistakes. Verify important information.',
|
|
584
|
+
].join('')
|
|
584
585
|
|
|
585
586
|
// const SUBDOMAIN_LABELS = {
|
|
586
587
|
// rampart: 'Rampart High School',
|
|
@@ -704,6 +705,10 @@ export default {
|
|
|
704
705
|
}),
|
|
705
706
|
|
|
706
707
|
computed: {
|
|
708
|
+
idleSearchDescription() {
|
|
709
|
+
return IDLE_SEARCH_DESCRIPTION
|
|
710
|
+
},
|
|
711
|
+
|
|
707
712
|
currentPages() {
|
|
708
713
|
if (Array.isArray(this.localSearchPages)) return this.localSearchPages
|
|
709
714
|
return Array.isArray(this.resolvedPages) ? this.resolvedPages : []
|