powr-sdk-web 6.0.0 → 6.1.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.
@@ -0,0 +1,241 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.v = exports.s = exports.SIDEBAR_WIDTH = exports.NARROW_QUERY = exports.HEADER_HEIGHT = void 0;
7
+ var _tokens = require("../theme/tokens");
8
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
9
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
10
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
11
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
12
+ /**
13
+ * Shell styles. Every colour is a `--powr-*` var with today's neutral as the
14
+ * fallback — the wrapper has no palette of its own (clone-leak guardrail).
15
+ */
16
+
17
+ var v = exports.v = {
18
+ bg: (0, _tokens.powrVar)("bg", "#fafafa"),
19
+ surface: (0, _tokens.powrVar)("surface", "#ffffff"),
20
+ text: (0, _tokens.powrVar)("text", "#111827"),
21
+ muted: (0, _tokens.powrVar)("muted", "#6b7280"),
22
+ border: (0, _tokens.powrVar)("border", "#e5e7eb"),
23
+ primary: (0, _tokens.powrVar)("primary", "#2563eb"),
24
+ primaryFg: (0, _tokens.powrVar)("primary-fg", "#ffffff"),
25
+ danger: (0, _tokens.powrVar)("danger", "#dc2626"),
26
+ radius: (0, _tokens.powrVar)("radius", "0.5rem"),
27
+ font: (0, _tokens.powrVar)("font", "system-ui, -apple-system, Segoe UI, Roboto, sans-serif")
28
+ };
29
+ var SIDEBAR_WIDTH = exports.SIDEBAR_WIDTH = 240;
30
+ var HEADER_HEIGHT = exports.HEADER_HEIGHT = 56;
31
+ var NARROW_QUERY = exports.NARROW_QUERY = "(max-width: 900px)";
32
+ var s = exports.s = {
33
+ root: {
34
+ minHeight: "100vh",
35
+ display: "flex",
36
+ flexDirection: "column",
37
+ background: v.bg,
38
+ color: v.text,
39
+ fontFamily: v.font
40
+ },
41
+ header: {
42
+ position: "sticky",
43
+ top: 0,
44
+ zIndex: 40,
45
+ height: HEADER_HEIGHT,
46
+ display: "flex",
47
+ alignItems: "center",
48
+ gap: 16,
49
+ padding: "0 16px",
50
+ borderBottom: "1px solid ".concat(v.border),
51
+ background: v.surface
52
+ },
53
+ brand: {
54
+ display: "inline-flex",
55
+ alignItems: "center",
56
+ gap: 8,
57
+ fontWeight: 700,
58
+ fontSize: 16,
59
+ color: v.text,
60
+ textDecoration: "none",
61
+ whiteSpace: "nowrap"
62
+ },
63
+ headerNav: {
64
+ display: "flex",
65
+ alignItems: "center",
66
+ gap: 4,
67
+ marginLeft: 8
68
+ },
69
+ headerRight: {
70
+ marginLeft: "auto",
71
+ display: "flex",
72
+ alignItems: "center",
73
+ gap: 8
74
+ },
75
+ body: {
76
+ display: "flex",
77
+ flex: 1,
78
+ minHeight: 0
79
+ },
80
+ sidebar: {
81
+ width: SIDEBAR_WIDTH,
82
+ flexShrink: 0,
83
+ position: "sticky",
84
+ top: HEADER_HEIGHT,
85
+ alignSelf: "flex-start",
86
+ height: "calc(100vh - ".concat(HEADER_HEIGHT, "px)"),
87
+ overflowY: "auto",
88
+ padding: 12,
89
+ borderRight: "1px solid ".concat(v.border),
90
+ background: v.surface
91
+ },
92
+ main: {
93
+ flex: 1,
94
+ minWidth: 0,
95
+ padding: "calc(24px * var(--powr-density, 1))"
96
+ },
97
+ footer: {
98
+ padding: "12px 16px",
99
+ borderTop: "1px solid ".concat(v.border),
100
+ color: v.muted,
101
+ fontSize: 12,
102
+ background: v.surface
103
+ },
104
+ navItem: function navItem(active, vertical) {
105
+ return {
106
+ display: "flex",
107
+ alignItems: "center",
108
+ gap: 10,
109
+ padding: vertical ? "9px 12px" : "6px 10px",
110
+ borderRadius: v.radius,
111
+ fontSize: 14,
112
+ lineHeight: 1.2,
113
+ textDecoration: "none",
114
+ cursor: "pointer",
115
+ whiteSpace: "nowrap",
116
+ color: active ? v.primary : v.text,
117
+ background: active ? "color-mix(in srgb, ".concat(v.primary, " 10%, transparent)") : "transparent",
118
+ fontWeight: active ? 600 : 500
119
+ };
120
+ },
121
+ navIcon: {
122
+ display: "inline-flex",
123
+ width: 18,
124
+ justifyContent: "center",
125
+ color: "inherit"
126
+ },
127
+ iconButton: {
128
+ width: 36,
129
+ height: 36,
130
+ display: "inline-flex",
131
+ alignItems: "center",
132
+ justifyContent: "center",
133
+ borderRadius: v.radius,
134
+ border: "1px solid ".concat(v.border),
135
+ background: v.surface,
136
+ color: v.text,
137
+ cursor: "pointer",
138
+ fontSize: 16,
139
+ padding: 0
140
+ },
141
+ avatarButton: {
142
+ display: "inline-flex",
143
+ alignItems: "center",
144
+ gap: 8,
145
+ height: 36,
146
+ padding: "0 10px 0 4px",
147
+ borderRadius: 999,
148
+ border: "1px solid ".concat(v.border),
149
+ background: v.surface,
150
+ color: v.text,
151
+ cursor: "pointer",
152
+ fontSize: 13
153
+ },
154
+ avatar: {
155
+ width: 28,
156
+ height: 28,
157
+ borderRadius: "50%",
158
+ display: "inline-flex",
159
+ alignItems: "center",
160
+ justifyContent: "center",
161
+ background: v.primary,
162
+ color: v.primaryFg,
163
+ fontSize: 12,
164
+ fontWeight: 700
165
+ },
166
+ menu: {
167
+ position: "absolute",
168
+ right: 0,
169
+ top: "calc(100% + 6px)",
170
+ minWidth: 220,
171
+ padding: 6,
172
+ borderRadius: v.radius,
173
+ border: "1px solid ".concat(v.border),
174
+ background: v.surface,
175
+ boxShadow: "0 10px 30px rgba(0,0,0,0.12)",
176
+ zIndex: 50
177
+ },
178
+ menuHeader: {
179
+ padding: "8px 10px 10px",
180
+ borderBottom: "1px solid ".concat(v.border),
181
+ marginBottom: 4
182
+ },
183
+ menuItem: function menuItem(danger) {
184
+ return {
185
+ display: "flex",
186
+ width: "100%",
187
+ alignItems: "center",
188
+ gap: 8,
189
+ padding: "8px 10px",
190
+ borderRadius: "calc(".concat(v.radius, " - 2px)"),
191
+ border: "none",
192
+ background: "transparent",
193
+ color: danger ? v.danger : v.text,
194
+ fontSize: 14,
195
+ textAlign: "left",
196
+ textDecoration: "none",
197
+ cursor: "pointer"
198
+ };
199
+ },
200
+ overlay: {
201
+ position: "fixed",
202
+ inset: 0,
203
+ background: "rgba(0,0,0,0.4)",
204
+ zIndex: 60
205
+ },
206
+ drawer: function drawer(side) {
207
+ return _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({
208
+ position: "fixed",
209
+ top: 0,
210
+ bottom: 0
211
+ }, side, 0), "width", "min(360px, 90vw)"), "padding", 16), "overflowY", "auto"), "background", v.surface), "color", v.text), "borderLeft", side === "right" ? "1px solid ".concat(v.border) : "none"), "borderRight", side === "left" ? "1px solid ".concat(v.border) : "none"), "boxShadow", "0 0 40px rgba(0,0,0,0.2)"), "zIndex", 61);
212
+ },
213
+ drawerHead: {
214
+ display: "flex",
215
+ alignItems: "center",
216
+ justifyContent: "space-between",
217
+ marginBottom: 12
218
+ },
219
+ gatePage: {
220
+ minHeight: "100vh",
221
+ display: "flex",
222
+ flexDirection: "column",
223
+ background: v.bg,
224
+ color: v.text,
225
+ fontFamily: v.font
226
+ },
227
+ gateCard: {
228
+ width: "min(480px, 100%)",
229
+ margin: "40px auto",
230
+ padding: 8
231
+ },
232
+ skeletonBar: function skeletonBar(w) {
233
+ return {
234
+ height: 12,
235
+ width: w,
236
+ borderRadius: 6,
237
+ background: v.border,
238
+ opacity: 0.6
239
+ };
240
+ }
241
+ };
@@ -0,0 +1,276 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = PowrThemeSettings;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _PowrThemeProvider = require("./PowrThemeProvider");
9
+ var _tokens = require("./tokens");
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
11
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
12
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
13
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
14
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
15
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
16
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
17
+ /**
18
+ * User-level theme selectors: scheme · density · product preset.
19
+ *
20
+ * Reads and writes through `usePowrTheme()`, so it needs a `PowrThemeProvider`
21
+ * above it. Legacy apps mount this inside their own Settings page; the
22
+ * wrapper opens it in a drawer. Presets come from the product — this panel
23
+ * never invents colours (no colour wheel).
24
+ *
25
+ * `onSave` is the hook for card 3 (host `/users/me/preferences`). Until then
26
+ * changes are live + cached in localStorage by the provider.
27
+ */
28
+
29
+ var SCHEME_LABELS = {
30
+ light: "Light",
31
+ dark: "Dark",
32
+ system: "System"
33
+ };
34
+ var DENSITY_LABELS = {
35
+ comfortable: "Comfortable",
36
+ compact: "Compact"
37
+ };
38
+ var styles = {
39
+ root: {
40
+ display: "grid",
41
+ gap: 20,
42
+ color: (0, _tokens.powrVar)("text", "#111827"),
43
+ fontFamily: (0, _tokens.powrVar)("font", "system-ui, sans-serif")
44
+ },
45
+ title: {
46
+ margin: 0,
47
+ fontSize: 16,
48
+ fontWeight: 600
49
+ },
50
+ label: {
51
+ display: "block",
52
+ fontSize: 12,
53
+ fontWeight: 600,
54
+ letterSpacing: "0.04em",
55
+ textTransform: "uppercase",
56
+ color: (0, _tokens.powrVar)("muted", "#6b7280"),
57
+ marginBottom: 8
58
+ },
59
+ segmented: {
60
+ display: "inline-flex",
61
+ padding: 3,
62
+ gap: 2,
63
+ borderRadius: (0, _tokens.powrVar)("radius", "0.5rem"),
64
+ border: "1px solid ".concat((0, _tokens.powrVar)("border", "#e5e7eb")),
65
+ background: (0, _tokens.powrVar)("bg", "#fafafa")
66
+ },
67
+ segment: function segment(active) {
68
+ return {
69
+ padding: "6px 12px",
70
+ fontSize: 13,
71
+ lineHeight: 1.2,
72
+ borderRadius: "calc(".concat((0, _tokens.powrVar)("radius", "0.5rem"), " - 2px)"),
73
+ border: "none",
74
+ cursor: "pointer",
75
+ background: active ? (0, _tokens.powrVar)("surface", "#fff") : "transparent",
76
+ color: active ? (0, _tokens.powrVar)("text", "#111827") : (0, _tokens.powrVar)("muted", "#6b7280"),
77
+ boxShadow: active ? "0 1px 2px rgba(0,0,0,0.08)" : "none",
78
+ fontWeight: active ? 600 : 400
79
+ };
80
+ },
81
+ presetGrid: {
82
+ display: "grid",
83
+ gridTemplateColumns: "repeat(auto-fill, minmax(140px, 1fr))",
84
+ gap: 8
85
+ },
86
+ presetCard: function presetCard(active) {
87
+ return {
88
+ display: "grid",
89
+ gap: 8,
90
+ padding: 10,
91
+ textAlign: "left",
92
+ cursor: "pointer",
93
+ borderRadius: (0, _tokens.powrVar)("radius", "0.5rem"),
94
+ border: "2px solid ".concat(active ? (0, _tokens.powrVar)("primary", "#2563eb") : (0, _tokens.powrVar)("border", "#e5e7eb")),
95
+ background: (0, _tokens.powrVar)("surface", "#fff"),
96
+ color: (0, _tokens.powrVar)("text", "#111827")
97
+ };
98
+ },
99
+ swatchRow: {
100
+ display: "flex",
101
+ gap: 4
102
+ },
103
+ swatch: function swatch(bg) {
104
+ return {
105
+ width: 18,
106
+ height: 18,
107
+ borderRadius: 4,
108
+ background: bg,
109
+ border: "1px solid ".concat((0, _tokens.powrVar)("border", "#e5e7eb"))
110
+ };
111
+ },
112
+ footer: {
113
+ display: "flex",
114
+ gap: 8,
115
+ alignItems: "center"
116
+ },
117
+ button: function button(primary) {
118
+ return {
119
+ padding: "8px 14px",
120
+ fontSize: 13,
121
+ cursor: "pointer",
122
+ borderRadius: (0, _tokens.powrVar)("radius", "0.5rem"),
123
+ border: "1px solid ".concat(primary ? (0, _tokens.powrVar)("primary", "#2563eb") : (0, _tokens.powrVar)("border", "#e5e7eb")),
124
+ background: primary ? (0, _tokens.powrVar)("primary", "#2563eb") : (0, _tokens.powrVar)("surface", "#fff"),
125
+ color: primary ? (0, _tokens.powrVar)("primary-fg", "#fff") : (0, _tokens.powrVar)("text", "#111827")
126
+ };
127
+ },
128
+ hint: {
129
+ fontSize: 12,
130
+ color: (0, _tokens.powrVar)("muted", "#6b7280"),
131
+ margin: 0
132
+ }
133
+ };
134
+ function Segmented(_ref) {
135
+ var value = _ref.value,
136
+ options = _ref.options,
137
+ labels = _ref.labels,
138
+ onChange = _ref.onChange,
139
+ name = _ref.name;
140
+ return /*#__PURE__*/_react["default"].createElement("div", {
141
+ role: "radiogroup",
142
+ "aria-label": name,
143
+ style: styles.segmented
144
+ }, options.map(function (opt) {
145
+ return /*#__PURE__*/_react["default"].createElement("button", {
146
+ key: opt,
147
+ type: "button",
148
+ role: "radio",
149
+ "aria-checked": value === opt,
150
+ onClick: function onClick() {
151
+ return onChange(opt);
152
+ },
153
+ style: styles.segment(value === opt)
154
+ }, labels[opt] || opt);
155
+ }));
156
+ }
157
+ function presetSwatches(preset, dark) {
158
+ var t = dark && preset.dark || preset.tokens || {};
159
+ return [t.bg, t.surface, t.primary, t.text].filter(Boolean);
160
+ }
161
+
162
+ /**
163
+ * @param {object} props
164
+ * @param {string} [props.title="Appearance"]
165
+ * @param {boolean} [props.showScheme=true]
166
+ * @param {boolean} [props.showDensity=true]
167
+ * @param {boolean} [props.showPresets=true] - Hidden automatically when the product passed no presets.
168
+ * @param {(value: {scheme, density, preset}) => void|Promise<void>} [props.onSave] - Card 3: host save. Shows a Save button when given.
169
+ * @param {boolean} [props.saving]
170
+ * @param {string} [props.saveLabel="Save"]
171
+ */
172
+ function PowrThemeSettings(_ref2) {
173
+ var _ref2$title = _ref2.title,
174
+ title = _ref2$title === void 0 ? "Appearance" : _ref2$title,
175
+ _ref2$showScheme = _ref2.showScheme,
176
+ showScheme = _ref2$showScheme === void 0 ? true : _ref2$showScheme,
177
+ _ref2$showDensity = _ref2.showDensity,
178
+ showDensity = _ref2$showDensity === void 0 ? true : _ref2$showDensity,
179
+ _ref2$showPresets = _ref2.showPresets,
180
+ showPresets = _ref2$showPresets === void 0 ? true : _ref2$showPresets,
181
+ onSave = _ref2.onSave,
182
+ _ref2$saving = _ref2.saving,
183
+ saving = _ref2$saving === void 0 ? false : _ref2$saving,
184
+ _ref2$saveLabel = _ref2.saveLabel,
185
+ saveLabel = _ref2$saveLabel === void 0 ? "Save" : _ref2$saveLabel;
186
+ var t = (0, _PowrThemeProvider.usePowrTheme)();
187
+ var presets = Array.isArray(t.presets) ? t.presets : [];
188
+ var hasPresets = showPresets && presets.length > 0;
189
+ var isDark = t.resolvedScheme === "dark";
190
+ return /*#__PURE__*/_react["default"].createElement("div", {
191
+ style: styles.root
192
+ }, title ? /*#__PURE__*/_react["default"].createElement("h3", {
193
+ style: styles.title
194
+ }, title) : null, showScheme ? /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("span", {
195
+ style: styles.label
196
+ }, "Scheme"), /*#__PURE__*/_react["default"].createElement(Segmented, {
197
+ name: "Scheme",
198
+ value: t.scheme,
199
+ options: _tokens.POWR_SCHEMES,
200
+ labels: SCHEME_LABELS,
201
+ onChange: t.setScheme
202
+ }), t.scheme === "system" ? /*#__PURE__*/_react["default"].createElement("p", {
203
+ style: _objectSpread(_objectSpread({}, styles.hint), {}, {
204
+ marginTop: 6
205
+ })
206
+ }, "Following your device: ", t.resolvedScheme, ".") : null) : null, showDensity ? /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("span", {
207
+ style: styles.label
208
+ }, "Density"), /*#__PURE__*/_react["default"].createElement(Segmented, {
209
+ name: "Density",
210
+ value: t.density,
211
+ options: Object.keys(_tokens.POWR_DENSITIES),
212
+ labels: DENSITY_LABELS,
213
+ onChange: t.setDensity
214
+ })) : null, hasPresets ? /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("span", {
215
+ style: styles.label
216
+ }, "Theme"), /*#__PURE__*/_react["default"].createElement("div", {
217
+ style: styles.presetGrid
218
+ }, /*#__PURE__*/_react["default"].createElement("button", {
219
+ type: "button",
220
+ "aria-pressed": !t.preset,
221
+ onClick: function onClick() {
222
+ return t.setPreset(null);
223
+ },
224
+ style: styles.presetCard(!t.preset)
225
+ }, /*#__PURE__*/_react["default"].createElement("span", {
226
+ style: {
227
+ fontSize: 13,
228
+ fontWeight: 600
229
+ }
230
+ }, "Default"), /*#__PURE__*/_react["default"].createElement("span", {
231
+ style: styles.hint
232
+ }, "App\u2019s standard look")), presets.map(function (p) {
233
+ return /*#__PURE__*/_react["default"].createElement("button", {
234
+ key: p.id,
235
+ type: "button",
236
+ "aria-pressed": t.preset === p.id,
237
+ onClick: function onClick() {
238
+ return t.setPreset(p.id);
239
+ },
240
+ style: styles.presetCard(t.preset === p.id)
241
+ }, /*#__PURE__*/_react["default"].createElement("span", {
242
+ style: {
243
+ fontSize: 13,
244
+ fontWeight: 600
245
+ }
246
+ }, p.label || p.id), /*#__PURE__*/_react["default"].createElement("span", {
247
+ style: styles.swatchRow
248
+ }, presetSwatches(p, isDark).map(function (c, i) {
249
+ return /*#__PURE__*/_react["default"].createElement("span", {
250
+ key: i,
251
+ style: styles.swatch(c)
252
+ });
253
+ })));
254
+ }))) : null, /*#__PURE__*/_react["default"].createElement("div", {
255
+ style: styles.footer
256
+ }, onSave ? /*#__PURE__*/_react["default"].createElement("button", {
257
+ type: "button",
258
+ disabled: saving,
259
+ onClick: function onClick() {
260
+ return onSave({
261
+ scheme: t.scheme,
262
+ density: t.density,
263
+ preset: t.preset
264
+ });
265
+ },
266
+ style: _objectSpread(_objectSpread({}, styles.button(true)), {}, {
267
+ opacity: saving ? 0.6 : 1
268
+ })
269
+ }, saving ? "Saving…" : saveLabel) : null, /*#__PURE__*/_react["default"].createElement("button", {
270
+ type: "button",
271
+ onClick: t.reset,
272
+ style: styles.button(false)
273
+ }, "Reset"), !onSave ? /*#__PURE__*/_react["default"].createElement("p", {
274
+ style: styles.hint
275
+ }, "Saved on this device.") : null));
276
+ }
@@ -64,6 +64,12 @@ Object.defineProperty(exports, "PowrThemeProvider", {
64
64
  return _PowrThemeProvider["default"];
65
65
  }
66
66
  });
