@iyulab/components 1.35.0 → 1.35.6

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 (74) hide show
  1. package/CHANGELOG.md +91 -0
  2. package/dist/_virtual/{_@oxc-project_runtime@0.147.0 → _@oxc-project_runtime@0.148.0}/helpers/esm/decorate.js +1 -1
  3. package/dist/_virtual/{_@oxc-project_runtime@0.147.0 → _@oxc-project_runtime@0.148.0}/helpers/esm/decorateMetadata.js +1 -1
  4. package/dist/assets/locales/ar.json.js +14 -2
  5. package/dist/assets/locales/de.json.js +14 -2
  6. package/dist/assets/locales/en.json.js +14 -2
  7. package/dist/assets/locales/es.json.js +14 -2
  8. package/dist/assets/locales/fr.json.js +14 -2
  9. package/dist/assets/locales/id.json.js +14 -2
  10. package/dist/assets/locales/ja.json.js +14 -2
  11. package/dist/assets/locales/ko.json.js +14 -2
  12. package/dist/assets/locales/pt-BR.json.js +14 -2
  13. package/dist/assets/locales/ru.json.js +14 -2
  14. package/dist/assets/locales/th.json.js +14 -2
  15. package/dist/assets/locales/vi.json.js +14 -2
  16. package/dist/assets/locales/zh-CN.json.js +14 -2
  17. package/dist/assets/locales/zh-TW.json.js +14 -2
  18. package/dist/components/UFloatingElement.js +2 -2
  19. package/dist/components/UFormControlElement.js +3 -3
  20. package/dist/components/UOverlayElement.js +2 -2
  21. package/dist/components/alert/UAlert.js +4 -2
  22. package/dist/components/avatar/UAvatar.js +2 -2
  23. package/dist/components/badge/UBadge.js +2 -2
  24. package/dist/components/breadcrumb/UBreadcrumb.js +1 -1
  25. package/dist/components/breadcrumb-item/UBreadcrumbItem.js +2 -2
  26. package/dist/components/button/UButton.js +3 -3
  27. package/dist/components/button-group/UButtonGroup.js +2 -2
  28. package/dist/components/card/UCard.js +2 -2
  29. package/dist/components/carousel/UCarousel.js +2 -2
  30. package/dist/components/checkbox/UCheckbox.js +2 -2
  31. package/dist/components/checkbox/UCheckbox.styles.js +6 -2
  32. package/dist/components/chip/UChip.js +2 -2
  33. package/dist/components/copy-button/UCopyButton.js +4 -2
  34. package/dist/components/date-picker/UDatePicker.js +6 -6
  35. package/dist/components/dialog/UDialog.js +4 -2
  36. package/dist/components/divider/UDivider.js +2 -2
  37. package/dist/components/drawer/UDrawer.js +4 -2
  38. package/dist/components/expander/UExpander.js +2 -2
  39. package/dist/components/field/UField.js +2 -2
  40. package/dist/components/form/UForm.js +2 -2
  41. package/dist/components/icon/UIcon.js +2 -2
  42. package/dist/components/icon-button/UIconButton.d.ts +8 -0
  43. package/dist/components/icon-button/UIconButton.js +18 -2
  44. package/dist/components/input/UInput.js +6 -2
  45. package/dist/components/menu/UMenu.js +2 -2
  46. package/dist/components/menu-item/UMenuItem.js +2 -2
  47. package/dist/components/option/UOption.js +2 -2
  48. package/dist/components/panel/UPanel.js +2 -2
  49. package/dist/components/popover/UPopover.js +2 -2
  50. package/dist/components/progress-bar/UProgressBar.js +2 -2
  51. package/dist/components/progress-ring/UProgressRing.js +2 -2
  52. package/dist/components/radio/URadio.js +2 -2
  53. package/dist/components/rating/URating.js +2 -2
  54. package/dist/components/select/USelect.js +2 -2
  55. package/dist/components/skeleton/USkeleton.js +2 -2
  56. package/dist/components/slider/USlider.js +3 -3
  57. package/dist/components/spinner/USpinner.js +2 -2
  58. package/dist/components/split-panel/USplitPanel.js +2 -2
  59. package/dist/components/switch/USwitch.js +2 -2
  60. package/dist/components/tab/UTab.js +2 -2
  61. package/dist/components/tab-panel/UTabPanel.js +2 -2
  62. package/dist/components/tag/UTag.js +2 -2
  63. package/dist/components/text/UText.js +2 -2
  64. package/dist/components/textarea/UTextarea.js +2 -2
  65. package/dist/components/tooltip/UTooltip.js +2 -2
  66. package/dist/components/tree/UTree.js +2 -2
  67. package/dist/components/tree-item/UTreeItem.js +2 -2
  68. package/dist/components/tree-item/UTreeItem.styles.js +2 -0
  69. package/dist/index.js +1 -1
  70. package/dist/utilities/BrowserStorage.js +3 -3
  71. package/dist/utilities/Locale.d.ts +1 -1
  72. package/package.json +2 -1
  73. package/skills/iyulab-components/references/utilities/browser-storage.md +18 -5
  74. package/skills/iyulab-components/references/utilities/theme.md +1 -1
