@ecopages/radiant-ui 0.1.0-beta.3 → 0.1.0-beta.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 (179) hide show
  1. package/dist/components/ui/autocomplete/autocomplete.css +135 -0
  2. package/dist/components/ui/autocomplete/autocomplete.d.ts +21 -0
  3. package/dist/components/ui/autocomplete/autocomplete.script.d.ts +42 -0
  4. package/dist/components/ui/autocomplete/index.d.ts +2 -0
  5. package/dist/components/ui/autocomplete/index.js +2 -0
  6. package/dist/components/ui/autocomplete/index.js.map +7 -0
  7. package/dist/components/ui/avatar/avatar.css +58 -0
  8. package/dist/components/ui/avatar/avatar.d.ts +13 -0
  9. package/dist/components/ui/avatar/index.d.ts +1 -0
  10. package/dist/components/ui/avatar/index.js +2 -0
  11. package/dist/components/ui/avatar/index.js.map +7 -0
  12. package/dist/components/ui/button-group/button-group.css +16 -0
  13. package/dist/components/ui/button-group/button-group.d.ts +10 -0
  14. package/dist/components/ui/button-group/index.d.ts +1 -0
  15. package/dist/components/ui/button-group/index.js +2 -0
  16. package/dist/components/ui/button-group/index.js.map +7 -0
  17. package/dist/components/ui/calendar/calendar.css +318 -0
  18. package/dist/components/ui/calendar/calendar.d.ts +5 -0
  19. package/dist/components/ui/calendar/calendar.script.d.ts +89 -0
  20. package/dist/components/ui/calendar/index.d.ts +2 -0
  21. package/dist/components/ui/calendar/index.js +2 -0
  22. package/dist/components/ui/calendar/index.js.map +7 -0
  23. package/dist/components/ui/chip/chip.css +47 -0
  24. package/dist/components/ui/chip/chip.d.ts +11 -0
  25. package/dist/components/ui/chip/index.d.ts +1 -0
  26. package/dist/components/ui/chip/index.js +2 -0
  27. package/dist/components/ui/chip/index.js.map +7 -0
  28. package/dist/components/ui/chip-list/chip-list.css +15 -0
  29. package/dist/components/ui/chip-list/chip-list.d.ts +10 -0
  30. package/dist/components/ui/chip-list/index.d.ts +1 -0
  31. package/dist/components/ui/chip-list/index.js +2 -0
  32. package/dist/components/ui/chip-list/index.js.map +7 -0
  33. package/dist/components/ui/combobox/combobox.css +42 -80
  34. package/dist/components/ui/combobox/combobox.d.ts +12 -20
  35. package/dist/components/ui/combobox/combobox.script.d.ts +15 -14
  36. package/dist/components/ui/combobox/index.d.ts +2 -1
  37. package/dist/components/ui/combobox/index.js +1 -1
  38. package/dist/components/ui/combobox/index.js.map +4 -4
  39. package/dist/components/ui/date-field/date-field.css +184 -0
  40. package/dist/components/ui/date-field/date-field.d.ts +10 -0
  41. package/dist/components/ui/date-field/date-field.script.d.ts +108 -0
  42. package/dist/components/ui/date-field/index.d.ts +2 -0
  43. package/dist/components/ui/date-field/index.js +2 -0
  44. package/dist/components/ui/date-field/index.js.map +7 -0
  45. package/dist/components/ui/date-range-picker/date-range-picker.css +194 -0
  46. package/dist/components/ui/date-range-picker/date-range-picker.d.ts +10 -0
  47. package/dist/components/ui/date-range-picker/date-range-picker.script.d.ts +99 -0
  48. package/dist/components/ui/date-range-picker/index.d.ts +2 -0
  49. package/dist/components/ui/date-range-picker/index.js +2 -0
  50. package/dist/components/ui/date-range-picker/index.js.map +7 -0
  51. package/dist/components/ui/dialog/dialog.css +1 -1
  52. package/dist/components/ui/feed/feed.css +169 -5
  53. package/dist/components/ui/feed/feed.d.ts +54 -11
  54. package/dist/components/ui/feed/index.d.ts +1 -2
  55. package/dist/components/ui/feed/index.js +1 -1
  56. package/dist/components/ui/feed/index.js.map +4 -4
  57. package/dist/components/ui/field/index.js +1 -1
  58. package/dist/components/ui/field/index.js.map +3 -3
  59. package/dist/components/ui/form/form-field.test.d.ts +1 -0
  60. package/dist/components/ui/form/index.js +1 -1
  61. package/dist/components/ui/form/index.js.map +3 -3
  62. package/dist/components/ui/heading/heading.css +107 -0
  63. package/dist/components/ui/heading/heading.d.ts +30 -0
  64. package/dist/components/ui/heading/index.d.ts +1 -0
  65. package/dist/components/ui/heading/index.js +2 -0
  66. package/dist/components/ui/heading/index.js.map +7 -0
  67. package/dist/components/ui/headline/headline.css +43 -0
  68. package/dist/components/ui/headline/headline.d.ts +16 -0
  69. package/dist/components/ui/headline/index.d.ts +1 -0
  70. package/dist/components/ui/headline/index.js +2 -0
  71. package/dist/components/ui/headline/index.js.map +7 -0
  72. package/dist/components/ui/input/index.js +1 -1
  73. package/dist/components/ui/input/index.js.map +4 -4
  74. package/dist/components/ui/input/input.d.ts +8 -1
  75. package/dist/components/ui/label/index.js +1 -1
  76. package/dist/components/ui/label/index.js.map +2 -2
  77. package/dist/components/ui/listbox/index.d.ts +1 -1
  78. package/dist/components/ui/listbox/index.js +1 -1
  79. package/dist/components/ui/listbox/index.js.map +4 -4
  80. package/dist/components/ui/listbox/listbox.css +34 -10
  81. package/dist/components/ui/listbox/listbox.d.ts +12 -4
  82. package/dist/components/ui/listbox/listbox.script.d.ts +12 -0
  83. package/dist/components/ui/menu-button/index.js +1 -1
  84. package/dist/components/ui/menu-button/index.js.map +4 -4
  85. package/dist/components/ui/menu-button/menu-button.css +24 -8
  86. package/dist/components/ui/menu-button/menu-button.script.d.ts +3 -4
  87. package/dist/components/ui/menubar/index.js +1 -1
  88. package/dist/components/ui/menubar/index.js.map +4 -4
  89. package/dist/components/ui/menubar/menubar.css +40 -22
  90. package/dist/components/ui/menubar/menubar.script.d.ts +6 -1
  91. package/dist/components/ui/number-field/index.d.ts +2 -0
  92. package/dist/components/ui/number-field/index.js +2 -0
  93. package/dist/components/ui/number-field/index.js.map +7 -0
  94. package/dist/components/ui/number-field/number-field.css +185 -0
  95. package/dist/components/ui/number-field/number-field.d.ts +43 -0
  96. package/dist/components/ui/number-field/number-field.script.d.ts +104 -0
  97. package/dist/components/ui/popover/index.d.ts +4 -0
  98. package/dist/components/ui/popover/index.js +2 -0
  99. package/dist/components/ui/popover/index.js.map +7 -0
  100. package/dist/components/ui/popover/popover.css +132 -0
  101. package/dist/components/ui/popover/popover.d.ts +15 -0
  102. package/dist/components/ui/popover/popover.script.d.ts +85 -0
  103. package/dist/components/ui/select/index.d.ts +3 -0
  104. package/dist/components/ui/select/index.js +2 -0
  105. package/dist/components/ui/select/index.js.map +7 -0
  106. package/dist/components/ui/select/select.css +216 -0
  107. package/dist/components/ui/select/select.d.ts +54 -0
  108. package/dist/components/ui/select/select.script.d.ts +106 -0
  109. package/dist/components/ui/shared/collection-navigation.d.ts +8 -0
  110. package/dist/components/ui/shared/collection-navigation.test.d.ts +1 -0
  111. package/dist/components/ui/shared/control-toggle.css +132 -0
  112. package/dist/components/ui/shared/field-label.d.ts +9 -0
  113. package/dist/components/ui/shared/floating-position.d.ts +13 -2
  114. package/dist/components/ui/shared/listbox-popover-behavior.d.ts +47 -0
  115. package/dist/components/ui/shared/listbox-popover-behavior.test.d.ts +1 -0
  116. package/dist/components/ui/shared/multi-value.d.ts +4 -0
  117. package/dist/components/ui/shared/popover-controller.d.ts +35 -0
  118. package/dist/components/ui/shared/popover-controller.test.d.ts +1 -0
  119. package/dist/components/ui/shared/popover.css +123 -0
  120. package/dist/components/ui/shared/portal.d.ts +7 -0
  121. package/dist/components/ui/shared/portal.test.d.ts +1 -0
  122. package/dist/components/ui/slider/index.js +1 -1
  123. package/dist/components/ui/slider/index.js.map +3 -3
  124. package/dist/components/ui/slider/slider.script.d.ts +5 -12
  125. package/dist/components/ui/tag-group/index.d.ts +2 -0
  126. package/dist/components/ui/tag-group/index.js +2 -0
  127. package/dist/components/ui/tag-group/index.js.map +7 -0
  128. package/dist/components/ui/tag-group/tag-group.css +184 -0
  129. package/dist/components/ui/tag-group/tag-group.d.ts +28 -0
  130. package/dist/components/ui/tag-group/tag-group.script.d.ts +65 -0
  131. package/dist/components/ui/textarea/index.js +1 -1
  132. package/dist/components/ui/textarea/index.js.map +2 -2
  133. package/dist/components/ui/toc/toc.css +1 -1
  134. package/dist/components/ui/tooltip/index.js +1 -1
  135. package/dist/components/ui/tooltip/index.js.map +3 -3
  136. package/dist/index.d.ts +14 -1
  137. package/dist/index.js +1 -1
  138. package/dist/index.js.map +4 -4
  139. package/dist/lib/icons/calendar.d.ts +3 -0
  140. package/dist/lib/icons/chevron-down.d.ts +3 -0
  141. package/dist/lib/icons/index.d.ts +3 -0
  142. package/dist/lib/icons/types.d.ts +4 -0
  143. package/dist/lib/intl/locale.d.ts +3 -0
  144. package/dist/lib/intl-date/calendar.d.ts +25 -0
  145. package/dist/lib/intl-date/formatters.d.ts +13 -0
  146. package/dist/lib/intl-date/index.d.ts +12 -0
  147. package/dist/lib/intl-date/iso.d.ts +6 -0
  148. package/dist/lib/intl-date/months.d.ts +12 -0
  149. package/dist/lib/intl-date/parts.d.ts +15 -0
  150. package/dist/lib/intl-date/parts.test.d.ts +1 -0
  151. package/dist/lib/intl-date/segments.d.ts +32 -0
  152. package/dist/lib/intl-date/segments.test.d.ts +1 -0
  153. package/dist/lib/intl-date/selection.d.ts +39 -0
  154. package/dist/lib/intl-date/selection.test.d.ts +1 -0
  155. package/dist/lib/intl-date/types.d.ts +17 -0
  156. package/dist/lib/intl-number/format.d.ts +9 -0
  157. package/dist/lib/intl-number/index.d.ts +2 -0
  158. package/dist/lib/intl-number/range.d.ts +3 -0
  159. package/dist/lib/intrinsic.d.ts +13 -0
  160. package/dist/lib/mask/date-mask.d.ts +29 -0
  161. package/dist/lib/mask/date-mask.test.d.ts +1 -0
  162. package/dist/lib/mask/index.d.ts +4 -0
  163. package/dist/lib/mask/input-mask.d.ts +52 -0
  164. package/dist/lib/mask/input-mask.test.d.ts +1 -0
  165. package/dist/lib/text-filter.d.ts +7 -0
  166. package/dist/lib/text-filter.test.d.ts +1 -0
  167. package/dist/styles/radiant-ui-core.css +131 -1
  168. package/dist/styles/radiant-ui.css +142 -1
  169. package/dist/styles/styles.css +4504 -2395
  170. package/dist/styles/tailwind.css +142 -1
  171. package/dist/styles/tokens/typography/default.css +8 -0
  172. package/package.json +106 -15
  173. package/dist/components/ui/feed/feed.script.d.ts +0 -22
  174. package/dist/components/ui/spinbutton/index.d.ts +0 -2
  175. package/dist/components/ui/spinbutton/index.js +0 -2
  176. package/dist/components/ui/spinbutton/index.js.map +0 -7
  177. package/dist/components/ui/spinbutton/spinbutton.css +0 -69
  178. package/dist/components/ui/spinbutton/spinbutton.d.ts +0 -5
  179. package/dist/components/ui/spinbutton/spinbutton.script.d.ts +0 -64
