@luzmo/lucero 1.0.1-alpha.4 → 1.0.1-alpha.40

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 (236) hide show
  1. package/components/accordion/index.cjs +6 -6
  2. package/components/accordion/index.js +14 -13
  3. package/components/action-bar/index.cjs +4 -4
  4. package/components/action-bar/index.js +20 -18
  5. package/components/action-button/index.cjs +3 -3
  6. package/components/action-button/index.js +7 -6
  7. package/components/action-group/index.cjs +1 -1
  8. package/components/action-group/index.js +2 -2
  9. package/components/{action-group-DBImibFn.js → action-group-Bwt9w8Vh.js} +10 -9
  10. package/components/action-group-D917z7XF.cjs +20 -0
  11. package/components/action-menu/index.cjs +9 -9
  12. package/components/action-menu/index.js +10 -10
  13. package/components/avatar/index.cjs +3 -3
  14. package/components/avatar/index.js +7 -7
  15. package/components/base-5nDSSNeT.cjs +18 -0
  16. package/components/base-CdYjmV_8.js +96 -0
  17. package/components/button/button-base.d.ts +16 -0
  18. package/components/button/button.d.ts +38 -2
  19. package/components/button/index.cjs +2 -2
  20. package/components/button/index.js +37 -32
  21. package/components/{button-base-DbkDzb71.js → button-base-B5uul3tZ.js} +54 -39
  22. package/components/button-base-C7or8-FB.cjs +25 -0
  23. package/components/button-group/index.cjs +1 -1
  24. package/components/button-group/index.js +11 -9
  25. package/components/calendar/index.cjs +96 -1
  26. package/components/calendar/index.js +538 -6
  27. package/components/checkbox/index.cjs +4 -4
  28. package/components/checkbox/index.js +10 -8
  29. package/components/{checkbox-mixin-Do7EgtpQ.js → checkbox-mixin-DUbGDm7f.js} +9 -9
  30. package/components/{checkbox-mixin-BDN0dBtS.cjs → checkbox-mixin-DhN8CIXY.cjs} +3 -3
  31. package/components/{clear-button-DoeRUWQ3.js → clear-button-Bjp7N52G.js} +14 -13
  32. package/components/clear-button-C39c3PH0.cjs +18 -0
  33. package/components/close-button-C4zqQJRL.cjs +18 -0
  34. package/components/close-button-R-Cyxi_j.js +52 -0
  35. package/components/color-area/index.cjs +5 -5
  36. package/components/color-area/index.js +12 -11
  37. package/components/color-controller-7sNUf7SP.js +386 -0
  38. package/components/color-controller-ChN-A9Ft.cjs +18 -0
  39. package/components/color-field/color-field.d.ts +8 -0
  40. package/components/color-field/index.cjs +4 -4
  41. package/components/color-field/index.js +38 -25
  42. package/components/color-handle/index.cjs +2 -2
  43. package/components/color-handle/index.js +8 -6
  44. package/components/color-loupe/index.cjs +1 -1
  45. package/components/color-loupe/index.js +2 -2
  46. package/components/color-loupe-CIEFp7ln.cjs +56 -0
  47. package/components/{color-loupe-CmMsXbjT.js → color-loupe-CLPX6xVb.js} +6 -4
  48. package/components/color-menu/index.cjs +8 -8
  49. package/components/color-menu/index.js +46 -46
  50. package/components/color-palette/color-palette.d.ts +6 -2
  51. package/components/color-palette/index.cjs +1 -1
  52. package/components/color-palette/index.js +35 -34
  53. package/components/color-palette-group/color-palette-group.d.ts +79 -0
  54. package/components/color-palette-group/index.cjs +28 -0
  55. package/components/color-palette-group/index.d.ts +7 -0
  56. package/components/color-palette-group/index.js +206 -0
  57. package/components/color-picker/color-picker.d.ts +31 -2
  58. package/components/color-picker/index.cjs +6 -5
  59. package/components/color-picker/index.js +16 -12
  60. package/components/color-slider/index.cjs +40 -1
  61. package/components/color-slider/index.js +452 -6
  62. package/components/date-time-picker/index.cjs +16 -16
  63. package/components/date-time-picker/index.js +105 -106
  64. package/components/{dependency-manger-CEXvGQUV.js → dependency-manger-CO-VPlqq.js} +4 -4
  65. package/components/{dependency-manger-C5HCkMMB.cjs → dependency-manger-uthev62E.cjs} +1 -1
  66. package/components/divider/index.cjs +1 -1
  67. package/components/divider/index.js +11 -9
  68. package/components/field-group/index.cjs +1 -1
  69. package/components/field-group/index.js +2 -2
  70. package/components/field-group-BYHNJmv0.cjs +23 -0
  71. package/components/{field-group-DXfBWrkO.js → field-group-CHmw159R.js} +7 -5
  72. package/components/field-label/index.cjs +1 -1
  73. package/components/field-label/index.js +2 -2
  74. package/components/{field-label-CZ2zzChK.js → field-label-Cy3xMWZ-.js} +9 -8
  75. package/components/field-label-DZoeqJJX.cjs +25 -0
  76. package/components/{focus-visible-DBlJGoEW.js → focus-visible-BvScGDCE.js} +20 -20
  77. package/components/focus-visible-D4BXb5RB.cjs +18 -0
  78. package/components/{focusable-BxtpnzWp.js → focusable-BjvsvVam.js} +3 -2
  79. package/components/focusable-CbVKgGfS.cjs +18 -0
  80. package/components/icon/index.cjs +1 -1
  81. package/components/icon/index.js +22 -20
  82. package/components/index.cjs +1 -1
  83. package/components/index.js +140 -138
  84. package/components/infield-button/index.cjs +2 -2
  85. package/components/infield-button/index.js +6 -5
  86. package/components/label/index.cjs +1 -1
  87. package/components/label/index.js +7 -5
  88. package/components/{language-resolution-8yZa5r_P.js → language-resolution-B-wjV5bb.js} +9 -8
  89. package/components/{directive-C7oCP5Bh.cjs → language-resolution-EUER43cg.cjs} +1 -5
  90. package/components/like-anchor-B2EqJPdw.cjs +32 -0
  91. package/components/{like-anchor-Bvn_vLQ8.js → like-anchor-CgqCU210.js} +23 -22
  92. package/components/{manage-help-text-DhgARkZX.cjs → manage-help-text-Bat9yGvF.cjs} +3 -3
  93. package/components/{manage-help-text-syYnjKGL.js → manage-help-text-C9sCHK3R.js} +8 -8
  94. package/components/menu/index.cjs +38 -13
  95. package/components/menu/index.js +138 -105
  96. package/components/menu/menu-item.d.ts +8 -1
  97. package/components/multi-language-field/index.cjs +2 -2
  98. package/components/multi-language-field/index.js +9 -7
  99. package/components/number-field/index.cjs +5 -5
  100. package/components/number-field/index.js +122 -85
  101. package/components/number-field/number-field.d.ts +145 -0
  102. package/components/observe-slot-presence-CNltc0C0.cjs +18 -0
  103. package/components/{observe-slot-presence-CmVi0zTc.js → observe-slot-presence-DFi6GE3H.js} +1 -1
  104. package/components/observe-slot-text-CBMHpuIK.cjs +18 -0
  105. package/components/{observe-slot-text-BPfIQQtz.js → observe-slot-text-DorVpCL4.js} +14 -15
  106. package/components/options/index.cjs +26 -58
  107. package/components/options/index.js +205 -849
  108. package/components/overlay/index.cjs +6 -6
  109. package/components/overlay/index.js +31 -32
  110. package/components/overlay-BhrVS5h7.cjs +47 -0
  111. package/components/overlay-C-No3oJQ.js +1736 -0
  112. package/components/{pending-state-CaH1si5b.cjs → pending-state-DQctFHI8.cjs} +2 -2
  113. package/components/{pending-state-DTX7ggyF.js → pending-state-Dx1u3EXA.js} +2 -2
  114. package/components/picker/index.cjs +1 -1
  115. package/components/picker/index.js +3 -3
  116. package/components/{picker-BmoXv1jt.js → picker-Cm6_didQ.js} +44 -44
  117. package/components/picker-DxYgh4LR.cjs +123 -0
  118. package/components/picker-button/index.cjs +4 -4
  119. package/components/picker-button/index.js +8 -7
  120. package/components/{platform-BiXhwqk3.cjs → platform-BJnOJJag.cjs} +1 -1
  121. package/components/{platform-BM-uMWpX.js → platform-CqwNrovd.js} +12 -12
  122. package/components/popover/index.cjs +1 -1
  123. package/components/popover/index.js +2 -2
  124. package/components/popover-lcZnODPK.cjs +30 -0
  125. package/components/{popover-DjX0aAnY.js → popover-ucIgjbQs.js} +8 -7
  126. package/components/progress-circle/index.cjs +1 -1
  127. package/components/progress-circle/index.js +2 -2
  128. package/components/{progress-circle-DXH9z8-6.js → progress-circle-D5J0ZwY0.js} +8 -7
  129. package/components/progress-circle-DgMbqrzG.cjs +33 -0
  130. package/components/radio/index.cjs +2 -2
  131. package/components/radio/index.js +12 -11
  132. package/components/search/index.cjs +6 -6
  133. package/components/search/index.js +6 -6
  134. package/components/select/index.cjs +43 -42
  135. package/components/select/index.js +142 -126
  136. package/components/select/select.d.ts +1 -1
  137. package/components/{base-BjTwmyRF.cjs → sized-mixin-DcvJLFeo.cjs} +1 -5
  138. package/components/{sized-mixin-D4ACoVUr.js → sized-mixin-cJbo3PKR.js} +5 -5
  139. package/components/slider/index.cjs +1 -1
  140. package/components/slider/index.js +48 -1101
  141. package/components/{strategies-9indNIEb.js → strategies-Bk97oVn1.js} +15 -50
  142. package/components/strategies-CNgBb6dM.cjs +18 -0
  143. package/components/{streaming-listener-CP-JE6Fa.js → streaming-listener-BlWm-XZU.js} +5 -6
  144. package/components/streaming-listener-D9Wc7skA.cjs +18 -0
  145. package/components/swatch/index.cjs +7 -7
  146. package/components/swatch/index.js +18 -17
  147. package/components/switch/index.cjs +2 -2
  148. package/components/switch/index.js +6 -5
  149. package/components/tabs/index.cjs +16 -24
  150. package/components/tabs/index.js +94 -162
  151. package/components/tags/index.cjs +4 -4
  152. package/components/tags/index.js +15 -14
  153. package/components/text-field/index.cjs +3 -3
  154. package/components/text-field/index.js +13 -11
  155. package/components/text-field/text-field.d.ts +1 -0
  156. package/components/{text-field-BIADXoLC.js → text-field-BHaLKkf1.js} +73 -99
  157. package/components/text-field-DFP7p8Rv.cjs +81 -0
  158. package/components/text-field.module-Bp4Mwuvj.js +21 -0
  159. package/components/text-field.module-eAEqjvZu.cjs +18 -0
  160. package/components/toast/index.cjs +11 -11
  161. package/components/toast/index.js +11 -9
  162. package/components/tooltip/index.cjs +4 -4
  163. package/components/tooltip/index.js +60 -36
  164. package/components/tooltip/tooltip.d.ts +12 -1
  165. package/components/unit-input/index.cjs +6 -6
  166. package/components/unit-input/index.js +12 -11
  167. package/components/utils.cjs +1 -1
  168. package/components/utils.js +6 -6
  169. package/custom-elements.json +1 -1
  170. package/index.d.ts +1 -0
  171. package/package.json +67 -1
  172. package/components/NumberFormatter-DewVDY5w.cjs +0 -18
  173. package/components/NumberFormatter-DgOUVrge.js +0 -136
  174. package/components/NumberParser-Dik4a0h-.cjs +0 -18
  175. package/components/NumberParser-ci9J5EKv.js +0 -173
  176. package/components/action-group-DJGMcRHb.cjs +0 -20
  177. package/components/async-directive-BX1T1e1_.cjs +0 -22
  178. package/components/async-directive-BfcqVjDp.js +0 -82
  179. package/components/base-CBCg3yyw.cjs +0 -40
  180. package/components/base-D76d76ww.js +0 -26
  181. package/components/base-WsynuqaS.js +0 -677
  182. package/components/button-base-XgPLmwP-.cjs +0 -25
  183. package/components/class-map-Di1D_rCm.cjs +0 -22
  184. package/components/class-map-NbVXqBU0.js +0 -51
  185. package/components/clear-button-Qi1pMA5S.cjs +0 -18
  186. package/components/close-button-BFMBEw3q.cjs +0 -18
  187. package/components/close-button-BWXdHSx3.js +0 -51
  188. package/components/color-controller-DTp1juRz.js +0 -3198
  189. package/components/color-controller-_ZwyhvaU.cjs +0 -18
  190. package/components/color-loupe-CaA_Lfkk.cjs +0 -56
  191. package/components/directive-helpers-Cm6gitnu.js +0 -62
  192. package/components/directive-helpers-DyIRTWwA.cjs +0 -22
  193. package/components/directive-oAbCiebi.js +0 -44
  194. package/components/field-group-DkGst3r5.cjs +0 -23
  195. package/components/field-label-mO1AkUgR.cjs +0 -25
  196. package/components/flow-D-0MTYCm.js +0 -527
  197. package/components/flow-DM3dNAKs.cjs +0 -30
  198. package/components/focus-visible-B0P9aY_G.cjs +0 -18
  199. package/components/focusable-EbipgXRh.cjs +0 -18
  200. package/components/if-defined-C9YGdo33.cjs +0 -22
  201. package/components/if-defined-DOaE2coe.js +0 -27
  202. package/components/index-A-yOTB_d.js +0 -1490
  203. package/components/index-BLWuwZXx.cjs +0 -113
  204. package/components/index-BwxgAdzi.cjs +0 -57
  205. package/components/index-HjQa8tew.js +0 -1174
  206. package/components/language-resolution-DJzmyzZq.cjs +0 -18
  207. package/components/like-anchor-sod1C1fR.cjs +0 -32
  208. package/components/luzmo-icons-DbwDQtuO.js +0 -229
  209. package/components/luzmo-icons-DletXGWU.cjs +0 -29
  210. package/components/mutation-controller-DH7YOCyj.js +0 -52
  211. package/components/mutation-controller-DkOMCW-c.cjs +0 -22
  212. package/components/observe-slot-presence-bc9chhsi.cjs +0 -18
  213. package/components/observe-slot-text-Ceb7SvYT.cjs +0 -18
  214. package/components/overlay-Cig9r6uU.js +0 -2747
  215. package/components/overlay-KSKMzzkh.cjs +0 -47
  216. package/components/picker-DWsBWdPN.cjs +0 -123
  217. package/components/popover-KFfO0IYL.cjs +0 -30
  218. package/components/progress-circle-BvRJNuNo.cjs +0 -33
  219. package/components/query-BL-TJj7K.cjs +0 -22
  220. package/components/query-D_KR_GUc.js +0 -51
  221. package/components/query-assigned-elements-DjfhL1cl.js +0 -36
  222. package/components/query-assigned-elements-DsKsfk7G.cjs +0 -22
  223. package/components/query-assigned-nodes-BcKWmGzy.cjs +0 -22
  224. package/components/query-assigned-nodes-C76XVPWY.js +0 -36
  225. package/components/sized-mixin-CPxE5C96.cjs +0 -18
  226. package/components/state-D8JEtYqe.cjs +0 -22
  227. package/components/state-Deh-vKYE.js +0 -29
  228. package/components/strategies-BACP6MhR.cjs +0 -18
  229. package/components/streaming-listener-B00MvALi.cjs +0 -18
  230. package/components/style-map-CeilmSgs.cjs +0 -22
  231. package/components/style-map-IgqIKvlE.js +0 -53
  232. package/components/text-field-D5d_Gt0t.cjs +0 -85
  233. package/components/text-field.module-ColtFhf_.js +0 -21
  234. package/components/text-field.module-p_VF2tC_.cjs +0 -18
  235. package/components/when-CDK1Tt5Y.js +0 -28
  236. package/components/when-CDZyJPvd.cjs +0 -22
