@medway-ui/native 1.1.2 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/components/Alert.js +5 -4
- package/lib/commonjs/components/Alert.js.map +1 -1
- package/lib/commonjs/components/Avatar.js +2 -1
- package/lib/commonjs/components/Avatar.js.map +1 -1
- package/lib/commonjs/components/Badge.js +2 -1
- package/lib/commonjs/components/Badge.js.map +1 -1
- package/lib/commonjs/components/Button.js +3 -2
- package/lib/commonjs/components/Button.js.map +1 -1
- package/lib/commonjs/components/CardNews.js +7 -6
- package/lib/commonjs/components/CardNews.js.map +1 -1
- package/lib/commonjs/components/Carousel.js +122 -0
- package/lib/commonjs/components/Carousel.js.map +1 -0
- package/lib/commonjs/components/Checkbox.js +11 -2
- package/lib/commonjs/components/Checkbox.js.map +1 -1
- package/lib/commonjs/components/DropdownMenu.js +225 -0
- package/lib/commonjs/components/DropdownMenu.js.map +1 -0
- package/lib/commonjs/components/EmptyState.js +19 -20
- package/lib/commonjs/components/EmptyState.js.map +1 -1
- package/lib/commonjs/components/Feed.js +82 -0
- package/lib/commonjs/components/Feed.js.map +1 -0
- package/lib/commonjs/components/FeedNotice.js +76 -0
- package/lib/commonjs/components/FeedNotice.js.map +1 -0
- package/lib/commonjs/components/Input.js +21 -9
- package/lib/commonjs/components/Input.js.map +1 -1
- package/lib/commonjs/components/InvitePopover.js +196 -0
- package/lib/commonjs/components/InvitePopover.js.map +1 -0
- package/lib/commonjs/components/Label.js +2 -1
- package/lib/commonjs/components/Label.js.map +1 -1
- package/lib/commonjs/components/LeaderboardCard.js +58 -0
- package/lib/commonjs/components/LeaderboardCard.js.map +1 -0
- package/lib/commonjs/components/MemberRow.js +131 -0
- package/lib/commonjs/components/MemberRow.js.map +1 -0
- package/lib/commonjs/components/PageHeader.js +3 -2
- package/lib/commonjs/components/PageHeader.js.map +1 -1
- package/lib/commonjs/components/PostForm.js +182 -0
- package/lib/commonjs/components/PostForm.js.map +1 -0
- package/lib/commonjs/components/PrizeCollection.js +135 -0
- package/lib/commonjs/components/PrizeCollection.js.map +1 -0
- package/lib/commonjs/components/RadioGroup.js +22 -0
- package/lib/commonjs/components/RadioGroup.js.map +1 -1
- package/lib/commonjs/components/SectionHeader.js +36 -0
- package/lib/commonjs/components/SectionHeader.js.map +1 -0
- package/lib/commonjs/components/Switch.js +33 -19
- package/lib/commonjs/components/Switch.js.map +1 -1
- package/lib/commonjs/components/Tabs.js +156 -0
- package/lib/commonjs/components/Tabs.js.map +1 -0
- package/lib/commonjs/components/Tag.js +2 -1
- package/lib/commonjs/components/Tag.js.map +1 -1
- package/lib/commonjs/components/Text.js +60 -0
- package/lib/commonjs/components/Text.js.map +1 -0
- package/lib/commonjs/components/Toast.js +3 -2
- package/lib/commonjs/components/Toast.js.map +1 -1
- package/lib/commonjs/components/Tooltip.js +2 -2
- package/lib/commonjs/components/Tooltip.js.map +1 -1
- package/lib/commonjs/editor/NoteEditor.js +710 -0
- package/lib/commonjs/editor/NoteEditor.js.map +1 -0
- package/lib/commonjs/editor/editorHtml.generated.js +21 -0
- package/lib/commonjs/editor/editorHtml.generated.js.map +1 -0
- package/lib/commonjs/editor/index.js +33 -0
- package/lib/commonjs/editor/index.js.map +1 -0
- package/lib/commonjs/editor/protocol.js +88 -0
- package/lib/commonjs/editor/protocol.js.map +1 -0
- package/lib/commonjs/hooks/useThemeColor.js +66 -29
- package/lib/commonjs/hooks/useThemeColor.js.map +1 -1
- package/lib/commonjs/index.js +319 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/lib/overlay-host.js +101 -0
- package/lib/commonjs/lib/overlay-host.js.map +1 -0
- package/lib/commonjs/lib/typography.js +26 -0
- package/lib/commonjs/lib/typography.js.map +1 -0
- package/lib/commonjs/nativewind-env.d.js +0 -1
- package/lib/commonjs/nativewind-env.d.js.map +1 -1
- package/lib/module/components/Alert.js +3 -2
- package/lib/module/components/Alert.js.map +1 -1
- package/lib/module/components/Avatar.js +2 -1
- package/lib/module/components/Avatar.js.map +1 -1
- package/lib/module/components/Badge.js +2 -1
- package/lib/module/components/Badge.js.map +1 -1
- package/lib/module/components/Button.js +2 -1
- package/lib/module/components/Button.js.map +1 -1
- package/lib/module/components/CardNews.js +2 -1
- package/lib/module/components/CardNews.js.map +1 -1
- package/lib/module/components/Carousel.js +117 -0
- package/lib/module/components/Carousel.js.map +1 -0
- package/lib/module/components/Checkbox.js +12 -2
- package/lib/module/components/Checkbox.js.map +1 -1
- package/lib/module/components/DropdownMenu.js +216 -0
- package/lib/module/components/DropdownMenu.js.map +1 -0
- package/lib/module/components/EmptyState.js +19 -20
- package/lib/module/components/EmptyState.js.map +1 -1
- package/lib/module/components/Feed.js +77 -0
- package/lib/module/components/Feed.js.map +1 -0
- package/lib/module/components/FeedNotice.js +73 -0
- package/lib/module/components/FeedNotice.js.map +1 -0
- package/lib/module/components/Input.js +21 -9
- package/lib/module/components/Input.js.map +1 -1
- package/lib/module/components/InvitePopover.js +183 -0
- package/lib/module/components/InvitePopover.js.map +1 -0
- package/lib/module/components/Label.js +2 -1
- package/lib/module/components/Label.js.map +1 -1
- package/lib/module/components/LeaderboardCard.js +53 -0
- package/lib/module/components/LeaderboardCard.js.map +1 -0
- package/lib/module/components/MemberRow.js +127 -0
- package/lib/module/components/MemberRow.js.map +1 -0
- package/lib/module/components/PageHeader.js +2 -1
- package/lib/module/components/PageHeader.js.map +1 -1
- package/lib/module/components/PostForm.js +174 -0
- package/lib/module/components/PostForm.js.map +1 -0
- package/lib/module/components/PrizeCollection.js +127 -0
- package/lib/module/components/PrizeCollection.js.map +1 -0
- package/lib/module/components/RadioGroup.js +21 -1
- package/lib/module/components/RadioGroup.js.map +1 -1
- package/lib/module/components/SectionHeader.js +33 -0
- package/lib/module/components/SectionHeader.js.map +1 -0
- package/lib/module/components/Switch.js +34 -20
- package/lib/module/components/Switch.js.map +1 -1
- package/lib/module/components/Tabs.js +148 -0
- package/lib/module/components/Tabs.js.map +1 -0
- package/lib/module/components/Tag.js +2 -1
- package/lib/module/components/Tag.js.map +1 -1
- package/lib/module/components/Text.js +58 -0
- package/lib/module/components/Text.js.map +1 -0
- package/lib/module/components/Toast.js +2 -1
- package/lib/module/components/Toast.js.map +1 -1
- package/lib/module/components/Tooltip.js +1 -1
- package/lib/module/components/Tooltip.js.map +1 -1
- package/lib/module/editor/NoteEditor.js +705 -0
- package/lib/module/editor/NoteEditor.js.map +1 -0
- package/lib/module/editor/editorHtml.generated.js +17 -0
- package/lib/module/editor/editorHtml.generated.js.map +1 -0
- package/lib/module/editor/index.js +5 -0
- package/lib/module/editor/index.js.map +1 -0
- package/lib/module/editor/protocol.js +83 -0
- package/lib/module/editor/protocol.js.map +1 -0
- package/lib/module/hooks/useThemeColor.js +66 -31
- package/lib/module/hooks/useThemeColor.js.map +1 -1
- package/lib/module/index.js +33 -3
- package/lib/module/index.js.map +1 -1
- package/lib/module/lib/overlay-host.js +96 -0
- package/lib/module/lib/overlay-host.js.map +1 -0
- package/lib/module/lib/typography.js +22 -0
- package/lib/module/lib/typography.js.map +1 -0
- package/lib/module/nativewind-env.d.js +0 -1
- package/lib/module/nativewind-env.d.js.map +1 -1
- package/lib/typescript/components/Alert.d.ts.map +1 -1
- package/lib/typescript/components/Avatar.d.ts.map +1 -1
- package/lib/typescript/components/Badge.d.ts.map +1 -1
- package/lib/typescript/components/Button.d.ts.map +1 -1
- package/lib/typescript/components/CardNews.d.ts.map +1 -1
- package/lib/typescript/components/Carousel.d.ts +29 -0
- package/lib/typescript/components/Carousel.d.ts.map +1 -0
- package/lib/typescript/components/Checkbox.d.ts.map +1 -1
- package/lib/typescript/components/DropdownMenu.d.ts +39 -0
- package/lib/typescript/components/DropdownMenu.d.ts.map +1 -0
- package/lib/typescript/components/EmptyState.d.ts +1 -1
- package/lib/typescript/components/EmptyState.d.ts.map +1 -1
- package/lib/typescript/components/Feed.d.ts +22 -0
- package/lib/typescript/components/Feed.d.ts.map +1 -0
- package/lib/typescript/components/FeedNotice.d.ts +17 -0
- package/lib/typescript/components/FeedNotice.d.ts.map +1 -0
- package/lib/typescript/components/Input.d.ts +3 -2
- package/lib/typescript/components/Input.d.ts.map +1 -1
- package/lib/typescript/components/InvitePopover.d.ts +46 -0
- package/lib/typescript/components/InvitePopover.d.ts.map +1 -0
- package/lib/typescript/components/Label.d.ts.map +1 -1
- package/lib/typescript/components/LeaderboardCard.d.ts +16 -0
- package/lib/typescript/components/LeaderboardCard.d.ts.map +1 -0
- package/lib/typescript/components/MemberRow.d.ts +40 -0
- package/lib/typescript/components/MemberRow.d.ts.map +1 -0
- package/lib/typescript/components/PageHeader.d.ts.map +1 -1
- package/lib/typescript/components/PostForm.d.ts +50 -0
- package/lib/typescript/components/PostForm.d.ts.map +1 -0
- package/lib/typescript/components/PrizeCollection.d.ts +35 -0
- package/lib/typescript/components/PrizeCollection.d.ts.map +1 -0
- package/lib/typescript/components/RadioGroup.d.ts +10 -2
- package/lib/typescript/components/RadioGroup.d.ts.map +1 -1
- package/lib/typescript/components/SectionHeader.d.ts +12 -0
- package/lib/typescript/components/SectionHeader.d.ts.map +1 -0
- package/lib/typescript/components/Switch.d.ts.map +1 -1
- package/lib/typescript/components/Tabs.d.ts +32 -0
- package/lib/typescript/components/Tabs.d.ts.map +1 -0
- package/lib/typescript/components/Tag.d.ts.map +1 -1
- package/lib/typescript/components/Text.d.ts +23 -0
- package/lib/typescript/components/Text.d.ts.map +1 -0
- package/lib/typescript/components/Toast.d.ts +1 -1
- package/lib/typescript/components/Toast.d.ts.map +1 -1
- package/lib/typescript/components/Tooltip.d.ts.map +1 -1
- package/lib/typescript/editor/NoteEditor.d.ts +82 -0
- package/lib/typescript/editor/NoteEditor.d.ts.map +1 -0
- package/lib/typescript/editor/editorHtml.generated.d.ts +13 -0
- package/lib/typescript/editor/editorHtml.generated.d.ts.map +1 -0
- package/lib/typescript/editor/index.d.ts +6 -0
- package/lib/typescript/editor/index.d.ts.map +1 -0
- package/lib/typescript/editor/protocol.d.ts +153 -0
- package/lib/typescript/editor/protocol.d.ts.map +1 -0
- package/lib/typescript/hooks/useThemeColor.d.ts +4 -2
- package/lib/typescript/hooks/useThemeColor.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +28 -4
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/lib/overlay-host.d.ts +23 -0
- package/lib/typescript/lib/overlay-host.d.ts.map +1 -0
- package/lib/typescript/lib/typography.d.ts +12 -0
- package/lib/typescript/lib/typography.d.ts.map +1 -0
- package/package.json +36 -3
- package/setup/MedwayUiProvider.tsx +15 -3
- package/setup/metro.js +27 -5
- package/setup/tailwind.js +52 -4
- package/setup/tokens.native.css +8 -3
- package/src/components/Alert.tsx +4 -2
- package/src/components/Avatar.tsx +3 -1
- package/src/components/Badge.tsx +3 -1
- package/src/components/Button.tsx +3 -7
- package/src/components/CardNews.tsx +2 -1
- package/src/components/Carousel.tsx +152 -0
- package/src/components/Checkbox.tsx +14 -4
- package/src/components/DropdownMenu.tsx +312 -0
- package/src/components/EmptyState.tsx +21 -23
- package/src/components/Feed.tsx +96 -0
- package/src/components/FeedNotice.tsx +112 -0
- package/src/components/Input.tsx +11 -6
- package/src/components/InvitePopover.tsx +240 -0
- package/src/components/Label.tsx +3 -1
- package/src/components/LeaderboardCard.tsx +70 -0
- package/src/components/MemberRow.tsx +157 -0
- package/src/components/PageHeader.tsx +3 -1
- package/src/components/PostForm.tsx +250 -0
- package/src/components/PrizeCollection.tsx +190 -0
- package/src/components/RadioGroup.tsx +32 -3
- package/src/components/SectionHeader.tsx +45 -0
- package/src/components/Switch.tsx +65 -59
- package/src/components/Tabs.tsx +182 -0
- package/src/components/Tag.tsx +3 -1
- package/src/components/Text.tsx +66 -0
- package/src/components/Toast.tsx +3 -1
- package/src/components/Tooltip.tsx +2 -1
- package/src/editor/NoteEditor.tsx +802 -0
- package/src/editor/editorHtml.generated.ts +14 -0
- package/src/editor/index.ts +13 -0
- package/src/editor/protocol.ts +184 -0
- package/src/hooks/useThemeColor.ts +77 -32
- package/src/index.ts +153 -6
- package/src/lib/overlay-host.tsx +102 -0
- package/src/lib/typography.ts +21 -0
- package/src/nativewind-env.d.ts +2 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["EDITOR_HTML","exports"],"sourceRoot":"../../../src","sources":["editor/editorHtml.generated.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,MAAMA,WAAmB,GAAAC,OAAA,CAAAD,WAAA,GAAG,i5haAAi5ha","ignoreList":[]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "EDITOR_PROTOCOL_VERSION", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _protocol.EDITOR_PROTOCOL_VERSION;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "EDITOR_RECEIVE_HANDLER", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _protocol.EDITOR_RECEIVE_HANDLER;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "NoteEditor", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () {
|
|
21
|
+
return _NoteEditor.default;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, "isEditorMessage", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function () {
|
|
27
|
+
return _protocol.isEditorMessage;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
var _NoteEditor = _interopRequireDefault(require("./NoteEditor.js"));
|
|
31
|
+
var _protocol = require("./protocol.js");
|
|
32
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
33
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_NoteEditor","_interopRequireDefault","require","_protocol","e","__esModule","default"],"sourceRoot":"../../../src","sources":["editor/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAIA,IAAAC,SAAA,GAAAD,OAAA;AAIoB,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.isEditorMessage = exports.EDITOR_RECEIVE_HANDLER = exports.EDITOR_PROTOCOL_VERSION = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* Transport between React Native and the Tiptap editor inside the WebView. Both
|
|
9
|
+
* sides compile against this file — the bundle imports it through the `@/`
|
|
10
|
+
* alias in `editor-bundle/vite.config.ts`.
|
|
11
|
+
*
|
|
12
|
+
* Invariants:
|
|
13
|
+
* - The document never crosses the bridge on keystrokes: the editor emits
|
|
14
|
+
* `change` with a revision counter, and the native side asks with
|
|
15
|
+
* `getDocument`.
|
|
16
|
+
* - Every message is validated on arrival (`isEditorMessage`: envelope plus the
|
|
17
|
+
* required fields of its variant) — the WebView renders student content, so
|
|
18
|
+
* its output is untrusted input. Documents get a second pass through
|
|
19
|
+
* `normalizeDocument` before reaching the host.
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Bumped whenever the message shapes below change. The native side refuses to
|
|
24
|
+
* talk to a bundle that reports a different version, which turns a stale
|
|
25
|
+
* `editorHtml.generated.ts` into a clear error instead of silent breakage.
|
|
26
|
+
*/
|
|
27
|
+
const EDITOR_PROTOCOL_VERSION = exports.EDITOR_PROTOCOL_VERSION = 3;
|
|
28
|
+
|
|
29
|
+
/** Name of the global the WebView bundle installs to receive native messages. */
|
|
30
|
+
const EDITOR_RECEIVE_HANDLER = exports.EDITOR_RECEIVE_HANDLER = '__medwayNoteEditorReceive';
|
|
31
|
+
const isRecord = value => typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
32
|
+
const isString = value => typeof value === 'string';
|
|
33
|
+
|
|
34
|
+
/** Rejects `NaN` and the infinities, which `JSON.parse` can still produce. */
|
|
35
|
+
const isFiniteNumber = value => typeof value === 'number' && Number.isFinite(value);
|
|
36
|
+
|
|
37
|
+
/*
|
|
38
|
+
* `Record<Union, …>` rather than an array so it is exhaustive: adding a variant
|
|
39
|
+
* to `EditorToNativeMessage` without listing it here stops compiling, instead
|
|
40
|
+
* of letting `isEditorMessage` reject the new type at runtime — which would
|
|
41
|
+
* look like the message never arrived, not like a build error.
|
|
42
|
+
*
|
|
43
|
+
* Each entry checks the fields its own variant declares, so narrowing to the
|
|
44
|
+
* union is backed by the payload and not by `type` alone: a `document` without
|
|
45
|
+
* `doc`/`requestId`, or a `ready` without `protocol`, is rejected here instead
|
|
46
|
+
* of blowing up at the use site.
|
|
47
|
+
*
|
|
48
|
+
* `state`, `slash` and `doc` are checked as objects rather than field by field:
|
|
49
|
+
* their shapes belong to `@medway-ui/notes-core` and are validated there — for
|
|
50
|
+
* `doc`, by the `normalizeDocument` pass the native side runs before handing a
|
|
51
|
+
* document to the host.
|
|
52
|
+
*/
|
|
53
|
+
const EDITOR_MESSAGE_VALIDATORS = {
|
|
54
|
+
ready: message => isFiniteNumber(message.protocol),
|
|
55
|
+
state: message => isRecord(message.state),
|
|
56
|
+
change: message => isFiniteNumber(message.revision),
|
|
57
|
+
document: message => isString(message.requestId) && isFiniteNumber(message.revision) && isRecord(message.doc),
|
|
58
|
+
slash: message => isRecord(message.slash),
|
|
59
|
+
resize: message => isFiniteNumber(message.height),
|
|
60
|
+
linkPress: message => isString(message.href),
|
|
61
|
+
backspaceAtDocStart: () => true,
|
|
62
|
+
imageRemoved: message => isString(message.src),
|
|
63
|
+
error: message => isString(message.message)
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Guard for anything arriving from the WebView: checks the envelope *and* the
|
|
68
|
+
* required fields of the variant its `type` names. Establishes the shape, not
|
|
69
|
+
* the contents — a `document` payload's `doc` still goes through
|
|
70
|
+
* `normalizeDocument` before the native side hands it to the host.
|
|
71
|
+
*/
|
|
72
|
+
const isEditorMessage = value => {
|
|
73
|
+
if (!isRecord(value)) return false;
|
|
74
|
+
const {
|
|
75
|
+
type
|
|
76
|
+
} = value;
|
|
77
|
+
if (typeof type !== 'string') return false;
|
|
78
|
+
|
|
79
|
+
// `hasOwnProperty`, not `in`: `in` walks the prototype chain, so a `type` of
|
|
80
|
+
// `"toString"` or `"constructor"` matches any plain object literal.
|
|
81
|
+
// `Object.hasOwn` would read better but is ES2022 and `lib` here is ES2020.
|
|
82
|
+
if (!Object.prototype.hasOwnProperty.call(EDITOR_MESSAGE_VALIDATORS, type)) {
|
|
83
|
+
return false;
|
|
84
|
+
}
|
|
85
|
+
return EDITOR_MESSAGE_VALIDATORS[type](value);
|
|
86
|
+
};
|
|
87
|
+
exports.isEditorMessage = isEditorMessage;
|
|
88
|
+
//# sourceMappingURL=protocol.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["EDITOR_PROTOCOL_VERSION","exports","EDITOR_RECEIVE_HANDLER","isRecord","value","Array","isArray","isString","isFiniteNumber","Number","isFinite","EDITOR_MESSAGE_VALIDATORS","ready","message","protocol","state","change","revision","document","requestId","doc","slash","resize","height","linkPress","href","backspaceAtDocStart","imageRemoved","src","error","isEditorMessage","type","Object","prototype","hasOwnProperty","call"],"sourceRoot":"../../../src","sources":["editor/protocol.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAWA;AACA;AACA;AACA;AACA;AACO,MAAMA,uBAAuB,GAAAC,OAAA,CAAAD,uBAAA,GAAG,CAAC;;AAExC;AACO,MAAME,sBAAsB,GAAAD,OAAA,CAAAC,sBAAA,GAAG,2BAA2B;AAmFjE,MAAMC,QAAQ,GAAIC,KAAc,IAC9B,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,IAAI,IAAI,CAACC,KAAK,CAACC,OAAO,CAACF,KAAK,CAAC;AAEtE,MAAMG,QAAQ,GAAIH,KAAc,IAAsB,OAAOA,KAAK,KAAK,QAAQ;;AAE/E;AACA,MAAMI,cAAc,GAAIJ,KAAc,IACpC,OAAOA,KAAK,KAAK,QAAQ,IAAIK,MAAM,CAACC,QAAQ,CAACN,KAAK,CAAC;;AAErD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMO,yBAGL,GAAG;EACFC,KAAK,EAAGC,OAAO,IAAKL,cAAc,CAACK,OAAO,CAACC,QAAQ,CAAC;EACpDC,KAAK,EAAGF,OAAO,IAAKV,QAAQ,CAACU,OAAO,CAACE,KAAK,CAAC;EAC3CC,MAAM,EAAGH,OAAO,IAAKL,cAAc,CAACK,OAAO,CAACI,QAAQ,CAAC;EACrDC,QAAQ,EAAGL,OAAO,IAChBN,QAAQ,CAACM,OAAO,CAACM,SAAS,CAAC,IAC3BX,cAAc,CAACK,OAAO,CAACI,QAAQ,CAAC,IAChCd,QAAQ,CAACU,OAAO,CAACO,GAAG,CAAC;EACvBC,KAAK,EAAGR,OAAO,IAAKV,QAAQ,CAACU,OAAO,CAACQ,KAAK,CAAC;EAC3CC,MAAM,EAAGT,OAAO,IAAKL,cAAc,CAACK,OAAO,CAACU,MAAM,CAAC;EACnDC,SAAS,EAAGX,OAAO,IAAKN,QAAQ,CAACM,OAAO,CAACY,IAAI,CAAC;EAC9CC,mBAAmB,EAAEA,CAAA,KAAM,IAAI;EAC/BC,YAAY,EAAGd,OAAO,IAAKN,QAAQ,CAACM,OAAO,CAACe,GAAG,CAAC;EAChDC,KAAK,EAAGhB,OAAO,IAAKN,QAAQ,CAACM,OAAO,CAACA,OAAO;AAC9C,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACO,MAAMiB,eAAe,GAC1B1B,KAAc,IACqB;EACnC,IAAI,CAACD,QAAQ,CAACC,KAAK,CAAC,EAAE,OAAO,KAAK;EAElC,MAAM;IAAE2B;EAAK,CAAC,GAAG3B,KAAK;EACtB,IAAI,OAAO2B,IAAI,KAAK,QAAQ,EAAE,OAAO,KAAK;;EAE1C;EACA;EACA;EACA,IAAI,CAACC,MAAM,CAACC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACxB,yBAAyB,EAAEoB,IAAI,CAAC,EAAE;IAC1E,OAAO,KAAK;EACd;EAEA,OAAOpB,yBAAyB,CAACoB,IAAI,CAAkC,CACrE3B,KACF,CAAC;AACH,CAAC;AAACH,OAAA,CAAA6B,eAAA,GAAAA,eAAA","ignoreList":[]}
|
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.DEFAULT_COLOR = void 0;
|
|
7
|
+
exports.getFallbackColor = getFallbackColor;
|
|
6
8
|
exports.toCssVariable = toCssVariable;
|
|
7
9
|
exports.useThemeColor = useThemeColor;
|
|
8
10
|
var _nativewind = require("nativewind");
|
|
@@ -10,47 +12,82 @@ var _nativewind = require("nativewind");
|
|
|
10
12
|
|
|
11
13
|
/** Fallback quando NativeWind não resolve cadeias `var()` — light mode. */
|
|
12
14
|
const LIGHT_COLOR_ALIAS_MAP = {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
15
|
+
'content-title': 'primary',
|
|
16
|
+
'content-paragraph': 'gray-600',
|
|
17
|
+
'gray-foreground': 'gray-600',
|
|
18
|
+
'primary-foreground': 'primary',
|
|
19
|
+
'secondary-foreground': 'secondary-darken-3',
|
|
20
|
+
'secondary-stroke-emphasis': 'secondary-darken-1',
|
|
21
|
+
'surface-card': 'white',
|
|
22
|
+
'gray-foreground-muted': 'gray-450',
|
|
23
|
+
'gray-stroke-muted': 'gray-100',
|
|
24
|
+
'gray-background-fill-muted': 'gray-400',
|
|
25
|
+
'gray-background-soft-muted': 'gray-30',
|
|
26
|
+
'primary-foreground-onfill': 'white',
|
|
27
|
+
'primary-background-fill': 'primary',
|
|
28
|
+
'red-foreground': 'red-darken-2',
|
|
29
|
+
'go-foreground': 'go-darken-1'
|
|
25
30
|
};
|
|
26
31
|
|
|
27
32
|
/** Fallback — dark mode (espelha tokens.css `.dark`). */
|
|
28
33
|
const DARK_COLOR_ALIAS_MAP = {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
34
|
+
'content-title': 'white',
|
|
35
|
+
'content-paragraph': 'gray-150',
|
|
36
|
+
'gray-foreground': 'gray-100',
|
|
37
|
+
'primary-foreground': 'gray-100',
|
|
38
|
+
'secondary-foreground': 'secondary-lighten-1',
|
|
39
|
+
'secondary-stroke-emphasis': 'secondary',
|
|
40
|
+
'surface-card': 'gray-850',
|
|
41
|
+
'gray-foreground-muted': 'gray-150',
|
|
42
|
+
'gray-stroke-muted': 'gray-700',
|
|
43
|
+
'gray-background-fill-muted': 'gray-300',
|
|
44
|
+
'gray-background-soft-muted': 'gray-700',
|
|
45
|
+
'primary-foreground-onfill': 'primary',
|
|
46
|
+
'primary-background-fill': 'gray-70',
|
|
47
|
+
'red-foreground': 'red-lighten-3',
|
|
48
|
+
'go-foreground': 'go-lighten-5'
|
|
41
49
|
};
|
|
50
|
+
|
|
51
|
+
/** Fallback estático quando NativeWind não resolve `var(--color-*)` encadeado. */
|
|
52
|
+
const THEME_COLOR_FALLBACKS = {
|
|
53
|
+
white: '#FFFFFF',
|
|
54
|
+
primary: 'rgba(0, 32, 91, 1)',
|
|
55
|
+
'gray-600': 'rgba(49, 57, 73, 1)',
|
|
56
|
+
'gray-450': 'rgba(90, 105, 135, 1)',
|
|
57
|
+
'gray-400': 'rgba(122, 133, 151, 1)',
|
|
58
|
+
'gray-100': 'rgba(231, 233, 239, 1)',
|
|
59
|
+
'gray-30': 'rgba(249, 250, 251, 1)',
|
|
60
|
+
'gray-150': 'rgba(206, 211, 222, 1)',
|
|
61
|
+
'gray-300': 'rgba(133, 146, 173, 1)',
|
|
62
|
+
'gray-700': 'rgba(33, 38, 49, 1)',
|
|
63
|
+
'gray-850': 'rgba(16, 19, 24, 1)',
|
|
64
|
+
'gray-70': 'rgba(240, 241, 245, 1)',
|
|
65
|
+
'red-darken-2': 'rgba(182, 27, 45, 1)',
|
|
66
|
+
'red-lighten-3': 'rgba(231, 131, 142, 1)',
|
|
67
|
+
'go-darken-1': 'rgba(141, 22, 77, 1)',
|
|
68
|
+
'go-lighten-5': 'rgba(237, 187, 192, 1)',
|
|
69
|
+
'secondary-darken-1': 'rgba(7, 171, 149, 1)',
|
|
70
|
+
'secondary-darken-3': 'rgba(13, 104, 92, 1)',
|
|
71
|
+
'secondary-lighten-1': 'rgba(22, 208, 118, 1)'
|
|
72
|
+
};
|
|
73
|
+
const DEFAULT_COLOR = exports.DEFAULT_COLOR = '#3B4958';
|
|
42
74
|
function toCssVariable(token) {
|
|
43
|
-
return token.startsWith(
|
|
75
|
+
return token.startsWith('--') ? token : `--color-${token}`;
|
|
44
76
|
}
|
|
45
77
|
function toTokenName(token) {
|
|
46
|
-
return token.startsWith(
|
|
78
|
+
return token.startsWith('--color-') ? token.slice('--color-'.length) : token;
|
|
47
79
|
}
|
|
48
80
|
function toResolvedCssVariable(token, aliasMap) {
|
|
49
81
|
const tokenName = toTokenName(token);
|
|
50
82
|
return toCssVariable(aliasMap[tokenName] ?? tokenName);
|
|
51
83
|
}
|
|
52
84
|
function isResolvedColor(value) {
|
|
53
|
-
return typeof value ===
|
|
85
|
+
return typeof value === 'string' && !value.startsWith('var(');
|
|
86
|
+
}
|
|
87
|
+
function getFallbackColor(token, aliasMap) {
|
|
88
|
+
const tokenName = toTokenName(token);
|
|
89
|
+
const aliasToken = aliasMap[tokenName] ?? tokenName;
|
|
90
|
+
return THEME_COLOR_FALLBACKS[tokenName] ?? THEME_COLOR_FALLBACKS[aliasToken] ?? DEFAULT_COLOR;
|
|
54
91
|
}
|
|
55
92
|
|
|
56
93
|
/**
|
|
@@ -61,11 +98,11 @@ function useThemeColor(token) {
|
|
|
61
98
|
const {
|
|
62
99
|
colorScheme
|
|
63
100
|
} = (0, _nativewind.useColorScheme)();
|
|
64
|
-
const aliasMap = colorScheme ===
|
|
101
|
+
const aliasMap = colorScheme === 'dark' ? DARK_COLOR_ALIAS_MAP : LIGHT_COLOR_ALIAS_MAP;
|
|
65
102
|
const value = (0, _nativewind.useUnstableNativeVariable)(toCssVariable(token));
|
|
66
103
|
const resolvedValue = (0, _nativewind.useUnstableNativeVariable)(toResolvedCssVariable(token, aliasMap));
|
|
67
104
|
if (isResolvedColor(value)) return value;
|
|
68
105
|
if (isResolvedColor(resolvedValue)) return resolvedValue;
|
|
69
|
-
return
|
|
106
|
+
return getFallbackColor(token, aliasMap);
|
|
70
107
|
}
|
|
71
108
|
//# sourceMappingURL=useThemeColor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_nativewind","require","LIGHT_COLOR_ALIAS_MAP","DARK_COLOR_ALIAS_MAP","toCssVariable","token","startsWith","toTokenName","slice","length","toResolvedCssVariable","aliasMap","tokenName","isResolvedColor","value","useThemeColor","colorScheme","useColorScheme","useUnstableNativeVariable","resolvedValue"
|
|
1
|
+
{"version":3,"names":["_nativewind","require","LIGHT_COLOR_ALIAS_MAP","DARK_COLOR_ALIAS_MAP","THEME_COLOR_FALLBACKS","white","primary","DEFAULT_COLOR","exports","toCssVariable","token","startsWith","toTokenName","slice","length","toResolvedCssVariable","aliasMap","tokenName","isResolvedColor","value","getFallbackColor","aliasToken","useThemeColor","colorScheme","useColorScheme","useUnstableNativeVariable","resolvedValue"],"sourceRoot":"../../../src","sources":["hooks/useThemeColor.ts"],"mappings":"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","ignoreList":[]}
|