@rokkit/ui 1.3.4 → 1.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (175) hide show
  1. package/{src → dist}/components/List.svelte +12 -6
  2. package/dist/components/index.js +63 -0
  3. package/dist/index.js +8 -0
  4. package/dist/markdown-plugin.js +1 -0
  5. package/dist/types/alert-list.js +7 -0
  6. package/dist/types/avatar.js +4 -0
  7. package/dist/types/badge.js +4 -0
  8. package/dist/types/breadcrumbs.js +4 -0
  9. package/dist/types/button.js +7 -0
  10. package/dist/types/card.js +4 -0
  11. package/dist/types/carousel.js +4 -0
  12. package/dist/types/chat.js +1 -0
  13. package/dist/types/code.js +12 -0
  14. package/dist/types/connector.js +8 -0
  15. package/dist/types/divider.js +4 -0
  16. package/dist/types/floating-action.js +12 -0
  17. package/dist/types/floating-navigation.js +1 -0
  18. package/dist/types/frame.js +8 -0
  19. package/dist/types/index.js +93 -0
  20. package/dist/types/item-content.js +8 -0
  21. package/dist/types/item-switch.js +10 -0
  22. package/dist/types/item-toggle.js +12 -0
  23. package/dist/types/list.js +36 -0
  24. package/dist/types/lock-mode.js +1 -0
  25. package/dist/types/menu.js +25 -0
  26. package/dist/types/message.js +4 -0
  27. package/dist/types/nav-content.js +4 -0
  28. package/dist/types/palette.js +54 -0
  29. package/dist/types/pill.js +4 -0
  30. package/dist/types/progress-bar.js +4 -0
  31. package/dist/types/range.js +7 -0
  32. package/dist/types/rating.js +4 -0
  33. package/dist/types/responsive-grid.js +4 -0
  34. package/dist/types/reveal.js +4 -0
  35. package/dist/types/search-filter.js +7 -0
  36. package/dist/types/select.js +21 -0
  37. package/dist/types/shine.js +7 -0
  38. package/dist/types/stack.js +4 -0
  39. package/dist/types/status-list.js +7 -0
  40. package/dist/types/stepper.js +4 -0
  41. package/dist/types/switch.js +7 -0
  42. package/dist/types/table.js +23 -0
  43. package/dist/types/tabs.js +7 -0
  44. package/dist/types/tilt.js +4 -0
  45. package/dist/types/timeline.js +14 -0
  46. package/dist/types/toggle.js +7 -0
  47. package/dist/types/toolbar.js +20 -0
  48. package/dist/types/tooltip.js +1 -0
  49. package/dist/types/tree-table.js +10 -0
  50. package/dist/types/tree.js +94 -0
  51. package/dist/types/upload-file-status.js +8 -0
  52. package/dist/types/upload-progress.js +8 -0
  53. package/dist/types/upload-target.js +7 -0
  54. package/dist/utils/palette.js +641 -0
  55. package/dist/utils/relative-time.js +17 -0
  56. package/dist/utils/shiki.js +118 -0
  57. package/package.json +13 -14
  58. package/src/components/index.ts +0 -63
  59. package/src/index.ts +0 -75
  60. package/src/markdown-plugin.ts +0 -12
  61. package/src/types/alert-list.ts +0 -28
  62. package/src/types/avatar.ts +0 -41
  63. package/src/types/badge.ts +0 -37
  64. package/src/types/breadcrumbs.ts +0 -43
  65. package/src/types/button.ts +0 -92
  66. package/src/types/card.ts +0 -38
  67. package/src/types/carousel.ts +0 -49
  68. package/src/types/chat.ts +0 -81
  69. package/src/types/code.ts +0 -147
  70. package/src/types/connector.ts +0 -22
  71. package/src/types/divider.ts +0 -20
  72. package/src/types/floating-action.ts +0 -123
  73. package/src/types/floating-navigation.ts +0 -80
  74. package/src/types/frame.ts +0 -29
  75. package/src/types/index.ts +0 -137
  76. package/src/types/item-content.ts +0 -26
  77. package/src/types/item-switch.ts +0 -34
  78. package/src/types/item-toggle.ts +0 -52
  79. package/src/types/list.ts +0 -200
  80. package/src/types/lock-mode.ts +0 -16
  81. package/src/types/menu.ts +0 -95
  82. package/src/types/message.ts +0 -54
  83. package/src/types/nav-content.ts +0 -31
  84. package/src/types/palette.ts +0 -160
  85. package/src/types/pill.ts +0 -43
  86. package/src/types/progress-bar.ts +0 -19
  87. package/src/types/range.ts +0 -51
  88. package/src/types/rating.ts +0 -43
  89. package/src/types/responsive-grid.ts +0 -25
  90. package/src/types/reveal.ts +0 -49
  91. package/src/types/search-filter.ts +0 -67
  92. package/src/types/select.ts +0 -176
  93. package/src/types/shine.ts +0 -37
  94. package/src/types/stack.ts +0 -40
  95. package/src/types/status-list.ts +0 -42
  96. package/src/types/stepper.ts +0 -74
  97. package/src/types/switch.ts +0 -68
  98. package/src/types/table.ts +0 -219
  99. package/src/types/tabs.ts +0 -103
  100. package/src/types/tilt.ts +0 -28
  101. package/src/types/timeline.ts +0 -53
  102. package/src/types/toggle.ts +0 -81
  103. package/src/types/toolbar.ts +0 -167
  104. package/src/types/tooltip.ts +0 -21
  105. package/src/types/tree-table.ts +0 -103
  106. package/src/types/tree.ts +0 -302
  107. package/src/types/upload-file-status.ts +0 -45
  108. package/src/types/upload-progress.ts +0 -111
  109. package/src/types/upload-target.ts +0 -71
  110. package/src/utils/palette.ts +0 -750
  111. package/src/utils/relative-time.ts +0 -12
  112. package/src/utils/shiki.ts +0 -137
  113. /package/{src → dist}/MarkdownRenderer.svelte +0 -0
  114. /package/{src → dist}/components/AlertList.svelte +0 -0
  115. /package/{src → dist}/components/Avatar.svelte +0 -0
  116. /package/{src → dist}/components/Badge.svelte +0 -0
  117. /package/{src → dist}/components/BreadCrumbs.svelte +0 -0
  118. /package/{src → dist}/components/Button.svelte +0 -0
  119. /package/{src → dist}/components/ButtonGroup.svelte +0 -0
  120. /package/{src → dist}/components/Card.svelte +0 -0
  121. /package/{src → dist}/components/Carousel.svelte +0 -0
  122. /package/{src → dist}/components/ChatComposer.svelte +0 -0
  123. /package/{src → dist}/components/ChatHistory.svelte +0 -0
  124. /package/{src → dist}/components/ChatMessage.svelte +0 -0
  125. /package/{src → dist}/components/ChatShell.svelte +0 -0
  126. /package/{src → dist}/components/ChatTimeline.svelte +0 -0
  127. /package/{src → dist}/components/Code.svelte +0 -0
  128. /package/{src → dist}/components/CodeBlock.svelte +0 -0
  129. /package/{src → dist}/components/CodeGroup.svelte +0 -0
  130. /package/{src → dist}/components/CommandPalette.svelte +0 -0
  131. /package/{src → dist}/components/Connector.svelte +0 -0
  132. /package/{src → dist}/components/Divider.svelte +0 -0
  133. /package/{src → dist}/components/Dropdown.svelte +0 -0
  134. /package/{src → dist}/components/FloatingAction.svelte +0 -0
  135. /package/{src → dist}/components/FloatingNavigation.svelte +0 -0
  136. /package/{src → dist}/components/Frame.svelte +0 -0
  137. /package/{src → dist}/components/Grid.svelte +0 -0
  138. /package/{src → dist}/components/ItemContent.svelte +0 -0
  139. /package/{src → dist}/components/ItemSwitch.svelte +0 -0
  140. /package/{src → dist}/components/ItemToggle.svelte +0 -0
  141. /package/{src → dist}/components/LazyTree.svelte +0 -0
  142. /package/{src → dist}/components/LockMode.svelte +0 -0
  143. /package/{src → dist}/components/Menu.svelte +0 -0
  144. /package/{src → dist}/components/Message.svelte +0 -0
  145. /package/{src → dist}/components/MultiSelect.svelte +0 -0
  146. /package/{src → dist}/components/NavContent.svelte +0 -0
  147. /package/{src → dist}/components/PaletteManager.svelte +0 -0
  148. /package/{src → dist}/components/Pill.svelte +0 -0
  149. /package/{src → dist}/components/ProgressBar.svelte +0 -0
  150. /package/{src → dist}/components/Range.svelte +0 -0
  151. /package/{src → dist}/components/Rating.svelte +0 -0
  152. /package/{src → dist}/components/ResponsiveGrid.svelte +0 -0
  153. /package/{src → dist}/components/Reveal.svelte +0 -0
  154. /package/{src → dist}/components/SearchFilter.svelte +0 -0
  155. /package/{src → dist}/components/Select.svelte +0 -0
  156. /package/{src → dist}/components/Shine.svelte +0 -0
  157. /package/{src → dist}/components/Stack.svelte +0 -0
  158. /package/{src → dist}/components/StatusList.svelte +0 -0
  159. /package/{src → dist}/components/Stepper.svelte +0 -0
  160. /package/{src → dist}/components/Swatch.svelte +0 -0
  161. /package/{src → dist}/components/Switch.svelte +0 -0
  162. /package/{src → dist}/components/Table.svelte +0 -0
  163. /package/{src → dist}/components/Tabs.svelte +0 -0
  164. /package/{src → dist}/components/Tilt.svelte +0 -0
  165. /package/{src → dist}/components/Timeline.svelte +0 -0
  166. /package/{src → dist}/components/Toggle.svelte +0 -0
  167. /package/{src → dist}/components/Toolbar.svelte +0 -0
  168. /package/{src → dist}/components/ToolbarGroup.svelte +0 -0
  169. /package/{src → dist}/components/Tooltip.svelte +0 -0
  170. /package/{src → dist}/components/Tree.svelte +0 -0
  171. /package/{src → dist}/components/TreeTable.svelte +0 -0
  172. /package/{src → dist}/components/UploadFileStatus.svelte +0 -0
  173. /package/{src → dist}/components/UploadProgress.svelte +0 -0
  174. /package/{src → dist}/components/UploadTarget.svelte +0 -0
  175. /package/{src → dist}/utils/upload.js +0 -0
