svelte-comp 1.3.3 → 1.3.5

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.
Files changed (120) hide show
  1. package/README.md +12 -11
  2. package/dist/App.svelte +540 -540
  3. package/dist/app.css +2 -3
  4. package/dist/app.d.ts +10 -0
  5. package/dist/lib/Accordion.svelte +14 -14
  6. package/dist/lib/Button.svelte +23 -8
  7. package/dist/lib/Card.svelte +6 -6
  8. package/dist/lib/Carousel.svelte +16 -16
  9. package/dist/lib/Carousel.svelte.d.ts +1 -1
  10. package/dist/lib/CheckBox.svelte +2 -2
  11. package/dist/lib/CodeView.svelte +6 -5
  12. package/dist/lib/ContextMenu.svelte +19 -13
  13. package/dist/lib/Dialog.svelte +3 -3
  14. package/dist/lib/Field.svelte +1 -1
  15. package/dist/lib/FilePicker.svelte +66 -11
  16. package/dist/lib/FilePicker.svelte.d.ts +6 -1
  17. package/dist/lib/Hamburger.svelte +12 -12
  18. package/dist/lib/Menu.svelte +18 -18
  19. package/dist/lib/NoticeBase.svelte +5 -5
  20. package/dist/lib/Select.svelte +2 -2
  21. package/dist/lib/Slider.svelte +1 -1
  22. package/dist/lib/Splitter.svelte +15 -6
  23. package/dist/lib/Switch.svelte +5 -4
  24. package/dist/lib/Tabs.svelte +6 -6
  25. package/dist/lib/ThemeToggle.svelte +1 -0
  26. package/dist/lib/TimePickerNew.svelte +634 -0
  27. package/dist/lib/TimePickerNew.svelte.d.ts +49 -0
  28. package/dist/lib/Tooltip.svelte +7 -7
  29. package/dist/lib/Topbar.svelte +6 -6
  30. package/dist/lib/__tests__/Accordion.test.d.ts +1 -0
  31. package/dist/lib/__tests__/Accordion.test.js +171 -0
  32. package/dist/lib/__tests__/Badge.test.d.ts +1 -0
  33. package/dist/lib/__tests__/Badge.test.js +41 -0
  34. package/dist/lib/__tests__/Button.test.d.ts +1 -0
  35. package/dist/lib/__tests__/Button.test.js +269 -0
  36. package/dist/lib/__tests__/Calendar.test.d.ts +1 -0
  37. package/dist/lib/__tests__/Calendar.test.js +171 -0
  38. package/dist/lib/__tests__/Card.test.d.ts +1 -0
  39. package/dist/lib/__tests__/Card.test.js +148 -0
  40. package/dist/lib/__tests__/Carousel.test.d.ts +1 -0
  41. package/dist/lib/__tests__/Carousel.test.js +439 -0
  42. package/dist/lib/__tests__/CheckBox.test.d.ts +1 -0
  43. package/dist/lib/__tests__/CheckBox.test.js +152 -0
  44. package/dist/lib/__tests__/CodeView.test.d.ts +1 -0
  45. package/dist/lib/__tests__/CodeView.test.js +157 -0
  46. package/dist/lib/__tests__/ColorPicker.test.d.ts +1 -0
  47. package/dist/lib/__tests__/ColorPicker.test.js +93 -0
  48. package/dist/lib/__tests__/ContextMenu.test.d.ts +1 -0
  49. package/dist/lib/__tests__/ContextMenu.test.js +67 -0
  50. package/dist/lib/__tests__/DatePicker.test.d.ts +1 -0
  51. package/dist/lib/__tests__/DatePicker.test.js +108 -0
  52. package/dist/lib/__tests__/Dialog.test.d.ts +1 -0
  53. package/dist/lib/__tests__/Dialog.test.js +183 -0
  54. package/dist/lib/__tests__/Field.test.d.ts +1 -0
  55. package/dist/lib/__tests__/Field.test.js +190 -0
  56. package/dist/lib/__tests__/FilePicker.test.d.ts +1 -0
  57. package/dist/lib/__tests__/FilePicker.test.js +179 -0
  58. package/dist/lib/__tests__/Form.integration.test.d.ts +1 -0
  59. package/dist/lib/__tests__/Form.integration.test.js +158 -0
  60. package/dist/lib/__tests__/Form.test.d.ts +1 -0
  61. package/dist/lib/__tests__/Form.test.js +463 -0
  62. package/dist/lib/__tests__/Hamburger.test.d.ts +1 -0
  63. package/dist/lib/__tests__/Hamburger.test.js +161 -0
  64. package/dist/lib/__tests__/InstallPWA.test.d.ts +1 -0
  65. package/dist/lib/__tests__/InstallPWA.test.js +15 -0
  66. package/dist/lib/__tests__/Menu.test.d.ts +1 -0
  67. package/dist/lib/__tests__/Menu.test.js +285 -0
  68. package/dist/lib/__tests__/NoticeBase.test.d.ts +1 -0
  69. package/dist/lib/__tests__/NoticeBase.test.js +60 -0
  70. package/dist/lib/__tests__/PaginatedCard.test.d.ts +1 -0
  71. package/dist/lib/__tests__/PaginatedCard.test.js +89 -0
  72. package/dist/lib/__tests__/Pagination.test.d.ts +1 -0
  73. package/dist/lib/__tests__/Pagination.test.js +168 -0
  74. package/dist/lib/__tests__/PrimaryColorSelect.test.d.ts +1 -0
  75. package/dist/lib/__tests__/PrimaryColorSelect.test.js +92 -0
  76. package/dist/lib/__tests__/ProgressBar.test.d.ts +1 -0
  77. package/dist/lib/__tests__/ProgressBar.test.js +69 -0
  78. package/dist/lib/__tests__/ProgressCircle.test.d.ts +1 -0
  79. package/dist/lib/__tests__/ProgressCircle.test.js +71 -0
  80. package/dist/lib/__tests__/Radio.test.d.ts +1 -0
  81. package/dist/lib/__tests__/Radio.test.js +127 -0
  82. package/dist/lib/__tests__/SearchInput.test.d.ts +1 -0
  83. package/dist/lib/__tests__/SearchInput.test.js +80 -0
  84. package/dist/lib/__tests__/Select.test.d.ts +1 -0
  85. package/dist/lib/__tests__/Select.test.js +408 -0
  86. package/dist/lib/__tests__/Slider.test.d.ts +1 -0
  87. package/dist/lib/__tests__/Slider.test.js +213 -0
  88. package/dist/lib/__tests__/Splitter.test.d.ts +1 -0
  89. package/dist/lib/__tests__/Splitter.test.js +87 -0
  90. package/dist/lib/__tests__/Switch.test.d.ts +1 -0
  91. package/dist/lib/__tests__/Switch.test.js +97 -0
  92. package/dist/lib/__tests__/Table.test.d.ts +1 -0
  93. package/dist/lib/__tests__/Table.test.js +349 -0
  94. package/dist/lib/__tests__/Tabs.test.d.ts +1 -0
  95. package/dist/lib/__tests__/Tabs.test.js +262 -0
  96. package/dist/lib/__tests__/ThemeToggle.test.d.ts +1 -0
  97. package/dist/lib/__tests__/ThemeToggle.test.js +84 -0
  98. package/dist/lib/__tests__/TimePicker.test.d.ts +1 -0
  99. package/dist/lib/__tests__/TimePicker.test.js +146 -0
  100. package/dist/lib/__tests__/TimePickerNew.test.d.ts +1 -0
  101. package/dist/lib/__tests__/TimePickerNew.test.js +322 -0
  102. package/dist/lib/__tests__/Toast.test.d.ts +1 -0
  103. package/dist/lib/__tests__/Toast.test.js +135 -0
  104. package/dist/lib/__tests__/Tooltip.test.d.ts +1 -0
  105. package/dist/lib/__tests__/Tooltip.test.js +171 -0
  106. package/dist/lib/__tests__/Topbar.test.d.ts +1 -0
  107. package/dist/lib/__tests__/Topbar.test.js +25 -0
  108. package/dist/lib/__tests__/setupLangContext.d.ts +1 -0
  109. package/dist/lib/__tests__/setupLangContext.js +65 -0
  110. package/dist/lib/__tests__/storage.test.d.ts +1 -0
  111. package/dist/lib/__tests__/storage.test.js +124 -0
  112. package/dist/lib/__tests__/utils.test.d.ts +1 -0
  113. package/dist/lib/__tests__/utils.test.js +11 -0
  114. package/dist/lib/index.d.ts +1 -0
  115. package/dist/lib/index.js +1 -0
  116. package/dist/lib/lang.d.ts +4 -0
  117. package/dist/lib/lang.js +4 -0
  118. package/dist/styles.css +2 -0
  119. package/dist/utils/index.js +15 -4
  120. package/package.json +12 -12
