@heyramzi/ui 2.11.0 → 2.11.2
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/dist/agents/helpers.js +38 -38
- package/dist/agents/page-state.js +49 -50
- package/dist/agents/vendor/color.js +146 -127
- package/dist/agents/vendor/draw.js +617 -508
- package/dist/agents/vendor/engine.js +698 -599
- package/dist/agents/vendor/mesh.js +653 -683
- package/dist/agents/vendor/plastic.js +3913 -3112
- package/dist/agents/vendor/presets.js +163 -164
- package/dist/agents/vendor/shapes.js +21 -20
- package/dist/agents/vendor/ticker.js +41 -42
- package/dist/agents/vendor/types.js +1 -0
- package/dist/agents/vendor/wear.js +1421 -1448
- package/dist/ai/confirmation/confirmation-context.svelte.js +6 -6
- package/dist/ai/confirmation/index.js +3 -1
- package/dist/ai/index.js +33 -0
- package/dist/ai/prompt-input/index.js +3 -1
- package/dist/ai/reasoning/index.js +3 -1
- package/dist/ai/reasoning/reasoning-context.svelte.js +6 -6
- package/dist/ai/suggestion/index.js +3 -1
- package/dist/ai/typing-dots/index.js +3 -1
- package/dist/animations/text-swap.js +24 -24
- package/dist/brand/index.js +54 -48
- package/dist/canvas/card/resize.js +5 -3
- package/dist/canvas/edges/edge-path.js +255 -242
- package/dist/canvas/editor/context-menu.js +39 -36
- package/dist/canvas/editor/dispatch.svelte.js +154 -151
- package/dist/canvas/editor/editor-context.js +7 -2
- package/dist/canvas/editor/editor-mode.js +1 -0
- package/dist/canvas/editor/frame.js +73 -76
- package/dist/canvas/editor/hand-context.js +5 -2
- package/dist/canvas/editor/history-core.js +163 -191
- package/dist/canvas/editor/keymap.js +95 -169
- package/dist/canvas/editor/layout-actions.js +143 -144
- package/dist/canvas/editor/lock.js +52 -51
- package/dist/canvas/editor/rebase.js +217 -240
- package/dist/canvas/editor/style.js +132 -137
- package/dist/canvas/editor/text-field-context.js +7 -2
- package/dist/canvas/editor/z-order.js +65 -70
- package/dist/canvas/headless/alignment.js +22 -16
- package/dist/canvas/headless/break-apart-find.js +286 -279
- package/dist/canvas/headless/break-apart-pieces.js +62 -58
- package/dist/canvas/headless/break-apart-plan.js +299 -325
- package/dist/canvas/headless/break-apart-style.js +75 -70
- package/dist/canvas/headless/break-apart.js +188 -181
- package/dist/canvas/headless/canvas-cleanup.js +78 -58
- package/dist/canvas/headless/edge-anchors.js +115 -116
- package/dist/canvas/headless/edge-memo.js +24 -22
- package/dist/canvas/headless/edge-serialization.js +17 -27
- package/dist/canvas/headless/figure-geometry.js +232 -264
- package/dist/canvas/headless/fit-viewport.js +84 -67
- package/dist/canvas/headless/grid.js +88 -86
- package/dist/canvas/headless/icon-node.js +44 -36
- package/dist/canvas/headless/index.js +1 -0
- package/dist/canvas/headless/linkify.js +17 -19
- package/dist/canvas/headless/pen-marks.js +101 -95
- package/dist/canvas/headless/sketch.js +231 -209
- package/dist/canvas/headless/snap-guides.js +99 -83
- package/dist/canvas/headless/svg-figure.js +133 -117
- package/dist/canvas/headless/table-layout.js +146 -107
- package/dist/canvas/index.js +2 -0
- package/dist/canvas/lod/lod-mode.svelte.js +20 -18
- package/dist/canvas/lod/render-all.svelte.js +36 -39
- package/dist/canvas/ops/arrange.js +78 -71
- package/dist/canvas/ops/ops.js +260 -255
- package/dist/canvas/pen/colors.js +37 -35
- package/dist/canvas/pen/eraser.js +28 -27
- package/dist/canvas/pen/geometry.js +120 -130
- package/dist/canvas/pen/index.js +1 -0
- package/dist/canvas/pen/ops.js +11 -11
- package/dist/canvas/pen/pen-session.js +150 -159
- package/dist/canvas/pen/plugin.js +107 -104
- package/dist/canvas/pen/shapes.js +73 -68
- package/dist/canvas/pen/stroke-path.js +32 -30
- package/dist/canvas/pen/types.js +21 -21
- package/dist/canvas/pen/ui.js +10 -8
- package/dist/canvas/plugin.js +46 -46
- package/dist/canvas/screen/glyphs.js +12 -11
- package/dist/canvas/screen/labels.js +22 -22
- package/dist/canvas/screen/parts.js +98 -111
- package/dist/canvas/screen/plugin.js +47 -56
- package/dist/canvas/screen/types.js +30 -35
- package/dist/canvas/screen/ui.js +7 -7
- package/dist/canvas/test-utils.js +14 -14
- package/dist/canvas/types.js +1 -0
- package/dist/canvas/ui/forward-wheel.js +24 -25
- package/dist/canvas/ui/icons.js +64 -131
- package/dist/canvas/ui/place-panel.js +58 -49
- package/dist/canvas/ui/shortcut-tip.js +14 -12
- package/dist/canvas/ui/tools.js +300 -385
- package/dist/charts/dashboard/chart.js +4 -0
- package/dist/charts/dashboard/data-table.js +11 -0
- package/dist/charts/dashboard/windows.js +8 -3
- package/dist/charts/edge-fade.js +10 -5
- package/dist/charts/hover-band.js +16 -11
- package/dist/charts/index.js +0 -1
- package/dist/charts/motion.js +11 -7
- package/dist/charts/primitives/chart-utils.js +12 -12
- package/dist/components/copy/clipboard.js +32 -32
- package/dist/components/copy/copied.svelte.js +31 -23
- package/dist/components/data-table/data-table.js +39 -39
- package/dist/components/docs/index.js +4 -0
- package/dist/components/docs/scroll-spy.svelte.js +73 -68
- package/dist/components/list-page/filter-section.js +4 -1
- package/dist/components/list-page/index.js +2 -0
- package/dist/components/list-page/list-table.js +7 -2
- package/dist/components/list-page/queue-rail.js +14 -0
- package/dist/components/list-page/section-host.js +4 -2
- package/dist/components/list-page/step.js +4 -3
- package/dist/components/list-page/types.js +1 -0
- package/dist/components/picker/trigger.js +48 -30
- package/dist/components/picker/types.js +1 -0
- package/dist/components/segmented/collapse.js +38 -27
- package/dist/components/segmented/index.js +8 -0
- package/dist/components/segmented/segmented.js +67 -42
- package/dist/components/star-rating-input/index.js +3 -1
- package/dist/components/table-view/types.js +1 -0
- package/dist/components/tags-input/tags.js +81 -69
- package/dist/components/theme/index.js +4 -0
- package/dist/components/toolbar/index.js +4 -0
- package/dist/components/toolbar/toolbar-trigger.js +14 -1
- package/dist/editor/anchors.js +17 -13
- package/dist/editor/block-id.js +52 -51
- package/dist/editor/block-ops.js +108 -80
- package/dist/editor/doc-blocks.js +155 -166
- package/dist/editor/extensions.js +139 -180
- package/dist/editor/index.js +4 -0
- package/dist/editor/markdown-test-helpers.js +4 -2
- package/dist/editor/markdown.js +420 -408
- package/dist/editor/serializer.js +204 -200
- package/dist/editor/slash-items.js +89 -101
- package/dist/editor/youtube-url.js +25 -20
- package/dist/effects/animated-beam/path-calculator.svelte.js +43 -38
- package/dist/effects/animated-beam/types.js +1 -0
- package/dist/effects/border-beam/css.js +92 -78
- package/dist/effects/border-beam/presets.js +1705 -1720
- package/dist/effects/border-beam/register-properties.js +43 -33
- package/dist/effects/border-beam/types.js +1 -0
- package/dist/effects/image-comparison/compare.js +3 -2
- package/dist/effects/image-reveal/types.js +1 -0
- package/dist/effects/magnetic/magnetic.js +58 -52
- package/dist/effects/reveal/observe.js +50 -40
- package/dist/effects/reveal/types.js +1 -0
- package/dist/effects/shader-gradient/color.js +36 -29
- package/dist/effects/shader-gradient/renderer.js +384 -295
- package/dist/effects/shader-gradient/shaders.js +31 -0
- package/dist/effects/shader-gradient/types.js +1 -0
- package/dist/icons/apple-symbol-exports.js +99 -124
- package/dist/icons/sf-symbols.js +357 -461
- package/dist/icons/trades.js +43 -28
- package/dist/inbox/index.js +1 -0
- package/dist/inbox/logic.js +126 -122
- package/dist/inbox/types.js +43 -43
- package/dist/lib/arrive.js +19 -12
- package/dist/lib/icon-types.js +1 -0
- package/dist/lib/initials.js +16 -10
- package/dist/lib/layout.js +5 -0
- package/dist/lib/panel.js +13 -0
- package/dist/lib/result.js +22 -22
- package/dist/lib/sliding-pill.js +59 -44
- package/dist/lib/theme-transition.js +43 -43
- package/dist/lib/tone.js +31 -24
- package/dist/lib/utils.js +3 -1
- package/dist/onboarding/define-tours.js +24 -23
- package/dist/onboarding/onboarding.svelte.js +16 -12
- package/dist/onboarding/pick.js +10 -6
- package/dist/onboarding/stores.js +40 -41
- package/dist/onboarding/wait.js +24 -23
- package/dist/panel/side-panel-types.js +1 -0
- package/dist/record/demo-data.js +459 -486
- package/dist/record/fields.js +129 -131
- package/dist/record/format.js +70 -82
- package/dist/record/gutter.js +1 -0
- package/dist/record/kinds.js +95 -105
- package/dist/record/logic.js +238 -219
- package/dist/record/types.js +49 -48
- package/dist/shadcn/accordion/index.js +3 -1
- package/dist/shadcn/alert/index.js +3 -1
- package/dist/shadcn/alert-dialog/index.js +3 -1
- package/dist/shadcn/attachment/index.js +3 -1
- package/dist/shadcn/avatar/index.js +3 -1
- package/dist/shadcn/breadcrumb/index.js +3 -1
- package/dist/shadcn/bubble/index.js +3 -1
- package/dist/shadcn/button/index.js +3 -1
- package/dist/shadcn/calendar/index.js +3 -1
- package/dist/shadcn/card/index.js +3 -1
- package/dist/shadcn/checkbox/index.js +3 -1
- package/dist/shadcn/code-block/index.js +3 -1
- package/dist/shadcn/collapsible/index.js +3 -1
- package/dist/shadcn/command/index.js +4 -1
- package/dist/shadcn/context-menu/index.js +3 -1
- package/dist/shadcn/dialog/index.js +3 -1
- package/dist/shadcn/dropdown-menu/menu-item.js +40 -20
- package/dist/shadcn/empty/index.js +3 -1
- package/dist/shadcn/field/index.js +3 -1
- package/dist/shadcn/hooks/highlighter.js +77 -75
- package/dist/shadcn/hooks/is-mobile.svelte.js +3 -3
- package/dist/shadcn/hooks/use-highlighted-code.svelte.js +62 -62
- package/dist/shadcn/input/index.js +3 -1
- package/dist/shadcn/kbd/index.js +3 -1
- package/dist/shadcn/label/index.js +3 -1
- package/dist/shadcn/marker/index.js +3 -1
- package/dist/shadcn/message/index.js +3 -1
- package/dist/shadcn/message-scroller/index.js +3 -1
- package/dist/shadcn/popover/index.js +3 -1
- package/dist/shadcn/progress/index.js +3 -1
- package/dist/shadcn/progress/tone.js +8 -7
- package/dist/shadcn/radio-group/index.js +3 -1
- package/dist/shadcn/scroll-area/index.js +3 -1
- package/dist/shadcn/select/index.js +3 -1
- package/dist/shadcn/separator/index.js +3 -1
- package/dist/shadcn/sheet/index.js +3 -1
- package/dist/shadcn/sidebar/context.svelte.js +42 -28
- package/dist/shadcn/sidebar/index.js +3 -1
- package/dist/shadcn/skeleton/index.js +3 -1
- package/dist/shadcn/slider/index.js +3 -1
- package/dist/shadcn/switch/index.js +3 -1
- package/dist/shadcn/table/index.js +3 -1
- package/dist/shadcn/tabs/index.js +3 -1
- package/dist/shadcn/textarea/index.js +3 -1
- package/dist/shadcn/toggle/index.js +3 -1
- package/dist/shadcn/toggle-group/index.js +3 -1
- package/dist/shadcn/tooltip/context.js +7 -2
- package/dist/shadcn/tooltip/index.js +3 -1
- package/dist/shadcn/trace/index.js +3 -1
- package/dist/slides/bridges.js +65 -59
- package/dist/slides/deck-controller.svelte.js +210 -207
- package/dist/slides/export/capture.js +66 -71
- package/dist/slides/export/ffmpeg.js +76 -72
- package/dist/slides/export/index.js +3 -0
- package/dist/slides/export/launch.js +9 -6
- package/dist/slides/export/pdf.js +60 -54
- package/dist/slides/export/types.js +1 -0
- package/dist/slides/labels.js +24 -24
- package/dist/slides/layout.js +39 -41
- package/dist/slides/model.js +9 -7
- package/dist/slides/navigation.js +78 -73
- package/dist/slides/types.js +2 -2
- package/dist/status/define-statuses.js +18 -14
- package/dist/status/status-types.js +1 -0
- package/dist/test-setup.js +24 -20
- package/dist/thread/logic.js +73 -77
- package/dist/thread/types.js +21 -21
- package/dist/work/board-order.js +94 -90
- package/dist/work/dates.js +16 -9
- package/dist/work/detail/detail-types.js +18 -18
- package/dist/work/docs/edited.js +32 -29
- package/dist/work/docs/index.js +4 -0
- package/dist/work/docs/labels.js +34 -34
- package/dist/work/docs/menu.js +113 -106
- package/dist/work/docs/outline.js +39 -29
- package/dist/work/gantt/logic.js +211 -235
- package/dist/work/inbox/inbox-logic.js +71 -75
- package/dist/work/inbox/inbox-statuses.js +75 -72
- package/dist/work/inbox/inbox-types.js +1 -0
- package/dist/work/kanban-drag.js +27 -22
- package/dist/work/kanban-types.js +1 -0
- package/dist/work/presets/sales.js +36 -32
- package/dist/work/reorder.js +9 -8
- package/dist/work/task-types.js +1 -0
- package/dist/work/time/duration.js +51 -46
- package/dist/work/time/time-types.js +23 -23
- package/dist/work/use-kanban-dnd.svelte.js +126 -125
- package/package.json +3 -1
- package/src/components/list-page/master-detail.svelte +3 -1
- package/src/components/list-page/rail-row.svelte +4 -4
- package/src/components/tags-input/tags-input.svelte +2 -0
- package/src/editor/markdown.ts +30 -35
|
@@ -8,4 +8,6 @@ import Header from "../../../src/shadcn/sheet/sheet-header.svelte";
|
|
|
8
8
|
import Footer from "../../../src/shadcn/sheet/sheet-footer.svelte";
|
|
9
9
|
import Title from "../../../src/shadcn/sheet/sheet-title.svelte";
|
|
10
10
|
import Description from "../../../src/shadcn/sheet/sheet-description.svelte";
|
|
11
|
-
export { Root, Close, Trigger, Portal, Overlay, Content, Header, Footer, Title, Description,
|
|
11
|
+
export { Root, Close, Trigger, Portal, Overlay, Content, Header, Footer, Title, Description,
|
|
12
|
+
//
|
|
13
|
+
Root as Sheet, Close as SheetClose, Trigger as SheetTrigger, Portal as SheetPortal, Overlay as SheetOverlay, Content as SheetContent, Header as SheetHeader, Footer as SheetFooter, Title as SheetTitle, Description as SheetDescription };
|
|
@@ -2,37 +2,51 @@ import { IsMobile } from "../hooks/is-mobile.svelte.js";
|
|
|
2
2
|
import { getContext, setContext } from "svelte";
|
|
3
3
|
import { SIDEBAR_KEYBOARD_SHORTCUT } from "./constants.js";
|
|
4
4
|
class SidebarState {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
5
|
+
props;
|
|
6
|
+
open = $derived.by(() => this.props.open());
|
|
7
|
+
openMobile = $state(false);
|
|
8
|
+
setOpen;
|
|
9
|
+
#isMobile;
|
|
10
|
+
state = $derived.by(() => this.open ? "expanded" : "collapsed");
|
|
11
|
+
constructor(props) {
|
|
12
|
+
this.setOpen = props.setOpen;
|
|
13
|
+
this.#isMobile = new IsMobile();
|
|
14
|
+
this.props = props;
|
|
15
|
+
}
|
|
16
|
+
// Convenience getter for checking if the sidebar is mobile
|
|
17
|
+
// without this, we would need to use `sidebar.isMobile.current` everywhere
|
|
18
|
+
get isMobile() {
|
|
19
|
+
return this.#isMobile.current;
|
|
20
|
+
}
|
|
21
|
+
// Event handler to apply to the `<svelte:window>`
|
|
22
|
+
handleShortcutKeydown = (e) => {
|
|
23
|
+
if (e.key === SIDEBAR_KEYBOARD_SHORTCUT && (e.metaKey || e.ctrlKey)) {
|
|
24
|
+
e.preventDefault();
|
|
25
|
+
this.toggle();
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
setOpenMobile = (value) => {
|
|
29
|
+
this.openMobile = value;
|
|
30
|
+
};
|
|
31
|
+
toggle = () => {
|
|
32
|
+
return this.#isMobile.current ? this.openMobile = !this.openMobile : this.setOpen(!this.open);
|
|
33
|
+
};
|
|
31
34
|
}
|
|
32
35
|
const SYMBOL_KEY = "scn-sidebar";
|
|
36
|
+
/**
|
|
37
|
+
* Instantiates a new `SidebarState` instance and sets it in the context.
|
|
38
|
+
*
|
|
39
|
+
* @param props The constructor props for the `SidebarState` class.
|
|
40
|
+
* @returns The `SidebarState` instance.
|
|
41
|
+
*/
|
|
33
42
|
export function setSidebar(props) {
|
|
34
|
-
|
|
43
|
+
return setContext(Symbol.for(SYMBOL_KEY), new SidebarState(props));
|
|
35
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* Retrieves the `SidebarState` instance from the context. This is a class instance,
|
|
47
|
+
* so you cannot destructure it.
|
|
48
|
+
* @returns The `SidebarState` instance.
|
|
49
|
+
*/
|
|
36
50
|
export function useSidebar() {
|
|
37
|
-
|
|
51
|
+
return getContext(Symbol.for(SYMBOL_KEY));
|
|
38
52
|
}
|
|
@@ -22,4 +22,6 @@ import Rail from "../../../src/shadcn/sidebar/sidebar-rail.svelte";
|
|
|
22
22
|
import Separator from "../../../src/shadcn/sidebar/sidebar-separator.svelte";
|
|
23
23
|
import Trigger from "../../../src/shadcn/sidebar/sidebar-trigger.svelte";
|
|
24
24
|
import Root from "../../../src/shadcn/sidebar/sidebar.svelte";
|
|
25
|
-
export { Content, Footer, Group, GroupAction, GroupContent, GroupLabel, Header, Input, Inset, Menu, MenuAction, MenuBadge, MenuButton, MenuItem, MenuSkeleton, MenuSub, MenuSubButton, MenuSubItem, Provider, Rail, Root, Separator,
|
|
25
|
+
export { Content, Footer, Group, GroupAction, GroupContent, GroupLabel, Header, Input, Inset, Menu, MenuAction, MenuBadge, MenuButton, MenuItem, MenuSkeleton, MenuSub, MenuSubButton, MenuSubItem, Provider, Rail, Root, Separator,
|
|
26
|
+
//
|
|
27
|
+
Root as Sidebar, Content as SidebarContent, Footer as SidebarFooter, Group as SidebarGroup, GroupAction as SidebarGroupAction, GroupContent as SidebarGroupContent, GroupLabel as SidebarGroupLabel, Header as SidebarHeader, Input as SidebarInput, Inset as SidebarInset, Menu as SidebarMenu, MenuAction as SidebarMenuAction, MenuBadge as SidebarMenuBadge, MenuButton as SidebarMenuButton, MenuItem as SidebarMenuItem, MenuSkeleton as SidebarMenuSkeleton, MenuSub as SidebarMenuSub, MenuSubButton as SidebarMenuSubButton, MenuSubItem as SidebarMenuSubItem, Provider as SidebarProvider, Rail as SidebarRail, Separator as SidebarSeparator, Trigger as SidebarTrigger, Trigger, useSidebar };
|
|
@@ -6,4 +6,6 @@ import Footer from "../../../src/shadcn/table/table-footer.svelte";
|
|
|
6
6
|
import Head from "../../../src/shadcn/table/table-head.svelte";
|
|
7
7
|
import Header from "../../../src/shadcn/table/table-header.svelte";
|
|
8
8
|
import Row from "../../../src/shadcn/table/table-row.svelte";
|
|
9
|
-
export { Root, Body, Caption, Cell, Footer, Head, Header, Row,
|
|
9
|
+
export { Root, Body, Caption, Cell, Footer, Head, Header, Row,
|
|
10
|
+
//
|
|
11
|
+
Root as Table, Body as TableBody, Caption as TableCaption, Cell as TableCell, Footer as TableFooter, Head as TableHead, Header as TableHeader, Row as TableRow };
|
|
@@ -2,4 +2,6 @@ import Root from "../../../src/shadcn/tabs/tabs.svelte";
|
|
|
2
2
|
import Content from "../../../src/shadcn/tabs/tabs-content.svelte";
|
|
3
3
|
import List from "../../../src/shadcn/tabs/tabs-list.svelte";
|
|
4
4
|
import Trigger from "../../../src/shadcn/tabs/tabs-trigger.svelte";
|
|
5
|
-
export { Root, Content, List, Trigger,
|
|
5
|
+
export { Root, Content, List, Trigger,
|
|
6
|
+
//
|
|
7
|
+
Root as Tabs, Content as TabsContent, List as TabsList, Trigger as TabsTrigger };
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import Root from "../../../src/shadcn/toggle-group/toggle-group.svelte";
|
|
2
2
|
import Item from "../../../src/shadcn/toggle-group/toggle-group-item.svelte";
|
|
3
|
-
export { Root, Item,
|
|
3
|
+
export { Root, Item,
|
|
4
|
+
//
|
|
5
|
+
Root as ToggleGroup, Item as ToggleGroupItem };
|
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
import { getContext, hasContext, setContext } from "svelte";
|
|
2
2
|
const KEY = Symbol.for("upsys.tooltip.provider");
|
|
3
|
+
/** Marks the subtree as already inside a Tooltip.Provider. */
|
|
3
4
|
export function markTooltipProvider() {
|
|
4
|
-
|
|
5
|
+
setContext(KEY, true);
|
|
5
6
|
}
|
|
7
|
+
/**
|
|
8
|
+
* bits-ui keeps the delay and the skip window on the provider, so tooltips share
|
|
9
|
+
* a group only when they share one. The root used to mount its own every time.
|
|
10
|
+
*/
|
|
6
11
|
export function hasTooltipProvider() {
|
|
7
|
-
|
|
12
|
+
return hasContext(KEY) && getContext(KEY) === true;
|
|
8
13
|
}
|
|
@@ -3,4 +3,6 @@ import Trigger from "../../../src/shadcn/tooltip/tooltip-trigger.svelte";
|
|
|
3
3
|
import Content from "../../../src/shadcn/tooltip/tooltip-content.svelte";
|
|
4
4
|
import Provider from "../../../src/shadcn/tooltip/tooltip-provider.svelte";
|
|
5
5
|
import Portal from "../../../src/shadcn/tooltip/tooltip-portal.svelte";
|
|
6
|
-
export { Root, Trigger, Content, Provider, Portal,
|
|
6
|
+
export { Root, Trigger, Content, Provider, Portal,
|
|
7
|
+
//
|
|
8
|
+
Root as Tooltip, Content as TooltipContent, Trigger as TooltipTrigger, Provider as TooltipProvider, Portal as TooltipPortal };
|
|
@@ -6,4 +6,6 @@ import Icon from "../../../src/shadcn/trace/trace-icon.svelte";
|
|
|
6
6
|
import Title from "../../../src/shadcn/trace/trace-title.svelte";
|
|
7
7
|
import Root from "../../../src/shadcn/trace/trace.svelte";
|
|
8
8
|
import Line from "../../../src/shadcn/trace/trace-line.svelte";
|
|
9
|
-
export { Root, Line, Icon, Title, Description, Collapsible, CollapsibleTrigger, CollapsibleContent,
|
|
9
|
+
export { Root, Line, Icon, Title, Description, Collapsible, CollapsibleTrigger, CollapsibleContent,
|
|
10
|
+
//
|
|
11
|
+
Root as Trace, Line as TraceLine, Icon as TraceIcon, Title as TraceTitle, Description as TraceDescription, Collapsible as TraceCollapsible, CollapsibleTrigger as TraceCollapsibleTrigger, CollapsibleContent as TraceCollapsibleContent };
|
package/dist/slides/bridges.js
CHANGED
|
@@ -1,66 +1,72 @@
|
|
|
1
1
|
import { parseSlideParam } from "./navigation.js";
|
|
2
|
+
/** Reads `?s=` once, then keeps it at the current slide. The write is a replace, so Back skips it. */
|
|
2
3
|
export function attachUrlSync(deck, { param = "s", write } = {}) {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
4
|
+
const initial = parseSlideParam(new URL(location.href).searchParams.get(param), deck.entries.length);
|
|
5
|
+
if (initial !== null) deck.go(initial, 0, "remote");
|
|
6
|
+
return deck.listen(({ index }) => {
|
|
7
|
+
const url = new URL(location.href);
|
|
8
|
+
url.searchParams.set(param, String(index + 1));
|
|
9
|
+
if (write) write(url);
|
|
10
|
+
else history.replaceState(history.state, "", url);
|
|
11
|
+
});
|
|
11
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* Lets a host page drive a deck in an iframe. In: `{type:'deck:nav', delta}` and
|
|
15
|
+
* `{type:'deck:go', index, step?}`. Out to the parent: `{type:'deck:change', index, step, total}`.
|
|
16
|
+
*/
|
|
12
17
|
export function attachBridge(deck, { origin = location.origin } = {}) {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
18
|
+
const onMessage = (event) => {
|
|
19
|
+
if (origin !== "*" && event.origin !== origin) return;
|
|
20
|
+
const data = event.data;
|
|
21
|
+
if (data?.type === "deck:nav") {
|
|
22
|
+
if (data.delta === -1) deck.prev();
|
|
23
|
+
else if (data.delta === 1) deck.next();
|
|
24
|
+
} else if (data?.type === "deck:go" && Number.isInteger(data.index)) {
|
|
25
|
+
deck.go(data.index, Number.isInteger(data.step) ? data.step : 0, "remote");
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
window.addEventListener("message", onMessage);
|
|
29
|
+
const stop = deck.listen(({ index, step }, source) => {
|
|
30
|
+
if (source === "local" && window.parent !== window) {
|
|
31
|
+
window.parent.postMessage({
|
|
32
|
+
type: "deck:change",
|
|
33
|
+
index,
|
|
34
|
+
step,
|
|
35
|
+
total: deck.visible.length
|
|
36
|
+
}, origin);
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
return () => {
|
|
40
|
+
window.removeEventListener("message", onMessage);
|
|
41
|
+
stop();
|
|
42
|
+
};
|
|
38
43
|
}
|
|
44
|
+
/** Mirrors the deck across windows of one origin: the audience screen and a presenter view. */
|
|
39
45
|
export function attachChannel(deck, name) {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
46
|
+
if (typeof BroadcastChannel === "undefined") return () => {};
|
|
47
|
+
const channel = new BroadcastChannel(`heyramzi-slides:${name}`);
|
|
48
|
+
const self = crypto.randomUUID();
|
|
49
|
+
const send = (message) => channel.postMessage(message);
|
|
50
|
+
const state = ({ index, step } = deck.position) => ({
|
|
51
|
+
type: "state",
|
|
52
|
+
from: self,
|
|
53
|
+
index,
|
|
54
|
+
step
|
|
55
|
+
});
|
|
56
|
+
channel.onmessage = ({ data }) => {
|
|
57
|
+
if (data.from === self) return;
|
|
58
|
+
if (data.type === "hello") send(state());
|
|
59
|
+
else deck.go(data.index, data.step, "remote");
|
|
60
|
+
};
|
|
61
|
+
const stop = deck.listen((position, source) => {
|
|
62
|
+
if (source === "local") send(state(position));
|
|
63
|
+
});
|
|
64
|
+
send({
|
|
65
|
+
type: "hello",
|
|
66
|
+
from: self
|
|
67
|
+
});
|
|
68
|
+
return () => {
|
|
69
|
+
stop();
|
|
70
|
+
channel.close();
|
|
71
|
+
};
|
|
66
72
|
}
|