@g9tm/lynxcontrols 0.0.0-stage → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -2
- package/dist/.tsbuildinfo +1 -0
- package/dist/base/base.css +16 -0
- package/dist/base/base.css.map +1 -0
- package/dist/base/control.d.ts +44 -0
- package/dist/base/control.d.ts.map +1 -0
- package/dist/base/control.jsx +24 -0
- package/dist/base/control.jsx.map +1 -0
- package/dist/base/corner-badge.d.ts +35 -0
- package/dist/base/corner-badge.d.ts.map +1 -0
- package/dist/base/corner-badge.jsx +45 -0
- package/dist/base/corner-badge.jsx.map +1 -0
- package/dist/base/disposer.d.ts +28 -0
- package/dist/base/disposer.d.ts.map +1 -0
- package/dist/base/disposer.jsx +61 -0
- package/dist/base/disposer.jsx.map +1 -0
- package/dist/base/index.d.ts +10 -0
- package/dist/base/index.d.ts.map +1 -0
- package/dist/base/index.jsx +9 -0
- package/dist/base/press.d.ts +38 -0
- package/dist/base/press.d.ts.map +1 -0
- package/dist/base/press.jsx +73 -0
- package/dist/base/press.jsx.map +1 -0
- package/dist/base/pressable.d.ts +25 -0
- package/dist/base/pressable.d.ts.map +1 -0
- package/dist/base/pressable.jsx +38 -0
- package/dist/base/pressable.jsx.map +1 -0
- package/dist/base/selection-item.d.ts +29 -0
- package/dist/base/selection-item.d.ts.map +1 -0
- package/dist/base/selection-item.jsx +6 -0
- package/dist/base/selection-item.jsx.map +1 -0
- package/dist/base/timers.d.ts +7 -0
- package/dist/base/timers.d.ts.map +1 -0
- package/dist/base/timers.jsx +10 -0
- package/dist/base/timers.jsx.map +1 -0
- package/dist/base/use-controllable-state.d.ts +30 -0
- package/dist/base/use-controllable-state.d.ts.map +1 -0
- package/dist/base/use-controllable-state.jsx +49 -0
- package/dist/base/use-controllable-state.jsx.map +1 -0
- package/dist/base/use-stable-callback.d.ts +8 -0
- package/dist/base/use-stable-callback.d.ts.map +1 -0
- package/dist/base/use-stable-callback.jsx +12 -0
- package/dist/base/use-stable-callback.jsx.map +1 -0
- package/dist/button/button.css +162 -0
- package/dist/button/button.css.map +1 -0
- package/dist/button/button.d.ts +52 -0
- package/dist/button/button.d.ts.map +1 -0
- package/dist/button/button.jsx +87 -0
- package/dist/button/button.jsx.map +1 -0
- package/dist/button/header-action-button.d.ts +34 -0
- package/dist/button/header-action-button.d.ts.map +1 -0
- package/dist/button/header-action-button.jsx +51 -0
- package/dist/button/header-action-button.jsx.map +1 -0
- package/dist/button/icon-button.d.ts +46 -0
- package/dist/button/icon-button.d.ts.map +1 -0
- package/dist/button/icon-button.jsx +69 -0
- package/dist/button/icon-button.jsx.map +1 -0
- package/dist/button/index.d.ts +9 -0
- package/dist/button/index.d.ts.map +1 -0
- package/dist/button/index.jsx +8 -0
- package/dist/button/nav-card.d.ts +58 -0
- package/dist/button/nav-card.d.ts.map +1 -0
- package/dist/button/nav-card.jsx +95 -0
- package/dist/button/nav-card.jsx.map +1 -0
- package/dist/button/safe-tap.d.ts +27 -0
- package/dist/button/safe-tap.d.ts.map +1 -0
- package/dist/button/safe-tap.jsx +46 -0
- package/dist/button/safe-tap.jsx.map +1 -0
- package/dist/button/safe.d.ts +84 -0
- package/dist/button/safe.d.ts.map +1 -0
- package/dist/button/safe.jsx +116 -0
- package/dist/button/safe.jsx.map +1 -0
- package/dist/button/vertical-icon-text-button.d.ts +18 -0
- package/dist/button/vertical-icon-text-button.d.ts.map +1 -0
- package/dist/button/vertical-icon-text-button.jsx +21 -0
- package/dist/button/vertical-icon-text-button.jsx.map +1 -0
- package/dist/button/visuals.d.ts +53 -0
- package/dist/button/visuals.d.ts.map +1 -0
- package/dist/button/visuals.jsx +92 -0
- package/dist/button/visuals.jsx.map +1 -0
- package/dist/cascade/cascade-panel.d.ts +80 -0
- package/dist/cascade/cascade-panel.d.ts.map +1 -0
- package/dist/cascade/cascade-panel.jsx +179 -0
- package/dist/cascade/cascade-panel.jsx.map +1 -0
- package/dist/cascade/cascade.css +70 -0
- package/dist/cascade/cascade.css.map +1 -0
- package/dist/cascade/index.d.ts +3 -0
- package/dist/cascade/index.d.ts.map +1 -0
- package/dist/cascade/index.jsx +2 -0
- package/dist/cascade/model.d.ts +68 -0
- package/dist/cascade/model.d.ts.map +1 -0
- package/dist/cascade/model.jsx +161 -0
- package/dist/cascade/model.jsx.map +1 -0
- package/dist/deferred/deferred-content.d.ts +82 -0
- package/dist/deferred/deferred-content.d.ts.map +1 -0
- package/dist/deferred/deferred-content.jsx +263 -0
- package/dist/deferred/deferred-content.jsx.map +1 -0
- package/dist/deferred/deferred.css +62 -0
- package/dist/deferred/deferred.css.map +1 -0
- package/dist/deferred/index.d.ts +3 -0
- package/dist/deferred/index.d.ts.map +1 -0
- package/dist/deferred/index.jsx +2 -0
- package/dist/deferred/readiness-signal.d.ts +16 -0
- package/dist/deferred/readiness-signal.d.ts.map +1 -0
- package/dist/deferred/readiness-signal.jsx +29 -0
- package/dist/deferred/readiness-signal.jsx.map +1 -0
- package/dist/display/activity-indicator.d.ts +21 -0
- package/dist/display/activity-indicator.d.ts.map +1 -0
- package/dist/display/activity-indicator.jsx +22 -0
- package/dist/display/activity-indicator.jsx.map +1 -0
- package/dist/display/culture-date-time-label.d.ts +64 -0
- package/dist/display/culture-date-time-label.d.ts.map +1 -0
- package/dist/display/culture-date-time-label.jsx +71 -0
- package/dist/display/culture-date-time-label.jsx.map +1 -0
- package/dist/display/display.css +217 -0
- package/dist/display/display.css.map +1 -0
- package/dist/display/index.d.ts +7 -0
- package/dist/display/index.d.ts.map +1 -0
- package/dist/display/index.jsx +6 -0
- package/dist/display/progress-bar.d.ts +38 -0
- package/dist/display/progress-bar.d.ts.map +1 -0
- package/dist/display/progress-bar.jsx +57 -0
- package/dist/display/progress-bar.jsx.map +1 -0
- package/dist/display/separator.d.ts +30 -0
- package/dist/display/separator.d.ts.map +1 -0
- package/dist/display/separator.jsx +55 -0
- package/dist/display/separator.jsx.map +1 -0
- package/dist/display/shimmer.d.ts +41 -0
- package/dist/display/shimmer.d.ts.map +1 -0
- package/dist/display/shimmer.jsx +41 -0
- package/dist/display/shimmer.jsx.map +1 -0
- package/dist/display/title-with-line.d.ts +13 -0
- package/dist/display/title-with-line.d.ts.map +1 -0
- package/dist/display/title-with-line.jsx +21 -0
- package/dist/display/title-with-line.jsx.map +1 -0
- package/dist/edge-panel/edge-panel.css +132 -0
- package/dist/edge-panel/edge-panel.css.map +1 -0
- package/dist/edge-panel/edge-panel.d.ts +87 -0
- package/dist/edge-panel/edge-panel.d.ts.map +1 -0
- package/dist/edge-panel/edge-panel.jsx +326 -0
- package/dist/edge-panel/edge-panel.jsx.map +1 -0
- package/dist/edge-panel/helper.d.ts +27 -0
- package/dist/edge-panel/helper.d.ts.map +1 -0
- package/dist/edge-panel/helper.jsx +118 -0
- package/dist/edge-panel/helper.jsx.map +1 -0
- package/dist/edge-panel/index.d.ts +4 -0
- package/dist/edge-panel/index.d.ts.map +1 -0
- package/dist/edge-panel/index.jsx +3 -0
- package/dist/edge-panel/types.d.ts +155 -0
- package/dist/edge-panel/types.d.ts.map +1 -0
- package/dist/edge-panel/types.jsx +139 -0
- package/dist/edge-panel/types.jsx.map +1 -0
- package/dist/expander/expander.css +54 -0
- package/dist/expander/expander.css.map +1 -0
- package/dist/expander/expander.d.ts +46 -0
- package/dist/expander/expander.d.ts.map +1 -0
- package/dist/expander/expander.jsx +110 -0
- package/dist/expander/expander.jsx.map +1 -0
- package/dist/expander/index.d.ts +2 -0
- package/dist/expander/index.d.ts.map +1 -0
- package/dist/expander/index.jsx +1 -0
- package/dist/fields/dictation.d.ts +43 -0
- package/dist/fields/dictation.d.ts.map +1 -0
- package/dist/fields/dictation.jsx +124 -0
- package/dist/fields/dictation.jsx.map +1 -0
- package/dist/fields/editor.d.ts +26 -0
- package/dist/fields/editor.d.ts.map +1 -0
- package/dist/fields/editor.jsx +46 -0
- package/dist/fields/editor.jsx.map +1 -0
- package/dist/fields/fields.css +156 -0
- package/dist/fields/fields.css.map +1 -0
- package/dist/fields/index.d.ts +12 -0
- package/dist/fields/index.d.ts.map +1 -0
- package/dist/fields/index.jsx +11 -0
- package/dist/fields/input-policy.d.ts +48 -0
- package/dist/fields/input-policy.d.ts.map +1 -0
- package/dist/fields/input-policy.jsx +215 -0
- package/dist/fields/input-policy.jsx.map +1 -0
- package/dist/fields/outlined-field.d.ts +146 -0
- package/dist/fields/outlined-field.d.ts.map +1 -0
- package/dist/fields/outlined-field.jsx +196 -0
- package/dist/fields/outlined-field.jsx.map +1 -0
- package/dist/fields/pin-entry.d.ts +63 -0
- package/dist/fields/pin-entry.d.ts.map +1 -0
- package/dist/fields/pin-entry.jsx +293 -0
- package/dist/fields/pin-entry.jsx.map +1 -0
- package/dist/fields/search-entry.d.ts +35 -0
- package/dist/fields/search-entry.d.ts.map +1 -0
- package/dist/fields/search-entry.jsx +118 -0
- package/dist/fields/search-entry.jsx.map +1 -0
- package/dist/fields/slot-layout.d.ts +33 -0
- package/dist/fields/slot-layout.d.ts.map +1 -0
- package/dist/fields/slot-layout.jsx +33 -0
- package/dist/fields/slot-layout.jsx.map +1 -0
- package/dist/fields/text-entry.d.ts +62 -0
- package/dist/fields/text-entry.d.ts.map +1 -0
- package/dist/fields/text-entry.jsx +72 -0
- package/dist/fields/text-entry.jsx.map +1 -0
- package/dist/fields/use-dictation.d.ts +34 -0
- package/dist/fields/use-dictation.d.ts.map +1 -0
- package/dist/fields/use-dictation.jsx +80 -0
- package/dist/fields/use-dictation.jsx.map +1 -0
- package/dist/fields/use-text-input.d.ts +150 -0
- package/dist/fields/use-text-input.d.ts.map +1 -0
- package/dist/fields/use-text-input.jsx +237 -0
- package/dist/fields/use-text-input.jsx.map +1 -0
- package/dist/fields/validator.d.ts +14 -0
- package/dist/fields/validator.d.ts.map +1 -0
- package/dist/fields/validator.jsx +20 -0
- package/dist/fields/validator.jsx.map +1 -0
- package/dist/host/back.d.ts +42 -0
- package/dist/host/back.d.ts.map +1 -0
- package/dist/host/back.jsx +47 -0
- package/dist/host/back.jsx.map +1 -0
- package/dist/host/hooks.d.ts +85 -0
- package/dist/host/hooks.d.ts.map +1 -0
- package/dist/host/hooks.jsx +163 -0
- package/dist/host/hooks.jsx.map +1 -0
- package/dist/host/host.css +81 -0
- package/dist/host/host.css.map +1 -0
- package/dist/host/host.d.ts +70 -0
- package/dist/host/host.d.ts.map +1 -0
- package/dist/host/host.jsx +229 -0
- package/dist/host/host.jsx.map +1 -0
- package/dist/host/index.d.ts +9 -0
- package/dist/host/index.d.ts.map +1 -0
- package/dist/host/index.jsx +8 -0
- package/dist/host/keyboard.d.ts +24 -0
- package/dist/host/keyboard.d.ts.map +1 -0
- package/dist/host/keyboard.jsx +28 -0
- package/dist/host/keyboard.jsx.map +1 -0
- package/dist/host/layers.d.ts +69 -0
- package/dist/host/layers.d.ts.map +1 -0
- package/dist/host/layers.jsx +111 -0
- package/dist/host/layers.jsx.map +1 -0
- package/dist/host/page-loading-overlay.d.ts +17 -0
- package/dist/host/page-loading-overlay.d.ts.map +1 -0
- package/dist/host/page-loading-overlay.jsx +16 -0
- package/dist/host/page-loading-overlay.jsx.map +1 -0
- package/dist/host/readiness.d.ts +57 -0
- package/dist/host/readiness.d.ts.map +1 -0
- package/dist/host/readiness.jsx +138 -0
- package/dist/host/readiness.jsx.map +1 -0
- package/dist/host/registry.d.ts +106 -0
- package/dist/host/registry.d.ts.map +1 -0
- package/dist/host/registry.jsx +93 -0
- package/dist/host/registry.jsx.map +1 -0
- package/dist/icon/icon.css +39 -0
- package/dist/icon/icon.css.map +1 -0
- package/dist/icon/icon.d.ts +57 -0
- package/dist/icon/icon.d.ts.map +1 -0
- package/dist/icon/icon.jsx +115 -0
- package/dist/icon/icon.jsx.map +1 -0
- package/dist/icon/index.d.ts +4 -0
- package/dist/icon/index.d.ts.map +1 -0
- package/dist/icon/index.jsx +3 -0
- package/dist/icon/slot.d.ts +45 -0
- package/dist/icon/slot.d.ts.map +1 -0
- package/dist/icon/slot.jsx +61 -0
- package/dist/icon/slot.jsx.map +1 -0
- package/dist/icon/swatch.d.ts +29 -0
- package/dist/icon/swatch.d.ts.map +1 -0
- package/dist/icon/swatch.jsx +25 -0
- package/dist/icon/swatch.jsx.map +1 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.jsx +1 -0
- package/dist/pickers/combo-box.d.ts +42 -0
- package/dist/pickers/combo-box.d.ts.map +1 -0
- package/dist/pickers/combo-box.jsx +129 -0
- package/dist/pickers/combo-box.jsx.map +1 -0
- package/dist/pickers/date-time-picker.d.ts +63 -0
- package/dist/pickers/date-time-picker.d.ts.map +1 -0
- package/dist/pickers/date-time-picker.jsx +141 -0
- package/dist/pickers/date-time-picker.jsx.map +1 -0
- package/dist/pickers/date-time.d.ts +82 -0
- package/dist/pickers/date-time.d.ts.map +1 -0
- package/dist/pickers/date-time.jsx +130 -0
- package/dist/pickers/date-time.jsx.map +1 -0
- package/dist/pickers/index.d.ts +10 -0
- package/dist/pickers/index.d.ts.map +1 -0
- package/dist/pickers/index.jsx +9 -0
- package/dist/pickers/picker-sheet.d.ts +21 -0
- package/dist/pickers/picker-sheet.d.ts.map +1 -0
- package/dist/pickers/picker-sheet.jsx +61 -0
- package/dist/pickers/picker-sheet.jsx.map +1 -0
- package/dist/pickers/picker.d.ts +32 -0
- package/dist/pickers/picker.d.ts.map +1 -0
- package/dist/pickers/picker.jsx +72 -0
- package/dist/pickers/picker.jsx.map +1 -0
- package/dist/pickers/pickers.css +219 -0
- package/dist/pickers/pickers.css.map +1 -0
- package/dist/pickers/timespan-picker.d.ts +36 -0
- package/dist/pickers/timespan-picker.d.ts.map +1 -0
- package/dist/pickers/timespan-picker.jsx +99 -0
- package/dist/pickers/timespan-picker.jsx.map +1 -0
- package/dist/pickers/timespan.d.ts +38 -0
- package/dist/pickers/timespan.d.ts.map +1 -0
- package/dist/pickers/timespan.jsx +49 -0
- package/dist/pickers/timespan.jsx.map +1 -0
- package/dist/pickers/trigger.d.ts +34 -0
- package/dist/pickers/trigger.d.ts.map +1 -0
- package/dist/pickers/trigger.jsx +77 -0
- package/dist/pickers/trigger.jsx.map +1 -0
- package/dist/pickers/wheel-column.d.ts +32 -0
- package/dist/pickers/wheel-column.d.ts.map +1 -0
- package/dist/pickers/wheel-column.jsx +99 -0
- package/dist/pickers/wheel-column.jsx.map +1 -0
- package/dist/plus-button/index.d.ts +3 -0
- package/dist/plus-button/index.d.ts.map +1 -0
- package/dist/plus-button/index.jsx +2 -0
- package/dist/plus-button/model.d.ts +65 -0
- package/dist/plus-button/model.d.ts.map +1 -0
- package/dist/plus-button/model.jsx +86 -0
- package/dist/plus-button/model.jsx.map +1 -0
- package/dist/plus-button/plus-button.css +67 -0
- package/dist/plus-button/plus-button.css.map +1 -0
- package/dist/plus-button/plus-button.d.ts +38 -0
- package/dist/plus-button/plus-button.d.ts.map +1 -0
- package/dist/plus-button/plus-button.jsx +155 -0
- package/dist/plus-button/plus-button.jsx.map +1 -0
- package/dist/popup/frame.d.ts +101 -0
- package/dist/popup/frame.d.ts.map +1 -0
- package/dist/popup/frame.jsx +244 -0
- package/dist/popup/frame.jsx.map +1 -0
- package/dist/popup/index.d.ts +8 -0
- package/dist/popup/index.d.ts.map +1 -0
- package/dist/popup/index.jsx +7 -0
- package/dist/popup/input-form.d.ts +35 -0
- package/dist/popup/input-form.d.ts.map +1 -0
- package/dist/popup/input-form.jsx +160 -0
- package/dist/popup/input-form.jsx.map +1 -0
- package/dist/popup/input.d.ts +175 -0
- package/dist/popup/input.d.ts.map +1 -0
- package/dist/popup/input.jsx +176 -0
- package/dist/popup/input.jsx.map +1 -0
- package/dist/popup/popup-view.d.ts +25 -0
- package/dist/popup/popup-view.d.ts.map +1 -0
- package/dist/popup/popup-view.jsx +67 -0
- package/dist/popup/popup-view.jsx.map +1 -0
- package/dist/popup/popup.css +203 -0
- package/dist/popup/popup.css.map +1 -0
- package/dist/popup/queue.d.ts +90 -0
- package/dist/popup/queue.d.ts.map +1 -0
- package/dist/popup/queue.jsx +309 -0
- package/dist/popup/queue.jsx.map +1 -0
- package/dist/popup/service.d.ts +60 -0
- package/dist/popup/service.d.ts.map +1 -0
- package/dist/popup/service.jsx +342 -0
- package/dist/popup/service.jsx.map +1 -0
- package/dist/popup/types.d.ts +211 -0
- package/dist/popup/types.d.ts.map +1 -0
- package/dist/popup/types.jsx +218 -0
- package/dist/popup/types.jsx.map +1 -0
- package/dist/provider/contexts.d.ts +41 -0
- package/dist/provider/contexts.d.ts.map +1 -0
- package/dist/provider/contexts.jsx +11 -0
- package/dist/provider/contexts.jsx.map +1 -0
- package/dist/provider/global-events.d.ts +8 -0
- package/dist/provider/global-events.d.ts.map +1 -0
- package/dist/provider/global-events.jsx +17 -0
- package/dist/provider/global-events.jsx.map +1 -0
- package/dist/provider/hooks.d.ts +49 -0
- package/dist/provider/hooks.d.ts.map +1 -0
- package/dist/provider/hooks.jsx +72 -0
- package/dist/provider/hooks.jsx.map +1 -0
- package/dist/provider/index.d.ts +5 -0
- package/dist/provider/index.d.ts.map +1 -0
- package/dist/provider/index.jsx +3 -0
- package/dist/provider/provider.css +18 -0
- package/dist/provider/provider.css.map +1 -0
- package/dist/provider/provider.d.ts +51 -0
- package/dist/provider/provider.d.ts.map +1 -0
- package/dist/provider/provider.jsx +290 -0
- package/dist/provider/provider.jsx.map +1 -0
- package/dist/provider/settings.d.ts +99 -0
- package/dist/provider/settings.d.ts.map +1 -0
- package/dist/provider/settings.jsx +45 -0
- package/dist/provider/settings.jsx.map +1 -0
- package/dist/provider/theme-css.d.ts +12 -0
- package/dist/provider/theme-css.d.ts.map +1 -0
- package/dist/provider/theme-css.jsx +19 -0
- package/dist/provider/theme-css.jsx.map +1 -0
- package/dist/provider/theme-root.d.ts +10 -0
- package/dist/provider/theme-root.d.ts.map +1 -0
- package/dist/provider/theme-root.jsx +24 -0
- package/dist/provider/theme-root.jsx.map +1 -0
- package/dist/provider/theme.css +473 -0
- package/dist/provider/theme.css.map +1 -0
- package/dist/range-slider/index.d.ts +3 -0
- package/dist/range-slider/index.d.ts.map +1 -0
- package/dist/range-slider/index.jsx +2 -0
- package/dist/range-slider/math.d.ts +23 -0
- package/dist/range-slider/math.d.ts.map +1 -0
- package/dist/range-slider/math.jsx +71 -0
- package/dist/range-slider/math.jsx.map +1 -0
- package/dist/range-slider/range-slider.css +90 -0
- package/dist/range-slider/range-slider.css.map +1 -0
- package/dist/range-slider/range-slider.d.ts +52 -0
- package/dist/range-slider/range-slider.d.ts.map +1 -0
- package/dist/range-slider/range-slider.jsx +159 -0
- package/dist/range-slider/range-slider.jsx.map +1 -0
- package/dist/selection/index.d.ts +5 -0
- package/dist/selection/index.d.ts.map +1 -0
- package/dist/selection/index.jsx +3 -0
- package/dist/selection/model.d.ts +53 -0
- package/dist/selection/model.d.ts.map +1 -0
- package/dist/selection/model.jsx +69 -0
- package/dist/selection/model.jsx.map +1 -0
- package/dist/selection/selection-sheet.d.ts +80 -0
- package/dist/selection/selection-sheet.d.ts.map +1 -0
- package/dist/selection/selection-sheet.jsx +362 -0
- package/dist/selection/selection-sheet.jsx.map +1 -0
- package/dist/selection/selection.css +75 -0
- package/dist/selection/selection.css.map +1 -0
- package/dist/selection/use-selection-model.d.ts +9 -0
- package/dist/selection/use-selection-model.d.ts.map +1 -0
- package/dist/selection/use-selection-model.jsx +22 -0
- package/dist/selection/use-selection-model.jsx.map +1 -0
- package/dist/sheet/frame.d.ts +45 -0
- package/dist/sheet/frame.d.ts.map +1 -0
- package/dist/sheet/frame.jsx +205 -0
- package/dist/sheet/frame.jsx.map +1 -0
- package/dist/sheet/header.d.ts +35 -0
- package/dist/sheet/header.d.ts.map +1 -0
- package/dist/sheet/header.jsx +145 -0
- package/dist/sheet/header.jsx.map +1 -0
- package/dist/sheet/height-memo.d.ts +47 -0
- package/dist/sheet/height-memo.d.ts.map +1 -0
- package/dist/sheet/height-memo.jsx +100 -0
- package/dist/sheet/height-memo.jsx.map +1 -0
- package/dist/sheet/index.d.ts +11 -0
- package/dist/sheet/index.d.ts.map +1 -0
- package/dist/sheet/index.jsx +10 -0
- package/dist/sheet/loadable.d.ts +35 -0
- package/dist/sheet/loadable.d.ts.map +1 -0
- package/dist/sheet/loadable.jsx +65 -0
- package/dist/sheet/loadable.jsx.map +1 -0
- package/dist/sheet/options.d.ts +220 -0
- package/dist/sheet/options.d.ts.map +1 -0
- package/dist/sheet/options.jsx +91 -0
- package/dist/sheet/options.jsx.map +1 -0
- package/dist/sheet/processing.d.ts +22 -0
- package/dist/sheet/processing.d.ts.map +1 -0
- package/dist/sheet/processing.jsx +66 -0
- package/dist/sheet/processing.jsx.map +1 -0
- package/dist/sheet/service.d.ts +55 -0
- package/dist/sheet/service.d.ts.map +1 -0
- package/dist/sheet/service.jsx +143 -0
- package/dist/sheet/service.jsx.map +1 -0
- package/dist/sheet/sheet.css +195 -0
- package/dist/sheet/sheet.css.map +1 -0
- package/dist/sheet/sheet.d.ts +19 -0
- package/dist/sheet/sheet.d.ts.map +1 -0
- package/dist/sheet/sheet.jsx +40 -0
- package/dist/sheet/sheet.jsx.map +1 -0
- package/dist/sheet/sizing.d.ts +69 -0
- package/dist/sheet/sizing.d.ts.map +1 -0
- package/dist/sheet/sizing.jsx +146 -0
- package/dist/sheet/sizing.jsx.map +1 -0
- package/dist/sheet/stack.d.ts +161 -0
- package/dist/sheet/stack.d.ts.map +1 -0
- package/dist/sheet/stack.jsx +378 -0
- package/dist/sheet/stack.jsx.map +1 -0
- package/dist/swipe/index.d.ts +3 -0
- package/dist/swipe/index.d.ts.map +1 -0
- package/dist/swipe/index.jsx +2 -0
- package/dist/swipe/model.d.ts +72 -0
- package/dist/swipe/model.d.ts.map +1 -0
- package/dist/swipe/model.jsx +66 -0
- package/dist/swipe/model.jsx.map +1 -0
- package/dist/swipe/swipe-view.d.ts +40 -0
- package/dist/swipe/swipe-view.d.ts.map +1 -0
- package/dist/swipe/swipe-view.jsx +163 -0
- package/dist/swipe/swipe-view.jsx.map +1 -0
- package/dist/swipe/swipe.css +34 -0
- package/dist/swipe/swipe.css.map +1 -0
- package/dist/tab-bar/index.d.ts +4 -0
- package/dist/tab-bar/index.d.ts.map +1 -0
- package/dist/tab-bar/index.jsx +3 -0
- package/dist/tab-bar/metrics.d.ts +230 -0
- package/dist/tab-bar/metrics.d.ts.map +1 -0
- package/dist/tab-bar/metrics.jsx +221 -0
- package/dist/tab-bar/metrics.jsx.map +1 -0
- package/dist/tab-bar/model.d.ts +170 -0
- package/dist/tab-bar/model.d.ts.map +1 -0
- package/dist/tab-bar/model.jsx +349 -0
- package/dist/tab-bar/model.jsx.map +1 -0
- package/dist/tab-bar/tab-bar.css +173 -0
- package/dist/tab-bar/tab-bar.css.map +1 -0
- package/dist/tab-bar/tab-bar.d.ts +56 -0
- package/dist/tab-bar/tab-bar.d.ts.map +1 -0
- package/dist/tab-bar/tab-bar.jsx +343 -0
- package/dist/tab-bar/tab-bar.jsx.map +1 -0
- package/dist/tabs/index.d.ts +3 -0
- package/dist/tabs/index.d.ts.map +1 -0
- package/dist/tabs/index.jsx +2 -0
- package/dist/tabs/model.d.ts +83 -0
- package/dist/tabs/model.d.ts.map +1 -0
- package/dist/tabs/model.jsx +113 -0
- package/dist/tabs/model.jsx.map +1 -0
- package/dist/tabs/tab-view.d.ts +47 -0
- package/dist/tabs/tab-view.d.ts.map +1 -0
- package/dist/tabs/tab-view.jsx +227 -0
- package/dist/tabs/tab-view.jsx.map +1 -0
- package/dist/tabs/tabs.css +182 -0
- package/dist/tabs/tabs.css.map +1 -0
- package/dist/toast/index.d.ts +3 -0
- package/dist/toast/index.d.ts.map +1 -0
- package/dist/toast/index.jsx +2 -0
- package/dist/toast/service.d.ts +48 -0
- package/dist/toast/service.d.ts.map +1 -0
- package/dist/toast/service.jsx +201 -0
- package/dist/toast/service.jsx.map +1 -0
- package/dist/toast/store.d.ts +174 -0
- package/dist/toast/store.d.ts.map +1 -0
- package/dist/toast/store.jsx +353 -0
- package/dist/toast/store.jsx.map +1 -0
- package/dist/toast/toast.css +152 -0
- package/dist/toast/toast.css.map +1 -0
- package/dist/toggle/checkbox-math.d.ts +52 -0
- package/dist/toggle/checkbox-math.d.ts.map +1 -0
- package/dist/toggle/checkbox-math.jsx +111 -0
- package/dist/toggle/checkbox-math.jsx.map +1 -0
- package/dist/toggle/checkbox.d.ts +56 -0
- package/dist/toggle/checkbox.d.ts.map +1 -0
- package/dist/toggle/checkbox.jsx +152 -0
- package/dist/toggle/checkbox.jsx.map +1 -0
- package/dist/toggle/chip-group.d.ts +50 -0
- package/dist/toggle/chip-group.d.ts.map +1 -0
- package/dist/toggle/chip-group.jsx +107 -0
- package/dist/toggle/chip-group.jsx.map +1 -0
- package/dist/toggle/index.d.ts +5 -0
- package/dist/toggle/index.d.ts.map +1 -0
- package/dist/toggle/index.jsx +4 -0
- package/dist/toggle/switch.d.ts +52 -0
- package/dist/toggle/switch.d.ts.map +1 -0
- package/dist/toggle/switch.jsx +192 -0
- package/dist/toggle/switch.jsx.map +1 -0
- package/dist/toggle/toggle.css +189 -0
- package/dist/toggle/toggle.css.map +1 -0
- package/package.json +155 -4
- package/rspeedy/index.d.ts +21 -0
- package/rspeedy/index.mjs +75 -0
- package/rspeedy/index.test.mjs +52 -0
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import './toggle.css';
|
|
2
|
+
import { type ReactNode } from '@lynx-js/react';
|
|
3
|
+
import { type G9ControlBaseProps } from '../base/control.js';
|
|
4
|
+
/** Props of {@link G9SwitchGroup} (MAUI `G9SwitchGroup`). */
|
|
5
|
+
export interface G9SwitchGroupProps extends G9ControlBaseProps {
|
|
6
|
+
/** A tap cannot turn off the last active switch of the group (it shakes). Default false. */
|
|
7
|
+
readonly minOneActive?: boolean;
|
|
8
|
+
/** Shows `active / total` under the switches (warning colour at ≤ 1 with `minOneActive`). Default false. */
|
|
9
|
+
readonly showLiveStatus?: boolean;
|
|
10
|
+
/** Told when the number of active switches changes (MAUI `ActiveSwitchCount`). */
|
|
11
|
+
readonly onActiveCountChange?: (active: number, total: number) => void;
|
|
12
|
+
readonly children?: ReactNode;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* A vertical group of switches (MAUI `G9SwitchGroup`): counts its switches (nearest group only, as MAUI's direct
|
|
16
|
+
* children), optionally keeps one on and shows a live `active / total` status. It does not make switches exclusive:
|
|
17
|
+
* use `selectionGroup` for radio behaviour.
|
|
18
|
+
*/
|
|
19
|
+
export declare function G9SwitchGroup(props: G9SwitchGroupProps): ReactNode;
|
|
20
|
+
/** Props of {@link G9Switch} (MAUI `G9Switch`). */
|
|
21
|
+
export interface G9SwitchProps extends G9ControlBaseProps {
|
|
22
|
+
/** Controlled state (MAUI `IsOn`). */
|
|
23
|
+
readonly checked?: boolean;
|
|
24
|
+
readonly defaultChecked?: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Once per change made by the switch: a tap, `toggle()`, or being turned off by its selection group (MAUI
|
|
27
|
+
* `Toggled`). Never for a value the parent pushed in.
|
|
28
|
+
*/
|
|
29
|
+
readonly onCheckedChange?: (checked: boolean) => void;
|
|
30
|
+
/** A tap cannot turn it off (it shakes); code still can. Default false. */
|
|
31
|
+
readonly isRequired?: boolean;
|
|
32
|
+
/** Radio group name: turning this on turns off the others with the same name under the same provider. */
|
|
33
|
+
readonly selectionGroup?: string | null;
|
|
34
|
+
/** Form row: title/description fill the start, switch at the end, padded. Default false. */
|
|
35
|
+
readonly isInFormRow?: boolean;
|
|
36
|
+
/** Bold 14 title (form row only); the accessibility name. */
|
|
37
|
+
readonly title?: string | null;
|
|
38
|
+
/** 12 px description under the title (form row only). */
|
|
39
|
+
readonly description?: string | null;
|
|
40
|
+
}
|
|
41
|
+
/** Imperative handle of {@link G9Switch}. */
|
|
42
|
+
export interface G9SwitchHandle {
|
|
43
|
+
/** Same as a tap. */
|
|
44
|
+
toggle(): void;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Switch (MAUI `G9Switch`): 56 × 32 track, 24 px thumb that stretches while travelling, 240 ms spring-like CSS
|
|
48
|
+
* transition, tick/dot track mark; RTL moves the "on" side to the left. A blocked tap (required, or the last active
|
|
49
|
+
* switch of a `minOneActive` group) shakes instead of toggling. Disabled: opacity 0.45.
|
|
50
|
+
*/
|
|
51
|
+
export declare const G9Switch: import("react").ForwardRefExoticComponent<G9SwitchProps & import("react").RefAttributes<G9SwitchHandle>>;
|
|
52
|
+
//# sourceMappingURL=switch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"switch.d.ts","sourceRoot":"","sources":["../../src/toggle/switch.tsx"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAC;AAUtB,OAAO,EAGL,KAAK,SAAS,EAMf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,kBAAkB,EAAyC,MAAM,iBAAiB,CAAC;AAuCjG,6DAA6D;AAC7D,MAAM,WAAW,kBAAmB,SAAQ,kBAAkB;IAC5D,4FAA4F;IAC5F,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,4GAA4G;IAC5G,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,kFAAkF;IAClF,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvE,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;CAC/B;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,SAAS,CAuDlE;AAID,mDAAmD;AACnD,MAAM,WAAW,aAAc,SAAQ,kBAAkB;IACvD,sCAAsC;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC;;;OAGG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACtD,2EAA2E;IAC3E,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,yGAAyG;IACzG,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,4FAA4F;IAC5F,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,6DAA6D;IAC7D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,yDAAyD;IACzD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;AAED,6CAA6C;AAC7C,MAAM,WAAW,cAAc;IAC7B,qBAAqB;IACrB,MAAM,IAAI,IAAI,CAAC;CAChB;AAID;;;;GAIG;AACH,eAAO,MAAM,QAAQ,0GAsHnB,CAAC"}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import "./toggle.css";
|
|
2
|
+
import { G9Metrics, G9StringKey, formatColor, switchOffTrack, switchOnTrack, switchThumbOff, switchThumbOn } from "@g9tm/lynxcontrols-foundation";
|
|
3
|
+
import { createContext, forwardRef, useContext, useEffect, useImperativeHandle, useRef, useState } from "@lynx-js/react";
|
|
4
|
+
import { g9RowStyle, g9TextStart, useG9Control } from "../base/control.jsx";
|
|
5
|
+
import { useG9Press } from "../base/press.jsx";
|
|
6
|
+
import { useControllableState } from "../base/use-controllable-state.jsx";
|
|
7
|
+
import { G9CoreContext } from "../provider/contexts.jsx";
|
|
8
|
+
import { useG9Strings, useG9Theme } from "../provider/hooks.jsx";
|
|
9
|
+
const registries = new WeakMap();
|
|
10
|
+
const globalScope = {};
|
|
11
|
+
function groupSet(scope, group) {
|
|
12
|
+
let groups = registries.get(scope);
|
|
13
|
+
if (!groups) {
|
|
14
|
+
groups = new Map();
|
|
15
|
+
registries.set(scope, groups);
|
|
16
|
+
}
|
|
17
|
+
let set = groups.get(group);
|
|
18
|
+
if (!set) {
|
|
19
|
+
set = new Set();
|
|
20
|
+
groups.set(group, set);
|
|
21
|
+
}
|
|
22
|
+
return set;
|
|
23
|
+
}
|
|
24
|
+
const SwitchGroupContext = createContext(null);
|
|
25
|
+
function G9SwitchGroup(props) {
|
|
26
|
+
const control = useG9Control(props, 'g9-switch-group');
|
|
27
|
+
const [states, setStates] = useState(()=>new Map());
|
|
28
|
+
const latest = useRef(states);
|
|
29
|
+
latest.current = states;
|
|
30
|
+
const minOneActive = true === props.minOneActive;
|
|
31
|
+
const minRef = useRef(minOneActive);
|
|
32
|
+
minRef.current = minOneActive;
|
|
33
|
+
const value = useRef(null);
|
|
34
|
+
if (null === value.current) value.current = {
|
|
35
|
+
get minOneActive () {
|
|
36
|
+
return minRef.current;
|
|
37
|
+
},
|
|
38
|
+
activeCount: ()=>{
|
|
39
|
+
let n = 0;
|
|
40
|
+
for (const on of latest.current.values())if (on) n++;
|
|
41
|
+
return n;
|
|
42
|
+
},
|
|
43
|
+
report: (id, on)=>setStates((current)=>{
|
|
44
|
+
if (null === on ? !current.has(id) : current.get(id) === on) return current;
|
|
45
|
+
const next = new Map(current);
|
|
46
|
+
if (null === on) next.delete(id);
|
|
47
|
+
else next.set(id, on);
|
|
48
|
+
latest.current = next;
|
|
49
|
+
return next;
|
|
50
|
+
})
|
|
51
|
+
};
|
|
52
|
+
let active = 0;
|
|
53
|
+
for (const on of states.values())if (on) active++;
|
|
54
|
+
const total = states.size;
|
|
55
|
+
const notify = useRef(props.onActiveCountChange);
|
|
56
|
+
notify.current = props.onActiveCountChange;
|
|
57
|
+
useEffect(()=>{
|
|
58
|
+
var _notify_current;
|
|
59
|
+
null == (_notify_current = notify.current) || _notify_current.call(notify, active, total);
|
|
60
|
+
}, [
|
|
61
|
+
active,
|
|
62
|
+
total
|
|
63
|
+
]);
|
|
64
|
+
const warn = minOneActive && active <= 1;
|
|
65
|
+
return <SwitchGroupContext.Provider value={value.current}>
|
|
66
|
+
<view className={control.className}>
|
|
67
|
+
{props.children}
|
|
68
|
+
{props.showLiveStatus ? <text className="g9-switch-group__status" style={{
|
|
69
|
+
color: warn ? 'var(--g9-warning)' : 'var(--g9-text-tertiary)'
|
|
70
|
+
}}>
|
|
71
|
+
{`${active} / ${total}`}
|
|
72
|
+
</text> : null}
|
|
73
|
+
</view>
|
|
74
|
+
</SwitchGroupContext.Provider>;
|
|
75
|
+
}
|
|
76
|
+
let switchIds = 0;
|
|
77
|
+
const switch_G9Switch = forwardRef(function(props, ref) {
|
|
78
|
+
var _props_defaultChecked, _props_accessibilityLabel, _ref, _props_accessibilityLabel1;
|
|
79
|
+
const control = useG9Control(props, 'g9-switch');
|
|
80
|
+
const theme = useG9Theme();
|
|
81
|
+
const strings = useG9Strings();
|
|
82
|
+
const core = useContext(G9CoreContext);
|
|
83
|
+
const group = useContext(SwitchGroupContext);
|
|
84
|
+
const [checked, setChecked] = useControllableState({
|
|
85
|
+
value: props.checked,
|
|
86
|
+
defaultValue: null != (_props_defaultChecked = props.defaultChecked) ? _props_defaultChecked : false,
|
|
87
|
+
onChange: props.onCheckedChange,
|
|
88
|
+
name: 'G9Switch.checked'
|
|
89
|
+
});
|
|
90
|
+
const [shake, setShake] = useState(0);
|
|
91
|
+
const id = useRef(0);
|
|
92
|
+
if (0 === id.current) id.current = ++switchIds;
|
|
93
|
+
const latestChecked = useRef(checked);
|
|
94
|
+
latestChecked.current = checked;
|
|
95
|
+
const setRef = useRef(setChecked);
|
|
96
|
+
setRef.current = setChecked;
|
|
97
|
+
useEffect(()=>{
|
|
98
|
+
null == group || group.report(id.current, checked);
|
|
99
|
+
}, [
|
|
100
|
+
group,
|
|
101
|
+
checked
|
|
102
|
+
]);
|
|
103
|
+
useEffect(()=>()=>null == group ? void 0 : group.report(id.current, null), [
|
|
104
|
+
group
|
|
105
|
+
]);
|
|
106
|
+
const groupName = props.selectionGroup && '' !== props.selectionGroup.trim() ? props.selectionGroup : null;
|
|
107
|
+
const scope = null != core ? core : globalScope;
|
|
108
|
+
const memberRef = useRef(null);
|
|
109
|
+
useEffect(()=>{
|
|
110
|
+
if (!groupName) return;
|
|
111
|
+
const member = {
|
|
112
|
+
turnOff: ()=>setRef.current(false)
|
|
113
|
+
};
|
|
114
|
+
const set = groupSet(scope, groupName);
|
|
115
|
+
set.add(member);
|
|
116
|
+
memberRef.current = member;
|
|
117
|
+
return ()=>{
|
|
118
|
+
set.delete(member);
|
|
119
|
+
memberRef.current = null;
|
|
120
|
+
};
|
|
121
|
+
}, [
|
|
122
|
+
groupName,
|
|
123
|
+
scope
|
|
124
|
+
]);
|
|
125
|
+
useEffect(()=>{
|
|
126
|
+
if (!checked || !groupName) return;
|
|
127
|
+
for (const other of groupSet(scope, groupName))if (other !== memberRef.current) other.turnOff();
|
|
128
|
+
}, [
|
|
129
|
+
checked,
|
|
130
|
+
groupName,
|
|
131
|
+
scope
|
|
132
|
+
]);
|
|
133
|
+
const toggle = ()=>{
|
|
134
|
+
if (control.disabled) return;
|
|
135
|
+
const on = latestChecked.current;
|
|
136
|
+
if (on && (props.isRequired || (null == group ? void 0 : group.minOneActive) && group.activeCount() <= 1)) return void setShake((n)=>n + 1);
|
|
137
|
+
setChecked(!on);
|
|
138
|
+
};
|
|
139
|
+
useImperativeHandle(ref, ()=>({
|
|
140
|
+
toggle
|
|
141
|
+
}));
|
|
142
|
+
const press = useG9Press(toggle, {
|
|
143
|
+
blocked: control.disabled,
|
|
144
|
+
source: 'G9Switch',
|
|
145
|
+
guardMs: 0
|
|
146
|
+
});
|
|
147
|
+
const rtl = 'rtl' === control.direction;
|
|
148
|
+
const width = G9Metrics.SwitchWidth;
|
|
149
|
+
const thumb = G9Metrics.SwitchThumb;
|
|
150
|
+
const travel = width - 4 - thumb - 4;
|
|
151
|
+
const x = (checked ? travel : 0) * (rtl ? -1 : 1);
|
|
152
|
+
const track = formatColor(checked ? switchOnTrack(theme) : switchOffTrack(theme));
|
|
153
|
+
const thumbColor = formatColor(checked ? switchThumbOn(theme) : switchThumbOff(theme));
|
|
154
|
+
const form = true === props.isInFormRow;
|
|
155
|
+
const title = props.title && '' !== props.title.trim() ? props.title : null;
|
|
156
|
+
const description = props.description && '' !== props.description.trim() ? props.description : null;
|
|
157
|
+
return <view className={`${control.className}${form ? ' g9-switch--row' : ''}`} style={g9RowStyle(control.direction)} accessibility-element={true} accessibility-traits="button" {...checked ? {
|
|
158
|
+
'accessibility-value': strings.get(G9StringKey.Selected)
|
|
159
|
+
} : {}} {...(null != (_props_accessibilityLabel = props.accessibilityLabel) ? _props_accessibilityLabel : title) ? {
|
|
160
|
+
'accessibility-label': null != (_ref = null != (_props_accessibilityLabel1 = props.accessibilityLabel) ? _props_accessibilityLabel1 : title) ? _ref : ''
|
|
161
|
+
} : {}} bindtap={press}>
|
|
162
|
+
{form ? <view className="g9-switch__text">
|
|
163
|
+
{title ? <text className="g9-switch__title" style={g9TextStart(control.direction)}>
|
|
164
|
+
{title}
|
|
165
|
+
</text> : null}
|
|
166
|
+
{description ? <text className="g9-switch__description" style={g9TextStart(control.direction)}>
|
|
167
|
+
{description}
|
|
168
|
+
</text> : null}
|
|
169
|
+
</view> : null}
|
|
170
|
+
<view key={`shake-${shake}`} className={`g9-switch__track${shake > 0 ? ' g9-switch__track--shake' : ''}`} style={{
|
|
171
|
+
width: `${width}px`,
|
|
172
|
+
height: `${G9Metrics.SwitchHeight}px`,
|
|
173
|
+
backgroundColor: track
|
|
174
|
+
}}>
|
|
175
|
+
<view className="g9-switch__mark" style={{
|
|
176
|
+
[rtl ? 'right' : 'left']: checked ? `${width - 15 - 6}px` : '12px'
|
|
177
|
+
}}>
|
|
178
|
+
{checked ? <text className="g9-switch__tick">✓</text> : <view className="g9-switch__dot"/>}
|
|
179
|
+
</view>
|
|
180
|
+
<view className="g9-switch__thumb" style={{
|
|
181
|
+
[rtl ? 'right' : 'left']: '4px',
|
|
182
|
+
width: `${thumb}px`,
|
|
183
|
+
height: `${thumb}px`,
|
|
184
|
+
backgroundColor: thumbColor,
|
|
185
|
+
transform: `translateX(${x}px)`
|
|
186
|
+
}}/>
|
|
187
|
+
</view>
|
|
188
|
+
</view>;
|
|
189
|
+
});
|
|
190
|
+
export { G9SwitchGroup, switch_G9Switch as G9Switch };
|
|
191
|
+
|
|
192
|
+
//# sourceMappingURL=switch.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toggle/switch.jsx","sources":["../../src/toggle/switch.tsx"],"sourcesContent":["import './toggle.css';\nimport {\n formatColor,\n G9Metrics,\n G9StringKey,\n switchOffTrack,\n switchOnTrack,\n switchThumbOff,\n switchThumbOn,\n} from '@g9tm/lynxcontrols-foundation';\nimport {\n createContext,\n forwardRef,\n type ReactNode,\n useContext,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from '@lynx-js/react';\nimport { type G9ControlBaseProps, g9RowStyle, g9TextStart, useG9Control } from '../base/control';\nimport { useG9Press } from '../base/press';\nimport { useControllableState } from '../base/use-controllable-state';\nimport { G9CoreContext } from '../provider/contexts';\nimport { useG9Strings, useG9Theme } from '../provider/hooks';\n\n// ---- selection groups (MAUI `SelectionGroup`: radio-style, scoped to the provider) -------------------------------\n\ninterface GroupMember {\n turnOff(): void;\n}\n\nconst registries = new WeakMap<object, Map<string, Set<GroupMember>>>();\nconst globalScope = {};\n\nfunction groupSet(scope: object, group: string): Set<GroupMember> {\n let groups = registries.get(scope);\n if (!groups) {\n groups = new Map();\n registries.set(scope, groups);\n }\n let set = groups.get(group);\n if (!set) {\n set = new Set();\n groups.set(group, set);\n }\n return set;\n}\n\n// ---- G9SwitchGroup ---------------------------------------------------------------------------------------------\n\ninterface SwitchGroupContextValue {\n readonly minOneActive: boolean;\n activeCount(): number;\n report(id: number, on: boolean | null): void;\n}\n\nconst SwitchGroupContext = createContext<SwitchGroupContextValue | null>(null);\n\n/** Props of {@link G9SwitchGroup} (MAUI `G9SwitchGroup`). */\nexport interface G9SwitchGroupProps extends G9ControlBaseProps {\n /** A tap cannot turn off the last active switch of the group (it shakes). Default false. */\n readonly minOneActive?: boolean;\n /** Shows `active / total` under the switches (warning colour at ≤ 1 with `minOneActive`). Default false. */\n readonly showLiveStatus?: boolean;\n /** Told when the number of active switches changes (MAUI `ActiveSwitchCount`). */\n readonly onActiveCountChange?: (active: number, total: number) => void;\n readonly children?: ReactNode;\n}\n\n/**\n * A vertical group of switches (MAUI `G9SwitchGroup`): counts its switches (nearest group only, as MAUI's direct\n * children), optionally keeps one on and shows a live `active / total` status. It does not make switches exclusive:\n * use `selectionGroup` for radio behaviour.\n */\nexport function G9SwitchGroup(props: G9SwitchGroupProps): ReactNode {\n const control = useG9Control(props, 'g9-switch-group');\n const [states, setStates] = useState<ReadonlyMap<number, boolean>>(() => new Map());\n const latest = useRef(states);\n latest.current = states;\n const minOneActive = props.minOneActive === true;\n const minRef = useRef(minOneActive);\n minRef.current = minOneActive;\n // One context object for the group's life: switches key their effects on it.\n const value = useRef<SwitchGroupContextValue | null>(null);\n if (value.current === null) {\n value.current = {\n get minOneActive() {\n return minRef.current;\n },\n activeCount: () => {\n let n = 0;\n for (const on of latest.current.values()) if (on) n++;\n return n;\n },\n report: (id, on) =>\n setStates((current) => {\n if (on === null ? !current.has(id) : current.get(id) === on) return current;\n const next = new Map(current);\n if (on === null) next.delete(id);\n else next.set(id, on);\n latest.current = next;\n return next;\n }),\n };\n }\n let active = 0;\n for (const on of states.values()) if (on) active++;\n const total = states.size;\n const notify = useRef(props.onActiveCountChange);\n notify.current = props.onActiveCountChange;\n useEffect(() => {\n notify.current?.(active, total);\n }, [active, total]);\n const warn = minOneActive && active <= 1;\n return (\n <SwitchGroupContext.Provider value={value.current}>\n <view className={control.className}>\n {props.children}\n {props.showLiveStatus ? (\n <text\n className=\"g9-switch-group__status\"\n style={{ color: warn ? 'var(--g9-warning)' : 'var(--g9-text-tertiary)' }}\n >\n {`${active} / ${total}`}\n </text>\n ) : null}\n </view>\n </SwitchGroupContext.Provider>\n );\n}\n\n// ---- G9Switch ----------------------------------------------------------------------------------------------------\n\n/** Props of {@link G9Switch} (MAUI `G9Switch`). */\nexport interface G9SwitchProps extends G9ControlBaseProps {\n /** Controlled state (MAUI `IsOn`). */\n readonly checked?: boolean;\n readonly defaultChecked?: boolean;\n /**\n * Once per change made by the switch: a tap, `toggle()`, or being turned off by its selection group (MAUI\n * `Toggled`). Never for a value the parent pushed in.\n */\n readonly onCheckedChange?: (checked: boolean) => void;\n /** A tap cannot turn it off (it shakes); code still can. Default false. */\n readonly isRequired?: boolean;\n /** Radio group name: turning this on turns off the others with the same name under the same provider. */\n readonly selectionGroup?: string | null;\n /** Form row: title/description fill the start, switch at the end, padded. Default false. */\n readonly isInFormRow?: boolean;\n /** Bold 14 title (form row only); the accessibility name. */\n readonly title?: string | null;\n /** 12 px description under the title (form row only). */\n readonly description?: string | null;\n}\n\n/** Imperative handle of {@link G9Switch}. */\nexport interface G9SwitchHandle {\n /** Same as a tap. */\n toggle(): void;\n}\n\nlet switchIds = 0;\n\n/**\n * Switch (MAUI `G9Switch`): 56 × 32 track, 24 px thumb that stretches while travelling, 240 ms spring-like CSS\n * transition, tick/dot track mark; RTL moves the \"on\" side to the left. A blocked tap (required, or the last active\n * switch of a `minOneActive` group) shakes instead of toggling. Disabled: opacity 0.45.\n */\nexport const G9Switch = forwardRef<G9SwitchHandle, G9SwitchProps>(function G9Switch(props, ref): ReactNode {\n const control = useG9Control(props, 'g9-switch');\n const theme = useG9Theme();\n const strings = useG9Strings();\n const core = useContext(G9CoreContext);\n const group = useContext(SwitchGroupContext);\n const [checked, setChecked] = useControllableState<boolean>({\n value: props.checked,\n defaultValue: props.defaultChecked ?? false,\n onChange: props.onCheckedChange,\n name: 'G9Switch.checked',\n });\n const [shake, setShake] = useState(0);\n const id = useRef(0);\n if (id.current === 0) id.current = ++switchIds;\n const latestChecked = useRef(checked);\n latestChecked.current = checked;\n const setRef = useRef(setChecked);\n setRef.current = setChecked;\n\n // Report to the group.\n useEffect(() => {\n group?.report(id.current, checked);\n }, [group, checked]);\n useEffect(() => () => group?.report(id.current, null), [group]);\n\n // Selection group registration (while mounted and named).\n const groupName = props.selectionGroup && props.selectionGroup.trim() !== '' ? props.selectionGroup : null;\n const scope: object = core ?? globalScope;\n const memberRef = useRef<GroupMember | null>(null);\n useEffect(() => {\n if (!groupName) return;\n const member: GroupMember = { turnOff: () => setRef.current(false) };\n const set = groupSet(scope, groupName);\n set.add(member);\n memberRef.current = member;\n return () => {\n set.delete(member);\n memberRef.current = null;\n };\n }, [groupName, scope]);\n useEffect(() => {\n if (!checked || !groupName) return;\n for (const other of groupSet(scope, groupName)) if (other !== memberRef.current) other.turnOff();\n }, [checked, groupName, scope]);\n\n const toggle = () => {\n if (control.disabled) return;\n const on = latestChecked.current;\n if (on && (props.isRequired || (group?.minOneActive && group.activeCount() <= 1))) {\n setShake((n) => n + 1);\n return;\n }\n setChecked(!on);\n };\n useImperativeHandle(ref, () => ({ toggle }));\n const press = useG9Press(toggle, { blocked: control.disabled, source: 'G9Switch', guardMs: 0 });\n\n const rtl = control.direction === 'rtl';\n const width = G9Metrics.SwitchWidth;\n const thumb = G9Metrics.SwitchThumb;\n const travel = width - 4 - thumb - 4;\n const x = (checked ? travel : 0) * (rtl ? -1 : 1);\n const track = formatColor(checked ? switchOnTrack(theme) : switchOffTrack(theme));\n const thumbColor = formatColor(checked ? switchThumbOn(theme) : switchThumbOff(theme));\n const form = props.isInFormRow === true;\n const title = props.title && props.title.trim() !== '' ? props.title : null;\n const description = props.description && props.description.trim() !== '' ? props.description : null;\n return (\n <view\n className={`${control.className}${form ? ' g9-switch--row' : ''}`}\n style={g9RowStyle(control.direction)}\n accessibility-element={true}\n accessibility-traits=\"button\"\n {...(checked ? { 'accessibility-value': strings.get(G9StringKey.Selected) } : {})}\n {...((props.accessibilityLabel ?? title)\n ? { 'accessibility-label': props.accessibilityLabel ?? title ?? '' }\n : {})}\n bindtap={press}\n >\n {form ? (\n <view className=\"g9-switch__text\">\n {title ? (\n <text className=\"g9-switch__title\" style={g9TextStart(control.direction)}>\n {title}\n </text>\n ) : null}\n {description ? (\n <text className=\"g9-switch__description\" style={g9TextStart(control.direction)}>\n {description}\n </text>\n ) : null}\n </view>\n ) : null}\n <view\n key={`shake-${shake}`}\n className={`g9-switch__track${shake > 0 ? ' g9-switch__track--shake' : ''}`}\n style={{ width: `${width}px`, height: `${G9Metrics.SwitchHeight}px`, backgroundColor: track }}\n >\n <view\n className=\"g9-switch__mark\"\n style={{ [rtl ? 'right' : 'left']: checked ? `${width - 15 - 6}px` : '12px' }}\n >\n {checked ? <text className=\"g9-switch__tick\">✓</text> : <view className=\"g9-switch__dot\" />}\n </view>\n <view\n className=\"g9-switch__thumb\"\n style={{\n [rtl ? 'right' : 'left']: '4px',\n width: `${thumb}px`,\n height: `${thumb}px`,\n backgroundColor: thumbColor,\n transform: `translateX(${x}px)`,\n }}\n />\n </view>\n </view>\n );\n});\n"],"names":["registries","WeakMap","globalScope","groupSet","scope","group","groups","Map","set","Set","SwitchGroupContext","createContext","G9SwitchGroup","props","control","useG9Control","states","setStates","useState","latest","useRef","minOneActive","minRef","value","n","on","id","current","next","active","total","notify","useEffect","warn","view","text","switchIds","G9Switch","forwardRef","ref","_props_defaultChecked","_props_accessibilityLabel","_ref","theme","useG9Theme","strings","useG9Strings","core","useContext","G9CoreContext","checked","setChecked","useControllableState","shake","setShake","latestChecked","setRef","groupName","memberRef","member","other","toggle","useImperativeHandle","press","useG9Press","rtl","width","G9Metrics","thumb","travel","x","track","formatColor","switchOnTrack","switchOffTrack","thumbColor","switchThumbOn","switchThumbOff","form","title","description","g9RowStyle","G9StringKey","g9TextStart"],"mappings":"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"}
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
.g9-checkbox {
|
|
2
|
+
flex-direction: row;
|
|
3
|
+
align-self: flex-start;
|
|
4
|
+
align-items: flex-start;
|
|
5
|
+
display: flex;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.g9-checkbox--labelled {
|
|
9
|
+
align-self: stretch;
|
|
10
|
+
column-gap: 2px;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.g9-checkbox__slot {
|
|
14
|
+
justify-content: center;
|
|
15
|
+
align-items: center;
|
|
16
|
+
display: flex;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.g9-checkbox__slot--reserve {
|
|
20
|
+
justify-content: flex-start;
|
|
21
|
+
height: 48px;
|
|
22
|
+
padding-top: 14px;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.g9-checkbox__box {
|
|
26
|
+
width: 20px;
|
|
27
|
+
height: 20px;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.g9-checkbox__text {
|
|
31
|
+
flex: 1;
|
|
32
|
+
font-size: 14px;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.g9-switch {
|
|
36
|
+
flex-direction: row;
|
|
37
|
+
justify-content: center;
|
|
38
|
+
align-items: center;
|
|
39
|
+
display: flex;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.g9-switch--row {
|
|
43
|
+
justify-content: space-between;
|
|
44
|
+
align-self: stretch;
|
|
45
|
+
column-gap: 12px;
|
|
46
|
+
padding: 12px 16px;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.g9-switch__text {
|
|
50
|
+
flex-direction: column;
|
|
51
|
+
flex: 1;
|
|
52
|
+
row-gap: 2px;
|
|
53
|
+
display: flex;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.g9-switch__title {
|
|
57
|
+
color: var(--g9-text-primary);
|
|
58
|
+
font-size: 14px;
|
|
59
|
+
font-weight: bold;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.g9-switch__description {
|
|
63
|
+
color: var(--g9-text-tertiary);
|
|
64
|
+
font-size: 12px;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.g9-switch__track {
|
|
68
|
+
border-radius: 16px;
|
|
69
|
+
transition: background-color .24s ease-out;
|
|
70
|
+
position: relative;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.g9-switch__track--shake {
|
|
74
|
+
animation: .31s ease-in-out g9-switch-shake;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
@keyframes g9-switch-shake {
|
|
78
|
+
0% {
|
|
79
|
+
transform: translateX(0);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
19% {
|
|
83
|
+
transform: translateX(-4px);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
39% {
|
|
87
|
+
transform: translateX(4px);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
58% {
|
|
91
|
+
transform: translateX(-3px);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
77% {
|
|
95
|
+
transform: translateX(3px);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
100% {
|
|
99
|
+
transform: translateX(0);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
.g9-switch__thumb {
|
|
104
|
+
border-radius: 12px;
|
|
105
|
+
transition: transform .24s cubic-bezier(.34, 1.56, .64, 1), background-color .24s ease-out;
|
|
106
|
+
position: absolute;
|
|
107
|
+
top: 4px;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.g9-switch__mark {
|
|
111
|
+
position: absolute;
|
|
112
|
+
top: 9px;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
.g9-switch__tick {
|
|
116
|
+
color: #ffffffbf;
|
|
117
|
+
font-size: 12px;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
.g9-switch__dot {
|
|
121
|
+
background-color: #00000038;
|
|
122
|
+
border-radius: 3px;
|
|
123
|
+
width: 6px;
|
|
124
|
+
height: 6px;
|
|
125
|
+
margin-top: 4px;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
.g9-disabled {
|
|
129
|
+
opacity: .45;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
.g9-switch-group {
|
|
133
|
+
flex-direction: column;
|
|
134
|
+
display: flex;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
.g9-switch-group__status {
|
|
138
|
+
margin: 6px 2px 0;
|
|
139
|
+
font-size: 11px;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
.g9-chip-group--wrap {
|
|
143
|
+
flex-flow: wrap;
|
|
144
|
+
justify-content: center;
|
|
145
|
+
display: flex;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
.g9-chip-group__line {
|
|
149
|
+
flex-direction: row;
|
|
150
|
+
display: flex;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
.g9-chip {
|
|
154
|
+
border-style: solid;
|
|
155
|
+
border-width: 1.5px;
|
|
156
|
+
flex-direction: row;
|
|
157
|
+
align-items: center;
|
|
158
|
+
column-gap: 6px;
|
|
159
|
+
padding: 0 14px;
|
|
160
|
+
transition: background-color .14s ease-in-out, border-color .14s ease-in-out;
|
|
161
|
+
display: flex;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
.g9-chip--disabled {
|
|
165
|
+
opacity: .45;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
.g9-chip__text {
|
|
169
|
+
white-space: nowrap;
|
|
170
|
+
font-size: 13px;
|
|
171
|
+
font-weight: bold;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
.g9-chip__check {
|
|
175
|
+
opacity: 0;
|
|
176
|
+
width: 0;
|
|
177
|
+
transition: width .12s ease-in-out, opacity .12s ease-in-out, transform .12s ease-in-out;
|
|
178
|
+
overflow: hidden;
|
|
179
|
+
transform: scale(.5);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
.g9-chip__check--on {
|
|
183
|
+
opacity: 1;
|
|
184
|
+
width: 16px;
|
|
185
|
+
transform: scale(1);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
/*# sourceMappingURL=toggle.css.map */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["webpack://./src/toggle/toggle.css"],"names":[],"mappings":"AACA;EAAE,mBAAmB;EACnB,sBAAsB;EACtB,uBAAuB;EACvB,aAAa;AACf;;AAGA;EAAE,mBAAmB;EACnB,eAAe;AACjB;;AAGA;EAAE,uBAAuB;EACvB,mBAAmB;EACnB,aAAa;AACf;;AAGA;EAAE,2BAA2B;EAC3B,YAAY;EACZ,iBAAiB;AACnB;;AAGA;EAAE,WAAW;EACX,YAAY;AACd;;AAGA;EAAE,OAAO;EACP,eAAe;AACjB;;AAGA;EAAE,mBAAmB;EACnB,uBAAuB;EACvB,mBAAmB;EACnB,aAAa;AACf;;AAGA;EAAE,8BAA8B;EAC9B,mBAAmB;EACnB,gBAAgB;EAChB,kBAAkB;AACpB;;AAGA;EAAE,sBAAsB;EACtB,OAAO;EACP,YAAY;EACZ,aAAa;AACf;;AAGA;EAAE,6BAA6B;EAC7B,eAAe;EACf,iBAAiB;AACnB;;AAGA;EAAE,8BAA8B;EAC9B,eAAe;AACjB;;AAGA;EAAE,mBAAmB;EACnB,0CAA0C;EAC1C,kBAAkB;AACpB;;AAGA;EAAE,2CAA2C;AAC7C;;AAGA;EAAE;IACE,wBAAwB;EAC1B;;EAEA;IACE,2BAA2B;EAC7B;;EAEA;IACE,0BAA0B;EAC5B;;EAEA;IACE,2BAA2B;EAC7B;;EAEA;IACE,0BAA0B;EAC5B;;EAEA;IACE,wBAAwB;EAC1B;AACF;;AAFA;EAKE,mBAAmB;EACnB,0FAA0F;EAC1F,kBAAkB;EAClB,QAAQ;AACV;;AAAA;EAGE,kBAAkB;EAClB,QAAQ;AACV;;AAAA;EAGE,gBAAgB;EAChB,eAAe;AACjB;;AAAA;EAGE,2BAA2B;EAC3B,kBAAkB;EAClB,UAAU;EACV,WAAW;EACX,eAAe;AACjB;;AAAA;EAGE,YAAY;AACd;;AAAA;EAGE,sBAAsB;EACtB,aAAa;AACf;;AAAA;EAGE,iBAAiB;EACjB,eAAe;AACjB;;AAAA;EAGE,eAAe;EACf,uBAAuB;EACvB,aAAa;AACf;;AACA;EAEE,mBAAmB;EACnB,aAAa;AACf;;AACA;EAEE,mBAAmB;EACnB,mBAAmB;EACnB,mBAAmB;EACnB,mBAAmB;EACnB,eAAe;EACf,eAAe;EACf,4EAA4E;EAC5E,aAAa;AACf;;AAGA;EAAE,YAAY;AACd;;AAGA;EAAE,mBAAmB;EACnB,eAAe;EACf,iBAAiB;AACnB;;AAGA;EAAE,UAAU;EACV,QAAQ;EACR,wFAAwF;EACxF,gBAAgB;EAChB,oBAAoB;AACtB;;AAMA;EAHE,UAAU;EACV,WAAW;EACX,mBAAmB;AACrB","sourcesContent":["/* Toggles (MAUI G9CheckBox, G9Switch, G9SwitchGroup, G9ChipGroup). */\n.g9-checkbox {\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n align-self: flex-start;\n}\n\n.g9-checkbox--labelled {\n align-self: stretch;\n column-gap: 2px;\n}\n\n.g9-checkbox__slot {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.g9-checkbox__slot--reserve {\n height: 48px;\n justify-content: flex-start;\n padding-top: 14px;\n}\n\n.g9-checkbox__box {\n width: 20px;\n height: 20px;\n}\n\n.g9-checkbox__text {\n flex: 1;\n font-size: 14px;\n}\n\n.g9-switch {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n}\n\n.g9-switch--row {\n justify-content: space-between;\n column-gap: 12px;\n padding: 12px 16px;\n align-self: stretch;\n}\n\n.g9-switch__text {\n display: flex;\n flex-direction: column;\n flex: 1;\n row-gap: 2px;\n}\n\n.g9-switch__title {\n font-size: 14px;\n font-weight: bold;\n color: var(--g9-text-primary);\n}\n\n.g9-switch__description {\n font-size: 12px;\n color: var(--g9-text-tertiary);\n}\n\n.g9-switch__track {\n position: relative;\n border-radius: 16px;\n transition: background-color 240ms ease-out;\n}\n\n.g9-switch__track--shake {\n animation: g9-switch-shake 310ms ease-in-out;\n}\n\n@keyframes g9-switch-shake {\n 0% {\n transform: translateX(0px);\n }\n 19% {\n transform: translateX(-4px);\n }\n 39% {\n transform: translateX(4px);\n }\n 58% {\n transform: translateX(-3px);\n }\n 77% {\n transform: translateX(3px);\n }\n 100% {\n transform: translateX(0px);\n }\n}\n\n.g9-switch__thumb {\n position: absolute;\n top: 4px;\n border-radius: 12px;\n transition:\n transform 240ms cubic-bezier(0.34, 1.56, 0.64, 1),\n background-color 240ms ease-out;\n}\n\n.g9-switch__mark {\n position: absolute;\n top: 9px;\n}\n\n.g9-switch__tick {\n font-size: 12px;\n color: rgba(255, 255, 255, 0.75);\n}\n\n.g9-switch__dot {\n width: 6px;\n height: 6px;\n margin-top: 4px;\n border-radius: 3px;\n background-color: rgba(0, 0, 0, 0.22);\n}\n\n.g9-disabled {\n opacity: 0.45;\n}\n\n.g9-switch-group {\n display: flex;\n flex-direction: column;\n}\n\n.g9-switch-group__status {\n font-size: 11px;\n margin: 6px 2px 0px 2px;\n}\n\n.g9-chip-group--wrap {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: center;\n}\n\n.g9-chip-group__line {\n display: flex;\n flex-direction: row;\n}\n\n.g9-chip {\n display: flex;\n flex-direction: row;\n align-items: center;\n column-gap: 6px;\n padding: 0px 14px;\n border-style: solid;\n border-width: 1.5px;\n transition:\n background-color 140ms ease-in-out,\n border-color 140ms ease-in-out;\n}\n\n.g9-chip--disabled {\n opacity: 0.45;\n}\n\n.g9-chip__text {\n font-size: 13px;\n font-weight: bold;\n white-space: nowrap;\n}\n\n.g9-chip__check {\n width: 0px;\n opacity: 0;\n transform: scale(0.5);\n overflow: hidden;\n transition:\n width 120ms ease-in-out,\n opacity 120ms ease-in-out,\n transform 120ms ease-in-out;\n}\n\n.g9-chip__check--on {\n width: 16px;\n opacity: 1;\n transform: scale(1);\n}\n"],"sourceRoot":""}
|
package/package.json
CHANGED
|
@@ -1,6 +1,157 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@g9tm/lynxcontrols",
|
|
3
|
-
"version": "
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "1.4.0",
|
|
4
|
+
"description": "ReactLynx controls and overlay infrastructure: provider/host, sheets, popups, toasts, fields, buttons, pickers, tab view, tab bar, edge panel, swipe rows.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"sideEffects": [
|
|
8
|
+
"**/*.css"
|
|
9
|
+
],
|
|
10
|
+
"exports": {
|
|
11
|
+
".": {
|
|
12
|
+
"source": "./src/index.ts",
|
|
13
|
+
"types": "./dist/index.d.ts",
|
|
14
|
+
"default": "./dist/index.jsx"
|
|
15
|
+
},
|
|
16
|
+
"./base": {
|
|
17
|
+
"source": "./src/base/index.ts",
|
|
18
|
+
"types": "./dist/base/index.d.ts",
|
|
19
|
+
"default": "./dist/base/index.jsx"
|
|
20
|
+
},
|
|
21
|
+
"./provider": {
|
|
22
|
+
"source": "./src/provider/index.ts",
|
|
23
|
+
"types": "./dist/provider/index.d.ts",
|
|
24
|
+
"default": "./dist/provider/index.jsx"
|
|
25
|
+
},
|
|
26
|
+
"./host": {
|
|
27
|
+
"source": "./src/host/index.ts",
|
|
28
|
+
"types": "./dist/host/index.d.ts",
|
|
29
|
+
"default": "./dist/host/index.jsx"
|
|
30
|
+
},
|
|
31
|
+
"./deferred": {
|
|
32
|
+
"source": "./src/deferred/index.ts",
|
|
33
|
+
"types": "./dist/deferred/index.d.ts",
|
|
34
|
+
"default": "./dist/deferred/index.jsx"
|
|
35
|
+
},
|
|
36
|
+
"./icon": {
|
|
37
|
+
"source": "./src/icon/index.ts",
|
|
38
|
+
"types": "./dist/icon/index.d.ts",
|
|
39
|
+
"default": "./dist/icon/index.jsx"
|
|
40
|
+
},
|
|
41
|
+
"./fields": {
|
|
42
|
+
"source": "./src/fields/index.ts",
|
|
43
|
+
"types": "./dist/fields/index.d.ts",
|
|
44
|
+
"default": "./dist/fields/index.jsx"
|
|
45
|
+
},
|
|
46
|
+
"./button": {
|
|
47
|
+
"source": "./src/button/index.ts",
|
|
48
|
+
"types": "./dist/button/index.d.ts",
|
|
49
|
+
"default": "./dist/button/index.jsx"
|
|
50
|
+
},
|
|
51
|
+
"./display": {
|
|
52
|
+
"source": "./src/display/index.ts",
|
|
53
|
+
"types": "./dist/display/index.d.ts",
|
|
54
|
+
"default": "./dist/display/index.jsx"
|
|
55
|
+
},
|
|
56
|
+
"./toggle": {
|
|
57
|
+
"source": "./src/toggle/index.ts",
|
|
58
|
+
"types": "./dist/toggle/index.d.ts",
|
|
59
|
+
"default": "./dist/toggle/index.jsx"
|
|
60
|
+
},
|
|
61
|
+
"./expander": {
|
|
62
|
+
"source": "./src/expander/index.ts",
|
|
63
|
+
"types": "./dist/expander/index.d.ts",
|
|
64
|
+
"default": "./dist/expander/index.jsx"
|
|
65
|
+
},
|
|
66
|
+
"./sheet": {
|
|
67
|
+
"source": "./src/sheet/index.ts",
|
|
68
|
+
"types": "./dist/sheet/index.d.ts",
|
|
69
|
+
"default": "./dist/sheet/index.jsx"
|
|
70
|
+
},
|
|
71
|
+
"./selection": {
|
|
72
|
+
"source": "./src/selection/index.ts",
|
|
73
|
+
"types": "./dist/selection/index.d.ts",
|
|
74
|
+
"default": "./dist/selection/index.jsx"
|
|
75
|
+
},
|
|
76
|
+
"./pickers": {
|
|
77
|
+
"source": "./src/pickers/index.ts",
|
|
78
|
+
"types": "./dist/pickers/index.d.ts",
|
|
79
|
+
"default": "./dist/pickers/index.jsx"
|
|
80
|
+
},
|
|
81
|
+
"./range-slider": {
|
|
82
|
+
"source": "./src/range-slider/index.ts",
|
|
83
|
+
"types": "./dist/range-slider/index.d.ts",
|
|
84
|
+
"default": "./dist/range-slider/index.jsx"
|
|
85
|
+
},
|
|
86
|
+
"./cascade": {
|
|
87
|
+
"source": "./src/cascade/index.ts",
|
|
88
|
+
"types": "./dist/cascade/index.d.ts",
|
|
89
|
+
"default": "./dist/cascade/index.jsx"
|
|
90
|
+
},
|
|
91
|
+
"./popup": {
|
|
92
|
+
"source": "./src/popup/index.ts",
|
|
93
|
+
"types": "./dist/popup/index.d.ts",
|
|
94
|
+
"default": "./dist/popup/index.jsx"
|
|
95
|
+
},
|
|
96
|
+
"./toast": {
|
|
97
|
+
"source": "./src/toast/index.ts",
|
|
98
|
+
"types": "./dist/toast/index.d.ts",
|
|
99
|
+
"default": "./dist/toast/index.jsx"
|
|
100
|
+
},
|
|
101
|
+
"./tabs": {
|
|
102
|
+
"source": "./src/tabs/index.ts",
|
|
103
|
+
"types": "./dist/tabs/index.d.ts",
|
|
104
|
+
"default": "./dist/tabs/index.jsx"
|
|
105
|
+
},
|
|
106
|
+
"./tab-bar": {
|
|
107
|
+
"source": "./src/tab-bar/index.ts",
|
|
108
|
+
"types": "./dist/tab-bar/index.d.ts",
|
|
109
|
+
"default": "./dist/tab-bar/index.jsx"
|
|
110
|
+
},
|
|
111
|
+
"./plus-button": {
|
|
112
|
+
"source": "./src/plus-button/index.ts",
|
|
113
|
+
"types": "./dist/plus-button/index.d.ts",
|
|
114
|
+
"default": "./dist/plus-button/index.jsx"
|
|
115
|
+
},
|
|
116
|
+
"./edge-panel": {
|
|
117
|
+
"source": "./src/edge-panel/index.ts",
|
|
118
|
+
"types": "./dist/edge-panel/index.d.ts",
|
|
119
|
+
"default": "./dist/edge-panel/index.jsx"
|
|
120
|
+
},
|
|
121
|
+
"./swipe": {
|
|
122
|
+
"source": "./src/swipe/index.ts",
|
|
123
|
+
"types": "./dist/swipe/index.d.ts",
|
|
124
|
+
"default": "./dist/swipe/index.jsx"
|
|
125
|
+
},
|
|
126
|
+
"./rspeedy": {
|
|
127
|
+
"types": "./rspeedy/index.d.ts",
|
|
128
|
+
"default": "./rspeedy/index.mjs"
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
"files": [
|
|
132
|
+
"dist",
|
|
133
|
+
"README.md",
|
|
134
|
+
"rspeedy"
|
|
135
|
+
],
|
|
136
|
+
"scripts": {
|
|
137
|
+
"build": "rslib build"
|
|
138
|
+
},
|
|
139
|
+
"dependencies": {
|
|
140
|
+
"@g9tm/lynxcontrols-foundation": "1.4.0",
|
|
141
|
+
"@lynx-js/lynx-ui-common": "3.139.0",
|
|
142
|
+
"@lynx-js/lynx-ui-deferred-component": "3.139.0",
|
|
143
|
+
"@lynx-js/lynx-ui-draggable": "3.139.0",
|
|
144
|
+
"@lynx-js/lynx-ui-input": "3.139.0",
|
|
145
|
+
"@lynx-js/lynx-ui-input-otp": "3.139.0",
|
|
146
|
+
"@lynx-js/lynx-ui-lazy-component": "3.139.0",
|
|
147
|
+
"@lynx-js/lynx-ui-list": "3.139.0",
|
|
148
|
+
"@lynx-js/lynx-ui-overlay": "3.139.0",
|
|
149
|
+
"@lynx-js/lynx-ui-presence": "3.139.0",
|
|
150
|
+
"@lynx-js/lynx-ui-sheet": "3.139.0",
|
|
151
|
+
"@lynx-js/lynx-ui-slider": "3.139.0",
|
|
152
|
+
"@lynx-js/lynx-ui-view-pager": "3.139.0"
|
|
153
|
+
},
|
|
154
|
+
"peerDependencies": {
|
|
155
|
+
"@lynx-js/react": ">=0.126.2 <0.127.0"
|
|
156
|
+
}
|
|
157
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/** The page-config flags G9 needs (`enableCSSInlineVariables`: inline `--g9-*` and `var()` work on every engine). */
|
|
2
|
+
export declare const g9PageConfig: Readonly<{ enableCSSInlineVariables: true }>;
|
|
3
|
+
|
|
4
|
+
/** Loads the `LynxTemplatePlugin` class the app's ReactLynx build uses, resolved from `context` (the app root). */
|
|
5
|
+
export declare function loadTemplatePlugin(context: string): Promise<unknown>;
|
|
6
|
+
|
|
7
|
+
/** The rspack plugin that sets the page config through the template plugin's `beforeEncode` hook. */
|
|
8
|
+
export declare class G9PageConfigPlugin {
|
|
9
|
+
constructor(templatePlugin: unknown, pageConfig?: Readonly<Record<string, unknown>>);
|
|
10
|
+
apply(compiler: unknown): void;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* The rspeedy / Rsbuild plugin every app that renders G9 controls adds:
|
|
15
|
+
* `plugins: [pluginReactLynx(), pluginG9Lynx()]`. Without it, colours written as `var(--g9-*)` in inline styles do not
|
|
16
|
+
* resolve (the Lynx engine ignores inline CSS variables unless `enableCSSInlineVariables` is on).
|
|
17
|
+
*/
|
|
18
|
+
export declare function pluginG9Lynx(): {
|
|
19
|
+
readonly name: string;
|
|
20
|
+
setup(api: unknown): Promise<void>;
|
|
21
|
+
};
|