@@ -0,0 +1,65 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
+ return new (P || (P = Promise))(function (resolve, reject) {
15
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
19
+ });
20
+ };
21
+ var __generator = (this && this.__generator) || function (thisArg, body) {
22
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
23
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
+ function verb(n) { return function (v) { return step([n, v]); }; }
25
+ function step(op) {
26
+ if (f) throw new TypeError("Generator is already executing.");
27
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
28
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
+ if (y = 0, t) op = [op[0] & 2, t.value];
30
+ switch (op[0]) {
31
+ case 0: case 1: t = op; break;
32
+ case 4: _.label++; return { value: op[1], done: false };
33
+ case 5: _.label++; y = op[1]; op = [0]; continue;
34
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
+ default:
36
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
+ if (t[2]) _.ops.pop();
41
+ _.trys.pop(); continue;
42
+ }
43
+ op = body.call(thisArg, _);
44
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
+ }
47
+ };
48
+ // src/lib/__tests__/setupLangContext.ts
49
+ import { vi } from "vitest";
50
+ vi.mock("svelte", function () { return __awaiter(void 0, void 0, void 0, function () {
51
+ var actual;
52
+ return __generator(this, function (_a) {
53
+ switch (_a.label) {
54
+ case 0: return [4 /*yield*/, vi.importActual("svelte")];
55
+ case 1:
56
+ actual = _a.sent();
57
+ return [2 /*return*/, __assign(__assign({}, actual), { getContext: function (key) {
58
+ if (key === "lang") {
59
+ return { value: "en" };
60
+ }
61
+ return actual.getContext(key);
62
+ } })];
63
+ }
64
+ });
65
+ }); });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,124 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
12
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ import { describe, it, expect, vi, afterEach } from "vitest";
38
+ var loadStorage = function () { return __awaiter(void 0, void 0, void 0, function () {
39
+ return __generator(this, function (_a) {
40
+ switch (_a.label) {
41
+ case 0:
42
+ vi.resetModules();
43
+ return [4 /*yield*/, import("../../utils/index")];
44
+ case 1: return [2 /*return*/, (_a.sent()).storage];
45
+ }
46
+ });
47
+ }); };
48
+ var createMockLocalStorage = function () {
49
+ var store = {};
50
+ return {
51
+ getItem: function (key) { var _a; return (_a = store[key]) !== null && _a !== void 0 ? _a : null; },
52
+ setItem: function (key, val) {
53
+ store[key] = String(val);
54
+ },
55
+ removeItem: function (key) {
56
+ delete store[key];
57
+ },
58
+ clear: function () {
59
+ store = {};
60
+ },
61
+ };
62
+ };
63
+ afterEach(function () {
64
+ vi.unstubAllGlobals();
65
+ });
66
+ describe("storage helper", function () {
67
+ it("is safe when window/localStorage are unavailable (SSR)", function () { return __awaiter(void 0, void 0, void 0, function () {
68
+ var storage;
69
+ return __generator(this, function (_a) {
70
+ switch (_a.label) {
71
+ case 0:
72
+ vi.stubGlobal("window", undefined);
73
+ return [4 /*yield*/, loadStorage()];
74
+ case 1:
75
+ storage = _a.sent();
76
+ expect(storage.get("missing", "fallback")).toBe("fallback");
77
+ expect(function () { return storage.set("k", "v"); }).not.toThrow();
78
+ expect(function () { return storage.remove("k"); }).not.toThrow();
79
+ return [2 /*return*/];
80
+ }
81
+ });
82
+ }); });
83
+ it("persists values when localStorage exists", function () { return __awaiter(void 0, void 0, void 0, function () {
84
+ var mockLocalStorage, storage;
85
+ return __generator(this, function (_a) {
86
+ switch (_a.label) {
87
+ case 0:
88
+ mockLocalStorage = createMockLocalStorage();
89
+ vi.stubGlobal("window", { localStorage: mockLocalStorage });
90
+ return [4 /*yield*/, loadStorage()];
91
+ case 1:
92
+ storage = _a.sent();
93
+ storage.set("user", { id: 1 });
94
+ expect(mockLocalStorage.getItem("user")).toBe(JSON.stringify({ id: 1 }));
95
+ expect(storage.get("user", null)).toEqual({ id: 1 });
96
+ storage.remove("user");
97
+ expect(mockLocalStorage.getItem("user")).toBeNull();
98
+ return [2 /*return*/];
99
+ }
100
+ });
101
+ }); });
102
+ it("is safe when localStorage getter throws", function () { return __awaiter(void 0, void 0, void 0, function () {
103
+ var storage;
104
+ return __generator(this, function (_a) {
105
+ switch (_a.label) {
106
+ case 0:
107
+ vi.stubGlobal("window", {});
108
+ Object.defineProperty(window, "localStorage", {
109
+ configurable: true,
110
+ get: function () {
111
+ throw new Error("storage disabled");
112
+ },
113
+ });
114
+ return [4 /*yield*/, loadStorage()];
115
+ case 1:
116
+ storage = _a.sent();
117
+ expect(storage.get("missing", "fallback")).toBe("fallback");
118
+ expect(function () { return storage.set("k", "v"); }).not.toThrow();
119
+ expect(function () { return storage.remove("k"); }).not.toThrow();
120
+ return [2 /*return*/];
121
+ }
122
+ });
123
+ }); });
124
+ });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,11 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { formatFileSize } from "../../utils";
3
+ describe("utility helpers", function () {
4
+ it("formats invalid or negative file sizes safely", function () {
5
+ expect(formatFileSize(Number.NaN)).toBe("0 Bytes");
6
+ expect(formatFileSize(-1)).toBe("0 Bytes");
7
+ });
8
+ it("caps very large file sizes to the largest supported unit", function () {
9
+ expect(formatFileSize(Math.pow(1024, 5))).toBe("1048576 GB");
10
+ });
11
+ });
@@ -31,6 +31,7 @@ export { default as Table } from "./Table.svelte";
31
31
  export { default as Tabs } from "./Tabs.svelte";
