@wow-two-beta/ui 0.0.17 → 0.0.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/dist/actions/backToTopButton/BackToTopButton.d.ts +19 -0
  2. package/dist/actions/backToTopButton/BackToTopButton.d.ts.map +1 -0
  3. package/dist/actions/backToTopButton/index.d.ts +2 -0
  4. package/dist/actions/backToTopButton/index.d.ts.map +1 -0
  5. package/dist/actions/index.d.ts +1 -0
  6. package/dist/actions/index.d.ts.map +1 -1
  7. package/dist/actions/index.js +2 -2
  8. package/dist/{chunk-XHGWBSIR.js → chunk-25CGSOXZ.js} +5 -87
  9. package/dist/chunk-25CGSOXZ.js.map +1 -0
  10. package/dist/{chunk-SM2TOB4U.js → chunk-3KPILWVX.js} +268 -4
  11. package/dist/chunk-3KPILWVX.js.map +1 -0
  12. package/dist/{chunk-ILYL6ROC.js → chunk-3P7DZCDS.js} +257 -5
  13. package/dist/chunk-3P7DZCDS.js.map +1 -0
  14. package/dist/{chunk-3IN5ULKY.js → chunk-45SFQEMP.js} +417 -37
  15. package/dist/chunk-45SFQEMP.js.map +1 -0
  16. package/dist/{chunk-W7LQZKTH.js → chunk-D7XIPKDJ.js} +109 -4
  17. package/dist/chunk-D7XIPKDJ.js.map +1 -0
  18. package/dist/{chunk-2VAZKEQD.js → chunk-DSA7L7PD.js} +256 -141
  19. package/dist/chunk-DSA7L7PD.js.map +1 -0
  20. package/dist/{chunk-NRAJPSEK.js → chunk-GRJBIGUD.js} +72 -6
  21. package/dist/chunk-GRJBIGUD.js.map +1 -0
  22. package/dist/chunk-NKADHZMX.js +39 -0
  23. package/dist/chunk-NKADHZMX.js.map +1 -0
  24. package/dist/chunk-NTW7SDAP.js +92 -0
  25. package/dist/chunk-NTW7SDAP.js.map +1 -0
  26. package/dist/chunk-O6UUYPTB.js +148 -0
  27. package/dist/chunk-O6UUYPTB.js.map +1 -0
  28. package/dist/{chunk-4ESR253U.js → chunk-XRTXK5Y4.js} +119 -7
  29. package/dist/chunk-XRTXK5Y4.js.map +1 -0
  30. package/dist/display/index.d.ts +1 -0
  31. package/dist/display/index.d.ts.map +1 -1
  32. package/dist/display/index.js +2 -2
  33. package/dist/display/swipeActions/SwipeActions.d.ts +17 -0
  34. package/dist/display/swipeActions/SwipeActions.d.ts.map +1 -0
  35. package/dist/display/swipeActions/index.d.ts +2 -0
  36. package/dist/display/swipeActions/index.d.ts.map +1 -0
  37. package/dist/feedback/index.d.ts +3 -0
  38. package/dist/feedback/index.d.ts.map +1 -1
  39. package/dist/feedback/index.js +3 -1
  40. package/dist/feedback/onboardingChecklist/OnboardingChecklist.d.ts +33 -0
  41. package/dist/feedback/onboardingChecklist/OnboardingChecklist.d.ts.map +1 -0
  42. package/dist/feedback/onboardingChecklist/index.d.ts +3 -0
  43. package/dist/feedback/onboardingChecklist/index.d.ts.map +1 -0
  44. package/dist/feedback/tour/Tour.d.ts +25 -0
  45. package/dist/feedback/tour/Tour.d.ts.map +1 -0
  46. package/dist/feedback/tour/index.d.ts +2 -0
  47. package/dist/feedback/tour/index.d.ts.map +1 -0
  48. package/dist/feedback/undoBar/UndoBar.d.ts +22 -0
  49. package/dist/feedback/undoBar/UndoBar.d.ts.map +1 -0
  50. package/dist/feedback/undoBar/index.d.ts +2 -0
  51. package/dist/feedback/undoBar/index.d.ts.map +1 -0
  52. package/dist/forms/index.d.ts +1 -0
  53. package/dist/forms/index.d.ts.map +1 -1
  54. package/dist/forms/index.js +6 -4
  55. package/dist/forms/wizard/Wizard.d.ts +58 -0
  56. package/dist/forms/wizard/Wizard.d.ts.map +1 -0
  57. package/dist/forms/wizard/index.d.ts +3 -0
  58. package/dist/forms/wizard/index.d.ts.map +1 -0
  59. package/dist/index.js +12 -9
  60. package/dist/layout/appShell/AppShell.d.ts +50 -0
  61. package/dist/layout/appShell/AppShell.d.ts.map +1 -0
  62. package/dist/layout/appShell/index.d.ts +3 -0
  63. package/dist/layout/appShell/index.d.ts.map +1 -0
  64. package/dist/layout/index.d.ts +2 -0
  65. package/dist/layout/index.d.ts.map +1 -1
  66. package/dist/layout/index.js +7 -2
  67. package/dist/layout/pullToRefresh/PullToRefresh.d.ts +15 -0
  68. package/dist/layout/pullToRefresh/PullToRefresh.d.ts.map +1 -0
  69. package/dist/layout/pullToRefresh/index.d.ts +2 -0
  70. package/dist/layout/pullToRefresh/index.d.ts.map +1 -0
  71. package/dist/nav/index.d.ts +2 -0
  72. package/dist/nav/index.d.ts.map +1 -1
  73. package/dist/nav/index.js +4 -3
  74. package/dist/nav/scrollSpy/ScrollSpy.d.ts +25 -0
  75. package/dist/nav/scrollSpy/ScrollSpy.d.ts.map +1 -0
  76. package/dist/nav/scrollSpy/index.d.ts +2 -0
  77. package/dist/nav/scrollSpy/index.d.ts.map +1 -0
  78. package/dist/nav/tableOfContents/TableOfContents.d.ts +24 -0
  79. package/dist/nav/tableOfContents/TableOfContents.d.ts.map +1 -0
  80. package/dist/nav/tableOfContents/index.d.ts +2 -0
  81. package/dist/nav/tableOfContents/index.d.ts.map +1 -0
  82. package/dist/overlays/actionSheet/ActionSheet.d.ts +29 -0
  83. package/dist/overlays/actionSheet/ActionSheet.d.ts.map +1 -0
  84. package/dist/overlays/actionSheet/index.d.ts +3 -0
  85. package/dist/overlays/actionSheet/index.d.ts.map +1 -0
  86. package/dist/overlays/bottomSheet/BottomSheet.d.ts +29 -0
  87. package/dist/overlays/bottomSheet/BottomSheet.d.ts.map +1 -0
  88. package/dist/overlays/bottomSheet/index.d.ts +2 -0
  89. package/dist/overlays/bottomSheet/index.d.ts.map +1 -0
  90. package/dist/overlays/index.d.ts +2 -0
  91. package/dist/overlays/index.d.ts.map +1 -1
  92. package/dist/overlays/index.js +5 -3
  93. package/package.json +1 -1
  94. package/dist/chunk-2VAZKEQD.js.map +0 -1
  95. package/dist/chunk-3IN5ULKY.js.map +0 -1
  96. package/dist/chunk-4ESR253U.js.map +0 -1
  97. package/dist/chunk-ILYL6ROC.js.map +0 -1
  98. package/dist/chunk-NRAJPSEK.js.map +0 -1
  99. package/dist/chunk-SM2TOB4U.js.map +0 -1
  100. package/dist/chunk-W7LQZKTH.js.map +0 -1
  101. package/dist/chunk-XHGWBSIR.js.map +0 -1
