@iyulab/components 1.37.0 → 1.38.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.
Files changed (108) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/dist/components/UFloatingElement.d.ts +7 -3
  3. package/dist/components/UFloatingElement.js +1 -1
  4. package/dist/plugins/vite-plugin-react-wrapper.js +31 -11
  5. package/dist/react/UAlert.d.ts +3 -3
  6. package/dist/react/UAlert.js +1 -1
  7. package/dist/react/UAvatar.d.ts +1 -1
  8. package/dist/react/UAvatar.js +1 -1
  9. package/dist/react/UBadge.d.ts +1 -1
  10. package/dist/react/UBadge.js +1 -1
  11. package/dist/react/UBreadcrumb.d.ts +1 -1
  12. package/dist/react/UBreadcrumb.js +1 -1
  13. package/dist/react/UBreadcrumbItem.d.ts +2 -2
  14. package/dist/react/UBreadcrumbItem.js +1 -1
  15. package/dist/react/UButton.d.ts +1 -1
  16. package/dist/react/UButton.js +1 -1
  17. package/dist/react/UButtonGroup.d.ts +1 -1
  18. package/dist/react/UButtonGroup.js +1 -1
  19. package/dist/react/UCard.d.ts +1 -1
  20. package/dist/react/UCard.js +1 -1
  21. package/dist/react/UCarousel.d.ts +1 -1
  22. package/dist/react/UCarousel.js +1 -1
  23. package/dist/react/UCheckbox.d.ts +1 -1
  24. package/dist/react/UCheckbox.js +1 -1
  25. package/dist/react/UChip.d.ts +3 -3
  26. package/dist/react/UChip.js +1 -1
  27. package/dist/react/UCopyButton.d.ts +1 -1
  28. package/dist/react/UCopyButton.js +1 -1
  29. package/dist/react/UDatePicker.d.ts +1 -1
  30. package/dist/react/UDatePicker.js +1 -1
  31. package/dist/react/UDialog.d.ts +3 -3
  32. package/dist/react/UDialog.js +1 -1
  33. package/dist/react/UDivider.d.ts +1 -1
  34. package/dist/react/UDivider.js +1 -1
  35. package/dist/react/UDrawer.d.ts +3 -3
  36. package/dist/react/UDrawer.js +1 -1
  37. package/dist/react/UExpander.d.ts +3 -3
  38. package/dist/react/UExpander.js +1 -1
  39. package/dist/react/UField.d.ts +1 -1
  40. package/dist/react/UField.js +1 -1
  41. package/dist/react/UFileInput.d.ts +1 -1
  42. package/dist/react/UFileInput.js +1 -1
  43. package/dist/react/UForm.d.ts +1 -1
  44. package/dist/react/UForm.js +1 -1
  45. package/dist/react/UIcon.d.ts +1 -1
  46. package/dist/react/UIcon.js +1 -1
  47. package/dist/react/UIconButton.d.ts +1 -1
  48. package/dist/react/UIconButton.js +1 -1
  49. package/dist/react/UInput.d.ts +1 -1
  50. package/dist/react/UInput.js +1 -1
  51. package/dist/react/UMenu.d.ts +1 -1
  52. package/dist/react/UMenu.js +1 -1
  53. package/dist/react/UMenuItem.d.ts +2 -2
  54. package/dist/react/UMenuItem.js +1 -1
  55. package/dist/react/UOption.d.ts +1 -1
  56. package/dist/react/UOption.js +1 -1
  57. package/dist/react/UPanel.d.ts +1 -1
  58. package/dist/react/UPanel.js +1 -1
  59. package/dist/react/UPopover.d.ts +3 -3
  60. package/dist/react/UPopover.js +1 -1
  61. package/dist/react/UProgressBar.d.ts +1 -1
  62. package/dist/react/UProgressBar.js +1 -1
  63. package/dist/react/UProgressRing.d.ts +1 -1
  64. package/dist/react/UProgressRing.js +1 -1
  65. package/dist/react/URadio.d.ts +1 -1
  66. package/dist/react/URadio.js +1 -1
  67. package/dist/react/URating.d.ts +1 -1
  68. package/dist/react/URating.js +1 -1
  69. package/dist/react/USelect.d.ts +1 -1
  70. package/dist/react/USelect.js +1 -1
  71. package/dist/react/USkeleton.d.ts +1 -1
  72. package/dist/react/USkeleton.js +1 -1
  73. package/dist/react/USlider.d.ts +1 -1
  74. package/dist/react/USlider.js +1 -1
  75. package/dist/react/USpinner.d.ts +1 -1
  76. package/dist/react/USpinner.js +1 -1
  77. package/dist/react/USplitPanel.d.ts +2 -2
  78. package/dist/react/USplitPanel.js +1 -1
  79. package/dist/react/USwitch.d.ts +1 -1
  80. package/dist/react/USwitch.js +1 -1
  81. package/dist/react/UTab.d.ts +2 -2
  82. package/dist/react/UTab.js +1 -1
  83. package/dist/react/UTabPanel.d.ts +1 -1
  84. package/dist/react/UTabPanel.js +1 -1
  85. package/dist/react/UTag.d.ts +1 -1
  86. package/dist/react/UTag.js +1 -1
  87. package/dist/react/UText.d.ts +1 -1
  88. package/dist/react/UText.js +1 -1
  89. package/dist/react/UTextarea.d.ts +1 -1
  90. package/dist/react/UTextarea.js +1 -1
  91. package/dist/react/UTooltip.d.ts +3 -3
  92. package/dist/react/UTooltip.js +1 -1
  93. package/dist/react/UTree.d.ts +1 -1
  94. package/dist/react/UTree.js +1 -1
  95. package/dist/react/UTreeItem.d.ts +5 -5
  96. package/dist/react/UTreeItem.js +1 -1
  97. package/dist/utilities/Locale.d.ts +1 -1
  98. package/dist/utilities/Locale.js +13 -3
  99. package/dist/utilities/format.d.ts +7 -2
  100. package/dist/utilities/format.js +7 -2
  101. package/package.json +2 -1
  102. package/skills/iyulab-components/SKILL.md +1 -0
  103. package/skills/iyulab-components/references/components/popover.md +5 -1
  104. package/skills/iyulab-components/references/components/tooltip.md +5 -1
  105. package/skills/iyulab-components/references/utilities/browser-storage.md +5 -0
  106. package/skills/iyulab-components/references/utilities/elements.md +17 -0
  107. package/skills/iyulab-components/references/utilities/format.md +73 -0
  108. package/skills/iyulab-components/references/utilities/locale.md +5 -1
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { UMenu as UMenuElement } from '../components/menu/UMenu';
2
+ import { UMenu as UMenuElement } from '@iyulab/components/dist/components/menu/UMenu.js';
3
3
 