32
32
  export { default as ThemeToggle } from "./ThemeToggle.svelte";
33
33
  export { default as TimePicker } from "./TimePicker.svelte";
34
+ export { default as TimePickerNew } from "./TimePickerNew.svelte";
34
35
  export { default as Toast } from "./Toast.svelte";
35
36
  export { default as Tooltip } from "./Tooltip.svelte";
36
37
  export { default as Topbar } from "./Topbar.svelte";
package/dist/lib/index.js CHANGED
@@ -32,6 +32,7 @@ export { default as Table } from "./Table.svelte";
32
32
  export { default as Tabs } from "./Tabs.svelte";
33
33
  export { default as ThemeToggle } from "./ThemeToggle.svelte";
34
34
  export { default as TimePicker } from "./TimePicker.svelte";
35
+ export { default as TimePickerNew } from "./TimePickerNew.svelte";
35
36
  export { default as Toast } from "./Toast.svelte";
36
37
  export { default as Tooltip } from "./Tooltip.svelte";
37
38
  export { default as Topbar } from "./Topbar.svelte";
@@ -68,6 +68,8 @@ export declare const TEXTS: {
68
68
  readonly selectedTime: "Selected time";
69
69
  readonly switchTo12h: "12h";
70
70
  readonly switchTo24h: "24h";
71
+ readonly now: "Now";
72
+ readonly ok: "OK";
71
73
  };