67
+ Object.defineProperty(exports, "PowrThemeSettings", {
68
+ enumerable: true,
69
+ get: function get() {
70
+ return _PowrThemeSettings["default"];
71
+ }
72
+ });
67
73
  Object.defineProperty(exports, "findPreset", {
68
74
  enumerable: true,
69
75
  get: function get() {
@@ -119,5 +125,7 @@ Object.defineProperty(exports, "usePowrTheme", {
119
125
  }
120
126
  });
121
127
  var _PowrThemeProvider = _interopRequireWildcard(require("./PowrThemeProvider"));
128
+ var _PowrThemeSettings = _interopRequireDefault(require("./PowrThemeSettings"));
122
129
  var _tokens = require("./tokens");
130
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
123
131
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = useMediaQuery;
7
+ var _react = require("react");
8
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
9
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
10
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
11
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
12
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
13
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
14
+ /**
15
+ * `window.matchMedia` as a hook. SSR-safe: returns `fallback` until mounted,
16
+ * so server and first client render agree (no hydration mismatch).
17
+ */
18
+ function useMediaQuery(query) {
19
+ var fallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
20
+ var _useState = (0, _react.useState)(fallback),
21
+ _useState2 = _slicedToArray(_useState, 2),
22
+ matches = _useState2[0],
23
+ setMatches = _useState2[1];
24
+ (0, _react.useEffect)(function () {
25
+ if (typeof window === "undefined" || !window.matchMedia) return undefined;
26
+ var mq = window.matchMedia(query);
27
+ var update = function update() {
28
+ return setMatches(mq.matches);
29
+ };
30
+ update();
31
+ if (mq.addEventListener) mq.addEventListener("change", update);else mq.addListener(update);
32
+ return function () {
33
+ if (mq.removeEventListener) mq.removeEventListener("change", update);else mq.removeListener(update);
34
+ };
35
+ }, [query]);
36
+ return matches;
37
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "powr-sdk-web",
3
- "version": "6.0.0",
3
+ "version": "6.1.0",
4
4
  "main": "dist/index.js",
5
5
  "files": [
6
6
  "dist"