@repraze/kernelkit 0.1.0-alpha.3 → 0.1.0-alpha.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (203) hide show
  1. package/README.md +17 -0
  2. package/dist/components/alert-dialog.d.ts.map +1 -1
  3. package/dist/components/alert-dialog.js +4 -1
  4. package/dist/components/alert-dialog.js.map +1 -1
  5. package/dist/components/alert.js +3 -3
  6. package/dist/components/alert.js.map +1 -1
  7. package/dist/components/badge.js +1 -1
  8. package/dist/components/badge.js.map +1 -1
  9. package/dist/components/button.js +1 -1
  10. package/dist/components/button.js.map +1 -1
  11. package/dist/components/calendar.d.ts +8 -1
  12. package/dist/components/calendar.d.ts.map +1 -1
  13. package/dist/components/calendar.js +33 -11
  14. package/dist/components/calendar.js.map +1 -1
  15. package/dist/components/callout.js +2 -2
  16. package/dist/components/callout.js.map +1 -1
  17. package/dist/components/combobox.js +1 -1
  18. package/dist/components/combobox.js.map +1 -1
  19. package/dist/components/date-picker.d.ts +11 -5
  20. package/dist/components/date-picker.d.ts.map +1 -1
  21. package/dist/components/date-picker.js +29 -7
  22. package/dist/components/date-picker.js.map +1 -1
  23. package/dist/components/description-list.d.ts +26 -0
  24. package/dist/components/description-list.d.ts.map +1 -0
  25. package/dist/components/description-list.js +59 -0
  26. package/dist/components/description-list.js.map +1 -0
  27. package/dist/components/locale.d.ts +19 -0
  28. package/dist/components/locale.d.ts.map +1 -0
  29. package/dist/components/locale.js +54 -0
  30. package/dist/components/locale.js.map +1 -0
  31. package/dist/components/popover.d.ts +1 -1
  32. package/dist/components/popover.d.ts.map +1 -1
  33. package/dist/components/popover.js +2 -2
  34. package/dist/components/popover.js.map +1 -1
  35. package/dist/components/progress.d.ts +19 -6
  36. package/dist/components/progress.d.ts.map +1 -1
  37. package/dist/components/progress.js +18 -3
  38. package/dist/components/progress.js.map +1 -1
  39. package/dist/components/search-dialog.d.ts +6 -1
  40. package/dist/components/search-dialog.d.ts.map +1 -1
  41. package/dist/components/search-dialog.js +13 -1
  42. package/dist/components/search-dialog.js.map +1 -1
  43. package/dist/components/search-trigger.d.ts +4 -1
  44. package/dist/components/search-trigger.d.ts.map +1 -1
  45. package/dist/components/search-trigger.js +5 -2
  46. package/dist/components/search-trigger.js.map +1 -1
  47. package/dist/components/shimmer.d.ts +13 -0
  48. package/dist/components/shimmer.d.ts.map +1 -0
  49. package/dist/components/shimmer.js +21 -0
  50. package/dist/components/shimmer.js.map +1 -0
  51. package/dist/components/spinner.d.ts +28 -6
  52. package/dist/components/spinner.d.ts.map +1 -1
  53. package/dist/components/spinner.js +66 -14
  54. package/dist/components/spinner.js.map +1 -1
  55. package/dist/components/stepper.d.ts +64 -0
  56. package/dist/components/stepper.d.ts.map +1 -0
  57. package/dist/components/stepper.js +167 -0
  58. package/dist/components/stepper.js.map +1 -0
  59. package/dist/components/tag-input.d.ts +47 -0
  60. package/dist/components/tag-input.d.ts.map +1 -0
  61. package/dist/components/tag-input.js +211 -0
  62. package/dist/components/tag-input.js.map +1 -0
  63. package/dist/components/time-input.d.ts +75 -0
  64. package/dist/components/time-input.d.ts.map +1 -0
  65. package/dist/components/time-input.js +341 -0
  66. package/dist/components/time-input.js.map +1 -0
  67. package/dist/components/time-select.d.ts +49 -0
  68. package/dist/components/time-select.d.ts.map +1 -0
  69. package/dist/components/time-select.js +178 -0
  70. package/dist/components/time-select.js.map +1 -0
  71. package/dist/components/timeline.d.ts +41 -0
  72. package/dist/components/timeline.d.ts.map +1 -0
  73. package/dist/components/timeline.js +83 -0
  74. package/dist/components/timeline.js.map +1 -0
  75. package/dist/components/toast.d.ts.map +1 -1
  76. package/dist/components/toast.js +4 -2
  77. package/dist/components/toast.js.map +1 -1
  78. package/dist/components/tree.d.ts +87 -0
  79. package/dist/components/tree.d.ts.map +1 -0
  80. package/dist/components/tree.js +516 -0
  81. package/dist/components/tree.js.map +1 -0
  82. package/dist/docs/doc-kit.d.ts +72 -0
  83. package/dist/docs/doc-kit.d.ts.map +1 -0
  84. package/dist/docs/doc-kit.js +45 -0
  85. package/dist/docs/doc-kit.js.map +1 -0
  86. package/dist/docs/doc-page.d.ts +27 -0
  87. package/dist/docs/doc-page.d.ts.map +1 -0
  88. package/dist/docs/doc-page.js +33 -0
  89. package/dist/docs/doc-page.js.map +1 -0
  90. package/dist/docs/docs-index.d.ts +60 -0
  91. package/dist/docs/docs-index.d.ts.map +1 -0
  92. package/dist/docs/docs-index.js +45 -0
  93. package/dist/docs/docs-index.js.map +1 -0
  94. package/dist/docs/docs-nav.d.ts +13 -0
  95. package/dist/docs/docs-nav.d.ts.map +1 -0
  96. package/dist/docs/docs-nav.js +8 -0
  97. package/dist/docs/docs-nav.js.map +1 -0
  98. package/dist/docs/docs-search.d.ts +19 -0
  99. package/dist/docs/docs-search.d.ts.map +1 -0
  100. package/dist/docs/docs-search.js +33 -0
  101. package/dist/docs/docs-search.js.map +1 -0
  102. package/dist/docs/index.d.ts +7 -0
  103. package/dist/docs/index.d.ts.map +1 -0
  104. package/dist/docs/index.js +7 -0
  105. package/dist/docs/index.js.map +1 -0
  106. package/dist/docs/review-matrix.d.ts +25 -0
  107. package/dist/docs/review-matrix.d.ts.map +1 -0
  108. package/dist/docs/review-matrix.js +31 -0
  109. package/dist/docs/review-matrix.js.map +1 -0
  110. package/dist/hooks/use-theme-palette.d.ts +8 -0
  111. package/dist/hooks/use-theme-palette.d.ts.map +1 -0
  112. package/dist/hooks/use-theme-palette.js +24 -0
  113. package/dist/hooks/use-theme-palette.js.map +1 -0
  114. package/dist/hooks/use-time-format.d.ts +23 -0
  115. package/dist/hooks/use-time-format.d.ts.map +1 -0
  116. package/dist/hooks/use-time-format.js +52 -0
  117. package/dist/hooks/use-time-format.js.map +1 -0
  118. package/dist/lib/color.d.ts +5 -1
  119. package/dist/lib/color.d.ts.map +1 -1
  120. package/dist/lib/color.js +14 -2
  121. package/dist/lib/color.js.map +1 -1
  122. package/dist/lib/recipes.d.ts +5 -4
  123. package/dist/lib/recipes.d.ts.map +1 -1
  124. package/dist/lib/recipes.js +7 -5
  125. package/dist/lib/recipes.js.map +1 -1
  126. package/dist/provider/theme-provider.d.ts +10 -1
  127. package/dist/provider/theme-provider.d.ts.map +1 -1
  128. package/dist/provider/theme-provider.js +23 -8
  129. package/dist/provider/theme-provider.js.map +1 -1
  130. package/dist/site/brand.d.ts +20 -0
  131. package/dist/site/brand.d.ts.map +1 -0
  132. package/dist/site/brand.js +17 -0
  133. package/dist/site/brand.js.map +1 -0
  134. package/dist/site/github-icon.d.ts +4 -0
  135. package/dist/site/github-icon.d.ts.map +1 -0
  136. package/dist/site/github-icon.js +6 -0
  137. package/dist/site/github-icon.js.map +1 -0
  138. package/dist/site/index.d.ts +6 -0
  139. package/dist/site/index.d.ts.map +1 -0
  140. package/dist/site/index.js +6 -0
  141. package/dist/site/index.js.map +1 -0
  142. package/dist/site/suite-footer.d.ts +24 -0
  143. package/dist/site/suite-footer.d.ts.map +1 -0
  144. package/dist/site/suite-footer.js +19 -0
  145. package/dist/site/suite-footer.js.map +1 -0
  146. package/dist/site/suite-header.d.ts +40 -0
  147. package/dist/site/suite-header.d.ts.map +1 -0
  148. package/dist/site/suite-header.js +19 -0
  149. package/dist/site/suite-header.js.map +1 -0
  150. package/dist/site/use-page-title.d.ts +3 -0
  151. package/dist/site/use-page-title.d.ts.map +1 -0
  152. package/dist/site/use-page-title.js +8 -0
  153. package/dist/site/use-page-title.js.map +1 -0
  154. package/dist/vite/index.d.ts +65 -0
  155. package/dist/vite/index.d.ts.map +1 -0
  156. package/dist/vite/index.js +242 -0
  157. package/dist/vite/index.js.map +1 -0
  158. package/package.json +39 -3
  159. package/src/components/alert-dialog.tsx +4 -1
  160. package/src/components/alert.tsx +3 -3
  161. package/src/components/badge.tsx +1 -1
  162. package/src/components/button.tsx +1 -1
  163. package/src/components/calendar.tsx +48 -4
  164. package/src/components/callout.tsx +2 -2
  165. package/src/components/combobox.tsx +1 -1
  166. package/src/components/date-picker.tsx +43 -9
  167. package/src/components/description-list.tsx +107 -0
  168. package/src/components/locale.tsx +67 -0
  169. package/src/components/popover.tsx +3 -1
  170. package/src/components/progress.tsx +70 -4
  171. package/src/components/search-dialog.tsx +14 -1
  172. package/src/components/search-trigger.tsx +8 -2
  173. package/src/components/shimmer.tsx +36 -0
  174. package/src/components/spinner.tsx +126 -23
  175. package/src/components/stepper.tsx +346 -0
  176. package/src/components/tag-input.tsx +345 -0
  177. package/src/components/time-input.tsx +578 -0
  178. package/src/components/time-select.tsx +291 -0
  179. package/src/components/timeline.tsx +190 -0
  180. package/src/components/toast.tsx +4 -4
  181. package/src/components/tree.tsx +832 -0
  182. package/src/docs/doc-kit.tsx +176 -0
  183. package/src/docs/doc-page.tsx +126 -0
  184. package/src/docs/docs-index.ts +108 -0
  185. package/src/docs/docs-nav.tsx +47 -0
  186. package/src/docs/docs-search.tsx +88 -0
  187. package/src/docs/index.ts +6 -0
  188. package/src/docs/review-matrix.tsx +67 -0
  189. package/src/hooks/use-theme-palette.ts +25 -0
  190. package/src/hooks/use-time-format.ts +72 -0
  191. package/src/lib/color.ts +19 -2
  192. package/src/lib/recipes.ts +7 -5
  193. package/src/provider/theme-provider.tsx +34 -9
  194. package/src/site/brand.tsx +41 -0
  195. package/src/site/github-icon.tsx +10 -0
  196. package/src/site/index.ts +5 -0
  197. package/src/site/suite-footer.tsx +68 -0
  198. package/src/site/suite-header.tsx +114 -0
  199. package/src/site/use-page-title.ts +8 -0
  200. package/src/styles/kernelkit.css +58 -0
  201. package/src/styles/site.css +15 -0
  202. package/src/vite/client.d.ts +11 -0
  203. package/src/vite/index.ts +298 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"description-list.js","sourceRoot":"","sources":["../../src/components/description-list.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import * as React from "react";
2
+ /**
3
+ * Locale for the kit's dates and times (Calendar, DatePicker, TimeInput, TimeSelect), all formatted with
4
+ * `Intl`. Resolution: a component's own `locale` prop › the nearest `LocaleProvider` › the browser's
5
+ * language. Hydration-safe: the server render and the hydration pass use `FALLBACK_LOCALE` (the browser's
6
+ * language is unknown on the server), then the client re-renders with the browser's. To get it right from
7
+ * the first paint in SSR, pass the request's locale (Accept-Language, user setting) to `LocaleProvider`.
8
+ */
9
+ declare const FALLBACK_LOCALE = "en-US";
10
+ declare function LocaleProvider({ locale, children }: {
11
+ locale?: string;
12
+ children: React.ReactNode;
13
+ }): React.JSX.Element;
14
+ /** The locale to format with: `explicit` › LocaleProvider › browser (after hydration) › `FALLBACK_LOCALE`. */
15
+ declare function useLocale(explicit?: string): string;
16
+ /** First day of the week for a locale: 0 Sunday … 6 Saturday. */
17
+ declare function weekStart(locale: string): 0 | 1 | 6;
18
+ export { FALLBACK_LOCALE, LocaleProvider, useLocale, weekStart };
19
+ //# sourceMappingURL=locale.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locale.d.ts","sourceRoot":"","sources":["../../src/components/locale.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B;;;;;;GAMG;AACH,QAAA,MAAM,eAAe,UAAU,CAAC;AAIhC,iBAAS,cAAc,CAAC,EAAC,MAAM,EAAE,QAAQ,EAAC,EAAE;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAC,qBAEvF;AAgBD,8GAA8G;AAC9G,iBAAS,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAI5C;AAUD,iEAAiE;AACjE,iBAAS,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAe5C;AAED,OAAO,EAAC,eAAe,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAC,CAAC"}
@@ -0,0 +1,54 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import * as React from "react";
4
+ /**
5
+ * Locale for the kit's dates and times (Calendar, DatePicker, TimeInput, TimeSelect), all formatted with
6
+ * `Intl`. Resolution: a component's own `locale` prop › the nearest `LocaleProvider` › the browser's
7
+ * language. Hydration-safe: the server render and the hydration pass use `FALLBACK_LOCALE` (the browser's
8
+ * language is unknown on the server), then the client re-renders with the browser's. To get it right from
9
+ * the first paint in SSR, pass the request's locale (Accept-Language, user setting) to `LocaleProvider`.
10
+ */
11
+ const FALLBACK_LOCALE = "en-US";
12
+ const LocaleContext = React.createContext(undefined);
13
+ function LocaleProvider({ locale, children }) {
14
+ return _jsx(LocaleContext.Provider, { value: locale, children: children });
15
+ }
16
+ function browserLocale() {
17
+ try {
18
+ const tag = navigator.languages?.[0] ?? navigator.language;
19
+ return tag && Intl.DateTimeFormat.supportedLocalesOf(tag).length ? tag : null;
20
+ }
21
+ catch {
22
+ return null;
23
+ }
24
+ }
25
+ function subscribe(onChange) {
26
+ window.addEventListener("languagechange", onChange);
27
+ return () => window.removeEventListener("languagechange", onChange);
28
+ }
29
+ /** The locale to format with: `explicit` › LocaleProvider › browser (after hydration) › `FALLBACK_LOCALE`. */
30
+ function useLocale(explicit) {
31
+ const provided = React.useContext(LocaleContext);
32
+ const browser = React.useSyncExternalStore(subscribe, browserLocale, () => null);
33
+ return explicit ?? provided ?? browser ?? FALLBACK_LOCALE;
34
+ }
35
+ // Regions whose week starts on Sunday or Saturday (CLDR), for engines without Intl.Locale#getWeekInfo.
36
+ const SUNDAY = new Set("AG AS AU BD BR BS BT BW BZ CA CN CO DM DO ET GT GU HK HN ID IL IN JM JP KE KH KR LA MH MM MO MT MX MZ NI NP PA PE PH PK PR PT PY SA SG SV TH TT TW UM US VE VI WS YE ZA ZW".split(" "));
37
+ const SATURDAY = new Set("AE AF BH DJ DZ EG IQ IR JO KW LY OM QA SD SY".split(" "));
38
+ /** First day of the week for a locale: 0 Sunday … 6 Saturday. */
39
+ function weekStart(locale) {
40
+ try {
41
+ const loc = new Intl.Locale(locale);
42
+ const info = loc.getWeekInfo?.() ?? loc.weekInfo;
43
+ if (info) {
44
+ return (info.firstDay % 7);
45
+ }
46
+ const region = loc.maximize().region ?? "";
47
+ return SUNDAY.has(region) ? 0 : SATURDAY.has(region) ? 6 : 1;
48
+ }
49
+ catch {
50
+ return 0;
51
+ }
52
+ }
53
+ export { FALLBACK_LOCALE, LocaleProvider, useLocale, weekStart };
54
+ //# sourceMappingURL=locale.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locale.js","sourceRoot":"","sources":["../../src/components/locale.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B;;;;;;GAMG;AACH,MAAM,eAAe,GAAG,OAAO,CAAC;AAEhC,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAqB,SAAS,CAAC,CAAC;AAEzE,SAAS,cAAc,CAAC,EAAC,MAAM,EAAE,QAAQ,EAA+C;IACpF,OAAO,KAAC,aAAa,CAAC,QAAQ,IAAC,KAAK,EAAE,MAAM,YAAG,QAAQ,GAA0B,CAAC;AACtF,CAAC;AAED,SAAS,aAAa;IAClB,IAAI,CAAC;QACD,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC;QAC3D,OAAO,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IAClF,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,IAAI,CAAC;IAChB,CAAC;AACL,CAAC;AAED,SAAS,SAAS,CAAC,QAAoB;IACnC,MAAM,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;IACpD,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;AACxE,CAAC;AAED,8GAA8G;AAC9G,SAAS,SAAS,CAAC,QAAiB;IAChC,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAoB,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACjF,OAAO,QAAQ,IAAI,QAAQ,IAAI,OAAO,IAAI,eAAe,CAAC;AAC9D,CAAC;AAED,uGAAuG;AACvG,MAAM,MAAM,GAAG,IAAI,GAAG,CAClB,4KAA4K,CAAC,KAAK,CAC9K,GAAG,CACN,CACJ,CAAC;AACF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,8CAA8C,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AAEpF,iEAAiE;AACjE,SAAS,SAAS,CAAC,MAAc;IAC7B,IAAI,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAGjC,CAAC;QACF,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,EAAE,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC;QACjD,IAAI,IAAI,EAAE,CAAC;YACP,OAAO,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAc,CAAC;QAC5C,CAAC;QACD,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC;QAC3C,OAAO,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,CAAC,CAAC;IACb,CAAC;AACL,CAAC;AAED,OAAO,EAAC,eAAe,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAC,CAAC"}
@@ -2,7 +2,7 @@ import { Popover as PopoverPrimitive } from "@base-ui/react/popover";
2
2
  import * as React from "react";
3
3
  declare function Popover({ ...props }: PopoverPrimitive.Root.Props): React.JSX.Element;
4
4
  declare function PopoverTrigger({ ...props }: PopoverPrimitive.Trigger.Props): React.JSX.Element;
5
- declare function PopoverContent({ className, align, alignOffset, side, sideOffset, ...props }: PopoverPrimitive.Popup.Props & Pick<PopoverPrimitive.Positioner.Props, "align" | "alignOffset" | "side" | "sideOffset">): React.JSX.Element;
5
+ declare function PopoverContent({ className, align, alignOffset, side, sideOffset, anchor, ...props }: PopoverPrimitive.Popup.Props & Pick<PopoverPrimitive.Positioner.Props, "align" | "alignOffset" | "side" | "sideOffset" | "anchor">): React.JSX.Element;
6
6
  declare function PopoverHeader({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
7
7
  declare function PopoverTitle({ className, ...props }: PopoverPrimitive.Title.Props): React.JSX.Element;
8
8
  declare function PopoverDescription({ className, ...props }: PopoverPrimitive.Description.Props): React.JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"popover.d.ts","sourceRoot":"","sources":["../../src/components/popover.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAC,OAAO,IAAI,gBAAgB,EAAC,MAAM,wBAAwB,CAAC;AAInE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,iBAAS,OAAO,CAAC,EAAC,GAAG,KAAK,EAAC,EAAE,gBAAgB,CAAC,IAAI,CAAC,KAAK,qBAEvD;AAED,iBAAS,cAAc,CAAC,EAAC,GAAG,KAAK,EAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,KAAK,qBAEjE;AAED,iBAAS,cAAc,CAAC,EACpB,SAAS,EACT,KAAgB,EAChB,WAAe,EACf,IAAe,EACf,UAAc,EACd,GAAG,KAAK,EACX,EAAE,gBAAgB,CAAC,KAAK,CAAC,KAAK,GAC3B,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,GAAG,MAAM,GAAG,YAAY,CAAC,qBAuB3F;AAED,iBAAS,aAAa,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAExE;AAED,iBAAS,YAAY,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,gBAAgB,CAAC,KAAK,CAAC,KAAK,qBAExE;AAED,iBAAS,kBAAkB,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,gBAAgB,CAAC,WAAW,CAAC,KAAK,qBAQpF;AAED,OAAO,EAAC,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAC,CAAC"}
1
+ {"version":3,"file":"popover.d.ts","sourceRoot":"","sources":["../../src/components/popover.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAC,OAAO,IAAI,gBAAgB,EAAC,MAAM,wBAAwB,CAAC;AAInE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,iBAAS,OAAO,CAAC,EAAC,GAAG,KAAK,EAAC,EAAE,gBAAgB,CAAC,IAAI,CAAC,KAAK,qBAEvD;AAED,iBAAS,cAAc,CAAC,EAAC,GAAG,KAAK,EAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,KAAK,qBAEjE;AAED,iBAAS,cAAc,CAAC,EACpB,SAAS,EACT,KAAgB,EAChB,WAAe,EACf,IAAe,EACf,UAAc,EACd,MAAM,EACN,GAAG,KAAK,EACX,EAAE,gBAAgB,CAAC,KAAK,CAAC,KAAK,GAC3B,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,GAAG,MAAM,GAAG,YAAY,GAAG,QAAQ,CAAC,qBAwBtG;AAED,iBAAS,aAAa,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAExE;AAED,iBAAS,YAAY,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,gBAAgB,CAAC,KAAK,CAAC,KAAK,qBAExE;AAED,iBAAS,kBAAkB,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,gBAAgB,CAAC,WAAW,CAAC,KAAK,qBAQpF;AAED,OAAO,EAAC,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAC,CAAC"}
@@ -11,8 +11,8 @@ function Popover({ ...props }) {
11
11
  function PopoverTrigger({ ...props }) {
12
12
  return _jsx(PopoverPrimitive.Trigger, { "data-slot": "popover-trigger", ...props });
13
13
  }
14
- function PopoverContent({ className, align = "center", alignOffset = 0, side = "bottom", sideOffset = 4, ...props }) {
15
- return (_jsx(PopoverPrimitive.Portal, { container: usePortalContainer(), children: _jsx(PopoverPrimitive.Positioner, { align: align, alignOffset: alignOffset, side: side, sideOffset: sideOffset, className: "isolate z-50", children: _jsx(PopoverPrimitive.Popup, { "data-slot": "popover-content", className: cn(popupSurface, popupMotion, "z-50 flex w-72 flex-col gap-3 p-3 text-sm outline-hidden", className), ...props }) }) }));
14
+ function PopoverContent({ className, align = "center", alignOffset = 0, side = "bottom", sideOffset = 4, anchor, ...props }) {
15
+ return (_jsx(PopoverPrimitive.Portal, { container: usePortalContainer(), children: _jsx(PopoverPrimitive.Positioner, { align: align, alignOffset: alignOffset, side: side, sideOffset: sideOffset, anchor: anchor, className: "isolate z-50", children: _jsx(PopoverPrimitive.Popup, { "data-slot": "popover-content", className: cn(popupSurface, popupMotion, "z-50 flex w-72 flex-col gap-3 p-3 text-sm outline-hidden", className), ...props }) }) }));
16
16
  }
17
17
  function PopoverHeader({ className, ...props }) {
18
18
  return _jsx("div", { "data-slot": "popover-header", className: cn("flex flex-col gap-1 text-sm", className), ...props });
@@ -1 +1 @@
1
- {"version":3,"file":"popover.js","sourceRoot":"","sources":["../../src/components/popover.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAC,OAAO,IAAI,gBAAgB,EAAC,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAC,MAAM,gCAAgC,CAAC;AAClF,OAAO,EAAC,kBAAkB,EAAC,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAC,EAAE,EAAC,MAAM,IAAI,CAAC;AACtB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,SAAS,OAAO,CAAC,EAAC,GAAG,KAAK,EAA8B;IACpD,OAAO,KAAC,gBAAgB,CAAC,IAAI,iBAAW,SAAS,KAAK,KAAK,GAAI,CAAC;AACpE,CAAC;AAED,SAAS,cAAc,CAAC,EAAC,GAAG,KAAK,EAAiC;IAC9D,OAAO,KAAC,gBAAgB,CAAC,OAAO,iBAAW,iBAAiB,KAAK,KAAK,GAAI,CAAC;AAC/E,CAAC;AAED,SAAS,cAAc,CAAC,EACpB,SAAS,EACT,KAAK,GAAG,QAAQ,EAChB,WAAW,GAAG,CAAC,EACf,IAAI,GAAG,QAAQ,EACf,UAAU,GAAG,CAAC,EACd,GAAG,KAAK,EAEgF;IACxF,OAAO,CACH,KAAC,gBAAgB,CAAC,MAAM,IAAC,SAAS,EAAE,kBAAkB,EAAE,YACpD,KAAC,gBAAgB,CAAC,UAAU,IACxB,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,UAAU,EACtB,SAAS,EAAC,cAAc,YAExB,KAAC,gBAAgB,CAAC,KAAK,iBACT,iBAAiB,EAC3B,SAAS,EAAE,EAAE,CACT,YAAY,EACZ,WAAW,EACX,0DAA0D,EAC1D,SAAS,CACZ,KACG,KAAK,GACX,GACwB,GACR,CAC7B,CAAC;AACN,CAAC;AAED,SAAS,aAAa,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAA8B;IACrE,OAAO,2BAAe,gBAAgB,EAAC,SAAS,EAAE,EAAE,CAAC,6BAA6B,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,CAAC;AAClH,CAAC;AAED,SAAS,YAAY,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAA+B;IACrE,OAAO,KAAC,gBAAgB,CAAC,KAAK,iBAAW,eAAe,EAAC,SAAS,EAAE,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,CAAC;AAC9G,CAAC;AAED,SAAS,kBAAkB,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAqC;IACjF,OAAO,CACH,KAAC,gBAAgB,CAAC,WAAW,iBACf,qBAAqB,EAC/B,SAAS,EAAE,EAAE,CAAC,uBAAuB,EAAE,SAAS,CAAC,KAC7C,KAAK,GACX,CACL,CAAC;AACN,CAAC;AAED,OAAO,EAAC,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAC,CAAC"}
1
+ {"version":3,"file":"popover.js","sourceRoot":"","sources":["../../src/components/popover.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAC,OAAO,IAAI,gBAAgB,EAAC,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAC,MAAM,gCAAgC,CAAC;AAClF,OAAO,EAAC,kBAAkB,EAAC,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAC,EAAE,EAAC,MAAM,IAAI,CAAC;AACtB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,SAAS,OAAO,CAAC,EAAC,GAAG,KAAK,EAA8B;IACpD,OAAO,KAAC,gBAAgB,CAAC,IAAI,iBAAW,SAAS,KAAK,KAAK,GAAI,CAAC;AACpE,CAAC;AAED,SAAS,cAAc,CAAC,EAAC,GAAG,KAAK,EAAiC;IAC9D,OAAO,KAAC,gBAAgB,CAAC,OAAO,iBAAW,iBAAiB,KAAK,KAAK,GAAI,CAAC;AAC/E,CAAC;AAED,SAAS,cAAc,CAAC,EACpB,SAAS,EACT,KAAK,GAAG,QAAQ,EAChB,WAAW,GAAG,CAAC,EACf,IAAI,GAAG,QAAQ,EACf,UAAU,GAAG,CAAC,EACd,MAAM,EACN,GAAG,KAAK,EAE2F;IACnG,OAAO,CACH,KAAC,gBAAgB,CAAC,MAAM,IAAC,SAAS,EAAE,kBAAkB,EAAE,YACpD,KAAC,gBAAgB,CAAC,UAAU,IACxB,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,EACd,SAAS,EAAC,cAAc,YAExB,KAAC,gBAAgB,CAAC,KAAK,iBACT,iBAAiB,EAC3B,SAAS,EAAE,EAAE,CACT,YAAY,EACZ,WAAW,EACX,0DAA0D,EAC1D,SAAS,CACZ,KACG,KAAK,GACX,GACwB,GACR,CAC7B,CAAC;AACN,CAAC;AAED,SAAS,aAAa,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAA8B;IACrE,OAAO,2BAAe,gBAAgB,EAAC,SAAS,EAAE,EAAE,CAAC,6BAA6B,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,CAAC;AAClH,CAAC;AAED,SAAS,YAAY,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAA+B;IACrE,OAAO,KAAC,gBAAgB,CAAC,KAAK,iBAAW,eAAe,EAAC,SAAS,EAAE,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,CAAC;AAC9G,CAAC;AAED,SAAS,kBAAkB,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAqC;IACjF,OAAO,CACH,KAAC,gBAAgB,CAAC,WAAW,iBACf,qBAAqB,EAC/B,SAAS,EAAE,EAAE,CAAC,uBAAuB,EAAE,SAAS,CAAC,KAC7C,KAAK,GACX,CACL,CAAC;AACN,CAAC;AAED,OAAO,EAAC,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAC,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { Progress as ProgressPrimitive } from "@base-ui/react/progress";
2
2
  import { type Color } from "@repraze/kernelkit/lib/color";
3
+ import type * as React from "react";
3
4
  /** Root of a progress or meter: label + value on one row, track below. Sets the color vars. */
4
5
  declare const progressVariants: (props?: ({
5
6
  color?: "danger" | "warning" | "success" | "info" | "red" | "orange" | "yellow" | "green" | "cyan" | "blue" | "purple" | "pink" | "neutral" | "primary" | null | undefined;
@@ -15,12 +16,24 @@ interface ProgressProps extends Omit<ProgressPrimitive.Root.Props, "color"> {
15
16
  color?: Color | null;
16
17
  /** Track height: sm `h-1`, default `h-1.5`, lg `h-2`. */
17
18
  size?: ProgressSize | null;
19
+ /** `bar`: one pill track. `segmented`: a row of cells, lit in order; a wave runs through them while indeterminate. */
20
+ variant?: "bar" | "segmented";
21
+ /** `segmented` only: number of cells. */
22
+ segments?: number;
18
23
  }
19
- declare function Progress({ className, children, value, color, size, ...props }: ProgressProps): import("react").JSX.Element;
20
- declare function ProgressTrack({ className, ...props }: ProgressPrimitive.Track.Props): import("react").JSX.Element;
21
- declare function ProgressIndicator({ className, ...props }: ProgressPrimitive.Indicator.Props): import("react").JSX.Element;
22
- declare function ProgressLabel({ className, ...props }: ProgressPrimitive.Label.Props): import("react").JSX.Element;
23
- declare function ProgressValue({ className, ...props }: ProgressPrimitive.Value.Props): import("react").JSX.Element;
24
- export { Progress, ProgressIndicator, progressIndicatorClass, ProgressLabel, ProgressTrack, progressTrackClass, ProgressValue, progressVariants, };
24
+ declare function Progress({ className, children, value, color, size, variant, segments, max, ...props }: ProgressProps): React.JSX.Element;
25
+ declare function ProgressTrack({ className, ...props }: ProgressPrimitive.Track.Props): React.JSX.Element;
26
+ declare function ProgressIndicator({ className, ...props }: ProgressPrimitive.Indicator.Props): React.JSX.Element;
27
+ /**
28
+ * The `segmented` track: cells in the fill tier, unlit ones on the placeholder fill (§4). `lit` is how many
29
+ * cells are on (fractional rounds), `null` runs the indeterminate wave. Reduced motion slows the wave down.
30
+ */
31
+ declare function ProgressSegments({ segments, lit, className, ...props }: React.ComponentProps<"div"> & {
32
+ segments: number;
33
+ lit: number | null;
34
+ }): React.JSX.Element;
35
+ declare function ProgressLabel({ className, ...props }: ProgressPrimitive.Label.Props): React.JSX.Element;
36
+ declare function ProgressValue({ className, ...props }: ProgressPrimitive.Value.Props): React.JSX.Element;
37
+ export { Progress, ProgressIndicator, progressIndicatorClass, ProgressLabel, ProgressSegments, ProgressTrack, progressTrackClass, ProgressValue, progressVariants, };
25
38
  export type { ProgressProps, ProgressSize };
26
39
  //# sourceMappingURL=progress.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/components/progress.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAC,QAAQ,IAAI,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAC,KAAK,KAAK,EAAgB,MAAM,8BAA8B,CAAC;AAIvE,+FAA+F;AAC/F,QAAA,MAAM,gBAAgB;;;8EAMpB,CAAC;AAEH,+GAA+G;AAC/G,QAAA,MAAM,kBAAkB,8MACuL,CAAC;AAEhN,sDAAsD;AACtD,QAAA,MAAM,sBAAsB,8HACmG,CAAC;AAEhI,KAAK,YAAY,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAAC;AAE5C,UAAU,aAAc,SAAQ,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC;IACvE,4CAA4C;IAC5C,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IACrB,yDAAyD;IACzD,IAAI,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;CAC9B;AAED,iBAAS,QAAQ,CAAC,EAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,EAAC,EAAE,aAAa,+BAkBnF;AAED,iBAAS,aAAa,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,iBAAiB,CAAC,KAAK,CAAC,KAAK,+BAI1E;AAED,iBAAS,iBAAiB,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,iBAAiB,CAAC,SAAS,CAAC,KAAK,+BAalF;AAED,iBAAS,aAAa,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,iBAAiB,CAAC,KAAK,CAAC,KAAK,+BAQ1E;AAED,iBAAS,aAAa,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,iBAAiB,CAAC,KAAK,CAAC,KAAK,+BAQ1E;AAED,OAAO,EACH,QAAQ,EACR,iBAAiB,EACjB,sBAAsB,EACtB,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,gBAAgB,GACnB,CAAC;AACF,YAAY,EAAC,aAAa,EAAE,YAAY,EAAC,CAAC"}
1
+ {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/components/progress.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAC,QAAQ,IAAI,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAC,KAAK,KAAK,EAAgB,MAAM,8BAA8B,CAAC;AAIvE,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAEpC,+FAA+F;AAC/F,QAAA,MAAM,gBAAgB;;;8EAMpB,CAAC;AAEH,+GAA+G;AAC/G,QAAA,MAAM,kBAAkB,8MACuL,CAAC;AAEhN,sDAAsD;AACtD,QAAA,MAAM,sBAAsB,8HACmG,CAAC;AAEhI,KAAK,YAAY,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAAC;AAE5C,UAAU,aAAc,SAAQ,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC;IACvE,4CAA4C;IAC5C,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IACrB,yDAAyD;IACzD,IAAI,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IAC3B,sHAAsH;IACtH,OAAO,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC;IAC9B,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,iBAAS,QAAQ,CAAC,EACd,SAAS,EACT,QAAQ,EACR,KAAK,EACL,KAAK,EACL,IAAI,EACJ,OAAe,EACf,QAAa,EACb,GAAS,EACT,GAAG,KAAK,EACX,EAAE,aAAa,qBAwBf;AAED,iBAAS,aAAa,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,iBAAiB,CAAC,KAAK,CAAC,KAAK,qBAI1E;AAED,iBAAS,iBAAiB,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,iBAAiB,CAAC,SAAS,CAAC,KAAK,qBAalF;AAKD;;;GAGG;AACH,iBAAS,gBAAgB,CAAC,EACtB,QAAQ,EACR,GAAG,EACH,SAAS,EACT,GAAG,KAAK,EACX,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CAAC,qBA6BtE;AAED,iBAAS,aAAa,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,iBAAiB,CAAC,KAAK,CAAC,KAAK,qBAQ1E;AAED,iBAAS,aAAa,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,iBAAiB,CAAC,KAAK,CAAC,KAAK,qBAQ1E;AAED,OAAO,EACH,QAAQ,EACR,iBAAiB,EACjB,sBAAsB,EACtB,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,gBAAgB,GACnB,CAAC;AACF,YAAY,EAAC,aAAa,EAAE,YAAY,EAAC,CAAC"}
@@ -2,6 +2,7 @@
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { Progress as ProgressPrimitive } from "@base-ui/react/progress";
4
4
  import { colorVariants } from "@repraze/kernelkit/lib/color";
5
+ import { placeholderFill } from "@repraze/kernelkit/lib/recipes";
5
6
  import { cva } from "class-variance-authority";
6
7
  import { cn } from "cn";
7
8
  /** Root of a progress or meter: label + value on one row, track below. Sets the color vars. */
@@ -16,10 +17,10 @@ const progressVariants = cva("group/progress flex w-full flex-wrap items-center
16
17
  const progressTrackClass = "relative flex h-1.5 w-full items-center overflow-hidden rounded-pill bg-(--c)/15 group-data-[size=lg]/progress:h-2 group-data-[size=sm]/progress:h-1 hc:bg-transparent hc:inset-ring hc:inset-ring-border";
17
18
  /** Filled part, solid fill tier of the color (§2). */
18
19
  const progressIndicatorClass = "h-full rounded-pill bg-(--c-fill) transition-[width,background-color] duration-300 ease-out motion-reduce:transition-none";
19
- function Progress({ className, children, value, color, size, ...props }) {
20
+ function Progress({ className, children, value, color, size, variant = "bar", segments = 12, max = 100, ...props }) {
20
21
  const resolvedColor = color ?? "primary";
21
22
  const resolvedSize = size ?? "default";
22
- return (_jsxs(ProgressPrimitive.Root, { value: value, "data-slot": "progress", "data-color": resolvedColor, "data-size": resolvedSize, className: cn(progressVariants({ color: resolvedColor, size: resolvedSize }), className), ...props, children: [children, _jsx(ProgressTrack, { children: _jsx(ProgressIndicator, {}) })] }));
23
+ return (_jsxs(ProgressPrimitive.Root, { value: value, max: max, "data-slot": "progress", "data-variant": variant, "data-color": resolvedColor, "data-size": resolvedSize, className: cn(progressVariants({ color: resolvedColor, size: resolvedSize }), className), ...props, children: [children, variant === "segmented" ? (_jsx(ProgressSegments, { segments: segments, lit: value == null ? null : (value / max) * segments })) : (_jsx(ProgressTrack, { children: _jsx(ProgressIndicator, {}) }))] }));
23
24
  }
24
25
  function ProgressTrack({ className, ...props }) {
25
26
  return (_jsx(ProgressPrimitive.Track, { "data-slot": "progress-track", className: cn(progressTrackClass, className), ...props }));
@@ -29,11 +30,25 @@ function ProgressIndicator({ className, ...props }) {
29
30
  // indeterminate (value null): a third of the track sweeping left to right
30
31
  "data-indeterminate:w-2/5 data-indeterminate:animate-indeterminate motion-reduce:data-indeterminate:animate-pulse", className), ...props }));
31
32
  }
33
+ /** Negative delays so every cell is mid-cycle on the first frame (no dead start). */
34
+ const cellDelay = (i, n) => ({ animationDelay: `${-((n - i) * 1.2) / n}s` });
35
+ /**
36
+ * The `segmented` track: cells in the fill tier, unlit ones on the placeholder fill (§4). `lit` is how many
37
+ * cells are on (fractional rounds), `null` runs the indeterminate wave. Reduced motion slows the wave down.
38
+ */
39
+ function ProgressSegments({ segments, lit, className, ...props }) {
40
+ const on = lit === null ? -1 : Math.round(Math.min(segments, Math.max(0, lit)));
41
+ return (_jsx("div", { "data-slot": "progress-segments", "aria-hidden": true, className: cn("flex h-1.5 w-full gap-0.5 group-data-[size=lg]/progress:h-2 group-data-[size=sm]/progress:h-1", className), ...props, children: Array.from({ length: segments }, (_, i) => (_jsx("span", { "data-lit": on < 0 || i < on ? "" : undefined, className: cn("h-full flex-1 rounded-xs transition-colors duration-300 motion-reduce:transition-none", on < 0
42
+ ? "animate-loader-cell bg-(--c-fill) motion-reduce:[animation-duration:3s]"
43
+ : i < on
44
+ ? "bg-(--c-fill)"
45
+ : placeholderFill), style: on < 0 ? cellDelay(i, segments) : undefined }, i))) }));
46
+ }
32
47
  function ProgressLabel({ className, ...props }) {
33
48
  return (_jsx(ProgressPrimitive.Label, { "data-slot": "progress-label", className: cn("text-sm font-medium", className), ...props }));
34
49
  }
35
50
  function ProgressValue({ className, ...props }) {
36
51
  return (_jsx(ProgressPrimitive.Value, { "data-slot": "progress-value", className: cn("ms-auto font-alt text-xs text-muted-foreground tabular-nums", className), ...props }));
37
52
  }
38
- export { Progress, ProgressIndicator, progressIndicatorClass, ProgressLabel, ProgressTrack, progressTrackClass, ProgressValue, progressVariants, };
53
+ export { Progress, ProgressIndicator, progressIndicatorClass, ProgressLabel, ProgressSegments, ProgressTrack, progressTrackClass, ProgressValue, progressVariants, };
39
54
  //# sourceMappingURL=progress.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"progress.js","sourceRoot":"","sources":["../../src/components/progress.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAC,QAAQ,IAAI,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAa,aAAa,EAAC,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAC,GAAG,EAAC,MAAM,0BAA0B,CAAC;AAC7C,OAAO,EAAC,EAAE,EAAC,MAAM,IAAI,CAAC;AAEtB,+FAA+F;AAC/F,MAAM,gBAAgB,GAAG,GAAG,CAAC,qEAAqE,EAAE;IAChG,QAAQ,EAAE;QACN,KAAK,EAAE,aAAa;QACpB,IAAI,EAAE,EAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAC;KACtC;IACD,eAAe,EAAE,EAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAC;CACvD,CAAC,CAAC;AAEH,+GAA+G;AAC/G,MAAM,kBAAkB,GACpB,2MAA2M,CAAC;AAEhN,sDAAsD;AACtD,MAAM,sBAAsB,GACxB,2HAA2H,CAAC;AAWhI,SAAS,QAAQ,CAAC,EAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,EAAgB;IAChF,MAAM,aAAa,GAAG,KAAK,IAAI,SAAS,CAAC;IACzC,MAAM,YAAY,GAAG,IAAI,IAAI,SAAS,CAAC;IACvC,OAAO,CACH,MAAC,iBAAiB,CAAC,IAAI,IACnB,KAAK,EAAE,KAAK,eACF,UAAU,gBACR,aAAa,eACd,YAAY,EACvB,SAAS,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,EAAC,CAAC,EAAE,SAAS,CAAC,KAClF,KAAK,aAER,QAAQ,EACT,KAAC,aAAa,cACV,KAAC,iBAAiB,KAAG,GACT,IACK,CAC5B,CAAC;AACN,CAAC;AAED,SAAS,aAAa,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAgC;IACvE,OAAO,CACH,KAAC,iBAAiB,CAAC,KAAK,iBAAW,gBAAgB,EAAC,SAAS,EAAE,EAAE,CAAC,kBAAkB,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,CAClH,CAAC;AACN,CAAC;AAED,SAAS,iBAAiB,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAoC;IAC/E,OAAO,CACH,KAAC,iBAAiB,CAAC,SAAS,iBACd,oBAAoB,EAC9B,SAAS,EAAE,EAAE,CACT,sBAAsB;QACtB,0EAA0E;QAC1E,kHAAkH,EAClH,SAAS,CACZ,KACG,KAAK,GACX,CACL,CAAC;AACN,CAAC;AAED,SAAS,aAAa,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAgC;IACvE,OAAO,CACH,KAAC,iBAAiB,CAAC,KAAK,iBACV,gBAAgB,EAC1B,SAAS,EAAE,EAAE,CAAC,qBAAqB,EAAE,SAAS,CAAC,KAC3C,KAAK,GACX,CACL,CAAC;AACN,CAAC;AAED,SAAS,aAAa,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAgC;IACvE,OAAO,CACH,KAAC,iBAAiB,CAAC,KAAK,iBACV,gBAAgB,EAC1B,SAAS,EAAE,EAAE,CAAC,6DAA6D,EAAE,SAAS,CAAC,KACnF,KAAK,GACX,CACL,CAAC;AACN,CAAC;AAED,OAAO,EACH,QAAQ,EACR,iBAAiB,EACjB,sBAAsB,EACtB,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,gBAAgB,GACnB,CAAC"}
1
+ {"version":3,"file":"progress.js","sourceRoot":"","sources":["../../src/components/progress.tsx"],"names":[],"mappings":"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"}
@@ -34,5 +34,10 @@ interface SearchItemProps extends Omit<React.ComponentProps<typeof CommandItem>,
34
34
  declare function SearchItem({ icon, title, description, meta, className, ...props }: SearchItemProps): React.JSX.Element;
35
35
  /** Keyboard hints under the results. */
36
36
  declare function SearchFooter({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
37
- export { SearchDialog, SearchFooter, SearchItem };
37
+ /**
38
+ * The suite's search filter for `<Command filter={substringFilter}>`: a plain substring match (prefix
39
+ * matches rank first). cmdk's default fuzzy match finds "t…a…b" in nearly every title.
40
+ */
41
+ declare function substringFilter(value: string, search: string, keywords?: string[]): 0 | 1 | 0.5;
42
+ export { SearchDialog, SearchFooter, SearchItem, substringFilter };
38
43
  //# sourceMappingURL=search-dialog.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"search-dialog.d.ts","sourceRoot":"","sources":["../../src/components/search-dialog.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAC,aAAa,EAAE,WAAW,EAAC,MAAM,uCAAuC,CAAC;AAIjF,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAEpC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,iBAAS,YAAY,CAAC,EAClB,KAAgB,EAChB,WAAgC,EAChC,GAAG,KAAK,EACX,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,aAAa,CAAC,qBAE5C;AAED,UAAU,eAAgB,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,WAAW,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IAClG,mDAAmD;IACnD,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,2CAA2C;IAC3C,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,wDAAwD;IACxD,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC1B;AAED,wGAAwG;AACxG,iBAAS,UAAU,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,eAAe,qBAezF;AAED,wCAAwC;AACxC,iBAAS,YAAY,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAmBvE;AAED,OAAO,EAAC,YAAY,EAAE,YAAY,EAAE,UAAU,EAAC,CAAC"}
1
+ {"version":3,"file":"search-dialog.d.ts","sourceRoot":"","sources":["../../src/components/search-dialog.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAC,aAAa,EAAE,WAAW,EAAC,MAAM,uCAAuC,CAAC;AAIjF,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAEpC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,iBAAS,YAAY,CAAC,EAClB,KAAgB,EAChB,WAAgC,EAChC,GAAG,KAAK,EACX,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,aAAa,CAAC,qBAE5C;AAED,UAAU,eAAgB,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,WAAW,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IAClG,mDAAmD;IACnD,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,2CAA2C;IAC3C,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,wDAAwD;IACxD,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC1B;AAED,wGAAwG;AACxG,iBAAS,UAAU,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,eAAe,qBAezF;AAED,wCAAwC;AACxC,iBAAS,YAAY,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAmBvE;AAED;;;GAGG;AACH,iBAAS,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,eAO1E;AAED,OAAO,EAAC,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAC,CAAC"}
@@ -35,5 +35,17 @@ function SearchItem({ icon, title, description, meta, className, ...props }) {
35
35
  function SearchFooter({ className, ...props }) {
36
36
  return (_jsxs("div", { "data-slot": "search-footer", className: cn("flex items-center gap-4 border-t px-3 py-2 text-xs text-muted-foreground", className), ...props, children: [_jsxs("span", { className: "flex items-center gap-1", children: [_jsx(Kbd, { children: "\u2191" }), _jsx(Kbd, { children: "\u2193" }), " move"] }), _jsxs("span", { className: "flex items-center gap-1", children: [_jsx(Kbd, { children: "\u21B5" }), " open"] }), _jsxs("span", { className: "flex items-center gap-1", children: [_jsx(Kbd, { children: "esc" }), " close"] })] }));
37
37
  }
38
- export { SearchDialog, SearchFooter, SearchItem };
38
+ /**
39
+ * The suite's search filter for `<Command filter={substringFilter}>`: a plain substring match (prefix
40
+ * matches rank first). cmdk's default fuzzy match finds "t…a…b" in nearly every title.
41
+ */
42
+ function substringFilter(value, search, keywords) {
43
+ const haystack = [value, ...(keywords ?? [])].join(" ").toLowerCase();
44
+ const needle = search.trim().toLowerCase();
45
+ if (haystack.startsWith(needle)) {
46
+ return 1;
47
+ }
48
+ return haystack.includes(needle) ? 0.5 : 0;
49
+ }
50
+ export { SearchDialog, SearchFooter, SearchItem, substringFilter };
39
51
  //# sourceMappingURL=search-dialog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"search-dialog.js","sourceRoot":"","sources":["../../src/components/search-dialog.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAC,aAAa,EAAE,WAAW,EAAC,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAC,GAAG,EAAC,MAAM,mCAAmC,CAAC;AACtD,OAAO,EAAC,EAAE,EAAC,MAAM,IAAI,CAAC;AACtB,OAAO,EAAC,kBAAkB,EAAC,MAAM,cAAc,CAAC;AAGhD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAS,YAAY,CAAC,EAClB,KAAK,GAAG,QAAQ,EAChB,WAAW,GAAG,kBAAkB,EAChC,GAAG,KAAK,EACiC;IACzC,OAAO,KAAC,aAAa,IAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,KAAM,KAAK,GAAI,CAAC;AAChF,CAAC;AAYD,wGAAwG;AACxG,SAAS,UAAU,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,EAAkB;IACtF,OAAO,CACH,MAAC,WAAW,iBAAW,aAAa,EAAC,SAAS,EAAE,EAAE,CAAC,iCAAiC,EAAE,SAAS,CAAC,KAAM,KAAK,aACtG,IAAI,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,oDAAoD,YAAE,IAAI,GAAQ,CAAC,CAAC,CAAC,IAAI,EACjG,gBAAM,SAAS,EAAC,8BAA8B,aAC1C,eAAM,SAAS,EAAC,sBAAsB,YAAE,KAAK,GAAQ,EACpD,WAAW,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,gCAAgC,YAAE,WAAW,GAAQ,CAAC,CAAC,CAAC,IAAI,IACxF,EACN,IAAI,EACL,KAAC,kBAAkB,yBAEf,SAAS,EAAC,qFAAqF,GACjG,IACQ,CACjB,CAAC;AACN,CAAC;AAED,wCAAwC;AACxC,SAAS,YAAY,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAA8B;IACpE,OAAO,CACH,4BACc,eAAe,EACzB,SAAS,EAAE,EAAE,CAAC,0EAA0E,EAAE,SAAS,CAAC,KAChG,KAAK,aAET,gBAAM,SAAS,EAAC,yBAAyB,aACrC,KAAC,GAAG,yBAAQ,EACZ,KAAC,GAAG,yBAAQ,aACT,EACP,gBAAM,SAAS,EAAC,yBAAyB,aACrC,KAAC,GAAG,yBAAQ,aACT,EACP,gBAAM,SAAS,EAAC,yBAAyB,aACrC,KAAC,GAAG,sBAAU,cACX,IACL,CACT,CAAC;AACN,CAAC;AAED,OAAO,EAAC,YAAY,EAAE,YAAY,EAAE,UAAU,EAAC,CAAC"}
1
+ {"version":3,"file":"search-dialog.js","sourceRoot":"","sources":["../../src/components/search-dialog.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAC,aAAa,EAAE,WAAW,EAAC,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAC,GAAG,EAAC,MAAM,mCAAmC,CAAC;AACtD,OAAO,EAAC,EAAE,EAAC,MAAM,IAAI,CAAC;AACtB,OAAO,EAAC,kBAAkB,EAAC,MAAM,cAAc,CAAC;AAGhD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAS,YAAY,CAAC,EAClB,KAAK,GAAG,QAAQ,EAChB,WAAW,GAAG,kBAAkB,EAChC,GAAG,KAAK,EACiC;IACzC,OAAO,KAAC,aAAa,IAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,KAAM,KAAK,GAAI,CAAC;AAChF,CAAC;AAYD,wGAAwG;AACxG,SAAS,UAAU,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,EAAkB;IACtF,OAAO,CACH,MAAC,WAAW,iBAAW,aAAa,EAAC,SAAS,EAAE,EAAE,CAAC,iCAAiC,EAAE,SAAS,CAAC,KAAM,KAAK,aACtG,IAAI,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,oDAAoD,YAAE,IAAI,GAAQ,CAAC,CAAC,CAAC,IAAI,EACjG,gBAAM,SAAS,EAAC,8BAA8B,aAC1C,eAAM,SAAS,EAAC,sBAAsB,YAAE,KAAK,GAAQ,EACpD,WAAW,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,gCAAgC,YAAE,WAAW,GAAQ,CAAC,CAAC,CAAC,IAAI,IACxF,EACN,IAAI,EACL,KAAC,kBAAkB,yBAEf,SAAS,EAAC,qFAAqF,GACjG,IACQ,CACjB,CAAC;AACN,CAAC;AAED,wCAAwC;AACxC,SAAS,YAAY,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAA8B;IACpE,OAAO,CACH,4BACc,eAAe,EACzB,SAAS,EAAE,EAAE,CAAC,0EAA0E,EAAE,SAAS,CAAC,KAChG,KAAK,aAET,gBAAM,SAAS,EAAC,yBAAyB,aACrC,KAAC,GAAG,yBAAQ,EACZ,KAAC,GAAG,yBAAQ,aACT,EACP,gBAAM,SAAS,EAAC,yBAAyB,aACrC,KAAC,GAAG,yBAAQ,aACT,EACP,gBAAM,SAAS,EAAC,yBAAyB,aACrC,KAAC,GAAG,sBAAU,cACX,IACL,CACT,CAAC;AACN,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,KAAa,EAAE,MAAc,EAAE,QAAmB;IACvE,MAAM,QAAQ,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IACtE,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,CAAC;IACb,CAAC;IACD,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,OAAO,EAAC,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAC,CAAC"}
@@ -13,7 +13,10 @@ interface SearchTriggerProps extends React.ComponentProps<typeof Button> {
13
13
  /** Placeholder text. */
14
14
  children?: React.ReactNode;
15
15
  }
16
- /** Header search button: icon, placeholder, OS-aware shortcut. Same 32px height as the header's icon buttons. Open your dialog in `onClick`. */
16
+ /**
17
+ * Header search button: icon, placeholder, OS-aware shortcut. Same 32px height as the header's icon buttons. Open your dialog in `onClick`.
18
+ * The keycap gets the same inset on the right as top/bottom (32 - 20 = 6px each side, border included).
19
+ */
17
20
  declare function SearchTrigger({ children, className, ...props }: SearchTriggerProps): React.JSX.Element;
18
21
  export { SearchTrigger, useModKey, useSearchHotkeys };
19
22
  export type { SearchTriggerProps };
@@ -1 +1 @@
1
- {"version":3,"file":"search-trigger.d.ts","sourceRoot":"","sources":["../../src/components/search-trigger.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAC,MAAM,EAAC,MAAM,sCAAsC,CAAC;AAI5D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,gFAAgF;AAChF,iBAAS,SAAS,IAAI,MAAM,CAQ3B;AAQD;;;GAGG;AACH,iBAAS,gBAAgB,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,EAAE,EAAC,OAAc,EAAC,GAAE;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAM,QAiBtG;AAED,UAAU,kBAAmB,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC;IACpE,wBAAwB;IACxB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC9B;AAED,gJAAgJ;AAChJ,iBAAS,aAAa,CAAC,EAAC,QAAoB,EAAE,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,kBAAkB,qBAerF;AAED,OAAO,EAAC,aAAa,EAAE,SAAS,EAAE,gBAAgB,EAAC,CAAC;AACpD,YAAY,EAAC,kBAAkB,EAAC,CAAC"}
1
+ {"version":3,"file":"search-trigger.d.ts","sourceRoot":"","sources":["../../src/components/search-trigger.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAC,MAAM,EAAC,MAAM,sCAAsC,CAAC;AAI5D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,gFAAgF;AAChF,iBAAS,SAAS,IAAI,MAAM,CAQ3B;AAQD;;;GAGG;AACH,iBAAS,gBAAgB,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,EAAE,EAAC,OAAc,EAAC,GAAE;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAM,QAiBtG;AAED,UAAU,kBAAmB,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC;IACpE,wBAAwB;IACxB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC9B;AAED;;;GAGG;AACH,iBAAS,aAAa,CAAC,EAAC,QAAoB,EAAE,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,kBAAkB,qBAkBrF;AAED,OAAO,EAAC,aAAa,EAAE,SAAS,EAAE,gBAAgB,EAAC,CAAC;AACpD,YAAY,EAAC,kBAAkB,EAAC,CAAC"}
@@ -43,10 +43,13 @@ function useSearchHotkeys(onOpen, { enabled = true } = {}) {
43
43
  return () => window.removeEventListener("keydown", onKey);
44
44
  }, [onOpen, enabled]);
45
45
  }
46
- /** Header search button: icon, placeholder, OS-aware shortcut. Same 32px height as the header's icon buttons. Open your dialog in `onClick`. */
46
+ /**
47
+ * Header search button: icon, placeholder, OS-aware shortcut. Same 32px height as the header's icon buttons. Open your dialog in `onClick`.
48
+ * The keycap gets the same inset on the right as top/bottom (32 - 20 = 6px each side, border included).
49
+ */
47
50
  function SearchTrigger({ children = "Search…", className, ...props }) {
48
51
  const mod = useModKey();
49
- return (_jsxs(Button, { variant: "outline", "aria-label": "Search", "data-slot": "search-trigger", className: cn("w-8 justify-start px-0 text-muted-foreground sm:w-48 sm:px-2.5 md:w-56", className), ...props, children: [_jsx(SearchIcon, { "data-icon": "inline-start", className: "mx-auto sm:mx-0" }), _jsx("span", { className: "hidden flex-1 text-start sm:inline", children: children }), _jsxs(Kbd, { className: "hidden sm:inline-flex", children: [mod, " K"] })] }));
52
+ return (_jsxs(Button, { variant: "outline", "aria-label": "Search", "data-slot": "search-trigger", className: cn("w-8 justify-start px-0 text-muted-foreground sm:w-48 sm:pr-1.25 sm:pl-2.5 md:w-56", className), ...props, children: [_jsx(SearchIcon, { "data-icon": "inline-start", className: "mx-auto sm:mx-0" }), _jsx("span", { className: "hidden flex-1 text-start sm:inline", children: children }), _jsxs(Kbd, { className: "hidden sm:inline-flex", children: [mod, " K"] })] }));
50
53
  }
51
54
  export { SearchTrigger, useModKey, useSearchHotkeys };
52
55
  //# sourceMappingURL=search-trigger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"search-trigger.js","sourceRoot":"","sources":["../../src/components/search-trigger.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search-trigger.js","sourceRoot":"","sources":["../../src/components/search-trigger.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { useRender } from "@base-ui/react/use-render";
2
+ interface ShimmerProps extends useRender.ComponentProps<"span"> {
3
+ /** Seconds per sweep. */
4
+ duration?: number;
5
+ }
6
+ /**
7
+ * Text with a highlight band sweeping across it ("Thinking…", "Indexing files…"). Muted text, foreground
8
+ * band. Reduced motion: plain muted text.
9
+ */
10
+ declare function Shimmer({ render, duration, className, style, ...props }: ShimmerProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
11
+ export { Shimmer };
12
+ export type { ShimmerProps };
13
+ //# sourceMappingURL=shimmer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shimmer.d.ts","sourceRoot":"","sources":["../../src/components/shimmer.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAC,SAAS,EAAC,MAAM,2BAA2B,CAAC;AAGpD,UAAU,YAAa,SAAQ,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC;IAC3D,yBAAyB;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,iBAAS,OAAO,CAAC,EAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,EAAC,EAAE,YAAY,8FAiB5E;AAED,OAAO,EAAC,OAAO,EAAC,CAAC;AACjB,YAAY,EAAC,YAAY,EAAC,CAAC"}
@@ -0,0 +1,21 @@
1
+ "use client";
2
+ import { mergeProps } from "@base-ui/react/merge-props";
3
+ import { useRender } from "@base-ui/react/use-render";
4
+ import { cn } from "cn";
5
+ /**
6
+ * Text with a highlight band sweeping across it ("Thinking…", "Indexing files…"). Muted text, foreground
7
+ * band. Reduced motion: plain muted text.
8
+ */
9
+ function Shimmer({ render, duration, className, style, ...props }) {
10
+ return useRender({
11
+ defaultTagName: "span",
12
+ props: mergeProps({
13
+ className: cn("inline-block animate-shimmer bg-linear-to-r from-muted-foreground from-40% via-foreground via-50% to-muted-foreground to-60% bg-size-[250%_100%] bg-clip-text text-transparent", "motion-reduce:animate-none motion-reduce:bg-none motion-reduce:text-muted-foreground", className),
14
+ style: duration ? { animationDuration: `${duration}s`, ...style } : style,
15
+ }, props),
16
+ render,
17
+ state: { slot: "shimmer" },
18
+ });
19
+ }
20
+ export { Shimmer };
21
+ //# sourceMappingURL=shimmer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shimmer.js","sourceRoot":"","sources":["../../src/components/shimmer.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAC,UAAU,EAAC,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAC,SAAS,EAAC,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAC,EAAE,EAAC,MAAM,IAAI,CAAC;AAOtB;;;GAGG;AACH,SAAS,OAAO,CAAC,EAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,EAAe;IACzE,OAAO,SAAS,CAAC;QACb,cAAc,EAAE,MAAM;QACtB,KAAK,EAAE,UAAU,CACb;YACI,SAAS,EAAE,EAAE,CACT,gLAAgL,EAChL,sFAAsF,EACtF,SAAS,CACZ;YACD,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAC,iBAAiB,EAAE,GAAG,QAAQ,GAAG,EAAE,GAAG,KAAK,EAAC,CAAC,CAAC,CAAC,KAAK;SAC1E,EACD,KAAK,CACR;QACD,MAAM;QACN,KAAK,EAAE,EAAC,IAAI,EAAE,SAAS,EAAC;KAC3B,CAAC,CAAC;AACP,CAAC;AAED,OAAO,EAAC,OAAO,EAAC,CAAC"}
@@ -1,12 +1,34 @@
1
+ import { type Color } from "@repraze/kernelkit/lib/color";
1
2
  import { type VariantProps } from "class-variance-authority";
2
- /** Sizes follow the icon column of §4 so a spinner can replace an icon in place. */
3
+ import * as React from "react";
4
+ /**
5
+ * Sizes follow the icon column of §4 so a spinner can replace an icon in place. Each size also sets the
6
+ * vars the techy variants draw with: `--ls` (box), `--lc`/`--lg` (dot cell and gap, whole pixels so cells
7
+ * stay crisp) and `--lb` (bar width).
8
+ */
3
9
  declare const spinnerVariants: (props?: ({
10
+ variant?: "blink" | "ring" | "dots" | "braille" | "scan" | "bars" | null | undefined;
4
11
  size?: "default" | "xs" | "sm" | "lg" | "xl" | null | undefined;
5
12
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
6
- interface SpinnerProps extends React.ComponentProps<"svg">, VariantProps<typeof spinnerVariants> {
13
+ type SpinnerVariant = NonNullable<VariantProps<typeof spinnerVariants>["variant"]>;
14
+ /**
15
+ * Sets the default `variant` of every Spinner below it, including the ones the kit renders itself
16
+ * (tree lazy rows, stepper, file upload, toasts): one switch for the whole app's loading look.
17
+ */
18
+ declare function SpinnerProvider({ variant, children }: {
19
+ variant: SpinnerVariant;
20
+ children: React.ReactNode;
21
+ }): React.JSX.Element;
22
+ interface SpinnerProps extends Omit<React.ComponentProps<"span">, "color" | "children">, VariantProps<typeof spinnerVariants> {
23
+ /** Color from the §2 axis; defaults to `currentColor`. */
24
+ color?: Color;
7
25
  }
8
- /** Indeterminate loading indicator. Inherits `currentColor`; announces itself as a status. */
9
- declare function Spinner({ className, size, ...props }: SpinnerProps): import("react").JSX.Element;
10
- export { Spinner, spinnerVariants };
11
- export type { SpinnerProps };
26
+ /**
27
+ * Indeterminate loading indicator at icon size: a spinning ring, or a techy variant (dot matrix, braille,
28
+ * scan line, block cursor, equalizer bars). Inherits `currentColor`; announces itself as a status. The
29
+ * default variant comes from the nearest `SpinnerProvider`.
30
+ */
31
+ declare function Spinner({ variant, size, color, className, ...props }: SpinnerProps): React.JSX.Element;
32
+ export { Spinner, SpinnerProvider, spinnerVariants };
33
+ export type { SpinnerProps, SpinnerVariant };
12
34
  //# sourceMappingURL=spinner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"spinner.d.ts","sourceRoot":"","sources":["../../src/components/spinner.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAM,KAAK,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAIhE,oFAAoF;AACpF,QAAA,MAAM,eAAe;;8EAepB,CAAC;AAEF,UAAU,YAAa,SAAQ,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,OAAO,eAAe,CAAC;CAAG;AAEnG,8FAA8F;AAC9F,iBAAS,OAAO,CAAC,EAAC,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,EAAC,EAAE,YAAY,+BAWzD;AAED,OAAO,EAAC,OAAO,EAAE,eAAe,EAAC,CAAC;AAClC,YAAY,EAAC,YAAY,EAAC,CAAC"}
1
+ {"version":3,"file":"spinner.d.ts","sourceRoot":"","sources":["../../src/components/spinner.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAC,KAAK,KAAK,EAAgB,MAAM,8BAA8B,CAAC;AAEvE,OAAO,EAAM,KAAK,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAGhE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B;;;;GAIG;AACH,QAAA,MAAM,eAAe;;;8EAqBnB,CAAC;AAEH,KAAK,cAAc,GAAG,WAAW,CAAC,YAAY,CAAC,OAAO,eAAe,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AAgEnF;;;GAGG;AACH,iBAAS,eAAe,CAAC,EAAC,OAAO,EAAE,QAAQ,EAAC,EAAE;IAAC,OAAO,EAAE,cAAc,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAC,qBAEjG;AAED,UAAU,YACN,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,EAAE,YAAY,CAAC,OAAO,eAAe,CAAC;IACtG,0DAA0D;IAC1D,KAAK,CAAC,EAAE,KAAK,CAAC;CACjB;AAED;;;;GAIG;AACH,iBAAS,OAAO,CAAC,EAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,YAAY,qBAqBzE;AAED,OAAO,EAAC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAC,CAAC;AACnD,YAAY,EAAC,YAAY,EAAE,cAAc,EAAC,CAAC"}
@@ -1,26 +1,78 @@
1
1
  "use client";
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { colorVariants } from "@repraze/kernelkit/lib/color";
4
+ import { placeholderFill } from "@repraze/kernelkit/lib/recipes";
3
5
  import { cva } from "class-variance-authority";
4
6
  import { cn } from "cn";
5
7
  import { Loader2Icon } from "lucide-react";
6
- /** Sizes follow the icon column of §4 so a spinner can replace an icon in place. */
7
- const spinnerVariants = cva(
8
- // reduced motion: slow the spin down rather than freeze it, a frozen spinner reads as a glyph
9
- "shrink-0 animate-spin text-current motion-reduce:[animation-duration:2.5s]", {
8
+ import * as React from "react";
9
+ /**
10
+ * Sizes follow the icon column of §4 so a spinner can replace an icon in place. Each size also sets the
11
+ * vars the techy variants draw with: `--ls` (box), `--lc`/`--lg` (dot cell and gap, whole pixels so cells
12
+ * stay crisp) and `--lb` (bar width).
13
+ */
14
+ const spinnerVariants = cva("relative inline-flex shrink-0 items-center justify-center align-middle text-current", {
10
15
  variants: {
16
+ variant: {
17
+ // reduced motion: slow the spin down rather than freeze it, a frozen spinner reads as a glyph
18
+ ring: "size-(--ls) animate-spin motion-reduce:[animation-duration:2.5s]",
19
+ dots: "size-(--ls)",
20
+ braille: "h-(--ls) w-(--ls) items-start overflow-hidden font-mono text-(length:--ls) leading-none",
21
+ // hc: the placeholder fill is the dark border colour there, so the box becomes an outline instead
22
+ scan: `size-(--ls) overflow-hidden rounded-box ${placeholderFill} hc:bg-transparent hc:shadow-[inset_0_0_0_1px_var(--border)]`,
23
+ blink: "h-(--ls) w-[calc(var(--ls)/2)]",
24
+ bars: "size-(--ls) justify-between",
25
+ },
11
26
  size: {
12
- xs: "size-3",
13
- sm: "size-3.5",
14
- default: "size-4",
15
- lg: "size-5",
16
- xl: "size-6",
27
+ xs: "[--lb:2px] [--lc:3px] [--lg:1px] [--ls:0.75rem]",
28
+ sm: "[--lb:2px] [--lc:4px] [--lg:1px] [--ls:0.875rem]",
29
+ default: "[--lb:3px] [--lc:4px] [--lg:2px] [--ls:1rem]",
30
+ lg: "[--lb:3px] [--lc:6px] [--lg:1px] [--ls:1.25rem]",
31
+ xl: "[--lb:4px] [--lc:6px] [--lg:3px] [--ls:1.5rem]",
17
32
  },
18
33
  },
19
- defaultVariants: { size: "default" },
34
+ defaultVariants: { variant: "ring", size: "default" },
20
35
  });
21
- /** Indeterminate loading indicator. Inherits `currentColor`; announces itself as a status. */
22
- function Spinner({ className, size, ...props }) {
23
- return (_jsx(Loader2Icon, { "data-slot": "spinner", "data-size": size ?? "default", role: "status", "aria-label": "Loading", className: cn(spinnerVariants({ size }), className), ...props }));
36
+ /** Every animated part: slower, not frozen, under reduced motion. */
37
+ const slow = "motion-reduce:[animation-duration:3s]";
38
+ const BRAILLE = "⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏";
39
+ /** Negative delays so every cell is mid-cycle on the first frame (no dead start). */
40
+ const delay = (i, n, duration) => ({ animationDelay: `${-((n - i) * duration) / n}s` });
41
+ function SpinnerParts({ variant }) {
42
+ switch (variant) {
43
+ case "ring":
44
+ return _jsx(Loader2Icon, { "aria-hidden": true, className: "size-full" });
45
+ case "dots":
46
+ return (_jsx("span", { "data-slot": "spinner-grid", className: "grid grid-cols-[repeat(3,var(--lc))] grid-rows-[repeat(3,var(--lc))] gap-(--lg)", children: Array.from({ length: 9 }, (_, i) => (_jsx("span", { className: cn("animate-loader-cell rounded-pill bg-current", slow),
47
+ // diagonal wave from the top-left corner
48
+ style: delay(4 - (Math.floor(i / 3) + (i % 3)), 5, 1.2) }, i))) }));
49
+ case "braille":
50
+ return (_jsx("span", { "aria-hidden": true, className: cn("flex animate-loader-braille flex-col", slow), children: [...BRAILLE].map((g) => (_jsx("span", { className: "h-(--ls) leading-(--ls)", children: g }, g))) }));
51
+ case "scan":
52
+ return (_jsx("span", { className: cn("absolute inset-0 animate-loader-scan border-e-2 border-current bg-linear-to-r from-transparent to-current/40", slow) }));
53
+ case "blink":
54
+ return _jsx("span", { className: cn("size-full animate-loader-blink bg-current", slow) });
55
+ case "bars":
56
+ return Array.from({ length: 4 }, (_, i) => (_jsx("span", { className: cn("h-full w-(--lb) origin-bottom animate-loader-bars rounded-box bg-current", slow), style: delay((i * 2 + Math.floor(i / 2)) % 4, 4, 0.9) }, i)));
57
+ }
58
+ }
59
+ const SpinnerContext = React.createContext("ring");
60
+ /**
61
+ * Sets the default `variant` of every Spinner below it, including the ones the kit renders itself
62
+ * (tree lazy rows, stepper, file upload, toasts): one switch for the whole app's loading look.
63
+ */
64
+ function SpinnerProvider({ variant, children }) {
65
+ return _jsx(SpinnerContext.Provider, { value: variant, children: children });
66
+ }
67
+ /**
68
+ * Indeterminate loading indicator at icon size: a spinning ring, or a techy variant (dot matrix, braille,
69
+ * scan line, block cursor, equalizer bars). Inherits `currentColor`; announces itself as a status. The
70
+ * default variant comes from the nearest `SpinnerProvider`.
71
+ */
72
+ function Spinner({ variant, size, color, className, ...props }) {
73
+ const fallback = React.useContext(SpinnerContext);
74
+ const resolved = variant ?? fallback;
75
+ return (_jsx("span", { "data-slot": "spinner", "data-variant": resolved, "data-size": size ?? "default", "data-color": color, role: "status", "aria-label": "Loading", className: cn(spinnerVariants({ variant: resolved, size }), color && cn(colorVariants[color], "text-(--c)"), className), ...props, children: _jsx(SpinnerParts, { variant: resolved }) }));
24
76
  }
25
- export { Spinner, spinnerVariants };
77
+ export { Spinner, SpinnerProvider, spinnerVariants };
26
78
  //# sourceMappingURL=spinner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"spinner.js","sourceRoot":"","sources":["../../src/components/spinner.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAC,GAAG,EAAoB,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAC,EAAE,EAAC,MAAM,IAAI,CAAC;AACtB,OAAO,EAAC,WAAW,EAAC,MAAM,cAAc,CAAC;AAEzC,oFAAoF;AACpF,MAAM,eAAe,GAAG,GAAG;AACvB,8FAA8F;AAC9F,4EAA4E,EAC5E;IACI,QAAQ,EAAE;QACN,IAAI,EAAE;YACF,EAAE,EAAE,QAAQ;YACZ,EAAE,EAAE,UAAU;YACd,OAAO,EAAE,QAAQ;YACjB,EAAE,EAAE,QAAQ;YACZ,EAAE,EAAE,QAAQ;SACf;KACJ;IACD,eAAe,EAAE,EAAC,IAAI,EAAE,SAAS,EAAC;CACrC,CACJ,CAAC;AAIF,8FAA8F;AAC9F,SAAS,OAAO,CAAC,EAAC,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,EAAe;IACtD,OAAO,CACH,KAAC,WAAW,iBACE,SAAS,eACR,IAAI,IAAI,SAAS,EAC5B,IAAI,EAAC,QAAQ,gBACF,SAAS,EACpB,SAAS,EAAE,EAAE,CAAC,eAAe,CAAC,EAAC,IAAI,EAAC,CAAC,EAAE,SAAS,CAAC,KAC7C,KAAK,GACX,CACL,CAAC;AACN,CAAC;AAED,OAAO,EAAC,OAAO,EAAE,eAAe,EAAC,CAAC"}
1
+ {"version":3,"file":"spinner.js","sourceRoot":"","sources":["../../src/components/spinner.tsx"],"names":[],"mappings":"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"}