Compare commits

..
Author SHA1 Message Date
Stasia Michalska 79c64e5777 Bump version 2026-02-19 03:41:51 +01:00
Stasia Michalska 8ba0a2caee Add gabbro support to clay 2026-02-19 03:41:51 +01:00
clach04 904d6bca55 Update readme to clarify slider fractional values
Previous text implied negative values not allowed (they are allowed) and it wasn't clear that fractional numbers were the topic until the example.
2026-02-09 08:53:44 +01:00
6 changed files with 1066 additions and 875 deletions
+4 -3
View File
@@ -336,8 +336,8 @@ A color picker that allows users to choose a color from the ones that are compat
The color picker will automatically show a different layout depending on the watch connected:
- Aplite (Firmware 2.x) - Black and white
- Aplite (Firmware 3.x) - Black and white. Will also include gray (`#AAAAAA`) if `allowGray` is set to `true`
- Basalt/chalk - The 64 colors compatible with color Pebble smartwatches.
- Aplite/Diorite/Flint (Firmware 3.x) - Black and white. Will also include gray (`#AAAAAA`) if `allowGray` is set to `true`
- Basalt/Chalk/Emery/Gabbro - The 64 colors compatible with color Pebble smartwatches.
##### Properties
@@ -516,7 +516,7 @@ In the above example, Sushi and Burgers will be selected by default.
The range slider is used to allow users to select numbers between two values.
**NOTE** If you set the `step` property to anything less than `1`,
**NOTE** If you set the `step` property to a fractional value,
it will multiply the final value sent to the watch by 10 to the power of the number of decimal places in the value of `step`.
Eg: If you set the `step` to `0.25` and the slider has value of `34.5`, the watch will receive `3450`.
The reason why this is necessary, is because you can not send floats to the watch via `Pebble.sendAppMessage()`.
@@ -665,6 +665,7 @@ Below is the full list of capabilities
| PLATFORM_DIORITE | Running on Pebble 2 |
| PLATFORM_EMERY | Running on Core Time 2. |
| PLATFORM_FLINT | Running on Core 2 Duo. |
| PLATFORM_GABBRO | Running on Core Time Round 2 |
| BW | Running on hardware that supports only black and white. |
| COLOR | Running on hardware that supports 64 colors. |
| MICROPHONE | Running on hardware that includes a microphone. |
+966 -865
View File
File diff suppressed because it is too large Load Diff
+4 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@rebble/clay",
"version": "1.0.6",
"version": "1.0.7",
"description": "Pebble Config Framework",
"scripts": {
"test-travis": "./node_modules/.bin/gulp && ./node_modules/.bin/karma start ./test/karma.conf.js --single-run --browsers chromeTravisCI",
@@ -37,7 +37,8 @@
"chalk",
"diorite",
"emery",
"flint"
"flint",
"gabbro"
],
"resources": {
"media": []
@@ -56,7 +57,7 @@
"deamdify": "^0.2.0",
"deepcopy": "^0.6.1",
"del": "^2.0.2",
"eslint": "^9.39.2",
"eslint": "^1.5.1",
"eslint-config-pebble": "^1.2.0",
"eslint-plugin-standard": "^1.3.1",
"gulp": "^5.0.1",
+14 -4
View File
@@ -49,18 +49,23 @@ module.exports.capabilityMap = {
minFwMajor: 0,
minFwMinor: 0
},
PLATFORM_GABBRO: {
platforms: ['gabbro'],
minFwMajor: 0,
minFwMinor: 0
},
BW: {
platforms: ['aplite', 'diorite', 'flint'],
minFwMajor: 0,
minFwMinor: 0
},
COLOR: {
platforms: ['basalt', 'chalk', 'emery'],
platforms: ['basalt', 'chalk', 'emery', 'gabbro'],
minFwMajor: 0,
minFwMinor: 0
},
MICROPHONE: {
platforms: ['basalt', 'chalk', 'diorite', 'emery', 'flint'],
platforms: ['basalt', 'chalk', 'diorite', 'emery', 'flint', 'gabbro'],
minFwMajor: 0,
minFwMinor: 0
},
@@ -75,7 +80,7 @@ module.exports.capabilityMap = {
minFwMinor: 4
},
HEALTH: {
platforms: ['basalt', 'chalk', 'diorite', 'emery', 'flint'],
platforms: ['basalt', 'chalk', 'diorite', 'emery', 'flint', 'gabbro'],
minFwMajor: 3,
minFwMinor: 10
},
@@ -85,7 +90,7 @@ module.exports.capabilityMap = {
minFwMinor: 0
},
ROUND: {
platforms: ['chalk'],
platforms: ['chalk', 'gabbro'],
minFwMajor: 0,
minFwMinor: 0
},
@@ -103,6 +108,11 @@ module.exports.capabilityMap = {
platforms: ['emery'],
minFwMajor: 0,
minFwMinor: 0
},
DISPLAY_260x260_ROUND: {
platforms: ['gabbro'],
minFwMajor: 0,
minFwMinor: 0
}
};
+44
View File
@@ -456,6 +456,50 @@ describe('component - color', function() {
suffix: ''
}
});
testAutoLayout('emery', standardLayouts.COLOR, true, '', {
platform: 'emery',
model: 'qemu_platform_emery',
language: 'en_US',
firmware: {
major: 4,
minor: 0,
patch: 0,
suffix: ''
}
});
testAutoLayout('flint', standardLayouts.BLACK_WHITE, false, '', {
platform: 'flint',
model: 'qemu_platform_flint',
language: 'en_US',
firmware: {
major: 4,
minor: 0,
patch: 0,
suffix: ''
}
});
testAutoLayout('flint', standardLayouts.GRAY, true, '', {
platform: 'flint',
model: 'qemu_platform_flint',
language: 'en_US',
firmware: {
major: 4,
minor: 0,
patch: 0,
suffix: ''
}
});
testAutoLayout('gabbro', standardLayouts.COLOR, true, '', {
platform: 'gabbro',
model: 'qemu_platform_gabbro',
language: 'en_US',
firmware: {
major: 4,
minor: 0,
patch: 0,
suffix: ''
}
});
testCustomLayout();
testCustomLayout('COLOR');
+34
View File
@@ -87,12 +87,14 @@ describe('ClayConfig', function() {
testCapabilities('aplite', 2, 9, ['DISPLAY_144x168'], 1);
testCapabilities('aplite', 2, 9, ['DISPLAY_180x180_ROUND'], 0);
testCapabilities('aplite', 2, 9, ['DISPLAY_200x228'], 0);
testCapabilities('aplite', 2, 9, ['DISPLAY_260x260_ROUND'], 0);
testCapabilities('aplite', 2, 9, ['PLATFORM_APLITE'], 1);
testCapabilities('aplite', 2, 9, ['PLATFORM_BASALT'], 0);
testCapabilities('aplite', 2, 9, ['PLATFORM_CHALK'], 0);
testCapabilities('aplite', 2, 9, ['PLATFORM_DIORITE'], 0);
testCapabilities('aplite', 2, 9, ['PLATFORM_EMERY'], 0);
testCapabilities('aplite', 2, 9, ['PLATFORM_FLINT'], 0);
testCapabilities('aplite', 2, 9, ['PLATFORM_GABBRO'], 0);
testCapabilities('aplite', 3, 10, ['BW'], 1);
testCapabilities('aplite', 3, 10, ['COLOR'], 0);
@@ -108,12 +110,14 @@ describe('ClayConfig', function() {
testCapabilities('aplite', 3, 10, ['DISPLAY_144x168'], 1);
testCapabilities('aplite', 3, 10, ['DISPLAY_180x180_ROUND'], 0);
testCapabilities('aplite', 3, 10, ['DISPLAY_200x228'], 0);
testCapabilities('aplite', 3, 10, ['DISPLAY_260x260_ROUND'], 0);
testCapabilities('aplite', 3, 10, ['PLATFORM_APLITE'], 1);
testCapabilities('aplite', 3, 10, ['PLATFORM_BASALT'], 0);
testCapabilities('aplite', 3, 10, ['PLATFORM_CHALK'], 0);
testCapabilities('aplite', 3, 10, ['PLATFORM_DIORITE'], 0);
testCapabilities('aplite', 3, 10, ['PLATFORM_EMERY'], 0);
testCapabilities('aplite', 3, 10, ['PLATFORM_FLINT'], 0);
testCapabilities('aplite', 3, 10, ['PLATFORM_GABBRO'], 0);
testCapabilities('basalt', 3, 10, ['BW'], 0);
testCapabilities('basalt', 3, 10, ['COLOR'], 1);
@@ -131,12 +135,14 @@ describe('ClayConfig', function() {
testCapabilities('basalt', 3, 10, ['DISPLAY_144x168'], 1);
testCapabilities('basalt', 3, 10, ['DISPLAY_180x180_ROUND'], 0);
testCapabilities('basalt', 3, 10, ['DISPLAY_200x228'], 0);
testCapabilities('basalt', 3, 10, ['DISPLAY_260x260_ROUND'], 0);
testCapabilities('basalt', 3, 10, ['PLATFORM_APLITE'], 0);
testCapabilities('basalt', 3, 10, ['PLATFORM_BASALT'], 1);
testCapabilities('basalt', 3, 10, ['PLATFORM_CHALK'], 0);
testCapabilities('basalt', 3, 10, ['PLATFORM_DIORITE'], 0);
testCapabilities('basalt', 3, 10, ['PLATFORM_EMERY'], 0);
testCapabilities('basalt', 3, 10, ['PLATFORM_FLINT'], 0);
testCapabilities('basalt', 3, 10, ['PLATFORM_GABBRO'], 0);
testCapabilities('chalk', 3, 10, ['BW'], 0);
testCapabilities('chalk', 3, 10, ['COLOR'], 1);
@@ -154,12 +160,14 @@ describe('ClayConfig', function() {
testCapabilities('chalk', 3, 10, ['DISPLAY_144x168'], 0);
testCapabilities('chalk', 3, 10, ['DISPLAY_180x180_ROUND'], 1);
testCapabilities('chalk', 3, 10, ['DISPLAY_200x228'], 0);
testCapabilities('chalk', 3, 10, ['DISPLAY_260x260_ROUND'], 0);
testCapabilities('chalk', 3, 10, ['PLATFORM_APLITE'], 0);
testCapabilities('chalk', 3, 10, ['PLATFORM_BASALT'], 0);
testCapabilities('chalk', 3, 10, ['PLATFORM_CHALK'], 1);
testCapabilities('chalk', 3, 10, ['PLATFORM_DIORITE'], 0);
testCapabilities('chalk', 3, 10, ['PLATFORM_EMERY'], 0);
testCapabilities('chalk', 3, 10, ['PLATFORM_FLINT'], 0);
testCapabilities('chalk', 3, 10, ['PLATFORM_GABBRO'], 0);
testCapabilities('diorite', 3, 10, ['BW'], 1);
testCapabilities('diorite', 3, 10, ['COLOR'], 0);
@@ -177,12 +185,14 @@ describe('ClayConfig', function() {
testCapabilities('diorite', 3, 10, ['DISPLAY_144x168'], 1);
testCapabilities('diorite', 3, 10, ['DISPLAY_180x180_ROUND'], 0);
testCapabilities('diorite', 3, 10, ['DISPLAY_200x228'], 0);
testCapabilities('diorite', 3, 10, ['DISPLAY_260x260_ROUND'], 0);
testCapabilities('diorite', 3, 10, ['PLATFORM_APLITE'], 0);
testCapabilities('diorite', 3, 10, ['PLATFORM_BASALT'], 0);
testCapabilities('diorite', 3, 10, ['PLATFORM_CHALK'], 0);
testCapabilities('diorite', 3, 10, ['PLATFORM_DIORITE'], 1);
testCapabilities('diorite', 3, 10, ['PLATFORM_EMERY'], 0);
testCapabilities('diorite', 3, 10, ['PLATFORM_FLINT'], 0);
testCapabilities('diorite', 3, 10, ['PLATFORM_GABBRO'], 0);
testCapabilities('emery', 3, 10, ['BW'], 0);
testCapabilities('emery', 3, 10, ['COLOR'], 1);
@@ -200,12 +210,14 @@ describe('ClayConfig', function() {
testCapabilities('emery', 3, 10, ['DISPLAY_144x168'], 0);
testCapabilities('emery', 3, 10, ['DISPLAY_180x180_ROUND'], 0);
testCapabilities('emery', 3, 10, ['DISPLAY_200x228'], 1);
testCapabilities('emery', 3, 10, ['DISPLAY_260x260_ROUND'], 0);
testCapabilities('emery', 3, 10, ['PLATFORM_APLITE'], 0);
testCapabilities('emery', 3, 10, ['PLATFORM_BASALT'], 0);
testCapabilities('emery', 3, 10, ['PLATFORM_CHALK'], 0);
testCapabilities('emery', 3, 10, ['PLATFORM_DIORITE'], 0);
testCapabilities('emery', 3, 10, ['PLATFORM_EMERY'], 1);
testCapabilities('emery', 3, 10, ['PLATFORM_FLINT'], 0);
testCapabilities('emery', 3, 10, ['PLATFORM_GABBRO'], 0);
testCapabilities('flint', 3, 10, ['BW'], 1);
testCapabilities('flint', 3, 10, ['COLOR'], 0);
@@ -223,12 +235,34 @@ describe('ClayConfig', function() {
testCapabilities('flint', 3, 10, ['DISPLAY_144x168'], 1);
testCapabilities('flint', 3, 10, ['DISPLAY_180x180_ROUND'], 0);
testCapabilities('flint', 3, 10, ['DISPLAY_200x228'], 0);
testCapabilities('flint', 3, 10, ['DISPLAY_260x260_ROUND'], 0);
testCapabilities('flint', 3, 10, ['PLATFORM_APLITE'], 0);
testCapabilities('flint', 3, 10, ['PLATFORM_BASALT'], 0);
testCapabilities('flint', 3, 10, ['PLATFORM_CHALK'], 0);
testCapabilities('flint', 3, 10, ['PLATFORM_DIORITE'], 0);
testCapabilities('flint', 3, 10, ['PLATFORM_EMERY'], 0);
testCapabilities('flint', 3, 10, ['PLATFORM_FLINT'], 1);
testCapabilities('flint', 3, 10, ['PLATFORM_GABBRO'], 0);
testCapabilities('gabbro', 3, 10, ['BW'], 0);
testCapabilities('gabbro', 3, 10, ['COLOR'], 1);
testCapabilities('gabbro', 3, 10, ['MICROPHONE'], 1);
testCapabilities('gabbro', 3, 10, ['SMARTSTRAP'], 0);
testCapabilities('gabbro', 3, 10, ['SMARTSTRAP_POWER'], 0);
testCapabilities('gabbro', 3, 10, ['HEALTH'], 1);
testCapabilities('gabbro', 3, 10, ['RECT'], 0);
testCapabilities('gabbro', 3, 10, ['ROUND'], 1);
testCapabilities('gabbro', 3, 10, ['DISPLAY_144x168'], 0);
testCapabilities('gabbro', 3, 10, ['DISPLAY_180x180_ROUND'], 0);
testCapabilities('gabbro', 3, 10, ['DISPLAY_200x228'], 0);
testCapabilities('gabbro', 3, 10, ['DISPLAY_260x260_ROUND'], 1);
testCapabilities('gabbro', 3, 10, ['PLATFORM_APLITE'], 0);
testCapabilities('gabbro', 3, 10, ['PLATFORM_BASALT'], 0);
testCapabilities('gabbro', 3, 10, ['PLATFORM_CHALK'], 0);
testCapabilities('gabbro', 3, 10, ['PLATFORM_DIORITE'], 0);
testCapabilities('gabbro', 3, 10, ['PLATFORM_EMERY'], 0);
testCapabilities('gabbro', 3, 10, ['PLATFORM_FLINT'], 0);
testCapabilities('gabbro', 3, 10, ['PLATFORM_GABBRO'], 1);
testCapabilities('aplite', 3, 10, ['BW', 'HEALTH'], 0, 0);
testCapabilities('emery', 3, 10, ['COLOR', 'HEALTH'], 1);