@threadlabs/looma 0.1.23 → 0.1.24
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.
- package/dist/chunk-HNFCGIBP.js +8 -0
- package/dist/{chunk-GDMQKT5F.js → chunk-IMHSPETJ.js} +32 -30
- package/dist/chunk-NB6DBRXQ.js +323 -0
- package/dist/cjs/controlled-state-BFya8rAX.js +9 -0
- package/dist/cjs/icons-BAdjrnhS.js +680 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/looma.cjs.js +1 -1
- package/dist/cjs/ui-affordance-scope.cjs.entry.js +1 -1
- package/dist/cjs/ui-avatar-group.cjs.entry.js +9 -17
- package/dist/cjs/ui-avatar.cjs.entry.js +2 -2
- package/dist/cjs/ui-badge.cjs.entry.js +2 -2
- package/dist/cjs/ui-button.cjs.entry.js +1 -1
- package/dist/cjs/ui-callout.cjs.entry.js +27 -0
- package/dist/cjs/ui-checkbox.cjs.entry.js +13 -7
- package/dist/cjs/ui-chip.cjs.entry.js +19 -0
- package/dist/cjs/ui-combobox.cjs.entry.js +3 -3
- package/dist/cjs/ui-context-menu.cjs.entry.js +1 -1
- package/dist/cjs/ui-dialog.cjs.entry.js +44 -8
- package/dist/cjs/ui-disclosure.cjs.entry.js +9 -6
- package/dist/cjs/ui-floating-action-button.cjs.entry.js +1 -1
- package/dist/cjs/ui-form-field.cjs.entry.js +59 -4
- package/dist/cjs/ui-icon-button.cjs.entry.js +1 -1
- package/dist/cjs/ui-input.cjs.entry.js +1 -1
- package/dist/cjs/ui-menu-item.cjs.entry.js +2 -2
- package/dist/cjs/ui-menu.cjs.entry.js +14 -9
- package/dist/cjs/ui-popover.cjs.entry.js +10 -7
- package/dist/cjs/ui-radio-group.cjs.entry.js +1 -1
- package/dist/cjs/ui-radio.cjs.entry.js +16 -7
- package/dist/cjs/ui-search-result-row.cjs.entry.js +1 -1
- package/dist/cjs/ui-search-shell.cjs.entry.js +1 -1
- package/dist/cjs/ui-select.cjs.entry.js +1 -1
- package/dist/cjs/ui-switch.cjs.entry.js +19 -10
- package/dist/cjs/ui-tabs.cjs.entry.js +10 -9
- package/dist/cjs/ui-textarea.cjs.entry.js +1 -1
- package/dist/cjs/ui-toast-region.cjs.entry.js +30 -19
- package/dist/cjs/ui-tooltip.cjs.entry.js +12 -8
- package/dist/cjs/ui-top-bar.cjs.entry.js +1 -1
- package/dist/cjs/ui-tree-item.cjs.entry.js +54 -617
- package/dist/cjs/ui-tree.cjs.entry.js +123 -11
- package/dist/collection/collection-manifest.json +2 -0
- package/dist/collection/components/ui-affordance-scope/ui-affordance-scope.js +1 -1
- package/dist/collection/components/ui-avatar/ui-avatar.css +4 -4
- package/dist/collection/components/ui-avatar/ui-avatar.js +1 -1
- package/dist/collection/components/ui-avatar-group/ui-avatar-group.css +2 -2
- package/dist/collection/components/ui-avatar-group/ui-avatar-group.js +8 -16
- package/dist/collection/components/ui-badge/ui-badge.css +64 -48
- package/dist/collection/components/ui-badge/ui-badge.js +1 -1
- package/dist/collection/components/ui-button/ui-button.js +1 -1
- package/dist/collection/components/ui-callout/ui-callout.css +74 -0
- package/dist/collection/components/ui-callout/ui-callout.js +59 -0
- package/dist/collection/components/ui-checkbox/ui-checkbox.js +16 -11
- package/dist/collection/components/ui-chip/ui-chip.css +43 -0
- package/dist/collection/components/ui-chip/ui-chip.js +45 -0
- package/dist/collection/components/ui-combobox/ui-combobox.js +3 -3
- package/dist/collection/components/ui-context-menu/ui-context-menu.js +1 -1
- package/dist/collection/components/ui-dialog/ui-dialog.js +49 -13
- package/dist/collection/components/ui-disclosure/ui-disclosure.js +12 -10
- package/dist/collection/components/ui-floating-action-button/ui-floating-action-button.js +1 -1
- package/dist/collection/components/ui-form-field/ui-form-field.js +59 -4
- package/dist/collection/components/ui-icon-button/ui-icon-button.js +1 -1
- package/dist/collection/components/ui-input/ui-input.js +1 -1
- package/dist/collection/components/ui-menu/ui-menu.css +12 -23
- package/dist/collection/components/ui-menu/ui-menu.js +16 -12
- package/dist/collection/components/ui-menu-item/ui-menu-item.css +9 -3
- package/dist/collection/components/ui-menu-item/ui-menu-item.js +1 -1
- package/dist/collection/components/ui-popover/ui-popover.css +14 -5
- package/dist/collection/components/ui-popover/ui-popover.js +12 -10
- package/dist/collection/components/ui-radio/ui-radio.js +24 -11
- package/dist/collection/components/ui-radio-group/ui-radio-group.js +1 -1
- package/dist/collection/components/ui-search-result-row/ui-search-result-row.js +1 -1
- package/dist/collection/components/ui-search-shell/ui-search-shell.js +1 -1
- package/dist/collection/components/ui-select/ui-select.js +1 -1
- package/dist/collection/components/ui-switch/ui-switch.js +22 -14
- package/dist/collection/components/ui-tabs/ui-tabs.js +13 -13
- package/dist/collection/components/ui-textarea/ui-textarea.js +1 -1
- package/dist/collection/components/ui-toast-region/ui-toast-region.js +30 -19
- package/dist/collection/components/ui-tooltip/ui-tooltip.css +16 -7
- package/dist/collection/components/ui-tooltip/ui-tooltip.js +14 -11
- package/dist/collection/components/ui-top-bar/ui-top-bar.js +1 -1
- package/dist/collection/components/ui-tree/ui-tree.css +2 -1
- package/dist/collection/components/ui-tree/ui-tree.js +122 -10
- package/dist/collection/components/ui-tree-item/ui-tree-item.js +61 -44
- package/dist/collection/icons.js +6 -1
- package/dist/collection/utils/controlled-state.js +4 -0
- package/dist/components/index.d.ts +4 -0
- package/dist/components/index.js +1 -1
- package/dist/components/p-Bk55QiUK.js +1 -0
- package/dist/components/p-BnGhGgTH.js +1 -0
- package/dist/components/p-CoFximGM.js +13 -0
- package/dist/components/p-DIGcRYAW.js +1 -0
- package/dist/components/ui-affordance-scope.js +1 -1
- package/dist/components/ui-avatar-group.js +1 -1
- package/dist/components/ui-avatar.js +1 -1
- package/dist/components/ui-badge.js +1 -1
- package/dist/components/ui-button.js +1 -1
- package/dist/components/ui-callout.d.ts +11 -0
- package/dist/components/ui-callout.js +1 -0
- package/dist/components/ui-checkbox.js +1 -1
- package/dist/components/ui-chip.d.ts +11 -0
- package/dist/components/ui-chip.js +1 -0
- package/dist/components/ui-combobox.js +1 -1
- package/dist/components/ui-context-menu.js +1 -1
- package/dist/components/ui-dialog.js +1 -1
- package/dist/components/ui-disclosure.js +1 -1
- package/dist/components/ui-floating-action-button.js +1 -1
- package/dist/components/ui-form-field.js +1 -1
- package/dist/components/ui-icon-button.js +1 -1
- package/dist/components/ui-input.js +1 -1
- package/dist/components/ui-menu-item.js +1 -1
- package/dist/components/ui-menu.js +1 -1
- package/dist/components/ui-popover.js +1 -1
- package/dist/components/ui-radio-group.js +1 -1
- package/dist/components/ui-radio.js +1 -1
- package/dist/components/ui-search-result-row.js +1 -1
- package/dist/components/ui-search-shell.js +1 -1
- package/dist/components/ui-select.js +1 -1
- package/dist/components/ui-switch.js +1 -1
- package/dist/components/ui-tabs.js +1 -1
- package/dist/components/ui-textarea.js +1 -1
- package/dist/components/ui-toast-region.js +1 -1
- package/dist/components/ui-tooltip.js +1 -1
- package/dist/components/ui-top-bar.js +1 -1
- package/dist/components/ui-tree-item.js +1 -13
- package/dist/components/ui-tree.js +1 -1
- package/dist/esm/controlled-state-BnGhGgTH.js +6 -0
- package/dist/esm/icons-CoFximGM.js +678 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/looma.js +1 -1
- package/dist/esm/ui-affordance-scope.entry.js +1 -1
- package/dist/esm/ui-avatar-group.entry.js +9 -17
- package/dist/esm/ui-avatar.entry.js +2 -2
- package/dist/esm/ui-badge.entry.js +2 -2
- package/dist/esm/ui-button.entry.js +1 -1
- package/dist/esm/ui-callout.entry.js +25 -0
- package/dist/esm/ui-checkbox.entry.js +13 -7
- package/dist/esm/ui-chip.entry.js +17 -0
- package/dist/esm/ui-combobox.entry.js +3 -3
- package/dist/esm/ui-context-menu.entry.js +1 -1
- package/dist/esm/ui-dialog.entry.js +44 -8
- package/dist/esm/ui-disclosure.entry.js +9 -6
- package/dist/esm/ui-floating-action-button.entry.js +1 -1
- package/dist/esm/ui-form-field.entry.js +59 -4
- package/dist/esm/ui-icon-button.entry.js +1 -1
- package/dist/esm/ui-input.entry.js +1 -1
- package/dist/esm/ui-menu-item.entry.js +2 -2
- package/dist/esm/ui-menu.entry.js +14 -9
- package/dist/esm/ui-popover.entry.js +10 -7
- package/dist/esm/ui-radio-group.entry.js +1 -1
- package/dist/esm/ui-radio.entry.js +16 -7
- package/dist/esm/ui-search-result-row.entry.js +1 -1
- package/dist/esm/ui-search-shell.entry.js +1 -1
- package/dist/esm/ui-select.entry.js +1 -1
- package/dist/esm/ui-switch.entry.js +19 -10
- package/dist/esm/ui-tabs.entry.js +10 -9
- package/dist/esm/ui-textarea.entry.js +1 -1
- package/dist/esm/ui-toast-region.entry.js +30 -19
- package/dist/esm/ui-tooltip.entry.js +12 -8
- package/dist/esm/ui-top-bar.entry.js +1 -1
- package/dist/esm/ui-tree-item.entry.js +54 -617
- package/dist/esm/ui-tree.entry.js +123 -11
- package/dist/index.cjs +1224 -842
- package/dist/index.d.cts +5 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +12 -2
- package/dist/looma/looma.esm.js +1 -1
- package/dist/looma/p-03f44c45.entry.js +1 -0
- package/dist/looma/p-08f80207.entry.js +1 -0
- package/dist/looma/{p-f74e5546.entry.js → p-13f8195a.entry.js} +1 -1
- package/dist/looma/{p-5a87b59d.entry.js → p-25e18ad6.entry.js} +1 -1
- package/dist/looma/p-2c03fa73.entry.js +1 -0
- package/dist/looma/{p-ed368426.entry.js → p-314d5c7c.entry.js} +1 -1
- package/dist/looma/{p-5da09f47.entry.js → p-3ef2a21b.entry.js} +1 -1
- package/dist/looma/{p-f0487ff3.entry.js → p-5a900d89.entry.js} +1 -1
- package/dist/looma/p-5fdcee1d.entry.js +1 -0
- package/dist/looma/{p-13347631.entry.js → p-672e3d16.entry.js} +1 -1
- package/dist/looma/{p-582973b5.entry.js → p-68430534.entry.js} +1 -1
- package/dist/looma/{p-add36e74.entry.js → p-72338f53.entry.js} +1 -1
- package/dist/looma/{p-a90d2821.entry.js → p-7ab661ec.entry.js} +1 -1
- package/dist/looma/p-7c4a225f.entry.js +1 -0
- package/dist/looma/p-82f2fa3d.entry.js +1 -0
- package/dist/looma/p-839faf55.entry.js +1 -0
- package/dist/looma/{p-7e0bb7f6.entry.js → p-8e254bc4.entry.js} +1 -1
- package/dist/looma/p-8e6b1001.entry.js +1 -0
- package/dist/looma/p-920656cf.entry.js +1 -0
- package/dist/looma/{p-40fe7fee.entry.js → p-97e8cb0e.entry.js} +1 -1
- package/dist/looma/p-9d2662ca.entry.js +1 -0
- package/dist/looma/p-9e1c4020.entry.js +1 -0
- package/dist/looma/p-BnGhGgTH.js +1 -0
- package/dist/looma/p-CoFximGM.js +13 -0
- package/dist/looma/{p-8b8840b8.entry.js → p-a63e2561.entry.js} +1 -1
- package/dist/looma/p-add67e4c.entry.js +1 -0
- package/dist/looma/p-b63f6d4f.entry.js +1 -0
- package/dist/looma/p-bd00d4e8.entry.js +1 -0
- package/dist/looma/p-cc915913.entry.js +1 -0
- package/dist/looma/p-cfba8f7c.entry.js +1 -0
- package/dist/looma/p-d56571a2.entry.js +1 -0
- package/dist/looma/{p-69a5557b.entry.js → p-e0f241ab.entry.js} +1 -1
- package/dist/looma/p-f1750fd7.entry.js +1 -0
- package/dist/looma/p-fd1e4d22.entry.js +1 -0
- package/dist/types/components/ui-avatar-group/ui-avatar-group.d.ts +1 -2
- package/dist/types/components/ui-callout/ui-callout.d.ts +6 -0
- package/dist/types/components/ui-checkbox/ui-checkbox.d.ts +2 -1
- package/dist/types/components/ui-chip/ui-chip.d.ts +6 -0
- package/dist/types/components/ui-dialog/ui-dialog.d.ts +7 -1
- package/dist/types/components/ui-disclosure/ui-disclosure.d.ts +2 -1
- package/dist/types/components/ui-form-field/ui-form-field.d.ts +8 -0
- package/dist/types/components/ui-menu/ui-menu.d.ts +2 -1
- package/dist/types/components/ui-popover/ui-popover.d.ts +2 -1
- package/dist/types/components/ui-radio/ui-radio.d.ts +4 -1
- package/dist/types/components/ui-switch/ui-switch.d.ts +2 -1
- package/dist/types/components/ui-tabs/ui-tabs.d.ts +2 -1
- package/dist/types/components/ui-toast-region/ui-toast-region.d.ts +3 -1
- package/dist/types/components/ui-tooltip/ui-tooltip.d.ts +2 -1
- package/dist/types/components/ui-tree/ui-tree.d.ts +12 -0
- package/dist/types/components/ui-tree-item/ui-tree-item.d.ts +11 -7
- package/dist/types/components.d.ts +110 -47
- package/dist/types/icons.d.ts +5 -0
- package/dist/types/utils/controlled-state.d.ts +4 -0
- package/dist/{ui-affordance-scope.entry-VO4C2MZX.js → ui-affordance-scope.entry-3TUZ6GLW.js} +2 -2
- package/dist/ui-avatar-group.entry-XGJKN25W.js +51 -0
- package/dist/{ui-avatar.entry-T6FU6ZYM.js → ui-avatar.entry-SN3G44HW.js} +3 -3
- package/dist/ui-badge.entry-B6WDCWJX.js +22 -0
- package/dist/{ui-button.entry-7UXMUGHN.js → ui-button.entry-AZYUELLV.js} +2 -2
- package/dist/ui-callout.entry-QRPWRMPC.js +32 -0
- package/dist/{ui-checkbox.entry-DMZJB3RE.js → ui-checkbox.entry-OB6GFC4M.js} +17 -8
- package/dist/ui-chip.entry-XSNPJXX3.js +22 -0
- package/dist/{ui-combobox.entry-ZCTPXEES.js → ui-combobox.entry-IIMMUJF7.js} +5 -5
- package/dist/{ui-context-menu.entry-2WMCBGCP.js → ui-context-menu.entry-AIULIE5Y.js} +5 -5
- package/dist/{ui-dialog.entry-WO23XOSW.js → ui-dialog.entry-QSYWYHLY.js} +50 -12
- package/dist/{ui-disclosure.entry-USX7OUEW.js → ui-disclosure.entry-3BJEYU3U.js} +13 -7
- package/dist/{ui-floating-action-button.entry-MXDIN7MV.js → ui-floating-action-button.entry-JEVNV6FI.js} +2 -2
- package/dist/ui-form-field.entry-PKSY7UU4.js +120 -0
- package/dist/{ui-icon-button.entry-MJUNXHBU.js → ui-icon-button.entry-TPX7BE7R.js} +2 -2
- package/dist/{ui-input.entry-AWG63YIG.js → ui-input.entry-6NCLNW4E.js} +2 -2
- package/dist/ui-menu-item.entry-KA2K3PKV.js +22 -0
- package/dist/{ui-menu.entry-IT3GW5TL.js → ui-menu.entry-7GDO5L2T.js} +22 -14
- package/dist/{ui-popover.entry-ZQQB4N6E.js → ui-popover.entry-FR6YRNK6.js} +17 -11
- package/dist/{ui-radio-group.entry-V7PCTS7I.js → ui-radio-group.entry-7QHXQSNO.js} +2 -2
- package/dist/{ui-radio.entry-JYH6TQBI.js → ui-radio.entry-YNMXKLDW.js} +20 -8
- package/dist/{ui-search-result-row.entry-JBNYXXUN.js → ui-search-result-row.entry-AHVVAAIO.js} +2 -2
- package/dist/{ui-search-shell.entry-TEAWE76O.js → ui-search-shell.entry-CNBEAMEZ.js} +2 -2
- package/dist/{ui-select.entry-F3A6TE2U.js → ui-select.entry-TUY6TCTC.js} +2 -2
- package/dist/{ui-switch.entry-MJIICMP2.js → ui-switch.entry-26LFI7B5.js} +23 -11
- package/dist/{ui-tabs.entry-6REFIUHV.js → ui-tabs.entry-LXB62RJJ.js} +14 -10
- package/dist/{ui-textarea.entry-OJTXCED7.js → ui-textarea.entry-JYGMGPX2.js} +2 -2
- package/dist/{ui-toast-region.entry-NOFXLKPS.js → ui-toast-region.entry-TOW4KZLZ.js} +32 -23
- package/dist/{ui-tooltip.entry-COWTWVHX.js → ui-tooltip.entry-SKFNYXPH.js} +19 -12
- package/dist/{ui-top-bar.entry-PIAWXJNV.js → ui-top-bar.entry-S3YP52EA.js} +2 -2
- package/dist/ui-tree-item.entry-LWYIPYLC.js +145 -0
- package/dist/{ui-tree.entry-XYI3ZFAZ.js → ui-tree.entry-LXKUQFRU.js} +114 -12
- package/editor/{chunk-QCOYOVQL.js → chunk-B5WVJOPV.js} +113 -97
- package/editor/extensions/index.d.ts +14 -6
- package/editor/extensions/index.js +1 -1
- package/editor/index.js +1 -1
- package/editor.css +37 -20
- package/package.json +1 -1
- package/styles.css +10 -0
- package/tokens.css +3 -0
- package/vue/{chunk-JLW23USW.js → chunk-D4AJULDE.js} +28 -16
- package/vue/editor/index.d.ts +5 -15
- package/vue/editor/index.js +1 -1
- package/vue/index.d.ts +325 -115
- package/vue/index.js +5 -1
- package/dist/components/p-CaietZcq.js +0 -1
- package/dist/components/p-DHd18bK7.js +0 -1
- package/dist/looma/p-14c081cf.entry.js +0 -1
- package/dist/looma/p-25366205.entry.js +0 -1
- package/dist/looma/p-2e3aa869.entry.js +0 -1
- package/dist/looma/p-446cda76.entry.js +0 -1
- package/dist/looma/p-4fc1b005.entry.js +0 -13
- package/dist/looma/p-6a8a4736.entry.js +0 -1
- package/dist/looma/p-6bf4038b.entry.js +0 -1
- package/dist/looma/p-8204fee6.entry.js +0 -1
- package/dist/looma/p-8238e0dc.entry.js +0 -1
- package/dist/looma/p-99d88efb.entry.js +0 -1
- package/dist/looma/p-a27669b1.entry.js +0 -1
- package/dist/looma/p-a6ee76b7.entry.js +0 -1
- package/dist/looma/p-b6398a6b.entry.js +0 -1
- package/dist/looma/p-d50faaff.entry.js +0 -1
- package/dist/looma/p-d77278ce.entry.js +0 -1
- package/dist/looma/p-d9ec13b7.entry.js +0 -1
- package/dist/looma/p-ecf8005f.entry.js +0 -1
- package/dist/ui-avatar-group.entry-TAXJRIIU.js +0 -59
- package/dist/ui-badge.entry-MZFYNBMJ.js +0 -22
- package/dist/ui-form-field.entry-7ZCMEHPY.js +0 -67
- package/dist/ui-menu-item.entry-HFTWG62N.js +0 -22
- package/dist/ui-tree-item.entry-BSEWNL2O.js +0 -389
|
@@ -3,13 +3,11 @@
|
|
|
3
3
|
inset: auto;
|
|
4
4
|
margin: 0;
|
|
5
5
|
display: inline-block;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
font-size: var(--ui-font-size-sm);
|
|
12
|
-
box-shadow: var(--ui-shadow-md);
|
|
6
|
+
box-sizing: border-box;
|
|
7
|
+
padding: 0;
|
|
8
|
+
border: 0;
|
|
9
|
+
border-radius: 0;
|
|
10
|
+
background: transparent;
|
|
13
11
|
opacity: 0;
|
|
14
12
|
transform: translateY(4px);
|
|
15
13
|
transition:
|
|
@@ -19,6 +17,17 @@
|
|
|
19
17
|
overlay var(--ui-motion-fast) allow-discrete;
|
|
20
18
|
}
|
|
21
19
|
|
|
20
|
+
.tooltip__surface {
|
|
21
|
+
box-sizing: border-box;
|
|
22
|
+
border: 1px solid var(--ui-border-default);
|
|
23
|
+
border-radius: var(--ui-radius-2);
|
|
24
|
+
background: var(--ui-surface-elevated);
|
|
25
|
+
color: var(--ui-text-primary);
|
|
26
|
+
padding: var(--ui-space-2) var(--ui-space-3);
|
|
27
|
+
font-size: var(--ui-font-size-sm);
|
|
28
|
+
box-shadow: var(--ui-shadow-md);
|
|
29
|
+
}
|
|
30
|
+
|
|
22
31
|
:host(:popover-open) { opacity: 1; transform: translateY(0); }
|
|
23
32
|
|
|
24
33
|
@starting-style {
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { Host, h } from "@stencil/core";
|
|
2
2
|
import { openOverlay, closeOverlay } from "../../overlay/manager";
|
|
3
3
|
import { dispatchDetail } from "../../utils/events";
|
|
4
|
+
import { controlledOrDefault, isControlled } from "../../utils/controlled-state";
|
|
4
5
|
import { createAnchoredSurface, } from "../../overlay/positioning";
|
|
5
6
|
export class UITooltip {
|
|
6
7
|
host;
|
|
7
8
|
for = '';
|
|
8
|
-
open
|
|
9
|
+
/** Controlled open state. Omit it to use defaultOpen and local interaction state. */
|
|
10
|
+
open;
|
|
9
11
|
defaultOpen = false;
|
|
10
12
|
placement = 'top-start';
|
|
11
13
|
/** Pointer hover intent delay in milliseconds. Keyboard focus is immediate. */
|
|
@@ -26,7 +28,8 @@ export class UITooltip {
|
|
|
26
28
|
hideTimer = null;
|
|
27
29
|
syncFromProp() {
|
|
28
30
|
this.clearTimers();
|
|
29
|
-
|
|
31
|
+
if (isControlled(this.open))
|
|
32
|
+
this.internalOpen = this.open;
|
|
30
33
|
}
|
|
31
34
|
resetSurface() {
|
|
32
35
|
this.syncTrigger();
|
|
@@ -53,8 +56,7 @@ export class UITooltip {
|
|
|
53
56
|
componentDidLoad() {
|
|
54
57
|
if (!this.host.id)
|
|
55
58
|
this.host.id = this.overlayId;
|
|
56
|
-
this.
|
|
57
|
-
this.internalOpen = this.internalOpen || this.defaultOpen;
|
|
59
|
+
this.internalOpen = controlledOrDefault(this.open, this.defaultOpen);
|
|
58
60
|
this.syncTrigger();
|
|
59
61
|
this.setupSurface();
|
|
60
62
|
this.host.addEventListener('pointerenter', this.onSurfaceEnter);
|
|
@@ -139,7 +141,8 @@ export class UITooltip {
|
|
|
139
141
|
setInteractionOpen(nextOpen, trigger) {
|
|
140
142
|
if (this.internalOpen === nextOpen)
|
|
141
143
|
return;
|
|
142
|
-
this.
|
|
144
|
+
if (!isControlled(this.open))
|
|
145
|
+
this.internalOpen = nextOpen;
|
|
143
146
|
dispatchDetail(this.host, nextOpen ? 'open' : 'close', {
|
|
144
147
|
open: nextOpen,
|
|
145
148
|
reason: 'action',
|
|
@@ -196,7 +199,8 @@ export class UITooltip {
|
|
|
196
199
|
if (reason === 'escape' || (reason === 'light-dismiss' && this.toggleOnClick)) {
|
|
197
200
|
this.pinned = false;
|
|
198
201
|
this.clearTimers();
|
|
199
|
-
this.
|
|
202
|
+
if (!isControlled(this.open))
|
|
203
|
+
this.internalOpen = false;
|
|
200
204
|
dispatchDetail(this.host, 'close', {
|
|
201
205
|
open: false,
|
|
202
206
|
reason,
|
|
@@ -205,7 +209,7 @@ export class UITooltip {
|
|
|
205
209
|
}
|
|
206
210
|
}
|
|
207
211
|
render() {
|
|
208
|
-
return (h(Host, { key: '
|
|
212
|
+
return (h(Host, { key: 'ce34c51bc3a9c9f7f31b7f0d329175df0cee1ab3', role: "tooltip", hidden: !this.internalOpen, "data-open": this.internalOpen ? '' : undefined }, h("div", { key: 'e5bb2bcb146fe8ec3b4e9a6abb550961181e3c06', class: "tooltip__surface" }, h("slot", { key: 'bdb71bfcb0f72c212cbb5c64fb69510fdded4afb' }))));
|
|
209
213
|
}
|
|
210
214
|
static get is() { return "ui-tooltip"; }
|
|
211
215
|
static get encapsulation() { return "shadow"; }
|
|
@@ -250,16 +254,15 @@ export class UITooltip {
|
|
|
250
254
|
"references": {}
|
|
251
255
|
},
|
|
252
256
|
"required": false,
|
|
253
|
-
"optional":
|
|
257
|
+
"optional": true,
|
|
254
258
|
"docs": {
|
|
255
259
|
"tags": [],
|
|
256
|
-
"text": ""
|
|
260
|
+
"text": "Controlled open state. Omit it to use defaultOpen and local interaction state."
|
|
257
261
|
},
|
|
258
262
|
"getter": false,
|
|
259
263
|
"setter": false,
|
|
260
264
|
"reflect": false,
|
|
261
|
-
"attribute": "open"
|
|
262
|
-
"defaultValue": "false"
|
|
265
|
+
"attribute": "open"
|
|
263
266
|
},
|
|
264
267
|
"defaultOpen": {
|
|
265
268
|
"type": "boolean",
|
|
@@ -27,7 +27,7 @@ export class UITopBar {
|
|
|
27
27
|
this.hasActions = slotHasContent(this.actionsSlot);
|
|
28
28
|
};
|
|
29
29
|
render() {
|
|
30
|
-
return (h(Host, { key: '
|
|
30
|
+
return (h(Host, { key: 'b92aa4e03475b3e623212a1e98f45d5532860b51' }, h("header", { key: 'a3552708b0e424e762e100ee55fc6bfac4cd830a', class: "top-bar", part: "base" }, h("div", { key: '4c8a9e3a04ff23a615bf09e368f4212dd5b38157', class: "top-bar__leading", hidden: !this.hasLeading }, h("slot", { key: '64ecc99672b8fd37305810e0776a24bf87ea6f08', name: "leading", ref: (el) => (this.leadingSlot = el), onSlotchange: this.syncSlots })), h("div", { key: '37fc003aba2b87f7c8c0e654cd6810d7f231f365', class: "top-bar__title" }, h("slot", { key: 'e6c901c15852e83340ca8ad1e264fd5e35445e84' })), h("div", { key: '37b1ac319367eeded4182ada401a31e0b9c2555a', class: "top-bar__search", hidden: !this.hasSearch }, h("slot", { key: '0a8b5ef500dd843909bb35a1133be548411f3b71', name: "search", ref: (el) => (this.searchSlot = el), onSlotchange: this.syncSlots })), h("div", { key: '7e5054a3ed6ecfe8d9d8b1b36992843aa0fb62eb', class: "top-bar__actions", hidden: !this.hasActions }, h("slot", { key: '19fe59c5ba4da7f0ceda764948f1288bfaa2a41d', name: "actions", ref: (el) => (this.actionsSlot = el), onSlotchange: this.syncSlots })))));
|
|
31
31
|
}
|
|
32
32
|
static get is() { return "ui-top-bar"; }
|
|
33
33
|
static get encapsulation() { return "shadow"; }
|
|
@@ -14,6 +14,8 @@ export class UITree {
|
|
|
14
14
|
rejectedPosition = null;
|
|
15
15
|
rejection = null;
|
|
16
16
|
hoverIntent = null;
|
|
17
|
+
structureObserver = null;
|
|
18
|
+
tabStop = null;
|
|
17
19
|
componentDidLoad() {
|
|
18
20
|
this.hoverIntent = createHoverIntent(this.hoverExpandDelay, this.expandTarget);
|
|
19
21
|
this.host.addEventListener('dragstart', this.onDragStart);
|
|
@@ -24,6 +26,11 @@ export class UITree {
|
|
|
24
26
|
this.host.addEventListener('drop', this.onDrop);
|
|
25
27
|
this.host.addEventListener('dragend', this.onDragEnd);
|
|
26
28
|
this.host.addEventListener('keydown', this.onKeyDown);
|
|
29
|
+
this.host.addEventListener('focusin', this.onFocusIn);
|
|
30
|
+
this.host.addEventListener('ui-tree-expansion-change', this.onExpansionChange);
|
|
31
|
+
this.syncStructuralLevels();
|
|
32
|
+
this.structureObserver = new MutationObserver(this.syncStructuralLevels);
|
|
33
|
+
this.structureObserver.observe(this.host, { childList: true, subtree: true });
|
|
27
34
|
}
|
|
28
35
|
disconnectedCallback() {
|
|
29
36
|
this.hoverIntent?.destroy();
|
|
@@ -35,10 +42,44 @@ export class UITree {
|
|
|
35
42
|
this.host.removeEventListener('drop', this.onDrop);
|
|
36
43
|
this.host.removeEventListener('dragend', this.onDragEnd);
|
|
37
44
|
this.host.removeEventListener('keydown', this.onKeyDown);
|
|
45
|
+
this.host.removeEventListener('focusin', this.onFocusIn);
|
|
46
|
+
this.host.removeEventListener('ui-tree-expansion-change', this.onExpansionChange);
|
|
47
|
+
this.structureObserver?.disconnect();
|
|
48
|
+
this.structureObserver = null;
|
|
49
|
+
}
|
|
50
|
+
syncStructuralLevels = () => {
|
|
51
|
+
for (const item of Array.from(this.host.querySelectorAll('ui-tree-item'))) {
|
|
52
|
+
item.dispatchEvent(new CustomEvent('ui-tree-structure-sync'));
|
|
53
|
+
}
|
|
54
|
+
this.syncTabStop();
|
|
55
|
+
};
|
|
56
|
+
syncTabStop(preferred) {
|
|
57
|
+
const items = this.visibleItems();
|
|
58
|
+
const next = preferred && items.includes(preferred)
|
|
59
|
+
? preferred
|
|
60
|
+
: this.tabStop && items.includes(this.tabStop)
|
|
61
|
+
? this.tabStop
|
|
62
|
+
: items[0] ?? null;
|
|
63
|
+
this.tabStop = next;
|
|
64
|
+
for (const item of items) {
|
|
65
|
+
item.dispatchEvent(new CustomEvent('ui-tree-roving-tab-stop', {
|
|
66
|
+
detail: { active: item === next },
|
|
67
|
+
}));
|
|
68
|
+
}
|
|
38
69
|
}
|
|
39
70
|
itemFromEvent(event) {
|
|
40
71
|
return event.composedPath().find(node => (node instanceof HTMLElement && node.localName === 'ui-tree-item')) ?? null;
|
|
41
72
|
}
|
|
73
|
+
eventTargetsInteractiveContent(event) {
|
|
74
|
+
for (const node of event.composedPath()) {
|
|
75
|
+
if (node instanceof HTMLElement && node.localName === 'ui-tree-item')
|
|
76
|
+
break;
|
|
77
|
+
if (node instanceof HTMLElement && node.matches('a, button, input, select, textarea, [role="button"], [role="link"]')) {
|
|
78
|
+
return true;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return false;
|
|
82
|
+
}
|
|
42
83
|
itemId(item) {
|
|
43
84
|
return item.itemId || item.getAttribute('item-id') || '';
|
|
44
85
|
}
|
|
@@ -86,9 +127,23 @@ export class UITree {
|
|
|
86
127
|
const dropDepth = item.getAttribute('drop-depth');
|
|
87
128
|
if (dropDepth !== null)
|
|
88
129
|
return Number(dropDepth);
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
130
|
+
return Number(item.getAttribute('aria-level')) || 1;
|
|
131
|
+
}
|
|
132
|
+
subtreeDepth(item) {
|
|
133
|
+
if (item.subtreeDepth !== undefined)
|
|
134
|
+
return Math.max(0, Math.floor(item.subtreeDepth));
|
|
135
|
+
const override = item.getAttribute('subtree-depth');
|
|
136
|
+
if (override !== null)
|
|
137
|
+
return Math.max(0, Math.floor(Number(override)));
|
|
138
|
+
return Array.from(item.querySelectorAll('ui-tree-item')).reduce((deepest, descendant) => {
|
|
139
|
+
let nesting = 0;
|
|
140
|
+
let ancestor = descendant.parentElement?.closest('ui-tree-item') ?? null;
|
|
141
|
+
while (ancestor && ancestor !== item) {
|
|
142
|
+
nesting += 1;
|
|
143
|
+
ancestor = ancestor.parentElement?.closest('ui-tree-item') ?? null;
|
|
144
|
+
}
|
|
145
|
+
return ancestor === item ? Math.max(deepest, nesting + 1) : deepest;
|
|
146
|
+
}, 0);
|
|
92
147
|
}
|
|
93
148
|
dropRejection(source, target, position) {
|
|
94
149
|
// A tree item can never move into (or beside) one of its own descendants.
|
|
@@ -108,9 +163,9 @@ export class UITree {
|
|
|
108
163
|
return { reason: 'incompatible' };
|
|
109
164
|
}
|
|
110
165
|
const maxDepth = Math.max(0, Math.floor(this.maxDepth));
|
|
111
|
-
if (maxDepth > 0
|
|
166
|
+
if (maxDepth > 0) {
|
|
112
167
|
const targetDepth = Math.max(0, Math.floor(this.constraintDepth(target)));
|
|
113
|
-
const subtreeDepth =
|
|
168
|
+
const subtreeDepth = this.subtreeDepth(source);
|
|
114
169
|
const resultingDepth = targetDepth + (position === 'inside' ? 1 : 0) + subtreeDepth;
|
|
115
170
|
if (resultingDepth > maxDepth)
|
|
116
171
|
return { reason: 'max-depth', maxDepth, resultingDepth };
|
|
@@ -306,7 +361,35 @@ export class UITree {
|
|
|
306
361
|
return Array.from(this.host.querySelectorAll('ui-tree-item'))
|
|
307
362
|
.filter(item => item.getClientRects().length > 0 && !item.hasAttribute('disabled'));
|
|
308
363
|
}
|
|
364
|
+
parentItem(item) {
|
|
365
|
+
const parent = item.parentElement?.closest('ui-tree-item') ?? null;
|
|
366
|
+
return parent && this.host.contains(parent) ? parent : null;
|
|
367
|
+
}
|
|
368
|
+
firstVisibleChild(item, items) {
|
|
369
|
+
return items.find(candidate => this.parentItem(candidate) === item) ?? null;
|
|
370
|
+
}
|
|
371
|
+
focusItem(item) {
|
|
372
|
+
this.syncTabStop(item);
|
|
373
|
+
item.focus();
|
|
374
|
+
}
|
|
375
|
+
requestExpansion(item, expanded) {
|
|
376
|
+
item.dispatchEvent(new CustomEvent('ui-tree-request-expanded', {
|
|
377
|
+
detail: { expanded, trigger: 'keyboard' },
|
|
378
|
+
}));
|
|
379
|
+
}
|
|
380
|
+
onFocusIn = (event) => {
|
|
381
|
+
if (this.eventTargetsInteractiveContent(event))
|
|
382
|
+
return;
|
|
383
|
+
const item = this.itemFromEvent(event);
|
|
384
|
+
if (item)
|
|
385
|
+
this.syncTabStop(item);
|
|
386
|
+
};
|
|
387
|
+
onExpansionChange = () => {
|
|
388
|
+
requestAnimationFrame(() => this.syncTabStop());
|
|
389
|
+
};
|
|
309
390
|
onKeyDown = (event) => {
|
|
391
|
+
if (this.eventTargetsInteractiveContent(event))
|
|
392
|
+
return;
|
|
310
393
|
const current = this.itemFromEvent(event);
|
|
311
394
|
if (!current)
|
|
312
395
|
return;
|
|
@@ -314,14 +397,43 @@ export class UITree {
|
|
|
314
397
|
const index = items.indexOf(current);
|
|
315
398
|
if (index < 0)
|
|
316
399
|
return;
|
|
317
|
-
const next = event.key === 'ArrowDown' ? items[index + 1]
|
|
318
|
-
|
|
400
|
+
const next = event.key === 'ArrowDown' ? items[index + 1]
|
|
401
|
+
: event.key === 'ArrowUp' ? items[index - 1]
|
|
402
|
+
: event.key === 'Home' ? items[0]
|
|
403
|
+
: event.key === 'End' ? items.at(-1)
|
|
404
|
+
: null;
|
|
405
|
+
if (next) {
|
|
406
|
+
event.preventDefault();
|
|
407
|
+
this.focusItem(next);
|
|
319
408
|
return;
|
|
320
|
-
|
|
321
|
-
|
|
409
|
+
}
|
|
410
|
+
if (event.key === 'ArrowLeft') {
|
|
411
|
+
if (current.getAttribute('aria-expanded') === 'true') {
|
|
412
|
+
event.preventDefault();
|
|
413
|
+
this.requestExpansion(current, false);
|
|
414
|
+
}
|
|
415
|
+
else if (this.parentItem(current)) {
|
|
416
|
+
event.preventDefault();
|
|
417
|
+
this.focusItem(this.parentItem(current));
|
|
418
|
+
}
|
|
419
|
+
return;
|
|
420
|
+
}
|
|
421
|
+
if (event.key === 'ArrowRight') {
|
|
422
|
+
if (current.getAttribute('aria-expanded') === 'false') {
|
|
423
|
+
event.preventDefault();
|
|
424
|
+
this.requestExpansion(current, true);
|
|
425
|
+
}
|
|
426
|
+
else if (current.getAttribute('aria-expanded') === 'true') {
|
|
427
|
+
const child = this.firstVisibleChild(current, items);
|
|
428
|
+
if (child) {
|
|
429
|
+
event.preventDefault();
|
|
430
|
+
this.focusItem(child);
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
}
|
|
322
434
|
};
|
|
323
435
|
render() {
|
|
324
|
-
return (h(Host, { key: '
|
|
436
|
+
return (h(Host, { key: '549c09abc67dc60b16bf2d6b7d6346f214e9d6ae', role: "tree", "aria-label": this.label || 'Tree' }, h("slot", { key: 'fea59bde97611bf384e32ce4fb2b3eec9aca784f' })));
|
|
325
437
|
}
|
|
326
438
|
static get is() { return "ui-tree"; }
|
|
327
439
|
static get encapsulation() { return "shadow"; }
|
|
@@ -7,11 +7,9 @@ export class UITreeItem {
|
|
|
7
7
|
itemId = '';
|
|
8
8
|
/** Accessible name used by the disclosure and drag handle. */
|
|
9
9
|
label = '';
|
|
10
|
-
/**
|
|
11
|
-
depth = 1;
|
|
12
|
-
/** Application hierarchy depth used for drop constraints. Defaults to visual depth. */
|
|
10
|
+
/** Application hierarchy depth override used for drop constraints. Defaults to structural nesting. */
|
|
13
11
|
dropDepth;
|
|
14
|
-
/**
|
|
12
|
+
/** Virtualized-tree descendant-depth override for the tree's max-depth drop constraint. */
|
|
15
13
|
subtreeDepth;
|
|
16
14
|
/** Whether this item accepts children and exposes disclosure behavior. */
|
|
17
15
|
container = false;
|
|
@@ -23,37 +21,74 @@ export class UITreeItem {
|
|
|
23
21
|
dropScope = '';
|
|
24
22
|
/** Comma-separated drag kinds accepted as children. Empty accepts every kind. */
|
|
25
23
|
accepts = '';
|
|
26
|
-
/**
|
|
27
|
-
expanded
|
|
24
|
+
/** Controlled expansion value. When omitted, `default-expanded` initializes uncontrolled state. */
|
|
25
|
+
expanded;
|
|
28
26
|
/** Initial uncontrolled expansion value. */
|
|
29
27
|
defaultExpanded = false;
|
|
30
28
|
selected = false;
|
|
31
29
|
disabled = false;
|
|
32
30
|
internalExpanded = false;
|
|
31
|
+
structuralLevel = 1;
|
|
32
|
+
tabStop = false;
|
|
33
33
|
syncExpandedFromProp() {
|
|
34
|
-
|
|
34
|
+
// A defined prop owns the rendered state; clearing it resumes the current
|
|
35
|
+
// uncontrolled state instead of replaying the initial default.
|
|
36
|
+
if (this.expanded !== undefined)
|
|
37
|
+
this.internalExpanded = this.expanded;
|
|
35
38
|
}
|
|
36
39
|
componentWillLoad() {
|
|
37
|
-
this.internalExpanded = this.expanded
|
|
40
|
+
this.internalExpanded = this.expanded ?? this.defaultExpanded;
|
|
41
|
+
this.updateStructuralLevel();
|
|
38
42
|
}
|
|
39
|
-
|
|
43
|
+
connectedCallback() {
|
|
40
44
|
this.host.addEventListener('ui-tree-auto-expand', this.onAutoExpand);
|
|
45
|
+
this.host.addEventListener('ui-tree-structure-sync', this.updateStructuralLevel);
|
|
46
|
+
this.host.addEventListener('ui-tree-roving-tab-stop', this.onRovingTabStop);
|
|
47
|
+
this.host.addEventListener('ui-tree-request-expanded', this.onExpansionRequest);
|
|
41
48
|
}
|
|
42
49
|
disconnectedCallback() {
|
|
43
50
|
this.host.removeEventListener('ui-tree-auto-expand', this.onAutoExpand);
|
|
51
|
+
this.host.removeEventListener('ui-tree-structure-sync', this.updateStructuralLevel);
|
|
52
|
+
this.host.removeEventListener('ui-tree-roving-tab-stop', this.onRovingTabStop);
|
|
53
|
+
this.host.removeEventListener('ui-tree-request-expanded', this.onExpansionRequest);
|
|
44
54
|
}
|
|
55
|
+
updateStructuralLevel = () => {
|
|
56
|
+
const tree = this.host.closest('ui-tree');
|
|
57
|
+
let ancestor = this.host.parentElement?.closest('ui-tree-item') ?? null;
|
|
58
|
+
let level = 1;
|
|
59
|
+
while (ancestor && tree?.contains(ancestor)) {
|
|
60
|
+
level += 1;
|
|
61
|
+
ancestor = ancestor.parentElement?.closest('ui-tree-item') ?? null;
|
|
62
|
+
}
|
|
63
|
+
if (this.structuralLevel !== level)
|
|
64
|
+
this.structuralLevel = level;
|
|
65
|
+
};
|
|
45
66
|
setExpanded(expanded, trigger) {
|
|
46
|
-
|
|
67
|
+
const current = this.isExpanded();
|
|
68
|
+
if (!this.container || this.disabled || current === expanded)
|
|
47
69
|
return;
|
|
48
|
-
this.
|
|
70
|
+
if (this.expanded === undefined)
|
|
71
|
+
this.internalExpanded = expanded;
|
|
49
72
|
dispatchDetail(this.host, 'expand', { id: this.itemId, expanded, trigger });
|
|
73
|
+
this.host.dispatchEvent(new CustomEvent('ui-tree-expansion-change'));
|
|
74
|
+
}
|
|
75
|
+
isExpanded() {
|
|
76
|
+
return this.expanded ?? this.internalExpanded;
|
|
50
77
|
}
|
|
51
78
|
onAutoExpand = () => {
|
|
52
79
|
this.setExpanded(true, 'pointer');
|
|
53
80
|
};
|
|
81
|
+
onRovingTabStop = (event) => {
|
|
82
|
+
this.tabStop = Boolean(event.detail?.active) && !this.disabled;
|
|
83
|
+
};
|
|
84
|
+
onExpansionRequest = (event) => {
|
|
85
|
+
const detail = event.detail;
|
|
86
|
+
if (typeof detail?.expanded === 'boolean')
|
|
87
|
+
this.setExpanded(detail.expanded, detail.trigger ?? 'keyboard');
|
|
88
|
+
};
|
|
54
89
|
onDisclosureClick = (event) => {
|
|
55
90
|
event.stopPropagation();
|
|
56
|
-
this.setExpanded(!this.
|
|
91
|
+
this.setExpanded(!this.isExpanded(), eventToTrigger(event));
|
|
57
92
|
};
|
|
58
93
|
onDisclosureKeydown = (event) => {
|
|
59
94
|
if (event.key !== 'ArrowRight' && event.key !== 'ArrowLeft')
|
|
@@ -69,16 +104,17 @@ export class UITreeItem {
|
|
|
69
104
|
const interactive = path.some((node) => node instanceof HTMLElement && (node.matches('a, button, input, select, textarea, [role="button"], [role="link"]')
|
|
70
105
|
|| node.getAttribute('slot') === 'actions'));
|
|
71
106
|
if (!interactive)
|
|
72
|
-
this.setExpanded(!this.
|
|
107
|
+
this.setExpanded(!this.isExpanded(), eventToTrigger(event));
|
|
73
108
|
};
|
|
74
109
|
render() {
|
|
75
|
-
const level =
|
|
76
|
-
const
|
|
110
|
+
const level = this.structuralLevel;
|
|
111
|
+
const expanded = this.isExpanded();
|
|
112
|
+
const disclosureLabel = `${expanded ? 'Collapse' : 'Expand'} ${this.label || 'item'}`;
|
|
77
113
|
const dragLabel = `Drag ${this.label || 'item'} to reorder`;
|
|
78
|
-
return (h(Host, { key: '
|
|
114
|
+
return (h(Host, { key: '36ad9eac3e0fe2a606e63294891b1c0697034b46', role: "treeitem", "aria-label": this.label || undefined, "aria-level": String(level), "aria-expanded": this.container ? String(expanded) : undefined, "aria-selected": String(this.selected), "aria-disabled": this.disabled ? 'true' : undefined, "data-container": this.container ? '' : undefined, "data-selected": this.selected ? '' : undefined, "data-disabled": this.disabled ? '' : undefined, "data-drag-type": this.dragType || 'item', "data-drop-scope": this.dropScope || undefined, "data-accepts": this.accepts || undefined, tabIndex: this.disabled || !this.tabStop ? -1 : 0, style: {
|
|
79
115
|
'--ui-tree-item-depth': String(level - 1),
|
|
80
116
|
'margin-inline-start': level > 1 ? 'var(--ui-tree-indent, 16px)' : '0px',
|
|
81
|
-
} }, h("div", { key: '
|
|
117
|
+
} }, h("div", { key: 'e92f5bc73accef3b348559ea144e0b769c98c721', class: "row", part: "row", onClick: this.onRowClick }, this.sortable && !this.disabled ? (h("button", { class: "drag-handle", part: "drag-handle", type: "button", draggable: true, "aria-label": dragLabel, title: dragLabel }, h("span", { innerHTML: loomaIconMarkup('grip-vertical') }))) : null, this.container ? (h("button", { class: "disclosure", part: "disclosure", type: "button", "aria-label": disclosureLabel, "aria-expanded": String(expanded), disabled: this.disabled, onClick: this.onDisclosureClick, onKeyDown: this.onDisclosureKeydown }, h("span", { class: { 'disclosure-icon': true, 'disclosure-icon--expanded': expanded }, innerHTML: loomaIconMarkup('chevron-down') }))) : h("span", { class: "disclosure-spacer", "aria-hidden": "true" }), h("span", { key: 'dd2d0550d6846d0a4f80a4108968bfc32c18658f', class: "leading", part: "leading" }, h("slot", { key: '622d449a338dce57bc2e64aaf776471e8d3ce1b4', name: "leading" })), h("span", { key: '29c3e6ace4838ab941ada2547356288358faaeb2', class: "label", part: "label" }, h("slot", { key: 'f1594c11fa0b9fbe8a3c20df6edce19421cab148' })), h("span", { key: 'e4a6408f86b58a325145e713d116fc09322bb0d3', class: "actions", part: "actions" }, h("slot", { key: 'ff3afaf1089426e19ee1fc39c6567c3d40ca4272', name: "actions" })), h("span", { key: 'efcf23f7aad6c4353fa24bfe2a81001122335f72', class: "drop-indicator row-drop-indicator", part: "drop-indicator", "aria-hidden": "true" })), this.container ? (h("div", { class: "children", part: "children", role: "group", hidden: !expanded }, h("slot", { name: "children" }))) : null, h("span", { key: '21bfc8a6ad6e487cd044b5a3cbd7e8f900f2d1e1', class: "drop-indicator subtree-drop-indicator", part: "drop-indicator", "aria-hidden": "true" })));
|
|
82
118
|
}
|
|
83
119
|
static get is() { return "ui-tree-item"; }
|
|
84
120
|
static get encapsulation() { return "shadow"; }
|
|
@@ -134,26 +170,6 @@ export class UITreeItem {
|
|
|
134
170
|
"attribute": "label",
|
|
135
171
|
"defaultValue": "''"
|
|
136
172
|
},
|
|
137
|
-
"depth": {
|
|
138
|
-
"type": "number",
|
|
139
|
-
"mutable": false,
|
|
140
|
-
"complexType": {
|
|
141
|
-
"original": "number",
|
|
142
|
-
"resolved": "number",
|
|
143
|
-
"references": {}
|
|
144
|
-
},
|
|
145
|
-
"required": false,
|
|
146
|
-
"optional": false,
|
|
147
|
-
"docs": {
|
|
148
|
-
"tags": [],
|
|
149
|
-
"text": "One-based visual and semantic nesting level."
|
|
150
|
-
},
|
|
151
|
-
"getter": false,
|
|
152
|
-
"setter": false,
|
|
153
|
-
"reflect": false,
|
|
154
|
-
"attribute": "depth",
|
|
155
|
-
"defaultValue": "1"
|
|
156
|
-
},
|
|
157
173
|
"dropDepth": {
|
|
158
174
|
"type": "number",
|
|
159
175
|
"mutable": false,
|
|
@@ -166,7 +182,7 @@ export class UITreeItem {
|
|
|
166
182
|
"optional": true,
|
|
167
183
|
"docs": {
|
|
168
184
|
"tags": [],
|
|
169
|
-
"text": "Application hierarchy depth used for drop constraints. Defaults to
|
|
185
|
+
"text": "Application hierarchy depth override used for drop constraints. Defaults to structural nesting."
|
|
170
186
|
},
|
|
171
187
|
"getter": false,
|
|
172
188
|
"setter": false,
|
|
@@ -185,7 +201,7 @@ export class UITreeItem {
|
|
|
185
201
|
"optional": true,
|
|
186
202
|
"docs": {
|
|
187
203
|
"tags": [],
|
|
188
|
-
"text": "
|
|
204
|
+
"text": "Virtualized-tree descendant-depth override for the tree's max-depth drop constraint."
|
|
189
205
|
},
|
|
190
206
|
"getter": false,
|
|
191
207
|
"setter": false,
|
|
@@ -301,16 +317,15 @@ export class UITreeItem {
|
|
|
301
317
|
"references": {}
|
|
302
318
|
},
|
|
303
319
|
"required": false,
|
|
304
|
-
"optional":
|
|
320
|
+
"optional": true,
|
|
305
321
|
"docs": {
|
|
306
322
|
"tags": [],
|
|
307
|
-
"text": "
|
|
323
|
+
"text": "Controlled expansion value. When omitted, `default-expanded` initializes uncontrolled state."
|
|
308
324
|
},
|
|
309
325
|
"getter": false,
|
|
310
326
|
"setter": false,
|
|
311
327
|
"reflect": false,
|
|
312
|
-
"attribute": "expanded"
|
|
313
|
-
"defaultValue": "false"
|
|
328
|
+
"attribute": "expanded"
|
|
314
329
|
},
|
|
315
330
|
"defaultExpanded": {
|
|
316
331
|
"type": "boolean",
|
|
@@ -376,7 +391,9 @@ export class UITreeItem {
|
|
|
376
391
|
}
|
|
377
392
|
static get states() {
|
|
378
393
|
return {
|
|
379
|
-
"internalExpanded": {}
|
|
394
|
+
"internalExpanded": {},
|
|
395
|
+
"structuralLevel": {},
|
|
396
|
+
"tabStop": {}
|
|
380
397
|
};
|
|
381
398
|
}
|
|
382
399
|
static get elementRef() { return "host"; }
|
package/dist/collection/icons.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AlignCenter, AlignLeft, AlignRight, Bold, Braces, ChevronDown, ChevronLeft, CodeXml, Columns3, Ellipsis, Eraser, GripHorizontal, GripVertical, Heading1, Heading2, Heading3, Highlighter, Image, Italic, List, ListOrdered, ListTodo, Merge, Minus, PaintBucket, PanelBottom, PanelLeft, PanelRight, PanelTop, Pilcrow, Plus, Quote, Redo2, Rows3, Split, Strikethrough, Table2, Trash2, Underline, Undo2, } from "lucide";
|
|
1
|
+
import { AlignCenter, AlignLeft, AlignRight, Bold, Braces, ChevronDown, ChevronLeft, CodeXml, CircleCheck, CircleX, Columns3, Ellipsis, Eraser, GripHorizontal, GripVertical, Heading1, Heading2, Heading3, Highlighter, Image, Info, Italic, List, ListOrdered, ListTodo, Merge, NotebookPen, Minus, PaintBucket, PanelBottom, PanelLeft, PanelRight, PanelTop, Pilcrow, Plus, Quote, Redo2, Rows3, Split, Strikethrough, Table2, Trash2, TriangleAlert, Underline, Undo2, } from "lucide";
|
|
2
2
|
/** The opinionated Lucide set used by Looma's shipped interaction surfaces. */
|
|
3
3
|
export const LOOMA_ICONS = {
|
|
4
4
|
'align-center': AlignCenter,
|
|
@@ -6,6 +6,8 @@ export const LOOMA_ICONS = {
|
|
|
6
6
|
'align-right': AlignRight,
|
|
7
7
|
bold: Bold,
|
|
8
8
|
braces: Braces,
|
|
9
|
+
'circle-check': CircleCheck,
|
|
10
|
+
'circle-x': CircleX,
|
|
9
11
|
'chevron-down': ChevronDown,
|
|
10
12
|
'chevron-left': ChevronLeft,
|
|
11
13
|
'code-xml': CodeXml,
|
|
@@ -19,11 +21,13 @@ export const LOOMA_ICONS = {
|
|
|
19
21
|
'heading-3': Heading3,
|
|
20
22
|
highlighter: Highlighter,
|
|
21
23
|
image: Image,
|
|
24
|
+
info: Info,
|
|
22
25
|
italic: Italic,
|
|
23
26
|
list: List,
|
|
24
27
|
'list-ordered': ListOrdered,
|
|
25
28
|
'list-todo': ListTodo,
|
|
26
29
|
merge: Merge,
|
|
30
|
+
'notebook-pen': NotebookPen,
|
|
27
31
|
minus: Minus,
|
|
28
32
|
'paint-bucket': PaintBucket,
|
|
29
33
|
'panel-bottom': PanelBottom,
|
|
@@ -39,6 +43,7 @@ export const LOOMA_ICONS = {
|
|
|
39
43
|
strikethrough: Strikethrough,
|
|
40
44
|
table: Table2,
|
|
41
45
|
trash: Trash2,
|
|
46
|
+
'triangle-alert': TriangleAlert,
|
|
42
47
|
underline: Underline,
|
|
43
48
|
undo: Undo2,
|
|
44
49
|
};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/** A state prop is controlled only when the consumer supplies a value. */
|
|
2
|
+
export const isControlled = (value) => value !== undefined;
|
|
3
|
+
/** Defaults apply only when a corresponding controlled prop is omitted. */
|
|
4
|
+
export const controlledOrDefault = (value, defaultValue) => value === undefined ? defaultValue : value;
|
|
@@ -9,8 +9,12 @@ export { UIBadge as UiBadge } from '../types/components/ui-badge/ui-badge';
|
|
|
9
9
|
export { defineCustomElement as defineCustomElementUiBadge } from './ui-badge';
|
|
10
10
|
export { UIButton as UiButton } from '../types/components/ui-button/ui-button';
|
|
11
11
|
export { defineCustomElement as defineCustomElementUiButton } from './ui-button';
|
|
12
|
+
export { UICallout as UiCallout } from '../types/components/ui-callout/ui-callout';
|
|
13
|
+
export { defineCustomElement as defineCustomElementUiCallout } from './ui-callout';
|
|
12
14
|
export { UICheckbox as UiCheckbox } from '../types/components/ui-checkbox/ui-checkbox';
|
|
13
15
|
export { defineCustomElement as defineCustomElementUiCheckbox } from './ui-checkbox';
|
|
16
|
+
export { UIChip as UiChip } from '../types/components/ui-chip/ui-chip';
|
|
17
|
+
export { defineCustomElement as defineCustomElementUiChip } from './ui-chip';
|
|
14
18
|
export { UICombobox as UiCombobox } from '../types/components/ui-combobox/ui-combobox';
|
|
15
19
|
export { defineCustomElement as defineCustomElementUiCombobox } from './ui-combobox';
|
|
16
20
|
export { UIContextMenu as UiContextMenu } from '../types/components/ui-context-menu/ui-context-menu';
|
package/dist/components/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{g as getAssetPath,r as render,s as setAssetPath,a as setNonce,b as setPlatformOptions}from"./p-Bh_1GxOD.js";export{UiAffordanceScope,defineCustomElement as defineCustomElementUiAffordanceScope}from"./ui-affordance-scope.js";export{UiAvatar,defineCustomElement as defineCustomElementUiAvatar}from"./ui-avatar.js";export{UiAvatarGroup,defineCustomElement as defineCustomElementUiAvatarGroup}from"./ui-avatar-group.js";export{UiBadge,defineCustomElement as defineCustomElementUiBadge}from"./ui-badge.js";export{UiButton,defineCustomElement as defineCustomElementUiButton}from"./ui-button.js";export{UiCheckbox,defineCustomElement as defineCustomElementUiCheckbox}from"./ui-checkbox.js";export{UiCombobox,defineCustomElement as defineCustomElementUiCombobox}from"./ui-combobox.js";export{UiContextMenu,defineCustomElement as defineCustomElementUiContextMenu}from"./ui-context-menu.js";export{UiDialog,defineCustomElement as defineCustomElementUiDialog}from"./ui-dialog.js";export{UiDisclosure,defineCustomElement as defineCustomElementUiDisclosure}from"./ui-disclosure.js";export{UiFloatingActionButton,defineCustomElement as defineCustomElementUiFloatingActionButton}from"./ui-floating-action-button.js";export{UiFormField,defineCustomElement as defineCustomElementUiFormField}from"./ui-form-field.js";export{UiIconButton,defineCustomElement as defineCustomElementUiIconButton}from"./ui-icon-button.js";export{UiInput,defineCustomElement as defineCustomElementUiInput}from"./ui-input.js";export{UiMenu,defineCustomElement as defineCustomElementUiMenu}from"./ui-menu.js";export{UiMenuItem,defineCustomElement as defineCustomElementUiMenuItem}from"./ui-menu-item.js";export{UiPopover,defineCustomElement as defineCustomElementUiPopover}from"./ui-popover.js";export{UiRadio,defineCustomElement as defineCustomElementUiRadio}from"./ui-radio.js";export{UiRadioGroup,defineCustomElement as defineCustomElementUiRadioGroup}from"./ui-radio-group.js";export{UiSearchResultRow,defineCustomElement as defineCustomElementUiSearchResultRow}from"./ui-search-result-row.js";export{UiSearchShell,defineCustomElement as defineCustomElementUiSearchShell}from"./ui-search-shell.js";export{UiSelect,defineCustomElement as defineCustomElementUiSelect}from"./ui-select.js";export{UiSwitch,defineCustomElement as defineCustomElementUiSwitch}from"./ui-switch.js";export{UiTabs,defineCustomElement as defineCustomElementUiTabs}from"./ui-tabs.js";export{UiTextarea,defineCustomElement as defineCustomElementUiTextarea}from"./ui-textarea.js";export{UiToastRegion,defineCustomElement as defineCustomElementUiToastRegion}from"./ui-toast-region.js";export{UiTooltip,defineCustomElement as defineCustomElementUiTooltip}from"./ui-tooltip.js";export{UiTopBar,defineCustomElement as defineCustomElementUiTopBar}from"./ui-top-bar.js";export{UiTree,defineCustomElement as defineCustomElementUiTree}from"./ui-tree.js";export{UiTreeItem,defineCustomElement as defineCustomElementUiTreeItem}from"./ui-tree-item.js";
|
|
1
|
+
export{g as getAssetPath,r as render,s as setAssetPath,a as setNonce,b as setPlatformOptions}from"./p-Bh_1GxOD.js";export{UiAffordanceScope,defineCustomElement as defineCustomElementUiAffordanceScope}from"./ui-affordance-scope.js";export{UiAvatar,defineCustomElement as defineCustomElementUiAvatar}from"./ui-avatar.js";export{UiAvatarGroup,defineCustomElement as defineCustomElementUiAvatarGroup}from"./ui-avatar-group.js";export{UiBadge,defineCustomElement as defineCustomElementUiBadge}from"./ui-badge.js";export{UiButton,defineCustomElement as defineCustomElementUiButton}from"./ui-button.js";export{UiCallout,defineCustomElement as defineCustomElementUiCallout}from"./ui-callout.js";export{UiCheckbox,defineCustomElement as defineCustomElementUiCheckbox}from"./ui-checkbox.js";export{UiChip,defineCustomElement as defineCustomElementUiChip}from"./ui-chip.js";export{UiCombobox,defineCustomElement as defineCustomElementUiCombobox}from"./ui-combobox.js";export{UiContextMenu,defineCustomElement as defineCustomElementUiContextMenu}from"./ui-context-menu.js";export{UiDialog,defineCustomElement as defineCustomElementUiDialog}from"./ui-dialog.js";export{UiDisclosure,defineCustomElement as defineCustomElementUiDisclosure}from"./ui-disclosure.js";export{UiFloatingActionButton,defineCustomElement as defineCustomElementUiFloatingActionButton}from"./ui-floating-action-button.js";export{UiFormField,defineCustomElement as defineCustomElementUiFormField}from"./ui-form-field.js";export{UiIconButton,defineCustomElement as defineCustomElementUiIconButton}from"./ui-icon-button.js";export{UiInput,defineCustomElement as defineCustomElementUiInput}from"./ui-input.js";export{UiMenu,defineCustomElement as defineCustomElementUiMenu}from"./ui-menu.js";export{UiMenuItem,defineCustomElement as defineCustomElementUiMenuItem}from"./ui-menu-item.js";export{UiPopover,defineCustomElement as defineCustomElementUiPopover}from"./ui-popover.js";export{UiRadio,defineCustomElement as defineCustomElementUiRadio}from"./ui-radio.js";export{UiRadioGroup,defineCustomElement as defineCustomElementUiRadioGroup}from"./ui-radio-group.js";export{UiSearchResultRow,defineCustomElement as defineCustomElementUiSearchResultRow}from"./ui-search-result-row.js";export{UiSearchShell,defineCustomElement as defineCustomElementUiSearchShell}from"./ui-search-shell.js";export{UiSelect,defineCustomElement as defineCustomElementUiSelect}from"./ui-select.js";export{UiSwitch,defineCustomElement as defineCustomElementUiSwitch}from"./ui-switch.js";export{UiTabs,defineCustomElement as defineCustomElementUiTabs}from"./ui-tabs.js";export{UiTextarea,defineCustomElement as defineCustomElementUiTextarea}from"./ui-textarea.js";export{UiToastRegion,defineCustomElement as defineCustomElementUiToastRegion}from"./ui-toast-region.js";export{UiTooltip,defineCustomElement as defineCustomElementUiTooltip}from"./ui-tooltip.js";export{UiTopBar,defineCustomElement as defineCustomElementUiTopBar}from"./ui-top-bar.js";export{UiTree,defineCustomElement as defineCustomElementUiTree}from"./ui-tree.js";export{UiTreeItem,defineCustomElement as defineCustomElementUiTreeItem}from"./ui-tree-item.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{p as t,H as i,d as s,h as e,c as o,t as r}from"./p-Bh_1GxOD.js";import{o as h,c as n}from"./p-C-0syqXZ.js";import{d as a}from"./p-JwSoedEO.js";import{i as l,c}from"./p-BnGhGgTH.js";import{c as d}from"./p-DOulVJT7.js";const p=t(class extends i{constructor(t){super(),!1!==t&&this.__registerHost(),this.__attachShadow(),this.opened=s(this,"open"),this.closed=s(this,"close")}get host(){return this}for="";open;defaultOpen=!1;placement="top-start";showDelay=500;hideDelay=100;toggleOnClick=!1;pinned=!1;focused=!1;opened;closed;internalOpen=!1;overlayId=`ui-tooltip-${Math.random().toString(36).slice(2,11)}`;trigger=null;surface=null;showTimer=null;hideTimer=null;syncFromProp(){this.clearTimers(),l(this.open)&&(this.internalOpen=this.open)}resetSurface(){this.syncTrigger(),this.setupSurface(),this.syncOverlay()}syncOverlay(){this.internalOpen?(this.surface?.show(),h({id:this.overlayId,modal:!1,element:this.host,relatedElements:this.trigger?[this.trigger]:void 0,dismissible:!0,requestClose:(t,i)=>this.handleRequestClose(t,i)})):(this.surface?.hide(),n(this.overlayId))}componentDidLoad(){this.host.id||(this.host.id=this.overlayId),this.internalOpen=c(this.open,this.defaultOpen),this.syncTrigger(),this.setupSurface(),this.host.addEventListener("pointerenter",this.onSurfaceEnter),this.host.addEventListener("pointerleave",this.onTriggerLeave),this.syncOverlay()}componentDidUpdate(){this.syncTrigger()}disconnectedCallback(){this.clearTimers(),this.detachTriggerListeners(),this.surface?.destroy(),this.surface=null,this.host.removeEventListener("pointerenter",this.onSurfaceEnter),this.host.removeEventListener("pointerleave",this.onTriggerLeave),n(this.overlayId)}syncTrigger(){const t=this.for?this.host.getRootNode().getElementById(this.for):this.host.previousElementSibling;t!==this.trigger&&(this.detachTriggerListeners(),this.trigger=t,this.attachTriggerListeners(),this.surface?.setAnchor(t))}setupSurface(){this.surface?.destroy(),this.surface=d(this.host,{anchor:this.trigger,placement:this.placement})}attachTriggerListeners(){if(this.detachTriggerListeners(),!this.trigger)return;const t=new Set((this.trigger.getAttribute("aria-describedby")||"").split(/\s+/).filter(Boolean));t.add(this.host.id),this.trigger.setAttribute("aria-describedby",[...t].join(" ")),this.trigger.addEventListener("click",this.onTriggerClick),this.trigger.addEventListener("keydown",this.onTriggerKeydown),this.trigger.addEventListener("pointerenter",this.onTriggerEnter),this.trigger.addEventListener("pointerleave",this.onTriggerLeave),this.trigger.addEventListener("focusin",this.onTriggerFocusIn),this.trigger.addEventListener("focusout",this.onTriggerFocusOut)}detachTriggerListeners(){if(!this.trigger)return;const t=(this.trigger.getAttribute("aria-describedby")||"").split(/\s+/).filter((t=>t&&t!==this.host.id));t.length?this.trigger.setAttribute("aria-describedby",t.join(" ")):this.trigger.removeAttribute("aria-describedby"),this.trigger.removeEventListener("click",this.onTriggerClick),this.trigger.removeEventListener("keydown",this.onTriggerKeydown),this.trigger.removeEventListener("pointerenter",this.onTriggerEnter),this.trigger.removeEventListener("pointerleave",this.onTriggerLeave),this.trigger.removeEventListener("focusin",this.onTriggerFocusIn),this.trigger.removeEventListener("focusout",this.onTriggerFocusOut)}clearShowTimer(){null!==this.showTimer&&(clearTimeout(this.showTimer),this.showTimer=null)}clearHideTimer(){null!==this.hideTimer&&(clearTimeout(this.hideTimer),this.hideTimer=null)}clearTimers(){this.clearShowTimer(),this.clearHideTimer()}setInteractionOpen(t,i){this.internalOpen!==t&&(l(this.open)||(this.internalOpen=t),a(this.host,t?"open":"close",{open:t,reason:"action",trigger:i}))}onSurfaceEnter=()=>this.clearHideTimer();onTriggerClick=t=>{this.toggleOnClick&&(this.clearTimers(),this.pinned=!this.pinned,this.setInteractionOpen(this.pinned,0===t.detail?"keyboard":"pointer"))};onTriggerKeydown=t=>{"Escape"===t.key&&this.clearTimers()};onTriggerEnter=t=>{"touch"!==t.pointerType&&(this.clearHideTimer(),this.internalOpen||null!==this.showTimer||(this.showTimer=setTimeout((()=>{this.showTimer=null,this.setInteractionOpen(!0,"pointer")}),Math.max(0,this.showDelay))))};onTriggerLeave=()=>{this.clearShowTimer(),this.focused||this.pinned||!this.internalOpen||null!==this.hideTimer||(this.hideTimer=setTimeout((()=>{this.hideTimer=null,this.setInteractionOpen(!1,"pointer")}),Math.max(0,this.hideDelay)))};onTriggerFocusIn=()=>{this.focused=!0,this.clearTimers(),this.setInteractionOpen(!0,"keyboard")};onTriggerFocusOut=t=>{const i=t.relatedTarget;i&&this.host.contains(i)||(this.focused=!1,this.pinned=!1,this.clearTimers(),this.setInteractionOpen(!1,"keyboard"))};handleRequestClose(t,i){("escape"===t||"light-dismiss"===t&&this.toggleOnClick)&&(this.pinned=!1,this.clearTimers(),l(this.open)||(this.internalOpen=!1),a(this.host,"close",{open:!1,reason:t,trigger:i}))}render(){return e(o,{key:"ce34c51bc3a9c9f7f31b7f0d329175df0cee1ab3",role:"tooltip",hidden:!this.internalOpen,"data-open":this.internalOpen?"":void 0},e("div",{key:"e5bb2bcb146fe8ec3b4e9a6abb550961181e3c06",class:"tooltip__surface"},e("slot",{key:"bdb71bfcb0f72c212cbb5c64fb69510fdded4afb"})))}static get watchers(){return{open:[{syncFromProp:0}],for:[{resetSurface:0}],placement:[{resetSurface:0}],internalOpen:[{syncOverlay:0}]}}static get style(){return":host{position:fixed;inset:auto;margin:0;display:inline-block;box-sizing:border-box;padding:0;border:0;border-radius:0;background:transparent;opacity:0;transform:translateY(4px);transition:opacity var(--ui-motion-fast) var(--ui-motion-ease), transform var(--ui-motion-fast) var(--ui-motion-ease), display var(--ui-motion-fast) allow-discrete, overlay var(--ui-motion-fast) allow-discrete}.tooltip__surface{box-sizing:border-box;border:1px solid var(--ui-border-default);border-radius:var(--ui-radius-2);background:var(--ui-surface-elevated);color:var(--ui-text-primary);padding:var(--ui-space-2) var(--ui-space-3);font-size:var(--ui-font-size-sm);box-shadow:var(--ui-shadow-md)}:host(:popover-open){opacity:1;transform:translateY(0)}@starting-style{:host(:popover-open){opacity:0;transform:translateY(4px)}}:host([hidden]){display:none !important}@media (prefers-reduced-motion: reduce){:host{transition:none}}"}},[769,"ui-tooltip",{for:[1],open:[4],defaultOpen:[4,"default-open"],placement:[1],showDelay:[2,"show-delay"],hideDelay:[2,"hide-delay"],toggleOnClick:[4,"toggle-on-click"],internalOpen:[32]},void 0,{open:[{syncFromProp:0}],for:[{resetSurface:0}],placement:[{resetSurface:0}],internalOpen:[{syncOverlay:0}]}]);function u(){"undefined"!=typeof customElements&&["ui-tooltip"].forEach((t=>{"ui-tooltip"===t&&(customElements.get(r(t))||customElements.define(r(t),p))}))}export{p as U,u as d}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const o=o=>void 0!==o,i=(o,i)=>void 0===o?i:o;export{i as c,o as i}
|