@@ -1,52 +0,0 @@
1
- /**
2
- * ItemToggle Component Types
3
- *
4
- * Renders a compact toggle-group visual inside a data-driven item snippet.
5
- * Options come from the item's data (via `optionsField`). Each option is a
6
- * span with `role="radio"` and its own click handler — Navigator defers to
7
- * these nested interactives via its isNestedInteractive guard.
8
- *
9
- * Consumers wire state via `onchange`. ItemToggle does not mutate the item
10
- * data directly.
11
- */
12
-
13
- import type { ProxyItem } from '@rokkit/states'
14
-
15
- export type ItemToggleOption = string | number | boolean | { label?: string; value?: unknown; icon?: string }
16
-
17
- export interface ItemToggleProps {
18
- /** ProxyItem for the current row. */
19
- proxy: ProxyItem
20
-
21
- /**
22
- * Field on the item that holds the currently selected value.
23
- * @default 'value'
24
- */
25
- field?: string
26
-
27
- /**
28
- * Field on the item that holds the array of options.
29
- * @default 'options'
30
- */
31
- optionsField?: string
32
-
33
- /**
34
- * Called when the user picks an option. Consumers update the item data.
35
- */
36
- onchange?: (value: unknown, option: ItemToggleOption, proxy: ProxyItem) => void
37
-
38
- /** Size variant. */
39
- size?: 'sm' | 'md' | 'lg'
40
-
41
- /** Render the leading avatar / icon (via ItemContent). @default true */
42
- showIcon?: boolean
43
-
44
- /** Render subtext under the label (via ItemContent). @default true */
45
- showSubtext?: boolean
46
-
47
- /** Show textual labels beside the option (falls back to option value). @default true */
48
- showLabels?: boolean
49
-
50
- /** Optional class on the wrapper span. */
51
- class?: string
52
- }
package/src/types/list.ts DELETED
@@ -1,200 +0,0 @@
1
- /**
2
- * List Component Types
3
- *
4
- * Provides types for the data-driven List component.
5
- * Supports navigation links, button items, and grouped items with collapsible sections.
6
- * Field mapping and data access is handled by ProxyItem from @rokkit/states.
7
- */
8
-
9
- import { DEFAULT_STATE_ICONS } from '@rokkit/core'
10
-
11
- // =============================================================================
12
- // Field Mapping Types
13
- // =============================================================================
14
-
15
- /**
16
- * Field mapping configuration for list data.
17
- */
18
- export interface ListFields {
19
- /** Field for display text - default: 'text' */
20
- text?: string
21
-
22
- /** Field for the value to use for selection matching - default: 'value' */
23
- value?: string
24
-
25
- /** Field for navigation URL (renders as <a>) - default: 'href' */
26
- href?: string
27
-
28
- /** Field for icon class name - default: 'icon' */
29
- icon?: string
30
-
31
- /** Field for secondary descriptive text - default: 'description' */
32
- description?: string
33
-
34
- /** Field for aria-label override - default: 'label' */
35
- label?: string
36
-
37
- /** Field for disabled state - default: 'disabled' */
38
- disabled?: string
39
-
40
- /** Field for children array (for grouping) - default: 'children' */
41
- children?: string
42
-
43
- /** Field for custom snippet name - default: 'snippet' */
44
- snippet?: string
45
-
46
- /** Field for badge/indicator content - default: 'badge' */
47
- badge?: string
48
-
49
- /** Field for tooltip text (HTML title attribute) - default: 'title' */
50
- title?: string
51
-
52
- /** Nested field mapping for children - default: inherits parent */
53
- fields?: ListFields
54
- }
55
-
56
- /**
57
- * Default field mapping values
58
- */
59
- export const defaultListFields: Required<Omit<ListFields, 'fields'>> = {
60
- text: 'text',
61
- value: 'value',
62
- href: 'href',
63
- icon: 'icon',
64
- description: 'description',
65
- label: 'label',
66
- disabled: 'disabled',
67
- children: 'children',
68
- snippet: 'snippet',
69
- badge: 'badge',
70
- title: 'title'
71
- }
72
-
73
- // =============================================================================
74
- // List Item Types
75
- // =============================================================================
76
-
77
- /**
78
- * Generic list item - can be any object with mapped fields
79
- */
80
- export type ListItem = Record<string, unknown>
81
-
82
- // =============================================================================
83
- // Snippet Types
84
- // =============================================================================
85
-
86
- /**
87
- * Handlers passed to custom item snippets
88
- */
89
- export interface ListItemHandlers {
90
- /** Call to trigger item selection (for button items) */
91
- onclick: () => void
92
- /** Forward keyboard events for accessibility */
93
- onkeydown: (event: KeyboardEvent) => void
94
- }
95
-
96
- /**
97
- * Snippet type for rendering list items.
98
- * Parameters: item, fields, handlers, isActive
99
- */
100
- export type ListItemSnippet = import('svelte').Snippet<
101
- [ListItem, ListFields, ListItemHandlers, boolean]
102
- >
103
-
104
- /**
105
- * Snippet type for rendering group labels
106
- * Parameters: item (group), fields, toggleExpanded, isExpanded
107
- */
108
- export type ListGroupLabelSnippet = import('svelte').Snippet<
109
- [ListItem, ListFields, () => void, boolean]
110
- >
111
-
112
- // =============================================================================
113
- // Component Props Types
114
- // =============================================================================
115
-
116
- /**
117
- * Props for the List component
118
- */
119
- export interface ListProps {
120
- /** Array of list items or groups */
121
- items?: ListItem[]
122
-
123
- /** Field mapping configuration */
124
- fields?: ListFields
125
-
126
- /** Currently selected value (for highlighting button items) */
127
- value?: unknown
128
-
129
- /** Size variant */
130
- size?: 'sm' | 'md' | 'lg'
131
-
132
- /** Whether the entire list is disabled */
133
- disabled?: boolean
134
-
135
- /** Whether groups can be collapsed */
136
- collapsible?: boolean
137
-
138
- /** Enable multiple item selection (Ctrl+click toggle, Shift+click range) */
139
- multiselect?: boolean
140
-
141
- /** Which groups are expanded (bindable) - keyed by group value/text */
142
- expanded?: Record<string, boolean>
143
-
144
- /** Selected items array (bindable) - populated in multiselect mode */
145
- selected?: unknown[]
146
-
147
- /** Active item value - List looks up item by this value to highlight it */
148
- active?: unknown
149
-
150
- /** Called when a button item is selected */
151
- onselect?: (value: unknown, item: ListItem) => void
152
-
153
- /** Called when selected items change in multiselect mode */
154
- onselectedchange?: (selected: unknown[]) => void
155
-
156
- /** Called when expanded state changes (for bindable expanded) */
157
- onexpandedchange?: (expanded: Record<string, boolean>) => void
158
-
159
- /** Additional CSS classes */
160
- class?: string
161
-
162
- /** Icons for list group states (expand/collapse arrow) */
163
- icons?: ListStateIcons
164
-
165
- /** Custom snippet for rendering list items */
166
- item?: ListItemSnippet
167
-
168
- /** Custom snippet for rendering group labels/headers */
169
- groupLabel?: ListGroupLabelSnippet
170
- }
171
-
172
- // =============================================================================
173
- // State Icons
174
- // =============================================================================
175
-
176
- /**
177
- * Icons configuration for list collapsible group states.
178
- * Keys match the naming convention in @rokkit/core DEFAULT_STATE_ICONS.
179
- */
180
- export interface ListStateIcons {
181
- /** Icon class for expanded group */
182
- opened?: string
183
- /** Icon class for collapsed group */
184
- closed?: string
185
- }
186
-
187
- /**
188
- * Default state icons — uses semantic names from @rokkit/core
189
- * that get resolved to actual icon classes via UnoCSS shortcuts.
190
- */
191
- export const defaultListStateIcons: ListStateIcons = {
192
- opened: DEFAULT_STATE_ICONS.accordion.opened,
193
- closed: DEFAULT_STATE_ICONS.accordion.closed
194
- }
195
-
196
- // =============================================================================
197
- // Helper Functions
198
- // =============================================================================
199
-
200
- export { getSnippet } from './menu.js'
@@ -1,16 +0,0 @@
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
- }
package/src/types/menu.ts DELETED
@@ -1,95 +0,0 @@
1
- /**
2
- * Menu Component Types
3
- *
4
- * The new Menu uses the same Wrapper + Navigator stack as List.
5
- * Trigger action manages open/close. Dropdown content is identical to List.
6
- */
7
-
8
- import type { ProxyItem } from '@rokkit/states'
9
- import { DEFAULT_STATE_ICONS } from '@rokkit/core'
10
-
11
- // =============================================================================
12
- // Component Props Types
13
- // =============================================================================
14
-
15
- /**
16
- * Props for the Menu component.
17
- * Content props (items, fields, value, size, disabled, collapsible, icons, onselect, class, snippets)
18
- * are identical to List. Additional props: label, icon, showArrow, align, direction.
19
- */
20
- export interface MenuProps {
21
- /** Array of items (same as List: supports groups, separators, nested children) */
22
- items?: unknown[]
23
-
24
- /** Field mapping — overrides BASE_FIELDS defaults (label → 'label', value → 'value', …) */
25
- fields?: Record<string, string>
26
-
27
- /** Current active value (highlights matching item) */
28
- value?: unknown
29
-
30
- /** Size variant */
31
- size?: 'sm' | 'md' | 'lg'
32
-
33
- /** Whether the entire menu is disabled */
34
- disabled?: boolean
35
-
36
- /** Whether groups are collapsible (same as List) */
37
- collapsible?: boolean
38
-
39
- /** Trigger button label text */
40
- label?: string
41
-
42
- /** Trigger button icon class */
43
- icon?: string
44
-
45
- /** Whether to show dropdown arrow indicator on trigger */
46
- showArrow?: boolean
47
-
48
- /** Dropdown alignment relative to trigger */
49
- align?: 'start' | 'end'
50
-
51
- /** Dropdown direction */
52
- direction?: 'up' | 'down'
53
-
54
- /** Icons for expand/collapse states */
55
- icons?: MenuStateIcons
56
-
57
- /** Called when a leaf item is selected */
58
- onselect?: (value: unknown, proxy: ProxyItem) => void
59
-
60
- /** Additional CSS classes */
61
- class?: string
62
- }
63
-
64
- // =============================================================================
65
- // State Icons
66
- // =============================================================================
67
-
68
- export interface MenuStateIcons {
69
- /** Icon class for open state */
70
- opened?: string
71
- /** Icon class for closed state */
72
- closed?: string
73
- }
74
-
75
- export const defaultMenuStateIcons: MenuStateIcons = {
76
- opened: DEFAULT_STATE_ICONS.selector.opened,
77
- closed: DEFAULT_STATE_ICONS.selector.closed
78
- }
79
-
80
- // =============================================================================
81
- // Snippet Utilities
82
- // =============================================================================
83
-
84
- /**
85
- * Retrieve a named snippet from a snippets record, with type/null safety.
86
- */
87
- export function getSnippet<T>(
88
- snippets: Record<string, T | undefined>,
89
- name: string | null
90
- ): T | null {
91
- if (name === null) return null
92
- const snippet = snippets[name]
93
- if (snippet !== undefined && typeof snippet === 'function') return snippet
94
- return null
95
- }
@@ -1,54 +0,0 @@
1
- /**
2
- * Message Component Types
3
- */
4
-
5
- import type { Snippet } from 'svelte'
6
-
7
- /** Semantic message type — drives color treatment and the default icon. */
8
- export type MessageType = 'error' | 'info' | 'success' | 'warning'
9
-
10
- /**
11
- * Icon overrides for the Message component, keyed by message type.
12
- */
13
- export interface MessageIcons {
14
- error?: string
15
- info?: string
16
- success?: string
17
- warning?: string
18
- }
19
-
20
- /**
21
- * Props for the Message component.
22
- */
23
- export interface MessageProps {
24
- /** Message type — controls color and the default icon. */
25
- type?: MessageType
26
-
27
- /** Icon class overrides per type. */
28
- icons?: MessageIcons
29
-
30
- /** Text content (shorthand). `children` takes precedence when both provided. */
31
- text?: string
32
-
33
- /** Show a dismiss button. */
34
- dismissible?: boolean
35
-
36
- /**
37
- * Auto-dismiss after N milliseconds. Defaults to `4000` when not
38
- * `dismissible`, otherwise persistent (no auto-dismiss). Pass `0`
39
- * to disable auto-dismissal explicitly.
40
- */
41
- timeout?: number
42
-
43
- /** Optional action buttons snippet. */
44
- actions?: Snippet
45
-
46
- /** Rich content (takes precedence over `text`). */
47
- children?: Snippet
48
-
49
- /** Called when dismissed — via button click or timeout. */
50
- ondismiss?: () => void
51
-
52
- /** Additional CSS class. */
53
- class?: string
54
- }
@@ -1,31 +0,0 @@
1
- /**
2
- * NavContent Component Types
3
- */
4
-
5
- import type { Snippet } from 'svelte'
6
-
7
- /** Layout orientation. */
8
- export type NavContentOrientation = 'horizontal' | 'vertical'
9
-
10
- /**
11
- * Props for the NavContent component.
12
- */
13
- export interface NavContentProps {
14
- /** Layout orientation. */
15
- orientation?: NavContentOrientation
16
-
17
- /** Nav panel width (horizontal) or height (vertical) — CSS length value. */
18
- navSize?: string
19
-
20
- /** Collapse the nav panel on small screens. */
21
- collapsible?: boolean
22
-
23
- /** Nav panel snippet. */
24
- nav: Snippet
25
-
26
- /** Content panel snippet. */
27
- content: Snippet
28
-
29
- /** Additional CSS class. */
30
- class?: string
31
- }
@@ -1,160 +0,0 @@
1
- import type { Snippet } from 'svelte'
2
- import type { ColorRole, Shades } from '../utils/palette.js'
3
-
4
- /**
5
- * Configuration for a complete color palette
6
- */
7
- export interface PaletteConfig {
8
- /** Name of the palette (e.g., "Vibrant", "Ocean", "Custom 1") */
9
- name: string
10
- /** Mapping of color roles to Tailwind color names or hex values */
11
- mapping: Partial<Record<ColorRole, string>>
12
- }
13
-
14
- /**
15
- * A preset palette (built-in)
16
- */
17
- export interface PalettePreset {
18
- /** Display name */
19
- name: string
20
- /** Tailwind color name */
21
- color: string
22
- /** Preview hex color (usually the 500 shade) */
23
- preview: string
24
- }
25
-
26
- /**
27
- * Icons for the PaletteManager component
28
- */
29
- export interface PaletteManagerIcons {
30
- /** Icon for the save button */
31
- save?: string
32
- /** Icon for the apply/check button */
33
- check?: string
34
- /** Icon for the presets toggle */
35
- presets?: string
36
- /** Icon for the hex input toggle */
37
- hex?: string
38
- }
39
-
40
- /**
41
- * Props for the PaletteManager component
42
- */
43
- export interface PaletteManagerProps {
44
- /** Current palette configuration (bindable) */
45
- value?: PaletteConfig
46
-
47
- /** Built-in preset palettes */
48
- presets?: PalettePreset[]
49
-
50
- /** User-saved custom palettes */
51
- custom?: PaletteConfig[]
52
-
53
- /** localStorage key for persistence */
54
- storageKey?: string
55
-
56
- /** Roles to show in the editor */
57
- roles?: ColorRole[]
58
-
59
- /** Custom icons */
60
- icons?: PaletteManagerIcons
61
-
62
- /** Auto-apply changes in real-time */
63
- autoApply?: boolean
64
-
65
- /** Show preset selector */
66
- showPresets?: boolean
67
-
68
- /** Show save button */
69
- showSave?: boolean
70
-
71
- /** Compact mode (fewer controls) */
72
- compact?: boolean
73
-
74
- /** Additional CSS classes */
75
- class?: string
76
-
77
- /** Called when palette changes */
78
- onchange?: (palette: PaletteConfig) => void
79
-
80
- /** Called when user saves a custom palette */
81
- onsave?: (palette: PaletteConfig) => void
82
-
83
- /** Called when palette is applied */
84
- onapply?: (palette: PaletteConfig) => void
85
-
86
- /** Custom snippet for rendering a color role row */
87
- roleRow?: PaletteRoleRowSnippet
88
- }
89
-
90
- /**
91
- * Handlers passed to custom role row snippet
92
- */
93
- export interface PaletteRoleRowHandlers {
94
- onColorChange: (color: string) => void
95
- onHexInput: (hex: string) => void
96
- }
97
-
98
- /**
99
- * Custom snippet for rendering a palette role row
100
- */
101
- export type PaletteRoleRowSnippet = Snippet<
102
- [role: ColorRole, currentColor: string, shades: Shades, handlers: PaletteRoleRowHandlers]
103
- >
104
-
105
- /**
106
- * Default color roles to display
107
- */
108
- export const defaultRoles: ColorRole[] = [
109
- 'primary',
110
- 'secondary',
111
- 'accent',
112
- 'surface',
113
- 'success',
114
- 'warning',
115
- 'danger',
116
- 'info'
117
- ]
118
-
119
- /**
120
- * Default palette presets using Tailwind colors
121
- */
122
- export const defaultPresets: PalettePreset[] = [
123
- { name: 'Slate', color: 'slate', preview: '#64748b' },
124
- { name: 'Gray', color: 'gray', preview: '#6b7280' },
125
- { name: 'Zinc', color: 'zinc', preview: '#71717a' },
126
- { name: 'Red', color: 'red', preview: '#ef4444' },
127
- { name: 'Orange', color: 'orange', preview: '#f97316' },
128
- { name: 'Amber', color: 'amber', preview: '#f59e0b' },
129
- { name: 'Yellow', color: 'yellow', preview: '#eab308' },
130
- { name: 'Lime', color: 'lime', preview: '#84cc16' },
131
- { name: 'Green', color: 'green', preview: '#22c55e' },
132
- { name: 'Emerald', color: 'emerald', preview: '#10b981' },
133
- { name: 'Teal', color: 'teal', preview: '#14b8a6' },
134
- { name: 'Cyan', color: 'cyan', preview: '#06b6d4' },
135
- { name: 'Sky', color: 'sky', preview: '#0ea5e9' },
136
- { name: 'Blue', color: 'blue', preview: '#3b82f6' },
137
- { name: 'Indigo', color: 'indigo', preview: '#6366f1' },
138
- { name: 'Violet', color: 'violet', preview: '#8b5cf6' },
139
- { name: 'Purple', color: 'purple', preview: '#a855f7' },
140
- { name: 'Fuchsia', color: 'fuchsia', preview: '#d946ef' },
141
- { name: 'Pink', color: 'pink', preview: '#ec4899' },
142
- { name: 'Rose', color: 'rose', preview: '#f43f5e' }
143
- ]
144
-
145
- /**
146
- * Default palette configuration
147
- */
148
- export const defaultPaletteConfig: PaletteConfig = {
149
- name: 'Default',
150
- mapping: {
151
- primary: 'orange',
152
- secondary: 'pink',
153
- accent: 'sky',
154
- surface: 'slate',
155
- success: 'green',
156
- warning: 'amber',
157
- danger: 'red',
158
- info: 'cyan'
159
- }
160
- }
package/src/types/pill.ts DELETED
@@ -1,43 +0,0 @@
1
- /**
2
- * Pill Component Types
3
- */
4
-
5
- import type { Snippet } from 'svelte'
6
- import type { ProxyItem } from '@rokkit/states'
7
-
8
- /**
9
- * Icon overrides for the Pill component.
10
- */
11
- export interface PillIcons {
12
- /** Icon class for the remove button. */
13
- remove?: string
14
- }
15
-
16
- /**
17
- * Props for the Pill component.
18
- */
19
- export interface PillProps {
20
- /** Item data — primitive (string / number) or an object. */
21
- value: unknown
22
-
23
- /** Custom field mappings used by the internal `ProxyItem`. */
24
- fields?: Record<string, string>
25
-
26
- /** Show the remove button (and enable Delete / Backspace shortcuts). */
27
- removable?: boolean
28
-
29
- /** Disabled state. */
30
- disabled?: boolean
31
-
32
- /** Custom icon overrides. */
33
- icons?: PillIcons
34
-
35
- /** Called when remove is triggered — via click or Delete / Backspace. */
36
- onremove?: (value: unknown) => void
37
-
38
- /** Custom content snippet — receives the pill's `ProxyItem`. */
39
- content?: Snippet<[ProxyItem]>
40
-
41
- /** Additional CSS class. */
42
- class?: string
43
- }
@@ -1,19 +0,0 @@
1
- /**
2
- * ProgressBar Component Types
3
- */
4
-
5
- /**
6
- * Props for the ProgressBar component.
7
- *
8
- * Pass `value = null` (or omit it) to render in indeterminate state.
9
- */
10
- export interface ProgressBarProps {
11
- /** Current progress value. `null` (or undefined) renders indeterminate. */
12
- value?: number | null
13
-
14
- /** Maximum value. Default `100`. */
15
- max?: number
16
-
17
- /** Additional CSS class. */
18
- class?: string
19
- }