├── .gitignore
├── LICENSE
├── README.md
├── demo
├── .editorconfig
├── .gitignore
├── LICENSE
├── app
│ ├── App_Resources
│ │ ├── Android
│ │ │ ├── app.gradle
│ │ │ └── src
│ │ │ │ └── main
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ └── res
│ │ │ │ ├── drawable-hdpi
│ │ │ │ ├── background.png
│ │ │ │ ├── icon.png
│ │ │ │ └── logo.png
│ │ │ │ ├── drawable-ldpi
│ │ │ │ ├── background.png
│ │ │ │ ├── icon.png
│ │ │ │ └── logo.png
│ │ │ │ ├── drawable-mdpi
│ │ │ │ ├── background.png
│ │ │ │ ├── icon.png
│ │ │ │ └── logo.png
│ │ │ │ ├── drawable-nodpi
│ │ │ │ └── splash_screen.xml
│ │ │ │ ├── drawable-xhdpi
│ │ │ │ ├── background.png
│ │ │ │ ├── icon.png
│ │ │ │ └── logo.png
│ │ │ │ ├── drawable-xxhdpi
│ │ │ │ ├── background.png
│ │ │ │ ├── icon.png
│ │ │ │ └── logo.png
│ │ │ │ ├── drawable-xxxhdpi
│ │ │ │ ├── background.png
│ │ │ │ ├── icon.png
│ │ │ │ └── logo.png
│ │ │ │ ├── values-v21
│ │ │ │ ├── colors.xml
│ │ │ │ └── styles.xml
│ │ │ │ └── values
│ │ │ │ ├── colors.xml
│ │ │ │ └── styles.xml
│ │ └── iOS
│ │ │ ├── Assets.xcassets
│ │ │ ├── AppIcon.appiconset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── icon-1024.png
│ │ │ │ ├── icon-29.png
│ │ │ │ ├── icon-29@2x.png
│ │ │ │ ├── icon-29@3x.png
│ │ │ │ ├── icon-40.png
│ │ │ │ ├── icon-40@2x.png
│ │ │ │ ├── icon-40@3x.png
│ │ │ │ ├── icon-50.png
│ │ │ │ ├── icon-50@2x.png
│ │ │ │ ├── icon-57.png
│ │ │ │ ├── icon-57@2x.png
│ │ │ │ ├── icon-60@2x.png
│ │ │ │ ├── icon-60@3x.png
│ │ │ │ ├── icon-72.png
│ │ │ │ ├── icon-72@2x.png
│ │ │ │ ├── icon-76.png
│ │ │ │ ├── icon-76@2x.png
│ │ │ │ └── icon-83.5@2x.png
│ │ │ ├── Contents.json
│ │ │ ├── LaunchImage.launchimage
│ │ │ │ ├── Contents.json
│ │ │ │ ├── Default-1125h.png
│ │ │ │ ├── Default-568h@2x.png
│ │ │ │ ├── Default-667h@2x.png
│ │ │ │ ├── Default-736h@3x.png
│ │ │ │ ├── Default-Landscape-X.png
│ │ │ │ ├── Default-Landscape.png
│ │ │ │ ├── Default-Landscape@2x.png
│ │ │ │ ├── Default-Landscape@3x.png
│ │ │ │ ├── Default-Portrait.png
│ │ │ │ ├── Default-Portrait@2x.png
│ │ │ │ ├── Default.png
│ │ │ │ └── Default@2x.png
│ │ │ ├── LaunchScreen.AspectFill.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── LaunchScreen-AspectFill.png
│ │ │ │ └── LaunchScreen-AspectFill@2x.png
│ │ │ └── LaunchScreen.Center.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── LaunchScreen-Center.png
│ │ │ │ └── LaunchScreen-Center@2x.png
│ │ │ ├── Info.plist
│ │ │ ├── LaunchScreen.storyboard
│ │ │ └── build.xcconfig
│ ├── app-root.xml
│ ├── app.css
│ ├── app.js
│ ├── blue.css
│ ├── bundle-config.js
│ ├── dark.css
│ ├── light.css
│ ├── main-page.css
│ ├── main-page.js
│ ├── main-page.xml
│ ├── main-view-model.js
│ ├── package.json
│ ├── references.d.ts
│ ├── second-page.js
│ └── second-page.xml
├── jsconfig.json
├── package.json
└── webpack.config.js
├── docs
└── themes.gif
└── src
├── .npmignore
├── LICENSE
├── README.md
├── package.json
├── postinstall.js
├── themes.js
└── unmaintained.svg
/.gitignore:
--------------------------------------------------------------------------------
1 | .idea/
2 | /demo/node_modules/
3 | /demo/platforms/
4 | *.tgz
5 | *.tar
6 | node_modules
7 | hooks
8 | platforms
9 | *.DS_Store
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2015-2019, Nathanael Anderson
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
23 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Archived
2 | See: https://fluentreports.com/blog/?p=1434
3 |
4 |
5 |
6 | # NativeScript-Themes
7 |
8 |
9 |