@@ -0,0 +1,184 @@
1
+ /*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
2
+ @layer properties;
3
+ rui-tag-group {
4
+ display: inline-flex;
5
+ }
6
+ @layer components {
7
+ .rui-tag-group__list {
8
+ display: flex;
9
+ flex-wrap: wrap;
10
+ gap: var(--spacing-1, var(--space-1));
11
+ }
12
+ .rui-tag {
13
+ display: inline-flex;
14
+ max-width: 100%;
15
+ align-items: center;
16
+ gap: var(--spacing-1, var(--space-1));
17
+ border-radius: var(--radius-pill, var(--radius-pill));
18
+ border-style: var(--tw-border-style);
19
+ border-width: 1px;
20
+ border-color: var(--color-border, var(--border));
21
+ background-color: var(--color-surface, var(--surface));
22
+ padding-inline: var(--spacing-2, var(--space-2));
23
+ padding-block: calc(var(--spacing, 0.25rem) * 0.5);
24
+ font-size: var(--text-xs, var(--text-xs));
25
+ line-height: var(--tw-leading, var(--text-xs--line-height, calc(1 / 0.75)));
26
+ color: var(--color-on-background, var(--on-background));
27
+ }
28
+ .rui-tag[aria-selected='true'] {
29
+ border-color: var(--color-primary, var(--primary));
30
+ background-color: var(--color-primary, var(--primary));
31
+ @media (forced-colors: active) {
32
+ background-image: none;
33
+ }
34
+ background-image: var(--sheen-image);
35
+ @media (forced-colors: active) {
36
+ background-image: none;
37
+ }
38
+ color: var(--color-on-primary, var(--on-primary));
39
+ }
40
+ .rui-tag[aria-disabled='true'] {
41
+ cursor: not-allowed;
42
+ opacity: var(--opacity-muted, var(--opacity-muted));
43
+ }
44
+ .rui-tag:focus-visible {
45
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
46
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
47
+ --tw-ring-color: var(--color-focus-ring, var(--focus-ring));
48
+ --tw-outline-style: none;
49
+ outline-style: none;
50
+ }
51
+ .rui-tag__remove {
52
+ display: inline-flex;
53
+ flex-shrink: 0;
54
+ cursor: pointer;
55
+ align-items: center;
56
+ justify-content: center;
57
+ border-radius: var(--radius-pill, var(--radius-pill));
58
+ border-style: var(--tw-border-style);
59
+ border-width: 0px;
60
+ background-color: transparent;
61
+ padding: 0px;
62
+ color: inherit;
63
+ width: var(--spacing-4, var(--space-4));
64
+ height: var(--spacing-4, var(--space-4));
65
+ min-width: 0px;
66
+ --tw-leading: 1;
67
+ line-height: 1;
68
+ }
69
+ .rui-tag__remove:hover {
70
+ background-color: color-mix(in srgb, oklch(0% 0 0) 10%, transparent);
71
+ @supports (color: color-mix(in lab, red, red)) {
72
+ background-color: color-mix(in oklab, var(--color-black, oklch(0% 0 0)) 10%, transparent);
73
+ }
74
+ @media (prefers-color-scheme: dark) {
75
+ background-color: color-mix(in srgb, oklch(100% 0 0) 10%, transparent);
76
+ @supports (color: color-mix(in lab, red, red)) {
77
+ background-color: color-mix(in oklab, var(--color-white, oklch(100% 0 0)) 10%, transparent);
78
+ }
79
+ }
80
+ }
81
+ .rui-tag__remove:focus-visible {
82
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
83
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
84
+ --tw-ring-color: var(--color-focus-ring, var(--focus-ring));
85
+ --tw-outline-style: none;
86
+ outline-style: none;
87
+ }
88
+ }
89
+ @property --tw-border-style {
90
+ syntax: "*";
91
+ inherits: false;
92
+ initial-value: solid;
93
+ }
94
+ @property --tw-shadow {
95
+ syntax: "*";
96
+ inherits: false;
97
+ initial-value: 0 0 #0000;
98
+ }
99
+ @property --tw-shadow-color {
100
+ syntax: "*";
101
+ inherits: false;
102
+ }
103
+ @property --tw-shadow-alpha {
104
+ syntax: "<percentage>";
105
+ inherits: false;
106
+ initial-value: 100%;
107
+ }
108
+ @property --tw-inset-shadow {
109
+ syntax: "*";
110
+ inherits: false;
111
+ initial-value: 0 0 #0000;
112
+ }
113
+ @property --tw-inset-shadow-color {
114
+ syntax: "*";
115
+ inherits: false;
116
+ }
117
+ @property --tw-inset-shadow-alpha {
118
+ syntax: "<percentage>";
119
+ inherits: false;
120
+ initial-value: 100%;
121
+ }
122
+ @property --tw-ring-color {
123
+ syntax: "*";
124
+ inherits: false;
125
+ }
126
+ @property --tw-ring-shadow {
127
+ syntax: "*";
128
+ inherits: false;
129
+ initial-value: 0 0 #0000;
130
+ }
131
+ @property --tw-inset-ring-color {
132
+ syntax: "*";
133
+ inherits: false;
134
+ }
135
+ @property --tw-inset-ring-shadow {
136
+ syntax: "*";
137
+ inherits: false;
138
+ initial-value: 0 0 #0000;
139
+ }
140
+ @property --tw-ring-inset {
141
+ syntax: "*";
142
+ inherits: false;
143
+ }
144
+ @property --tw-ring-offset-width {
145
+ syntax: "<length>";
146
+ inherits: false;
147
+ initial-value: 0px;
148
+ }
149
+ @property --tw-ring-offset-color {
150
+ syntax: "*";
151
+ inherits: false;
152
+ initial-value: #fff;
153
+ }
154
+ @property --tw-ring-offset-shadow {
155
+ syntax: "*";
156
+ inherits: false;
157
+ initial-value: 0 0 #0000;
158
+ }
159
+ @property --tw-leading {
160
+ syntax: "*";
161
+ inherits: false;
162
+ }
163
+ @layer properties {
164
+ @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
165
+ *, ::before, ::after, ::backdrop {
166
+ --tw-border-style: solid;
167
+ --tw-shadow: 0 0 #0000;
168
+ --tw-shadow-color: initial;
169
+ --tw-shadow-alpha: 100%;
170
+ --tw-inset-shadow: 0 0 #0000;
171
+ --tw-inset-shadow-color: initial;
172
+ --tw-inset-shadow-alpha: 100%;
173
+ --tw-ring-color: initial;
174
+ --tw-ring-shadow: 0 0 #0000;
175
+ --tw-inset-ring-color: initial;
176
+ --tw-inset-ring-shadow: 0 0 #0000;
177
+ --tw-ring-inset: initial;
178
+ --tw-ring-offset-width: 0px;
179
+ --tw-ring-offset-color: #fff;
180
+ --tw-ring-offset-shadow: 0 0 #0000;
181
+ --tw-leading: initial;
182
+ }
183
+ }
184
+ }
@@ -0,0 +1,28 @@
1
+ import type { JsxHtmlPropsWithChildren, JsxRenderable } from '@ecopages/jsx';
2
+ import type { RuiTagGroupProps } from './tag-group.script';
3
+ export type RuiTagListProps = JsxHtmlPropsWithChildren<{
4
+ slot?: string;
5
+ }>;
6
+ /** Flex-wrapped container for `RuiTag` children. */
7
+ export declare function RuiTagList({ children, class: className, ...props }: RuiTagListProps): JsxRenderable;
8
+ export type RuiTagProps = JsxHtmlPropsWithChildren<{
9
+ value?: string;
10
+ label?: string;
11
+ disabled?: boolean;
12
+ }>;
13
+ /** A single tag with optional remove button. */
14
+ export declare function RuiTag({ value, label, children, class: className, disabled, ...props }: RuiTagProps): JsxRenderable;
15
+ export type RuiTagRemoveProps = JsxHtmlPropsWithChildren<{
16
+ 'aria-label'?: string;
17
+ }>;
18
+ /** Remove button rendered inside `RuiTag`. */
19
+ export declare function RuiTagRemove({ children, class: className, 'aria-label': ariaLabel, ...props }: RuiTagRemoveProps): JsxRenderable;
20
+ export type RuiTagData = {
21
+ value: string;
22
+ label: JsxRenderable;
23
+ disabled?: boolean;
24
+ };
25
+ export declare const RuiTagGroup: import("@/lib/radiant-view").RadiantViewComponent<JsxHtmlPropsWithChildren<RuiTagGroupProps & {
26
+ slot?: string;
27
+ tags?: RuiTagData[];
28
+ }>>;
@@ -0,0 +1,65 @@
1
+ import { RadiantElement } from '@ecopages/radiant';
2
+ import type { EventEmitter } from '@ecopages/radiant/tools/event-emitter';
3
+ export type RuiTagGroupSelectionMode = 'single' | 'multiple';
4
+ export type RuiTagGroupItem = {
5
+ value: string;
6
+ label: string;
7
+ };
8
+ export type RuiTagGroupProps = {
9
+ value?: string;
10
+ label?: string;
11
+ disabled?: boolean;
12
+ selectionMode?: RuiTagGroupSelectionMode;
13
+ /** Disables selection when the parent component owns the selected values. */
14
+ embedded?: boolean;
15
+ };
16
+ export type RuiTagGroupChangeDetail = {
17
+ value: string;
18
+ };
19
+ export type RuiTagGroupRemoveDetail = {
20
+ value: string;
21
+ };
22
+ /**
23
+ * `<rui-tag-group>` — a focusable list of tags with optional selection and removal.
24
+ *
25
+ * Compose with `data-tag` items and optional `data-tag-remove` buttons inside each tag.
26
+ * Use inside `RuiSelectValue` to display multi-select chips.
27
+ *
28
+ * @see https://react-aria.adobe.com/TagGroup
29
+ * @element rui-tag-group
30
+ * @fires rui-change
31
+ * @fires rui-remove
32
+ */
33
+ export declare class RuiTagGroup extends RadiantElement {
34
+ value: string;
35
+ label: string;
36
+ disabled: boolean;
37
+ selectionMode: RuiTagGroupSelectionMode;
38
+ embedded: boolean;
39
+ changeEvent: EventEmitter<RuiTagGroupChangeDetail>;
40
+ removeEvent: EventEmitter<RuiTagGroupRemoveDetail>;
41
+ private readonly uid;
42
+ private managedItems;
43
+ private isMultiple;
44
+ private getSelectedValues;
45
+ private setSelectedValues;
46
+ private getList;
47
+ private getTags;
48
+ private getVisibleTags;
49
+ private getTagValue;
50
+ private getTagLabel;
51
+ private ensureTagIds;
52
+ private syncList;
53
+ private syncTags;
54
+ private selectTag;
55
+ private removeTag;
56
+ private initialize;
57
+ connectedCallback(): void;
58
+ onPropsUpdated(): void;
59
+ resync(): void;
60
+ setItems(items: RuiTagGroupItem[]): void;
61
+ onTagClick(event: Event): void;
62
+ onRemoveClick(event: Event): void;
63
+ onTagKeydown(event: KeyboardEvent): void;
64
+ render(): import("@ecopages/jsx").JsxRenderable;
65
+ }
@@ -1,2 +1,2 @@
1
- import{jsx as f}from"@ecopages/jsx/jsx-runtime";function u(...e){return e.filter(Boolean).join(" ")}var l=Symbol.for("@ecopages/storybook-radiant.viewModule");function o(e,i,t){let r=e;return r[l]=t,e}var n="data-rui-control";var s=new Set(["rui-combobox","rui-checkbox","rui-switch","rui-radio-group","rui-slider","rui-spinbutton","rui-listbox"]),p=`[${n}], ${Array.from(s).join(", ")}, input, textarea`;function a(e){let{size:i="md",class:t,rows:r=3,...c}=e;return f("textarea",{...c,rows:r,[n]:"","data-rui-control-type":"text",class:u("rui-textarea",`rui-textarea--${i}`,t)})}o(a,["./textarea.css"],import.meta.url);export{a as RuiTextarea};
1
+ import{jsx as c}from"@ecopages/jsx/jsx-runtime";function u(...e){return e.filter(Boolean).join(" ")}var f=Symbol.for("@ecopages/storybook-radiant.viewModule");function a(e,n,t){let r=e;return r[f]=t,e}var i="data-rui-control";var s=new Set(["rui-combobox","rui-date-field","rui-date-range-picker","rui-select","rui-tag-group","rui-checkbox","rui-switch","rui-radio-group","rui-slider","rui-number-field","rui-listbox"]),p=`[${i}], ${Array.from(s).join(", ")}, input, textarea`;function o(e){let{size:n="md",class:t,rows:r=3,...l}=e;return c("textarea",{...l,rows:r,[i]:"","data-rui-control-type":"text",class:u("rui-textarea",`rui-textarea--${n}`,t)})}a(o,["./textarea.css"],import.meta.url);export{o as RuiTextarea};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/ui/textarea/textarea.tsx", "../../../../src/lib/cx.ts", "../../../../src/lib/radiant-view.ts", "../../../../src/components/ui/form/control-protocol.ts"],
4
- "sourcesContent": ["import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nimport { attachRadiantStylesheets } from \"@/lib/radiant-view\";\nimport { RUI_CONTROL_ATTR } from \"../form/control-protocol\";\nexport function RuiTextarea(props) {\n const {\n size = \"md\",\n class: className,\n rows = 3,\n ...host\n } = props;\n return /* @__PURE__ */jsx(\"textarea\", {\n ...host,\n rows,\n ...{\n [RUI_CONTROL_ATTR]: \"\"\n },\n \"data-rui-control-type\": \"text\",\n class: cx(\"rui-textarea\", `rui-textarea--${size}`, className)\n });\n}\nattachRadiantStylesheets(RuiTextarea, [\"./textarea.css\"], import.meta.url);", "export function cx(...parts) {\n return parts.filter(Boolean).join(\" \");\n}", "const RADIANT_VIEW_ELEMENT = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.viewElement\");\nconst RADIANT_SCRIPT_MODULE = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.scriptModule\");\nconst RADIANT_SCRIPT_EXPORT = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.scriptExport\");\nconst RADIANT_VIEW_MODULE = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.viewModule\");\nfunction linkViewToElement(view, element) {\n view[RADIANT_VIEW_ELEMENT] = element;\n const ssrModule = element[RADIANT_SCRIPT_MODULE];\n if (ssrModule) {\n view[RADIANT_SCRIPT_MODULE] = ssrModule;\n view[RADIANT_SCRIPT_EXPORT] = element[RADIANT_SCRIPT_EXPORT] ?? element.name;\n }\n}\nexport function defineRadiantView(element, render, _options) {\n const view = args => render(args);\n linkViewToElement(view, element);\n return view;\n}\nexport function attachRadiantStylesheets(target, _stylesheets, moduleUrl) {\n const view = target;\n view[RADIANT_VIEW_MODULE] = moduleUrl;\n return target;\n}\nexport function syncRadiantViewMetadata(view) {\n const element = view[RADIANT_VIEW_ELEMENT];\n if (element) {\n linkViewToElement(view, element);\n }\n}", "export const RUI_CONTROL_ATTR = \"data-rui-control\";\nexport const RUI_FIELD_MANAGED_ATTR = \"data-rui-field-managed\";\nexport const RUI_FIELD_LABEL_ATTR = \"data-rui-field-label\";\nexport const RUI_FIELD_DESCRIPTION_ATTR = \"data-rui-field-description\";\nexport const RUI_FIELD_ERROR_ATTR = \"data-rui-field-error\";\nexport const RUI_FIELD_DEFAULT_VALUE_ATTR = \"data-default-value\";\nexport const RUI_FORM_DEFAULT_VALUES_ATTR = \"data-default-values\";\nconst HOST_CONTROL_TAGS = /* @__PURE__ */new Set([\"rui-combobox\", \"rui-checkbox\", \"rui-switch\", \"rui-radio-group\", \"rui-slider\", \"rui-spinbutton\", \"rui-listbox\"]);\nconst CONTROL_SELECTOR = `[${RUI_CONTROL_ATTR}], ${Array.from(HOST_CONTROL_TAGS).join(\", \")}, input, textarea`;\nfunction forEachFieldContentNode(root, visit) {\n const slotHost = root;\n const visited = /* @__PURE__ */new Set();\n const safeVisit = node => {\n if (visited.has(node)) {\n return;\n }\n visited.add(node);\n visit(node);\n };\n if (typeof slotHost.getSlotElements === \"function\") {\n for (const node of slotHost.getSlotElements()) {\n safeVisit(node);\n }\n }\n const renderRoot = root.querySelector(\".rui-field\") ?? root;\n for (const child of Array.from(renderRoot.children)) {\n safeVisit(child);\n }\n for (const node of renderRoot.querySelectorAll(\"*\")) {\n safeVisit(node);\n }\n for (const child of Array.from(root.children)) {\n safeVisit(child);\n }\n const shadow = root.shadowRoot;\n if (shadow) {\n for (const child of Array.from(shadow.children)) {\n safeVisit(child);\n }\n }\n}\nfunction queryFieldContent(root, selector) {\n let found = null;\n forEachFieldContentNode(root, node => {\n if (found || !(node instanceof HTMLElement)) {\n return;\n }\n if (node.matches(selector)) {\n found = node;\n return;\n }\n found = node.querySelector(selector);\n });\n return found;\n}\nfunction pickPrimaryFieldControl(candidates) {\n if (candidates.length === 0) {\n return null;\n }\n if (candidates.length === 1) {\n return candidates[0];\n }\n const active = document.activeElement;\n if (active instanceof HTMLElement) {\n for (const candidate of candidates) {\n if (candidate === active || candidate.contains(active)) {\n return candidate;\n }\n }\n }\n const visible = candidates.filter(el => el.isConnected && el.getClientRects().length > 0 && !el.closest('[hidden],[aria-hidden=\"true\"]'));\n const pool = visible.length > 0 ? visible : candidates.filter(el => el.isConnected);\n return pool[pool.length - 1] ?? candidates[candidates.length - 1];\n}\nfunction listFieldControlsInRenderTree(root) {\n const renderRoot = root.querySelector(\".rui-field\");\n if (!(renderRoot instanceof HTMLElement)) {\n return [];\n }\n return Array.from(renderRoot.querySelectorAll(CONTROL_SELECTOR)).filter(el => root.contains(el));\n}\nexport function findFieldControl(root) {\n const fromRenderTree = pickPrimaryFieldControl(listFieldControlsInRenderTree(root));\n if (fromRenderTree) {\n return fromRenderTree;\n }\n let found = null;\n forEachFieldContentNode(root, node => {\n if (found) {\n return;\n }\n const match = findControlInSubtree(node);\n if (match) {\n found = match;\n }\n });\n if (found) {\n return found;\n }\n const renderRoot = root.querySelector(\".rui-field\") ?? root;\n return findControlInSubtree(renderRoot);\n}\nfunction findControlInSubtree(node) {\n if (!(node instanceof HTMLElement)) {\n return null;\n }\n if (node.matches(`[${RUI_CONTROL_ATTR}]`)) {\n return node;\n }\n if (HOST_CONTROL_TAGS.has(node.localName)) {\n return node;\n }\n if (node instanceof HTMLInputElement || node instanceof HTMLTextAreaElement) {\n return node;\n }\n const nested = node.querySelector(CONTROL_SELECTOR);\n return nested;\n}\nexport function readControlValue(control) {\n if (control instanceof HTMLInputElement) {\n if (control.type === \"checkbox\") {\n return control.checked;\n }\n if (control.type === \"number\" || control.type === \"range\") {\n return control.value === \"\" ? \"\" : Number(control.value);\n }\n return control.value;\n }\n if (control instanceof HTMLTextAreaElement) {\n return control.value;\n }\n const host = resolveControlHost(control);\n if (host.localName === \"rui-checkbox\" || host.localName === \"rui-switch\") {\n const input = host.querySelector('input[type=\"checkbox\"]');\n if (input) {\n return input.checked;\n }\n return host.hasAttribute(\"checked\");\n }\n if (host.localName === \"rui-combobox\" || host.localName === \"rui-radio-group\" || host.localName === \"rui-listbox\") {\n return host.value ?? host.getAttribute(\"value\") ?? \"\";\n }\n if (host.localName === \"rui-slider\" || host.localName === \"rui-spinbutton\") {\n const propValue = host.value;\n if (typeof propValue === \"number\") {\n return propValue;\n }\n const raw = host.getAttribute(\"value\");\n return raw == null || raw === \"\" ? \"\" : Number(raw);\n }\n return host.getAttribute(\"value\") ?? \"\";\n}\nexport function writeControlValue(control, value) {\n if (control instanceof HTMLInputElement) {\n if (control.type === \"checkbox\") {\n control.checked = Boolean(value);\n const ce = control.closest(\"rui-checkbox, rui-switch\");\n if (ce) {\n if (value) {\n ce.setAttribute(\"checked\", \"\");\n } else {\n ce.removeAttribute(\"checked\");\n }\n }\n return;\n }\n control.value = value == null ? \"\" : String(value);\n return;\n }\n if (control instanceof HTMLTextAreaElement) {\n control.value = value == null ? \"\" : String(value);\n return;\n }\n const host = resolveControlHost(control);\n if (host.localName === \"rui-checkbox\" || host.localName === \"rui-switch\") {\n if (value) {\n host.setAttribute(\"checked\", \"\");\n } else {\n host.removeAttribute(\"checked\");\n }\n return;\n }\n host.setAttribute(\"value\", value == null ? \"\" : String(value));\n}\nfunction resolveControlHost(control) {\n if (control.hasAttribute(RUI_CONTROL_ATTR)) {\n const host = control.closest(Array.from(HOST_CONTROL_TAGS).join(\",\"));\n return host ?? control;\n }\n return control;\n}\nexport function findFieldLabel(root) {\n return queryFieldContent(root, `[${RUI_FIELD_LABEL_ATTR}], label.rui-label`);\n}\nexport function findFieldDescription(root) {\n return queryFieldContent(root, `[${RUI_FIELD_DESCRIPTION_ATTR}]`);\n}\nexport function findFieldError(root) {\n const all = findFieldErrorElements(root);\n return all[0] ?? null;\n}\nexport function findFieldErrorElements(root) {\n const renderRoot = root.querySelector(\".rui-field\");\n if (renderRoot instanceof HTMLElement) {\n const inRender = Array.from(renderRoot.querySelectorAll(`[${RUI_FIELD_ERROR_ATTR}]`));\n const visible = inRender.filter(el => el.getClientRects().length > 0);\n if (visible.length > 0) {\n return visible;\n }\n if (inRender.length > 0) {\n return inRender;\n }\n }\n const fromDom = Array.from(root.querySelectorAll(`[${RUI_FIELD_ERROR_ATTR}]`));\n if (fromDom.length > 0) {\n return fromDom;\n }\n const single = queryFieldContent(root, `[${RUI_FIELD_ERROR_ATTR}]`);\n return single ? [single] : [];\n}\nexport function wireFieldControlName(controlHost, ariaTarget, name) {\n if (!name) {\n return;\n }\n if (ariaTarget instanceof HTMLInputElement || ariaTarget instanceof HTMLTextAreaElement) {\n ariaTarget.name = name;\n }\n if (!controlHost) {\n return;\n }\n if (controlHost === ariaTarget) {\n return;\n }\n if (HOST_CONTROL_TAGS.has(controlHost.localName)) {\n controlHost.setAttribute(\"name\", name);\n }\n}\nexport function getAriaControlTarget(control) {\n if (control instanceof HTMLInputElement || control instanceof HTMLTextAreaElement) {\n return control;\n }\n if (control.hasAttribute(RUI_CONTROL_ATTR)) {\n return control;\n }\n const marked = control.querySelector(`[${RUI_CONTROL_ATTR}]`);\n if (marked) {\n return marked;\n }\n if (control.localName === \"rui-combobox\") {\n return control.querySelector(\"[data-combobox-input]\") ?? control;\n }\n if (control.localName === \"rui-spinbutton\") {\n return control.querySelector(\"[data-spinbutton-input], input\") ?? control;\n }\n if (control.localName === \"rui-slider\") {\n return control.querySelector('input[type=\"range\"]') ?? control;\n }\n if (control.localName === \"rui-checkbox\" || control.localName === \"rui-switch\") {\n return control.querySelector(\"input\") ?? control;\n }\n if (control.localName === \"rui-radio-group\") {\n const checked = control.querySelector('input[type=\"radio\"]:checked');\n const first = control.querySelector('input[type=\"radio\"]');\n return checked ?? first ?? control;\n }\n return control;\n}"],
5
- "mappings": "AAAA,OAAS,OAAAA,MAAW,4BCAb,SAASC,KAAMC,EAAO,CAC3B,OAAOA,EAAM,OAAO,OAAO,EAAE,KAAK,GAAG,CACvC,CCCA,IAAMC,EAAqC,OAAO,IAAI,wCAAwC,EAcvF,SAASC,EAAyBC,EAAQC,EAAcC,EAAW,CACxE,IAAMC,EAAOH,EACb,OAAAG,EAAKC,CAAmB,EAAIF,EACrBF,CACT,CCrBO,IAAMK,EAAmB,mBAOhC,IAAMC,EAAmC,IAAI,IAAI,CAAC,eAAgB,eAAgB,aAAc,kBAAmB,aAAc,iBAAkB,aAAa,CAAC,EAC3JC,EAAmB,IAAIC,CAAgB,MAAM,MAAM,KAAKF,CAAiB,EAAE,KAAK,IAAI,CAAC,oBHJpF,SAASG,EAAYC,EAAO,CACjC,GAAM,CACJ,KAAAC,EAAO,KACP,MAAOC,EACP,KAAAC,EAAO,EACP,GAAGC,CACL,EAAIJ,EACJ,OAAsBK,EAAI,WAAY,CACpC,GAAGD,EACH,KAAAD,EAEE,CAACG,CAAgB,EAAG,GAEtB,wBAAyB,OACzB,MAAOC,EAAG,eAAgB,iBAAiBN,CAAI,GAAIC,CAAS,CAC9D,CAAC,CACH,CACAM,EAAyBT,EAAa,CAAC,gBAAgB,EAAG,YAAY,GAAG",
4
+ "sourcesContent": ["import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nimport { attachRadiantStylesheets } from \"@/lib/radiant-view\";\nimport { RUI_CONTROL_ATTR } from \"../form/control-protocol\";\nexport function RuiTextarea(props) {\n const {\n size = \"md\",\n class: className,\n rows = 3,\n ...host\n } = props;\n return /* @__PURE__ */jsx(\"textarea\", {\n ...host,\n rows,\n ...{\n [RUI_CONTROL_ATTR]: \"\"\n },\n \"data-rui-control-type\": \"text\",\n class: cx(\"rui-textarea\", `rui-textarea--${size}`, className)\n });\n}\nattachRadiantStylesheets(RuiTextarea, [\"./textarea.css\"], import.meta.url);", "export function cx(...parts) {\n return parts.filter(Boolean).join(\" \");\n}", "const RADIANT_VIEW_ELEMENT = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.viewElement\");\nconst RADIANT_SCRIPT_MODULE = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.scriptModule\");\nconst RADIANT_SCRIPT_EXPORT = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.scriptExport\");\nconst RADIANT_VIEW_MODULE = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.viewModule\");\nfunction linkViewToElement(view, element) {\n view[RADIANT_VIEW_ELEMENT] = element;\n const ssrModule = element[RADIANT_SCRIPT_MODULE];\n if (ssrModule) {\n view[RADIANT_SCRIPT_MODULE] = ssrModule;\n view[RADIANT_SCRIPT_EXPORT] = element[RADIANT_SCRIPT_EXPORT] ?? element.name;\n }\n}\nexport function defineRadiantView(element, render, _options) {\n const view = args => render(args);\n linkViewToElement(view, element);\n return view;\n}\nexport function attachRadiantStylesheets(target, _stylesheets, moduleUrl) {\n const view = target;\n view[RADIANT_VIEW_MODULE] = moduleUrl;\n return target;\n}\nexport function syncRadiantViewMetadata(view) {\n const element = view[RADIANT_VIEW_ELEMENT];\n if (element) {\n linkViewToElement(view, element);\n }\n}", "export const RUI_CONTROL_ATTR = \"data-rui-control\";\nexport const RUI_FIELD_MANAGED_ATTR = \"data-rui-field-managed\";\nexport const RUI_FIELD_LABEL_ATTR = \"data-rui-field-label\";\nexport const RUI_FIELD_DESCRIPTION_ATTR = \"data-rui-field-description\";\nexport const RUI_FIELD_ERROR_ATTR = \"data-rui-field-error\";\nexport const RUI_FIELD_DEFAULT_VALUE_ATTR = \"data-default-value\";\nexport const RUI_FORM_DEFAULT_VALUES_ATTR = \"data-default-values\";\nconst HOST_CONTROL_TAGS = /* @__PURE__ */new Set([\"rui-combobox\", \"rui-date-field\", \"rui-date-range-picker\", \"rui-select\", \"rui-tag-group\", \"rui-checkbox\", \"rui-switch\", \"rui-radio-group\", \"rui-slider\", \"rui-number-field\", \"rui-listbox\"]);\nconst CONTROL_SELECTOR = `[${RUI_CONTROL_ATTR}], ${Array.from(HOST_CONTROL_TAGS).join(\", \")}, input, textarea`;\nconst stringValueAdapter = {\n read: host => {\n const value = Reflect.get(host, \"value\");\n return typeof value === \"string\" ? value : host.getAttribute(\"value\") ?? \"\";\n },\n write: (host, value) => {\n const next = value == null ? \"\" : String(value);\n host.setAttribute(\"value\", next);\n if (\"value\" in host) {\n Reflect.set(host, \"value\", next);\n }\n }\n};\nconst numberValueAdapter = {\n read: host => {\n const value = Reflect.get(host, \"value\");\n if (typeof value === \"number\") {\n return value;\n }\n const raw = host.getAttribute(\"value\");\n return raw == null || raw === \"\" ? \"\" : Number(raw);\n },\n write: (host, value) => {\n const next = value == null ? \"\" : String(value);\n host.setAttribute(\"value\", next);\n if (\"value\" in host) {\n Reflect.set(host, \"value\", value);\n }\n }\n};\nconst booleanValueAdapter = {\n read: host => {\n const input = host.querySelector('input[type=\"checkbox\"]');\n return input?.checked ?? host.hasAttribute(\"checked\");\n },\n write: (host, value) => {\n if (value) {\n host.setAttribute(\"checked\", \"\");\n } else {\n host.removeAttribute(\"checked\");\n }\n }\n};\nconst CONTROL_VALUE_ADAPTERS = /* @__PURE__ */new Map([[\"rui-checkbox\", booleanValueAdapter], [\"rui-switch\", booleanValueAdapter], [\"rui-combobox\", stringValueAdapter], [\"rui-date-field\", stringValueAdapter], [\"rui-date-range-picker\", stringValueAdapter], [\"rui-select\", stringValueAdapter], [\"rui-radio-group\", stringValueAdapter], [\"rui-listbox\", stringValueAdapter], [\"rui-tag-group\", stringValueAdapter], [\"rui-slider\", numberValueAdapter], [\"rui-number-field\", numberValueAdapter]]);\nfunction forEachFieldContentNode(root, visit) {\n const slotHost = root;\n const visited = /* @__PURE__ */new Set();\n const safeVisit = node => {\n if (visited.has(node)) {\n return;\n }\n visited.add(node);\n visit(node);\n };\n if (typeof slotHost.getSlotElements === \"function\") {\n for (const node of slotHost.getSlotElements()) {\n safeVisit(node);\n }\n }\n const renderRoot = root.querySelector(\".rui-field\") ?? root;\n for (const child of Array.from(renderRoot.children)) {\n safeVisit(child);\n }\n for (const node of renderRoot.querySelectorAll(\"*\")) {\n safeVisit(node);\n }\n for (const child of Array.from(root.children)) {\n safeVisit(child);\n }\n const shadow = root.shadowRoot;\n if (shadow) {\n for (const child of Array.from(shadow.children)) {\n safeVisit(child);\n }\n }\n}\nfunction queryFieldContent(root, selector) {\n let found = null;\n forEachFieldContentNode(root, node => {\n if (found || !(node instanceof HTMLElement)) {\n return;\n }\n if (node.matches(selector)) {\n found = node;\n return;\n }\n found = node.querySelector(selector);\n });\n return found;\n}\nfunction pickPrimaryFieldControl(candidates) {\n if (candidates.length === 0) {\n return null;\n }\n if (candidates.length === 1) {\n return candidates[0];\n }\n const hostControl = candidates.find(candidate => HOST_CONTROL_TAGS.has(candidate.localName));\n const markedControl = candidates.find(candidate => candidate.hasAttribute(RUI_CONTROL_ATTR));\n if (markedControl) {\n return markedControl;\n }\n if (hostControl) {\n return hostControl;\n }\n const active = document.activeElement;\n if (active instanceof HTMLElement) {\n for (const candidate of candidates) {\n if (candidate === active || candidate.contains(active)) {\n return candidate;\n }\n }\n }\n const visible = candidates.filter(el => el.isConnected && el.getClientRects().length > 0 && !el.closest('[hidden],[aria-hidden=\"true\"]'));\n const pool = visible.length > 0 ? visible : candidates.filter(el => el.isConnected);\n return pool[pool.length - 1] ?? candidates[candidates.length - 1];\n}\nfunction listFieldControlsInRenderTree(root) {\n const renderRoot = root.querySelector(\".rui-field\");\n if (!(renderRoot instanceof HTMLElement)) {\n return [];\n }\n return Array.from(renderRoot.querySelectorAll(CONTROL_SELECTOR)).filter(el => root.contains(el));\n}\nexport function findFieldControl(root) {\n const fromRenderTree = pickPrimaryFieldControl(listFieldControlsInRenderTree(root));\n if (fromRenderTree) {\n return fromRenderTree;\n }\n let found = null;\n forEachFieldContentNode(root, node => {\n if (found) {\n return;\n }\n const match = findControlInSubtree(node);\n if (match) {\n found = match;\n }\n });\n if (found) {\n return found;\n }\n const renderRoot = root.querySelector(\".rui-field\") ?? root;\n return findControlInSubtree(renderRoot);\n}\nfunction findControlInSubtree(node) {\n if (!(node instanceof HTMLElement)) {\n return null;\n }\n if (node.matches(`[${RUI_CONTROL_ATTR}]`)) {\n return node;\n }\n if (HOST_CONTROL_TAGS.has(node.localName)) {\n return node;\n }\n if (node instanceof HTMLInputElement || node instanceof HTMLTextAreaElement) {\n return node;\n }\n const nested = node.querySelector(CONTROL_SELECTOR);\n return nested;\n}\nexport function readControlValue(control) {\n if (control instanceof HTMLInputElement) {\n const host2 = resolveControlHost(control);\n const adapter = host2 === control ? void 0 : CONTROL_VALUE_ADAPTERS.get(host2.localName);\n if (adapter) {\n return adapter.read(host2);\n }\n if (control.type === \"checkbox\") {\n return control.checked;\n }\n if (control.type === \"number\" || control.type === \"range\") {\n return control.value === \"\" ? \"\" : Number(control.value);\n }\n return control.value;\n }\n if (control instanceof HTMLTextAreaElement) {\n return control.value;\n }\n const host = resolveControlHost(control);\n return CONTROL_VALUE_ADAPTERS.get(host.localName)?.read(host) ?? host.getAttribute(\"value\") ?? \"\";\n}\nexport function writeControlValue(control, value) {\n if (control instanceof HTMLInputElement) {\n const host2 = resolveControlHost(control);\n const adapter = host2 === control ? void 0 : CONTROL_VALUE_ADAPTERS.get(host2.localName);\n if (adapter) {\n adapter.write(host2, value);\n return;\n }\n if (control.type === \"checkbox\") {\n control.checked = Boolean(value);\n const ce = control.closest(\"rui-checkbox, rui-switch\");\n if (ce) {\n if (value) {\n ce.setAttribute(\"checked\", \"\");\n } else {\n ce.removeAttribute(\"checked\");\n }\n }\n return;\n }\n control.value = value == null ? \"\" : String(value);\n return;\n }\n if (control instanceof HTMLTextAreaElement) {\n control.value = value == null ? \"\" : String(value);\n return;\n }\n const host = resolveControlHost(control);\n CONTROL_VALUE_ADAPTERS.get(host.localName)?.write(host, value);\n}\nfunction resolveControlHost(control) {\n if (control.hasAttribute(RUI_CONTROL_ATTR)) {\n const host = control.closest(Array.from(HOST_CONTROL_TAGS).join(\",\"));\n return host ?? control;\n }\n return control;\n}\nexport function findFieldLabel(root) {\n return queryFieldContent(root, `[${RUI_FIELD_LABEL_ATTR}], label.rui-label`);\n}\nexport function findFieldDescription(root) {\n return queryFieldContent(root, `[${RUI_FIELD_DESCRIPTION_ATTR}]`);\n}\nexport function findFieldError(root) {\n const all = findFieldErrorElements(root);\n return all[0] ?? null;\n}\nexport function findFieldErrorElements(root) {\n const renderRoot = root.querySelector(\".rui-field\");\n if (renderRoot instanceof HTMLElement) {\n const inRender = Array.from(renderRoot.querySelectorAll(`[${RUI_FIELD_ERROR_ATTR}]`));\n const visible = inRender.filter(el => el.getClientRects().length > 0);\n if (visible.length > 0) {\n return visible;\n }\n if (inRender.length > 0) {\n return inRender;\n }\n }\n const fromDom = Array.from(root.querySelectorAll(`[${RUI_FIELD_ERROR_ATTR}]`));\n if (fromDom.length > 0) {\n return fromDom;\n }\n const single = queryFieldContent(root, `[${RUI_FIELD_ERROR_ATTR}]`);\n return single ? [single] : [];\n}\nexport function wireFieldControlName(controlHost, ariaTarget, name) {\n if (!name) {\n return;\n }\n if (ariaTarget instanceof HTMLInputElement || ariaTarget instanceof HTMLTextAreaElement) {\n ariaTarget.name = name;\n }\n if (!controlHost) {\n return;\n }\n if (controlHost === ariaTarget) {\n return;\n }\n if (HOST_CONTROL_TAGS.has(controlHost.localName)) {\n controlHost.setAttribute(\"name\", name);\n }\n}\nexport function getAriaControlTarget(control) {\n if (control instanceof HTMLInputElement || control instanceof HTMLTextAreaElement) {\n return control;\n }\n if (control.hasAttribute(RUI_CONTROL_ATTR)) {\n return control;\n }\n const marked = control.querySelector(`[${RUI_CONTROL_ATTR}]`);\n if (marked) {\n return marked;\n }\n if (control.localName === \"rui-combobox\") {\n return control.querySelector(\"[data-combobox-input]\") ?? control;\n }\n if (control.localName === \"rui-date-field\") {\n return control.querySelector(\"[data-date-field-input]\") ?? control;\n }\n if (control.localName === \"rui-date-range-picker\") {\n return control.querySelector(\"[data-range-start]\") ?? control;\n }\n if (control.localName === \"rui-select\") {\n return control.querySelector(\"[data-select-trigger]\") ?? control;\n }\n if (control.localName === \"rui-tag-group\") {\n return control.querySelector(\"[data-tag-list]\") ?? control;\n }\n if (control.localName === \"rui-number-field\") {\n return control.querySelector(\"[data-number-field-input], input\") ?? control;\n }\n if (control.localName === \"rui-slider\") {\n return control.querySelector('input[type=\"range\"]') ?? control;\n }\n if (control.localName === \"rui-checkbox\" || control.localName === \"rui-switch\") {\n return control.querySelector(\"input\") ?? control;\n }\n if (control.localName === \"rui-radio-group\") {\n const checked = control.querySelector('input[type=\"radio\"]:checked');\n const first = control.querySelector('input[type=\"radio\"]');\n return checked ?? first ?? control;\n }\n return control;\n}"],
5
+ "mappings": "AAAA,OAAS,OAAAA,MAAW,4BCAb,SAASC,KAAMC,EAAO,CAC3B,OAAOA,EAAM,OAAO,OAAO,EAAE,KAAK,GAAG,CACvC,CCCA,IAAMC,EAAqC,OAAO,IAAI,wCAAwC,EAcvF,SAASC,EAAyBC,EAAQC,EAAcC,EAAW,CACxE,IAAMC,EAAOH,EACb,OAAAG,EAAKC,CAAmB,EAAIF,EACrBF,CACT,CCrBO,IAAMK,EAAmB,mBAOhC,IAAMC,EAAmC,IAAI,IAAI,CAAC,eAAgB,iBAAkB,wBAAyB,aAAc,gBAAiB,eAAgB,aAAc,kBAAmB,aAAc,mBAAoB,aAAa,CAAC,EACvOC,EAAmB,IAAIC,CAAgB,MAAM,MAAM,KAAKF,CAAiB,EAAE,KAAK,IAAI,CAAC,oBHJpF,SAASG,EAAYC,EAAO,CACjC,GAAM,CACJ,KAAAC,EAAO,KACP,MAAOC,EACP,KAAAC,EAAO,EACP,GAAGC,CACL,EAAIJ,EACJ,OAAsBK,EAAI,WAAY,CACpC,GAAGD,EACH,KAAAD,EAEE,CAACG,CAAgB,EAAG,GAEtB,wBAAyB,OACzB,MAAOC,EAAG,eAAgB,iBAAiBN,CAAI,GAAIC,CAAS,CAC9D,CAAC,CACH,CACAM,EAAyBT,EAAa,CAAC,gBAAgB,EAAG,YAAY,GAAG",
6
6
  "names": ["jsx", "cx", "parts", "RADIANT_VIEW_MODULE", "attachRadiantStylesheets", "target", "_stylesheets", "moduleUrl", "view", "RADIANT_VIEW_MODULE", "RUI_CONTROL_ATTR", "HOST_CONTROL_TAGS", "CONTROL_SELECTOR", "RUI_CONTROL_ATTR", "RuiTextarea", "props", "size", "className", "rows", "host", "jsx", "RUI_CONTROL_ATTR", "cx", "attachRadiantStylesheets"]