@@ -1,8 +1,8 @@
1
1
  import { listboxVariants, listboxItemVariants, listboxGroupLabelVariants, listboxSeparatorVariants, listboxEmptyVariants } from './chunk-FFQENBTW.js';
2
- import { PopoverTrigger, Popover, PopoverContent } from './chunk-2VAZKEQD.js';
2
+ import { PopoverTrigger, Popover, PopoverContent } from './chunk-DSA7L7PD.js';
3
3
  import { Tag } from './chunk-ZCA365IX.js';
4
- import { useControlled } from './chunk-4P2TFUVW.js';
5
4
  import { tv, dataAttr } from './chunk-BMBIZLO4.js';
5
+ import { useControlled } from './chunk-4P2TFUVW.js';
6
6
  import { Icon } from './chunk-TDX22OWF.js';
7
7
  import { useFormControl, FormControlProvider, RovingFocusGroup, useRovingFocusItem, Portal, AnchoredPositioner, DismissableLayer } from './chunk-NC2CBGX2.js';
8
8
  import { composeRefs } from './chunk-DN7WBRIV.js';
@@ -4240,7 +4240,259 @@ Editable.Preview = EditablePreview;
4240
4240
  Editable.Input = EditableInput;
4241
4241
  Editable.Submit = EditableSubmit;