4
4
  export declare const UMenu: React.ForwardRefExoticComponent<
5
5
  Omit<Partial<UMenuElement>, keyof React.HTMLAttributes<UMenuElement>>
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { createComponent } from '@lit/react';
3
- import { UMenu as UMenuElement } from '../components/menu/UMenu.js';
3
+ import { UMenu as UMenuElement } from '@iyulab/components/dist/components/menu/UMenu.js';
4
4
 
5
5
  export const UMenu = createComponent({
6
6
  react: React,
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
- import { UMenuItem as UMenuItemElement } from '../components/menu-item/UMenuItem';
3
- import { type PickEventDetail } from '../events/PickEvent';
2
+ import { UMenuItem as UMenuItemElement } from '@iyulab/components/dist/components/menu-item/UMenuItem.js';
3
+ import { type PickEventDetail } from '@iyulab/components/dist/events/PickEvent.js';
4
4
 
5
5
  export declare const UMenuItem: React.ForwardRefExoticComponent<
6
6
  Omit<Partial<UMenuItemElement>, keyof React.HTMLAttributes<UMenuItemElement>>
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { createComponent } from '@lit/react';
3
- import { UMenuItem as UMenuItemElement } from '../components/menu-item/UMenuItem.js';
3
+ import { UMenuItem as UMenuItemElement } from '@iyulab/components/dist/components/menu-item/UMenuItem.js';
4
4
 
5
5
  export const UMenuItem = createComponent({
6
6
  react: React,
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { UOption as UOptionElement } from '../components/option/UOption';
2
+ import { UOption as UOptionElement } from '@iyulab/components/dist/components/option/UOption.js';
3
3
 
4
4
  export declare const UOption: React.ForwardRefExoticComponent<
5
5
  Omit<Partial<UOptionElement>, keyof React.HTMLAttributes<UOptionElement>>
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { createComponent } from '@lit/react';
3
- import { UOption as UOptionElement } from '../components/option/UOption.js';
3
+ import { UOption as UOptionElement } from '@iyulab/components/dist/components/option/UOption.js';
4
4
 
5
5
  export const UOption = createComponent({
6
6
  react: React,
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { UPanel as UPanelElement } from '../components/panel/UPanel';
2
+ import { UPanel as UPanelElement } from '@iyulab/components/dist/components/panel/UPanel.js';
3
3
 
4
4
  export declare const UPanel: React.ForwardRefExoticComponent<
5
5
  Omit<Partial<UPanelElement>, keyof React.HTMLAttributes<UPanelElement>>
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { createComponent } from '@lit/react';
3
- import { UPanel as UPanelElement } from '../components/panel/UPanel.js';
3
+ import { UPanel as UPanelElement } from '@iyulab/components/dist/components/panel/UPanel.js';
4
4
 
5
5
  export const UPanel = createComponent({
6
6
  react: React,
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
- import { UPopover as UPopoverElement } from '../components/popover/UPopover';
3
- import { type ShowEventDetail } from '../events/ShowEvent';
4
- import { type HideEventDetail } from '../events/HideEvent';
2
+ import { UPopover as UPopoverElement } from '@iyulab/components/dist/components/popover/UPopover.js';
3
+ import { type ShowEventDetail } from '@iyulab/components/dist/events/ShowEvent.js';
4
+ import { type HideEventDetail } from '@iyulab/components/dist/events/HideEvent.js';
5
5
 
6
6
  export declare const UPopover: React.ForwardRefExoticComponent<
7
7
  Omit<Partial<UPopoverElement>, keyof React.HTMLAttributes<UPopoverElement>>
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { createComponent } from '@lit/react';
3
- import { UPopover as UPopoverElement } from '../components/popover/UPopover.js';
3
+ import { UPopover as UPopoverElement } from '@iyulab/components/dist/components/popover/UPopover.js';
4
4
 
5
5
  export const UPopover = createComponent({
6
6
  react: React,
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { UProgressBar as UProgressBarElement } from '../components/progress-bar/UProgressBar';
2
+ import { UProgressBar as UProgressBarElement } from '@iyulab/components/dist/components/progress-bar/UProgressBar.js';
3
3
 
4
4
  export declare const UProgressBar: React.ForwardRefExoticComponent<
5
5
  Omit<Partial<UProgressBarElement>, keyof React.HTMLAttributes<UProgressBarElement>>
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { createComponent } from '@lit/react';
3
- import { UProgressBar as UProgressBarElement } from '../components/progress-bar/UProgressBar.js';
3
+ import { UProgressBar as UProgressBarElement } from '@iyulab/components/dist/components/progress-bar/UProgressBar.js';
4
4
 
5
5
  export const UProgressBar = createComponent({
6
6
  react: React,
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { UProgressRing as UProgressRingElement } from '../components/progress-ring/UProgressRing';
2
+ import { UProgressRing as UProgressRingElement } from '@iyulab/components/dist/components/progress-ring/UProgressRing.js';
3
3
 
4
4
  export declare const UProgressRing: React.ForwardRefExoticComponent<
5
5
  Omit<Partial<UProgressRingElement>, keyof React.HTMLAttributes<UProgressRingElement>>
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { createComponent } from '@lit/react';
3
- import { UProgressRing as UProgressRingElement } from '../components/progress-ring/UProgressRing.js';
3
+ import { UProgressRing as UProgressRingElement } from '@iyulab/components/dist/components/progress-ring/UProgressRing.js';
4
4
 
5
5
  export const UProgressRing = createComponent({
6
6
  react: React,
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { URadio as URadioElement } from '../components/radio/URadio';
2
+ import { URadio as URadioElement } from '@iyulab/components/dist/components/radio/URadio.js';
3
3
 
4
4
  export declare const URadio: React.ForwardRefExoticComponent<
5
5
  Omit<Partial<URadioElement>, keyof React.HTMLAttributes<URadioElement>>
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { createComponent } from '@lit/react';
3
- import { URadio as URadioElement } from '../components/radio/URadio.js';
3
+ import { URadio as URadioElement } from '@iyulab/components/dist/components/radio/URadio.js';
4
4
 
5
5
  export const URadio = createComponent({
6
6
  react: React,
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { URating as URatingElement } from '../components/rating/URating';
2
+ import { URating as URatingElement } from '@iyulab/components/dist/components/rating/URating.js';
3
3
 
4
4
  export declare const URating: React.ForwardRefExoticComponent<
5
5
  Omit<Partial<URatingElement>, keyof React.HTMLAttributes<URatingElement>>
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { createComponent } from '@lit/react';
3
- import { URating as URatingElement } from '../components/rating/URating.js';
3
+ import { URating as URatingElement } from '@iyulab/components/dist/components/rating/URating.js';
4
4
 
5
5
  export const URating = createComponent({
6
6
  react: React,
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { USelect as USelectElement } from '../components/select/USelect';
2
+ import { USelect as USelectElement } from '@iyulab/components/dist/components/select/USelect.js';
3
3
 
4
4
  export declare const USelect: React.ForwardRefExoticComponent<
5
5
  Omit<Partial<USelectElement>, keyof React.HTMLAttributes<USelectElement>>
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { createComponent } from '@lit/react';
3
- import { USelect as USelectElement } from '../components/select/USelect.js';
3
+ import { USelect as USelectElement } from '@iyulab/components/dist/components/select/USelect.js';
4
4
 
5
5
  export const USelect = createComponent({
6
6
  react: React,
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { USkeleton as USkeletonElement } from '../components/skeleton/USkeleton';
2
+ import { USkeleton as USkeletonElement } from '@iyulab/components/dist/components/skeleton/USkeleton.js';
3
3
 
4
4
  export declare const USkeleton: React.ForwardRefExoticComponent<
5
5
  Omit<Partial<USkeletonElement>, keyof React.HTMLAttributes<USkeletonElement>>
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { createComponent } from '@lit/react';
3
- import { USkeleton as USkeletonElement } from '../components/skeleton/USkeleton.js';
3
+ import { USkeleton as USkeletonElement } from '@iyulab/components/dist/components/skeleton/USkeleton.js';
4
4
 
5
5
  export const USkeleton = createComponent({
6
6
  react: React,
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { USlider as USliderElement } from '../components/slider/USlider';
2
+ import { USlider as USliderElement } from '@iyulab/components/dist/components/slider/USlider.js';
3
3
 
4
4
  export declare const USlider: React.ForwardRefExoticComponent<
5
5
  Omit<Partial<USliderElement>, keyof React.HTMLAttributes<USliderElement>>
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { createComponent } from '@lit/react';
3
- import { USlider as USliderElement } from '../components/slider/USlider.js';
3
+ import { USlider as USliderElement } from '@iyulab/components/dist/components/slider/USlider.js';
4
4
 
5
5
  export const USlider = createComponent({
6
6
  react: React,
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { USpinner as USpinnerElement } from '../components/spinner/USpinner';
2
+ import { USpinner as USpinnerElement } from '@iyulab/components/dist/components/spinner/USpinner.js';
3
3
 
4
4
  export declare const USpinner: React.ForwardRefExoticComponent<
5
5
  Omit<Partial<USpinnerElement>, keyof React.HTMLAttributes<USpinnerElement>>
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { createComponent } from '@lit/react';
3
- import { USpinner as USpinnerElement } from '../components/spinner/USpinner.js';
3
+ import { USpinner as USpinnerElement } from '@iyulab/components/dist/components/spinner/USpinner.js';
4
4
 
5
5
  export const USpinner = createComponent({
6
6
  react: React,
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
- import { USplitPanel as USplitPanelElement } from '../components/split-panel/USplitPanel';
3
- import { type ShiftEventDetail } from '../events/ShiftEvent';
2
+ import { USplitPanel as USplitPanelElement } from '@iyulab/components/dist/components/split-panel/USplitPanel.js';
3
+ import { type ShiftEventDetail } from '@iyulab/components/dist/events/ShiftEvent.js';
4
4
 
5
5
  export declare const USplitPanel: React.ForwardRefExoticComponent<
6
6
  Omit<Partial<USplitPanelElement>, keyof React.HTMLAttributes<USplitPanelElement>>
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { createComponent } from '@lit/react';
3
- import { USplitPanel as USplitPanelElement } from '../components/split-panel/USplitPanel.js';
3
+ import { USplitPanel as USplitPanelElement } from '@iyulab/components/dist/components/split-panel/USplitPanel.js';
4
4
 
5
5
  export const USplitPanel = createComponent({
6
6
  react: React,
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { USwitch as USwitchElement } from '../components/switch/USwitch';
2
+ import { USwitch as USwitchElement } from '@iyulab/components/dist/components/switch/USwitch.js';
3
3
 
4
4
  export declare const USwitch: React.ForwardRefExoticComponent<
5
5
  Omit<Partial<USwitchElement>, keyof React.HTMLAttributes<USwitchElement>>
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { createComponent } from '@lit/react';
3
- import { USwitch as USwitchElement } from '../components/switch/USwitch.js';
3
+ import { USwitch as USwitchElement } from '@iyulab/components/dist/components/switch/USwitch.js';
4
4
 
5
5
  export const USwitch = createComponent({
6
6
  react: React,
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
- import { UTab as UTabElement } from '../components/tab/UTab';
3
- import { type RemoveEventDetail } from '../events/RemoveEvent';
2
+ import { UTab as UTabElement } from '@iyulab/components/dist/components/tab/UTab.js';
3
+ import { type RemoveEventDetail } from '@iyulab/components/dist/events/RemoveEvent.js';
4
4
 
5
5
  export declare const UTab: React.ForwardRefExoticComponent<
6
6
  Omit<Partial<UTabElement>, keyof React.HTMLAttributes<UTabElement>>
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { createComponent } from '@lit/react';
3
- import { UTab as UTabElement } from '../components/tab/UTab.js';
3
+ import { UTab as UTabElement } from '@iyulab/components/dist/components/tab/UTab.js';
4
4
 
5
5
  export const UTab = createComponent({
6
6
  react: React,
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { UTabPanel as UTabPanelElement } from '../components/tab-panel/UTabPanel';
2
+ import { UTabPanel as UTabPanelElement } from '@iyulab/components/dist/components/tab-panel/UTabPanel.js';
3
3
 
4
4
  export declare const UTabPanel: React.ForwardRefExoticComponent<
5
5
  Omit<Partial<UTabPanelElement>, keyof React.HTMLAttributes<UTabPanelElement>>
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { createComponent } from '@lit/react';
3
- import { UTabPanel as UTabPanelElement } from '../components/tab-panel/UTabPanel.js';
3
+ import { UTabPanel as UTabPanelElement } from '@iyulab/components/dist/components/tab-panel/UTabPanel.js';
4
4
 
5
5
  export const UTabPanel = createComponent({
6
6
  react: React,
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { UTag as UTagElement } from '../components/tag/UTag';
2
+ import { UTag as UTagElement } from '@iyulab/components/dist/components/tag/UTag.js';
3
3
 
4
4
  export declare const UTag: React.ForwardRefExoticComponent<
5
5
  Omit<Partial<UTagElement>, keyof React.HTMLAttributes<UTagElement>>
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { createComponent } from '@lit/react';
3
- import { UTag as UTagElement } from '../components/tag/UTag.js';
3
+ import { UTag as UTagElement } from '@iyulab/components/dist/components/tag/UTag.js';
4
4
 
5
5
  export const UTag = createComponent({
6
6
  react: React,
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { UText as UTextElement } from '../components/text/UText';
2
+ import { UText as UTextElement } from '@iyulab/components/dist/components/text/UText.js';
3
3
 
4
4
  export declare const UText: React.ForwardRefExoticComponent<
5
5
  Omit<Partial<UTextElement>, keyof React.HTMLAttributes<UTextElement>>
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { createComponent } from '@lit/react';
3
- import { UText as UTextElement } from '../components/text/UText.js';
3
+ import { UText as UTextElement } from '@iyulab/components/dist/components/text/UText.js';
4
4
 
5
5
  export const UText = createComponent({
6
6
  react: React,
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { UTextarea as UTextareaElement } from '../components/textarea/UTextarea';
2
+ import { UTextarea as UTextareaElement } from '@iyulab/components/dist/components/textarea/UTextarea.js';
3
3
 
4
4
  export declare const UTextarea: React.ForwardRefExoticComponent<
5
5
  Omit<Partial<UTextareaElement>, keyof React.HTMLAttributes<UTextareaElement>>
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { createComponent } from '@lit/react';
3
- import { UTextarea as UTextareaElement } from '../components/textarea/UTextarea.js';
3
+ import { UTextarea as UTextareaElement } from '@iyulab/components/dist/components/textarea/UTextarea.js';
4
4
 
5
5
  export const UTextarea = createComponent({
6
6
  react: React,
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
- import { UTooltip as UTooltipElement } from '../components/tooltip/UTooltip';
3
- import { type ShowEventDetail } from '../events/ShowEvent';
4
- import { type HideEventDetail } from '../events/HideEvent';
2
+ import { UTooltip as UTooltipElement } from '@iyulab/components/dist/components/tooltip/UTooltip.js';
3
+ import { type ShowEventDetail } from '@iyulab/components/dist/events/ShowEvent.js';
4
+ import { type HideEventDetail } from '@iyulab/components/dist/events/HideEvent.js';
5
5
 
6
6
  export declare const UTooltip: React.ForwardRefExoticComponent<
7
7
  Omit<Partial<UTooltipElement>, keyof React.HTMLAttributes<UTooltipElement>>
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { createComponent } from '@lit/react';
3
- import { UTooltip as UTooltipElement } from '../components/tooltip/UTooltip.js';
3
+ import { UTooltip as UTooltipElement } from '@iyulab/components/dist/components/tooltip/UTooltip.js';
4
4
 
5
5
  export const UTooltip = createComponent({
6
6
  react: React,
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { UTree as UTreeElement } from '../components/tree/UTree';
2
+ import { UTree as UTreeElement } from '@iyulab/components/dist/components/tree/UTree.js';
3
3
 
4
4
  export declare const UTree: React.ForwardRefExoticComponent<
5
5
  Omit<Partial<UTreeElement>, keyof React.HTMLAttributes<UTreeElement>>
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { createComponent } from '@lit/react';
3
- import { UTree as UTreeElement } from '../components/tree/UTree.js';
3
+ import { UTree as UTreeElement } from '@iyulab/components/dist/components/tree/UTree.js';
4
4
 
5
5
  export const UTree = createComponent({
6
6
  react: React,
@@ -1,9 +1,9 @@
1
1
  import React from 'react';
2
- import { UTreeItem as UTreeItemElement } from '../components/tree-item/UTreeItem';
3
- import { type ExpandEventDetail } from '../events/ExpandEvent';
4
- import { type CollapseEventDetail } from '../events/CollapseEvent';
5
- import { type PickEventDetail } from '../events/PickEvent';
6
- import { type CheckEventDetail } from '../events/CheckEvent';
2
+ import { UTreeItem as UTreeItemElement } from '@iyulab/components/dist/components/tree-item/UTreeItem.js';
3
+ import { type ExpandEventDetail } from '@iyulab/components/dist/events/ExpandEvent.js';
4
+ import { type CollapseEventDetail } from '@iyulab/components/dist/events/CollapseEvent.js';
5
+ import { type PickEventDetail } from '@iyulab/components/dist/events/PickEvent.js';
6
+ import { type CheckEventDetail } from '@iyulab/components/dist/events/CheckEvent.js';
7
7
 
8
8
  export declare const UTreeItem: React.ForwardRefExoticComponent<
9
9
  Omit<Partial<UTreeItemElement>, keyof React.HTMLAttributes<UTreeItemElement>>
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { createComponent } from '@lit/react';
3
- import { UTreeItem as UTreeItemElement } from '../components/tree-item/UTreeItem.js';
3
+ import { UTreeItem as UTreeItemElement } from '@iyulab/components/dist/components/tree-item/UTreeItem.js';
4
4
 
5
5
  export const UTreeItem = createComponent({
6
6
  react: React,
@@ -47,7 +47,7 @@ export declare class Locale {
47
47
  private constructor();
48
48
  /** 전역 활성 로케일을 지정합니다. */
49
49
  static set(locale: LocaleTag): void;
50
- /** 전역 활성 로케일을 반환합니다 (초기값은 브라우저 언어 자동 감지, 실패 시 'en'). */
50
+ /** 전역 활성 로케일을 반환합니다 (초기값은 `<html lang>` → 브라우저 언어 자동 감지, 실패 시 'en'). */
51
51
  static get(): LocaleTag;
52
52
  /**
53
53
  * 로케일 하나의 메시지 테이블(전체 또는 일부)을 등록합니다.
@@ -32,10 +32,20 @@ var builtins = new Map(Object.entries(/* #__PURE__ */ Object.assign({
32
32
  return [(path.split("/").pop()?.replace(".json", "") || "").toLowerCase(), mod];
33
33
  }));
34
34
  var overrides = /* @__PURE__ */ new Map();
35
- /** 브라우저 환경이면 `navigator.language`/`document.lang`으로 초기 로케일을 추측한다. */
35
+ /**
36
+ * 초기 로케일을 `document.documentElement.lang` → `navigator.language` → `'en'` 순으로 추측한다.
37
+ *
38
+ * ⚠**순서가 계약이다.** `<html lang>` 은 HTML 명세상 **문서 언어에 대한 저자의 선언**이고,
39
+ * 보조기술은 그것으로 발음 규칙을 고른다(WCAG 3.1.1 Language of Page / 3.1.2 Language of
40
+ * Parts). `navigator.language` 는 그 선언이 **없을 때**의 사용자 선호 폴백이지 저자 선언을
41
+ * 덮어쓸 근거가 아니다 — 덮어쓰면 `lang="en"` 문서가 다른 언어의 접근성 이름을 내보내고,
42
+ * 스크린리더는 그것을 영어 발음 규칙으로 읽으려 한다.
43
+ *
44
+ * 자동 감지가 맞지 않는 앱은 `Locale.set()` 으로 언제든 덮어쓸 수 있다.
45
+ */
36
46
  function detectLocale() {
37
- if (typeof window !== "undefined" && typeof navigator !== "undefined" && navigator.language) return navigator.language;
38
47
  if (typeof document !== "undefined" && document.documentElement?.lang) return document.documentElement.lang;
48
+ if (typeof window !== "undefined" && typeof navigator !== "undefined" && navigator.language) return navigator.language;
39
49
  return "en";
40
50
  }
41
51
  var active = detectLocale();
@@ -72,7 +82,7 @@ var Locale = class {
72
82
  static set(locale) {
73
83
  active = locale;
74
84
  }
75
- /** 전역 활성 로케일을 반환합니다 (초기값은 브라우저 언어 자동 감지, 실패 시 'en'). */
85
+ /** 전역 활성 로케일을 반환합니다 (초기값은 `<html lang>` → 브라우저 언어 자동 감지, 실패 시 'en'). */
76
86
  static get() {
77
87
  return active;
78
88
  }
@@ -19,7 +19,12 @@ export declare function formatCurrency(value: number, currency: string, options?
19
19
  * already-Invalid `Date`) degrades to `String(value)` rather than throwing —
20
20
  * `Intl.DateTimeFormat.format()` throws `RangeError` on an Invalid Date, and this
21
21
  * utility is called from render paths where an uncaught throw blanks the whole
22
- * component. Same degrade-instead-of-throw contract as `formatCurrency`'s
23
- * missing-`currency` fallback.
22
+ * component.
23
+ *
24
+ * ⚠This degrade is **deliberately not symmetric** with {@link formatCurrency}, which
25
+ * throws `RangeError` on an invalid currency code. A date arrives as *data* — from an
26
+ * API, a user, a stale cache — so a bad one is an expected runtime state. A currency
27
+ * code is written by the developer at the call site, so a bad one is a bug that should
28
+ * surface at the first render rather than be papered over with a wrong-looking amount.
24
29
  */
25
30
  export declare function formatDate(value: Date | string, options?: Intl.DateTimeFormatOptions, locale?: LocaleTag): string;
@@ -49,8 +49,13 @@ function formatCurrency(value, currency, options, locale) {
49
49
  * already-Invalid `Date`) degrades to `String(value)` rather than throwing —
50
50
  * `Intl.DateTimeFormat.format()` throws `RangeError` on an Invalid Date, and this
51
51
  * utility is called from render paths where an uncaught throw blanks the whole
52
- * component. Same degrade-instead-of-throw contract as `formatCurrency`'s
53
- * missing-`currency` fallback.
52
+ * component.
53
+ *
54
+ * ⚠This degrade is **deliberately not symmetric** with {@link formatCurrency}, which
55
+ * throws `RangeError` on an invalid currency code. A date arrives as *data* — from an
56
+ * API, a user, a stale cache — so a bad one is an expected runtime state. A currency
57
+ * code is written by the developer at the call site, so a bad one is a bug that should
58
+ * surface at the first render rather than be papered over with a wrong-looking amount.
54
59
  */
55
60
  function formatDate(value, options, locale) {
56
61
  const date = resolve(value);
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.37.0",
4
+ "version": "1.38.0",
5
5
  "keywords": [
6
6
  "iyulab",
7
7
  "components",
@@ -90,6 +90,7 @@
90
90
  "eslint": "^9.39.4",
91
91
  "eslint-plugin-lit": "^2.3.1",
92
92
  "globals": "^17.7.0",
93
+ "happy-dom": "^20.10.6",
93
94
  "react": "^19.2.7",
94
95
  "typescript": "^5.9.3",
95
96
  "typescript-eslint": "^8.64.0",
@@ -126,6 +126,7 @@ import { UButton, UInput } from '@iyulab/components/react';
126
126
  - [`converters`](./references/utilities/converters.md) — Lit property attribute converters (array, JSON, date, url…)
127
127
  - [`Locale`](./references/utilities/locale.md) — Validation-message locale registry and lookup utility
128
128
  - [`elements`](./references/utilities/elements.md) — Shadow-DOM-aware DOM query helpers
129
+ - [`format`](./references/utilities/format.md) — Locale-aware number, currency and date formatting
129
130
  - [`OverlayManager`](./references/utilities/overlay-manager.md) — Internal overlay stack and z-index manager
130
131
 
131
132
  ---
@@ -49,7 +49,11 @@ Inherits all `UFloatingElement` properties (see [floating.md](../extensions/floa
49
49
  | `autofocus` | `boolean` | `false` | ✓ | Focus first focusable element on open |
50
50
 
51
51
  > **Placement fallback**: whenever `placement` is set, floating-ui's `flip` middleware is
52
- > always applied — if the placed side has no room, the element switches to the opposite side.
52
+ > always applied — if the placed side has no room, the element switches to another side.
53
+ > The opposite side on the same axis is tried first; only when that is also out of room does
54
+ > it move to the perpendicular axis, so `right-end` falls back through `left-end` to
55
+ > `top-end`/`bottom-end`. That last step is what a full-width trigger needs — with room on
56
+ > neither the left nor the right, staying on the horizontal axis means going off-screen.
53
57
  > `shift` is a separate, narrower correction: it nudges the element along the cross axis
54
58
  > *within* whichever side ended up being used. Neither can be turned off independently.
55
59
 
@@ -51,7 +51,11 @@ Inherits all `UFloatingElement` properties (see [floating.md](../extensions/floa
51
51
  | `tracking` | `boolean` | `false` | ✓ | Follow mouse cursor position |
52
52
 
53
53
  > **Placement fallback**: whenever `placement` is set, floating-ui's `flip` middleware is
54
- > always applied — if the placed side has no room, the element switches to the opposite side.
54
+ > always applied — if the placed side has no room, the element switches to another side.
55
+ > The opposite side on the same axis is tried first; only when that is also out of room does
56
+ > it move to the perpendicular axis, so `right-end` falls back through `left-end` to
57
+ > `top-end`/`bottom-end`. That last step is what a full-width trigger needs — with room on
58
+ > neither the left nor the right, staying on the horizontal axis means going off-screen.
55
59
  > `shift` is a separate, narrower correction: it nudges the element along the cross axis
56
60
  > *within* whichever side ended up being used. Neither can be turned off independently.
57
61
 
@@ -11,6 +11,11 @@ Unified key-value storage API over `localStorage` or browser cookies.
11
11
  writing. `new BrowserStorage({ type: 'cookie' })` throws `"Cookies are not supported in this
12
12
  browser."` where it's unavailable; `localStorage` has no such restriction.
13
13
 
14
+ ⚠ The constructor also throws `"BrowserStorage can only be used in a browser environment."`
15
+ when there is no `window` at all. Construct it inside a browser-only path (an event handler,
16
+ `connectedCallback`, an effect) rather than at module scope, or an SSR/prerender build fails
17
+ on import alone.
18
+
14
19
  ## Usage
15
20
 
16
21
  ```ts
@@ -37,3 +37,20 @@ Same as `querySelectorWithin` but returns all matches.
37
37
  ```ts
38
38
  const inputs = querySelectorAllWithin(this, 'u-input');
39
39
  ```
40
+
41
+ ---
42
+
43
+ ### `isCoarsePointer(event)`
44
+
45
+ Returns `true` for a pointer with no lasting hover state — touch and pen.
46
+
47
+ Such a pointer fires `pointerleave` immediately after `pointerenter` on a tap, so a
48
+ hover-triggered surface that does not check this opens and closes in the same gesture.
49
+ Branch on it before treating `pointerenter` as "the user is hovering here".
50
+
51
+ ```ts
52
+ private onPointerEnter(e: PointerEvent) {
53
+ if (isCoarsePointer(e)) return; // let the click/tap handler own this instead
54
+ this.open = true;
55
+ }
56
+ ```