@mlola-ui/registry 1.0.10 → 1.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/accordion.json +2 -2
- package/components/alert.json +1 -1
- package/components/app-shell.json +1 -1
- package/components/badge.json +1 -1
- package/components/breadcrumb.json +2 -2
- package/components/button.json +1 -1
- package/components/calendar.json +1 -1
- package/components/carousel.json +3 -3
- package/components/checkbox.json +1 -1
- package/components/color-picker.json +1 -1
- package/components/combobox.json +2 -2
- package/components/command-menu.json +2 -2
- package/components/context-menu.json +2 -2
- package/components/copy-button.json +1 -1
- package/components/date-picker.json +1 -1
- package/components/dropdown-menu.json +2 -2
- package/components/dropzone.json +1 -1
- package/components/hover-card.json +1 -1
- package/components/modal.json +2 -2
- package/components/number-input.json +1 -1
- package/components/pagination.json +1 -1
- package/components/password-input.json +2 -2
- package/components/popover.json +1 -1
- package/components/segmented-control.json +1 -1
- package/components/select.json +2 -2
- package/components/sheet.json +2 -2
- package/components/slider.json +1 -1
- package/components/stepper.json +1 -1
- package/components/tabs.json +1 -1
- package/components/tag-input.json +1 -1
- package/components/time-picker.json +1 -1
- package/components/timeline.json +1 -1
- package/components/toast.json +1 -1
- package/components/tour.json +2 -2
- package/generated/catalog.js +43 -43
- package/generated/examples.json +6 -1
- package/index.json +1 -1
- package/package.json +1 -1
- package/snapshot/index.json +48 -48
- package/snapshot/items/components/accordion.json +2 -2
- package/snapshot/items/components/alert.json +1 -1
- package/snapshot/items/components/app-shell.json +1 -1
- package/snapshot/items/components/badge.json +1 -1
- package/snapshot/items/components/breadcrumb.json +2 -2
- package/snapshot/items/components/button.json +1 -1
- package/snapshot/items/components/calendar.json +1 -1
- package/snapshot/items/components/carousel.json +3 -3
- package/snapshot/items/components/checkbox.json +1 -1
- package/snapshot/items/components/color-picker.json +1 -1
- package/snapshot/items/components/combobox.json +2 -2
- package/snapshot/items/components/command-menu.json +2 -2
- package/snapshot/items/components/context-menu.json +2 -2
- package/snapshot/items/components/copy-button.json +1 -1
- package/snapshot/items/components/date-picker.json +1 -1
- package/snapshot/items/components/dropdown-menu.json +2 -2
- package/snapshot/items/components/dropzone.json +1 -1
- package/snapshot/items/components/hover-card.json +1 -1
- package/snapshot/items/components/modal.json +2 -2
- package/snapshot/items/components/number-input.json +1 -1
- package/snapshot/items/components/pagination.json +1 -1
- package/snapshot/items/components/password-input.json +2 -2
- package/snapshot/items/components/popover.json +1 -1
- package/snapshot/items/components/segmented-control.json +1 -1
- package/snapshot/items/components/select.json +2 -2
- package/snapshot/items/components/sheet.json +2 -2
- package/snapshot/items/components/slider.json +1 -1
- package/snapshot/items/components/stepper.json +1 -1
- package/snapshot/items/components/tabs.json +1 -1
- package/snapshot/items/components/tag-input.json +1 -1
- package/snapshot/items/components/time-picker.json +1 -1
- package/snapshot/items/components/timeline.json +1 -1
- package/snapshot/items/components/toast.json +1 -1
- package/snapshot/items/components/tour.json +2 -2
- package/snapshot/source/packages/components/_internal/match.ts +8 -0
- package/snapshot/source/packages/components/breadcrumb/breadcrumb.tsx +18 -4
- package/snapshot/source/packages/components/carousel/carousel.tsx +1 -0
- package/snapshot/source-manifest.json +3 -3
|
@@ -22,6 +22,14 @@ export function matchCommand(label: string, query: string, keywords: string[] =
|
|
|
22
22
|
if (inside >= 0) return { score: 60 - inside * 0.5, positions: range(inside) };
|
|
23
23
|
if (keywords.some((keyword) => keyword.toLowerCase().includes(needle))) return { score: 45, positions: [] };
|
|
24
24
|
|
|
25
|
+
// Several words, each starting a word somewhere in the label or keywords ("rate limit head" → "Limit headers" under "Rate limits").
|
|
26
|
+
const words = needle.split(/\s+/);
|
|
27
|
+
if (words.length > 1) {
|
|
28
|
+
const haystack = [text, ...keywords.map((keyword) => keyword.toLowerCase())].join(" ");
|
|
29
|
+
const startsWord = (word: string) => new RegExp(`\\b${word.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}`).test(haystack);
|
|
30
|
+
if (words.every(startsWord)) return { score: 40, positions: [] };
|
|
31
|
+
}
|
|
32
|
+
|
|
25
33
|
// Letters in order, preferring word starts and runs.
|
|
26
34
|
const positions: number[] = [];
|
|
27
35
|
let from = 0;
|
|
@@ -4,7 +4,15 @@ import * as React from "react";
|
|
|
4
4
|
import { cx } from "../_internal/react";
|
|
5
5
|
import { IconChevronRight } from "@mlola-ui/icons";
|
|
6
6
|
|
|
7
|
-
export type BreadcrumbItemType = {
|
|
7
|
+
export type BreadcrumbItemType = {
|
|
8
|
+
label: string;
|
|
9
|
+
/** A link to the page. */
|
|
10
|
+
href?: string;
|
|
11
|
+
/** In-app navigation without a URL; the item becomes a button. */
|
|
12
|
+
onSelect?: () => void;
|
|
13
|
+
/** A decorative mark before the label, such as a page's icon. */
|
|
14
|
+
icon?: React.ReactNode;
|
|
15
|
+
};
|
|
8
16
|
type BreadcrumbProps = { items: BreadcrumbItemType[]; separator?: React.ReactNode; className?: string };
|
|
9
17
|
|
|
10
18
|
const BreadcrumbList = React.forwardRef<HTMLOListElement, React.OlHTMLAttributes<HTMLOListElement>>(
|
|
@@ -29,6 +37,8 @@ function BreadcrumbEllipsis({ className }: { className?: string }) {
|
|
|
29
37
|
return <span aria-hidden="true" className={cx("ml-breadcrumb-ellipsis", className)}>…</span>;
|
|
30
38
|
}
|
|
31
39
|
|
|
40
|
+
const icon = (item: BreadcrumbItemType) => (item.icon ? <span aria-hidden="true" className="ml-breadcrumb-icon">{item.icon}</span> : null);
|
|
41
|
+
|
|
32
42
|
export function Breadcrumb({ items, separator, className }: BreadcrumbProps) {
|
|
33
43
|
const last = items.length - 1;
|
|
34
44
|
const collapse = items.length > 3;
|
|
@@ -46,9 +56,13 @@ export function Breadcrumb({ items, separator, className }: BreadcrumbProps) {
|
|
|
46
56
|
</BreadcrumbItem>
|
|
47
57
|
) : null}
|
|
48
58
|
<BreadcrumbItem data-collapsible={middle && collapse ? "" : undefined}>
|
|
49
|
-
{current || !item.href
|
|
50
|
-
|
|
51
|
-
|
|
59
|
+
{current || (!item.href && !item.onSelect) ? (
|
|
60
|
+
<BreadcrumbPage>{icon(item)}{item.label}</BreadcrumbPage>
|
|
61
|
+
) : item.href ? (
|
|
62
|
+
<BreadcrumbLink href={item.href}>{icon(item)}{item.label}</BreadcrumbLink>
|
|
63
|
+
) : (
|
|
64
|
+
<button type="button" className="ml-breadcrumb-link" data-hit="expand" onClick={item.onSelect}>{icon(item)}{item.label}</button>
|
|
65
|
+
)}
|
|
52
66
|
{!current ? <BreadcrumbSeparator>{separator}</BreadcrumbSeparator> : null}
|
|
53
67
|
</BreadcrumbItem>
|
|
54
68
|
</React.Fragment>
|
|
@@ -180,6 +180,7 @@ export function Carousel({
|
|
|
180
180
|
aria-roledescription="carousel"
|
|
181
181
|
aria-label={label}
|
|
182
182
|
data-playing={playing || undefined}
|
|
183
|
+
data-arrows={(arrows && positions > 1) || undefined}
|
|
183
184
|
style={{ ...style, "--ml-carousel-per-view": view, "--ml-carousel-peek": peek ?? "0px", "--ml-carousel-min": minSlideWidth ?? "0px", "--ml-carousel-autoplay": `${autoplay ?? 0}ms` } as React.CSSProperties}
|
|
184
185
|
onPointerEnter={() => setPaused(true)}
|
|
185
186
|
onPointerLeave={() => setPaused(false)}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"packages/components/_internal/clipboard.ts": "sha256-0y5p88CTXWuOrUYlC5J4XP1VCrOwkx9jYWVHmD2LouQ=",
|
|
4
4
|
"packages/components/_internal/dialog.ts": "sha256-796y3oNOVWarLvICTdi+d0/2axqSrzLVJiyBeh9X7bU=",
|
|
5
5
|
"packages/components/_internal/floating.ts": "sha256-+WxgC4CtAlSr2qA1EkoDTgto535XLIPsvtOfdOK6CHk=",
|
|
6
|
-
"packages/components/_internal/match.ts": "sha256-
|
|
6
|
+
"packages/components/_internal/match.ts": "sha256-3tUYob6xmD2nLerh634E3R5iPbzMeNBzdDynsDFjj28=",
|
|
7
7
|
"packages/components/_internal/react.ts": "sha256-SH63/haiB4Q93uFjMIMe5xZbaxENu3VI+GcidV8HELM=",
|
|
8
8
|
"packages/components/_internal/scroll.ts": "sha256-/YxhPPJa6Iax4q5eEs8dmpQp634TbvB+421MphEyscQ=",
|
|
9
9
|
"packages/components/accordion/accordion.tsx": "sha256-0ALaLJd1fvj8Vbx86HLBKm3qUItrtwbrGJTykVfNSMg=",
|
|
@@ -13,12 +13,12 @@
|
|
|
13
13
|
"packages/components/app-shell/app-shell.tsx": "sha256-XAq82XOTH3ZR+hxTkYFu8P7Ih2aI6ERy/TpXc2VMUwM=",
|
|
14
14
|
"packages/components/avatar/avatar.tsx": "sha256-EjqC8ytKqRtsTVdK6vncaDfhO/i7ICe+jwaYCg5bjIw=",
|
|
15
15
|
"packages/components/badge/badge.tsx": "sha256-flEH8S2jZ/64n3Y/ROhC9+9rvF7wXaN0xLcMMwqNOVQ=",
|
|
16
|
-
"packages/components/breadcrumb/breadcrumb.tsx": "sha256-
|
|
16
|
+
"packages/components/breadcrumb/breadcrumb.tsx": "sha256-mxQpach2kFayT8H1vMt5252LQLxVV+sohdVXDhPuKoU=",
|
|
17
17
|
"packages/components/button/button.tsx": "sha256-sXVANbGeFSYPHpiWuPvHHqMoPjG0zl0HSsKEdTgl5ME=",
|
|
18
18
|
"packages/components/calendar/calendar.tsx": "sha256-rWiS4YAueZfVoo6j5Fi3uN7A+yApe5U6HMm1woTVjys=",
|
|
19
19
|
"packages/components/calendar/dates.ts": "sha256-mygYkoC70av2ZQ0vkxf885trwW97Wd10I4dptYQe+4A=",
|
|
20
20
|
"packages/components/card/card.tsx": "sha256-aMKbv5DWYYWq7GZAFR9O1fuYE0H61WCjkvEbRMOd894=",
|
|
21
|
-
"packages/components/carousel/carousel.tsx": "sha256-
|
|
21
|
+
"packages/components/carousel/carousel.tsx": "sha256-Gsw0LhQsOuvdQN/F2KDGVC/gJq53+ifLs19u95RWCoU=",
|
|
22
22
|
"packages/components/checkbox/checkbox.tsx": "sha256-hz4YbGwOxv/aJpJHrLXR4MKSWJGyjzoJEIGvdhyML9M=",
|
|
23
23
|
"packages/components/color-picker/color-picker.tsx": "sha256-E+QB6MbSxg+3AZX3A7bOkst4arxgpmFL2ZmochoWCl8=",
|
|
24
24
|
"packages/components/color-picker/color.ts": "sha256-YqSgYjzn7XfPWAHuyzbwOhbg/ScaSfB7V73e9w+OjJs=",
|