@roku-ui/vue 0.29.0 → 0.30.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.
Files changed (50) hide show
  1. package/dist/components/AppShell.vue.d.ts +0 -3
  2. package/dist/components/AppShellAside.vue.d.ts +26 -0
  3. package/dist/components/AppShellFooter.vue.d.ts +26 -0
  4. package/dist/components/AppShellHeader.vue.d.ts +26 -0
  5. package/dist/components/AppShellMain.vue.d.ts +26 -0
  6. package/dist/components/AppShellNavbar.vue.d.ts +26 -0
  7. package/dist/components/Avatar.vue.d.ts +0 -3
  8. package/dist/components/Btn.vue.d.ts +0 -2
  9. package/dist/components/BtnGroup.vue.d.ts +2 -1
  10. package/dist/components/Calendar.vue.d.ts +0 -5
  11. package/dist/components/ColorInput.vue.d.ts +1 -1
  12. package/dist/components/Menu.vue.d.ts +10 -2
  13. package/dist/components/Notification.vue.d.ts +2 -5
  14. package/dist/components/NotificationSystem.vue.d.ts +1 -1
  15. package/dist/components/NumberField.vue.d.ts +49 -0
  16. package/dist/components/Paper.vue.d.ts +2 -1
  17. package/dist/components/PinInput.vue.d.ts +9 -4
  18. package/dist/components/Popover.vue.d.ts +2 -0
  19. package/dist/components/Rating.vue.d.ts +16 -14
  20. package/dist/components/Step.vue.d.ts +4 -2
  21. package/dist/components/Switch.vue.d.ts +0 -2
  22. package/dist/components/TextField.vue.d.ts +14 -1
  23. package/dist/components/TreeList.vue.d.ts +1 -21
  24. package/dist/components/index.d.ts +6 -0
  25. package/dist/composables/index.d.ts +8 -9
  26. package/dist/index.css +2 -1
  27. package/dist/index.d.ts +2 -1
  28. package/dist/index.js +10035 -9632
  29. package/dist/index.umd.cjs +4 -4
  30. package/dist/shared/color-helpers.d.ts +9 -0
  31. package/dist/shared/color-system.d.ts +10 -61
  32. package/dist/shared/constants.d.ts +79 -21
  33. package/dist/shared/container-styles.d.ts +8 -0
  34. package/dist/shared/style-recipes.d.ts +20 -0
  35. package/dist/shared/theme.d.ts +40 -36
  36. package/dist/test/demo/CSSVarDemo.vue.d.ts +2 -0
  37. package/dist/test/demo/MenuDemo.vue.d.ts +2 -0
  38. package/dist/test/demo/NumberFieldDemo.vue.d.ts +2 -0
  39. package/dist/test/demoPages.d.ts +140 -0
  40. package/dist/test/router.d.ts +3 -0
  41. package/dist/test.d.ts +0 -1
  42. package/dist/types/index.d.ts +25 -3
  43. package/dist/utils/index.d.ts +17 -7
  44. package/dist/utils/modals.d.ts +0 -5
  45. package/dist/utils/notifications.d.ts +2 -1
  46. package/dist/utils/symbols.d.ts +0 -1
  47. package/dist/utils/tailwindPalettes.d.ts +22 -0
  48. package/dist/vite/index.d.ts +11 -0
  49. package/package.json +23 -21
  50. package/dist/vite.svg +0 -1
@@ -12,6 +12,13 @@ export interface ColorGenerationOptions {
12
12
  contrastTarget?: 'AA' | 'AAA' | 'none';
13
13
  gamut?: 'srgb' | 'p3' | 'rec2020';
14
14
  customChromaCurve?: (lightness: number) => number;
15
+ /**
16
+ * When true, apply a perceptual uniformity pass to the lightness map so that
17
+ * different hues (notably yellow vs blue) present a closer subjective brightness.
18
+ * This is a lightweight approximation (hue & chroma based compensation) without
19
+ * introducing a heavier full CAM model. It purposely keeps API impact minimal.
20
+ */
21
+ perceptualUniform?: boolean;
15
22
  }
