rei-kit 3.0.0 → 3.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.
- package/README.md +13 -5
- package/dist/app/TourShell.vue.d.ts +2 -0
- package/dist/app/index.d.ts +96 -6
- package/dist/app.js +2 -2
- package/dist/app.js.map +1 -1
- package/dist/components/BaseDatePicker.vue.d.ts +8 -0
- package/dist/components/BaseInput.vue.d.ts +12 -1
- package/dist/components/BaseSelect.vue.d.ts +8 -0
- package/dist/components/BaseTextarea.vue.d.ts +8 -0
- package/dist/components/ColorPicker.vue.d.ts +8 -0
- package/dist/components/NumberInput.vue.d.ts +8 -0
- package/dist/components/SectionHeading.vue.d.ts +6 -0
- package/dist/components/StatCard.vue.d.ts +5 -0
- package/dist/components/TagsInput.vue.d.ts +8 -0
- package/dist/components/TimePicker.vue.d.ts +8 -0
- package/dist/index.d.ts +913 -56
- package/dist/index.js +35 -14
- package/dist/index.js.map +1 -1
- package/dist/motion/index.d.ts +47 -3
- package/dist/pwa/index.d.ts +42 -2
- package/dist/styles.css +56 -56
- package/dist/{use-announce-B_JGTXHZ.js → use-announce-D8SKsiqn.js} +80 -15
- package/dist/use-announce-D8SKsiqn.js.map +1 -0
- package/dist/web/index.d.ts +308 -7
- package/package.json +2 -1
- package/dist/use-announce-B_JGTXHZ.js.map +0 -1
package/README.md
CHANGED
|
@@ -56,9 +56,17 @@ users. There is no hex value inside a component, and a test fails if one
|
|
|
56
56
|
appears. That is what lets a phone journal, a phone ledger and a wide
|
|
57
57
|
course site share one kit and look nothing alike.
|
|
58
58
|
|
|
59
|
+
One component can leave the system without forking it: set the token on that
|
|
60
|
+
element. `[--radius-card:0px]` squares one card, `[--spacing:0.35rem]`
|
|
61
|
+
tightens one, `[--surface-shadow:var(--shadow-raised)]` lifts one. A class
|
|
62
|
+
cannot do this — `class="rounded-[2px]"` against the kit's `rounded-card`
|
|
63
|
+
silently renders at 16px, because two utilities of equal specificity are
|
|
64
|
+
resolved by Tailwind's output order rather than by you. The showcase
|
|
65
|
+
demonstrates both, including the one that does not work.
|
|
66
|
+
|
|
59
67
|
### 2. The smallest of six, measured, with the trade stated
|
|
60
68
|
|
|
61
|
-
At ten components — a real screen — **31.
|
|
69
|
+
At ten components — a real screen — **31.7 KB against 104 to 195** for the
|
|
62
70
|
five kits measured beside it. The gap is not the total, it is the slope:
|
|
63
71
|
seven components past the first three cost this kit 5 KB and cost them 60 to
|
|
64
72
|
125, because the stylesheet here is flat and theirs is inside the JavaScript.
|
|
@@ -157,7 +165,7 @@ app, and the case *least* favourable to this kit:
|
|
|
157
165
|
|
|
158
166
|
| Kit | JS | CSS | Total |
|
|
159
167
|
| -------------------- | ---------: | ----------: | ----------: |
|
|
160
|
-
| **rei-kit 3.
|
|
168
|
+
| **rei-kit 3.2.0** | **3.6 KB** | **23.1 KB** | **26.8 KB** |
|
|
161
169
|
| element-plus 2.14.6 | 27.3 KB | 6.0 KB | 33.3 KB |
|
|
162
170
|
| naive-ui 2.45.3 | 51.2 KB | — | 51.2 KB |
|
|
163
171
|
| primevue 5.0.1 | 53.6 KB | — | 53.6 KB |
|
|
@@ -169,7 +177,7 @@ a data table, a tooltip and a card. A screen rather than a demo:
|
|
|
169
177
|
|
|
170
178
|
| Kit | JS | CSS | Total |
|
|
171
179
|
| -------------------- | ---------: | ----------: | -----------: |
|
|
172
|
-
| **rei-kit 3.
|
|
180
|
+
| **rei-kit 3.2.0** | **8.6 KB** | **23.1 KB** | **31.7 KB** |
|
|
173
181
|
| element-plus 2.14.6 | 90.1 KB | 14.0 KB | 104.1 KB |
|
|
174
182
|
| naive-ui 2.45.3 | 132.4 KB | — | 132.4 KB |
|
|
175
183
|
| primevue 5.0.1 | 135.8 KB | — | 135.8 KB |
|
|
@@ -177,7 +185,7 @@ a data table, a tooltip and a card. A screen rather than a demo:
|
|
|
177
185
|
| ant-design-vue 4.2.6 | 195.4 KB | — | 195.4 KB |
|
|
178
186
|
|
|
179
187
|
**The slope is the point, not the total.** Seven more components cost this kit
|
|
180
|
-
**
|
|
188
|
+
**4.9 KB**, because the stylesheet does not move and only the JavaScript grows.
|
|
181
189
|
The kits that put their styles in the JavaScript have no flat part at all, so
|
|
182
190
|
the same seven cost them **60 to 125 KB**. A quarter smaller at three
|
|
183
191
|
components; **3.3× smaller at ten**.
|
|
@@ -226,7 +234,7 @@ Each claim here is enforced by something that fails, not by a promise.
|
|
|
226
234
|
|
|
227
235
|
## Status
|
|
228
236
|
|
|
229
|
-
**v3.
|
|
237
|
+
**v3.2.0 — three consumers.**
|
|
230
238
|
|
|
231
239
|
| | |
|
|
232
240
|
| ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
@@ -23,6 +23,8 @@
|
|
|
23
23
|
type __VLS_Props = {
|
|
24
24
|
/** Which slide, zero-based. */
|
|
25
25
|
index: number;
|
|
26
|
+
/** How many slides there are, so the shell can say "3 of 5" and know when it
|
|
27
|
+
* is on the last one. */
|
|
26
28
|
total: number;
|
|
27
29
|
/** The dialog's accessible name. */
|
|
28
30
|
dialogLabel: string;
|
package/dist/app/index.d.ts
CHANGED
|
@@ -9,20 +9,110 @@
|
|
|
9
9
|
* `AuthShell` was thirty-seven lines with no difference at all between them,
|
|
10
10
|
* the tab transition thirty-four. What differs between two phone apps is the
|
|
11
11
|
* product; this is the part underneath it.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```vue
|
|
15
|
+
* <AuthForm
|
|
16
|
+
* v-model:remember="remember"
|
|
17
|
+
* mode="signUp"
|
|
18
|
+
* :labels="labels"
|
|
19
|
+
* :busy="busy"
|
|
20
|
+
* @submit="signUp"
|
|
21
|
+
* @google="signInWithGoogle"
|
|
22
|
+
* />
|
|
23
|
+
* ```
|
|
12
24
|
*/
|
|
13
25
|
export { default as AuthForm } from './AuthForm.vue';
|
|
14
26
|
export type { AuthFormLabels, AuthFormValues } from './auth-form';
|
|
15
|
-
/**
|
|
27
|
+
/**
|
|
28
|
+
* The frame every sign-in screen sits in.
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```vue
|
|
32
|
+
* <AuthShell>
|
|
33
|
+
* <template #brand>My app</template>
|
|
34
|
+
*
|
|
35
|
+
* <AuthForm mode="signIn" :labels="labels" @submit="signIn" />
|
|
36
|
+
* </AuthShell>
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
16
39
|
export { default as AuthShell } from './AuthShell.vue';
|
|
17
|
-
/**
|
|
40
|
+
/**
|
|
41
|
+
* The one action the app is built around, reachable from every screen.
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```vue
|
|
45
|
+
* <FabButton label="New entry" @click="create">+</FabButton>
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
18
48
|
export { default as FabButton } from './FabButton.vue';
|
|
19
|
-
/**
|
|
49
|
+
/**
|
|
50
|
+
* Choosing the interface language, from a settings row.
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```vue
|
|
54
|
+
* <LocaleSheet
|
|
55
|
+
* v-model="locale"
|
|
56
|
+
* label="Language"
|
|
57
|
+
* system-label="Same as device"
|
|
58
|
+
* :options="[
|
|
59
|
+
* { value: 'en', label: 'English' },
|
|
60
|
+
* { value: 'tr', label: 'Türkçe' },
|
|
61
|
+
* ]"
|
|
62
|
+
* close-label="Close"
|
|
63
|
+
* />
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
20
66
|
export { default as LocaleSheet } from './LocaleSheet.vue';
|
|
21
|
-
/**
|
|
67
|
+
/**
|
|
68
|
+
* A floating note that the connection has gone.
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* ```vue
|
|
72
|
+
* <OfflineBanner label="You are offline. Changes will sync when you are back." />
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
22
75
|
export { default as OfflineBanner } from './OfflineBanner.vue';
|
|
23
|
-
/**
|
|
76
|
+
/**
|
|
77
|
+
* The phone frame the whole app sits inside.
|
|
78
|
+
*
|
|
79
|
+
* @example
|
|
80
|
+
* ```vue
|
|
81
|
+
* <TabShell>
|
|
82
|
+
* <RouterView />
|
|
83
|
+
*
|
|
84
|
+
* <template #aside>
|
|
85
|
+
* <p>© 2026 My app</p>
|
|
86
|
+
* </template>
|
|
87
|
+
* </TabShell>
|
|
88
|
+
* ```
|
|
89
|
+
*/
|
|
24
90
|
export { default as TabShell } from './TabShell.vue';
|
|
25
|
-
/**
|
|
91
|
+
/**
|
|
92
|
+
* The frame an onboarding guide runs inside.
|
|
93
|
+
*
|
|
94
|
+
* @example
|
|
95
|
+
* ```vue
|
|
96
|
+
* <TourShell
|
|
97
|
+
* v-model="open"
|
|
98
|
+
* :index="step"
|
|
99
|
+
* :total="3"
|
|
100
|
+
* dialog-label="Welcome tour"
|
|
101
|
+
* skip-label="Skip"
|
|
102
|
+
* back-label="Back"
|
|
103
|
+
* next-label="Next"
|
|
104
|
+
* last-label="Start"
|
|
105
|
+
* :step-label="(n) => `Step ${n}`"
|
|
106
|
+
* @next="step++"
|
|
107
|
+
* @back="step--"
|
|
108
|
+
* @dismiss="open = false"
|
|
109
|
+
* >
|
|
110
|
+
* <template #default="{ index }">
|
|
111
|
+
* <h2>Step {{ index + 1 }}</h2>
|
|
112
|
+
* </template>
|
|
113
|
+
* </TourShell>
|
|
114
|
+
* ```
|
|
115
|
+
*/
|
|
26
116
|
export { default as TourShell } from './TourShell.vue';
|
|
27
117
|
export { createAuthGuard, createRouteAnnouncer, createTitleGuard } from './guards';
|
|
28
118
|
export type { AuthGuardOptions } from './guards';
|
package/dist/app.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { a as BaseCheckbox_default, o as BaseSheet_default, r as horizontalStep, s as inertOutside, t as focusTarget } from "./focus-target-BtcoJdmz.js";
|
|
2
|
-
import { _ as toRedirectPath, c as useToast, d as isThemePreference, g as safeRedirect, h as tapFeedback, i as BaseInput_default, l as useOnline, m as useTheme, r as GoogleButton_default, s as BaseAlert_default, t as announce } from "./use-announce-
|
|
2
|
+
import { _ as toRedirectPath, c as useToast, d as isThemePreference, g as safeRedirect, h as tapFeedback, i as BaseInput_default, l as useOnline, m as useTheme, r as GoogleButton_default, s as BaseAlert_default, t as announce } from "./use-announce-D8SKsiqn.js";
|
|
3
3
|
import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BOaGB7Aw.js";
|
|
4
4
|
import { t as BaseButton_default } from "./BaseButton-BD2HKB1L.js";
|
|
5
5
|
import { t as SettingsRow_default } from "./SettingsRow-C6Spi7Np.js";
|
|
@@ -511,7 +511,7 @@ var TourShell_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
|
|
|
511
511
|
})], 8, ["to"]);
|
|
512
512
|
};
|
|
513
513
|
}
|
|
514
|
-
}), [["__scopeId", "data-v-
|
|
514
|
+
}), [["__scopeId", "data-v-8daef303"]]);
|
|
515
515
|
//#endregion
|
|
516
516
|
//#region src/app/guards.ts
|
|
517
517
|
/**
|