@rbxts/react-clean-ui 1.0.7 → 1.0.9

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.
@@ -1,3 +1,3 @@
1
1
  import React from "@rbxts/react";
2
- import { CleanTheme } from "../Theme/CleanTheme";
2
+ import { CleanTheme } from "../Theme/theme.template";
3
3
  export declare const CleanThemeContext: React.Context<CleanTheme>;
@@ -1,3 +1,4 @@
1
- export * from './CleanTheme';
2
- export * from './DefaultIcons';
1
+ export * from './theme.template';
2
+ export * from './theme.factory';
3
+ export * from './icons.default';
3
4
  export * from './themes/';
@@ -1,10 +1,13 @@
1
1
  -- Compiled with roblox-ts v3.0.0
2
2
  local TS = _G[script]
3
3
  local exports = {}
4
- for _k, _v in TS.import(script, script, "CleanTheme") or {} do
4
+ for _k, _v in TS.import(script, script, "theme.template") or {} do
5
5
  exports[_k] = _v
6
6
  end
7
- for _k, _v in TS.import(script, script, "DefaultIcons") or {} do
7
+ for _k, _v in TS.import(script, script, "theme.factory") or {} do
8
+ exports[_k] = _v
9
+ end
10
+ for _k, _v in TS.import(script, script, "icons.default") or {} do
8
11
  exports[_k] = _v
9
12
  end
10
13
  for _k, _v in TS.import(script, script, "themes") or {} do
@@ -0,0 +1,6 @@
1
+ import { CleanTheme } from "./theme.template";
2
+ export type DeepPartial<T> = {
3
+ [K in keyof T]?: T[K] extends object ? DeepPartial<T[K]> : T[K];
4
+ };
5
+ export declare function createTheme(overrides?: DeepPartial<CleanTheme>): CleanTheme;
6
+ export declare function extendTheme(baseTheme: CleanTheme, overrides: DeepPartial<CleanTheme>): CleanTheme;
@@ -0,0 +1,39 @@
1
+ -- Compiled with roblox-ts v3.0.0
2
+ local TS = _G[script]
3
+ local DefaultTheme = TS.import(script, script.Parent, "themes", "default.theme").DefaultTheme
4
+ local function isRecord(value)
5
+ local _value = value
6
+ return type(_value) == "table"
7
+ end
8
+ local function deepMerge(base, overrides)
9
+ local _object = {}
10
+ if base then
11
+ for _k, _v in base do
12
+ _object[_k] = _v
13
+ end
14
+ end
15
+ local result = _object
16
+ local overrideRecord = overrides
17
+ for key, overrideValue in pairs(overrideRecord) do
18
+ local baseValue = result[key]
19
+ if isRecord(baseValue) and isRecord(overrideValue) then
20
+ result[key] = deepMerge(baseValue, overrideValue)
21
+ elseif overrideValue ~= nil then
22
+ result[key] = overrideValue
23
+ end
24
+ end
25
+ return result
26
+ end
27
+ local function createTheme(overrides)
28
+ if overrides == nil then
29
+ overrides = {}
30
+ end
31
+ return deepMerge(DefaultTheme, overrides)
32
+ end
33
+ local function extendTheme(baseTheme, overrides)
34
+ return deepMerge(baseTheme, overrides)
35
+ end
36
+ return {
37
+ createTheme = createTheme,
38
+ extendTheme = extendTheme,
39
+ }
@@ -1,2 +1 @@
1
1
  -- Compiled with roblox-ts v3.0.0
2
- return nil
@@ -1,2 +1 @@
1
- import { CleanTheme } from "../CleanTheme";
2
- export declare const DarkTheme: CleanTheme;
1
+ export declare const DarkTheme: import("..").CleanTheme;
@@ -1,6 +1,8 @@
1
1
  -- Compiled with roblox-ts v3.0.0
2
+ local TS = _G[script]
3
+ local createTheme = TS.import(script, script.Parent.Parent, "theme.factory").createTheme
2
4
  local font = Enum.Font.Jura
3
- local DarkTheme = {
5
+ local DarkTheme = createTheme({
4
6
  colors = {
5
7
  intents = {
6
8
  primary = {
@@ -345,7 +347,7 @@ local DarkTheme = {
345
347
  lg = 24,
346
348
  xl = 30,
347
349
  },
348
- }
350
+ })
349
351
  return {
350
352
  DarkTheme = DarkTheme,
351
353
  }
@@ -1,2 +1,2 @@
1
- import { CleanTheme } from "../CleanTheme";
1
+ import { CleanTheme } from "../theme.template";
2
2
  export declare const DefaultTheme: CleanTheme;
@@ -1,2 +1 @@
1
- import { CleanTheme } from "../CleanTheme";
2
- export declare const SandstoneTheme: CleanTheme;
1
+ export declare const SandstoneTheme: import("..").CleanTheme;
@@ -1,6 +1,8 @@
1
1
  -- Compiled with roblox-ts v3.0.0
2
+ local TS = _G[script]
3
+ local createTheme = TS.import(script, script.Parent.Parent, "theme.factory").createTheme
2
4
  local font = Enum.Font.SourceSans
3
- local SandstoneTheme = {
5
+ local SandstoneTheme = createTheme({
4
6
  colors = {
5
7
  intents = {
6
8
  primary = {
@@ -345,7 +347,7 @@ local SandstoneTheme = {
345
347
  lg = 24,
346
348
  xl = 30,
347
349
  },
348
- }
350
+ })
349
351
  return {
350
352
  SandstoneTheme = SandstoneTheme,
351
353
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rbxts/react-clean-ui",
3
- "version": "1.0.7",
3
+ "version": "1.0.9",
4
4
  "description": "",
5
5
  "main": "out/init.lua",
6
6
  "scripts": {