@@ -30,7 +30,7 @@ var BrowserStorage = class {
30
30
  sameSite: this.options.sameSite,
31
31
  partitioned: this.options.partitioned
32
32
  });
33
- else throw new Error(`Unsupported storage type`);
33
+ else throw new Error(`Unsupported storage type: "${this.options.type}" (expected "localStorage" or "cookie")`);
34
34
  } catch (e) {
35
35
  console.error("[BrowserStorage Error: set]", e);
36
36
  }
@@ -45,7 +45,7 @@ var BrowserStorage = class {
45
45
  try {
46
46
  if (this.options.type === "localStorage") return window.localStorage.getItem(key);
47
47
  else if (this.options.type === "cookie") return (await window.cookieStore.get({ name: key }))?.value || null;
48
- else throw new Error(`Unsupported storage type`);
48
+ else throw new Error(`Unsupported storage type: "${this.options.type}" (expected "localStorage" or "cookie")`);
49
49
  } catch (e) {
50
50
  console.error("[BrowserStorage Error: get]", e);
51
51
  return null;
@@ -60,7 +60,7 @@ var BrowserStorage = class {
60
60
  try {
61
61
  if (this.options.type === "localStorage") window.localStorage.removeItem(key);
62
62
  else if (this.options.type === "cookie") await window.cookieStore.delete({ name: key });
63
- else throw new Error(`Unsupported storage type`);
63
+ else throw new Error(`Unsupported storage type: "${this.options.type}" (expected "localStorage" or "cookie")`);
64
64
  } catch (e) {
65
65
  console.error("[BrowserStorage Error: remove]", e);
66
66
  }
@@ -12,7 +12,7 @@ export type SupportedLocale = 'en' | 'ko' | 'ja' | 'zh-CN' | 'zh-TW' | 'es' | 'f
12
12
  /** 내장 로케일은 자동완성되지만, 임의의 BCP47 태그도 그대로 받는다. */
13
13
  export type LocaleTag = SupportedLocale | (string & {});
14
14
  /** 라이브러리가 제공하는 chrome 문자열 키. 지금은 검증 메시지뿐이지만 이후 다른 UI 문구도 추가될 수 있다. */
15
- export type LocaleMessageKey = 'valueMissing' | 'badInput' | 'typeMismatch' | 'patternMismatch' | 'rangeUnderflow' | 'rangeOverflow' | 'stepMismatch' | 'tooShort' | 'tooLong' | 'increment' | 'decrement' | 'clear' | 'today' | 'time' | 'showPassword' | 'hidePassword' | 'previousSlide' | 'nextSlide' | 'goToSlide';
15
+ export type LocaleMessageKey = 'valueMissing' | 'badInput' | 'typeMismatch' | 'patternMismatch' | 'rangeUnderflow' | 'rangeOverflow' | 'stepMismatch' | 'tooShort' | 'tooLong' | 'increment' | 'decrement' | 'clear' | 'today' | 'time' | 'showPassword' | 'hidePassword' | 'previousSlide' | 'nextSlide' | 'goToSlide' | 'chooseDate' | 'previousMonth' | 'nextMonth' | 'close' | 'copy' | 'copied';
16
16
  type LocaleTable = Record<LocaleMessageKey, string>;
17
17
  /**
18
18
  * 한 패키지(또는 앱 영역)의 문자열 묶음.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@iyulab/components",
3
3
  "description": "web-components library based on lit-element made by iyulab",
4
- "version": "1.35.0",
4
+ "version": "1.35.6",
5
5
  "keywords": [
6
6
  "iyulab",
7
7
  "components",
@@ -47,6 +47,7 @@
47
47
  "./plugins/*": "./dist/plugins/*"
48
48
  },
49
49
  "scripts": {
50
+ "preversion": "node -e \"if(require('fs').existsSync('../../scripts/preversion-check.mjs'))require('child_process').execFileSync('node',['../../scripts/preversion-check.mjs'],{stdio:'inherit'})\"",
50
51
  "start": "vite --force",
51
52
  "test": "vitest run",
52
53
  "test:browser": "vitest run --project=browser",
@@ -6,6 +6,11 @@ import { BrowserStorage } from '@iyulab/components';
6
6
 
7
7
  Unified key-value storage API over `localStorage` or browser cookies.
8
8
 
9
+ ⚠ Cookie storage uses the [Cookie Store API](https://developer.mozilla.org/en-US/docs/Web/API/CookieStore)
10
+ (`window.cookieStore`) — supported in Chromium browsers, not yet in Safari or Firefox as of
11
+ writing. `new BrowserStorage({ type: 'cookie' })` throws `"Cookies are not supported in this
12
+ browser."` where it's unavailable; `localStorage` has no such restriction.
13
+
9
14
  ## Usage
10
15
 
11
16
  ```ts
@@ -20,7 +25,7 @@ await storage.remove('theme');
20
25
  const cookieStorage = new BrowserStorage({
21
26
  type: 'cookie',
22
27
  path: '/',
23
- maxAge: 60 * 60 * 24 * 30 // 30 days
28
+ expires: Date.now() + 30 * 24 * 60 * 60 * 1000 // 30 days, ms since epoch
24
29
  });
25
30
 
26
31
  await cookieStorage.set('session', 'abc123');
@@ -37,7 +42,10 @@ await cookieStorage.set('session', 'abc123');
37
42
  ## Types
38
43
 
39
44
  ```ts
40
- type BrowserStorageOptions = LocalStorageOptions | CookieOptions;
45
+ type BrowserStorageOptions = (LocalStorageOptions | CookieOptions) & {
46
+ /** Prefix prepended to every key. */
47
+ prefix?: string;
48
+ };
41
49
 
42
50
  interface LocalStorageOptions {
43
51
  type: 'localStorage';
@@ -46,9 +54,14 @@ interface LocalStorageOptions {
46
54
  interface CookieOptions {
47
55
  type: 'cookie';
48
56
  path?: string;
49
- domain?: string;
50
- maxAge?: number;
57
+ domain?: string | null;
58
+ /** Expiry as ms since epoch (`DOMHighResTimeStamp`). Omit for a session cookie. */
59
+ expires?: DOMHighResTimeStamp | null;
51
60
  sameSite?: 'strict' | 'lax' | 'none';
52
- secure?: boolean;
61
+ /** Partitioned cookie (CHIPS) — isolates the cookie per top-level site in a third-party context. */
62
+ partitioned?: boolean;
53
63
  }
54
64
  ```
65
+
66
+ Only `'localStorage'` and `'cookie'` are valid `type` values — there is no `'sessionStorage'`
67
+ storage backend.
@@ -16,7 +16,7 @@ await Theme.init({
16
16
  useBuiltIn: true, // inject bundled CSS variables (default: true)
17
17
  store: { // persist to storage (optional)
18
18
  type: 'localStorage',
19
- key: 'theme'
19
+ prefix: 'myapp-'
20
20
  },
21
21
  debug: false
22
22
  });