4242
4242
  Editable.Cancel = EditableCancel;
4243
+ var WizardContext = createContext(null);
4244
+ function useWizard() {
4245
+ const ctx = useContext(WizardContext);
4246
+ if (!ctx) throw new Error("useWizard must be used inside <Wizard>");
4247
+ return ctx;
4248
+ }
4249
+ var Wizard = forwardRef(function Wizard2({
4250
+ currentStep: currentStepProp,
4251
+ defaultCurrentStep,
4252
+ onStepChange,
4253
+ onComplete,
4254
+ canGoBack = true,
4255
+ className,
4256
+ children,
4257
+ ...rest
4258
+ }, ref) {
4259
+ const childArray = Children.toArray(children).filter(isValidElement);
4260
+ const stepFromChildren = childArray.filter(
4261
+ (c) => c.type.displayName === "WizardStep"
4262
+ ).map((c) => {
4263
+ const props = c.props;
4264
+ return {
4265
+ id: props.id,
4266
+ label: props.label,
4267
+ optional: props.optional,
4268
+ final: props.final
4269
+ };
4270
+ });
4271
+ const [steps, setSteps] = useState(stepFromChildren);
4272
+ const validatorsRef = useState(() => /* @__PURE__ */ new Map())[0];
4273
+ const initialStep = stepFromChildren[0]?.id ?? "";
4274
+ const [currentStepId, setCurrentStepId] = useControlled({
4275
+ controlled: currentStepProp,
4276
+ default: defaultCurrentStep ?? initialStep,
4277
+ onChange: onStepChange
4278
+ });
4279
+ const [visited, setVisited] = useState(() => /* @__PURE__ */ new Set([initialStep]));
4280
+ const [isPending, setIsPending] = useState(false);
4281
+ const currentIndex = steps.findIndex((s) => s.id === currentStepId);
4282
+ const currentStep = steps[currentIndex];
4283
+ const registerStep = useCallback((info) => {
4284
+ setSteps((prev) => {
4285
+ const idx = prev.findIndex((s) => s.id === info.id);
4286
+ if (idx >= 0) {
4287
+ const next2 = prev.slice();
4288
+ next2[idx] = info;
4289
+ return next2;
4290
+ }
4291
+ return [...prev, info];
4292
+ });
4293
+ }, []);
4294
+ const unregisterStep = useCallback((id) => {
4295
+ setSteps((prev) => prev.filter((s) => s.id !== id));
4296
+ }, []);
4297
+ const registerValidator = useCallback(
4298
+ (id, validator) => {
4299
+ validatorsRef.set(id, validator);
4300
+ },
4301
+ [validatorsRef]
4302
+ );
4303
+ const unregisterValidator = useCallback(
4304
+ (id) => {
4305
+ validatorsRef.delete(id);
4306
+ },
4307
+ [validatorsRef]
4308
+ );
4309
+ const goTo = useCallback(
4310
+ (idOrIndex) => {
4311
+ const target = typeof idOrIndex === "number" ? steps[idOrIndex]?.id : idOrIndex;
4312
+ if (!target) return;
4313
+ setCurrentStepId(target);
4314
+ setVisited((prev) => /* @__PURE__ */ new Set([...prev, target]));
4315
+ },
4316
+ [steps, setCurrentStepId]
4317
+ );
4318
+ const next = useCallback(async () => {
4319
+ if (!currentStep || isPending) return;
4320
+ const validator = validatorsRef.get(currentStep.id);
4321
+ if (validator) {
4322
+ setIsPending(true);
4323
+ try {
4324
+ const ok = await validator();
4325
+ if (!ok) return;
4326
+ } finally {
4327
+ setIsPending(false);
4328
+ }
4329
+ }
4330
+ if (currentStep.final) {
4331
+ setIsPending(true);
4332
+ try {
4333
+ await onComplete?.();
4334
+ } finally {
4335
+ setIsPending(false);
4336
+ }
4337
+ return;
4338
+ }
4339
+ const nextStep = steps[currentIndex + 1];
4340
+ if (nextStep) goTo(nextStep.id);
4341
+ }, [currentStep, currentIndex, steps, isPending, onComplete, validatorsRef, goTo]);
4342
+ const back = useCallback(() => {
4343
+ if (!canGoBack) return;
4344
+ const prev = steps[currentIndex - 1];
4345
+ if (prev) goTo(prev.id);
4346
+ }, [canGoBack, currentIndex, steps, goTo]);
4347
+ const ctx = useMemo(
4348
+ () => ({
4349
+ steps,
4350
+ currentIndex,
4351
+ currentStep,
4352
+ goTo,
4353
+ next,
4354
+ back,
4355
+ canGoBack,
4356
+ visited,
4357
+ registerStep,
4358
+ unregisterStep,
4359
+ registerValidator,
4360
+ unregisterValidator,
4361
+ isPending
4362
+ }),
4363
+ [
4364
+ steps,
4365
+ currentIndex,
4366
+ currentStep,
4367
+ goTo,
4368
+ next,
4369
+ back,
4370
+ canGoBack,
4371
+ visited,
4372
+ registerStep,
4373
+ unregisterStep,
4374
+ registerValidator,
4375
+ unregisterValidator,
4376
+ isPending
4377
+ ]
4378
+ );
4379
+ return /* @__PURE__ */ jsx(WizardContext.Provider, { value: ctx, children: /* @__PURE__ */ jsx("div", { ref, className: cn("flex flex-col gap-4", className), ...rest, children }) });
4380
+ });
4381
+ var WizardSteps = forwardRef(
4382
+ function WizardSteps2({ className, ...rest }, ref) {
4383
+ const ctx = useWizard();
4384
+ return /* @__PURE__ */ jsx(
4385
+ "div",
4386
+ {
4387
+ ref,
4388
+ role: "tablist",
4389
+ "aria-label": "Wizard steps",
4390
+ className: cn("flex items-center gap-2 overflow-x-auto", className),
4391
+ ...rest,
4392
+ children: ctx.steps.map((step, i) => {
4393
+ const isCurrent = ctx.currentIndex === i;
4394
+ const wasVisited = ctx.visited.has(step.id);
4395
+ const canJump = ctx.canGoBack && wasVisited;
4396
+ return /* @__PURE__ */ jsxs(
4397
+ "button",
4398
+ {
4399
+ type: "button",
4400
+ role: "tab",
4401
+ "aria-selected": isCurrent,
4402
+ "aria-disabled": !canJump || void 0,
4403
+ onClick: () => canJump && ctx.goTo(step.id),
4404
+ className: cn(
4405
+ "flex items-center gap-2 rounded-md px-3 py-1.5 text-xs font-medium transition-colors",
4406
+ isCurrent ? "bg-primary text-primary-foreground" : wasVisited ? "bg-muted text-foreground hover:bg-muted/70" : "text-muted-foreground",
4407
+ !canJump && "cursor-default"
4408
+ ),
4409
+ children: [
4410
+ /* @__PURE__ */ jsx("span", { className: "grid h-5 w-5 place-items-center rounded-full bg-background/20 text-[10px]", children: i + 1 }),
4411
+ step.label ?? step.id,
4412
+ step.optional && /* @__PURE__ */ jsx("span", { className: "ml-1 text-[10px] opacity-70", children: "(optional)" })
4413
+ ]
4414
+ },
4415
+ step.id
4416
+ );
4417
+ })
4418
+ }
4419
+ );
4420
+ }
4421
+ );
4422
+ var WizardStep = forwardRef(function WizardStep2({ id, label, validate, optional, final, className, children, ...rest }, ref) {
4423
+ const ctx = useWizard();
4424
+ const isCurrent = ctx.currentStep?.id === id;
4425
+ useMemo(() => {
4426
+ ctx.registerStep({ id, label, optional, final });
4427
+ return id;
4428
+ }, [id, label, optional, final]);
4429
+ useMemo(() => {
4430
+ if (validate) ctx.registerValidator(id, validate);
4431
+ else ctx.unregisterValidator(id);
4432
+ return validate;
4433
+ }, [id, validate]);
4434
+ if (!isCurrent) return null;
4435
+ return /* @__PURE__ */ jsx(
4436
+ "div",
4437
+ {
4438
+ ref,
4439
+ role: "tabpanel",
4440
+ "aria-labelledby": `wizard-step-${id}`,
4441
+ className: cn("flex flex-col gap-3", className),
4442
+ ...rest,
4443
+ children
4444
+ }
4445
+ );
4446
+ });
4447
+ WizardStep.displayName = "WizardStep";
4448
+ var WizardFooter = forwardRef(
4449
+ function WizardFooter2({
4450
+ prevLabel = "Back",
4451
+ nextLabel = "Next",
4452
+ submitLabel = "Finish",
4453
+ showPrev = true,
4454
+ className,
4455
+ ...rest
4456
+ }, ref) {
4457
+ const ctx = useWizard();
4458
+ const isFirst = ctx.currentIndex === 0;
4459
+ const isFinal = ctx.currentStep?.final ?? false;
4460
+ return /* @__PURE__ */ jsxs(
4461
+ "div",
4462
+ {
4463
+ ref,
4464
+ className: cn("mt-2 flex items-center justify-between gap-3", className),
4465
+ ...rest,
4466
+ children: [
4467
+ showPrev && !isFirst && ctx.canGoBack ? /* @__PURE__ */ jsx(
4468
+ "button",
4469
+ {
4470
+ type: "button",
4471
+ onClick: ctx.back,
4472
+ disabled: ctx.isPending,
4473
+ className: "inline-flex h-9 items-center rounded-md border border-border bg-background px-4 text-sm font-medium hover:bg-muted disabled:opacity-50",
4474
+ children: prevLabel
4475
+ }
4476
+ ) : /* @__PURE__ */ jsx("span", {}),
4477
+ /* @__PURE__ */ jsx(
4478
+ "button",
4479
+ {
4480
+ type: "button",
4481
+ onClick: ctx.next,
4482
+ disabled: ctx.isPending,
4483
+ className: "inline-flex h-9 items-center rounded-md bg-primary px-4 text-sm font-medium text-primary-foreground hover:bg-primary/90 disabled:opacity-50",
4484
+ children: ctx.isPending ? "\u2026" : isFinal ? submitLabel : nextLabel
4485
+ }
4486
+ )
4487
+ ]
4488
+ }
4489
+ );
4490
+ }
4491
+ );
4492
+ Wizard.Steps = WizardSteps;
4493
+ Wizard.Step = WizardStep;
4494
+ Wizard.Footer = WizardFooter;
4243
4495
 
