@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.
Files changed (292) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/LICENSE +21 -0
  3. package/README.md +124 -2
  4. package/TRADEMARKS.md +22 -0
  5. package/dist/_bundled/money/index.d.ts +98 -0
  6. package/dist/_bundled/money/index.js +152 -0
  7. package/dist/_bundled/tokens/index.d.ts +2 -0
  8. package/dist/_bundled/tokens/index.js +2 -0
  9. package/dist/_bundled/tokens/palette.gen.d.ts +51 -0
  10. package/dist/_bundled/tokens/palette.gen.js +206 -0
  11. package/dist/_bundled/tokens/spec.d.ts +291 -0
  12. package/dist/_bundled/tokens/spec.js +221 -0
  13. package/dist/components/accordion.d.ts +27 -0
  14. package/dist/components/accordion.js +66 -0
  15. package/dist/components/alert-dialog.d.ts +59 -0
  16. package/dist/components/alert-dialog.js +82 -0
  17. package/dist/components/alert.d.ts +141 -0
  18. package/dist/components/alert.js +55 -0
  19. package/dist/components/appear.d.ts +21 -0
  20. package/dist/components/appear.js +42 -0
  21. package/dist/components/avatar.d.ts +196 -0
  22. package/dist/components/avatar.js +135 -0
  23. package/dist/components/badge.d.ts +183 -0
  24. package/dist/components/badge.js +68 -0
  25. package/dist/components/block-stack.d.ts +33 -0
  26. package/dist/components/block-stack.js +197 -0
  27. package/dist/components/button.d.ts +327 -0
  28. package/dist/components/button.js +101 -0
  29. package/dist/components/card.d.ts +131 -0
  30. package/dist/components/card.js +100 -0
  31. package/dist/components/checkbox.d.ts +34 -0
  32. package/dist/components/checkbox.js +37 -0
  33. package/dist/components/choice-row.d.ts +104 -0
  34. package/dist/components/choice-row.js +56 -0
  35. package/dist/components/clamped-text.d.ts +17 -0
  36. package/dist/components/clamped-text.js +47 -0
  37. package/dist/components/code-block.d.ts +48 -0
  38. package/dist/components/code-block.js +124 -0
  39. package/dist/components/code-input.d.ts +49 -0
  40. package/dist/components/code-input.js +59 -0
  41. package/dist/components/combobox.d.ts +194 -0
  42. package/dist/components/combobox.js +176 -0
  43. package/dist/components/command-palette.d.ts +57 -0
  44. package/dist/components/command-palette.js +83 -0
  45. package/dist/components/context-menu.d.ts +24 -0
  46. package/dist/components/context-menu.js +30 -0
  47. package/dist/components/copy-button.d.ts +9 -0
  48. package/dist/components/copy-button.js +20 -0
  49. package/dist/components/copy-command.d.ts +18 -0
  50. package/dist/components/copy-command.js +19 -0
  51. package/dist/components/data-table.d.ts +240 -0
  52. package/dist/components/data-table.js +63 -0
  53. package/dist/components/dialog.d.ts +80 -0
  54. package/dist/components/dialog.js +85 -0
  55. package/dist/components/diff-lines.d.ts +20 -0
  56. package/dist/components/diff-lines.js +10 -0
  57. package/dist/components/diff-view.d.ts +128 -0
  58. package/dist/components/diff-view.js +675 -0
  59. package/dist/components/disclosure.d.ts +33 -0
  60. package/dist/components/disclosure.js +51 -0
  61. package/dist/components/drawn-check.d.ts +8 -0
  62. package/dist/components/drawn-check.js +16 -0
  63. package/dist/components/edge-resizer.d.ts +26 -0
  64. package/dist/components/edge-resizer.js +53 -0
  65. package/dist/components/empty-state.d.ts +112 -0
  66. package/dist/components/empty-state.js +56 -0
  67. package/dist/components/expand-toggle.d.ts +19 -0
  68. package/dist/components/expand-toggle.js +10 -0
  69. package/dist/components/field.d.ts +48 -0
  70. package/dist/components/field.js +60 -0
  71. package/dist/components/filter-chip.d.ts +47 -0
  72. package/dist/components/filter-chip.js +33 -0
  73. package/dist/components/group.d.ts +10 -0
  74. package/dist/components/group.js +9 -0
  75. package/dist/components/icon-text.d.ts +11 -0
  76. package/dist/components/icon-text.js +10 -0
  77. package/dist/components/image-sources.d.ts +57 -0
  78. package/dist/components/image-sources.js +58 -0
  79. package/dist/components/image-thumbnail.d.ts +34 -0
  80. package/dist/components/image-thumbnail.js +58 -0
  81. package/dist/components/image-viewer.d.ts +60 -0
  82. package/dist/components/image-viewer.js +411 -0
  83. package/dist/components/inline-edit.d.ts +22 -0
  84. package/dist/components/inline-edit.js +51 -0
  85. package/dist/components/input.d.ts +155 -0
  86. package/dist/components/input.js +109 -0
  87. package/dist/components/item-label.d.ts +11 -0
  88. package/dist/components/item-label.js +5 -0
  89. package/dist/components/item-row.d.ts +23 -0
  90. package/dist/components/item-row.js +19 -0
  91. package/dist/components/kbd.d.ts +55 -0
  92. package/dist/components/kbd.js +86 -0
  93. package/dist/components/link-policy.d.ts +24 -0
  94. package/dist/components/link-policy.js +32 -0
  95. package/dist/components/linked-text.d.ts +15 -0
  96. package/dist/components/linked-text.js +48 -0
  97. package/dist/components/loading-region.d.ts +18 -0
  98. package/dist/components/loading-region.js +17 -0
  99. package/dist/components/markdown.d.ts +34 -0
  100. package/dist/components/markdown.js +307 -0
  101. package/dist/components/menu.d.ts +132 -0
  102. package/dist/components/menu.js +102 -0
  103. package/dist/components/message-bubble.d.ts +57 -0
  104. package/dist/components/message-bubble.js +28 -0
  105. package/dist/components/meta-line.d.ts +28 -0
  106. package/dist/components/meta-line.js +36 -0
  107. package/dist/components/money-input.d.ts +23 -0
  108. package/dist/components/money-input.js +34 -0
  109. package/dist/components/native-select.d.ts +120 -0
  110. package/dist/components/native-select.js +85 -0
  111. package/dist/components/page-trail.d.ts +30 -0
  112. package/dist/components/page-trail.js +43 -0
  113. package/dist/components/page.d.ts +80 -0
  114. package/dist/components/page.js +60 -0
  115. package/dist/components/path-text.d.ts +8 -0
  116. package/dist/components/path-text.js +11 -0
  117. package/dist/components/percent-input.d.ts +20 -0
  118. package/dist/components/percent-input.js +32 -0
  119. package/dist/components/popover.d.ts +52 -0
  120. package/dist/components/popover.js +36 -0
  121. package/dist/components/progress.d.ts +389 -0
  122. package/dist/components/progress.js +142 -0
  123. package/dist/components/radio.d.ts +65 -0
  124. package/dist/components/radio.js +54 -0
  125. package/dist/components/remote-image-gate.d.ts +34 -0
  126. package/dist/components/remote-image-gate.js +60 -0
  127. package/dist/components/resizable.d.ts +23 -0
  128. package/dist/components/resizable.js +30 -0
  129. package/dist/components/rolling-number.d.ts +13 -0
  130. package/dist/components/rolling-number.js +69 -0
  131. package/dist/components/scroll-area.d.ts +17 -0
  132. package/dist/components/scroll-area.js +25 -0
  133. package/dist/components/section-label.d.ts +10 -0
  134. package/dist/components/section-label.js +21 -0
  135. package/dist/components/section-nav.d.ts +22 -0
  136. package/dist/components/section-nav.js +80 -0
  137. package/dist/components/segmented-control.d.ts +125 -0
  138. package/dist/components/segmented-control.js +101 -0
  139. package/dist/components/select.d.ts +120 -0
  140. package/dist/components/select.js +89 -0
  141. package/dist/components/separator.d.ts +10 -0
  142. package/dist/components/separator.js +12 -0
  143. package/dist/components/sheet.d.ts +101 -0
  144. package/dist/components/sheet.js +129 -0
  145. package/dist/components/shortcut-recorder.d.ts +31 -0
  146. package/dist/components/shortcut-recorder.js +67 -0
  147. package/dist/components/skeleton.d.ts +31 -0
  148. package/dist/components/skeleton.js +33 -0
  149. package/dist/components/slider.d.ts +138 -0
  150. package/dist/components/slider.js +98 -0
  151. package/dist/components/spinner.d.ts +37 -0
  152. package/dist/components/spinner.js +16 -0
  153. package/dist/components/switch.d.ts +59 -0
  154. package/dist/components/switch.js +56 -0
  155. package/dist/components/tab-strip.d.ts +29 -0
  156. package/dist/components/tab-strip.js +42 -0
  157. package/dist/components/tabs.d.ts +13 -0
  158. package/dist/components/tabs.js +68 -0
  159. package/dist/components/text-link.d.ts +54 -0
  160. package/dist/components/text-link.js +38 -0
  161. package/dist/components/textarea.d.ts +75 -0
  162. package/dist/components/textarea.js +90 -0
  163. package/dist/components/toast.d.ts +74 -0
  164. package/dist/components/toast.js +128 -0
  165. package/dist/components/tooltip.d.ts +50 -0
  166. package/dist/components/tooltip.js +46 -0
  167. package/dist/components/truncated-text.d.ts +15 -0
  168. package/dist/components/truncated-text.js +19 -0
  169. package/dist/i18n/defaults.d.ts +7 -0
  170. package/dist/i18n/defaults.js +7 -0
  171. package/dist/i18n/format.d.ts +84 -0
  172. package/dist/i18n/format.js +169 -0
  173. package/dist/i18n/index.d.ts +6 -0
  174. package/dist/i18n/index.js +8 -0
  175. package/dist/i18n/locales/ru-formatters.d.ts +3 -0
  176. package/dist/i18n/locales/ru-formatters.js +22 -0
  177. package/dist/i18n/locales/ru.d.ts +5 -0
  178. package/dist/i18n/locales/ru.js +185 -0
  179. package/dist/i18n/plural.d.ts +20 -0
  180. package/dist/i18n/plural.js +26 -0
  181. package/dist/i18n/provider.d.ts +36 -0
  182. package/dist/i18n/provider.js +39 -0
  183. package/dist/i18n/rich.d.ts +14 -0
  184. package/dist/i18n/rich.js +44 -0
  185. package/dist/i18n/ru-plural.d.ts +3 -0
  186. package/dist/i18n/ru-plural.js +4 -0
  187. package/dist/i18n/strings/alert-dialog.d.ts +5 -0
  188. package/dist/i18n/strings/alert-dialog.js +5 -0
  189. package/dist/i18n/strings/block-stack.d.ts +17 -0
  190. package/dist/i18n/strings/block-stack.js +11 -0
  191. package/dist/i18n/strings/code-block.d.ts +18 -0
  192. package/dist/i18n/strings/code-block.js +13 -0
  193. package/dist/i18n/strings/combobox.d.ts +12 -0
  194. package/dist/i18n/strings/combobox.js +10 -0
  195. package/dist/i18n/strings/command-palette.d.ts +17 -0
  196. package/dist/i18n/strings/command-palette.js +11 -0
  197. package/dist/i18n/strings/diff-view.d.ts +92 -0
  198. package/dist/i18n/strings/diff-view.js +68 -0
  199. package/dist/i18n/strings/image-viewer.d.ts +43 -0
  200. package/dist/i18n/strings/image-viewer.js +32 -0
  201. package/dist/i18n/strings/index.d.ts +314 -0
  202. package/dist/i18n/strings/index.js +43 -0
  203. package/dist/i18n/strings/kbd.d.ts +42 -0
  204. package/dist/i18n/strings/kbd.js +39 -0
  205. package/dist/i18n/strings/markdown.d.ts +23 -0
  206. package/dist/i18n/strings/markdown.js +18 -0
  207. package/dist/i18n/strings/money.d.ts +7 -0
  208. package/dist/i18n/strings/money.js +5 -0
  209. package/dist/i18n/strings/primitives.d.ts +25 -0
  210. package/dist/i18n/strings/primitives.js +18 -0
  211. package/dist/i18n/strings/progress.d.ts +4 -0
  212. package/dist/i18n/strings/progress.js +4 -0
  213. package/dist/i18n/strings/shortcut-recorder.d.ts +15 -0
  214. package/dist/i18n/strings/shortcut-recorder.js +11 -0
  215. package/dist/i18n/strings/time.d.ts +41 -0
  216. package/dist/i18n/strings/time.js +20 -0
  217. package/dist/i18n/strings/toast.d.ts +6 -0
  218. package/dist/i18n/strings/toast.js +6 -0
  219. package/dist/i18n/time-zones.d.ts +20 -0
  220. package/dist/i18n/time-zones.js +64 -0
  221. package/dist/index.d.ts +84 -0
  222. package/dist/index.js +88 -0
  223. package/dist/lib/ansi.d.ts +55 -0
  224. package/dist/lib/ansi.js +438 -0
  225. package/dist/lib/clock.d.ts +32 -0
  226. package/dist/lib/clock.js +106 -0
  227. package/dist/lib/cn.d.ts +12 -0
  228. package/dist/lib/cn.js +28 -0
  229. package/dist/lib/control-props.d.ts +21 -0
  230. package/dist/lib/control-props.js +14 -0
  231. package/dist/lib/direction.d.ts +13 -0
  232. package/dist/lib/direction.js +25 -0
  233. package/dist/lib/image-size.d.ts +12 -0
  234. package/dist/lib/image-size.js +66 -0
  235. package/dist/lib/keycaps.d.ts +21 -0
  236. package/dist/lib/keycaps.js +62 -0
  237. package/dist/lib/keyed.d.ts +9 -0
  238. package/dist/lib/keyed.js +14 -0
  239. package/dist/lib/keys.d.ts +49 -0
  240. package/dist/lib/keys.js +159 -0
  241. package/dist/lib/kit-motion.d.ts +9 -0
  242. package/dist/lib/kit-motion.js +12 -0
  243. package/dist/lib/link-check-dialog.d.ts +11 -0
  244. package/dist/lib/link-check-dialog.js +18 -0
  245. package/dist/lib/motion-features.d.ts +1 -0
  246. package/dist/lib/motion-features.js +4 -0
  247. package/dist/lib/motion-provider.d.ts +5 -0
  248. package/dist/lib/motion-provider.js +8 -0
  249. package/dist/lib/motion.d.ts +39 -0
  250. package/dist/lib/motion.js +49 -0
  251. package/dist/lib/number-format.d.ts +114 -0
  252. package/dist/lib/number-format.js +313 -0
  253. package/dist/lib/patch.d.ts +72 -0
  254. package/dist/lib/patch.js +344 -0
  255. package/dist/lib/path.d.ts +34 -0
  256. package/dist/lib/path.js +85 -0
  257. package/dist/lib/search.d.ts +10 -0
  258. package/dist/lib/search.js +20 -0
  259. package/dist/lib/shiki-themes.d.ts +7 -0
  260. package/dist/lib/shiki-themes.js +115 -0
  261. package/dist/lib/shiki.d.ts +101 -0
  262. package/dist/lib/shiki.js +353 -0
  263. package/dist/lib/shortcut-context.d.ts +23 -0
  264. package/dist/lib/shortcut-context.js +29 -0
  265. package/dist/lib/text.d.ts +56 -0
  266. package/dist/lib/text.js +149 -0
  267. package/dist/lib/theme-scope.d.ts +18 -0
  268. package/dist/lib/theme-scope.js +24 -0
  269. package/dist/lib/theme.d.ts +40 -0
  270. package/dist/lib/theme.js +96 -0
  271. package/dist/lib/tree-keys.d.ts +72 -0
  272. package/dist/lib/tree-keys.js +126 -0
  273. package/dist/lib/url.d.ts +17 -0
  274. package/dist/lib/url.js +38 -0
  275. package/dist/lib/use-copy-to-clipboard.d.ts +13 -0
  276. package/dist/lib/use-copy-to-clipboard.js +40 -0
  277. package/dist/lib/use-delayed-loading.d.ts +11 -0
  278. package/dist/lib/use-delayed-loading.js +31 -0
  279. package/dist/lib/use-file-picker.d.ts +26 -0
  280. package/dist/lib/use-file-picker.js +43 -0
  281. package/dist/lib/use-hydrated.d.ts +6 -0
  282. package/dist/lib/use-hydrated.js +11 -0
  283. package/dist/lib/use-latest.d.ts +12 -0
  284. package/dist/lib/use-latest.js +22 -0
  285. package/dist/lib/use-resolved-theme.d.ts +12 -0
  286. package/dist/lib/use-resolved-theme.js +25 -0
  287. package/dist/styles/base.css +393 -0
  288. package/dist/styles/code.css +35 -0
  289. package/dist/styles/fonts.css +12 -0
  290. package/dist/styles/index.css +13 -0
  291. package/dist/styles/tokens.gen.css +494 -0
  292. 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
+ }
@@ -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 {};