10 |
11 | This version is completely unsupported and untested on NativeScript 6. Please upgrade your plugin to the tested, supported and maintained version.
12 |
13 | Documentation for this plugin is located at here
14 |
--------------------------------------------------------------------------------
/demo/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | end_of_line = lf
5 | insert_final_newline = true
6 | trim_trailing_whitespace = true
7 | charset = utf-8
8 |
9 | [*.json]
10 | indent_style = space
11 | indent_size = 2
12 |
13 | [*.js]
14 | indent_style = space
15 | indent_size = 4
16 |
--------------------------------------------------------------------------------
/demo/.gitignore:
--------------------------------------------------------------------------------
1 | # NativeScript
2 | hooks/
3 | node_modules/
4 | platforms/
5 |
6 | # NativeScript Template
7 | *.js.map
8 |
9 | # Logs
10 | logs
11 | *.log
12 | npm-debug.log*
13 | yarn-debug.log*
14 | yarn-error.log*
15 |
16 | # General
17 | .DS_Store
18 | .AppleDouble
19 | .LSOverride
20 | .idea
21 | .cloud
22 | .project
23 | tmp/
24 | typings/
25 |
26 | # Visual Studio Code
27 | .vscode/*
28 | !.vscode/settings.json
29 | !.vscode/tasks.json
30 | !.vscode/launch.json
31 | !.vscode/extensions.json
32 |
--------------------------------------------------------------------------------
/demo/LICENSE:
--------------------------------------------------------------------------------
1 | Apache License
2 | Version 2.0, January 2004
3 | http://www.apache.org/licenses/
4 |
5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6 |
7 | 1. Definitions.
8 |
9 | "License" shall mean the terms and conditions for use, reproduction,
10 | and distribution as defined by Sections 1 through 9 of this document.
11 |
12 | "Licensor" shall mean the copyright owner or entity authorized by
13 | the copyright owner that is granting the License.
14 |
15 | "Legal Entity" shall mean the union of the acting entity and all
16 | other entities that control, are controlled by, or are under common
17 | control with that entity. For the purposes of this definition,
18 | "control" means (i) the power, direct or indirect, to cause the
19 | direction or management of such entity, whether by contract or
20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the
21 | outstanding shares, or (iii) beneficial ownership of such entity.
22 |
23 | "You" (or "Your") shall mean an individual or Legal Entity
24 | exercising permissions granted by this License.
25 |
26 | "Source" form shall mean the preferred form for making modifications,
27 | including but not limited to software source code, documentation
28 | source, and configuration files.
29 |
30 | "Object" form shall mean any form resulting from mechanical
31 | transformation or translation of a Source form, including but
32 | not limited to compiled object code, generated documentation,
33 | and conversions to other media types.
34 |
35 | "Work" shall mean the work of authorship, whether in Source or
36 | Object form, made available under the License, as indicated by a
37 | copyright notice that is included in or attached to the work
38 | (an example is provided in the Appendix below).
39 |
40 | "Derivative Works" shall mean any work, whether in Source or Object
41 | form, that is based on (or derived from) the Work and for which the
42 | editorial revisions, annotations, elaborations, or other modifications
43 | represent, as a whole, an original work of authorship. For the purposes
44 | of this License, Derivative Works shall not include works that remain
45 | separable from, or merely link (or bind by name) to the interfaces of,
46 | the Work and Derivative Works thereof.
47 |
48 | "Contribution" shall mean any work of authorship, including
49 | the original version of the Work and any modifications or additions
50 | to that Work or Derivative Works thereof, that is intentionally
51 | submitted to Licensor for inclusion in the Work by the copyright owner
52 | or by an individual or Legal Entity authorized to submit on behalf of
53 | the copyright owner. For the purposes of this definition, "submitted"
54 | means any form of electronic, verbal, or written communication sent
55 | to the Licensor or its representatives, including but not limited to
56 | communication on electronic mailing lists, source code control systems,
57 | and issue tracking systems that are managed by, or on behalf of, the
58 | Licensor for the purpose of discussing and improving the Work, but
59 | excluding communication that is conspicuously marked or otherwise
60 | designated in writing by the copyright owner as "Not a Contribution."
61 |
62 | "Contributor" shall mean Licensor and any individual or Legal Entity
63 | on behalf of whom a Contribution has been received by Licensor and
64 | subsequently incorporated within the Work.
65 |
66 | 2. Grant of Copyright License. Subject to the terms and conditions of
67 | this License, each Contributor hereby grants to You a perpetual,
68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69 | copyright license to reproduce, prepare Derivative Works of,
70 | publicly display, publicly perform, sublicense, and distribute the
71 | Work and such Derivative Works in Source or Object form.
72 |
73 | 3. Grant of Patent License. Subject to the terms and conditions of
74 | this License, each Contributor hereby grants to You a perpetual,
75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76 | (except as stated in this section) patent license to make, have made,
77 | use, offer to sell, sell, import, and otherwise transfer the Work,
78 | where such license applies only to those patent claims licensable
79 | by such Contributor that are necessarily infringed by their
80 | Contribution(s) alone or by combination of their Contribution(s)
81 | with the Work to which such Contribution(s) was submitted. If You
82 | institute patent litigation against any entity (including a
83 | cross-claim or counterclaim in a lawsuit) alleging that the Work
84 | or a Contribution incorporated within the Work constitutes direct
85 | or contributory patent infringement, then any patent licenses
86 | granted to You under this License for that Work shall terminate
87 | as of the date such litigation is filed.
88 |
89 | 4. Redistribution. You may reproduce and distribute copies of the
90 | Work or Derivative Works thereof in any medium, with or without
91 | modifications, and in Source or Object form, provided that You
92 | meet the following conditions:
93 |
94 | (a) You must give any other recipients of the Work or
95 | Derivative Works a copy of this License; and
96 |
97 | (b) You must cause any modified files to carry prominent notices
98 | stating that You changed the files; and
99 |
100 | (c) You must retain, in the Source form of any Derivative Works
101 | that You distribute, all copyright, patent, trademark, and
102 | attribution notices from the Source form of the Work,
103 | excluding those notices that do not pertain to any part of
104 | the Derivative Works; and
105 |
106 | (d) If the Work includes a "NOTICE" text file as part of its
107 | distribution, then any Derivative Works that You distribute must
108 | include a readable copy of the attribution notices contained
109 | within such NOTICE file, excluding those notices that do not
110 | pertain to any part of the Derivative Works, in at least one
111 | of the following places: within a NOTICE text file distributed
112 | as part of the Derivative Works; within the Source form or
113 | documentation, if provided along with the Derivative Works; or,
114 | within a display generated by the Derivative Works, if and
115 | wherever such third-party notices normally appear. The contents
116 | of the NOTICE file are for informational purposes only and
117 | do not modify the License. You may add Your own attribution
118 | notices within Derivative Works that You distribute, alongside
119 | or as an addendum to the NOTICE text from the Work, provided
120 | that such additional attribution notices cannot be construed
121 | as modifying the License.
122 |
123 | You may add Your own copyright statement to Your modifications and
124 | may provide additional or different license terms and conditions
125 | for use, reproduction, or distribution of Your modifications, or
126 | for any such Derivative Works as a whole, provided Your use,
127 | reproduction, and distribution of the Work otherwise complies with
128 | the conditions stated in this License.
129 |
130 | 5. Submission of Contributions. Unless You explicitly state otherwise,
131 | any Contribution intentionally submitted for inclusion in the Work
132 | by You to the Licensor shall be under the terms and conditions of
133 | this License, without any additional terms or conditions.
134 | Notwithstanding the above, nothing herein shall supersede or modify
135 | the terms of any separate license agreement you may have executed
136 | with Licensor regarding such Contributions.
137 |
138 | 6. Trademarks. This License does not grant permission to use the trade
139 | names, trademarks, service marks, or product names of the Licensor,
140 | except as required for reasonable and customary use in describing the
141 | origin of the Work and reproducing the content of the NOTICE file.
142 |
143 | 7. Disclaimer of Warranty. Unless required by applicable law or
144 | agreed to in writing, Licensor provides the Work (and each
145 | Contributor provides its Contributions) on an "AS IS" BASIS,
146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147 | implied, including, without limitation, any warranties or conditions
148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149 | PARTICULAR PURPOSE. You are solely responsible for determining the
150 | appropriateness of using or redistributing the Work and assume any
151 | risks associated with Your exercise of permissions under this License.
152 |
153 | 8. Limitation of Liability. In no event and under no legal theory,
154 | whether in tort (including negligence), contract, or otherwise,
155 | unless required by applicable law (such as deliberate and grossly
156 | negligent acts) or agreed to in writing, shall any Contributor be
157 | liable to You for damages, including any direct, indirect, special,
158 | incidental, or consequential damages of any character arising as a
159 | result of this License or out of the use or inability to use the
160 | Work (including but not limited to damages for loss of goodwill,
161 | work stoppage, computer failure or malfunction, or any and all
162 | other commercial damages or losses), even if such Contributor
163 | has been advised of the possibility of such damages.
164 |
165 | 9. Accepting Warranty or Additional Liability. While redistributing
166 | the Work or Derivative Works thereof, You may choose to offer,
167 | and charge a fee for, acceptance of support, warranty, indemnity,
168 | or other liability obligations and/or rights consistent with this
169 | License. However, in accepting such obligations, You may act only
170 | on Your own behalf and on Your sole responsibility, not on behalf
171 | of any other Contributor, and only if You agree to indemnify,
172 | defend, and hold each Contributor harmless for any liability
173 | incurred by, or claims asserted against, such Contributor by reason
174 | of your accepting any such warranty or additional liability.
175 |
176 | END OF TERMS AND CONDITIONS
177 |
178 | APPENDIX: How to apply the Apache License to your work.
179 |
180 | To apply the Apache License to your work, attach the following
181 | boilerplate notice, with the fields enclosed by brackets "[]"
182 | replaced with your own identifying information. (Don't include
183 | the brackets!) The text should be enclosed in the appropriate
184 | comment syntax for the file format. We also recommend that a
185 | file or class name and description of purpose be included on the
186 | same "printed page" as the copyright notice for easier
187 | identification within third-party archives.
188 |
189 | Copyright (c) 2015-2019 Progress Software Corporation
190 |
191 | Licensed under the Apache License, Version 2.0 (the "License");
192 | you may not use this file except in compliance with the License.
193 | You may obtain a copy of the License at
194 |
195 | http://www.apache.org/licenses/LICENSE-2.0
196 |
197 | Unless required by applicable law or agreed to in writing, software
198 | distributed under the License is distributed on an "AS IS" BASIS,
199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200 | See the License for the specific language governing permissions and
201 | limitations under the License.
202 |
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/app.gradle:
--------------------------------------------------------------------------------
1 | // Add your native dependencies here:
2 |
3 | // Uncomment to add recyclerview-v7 dependency
4 | //dependencies {
5 | // implementation 'com.android.support:recyclerview-v7:+'
6 | //}
7 |
8 | // If you want to add something to be applied before applying plugins' include.gradle files
9 | // e.g. project.ext.googlePlayServicesVersion = "15.0.1"
10 | // create a file named before-plugins.gradle in the current directory and place it there
11 |
12 | android {
13 | defaultConfig {
14 | minSdkVersion 17
15 | generatedDensities = []
16 | }
17 | aaptOptions {
18 | additionalParameters "--no-version-vectors"
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
12 |
13 |
14 |
15 |
16 |
17 |
23 |
24 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/src/main/res/drawable-hdpi/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/Android/src/main/res/drawable-hdpi/background.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/src/main/res/drawable-hdpi/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/Android/src/main/res/drawable-hdpi/icon.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/src/main/res/drawable-hdpi/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/Android/src/main/res/drawable-hdpi/logo.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/src/main/res/drawable-ldpi/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/Android/src/main/res/drawable-ldpi/background.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/src/main/res/drawable-ldpi/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/Android/src/main/res/drawable-ldpi/icon.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/src/main/res/drawable-ldpi/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/Android/src/main/res/drawable-ldpi/logo.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/src/main/res/drawable-mdpi/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/Android/src/main/res/drawable-mdpi/background.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/src/main/res/drawable-mdpi/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/Android/src/main/res/drawable-mdpi/icon.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/src/main/res/drawable-mdpi/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/Android/src/main/res/drawable-mdpi/logo.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/src/main/res/drawable-nodpi/splash_screen.xml:
--------------------------------------------------------------------------------
1 |
2 | -
3 |
4 |
5 | -
6 |
7 |
8 |
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/src/main/res/drawable-xhdpi/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/Android/src/main/res/drawable-xhdpi/background.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/src/main/res/drawable-xhdpi/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/Android/src/main/res/drawable-xhdpi/icon.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/src/main/res/drawable-xhdpi/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/Android/src/main/res/drawable-xhdpi/logo.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/src/main/res/drawable-xxhdpi/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/Android/src/main/res/drawable-xxhdpi/background.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/src/main/res/drawable-xxhdpi/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/Android/src/main/res/drawable-xxhdpi/icon.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/src/main/res/drawable-xxhdpi/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/Android/src/main/res/drawable-xxhdpi/logo.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/background.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/icon.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/logo.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/src/main/res/values-v21/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #3d5afe
4 |
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/src/main/res/values-v21/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
9 |
10 |
11 |
14 |
15 |
16 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #F5F5F5
4 | #757575
5 | #33B5E5
6 | #272734
7 |
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
18 |
19 |
21 |
22 |
23 |
31 |
32 |
34 |
35 |
36 |
42 |
43 |
45 |
46 |
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "size" : "29x29",
5 | "idiom" : "iphone",
6 | "filename" : "icon-29.png",
7 | "scale" : "1x"
8 | },
9 | {
10 | "size" : "29x29",
11 | "idiom" : "iphone",
12 | "filename" : "icon-29@2x.png",
13 | "scale" : "2x"
14 | },
15 | {
16 | "size" : "29x29",
17 | "idiom" : "iphone",
18 | "filename" : "icon-29@3x.png",
19 | "scale" : "3x"
20 | },
21 | {
22 | "size" : "40x40",
23 | "idiom" : "iphone",
24 | "filename" : "icon-40@2x.png",
25 | "scale" : "2x"
26 | },
27 | {
28 | "size" : "40x40",
29 | "idiom" : "iphone",
30 | "filename" : "icon-40@3x.png",
31 | "scale" : "3x"
32 | },
33 | {
34 | "size" : "57x57",
35 | "idiom" : "iphone",
36 | "filename" : "icon-57.png",
37 | "scale" : "1x"
38 | },
39 | {
40 | "size" : "57x57",
41 | "idiom" : "iphone",
42 | "filename" : "icon-57@2x.png",
43 | "scale" : "2x"
44 | },
45 | {
46 | "size" : "60x60",
47 | "idiom" : "iphone",
48 | "filename" : "icon-60@2x.png",
49 | "scale" : "2x"
50 | },
51 | {
52 | "size" : "60x60",
53 | "idiom" : "iphone",
54 | "filename" : "icon-60@3x.png",
55 | "scale" : "3x"
56 | },
57 | {
58 | "size" : "29x29",
59 | "idiom" : "ipad",
60 | "filename" : "icon-29.png",
61 | "scale" : "1x"
62 | },
63 | {
64 | "size" : "29x29",
65 | "idiom" : "ipad",
66 | "filename" : "icon-29@2x.png",
67 | "scale" : "2x"
68 | },
69 | {
70 | "size" : "40x40",
71 | "idiom" : "ipad",
72 | "filename" : "icon-40.png",
73 | "scale" : "1x"
74 | },
75 | {
76 | "size" : "40x40",
77 | "idiom" : "ipad",
78 | "filename" : "icon-40@2x.png",
79 | "scale" : "2x"
80 | },
81 | {
82 | "size" : "50x50",
83 | "idiom" : "ipad",
84 | "filename" : "icon-50.png",
85 | "scale" : "1x"
86 | },
87 | {
88 | "size" : "50x50",
89 | "idiom" : "ipad",
90 | "filename" : "icon-50@2x.png",
91 | "scale" : "2x"
92 | },
93 | {
94 | "size" : "72x72",
95 | "idiom" : "ipad",
96 | "filename" : "icon-72.png",
97 | "scale" : "1x"
98 | },
99 | {
100 | "size" : "72x72",
101 | "idiom" : "ipad",
102 | "filename" : "icon-72@2x.png",
103 | "scale" : "2x"
104 | },
105 | {
106 | "size" : "76x76",
107 | "idiom" : "ipad",
108 | "filename" : "icon-76.png",
109 | "scale" : "1x"
110 | },
111 | {
112 | "size" : "76x76",
113 | "idiom" : "ipad",
114 | "filename" : "icon-76@2x.png",
115 | "scale" : "2x"
116 | },
117 | {
118 | "size" : "83.5x83.5",
119 | "idiom" : "ipad",
120 | "filename" : "icon-83.5@2x.png",
121 | "scale" : "2x"
122 | }
123 | ],
124 | "info" : {
125 | "version" : 1,
126 | "author" : "xcode"
127 | }
128 | }
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-1024.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-1024.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-50.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-50.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-50@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-50@2x.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-57.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-57.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-57@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-57@2x.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-72.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-72@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-72@2x.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-76.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-76.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "extent" : "full-screen",
5 | "idiom" : "iphone",
6 | "subtype" : "2436h",
7 | "filename" : "Default-1125h.png",
8 | "minimum-system-version" : "11.0",
9 | "orientation" : "portrait",
10 | "scale" : "3x"
11 | },
12 | {
13 | "orientation" : "landscape",
14 | "idiom" : "iphone",
15 | "extent" : "full-screen",
16 | "filename" : "Default-Landscape-X.png",
17 | "minimum-system-version" : "11.0",
18 | "subtype" : "2436h",
19 | "scale" : "3x"
20 | },
21 | {
22 | "extent" : "full-screen",
23 | "idiom" : "iphone",
24 | "subtype" : "736h",
25 | "filename" : "Default-736h@3x.png",
26 | "minimum-system-version" : "8.0",
27 | "orientation" : "portrait",
28 | "scale" : "3x"
29 | },
30 | {
31 | "extent" : "full-screen",
32 | "idiom" : "iphone",
33 | "subtype" : "736h",
34 | "filename" : "Default-Landscape@3x.png",
35 | "minimum-system-version" : "8.0",
36 | "orientation" : "landscape",
37 | "scale" : "3x"
38 | },
39 | {
40 | "extent" : "full-screen",
41 | "idiom" : "iphone",
42 | "subtype" : "667h",
43 | "filename" : "Default-667h@2x.png",
44 | "minimum-system-version" : "8.0",
45 | "orientation" : "portrait",
46 | "scale" : "2x"
47 | },
48 | {
49 | "orientation" : "portrait",
50 | "idiom" : "iphone",
51 | "filename" : "Default@2x.png",
52 | "extent" : "full-screen",
53 | "minimum-system-version" : "7.0",
54 | "scale" : "2x"
55 | },
56 | {
57 | "extent" : "full-screen",
58 | "idiom" : "iphone",
59 | "subtype" : "retina4",
60 | "filename" : "Default-568h@2x.png",
61 | "minimum-system-version" : "7.0",
62 | "orientation" : "portrait",
63 | "scale" : "2x"
64 | },
65 | {
66 | "orientation" : "portrait",
67 | "idiom" : "ipad",
68 | "filename" : "Default-Portrait.png",
69 | "extent" : "full-screen",
70 | "minimum-system-version" : "7.0",
71 | "scale" : "1x"
72 | },
73 | {
74 | "orientation" : "landscape",
75 | "idiom" : "ipad",
76 | "filename" : "Default-Landscape.png",
77 | "extent" : "full-screen",
78 | "minimum-system-version" : "7.0",
79 | "scale" : "1x"
80 | },
81 | {
82 | "orientation" : "portrait",
83 | "idiom" : "ipad",
84 | "filename" : "Default-Portrait@2x.png",
85 | "extent" : "full-screen",
86 | "minimum-system-version" : "7.0",
87 | "scale" : "2x"
88 | },
89 | {
90 | "orientation" : "landscape",
91 | "idiom" : "ipad",
92 | "filename" : "Default-Landscape@2x.png",
93 | "extent" : "full-screen",
94 | "minimum-system-version" : "7.0",
95 | "scale" : "2x"
96 | },
97 | {
98 | "orientation" : "portrait",
99 | "idiom" : "iphone",
100 | "filename" : "Default.png",
101 | "extent" : "full-screen",
102 | "scale" : "1x"
103 | },
104 | {
105 | "orientation" : "portrait",
106 | "idiom" : "iphone",
107 | "filename" : "Default@2x.png",
108 | "extent" : "full-screen",
109 | "scale" : "2x"
110 | },
111 | {
112 | "orientation" : "portrait",
113 | "idiom" : "iphone",
114 | "filename" : "Default-568h@2x.png",
115 | "extent" : "full-screen",
116 | "subtype" : "retina4",
117 | "scale" : "2x"
118 | },
119 | {
120 | "orientation" : "portrait",
121 | "idiom" : "ipad",
122 | "extent" : "to-status-bar",
123 | "scale" : "1x"
124 | },
125 | {
126 | "orientation" : "portrait",
127 | "idiom" : "ipad",
128 | "filename" : "Default-Portrait.png",
129 | "extent" : "full-screen",
130 | "scale" : "1x"
131 | },
132 | {
133 | "orientation" : "landscape",
134 | "idiom" : "ipad",
135 | "extent" : "to-status-bar",
136 | "scale" : "1x"
137 | },
138 | {
139 | "orientation" : "landscape",
140 | "idiom" : "ipad",
141 | "filename" : "Default-Landscape.png",
142 | "extent" : "full-screen",
143 | "scale" : "1x"
144 | },
145 | {
146 | "orientation" : "portrait",
147 | "idiom" : "ipad",
148 | "extent" : "to-status-bar",
149 | "scale" : "2x"
150 | },
151 | {
152 | "orientation" : "portrait",
153 | "idiom" : "ipad",
154 | "filename" : "Default-Portrait@2x.png",
155 | "extent" : "full-screen",
156 | "scale" : "2x"
157 | },
158 | {
159 | "orientation" : "landscape",
160 | "idiom" : "ipad",
161 | "extent" : "to-status-bar",
162 | "scale" : "2x"
163 | },
164 | {
165 | "orientation" : "landscape",
166 | "idiom" : "ipad",
167 | "filename" : "Default-Landscape@2x.png",
168 | "extent" : "full-screen",
169 | "scale" : "2x"
170 | }
171 | ],
172 | "info" : {
173 | "version" : 1,
174 | "author" : "xcode"
175 | }
176 | }
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-1125h.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-1125h.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-568h@2x.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-667h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-667h@2x.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-736h@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-736h@3x.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape-X.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape-X.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape@2x.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape@3x.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Portrait.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Portrait.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Portrait@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Portrait@2x.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default@2x.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "LaunchScreen-AspectFill.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "LaunchScreen-AspectFill@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen-AspectFill.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen-AspectFill.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen-AspectFill@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen-AspectFill@2x.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "LaunchScreen-Center.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "LaunchScreen-Center@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/demo/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center@2x.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleDisplayName
8 | ${PRODUCT_NAME}
9 | CFBundleExecutable
10 | ${EXECUTABLE_NAME}
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | ${PRODUCT_NAME}
15 | CFBundlePackageType
16 | APPL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1.0
23 | LSRequiresIPhoneOS
24 |
25 | UILaunchStoryboardName
26 | LaunchScreen
27 | UIRequiresFullScreen
28 |
29 | UIRequiredDeviceCapabilities
30 |
31 | armv7
32 |
33 | UISupportedInterfaceOrientations
34 |
35 | UIInterfaceOrientationPortrait
36 | UIInterfaceOrientationLandscapeLeft
37 | UIInterfaceOrientationLandscapeRight
38 |
39 | UISupportedInterfaceOrientations~ipad
40 |
41 | UIInterfaceOrientationPortrait
42 | UIInterfaceOrientationPortraitUpsideDown
43 | UIInterfaceOrientationLandscapeLeft
44 | UIInterfaceOrientationLandscapeRight
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/LaunchScreen.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
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 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/build.xcconfig:
--------------------------------------------------------------------------------
1 | // You can add custom settings here
2 | // for example you can uncomment the following line to force distribution code signing
3 | // CODE_SIGN_IDENTITY = iPhone Distribution
4 | // To build for device with Xcode 8 you need to specify your development team. More info: https://developer.apple.com/library/prerelease/content/releasenotes/DeveloperTools/RN-Xcode/Introduction.html
5 | // DEVELOPMENT_TEAM = YOUR_TEAM_ID;
6 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
7 | ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
8 |
--------------------------------------------------------------------------------
/demo/app/app-root.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/demo/app/app.css:
--------------------------------------------------------------------------------
1 | @import '~nativescript-theme-core/css/core.light.css';
2 |
3 | .title {
4 | font-family: monospace;
5 | }
6 |
--------------------------------------------------------------------------------
/demo/app/app.js:
--------------------------------------------------------------------------------
1 | /*
2 | In NativeScript, the app.js file is the entry point to your application.
3 | You can use this file to perform app-level initialization, but the primary
4 | purpose of the file is to pass control to the app’s first module.
5 | */
6 |
7 | const application = require('tns-core-modules/application');
8 |
9 | const themes = require('nativescript-themes');
10 | themes.applyTheme(themes.getAppliedTheme('light.css'));
11 |
12 | application.run({ moduleName: 'app-root' });
13 |
14 | /*
15 | Do not place any code after the application has been started as it will not
16 | be executed on iOS.
17 | */
18 |
--------------------------------------------------------------------------------
/demo/app/blue.css:
--------------------------------------------------------------------------------
1 | .title {
2 | font-size: 30;
3 | horizontal-align: center;
4 | margin: 20;
5 | }
6 |
7 | button {
8 | font-size: 26;
9 | horizontal-align: center;
10 | }
11 |
12 | .message {
13 | font-size: 20;
14 | color: lightgoldenrodyellow;
15 | horizontal-align: center;
16 | margin: 0 20;
17 | text-align: center;
18 | }
19 |
20 | Page {
21 | background-color: blue;
22 | color: antiquewhite;
23 | }
24 |
25 | ActionBar {
26 | color: white;
27 | background-color: blue;
28 | }
29 |
30 | .blue {
31 | color: blue;
32 | }
33 |
--------------------------------------------------------------------------------
/demo/app/bundle-config.js:
--------------------------------------------------------------------------------
1 | if (global.TNS_WEBPACK) {
2 | // Register tns-core-modules UI framework modules
3 | require("bundle-entry-points");
4 |
5 | // Register application modules
6 | // This will register each `root`, `page`, `fragment` postfixed xml, css, js, ts, scss file in the app/ folder
7 | const context = require.context("~/", true, /(root|page|fragment)\.(xml|css|js|ts|scss|less|sass)$/);
8 | global.registerWebpackModules(context);
9 | }
10 |
--------------------------------------------------------------------------------
/demo/app/dark.css:
--------------------------------------------------------------------------------
1 | .title {
2 | font-size: 30;
3 | horizontal-align: center;
4 | margin: 20;
5 | }
6 |
7 | button {
8 | font-size: 38;
9 | horizontal-align: center;
10 | }
11 |
12 | .message {
13 | font-size: 20;
14 | color: lightgoldenrodyellow;
15 | horizontal-align: center;
16 | margin: 0 20;
17 | text-align: center;
18 | }
19 |
20 | Page {
21 | background-color: #284848;
22 | color: antiquewhite;
23 | }
24 |
25 | ActionBar {
26 | color: brown;
27 | background-color: black;
28 | }
29 |
30 | .dark {
31 | color: black;
32 | }
33 |
--------------------------------------------------------------------------------
/demo/app/light.css:
--------------------------------------------------------------------------------
1 | .title {
2 | font-size: 30;
3 | horizontal-align: center;
4 | margin: 20;
5 | }
6 |
7 | button {
8 | font-size: 32;
9 | horizontal-align: center;
10 | }
11 |
12 | .message {
13 | font-size: 20;
14 | color: #284848;
15 | horizontal-align: center;
16 | margin: 0 20;
17 | text-align: center;
18 | }
19 |
20 | Page {
21 | background-color: white;
22 | color: black;
23 | }
24 |
25 | ActionBar {
26 | color: white;
27 | background-color: purple;
28 | }
29 |
30 | .light {
31 | color: white;
32 | }
33 |
--------------------------------------------------------------------------------
/demo/app/main-page.css:
--------------------------------------------------------------------------------
1 | HtmlView {
2 | background-color: gray;
3 | color: blue;
4 | }
--------------------------------------------------------------------------------
/demo/app/main-page.js:
--------------------------------------------------------------------------------
1 | var createViewModel = require('./main-view-model').createViewModel;
2 |
3 | function onNavigatingTo(args) {
4 | var page = args.object;
5 | page.bindingContext = createViewModel();
6 | }
7 | exports.onNavigatingTo = onNavigatingTo;
8 |
9 | exports.secondpage = function() {
10 | var frame = require('tns-core-modules/ui/frame');
11 | //frame.topmost().currentPage.addCss("Button { background-color: green; color: purple; }");
12 | frame.topmost().navigate('second-page');
13 | };
14 |
--------------------------------------------------------------------------------
/demo/app/main-page.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/demo/app/main-view-model.js:
--------------------------------------------------------------------------------
1 | var Observable = require('tns-core-modules/data/observable').Observable;
2 | var themes = require('nativescript-themes');
3 |
4 | function getMessage(counter) {
5 | var themeId = counter % 3;
6 | if (themeId === 0) {
7 | return 'Current theme is: Light';
8 | } else if (themeId === 1) {
9 | return 'Current theme is: Dark';
10 | } else {
11 | return 'Current theme is Blue';
12 | }
13 | }
14 |
15 | function getNextTheme(counter) {
16 | var themeId = counter % 3;
17 | if (themeId === 0) {
18 | return 'Click for Dark theme';
19 | } else if (themeId === 1) {
20 | return 'Click for Blue theme';
21 | } else {
22 | return 'Click for Light theme';
23 | }
24 | }
25 |
26 | function createViewModel() {
27 | var viewModel = new Observable();
28 | viewModel.curTheme = 0;
29 | var curThemeName = themes.getAppliedTheme('light.css');
30 | if (curThemeName === 'dark.css') {
31 | viewModel.curTheme++;
32 | } else if (curThemeName === 'blue.css') {
33 | viewModel.curTheme += 2;
34 | }
35 |
36 | viewModel.message = getMessage(viewModel.curTheme);
37 | viewModel.nextTheme = getNextTheme(viewModel.curTheme);
38 |
39 | viewModel.onTap = function() {
40 | this.curTheme++;
41 | this.set('message', getMessage(this.curTheme));
42 | this.set('nextTheme', getNextTheme(this.curTheme));
43 |
44 | var themeId = this.curTheme % 3;
45 |
46 | switch (themeId) {
47 | case 0:
48 | themes.applyTheme('light.css');
49 | break;
50 | case 1:
51 | themes.applyTheme('dark.css');
52 | break;
53 | case 2:
54 | themes.applyTheme('blue.css');
55 | break;
56 | }
57 | };
58 |
59 | return viewModel;
60 | }
61 |
62 | exports.createViewModel = createViewModel;
63 |
--------------------------------------------------------------------------------
/demo/app/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "main": "app.js",
3 | "android": {
4 | "v8Flags": "--expose_gc"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/demo/app/references.d.ts:
--------------------------------------------------------------------------------
1 | /// Enable smart suggestions and completions in Visual Studio Code JavaScript projects.
2 |
--------------------------------------------------------------------------------
/demo/app/second-page.js:
--------------------------------------------------------------------------------
1 | var themes = require('nativescript-themes');
2 |
3 | exports.click = function() {
4 | themes.applyTheme('dark.css');
5 | };
6 |
7 | exports.loaded = function() {};
8 |
9 | exports.navigatedTo = function() {};
10 |
11 | exports.navigatingTo = function() {};
12 |
--------------------------------------------------------------------------------
/demo/app/second-page.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/demo/jsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "baseUrl": "./",
4 | "paths": {
5 | "*": ["./node_modules/tns-core-modules/*", "./node_modules/*"],
6 | "~/*": ["app/*"]
7 | }
8 | },
9 | "include": ["app/**/*"]
10 | }
11 |
--------------------------------------------------------------------------------
/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "nativescript": {
3 | "id": "org.nativescript.tp",
4 | "tns-android": {
5 | "version": "5.4.0"
6 | }
7 | },
8 | "description": "NativeScript Application",
9 | "license": "SEE LICENSE IN ",
10 | "repository": "",
11 | "dependencies": {
12 | "nativescript-theme-core": "~1.0.4",
13 | "nativescript-themes": "file:../src",
14 | "tns-core-modules": "^5.4.0"
15 | },
16 | "devDependencies": {
17 | "nativescript-dev-webpack": "~0.21.0"
18 | },
19 | "gitHead": "c175016cf900d406d2428bb6c4fcbb62093fb351",
20 | "readme": "NativeScript Application"
21 | }
22 |
--------------------------------------------------------------------------------
/demo/webpack.config.js:
--------------------------------------------------------------------------------
1 | const { join, relative, resolve, sep } = require("path");
2 |
3 | const webpack = require("webpack");
4 | const nsWebpack = require("nativescript-dev-webpack");
5 | const nativescriptTarget = require("nativescript-dev-webpack/nativescript-target");
6 | const CleanWebpackPlugin = require("clean-webpack-plugin");
7 | const CopyWebpackPlugin = require("copy-webpack-plugin");
8 | const { BundleAnalyzerPlugin } = require("webpack-bundle-analyzer");
9 | const { NativeScriptWorkerPlugin } = require("nativescript-worker-loader/NativeScriptWorkerPlugin");
10 | const UglifyJsPlugin = require("uglifyjs-webpack-plugin");
11 | const hashSalt = Date.now().toString();
12 |
13 | module.exports = env => {
14 | // Add your custom Activities, Services and other android app components here.
15 | const appComponents = [
16 | "tns-core-modules/ui/frame",
17 | "tns-core-modules/ui/frame/activity",
18 | ];
19 |
20 | const platform = env && (env.android && "android" || env.ios && "ios");
21 | if (!platform) {
22 | throw new Error("You need to provide a target platform!");
23 | }
24 |
25 | const platforms = ["ios", "android"];
26 | const projectRoot = __dirname;
27 |
28 | // Default destination inside platforms//...
29 | const dist = resolve(projectRoot, nsWebpack.getAppPath(platform, projectRoot));
30 | const appResourcesPlatformDir = platform === "android" ? "Android" : "iOS";
31 |
32 | const {
33 | // The 'appPath' and 'appResourcesPath' values are fetched from
34 | // the nsconfig.json configuration file
35 | // when bundling with `tns run android|ios --bundle`.
36 | appPath = "app",
37 | appResourcesPath = "app/App_Resources",
38 |
39 | // You can provide the following flags when running 'tns run android|ios'
40 | snapshot, // --env.snapshot
41 | uglify, // --env.uglify
42 | report, // --env.report
43 | sourceMap, // --env.sourceMap
44 | hmr, // --env.hmr,
45 | unitTesting, // --env.unitTesting
46 | } = env;
47 | const externals = nsWebpack.getConvertedExternals(env.externals);
48 |
49 | const appFullPath = resolve(projectRoot, appPath);
50 | const appResourcesFullPath = resolve(projectRoot, appResourcesPath);
51 |
52 | const entryModule = nsWebpack.getEntryModule(appFullPath);
53 | const entryPath = `.${sep}${entryModule}.js`;
54 | const entries = { bundle: entryPath };
55 | if (platform === "ios") {
56 | entries["tns_modules/tns-core-modules/inspector_modules"] = "inspector_modules.js";
57 | };
58 |
59 | const config = {
60 | mode: uglify ? "production" : "development",
61 | context: appFullPath,
62 | externals,
63 | watchOptions: {
64 | ignored: [
65 | appResourcesFullPath,
66 | // Don't watch hidden files
67 | "**/.*",
68 | ]
69 | },
70 | target: nativescriptTarget,
71 | entry: entries,
72 | output: {
73 | pathinfo: false,
74 | path: dist,
75 | libraryTarget: "commonjs2",
76 | filename: "[name].js",
77 | globalObject: "global",
78 | hashSalt
79 | },
80 | resolve: {
81 | extensions: [".js", ".scss", ".css"],
82 | // Resolve {N} system modules from tns-core-modules
83 | modules: [
84 | "node_modules/tns-core-modules",
85 | "node_modules",
86 | ],
87 | alias: {
88 | '~': appFullPath
89 | },
90 | // don't resolve symlinks to symlinked modules
91 | symlinks: false
92 | },
93 | resolveLoader: {
94 | // don't resolve symlinks to symlinked loaders
95 | symlinks: false
96 | },
97 | node: {
98 | // Disable node shims that conflict with NativeScript
99 | "http": false,
100 | "timers": false,
101 | "setImmediate": false,
102 | "fs": "empty",
103 | "__dirname": false,
104 | },
105 | devtool: sourceMap ? "inline-source-map" : "none",
106 | optimization: {
107 | runtimeChunk: "single",
108 | splitChunks: {
109 | cacheGroups: {
110 | vendor: {
111 | name: "vendor",
112 | chunks: "all",
113 | test: (module, chunks) => {
114 | const moduleName = module.nameForCondition ? module.nameForCondition() : '';
115 | return /[\\/]node_modules[\\/]/.test(moduleName) ||
116 | appComponents.some(comp => comp === moduleName);
117 |
118 | },
119 | enforce: true,
120 | },
121 | }
122 | },
123 | minimize: !!uglify,
124 | minimizer: [
125 | new UglifyJsPlugin({
126 | parallel: true,
127 | cache: true,
128 | uglifyOptions: {
129 | output: {
130 | comments: false,
131 | },
132 | compress: {
133 | // The Android SBG has problems parsing the output
134 | // when these options are enabled
135 | 'collapse_vars': platform !== "android",
136 | sequences: platform !== "android",
137 | }
138 | }
139 | })
140 | ],
141 | },
142 | module: {
143 | rules: [
144 | {
145 | test: nsWebpack.getEntryPathRegExp(appFullPath, entryPath),
146 | use: [
147 | // Require all Android app components
148 | platform === "android" && {
149 | loader: "nativescript-dev-webpack/android-app-components-loader",
150 | options: { modules: appComponents }
151 | },
152 |
153 | {
154 | loader: "nativescript-dev-webpack/bundle-config-loader",
155 | options: {
156 | loadCss: !snapshot, // load the application css if in debug mode
157 | unitTesting,
158 | appFullPath,
159 | projectRoot,
160 | }
161 | },
162 | ].filter(loader => !!loader)
163 | },
164 |
165 | {
166 | test: /-page\.js$/,
167 | use: "nativescript-dev-webpack/script-hot-loader"
168 | },
169 |
170 | {
171 | test: /\.(css|scss)$/,
172 | use: "nativescript-dev-webpack/style-hot-loader"
173 | },
174 |
175 | {
176 | test: /\.(html|xml)$/,
177 | use: "nativescript-dev-webpack/markup-hot-loader"
178 | },
179 |
180 | { test: /\.(html|xml)$/, use: "nativescript-dev-webpack/xml-namespace-loader"},
181 |
182 | {
183 | test: /\.css$/,
184 | use: { loader: "css-loader", options: { minimize: false, url: false } }
185 | },
186 |
187 | {
188 | test: /\.scss$/,
189 | use: [
190 | { loader: "css-loader", options: { minimize: false, url: false } },
191 | "sass-loader"
192 | ]
193 | },
194 | ]
195 | },
196 | plugins: [
197 | // Define useful constants like TNS_WEBPACK
198 | new webpack.DefinePlugin({
199 | "global.TNS_WEBPACK": "true",
200 | "process": undefined,
201 | }),
202 | // Remove all files from the out dir.
203 | new CleanWebpackPlugin([ `${dist}/**/*` ]),
204 | // Copy assets to out dir. Add your own globs as needed.
205 | new CopyWebpackPlugin([
206 | { from: { glob: "fonts/**" } },
207 | { from: { glob: "**/*.css" } },
208 | { from: { glob: "**/*.jpg" } },
209 | { from: { glob: "**/*.png" } },
210 | ], { ignore: [`${relative(appPath, appResourcesFullPath)}/**`] }),
211 | // Generate a bundle starter script and activate it in package.json
212 | new nsWebpack.GenerateBundleStarterPlugin(
213 | // Don't include `runtime.js` when creating a snapshot. The plugin
214 | // configures the WebPack runtime to be generated inside the snapshot
215 | // module and no `runtime.js` module exist.
216 | (snapshot ? [] : ["./runtime"])
217 | .concat([
218 | "./vendor",
219 | "./bundle",
220 | ])
221 | ),
222 | // For instructions on how to set up workers with webpack
223 | // check out https://github.com/nativescript/worker-loader
224 | new NativeScriptWorkerPlugin(),
225 | new nsWebpack.PlatformFSPlugin({
226 | platform,
227 | platforms,
228 | }),
229 | // Does IPC communication with the {N} CLI to notify events when running in watch mode.
230 | new nsWebpack.WatchStateLoggerPlugin(),
231 | ],
232 | };
233 |
234 | // Copy the native app resources to the out dir
235 | // only if doing a full build (tns run/build) and not previewing (tns preview)
236 | if (!externals || externals.length === 0) {
237 | config.plugins.push(new CopyWebpackPlugin([
238 | {
239 | from: `${appResourcesFullPath}/${appResourcesPlatformDir}`,
240 | to: `${dist}/App_Resources/${appResourcesPlatformDir}`,
241 | context: projectRoot
242 | },
243 | ]));
244 | }
245 |
246 | if (report) {
247 | // Generate report files for bundles content
248 | config.plugins.push(new BundleAnalyzerPlugin({
249 | analyzerMode: "static",
250 | openAnalyzer: false,
251 | generateStatsFile: true,
252 | reportFilename: resolve(projectRoot, "report", `report.html`),
253 | statsFilename: resolve(projectRoot, "report", `stats.json`),
254 | }));
255 | }
256 |
257 | if (snapshot) {
258 | config.plugins.push(new nsWebpack.NativeScriptSnapshotPlugin({
259 | chunk: "vendor",
260 | requireModules: [
261 | "tns-core-modules/bundle-entry-points",
262 | ],
263 | projectRoot,
264 | webpackConfig: config,
265 | }));
266 | }
267 |
268 | if (hmr) {
269 | config.plugins.push(new webpack.HotModuleReplacementPlugin());
270 | }
271 |
272 |
273 | return config;
274 | };
275 |
--------------------------------------------------------------------------------
/docs/themes.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanaelA/nativescript-themes/4d99dce11e979a2a7724aadf83e6ca173b2d93d3/docs/themes.gif
--------------------------------------------------------------------------------
/src/.npmignore:
--------------------------------------------------------------------------------
1 | demo/
2 | .git/
3 | .gitignore
4 | .idea/
5 | docs/
6 | .npmignore
7 | *.tgz
8 | *.tar
9 | node_modules
--------------------------------------------------------------------------------
/src/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2015-2019, Nathanael Anderson
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
23 |
--------------------------------------------------------------------------------
/src/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # NativeScript-Themes
4 |
5 |
6 | 
7 |
8 | This version is completely unsupported and untested on NativeScript 6. Please upgrade your plugin to the tested, supported and maintained version.
9 |
10 | Documentation for this plugin is located at here
--------------------------------------------------------------------------------
/src/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "nativescript-themes",
3 | "version": "2.0.2",
4 | "description": "A NativeScript plugin to deal with Themes in the Declarative UI.",
5 | "main": "themes.js",
6 | "nativescript": {
7 | "platforms": {
8 | "android": "5.0.0",
9 | "ios": "5.0.0"
10 | },
11 | "plugin": {
12 | "pan": "true",
13 | "core3": "false",
14 | "core4": "true",
15 | "category": "Interface"
16 | }
17 | },
18 | "repository": {
19 | "type": "git",
20 | "url": "https://git.proplugins.org/proplugins/nativescript-themes.git"
21 | },
22 | "keywords": [
23 | "NativeScript",
24 | "themes",
25 | "ui",
26 | "landscape",
27 | "ios",
28 | "android",
29 | "colors"
30 | ],
31 | "author": {
32 | "name": "Nathanael Anderson",
33 | "email": "nathan@master-technology.com"
34 | },
35 | "contributors": [
36 | {
37 | "email": "bradwaynemartin@gmail.com",
38 | "url": "https://github.com/bradmartin",
39 | "name": "Brad Martin"
40 | },
41 | {
42 | "email": "tralves@gmail.com",
43 | "url": "https://github.com/tralves",
44 | "name": "Tiago Alves"
45 | }
46 | ],
47 | "license": {
48 | "type": "MIT",
49 | "url": "https://git.proplugins.org/proplugins/nativescript-themes/blob/master/LICENSE"
50 | },
51 | "bugs": {
52 | "url": "https://git.proplugins.org/proplugins/nativescript-themes/issues"
53 | },
54 | "homepage": "https://git.proplugins.org/proplugins/nativescript-themes",
55 | "readmeFilename": "README.md",
56 | "scripts": {
57 | "postinstall": "node postinstall.js || echo \"ignore\""
58 | },
59 | "devDependencies": {
60 | "prettier": "~1.16.4",
61 | "tns-core-modules": "~5.3.1",
62 | "tns-platform-declarations": "~5.3.1",
63 | "typescript": "~3.1.6"
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/src/postinstall.js:
--------------------------------------------------------------------------------
1 |
2 | // Get the defaults
3 | const PROPLUGINS = isenv(process.env.PROPLUGINS);
4 | const plugin_name = process.env.npm_package_name || 'Unknown';
5 | const CI = isenv(process.env.CI);
6 | const COLOR = CI ? false : isenv(process.env.npm_config_color);
7 |
8 | function isenv(val) {
9 | return !!val && val !== '0' && val !== 'false';
10 | }
11 |
12 | function log(value) {
13 | console.log(COLOR ? value : value.replace(/\u001B\[[\d|1;\d]+m/g, ''));
14 | }
15 |
16 | function padr(value, size) {
17 | while(value.length < size) {
18 | value += ' ';
19 | }
20 | return value;
21 | }
22 |
23 | function padc(value, size) {
24 | while(value.length < size) {
25 | value = ' ' + value + ' ';
26 | }
27 | return value.substr(0, size);
28 | }
29 |
30 |
31 | function highlight(value, color) {
32 | if (color == null) { color = "33"; }
33 | return "\u001B["+color+"m"+value+"\u001B[37m";
34 | }
35 |
36 | if (!PROPLUGINS) {
37 | if (COLOR) { console.log('\x07'); }
38 | log('\n\u001B[37m\u001B[1;41m--------------------------------[ \u001B[5m\u001B[33mWARNING\u001B[0m\u001B[1;41m\u001B[37m ]------------------------------------\u001B[0m');
39 | log('\u001B[37m\u001B[1;41m'+padr('- '+highlight(plugin_name)+' is DEPRECATED and is not maintained!', 88)+'-\u001B[0m');
40 | log('\u001B[37m\u001B[1;41m'+padr('- This plugin has NOT been tested in NS 6.x, and is likely to crash or fail!', 78)+'-\u001B[0m');
41 | log('\u001B[37m\u001B[1;41m'+padr('- ', 78)+'-\u001B[0m');
42 | log('\u001B[37m\u001B[1;41m'+padr('- Please switch to the supported, tested, and maintained version:', 78)+'-\u001B[0m');
43 | log('\u001B[37m\u001B[1;41m-'+padc(highlight('@proplugins/'+plugin_name), 87)+'-\u001B[0m');
44 | log('\u001B[37m\u001B[1;41m'+padr('- ', 78)+'-\u001B[0m');
45 | log('\u001B[37m\u001B[1;41m'+padr('- For more information see '+highlight('https://proplugins.org/upgrade'), 88)+'-\u001B[0m');
46 | log('\u001B[37m\u001B[1;41m-------------------------------------------------------------------------------\u001B[0m\n');
47 |
48 | if (!COLOR) {
49 | // console.log("\u001B[0m");
50 | }
51 |
52 | delay();
53 | }
54 |
55 | async function delay() {
56 | await new Promise( (resolve) => { setTimeout(resolve, 5000); } );
57 | }
58 |
59 |
--------------------------------------------------------------------------------
/src/themes.js:
--------------------------------------------------------------------------------
1 | /**********************************************************************************
2 | * (c) 2016-2019, Master Technology
3 | * Licensed under the MIT license or contact me for a Support or Commercial License
4 | *
5 | * I do contract work in most languages, so let me solve your problems!
6 | *
7 | * Any questions please feel free to email me or put a issue up on the github repo
8 | * Version 3.0.1 Nathan@master-technology.com
9 | *********************************************************************************/
10 | // @ts-check
11 |
12 | 'use strict';
13 |
14 | /* jshint camelcase: false */
15 | /* global UIDevice, UIDeviceOrientation, getElementsByTagName, android */
16 |
17 | const fs = require('tns-core-modules/file-system');
18 | const fsa = require('tns-core-modules/file-system/file-system-access').FileSystemAccess;
19 | const frameCommon = require('tns-core-modules/ui/frame/frame-common');
20 | const appSettings = require('tns-core-modules/application-settings');
21 | const application = require('tns-core-modules/application');
22 | const StyleScope = require('tns-core-modules/ui/styling/style-scope');
23 |
24 | let _priorTheme = '!!NO_THEME_LOADED!!';
25 |
26 | // This allows some basic CSS to propogate properly from the frame; but not the localStyles CSS. See bug NativeScript#5911 & #5912
27 | // if (!frameCommon.FrameBase.prototype.eachChild) {
28 | // frameCommon.FrameBase.prototype.eachChild = frameCommon.FrameBase.prototype.eachChildView;
29 | // }
30 |
31 | const Themes = function() {
32 | this._curAppPath = fs.knownFolders.currentApp().path + '/';
33 | };
34 |
35 | Themes.prototype.getAppliedTheme = function(defaultTheme) {
36 | defaultTheme = defaultTheme || '';
37 |
38 | if (appSettings.hasKey('__NS.themes')) {
39 | const theme = appSettings.getString('__NS.themes', defaultTheme);
40 | if (theme == null || theme === '') {
41 | return defaultTheme;
42 | }
43 | return theme;
44 | }
45 | return defaultTheme;
46 | };
47 |
48 | Themes.prototype.applyTheme = function(cssFile, options) {
49 | if (!cssFile) {
50 | return;
51 | }
52 | if (!application.hasLaunched()) {
53 | const self = this;
54 | const applyTheme = function() {
55 | internalLoadCssFile(cssFile, self._curAppPath);
56 | if (!(options && options.noSave)) {
57 | appSettings.setString('__NS.themes', cssFile);
58 | }
59 | application.off('loadAppCss', applyTheme);
60 | };
61 |
62 | application.on('loadAppCss', applyTheme);
63 | return;
64 | }
65 |
66 | internalLoadCssFile(cssFile, this._curAppPath);
67 | if (!(options && options.noSave)) {
68 | appSettings.setString('__NS.themes', cssFile);
69 | }
70 | };
71 |
72 | Themes.prototype.applyThemeCss = function(textCss, cssFileName) {
73 | internalLoadCss(textCss, cssFileName);
74 | };
75 |
76 | /**
77 | * Set the theme .css file
78 | * @param cssFile - css file to load
79 | * @param path - application path
80 | */
81 | function internalLoadCssFile(cssFile, path) {
82 | const FSA = new fsa();
83 | let cssFileName = cssFile;
84 |
85 | if (cssFileName.startsWith('~/')) {
86 | cssFileName = fs.path.join(path, cssFileName.replace('~/', ''));
87 | } else if (cssFileName.startsWith('./')) {
88 | cssFileName = cssFileName.substring(2);
89 | }
90 |
91 | if (!cssFileName.startsWith(path)) {
92 | cssFileName = fs.path.join(path, cssFileName);
93 | }
94 |
95 | let textCss = '';
96 |
97 | // Load the new Selectors
98 | if (cssFileName && FSA.fileExists(cssFileName)) {
99 | const file = fs.File.fromPath(cssFileName);
100 | textCss = file.readTextSync();
101 | }
102 |
103 | internalLoadCss(textCss, cssFileName);
104 | }
105 |
106 | function internalLoadCss(textCss, cssFileName) {
107 | if (!frameCommon.topmost()) {
108 | setTimeout(function() {
109 | internalLoadCss(textCss, cssFileName);
110 | }, 50);
111 | return;
112 | }
113 |
114 | // Remove old Selectors
115 | let changed = StyleScope.removeTaggedAdditionalCSS(_priorTheme);
116 |
117 | if (textCss) {
118 | // Add new Selectors
119 | StyleScope.addTaggedAdditionalCSS(textCss, cssFileName);
120 |
121 | changed = true;
122 | _priorTheme = cssFileName;
123 | }
124 |
125 | if (changed) {
126 | const rootView = application.getRootView();
127 | if (rootView) {
128 | if (rootView._styleScope) {
129 | rootView._styleScope._localCssSelectorVersion++;
130 | rootView._styleScope.ensureSelectors();
131 | rootView._onCssStateChange();
132 | }
133 | const backStack = rootView.backStack;
134 | if (backStack) {
135 | for (let i = 0; i < backStack.length; i++) {
136 | const page = backStack[i].resolvedPage;
137 | if (page) {
138 | //page._onCssStateChange();
139 | // I suspect this method is probably safer; but the above actually does work...
140 | page.on('navigatingTo', updatedCSSState);
141 | }
142 | }
143 | }
144 |
145 | const frame = frameCommon.topmost();
146 | const page = frame && frame.currentPage;
147 | if (page) {
148 | page._onCssStateChange();
149 | }
150 | }
151 | }
152 | }
153 |
154 | function updatedCSSState(args) {
155 | const page = args.object;
156 | page._onCssStateChange();
157 | page.off('navigatingTo', updatedCSSState);
158 | }
159 |
160 | // Export the theme system
161 | module.exports = new Themes();
162 |
--------------------------------------------------------------------------------
/src/unmaintained.svg:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
--------------------------------------------------------------------------------