7
7
  }
@@ -64,7 +64,7 @@ rui-toc {
64
64
  content: '';
65
65
  position: absolute;
66
66
  top: calc(1 / 2 * 100%);
67
- left: calc(13px * -1);
67
+ left: -13px;
68
68
  height: var(--spacing-3, var(--space-3));
69
69
  width: calc(var(--spacing, 0.25rem) * 0.5);
70
70
  --tw-translate-y: calc(calc(1 / 2 * 100%) * -1);
@@ -1,2 +1,2 @@
1
- import{jsx as H,jsxs as Kt}from"@ecopages/jsx/jsx-runtime";import{RadiantElement as _t,bound as Et,customElement as Bt,onEvent as X,onUpdated as Gt,prop as Y,query as Ht}from"@ecopages/radiant";var It="a[href], button, input, select, textarea, [tabindex]";function Ct(t){return!t.hasAttribute("disabled")&&t.getAttribute("tabindex")!=="-1"}function Dt(t){return Array.from(t.querySelectorAll(It)).filter(Ct)}function at(t){return Dt(t)[0]}var Lt={top:"bottom",bottom:"top",left:"right",right:"left"},Mt=8;function Pt(t){let e=t.indexOf("-");if(e===-1)return{side:t,align:"center"};let n=t.slice(0,e),o=t.slice(e+1);return{side:n,align:o==="start"||o==="end"?o:"center"}}function ut(t){return t==="top"||t==="bottom"?"y":"x"}function lt(t,e,n,o,i){let{width:l,height:c}=e,r=0,p=0;switch(n){case"top":p=t.top-c-i;break;case"bottom":p=t.bottom+i;break;case"left":r=t.left-l-i;break;case"right":r=t.right+i;break}return ut(n)==="y"?o==="start"?r=t.left:o==="end"?r=t.right-l:r=t.left+(t.width-l)/2:o==="start"?p=t.top:o==="end"?p=t.bottom-c:p=t.top+(t.height-c)/2,{x:r,y:p}}function kt(t,e,n,o){let{padding:i,width:l,height:c}=o;return n==="top"?Math.max(0,i-t.y):n==="bottom"?Math.max(0,t.y+e.height-(c-i)):n==="left"?Math.max(0,i-t.x):Math.max(0,t.x+e.width-(l-i))}function ct(t,e,n,o){let{padding:i,width:l,height:c}=o;return n==="top"?t.top-i-e.height:n==="bottom"?c-i-e.height-t.bottom:n==="left"?t.left-i-e.width:l-i-e.width-t.right}function jt(t,e,n,o){let{padding:i,width:l,height:c}=o;if(ut(n)==="y"){let p=Math.max(i,l-i-e.width);return{x:Math.min(Math.max(t.x,i),p),y:t.y}}let r=Math.max(i,c-i-e.height);return{x:t.x,y:Math.min(Math.max(t.y,i),r)}}function Vt(t,e,n,o,i={width:typeof window>"u"?0:window.innerWidth,height:typeof window>"u"?0:window.innerHeight,padding:Mt}){let{side:l,align:c}=Pt(n),r=lt(t,e,l,c,o),p=kt(r,e,l,i),F=l,_=r;if(p>0){let E=Lt[l],A=lt(t,e,E,c,o),C=ct(t,e,l,i);ct(t,e,E,i)>C&&(F=E,_=A)}return jt(_,e,F,i)}function G(t,e,n,o){let i=Vt(t.getBoundingClientRect(),{width:e.offsetWidth,height:e.offsetHeight},n,o);Object.assign(e.style,{position:"fixed",left:`${i.x}px`,top:`${i.y}px`,right:"auto",bottom:"auto",visibility:"visible"})}function dt({anchor:t,floating:e,getPlacement:n,gap:o}){let i=()=>{e.hidden||G(t,e,n(),o)};i(),window.addEventListener("resize",i),window.addEventListener("scroll",i,!0);let l=new ResizeObserver(i);return l.observe(t),l.observe(e),()=>{window.removeEventListener("resize",i),window.removeEventListener("scroll",i,!0),l.disconnect()}}var ht,pt,ft,mt,gt,bt,yt,wt,vt,Tt;function Ut(t,e,n,o,i,l){var c,r,p,F,_,E,A,C=Symbol.metadata||Symbol.for("Symbol.metadata"),V=Object.defineProperty,U=Object.create,J=[U(null),U(null)],Q=e.length;function D(s,b,m){return function(a,u){b&&(u=a,a=t);for(var y=0;y<s.length;y++)u=s[y].apply(a,m?[u]:[]);return m?u:a}}function T(s,b,m,a){if(typeof s!="function"&&(a||s!==void 0))throw new TypeError(b+" must "+(m||"be")+" a function"+(a?"":" or undefined"));return s}function Z(s,b,m,a,u,y,S,g,w,v,z){function q(h){if(!z(h))throw new TypeError("Attempted to access private element on non-instance")}var W=[].concat(b[0]),tt=b[3],$=!S,R=u===1,et=u===3,it=u===4,L=u===2;function M(h,O,rt){return function(k,st){return O&&(st=k,k=s),rt&&rt(k),d[h].call(k,st)}}if(!$){var d={},K=[],x=et?"get":it||R?"set":"value";if(w?(v||R?d={get:xt(function(){return tt(this)},a,"get"),set:function(h){b[4](this,h)}}:d[x]=tt,v||xt(d[x],a,L?"":x)):v||(d=Object.getOwnPropertyDescriptor(s,a)),!v&&!w){if((r=J[+g][a])&&(r^u)!==7)throw Error("Decorating two elements with the same name ("+d[x].name+") is not supported yet");J[+g][a]=u<3?1:u}}for(var f=s,P=W.length-1;P>=0;P-=m?2:1){var nt=T(W[P],"A decorator","be",!0),ot=m?W[P-1]:void 0,B={},I={kind:["field","accessor","method","getter","setter","class"][u],name:a,metadata:c,addInitializer:function(h,O){if(h.v)throw new TypeError("attempted to call addInitializer after decoration was finished");T(O,"An initializer","be",!0),y.push(O)}.bind(null,B)};if($)r=nt.call(ot,f,I),B.v=1,T(r,"class decorators","return")&&(f=r);else if(I.static=g,I.private=w,r=I.access={has:w?z.bind():function(h){return a in h}},it||(r.get=w?L?function(h){return q(h),d.value}:M("get",0,q):function(h){return h[a]}),L||et||(r.set=w?M("set",0,q):function(h,O){h[a]=O}),f=nt.call(ot,R?{get:d.get,set:d.set}:d[x],I),B.v=1,R){if(typeof f=="object"&&f)(r=T(f.get,"accessor.get"))&&(d.get=r),(r=T(f.set,"accessor.set"))&&(d.set=r),(r=T(f.init,"accessor.init"))&&K.unshift(r);else if(f!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else T(f,(v?"field":"method")+" decorators","return")&&(v?K.unshift(f):d[x]=f)}return u<2&&S.push(D(K,g,1),D(y,g,0)),v||$||(w?R?S.splice(-1,0,M("get",g),M("set",g)):S.push(L?d[x]:T.call.bind(d[x])):V(s,a,d)),f}function N(s){return V(s,C,{configurable:!0,enumerable:!0,value:c})}return l!==void 0&&(c=l[C]),c=U(c??null),_=[],E=function(s){s&&_.push(D(s))},A=function(s,b){for(var m=0;m<n.length;m++){var a=n[m],u=a[1],y=7&u;if((8&u)==s&&!y==b){var S=a[2],g=!!a[3],w=16&u;Z(s?t:t.prototype,a,w,g?"#"+S:qt(S),y,y<2?[]:s?F=F||[]:p=p||[],_,!!s,g,b,s&&g?function(v){return $t(v)===t}:i)}}},A(8,0),A(0,0),A(8,1),A(0,1),E(p),E(F),r=_,Q||N(t),{e:r,get c(){var s=[];return Q&&[N(t=Z(t,[e],o,t.name,5,s)),D(s,1)]}}}function qt(t){var e=Wt(t,"string");return typeof e=="symbol"?e:e+""}function Wt(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var o=n.call(t,e||"default");if(typeof o!="object")return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function xt(t,e,n){typeof e=="symbol"&&(e=(e=e.description)?"["+e+"]":"");try{Object.defineProperty(t,"name",{configurable:!0,value:n?n+" "+e:e})}catch{}return t}function $t(t){if(Object(t)!==t)throw TypeError("right-hand side of 'in' should be an object, got "+(t!==null?typeof t:"null"));return t}var At=8,j,St=class extends _t{static{({e:[ft,mt,gt,bt,yt,wt,vt,Tt,ht],c:[j,pt]}=Ut(this,[Bt("rui-tooltip")],[[Y({type:String,defaultValue:""}),0,"content"],[Y({type:String,defaultValue:"top"}),0,"placement"],[Y({type:Number,defaultValue:200}),0,"delay"],[Ht({ref:"tooltip"}),0,"tooltipTarget"],[Gt(["content","placement"]),2,"onDescribedPropsUpdated"],[X({document:!0,type:"keydown"}),2,"onDocumentKeydown"],[X({type:"focusin",selector:".rui-tooltip__trigger"}),2,"onFocusIn"],[X({type:"focusout",selector:".rui-tooltip__trigger"}),2,"onFocusOut"],[Et,2,"onPointerEnter"],[Et,2,"onPointerLeave"]],0,void 0,_t))}content=(ht(this),ft(this));placement=(mt(this),gt(this));delay=(bt(this),yt(this));tooltipTarget=(wt(this),vt(this));open=(Tt(this),!1);showTimer=null;hideTimer=null;tooltipId=`rui-tooltip-${Math.random().toString(36).slice(2,9)}`;describedEl=null;cleanupFloating=null;connectedCallback(){super.connectedCallback(),this.addEventListener("pointerenter",this.onPointerEnter),this.addEventListener("pointerleave",this.onPointerLeave),queueMicrotask(()=>this.wireTrigger())}disconnectedCallback(){this.clearTimers(),this.teardownFloating(),this.removeEventListener("pointerenter",this.onPointerEnter),this.removeEventListener("pointerleave",this.onPointerLeave),this.describedEl?.removeAttribute("aria-describedby"),super.disconnectedCallback()}clearTimers(){this.showTimer&&clearTimeout(this.showTimer),this.hideTimer&&clearTimeout(this.hideTimer),this.showTimer=null,this.hideTimer=null}teardownFloating(){this.cleanupFloating?.(),this.cleanupFloating=null}getAnchor(){return at(this)??this}wireTrigger(){this.describedEl?.removeAttribute("aria-describedby"),this.describedEl=this.getAnchor(),this.describedEl.setAttribute("aria-describedby",this.tooltipId)}attachFloating(){this.tooltipTarget&&(this.teardownFloating(),this.cleanupFloating=dt({anchor:this.getAnchor(),floating:this.tooltipTarget,getPlacement:()=>this.placement,gap:At}))}onDescribedPropsUpdated(){this.wireTrigger(),this.open&&this.tooltipTarget&&G(this.getAnchor(),this.tooltipTarget,this.placement,At)}setOpen(e){this.clearTimers(),this.open=e,this.tooltipTarget&&(this.tooltipTarget.hidden=!e,e?this.attachFloating():this.teardownFloating())}scheduleShow(){if(this.clearTimers(),this.delay<=0){this.setOpen(!0);return}this.showTimer=setTimeout(()=>this.setOpen(!0),this.delay)}scheduleHide(){this.clearTimers(),this.hideTimer=setTimeout(()=>this.setOpen(!1),80)}onDocumentKeydown(e){!this.open||e.key!=="Escape"||this.setOpen(!1)}onFocusIn(){this.scheduleShow()}onFocusOut(e){let n=e.relatedTarget;n&&this.contains(n)||this.scheduleHide()}onPointerEnter(){this.scheduleShow()}onPointerLeave(){this.scheduleHide()}render(){return Kt("span",{class:"rui-tooltip",children:[H("span",{class:"rui-tooltip__trigger",children:H("slot",{})}),H("span",{"data-ref":"tooltip",id:this.tooltipId,class:"rui-tooltip__content rui-floating",role:"tooltip",hidden:!0,children:this.$.content})]})}static{pt()}};import{jsx as Jt}from"@ecopages/jsx/jsx-runtime";var Xt=Symbol.for("@ecopages/storybook-radiant.viewElement"),Ft=Symbol.for("@ecopages/storybook-radiant.scriptModule"),Ot=Symbol.for("@ecopages/storybook-radiant.scriptExport");function Yt(t,e){t[Xt]=e;let n=e[Ft];n&&(t[Ft]=n,t[Ot]=e[Ot]??e.name)}function Rt(t,e,n){let o=i=>e(i);return Yt(o,t),o}var Qt=Rt(j,({children:t,...e})=>Jt("rui-tooltip",{...e,children:t}),{stylesheets:["./tooltip.css"]});export{Qt as RuiTooltip,j as RuiTooltipElement};
1
+ import{jsx as G,jsxs as Kt}from"@ecopages/jsx/jsx-runtime";import{RadiantElement as _t,bound as Et,customElement as Bt,onEvent as X,onUpdated as Gt,prop as Y,query as Xt}from"@ecopages/radiant";var It="a[href], button, input, select, textarea, [tabindex]";function Ct(t){return!t.hasAttribute("disabled")&&t.getAttribute("tabindex")!=="-1"}function Dt(t){return Array.from(t.querySelectorAll(It)).filter(Ct)}function at(t){return Dt(t)[0]}var Lt={top:"bottom",bottom:"top",left:"right",right:"left"},Mt=8;function Pt(t){let e=t.indexOf("-");if(e===-1)return{side:t,align:"center"};let i=t.slice(0,e),o=t.slice(e+1);return{side:i,align:o==="start"||o==="end"?o:"center"}}function ut(t){return t==="top"||t==="bottom"?"y":"x"}function lt(t,e,i,o,n){let{width:r,height:a}=e,s=0,p=0;switch(i){case"top":p=t.top-a-n;break;case"bottom":p=t.bottom+n;break;case"left":s=t.left-r-n;break;case"right":s=t.right+n;break}return ut(i)==="y"?o==="start"?s=t.left:o==="end"?s=t.right-r:s=t.left+(t.width-r)/2:o==="start"?p=t.top:o==="end"?p=t.bottom-a:p=t.top+(t.height-a)/2,{x:s,y:p}}function kt(t,e,i,o){let{padding:n,width:r,height:a}=o;return i==="top"?Math.max(0,n-t.y):i==="bottom"?Math.max(0,t.y+e.height-(a-n)):i==="left"?Math.max(0,n-t.x):Math.max(0,t.x+e.width-(r-n))}function ct(t,e,i,o){let{padding:n,width:r,height:a}=o;return i==="top"?t.top-n-e.height:i==="bottom"?a-n-e.height-t.bottom:i==="left"?t.left-n-e.width:r-n-e.width-t.right}function jt(t,e){return e==="center"?t:`${t}-${e}`}function Vt(t,e,i,o){let{padding:n,width:r,height:a}=o;if(ut(i)==="y"){let p=Math.max(n,r-n-e.width);return{x:Math.min(Math.max(t.x,n),p),y:t.y}}let s=Math.max(n,a-n-e.height);return{x:t.x,y:Math.min(Math.max(t.y,n),s)}}function Wt(t,e,i,o,n={width:typeof window>"u"?0:window.innerWidth,height:typeof window>"u"?0:window.innerHeight,padding:Mt}){let{side:r,align:a}=Pt(i),s=lt(t,e,r,a,o),p=kt(s,e,r,n),_=r,E=s;if(p>0){let A=Lt[r],F=lt(t,e,A,a,o),C=ct(t,e,r,n);ct(t,e,A,n)>C&&(_=A,E=F)}return{coords:Vt(E,e,_,n),placement:jt(_,a)}}function B(t,e,i,o,n={}){let{coords:r,placement:a}=Wt(t.getBoundingClientRect(),{width:e.offsetWidth,height:e.offsetHeight},i,o);return Object.assign(e.style,{position:"fixed",left:`${r.x}px`,top:`${r.y}px`,right:"auto",bottom:"auto",visibility:"visible"}),n.matchAnchorWidth&&(e.style.width=`${t.offsetWidth}px`),e.setAttribute("data-placement",a),a}function dt({anchor:t,floating:e,getPlacement:i,gap:o,matchAnchorWidth:n}){let r=()=>{e.hidden||B(t,e,i(),o,{matchAnchorWidth:n})};r(),window.addEventListener("resize",r),window.addEventListener("scroll",r,!0);let a=new ResizeObserver(r);return a.observe(t),a.observe(e),()=>{window.removeEventListener("resize",r),window.removeEventListener("scroll",r,!0),a.disconnect()}}var ht,pt,ft,mt,gt,bt,yt,wt,vt,Tt;function Ut(t,e,i,o,n,r){var a,s,p,_,E,A,F,C=Symbol.metadata||Symbol.for("Symbol.metadata"),V=Object.defineProperty,W=Object.create,J=[W(null),W(null)],Q=e.length;function D(l,b,m){return function(c,u){b&&(u=c,c=t);for(var y=0;y<l.length;y++)u=l[y].apply(c,m?[u]:[]);return m?u:c}}function T(l,b,m,c){if(typeof l!="function"&&(c||l!==void 0))throw new TypeError(b+" must "+(m||"be")+" a function"+(c?"":" or undefined"));return l}function Z(l,b,m,c,u,y,S,g,w,v,z){function U(h){if(!z(h))throw new TypeError("Attempted to access private element on non-instance")}var $=[].concat(b[0]),tt=b[3],q=!S,R=u===1,et=u===3,it=u===4,L=u===2;function M(h,O,rt){return function(k,st){return O&&(st=k,k=l),rt&&rt(k),d[h].call(k,st)}}if(!q){var d={},H=[],x=et?"get":it||R?"set":"value";if(w?(v||R?d={get:xt(function(){return tt(this)},c,"get"),set:function(h){b[4](this,h)}}:d[x]=tt,v||xt(d[x],c,L?"":x)):v||(d=Object.getOwnPropertyDescriptor(l,c)),!v&&!w){if((s=J[+g][c])&&(s^u)!==7)throw Error("Decorating two elements with the same name ("+d[x].name+") is not supported yet");J[+g][c]=u<3?1:u}}for(var f=l,P=$.length-1;P>=0;P-=m?2:1){var nt=T($[P],"A decorator","be",!0),ot=m?$[P-1]:void 0,K={},I={kind:["field","accessor","method","getter","setter","class"][u],name:c,metadata:a,addInitializer:function(h,O){if(h.v)throw new TypeError("attempted to call addInitializer after decoration was finished");T(O,"An initializer","be",!0),y.push(O)}.bind(null,K)};if(q)s=nt.call(ot,f,I),K.v=1,T(s,"class decorators","return")&&(f=s);else if(I.static=g,I.private=w,s=I.access={has:w?z.bind():function(h){return c in h}},it||(s.get=w?L?function(h){return U(h),d.value}:M("get",0,U):function(h){return h[c]}),L||et||(s.set=w?M("set",0,U):function(h,O){h[c]=O}),f=nt.call(ot,R?{get:d.get,set:d.set}:d[x],I),K.v=1,R){if(typeof f=="object"&&f)(s=T(f.get,"accessor.get"))&&(d.get=s),(s=T(f.set,"accessor.set"))&&(d.set=s),(s=T(f.init,"accessor.init"))&&H.unshift(s);else if(f!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else T(f,(v?"field":"method")+" decorators","return")&&(v?H.unshift(f):d[x]=f)}return u<2&&S.push(D(H,g,1),D(y,g,0)),v||q||(w?R?S.splice(-1,0,M("get",g),M("set",g)):S.push(L?d[x]:T.call.bind(d[x])):V(l,c,d)),f}function N(l){return V(l,C,{configurable:!0,enumerable:!0,value:a})}return r!==void 0&&(a=r[C]),a=W(a??null),E=[],A=function(l){l&&E.push(D(l))},F=function(l,b){for(var m=0;m<i.length;m++){var c=i[m],u=c[1],y=7&u;if((8&u)==l&&!y==b){var S=c[2],g=!!c[3],w=16&u;Z(l?t:t.prototype,c,w,g?"#"+S:$t(S),y,y<2?[]:l?_=_||[]:p=p||[],E,!!l,g,b,l&&g?function(v){return Ht(v)===t}:n)}}},F(8,0),F(0,0),F(8,1),F(0,1),A(p),A(_),s=E,Q||N(t),{e:s,get c(){var l=[];return Q&&[N(t=Z(t,[e],o,t.name,5,l)),D(l,1)]}}}function $t(t){var e=qt(t,"string");return typeof e=="symbol"?e:e+""}function qt(t,e){if(typeof t!="object"||!t)return t;var i=t[Symbol.toPrimitive];if(i!==void 0){var o=i.call(t,e||"default");if(typeof o!="object")return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function xt(t,e,i){typeof e=="symbol"&&(e=(e=e.description)?"["+e+"]":"");try{Object.defineProperty(t,"name",{configurable:!0,value:i?i+" "+e:e})}catch{}return t}function Ht(t){if(Object(t)!==t)throw TypeError("right-hand side of 'in' should be an object, got "+(t!==null?typeof t:"null"));return t}var At=8,j,Ft=class extends _t{static{({e:[ft,mt,gt,bt,yt,wt,vt,Tt,ht],c:[j,pt]}=Ut(this,[Bt("rui-tooltip")],[[Y({type:String,defaultValue:""}),0,"content"],[Y({type:String,defaultValue:"top"}),0,"placement"],[Y({type:Number,defaultValue:200}),0,"delay"],[Xt({ref:"tooltip"}),0,"tooltipTarget"],[Gt(["content","placement"]),2,"onDescribedPropsUpdated"],[X({document:!0,type:"keydown"}),2,"onDocumentKeydown"],[X({type:"focusin",selector:".rui-tooltip__trigger"}),2,"onFocusIn"],[X({type:"focusout",selector:".rui-tooltip__trigger"}),2,"onFocusOut"],[Et,2,"onPointerEnter"],[Et,2,"onPointerLeave"]],0,void 0,_t))}content=(ht(this),ft(this));placement=(mt(this),gt(this));delay=(bt(this),yt(this));tooltipTarget=(wt(this),vt(this));open=(Tt(this),!1);showTimer=null;hideTimer=null;tooltipId=`rui-tooltip-${Math.random().toString(36).slice(2,9)}`;describedEl=null;cleanupFloating=null;connectedCallback(){super.connectedCallback(),this.addEventListener("pointerenter",this.onPointerEnter),this.addEventListener("pointerleave",this.onPointerLeave),queueMicrotask(()=>this.wireTrigger())}disconnectedCallback(){this.clearTimers(),this.teardownFloating(),this.removeEventListener("pointerenter",this.onPointerEnter),this.removeEventListener("pointerleave",this.onPointerLeave),this.describedEl?.removeAttribute("aria-describedby"),super.disconnectedCallback()}clearTimers(){this.showTimer&&clearTimeout(this.showTimer),this.hideTimer&&clearTimeout(this.hideTimer),this.showTimer=null,this.hideTimer=null}teardownFloating(){this.cleanupFloating?.(),this.cleanupFloating=null}getAnchor(){return at(this)??this}wireTrigger(){this.describedEl?.removeAttribute("aria-describedby"),this.describedEl=this.getAnchor(),this.describedEl.setAttribute("aria-describedby",this.tooltipId)}attachFloating(){this.tooltipTarget&&(this.teardownFloating(),this.cleanupFloating=dt({anchor:this.getAnchor(),floating:this.tooltipTarget,getPlacement:()=>this.placement,gap:At}))}onDescribedPropsUpdated(){this.wireTrigger(),this.open&&this.tooltipTarget&&B(this.getAnchor(),this.tooltipTarget,this.placement,At)}setOpen(e){this.clearTimers(),this.open=e,this.tooltipTarget&&(this.tooltipTarget.hidden=!e,e?this.attachFloating():this.teardownFloating())}scheduleShow(){if(this.clearTimers(),this.delay<=0){this.setOpen(!0);return}this.showTimer=setTimeout(()=>this.setOpen(!0),this.delay)}scheduleHide(){this.clearTimers(),this.hideTimer=setTimeout(()=>this.setOpen(!1),80)}onDocumentKeydown(e){!this.open||e.key!=="Escape"||this.setOpen(!1)}onFocusIn(){this.scheduleShow()}onFocusOut(e){let i=e.relatedTarget;i&&this.contains(i)||this.scheduleHide()}onPointerEnter(){this.scheduleShow()}onPointerLeave(){this.scheduleHide()}render(){return Kt("span",{class:"rui-tooltip",children:[G("span",{class:"rui-tooltip__trigger",children:G("slot",{})}),G("span",{"data-ref":"tooltip",id:this.tooltipId,class:"rui-tooltip__content rui-floating",role:"tooltip",hidden:!0,children:this.$.content})]})}static{pt()}};import{jsx as Qt}from"@ecopages/jsx/jsx-runtime";var Yt=Symbol.for("@ecopages/storybook-radiant.viewElement"),St=Symbol.for("@ecopages/storybook-radiant.scriptModule"),Ot=Symbol.for("@ecopages/storybook-radiant.scriptExport");function Jt(t,e){t[Yt]=e;let i=e[St];i&&(t[St]=i,t[Ot]=e[Ot]??e.name)}function Rt(t,e,i){let o=n=>e(n);return Jt(o,t),o}var Zt=Rt(j,({children:t,...e})=>Qt("rui-tooltip",{...e,children:t}),{stylesheets:["./tooltip.css"]});export{Zt as RuiTooltip,j as RuiTooltipElement};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/ui/tooltip/tooltip.script.tsx", "../../../../src/lib/focusable-elements.ts", "../../../../src/components/ui/shared/floating-position.ts", "../../../../src/components/ui/tooltip/tooltip.tsx", "../../../../src/lib/radiant-view.ts"],
4
- "sourcesContent": ["let _initProto, _initClass, _init_content, _init_extra_content, _init_placement, _init_extra_placement, _init_delay, _init_extra_delay, _init_tooltipTarget, _init_extra_tooltipTarget;\nfunction _applyDecs(e, t, n, r, o, i) { var a, c, u, s, f, l, p, d = Symbol.metadata || Symbol.for(\"Symbol.metadata\"), m = Object.defineProperty, h = Object.create, y = [h(null), h(null)], v = t.length; function g(t, n, r) { return function (o, i) { n && (i = o, o = e); for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []); return r ? i : o; }; } function b(e, t, n, r) { if (\"function\" != typeof e && (r || void 0 !== e)) throw new TypeError(t + \" must \" + (n || \"be\") + \" a function\" + (r ? \"\" : \" or undefined\")); return e; } function applyDec(e, t, n, r, o, i, u, s, f, l, p) { function d(e) { if (!p(e)) throw new TypeError(\"Attempted to access private element on non-instance\"); } var h = [].concat(t[0]), v = t[3], w = !u, D = 1 === o, S = 3 === o, j = 4 === o, E = 2 === o; function I(t, n, r) { return function (o, i) { return n && (i = o, o = e), r && r(o), P[t].call(o, i); }; } if (!w) { var P = {}, k = [], F = S ? \"get\" : j || D ? \"set\" : \"value\"; if (f ? (l || D ? P = { get: _setFunctionName(function () { return v(this); }, r, \"get\"), set: function (e) { t[4](this, e); } } : P[F] = v, l || _setFunctionName(P[F], r, E ? \"\" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) { if ((c = y[+s][r]) && 7 !== (c ^ o)) throw Error(\"Decorating two elements with the same name (\" + P[F].name + \") is not supported yet\"); y[+s][r] = o < 3 ? 1 : o; } } for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) { var T = b(h[O], \"A decorator\", \"be\", !0), z = n ? h[O - 1] : void 0, A = {}, H = { kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][o], name: r, metadata: a, addInitializer: function (e, t) { if (e.v) throw new TypeError(\"attempted to call addInitializer after decoration was finished\"); b(t, \"An initializer\", \"be\", !0), i.push(t); }.bind(null, A) }; if (w) c = T.call(z, N, H), A.v = 1, b(c, \"class decorators\", \"return\") && (N = c);else if (H.static = s, H.private = f, c = H.access = { has: f ? p.bind() : function (e) { return r in e; } }, j || (c.get = f ? E ? function (e) { return d(e), P.value; } : I(\"get\", 0, d) : function (e) { return e[r]; }), E || S || (c.set = f ? I(\"set\", 0, d) : function (e, t) { e[r] = t; }), N = T.call(z, D ? { get: P.get, set: P.set } : P[F], H), A.v = 1, D) { if (\"object\" == typeof N && N) (c = b(N.get, \"accessor.get\")) && (P.get = c), (c = b(N.set, \"accessor.set\")) && (P.set = c), (c = b(N.init, \"accessor.init\")) && k.unshift(c);else if (void 0 !== N) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or undefined\"); } else b(N, (l ? \"field\" : \"method\") + \" decorators\", \"return\") && (l ? k.unshift(N) : P[F] = N); } return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I(\"get\", s), I(\"set\", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N; } function w(e) { return m(e, d, { configurable: !0, enumerable: !0, value: a }); } return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function (e) { e && f.push(g(e)); }, p = function (t, r) { for (var i = 0; i < n.length; i++) { var a = n[i], c = a[1], l = 7 & c; if ((8 & c) == t && !l == r) { var p = a[2], d = !!a[3], m = 16 & c; applyDec(t ? e : e.prototype, a, m, d ? \"#\" + p : _toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) { return _checkInRHS(t) === e; } : o); } } }, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), { e: c, get c() { var n = []; return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)]; } }; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _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); }\nfunction _setFunctionName(e, t, n) { \"symbol\" == typeof t && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\"); try { Object.defineProperty(e, \"name\", { configurable: !0, value: n ? n + \" \" + t : t }); } catch (e) {} return e; }\nfunction _checkInRHS(e) { if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? typeof e : \"null\")); return e; }\nimport { jsx, jsxs } from \"@ecopages/jsx/jsx-runtime\";\nimport { RadiantElement, bound, customElement, onEvent, onUpdated, prop, query } from \"@ecopages/radiant\";\nimport { findFirstFocusableCandidate } from \"@/lib/focusable-elements\";\nimport { applyFloatingPosition, attachFloating } from \"../shared/floating-position\";\nconst TOOLTIP_GAP = 8;\nlet _RuiTooltip;\nclass RuiTooltip extends RadiantElement {\n static {\n ({\n e: [_init_content, _init_extra_content, _init_placement, _init_extra_placement, _init_delay, _init_extra_delay, _init_tooltipTarget, _init_extra_tooltipTarget, _initProto],\n c: [_RuiTooltip, _initClass]\n } = _applyDecs(this, [customElement(\"rui-tooltip\")], [[prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"content\"], [prop({\n type: String,\n defaultValue: \"top\"\n }), 0, \"placement\"], [prop({\n type: Number,\n defaultValue: 200\n }), 0, \"delay\"], [query({\n ref: \"tooltip\"\n }), 0, \"tooltipTarget\"], [onUpdated([\"content\", \"placement\"]), 2, \"onDescribedPropsUpdated\"], [onEvent({\n document: true,\n type: \"keydown\"\n }), 2, \"onDocumentKeydown\"], [onEvent({\n type: \"focusin\",\n selector: \".rui-tooltip__trigger\"\n }), 2, \"onFocusIn\"], [onEvent({\n type: \"focusout\",\n selector: \".rui-tooltip__trigger\"\n }), 2, \"onFocusOut\"], [bound, 2, \"onPointerEnter\"], [bound, 2, \"onPointerLeave\"]], 0, void 0, RadiantElement));\n }\n content = (_initProto(this), _init_content(this));\n placement = (_init_extra_content(this), _init_placement(this));\n delay = (_init_extra_placement(this), _init_delay(this));\n tooltipTarget = (_init_extra_delay(this), _init_tooltipTarget(this));\n /**\n * Plain (non-reactive) field, not a JSX binding target: `hidden` is toggled\n * imperatively in `setOpen()` rather than bound, since it flips on every\n * hover/focus in/out \u2014 high-frequency enough that a plain synchronous DOM\n * write is preferable to routing it through the reactive binding system.\n */\n open = (_init_extra_tooltipTarget(this), false);\n showTimer = null;\n hideTimer = null;\n tooltipId = `rui-tooltip-${Math.random().toString(36).slice(2, 9)}`;\n describedEl = null;\n cleanupFloating = null;\n /**\n * Pointer enter/leave must be host listeners: those events do not bubble, and\n * `@onEvent` only supports delegated (bubbling) listeners.\n */\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener(\"pointerenter\", this.onPointerEnter);\n this.addEventListener(\"pointerleave\", this.onPointerLeave);\n queueMicrotask(() => this.wireTrigger());\n }\n disconnectedCallback() {\n this.clearTimers();\n this.teardownFloating();\n this.removeEventListener(\"pointerenter\", this.onPointerEnter);\n this.removeEventListener(\"pointerleave\", this.onPointerLeave);\n this.describedEl?.removeAttribute(\"aria-describedby\");\n super.disconnectedCallback();\n }\n clearTimers() {\n if (this.showTimer) clearTimeout(this.showTimer);\n if (this.hideTimer) clearTimeout(this.hideTimer);\n this.showTimer = null;\n this.hideTimer = null;\n }\n teardownFloating() {\n this.cleanupFloating?.();\n this.cleanupFloating = null;\n }\n getAnchor() {\n return findFirstFocusableCandidate(this) ?? this;\n }\n wireTrigger() {\n this.describedEl?.removeAttribute(\"aria-describedby\");\n this.describedEl = this.getAnchor();\n this.describedEl.setAttribute(\"aria-describedby\", this.tooltipId);\n }\n attachFloating() {\n if (!this.tooltipTarget) return;\n this.teardownFloating();\n this.cleanupFloating = attachFloating({\n anchor: this.getAnchor(),\n floating: this.tooltipTarget,\n getPlacement: () => this.placement,\n gap: TOOLTIP_GAP\n });\n }\n onDescribedPropsUpdated() {\n this.wireTrigger();\n if (this.open && this.tooltipTarget) {\n applyFloatingPosition(this.getAnchor(), this.tooltipTarget, this.placement, TOOLTIP_GAP);\n }\n }\n setOpen(next) {\n this.clearTimers();\n this.open = next;\n if (!this.tooltipTarget) return;\n this.tooltipTarget.hidden = !next;\n if (next) this.attachFloating();else this.teardownFloating();\n }\n scheduleShow() {\n this.clearTimers();\n if (this.delay <= 0) {\n this.setOpen(true);\n return;\n }\n this.showTimer = setTimeout(() => this.setOpen(true), this.delay);\n }\n scheduleHide() {\n this.clearTimers();\n this.hideTimer = setTimeout(() => this.setOpen(false), 80);\n }\n onDocumentKeydown(event) {\n if (!this.open || event.key !== \"Escape\") return;\n this.setOpen(false);\n }\n onFocusIn() {\n this.scheduleShow();\n }\n onFocusOut(event) {\n const next = event.relatedTarget;\n if (next && this.contains(next)) return;\n this.scheduleHide();\n }\n onPointerEnter() {\n this.scheduleShow();\n }\n onPointerLeave() {\n this.scheduleHide();\n }\n render() {\n return /* @__PURE__ */jsxs(\"span\", {\n class: \"rui-tooltip\",\n children: [/* @__PURE__ */jsx(\"span\", {\n class: \"rui-tooltip__trigger\",\n children: /* @__PURE__ */jsx(\"slot\", {})\n }), /* @__PURE__ */jsx(\"span\", {\n \"data-ref\": \"tooltip\",\n id: this.tooltipId,\n class: \"rui-tooltip__content rui-floating\",\n role: \"tooltip\",\n hidden: true,\n children: this.$.content\n })]\n });\n }\n static {\n _initClass();\n }\n}\nexport { _RuiTooltip as RuiTooltip };", "const FOCUSABLE_CANDIDATE_SELECTOR = \"a[href], button, input, select, textarea, [tabindex]\";\nfunction isFocusableCandidate(element) {\n return !element.hasAttribute(\"disabled\") && element.getAttribute(\"tabindex\") !== \"-1\";\n}\nexport function queryFocusableCandidates(root) {\n return Array.from(root.querySelectorAll(FOCUSABLE_CANDIDATE_SELECTOR)).filter(isFocusableCandidate);\n}\nexport function queryRovingTabindexItems(root) {\n return Array.from(root.querySelectorAll(FOCUSABLE_CANDIDATE_SELECTOR)).filter(element => !element.hasAttribute(\"disabled\"));\n}\nexport function findFirstFocusableCandidate(root) {\n return queryFocusableCandidates(root)[0];\n}\nfunction isVisible(element) {\n return element.getClientRects().length > 0 && !element.closest(\"[hidden]\");\n}\nexport function getFocusableElements(root) {\n return queryFocusableCandidates(root).filter(isVisible);\n}", "const OPPOSITE = {\n top: \"bottom\",\n bottom: \"top\",\n left: \"right\",\n right: \"left\"\n};\nconst DEFAULT_VIEWPORT_PADDING = 8;\nfunction parsePlacement(placement) {\n const dash = placement.indexOf(\"-\");\n if (dash === -1) return {\n side: placement,\n align: \"center\"\n };\n const side = placement.slice(0, dash);\n const align = placement.slice(dash + 1);\n return {\n side,\n align: align === \"start\" || align === \"end\" ? align : \"center\"\n };\n}\nfunction primaryAxis(side) {\n return side === \"top\" || side === \"bottom\" ? \"y\" : \"x\";\n}\nfunction coordsFor(anchor, size, side, align, gap) {\n const {\n width,\n height\n } = size;\n let x = 0;\n let y = 0;\n switch (side) {\n case \"top\":\n y = anchor.top - height - gap;\n break;\n case \"bottom\":\n y = anchor.bottom + gap;\n break;\n case \"left\":\n x = anchor.left - width - gap;\n break;\n case \"right\":\n x = anchor.right + gap;\n break;\n }\n if (primaryAxis(side) === \"y\") {\n if (align === \"start\") x = anchor.left;else if (align === \"end\") x = anchor.right - width;else x = anchor.left + (anchor.width - width) / 2;\n } else {\n if (align === \"start\") y = anchor.top;else if (align === \"end\") y = anchor.bottom - height;else y = anchor.top + (anchor.height - height) / 2;\n }\n return {\n x,\n y\n };\n}\nfunction overflowOnPrimary(coords, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (side === \"top\") return Math.max(0, padding - coords.y);\n if (side === \"bottom\") return Math.max(0, coords.y + size.height - (vh - padding));\n if (side === \"left\") return Math.max(0, padding - coords.x);\n return Math.max(0, coords.x + size.width - (vw - padding));\n}\nfunction freeSpaceOnSide(anchor, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (side === \"top\") return anchor.top - padding - size.height;\n if (side === \"bottom\") return vh - padding - size.height - anchor.bottom;\n if (side === \"left\") return anchor.left - padding - size.width;\n return vw - padding - size.width - anchor.right;\n}\nfunction clampCrossAxis(coords, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (primaryAxis(side) === \"y\") {\n const maxX = Math.max(padding, vw - padding - size.width);\n return {\n x: Math.min(Math.max(coords.x, padding), maxX),\n y: coords.y\n };\n }\n const maxY = Math.max(padding, vh - padding - size.height);\n return {\n x: coords.x,\n y: Math.min(Math.max(coords.y, padding), maxY)\n };\n}\nexport function computeFloatingCoords(anchor, size, placement, gap, viewport = {\n width: typeof window === \"undefined\" ? 0 : window.innerWidth,\n height: typeof window === \"undefined\" ? 0 : window.innerHeight,\n padding: DEFAULT_VIEWPORT_PADDING\n}) {\n const {\n side: preferred,\n align\n } = parsePlacement(placement);\n const preferredCoords = coordsFor(anchor, size, preferred, align, gap);\n const preferredOverflow = overflowOnPrimary(preferredCoords, size, preferred, viewport);\n let side = preferred;\n let coords = preferredCoords;\n if (preferredOverflow > 0) {\n const flipped = OPPOSITE[preferred];\n const flippedCoords = coordsFor(anchor, size, flipped, align, gap);\n const preferredFree = freeSpaceOnSide(anchor, size, preferred, viewport);\n const flippedFree = freeSpaceOnSide(anchor, size, flipped, viewport);\n if (flippedFree > preferredFree) {\n side = flipped;\n coords = flippedCoords;\n }\n }\n return clampCrossAxis(coords, size, side, viewport);\n}\nexport function applyFloatingPosition(anchor, floating, placement, gap) {\n const coords = computeFloatingCoords(anchor.getBoundingClientRect(), {\n width: floating.offsetWidth,\n height: floating.offsetHeight\n }, placement, gap);\n Object.assign(floating.style, {\n position: \"fixed\",\n left: `${coords.x}px`,\n top: `${coords.y}px`,\n right: \"auto\",\n bottom: \"auto\",\n visibility: \"visible\"\n });\n}\nexport function attachFloating({\n anchor,\n floating,\n getPlacement,\n gap\n}) {\n const update = () => {\n if (floating.hidden) return;\n applyFloatingPosition(anchor, floating, getPlacement(), gap);\n };\n update();\n window.addEventListener(\"resize\", update);\n window.addEventListener(\"scroll\", update, true);\n const observer = new ResizeObserver(update);\n observer.observe(anchor);\n observer.observe(floating);\n return () => {\n window.removeEventListener(\"resize\", update);\n window.removeEventListener(\"scroll\", update, true);\n observer.disconnect();\n };\n}", "import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { defineRadiantView } from \"@/lib/radiant-view\";\nimport { RuiTooltip as RuiTooltipElement } from \"./tooltip.script\";\nexport const RuiTooltip = defineRadiantView(RuiTooltipElement, ({\n children,\n ...props\n}) => /* @__PURE__ */jsx(\"rui-tooltip\", {\n ...props,\n children\n}), {\n stylesheets: [\"./tooltip.css\"]\n});", "const RADIANT_VIEW_ELEMENT = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.viewElement\");\nconst RADIANT_SCRIPT_MODULE = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.scriptModule\");\nconst RADIANT_SCRIPT_EXPORT = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.scriptExport\");\nconst RADIANT_VIEW_MODULE = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.viewModule\");\nfunction linkViewToElement(view, element) {\n view[RADIANT_VIEW_ELEMENT] = element;\n const ssrModule = element[RADIANT_SCRIPT_MODULE];\n if (ssrModule) {\n view[RADIANT_SCRIPT_MODULE] = ssrModule;\n view[RADIANT_SCRIPT_EXPORT] = element[RADIANT_SCRIPT_EXPORT] ?? element.name;\n }\n}\nexport function defineRadiantView(element, render, _options) {\n const view = args => render(args);\n linkViewToElement(view, element);\n return view;\n}\nexport function attachRadiantStylesheets(target, _stylesheets, moduleUrl) {\n const view = target;\n view[RADIANT_VIEW_MODULE] = moduleUrl;\n return target;\n}\nexport function syncRadiantViewMetadata(view) {\n const element = view[RADIANT_VIEW_ELEMENT];\n if (element) {\n linkViewToElement(view, element);\n }\n}"],
5
- "mappings": "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",
6
- "names": ["jsx", "jsxs", "RadiantElement", "bound", "customElement", "onEvent", "onUpdated", "prop", "query", "FOCUSABLE_CANDIDATE_SELECTOR", "isFocusableCandidate", "element", "queryFocusableCandidates", "root", "findFirstFocusableCandidate", "root", "queryFocusableCandidates", "OPPOSITE", "DEFAULT_VIEWPORT_PADDING", "parsePlacement", "placement", "dash", "side", "align", "primaryAxis", "coordsFor", "anchor", "size", "gap", "width", "height", "x", "y", "overflowOnPrimary", "coords", "viewport", "padding", "vw", "vh", "freeSpaceOnSide", "clampCrossAxis", "maxX", "maxY", "computeFloatingCoords", "preferred", "preferredCoords", "preferredOverflow", "flipped", "flippedCoords", "preferredFree", "applyFloatingPosition", "floating", "attachFloating", "getPlacement", "update", "observer", "_initProto", "_initClass", "_init_content", "_init_extra_content", "_init_placement", "_init_extra_placement", "_init_delay", "_init_extra_delay", "_init_tooltipTarget", "_init_extra_tooltipTarget", "_applyDecs", "e", "t", "r", "o", "i", "a", "c", "u", "s", "f", "l", "p", "d", "m", "h", "y", "v", "g", "n", "b", "applyDec", "w", "D", "S", "j", "E", "I", "P", "k", "F", "_setFunctionName", "N", "O", "T", "z", "A", "H", "_toPropertyKey", "_checkInRHS", "_toPrimitive", "TOOLTIP_GAP", "_RuiTooltip", "RuiTooltip", "RadiantElement", "customElement", "prop", "query", "onUpdated", "onEvent", "bound", "findFirstFocusableCandidate", "attachFloating", "applyFloatingPosition", "next", "event", "jsxs", "jsx", "jsx", "RADIANT_VIEW_ELEMENT", "RADIANT_SCRIPT_MODULE", "RADIANT_SCRIPT_EXPORT", "linkViewToElement", "view", "element", "RADIANT_VIEW_ELEMENT", "ssrModule", "RADIANT_SCRIPT_MODULE", "RADIANT_SCRIPT_EXPORT", "defineRadiantView", "render", "_options", "args", "RuiTooltip", "defineRadiantView", "_RuiTooltip", "children", "props", "jsx"]
4
+ "sourcesContent": ["let _initProto, _initClass, _init_content, _init_extra_content, _init_placement, _init_extra_placement, _init_delay, _init_extra_delay, _init_tooltipTarget, _init_extra_tooltipTarget;\nfunction _applyDecs(e, t, n, r, o, i) { var a, c, u, s, f, l, p, d = Symbol.metadata || Symbol.for(\"Symbol.metadata\"), m = Object.defineProperty, h = Object.create, y = [h(null), h(null)], v = t.length; function g(t, n, r) { return function (o, i) { n && (i = o, o = e); for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []); return r ? i : o; }; } function b(e, t, n, r) { if (\"function\" != typeof e && (r || void 0 !== e)) throw new TypeError(t + \" must \" + (n || \"be\") + \" a function\" + (r ? \"\" : \" or undefined\")); return e; } function applyDec(e, t, n, r, o, i, u, s, f, l, p) { function d(e) { if (!p(e)) throw new TypeError(\"Attempted to access private element on non-instance\"); } var h = [].concat(t[0]), v = t[3], w = !u, D = 1 === o, S = 3 === o, j = 4 === o, E = 2 === o; function I(t, n, r) { return function (o, i) { return n && (i = o, o = e), r && r(o), P[t].call(o, i); }; } if (!w) { var P = {}, k = [], F = S ? \"get\" : j || D ? \"set\" : \"value\"; if (f ? (l || D ? P = { get: _setFunctionName(function () { return v(this); }, r, \"get\"), set: function (e) { t[4](this, e); } } : P[F] = v, l || _setFunctionName(P[F], r, E ? \"\" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) { if ((c = y[+s][r]) && 7 !== (c ^ o)) throw Error(\"Decorating two elements with the same name (\" + P[F].name + \") is not supported yet\"); y[+s][r] = o < 3 ? 1 : o; } } for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) { var T = b(h[O], \"A decorator\", \"be\", !0), z = n ? h[O - 1] : void 0, A = {}, H = { kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][o], name: r, metadata: a, addInitializer: function (e, t) { if (e.v) throw new TypeError(\"attempted to call addInitializer after decoration was finished\"); b(t, \"An initializer\", \"be\", !0), i.push(t); }.bind(null, A) }; if (w) c = T.call(z, N, H), A.v = 1, b(c, \"class decorators\", \"return\") && (N = c);else if (H.static = s, H.private = f, c = H.access = { has: f ? p.bind() : function (e) { return r in e; } }, j || (c.get = f ? E ? function (e) { return d(e), P.value; } : I(\"get\", 0, d) : function (e) { return e[r]; }), E || S || (c.set = f ? I(\"set\", 0, d) : function (e, t) { e[r] = t; }), N = T.call(z, D ? { get: P.get, set: P.set } : P[F], H), A.v = 1, D) { if (\"object\" == typeof N && N) (c = b(N.get, \"accessor.get\")) && (P.get = c), (c = b(N.set, \"accessor.set\")) && (P.set = c), (c = b(N.init, \"accessor.init\")) && k.unshift(c);else if (void 0 !== N) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or undefined\"); } else b(N, (l ? \"field\" : \"method\") + \" decorators\", \"return\") && (l ? k.unshift(N) : P[F] = N); } return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I(\"get\", s), I(\"set\", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N; } function w(e) { return m(e, d, { configurable: !0, enumerable: !0, value: a }); } return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function (e) { e && f.push(g(e)); }, p = function (t, r) { for (var i = 0; i < n.length; i++) { var a = n[i], c = a[1], l = 7 & c; if ((8 & c) == t && !l == r) { var p = a[2], d = !!a[3], m = 16 & c; applyDec(t ? e : e.prototype, a, m, d ? \"#\" + p : _toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) { return _checkInRHS(t) === e; } : o); } } }, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), { e: c, get c() { var n = []; return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)]; } }; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _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); }\nfunction _setFunctionName(e, t, n) { \"symbol\" == typeof t && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\"); try { Object.defineProperty(e, \"name\", { configurable: !0, value: n ? n + \" \" + t : t }); } catch (e) {} return e; }\nfunction _checkInRHS(e) { if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? typeof e : \"null\")); return e; }\nimport { jsx, jsxs } from \"@ecopages/jsx/jsx-runtime\";\nimport { RadiantElement, bound, customElement, onEvent, onUpdated, prop, query } from \"@ecopages/radiant\";\nimport { findFirstFocusableCandidate } from \"@/lib/focusable-elements\";\nimport { applyFloatingPosition, attachFloating } from \"../shared/floating-position\";\nconst TOOLTIP_GAP = 8;\nlet _RuiTooltip;\nclass RuiTooltip extends RadiantElement {\n static {\n ({\n e: [_init_content, _init_extra_content, _init_placement, _init_extra_placement, _init_delay, _init_extra_delay, _init_tooltipTarget, _init_extra_tooltipTarget, _initProto],\n c: [_RuiTooltip, _initClass]\n } = _applyDecs(this, [customElement(\"rui-tooltip\")], [[prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"content\"], [prop({\n type: String,\n defaultValue: \"top\"\n }), 0, \"placement\"], [prop({\n type: Number,\n defaultValue: 200\n }), 0, \"delay\"], [query({\n ref: \"tooltip\"\n }), 0, \"tooltipTarget\"], [onUpdated([\"content\", \"placement\"]), 2, \"onDescribedPropsUpdated\"], [onEvent({\n document: true,\n type: \"keydown\"\n }), 2, \"onDocumentKeydown\"], [onEvent({\n type: \"focusin\",\n selector: \".rui-tooltip__trigger\"\n }), 2, \"onFocusIn\"], [onEvent({\n type: \"focusout\",\n selector: \".rui-tooltip__trigger\"\n }), 2, \"onFocusOut\"], [bound, 2, \"onPointerEnter\"], [bound, 2, \"onPointerLeave\"]], 0, void 0, RadiantElement));\n }\n content = (_initProto(this), _init_content(this));\n placement = (_init_extra_content(this), _init_placement(this));\n delay = (_init_extra_placement(this), _init_delay(this));\n tooltipTarget = (_init_extra_delay(this), _init_tooltipTarget(this));\n /**\n * Plain (non-reactive) field, not a JSX binding target: `hidden` is toggled\n * imperatively in `setOpen()` rather than bound, since it flips on every\n * hover/focus in/out \u2014 high-frequency enough that a plain synchronous DOM\n * write is preferable to routing it through the reactive binding system.\n */\n open = (_init_extra_tooltipTarget(this), false);\n showTimer = null;\n hideTimer = null;\n tooltipId = `rui-tooltip-${Math.random().toString(36).slice(2, 9)}`;\n describedEl = null;\n cleanupFloating = null;\n /**\n * Pointer enter/leave must be host listeners: those events do not bubble, and\n * `@onEvent` only supports delegated (bubbling) listeners.\n */\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener(\"pointerenter\", this.onPointerEnter);\n this.addEventListener(\"pointerleave\", this.onPointerLeave);\n queueMicrotask(() => this.wireTrigger());\n }\n disconnectedCallback() {\n this.clearTimers();\n this.teardownFloating();\n this.removeEventListener(\"pointerenter\", this.onPointerEnter);\n this.removeEventListener(\"pointerleave\", this.onPointerLeave);\n this.describedEl?.removeAttribute(\"aria-describedby\");\n super.disconnectedCallback();\n }\n clearTimers() {\n if (this.showTimer) clearTimeout(this.showTimer);\n if (this.hideTimer) clearTimeout(this.hideTimer);\n this.showTimer = null;\n this.hideTimer = null;\n }\n teardownFloating() {\n this.cleanupFloating?.();\n this.cleanupFloating = null;\n }\n getAnchor() {\n return findFirstFocusableCandidate(this) ?? this;\n }\n wireTrigger() {\n this.describedEl?.removeAttribute(\"aria-describedby\");\n this.describedEl = this.getAnchor();\n this.describedEl.setAttribute(\"aria-describedby\", this.tooltipId);\n }\n attachFloating() {\n if (!this.tooltipTarget) return;\n this.teardownFloating();\n this.cleanupFloating = attachFloating({\n anchor: this.getAnchor(),\n floating: this.tooltipTarget,\n getPlacement: () => this.placement,\n gap: TOOLTIP_GAP\n });\n }\n onDescribedPropsUpdated() {\n this.wireTrigger();\n if (this.open && this.tooltipTarget) {\n applyFloatingPosition(this.getAnchor(), this.tooltipTarget, this.placement, TOOLTIP_GAP);\n }\n }\n setOpen(next) {\n this.clearTimers();\n this.open = next;\n if (!this.tooltipTarget) return;\n this.tooltipTarget.hidden = !next;\n if (next) this.attachFloating();else this.teardownFloating();\n }\n scheduleShow() {\n this.clearTimers();\n if (this.delay <= 0) {\n this.setOpen(true);\n return;\n }\n this.showTimer = setTimeout(() => this.setOpen(true), this.delay);\n }\n scheduleHide() {\n this.clearTimers();\n this.hideTimer = setTimeout(() => this.setOpen(false), 80);\n }\n onDocumentKeydown(event) {\n if (!this.open || event.key !== \"Escape\") return;\n this.setOpen(false);\n }\n onFocusIn() {\n this.scheduleShow();\n }\n onFocusOut(event) {\n const next = event.relatedTarget;\n if (next && this.contains(next)) return;\n this.scheduleHide();\n }\n onPointerEnter() {\n this.scheduleShow();\n }\n onPointerLeave() {\n this.scheduleHide();\n }\n render() {\n return /* @__PURE__ */jsxs(\"span\", {\n class: \"rui-tooltip\",\n children: [/* @__PURE__ */jsx(\"span\", {\n class: \"rui-tooltip__trigger\",\n children: /* @__PURE__ */jsx(\"slot\", {})\n }), /* @__PURE__ */jsx(\"span\", {\n \"data-ref\": \"tooltip\",\n id: this.tooltipId,\n class: \"rui-tooltip__content rui-floating\",\n role: \"tooltip\",\n hidden: true,\n children: this.$.content\n })]\n });\n }\n static {\n _initClass();\n }\n}\nexport { _RuiTooltip as RuiTooltip };", "const FOCUSABLE_CANDIDATE_SELECTOR = \"a[href], button, input, select, textarea, [tabindex]\";\nfunction isFocusableCandidate(element) {\n return !element.hasAttribute(\"disabled\") && element.getAttribute(\"tabindex\") !== \"-1\";\n}\nexport function queryFocusableCandidates(root) {\n return Array.from(root.querySelectorAll(FOCUSABLE_CANDIDATE_SELECTOR)).filter(isFocusableCandidate);\n}\nexport function queryRovingTabindexItems(root) {\n return Array.from(root.querySelectorAll(FOCUSABLE_CANDIDATE_SELECTOR)).filter(element => !element.hasAttribute(\"disabled\"));\n}\nexport function findFirstFocusableCandidate(root) {\n return queryFocusableCandidates(root)[0];\n}\nfunction isVisible(element) {\n return element.getClientRects().length > 0 && !element.closest(\"[hidden]\");\n}\nexport function getFocusableElements(root) {\n return queryFocusableCandidates(root).filter(isVisible);\n}", "const OPPOSITE = {\n top: \"bottom\",\n bottom: \"top\",\n left: \"right\",\n right: \"left\"\n};\nconst DEFAULT_VIEWPORT_PADDING = 8;\nfunction parsePlacement(placement) {\n const dash = placement.indexOf(\"-\");\n if (dash === -1) return {\n side: placement,\n align: \"center\"\n };\n const side = placement.slice(0, dash);\n const align = placement.slice(dash + 1);\n return {\n side,\n align: align === \"start\" || align === \"end\" ? align : \"center\"\n };\n}\nfunction primaryAxis(side) {\n return side === \"top\" || side === \"bottom\" ? \"y\" : \"x\";\n}\nfunction coordsFor(anchor, size, side, align, gap) {\n const {\n width,\n height\n } = size;\n let x = 0;\n let y = 0;\n switch (side) {\n case \"top\":\n y = anchor.top - height - gap;\n break;\n case \"bottom\":\n y = anchor.bottom + gap;\n break;\n case \"left\":\n x = anchor.left - width - gap;\n break;\n case \"right\":\n x = anchor.right + gap;\n break;\n }\n if (primaryAxis(side) === \"y\") {\n if (align === \"start\") x = anchor.left;else if (align === \"end\") x = anchor.right - width;else x = anchor.left + (anchor.width - width) / 2;\n } else {\n if (align === \"start\") y = anchor.top;else if (align === \"end\") y = anchor.bottom - height;else y = anchor.top + (anchor.height - height) / 2;\n }\n return {\n x,\n y\n };\n}\nfunction overflowOnPrimary(coords, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (side === \"top\") return Math.max(0, padding - coords.y);\n if (side === \"bottom\") return Math.max(0, coords.y + size.height - (vh - padding));\n if (side === \"left\") return Math.max(0, padding - coords.x);\n return Math.max(0, coords.x + size.width - (vw - padding));\n}\nfunction freeSpaceOnSide(anchor, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (side === \"top\") return anchor.top - padding - size.height;\n if (side === \"bottom\") return vh - padding - size.height - anchor.bottom;\n if (side === \"left\") return anchor.left - padding - size.width;\n return vw - padding - size.width - anchor.right;\n}\nfunction toPlacement(side, align) {\n if (align === \"center\") {\n return side;\n }\n return `${side}-${align}`;\n}\nfunction clampCrossAxis(coords, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (primaryAxis(side) === \"y\") {\n const maxX = Math.max(padding, vw - padding - size.width);\n return {\n x: Math.min(Math.max(coords.x, padding), maxX),\n y: coords.y\n };\n }\n const maxY = Math.max(padding, vh - padding - size.height);\n return {\n x: coords.x,\n y: Math.min(Math.max(coords.y, padding), maxY)\n };\n}\nexport function computeFloatingCoords(anchor, size, placement, gap, viewport = {\n width: typeof window === \"undefined\" ? 0 : window.innerWidth,\n height: typeof window === \"undefined\" ? 0 : window.innerHeight,\n padding: DEFAULT_VIEWPORT_PADDING\n}) {\n return computeFloatingPosition(anchor, size, placement, gap, viewport).coords;\n}\nexport function computeFloatingPosition(anchor, size, placement, gap, viewport = {\n width: typeof window === \"undefined\" ? 0 : window.innerWidth,\n height: typeof window === \"undefined\" ? 0 : window.innerHeight,\n padding: DEFAULT_VIEWPORT_PADDING\n}) {\n const {\n side: preferred,\n align\n } = parsePlacement(placement);\n const preferredCoords = coordsFor(anchor, size, preferred, align, gap);\n const preferredOverflow = overflowOnPrimary(preferredCoords, size, preferred, viewport);\n let side = preferred;\n let coords = preferredCoords;\n if (preferredOverflow > 0) {\n const flipped = OPPOSITE[preferred];\n const flippedCoords = coordsFor(anchor, size, flipped, align, gap);\n const preferredFree = freeSpaceOnSide(anchor, size, preferred, viewport);\n const flippedFree = freeSpaceOnSide(anchor, size, flipped, viewport);\n if (flippedFree > preferredFree) {\n side = flipped;\n coords = flippedCoords;\n }\n }\n return {\n coords: clampCrossAxis(coords, size, side, viewport),\n placement: toPlacement(side, align)\n };\n}\nexport function applyFloatingPosition(anchor, floating, placement, gap, options = {}) {\n const {\n coords,\n placement: resolved\n } = computeFloatingPosition(anchor.getBoundingClientRect(), {\n width: floating.offsetWidth,\n height: floating.offsetHeight\n }, placement, gap);\n Object.assign(floating.style, {\n position: \"fixed\",\n left: `${coords.x}px`,\n top: `${coords.y}px`,\n right: \"auto\",\n bottom: \"auto\",\n visibility: \"visible\"\n });\n if (options.matchAnchorWidth) {\n floating.style.width = `${anchor.offsetWidth}px`;\n }\n floating.setAttribute(\"data-placement\", resolved);\n return resolved;\n}\nexport function attachFloating({\n anchor,\n floating,\n getPlacement,\n gap,\n matchAnchorWidth\n}) {\n const update = () => {\n if (floating.hidden) return;\n applyFloatingPosition(anchor, floating, getPlacement(), gap, {\n matchAnchorWidth\n });\n };\n update();\n window.addEventListener(\"resize\", update);\n window.addEventListener(\"scroll\", update, true);\n const observer = new ResizeObserver(update);\n observer.observe(anchor);\n observer.observe(floating);\n return () => {\n window.removeEventListener(\"resize\", update);\n window.removeEventListener(\"scroll\", update, true);\n observer.disconnect();\n };\n}", "import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { defineRadiantView } from \"@/lib/radiant-view\";\nimport { RuiTooltip as RuiTooltipElement } from \"./tooltip.script\";\nexport const RuiTooltip = defineRadiantView(RuiTooltipElement, ({\n children,\n ...props\n}) => /* @__PURE__ */jsx(\"rui-tooltip\", {\n ...props,\n children\n}), {\n stylesheets: [\"./tooltip.css\"]\n});", "const RADIANT_VIEW_ELEMENT = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.viewElement\");\nconst RADIANT_SCRIPT_MODULE = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.scriptModule\");\nconst RADIANT_SCRIPT_EXPORT = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.scriptExport\");\nconst RADIANT_VIEW_MODULE = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.viewModule\");\nfunction linkViewToElement(view, element) {\n view[RADIANT_VIEW_ELEMENT] = element;\n const ssrModule = element[RADIANT_SCRIPT_MODULE];\n if (ssrModule) {\n view[RADIANT_SCRIPT_MODULE] = ssrModule;\n view[RADIANT_SCRIPT_EXPORT] = element[RADIANT_SCRIPT_EXPORT] ?? element.name;\n }\n}\nexport function defineRadiantView(element, render, _options) {\n const view = args => render(args);\n linkViewToElement(view, element);\n return view;\n}\nexport function attachRadiantStylesheets(target, _stylesheets, moduleUrl) {\n const view = target;\n view[RADIANT_VIEW_MODULE] = moduleUrl;\n return target;\n}\nexport function syncRadiantViewMetadata(view) {\n const element = view[RADIANT_VIEW_ELEMENT];\n if (element) {\n linkViewToElement(view, element);\n }\n}"],
5
+ "mappings": "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",
6
+ "names": ["jsx", "jsxs", "RadiantElement", "bound", "customElement", "onEvent", "onUpdated", "prop", "query", "FOCUSABLE_CANDIDATE_SELECTOR", "isFocusableCandidate", "element", "queryFocusableCandidates", "root", "findFirstFocusableCandidate", "root", "queryFocusableCandidates", "OPPOSITE", "DEFAULT_VIEWPORT_PADDING", "parsePlacement", "placement", "dash", "side", "align", "primaryAxis", "coordsFor", "anchor", "size", "gap", "width", "height", "x", "y", "overflowOnPrimary", "coords", "viewport", "padding", "vw", "vh", "freeSpaceOnSide", "toPlacement", "clampCrossAxis", "maxX", "maxY", "computeFloatingPosition", "anchor", "size", "placement", "gap", "viewport", "DEFAULT_VIEWPORT_PADDING", "preferred", "align", "parsePlacement", "preferredCoords", "coordsFor", "preferredOverflow", "overflowOnPrimary", "side", "coords", "flipped", "OPPOSITE", "flippedCoords", "preferredFree", "freeSpaceOnSide", "clampCrossAxis", "toPlacement", "applyFloatingPosition", "floating", "options", "resolved", "attachFloating", "getPlacement", "matchAnchorWidth", "update", "observer", "_initProto", "_initClass", "_init_content", "_init_extra_content", "_init_placement", "_init_extra_placement", "_init_delay", "_init_extra_delay", "_init_tooltipTarget", "_init_extra_tooltipTarget", "_applyDecs", "e", "t", "n", "r", "o", "i", "c", "u", "s", "f", "l", "p", "d", "m", "h", "y", "v", "g", "a", "b", "applyDec", "w", "D", "S", "j", "E", "I", "P", "k", "F", "_setFunctionName", "N", "O", "T", "z", "A", "H", "_toPropertyKey", "_checkInRHS", "_toPrimitive", "TOOLTIP_GAP", "_RuiTooltip", "RuiTooltip", "RadiantElement", "customElement", "prop", "query", "onUpdated", "onEvent", "bound", "findFirstFocusableCandidate", "attachFloating", "applyFloatingPosition", "next", "event", "jsxs", "jsx", "jsx", "RADIANT_VIEW_ELEMENT", "RADIANT_SCRIPT_MODULE", "RADIANT_SCRIPT_EXPORT", "linkViewToElement", "view", "element", "RADIANT_VIEW_ELEMENT", "ssrModule", "RADIANT_SCRIPT_MODULE", "RADIANT_SCRIPT_EXPORT", "defineRadiantView", "render", "_options", "args", "RuiTooltip", "defineRadiantView", "_RuiTooltip", "children", "props", "jsx"]
7
7
  }