16
23
  export declare function generateColorsObjMapOKLCH(color: ColorInput, lightnessMap?: number[], options?: ColorGenerationOptions): {
17
24
  baseColorIndex: number;
@@ -63,12 +70,6 @@ export interface ColorPaletteResult {
63
70
  };
64
71
  }
65
72
  export declare function generateAdvancedColorPalette(color: ColorInput, options?: AdvancedColorOptions): ColorPaletteResult;
66
- export declare function createColorPalette(color: string, type?: 'primary' | 'secondary' | 'accent' | 'surface'): ColorsTuple;
67
- export declare function generateColorsEnhanced(color: ColorInput, options?: AdvancedColorOptions): ColorsTuple;
68
- export declare function generateColorsObjMapOKLCHCached(color: ColorInput, lightnessMap?: number[], options?: ColorGenerationOptions): {
69
- baseColorIndex: number;
70
- colors: any[];
71
- };
72
73
  export declare function generateAdvancedColorPaletteCached(color: ColorInput, options?: AdvancedColorOptions): ColorPaletteResult;
73
74
  export declare const ColorPalettePerformance: {
74
75
  clearCache: () => void;
@@ -80,6 +81,15 @@ export declare const ColorPalettePerformance: {
80
81
  precomputePalettes: (colors: string[]) => void;
81
82
  };
82
83
  export declare function generateColorsObjMap(color: ColorInput, lightnessMap?: number[]): {
84
+ baseColorIndex: number;
85
+ colors: {
86
+ alpha: number;
87
+ mode: "hsl";
88
+ h?: number;
89
+ s: number;
90
+ l: number;
91
+ }[];
92
+ } | {
83
93
  baseColorIndex: number;
84
94
  colors: {
85
95
  mode: "hsl";
@@ -111,5 +121,5 @@ export declare function generateEditorFriendlyColors(color: ColorInput, lightnes
111
121
  hex: string;
112
122
  rgb: string;
113
123
  oklch: string;
114
- lightness: number;
124
+ lightness: number | undefined;
115
125
  }[];
@@ -1,4 +1,3 @@
1
- import { VNodeChild } from 'vue';
2
1
  export interface BaseModalDataType {
3
2
  id?: string;
4
3
  }
@@ -15,10 +14,6 @@ export interface AlertModalDataType extends BaseModalDataType {
15
14
  message: string;
16
15
  onConfirm: () => void;
17
16
  }
18
- export interface CustomModalDataType extends BaseModalDataType {
19
- type: 'custom';
20
- render: () => VNodeChild;
21
- }
22
17
  export type ModalDataType = ConfirmModalDataType | AlertModalDataType;
23
18
  export type ModalData = ModalDataType & {
24
19
  id: string;
@@ -1,8 +1,9 @@
1
+ import { IconSource } from '../types';
1
2
  export interface NotificationDataInterface {
2
3
  title: string;
3
4
  message: string;
4
5
  color: string;
5
- icon: string;
6
+ icon?: IconSource;
6
7
  durationMS: number;
7
8
  position: 'top' | 'top-right' | 'top-left' | 'bottom' | 'bottom-right' | 'bottom-left';
8
9
  [key: string]: any;
@@ -1,4 +1,3 @@
1
1
  export declare const tabCurrentSymbol: unique symbol;
2
2
  export declare const directionSymbol: unique symbol;
3
- export declare const tabValueListSymbol: unique symbol;
4
3
  export declare const childrenElementMapSymbol: unique symbol;
@@ -0,0 +1,22 @@
1
+ export declare const TAILWIND_COLOR_STOPS: readonly ["50", "100", "200", "300", "400", "500", "600", "700", "800", "900", "950"];
2
+ export type TailwindStop = typeof TAILWIND_COLOR_STOPS[number];
3
+ export type TailwindPalette = readonly [
4
+ string,
5
+ string,
6
+ string,
7
+ string,
8
+ string,
9
+ string,
10
+ string,
11
+ string,
12
+ string,
13
+ string,
14
+ string
15
+ ];
16
+ export interface TailwindPaletteMatch {
17
+ palette: TailwindPalette;
18
+ baseIndex: number;
19
+ normalizedName: string;
20
+ }
21
+ export declare function resolveTailwindPalette(input: string): TailwindPaletteMatch | undefined;
22
+ export declare function getTailwindStopIndex(stop: TailwindStop): number;
@@ -0,0 +1,11 @@
1
+ import { Options as AutoImportOptions } from 'unplugin-auto-import/types';
2
+ import { Options as ComponentsPluginOptions } from 'unplugin-vue-components';
3
+ import { PluginOption } from 'vite';
4
+ type RokuUiComponentsOptions = Pick<ComponentsPluginOptions, 'dts'>;
5
+ export interface RokuUiPluginOptions {
6
+ prefix?: string | false;
7
+ components?: boolean | RokuUiComponentsOptions;
8
+ autoImport?: boolean | Partial<AutoImportOptions>;
9
+ }
10
+ export declare function rokuUI(options?: RokuUiPluginOptions): PluginOption[];
11
+ export default rokuUI;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@roku-ui/vue",
3
3
  "type": "module",
4
- "version": "0.29.0",
4
+ "version": "0.30.0",
5
5
  "author": "Jianqi Pan <jannchie@gmail.com>",
6
6
  "repository": {
7
7
  "type": "git",
@@ -29,32 +29,34 @@
29
29
  ],
30
30
  "dependencies": {
31
31
  "@formkit/auto-animate": "^0.9.0",
32
- "@unocss/reset": "66.5.0",
33
- "@vueuse/core": "^13.9.0",
32
+ "@unocss/reset": "66.5.9",
33
+ "@vueuse/core": "^14.0.0",
34
34
  "culori": "^4.0.2",
35
- "vue": "^3.5.21",
36
- "vue-wf": "^0.5.0"
35
+ "vue": "^3.5.24",
36
+ "vue-wf": "^0.7.0"
37
37
  },
38
38
  "devDependencies": {
39
- "@iconify/json": "^2.2.382",
39
+ "@iconify/json": "^2.2.409",
40
40
  "@jannchie/eslint-config": "^3.7.1",
41
- "@unocss/eslint-config": "66.5.0",
42
- "@unocss/eslint-plugin": "66.5.0",
43
- "@unocss/preset-icons": "66.5.0",
44
- "@vitejs/plugin-vue": "^6.0.1",
45
- "@vitejs/plugin-vue-jsx": "^5.1.1",
46
- "eslint": "^9.35.0",
47
- "eslint-plugin-format": "^1.0.1",
48
- "typescript": "5.9.2",
49
- "unocss": "66.5.0",
41
+ "@unocss/eslint-config": "66.5.9",
42
+ "@unocss/eslint-plugin": "66.5.9",
43
+ "@unocss/preset-icons": "66.5.9",
44
+ "@vitejs/plugin-vue": "^6.0.2",
45
+ "@vitejs/plugin-vue-jsx": "^5.1.2",
46
+ "@vue/tsconfig": "^0.8.1",
47
+ "eslint": "^9.39.1",
48
+ "eslint-plugin-format": "^1.0.2",
49
+ "typescript": "5.9.3",
50
+ "unocss": "66.5.9",
50
51
  "unplugin-auto-export": "^1.0.4",
51
- "unplugin-auto-import": "^20.1.0",
52
- "unplugin-vue-components": "^29.0.0",
53
- "vite": "^7.1.4",
52
+ "unplugin-auto-import": "^20.2.0",
53
+ "unplugin-vue-components": "^30.0.0",
54
+ "vite": "npm:rolldown-vite@7.2.7",
54
55
  "vite-plugin-dts": "4.5.4",
55
- "vitest": "^3.2.4",
56
- "vue-tsc": "^3.0.6",
57
- "@roku-ui/preset": "^0.29.0"
56
+ "vitest": "^4.0.13",
57
+ "vue-router": "^4.6.3",
58
+ "vue-tsc": "^3.1.4",
59
+ "@roku-ui/preset": "^0.30.0"
58
60
  },
59
61
  "scripts": {
60
62
  "dev": "vite",
package/dist/vite.svg DELETED
@@ -1 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>