@rokkit/ui 1.1.19 → 1.3.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.
@@ -0,0 +1,4 @@
1
+ import type { LockModeProps } from '../types/lock-mode.js';
2
+ declare const LockMode: import("svelte").Component<LockModeProps, {}, "">;
3
+ type LockMode = ReturnType<typeof LockMode>;
4
+ export default LockMode;
@@ -14,6 +14,7 @@ export { default as Tabs } from './Tabs.svelte';
14
14
  export { default as Toggle } from './Toggle.svelte';
15
15
  export { default as Swatch } from './Swatch.svelte';
16
16
  export { default as List } from './List.svelte';
17
+ export { default as LockMode } from './LockMode.svelte';
17
18
  export { default as Tree } from './Tree.svelte';
18
19
  export { default as LazyTree } from './LazyTree.svelte';
19
20
  export { default as Connector } from './Connector.svelte';
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { Button, ButtonGroup, Code, CodeBlock, CodeGroup, Frame, Menu, Dropdown, Select, MultiSelect, Toolbar, ToolbarGroup, Tabs, Toggle, Swatch, List, Tree, LazyTree, FloatingAction, FloatingNavigation, PaletteManager, Tilt, Shine, BreadCrumbs, Card, ProgressBar, Carousel, Pill, Rating, Connector, ItemContent, Stepper, Switch, Table, TreeTable, SearchFilter, Range, Timeline, Reveal, Grid, UploadTarget, UploadFileStatus, UploadProgress, StatusList, Message, AlertList, Divider, Stack, Badge, Avatar, Tooltip, NavContent, ResponsiveGrid, CommandPalette } from './components/index.js';
1
+ export { Button, ButtonGroup, Code, CodeBlock, CodeGroup, Frame, Menu, Dropdown, Select, MultiSelect, Toolbar, ToolbarGroup, Tabs, Toggle, Swatch, List, Tree, LazyTree, LockMode, FloatingAction, FloatingNavigation, PaletteManager, Tilt, Shine, BreadCrumbs, Card, ProgressBar, Carousel, Pill, Rating, Connector, ItemContent, Stepper, Switch, Table, TreeTable, SearchFilter, Range, Timeline, Reveal, Grid, UploadTarget, UploadFileStatus, UploadProgress, StatusList, Message, AlertList, Divider, Stack, Badge, Avatar, Tooltip, NavContent, ResponsiveGrid, CommandPalette } from './components/index.js';
2
2
  export { default as MarkdownRenderer } from './MarkdownRenderer.svelte';
3
3
  export type { MarkdownPlugin } from './markdown-plugin.js';
4
4
  export { highlightCode, preloadHighlighter, getSupportedLanguages } from './utils/shiki.js';
@@ -7,6 +7,7 @@ export * from './tabs.js';
7
7
  export * from './toggle.js';
8
8
  export * from './switch.js';
9
9
  export * from './list.js';
10
+ export * from './lock-mode.js';
10
11
  export * from './tree.js';
11
12
  export * from './floating-action.js';
12
13
  export * from './palette.js';
@@ -0,0 +1,12 @@
1
+ import type { Snippet } from 'svelte';
2
+ /** The color mode a region can be locked to. */
3
+ export type LockedMode = 'dark' | 'light';
4
+ /** Props for the LockMode component. */
5
+ export interface LockModeProps {
6
+ /** Color mode to pin this subtree to, regardless of the document mode. */
7
+ mode: LockedMode;
8
+ /** Content rendered inside the locked region. */
9
+ children: Snippet;
10
+ /** Additional CSS class. */
11
+ class?: string;
12
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rokkit/ui",
3
- "version": "1.1.19",
3
+ "version": "1.3.0",
4
4
  "description": "Data driven UI components for Rokkit applications",
5
5
  "repository": {
6
6
  "type": "git",
@@ -45,10 +45,10 @@
45
45
  "dropdown"
46
46
  ],
47
47
  "dependencies": {
48
- "@rokkit/core": "1.1.19",
49
- "@rokkit/data": "1.1.19",
50
- "@rokkit/states": "1.1.19",
51
- "@rokkit/actions": "1.1.19",
48
+ "@rokkit/core": "1.3.0",
49
+ "@rokkit/data": "1.3.0",
50
+ "@rokkit/states": "1.3.0",
51
+ "@rokkit/actions": "1.3.0",
52
52
  "marked": "^15.0.0",
53
53
  "dompurify": "^3.0.0"
54
54
  },
@@ -0,0 +1,16 @@
1
+ <script lang="ts">
2
+ import { lockMode } from '@rokkit/actions'
3
+ import type { LockModeProps } from '../types/lock-mode.js'
4
+
5
+ const { mode, children, class: className = '' }: LockModeProps = $props()
6
+ </script>
7
+
8
+ <!--
9
+ `data-mode` is rendered statically so token vars + in-component `dark:`
10
+ utilities are correct on first (SSR) paint. `lockMode` then mirrors the
11
+ root's style/skin/density on hydration so @rokkit/themes component CSS
12
+ (which keys off [data-mode][data-style]) engages too.
13
+ -->
14
+ <div data-mode={mode} use:lockMode={mode} class={className || undefined}>
15
+ {@render children()}
16
+ </div>
@@ -15,6 +15,7 @@ export { default as Tabs } from './Tabs.svelte'
15
15
  export { default as Toggle } from './Toggle.svelte'
16
16
  export { default as Swatch } from './Swatch.svelte'
17
17
  export { default as List } from './List.svelte'
18
+ export { default as LockMode } from './LockMode.svelte'
18
19
  export { default as Tree } from './Tree.svelte'
19
20
  export { default as LazyTree } from './LazyTree.svelte'
20
21
  export { default as Connector } from './Connector.svelte'
package/src/index.ts CHANGED
@@ -18,6 +18,7 @@ export {
18
18
  List,
19
19
  Tree,
20
20
  LazyTree,
21
+ LockMode,
21
22
  FloatingAction,
22
23
  FloatingNavigation,
23
24
  PaletteManager,
@@ -25,6 +25,9 @@ export * from './switch.js'
25
25
  // List Types
26
26
  export * from './list.js'
27
27
 
28
+ // LockMode Types
29
+ export * from './lock-mode.js'
30
+
28
31
  // Tree Types
29
32
  export * from './tree.js'
30
33
 
@@ -0,0 +1,16 @@
1
+ import type { Snippet } from 'svelte'
2
+
3
+ /** The color mode a region can be locked to. */
4
+ export type LockedMode = 'dark' | 'light'
5
+
6
+ /** Props for the LockMode component. */
7
+ export interface LockModeProps {
8
+ /** Color mode to pin this subtree to, regardless of the document mode. */
9
+ mode: LockedMode
10
+
11
+ /** Content rendered inside the locked region. */
12
+ children: Snippet
13
+
14
+ /** Additional CSS class. */
15
+ class?: string
16
+ }