@nibapp/ui 0.0.0-stage → 0.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/CHANGELOG.md +35 -0
- package/LICENSE +21 -0
- package/README.md +124 -2
- package/TRADEMARKS.md +22 -0
- package/dist/_bundled/money/index.d.ts +98 -0
- package/dist/_bundled/money/index.js +152 -0
- package/dist/_bundled/tokens/index.d.ts +2 -0
- package/dist/_bundled/tokens/index.js +2 -0
- package/dist/_bundled/tokens/palette.gen.d.ts +51 -0
- package/dist/_bundled/tokens/palette.gen.js +206 -0
- package/dist/_bundled/tokens/spec.d.ts +291 -0
- package/dist/_bundled/tokens/spec.js +221 -0
- package/dist/components/accordion.d.ts +27 -0
- package/dist/components/accordion.js +66 -0
- package/dist/components/alert-dialog.d.ts +59 -0
- package/dist/components/alert-dialog.js +82 -0
- package/dist/components/alert.d.ts +141 -0
- package/dist/components/alert.js +55 -0
- package/dist/components/appear.d.ts +21 -0
- package/dist/components/appear.js +42 -0
- package/dist/components/avatar.d.ts +196 -0
- package/dist/components/avatar.js +135 -0
- package/dist/components/badge.d.ts +183 -0
- package/dist/components/badge.js +68 -0
- package/dist/components/block-stack.d.ts +33 -0
- package/dist/components/block-stack.js +197 -0
- package/dist/components/button.d.ts +327 -0
- package/dist/components/button.js +101 -0
- package/dist/components/card.d.ts +131 -0
- package/dist/components/card.js +100 -0
- package/dist/components/checkbox.d.ts +34 -0
- package/dist/components/checkbox.js +37 -0
- package/dist/components/choice-row.d.ts +104 -0
- package/dist/components/choice-row.js +56 -0
- package/dist/components/clamped-text.d.ts +17 -0
- package/dist/components/clamped-text.js +47 -0
- package/dist/components/code-block.d.ts +48 -0
- package/dist/components/code-block.js +124 -0
- package/dist/components/code-input.d.ts +49 -0
- package/dist/components/code-input.js +59 -0
- package/dist/components/combobox.d.ts +194 -0
- package/dist/components/combobox.js +176 -0
- package/dist/components/command-palette.d.ts +57 -0
- package/dist/components/command-palette.js +83 -0
- package/dist/components/context-menu.d.ts +24 -0
- package/dist/components/context-menu.js +30 -0
- package/dist/components/copy-button.d.ts +9 -0
- package/dist/components/copy-button.js +20 -0
- package/dist/components/copy-command.d.ts +18 -0
- package/dist/components/copy-command.js +19 -0
- package/dist/components/data-table.d.ts +240 -0
- package/dist/components/data-table.js +63 -0
- package/dist/components/dialog.d.ts +80 -0
- package/dist/components/dialog.js +85 -0
- package/dist/components/diff-lines.d.ts +20 -0
- package/dist/components/diff-lines.js +10 -0
- package/dist/components/diff-view.d.ts +128 -0
- package/dist/components/diff-view.js +675 -0
- package/dist/components/disclosure.d.ts +33 -0
- package/dist/components/disclosure.js +51 -0
- package/dist/components/drawn-check.d.ts +8 -0
- package/dist/components/drawn-check.js +16 -0
- package/dist/components/edge-resizer.d.ts +26 -0
- package/dist/components/edge-resizer.js +53 -0
- package/dist/components/empty-state.d.ts +112 -0
- package/dist/components/empty-state.js +56 -0
- package/dist/components/expand-toggle.d.ts +19 -0
- package/dist/components/expand-toggle.js +10 -0
- package/dist/components/field.d.ts +48 -0
- package/dist/components/field.js +60 -0
- package/dist/components/filter-chip.d.ts +47 -0
- package/dist/components/filter-chip.js +33 -0
- package/dist/components/group.d.ts +10 -0
- package/dist/components/group.js +9 -0
- package/dist/components/icon-text.d.ts +11 -0
- package/dist/components/icon-text.js +10 -0
- package/dist/components/image-sources.d.ts +57 -0
- package/dist/components/image-sources.js +58 -0
- package/dist/components/image-thumbnail.d.ts +34 -0
- package/dist/components/image-thumbnail.js +58 -0
- package/dist/components/image-viewer.d.ts +60 -0
- package/dist/components/image-viewer.js +411 -0
- package/dist/components/inline-edit.d.ts +22 -0
- package/dist/components/inline-edit.js +51 -0
- package/dist/components/input.d.ts +155 -0
- package/dist/components/input.js +109 -0
- package/dist/components/item-label.d.ts +11 -0
- package/dist/components/item-label.js +5 -0
- package/dist/components/item-row.d.ts +23 -0
- package/dist/components/item-row.js +19 -0
- package/dist/components/kbd.d.ts +55 -0
- package/dist/components/kbd.js +86 -0
- package/dist/components/link-policy.d.ts +24 -0
- package/dist/components/link-policy.js +32 -0
- package/dist/components/linked-text.d.ts +15 -0
- package/dist/components/linked-text.js +48 -0
- package/dist/components/loading-region.d.ts +18 -0
- package/dist/components/loading-region.js +17 -0
- package/dist/components/markdown.d.ts +34 -0
- package/dist/components/markdown.js +307 -0
- package/dist/components/menu.d.ts +132 -0
- package/dist/components/menu.js +102 -0
- package/dist/components/message-bubble.d.ts +57 -0
- package/dist/components/message-bubble.js +28 -0
- package/dist/components/meta-line.d.ts +28 -0
- package/dist/components/meta-line.js +36 -0
- package/dist/components/money-input.d.ts +23 -0
- package/dist/components/money-input.js +34 -0
- package/dist/components/native-select.d.ts +120 -0
- package/dist/components/native-select.js +85 -0
- package/dist/components/page-trail.d.ts +30 -0
- package/dist/components/page-trail.js +43 -0
- package/dist/components/page.d.ts +80 -0
- package/dist/components/page.js +60 -0
- package/dist/components/path-text.d.ts +8 -0
- package/dist/components/path-text.js +11 -0
- package/dist/components/percent-input.d.ts +20 -0
- package/dist/components/percent-input.js +32 -0
- package/dist/components/popover.d.ts +52 -0
- package/dist/components/popover.js +36 -0
- package/dist/components/progress.d.ts +389 -0
- package/dist/components/progress.js +142 -0
- package/dist/components/radio.d.ts +65 -0
- package/dist/components/radio.js +54 -0
- package/dist/components/remote-image-gate.d.ts +34 -0
- package/dist/components/remote-image-gate.js +60 -0
- package/dist/components/resizable.d.ts +23 -0
- package/dist/components/resizable.js +30 -0
- package/dist/components/rolling-number.d.ts +13 -0
- package/dist/components/rolling-number.js +69 -0
- package/dist/components/scroll-area.d.ts +17 -0
- package/dist/components/scroll-area.js +25 -0
- package/dist/components/section-label.d.ts +10 -0
- package/dist/components/section-label.js +21 -0
- package/dist/components/section-nav.d.ts +22 -0
- package/dist/components/section-nav.js +80 -0
- package/dist/components/segmented-control.d.ts +125 -0
- package/dist/components/segmented-control.js +101 -0
- package/dist/components/select.d.ts +120 -0
- package/dist/components/select.js +89 -0
- package/dist/components/separator.d.ts +10 -0
- package/dist/components/separator.js +12 -0
- package/dist/components/sheet.d.ts +101 -0
- package/dist/components/sheet.js +129 -0
- package/dist/components/shortcut-recorder.d.ts +31 -0
- package/dist/components/shortcut-recorder.js +67 -0
- package/dist/components/skeleton.d.ts +31 -0
- package/dist/components/skeleton.js +33 -0
- package/dist/components/slider.d.ts +138 -0
- package/dist/components/slider.js +98 -0
- package/dist/components/spinner.d.ts +37 -0
- package/dist/components/spinner.js +16 -0
- package/dist/components/switch.d.ts +59 -0
- package/dist/components/switch.js +56 -0
- package/dist/components/tab-strip.d.ts +29 -0
- package/dist/components/tab-strip.js +42 -0
- package/dist/components/tabs.d.ts +13 -0
- package/dist/components/tabs.js +68 -0
- package/dist/components/text-link.d.ts +54 -0
- package/dist/components/text-link.js +38 -0
- package/dist/components/textarea.d.ts +75 -0
- package/dist/components/textarea.js +90 -0
- package/dist/components/toast.d.ts +74 -0
- package/dist/components/toast.js +128 -0
- package/dist/components/tooltip.d.ts +50 -0
- package/dist/components/tooltip.js +46 -0
- package/dist/components/truncated-text.d.ts +15 -0
- package/dist/components/truncated-text.js +19 -0
- package/dist/i18n/defaults.d.ts +7 -0
- package/dist/i18n/defaults.js +7 -0
- package/dist/i18n/format.d.ts +84 -0
- package/dist/i18n/format.js +169 -0
- package/dist/i18n/index.d.ts +6 -0
- package/dist/i18n/index.js +8 -0
- package/dist/i18n/locales/ru-formatters.d.ts +3 -0
- package/dist/i18n/locales/ru-formatters.js +22 -0
- package/dist/i18n/locales/ru.d.ts +5 -0
- package/dist/i18n/locales/ru.js +185 -0
- package/dist/i18n/plural.d.ts +20 -0
- package/dist/i18n/plural.js +26 -0
- package/dist/i18n/provider.d.ts +36 -0
- package/dist/i18n/provider.js +39 -0
- package/dist/i18n/rich.d.ts +14 -0
- package/dist/i18n/rich.js +44 -0
- package/dist/i18n/ru-plural.d.ts +3 -0
- package/dist/i18n/ru-plural.js +4 -0
- package/dist/i18n/strings/alert-dialog.d.ts +5 -0
- package/dist/i18n/strings/alert-dialog.js +5 -0
- package/dist/i18n/strings/block-stack.d.ts +17 -0
- package/dist/i18n/strings/block-stack.js +11 -0
- package/dist/i18n/strings/code-block.d.ts +18 -0
- package/dist/i18n/strings/code-block.js +13 -0
- package/dist/i18n/strings/combobox.d.ts +12 -0
- package/dist/i18n/strings/combobox.js +10 -0
- package/dist/i18n/strings/command-palette.d.ts +17 -0
- package/dist/i18n/strings/command-palette.js +11 -0
- package/dist/i18n/strings/diff-view.d.ts +92 -0
- package/dist/i18n/strings/diff-view.js +68 -0
- package/dist/i18n/strings/image-viewer.d.ts +43 -0
- package/dist/i18n/strings/image-viewer.js +32 -0
- package/dist/i18n/strings/index.d.ts +314 -0
- package/dist/i18n/strings/index.js +43 -0
- package/dist/i18n/strings/kbd.d.ts +42 -0
- package/dist/i18n/strings/kbd.js +39 -0
- package/dist/i18n/strings/markdown.d.ts +23 -0
- package/dist/i18n/strings/markdown.js +18 -0
- package/dist/i18n/strings/money.d.ts +7 -0
- package/dist/i18n/strings/money.js +5 -0
- package/dist/i18n/strings/primitives.d.ts +25 -0
- package/dist/i18n/strings/primitives.js +18 -0
- package/dist/i18n/strings/progress.d.ts +4 -0
- package/dist/i18n/strings/progress.js +4 -0
- package/dist/i18n/strings/shortcut-recorder.d.ts +15 -0
- package/dist/i18n/strings/shortcut-recorder.js +11 -0
- package/dist/i18n/strings/time.d.ts +41 -0
- package/dist/i18n/strings/time.js +20 -0
- package/dist/i18n/strings/toast.d.ts +6 -0
- package/dist/i18n/strings/toast.js +6 -0
- package/dist/i18n/time-zones.d.ts +20 -0
- package/dist/i18n/time-zones.js +64 -0
- package/dist/index.d.ts +84 -0
- package/dist/index.js +88 -0
- package/dist/lib/ansi.d.ts +55 -0
- package/dist/lib/ansi.js +438 -0
- package/dist/lib/clock.d.ts +32 -0
- package/dist/lib/clock.js +106 -0
- package/dist/lib/cn.d.ts +12 -0
- package/dist/lib/cn.js +28 -0
- package/dist/lib/control-props.d.ts +21 -0
- package/dist/lib/control-props.js +14 -0
- package/dist/lib/direction.d.ts +13 -0
- package/dist/lib/direction.js +25 -0
- package/dist/lib/image-size.d.ts +12 -0
- package/dist/lib/image-size.js +66 -0
- package/dist/lib/keycaps.d.ts +21 -0
- package/dist/lib/keycaps.js +62 -0
- package/dist/lib/keyed.d.ts +9 -0
- package/dist/lib/keyed.js +14 -0
- package/dist/lib/keys.d.ts +49 -0
- package/dist/lib/keys.js +159 -0
- package/dist/lib/kit-motion.d.ts +9 -0
- package/dist/lib/kit-motion.js +12 -0
- package/dist/lib/link-check-dialog.d.ts +11 -0
- package/dist/lib/link-check-dialog.js +18 -0
- package/dist/lib/motion-features.d.ts +1 -0
- package/dist/lib/motion-features.js +4 -0
- package/dist/lib/motion-provider.d.ts +5 -0
- package/dist/lib/motion-provider.js +8 -0
- package/dist/lib/motion.d.ts +39 -0
- package/dist/lib/motion.js +49 -0
- package/dist/lib/number-format.d.ts +114 -0
- package/dist/lib/number-format.js +313 -0
- package/dist/lib/patch.d.ts +72 -0
- package/dist/lib/patch.js +344 -0
- package/dist/lib/path.d.ts +34 -0
- package/dist/lib/path.js +85 -0
- package/dist/lib/search.d.ts +10 -0
- package/dist/lib/search.js +20 -0
- package/dist/lib/shiki-themes.d.ts +7 -0
- package/dist/lib/shiki-themes.js +115 -0
- package/dist/lib/shiki.d.ts +101 -0
- package/dist/lib/shiki.js +353 -0
- package/dist/lib/shortcut-context.d.ts +23 -0
- package/dist/lib/shortcut-context.js +29 -0
- package/dist/lib/text.d.ts +56 -0
- package/dist/lib/text.js +149 -0
- package/dist/lib/theme-scope.d.ts +18 -0
- package/dist/lib/theme-scope.js +24 -0
- package/dist/lib/theme.d.ts +40 -0
- package/dist/lib/theme.js +96 -0
- package/dist/lib/tree-keys.d.ts +72 -0
- package/dist/lib/tree-keys.js +126 -0
- package/dist/lib/url.d.ts +17 -0
- package/dist/lib/url.js +38 -0
- package/dist/lib/use-copy-to-clipboard.d.ts +13 -0
- package/dist/lib/use-copy-to-clipboard.js +40 -0
- package/dist/lib/use-delayed-loading.d.ts +11 -0
- package/dist/lib/use-delayed-loading.js +31 -0
- package/dist/lib/use-file-picker.d.ts +26 -0
- package/dist/lib/use-file-picker.js +43 -0
- package/dist/lib/use-hydrated.d.ts +6 -0
- package/dist/lib/use-hydrated.js +11 -0
- package/dist/lib/use-latest.d.ts +12 -0
- package/dist/lib/use-latest.js +22 -0
- package/dist/lib/use-resolved-theme.d.ts +12 -0
- package/dist/lib/use-resolved-theme.js +25 -0
- package/dist/styles/base.css +393 -0
- package/dist/styles/code.css +35 -0
- package/dist/styles/fonts.css +12 -0
- package/dist/styles/index.css +13 -0
- package/dist/styles/tokens.gen.css +494 -0
- package/package.json +208 -4
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { collatorFor } from "../lib/text.js";
|
|
2
|
+
/**
|
|
3
|
+
* Zones renamed in the IANA database (its `backward` links) that CLDR, and so V8's
|
|
4
|
+
* `Intl.supportedValuesOf`, still lists under the old name. People look for Kolkata and Kyiv; every
|
|
5
|
+
* engine accepts both names, so the picker shows and stores the current one.
|
|
6
|
+
*/
|
|
7
|
+
const RENAMED = {
|
|
8
|
+
"Africa/Asmera": "Africa/Asmara",
|
|
9
|
+
"America/Buenos_Aires": "America/Argentina/Buenos_Aires",
|
|
10
|
+
"America/Catamarca": "America/Argentina/Catamarca",
|
|
11
|
+
"America/Coral_Harbour": "America/Atikokan",
|
|
12
|
+
"America/Cordoba": "America/Argentina/Cordoba",
|
|
13
|
+
"America/Godthab": "America/Nuuk",
|
|
14
|
+
"America/Indianapolis": "America/Indiana/Indianapolis",
|
|
15
|
+
"America/Jujuy": "America/Argentina/Jujuy",
|
|
16
|
+
"America/Louisville": "America/Kentucky/Louisville",
|
|
17
|
+
"America/Mendoza": "America/Argentina/Mendoza",
|
|
18
|
+
"Asia/Calcutta": "Asia/Kolkata",
|
|
19
|
+
"Asia/Katmandu": "Asia/Kathmandu",
|
|
20
|
+
"Asia/Rangoon": "Asia/Yangon",
|
|
21
|
+
"Asia/Saigon": "Asia/Ho_Chi_Minh",
|
|
22
|
+
"Atlantic/Faeroe": "Atlantic/Faroe",
|
|
23
|
+
"Europe/Kiev": "Europe/Kyiv",
|
|
24
|
+
"Pacific/Enderbury": "Pacific/Kanton",
|
|
25
|
+
"Pacific/Ponape": "Pacific/Pohnpei",
|
|
26
|
+
"Pacific/Truk": "Pacific/Chuuk",
|
|
27
|
+
};
|
|
28
|
+
/** A zone under its current IANA name ("Asia/Calcutta" → "Asia/Kolkata"). */
|
|
29
|
+
export function currentZoneName(zone) {
|
|
30
|
+
return RENAMED[zone] ?? zone;
|
|
31
|
+
}
|
|
32
|
+
/** "Europe/Moscow" → "Moscow"; "America/Argentina/Buenos_Aires" → "Buenos Aires". */
|
|
33
|
+
export function zoneCity(zone) {
|
|
34
|
+
return (zone.split("/").at(-1) ?? zone).replaceAll("_", " ");
|
|
35
|
+
}
|
|
36
|
+
function zoneName(zone, locale, style, at) {
|
|
37
|
+
const parts = new Intl.DateTimeFormat(locale, { timeZone: zone, timeZoneName: style }).formatToParts(at);
|
|
38
|
+
return parts.find((part) => part.type === "timeZoneName")?.value ?? "";
|
|
39
|
+
}
|
|
40
|
+
/** One zone as the picker labels it in `locale`: "Moscow · Moscow Standard Time (GMT+3)". */
|
|
41
|
+
export function zoneLabel(zone, locale, now = new Date()) {
|
|
42
|
+
const value = currentZoneName(zone);
|
|
43
|
+
const city = zoneCity(value);
|
|
44
|
+
const name = zoneName(value, locale, "longGeneric", now);
|
|
45
|
+
const offset = zoneName(value, "en-US", "shortOffset", now);
|
|
46
|
+
return name === "" || name === city ? `${city} (${offset})` : `${city} · ${name} (${offset})`;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Every zone the runtime knows (plus `include`, e.g. the account's when it isn't listed), labelled in
|
|
50
|
+
* `locale` ({@link zoneLabel}). Sorted by region, then city.
|
|
51
|
+
*/
|
|
52
|
+
export function timeZoneOptions(locale, include, now = new Date()) {
|
|
53
|
+
const zones = new Set(Intl.supportedValuesOf("timeZone").map(currentZoneName));
|
|
54
|
+
if (include !== undefined)
|
|
55
|
+
zones.add(currentZoneName(include));
|
|
56
|
+
const order = collatorFor(locale);
|
|
57
|
+
return [...zones]
|
|
58
|
+
.map((value) => ({
|
|
59
|
+
value,
|
|
60
|
+
label: zoneLabel(value, locale, now),
|
|
61
|
+
group: value.includes("/") ? (value.split("/")[0] ?? "") : "",
|
|
62
|
+
}))
|
|
63
|
+
.toSorted((a, b) => order.compare(a.group, b.group) || order.compare(a.label, b.label));
|
|
64
|
+
}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
export * from "./components/accordion.js";
|
|
2
|
+
export * from "./components/alert.js";
|
|
3
|
+
export * from "./components/alert-dialog.js";
|
|
4
|
+
export * from "./components/appear.js";
|
|
5
|
+
export * from "./components/avatar.js";
|
|
6
|
+
export * from "./components/badge.js";
|
|
7
|
+
export * from "./components/block-stack.js";
|
|
8
|
+
export * from "./components/button.js";
|
|
9
|
+
export * from "./components/card.js";
|
|
10
|
+
export * from "./components/checkbox.js";
|
|
11
|
+
export * from "./components/choice-row.js";
|
|
12
|
+
export * from "./components/clamped-text.js";
|
|
13
|
+
export * from "./components/code-block.js";
|
|
14
|
+
export * from "./components/code-input.js";
|
|
15
|
+
export * from "./components/combobox.js";
|
|
16
|
+
export * from "./components/command-palette.js";
|
|
17
|
+
export * from "./components/context-menu.js";
|
|
18
|
+
export * from "./components/copy-button.js";
|
|
19
|
+
export * from "./components/copy-command.js";
|
|
20
|
+
export * from "./components/data-table.js";
|
|
21
|
+
export * from "./components/dialog.js";
|
|
22
|
+
export * from "./components/diff-lines.js";
|
|
23
|
+
export * from "./components/diff-view.js";
|
|
24
|
+
export * from "./components/disclosure.js";
|
|
25
|
+
export * from "./components/drawn-check.js";
|
|
26
|
+
export * from "./components/edge-resizer.js";
|
|
27
|
+
export * from "./components/empty-state.js";
|
|
28
|
+
export * from "./components/expand-toggle.js";
|
|
29
|
+
export * from "./components/field.js";
|
|
30
|
+
export * from "./components/filter-chip.js";
|
|
31
|
+
export * from "./components/group.js";
|
|
32
|
+
export * from "./components/icon-text.js";
|
|
33
|
+
export * from "./components/inline-edit.js";
|
|
34
|
+
export * from "./components/input.js";
|
|
35
|
+
export * from "./components/item-label.js";
|
|
36
|
+
export * from "./components/item-row.js";
|
|
37
|
+
export * from "./components/kbd.js";
|
|
38
|
+
export * from "./components/linked-text.js";
|
|
39
|
+
export * from "./components/loading-region.js";
|
|
40
|
+
export * from "./components/markdown.js";
|
|
41
|
+
export * from "./components/menu.js";
|
|
42
|
+
export * from "./components/message-bubble.js";
|
|
43
|
+
export * from "./components/money-input.js";
|
|
44
|
+
export * from "./components/native-select.js";
|
|
45
|
+
export * from "./components/page.js";
|
|
46
|
+
export * from "./components/path-text.js";
|
|
47
|
+
export * from "./components/popover.js";
|
|
48
|
+
export * from "./components/progress.js";
|
|
49
|
+
export * from "./components/radio.js";
|
|
50
|
+
export * from "./components/remote-image-gate.js";
|
|
51
|
+
export * from "./components/resizable.js";
|
|
52
|
+
export * from "./components/rolling-number.js";
|
|
53
|
+
export * from "./components/scroll-area.js";
|
|
54
|
+
export * from "./components/section-label.js";
|
|
55
|
+
export * from "./components/section-nav.js";
|
|
56
|
+
export * from "./components/segmented-control.js";
|
|
57
|
+
export * from "./components/select.js";
|
|
58
|
+
export * from "./components/separator.js";
|
|
59
|
+
export * from "./components/sheet.js";
|
|
60
|
+
export * from "./components/shortcut-recorder.js";
|
|
61
|
+
export * from "./components/skeleton.js";
|
|
62
|
+
export * from "./components/slider.js";
|
|
63
|
+
export * from "./components/spinner.js";
|
|
64
|
+
export * from "./components/switch.js";
|
|
65
|
+
export * from "./components/tab-strip.js";
|
|
66
|
+
export * from "./components/tabs.js";
|
|
67
|
+
export * from "./components/text-link.js";
|
|
68
|
+
export * from "./components/textarea.js";
|
|
69
|
+
export * from "./components/toast.js";
|
|
70
|
+
export * from "./components/tooltip.js";
|
|
71
|
+
export * from "./components/truncated-text.js";
|
|
72
|
+
export * from "./i18n/index.js";
|
|
73
|
+
export { type Clock, ClockProvider, createManualClock, type ManualClock, useClock, useCountdown, useNow, } from "./lib/clock.js";
|
|
74
|
+
export { cn, tv, type VariantProps } from "./lib/cn.js";
|
|
75
|
+
export * from "./lib/keycaps.js";
|
|
76
|
+
export * from "./lib/keys.js";
|
|
77
|
+
export * from "./lib/motion.js";
|
|
78
|
+
export { MotionProvider } from "./lib/motion-provider.js";
|
|
79
|
+
export * from "./lib/number-format.js";
|
|
80
|
+
export * from "./lib/shortcut-context.js";
|
|
81
|
+
export * from "./lib/theme.js";
|
|
82
|
+
export * from "./lib/theme-scope.js";
|
|
83
|
+
export { type DelayedLoadingOptions, useDelayedLoading } from "./lib/use-delayed-loading.js";
|
|
84
|
+
export { type FilePickerOptions, useFilePicker } from "./lib/use-file-picker.js";
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
// @nibapp/ui — public entry. Prefer deep imports (`@nibapp/ui/components/button`) in apps for
|
|
2
|
+
// faster dev-server startup; this barrel exists for convenience and docs.
|
|
3
|
+
// The brand (`./brand`) and the mascot (`./mascot`) aren't part of it: import them from their own
|
|
4
|
+
// entry points (docs/specs/nib-ui.md §2.2).
|
|
5
|
+
export * from "./components/accordion.js";
|
|
6
|
+
export * from "./components/alert.js";
|
|
7
|
+
export * from "./components/alert-dialog.js";
|
|
8
|
+
export * from "./components/appear.js";
|
|
9
|
+
export * from "./components/avatar.js";
|
|
10
|
+
export * from "./components/badge.js";
|
|
11
|
+
export * from "./components/block-stack.js";
|
|
12
|
+
export * from "./components/button.js";
|
|
13
|
+
export * from "./components/card.js";
|
|
14
|
+
export * from "./components/checkbox.js";
|
|
15
|
+
export * from "./components/choice-row.js";
|
|
16
|
+
export * from "./components/clamped-text.js";
|
|
17
|
+
export * from "./components/code-block.js";
|
|
18
|
+
export * from "./components/code-input.js";
|
|
19
|
+
export * from "./components/combobox.js";
|
|
20
|
+
export * from "./components/command-palette.js";
|
|
21
|
+
export * from "./components/context-menu.js";
|
|
22
|
+
export * from "./components/copy-button.js";
|
|
23
|
+
export * from "./components/copy-command.js";
|
|
24
|
+
export * from "./components/data-table.js";
|
|
25
|
+
export * from "./components/dialog.js";
|
|
26
|
+
export * from "./components/diff-lines.js";
|
|
27
|
+
export * from "./components/diff-view.js";
|
|
28
|
+
export * from "./components/disclosure.js";
|
|
29
|
+
export * from "./components/drawn-check.js";
|
|
30
|
+
export * from "./components/edge-resizer.js";
|
|
31
|
+
export * from "./components/empty-state.js";
|
|
32
|
+
export * from "./components/expand-toggle.js";
|
|
33
|
+
export * from "./components/field.js";
|
|
34
|
+
export * from "./components/filter-chip.js";
|
|
35
|
+
export * from "./components/group.js";
|
|
36
|
+
export * from "./components/icon-text.js";
|
|
37
|
+
export * from "./components/inline-edit.js";
|
|
38
|
+
export * from "./components/input.js";
|
|
39
|
+
export * from "./components/item-label.js";
|
|
40
|
+
export * from "./components/item-row.js";
|
|
41
|
+
export * from "./components/kbd.js";
|
|
42
|
+
export * from "./components/linked-text.js";
|
|
43
|
+
export * from "./components/loading-region.js";
|
|
44
|
+
export * from "./components/markdown.js";
|
|
45
|
+
export * from "./components/menu.js";
|
|
46
|
+
export * from "./components/message-bubble.js";
|
|
47
|
+
export * from "./components/money-input.js";
|
|
48
|
+
export * from "./components/native-select.js";
|
|
49
|
+
export * from "./components/page.js";
|
|
50
|
+
export * from "./components/path-text.js";
|
|
51
|
+
export * from "./components/popover.js";
|
|
52
|
+
export * from "./components/progress.js";
|
|
53
|
+
export * from "./components/radio.js";
|
|
54
|
+
export * from "./components/remote-image-gate.js";
|
|
55
|
+
export * from "./components/resizable.js";
|
|
56
|
+
export * from "./components/rolling-number.js";
|
|
57
|
+
export * from "./components/scroll-area.js";
|
|
58
|
+
export * from "./components/section-label.js";
|
|
59
|
+
export * from "./components/section-nav.js";
|
|
60
|
+
export * from "./components/segmented-control.js";
|
|
61
|
+
export * from "./components/select.js";
|
|
62
|
+
export * from "./components/separator.js";
|
|
63
|
+
export * from "./components/sheet.js";
|
|
64
|
+
export * from "./components/shortcut-recorder.js";
|
|
65
|
+
export * from "./components/skeleton.js";
|
|
66
|
+
export * from "./components/slider.js";
|
|
67
|
+
export * from "./components/spinner.js";
|
|
68
|
+
export * from "./components/switch.js";
|
|
69
|
+
export * from "./components/tab-strip.js";
|
|
70
|
+
export * from "./components/tabs.js";
|
|
71
|
+
export * from "./components/text-link.js";
|
|
72
|
+
export * from "./components/textarea.js";
|
|
73
|
+
export * from "./components/toast.js";
|
|
74
|
+
export * from "./components/tooltip.js";
|
|
75
|
+
export * from "./components/truncated-text.js";
|
|
76
|
+
export * from "./i18n/index.js";
|
|
77
|
+
export { ClockProvider, createManualClock, useClock, useCountdown, useNow, } from "./lib/clock.js";
|
|
78
|
+
export { cn, tv } from "./lib/cn.js";
|
|
79
|
+
export * from "./lib/keycaps.js";
|
|
80
|
+
export * from "./lib/keys.js";
|
|
81
|
+
export * from "./lib/motion.js";
|
|
82
|
+
export { MotionProvider } from "./lib/motion-provider.js";
|
|
83
|
+
export * from "./lib/number-format.js";
|
|
84
|
+
export * from "./lib/shortcut-context.js";
|
|
85
|
+
export * from "./lib/theme.js";
|
|
86
|
+
export * from "./lib/theme-scope.js";
|
|
87
|
+
export { useDelayedLoading } from "./lib/use-delayed-loading.js";
|
|
88
|
+
export { useFilePicker } from "./lib/use-file-picker.js";
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ANSI SGR → styled segments, for terminal-ish text rendered in the UI (status lines, tool output).
|
|
3
|
+
*
|
|
4
|
+
* Only SGR (`ESC [ … m`) is interpreted; every other escape sequence (cursor moves, OSC titles and
|
|
5
|
+
* hyperlinks, DCS/APC/PM/SOS strings, C1 controls) is removed, and so are raw control characters and
|
|
6
|
+
* bidi overrides. The output is plain text plus a style object — render it with React text nodes,
|
|
7
|
+
* never as HTML.
|
|
8
|
+
*/
|
|
9
|
+
/** 0–15: the 16 named colors (8 normal + 8 bright); 16–255: the xterm 256-color palette. */
|
|
10
|
+
interface AnsiPaletteColor {
|
|
11
|
+
readonly type: "palette";
|
|
12
|
+
readonly index: number;
|
|
13
|
+
}
|
|
14
|
+
interface AnsiRgbColor {
|
|
15
|
+
readonly type: "rgb";
|
|
16
|
+
readonly r: number;
|
|
17
|
+
readonly g: number;
|
|
18
|
+
readonly b: number;
|
|
19
|
+
}
|
|
20
|
+
type AnsiColor = AnsiPaletteColor | AnsiRgbColor;
|
|
21
|
+
interface AnsiStyle {
|
|
22
|
+
readonly bold?: true;
|
|
23
|
+
readonly dim?: true;
|
|
24
|
+
readonly italic?: true;
|
|
25
|
+
readonly underline?: true;
|
|
26
|
+
readonly strikethrough?: true;
|
|
27
|
+
readonly inverse?: true;
|
|
28
|
+
readonly fg?: AnsiColor;
|
|
29
|
+
readonly bg?: AnsiColor;
|
|
30
|
+
}
|
|
31
|
+
export interface AnsiSegment {
|
|
32
|
+
readonly text: string;
|
|
33
|
+
readonly style: AnsiStyle;
|
|
34
|
+
}
|
|
35
|
+
/** Parses text with ANSI escapes into styled segments (adjacent equal styles merged, empty dropped). */
|
|
36
|
+
export declare function parseAnsi(input: string): AnsiSegment[];
|
|
37
|
+
/** The visible text only: every escape sequence and control character removed. */
|
|
38
|
+
export declare function stripAnsi(input: string): string;
|
|
39
|
+
/**
|
|
40
|
+
* CSS color for an ANSI color. Named colors and the 24-step grayscale ramp map onto theme tokens
|
|
41
|
+
* (grays become a mix of `--fg` and `--bg`, brighter = more prominent, as on a dark terminal).
|
|
42
|
+
* Cube and truecolor keep their hue: as text, held to 4.5:1 (`readableCss`); as a background, a
|
|
43
|
+
* tint like the named ones, so text on it stays readable.
|
|
44
|
+
*/
|
|
45
|
+
export declare function ansiColorToCss(color: AnsiColor, layer: "fg" | "bg"): string;
|
|
46
|
+
interface AnsiCss {
|
|
47
|
+
color?: string;
|
|
48
|
+
backgroundColor?: string;
|
|
49
|
+
fontWeight?: number;
|
|
50
|
+
fontStyle?: "italic";
|
|
51
|
+
textDecorationLine?: string;
|
|
52
|
+
}
|
|
53
|
+
/** Inline style for a segment (inverse swaps fg/bg, falling back to the theme's fg/bg). */
|
|
54
|
+
export declare function ansiStyleToCss(style: AnsiStyle): AnsiCss;
|
|
55
|
+
export {};
|