@@ -1,527 +0,0 @@
1
- /*! * Lucero - The design system for Luzmo.
2
- *
3
- * Copyright © 2025 Luzmo
4
- * All rights reserved.
5
- * Lucero (“Luzmo Design System”) must be used according to the Luzmo Terms of Service.
6
- * This license allows users with a current active Luzmo account to use Lucero.
7
- * This license terminates automatically if a user no longer has an active Luzmo account.
8
- * Please view the Luzmo Terms of Service at: https://www.luzmo.com/information-pages/terms-of-use.
9
- *
10
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
11
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
12
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
13
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
14
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
15
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16
- * SOFTWARE.
17
- * */
18
- /**
19
- * @license
20
- * Copyright 2021 Google LLC
21
- * SPDX-License-Identifier: BSD-3-Clause
22
- */
23
- class g {
24
- constructor(i) {
25
- this._map = /* @__PURE__ */ new Map(), this._roundAverageSize = !1, this.totalSize = 0, (i == null ? void 0 : i.roundAverageSize) === !0 && (this._roundAverageSize = !0);
26
- }
27
- set(i, t) {
28
- const s = this._map.get(i) || 0;
29
- this._map.set(i, t), this.totalSize += t - s;
30
- }
31
- get averageSize() {
32
- if (this._map.size > 0) {
33
- const i = this.totalSize / this._map.size;
34
- return this._roundAverageSize ? Math.round(i) : i;
35
- }
36
- return 0;
37
- }
38
- getSize(i) {
39
- return this._map.get(i);
40
- }
41
- clear() {
42
- this._map.clear(), this.totalSize = 0;
43
- }
44
- }
45
- /**
46
- * @license
47
- * Copyright 2021 Google LLC
48
- * SPDX-License-Identifier: BSD-3-Clause
49
- */
50
- function f(o) {
51
- return o === "horizontal" ? "width" : "height";
52
- }
53
- class d {
54
- _getDefaultConfig() {
55
- return {
56
- direction: "vertical"
57
- };
58
- }
59
- constructor(i, t) {
60
- this._latestCoords = { left: 0, top: 0 }, this._direction = null, this._viewportSize = { width: 0, height: 0 }, this.totalScrollSize = { width: 0, height: 0 }, this.offsetWithinScroller = { left: 0, top: 0 }, this._pendingReflow = !1, this._pendingLayoutUpdate = !1, this._pin = null, this._firstVisible = 0, this._lastVisible = 0, this._physicalMin = 0, this._physicalMax = 0, this._first = -1, this._last = -1, this._sizeDim = "height", this._secondarySizeDim = "width", this._positionDim = "top", this._secondaryPositionDim = "left", this._scrollPosition = 0, this._scrollError = 0, this._items = [], this._scrollSize = 1, this._overhang = 1e3, this._hostSink = i, Promise.resolve().then(() => this.config = t || this._getDefaultConfig());
61
- }
62
- set config(i) {
63
- Object.assign(this, Object.assign({}, this._getDefaultConfig(), i));
64
- }
65
- get config() {
66
- return {
67
- direction: this.direction
68
- };
69
- }
70
- /**
71
- * Maximum index of children + 1, to help estimate total height of the scroll
72
- * space.
73
- */
74
- get items() {
75
- return this._items;
76
- }
77
- set items(i) {
78
- this._setItems(i);
79
- }
80
- _setItems(i) {
81
- i !== this._items && (this._items = i, this._scheduleReflow());
82
- }
83
- /**
84
- * Primary scrolling direction.
85
- */
86
- get direction() {
87
- return this._direction;
88
- }
89
- set direction(i) {
90
- i = i === "horizontal" ? i : "vertical", i !== this._direction && (this._direction = i, this._sizeDim = i === "horizontal" ? "width" : "height", this._secondarySizeDim = i === "horizontal" ? "height" : "width", this._positionDim = i === "horizontal" ? "left" : "top", this._secondaryPositionDim = i === "horizontal" ? "top" : "left", this._triggerReflow());
91
- }
92
- /**
93
- * Height and width of the viewport.
94
- */
95
- get viewportSize() {
96
- return this._viewportSize;
97
- }
98
- set viewportSize(i) {
99
- const { _viewDim1: t, _viewDim2: s } = this;
100
- Object.assign(this._viewportSize, i), s !== this._viewDim2 ? this._scheduleLayoutUpdate() : t !== this._viewDim1 && this._checkThresholds();
101
- }
102
- /**
103
- * Scroll offset of the viewport.
104
- */
105
- get viewportScroll() {
106
- return this._latestCoords;
107
- }
108
- set viewportScroll(i) {
109
- Object.assign(this._latestCoords, i);
110
- const t = this._scrollPosition;
111
- this._scrollPosition = this._latestCoords[this._positionDim], Math.abs(t - this._scrollPosition) >= 1 && this._checkThresholds();
112
- }
113
- /**
114
- * Perform a reflow if one has been scheduled.
115
- */
116
- reflowIfNeeded(i = !1) {
117
- (i || this._pendingReflow) && (this._pendingReflow = !1, this._reflow());
118
- }
119
- set pin(i) {
120
- this._pin = i, this._triggerReflow();
121
- }
122
- get pin() {
123
- if (this._pin !== null) {
124
- const { index: i, block: t } = this._pin;
125
- return {
126
- index: Math.max(0, Math.min(i, this.items.length - 1)),
127
- block: t
128
- };
129
- }
130
- return null;
131
- }
132
- _clampScrollPosition(i) {
133
- return Math.max(-this.offsetWithinScroller[this._positionDim], Math.min(i, this.totalScrollSize[f(this.direction)] - this._viewDim1));
134
- }
135
- unpin() {
136
- this._pin !== null && (this._sendUnpinnedMessage(), this._pin = null);
137
- }
138
- _updateLayout() {
139
- }
140
- // protected _viewDim2Changed(): void {
141
- // this._scheduleLayoutUpdate();
142
- // }
143
- /**
144
- * The height or width of the viewport, whichever corresponds to the scrolling direction.
145
- */
146
- get _viewDim1() {
147
- return this._viewportSize[this._sizeDim];
148
- }
149
- /**
150
- * The height or width of the viewport, whichever does NOT correspond to the scrolling direction.
151
- */
152
- get _viewDim2() {
153
- return this._viewportSize[this._secondarySizeDim];
154
- }
155
- _scheduleReflow() {
156
- this._pendingReflow = !0;
157
- }
158
- _scheduleLayoutUpdate() {
159
- this._pendingLayoutUpdate = !0, this._scheduleReflow();
160
- }
161
- // For triggering a reflow based on incoming changes to
162
- // the layout config.
163
- _triggerReflow() {
164
- this._scheduleLayoutUpdate(), Promise.resolve().then(() => this.reflowIfNeeded());
165
- }
166
- _reflow() {
167
- this._pendingLayoutUpdate && (this._updateLayout(), this._pendingLayoutUpdate = !1), this._updateScrollSize(), this._setPositionFromPin(), this._getActiveItems(), this._updateVisibleIndices(), this._sendStateChangedMessage();
168
- }
169
- /**
170
- * If we are supposed to be pinned to a particular
171
- * item or set of coordinates, we set `_scrollPosition`
172
- * accordingly and adjust `_scrollError` as needed
173
- * so that the virtualizer can keep the scroll
174
- * position in the DOM in sync
175
- */
176
- _setPositionFromPin() {
177
- if (this.pin !== null) {
178
- const i = this._scrollPosition, { index: t, block: s } = this.pin;
179
- this._scrollPosition = this._calculateScrollIntoViewPosition({
180
- index: t,
181
- block: s || "start"
182
- }) - this.offsetWithinScroller[this._positionDim], this._scrollError = i - this._scrollPosition;
183
- }
184
- }
185
- /**
186
- * Calculate the coordinates to scroll to, given
187
- * a request to scroll to the element at a specific
188
- * index.
189
- *
190
- * Supports the same positioning options (`start`,
191
- * `center`, `end`, `nearest`) as the standard
192
- * `Element.scrollIntoView()` method, but currently
193
- * only considers the provided value in the `block`
194
- * dimension, since we don't yet have any layouts
195
- * that support virtualization in two dimensions.
196
- */
197
- _calculateScrollIntoViewPosition(i) {
198
- const { block: t } = i, s = Math.min(this.items.length, Math.max(0, i.index)), h = this._getItemPosition(s)[this._positionDim];
199
- let n = h;
200
- if (t !== "start") {
201
- const l = this._getItemSize(s)[this._sizeDim];
202
- if (t === "center")
203
- n = h - 0.5 * this._viewDim1 + 0.5 * l;
204
- else {
205
- const e = h - this._viewDim1 + l;
206
- if (t === "end")
207
- n = e;
208
- else {
209
- const r = this._scrollPosition;
210
- n = Math.abs(r - h) < Math.abs(r - e) ? h : e;
211
- }
212
- }
213
- }
214
- return n += this.offsetWithinScroller[this._positionDim], this._clampScrollPosition(n);
215
- }
216
- getScrollIntoViewCoordinates(i) {
217
- return {
218
- [this._positionDim]: this._calculateScrollIntoViewPosition(i)
219
- };
220
- }
221
- _sendUnpinnedMessage() {
222
- this._hostSink({
223
- type: "unpinned"
224
- });
225
- }
226
- _sendVisibilityChangedMessage() {
227
- this._hostSink({
228
- type: "visibilityChanged",
229
- firstVisible: this._firstVisible,
230
- lastVisible: this._lastVisible
231
- });
232
- }
233
- _sendStateChangedMessage() {
234
- const i = /* @__PURE__ */ new Map();
235
- if (this._first !== -1 && this._last !== -1)
236
- for (let s = this._first; s <= this._last; s++)
237
- i.set(s, this._getItemPosition(s));
238
- const t = {
239
- type: "stateChanged",
240
- scrollSize: {
241
- [this._sizeDim]: this._scrollSize,
242
- [this._secondarySizeDim]: null
243
- },
244
- range: {
245
- first: this._first,
246
- last: this._last,
247
- firstVisible: this._firstVisible,
248
- lastVisible: this._lastVisible
249
- },
250
- childPositions: i
251
- };
252
- this._scrollError && (t.scrollError = {
253
- [this._positionDim]: this._scrollError,
254
- [this._secondaryPositionDim]: 0
255
- }, this._scrollError = 0), this._hostSink(t);
256
- }
257
- /**
258
- * Number of items to display.
259
- */
260
- get _num() {
261
- return this._first === -1 || this._last === -1 ? 0 : this._last - this._first + 1;
262
- }
263
- _checkThresholds() {
264
- if (this._viewDim1 === 0 && this._num > 0 || this._pin !== null)
265
- this._scheduleReflow();
266
- else {
267
- const i = Math.max(0, this._scrollPosition - this._overhang), t = Math.min(this._scrollSize, this._scrollPosition + this._viewDim1 + this._overhang);
268
- this._physicalMin > i || this._physicalMax < t ? this._scheduleReflow() : this._updateVisibleIndices({ emit: !0 });
269
- }
270
- }
271
- /**
272
- * Find the indices of the first and last items to intersect the viewport.
273
- * Emit a visibleindiceschange event when either index changes.
274
- */
275
- _updateVisibleIndices(i) {
276
- if (this._first === -1 || this._last === -1)
277
- return;
278
- let t = this._first;
279
- for (; t < this._last && Math.round(this._getItemPosition(t)[this._positionDim] + this._getItemSize(t)[this._sizeDim]) <= Math.round(this._scrollPosition); )
280
- t++;
281
- let s = this._last;
282
- for (; s > this._first && Math.round(this._getItemPosition(s)[this._positionDim]) >= Math.round(this._scrollPosition + this._viewDim1); )
283
- s--;
284
- (t !== this._firstVisible || s !== this._lastVisible) && (this._firstVisible = t, this._lastVisible = s, i && i.emit && this._sendVisibilityChangedMessage());
285
- }
286
- }
287
- /**
288
- * @license
289
- * Copyright 2021 Google LLC
290
- * SPDX-License-Identifier: BSD-3-Clause
291
- */
292
- function m(o) {
293
- return o === "horizontal" ? "marginLeft" : "marginTop";
294
- }
295
- function u(o) {
296
- return o === "horizontal" ? "marginRight" : "marginBottom";
297
- }
298
- function S(o) {
299
- return o === "horizontal" ? "xOffset" : "yOffset";
300
- }
301
- function z(o, i) {
302
- const t = [o, i].sort();
303
- return t[1] <= 0 ? Math.min(...t) : t[0] >= 0 ? Math.max(...t) : t[0] + t[1];
304
- }
305
- class p {
306
- constructor() {
307
- this._childSizeCache = new g(), this._marginSizeCache = new g(), this._metricsCache = /* @__PURE__ */ new Map();
308
- }
309
- update(i, t) {
310
- var h, n;
311
- const s = /* @__PURE__ */ new Set();
312
- Object.keys(i).forEach((l) => {
313
- const e = Number(l);
314
- this._metricsCache.set(e, i[e]), this._childSizeCache.set(e, i[e][f(t)]), s.add(e), s.add(e + 1);
315
- });
316
- for (const l of s) {
317
- const e = ((h = this._metricsCache.get(l)) == null ? void 0 : h[m(t)]) || 0, r = ((n = this._metricsCache.get(l - 1)) == null ? void 0 : n[u(t)]) || 0;
318
- this._marginSizeCache.set(l, z(e, r));
319
- }
320
- }
321
- get averageChildSize() {
322
- return this._childSizeCache.averageSize;
323
- }
324
- get totalChildSize() {
325
- return this._childSizeCache.totalSize;
326
- }
327
- get averageMarginSize() {
328
- return this._marginSizeCache.averageSize;
329
- }
330
- get totalMarginSize() {
331
- return this._marginSizeCache.totalSize;
332
- }
333
- getLeadingMarginValue(i, t) {
334
- var s;
335
- return ((s = this._metricsCache.get(i)) == null ? void 0 : s[m(t)]) || 0;
336
- }
337
- getChildSize(i) {
338
- return this._childSizeCache.getSize(i);
339
- }
340
- getMarginSize(i) {
341
- return this._marginSizeCache.getSize(i);
342
- }
343
- clear() {
344
- this._childSizeCache.clear(), this._marginSizeCache.clear(), this._metricsCache.clear();
345
- }
346
- }
347
- class M extends d {
348
- constructor() {
349
- super(...arguments), this._itemSize = { width: 100, height: 100 }, this._physicalItems = /* @__PURE__ */ new Map(), this._newPhysicalItems = /* @__PURE__ */ new Map(), this._metricsCache = new p(), this._anchorIdx = null, this._anchorPos = null, this._stable = !0, this._measureChildren = !0, this._estimate = !0;
350
- }
351
- // protected _defaultConfig: BaseLayoutConfig = Object.assign({}, super._defaultConfig, {
352
- // })
353
- // constructor(config: Layout1dConfig) {
354
- // super(config);
355
- // }
356
- get measureChildren() {
357
- return this._measureChildren;
358
- }
359
- /**
360
- * Determine the average size of all children represented in the sizes
361
- * argument.
362
- */
363
- updateItemSizes(i) {
364
- this._metricsCache.update(i, this.direction), this._scheduleReflow();
365
- }
366
- /**
367
- * Set the average item size based on the total length and number of children
368
- * in range.
369
- */
370
- // _updateItemSize() {
371
- // // Keep integer values.
372
- // this._itemSize[this._sizeDim] = this._metricsCache.averageChildSize;
373
- // }
374
- _getPhysicalItem(i) {
375
- return this._newPhysicalItems.get(i) ?? this._physicalItems.get(i);
376
- }
377
- _getSize(i) {
378
- return this._getPhysicalItem(i) && this._metricsCache.getChildSize(i);
379
- }
380
- _getAverageSize() {
381
- return this._metricsCache.averageChildSize || this._itemSize[this._sizeDim];
382
- }
383
- _estimatePosition(i) {
384
- const t = this._metricsCache;
385
- if (this._first === -1 || this._last === -1)
386
- return t.averageMarginSize + i * (t.averageMarginSize + this._getAverageSize());
387
- if (i < this._first) {
388
- const s = this._first - i;
389
- return this._getPhysicalItem(this._first).pos - (t.getMarginSize(this._first - 1) || t.averageMarginSize) - (s * t.averageChildSize + (s - 1) * t.averageMarginSize);
390
- } else {
391
- const s = i - this._last;
392
- return this._getPhysicalItem(this._last).pos + (t.getChildSize(this._last) || t.averageChildSize) + (t.getMarginSize(this._last) || t.averageMarginSize) + s * (t.averageChildSize + t.averageMarginSize);
393
- }
394
- }
395
- /**
396
- * Returns the position in the scrolling direction of the item at idx.
397
- * Estimates it if the item at idx is not in the DOM.
398
- */
399
- _getPosition(i) {
400
- const t = this._getPhysicalItem(i), { averageMarginSize: s } = this._metricsCache;
401
- return i === 0 ? this._metricsCache.getMarginSize(0) ?? s : t ? t.pos : this._estimatePosition(i);
402
- }
403
- _calculateAnchor(i, t) {
404
- return i <= 0 ? 0 : t > this._scrollSize - this._viewDim1 ? this.items.length - 1 : Math.max(0, Math.min(this.items.length - 1, Math.floor((i + t) / 2 / this._delta)));
405
- }
406
- _getAnchor(i, t) {
407
- if (this._physicalItems.size === 0)
408
- return this._calculateAnchor(i, t);
409
- if (this._first < 0)
410
- return this._calculateAnchor(i, t);
411
- if (this._last < 0)
412
- return this._calculateAnchor(i, t);
413
- const s = this._getPhysicalItem(this._first), h = this._getPhysicalItem(this._last), n = s.pos;
414
- if (h.pos + this._metricsCache.getChildSize(this._last) < i)
415
- return this._calculateAnchor(i, t);
416
- if (n > t)
417
- return this._calculateAnchor(i, t);
418
- let r = this._firstVisible - 1, a = -1 / 0;
419
- for (; a < i; )
420
- a = this._getPhysicalItem(++r).pos + this._metricsCache.getChildSize(r);
421
- return r;
422
- }
423
- /**
424
- * Updates _first and _last based on items that should be in the current
425
- * viewed range.
426
- */
427
- _getActiveItems() {
428
- this._viewDim1 === 0 || this.items.length === 0 ? this._clearItems() : this._getItems();
429
- }
430
- /**
431
- * Sets the range to empty.
432
- */
433
- _clearItems() {
434
- this._first = -1, this._last = -1, this._physicalMin = 0, this._physicalMax = 0;
435
- const i = this._newPhysicalItems;
436
- this._newPhysicalItems = this._physicalItems, this._newPhysicalItems.clear(), this._physicalItems = i, this._stable = !0;
437
- }
438
- /*
439
- * Updates _first and _last based on items that should be in the given range.
440
- */
441
- _getItems() {
442
- const i = this._newPhysicalItems;
443
- this._stable = !0;
444
- let t, s;
445
- if (this.pin !== null) {
446
- const { index: a } = this.pin;
447
- this._anchorIdx = a, this._anchorPos = this._getPosition(a);
448
- }
449
- if (t = this._scrollPosition - this._overhang, s = this._scrollPosition + this._viewDim1 + this._overhang, s < 0 || t > this._scrollSize) {
450
- this._clearItems();
451
- return;
452
- }
453
- (this._anchorIdx === null || this._anchorPos === null) && (this._anchorIdx = this._getAnchor(t, s), this._anchorPos = this._getPosition(this._anchorIdx));
454
- let h = this._getSize(this._anchorIdx);
455
- h === void 0 && (this._stable = !1, h = this._getAverageSize());
456
- const n = this._metricsCache.getMarginSize(this._anchorIdx) ?? this._metricsCache.averageMarginSize, l = this._metricsCache.getMarginSize(this._anchorIdx + 1) ?? this._metricsCache.averageMarginSize;
457
- this._anchorIdx === 0 && (this._anchorPos = n), this._anchorIdx === this.items.length - 1 && (this._anchorPos = this._scrollSize - l - h);
458
- let e = 0;
459
- for (this._anchorPos + h + l < t && (e = t - (this._anchorPos + h + l)), this._anchorPos - n > s && (e = s - (this._anchorPos - n)), e && (this._scrollPosition -= e, t -= e, s -= e, this._scrollError += e), i.set(this._anchorIdx, { pos: this._anchorPos, size: h }), this._first = this._last = this._anchorIdx, this._physicalMin = this._anchorPos - n, this._physicalMax = this._anchorPos + h + l; this._physicalMin > t && this._first > 0; ) {
460
- let a = this._getSize(--this._first);
461
- a === void 0 && (this._stable = !1, a = this._getAverageSize());
462
- let _ = this._metricsCache.getMarginSize(this._first);
463
- _ === void 0 && (this._stable = !1, _ = this._metricsCache.averageMarginSize), this._physicalMin -= a;
464
- const c = this._physicalMin;
465
- if (i.set(this._first, { pos: c, size: a }), this._physicalMin -= _, this._stable === !1 && this._estimate === !1)
466
- break;
467
- }
468
- for (; this._physicalMax < s && this._last < this.items.length - 1; ) {
469
- let a = this._getSize(++this._last);
470
- a === void 0 && (this._stable = !1, a = this._getAverageSize());
471
- let _ = this._metricsCache.getMarginSize(this._last);
472
- _ === void 0 && (this._stable = !1, _ = this._metricsCache.averageMarginSize);
473
- const c = this._physicalMax;
474
- if (i.set(this._last, { pos: c, size: a }), this._physicalMax += a + _, !this._stable && !this._estimate)
475
- break;
476
- }
477
- const r = this._calculateError();
478
- r && (this._physicalMin -= r, this._physicalMax -= r, this._anchorPos -= r, this._scrollPosition -= r, i.forEach((a) => a.pos -= r), this._scrollError += r), this._stable && (this._newPhysicalItems = this._physicalItems, this._newPhysicalItems.clear(), this._physicalItems = i);
479
- }
480
- _calculateError() {
481
- return this._first === 0 ? this._physicalMin : this._physicalMin <= 0 ? this._physicalMin - this._first * this._delta : this._last === this.items.length - 1 ? this._physicalMax - this._scrollSize : this._physicalMax >= this._scrollSize ? this._physicalMax - this._scrollSize + (this.items.length - 1 - this._last) * this._delta : 0;
482
- }
483
- _reflow() {
484
- const { _first: i, _last: t } = this;
485
- super._reflow(), (this._first === -1 && this._last == -1 || this._first === i && this._last === t) && this._resetReflowState();
486
- }
487
- _resetReflowState() {
488
- this._anchorIdx = null, this._anchorPos = null, this._stable = !0;
489
- }
490
- _updateScrollSize() {
491
- const { averageMarginSize: i } = this._metricsCache;
492
- this._scrollSize = Math.max(1, this.items.length * (i + this._getAverageSize()) + i);
493
- }
494
- /**
495
- * Returns the average size (precise or estimated) of an item in the scrolling direction,
496
- * including any surrounding space.
497
- */
498
- get _delta() {
499
- const { averageMarginSize: i } = this._metricsCache;
500
- return this._getAverageSize() + i;
501
- }
502
- /**
503
- * Returns the top and left positioning of the item at idx.
504
- */
505
- _getItemPosition(i) {
506
- return {
507
- [this._positionDim]: this._getPosition(i),
508
- [this._secondaryPositionDim]: 0,
509
- [S(this.direction)]: -(this._metricsCache.getLeadingMarginValue(i, this.direction) ?? this._metricsCache.averageMarginSize)
510
- };
511
- }
512
- /**
513
- * Returns the height and width of the item at idx.
514
- */
515
- _getItemSize(i) {
516
- return {
517
- [this._sizeDim]: this._getSize(i) || this._getAverageSize(),
518
- [this._secondarySizeDim]: this._itemSize[this._secondarySizeDim]
519
- };
520
- }
521
- _viewDim2Changed() {
522
- this._metricsCache.clear(), this._scheduleReflow();
523
- }
524
- }
525
- export {
526
- M as FlowLayout
527
- };
@@ -1,30 +0,0 @@
1
- /*! * Lucero - The design system for Luzmo.
2
- *
3
- * Copyright © 2025 Luzmo
4
- * All rights reserved.
5
- * Lucero (“Luzmo Design System”) must be used according to the Luzmo Terms of Service.
6
- * This license allows users with a current active Luzmo account to use Lucero.
7
- * This license terminates automatically if a user no longer has an active Luzmo account.
8
- * Please view the Luzmo Terms of Service at: https://www.luzmo.com/information-pages/terms-of-use.
9
- *
10
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
11
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
12
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
13
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
14
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
15
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16
- * SOFTWARE.
17
- * */
18
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});/**
19
- * @license
20
- * Copyright 2021 Google LLC
21
- * SPDX-License-Identifier: BSD-3-Clause
22
- */class g{constructor(i){this._map=new Map,this._roundAverageSize=!1,this.totalSize=0,(i==null?void 0:i.roundAverageSize)===!0&&(this._roundAverageSize=!0)}set(i,t){const s=this._map.get(i)||0;this._map.set(i,t),this.totalSize+=t-s}get averageSize(){if(this._map.size>0){const i=this.totalSize/this._map.size;return this._roundAverageSize?Math.round(i):i}return 0}getSize(i){return this._map.get(i)}clear(){this._map.clear(),this.totalSize=0}}/**
23
- * @license
24
- * Copyright 2021 Google LLC
25
- * SPDX-License-Identifier: BSD-3-Clause
26
- */function f(o){return o==="horizontal"?"width":"height"}class d{_getDefaultConfig(){return{direction:"vertical"}}constructor(i,t){this._latestCoords={left:0,top:0},this._direction=null,this._viewportSize={width:0,height:0},this.totalScrollSize={width:0,height:0},this.offsetWithinScroller={left:0,top:0},this._pendingReflow=!1,this._pendingLayoutUpdate=!1,this._pin=null,this._firstVisible=0,this._lastVisible=0,this._physicalMin=0,this._physicalMax=0,this._first=-1,this._last=-1,this._sizeDim="height",this._secondarySizeDim="width",this._positionDim="top",this._secondaryPositionDim="left",this._scrollPosition=0,this._scrollError=0,this._items=[],this._scrollSize=1,this._overhang=1e3,this._hostSink=i,Promise.resolve().then(()=>this.config=t||this._getDefaultConfig())}set config(i){Object.assign(this,Object.assign({},this._getDefaultConfig(),i))}get config(){return{direction:this.direction}}get items(){return this._items}set items(i){this._setItems(i)}_setItems(i){i!==this._items&&(this._items=i,this._scheduleReflow())}get direction(){return this._direction}set direction(i){i=i==="horizontal"?i:"vertical",i!==this._direction&&(this._direction=i,this._sizeDim=i==="horizontal"?"width":"height",this._secondarySizeDim=i==="horizontal"?"height":"width",this._positionDim=i==="horizontal"?"left":"top",this._secondaryPositionDim=i==="horizontal"?"top":"left",this._triggerReflow())}get viewportSize(){return this._viewportSize}set viewportSize(i){const{_viewDim1:t,_viewDim2:s}=this;Object.assign(this._viewportSize,i),s!==this._viewDim2?this._scheduleLayoutUpdate():t!==this._viewDim1&&this._checkThresholds()}get viewportScroll(){return this._latestCoords}set viewportScroll(i){Object.assign(this._latestCoords,i);const t=this._scrollPosition;this._scrollPosition=this._latestCoords[this._positionDim],Math.abs(t-this._scrollPosition)>=1&&this._checkThresholds()}reflowIfNeeded(i=!1){(i||this._pendingReflow)&&(this._pendingReflow=!1,this._reflow())}set pin(i){this._pin=i,this._triggerReflow()}get pin(){if(this._pin!==null){const{index:i,block:t}=this._pin;return{index:Math.max(0,Math.min(i,this.items.length-1)),block:t}}return null}_clampScrollPosition(i){return Math.max(-this.offsetWithinScroller[this._positionDim],Math.min(i,this.totalScrollSize[f(this.direction)]-this._viewDim1))}unpin(){this._pin!==null&&(this._sendUnpinnedMessage(),this._pin=null)}_updateLayout(){}get _viewDim1(){return this._viewportSize[this._sizeDim]}get _viewDim2(){return this._viewportSize[this._secondarySizeDim]}_scheduleReflow(){this._pendingReflow=!0}_scheduleLayoutUpdate(){this._pendingLayoutUpdate=!0,this._scheduleReflow()}_triggerReflow(){this._scheduleLayoutUpdate(),Promise.resolve().then(()=>this.reflowIfNeeded())}_reflow(){this._pendingLayoutUpdate&&(this._updateLayout(),this._pendingLayoutUpdate=!1),this._updateScrollSize(),this._setPositionFromPin(),this._getActiveItems(),this._updateVisibleIndices(),this._sendStateChangedMessage()}_setPositionFromPin(){if(this.pin!==null){const i=this._scrollPosition,{index:t,block:s}=this.pin;this._scrollPosition=this._calculateScrollIntoViewPosition({index:t,block:s||"start"})-this.offsetWithinScroller[this._positionDim],this._scrollError=i-this._scrollPosition}}_calculateScrollIntoViewPosition(i){const{block:t}=i,s=Math.min(this.items.length,Math.max(0,i.index)),h=this._getItemPosition(s)[this._positionDim];let n=h;if(t!=="start"){const l=this._getItemSize(s)[this._sizeDim];if(t==="center")n=h-.5*this._viewDim1+.5*l;else{const e=h-this._viewDim1+l;if(t==="end")n=e;else{const r=this._scrollPosition;n=Math.abs(r-h)<Math.abs(r-e)?h:e}}}return n+=this.offsetWithinScroller[this._positionDim],this._clampScrollPosition(n)}getScrollIntoViewCoordinates(i){return{[this._positionDim]:this._calculateScrollIntoViewPosition(i)}}_sendUnpinnedMessage(){this._hostSink({type:"unpinned"})}_sendVisibilityChangedMessage(){this._hostSink({type:"visibilityChanged",firstVisible:this._firstVisible,lastVisible:this._lastVisible})}_sendStateChangedMessage(){const i=new Map;if(this._first!==-1&&this._last!==-1)for(let s=this._first;s<=this._last;s++)i.set(s,this._getItemPosition(s));const t={type:"stateChanged",scrollSize:{[this._sizeDim]:this._scrollSize,[this._secondarySizeDim]:null},range:{first:this._first,last:this._last,firstVisible:this._firstVisible,lastVisible:this._lastVisible},childPositions:i};this._scrollError&&(t.scrollError={[this._positionDim]:this._scrollError,[this._secondaryPositionDim]:0},this._scrollError=0),this._hostSink(t)}get _num(){return this._first===-1||this._last===-1?0:this._last-this._first+1}_checkThresholds(){if(this._viewDim1===0&&this._num>0||this._pin!==null)this._scheduleReflow();else{const i=Math.max(0,this._scrollPosition-this._overhang),t=Math.min(this._scrollSize,this._scrollPosition+this._viewDim1+this._overhang);this._physicalMin>i||this._physicalMax<t?this._scheduleReflow():this._updateVisibleIndices({emit:!0})}}_updateVisibleIndices(i){if(this._first===-1||this._last===-1)return;let t=this._first;for(;t<this._last&&Math.round(this._getItemPosition(t)[this._positionDim]+this._getItemSize(t)[this._sizeDim])<=Math.round(this._scrollPosition);)t++;let s=this._last;for(;s>this._first&&Math.round(this._getItemPosition(s)[this._positionDim])>=Math.round(this._scrollPosition+this._viewDim1);)s--;(t!==this._firstVisible||s!==this._lastVisible)&&(this._firstVisible=t,this._lastVisible=s,i&&i.emit&&this._sendVisibilityChangedMessage())}}/**
27
- * @license
28
- * Copyright 2021 Google LLC
29
- * SPDX-License-Identifier: BSD-3-Clause
30
- */function m(o){return o==="horizontal"?"marginLeft":"marginTop"}function u(o){return o==="horizontal"?"marginRight":"marginBottom"}function S(o){return o==="horizontal"?"xOffset":"yOffset"}function z(o,i){const t=[o,i].sort();return t[1]<=0?Math.min(...t):t[0]>=0?Math.max(...t):t[0]+t[1]}class p{constructor(){this._childSizeCache=new g,this._marginSizeCache=new g,this._metricsCache=new Map}update(i,t){var h,n;const s=new Set;Object.keys(i).forEach(l=>{const e=Number(l);this._metricsCache.set(e,i[e]),this._childSizeCache.set(e,i[e][f(t)]),s.add(e),s.add(e+1)});for(const l of s){const e=((h=this._metricsCache.get(l))==null?void 0:h[m(t)])||0,r=((n=this._metricsCache.get(l-1))==null?void 0:n[u(t)])||0;this._marginSizeCache.set(l,z(e,r))}}get averageChildSize(){return this._childSizeCache.averageSize}get totalChildSize(){return this._childSizeCache.totalSize}get averageMarginSize(){return this._marginSizeCache.averageSize}get totalMarginSize(){return this._marginSizeCache.totalSize}getLeadingMarginValue(i,t){var s;return((s=this._metricsCache.get(i))==null?void 0:s[m(t)])||0}getChildSize(i){return this._childSizeCache.getSize(i)}getMarginSize(i){return this._marginSizeCache.getSize(i)}clear(){this._childSizeCache.clear(),this._marginSizeCache.clear(),this._metricsCache.clear()}}class M extends d{constructor(){super(...arguments),this._itemSize={width:100,height:100},this._physicalItems=new Map,this._newPhysicalItems=new Map,this._metricsCache=new p,this._anchorIdx=null,this._anchorPos=null,this._stable=!0,this._measureChildren=!0,this._estimate=!0}get measureChildren(){return this._measureChildren}updateItemSizes(i){this._metricsCache.update(i,this.direction),this._scheduleReflow()}_getPhysicalItem(i){return this._newPhysicalItems.get(i)??this._physicalItems.get(i)}_getSize(i){return this._getPhysicalItem(i)&&this._metricsCache.getChildSize(i)}_getAverageSize(){return this._metricsCache.averageChildSize||this._itemSize[this._sizeDim]}_estimatePosition(i){const t=this._metricsCache;if(this._first===-1||this._last===-1)return t.averageMarginSize+i*(t.averageMarginSize+this._getAverageSize());if(i<this._first){const s=this._first-i;return this._getPhysicalItem(this._first).pos-(t.getMarginSize(this._first-1)||t.averageMarginSize)-(s*t.averageChildSize+(s-1)*t.averageMarginSize)}else{const s=i-this._last;return this._getPhysicalItem(this._last).pos+(t.getChildSize(this._last)||t.averageChildSize)+(t.getMarginSize(this._last)||t.averageMarginSize)+s*(t.averageChildSize+t.averageMarginSize)}}_getPosition(i){const t=this._getPhysicalItem(i),{averageMarginSize:s}=this._metricsCache;return i===0?this._metricsCache.getMarginSize(0)??s:t?t.pos:this._estimatePosition(i)}_calculateAnchor(i,t){return i<=0?0:t>this._scrollSize-this._viewDim1?this.items.length-1:Math.max(0,Math.min(this.items.length-1,Math.floor((i+t)/2/this._delta)))}_getAnchor(i,t){if(this._physicalItems.size===0)return this._calculateAnchor(i,t);if(this._first<0)return this._calculateAnchor(i,t);if(this._last<0)return this._calculateAnchor(i,t);const s=this._getPhysicalItem(this._first),h=this._getPhysicalItem(this._last),n=s.pos;if(h.pos+this._metricsCache.getChildSize(this._last)<i)return this._calculateAnchor(i,t);if(n>t)return this._calculateAnchor(i,t);let r=this._firstVisible-1,a=-1/0;for(;a<i;)a=this._getPhysicalItem(++r).pos+this._metricsCache.getChildSize(r);return r}_getActiveItems(){this._viewDim1===0||this.items.length===0?this._clearItems():this._getItems()}_clearItems(){this._first=-1,this._last=-1,this._physicalMin=0,this._physicalMax=0;const i=this._newPhysicalItems;this._newPhysicalItems=this._physicalItems,this._newPhysicalItems.clear(),this._physicalItems=i,this._stable=!0}_getItems(){const i=this._newPhysicalItems;this._stable=!0;let t,s;if(this.pin!==null){const{index:a}=this.pin;this._anchorIdx=a,this._anchorPos=this._getPosition(a)}if(t=this._scrollPosition-this._overhang,s=this._scrollPosition+this._viewDim1+this._overhang,s<0||t>this._scrollSize){this._clearItems();return}(this._anchorIdx===null||this._anchorPos===null)&&(this._anchorIdx=this._getAnchor(t,s),this._anchorPos=this._getPosition(this._anchorIdx));let h=this._getSize(this._anchorIdx);h===void 0&&(this._stable=!1,h=this._getAverageSize());const n=this._metricsCache.getMarginSize(this._anchorIdx)??this._metricsCache.averageMarginSize,l=this._metricsCache.getMarginSize(this._anchorIdx+1)??this._metricsCache.averageMarginSize;this._anchorIdx===0&&(this._anchorPos=n),this._anchorIdx===this.items.length-1&&(this._anchorPos=this._scrollSize-l-h);let e=0;for(this._anchorPos+h+l<t&&(e=t-(this._anchorPos+h+l)),this._anchorPos-n>s&&(e=s-(this._anchorPos-n)),e&&(this._scrollPosition-=e,t-=e,s-=e,this._scrollError+=e),i.set(this._anchorIdx,{pos:this._anchorPos,size:h}),this._first=this._last=this._anchorIdx,this._physicalMin=this._anchorPos-n,this._physicalMax=this._anchorPos+h+l;this._physicalMin>t&&this._first>0;){let a=this._getSize(--this._first);a===void 0&&(this._stable=!1,a=this._getAverageSize());let _=this._metricsCache.getMarginSize(this._first);_===void 0&&(this._stable=!1,_=this._metricsCache.averageMarginSize),this._physicalMin-=a;const c=this._physicalMin;if(i.set(this._first,{pos:c,size:a}),this._physicalMin-=_,this._stable===!1&&this._estimate===!1)break}for(;this._physicalMax<s&&this._last<this.items.length-1;){let a=this._getSize(++this._last);a===void 0&&(this._stable=!1,a=this._getAverageSize());let _=this._metricsCache.getMarginSize(this._last);_===void 0&&(this._stable=!1,_=this._metricsCache.averageMarginSize);const c=this._physicalMax;if(i.set(this._last,{pos:c,size:a}),this._physicalMax+=a+_,!this._stable&&!this._estimate)break}const r=this._calculateError();r&&(this._physicalMin-=r,this._physicalMax-=r,this._anchorPos-=r,this._scrollPosition-=r,i.forEach(a=>a.pos-=r),this._scrollError+=r),this._stable&&(this._newPhysicalItems=this._physicalItems,this._newPhysicalItems.clear(),this._physicalItems=i)}_calculateError(){return this._first===0?this._physicalMin:this._physicalMin<=0?this._physicalMin-this._first*this._delta:this._last===this.items.length-1?this._physicalMax-this._scrollSize:this._physicalMax>=this._scrollSize?this._physicalMax-this._scrollSize+(this.items.length-1-this._last)*this._delta:0}_reflow(){const{_first:i,_last:t}=this;super._reflow(),(this._first===-1&&this._last==-1||this._first===i&&this._last===t)&&this._resetReflowState()}_resetReflowState(){this._anchorIdx=null,this._anchorPos=null,this._stable=!0}_updateScrollSize(){const{averageMarginSize:i}=this._metricsCache;this._scrollSize=Math.max(1,this.items.length*(i+this._getAverageSize())+i)}get _delta(){const{averageMarginSize:i}=this._metricsCache;return this._getAverageSize()+i}_getItemPosition(i){return{[this._positionDim]:this._getPosition(i),[this._secondaryPositionDim]:0,[S(this.direction)]:-(this._metricsCache.getLeadingMarginValue(i,this.direction)??this._metricsCache.averageMarginSize)}}_getItemSize(i){return{[this._sizeDim]:this._getSize(i)||this._getAverageSize(),[this._secondarySizeDim]:this._itemSize[this._secondarySizeDim]}}_viewDim2Changed(){this._metricsCache.clear(),this._scheduleReflow()}}exports.FlowLayout=M;
@@ -1,18 +0,0 @@
1
- /*! * Lucero - The design system for Luzmo.
2
- *
3
- * Copyright © 2025 Luzmo
4
- * All rights reserved.
5
- * Lucero (“Luzmo Design System”) must be used according to the Luzmo Terms of Service.
6
- * This license allows users with a current active Luzmo account to use Lucero.
7
- * This license terminates automatically if a user no longer has an active Luzmo account.
8
- * Please view the Luzmo Terms of Service at: https://www.luzmo.com/information-pages/terms-of-use.
9
- *
10
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
11
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
12
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
13
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
14
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
15
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16
- * SOFTWARE.
17
- * */
18
- "use strict";let o=!0;try{document.body.querySelector(":focus-visible")}catch{o=!1,Promise.resolve().then(()=>n)}const u=c=>{var i,s;const r=l=>{if(l.shadowRoot==null||Object.hasOwn(l.dataset,"jsFocusVisible"))return()=>{};if(self.applyFocusVisiblePolyfill)self.applyFocusVisiblePolyfill(l.shadowRoot),l.manageAutoFocus&&l.manageAutoFocus();else{const t=()=>{self.applyFocusVisiblePolyfill&&l.shadowRoot&&self.applyFocusVisiblePolyfill(l.shadowRoot),l.manageAutoFocus&&l.manageAutoFocus()};return self.addEventListener("focus-visible-polyfill-ready",t,{once:!0}),()=>{self.removeEventListener("focus-visible-polyfill-ready",t)}}return()=>{}},e=Symbol("endPolyfillCoordination");class a extends(s=c,i=e,s){constructor(){super(...arguments),this[i]=null}connectedCallback(){super.connectedCallback&&super.connectedCallback(),o||requestAnimationFrame(()=>{this[e]==null&&(this[e]=r(this))})}disconnectedCallback(){super.disconnectedCallback&&super.disconnectedCallback(),o||requestAnimationFrame(()=>{this[e]!=null&&(this[e](),this[e]=null)})}}return a},n=Object.freeze(Object.defineProperty({__proto__:null,FocusVisiblePolyfillMixin:u},Symbol.toStringTag,{value:"Module"}));exports.FocusVisiblePolyfillMixin=u;
@@ -1,18 +0,0 @@
1
- /*! * Lucero - The design system for Luzmo.
2
- *
3
- * Copyright © 2025 Luzmo
4
- * All rights reserved.
5
- * Lucero (“Luzmo Design System”) must be used according to the Luzmo Terms of Service.
6
- * This license allows users with a current active Luzmo account to use Lucero.
7
- * This license terminates automatically if a user no longer has an active Luzmo account.
8
- * Please view the Luzmo Terms of Service at: https://www.luzmo.com/information-pages/terms-of-use.
9
- *
10
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
11
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
12
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
13
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
14
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
15
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16
- * SOFTWARE.
17
- * */
18
- "use strict";const n=require("./base-CBCg3yyw.cjs"),d=require("./focus-visible-B0P9aY_G.cjs");var b=Object.defineProperty,f=Object.getOwnPropertyDescriptor,r=(a,t,e,i)=>{for(var s=i>1?void 0:i?f(t,e):t,l=a.length-1,o;l>=0;l--)(o=a[l])&&(s=(i?o(t,e,s):o(s))||s);return i&&s&&b(t,e,s),s};function h(){return new Promise(a=>requestAnimationFrame(()=>a()))}class u extends d.FocusVisiblePolyfillMixin(n.LuzmoElement){constructor(){super(...arguments),this.disabled=!1,this.autofocus=!1,this._tabIndex=0,this.manipulatingTabindex=!1,this.autofocusReady=Promise.resolve()}get tabIndex(){if(this.focusElement===this){const e=this.hasAttribute("tabindex")?Number(this.getAttribute("tabindex")):Number.NaN;return Number.isNaN(e)?-1:e}const t=Number.parseFloat(this.hasAttribute("tabindex")&&this.getAttribute("tabindex")||"0");return this.disabled||t<0?-1:this.focusElement?this._tabIndex:t}set tabIndex(t){var e;if(this.manipulatingTabindex){this.manipulatingTabindex=!1;return}if(this.focusElement===this){if(this.disabled)this._tabIndex=t;else if(t!==this._tabIndex){this._tabIndex=t;const i=""+t;this.manipulatingTabindex=!0,this.setAttribute("tabindex",i)}return}if(t===-1?this.addEventListener("pointerdown",this.onPointerdownManagementOfTabIndex):(this.manipulatingTabindex=!0,this.removeEventListener("pointerdown",this.onPointerdownManagementOfTabIndex)),t===-1||this.disabled){if(this.manipulatingTabindex=!0,this.setAttribute("tabindex","-1"),this.removeAttribute("focusable"),this.selfManageFocusElement)return;t===-1?(e=this.focusElement)==null||e.removeAttribute("tabindex"):(this._tabIndex=t,this.manageFocusElementTabindex(t));return}this.setAttribute("focusable",""),this.hasAttribute("tabindex")?this.removeAttribute("tabindex"):this.manipulatingTabindex=!1,this._tabIndex=t,this.manageFocusElementTabindex(t)}onPointerdownManagementOfTabIndex(){this.tabIndex===-1&&setTimeout(()=>{this.tabIndex=0,this.focus({preventScroll:!0}),this.tabIndex=-1})}async manageFocusElementTabindex(t){this.focusElement||await this.updateComplete,t===null?this.focusElement.removeAttribute("tabindex"):this.focusElement!==this&&(this.focusElement.tabIndex=t)}get focusElement(){throw new Error("Must implement focusElement getter!")}get selfManageFocusElement(){return!1}focus(t){this.disabled||!this.focusElement||(this.focusElement===this?Reflect.apply(HTMLElement.prototype.focus,this,[t]):this.focusElement.focus(t))}blur(){const t=this.focusElement||this;t===this?HTMLElement.prototype.blur.apply(this):t.blur()}click(){if(this.disabled)return;const t=this.focusElement||this;t===this?HTMLElement.prototype.click.apply(this):t.click()}manageAutoFocus(){this.autofocus&&(this.dispatchEvent(new KeyboardEvent("keydown",{code:"Tab"})),this.focusElement.focus())}firstUpdated(t){super.firstUpdated(t),(!this.hasAttribute("tabindex")||this.getAttribute("tabindex")!=="-1")&&this.setAttribute("focusable","")}update(t){t.has("disabled")&&this.handleDisabledChanged(this.disabled,t.get("disabled")),super.update(t)}updated(t){super.updated(t),t.has("disabled")&&this.disabled&&this.blur()}async handleDisabledChanged(t,e){const i=()=>this.focusElement!==this&&this.focusElement.disabled!==void 0;t?(this.manipulatingTabindex=!0,this.setAttribute("tabindex","-1"),await this.updateComplete,i()?this.focusElement.disabled=!0:this.setAttribute("aria-disabled","true")):e&&(this.manipulatingTabindex=!0,this.focusElement===this?this.setAttribute("tabindex",""+this._tabIndex):this.removeAttribute("tabindex"),await this.updateComplete,i()?this.focusElement.disabled=!1:this.removeAttribute("aria-disabled"))}async getUpdateComplete(){const t=await super.getUpdateComplete();return await this.autofocusReady,t}connectedCallback(){super.connectedCallback(),this.autofocus&&(this.autofocusReady=new Promise(async t=>{await h(),await h(),t()}),this.updateComplete.then(()=>{this.manageAutoFocus()}))}}r([n.n({type:Boolean,reflect:!0})],u.prototype,"disabled",2);r([n.n({type:Boolean})],u.prototype,"autofocus",2);r([n.n({type:Number})],u.prototype,"tabIndex",1);exports.Focusable=u;
@@ -1,22 +0,0 @@
1
- /*! * Lucero - The design system for Luzmo.
2
- *
3
- * Copyright © 2025 Luzmo
4
- * All rights reserved.
5
- * Lucero (“Luzmo Design System”) must be used according to the Luzmo Terms of Service.
6
- * This license allows users with a current active Luzmo account to use Lucero.
7
- * This license terminates automatically if a user no longer has an active Luzmo account.
8
- * Please view the Luzmo Terms of Service at: https://www.luzmo.com/information-pages/terms-of-use.
9
- *
10
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
11
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
12
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
13
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
14
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
15
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16
- * SOFTWARE.
17
- * */
18
- "use strict";const e=require("./base-CBCg3yyw.cjs");/**
19
- * @license
20
- * Copyright 2018 Google LLC
21
- * SPDX-License-Identifier: BSD-3-Clause
22
- */const o=s=>s??e.E;exports.o=o;