4244
- export { Calendar, CharacterCount, Checkbox, CheckboxField, CheckboxGroup, ChoiceCard, ColorArea, ColorField, ColorPicker, ColorSlider, ColorSwatch, ColorSwatchPicker, ColorWheel, Combobox, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxSeparator, CurrencyInput, DateField, DatePicker, DateRangePicker, Editable, EditableCancel, EditableInput, EditablePreview, EditableSubmit, EmailInput, Fieldset, FilePicker, FileUpload, FormErrorMessage, FormField, FormHelperText, InputAddon, InputGroup, Label, LabeledInput, Legend, Listbox, ListboxEmpty, ListboxGroup, ListboxItem, ListboxSeparator, MaskedInput, MultiSelect, MultiSelectContent, MultiSelectItem, MultiSelectTags, MultiSelectTrigger, NumberInput, PasswordInput, PasswordStrength, PercentInput, PinInput, Radio, RadioField, RadioGroup, RangeCalendar, SearchInput, Select, SelectContent, SelectItem, SelectTrigger, SelectValue, Slider, Stepper, StepperList, StepperPanel, StepperStep, Switch, SwitchField, TagsInput, TelInput, TextInput, Textarea, TimeField, TimePicker, UrlInput, colorSwatchVariants };
4245
- //# sourceMappingURL=chunk-ILYL6ROC.js.map
4246
- //# sourceMappingURL=chunk-ILYL6ROC.js.map
4496
+ export { Calendar, CharacterCount, Checkbox, CheckboxField, CheckboxGroup, ChoiceCard, ColorArea, ColorField, ColorPicker, ColorSlider, ColorSwatch, ColorSwatchPicker, ColorWheel, Combobox, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxSeparator, CurrencyInput, DateField, DatePicker, DateRangePicker, Editable, EditableCancel, EditableInput, EditablePreview, EditableSubmit, EmailInput, Fieldset, FilePicker, FileUpload, FormErrorMessage, FormField, FormHelperText, InputAddon, InputGroup, Label, LabeledInput, Legend, Listbox, ListboxEmpty, ListboxGroup, ListboxItem, ListboxSeparator, MaskedInput, MultiSelect, MultiSelectContent, MultiSelectItem, MultiSelectTags, MultiSelectTrigger, NumberInput, PasswordInput, PasswordStrength, PercentInput, PinInput, Radio, RadioField, RadioGroup, RangeCalendar, SearchInput, Select, SelectContent, SelectItem, SelectTrigger, SelectValue, Slider, Stepper, StepperList, StepperPanel, StepperStep, Switch, SwitchField, TagsInput, TelInput, TextInput, Textarea, TimeField, TimePicker, UrlInput, Wizard, WizardFooter, WizardStep, WizardSteps, colorSwatchVariants, useWizard };
4497
+ //# sourceMappingURL=chunk-3P7DZCDS.js.map
4498
+ //# sourceMappingURL=chunk-3P7DZCDS.js.map