@botiverse/raft-ui 0.84.0 → 0.86.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +33 -0
- package/dist/cn.d.mts +2 -0
- package/dist/cn.mjs +21 -1
- package/dist/components/alert-dialog/alert-dialog.mjs +2 -2
- package/dist/components/app-shell/app-shell.mjs +2 -2
- package/dist/components/avatar/avatar.mjs +1 -1
- package/dist/components/button/button-split.mjs +2 -2
- package/dist/components/button/button.mjs +2 -2
- package/dist/components/choice-list/choice-list.recipe.mjs +1 -1
- package/dist/components/code-block/code-block.recipe.mjs +2 -2
- package/dist/components/combobox/combobox.mjs +1 -1
- package/dist/components/combobox-select/combobox-select.css +1 -1
- package/dist/components/comment/comment.recipe.mjs +2 -2
- package/dist/components/composer/composer-attachment.recipe.mjs +5 -5
- package/dist/components/composer/composer-drop-overlay.mjs +2 -2
- package/dist/components/composer/composer-drop-overlay.recipe.mjs +1 -1
- package/dist/components/composer/sortable-composer-attachments.mjs +1 -1
- package/dist/components/context-menu/context-menu.mjs +1 -1
- package/dist/components/conversation-panel/conversation-panel-empty-state.mjs +1 -1
- package/dist/components/dialog/dialog.mjs +4 -4
- package/dist/components/drag/drag-lift.d.mts +3 -2
- package/dist/components/drag/drag-lift.mjs +3 -2
- package/dist/components/drag/drag.recipe.mjs +1 -1
- package/dist/components/drawer/drawer.recipe.mjs +4 -4
- package/dist/components/dropdown-menu/dropdown-menu.mjs +1 -1
- package/dist/components/file-preview/file-preview.recipe.mjs +1 -1
- package/dist/components/fit-toolbar/fit-toolbar.d.mts +78 -2
- package/dist/components/fit-toolbar/fit-toolbar.mjs +331 -14
- package/dist/components/fit-toolbar/fit-toolbar.recipe.mjs +30 -4
- package/dist/components/fit-toolbar/index.d.mts +2 -2
- package/dist/components/inbox-item/inbox-item.recipe.mjs +7 -7
- package/dist/components/lightbox/lightbox.d.mts +2 -2
- package/dist/components/lightbox/lightbox.mjs +7 -7
- package/dist/components/message-attachment/message-image-gallery.recipe.mjs +1 -1
- package/dist/components/message-item/message-item.recipe.mjs +2 -2
- package/dist/components/message-list/message-list.recipe.mjs +2 -2
- package/dist/components/mobile-nav/mobile-nav.mjs +2 -2
- package/dist/components/notification-center/notification-center.mjs +1 -1
- package/dist/components/panel/panel-header.recipe.mjs +1 -1
- package/dist/components/panel/panel-split-action.recipe.mjs +2 -2
- package/dist/components/popover/popover.mjs +1 -1
- package/dist/components/preview-card/preview-card.mjs +1 -1
- package/dist/components/pull-to-refresh/pull-to-refresh-indicator.mjs +1 -1
- package/dist/components/resizable/resizable.recipe.mjs +1 -1
- package/dist/components/scroll-area/scroll-area.css +1 -0
- package/dist/components/select/select.mjs +2 -2
- package/dist/components/selection-toolbar/selection-toolbar.d.mts +1 -1
- package/dist/components/selection-toolbar/selection-toolbar.recipe.mjs +1 -1
- package/dist/components/sidebar/sidebar.recipe.mjs +1 -1
- package/dist/components/tabs/tabs.mjs +4 -4
- package/dist/components/task-dnd/task-dnd.recipe.mjs +2 -2
- package/dist/components/thread-panel/thread-panel.recipe.mjs +1 -1
- package/dist/components/toast/toast.mjs +5 -5
- package/dist/components/tooltip/tooltip.mjs +2 -2
- package/dist/lib/list-cell.mjs +1 -1
- package/dist/lint/no-raw-z-index.mjs +142 -0
- package/dist/lint/prefer-scroll-area.mjs +1 -1
- package/dist/lint/recommended.json +2 -1
- package/dist/lint.d.mts +8 -2
- package/dist/lint.mjs +16 -3
- package/dist/styles.css +28 -0
- package/dist/wip.d.mts +2 -2
- package/dist/wip.mjs +2 -2
- package/package.json +1 -1
- package/skills/raft-ui-guide/SKILL.md +1 -0
|
@@ -162,7 +162,7 @@ function NotificationCenterPopup({ viewport = "desktop", size = "md", className,
|
|
|
162
162
|
side,
|
|
163
163
|
sideOffset,
|
|
164
164
|
sticky,
|
|
165
|
-
className: "isolate z-
|
|
165
|
+
className: "isolate z-popup outline-none",
|
|
166
166
|
children: /* @__PURE__ */ jsx(Popover.Popup, {
|
|
167
167
|
"aria-label": props["aria-label"] ?? "Notification center",
|
|
168
168
|
"data-slot": "notification-center-popup",
|
|
@@ -61,7 +61,7 @@ const panelHeader = tv({
|
|
|
61
61
|
"flex h-(--shell-header-height,var(--header-height)) shrink-0 items-center gap-3 max-md:gap-2",
|
|
62
62
|
panelHeadEdges,
|
|
63
63
|
"border-b border-line-seam bg-layer-canvas text-foreground",
|
|
64
|
-
"max-md:sticky max-md:top-0 max-md:z-
|
|
64
|
+
"max-md:sticky max-md:top-0 max-md:z-chrome"
|
|
65
65
|
]
|
|
66
66
|
}, {
|
|
67
67
|
slots: ["sectionHeader"],
|
|
@@ -21,7 +21,7 @@ const panelSplitAction = tv({ base: [
|
|
|
21
21
|
const splitActionMainParts = [
|
|
22
22
|
"pointer-events-auto rounded-e-none",
|
|
23
23
|
"after:end-0",
|
|
24
|
-
"focus-visible:z-
|
|
24
|
+
"focus-visible:z-raised aria-pressed:z-raised data-pressed:z-raised",
|
|
25
25
|
"bg-(--split-action-main-tint,transparent)",
|
|
26
26
|
"group-hover/split-action:bg-fill-subtle",
|
|
27
27
|
"hover:bg-fill-medium active:bg-fill-medium"
|
|
@@ -40,7 +40,7 @@ const panelSplitActionMenu = tv({
|
|
|
40
40
|
"pointer-events-auto min-w-0 rounded-s-none px-0",
|
|
41
41
|
"w-6 me-5 md:pointer-fine:w-5 md:pointer-fine:me-0",
|
|
42
42
|
"after:start-0 after:inset-e-[-21.5px] md:pointer-fine:after:-end-[calc(var(--spacing-control-hit)+1.5px)]",
|
|
43
|
-
"focus-visible:z-
|
|
43
|
+
"focus-visible:z-raised",
|
|
44
44
|
"[[data-split-action-main][data-pressed]~&]:[--split-action-menu-tint:var(--fill-subtle)]",
|
|
45
45
|
"[[data-split-action-main][aria-pressed=true]~&]:[--split-action-menu-tint:var(--fill-subtle)]",
|
|
46
46
|
"bg-(--split-action-menu-tint,transparent)",
|
|
@@ -9,7 +9,7 @@ import { Popover } from "@base-ui/react/popover";
|
|
|
9
9
|
const popover = tv({
|
|
10
10
|
slots: {
|
|
11
11
|
trigger: ["select-none"],
|
|
12
|
-
positioner: ["isolate z-
|
|
12
|
+
positioner: ["isolate z-popup outline-none"],
|
|
13
13
|
content: [
|
|
14
14
|
"max-h-(--available-height) min-w-[220px] overflow-hidden",
|
|
15
15
|
"outline-none",
|
|
@@ -10,7 +10,7 @@ import { PreviewCard } from "@base-ui/react/preview-card";
|
|
|
10
10
|
const previewCard = tv({
|
|
11
11
|
slots: {
|
|
12
12
|
trigger: [],
|
|
13
|
-
positioner: ["isolate z-
|
|
13
|
+
positioner: ["isolate z-popup outline-none"],
|
|
14
14
|
popup: [
|
|
15
15
|
"max-h-(--available-height) min-w-[220px] overflow-hidden",
|
|
16
16
|
"outline-none",
|
|
@@ -45,7 +45,7 @@ const pullToRefreshIndicator = tv({
|
|
|
45
45
|
surface: ["size-full"]
|
|
46
46
|
},
|
|
47
47
|
android: {
|
|
48
|
-
root: ["sticky top-0 z-
|
|
48
|
+
root: ["sticky top-0 z-sticky h-0 overflow-visible"],
|
|
49
49
|
surface: [
|
|
50
50
|
"absolute inset-x-0 top-0 mx-auto size-10 rounded-full bg-layer-popover shadow-float",
|
|
51
51
|
"translate-y-[calc(var(--pull-distance)-100%)]",
|
|
@@ -4,7 +4,7 @@ const resizable = tv({ slots: {
|
|
|
4
4
|
group: ["flex size-full min-h-0 min-w-0", "data-[orientation=vertical]:flex-col"],
|
|
5
5
|
panel: ["min-h-0 min-w-0"],
|
|
6
6
|
handle: [
|
|
7
|
-
"right-0 z-
|
|
7
|
+
"right-0 z-control cursor-ew-resize touch-none select-none",
|
|
8
8
|
"relative -mr-3 flex w-3 shrink-0 items-center justify-center pointer-coarse:-mr-6 pointer-coarse:w-6",
|
|
9
9
|
"before:pointer-events-none before:absolute before:transition-colors before:content-['']",
|
|
10
10
|
"focus-visible:outline-none focus-visible:before:outline-2 focus-visible:before:outline-offset-2 focus-visible:before:outline-foreground",
|
|
@@ -469,6 +469,7 @@
|
|
|
469
469
|
.r-scroll-area > .r-scroll-area__gutters {
|
|
470
470
|
pointer-events: none;
|
|
471
471
|
user-select: none;
|
|
472
|
+
/* raft-ui: z-index the gutters paint over every layer inside the area (its root is isolate) until slock's layers inside its ScrollAreas are named (#218 step 2); then var(--z-index-scrollbar). */
|
|
472
473
|
z-index: 2147483647;
|
|
473
474
|
}
|
|
474
475
|
/*
|
|
@@ -39,7 +39,7 @@ const select = tv({
|
|
|
39
39
|
"[&>svg]:size-4 [&>svg]:stroke-2 [&>svg_*]:stroke-2"
|
|
40
40
|
],
|
|
41
41
|
value: ["flex min-w-0 flex-1 truncate text-left"],
|
|
42
|
-
positioner: ["isolate z-
|
|
42
|
+
positioner: ["isolate z-popup outline-none"],
|
|
43
43
|
content: [
|
|
44
44
|
"relative max-h-(--available-height) min-w-[max(var(--anchor-width),220px)] overflow-hidden",
|
|
45
45
|
"max-w-[min(var(--available-width),max(var(--anchor-width),24rem))]",
|
|
@@ -92,7 +92,7 @@ const select = tv({
|
|
|
92
92
|
groupLabel: ["py-2", "px-2.5 pt-2 pb-1 text-caption font-bold text-foreground-hint"],
|
|
93
93
|
separator: ["h-px shrink-0 border-0", "-mx-1 my-1 bg-line-hairline"],
|
|
94
94
|
scrollArrow: [
|
|
95
|
-
"absolute inset-x-0 z-
|
|
95
|
+
"absolute inset-x-0 z-raised flex h-6 w-full cursor-default items-center justify-center",
|
|
96
96
|
"outline-none transition-colors",
|
|
97
97
|
"data-[direction=up]:top-0 data-[direction=down]:bottom-0",
|
|
98
98
|
"[&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
@@ -46,7 +46,7 @@ export type SelectionToolbarItemProps = {
|
|
|
46
46
|
* handling only: the control keeps its role and its own keys.
|
|
47
47
|
*/
|
|
48
48
|
export declare function SelectionToolbarItem({ children }: SelectionToolbarItemProps): import("react").JSX.Element;
|
|
49
|
-
export type SelectionToolbarActionsProps = Omit<FitToolbarGroupProps, "wrapOrder" | "firstLine" | "collapseOrder" | "collapsed">;
|
|
49
|
+
export type SelectionToolbarActionsProps = Omit<FitToolbarGroupProps, "wrapOrder" | "firstLine" | "collapseOrder" | "collapsed" | "moreOrder" | "moreItem" | "end">;
|
|
50
50
|
/** The actions on the selection, in one row. */
|
|
51
51
|
export declare function SelectionToolbarActions({ className, ...props }: SelectionToolbarActionsProps): import("react").JSX.Element;
|
|
52
52
|
export type SelectionToolbarActionProps = Omit<ButtonProps, "variant" | "size" | "children"> & {
|
|
@@ -3,7 +3,7 @@ import { tv } from "../../lib/tv.mjs";
|
|
|
3
3
|
const selectionToolbar = tv({
|
|
4
4
|
slots: {
|
|
5
5
|
dock: [
|
|
6
|
-
"pointer-events-none absolute inset-x-0 bottom-0 z-
|
|
6
|
+
"pointer-events-none absolute inset-x-0 bottom-0 z-float flex justify-center",
|
|
7
7
|
"px-5 pb-[calc(--spacing(3)+env(safe-area-inset-bottom))]",
|
|
8
8
|
"*:pointer-events-auto"
|
|
9
9
|
],
|
|
@@ -16,7 +16,7 @@ const sidebarRecipe = tv({ slots: {
|
|
|
16
16
|
headEdgePull,
|
|
17
17
|
"[@media(max-height:600px)]:h-(--header-height-short)"
|
|
18
18
|
],
|
|
19
|
-
sidebarHeaderMask: ["pointer-events-none absolute inset-x-0 top-0
|
|
19
|
+
sidebarHeaderMask: ["pointer-events-none absolute inset-x-0 top-0 z-below hidden"],
|
|
20
20
|
sidebarHeaderMaskLayer: ["absolute inset-x-0 top-0"],
|
|
21
21
|
sidebarHeaderTitle: ["truncate font-bold", "font-sans text-headline text-foreground max-md:text-foreground-on-frame"],
|
|
22
22
|
sidebarGroupLabel: ["px-5 pt-4 pb-0 md:pointer-fine:px-(--sidebar-glyph-axis) md:pointer-fine:pt-2", "font-sans text-footnote font-bold normal-case tracking-normal text-foreground-hint"],
|
|
@@ -22,7 +22,7 @@ const tabs = tv({
|
|
|
22
22
|
],
|
|
23
23
|
background: ["", "hidden"],
|
|
24
24
|
tab: [
|
|
25
|
-
"relative
|
|
25
|
+
"relative isolate flex shrink-0 cursor-pointer touch-manipulation select-none [-webkit-touch-callout:none] items-center gap-1.5 whitespace-nowrap outline-none",
|
|
26
26
|
"data-[reorderable=true]:cursor-pointer data-[dragging-source=true]:cursor-grabbing",
|
|
27
27
|
"font-sans text-callout font-semibold text-foreground-muted",
|
|
28
28
|
"transition-[background-color,box-shadow,color] duration-100 ease-out",
|
|
@@ -31,7 +31,7 @@ const tabs = tv({
|
|
|
31
31
|
"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg]:stroke-2 [&_svg:not([class*='size-'])]:size-4",
|
|
32
32
|
"data-disabled:pointer-events-none data-disabled:text-foreground-disabled"
|
|
33
33
|
],
|
|
34
|
-
content: ["relative z-
|
|
34
|
+
content: ["relative z-raised inline-flex items-center gap-[inherit]"],
|
|
35
35
|
label: [""],
|
|
36
36
|
panel: ["outline-none"],
|
|
37
37
|
indicator: ["", "hidden"]
|
|
@@ -416,7 +416,7 @@ function SortableTabsTab({ value, ...props }) {
|
|
|
416
416
|
...baseStyle,
|
|
417
417
|
transform: translate === void 0 ? void 0 : vertical ? `translate3d(0, ${translate}px, 0)` : `translate3d(${translate}px, 0, 0)`,
|
|
418
418
|
transition,
|
|
419
|
-
zIndex: isDragging ?
|
|
419
|
+
zIndex: isDragging ? "var(--z-index-raised)" : baseStyle?.zIndex,
|
|
420
420
|
cursor: isDragging ? "grabbing" : "pointer",
|
|
421
421
|
...isDragging && !home ? PLACE_STYLE : null
|
|
422
422
|
}), [
|
|
@@ -483,7 +483,7 @@ function TabsTabButton({ value, sortableRef, dropPlace = false, className, child
|
|
|
483
483
|
"data-slot": "tabs-tab-content",
|
|
484
484
|
className: content({ className: dropPlace ? "invisible" : void 0 }),
|
|
485
485
|
children
|
|
486
|
-
}), dropPlace ? /* @__PURE__ */ jsx(DropPlaceholder, { className: "absolute inset-0 z-
|
|
486
|
+
}), dropPlace ? /* @__PURE__ */ jsx(DropPlaceholder, { className: "absolute inset-0 z-raised rounded-control" }) : null]
|
|
487
487
|
});
|
|
488
488
|
}
|
|
489
489
|
function TabsLabel({ className, ...props }) {
|
|
@@ -2,9 +2,9 @@ import { tv } from "../../lib/tv.mjs";
|
|
|
2
2
|
//#region src/components/task-dnd/task-dnd.recipe.ts
|
|
3
3
|
const taskDnd = tv({ slots: {
|
|
4
4
|
draggable: [
|
|
5
|
-
"group/task-draggable relative cursor-grab touch-manipulation select-none [-webkit-touch-callout:none] active:cursor-grabbing",
|
|
5
|
+
"group/task-draggable relative isolate cursor-grab touch-manipulation select-none [-webkit-touch-callout:none] active:cursor-grabbing",
|
|
6
6
|
"outline-none",
|
|
7
|
-
"data-[dragging=true]:z-
|
|
7
|
+
"data-[dragging=true]:z-raised data-[dragging=true]:will-change-transform",
|
|
8
8
|
"data-[disabled=true]:cursor-default data-[disabled=true]:touch-auto",
|
|
9
9
|
"rounded-container",
|
|
10
10
|
"focus-visible:shadow-focus"
|
|
@@ -17,7 +17,7 @@ const threadPanel = tv({ slots: {
|
|
|
17
17
|
titleMeta: ["font-normal text-foreground-hint"],
|
|
18
18
|
actions: panelHeadActions,
|
|
19
19
|
search: [
|
|
20
|
-
"relative z-
|
|
20
|
+
"relative z-chrome flex shrink-0 items-center gap-1.5 py-2",
|
|
21
21
|
"[&>[data-slot=input-group]]:min-w-0 *:data-[slot=input-group]:flex-1",
|
|
22
22
|
"border-b border-line-hairline bg-layer-canvas px-(--surface-inset)"
|
|
23
23
|
],
|
|
@@ -10,8 +10,8 @@ import { Toast } from "@base-ui/react/toast";
|
|
|
10
10
|
//#region src/components/toast/toast.tsx
|
|
11
11
|
const toastStyles = tv({
|
|
12
12
|
slots: {
|
|
13
|
-
viewport: ["pointer-events-none isolate z-
|
|
14
|
-
positioner: ["isolate z-[calc(
|
|
13
|
+
viewport: ["pointer-events-none isolate z-toast w-[min(24rem,calc(100vw-2rem))]", "outline-none"],
|
|
14
|
+
positioner: ["isolate z-[calc(var(--z-index-toast)-var(--toast-index))] outline-none"],
|
|
15
15
|
root: [
|
|
16
16
|
"group/toast pointer-events-auto",
|
|
17
17
|
"select-text",
|
|
@@ -101,7 +101,7 @@ const toastStyles = tv({
|
|
|
101
101
|
layout: {
|
|
102
102
|
stacked: { root: [
|
|
103
103
|
"absolute inset-x-0 bottom-0 mx-auto h-(--toast-stack-height) origin-bottom",
|
|
104
|
-
"z-[calc(
|
|
104
|
+
"z-[calc(var(--z-index-toast)-var(--toast-index))]",
|
|
105
105
|
"before:pointer-events-auto before:absolute before:inset-x-0 before:top-full before:h-[calc(var(--toast-gap)+3px)] before:content-['']",
|
|
106
106
|
"[--toast-peek-dir:-1]",
|
|
107
107
|
"transform-[translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--toast-swipe-movement-y)+(var(--toast-index)*var(--toast-peek)*var(--toast-peek-dir))))_scale(var(--toast-scale))]",
|
|
@@ -185,8 +185,8 @@ const toastAction = tv({ slots: {
|
|
|
185
185
|
"data-[loading=true]:cursor-wait data-[loading=true]:opacity-100",
|
|
186
186
|
"[&_svg]:pointer-events-none [&_svg]:shrink-0 **:data-icon:size-[1em] [&_svg:not([class*='size-'])]:size-3"
|
|
187
187
|
],
|
|
188
|
-
content: "relative z-
|
|
189
|
-
loadingIndicator: "pointer-events-none absolute inset-0 z-
|
|
188
|
+
content: "relative z-raised inline-flex items-center justify-center gap-[inherit] data-[loading=true]:invisible",
|
|
189
|
+
loadingIndicator: "pointer-events-none absolute inset-0 z-raised flex items-center justify-center"
|
|
190
190
|
} });
|
|
191
191
|
const createToastManager = Toast.createToastManager;
|
|
192
192
|
const useToastManager = Toast.useToastManager;
|
|
@@ -9,7 +9,7 @@ import { Tooltip } from "@base-ui/react/tooltip";
|
|
|
9
9
|
const tooltip = tv({
|
|
10
10
|
slots: {
|
|
11
11
|
trigger: ["select-none"],
|
|
12
|
-
positioner: ["isolate z-
|
|
12
|
+
positioner: ["isolate z-popup pointer-events-none outline-none"],
|
|
13
13
|
content: [
|
|
14
14
|
"pointer-events-none relative inline-block max-w-[min(20rem,var(--available-width,20rem))] min-w-0 px-2.5 py-1",
|
|
15
15
|
"origin-(--transform-origin) outline-none",
|
|
@@ -25,7 +25,7 @@ const tooltip = tv({
|
|
|
25
25
|
],
|
|
26
26
|
body: [
|
|
27
27
|
"block min-w-0 text-footnote whitespace-normal wrap-break-word",
|
|
28
|
-
"**:data-[slot=kbd]:relative **:data-[slot=kbd]:z-
|
|
28
|
+
"**:data-[slot=kbd]:relative **:data-[slot=kbd]:z-raised **:data-[slot=kbd]:ml-1.5",
|
|
29
29
|
"**:data-[slot=kbd-group]:ml-1.5 [&_[data-slot=kbd-group]_[data-slot=kbd]]:ml-0",
|
|
30
30
|
"**:data-[slot=kbd]:h-4 **:data-[slot=kbd]:min-w-4 **:data-[slot=kbd]:px-1 **:data-[slot=kbd]:py-0",
|
|
31
31
|
"[&_[data-slot=kbd][data-glyph=icon]]:px-0",
|
package/dist/lib/list-cell.mjs
CHANGED
|
@@ -5,7 +5,7 @@ const listCell = [
|
|
|
5
5
|
"md:pointer-fine:[--cell-pad-x:calc(var(--page-inset)-var(--cell-inset-x))]",
|
|
6
6
|
"[--cell-inset-end:max(0px,calc(var(--cell-inset-x)-var(--scrollbar-size,0px)))]",
|
|
7
7
|
"pr-[calc(var(--cell-inset-end)+var(--cell-pad-x))] pl-[calc(var(--cell-inset-x)+var(--cell-pad-x))]",
|
|
8
|
-
"before:pointer-events-none before:absolute before
|
|
8
|
+
"before:pointer-events-none before:absolute before:z-below before:block before:content-['']",
|
|
9
9
|
"before:inset-y-0 before:right-(--cell-inset-end) before:left-(--cell-inset-x)",
|
|
10
10
|
"before:rounded-(--cell-radius) before:border-0",
|
|
11
11
|
"before:transition-colors before:duration-150 before:ease-out"
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { classContext, constDeclarator, propertyKey, stringValue } from "./prefer-scroll-area.mjs";
|
|
2
|
+
//#region src/lint/no-raw-z-index.ts
|
|
3
|
+
/**
|
|
4
|
+
* raft-ui/no-raw-z-index: every z-index is a named layer of the scale
|
|
5
|
+
* (design/foundations/elevation.md#layer-order), so a number of the app's own,
|
|
6
|
+
* which ranks its layer above or below layers it doesn't know about, is
|
|
7
|
+
* reported where an app writes it.
|
|
8
|
+
*
|
|
9
|
+
* Reported:
|
|
10
|
+
* - a Tailwind z-index class with a number or an arbitrary value (`z-10`,
|
|
11
|
+
* `-z-1`, `z-[60]`, `z-(--my-z)`, `[z-index:5]`, with any variant prefix or
|
|
12
|
+
* `!`) in a string or template literal that is a class, found as
|
|
13
|
+
* `raft-ui/prefer-scroll-area` finds one (a `className`, `class` or
|
|
14
|
+
* `*ClassName` attribute or property, an argument of `cn`, `tv` and the
|
|
15
|
+
* like, or a `const` of the same file used as a class). `z-auto` and the
|
|
16
|
+
* named layers (`z-raised`, `max-md:z-chrome`) are not reported;
|
|
17
|
+
* - a `zIndex` property whose value is a number or a numeric string
|
|
18
|
+
* (`style={{ zIndex: 10 }}`, `const s = { zIndex: open ? 20 : "5" }`), a
|
|
19
|
+
* `zIndex={n}` JSX attribute, and an assignment `el.style.zIndex = "n"`.
|
|
20
|
+
* A `var(--z-index-…)` string is a name, and is not reported.
|
|
21
|
+
*
|
|
22
|
+
* Allowed with a `raft-ui: z-index <reason>` comment, line or block, on the
|
|
23
|
+
* line above the reported string or property (or at the end of its line), as
|
|
24
|
+
* for `raft-ui/prefer-scroll-area`. A comment without a reason doesn't count.
|
|
25
|
+
*/
|
|
26
|
+
const RAW_Z_CLASS = /(?<![\w-])!?-?z-(?:\d+|\[[^\]\s]*\]|\([^)\s]*\))!?(?![\w-])/;
|
|
27
|
+
const RAW_Z_ARBITRARY = /\[z-index:[^\]]*\]/;
|
|
28
|
+
const NUMERIC = /^\s*[-+]?\d+(?:\.\d+)?\s*$/;
|
|
29
|
+
const ESCAPE = /\braft-ui:\s*z-index\s+\S/;
|
|
30
|
+
/** Whether a class string has a z-index class with a number or an arbitrary value. */
|
|
31
|
+
function hasRawZIndexClass(value) {
|
|
32
|
+
if (!value.includes("z-")) return false;
|
|
33
|
+
return RAW_Z_CLASS.test(value) || RAW_Z_ARBITRARY.test(value);
|
|
34
|
+
}
|
|
35
|
+
/** The numeric literals a `zIndex` value can be: `10`, `-1`, `"10"`, `a ? 20 : undefined`. */
|
|
36
|
+
function numericLiterals(node, out) {
|
|
37
|
+
if (node.type === "ConditionalExpression") {
|
|
38
|
+
numericLiterals(node.consequent, out);
|
|
39
|
+
numericLiterals(node.alternate, out);
|
|
40
|
+
} else if (node.type === "LogicalExpression") {
|
|
41
|
+
numericLiterals(node.left, out);
|
|
42
|
+
numericLiterals(node.right, out);
|
|
43
|
+
} else if (node.type === "TSAsExpression" || node.type === "TSSatisfiesExpression" || node.type === "ParenthesizedExpression" || node.type === "JSXExpressionContainer") numericLiterals(node.expression, out);
|
|
44
|
+
else if (node.type === "UnaryExpression" && (node.operator === "-" || node.operator === "+")) {
|
|
45
|
+
if (numericLiterals(node.argument, []).length > 0) out.push(node);
|
|
46
|
+
} else if (node.type === "Literal" && typeof node.value === "number") out.push(node);
|
|
47
|
+
else {
|
|
48
|
+
const text = stringValue(node);
|
|
49
|
+
if (text !== void 0 && NUMERIC.test(text)) out.push(node);
|
|
50
|
+
}
|
|
51
|
+
return out;
|
|
52
|
+
}
|
|
53
|
+
const noRawZIndex = {
|
|
54
|
+
meta: {
|
|
55
|
+
type: "suggestion",
|
|
56
|
+
docs: {
|
|
57
|
+
description: "A z-index is a named layer of the Raft Design System's scale (z-raised, z-sticky, ...), not a number.",
|
|
58
|
+
url: "https://raft-design.botiverse.build/foundations/elevation/#layer-order"
|
|
59
|
+
},
|
|
60
|
+
messages: { noRawZIndex: "Use a named layer instead of a z-index number: z-below, z-base, z-raised (inside an `isolate` root), z-control, z-sticky, z-float, z-chrome, z-cover, z-app; a popup, dialog, lightbox, toast or drag lift takes raft-ui's own component and no z-index. If this number must stay, say why in a `// raft-ui: z-index <reason>` comment on the line above. https://raft-design.botiverse.build/foundations/elevation/#layer-order" },
|
|
61
|
+
schema: []
|
|
62
|
+
},
|
|
63
|
+
create(context) {
|
|
64
|
+
const sourceCode = context.sourceCode ?? context.getSourceCode?.();
|
|
65
|
+
let escapeLines;
|
|
66
|
+
function line(index) {
|
|
67
|
+
return sourceCode.getLocFromIndex(index).line;
|
|
68
|
+
}
|
|
69
|
+
/** The lines an escape comment covers: the one it ends on and the next. */
|
|
70
|
+
function escaped() {
|
|
71
|
+
if (escapeLines) return escapeLines;
|
|
72
|
+
escapeLines = /* @__PURE__ */ new Set();
|
|
73
|
+
for (const comment of sourceCode?.getAllComments() ?? []) {
|
|
74
|
+
if (!ESCAPE.test(comment.value)) continue;
|
|
75
|
+
const end = comment.loc?.end.line ?? line(comment.range[1]);
|
|
76
|
+
escapeLines.add(end);
|
|
77
|
+
escapeLines.add(end + 1);
|
|
78
|
+
}
|
|
79
|
+
return escapeLines;
|
|
80
|
+
}
|
|
81
|
+
function startLine(node) {
|
|
82
|
+
return node.loc?.start.line ?? line(node.range[0]);
|
|
83
|
+
}
|
|
84
|
+
/** Reports `node` unless an escape comment covers the line `anchor` starts on. */
|
|
85
|
+
function report(node, anchor) {
|
|
86
|
+
const lines = escaped();
|
|
87
|
+
if (lines.size > 0 && lines.has(startLine(anchor))) return;
|
|
88
|
+
context.report({
|
|
89
|
+
node,
|
|
90
|
+
messageId: "noRawZIndex"
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
const constStrings = /* @__PURE__ */ new Map();
|
|
94
|
+
const classNames = /* @__PURE__ */ new Set();
|
|
95
|
+
function checkClassString(node, value) {
|
|
96
|
+
if (!hasRawZIndexClass(value)) return;
|
|
97
|
+
if (classContext(node)) return report(node, node);
|
|
98
|
+
const declarator = constDeclarator(node);
|
|
99
|
+
if (!declarator) return;
|
|
100
|
+
const name = declarator.id.name;
|
|
101
|
+
constStrings.set(name, [...constStrings.get(name) ?? [], node]);
|
|
102
|
+
}
|
|
103
|
+
function checkZIndexValue(value, anchor) {
|
|
104
|
+
for (const literal of numericLiterals(value, [])) report(literal, anchor);
|
|
105
|
+
}
|
|
106
|
+
return {
|
|
107
|
+
Literal(node) {
|
|
108
|
+
if (typeof node.value === "string") checkClassString(node, node.value);
|
|
109
|
+
},
|
|
110
|
+
TemplateLiteral(node) {
|
|
111
|
+
checkClassString(node, node.quasis.map((quasi) => quasi.value.raw).join(" "));
|
|
112
|
+
},
|
|
113
|
+
Identifier(node) {
|
|
114
|
+
const parent = node.parent;
|
|
115
|
+
if (parent?.type === "Property" && parent.key === node && !parent.computed && !parent.shorthand) return;
|
|
116
|
+
if (classContext(node)) classNames.add(node.name);
|
|
117
|
+
},
|
|
118
|
+
Property(node) {
|
|
119
|
+
if (propertyKey(node) !== "zIndex") return;
|
|
120
|
+
checkZIndexValue(node.value, node);
|
|
121
|
+
},
|
|
122
|
+
JSXAttribute(node) {
|
|
123
|
+
const name = node.name;
|
|
124
|
+
if (name?.type !== "JSXIdentifier" || name.name !== "zIndex") return;
|
|
125
|
+
const value = node.value;
|
|
126
|
+
if (value) checkZIndexValue(value, node);
|
|
127
|
+
},
|
|
128
|
+
AssignmentExpression(node) {
|
|
129
|
+
const target = node.left;
|
|
130
|
+
if (target.type !== "MemberExpression") return;
|
|
131
|
+
const property = target.property;
|
|
132
|
+
if ((target.computed ? stringValue(property) : property.type === "Identifier" ? property.name : void 0) !== "zIndex") return;
|
|
133
|
+
checkZIndexValue(node.right, node);
|
|
134
|
+
},
|
|
135
|
+
"Program:exit"() {
|
|
136
|
+
for (const name of classNames) for (const node of constStrings.get(name) ?? []) report(node, node);
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
};
|
|
141
|
+
//#endregion
|
|
142
|
+
export { hasRawZIndexClass, noRawZIndex };
|
package/dist/lint.d.mts
CHANGED
|
@@ -13,8 +13,14 @@ export interface RaftUiLintPlugin {
|
|
|
13
13
|
configs: Record<string, RaftUiLintConfig>;
|
|
14
14
|
}
|
|
15
15
|
export declare const rules: Record<string, RuleModule>;
|
|
16
|
-
/**
|
|
17
|
-
|
|
16
|
+
/**
|
|
17
|
+
* Every rule of the plugin with its severity, as `recommended.json` lists them.
|
|
18
|
+
* A rule an app can't pass yet ships `off`, so an app that lints with
|
|
19
|
+
* `--max-warnings=0` (slock) stays green on the upgrade; an app turns it on in
|
|
20
|
+
* its own `rules` to clear what it reports, and it turns `error` here once the
|
|
21
|
+
* app has.
|
|
22
|
+
*/
|
|
23
|
+
export declare const recommendedRules: Record<string, "error" | "warn" | "off">;
|
|
18
24
|
declare const plugin: RaftUiLintPlugin;
|
|
19
25
|
/** ESLint flat config: `export default [raftUi.configs.recommended]`. */
|
|
20
26
|
export declare const recommended: RaftUiLintConfig;
|
package/dist/lint.mjs
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { preferScrollArea } from "./lint/prefer-scroll-area.mjs";
|
|
2
|
+
import { noRawZIndex } from "./lint/no-raw-z-index.mjs";
|
|
2
3
|
//#region src/lint/index.ts
|
|
3
4
|
/**
|
|
4
5
|
* raft-ui's lint plugin: the Raft Design System's rules for the code of an app
|
|
@@ -10,9 +11,21 @@ import { preferScrollArea } from "./lint/prefer-scroll-area.mjs";
|
|
|
10
11
|
* rule added in a later release reaches the app with the upgrade. See
|
|
11
12
|
* design/about/use-raft-ui.md#lint-rules.
|
|
12
13
|
*/
|
|
13
|
-
const rules = {
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
const rules = {
|
|
15
|
+
"prefer-scroll-area": preferScrollArea,
|
|
16
|
+
"no-raw-z-index": noRawZIndex
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Every rule of the plugin with its severity, as `recommended.json` lists them.
|
|
20
|
+
* A rule an app can't pass yet ships `off`, so an app that lints with
|
|
21
|
+
* `--max-warnings=0` (slock) stays green on the upgrade; an app turns it on in
|
|
22
|
+
* its own `rules` to clear what it reports, and it turns `error` here once the
|
|
23
|
+
* app has.
|
|
24
|
+
*/
|
|
25
|
+
const recommendedRules = {
|
|
26
|
+
"raft-ui/prefer-scroll-area": "error",
|
|
27
|
+
"raft-ui/no-raw-z-index": "off"
|
|
28
|
+
};
|
|
16
29
|
const plugin = {
|
|
17
30
|
meta: { name: "raft-ui" },
|
|
18
31
|
rules,
|
package/dist/styles.css
CHANGED
|
@@ -200,6 +200,34 @@
|
|
|
200
200
|
}
|
|
201
201
|
}
|
|
202
202
|
|
|
203
|
+
/* Raft Design System layer order (design/foundations/elevation.md#layer-order).
|
|
204
|
+
Each name is an ordinary Tailwind `z-*` utility (`z-raised`, `max-md:z-chrome`,
|
|
205
|
+
`before:z-below`) and a variable for CSS (`var(--z-index-sticky)`). In-page
|
|
206
|
+
layers stay below 50, where the overlays begin; nothing sits above toasts or
|
|
207
|
+
the drag lift. `z-below`, `z-base` and `z-raised` are local: the component's
|
|
208
|
+
root is `isolate`, so they rank parts inside it only. A component that needs
|
|
209
|
+
a third local layer orders it by DOM order inside its own `isolate`.
|
|
210
|
+
Static, so every variable exists for an app's own CSS whether or not a
|
|
211
|
+
utility uses it. `z-index-named.test.ts` keeps the order. */
|
|
212
|
+
@theme static {
|
|
213
|
+
--z-index-below: -1;
|
|
214
|
+
--z-index-base: 0;
|
|
215
|
+
--z-index-raised: 1;
|
|
216
|
+
--z-index-control: 10;
|
|
217
|
+
--z-index-sticky: 20;
|
|
218
|
+
--z-index-float: 30;
|
|
219
|
+
--z-index-chrome: 35;
|
|
220
|
+
--z-index-cover: 40;
|
|
221
|
+
--z-index-app: 45;
|
|
222
|
+
--z-index-scrollbar: 49;
|
|
223
|
+
--z-index-popup: 50;
|
|
224
|
+
--z-index-dialog: 50;
|
|
225
|
+
--z-index-dialog-layer: 60;
|
|
226
|
+
--z-index-lightbox: 70;
|
|
227
|
+
--z-index-toast: 80;
|
|
228
|
+
--z-index-drag: 999;
|
|
229
|
+
}
|
|
230
|
+
|
|
203
231
|
@theme inline {
|
|
204
232
|
/* A drag settling: the drop and cancel glide, siblings sliding apart, a
|
|
205
233
|
layout reflowing on a drop (design/foundations/motion.md). */
|
package/dist/wip.d.mts
CHANGED
|
@@ -43,7 +43,7 @@ import { CommentMarginLayout, CommentMarginLayoutItem, CommentMarginLayoutOption
|
|
|
43
43
|
import { CommentMarker, CommentMarkerProps } from "./components/comment/comment-marker.mjs";
|
|
44
44
|
import { UseCommentMarginFitsOptions, useCommentMarginFits } from "./components/comment/use-comment-margin-fits.mjs";
|
|
45
45
|
import "./components/comment/index.mjs";
|
|
46
|
-
import { FitItemOptions, FitStep, FitSteps, FitToolbar, FitToolbarButton, FitToolbarButtonProps, FitToolbarGroup, FitToolbarGroupProps, FitToolbarMoreItems, FitToolbarPicker, FitToolbarPickerProps, FitToolbarProps, useFitItem, useFitMore, useInFitToolbar } from "./components/fit-toolbar/fit-toolbar.mjs";
|
|
46
|
+
import { FitItemOptions, FitStep, FitSteps, FitToolbar, FitToolbarButton, FitToolbarButtonProps, FitToolbarGroup, FitToolbarGroupProps, FitToolbarMore, FitToolbarMoreItems, FitToolbarMoreProps, FitToolbarPicker, FitToolbarPickerProps, FitToolbarProps, FitToolbarSearch, FitToolbarSearchProps, useFitItem, useFitMore, useInFitToolbar } from "./components/fit-toolbar/fit-toolbar.mjs";
|
|
47
47
|
import "./components/fit-toolbar/index.mjs";
|
|
48
48
|
import { SelectionToolbar, SelectionToolbarAction, SelectionToolbarActionProps, SelectionToolbarActions, SelectionToolbarActionsProps, SelectionToolbarClose, SelectionToolbarCloseProps, SelectionToolbarCount, SelectionToolbarCountProps, SelectionToolbarCountValue, SelectionToolbarCountValueProps, SelectionToolbarDock, SelectionToolbarDockProps, SelectionToolbarHint, SelectionToolbarHintProps, SelectionToolbarItem, SelectionToolbarItemProps, SelectionToolbarMore, SelectionToolbarMoreItems, SelectionToolbarMoreProps, SelectionToolbarProps } from "./components/selection-toolbar/selection-toolbar.mjs";
|
|
49
49
|
import "./components/selection-toolbar/index.mjs";
|
|
@@ -81,4 +81,4 @@ import { KbdButton, KbdButtonCaret, KbdButtonCaretProps, KbdButtonPlaceholder, K
|
|
|
81
81
|
import "./components/kbd-button/index.mjs";
|
|
82
82
|
import { WebTopBarCenter, WebTopBarCenterProps, WebTopBarEnd, WebTopBarEndProps, WebTopBarRoot, WebTopBarRootProps, WebTopBarStart, WebTopBarStartProps } from "./components/web-top-bar/web-top-bar.mjs";
|
|
83
83
|
import "./components/web-top-bar/index.mjs";
|
|
84
|
-
export { Dialog as AnnouncementDialog, AnnouncementDialogAction, AnnouncementDialogBody, DialogClose as AnnouncementDialogClose, AnnouncementDialogContent, AnnouncementDialogFooter, AnnouncementDialogHeader, AnnouncementDialogLabel, AnnouncementDialogPicture, AnnouncementDialogSecondaryAction, AnnouncementDialogText, AnnouncementDialogTitle, DialogTrigger as AnnouncementDialogTrigger, AppLinkCard, AppLinkCardActions, type AppLinkCardActionsProps, AppLinkCardBody, type AppLinkCardBodyProps, AppLinkCardEyebrow, type AppLinkCardEyebrowProps, AppLinkCardHeader, type AppLinkCardHeaderProps, AppLinkCardHost, type AppLinkCardHostProps, AppLinkCardIcon, type AppLinkCardIconProps, AppLinkCardMeta, type AppLinkCardMetaProps, AppLinkCardName, type AppLinkCardNameProps, AppLinkCardPlaceholder, type AppLinkCardPlaceholderProps, AppLinkCardTitle, type AppLinkCardTitleProps, AvatarGroupButton, type AvatarGroupButtonProps, ButtonSplit, ButtonSplitMain, type ButtonSplitMainProps, ButtonSplitMenu, type ButtonSplitMenuProps, type ButtonSplitProps, type ButtonSplitSize, type ButtonSplitVariant, COMMENT_HIGHLIGHT, COMMENT_HIGHLIGHT_ACTIVE, ChoiceList, type ChoiceListGroup, type ChoiceListItem, type ChoiceListMultipleProps, type ChoiceListProps, type ChoiceListSingleProps, ComboboxSelect, type ComboboxSelectGroup, type ComboboxSelectMessages, type ComboboxSelectOption, type ComboboxSelectProps, type ComboboxSelectSelection, type ComboboxSelectValue, CommentCard, CommentCardMeta, type CommentCardMetaProps, type CommentCardProps, CommentCardQuote, type CommentCardQuoteProps, CommentCardTrigger, type CommentCardTriggerProps, CommentEntry, CommentEntryAuthor, type CommentEntryAuthorProps, CommentEntryBody, type CommentEntryBodyProps, CommentEntryHeader, type CommentEntryHeaderProps, type CommentEntryProps, CommentEntryTime, type CommentEntryTimeProps, CommentMargin, CommentMarginItem, type CommentMarginItemProps, type CommentMarginLayout, type CommentMarginLayoutItem, type CommentMarginLayoutOptions, type CommentMarginProps, CommentMarker, type CommentMarkerProps, DEFAULT_DRAG_MESSAGES, DRAG_AUTO_SCROLL_ZONE_PX, DRAG_KEYBOARD_CODES, DRAG_KEYBOARD_OFFSET_PX, DRAG_LIFT_Z_INDEX, DRAG_SETTLE, DRAG_SIBLING_TRANSITION, DROP_GLIDE, DialogFooterNote, type DialogFooterNoteProps, type DragAcrossLists, type DragAnnouncementSource, DragLift, type DragLiftProps, type DragListsItems, DragLiveRegion, type DragMessages, type DragNamed, type DragPlace, DragRefusalHint, type DragRefusalHintProps, DragRemeasure, type DragRemeasureProps, type DragSensorsOptions, DraggedSlot, type DraggedSlotProps, DropPlaceholder, type DropPlaceholderProps, DropdownMenuLinkItem, type DropdownMenuLinkItemProps, Ellipsis, type EllipsisProps, type EllipsisState, EllipsisToggle, type EllipsisToggleProps, FilterChip, FilterChipLabel, type FilterChipLabelProps, type FilterChipProps, FilterChipRemove, type FilterChipRemoveProps, type FitItemOptions, type FitStep, type FitSteps, FitToolbar, FitToolbarButton, type FitToolbarButtonProps, FitToolbarGroup, type FitToolbarGroupProps, FitToolbarMoreItems, FitToolbarPicker, type FitToolbarPickerProps, type FitToolbarProps, type HoldThenMoveOptions, HoldThenMoveTouchSensor, InboxItemLeadingBadge, type InboxItemLeadingBadgeProps, InboxItemLine, type InboxItemLineProps, InboxItemListGroup, type InboxItemListGroupProps, InboxItemListHeading, type InboxItemListHeadingProps, InboxItemSkeleton, InboxItemSkeletonList, type InboxItemSkeletonListProps, type InboxItemSkeletonProps, InboxItemStatus, type InboxItemStatusProps, KbdButton, KbdButtonCaret, type KbdButtonCaretProps, KbdButtonPlaceholder, type KbdButtonPlaceholderProps, type KbdButtonProps, type KbdKeyName, KbdShortcut, type KbdShortcutProps, type KeyboardPlatform, LIFT_CLASS, LightboxBody, type LightboxBodyProps, ListRowSkeleton, type ListRowSkeletonProps, MOUSE_DRAG_DISTANCE_PX, MessageItemDelegatedAvatar, type MessageItemDelegatedAvatarProps, MessageItemDelegatedBy, MessageItemDelegatedByButton, type MessageItemDelegatedByButtonProps, MessageItemDelegatedByName, type MessageItemDelegatedByNameProps, type MessageItemDelegatedByProps, MessageItemTrailing, type MessageItemTrailingProps, MessageListJumpControls, type MessageListJumpControlsProps, MessageListJumpPill, MessageListJumpPillDismiss, type MessageListJumpPillDismissProps, MessageListJumpPillGroup, type MessageListJumpPillGroupProps, type MessageListJumpPillProps, MessageQuotedPreviewAuthorDelegatedBy, type MessageQuotedPreviewAuthorDelegatedByProps, MessageReferenceIcon, type MessageReferenceIconProps, MessageReferenceReadMark, type MessageReferenceReadMarkProps, Meter, MeterHeader, type MeterHeaderProps, MeterIndicator, type MeterIndicatorProps, MeterLabel, type MeterLabelProps, type MeterProps, MeterTrack, type MeterTrackProps, MeterValue, type MeterValueProps, MobileNavServerItem, type MobileNavServerItemProps, MobileNavServerPopover, MobileNavServerPopoverContent, type MobileNavServerPopoverContentProps, MobileNavServerPopoverDestination, type MobileNavServerPopoverDestinationProps, MobileNavServerPopoverDestinations, type MobileNavServerPopoverDestinationsProps, MobileNavServerPopoverGroup, type MobileNavServerPopoverGroupProps, MobileNavServerPopoverList, type MobileNavServerPopoverListProps, type MobileNavServerPopoverProps, MobileNavServerPopoverRow, MobileNavServerPopoverRowBody, type MobileNavServerPopoverRowBodyProps, MobileNavServerPopoverRowDescription, type MobileNavServerPopoverRowDescriptionProps, MobileNavServerPopoverRowLabel, type MobileNavServerPopoverRowLabelProps, type MobileNavServerPopoverRowProps, MouseOnlyPointerSensor, ORIGIN_OPACITY, type OverlayLayerKind, OverlayLayerProvider, type OverlayLayerProviderProps, PULL_TO_REFRESH_DAMPING, PULL_TO_REFRESH_HOLD_DISTANCE, PULL_TO_REFRESH_MAX_DISTANCE, PULL_TO_REFRESH_POINTER_QUERY, PULL_TO_REFRESH_SNAP_BACK_MS, PULL_TO_REFRESH_THRESHOLD, PanelSplitAction, PanelSplitActionMain, type PanelSplitActionMainProps, PanelSplitActionMenu, type PanelSplitActionMenuProps, type PanelSplitActionProps, PanelSplitActionToggle, type PanelSplitActionToggleProps, PopoverActions, type PopoverActionsProps, PopoverBody, type PopoverBodyProps, PreviewCardActions, type PreviewCardActionsProps, PreviewCardBody, type PreviewCardBodyProps, PreviewCardEyebrow, type PreviewCardEyebrowProps, PreviewCardFooter, type PreviewCardFooterProps, PreviewCardMeta, type PreviewCardMetaProps, type PullToRefresh, PullToRefreshIndicator, type PullToRefreshIndicatorProps, type PullToRefreshPlatform, type PullToRefreshState, SaveStatus, SaveStatusError, type SaveStatusErrorProps, type SaveStatusProps, SaveStatusSaved, type SaveStatusSavedProps, SelectionToolbar, SelectionToolbarAction, type SelectionToolbarActionProps, SelectionToolbarActions, type SelectionToolbarActionsProps, SelectionToolbarClose, type SelectionToolbarCloseProps, SelectionToolbarCount, type SelectionToolbarCountProps, SelectionToolbarCountValue, type SelectionToolbarCountValueProps, SelectionToolbarDock, type SelectionToolbarDockProps, SelectionToolbarHint, type SelectionToolbarHintProps, SelectionToolbarItem, type SelectionToolbarItemProps, SelectionToolbarMore, SelectionToolbarMoreItems, type SelectionToolbarMoreProps, type SelectionToolbarProps, TOUCH_DRAG_DISTANCE_PX, TOUCH_DRAG_HOLD_MS, TOUCH_DRAG_TOLERANCE_PX, type TableSort, TableSortButton, type TableSortButtonProps, TableSortableHead, type TableSortableHeadProps, TaskCompletionControl, type TaskCompletionControlProps, type UseCommentMarginFitsOptions, type UseDragListsOptions, type UsePullToRefreshOptions, WebTopBarCenter, type WebTopBarCenterProps, WebTopBarEnd, type WebTopBarEndProps, WebTopBarRoot, type WebTopBarRootProps, WebTopBarStart, type WebTopBarStartProps, cancelDrag, createDragAnnouncements, dragInstructions, dragListStrategy, dragMessages, keepGrabInside, listKeyboardCoordinates, resolveCommentMarginLayout, setCommentHighlights, useCommentMarginFits, useDragAcrossLists, useDragAnnouncer, useDragLists, useDragSensors, useDragSiblingTransition, useFitItem, useFitMore, useHoldThenMoveTouchSensor, useInFitToolbar, useKeyboardPlatform, useMouseOnlyPointerSensor, useParentOverlayKind, usePullToRefresh, useTruncated };
|
|
84
|
+
export { Dialog as AnnouncementDialog, AnnouncementDialogAction, AnnouncementDialogBody, DialogClose as AnnouncementDialogClose, AnnouncementDialogContent, AnnouncementDialogFooter, AnnouncementDialogHeader, AnnouncementDialogLabel, AnnouncementDialogPicture, AnnouncementDialogSecondaryAction, AnnouncementDialogText, AnnouncementDialogTitle, DialogTrigger as AnnouncementDialogTrigger, AppLinkCard, AppLinkCardActions, type AppLinkCardActionsProps, AppLinkCardBody, type AppLinkCardBodyProps, AppLinkCardEyebrow, type AppLinkCardEyebrowProps, AppLinkCardHeader, type AppLinkCardHeaderProps, AppLinkCardHost, type AppLinkCardHostProps, AppLinkCardIcon, type AppLinkCardIconProps, AppLinkCardMeta, type AppLinkCardMetaProps, AppLinkCardName, type AppLinkCardNameProps, AppLinkCardPlaceholder, type AppLinkCardPlaceholderProps, AppLinkCardTitle, type AppLinkCardTitleProps, AvatarGroupButton, type AvatarGroupButtonProps, ButtonSplit, ButtonSplitMain, type ButtonSplitMainProps, ButtonSplitMenu, type ButtonSplitMenuProps, type ButtonSplitProps, type ButtonSplitSize, type ButtonSplitVariant, COMMENT_HIGHLIGHT, COMMENT_HIGHLIGHT_ACTIVE, ChoiceList, type ChoiceListGroup, type ChoiceListItem, type ChoiceListMultipleProps, type ChoiceListProps, type ChoiceListSingleProps, ComboboxSelect, type ComboboxSelectGroup, type ComboboxSelectMessages, type ComboboxSelectOption, type ComboboxSelectProps, type ComboboxSelectSelection, type ComboboxSelectValue, CommentCard, CommentCardMeta, type CommentCardMetaProps, type CommentCardProps, CommentCardQuote, type CommentCardQuoteProps, CommentCardTrigger, type CommentCardTriggerProps, CommentEntry, CommentEntryAuthor, type CommentEntryAuthorProps, CommentEntryBody, type CommentEntryBodyProps, CommentEntryHeader, type CommentEntryHeaderProps, type CommentEntryProps, CommentEntryTime, type CommentEntryTimeProps, CommentMargin, CommentMarginItem, type CommentMarginItemProps, type CommentMarginLayout, type CommentMarginLayoutItem, type CommentMarginLayoutOptions, type CommentMarginProps, CommentMarker, type CommentMarkerProps, DEFAULT_DRAG_MESSAGES, DRAG_AUTO_SCROLL_ZONE_PX, DRAG_KEYBOARD_CODES, DRAG_KEYBOARD_OFFSET_PX, DRAG_LIFT_Z_INDEX, DRAG_SETTLE, DRAG_SIBLING_TRANSITION, DROP_GLIDE, DialogFooterNote, type DialogFooterNoteProps, type DragAcrossLists, type DragAnnouncementSource, DragLift, type DragLiftProps, type DragListsItems, DragLiveRegion, type DragMessages, type DragNamed, type DragPlace, DragRefusalHint, type DragRefusalHintProps, DragRemeasure, type DragRemeasureProps, type DragSensorsOptions, DraggedSlot, type DraggedSlotProps, DropPlaceholder, type DropPlaceholderProps, DropdownMenuLinkItem, type DropdownMenuLinkItemProps, Ellipsis, type EllipsisProps, type EllipsisState, EllipsisToggle, type EllipsisToggleProps, FilterChip, FilterChipLabel, type FilterChipLabelProps, type FilterChipProps, FilterChipRemove, type FilterChipRemoveProps, type FitItemOptions, type FitStep, type FitSteps, FitToolbar, FitToolbarButton, type FitToolbarButtonProps, FitToolbarGroup, type FitToolbarGroupProps, FitToolbarMore, FitToolbarMoreItems, type FitToolbarMoreProps, FitToolbarPicker, type FitToolbarPickerProps, type FitToolbarProps, FitToolbarSearch, type FitToolbarSearchProps, type HoldThenMoveOptions, HoldThenMoveTouchSensor, InboxItemLeadingBadge, type InboxItemLeadingBadgeProps, InboxItemLine, type InboxItemLineProps, InboxItemListGroup, type InboxItemListGroupProps, InboxItemListHeading, type InboxItemListHeadingProps, InboxItemSkeleton, InboxItemSkeletonList, type InboxItemSkeletonListProps, type InboxItemSkeletonProps, InboxItemStatus, type InboxItemStatusProps, KbdButton, KbdButtonCaret, type KbdButtonCaretProps, KbdButtonPlaceholder, type KbdButtonPlaceholderProps, type KbdButtonProps, type KbdKeyName, KbdShortcut, type KbdShortcutProps, type KeyboardPlatform, LIFT_CLASS, LightboxBody, type LightboxBodyProps, ListRowSkeleton, type ListRowSkeletonProps, MOUSE_DRAG_DISTANCE_PX, MessageItemDelegatedAvatar, type MessageItemDelegatedAvatarProps, MessageItemDelegatedBy, MessageItemDelegatedByButton, type MessageItemDelegatedByButtonProps, MessageItemDelegatedByName, type MessageItemDelegatedByNameProps, type MessageItemDelegatedByProps, MessageItemTrailing, type MessageItemTrailingProps, MessageListJumpControls, type MessageListJumpControlsProps, MessageListJumpPill, MessageListJumpPillDismiss, type MessageListJumpPillDismissProps, MessageListJumpPillGroup, type MessageListJumpPillGroupProps, type MessageListJumpPillProps, MessageQuotedPreviewAuthorDelegatedBy, type MessageQuotedPreviewAuthorDelegatedByProps, MessageReferenceIcon, type MessageReferenceIconProps, MessageReferenceReadMark, type MessageReferenceReadMarkProps, Meter, MeterHeader, type MeterHeaderProps, MeterIndicator, type MeterIndicatorProps, MeterLabel, type MeterLabelProps, type MeterProps, MeterTrack, type MeterTrackProps, MeterValue, type MeterValueProps, MobileNavServerItem, type MobileNavServerItemProps, MobileNavServerPopover, MobileNavServerPopoverContent, type MobileNavServerPopoverContentProps, MobileNavServerPopoverDestination, type MobileNavServerPopoverDestinationProps, MobileNavServerPopoverDestinations, type MobileNavServerPopoverDestinationsProps, MobileNavServerPopoverGroup, type MobileNavServerPopoverGroupProps, MobileNavServerPopoverList, type MobileNavServerPopoverListProps, type MobileNavServerPopoverProps, MobileNavServerPopoverRow, MobileNavServerPopoverRowBody, type MobileNavServerPopoverRowBodyProps, MobileNavServerPopoverRowDescription, type MobileNavServerPopoverRowDescriptionProps, MobileNavServerPopoverRowLabel, type MobileNavServerPopoverRowLabelProps, type MobileNavServerPopoverRowProps, MouseOnlyPointerSensor, ORIGIN_OPACITY, type OverlayLayerKind, OverlayLayerProvider, type OverlayLayerProviderProps, PULL_TO_REFRESH_DAMPING, PULL_TO_REFRESH_HOLD_DISTANCE, PULL_TO_REFRESH_MAX_DISTANCE, PULL_TO_REFRESH_POINTER_QUERY, PULL_TO_REFRESH_SNAP_BACK_MS, PULL_TO_REFRESH_THRESHOLD, PanelSplitAction, PanelSplitActionMain, type PanelSplitActionMainProps, PanelSplitActionMenu, type PanelSplitActionMenuProps, type PanelSplitActionProps, PanelSplitActionToggle, type PanelSplitActionToggleProps, PopoverActions, type PopoverActionsProps, PopoverBody, type PopoverBodyProps, PreviewCardActions, type PreviewCardActionsProps, PreviewCardBody, type PreviewCardBodyProps, PreviewCardEyebrow, type PreviewCardEyebrowProps, PreviewCardFooter, type PreviewCardFooterProps, PreviewCardMeta, type PreviewCardMetaProps, type PullToRefresh, PullToRefreshIndicator, type PullToRefreshIndicatorProps, type PullToRefreshPlatform, type PullToRefreshState, SaveStatus, SaveStatusError, type SaveStatusErrorProps, type SaveStatusProps, SaveStatusSaved, type SaveStatusSavedProps, SelectionToolbar, SelectionToolbarAction, type SelectionToolbarActionProps, SelectionToolbarActions, type SelectionToolbarActionsProps, SelectionToolbarClose, type SelectionToolbarCloseProps, SelectionToolbarCount, type SelectionToolbarCountProps, SelectionToolbarCountValue, type SelectionToolbarCountValueProps, SelectionToolbarDock, type SelectionToolbarDockProps, SelectionToolbarHint, type SelectionToolbarHintProps, SelectionToolbarItem, type SelectionToolbarItemProps, SelectionToolbarMore, SelectionToolbarMoreItems, type SelectionToolbarMoreProps, type SelectionToolbarProps, TOUCH_DRAG_DISTANCE_PX, TOUCH_DRAG_HOLD_MS, TOUCH_DRAG_TOLERANCE_PX, type TableSort, TableSortButton, type TableSortButtonProps, TableSortableHead, type TableSortableHeadProps, TaskCompletionControl, type TaskCompletionControlProps, type UseCommentMarginFitsOptions, type UseDragListsOptions, type UsePullToRefreshOptions, WebTopBarCenter, type WebTopBarCenterProps, WebTopBarEnd, type WebTopBarEndProps, WebTopBarRoot, type WebTopBarRootProps, WebTopBarStart, type WebTopBarStartProps, cancelDrag, createDragAnnouncements, dragInstructions, dragListStrategy, dragMessages, keepGrabInside, listKeyboardCoordinates, resolveCommentMarginLayout, setCommentHighlights, useCommentMarginFits, useDragAcrossLists, useDragAnnouncer, useDragLists, useDragSensors, useDragSiblingTransition, useFitItem, useFitMore, useHoldThenMoveTouchSensor, useInFitToolbar, useKeyboardPlatform, useMouseOnlyPointerSensor, useParentOverlayKind, usePullToRefresh, useTruncated };
|
package/dist/wip.mjs
CHANGED
|
@@ -10,7 +10,7 @@ import { HoldThenMoveTouchSensor, MouseOnlyPointerSensor, TOUCH_DRAG_DISTANCE_PX
|
|
|
10
10
|
import { PopoverActions, PopoverBody } from "./components/popover/popover.mjs";
|
|
11
11
|
import { MobileNavServerItem, MobileNavServerPopover, MobileNavServerPopoverContent, MobileNavServerPopoverDestination, MobileNavServerPopoverDestinations, MobileNavServerPopoverGroup, MobileNavServerPopoverList, MobileNavServerPopoverRow, MobileNavServerPopoverRowBody, MobileNavServerPopoverRowDescription, MobileNavServerPopoverRowLabel } from "./components/mobile-nav/mobile-nav-server.mjs";
|
|
12
12
|
import { PreviewCardActions, PreviewCardBody, PreviewCardEyebrow, PreviewCardFooter, PreviewCardMeta } from "./components/preview-card/preview-card.mjs";
|
|
13
|
-
import { FitToolbar, FitToolbarButton, FitToolbarGroup, FitToolbarMoreItems, FitToolbarPicker, useFitItem, useFitMore, useInFitToolbar } from "./components/fit-toolbar/fit-toolbar.mjs";
|
|
13
|
+
import { FitToolbar, FitToolbarButton, FitToolbarGroup, FitToolbarMore, FitToolbarMoreItems, FitToolbarPicker, FitToolbarSearch, useFitItem, useFitMore, useInFitToolbar } from "./components/fit-toolbar/fit-toolbar.mjs";
|
|
14
14
|
import { AvatarGroupButton } from "./components/avatar/avatar.mjs";
|
|
15
15
|
import { MessageItemTrailing } from "./components/message-item/message-item-content.mjs";
|
|
16
16
|
import { MessageItemDelegatedAvatar, MessageItemDelegatedBy, MessageItemDelegatedByButton, MessageItemDelegatedByName } from "./components/message-item/message-item-delegated.mjs";
|
|
@@ -52,4 +52,4 @@ import { SaveStatus, SaveStatusError, SaveStatusSaved } from "./components/save-
|
|
|
52
52
|
import { TaskCompletionControl } from "./components/task-completion-control/task-completion-control.mjs";
|
|
53
53
|
import { KbdButton, KbdButtonCaret, KbdButtonPlaceholder } from "./components/kbd-button/kbd-button.mjs";
|
|
54
54
|
import { WebTopBarCenter, WebTopBarEnd, WebTopBarRoot, WebTopBarStart } from "./components/web-top-bar/web-top-bar.mjs";
|
|
55
|
-
export { Dialog as AnnouncementDialog, AnnouncementDialogAction, AnnouncementDialogBody, DialogClose as AnnouncementDialogClose, AnnouncementDialogContent, AnnouncementDialogFooter, AnnouncementDialogHeader, AnnouncementDialogLabel, AnnouncementDialogPicture, AnnouncementDialogSecondaryAction, AnnouncementDialogText, AnnouncementDialogTitle, DialogTrigger as AnnouncementDialogTrigger, AppLinkCard, AppLinkCardActions, AppLinkCardBody, AppLinkCardEyebrow, AppLinkCardHeader, AppLinkCardHost, AppLinkCardIcon, AppLinkCardMeta, AppLinkCardName, AppLinkCardPlaceholder, AppLinkCardTitle, AvatarGroupButton, ButtonSplit, ButtonSplitMain, ButtonSplitMenu, COMMENT_HIGHLIGHT, COMMENT_HIGHLIGHT_ACTIVE, ChoiceList, ComboboxSelect, CommentCard, CommentCardMeta, CommentCardQuote, CommentCardTrigger, CommentEntry, CommentEntryAuthor, CommentEntryBody, CommentEntryHeader, CommentEntryTime, CommentMargin, CommentMarginItem, CommentMarker, DEFAULT_DRAG_MESSAGES, DRAG_AUTO_SCROLL_ZONE_PX, DRAG_KEYBOARD_CODES, DRAG_KEYBOARD_OFFSET_PX, DRAG_LIFT_Z_INDEX, DRAG_SETTLE, DRAG_SIBLING_TRANSITION, DROP_GLIDE, DialogFooterNote, DragLift, DragLiveRegion, DragRefusalHint, DragRemeasure, DraggedSlot, DropPlaceholder, DropdownMenuLinkItem, Ellipsis, EllipsisToggle, FilterChip, FilterChipLabel, FilterChipRemove, FitToolbar, FitToolbarButton, FitToolbarGroup, FitToolbarMoreItems, FitToolbarPicker, HoldThenMoveTouchSensor, InboxItemLeadingBadge, InboxItemLine, InboxItemListGroup, InboxItemListHeading, InboxItemSkeleton, InboxItemSkeletonList, InboxItemStatus, KbdButton, KbdButtonCaret, KbdButtonPlaceholder, KbdShortcut, LIFT_CLASS, LightboxBody, ListRowSkeleton, MOUSE_DRAG_DISTANCE_PX, MessageItemDelegatedAvatar, MessageItemDelegatedBy, MessageItemDelegatedByButton, MessageItemDelegatedByName, MessageItemTrailing, MessageListJumpControls, MessageListJumpPill, MessageListJumpPillDismiss, MessageListJumpPillGroup, MessageQuotedPreviewAuthorDelegatedBy, MessageReferenceIcon, MessageReferenceReadMark, Meter, MeterHeader, MeterIndicator, MeterLabel, MeterTrack, MeterValue, MobileNavServerItem, MobileNavServerPopover, MobileNavServerPopoverContent, MobileNavServerPopoverDestination, MobileNavServerPopoverDestinations, MobileNavServerPopoverGroup, MobileNavServerPopoverList, MobileNavServerPopoverRow, MobileNavServerPopoverRowBody, MobileNavServerPopoverRowDescription, MobileNavServerPopoverRowLabel, MouseOnlyPointerSensor, ORIGIN_OPACITY, OverlayLayerProvider, PULL_TO_REFRESH_DAMPING, PULL_TO_REFRESH_HOLD_DISTANCE, PULL_TO_REFRESH_MAX_DISTANCE, PULL_TO_REFRESH_POINTER_QUERY, PULL_TO_REFRESH_SNAP_BACK_MS, PULL_TO_REFRESH_THRESHOLD, PanelSplitAction, PanelSplitActionMain, PanelSplitActionMenu, PanelSplitActionToggle, PopoverActions, PopoverBody, PreviewCardActions, PreviewCardBody, PreviewCardEyebrow, PreviewCardFooter, PreviewCardMeta, PullToRefreshIndicator, SaveStatus, SaveStatusError, SaveStatusSaved, SelectionToolbar, SelectionToolbarAction, SelectionToolbarActions, SelectionToolbarClose, SelectionToolbarCount, SelectionToolbarCountValue, SelectionToolbarDock, SelectionToolbarHint, SelectionToolbarItem, SelectionToolbarMore, SelectionToolbarMoreItems, TOUCH_DRAG_DISTANCE_PX, TOUCH_DRAG_HOLD_MS, TOUCH_DRAG_TOLERANCE_PX, TableSortButton, TableSortableHead, TaskCompletionControl, WebTopBarCenter, WebTopBarEnd, WebTopBarRoot, WebTopBarStart, cancelDrag, createDragAnnouncements, dragInstructions, dragListStrategy, dragMessages, keepGrabInside, listKeyboardCoordinates, resolveCommentMarginLayout, setCommentHighlights, useCommentMarginFits, useDragAcrossLists, useDragAnnouncer, useDragLists, useDragSensors, useDragSiblingTransition, useFitItem, useFitMore, useHoldThenMoveTouchSensor, useInFitToolbar, useKeyboardPlatform, useMouseOnlyPointerSensor, useParentOverlayKind, usePullToRefresh, useTruncated };
|
|
55
|
+
export { Dialog as AnnouncementDialog, AnnouncementDialogAction, AnnouncementDialogBody, DialogClose as AnnouncementDialogClose, AnnouncementDialogContent, AnnouncementDialogFooter, AnnouncementDialogHeader, AnnouncementDialogLabel, AnnouncementDialogPicture, AnnouncementDialogSecondaryAction, AnnouncementDialogText, AnnouncementDialogTitle, DialogTrigger as AnnouncementDialogTrigger, AppLinkCard, AppLinkCardActions, AppLinkCardBody, AppLinkCardEyebrow, AppLinkCardHeader, AppLinkCardHost, AppLinkCardIcon, AppLinkCardMeta, AppLinkCardName, AppLinkCardPlaceholder, AppLinkCardTitle, AvatarGroupButton, ButtonSplit, ButtonSplitMain, ButtonSplitMenu, COMMENT_HIGHLIGHT, COMMENT_HIGHLIGHT_ACTIVE, ChoiceList, ComboboxSelect, CommentCard, CommentCardMeta, CommentCardQuote, CommentCardTrigger, CommentEntry, CommentEntryAuthor, CommentEntryBody, CommentEntryHeader, CommentEntryTime, CommentMargin, CommentMarginItem, CommentMarker, DEFAULT_DRAG_MESSAGES, DRAG_AUTO_SCROLL_ZONE_PX, DRAG_KEYBOARD_CODES, DRAG_KEYBOARD_OFFSET_PX, DRAG_LIFT_Z_INDEX, DRAG_SETTLE, DRAG_SIBLING_TRANSITION, DROP_GLIDE, DialogFooterNote, DragLift, DragLiveRegion, DragRefusalHint, DragRemeasure, DraggedSlot, DropPlaceholder, DropdownMenuLinkItem, Ellipsis, EllipsisToggle, FilterChip, FilterChipLabel, FilterChipRemove, FitToolbar, FitToolbarButton, FitToolbarGroup, FitToolbarMore, FitToolbarMoreItems, FitToolbarPicker, FitToolbarSearch, HoldThenMoveTouchSensor, InboxItemLeadingBadge, InboxItemLine, InboxItemListGroup, InboxItemListHeading, InboxItemSkeleton, InboxItemSkeletonList, InboxItemStatus, KbdButton, KbdButtonCaret, KbdButtonPlaceholder, KbdShortcut, LIFT_CLASS, LightboxBody, ListRowSkeleton, MOUSE_DRAG_DISTANCE_PX, MessageItemDelegatedAvatar, MessageItemDelegatedBy, MessageItemDelegatedByButton, MessageItemDelegatedByName, MessageItemTrailing, MessageListJumpControls, MessageListJumpPill, MessageListJumpPillDismiss, MessageListJumpPillGroup, MessageQuotedPreviewAuthorDelegatedBy, MessageReferenceIcon, MessageReferenceReadMark, Meter, MeterHeader, MeterIndicator, MeterLabel, MeterTrack, MeterValue, MobileNavServerItem, MobileNavServerPopover, MobileNavServerPopoverContent, MobileNavServerPopoverDestination, MobileNavServerPopoverDestinations, MobileNavServerPopoverGroup, MobileNavServerPopoverList, MobileNavServerPopoverRow, MobileNavServerPopoverRowBody, MobileNavServerPopoverRowDescription, MobileNavServerPopoverRowLabel, MouseOnlyPointerSensor, ORIGIN_OPACITY, OverlayLayerProvider, PULL_TO_REFRESH_DAMPING, PULL_TO_REFRESH_HOLD_DISTANCE, PULL_TO_REFRESH_MAX_DISTANCE, PULL_TO_REFRESH_POINTER_QUERY, PULL_TO_REFRESH_SNAP_BACK_MS, PULL_TO_REFRESH_THRESHOLD, PanelSplitAction, PanelSplitActionMain, PanelSplitActionMenu, PanelSplitActionToggle, PopoverActions, PopoverBody, PreviewCardActions, PreviewCardBody, PreviewCardEyebrow, PreviewCardFooter, PreviewCardMeta, PullToRefreshIndicator, SaveStatus, SaveStatusError, SaveStatusSaved, SelectionToolbar, SelectionToolbarAction, SelectionToolbarActions, SelectionToolbarClose, SelectionToolbarCount, SelectionToolbarCountValue, SelectionToolbarDock, SelectionToolbarHint, SelectionToolbarItem, SelectionToolbarMore, SelectionToolbarMoreItems, TOUCH_DRAG_DISTANCE_PX, TOUCH_DRAG_HOLD_MS, TOUCH_DRAG_TOLERANCE_PX, TableSortButton, TableSortableHead, TaskCompletionControl, WebTopBarCenter, WebTopBarEnd, WebTopBarRoot, WebTopBarStart, cancelDrag, createDragAnnouncements, dragInstructions, dragListStrategy, dragMessages, keepGrabInside, listKeyboardCoordinates, resolveCommentMarginLayout, setCommentHighlights, useCommentMarginFits, useDragAcrossLists, useDragAnnouncer, useDragLists, useDragSensors, useDragSiblingTransition, useFitItem, useFitMore, useHoldThenMoveTouchSensor, useInFitToolbar, useKeyboardPlatform, useMouseOnlyPointerSensor, useParentOverlayKind, usePullToRefresh, useTruncated };
|
package/package.json
CHANGED
|
@@ -91,6 +91,7 @@ When reviewing or editing code that uses raft-ui, check:
|
|
|
91
91
|
- [ ] Product state (upload, permissions, read/unread) lives in the app; the component renders parts, not a `state` prop
|
|
92
92
|
- [ ] No shadow written as `shadow-[var(--…)]`: named utility or fully literal
|
|
93
93
|
- [ ] Every region that scrolls is a `ScrollArea` (or `PanelScrollViewport` in a Panel), not `overflow-auto` / `overflow-scroll`; a native scroller kept on purpose has a `// raft-ui: native-scroll <reason>` comment. The `raft-ui/prefer-scroll-area` lint rule checks it: https://raft-design.botiverse.build/about/use-raft-ui.md#lint-rules
|
|
94
|
+
- [ ] Every z-index is a layer name (`z-raised`, `z-control`, `z-sticky`, `z-float`, `z-chrome`, `z-cover`, `z-app`; `var(--z-index-…)` in CSS), never a number; popups, dialogs, lightboxes, toasts and drag lifts take raft-ui's components and no z-index. A number kept on purpose has a `// raft-ui: z-index <reason>` comment. The `raft-ui/no-raw-z-index` lint rule checks it: https://raft-design.botiverse.build/foundations/elevation.md#layer-order
|
|
94
95
|
|
|
95
96
|
## Stability
|
|
96
97
|
|