efficient-shell 10.24.0 → 11.1.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 +18 -2
- package/dist/Browser-PTDZDMCG.js +44 -0
- package/dist/{Calculator-LENRW34X.js → Calculator-KP57FK7Y.js} +21 -21
- package/dist/{CurrencyConverter-7UMHQS2V.js → CurrencyConverter-W66ZDA6I.js} +6 -6
- package/dist/{Documents-ODZ4AAOY.js → Documents-EASK3J36.js} +15 -15
- package/dist/{Files-BRGTTI2J.js → Files-YT4Z4J36.js} +22 -22
- package/dist/{Notepad-RMRDEGGU.js → Notepad-T6NV4BSM.js} +7 -7
- package/dist/{PomodoroTimer-4566W4F7.js → PomodoroTimer-6B2MNLWD.js} +21 -21
- package/dist/{Preview-7POJP7PB.js → Preview-KHCQHAWG.js} +26 -26
- package/dist/{Sidebar-TU4QCKYJ.js → Sidebar-BCTWRG7P.js} +34 -34
- package/dist/{Spreadsheet-7T4VT5IO.js → Spreadsheet-IQZECLJW.js} +14 -14
- package/dist/{Stock-H73C4R3N.js → Stock-GCCTYXAG.js} +3 -3
- package/dist/{Weather-WF56QCBI.js → Weather-DL4IZELD.js} +17 -17
- package/dist/{WorldClock-5QJNZYYS.js → WorldClock-ZVN5O77W.js} +4 -4
- package/dist/ai/index.js +91 -91
- package/dist/apps/index.js +1 -1
- package/dist/bin/media-host-check.js +1 -1
- package/dist/bin/ui-check.js +1 -1
- package/dist/brand.css +1 -1
- package/dist/chunk-3XZFWR6T.js +13 -0
- package/dist/{chunk-CIHR5ZKF.js → chunk-4DDL6NXB.js} +1 -1
- package/dist/{chunk-USWA6YNZ.js → chunk-5PDHKH2A.js} +3 -3
- package/dist/{chunk-Z6GQFTLJ.js → chunk-5WY5DQI7.js} +1 -1
- package/dist/{chunk-OTITQ3IH.js → chunk-6KGIHI6X.js} +7 -7
- package/dist/{chunk-RSOBUPLK.js → chunk-7DQ3PM5Z.js} +1 -1
- package/dist/chunk-AIJ3G6BD.js +1 -0
- package/dist/{chunk-DRUQH4ZE.js → chunk-AIJ6OR6X.js} +2 -2
- package/dist/{chunk-S5DYR75A.js → chunk-AM6HSHT5.js} +18 -18
- package/dist/{chunk-CQEVJG43.js → chunk-AWGJIDBR.js} +1 -1
- package/dist/{chunk-USVL5SLG.js → chunk-D5HGRACW.js} +1 -1
- package/dist/chunk-ETJRGQNG.js +1 -0
- package/dist/chunk-HNUKXGYP.js +5 -0
- package/dist/{chunk-GOXQJCXG.js → chunk-HUU4XMWE.js} +17 -17
- package/dist/{chunk-Z3SLQKE6.js → chunk-ILY4DU3D.js} +1 -1
- package/dist/{chunk-3FBDLIQW.js → chunk-IQZD6QQF.js} +35 -35
- package/dist/{chunk-IHNOWRTP.js → chunk-KIXTJNHQ.js} +2 -2
- package/dist/{chunk-DGWS4GTI.js → chunk-KXU4ORKE.js} +1 -1
- package/dist/chunk-KYBXJL6A.js +23 -0
- package/dist/chunk-LH7IKIGE.js +1 -0
- package/dist/{chunk-JPOYR5AO.js → chunk-NZISMTQE.js} +5 -5
- package/dist/{chunk-QWCEKHAP.js → chunk-OEPYQUXZ.js} +9 -9
- package/dist/{chunk-HUA3TGMM.js → chunk-P2C33RHT.js} +1 -1
- package/dist/{chunk-CX4XR4HO.js → chunk-PLC656AN.js} +1 -1
- package/dist/chunk-Q5Z3KHT2.js +1 -0
- package/dist/{chunk-RZQGPWSN.js → chunk-QOI4GQVH.js} +1 -1
- package/dist/{chunk-NZ7BFYCM.js → chunk-QYXZC37J.js} +1 -1
- package/dist/{chunk-PVDZG2U2.js → chunk-RBZKV3ED.js} +4 -4
- package/dist/{chunk-EH2BNSG3.js → chunk-SX3SG522.js} +9 -9
- package/dist/{chunk-GC3DA6D6.js → chunk-T6BGS26U.js} +1 -1
- package/dist/chunk-WBJ6KNUF.js +1 -0
- package/dist/data/EntityList.js +1 -1
- package/dist/format/index.d.ts +1 -1
- package/dist/format/index.js +1 -1
- package/dist/forms/DateRangePicker.js +1 -1
- package/dist/forms/Input.d.ts +50 -2
- package/dist/forms/Input.js +1 -1
- package/dist/forms/LinkPicker.js +1 -1
- package/dist/forms/MediaLibrary.js +1 -1
- package/dist/forms/SplitButton.js +1 -1
- package/dist/forms/linkHref.js +1 -1
- package/dist/icons/efficient-glyphs.js +1 -1
- package/dist/icons/efficient-looks.js +1 -1
- package/dist/icons/efficient-meanings.d.ts +2 -2
- package/dist/icons/efficient-meanings.js +1 -1
- package/dist/icons/efficient.js +1 -1
- package/dist/icons/looks/map.js +1 -1
- package/dist/icons/payment.js +1 -1
- package/dist/icons/sets.js +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +666 -667
- package/dist/markup/index.d.ts +55 -11
- package/dist/markup/index.js +1 -1
- package/dist/motion/values.d.ts +75 -0
- package/dist/motion/values.js +1 -0
- package/dist/motion.css +26 -0
- package/dist/page-tabs/index.js +4 -4
- package/dist/shell/ContextMenu.js +1 -1
- package/dist/shell/DropdownMenu.js +1 -1
- package/dist/shell/HelpCenter.js +1 -1
- package/dist/shell/ImageLightbox.js +1 -1
- package/dist/shell/Markdown.js +1 -1
- package/dist/shell/PopupMenu.js +1 -1
- package/dist/shell/SearchableSelect.d.ts +11 -1
- package/dist/shell/SearchableSelect.js +1 -1
- package/dist/shell/TopNav.js +1 -1
- package/dist/telemetry/index.js +1 -1
- package/dist/templates/AuthScreen.js +1 -1
- package/dist/templates/ChatTemplate.js +1 -1
- package/dist/templates/CheckoutTemplate.js +1 -1
- package/dist/templates/DataTablePage.js +1 -1
- package/dist/templates/FormLayoutPage.js +1 -1
- package/dist/tokens/type.d.ts +3 -31
- package/dist/tokens/type.js +1 -1
- package/dist/ui/index.d.ts +2 -1
- package/dist/ui/index.js +1 -1
- package/dist/version.js +1 -1
- package/package.json +3 -2
- package/dist/Browser-KUFFOGYK.js +0 -43
- package/dist/chunk-3C5NKOVF.js +0 -1
- package/dist/chunk-5DIGYJHD.js +0 -1
- package/dist/chunk-7RP7QTRF.js +0 -12
- package/dist/chunk-DHKRXHJN.js +0 -1
- package/dist/chunk-H475WZPF.js +0 -23
- package/dist/chunk-MAMWQCJ6.js +0 -2
- package/dist/chunk-PJPK2ADX.js +0 -1
- /package/dist/{chunk-RKLZDVAO.js → chunk-2F5SLLBJ.js} +0 -0
package/dist/markup/index.d.ts
CHANGED
|
@@ -72,6 +72,7 @@
|
|
|
72
72
|
* [words]{sub} subscript
|
|
73
73
|
* [words]{color=name} a theme colour, by NAME ({@link isColorName})
|
|
74
74
|
* [words]{color=#rrggbb} any colour, six hex digits ({@link isColorValue})
|
|
75
|
+
* [words]{style=id} one of the site's text styles ({@link isStyleId})
|
|
75
76
|
*
|
|
76
77
|
* THE SPANS AND THE NUMBERED LINE (plan step E1, approved by GG 2026-10-06)
|
|
77
78
|
* are the final text box's marks. One shape for all four, so one reading rule:
|
|
@@ -144,10 +145,10 @@
|
|
|
144
145
|
* {@link MARKUP_TOOLS} offers yet. A colour carries a name, so it is written
|
|
145
146
|
* by {@link applyColor}, not here. */
|
|
146
147
|
type MarkStyle = 'bold' | 'italic' | 'strike' | 'code' | 'highlight' | 'quiet' | 'link' | 'bullet' | 'number' | 'quote' | 'clear' | 'underline' | 'sup' | 'sub';
|
|
147
|
-
/** What a span means: `[words]{underline}`, `{sup}`, `{sub}
|
|
148
|
-
* `{color=name}`. Only the tree reads these;
|
|
149
|
-
* reading's, which never makes one. */
|
|
150
|
-
type SpanKind = 'underline' | 'sup' | 'sub' | 'color';
|
|
148
|
+
/** What a span means: `[words]{underline}`, `{sup}`, `{sub}`,
|
|
149
|
+
* `{color=name}` or `{style=id}`. Only the tree reads these;
|
|
150
|
+
* {@link InlineKind} is the flat reading's, which never makes one. */
|
|
151
|
+
type SpanKind = 'underline' | 'sup' | 'sub' | 'color' | 'style';
|
|
151
152
|
/** What a parsed run MEANS. `accent` is the storefront/campaign brand colour —
|
|
152
153
|
* the legacy `*phrase*` — and `highlight` is its standard-markdown successor;
|
|
153
154
|
* both resolve to the same paint, which is what makes converting stored copy
|
|
@@ -166,13 +167,39 @@ declare function isColorName(name: string): boolean;
|
|
|
166
167
|
* WIDENS E1 (GG 2026-10-06): the final design draws "Any color", and a
|
|
167
168
|
* feature is never cut to fit. A hex does not follow the theme; a name does. */
|
|
168
169
|
declare function isColorValue(value: string): boolean;
|
|
170
|
+
/** The colour slots, in the colour window's order. A slot names a colour of
|
|
171
|
+
* the theme of the SECTION the words sit in, so the words follow that
|
|
172
|
+
* section's theme (Lewis 2026-10-29, U1). `main` is what was called accent
|
|
173
|
+
* ("Main吧"); `muted` is the dim text colour (U2). */
|
|
174
|
+
declare const COLOR_SLOTS: readonly ["main", "text", "background", "muted"];
|
|
175
|
+
type ColorSlot = (typeof COLOR_SLOTS)[number];
|
|
176
|
+
/** What a saved colour value MEANS: a slot of the section's theme, or a fixed
|
|
177
|
+
* hex that follows no theme. */
|
|
178
|
+
type ColorRole = {
|
|
179
|
+
kind: 'slot';
|
|
180
|
+
slot: ColorSlot;
|
|
181
|
+
} | {
|
|
182
|
+
kind: 'hex';
|
|
183
|
+
hex: string;
|
|
184
|
+
};
|
|
185
|
+
/**
|
|
186
|
+
* The ONE reading of a saved colour value ({@link COLOR_SLOTS} or a 6-digit
|
|
187
|
+
* hex), for every renderer and every panel: each maps the role to its own
|
|
188
|
+
* paint, and none keeps its own list of names. Null for anything else — an
|
|
189
|
+
* old name (`accent`, `labels`), a 3-digit hex, a typo — which a renderer
|
|
190
|
+
* draws as plain words.
|
|
191
|
+
*/
|
|
192
|
+
declare function colorRole(value: string): ColorRole | null;
|
|
193
|
+
/** A site text style's id as a span saves it — `heading-1` … `body-7`, the
|
|
194
|
+
* ids the Styles list gives them: lowercase letters, then `-` and digits. */
|
|
195
|
+
declare function isStyleId(id: string): boolean;
|
|
169
196
|
/**
|
|
170
197
|
* The words a press WRITES when nothing is selected — `**bold text**`, left
|
|
171
198
|
* selected so the next keystroke replaces it. English unless the caller of
|
|
172
199
|
* {@link applyMark} hands in its own (0.95.0: a host in another language).
|
|
173
200
|
* They are words put in the box, not rules: nothing here changes what parses.
|
|
174
201
|
*/
|
|
175
|
-
type MarkPlaceholders = Record<'bold' | 'italic' | 'strike' | 'code' | 'highlight' | 'quiet' | 'link', string> & Partial<Record<'underline' | 'sup' | 'sub' | 'color', string>>;
|
|
202
|
+
type MarkPlaceholders = Record<'bold' | 'italic' | 'strike' | 'code' | 'highlight' | 'quiet' | 'link', string> & Partial<Record<'underline' | 'sup' | 'sub' | 'color' | 'style', string>>;
|
|
176
203
|
declare const MARK_PLACEHOLDERS: MarkPlaceholders;
|
|
177
204
|
interface WrapResult {
|
|
178
205
|
text: string;
|
|
@@ -432,12 +459,14 @@ interface MarkupText {
|
|
|
432
459
|
/** A delimited run. `open` and `close` are the delimiters that were actually
|
|
433
460
|
* saved — `#` for a legacy campaign bold, `**` for the standard one, `[` and
|
|
434
461
|
* `]{sup}` for a span — so the tree writes back the same bytes it was read
|
|
435
|
-
* from. `color` is the theme colour's name, on a `color` span only
|
|
462
|
+
* from. `color` is the theme colour's name, on a `color` span only; `style`
|
|
463
|
+
* the text style's id, on a `style` span only. */
|
|
436
464
|
interface MarkupRun {
|
|
437
465
|
kind: InlineRule['kind'] | SpanKind;
|
|
438
466
|
open: string;
|
|
439
467
|
close: string;
|
|
440
468
|
color?: string;
|
|
469
|
+
style?: string;
|
|
441
470
|
children: MarkupNode[];
|
|
442
471
|
}
|
|
443
472
|
/** `[words](href)`. Only made when {@link isSafeLinkHref} passes. */
|
|
@@ -495,7 +524,8 @@ declare function serializeMarkup(lines: readonly MarkupLine[]): string;
|
|
|
495
524
|
*
|
|
496
525
|
* `open` and `close` are the delimiters that were saved (`#` for a legacy
|
|
497
526
|
* campaign bold), or, for a run made in the editor, the toolbar's own fence.
|
|
498
|
-
* A link's `close` is `](href)`, a span's `]{sup}
|
|
527
|
+
* A link's `close` is `](href)`, a span's `]{sup}`, `]{color=name}` or
|
|
528
|
+
* `]{style=id}`.
|
|
499
529
|
*/
|
|
500
530
|
interface MarkSpan {
|
|
501
531
|
id: number;
|
|
@@ -504,16 +534,18 @@ interface MarkSpan {
|
|
|
504
534
|
close: string;
|
|
505
535
|
href?: string;
|
|
506
536
|
color?: string;
|
|
537
|
+
style?: string;
|
|
507
538
|
}
|
|
508
539
|
/**
|
|
509
540
|
* A NEW run, as the toolbar writes it: `**` for bold, `_` for italic, and so on
|
|
510
541
|
* ({@link applyMark}'s own fences), a link to `value`, or a colour span of
|
|
511
|
-
* `value` — a theme name or a 6-digit hex, saved lowercase ({@link isColorValue})
|
|
512
|
-
*
|
|
542
|
+
* `value` — a theme name or a 6-digit hex, saved lowercase ({@link isColorValue}) —
|
|
543
|
+
* or a text-style span of `value` ({@link isStyleId}). Null for a style that writes no run (a line
|
|
544
|
+
* prefix, clear) and for a link, colour or text style with no usable value. A paste filter
|
|
513
545
|
* or an editor making a run asks here, so no delimiter is spelled outside this
|
|
514
546
|
* module (E8).
|
|
515
547
|
*/
|
|
516
|
-
declare function spanFor(id: number, style: MarkStyle | 'color', value?: string): MarkSpan | null;
|
|
548
|
+
declare function spanFor(id: number, style: MarkStyle | 'color' | 'style', value?: string): MarkSpan | null;
|
|
517
549
|
/** One character of the words — never a delimiter — with the runs it sits in,
|
|
518
550
|
* outside first, and its offset in the saved string. */
|
|
519
551
|
interface MarkedChar {
|
|
@@ -643,6 +675,18 @@ declare function colorOver(text: string, start: number, end: number, name: strin
|
|
|
643
675
|
* selected, the word before the caret on its line — or null. What the colour
|
|
644
676
|
* window draws as chosen, and the colour under the A. */
|
|
645
677
|
declare function colorIn(text: string, start: number, end: number, rules?: readonly InlineRule[]): string | null;
|
|
678
|
+
/**
|
|
679
|
+
* Put the site text style `id` on the WORDS in `text[start:end]`
|
|
680
|
+
* (`[words]{style=id}`, Lewis 2026-10-29, B), as {@link colorOver} puts a
|
|
681
|
+
* colour: nested with the runs it meets, a style the words already wear
|
|
682
|
+
* replaced, `null` taking it off. An id {@link isStyleId} refuses, or nothing
|
|
683
|
+
* selected, changes nothing.
|
|
684
|
+
*/
|
|
685
|
+
declare function styleOver(text: string, start: number, end: number, id: string | null, rules?: readonly InlineRule[]): WrapResult;
|
|
686
|
+
/** The ONE text style every word in `text[start:end]` wears — read the way
|
|
687
|
+
* {@link colorIn} reads a colour — or null. What the style list draws as
|
|
688
|
+
* chosen. */
|
|
689
|
+
declare function styleIn(text: string, start: number, end: number, rules?: readonly InlineRule[]): string | null;
|
|
646
690
|
/**
|
|
647
691
|
* Make every line `text[start:end]` touches (the caret's line, with nothing
|
|
648
692
|
* selected) a bulleted list, a numbered list, or — `null` — no list. The
|
|
@@ -656,4 +700,4 @@ declare function setList(text: string, start: number, end: number, kind: 'bullet
|
|
|
656
700
|
* kind of list line, else null — what the list buttons draw as pressed. */
|
|
657
701
|
declare function listIn(text: string, start: number, end: number, rules?: readonly InlineRule[]): 'bullet' | 'number' | null;
|
|
658
702
|
|
|
659
|
-
export { CAMPAIGN_MARKUP, COPY_FIELD_TOOLS, type InlineKind, type InlineRule, type InlineToken, type LinkSpan, MARKUP_TOOLS, MARK_NAMES, MARK_PLACEHOLDERS, type MarkPlaceholders, type MarkSpan, type MarkStyle, type MarkedChar, type MarkedLine, type MarkupLine, type MarkupLink, type MarkupNode, type MarkupRun, type MarkupText, type MarkupTool, RETIRED_MARKS, STANDARD_MARKUP, STOREFRONT_MARKUP, type SpanKind, type WrapResult, applyColor, applyMark, clearMarks, clearStyle, colorIn, colorOver, findLink, isColorName, isColorValue, isSafeLinkHref, linkOver, listIn, markedAt, markedLines, marksIn, markupTools, parseMarkup, removeLink, sameMarks, serializeMarkup, setList, spanFor, stripInline, toggleMark, tokenizeInline, unlinkAt, writeLink, writeMarkedLines };
|
|
703
|
+
export { CAMPAIGN_MARKUP, COLOR_SLOTS, COPY_FIELD_TOOLS, type ColorRole, type ColorSlot, type InlineKind, type InlineRule, type InlineToken, type LinkSpan, MARKUP_TOOLS, MARK_NAMES, MARK_PLACEHOLDERS, type MarkPlaceholders, type MarkSpan, type MarkStyle, type MarkedChar, type MarkedLine, type MarkupLine, type MarkupLink, type MarkupNode, type MarkupRun, type MarkupText, type MarkupTool, RETIRED_MARKS, STANDARD_MARKUP, STOREFRONT_MARKUP, type SpanKind, type WrapResult, applyColor, applyMark, clearMarks, clearStyle, colorIn, colorOver, colorRole, findLink, isColorName, isColorValue, isSafeLinkHref, isStyleId, linkOver, listIn, markedAt, markedLines, marksIn, markupTools, parseMarkup, removeLink, sameMarks, serializeMarkup, setList, spanFor, stripInline, styleIn, styleOver, toggleMark, tokenizeInline, unlinkAt, writeLink, writeMarkedLines };
|
package/dist/markup/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{CAMPAIGN_MARKUP,COPY_FIELD_TOOLS,MARKUP_TOOLS,MARK_NAMES,MARK_PLACEHOLDERS,RETIRED_MARKS,STANDARD_MARKUP,STOREFRONT_MARKUP,applyColor,applyMark,clearMarks,clearStyle,colorIn,colorOver,findLink,isColorName,isColorValue,isSafeLinkHref,linkOver,listIn,markedAt,markedLines,marksIn,markupTools,parseMarkup,removeLink,sameMarks,serializeMarkup,setList,spanFor,stripInline,toggleMark,tokenizeInline,unlinkAt,writeLink,writeMarkedLines}from"../chunk-
|
|
1
|
+
export{CAMPAIGN_MARKUP,COLOR_SLOTS,COPY_FIELD_TOOLS,MARKUP_TOOLS,MARK_NAMES,MARK_PLACEHOLDERS,RETIRED_MARKS,STANDARD_MARKUP,STOREFRONT_MARKUP,applyColor,applyMark,clearMarks,clearStyle,colorIn,colorOver,colorRole,findLink,isColorName,isColorValue,isSafeLinkHref,isStyleId,linkOver,listIn,markedAt,markedLines,marksIn,markupTools,parseMarkup,removeLink,sameMarks,serializeMarkup,setList,spanFor,stripInline,styleIn,styleOver,toggleMark,tokenizeInline,unlinkAt,writeLink,writeMarkedLines}from"../chunk-Q5Z3KHT2.js";
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The page motion values — the numbers behind every animation a website page
|
|
3
|
+
* plays (a block arriving, a card on hover, a row that loops, a number counting
|
|
4
|
+
* up), not the editor's chrome (that is `MOTION_DURATIONS`, 120 / 160 ms).
|
|
5
|
+
* `src/motion.css` declares the same defaults as custom properties;
|
|
6
|
+
* `tests/motionValues.test.ts` holds the two to each other.
|
|
7
|
+
*
|
|
8
|
+
* Owner rulings, 2026-10-29 (the animation plan):
|
|
9
|
+
*
|
|
10
|
+
* groups the Animation tab, like Wix: Entrance · Hover · Scroll · Loop ·
|
|
11
|
+
* Click · Mouse · WebGL · Count up.
|
|
12
|
+
* timing every timed animation has a Duration and a Delay in SECONDS, a
|
|
13
|
+
* slider each, like Wix. No Short / Normal / Long steps (that
|
|
14
|
+
* scale, 2026-10-27, is retired). Defaults are today's times, so
|
|
15
|
+
* a page with no choice of its own does not change. Loop runs to
|
|
16
|
+
* 120 s, past Wix's 50 s: inovit.com's journal bar stores 80 s.
|
|
17
|
+
* rotate a wheel turns one spoke on hover: 360 / its spoke count, 72
|
|
18
|
+
* degrees when the count is unknown.
|
|
19
|
+
*
|
|
20
|
+
* Scroll, Mouse and WebGL follow the visitor (the scroll position, the
|
|
21
|
+
* pointer), so they have no Duration or Delay.
|
|
22
|
+
*
|
|
23
|
+
* A leaf that imports nothing: a published page reads it through the `format`
|
|
24
|
+
* entry. No utility is written out in this file: the brand stylesheet is
|
|
25
|
+
* compiled by scanning the repository, so a class named here would ship in it.
|
|
26
|
+
*/
|
|
27
|
+
/** The Animation tab's groups, in the order it lists them. */
|
|
28
|
+
declare const MOTION_GROUPS: readonly ["entrance", "hover", "scroll", "loop", "click", "mouse", "webgl", "countUp"];
|
|
29
|
+
type MotionGroup = (typeof MOTION_GROUPS)[number];
|
|
30
|
+
/** One slider: its resting value, its ends and its step, in seconds. */
|
|
31
|
+
interface MotionRange {
|
|
32
|
+
readonly default: number;
|
|
33
|
+
readonly min: number;
|
|
34
|
+
readonly max: number;
|
|
35
|
+
readonly step: number;
|
|
36
|
+
}
|
|
37
|
+
interface MotionTiming {
|
|
38
|
+
readonly duration: MotionRange;
|
|
39
|
+
readonly delay: MotionRange;
|
|
40
|
+
}
|
|
41
|
+
/** The groups that play for a time of their own. */
|
|
42
|
+
type TimedMotionGroup = 'entrance' | 'hover' | 'loop' | 'click' | 'countUp';
|
|
43
|
+
/** Duration and Delay of every timed group, in seconds. */
|
|
44
|
+
declare const MOTION_TIMING: Readonly<Record<TimedMotionGroup, MotionTiming>>;
|
|
45
|
+
/**
|
|
46
|
+
* A stored Duration or Delay, read into its range and onto its step (a half
|
|
47
|
+
* step rounds up). A number or a plain decimal string counts; anything else is
|
|
48
|
+
* the default.
|
|
49
|
+
*/
|
|
50
|
+
declare function motionSeconds(group: TimedMotionGroup, kind: keyof MotionTiming, stored: unknown): number;
|
|
51
|
+
/**
|
|
52
|
+
* The easing list. `arrive` slows to a stop (Entrance, Click); `loop` keeps an
|
|
53
|
+
* even speed; `media` is the card picture's curve on hover.
|
|
54
|
+
*/
|
|
55
|
+
declare const MOTION_EASING: {
|
|
56
|
+
readonly arrive: "cubic-bezier(0.22, 1, 0.36, 1)";
|
|
57
|
+
readonly loop: "linear";
|
|
58
|
+
readonly media: "cubic-bezier(0.2, 0.6, 0.2, 1)";
|
|
59
|
+
};
|
|
60
|
+
type MotionEasing = keyof typeof MOTION_EASING;
|
|
61
|
+
/** How far a hover moves: Zoom's scale, Lift's rise in px, Rotate's fallback. */
|
|
62
|
+
declare const HOVER_MOTION: {
|
|
63
|
+
readonly zoom: 1.04;
|
|
64
|
+
readonly liftPx: 3;
|
|
65
|
+
readonly rotateFallbackDeg: 72;
|
|
66
|
+
};
|
|
67
|
+
/** Rotate on hover turns a wheel by one spoke: 360 / spokes, or 72 degrees. */
|
|
68
|
+
declare function rotateDegrees(spokes: number | null | undefined): number;
|
|
69
|
+
/**
|
|
70
|
+
* The defaults as the custom properties `motion.css` declares. The test holds
|
|
71
|
+
* the stylesheet to this list both ways; a page reads the stylesheet, not this.
|
|
72
|
+
*/
|
|
73
|
+
declare function motionCustomProperties(): Record<string, string>;
|
|
74
|
+
|
|
75
|
+
export { HOVER_MOTION, MOTION_EASING, MOTION_GROUPS, MOTION_TIMING, type MotionEasing, type MotionGroup, type MotionRange, type MotionTiming, type TimedMotionGroup, motionCustomProperties, motionSeconds, rotateDegrees };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{HOVER_MOTION,MOTION_EASING,MOTION_GROUPS,MOTION_TIMING,motionCustomProperties,motionSeconds,rotateDegrees}from"../chunk-AIJ3G6BD.js";
|
package/dist/motion.css
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Page motion — the animations a website page plays (efficient-shell/motion.css).
|
|
3
|
+
*
|
|
4
|
+
* The defaults behind every Duration, Delay, easing and hover distance, the
|
|
5
|
+
* same numbers as `src/motion/values.ts` (tests/motionValues.test.ts holds the
|
|
6
|
+
* two together). A page's own choice is written inline over these.
|
|
7
|
+
* The editor chrome keeps its own `--motion-fast` / `--motion-base` (ui.css).
|
|
8
|
+
*/
|
|
9
|
+
:root {
|
|
10
|
+
--page-motion-entrance-duration: 0.6s;
|
|
11
|
+
--page-motion-entrance-delay: 0s;
|
|
12
|
+
--page-motion-hover-duration: 0.7s;
|
|
13
|
+
--page-motion-hover-delay: 0s;
|
|
14
|
+
--page-motion-loop-duration: 50s;
|
|
15
|
+
--page-motion-loop-delay: 0s;
|
|
16
|
+
--page-motion-click-duration: 0.3s;
|
|
17
|
+
--page-motion-click-delay: 0s;
|
|
18
|
+
--page-motion-count-up-duration: 1.4s;
|
|
19
|
+
--page-motion-count-up-delay: 0s;
|
|
20
|
+
--page-ease-arrive: cubic-bezier(0.22, 1, 0.36, 1);
|
|
21
|
+
--page-ease-loop: linear;
|
|
22
|
+
--page-ease-media: cubic-bezier(0.2, 0.6, 0.2, 1);
|
|
23
|
+
--page-hover-zoom: 1.04;
|
|
24
|
+
--page-hover-lift: 3px;
|
|
25
|
+
--page-hover-rotate: 72deg;
|
|
26
|
+
}
|
package/dist/page-tabs/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{TabStrip as e}from"../chunk-
|
|
3
|
-
return b(j.Provider,{value:ce,children:e})}var
|
|
2
|
+
import{TabStrip as e}from"../chunk-HUU4XMWE.js";import{useShellLanguage as t}from"../chunk-7TZV6G2F.js";import"../chunk-2E2SUEEE.js";import{confirm as n}from"../chunk-PLK2WHZG.js";import"../chunk-7INZ7O3A.js";import"../chunk-55AEZX6K.js";import"../chunk-3DVNXNTF.js";import"../chunk-ECJKIPWU.js";import"../chunk-VWGWZY7A.js";import"../chunk-7QSDPSXP.js";import"../chunk-CDAJKLGL.js";import"../chunk-6KGIHI6X.js";import"../chunk-URHGHXDN.js";import"../chunk-5QFPTDQF.js";import"../chunk-UQYNPYF4.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-NJN5IKWO.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import{useBrowserLayoutEffect as r}from"../chunk-D65T4H6J.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import"../chunk-TWVUQUUD.js";import{useShellStrings as i}from"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";import*as c from"react";import{createContext as s,memo as l,useRef as a,useEffect as o,useMemo as u,useId as y,useCallback as d,useReducer as p,useState as f,useContext as k}from"react";import{useLocation as m,useNavigate as h}from"react-router-dom";import{jsx as b,Fragment as v,jsxs as g}from"react/jsx-runtime";var j=s(null),K=s(null),N=12;var F=(e,t)=>e.filter(e=>e!==t);function T(e,t){return[...t.map(t=>e.find(e=>e.key===t)).filter(e=>Boolean(e)),...e.filter(e=>!t.includes(e.key))]}function I(e,t,n=12){const r=e.clock+1;let i;i=e.tabs.find(e=>e.key===t.key)?e.tabs.map(e=>e.key===t.key?{...e,path:t.path,title:"page"===e.titleFrom?e.title:t.title||e.title,lastActive:r}:e):[...e.tabs,{key:t.key,path:t.path,title:t.title,titleFrom:"route",pinned:!1,lastActive:r}];let c={...e,tabs:i,activeKey:t.key,mounted:(s=e.mounted,l=t.key,s.includes(l)?s:[...s,l]),clock:r};var s,l;return c.closing&&c.closing!==t.key?c=L(c,c.closing):c.closing===t.key&&(c={...c,closing:null}),function(e,t){let n=e;for(;n.tabs.length>t;){const e=n.tabs.filter(e=>!e.pinned&&e.key!==n.activeKey&&!n.dirty.includes(e.key)&&e.key!==n.closing).sort((e,t)=>e.lastActive-t.lastActive);if(0===e.length)break;n=L(n,e[0].key)}return n}(c,n)}function A(e){let t={...e,activeKey:null};return t.closing&&(t=L(t,t.closing)),t}function L(e,t){return{...e,tabs:e.tabs.filter(e=>e.key!==t),mounted:F(e.mounted,t),dirty:F(e.dirty,t),activeKey:e.activeKey===t?null:e.activeKey,closing:e.closing===t?null:e.closing}}function M(e,t){switch(t.type){case"visit":return I(e,t.entry,t.maxTabs);case"transient":return A(e);case"close":{let n=e;for(const e of t.keys)n=L(n,e);return t.closing?function(e,t){return{...e,closing:t}}(n,t.closing):n}case"title":return function(e,t,n){const r=e.tabs.find(e=>e.key===t);return!r||!n||r.title===n&&"page"===r.titleFrom?e:{...e,tabs:e.tabs.map(e=>e.key===t?{...e,title:n,titleFrom:"page"}:e)}}(e,t.key,t.title);case"dirty":return function(e,t,n){return n===e.dirty.includes(t)?e:{...e,dirty:n?[...e.dirty,t]:F(e.dirty,t)}}(e,t.key,t.dirty)}}var w=e=>`${e.pathname}${e.search}`;function C(e){const t=e.indexOf("#"),n=t>=0?e.slice(t):"",r=t>=0?e.slice(0,t):e,i=r.indexOf("?");return{pathname:i>=0?r.slice(0,i):r,search:i>=0?r.slice(i):"",hash:n}}function D({children:e,resolve:c,pinned:s=[],storageKey:l,maxTabs:k=12,enabled:v=!0,confirmDiscard:g}){const K=m(),N=h(),F=i().pageTabs,L=y(),D=a(c);D.current=c;const E=d(e=>{const t=D.current(e);return t?{key:t.key??e.pathname,path:w(e),title:t.title}:null},[]),{language:O}=t(),[J,U]=p(M,void 0,()=>{const e=function(e,t,n){if(!e)return[];let r;try{r=JSON.parse(e)}catch{return[]}const i=r;if(!i||1!==i.v||!Array.isArray(i.tabs))return[];const c=Boolean(n&&"string"==typeof i.lang&&i.lang!==n),s=[];for(const e of i.tabs){if(!e||"string"!=typeof e.path||!e.path.startsWith("/")||e.path.startsWith("//"))continue;const n=e.path.indexOf("#"),r=n>=0?e.path.slice(0,n):e.path,i=t(r);if(!i||s.some(e=>e.key===i.key))continue;const l=!c&&"page"===e.titleFrom&&"string"==typeof e.title&&e.title;s.push({key:i.key,path:r,title:l||i.title,titleFrom:l?"page":"route",pinned:!1,lastActive:0})}return s}(function(e){if(!e)return null;try{return localStorage.getItem(e)}catch{return null}}(l),e=>E(C(e)),O);let t=function(e,t){const n=t.map(e=>e.key);let r=e.tabs.map(e=>({...e,pinned:n.includes(e.key)}));for(const e of t)r.some(t=>t.key===e.key)||(r=[...r,{key:e.key,path:e.path,title:e.title,titleFrom:"route",pinned:!0,lastActive:0}]);return{...e,tabs:T(r,n)}}({tabs:[],activeKey:null,mounted:[],dirty:[],closing:null,clock:0,tabs:e},s.map(e=>E(C(e))).filter(e=>Boolean(e)));const n=v?E(K):null;return t=n?I(t,n,k):A(t),t}),x=a(J);x.current=J;const B=a(/* @__PURE__ */new Map),Q=v?E(K):null,S=Q?.key??null;r(()=>{if(!v)return;const e=E(K);e?(B.current.set(e.key,K),U({type:"visit",entry:e,maxTabs:k})):U({type:"transient"})},[K,v,k,E]),o(()=>{const e=new Set(J.tabs.map(e=>e.key));for(const t of B.current.keys())e.has(t)||B.current.delete(t)},[J.tabs]);const W=u(()=>function(e,t){const n={v:1,...t?{lang:t}:{},tabs:e.tabs.filter(t=>t.key!==e.closing).map(({key:e,path:t,title:n,titleFrom:r})=>({key:e,path:t,title:n,titleFrom:r}))};return JSON.stringify(n)}(J,O),[J,O]);o(()=>{if(l)try{localStorage.setItem(l,W)}catch{}},[W,l]);const G=J.dirty.length>0;o(()=>{if(!G)return;const e=e=>{e.preventDefault(),e.returnValue=""};return window.addEventListener("beforeunload",e),()=>window.removeEventListener("beforeunload",e)},[G]);const P=a(/* @__PURE__ */new Map),H=d((e,t)=>{let n=P.current.get(e);return void 0===n&&(n=P.current.size,P.current.set(e,n)),`${L}-page-${t}-${n}`},[L]),X=d(e=>g?g(e):n({title:F.discardTitle,message:1===e.length?F.discardOne:F.discardCount?.(e.length)??`${e.length} ${F.discardMany}`,confirmLabel:F.discardConfirm,cancelLabel:F.keepEditing,variant:"warning"}),[g,F]),$=d(()=>{const e=x.current;return e.tabs.find(e=>e.pinned)?.path??"/"},[]),R=d((e,t,n)=>{const r=x.current,i=r.activeKey;if(!i||!e.includes(i))return void U({type:"close",keys:e,closing:null});let c=t;if(!c){const t={...r,tabs:r.tabs.filter(t=>t.key===i||!e.includes(t.key))},s=n?r.tabs.find(t=>t.key===n&&!e.includes(t.key)):void 0;c=(s??function(e,t){const n=e.tabs.filter(n=>n.key!==e.closing||n.key===t),r=n.findIndex(e=>e.key===t);return r<0?null:n[r+1]??n[r-1]??null}(t,i))?.path??$()}U({type:"close",keys:e.filter(e=>e!==i),closing:i}),N(c)},[N,$]),Z=d(async(e,t={})=>{const n=x.current.tabs.find(t=>t.key===e);return!n||n.pinned?(t.to&&N(t.to),!1):!(!t.force&&x.current.dirty.includes(e)&&!await X([n]))&&(!!x.current.tabs.some(t=>t.key===e)&&(R([e],t.to),!0))},[X,R,N]),V=d(async(e,t)=>{let n=function(e,t,n){const r=e.tabs.filter(e=>!e.pinned);if("all"===t)return r.map(e=>e.key);if("others"===t)return r.filter(e=>e.key!==n).map(e=>e.key);const i=e.tabs.findIndex(e=>e.key===n);return i<0?[]:e.tabs.slice(i+1).filter(e=>!e.pinned).map(e=>e.key)}(x.current,e,t);const r=x.current.tabs.filter(e=>n.includes(e.key)&&x.current.dirty.includes(e.key));r.length&&!await X(r)&&(n=n.filter(e=>!r.some(t=>t.key===e)));const i=new Set(x.current.tabs.map(e=>e.key));n=n.filter(e=>i.has(e)),n.length&&R(n,void 0,"all"===e?null:t)},[X,R]),Y=d(e=>{const t=x.current.tabs.find(t=>t.key===e);t&&e!==x.current.activeKey&&N(t.path)},[N]),z=d((e,t)=>U({type:"title",key:e,title:t}),[]),q=d((e,t)=>U({type:"dirty",key:e,dirty:t}),[]),[_,ee]=f({}),te=d((e,t)=>{ee(n=>{if((n[e]??null)===t)return n;const r={...n};return t?r[e]=t:delete r[e],r})},[]),ne=d(e=>E(e)?.key??null,[E]),re=d(e=>B.current.get(e),[]),ie=u(()=>v?J.tabs.filter(e=>e.key!==J.closing):[],[v,J.tabs,J.closing]),ce=u(()=>({enabled:v,state:J,currentKey:S,resolve:c,keyFor:ne,locationFor:re,idFor:H,activate:Y,close:Z,closeMany:V,setTitle:z,setDirty:q,copies:_,setCopy:te,visibleTabs:ie}),[v,J,S,c,ne,re,H,Y,Z,V,z,q,_,te,ie]);/* @__PURE__ */
|
|
3
|
+
return b(j.Provider,{value:ce,children:e})}var E=c.Activity,O=Boolean(E);function J({active:e,children:t}){return E?/* @__PURE__ */b(E,{mode:e?"visible":"hidden",children:t}):/* @__PURE__ */b(v,{children:t})}var U=l(function({tabKey:e,active:t,location:n,render:i,className:c,panelId:s,tabId:l}){const y=a(null),d=a(t),p=a(/* @__PURE__ */new Map);r(()=>{const e=d.current;if(d.current=t,t&&!e)for(const[e,[t,n]]of p.current)e.isConnected?(e.scrollTop=t,e.scrollLeft=n):p.current.delete(e)},[t]),o(()=>{const e=y.current;if(!e)return;const t=e=>{if(!d.current)return;const t=e.target;t&&"number"==typeof t.scrollTop&&p.current.set(t,[t.scrollTop,t.scrollLeft])};return e.addEventListener("scroll",t,!0),()=>e.removeEventListener("scroll",t,!0)},[]);const f=u(()=>({key:e,activeRef:d}),[e]);/* @__PURE__ */
|
|
4
4
|
return b("div",{ref:y,role:s?"tabpanel":void 0,id:s,"aria-labelledby":l,hidden:!t,style:t?void 0:{display:"none"},className:c,"data-page-tab":e,children:/* @__PURE__ */b(K.Provider,{value:f,children:/* @__PURE__ */b(J,{active:t,children:i(n)})})})},(e,t)=>e.active===t.active&&e.location===t.location&&e.className===t.className&&e.panelId===t.panelId&&e.tabId===t.tabId&&(!t.active||e.render===t.render)),x="\0transient";function B({children:e,frameClassName:t}){const n=k(j),r=m();if(!n||!n.enabled)/* @__PURE__ */
|
|
5
|
-
return b("div",{className:t,children:e(r)},x);const{state:i,currentKey:c,locationFor:s,idFor:l}=n,a=i.tabs.filter(e=>i.mounted.includes(e.key)).map(e=>e.key);return c&&!a.includes(c)&&a.push(c),/* @__PURE__ */g(v,{children:[a.map(n=>{const i=n===c,a=i?r:s(n);return a?/* @__PURE__ */b(
|
|
6
|
-
return b(e,{tabs:l.map(e=>({key:e.key,title:e.title,pinned:e.pinned,dirty:a.dirty.includes(e.key),copy:c.copies[e.key],icon:p(
|
|
5
|
+
return b("div",{className:t,children:e(r)},x);const{state:i,currentKey:c,locationFor:s,idFor:l}=n,a=i.tabs.filter(e=>i.mounted.includes(e.key)).map(e=>e.key);return c&&!a.includes(c)&&a.push(c),/* @__PURE__ */g(v,{children:[a.map(n=>{const i=n===c,a=i?r:s(n);return a?/* @__PURE__ */b(U,{tabKey:n,active:i,location:a,render:e,className:t,panelId:l(n,"panel"),tabId:l(n,"tab")},n):null}),!c&&/* @__PURE__ */b(U,{tabKey:x,active:!0,location:r,render:e,className:t},x)]})}function Q({className:t,activeClassName:n,end:r}){const c=k(j),s=i().pageTabs;if(!c||!c.enabled)return null;const{visibleTabs:l,state:a,idFor:o,activate:u,close:y,closeMany:d,resolve:p}=c;/* @__PURE__ */
|
|
6
|
+
return b(e,{tabs:l.map(e=>({key:e.key,title:e.title,pinned:e.pinned,dirty:a.dirty.includes(e.key),copy:c.copies[e.key],icon:p(C(e.path))?.icon})),activeKey:c.currentKey??null,idFor:o,panelMounted:e=>a.mounted.includes(e),onActivate:u,onClose:e=>{y(e)},onCloseMany:(e,t)=>{d(e,t)},label:s.label,className:t,activeClassName:n,end:r})}var S={enabled:!1,tabs:[],activeKey:null,activate:()=>{},close:async()=>!1,closeOthers:async()=>{},closeRight:async()=>{},closeAll:async()=>{}};function W(){const e=k(j);return e&&e.enabled?{enabled:!0,tabs:e.visibleTabs,activeKey:e.currentKey,activate:e.activate,close:e.close,closeOthers:t=>e.closeMany("others",t),closeRight:t=>e.closeMany("right",t),closeAll:()=>e.closeMany("all",null)}:S}function G(){const e=k(j),t=k(K),n=h();return{key:e?.enabled&&t?t.key:null,close:d(async(r={})=>e?.enabled&&t&&e.state.tabs.some(e=>e.key===t.key)?e.close(t.key,r):(r.to&&n(r.to),!1),[e,t,n])}}function P(e){const t=k(j),n=k(K),r=t?.enabled?t.setTitle:void 0,i=n?.key;o(()=>{r&&i&&e&&r(i,e)},[r,i,e])}function H(e){const t=k(j),n=k(K),r=t?.enabled?t.setCopy:void 0,i=n?.key;o(()=>{if(r&&i)return r(i,e||null),()=>r(i,null)},[r,i,e])}function X(e){const t=k(j),n=k(K),r=t?.enabled?t.setDirty:void 0;o(()=>{if(r&&n)return r(n.key,e),()=>{n.activeRef.current&&r(n.key,!1)}},[r,n,e])}export{N as DEFAULT_MAX_TABS,O as PAGE_TABS_PAUSE_HIDDEN,Q as PageTabBar,B as PageTabsOutlet,D as PageTabsProvider,C as parseTabPath,G as usePageTab,H as usePageTabCopy,X as usePageTabDirty,P as usePageTabTitle,W as usePageTabs};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export{ContextMenu,useContextMenu}from"../chunk-
|
|
2
|
+
export{ContextMenu,useContextMenu}from"../chunk-AIJ6OR6X.js";import"../chunk-4DDL6NXB.js";import"../chunk-6KGIHI6X.js";import"../chunk-URHGHXDN.js";import"../chunk-5QFPTDQF.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import"../chunk-TWVUQUUD.js";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export{DropdownMenu as default}from"../chunk-
|
|
2
|
+
export{DropdownMenu as default}from"../chunk-NZISMTQE.js";import"../chunk-4DDL6NXB.js";import"../chunk-CDAJKLGL.js";import"../chunk-6KGIHI6X.js";import"../chunk-URHGHXDN.js";import"../chunk-5QFPTDQF.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import"../chunk-TWVUQUUD.js";
|
package/dist/shell/HelpCenter.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export{HelpCenter as default}from"../chunk-
|
|
2
|
+
export{HelpCenter as default}from"../chunk-OEPYQUXZ.js";import"../chunk-QOI4GQVH.js";import"../chunk-UJUTS6LJ.js";import"../chunk-Q5Z3KHT2.js";import"../chunk-AYZY3YNC.js";import"../chunk-EOVXFXVV.js";import"../chunk-UQYNPYF4.js";import"../chunk-TE6R53YD.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-R2VKEMZH.js";import"../chunk-MRJKZWWV.js";import"../chunk-NJN5IKWO.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import"../chunk-TWVUQUUD.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export{ImageLightbox as default,lightboxKind}from"../chunk-P7H2DXJB.js";import"../chunk-CGUMJZUB.js";import"../chunk-H5NIW2KS.js";import"../chunk-TDAI4J27.js";import"../chunk-VWGWZY7A.js";import"../chunk-7QSDPSXP.js";import"../chunk-
|
|
2
|
+
export{ImageLightbox as default,lightboxKind}from"../chunk-P7H2DXJB.js";import"../chunk-CGUMJZUB.js";import"../chunk-H5NIW2KS.js";import"../chunk-TDAI4J27.js";import"../chunk-VWGWZY7A.js";import"../chunk-7QSDPSXP.js";import"../chunk-FZM3ZPW3.js";import"../chunk-CDAJKLGL.js";import"../chunk-EOVXFXVV.js";import"../chunk-UQYNPYF4.js";import"../chunk-TE6R53YD.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-R2VKEMZH.js";import"../chunk-MRJKZWWV.js";import"../chunk-WGLHB6WE.js";import"../chunk-NJN5IKWO.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import"../chunk-TWVUQUUD.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";
|
package/dist/shell/Markdown.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export{Markdown as default,plainCell,tableToCsv}from"../chunk-
|
|
2
|
+
export{Markdown as default,plainCell,tableToCsv}from"../chunk-QOI4GQVH.js";import"../chunk-UJUTS6LJ.js";import"../chunk-Q5Z3KHT2.js";import"../chunk-EOVXFXVV.js";import"../chunk-UQYNPYF4.js";import"../chunk-TE6R53YD.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-R2VKEMZH.js";import"../chunk-MRJKZWWV.js";import"../chunk-NJN5IKWO.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import"../chunk-TWVUQUUD.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";
|
package/dist/shell/PopupMenu.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export{MenuCheckMark,MenuIcon,MenuSemanticsContext,PopupMenu,PopupMenuDivider,PopupMenuItem,PopupMenuLabel,PopupSubmenu,itemLook,menuTextRowStyle}from"../chunk-
|
|
2
|
+
export{MenuCheckMark,MenuIcon,MenuSemanticsContext,PopupMenu,PopupMenuDivider,PopupMenuItem,PopupMenuLabel,PopupSubmenu,itemLook,menuTextRowStyle}from"../chunk-6KGIHI6X.js";import"../chunk-URHGHXDN.js";import"../chunk-5QFPTDQF.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-D65T4H6J.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import"../chunk-TWVUQUUD.js";
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import { ReactNode } from 'react';
|
|
3
|
+
import { InputEndAction } from '../forms/Input.js';
|
|
4
|
+
import './DropdownMenu.js';
|
|
5
|
+
import '../forms/buttonStyles.js';
|
|
6
|
+
import '../forms/styles.js';
|
|
3
7
|
|
|
4
8
|
/** A run of options under a heading. Groups do not nest. */
|
|
5
9
|
interface OptionGroup<T> {
|
|
@@ -100,8 +104,14 @@ interface SearchableSelectBaseProps {
|
|
|
100
104
|
/** Optional content rendered inside the trigger's right edge — to the
|
|
101
105
|
* left of the clear button — when the dropdown is closed. Use for
|
|
102
106
|
* compact status pills that should read alongside the selected label.
|
|
103
|
-
* Hidden while the user is typing so the search text stays legible.
|
|
107
|
+
* Hidden while the user is typing so the search text stays legible.
|
|
108
|
+
* Not for an action: put a press or a menu in `endAction`. */
|
|
104
109
|
rightAdornment?: ReactNode;
|
|
110
|
+
/** An action inside the field's end, as `Input`'s `endAction` draws it — an
|
|
111
|
+
* "open this" beside the choice. It sits at the very end, the clear ×
|
|
112
|
+
* just before it, and it shows while the list is open too. A press never
|
|
113
|
+
* opens the list. */
|
|
114
|
+
endAction?: InputEndAction;
|
|
105
115
|
/**
|
|
106
116
|
* Draws an option in the OPEN LIST in place of its label — a font list that
|
|
107
117
|
* shows each face in itself, a colour beside its name. The option's `label`
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export{SearchableSelect as default,fitChoice}from"../chunk-
|
|
2
|
+
export{SearchableSelect as default,fitChoice}from"../chunk-3XZFWR6T.js";import"../chunk-EO5RLFRX.js";import"../chunk-LJN77RG6.js";import"../chunk-HNUKXGYP.js";import"../chunk-NZISMTQE.js";import"../chunk-4DDL6NXB.js";import"../chunk-AYZY3YNC.js";import"../chunk-LE5LWALR.js";import"../chunk-CDAJKLGL.js";import"../chunk-6KGIHI6X.js";import"../chunk-URHGHXDN.js";import"../chunk-5QFPTDQF.js";import"../chunk-EOVXFXVV.js";import"../chunk-UQYNPYF4.js";import"../chunk-TE6R53YD.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-R2VKEMZH.js";import"../chunk-MRJKZWWV.js";import"../chunk-NJN5IKWO.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import"../chunk-TWVUQUUD.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";
|
package/dist/shell/TopNav.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export{TopNav as default}from"../chunk-
|
|
2
|
+
export{TopNav as default}from"../chunk-T6BGS26U.js";import"../chunk-NZISMTQE.js";import"../chunk-4DDL6NXB.js";import"../chunk-CDAJKLGL.js";import"../chunk-6KGIHI6X.js";import"../chunk-URHGHXDN.js";import"../chunk-5QFPTDQF.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import"../chunk-TWVUQUUD.js";
|
package/dist/telemetry/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{startClientTelemetry}from"../chunk-
|
|
1
|
+
export{startClientTelemetry}from"../chunk-QYXZC37J.js";import"../chunk-KNUR2UEG.js";import"../chunk-ETJRGQNG.js";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export{AuthScreen as default}from"../chunk-
|
|
2
|
+
export{AuthScreen as default}from"../chunk-KXU4ORKE.js";import"../chunk-P3RXXWXN.js";import"../chunk-6KBDNYRW.js";import"../chunk-CGZBDI6C.js";import"../chunk-HNUKXGYP.js";import"../chunk-NZISMTQE.js";import"../chunk-4DDL6NXB.js";import"../chunk-AYZY3YNC.js";import"../chunk-LE5LWALR.js";import"../chunk-CDAJKLGL.js";import"../chunk-6KGIHI6X.js";import"../chunk-URHGHXDN.js";import"../chunk-5QFPTDQF.js";import"../chunk-EOVXFXVV.js";import"../chunk-UQYNPYF4.js";import"../chunk-TE6R53YD.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-R2VKEMZH.js";import"../chunk-MRJKZWWV.js";import"../chunk-NJN5IKWO.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import"../chunk-TWVUQUUD.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export{ChatTemplate as default}from"../chunk-
|
|
2
|
+
export{ChatTemplate as default}from"../chunk-AWGJIDBR.js";import"../chunk-AFG34RBV.js";import"../chunk-QWK6DRSN.js";import"../chunk-Z44JWU75.js";import"../chunk-AFYLVV74.js";import"../chunk-HNUKXGYP.js";import"../chunk-NZISMTQE.js";import"../chunk-4DDL6NXB.js";import"../chunk-AYZY3YNC.js";import"../chunk-LE5LWALR.js";import"../chunk-UGTRSRIW.js";import"../chunk-CDAJKLGL.js";import"../chunk-6KGIHI6X.js";import"../chunk-URHGHXDN.js";import"../chunk-5QFPTDQF.js";import"../chunk-EOVXFXVV.js";import"../chunk-UQYNPYF4.js";import"../chunk-TE6R53YD.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-R2VKEMZH.js";import"../chunk-MRJKZWWV.js";import"../chunk-NJN5IKWO.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import"../chunk-TWVUQUUD.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export{CheckoutTemplate as default}from"../chunk-
|
|
2
|
+
export{CheckoutTemplate as default}from"../chunk-PLC656AN.js";import"../chunk-P3RXXWXN.js";import"../chunk-XFH64VIG.js";import"../chunk-EO5RLFRX.js";import"../chunk-LJN77RG6.js";import"../chunk-6KBDNYRW.js";import"../chunk-2NMW66P5.js";import"../chunk-CGZBDI6C.js";import"../chunk-ZGOHRLXG.js";import"../chunk-HNUKXGYP.js";import"../chunk-NZISMTQE.js";import"../chunk-4DDL6NXB.js";import"../chunk-AYZY3YNC.js";import"../chunk-LE5LWALR.js";import"../chunk-UGTRSRIW.js";import"../chunk-CDAJKLGL.js";import"../chunk-6KGIHI6X.js";import"../chunk-URHGHXDN.js";import"../chunk-5QFPTDQF.js";import"../chunk-EOVXFXVV.js";import"../chunk-UQYNPYF4.js";import"../chunk-TE6R53YD.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-R2VKEMZH.js";import"../chunk-MRJKZWWV.js";import"../chunk-NJN5IKWO.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import"../chunk-TWVUQUUD.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export{DataTablePage as default}from"../chunk-
|
|
2
|
+
export{DataTablePage as default}from"../chunk-D5HGRACW.js";import"../chunk-P3RXXWXN.js";import"../chunk-XFH64VIG.js";import"../chunk-EO5RLFRX.js";import"../chunk-LJN77RG6.js";import"../chunk-2NMW66P5.js";import"../chunk-LXL2UCUR.js";import"../chunk-HNUKXGYP.js";import"../chunk-NZISMTQE.js";import"../chunk-4DDL6NXB.js";import"../chunk-AYZY3YNC.js";import"../chunk-LE5LWALR.js";import"../chunk-UGTRSRIW.js";import"../chunk-FZM3ZPW3.js";import"../chunk-CDAJKLGL.js";import"../chunk-6KGIHI6X.js";import"../chunk-URHGHXDN.js";import"../chunk-5QFPTDQF.js";import"../chunk-EOVXFXVV.js";import"../chunk-UQYNPYF4.js";import"../chunk-TE6R53YD.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-R2VKEMZH.js";import"../chunk-MRJKZWWV.js";import"../chunk-WGLHB6WE.js";import"../chunk-NJN5IKWO.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import"../chunk-TWVUQUUD.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export{FormLayoutPage as default}from"../chunk-
|
|
2
|
+
export{FormLayoutPage as default}from"../chunk-ILY4DU3D.js";import"../chunk-P3RXXWXN.js";import"../chunk-PB7G6CJ7.js";import"../chunk-NI5FXWK5.js";import"../chunk-XFH64VIG.js";import"../chunk-EO5RLFRX.js";import"../chunk-LJN77RG6.js";import"../chunk-6KBDNYRW.js";import"../chunk-2NMW66P5.js";import"../chunk-CGZBDI6C.js";import"../chunk-HNUKXGYP.js";import"../chunk-NZISMTQE.js";import"../chunk-4DDL6NXB.js";import"../chunk-AYZY3YNC.js";import"../chunk-LE5LWALR.js";import"../chunk-UGTRSRIW.js";import"../chunk-CDAJKLGL.js";import"../chunk-6KGIHI6X.js";import"../chunk-URHGHXDN.js";import"../chunk-5QFPTDQF.js";import"../chunk-EOVXFXVV.js";import"../chunk-UQYNPYF4.js";import"../chunk-TE6R53YD.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-R2VKEMZH.js";import"../chunk-MRJKZWWV.js";import"../chunk-NJN5IKWO.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import"../chunk-TWVUQUUD.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";
|
package/dist/tokens/type.d.ts
CHANGED
|
@@ -16,13 +16,8 @@
|
|
|
16
16
|
* border 1 hairline · 2 strong (a selected tab's rule, a dashed empty
|
|
17
17
|
* state) · 4 accent bar.
|
|
18
18
|
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* page motion the animations a website page plays, not the chrome: one
|
|
22
|
-
* Normal time each (a block arriving 600ms, a number counting
|
|
23
|
-
* up 1.4s, a row looping 50s, which is today's time, so a page
|
|
24
|
-
* with no choice of its own does not change), and ONE Duration
|
|
25
|
-
* scale for all three: Short x0.6, Normal x1, Long x1.6.
|
|
19
|
+
* The page motion values (a website page, not the chrome) are in
|
|
20
|
+
* `src/motion/values.ts`.
|
|
26
21
|
*
|
|
27
22
|
* A leaf that imports nothing. No utility is written out in this file: the
|
|
28
23
|
* brand stylesheet is compiled by scanning the repository, so a class named in
|
|
@@ -45,29 +40,6 @@ declare const MOTION_DURATIONS: {
|
|
|
45
40
|
readonly base: 160;
|
|
46
41
|
};
|
|
47
42
|
type MotionSpeed = keyof typeof MOTION_DURATIONS;
|
|
48
|
-
/** A page animation's Normal time, in ms (a website page, not the chrome). */
|
|
49
|
-
declare const PAGE_MOTION_DURATIONS: {
|
|
50
|
-
readonly entrance: 600;
|
|
51
|
-
readonly countUp: 1400;
|
|
52
|
-
readonly loop: 50000;
|
|
53
|
-
};
|
|
54
|
-
type PageMotion = keyof typeof PAGE_MOTION_DURATIONS;
|
|
55
|
-
/** The one Duration scale every page animation offers: a factor of its
|
|
56
|
-
* Normal time. A stored choice is the step's name; no choice is Normal. */
|
|
57
|
-
declare const PAGE_MOTION_STEPS: {
|
|
58
|
-
readonly short: 0.6;
|
|
59
|
-
readonly normal: 1;
|
|
60
|
-
readonly long: 1.6;
|
|
61
|
-
};
|
|
62
|
-
type PageMotionStep = keyof typeof PAGE_MOTION_STEPS;
|
|
63
|
-
/** The one easing list: arriving slows to a stop, a loop keeps an even speed. */
|
|
64
|
-
declare const PAGE_MOTION_EASING: {
|
|
65
|
-
readonly arrive: "cubic-bezier(0.22, 1, 0.36, 1)";
|
|
66
|
-
readonly loop: "linear";
|
|
67
|
-
};
|
|
68
|
-
type PageMotionEasing = keyof typeof PAGE_MOTION_EASING;
|
|
69
|
-
/** How long `motion` plays at `step`, in whole ms. */
|
|
70
|
-
declare function pageMotionMs(motion: PageMotion, step?: PageMotionStep): number;
|
|
71
43
|
/** Border widths in px; `--border-<role>` in `ui.css`. */
|
|
72
44
|
declare const BORDER_WIDTHS: {
|
|
73
45
|
readonly hairline: 1;
|
|
@@ -76,4 +48,4 @@ declare const BORDER_WIDTHS: {
|
|
|
76
48
|
};
|
|
77
49
|
type BorderRole = keyof typeof BORDER_WIDTHS;
|
|
78
50
|
|
|
79
|
-
export { BORDER_WIDTHS, type BorderRole, FONT_WEIGHTS, type FontWeightRole, MOTION_DURATIONS, type MotionSpeed,
|
|
51
|
+
export { BORDER_WIDTHS, type BorderRole, FONT_WEIGHTS, type FontWeightRole, MOTION_DURATIONS, type MotionSpeed, TYPE_SCALE, type TypeStep };
|
package/dist/tokens/type.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{BORDER_WIDTHS,FONT_WEIGHTS,MOTION_DURATIONS,
|
|
1
|
+
export{BORDER_WIDTHS,FONT_WEIGHTS,MOTION_DURATIONS,TYPE_SCALE}from"../chunk-LH7IKIGE.js";
|
package/dist/ui/index.d.ts
CHANGED
|
@@ -70,7 +70,8 @@ export { Paragraph, ParagraphProps, Text, TextProps, TextSize, TextTone, TextWei
|
|
|
70
70
|
export { Align, Gap, Grid, GridCols, GridProps, Inline, InlineProps, Justify, Stack, StackProps } from '../shell/Stack.js';
|
|
71
71
|
export { default as Divider, DividerProps, DividerSpacing } from '../shell/Divider.js';
|
|
72
72
|
export { CONTROL_HEIGHTS, ControlSize, ROW_HEIGHTS, SPACING_ROLES, SPACING_SCALE, SpacingRole, SpacingStep, isSpacingStep } from '../tokens/spacing.js';
|
|
73
|
-
export { BORDER_WIDTHS, BorderRole, FONT_WEIGHTS, FontWeightRole, MOTION_DURATIONS, MotionSpeed,
|
|
73
|
+
export { BORDER_WIDTHS, BorderRole, FONT_WEIGHTS, FontWeightRole, MOTION_DURATIONS, MotionSpeed, TYPE_SCALE, TypeStep } from '../tokens/type.js';
|
|
74
|
+
export { HOVER_MOTION, MOTION_EASING, MOTION_GROUPS, MOTION_TIMING, MotionEasing, MotionGroup, MotionRange, MotionTiming, TimedMotionGroup, motionSeconds, rotateDegrees } from '../motion/values.js';
|
|
74
75
|
export { ELEVATION_LEVELS, ElevationLevel, RADIUS_ROLES, RadiusRole } from '../tokens/elevation.js';
|
|
75
76
|
export { ACCENT_ROLES, COLOUR_ROLES, ColourRole, FLAT_STATUS_ROLES, IDENTITY_ROLES, NEUTRAL_ROLES, SCRIM_ROLES, STATUS_GROUPS, STATUS_ROLES } from '../tokens/colour.js';
|
|
76
77
|
export { default as Skeleton, SkeletonProps, SkeletonVariant } from '../shell/Skeleton.js';
|