72
74
  };
73
75
  };
@@ -192,6 +194,8 @@ export declare const TEXTS: {
192
194
  readonly selectedTime: "Hora seleccionada";
193
195
  readonly switchTo12h: "12h";
194
196
  readonly switchTo24h: "24h";
197
+ readonly now: "Ahora";
198
+ readonly ok: "OK";
195
199
  };
196
200
  readonly contextMenu: {
197
201
  readonly contextMenu: {
package/dist/lib/lang.js CHANGED
@@ -64,6 +64,8 @@ var enTexts = {
64
64
  selectedTime: "Selected time",
65
65
  switchTo12h: "12h",
66
66
  switchTo24h: "24h",
67
+ now: "Now",
68
+ ok: "OK",
67
69
  },
68
70
  },
69
71
  };
@@ -180,6 +182,8 @@ var esTexts = {
180
182
  selectedTime: "Hora seleccionada",
181
183
  switchTo12h: "12h",
182
184
  switchTo24h: "24h",
185
+ now: "Ahora",
186
+ ok: "OK",
183
187
  },
184
188
  contextMenu: {
185
189
  contextMenu: {
package/dist/styles.css CHANGED
@@ -12,6 +12,7 @@
12
12
  --color-text-warning: oklch(95% 0.05 90deg);
13
13
  --color-text-link: oklch(35% 0.3 250deg);
14
14
  --color-text-red: oklch(50% 0.25 30deg);
15
+ --color-text-inverse: oklch(100% 0 0deg);
15
16
 
16
17
  /* COLORS — BG */
17
18
  --color-bg-page: oklch(98% 0 0deg);
@@ -105,6 +106,7 @@
105
106
  --color-text-warning: oklch(95% 0.05 90deg);
106
107
  --color-text-link: oklch(65% 0.3 250deg);
107
108
  --color-text-red: oklch(50% 0.25 30deg);
109
+ --color-text-inverse: oklch(100% 0 0deg);
108
110
 
109
111
  /* COLORS — BG */
110
112
  --color-bg-page: oklch(15% 0 0deg);
@@ -1,4 +1,4 @@
1
- // src/lib/utils/index.ts
1
+ // src/utils/index.ts
2
2
  var __assign = (this && this.__assign) || function () {
3
3
  __assign = Object.assign || function(t) {
4
4
  for (var s, i = 1, n = arguments.length; i < n; i++) {
@@ -75,11 +75,13 @@ export function times(count, fn) {
75
75
  // FORMAT FILE SIZE
76
76
  // -------------------------------------------------------------------------------
77
77
  export function formatFileSize(bytes) {
78
+ if (!Number.isFinite(bytes) || bytes < 0)
79
+ return "0 Bytes";
78
80
  if (bytes === 0)
79
81
  return "0 Bytes";
80
82
  var k = 1024;
81
83
  var sizes = ["Bytes", "KB", "MB", "GB"];
82
- var i = Math.floor(Math.log(bytes) / Math.log(k));
84
+ var i = Math.min(sizes.length - 1, Math.floor(Math.log(bytes) / Math.log(k)));
83
85
  return "".concat(parseFloat((bytes / Math.pow(k, i)).toFixed(2)), " ").concat(sizes[i]);
84
86
  }
85
87
  // -------------------------------------------------------------------------------
@@ -116,8 +118,17 @@ export function throttle(fn, limit) {
116
118
  // -------------------------------------------------------------------------------
117
119
  // STORAGE HELPERS
118
120
  // -------------------------------------------------------------------------------
119
- var hasBrowserStorage = typeof window !== "undefined" && !!window.localStorage;
120
- var getLocalStorage = function () { return (hasBrowserStorage ? window.localStorage : null); };
121
+ var getLocalStorage = function () {
122
+ var _a;
123
+ if (typeof window === "undefined")
124
+ return null;
125
+ try {
126
+ return (_a = window.localStorage) !== null && _a !== void 0 ? _a : null;
127
+ }
128
+ catch (_b) {
129
+ return null;
130
+ }
131
+ };
121
132
  export var storage = {
122
133
  get: function (key, defaultValue) {
123
134
  var ls = getLocalStorage();
package/package.json CHANGED
@@ -1,23 +1,23 @@
1
1
  {
2
2
  "name": "svelte-comp",
3
- "version": "1.3.3",
3
+ "version": "1.3.5",
4
4
  "license": "MIT",
5
5
  "description": "A comprehensive component library built on Svelte 5 (runes) with design tokens (tailwind), accessibility focus, and TypeScript support",
6
6
  "devDependencies": {
7
7
  "@sveltejs/package": "^2.5.7",
8
- "@sveltejs/vite-plugin-svelte": "^6.2.1",
9
- "@tailwindcss/vite": "^4.1.17",
10
- "@tsconfig/svelte": "^5.0.4",
11
- "@types/node": "^24.5.2",
12
- "@types/prismjs": "^1.26.5",
13
- "prettier": "^3.7.4",
14
- "prettier-plugin-svelte": "^3.4.0",
8
+ "@sveltejs/vite-plugin-svelte": "^6.2.4",
9
+ "@tailwindcss/vite": "^4.2.4",
10
+ "@tsconfig/svelte": "^5.0.8",
11
+ "@types/node": "^24.12.2",
12
+ "@types/prismjs": "^1.26.6",
13
+ "prettier": "^3.8.3",
14
+ "prettier-plugin-svelte": "^3.5.1",
15
15
  "prismjs": "^1.30.0",
16
- "svelte": "^5.39.6",
17
- "svelte-check": "^4.3.4",
18
- "tailwindcss": "^4.1.17",
16
+ "svelte": "^5.55.5",
17
+ "svelte-check": "^4.4.6",
18
+ "tailwindcss": "^4.2.4",
19
19
  "typescript": "^5.9.3",
20
- "vite": "^7.2.1"
20
+ "vite": "^7.3.2"
21
21
  },
22
22
  "exports": {
23
23
  ".": {